Skip to content

Commit 5f2cbad

Browse files
committed
ADD - Effects tab on develop mode
1 parent cc7d577 commit 5f2cbad

11 files changed

Lines changed: 148 additions & 8 deletions

File tree

src/lang/en.json

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -523,6 +523,7 @@
523523
"anima.ui.settings.tabVisibility.domine.title": "Domine",
524524
"anima.ui.settings.tabVisibility.mystic.title": "Mystic",
525525
"anima.ui.settings.tabVisibility.psychic.title": "Psychic",
526+
"anima.ui.settings.tabVisibility.effects.title": "Effects",
526527
"anima.ui.settings.tabVisibility.title": "Tab visibility",
527528
"anima.ui.settings.advancedSettings.defenseType.damageResistance.title": "Damage resistance",
528529
"anima.ui.settings.advancedSettings.defenseType.mass.title": "Mass of enemies",
@@ -570,6 +571,7 @@
570571
"anima.ui.tabs.mystic": "Mystic",
571572
"anima.ui.tabs.psychic": "Psychic",
572573
"anima.ui.tabs.secondaries": "Secondaries",
574+
"anima.ui.tabs.effects": "Effects",
573575
"anima.ui.titleSection.title": "Titles",
574576
"anima.ui.weapons.different.title": "Different / Unarmed",
575577
"anima.ui.weapons.known.title": "Known",
@@ -857,5 +859,14 @@
857859
"chat.attackData.state.done": "done",
858860
"chat.attackData.state.expired": "expired",
859861

860-
"chat.common.target": "Target"
862+
"chat.common.target": "Target",
863+
864+
"anima.ui.effects.effectsList.title": "Effects",
865+
"anima.ui.effects.effectsList.name.title": "Effect",
866+
"anima.ui.effects.effectsList.enable.title": "Enable",
867+
"anima.ui.effects.effectsList.disable.title": "Disable",
868+
"anima.ui.effects.effectsList.edit.title": "Edit",
869+
"anima.ui.effects.effectsList.delete.title": "Delete",
870+
"anima.effects.newEffect": "New effect"
871+
861872
}

src/lang/es.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -524,6 +524,7 @@
524524
"anima.ui.settings.tabVisibility.domine.title": "Domine",
525525
"anima.ui.settings.tabVisibility.mystic.title": "Místico",
526526
"anima.ui.settings.tabVisibility.psychic.title": "Psíquico",
527+
"anima.ui.settings.tabVisibility.effects.title": "Efectos",
527528
"anima.ui.settings.tabVisibility.title": "Visibilidad de pestañas",
528529
"anima.ui.settings.advancedSettings.defenseType.damageResistance.title": "Acumulación",
529530
"anima.ui.settings.advancedSettings.defenseType.mass.title": "Masa de enemigos",
@@ -573,6 +574,7 @@
573574
"anima.ui.tabs.mystic": "Místico",
574575
"anima.ui.tabs.psychic": "Psíquico",
575576
"anima.ui.tabs.secondaries": "Secundarias",
577+
"anima.ui.tabs.effects": "Efectos",
576578
"anima.ui.titleSection.title": "Títulos",
577579
"anima.ui.weapons.different.title": "Distinta / Desarmado",
578580
"anima.ui.weapons.known.title": "Conocida",
@@ -858,5 +860,13 @@
858860
"chat.attackData.state.done": "resuelto",
859861
"chat.attackData.state.expired": "expirado",
860862

861-
"chat.common.target": "Objetivo"
863+
"chat.common.target": "Objetivo",
864+
865+
"anima.ui.effects.effectsList.title": "Efectos",
866+
"anima.ui.effects.effectsList.name.title": "Efecto",
867+
"anima.ui.effects.effectsList.enable.title": "Activar",
868+
"anima.ui.effects.effectsList.disable.title": "Desactivar",
869+
"anima.ui.effects.effectsList.edit.title": "Editar",
870+
"anima.ui.effects.effectsList.delete.title": "Eliminar",
871+
"anima.effects.newEffect": "Nuevo efecto"
862872
}

src/lang/fr.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -509,6 +509,7 @@
509509
"anima.ui.settings.tabVisibility.domine.title": "Domaine",
510510
"anima.ui.settings.tabVisibility.mystic.title": "Mystique",
511511
"anima.ui.settings.tabVisibility.psychic.title": "Psychique",
512+
"anima.ui.settings.tabVisibility.effects.title": "Effects",
512513
"anima.ui.settings.tabVisibility.title": "Table de visibilité",
513514
"anima.ui.systemSettings.autoAcceptCombatRequests.hint.title": "Dans le combat autogéré, les demandes de combat au MJ seront automatiquement acceptées en fonction de si cette option est activée",
514515
"anima.ui.systemSettings.autoAcceptCombatRequests.title": "Accepter automatiquement les demandes de combat",
@@ -525,6 +526,7 @@
525526
"anima.ui.tabs.mystic": "Mystique",
526527
"anima.ui.tabs.psychic": "Psychique",
527528
"anima.ui.tabs.secondaries": "Secondaires",
529+
"anima.ui.tabs.effects": "Efectos",
528530
"anima.ui.titleSection.title": "Titres",
529531
"anima.ui.tooltips.base": "Final",
530532
"anima.ui.tooltips.final": "Final",
@@ -741,5 +743,13 @@
741743
"chat.attackData.state.done": "terminé",
742744
"chat.attackData.state.expired": "expiré",
743745

744-
"chat.common.target": "Cible"
746+
"chat.common.target": "Cible",
747+
748+
"anima.ui.effects.effectsList.title": "Effects",
749+
"anima.ui.effects.effectsList.name.title": "Effect",
750+
"anima.ui.effects.effectsList.enable.title": "Enable",
751+
"anima.ui.effects.effectsList.disable.title": "Disable",
752+
"anima.ui.effects.effectsList.edit.title": "Edit",
753+
"anima.ui.effects.effectsList.delete.title": "Delete",
754+
"anima.effects.newEffect": "New effect"
745755
}

src/module/actor/ABFActorSheet.js

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ export default class ABFActorSheet extends ActorSheet {
109109
ABFSettingsKeys.MODIFY_DICE_FORMULAS_PERMISSION
110110
);
111111
sheet.canModifyDice = permissions?.[game.user.role] === true;
112-
112+
sheet.effects = this.actor.effects?.contents ?? [];
113113
return sheet;
114114
}
115115

@@ -166,6 +166,41 @@ export default class ABFActorSheet extends ActorSheet {
166166
if (handler) handler(e);
167167
else console.warn(`No handler for data-on-click="${key}"`);
168168
});
169+
170+
html.find('.effect-control').click(this._onEffectControl.bind(this));
171+
}
172+
173+
async _onEffectControl(event) {
174+
event.preventDefault();
175+
const a = event.currentTarget;
176+
const action = a.dataset.action;
177+
const li = a.closest('.effect');
178+
const effectId = li?.dataset.effectId;
179+
180+
switch (action) {
181+
case 'create':
182+
const name = game.i18n.localize('anima.effects.newEffect') ?? 'New Effect';
183+
return this.actor.createEmbeddedDocuments('ActiveEffect', [
184+
{
185+
name,
186+
icon: 'icons/svg/aura.svg'
187+
}
188+
]);
189+
190+
case 'edit': {
191+
const effect = this.actor.effects.get(effectId);
192+
return effect?.sheet?.render(true);
193+
}
194+
195+
case 'delete':
196+
return this.actor.deleteEmbeddedDocuments('ActiveEffect', [effectId]);
197+
198+
case 'toggle': {
199+
const effect = this.actor.effects.get(effectId);
200+
if (!effect) return;
201+
return effect.update({ disabled: !effect.disabled });
202+
}
203+
}
169204
}
170205

171206
async _onRoll(event) {

src/module/actor/constants.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ export const INITIAL_ACTOR_DATA = {
1111
},
1212
psychic: {
1313
value: false
14+
},
15+
effects: {
16+
value: false
1417
}
1518
}
1619
},

src/template.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
"tabVisibility": {
1010
"mystic": { "value": false },
1111
"domine": { "value": false },
12-
"psychic": { "value": false }
12+
"psychic": { "value": false },
13+
"effects": { "value": false }
1314
}
1415
},
1516
"automationOptions": {

src/templates/actor/actor-sheet.hbs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,19 @@
99
<a class="item" data-tab="secondaries">{{localize "anima.ui.tabs.secondaries"}}</a>
1010
<a class="item" data-tab="combat">{{localize "anima.ui.tabs.combat"}}</a>
1111
{{#if system.ui.tabVisibility.mystic.value}}
12-
<a class="item" data-tab="mystic">{{localize "anima.ui.tabs.mystic"}}</a>{{/if}}
12+
<a class="item" data-tab="mystic">{{localize "anima.ui.tabs.mystic"}}</a>
13+
{{/if}}
1314
{{#if system.ui.tabVisibility.domine.value}}
14-
<a class="item" data-tab="domine">{{localize "anima.ui.tabs.domine"}}</a>{{/if}}
15+
<a class="item" data-tab="domine">{{localize "anima.ui.tabs.domine"}}</a>
16+
{{/if}}
1517
{{#if system.ui.tabVisibility.psychic.value}}
16-
<a class="item" data-tab="psychic">{{localize "anima.ui.tabs.psychic"}}</a>{{/if}}
18+
<a class="item" data-tab="psychic">{{localize "anima.ui.tabs.psychic"}}</a>
19+
{{/if}}
20+
{{#if system.ui.tabVisibility.effects.value}}
21+
{{#if (settingBool "DEVELOP_MODE")}}
22+
<a class="item" data-tab="effects">{{localize "anima.ui.tabs.effects"}}</a>
23+
{{/if}}
24+
{{/if}}
1725
<a class="item" data-tab="settings">
1826
<img src='{{sysAsset "assets/icons/game-icons.net/ffffff/lorc/cog.svg"}}'>
1927
</a>
@@ -44,6 +52,10 @@
4452
{{> (sysTpl "templates/actor/parts/psychic/psychic.hbs") }}
4553
</div>
4654

55+
<div class="tab effects" data-group="primary" data-tab="effects">
56+
{{> "systems/animabf/templates/actor/parts/effects/effects.hbs"}}
57+
</div>
58+
4759
<div class="tab settings" data-group="primary" data-tab="settings">
4860
{{> (sysTpl "templates/actor/parts/settings/settings.hbs") }}
4961
</div>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<div class='effects'>
2+
{{> "systems/animabf/templates/actor/parts/effects/parts/effects-list.hbs"}}
3+
</div>
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{{#> "systems/animabf/templates/common/ui/group.hbs"
2+
class="effects-list"
3+
}}
4+
{{>
5+
"systems/animabf/templates/common/ui/group-header.hbs"
6+
title=(localize "anima.ui.effects.effectsList.title")
7+
}}
8+
{{#> "systems/animabf/templates/common/ui/group-body.hbs"
9+
class="effects-list"
10+
}}
11+
<table class="item-list effects-list">
12+
<tr>
13+
<th>{{localize "anima.ui.effects.effectsList.name.title"}}</th>
14+
<th>
15+
<a class="effect-control" data-action="create">
16+
<i class="fas fa-plus"></i>
17+
</a>
18+
</th>
19+
</tr>
20+
{{#each effects as |effect|}}
21+
<tr class='item effect' data-effect-id="{{effect.id}}">
22+
<td class="item-name effect-name">
23+
<h4>{{effect.name}}</h4>
24+
</td>
25+
<td class="effect-controls">
26+
<a class="effect-control" data-action="toggle"
27+
title="{{#if effect.disabled}}{{localize "anima.ui.effects.effectsList.enable.title"}}{{else}}{{localize "anima.ui.effects.effectsList.disable.title"}}{{/if}}">
28+
<i class="fas {{#if effect.disabled}}fa-check{{else}}fa-times{{/if}}"></i>
29+
</a>
30+
<a class="effect-control" data-action="edit" title="{{localize "anima.ui.effects.effectsList.edit.title"}}">
31+
<i class="fas fa-edit"></i>
32+
</a>
33+
<a class="effect-control" data-action="delete" title="{{localize "anima.ui.effects.effectsList.delete.title"}}">
34+
<i class="fas fa-trash"></i>
35+
</a>
36+
</td>
37+
</tr>
38+
{{/each}}
39+
</table>
40+
{{/"systems/animabf/templates/common/ui/group-body.hbs"}}
41+
{{/"systems/animabf/templates/common/ui/group.hbs"}}

src/templates/actor/parts/settings/parts/tabVisibility.hbs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,15 @@
3232
inputName="system.ui.tabVisibility.psychic.value"
3333
inputValue=system.ui.tabVisibility.psychic.value
3434
}}
35+
{{#if (settingBool "DEVELOP_MODE")}}
36+
{{>
37+
"systems/animabf/templates/common/ui/horizontal-titled-input.hbs"
38+
class="psychic"
39+
title=(localize "anima.ui.settings.tabVisibility.effects.title")
40+
inputType="checkbox"
41+
inputName="system.ui.tabVisibility.effects.value"
42+
inputValue=system.ui.tabVisibility.effects.value
43+
}}
44+
{{/if}}
3545
{{/"systems/animabf/templates/common/ui/group-body.hbs"}}
3646
{{/"systems/animabf/templates/common/ui/group.hbs"}}

0 commit comments

Comments
 (0)