Add possibility to enable / disable effects in the actor sheet
This commit is contained in:
parent
bb67788abc
commit
2ef58012c6
2 changed files with 22 additions and 4 deletions
|
@ -131,6 +131,7 @@ export class DS4ActorSheet extends ActorSheet<ActorSheet.Options, DS4ActorSheetD
|
||||||
html.find(".item-change").on("change", this.onItemChange.bind(this));
|
html.find(".item-change").on("change", this.onItemChange.bind(this));
|
||||||
|
|
||||||
html.find(".control-effect").on("click", this.onControlEffect.bind(this));
|
html.find(".control-effect").on("click", this.onControlEffect.bind(this));
|
||||||
|
html.find(".change-effect").on("change", this.onChangeEffect.bind(this));
|
||||||
|
|
||||||
html.find(".rollable-item").on("click", this.onRollItem.bind(this));
|
html.find(".rollable-item").on("click", this.onRollItem.bind(this));
|
||||||
|
|
||||||
|
@ -196,13 +197,14 @@ export class DS4ActorSheet extends ActorSheet<ActorSheet.Options, DS4ActorSheetD
|
||||||
* - Text input: string
|
* - Text input: string
|
||||||
* - Number: number
|
* - Number: number
|
||||||
* @param el - The input element to collect the value of
|
* @param el - The input element to collect the value of
|
||||||
|
* @param inverted - Whether or not the value should be inverted
|
||||||
*/
|
*/
|
||||||
private getValue(el: HTMLFormElement): boolean | string | number {
|
private getValue(el: HTMLFormElement, inverted = false): boolean | string | number {
|
||||||
// One needs to differentiate between e.g. checkboxes (value="on") and select boxes etc.
|
// One needs to differentiate between e.g. checkboxes (value="on") and select boxes etc.
|
||||||
// Checkbox:
|
// Checkbox:
|
||||||
if (el.type === "checkbox") {
|
if (el.type === "checkbox") {
|
||||||
const value: boolean = el.checked;
|
const value: boolean = el.checked;
|
||||||
return value;
|
return inverted ? !value : value;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Text input:
|
// Text input:
|
||||||
|
@ -282,6 +284,22 @@ export class DS4ActorSheet extends ActorSheet<ActorSheet.Options, DS4ActorSheetD
|
||||||
li.slideUp(200, () => this.render(false));
|
li.slideUp(200, () => this.render(false));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected onChangeEffect(event: JQuery.ChangeEvent): void {
|
||||||
|
event.preventDefault();
|
||||||
|
const currentTarget = $(event.currentTarget);
|
||||||
|
const element: HTMLFormElement = currentTarget.get(0);
|
||||||
|
const id = currentTarget.parents(".effect").data("effectId");
|
||||||
|
const property: string | undefined = currentTarget.data("property");
|
||||||
|
const inverted = Boolean(currentTarget.data("inverted"));
|
||||||
|
|
||||||
|
if (element.disabled || element.getAttribute("disabled")) return;
|
||||||
|
if (property === undefined) {
|
||||||
|
throw TypeError("HTML element does not provide 'data-property' attribute");
|
||||||
|
}
|
||||||
|
const newValue = this.getValue(element, inverted);
|
||||||
|
this.actor.updateEmbeddedDocuments("ActiveEffect", [{ _id: id, [property]: newValue }]);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle clickable item rolls.
|
* Handle clickable item rolls.
|
||||||
* @param event - The originating click event
|
* @param event - The originating click event
|
||||||
|
|
|
@ -11,8 +11,8 @@ SPDX-License-Identifier: MIT
|
||||||
--}}
|
--}}
|
||||||
<li class="ds4-effect-list__row effect" data-effect-id="{{effectData._id}}">
|
<li class="ds4-effect-list__row effect" data-effect-id="{{effectData._id}}">
|
||||||
{{!-- enabled --}}
|
{{!-- enabled --}}
|
||||||
<input class="ds4-effect-list__editable ds4-effect-list__editable--checkbox effect-change" type="checkbox" {{checked
|
<input class="ds4-effect-list__editable ds4-effect-list__editable--checkbox change-effect" type="checkbox" {{checked
|
||||||
(ne effectData.disabled)}} data-dtype="Boolean" data-property="disabled"
|
(ne effectData.disabled true)}} data-dtype="Boolean" data-property="disabled" data-inverted="true"
|
||||||
title="{{localize 'DS4.EffectEnabled'}}">
|
title="{{localize 'DS4.EffectEnabled'}}">
|
||||||
|
|
||||||
{{!-- icon --}}
|
{{!-- icon --}}
|
||||||
|
|
Loading…
Reference in a new issue