Skip to content

Commit 5d11779

Browse files
authored
Merge pull request #165 from League-of-Fabulous-Developers/feature-spell-customizer
Feature spell customizer
2 parents 439ab9a + c730065 commit 5d11779

File tree

11 files changed

+401
-97
lines changed

11 files changed

+401
-97
lines changed

module/documents/items/optionalFeature/zeropower/zeropower-data-model.mjs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@ import { Flags } from '../../../../helpers/flags.mjs';
2020
*/
2121
export class ZeroPowerDataModel extends RollableOptionalFeatureDataModel {
2222
static defineSchema() {
23-
const { SchemaField, StringField, HTMLField, EmbeddedDataField } = foundry.data.fields;
23+
const { SchemaField, StringField, HTMLField, EmbeddedDataField, BooleanField } = foundry.data.fields;
2424
return {
2525
progress: new EmbeddedDataField(ProgressDataModel, {}),
26+
hasClock: new SchemaField({ value: new BooleanField({ initial: true }) }),
2627
zeroTrigger: new SchemaField({
2728
value: new StringField(),
2829
description: new HTMLField(),

module/helpers/config.mjs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -234,18 +234,18 @@ FU.statusEffects = {
234234
'wlp-up': 'FU.WLPUp',
235235
'dex-down': 'FU.DEXDown',
236236
'dex-up': 'FU.DEXUp',
237-
'ins-up': 'FU.INSUp',
238237
'ins-down': 'FU.INSDown',
239-
'mig-up': 'FU.MIGUp',
238+
'ins-up': 'FU.INSUp',
240239
'mig-down': 'FU.MIGDown',
240+
'mig-up': 'FU.MIGUp',
241241
};
242242

243243
FU.statusEffectRule = {
244244
aura: 'FU.Aura',
245245
barrier: 'FU.Barrier',
246-
crisis: 'FU.Crisis',
247-
cover: 'FU.Cover',
248-
flying: 'FU.Flying',
246+
crisis: 'FU.CrisisRule',
247+
cover: 'FU.CoverRule',
248+
flying: 'FU.FlyingRule',
249249
guard: 'FU.GuardRule',
250250
provoked: 'FU.Provoked',
251251
slow: 'FU.SlowRule',

module/helpers/item-customizer.mjs

Lines changed: 232 additions & 88 deletions
Large diffs are not rendered by default.

module/helpers/statuses.mjs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,11 @@ export const statusEffects = [
145145
mode: CONST.ACTIVE_EFFECT_MODES.CUSTOM,
146146
value: 'upgrade',
147147
},
148+
{
149+
key: 'system.bonuses.accuracy.opposedCheck',
150+
mode: CONST.ACTIVE_EFFECT_MODES.ADD,
151+
value: '2',
152+
},
148153
],
149154
},
150155
{

module/helpers/templates.mjs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ export const preloadHandlebarsTemplates = async function () {
9999

100100
// Applications
101101
'systems/projectfu/templates/app/item-customizer.hbs',
102+
'systems/projectfu/templates/app/partials/customizer-weapon.hbs',
103+
'systems/projectfu/templates/app/partials/customizer-spell.hbs',
102104
'systems/projectfu/templates/app/app-group-check.hbs',
103105
'systems/projectfu/templates/app/partials/inline-effect-config-modify-attribute.hbs',
104106
'systems/projectfu/templates/app/partials/inline-effect-config-modify-affinity.hbs',

module/sheets/actor-standard-sheet.mjs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,14 @@ export class FUStandardActorSheet extends ActorSheet {
8888
if (statusEffect) {
8989
const existing = this.actor.effects.some((e) => isActiveEffectForStatusEffectId(e, statusEffect.id));
9090
const immune = this.actor.system.immunities?.[statusEffect.id]?.base || false;
91+
const ruleKey = FU.statusEffectRule[statusEffect.id] || '';
92+
const rule = game.i18n.localize(ruleKey);
93+
const tooltip = `${game.i18n.localize(statusEffect.name)}<br>${rule}`;
9194
context.statusEffectToggles.push({
9295
...statusEffect,
9396
active: existing,
9497
immune: immune,
98+
tooltip: tooltip,
9599
});
96100
}
97101
}

templates/actor/partials/actor-clocks.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
{{!-- Optional Feature Sections --}}
3636
{{#each optionalFeatures}}
3737
{{#each items }}
38-
{{#if (and item.system.isFavored.value item.system.data.progress)}}
38+
{{#if (and item.system.isFavored.value item.system.data.hasClock.value)}}
3939
<li class="item flexcol" data-item-id="{{ item._id }}">
4040
{{!-- Item Name--}}
4141
<h4 class="click-item resource-content">

templates/actor/partials/actor-resources.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
{{#each statusEffectToggles as |statusEffect|}}
77
<a class="status-effect-toggle {{#if statusEffect.active}}active{{/if}} {{#if statusEffect.immune}}immune{{/if}}"
88
data-status-id="{{statusEffect.id}}">
9-
<img src="{{statusEffect.icon}}" data-tooltip="{{statusEffect.name}}">
9+
<img src="{{statusEffect.icon}}" data-tooltip="{{statusEffect.tooltip}}">
1010
</a>
1111
{{/each}}
1212
</div>
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
<form>
2+
<div style="font-weight: bold;">
3+
<div class="desc mb-3">
4+
<div id="base-item" class="inline-desc">{{{baseItemDetails}}}</div>
5+
<div style="text-align: center;"><i class="fas fa-caret-down"></i></div>
6+
<div id="current-item" class="inline-desc">{{{currentItemDetails}}}</div>
7+
</div>
8+
9+
<div class="desc grid grid-2col gap-5 mb-5"><div class="inline-desc grid grid-2col gap-5 mb-5">
10+
<div class="form-group">
11+
<label>{{localize 'FU.Primary'}}</label>
12+
<select id="primary" name="primary">{{{primaryOptions}}}</select>
13+
</div>
14+
15+
<div class="form-group">
16+
<label>{{localize 'FU.Secondary'}}</label>
17+
<select id="secondary" name="secondary">{{{secondaryOptions}}}</select>
18+
</div>
19+
</div>
20+
21+
<div class="inline-desc grid grid-2col gap-5 mb-5">
22+
<div class="row-one">
23+
<div class="form-group">
24+
<label>{{localize 'FU.AccuracyBonus'}}</label>
25+
<input type="number" id="accuracy-mod" name="accuracy-mod" value="0" />
26+
</div>
27+
28+
<div class="form-group">
29+
<label>{{localize 'FU.DamageBonus'}}</label>
30+
<input type="number" id="damage-mod" name="damage-mod" value="0" />
31+
</div>
32+
</div>
33+
34+
<div class="row-two">
35+
<div class="form-group">
36+
<label>{{localize 'FU.Spell'}}</label>
37+
<select id="item-selector" name="item-selector">{{{spellOptions}}}</select>
38+
</div>
39+
<div class="form-group">
40+
<label>{{localize 'FU.DamageType'}}</label>
41+
<select id="damage-type" name="damage-type">{{{damageTypeOptions}}}</select>
42+
</div>
43+
<div class="grid grid-2col">
44+
<div class="form-group">
45+
<label>{{localize 'FU.HRZero'}}</label>
46+
<input type="checkbox" id="hrzero" name="hrzero" />
47+
</div>
48+
<button type="button" class="reset-spell-button"><i class="fas fa-rotate-left"></i></button>
49+
</div>
50+
</div>
51+
52+
</div>
53+
</div>
54+
<hr>
55+
<div class="form-buttons grid grid-2col gap-5">
56+
<button type="button" class="modify-button"><i class="fas fa-pen-to-square icon"></i>{{localize
57+
'FU.Modify'}}</button>
58+
<button type="button" class="clone-button"><i class="fas fa-copy icon"></i>{{localize 'FU.Clone'}}</button>
59+
<button type="button" class="temp-roll-button"><i class="fas fa-dice-d20 icon"></i>{{localize
60+
'FU.TempRoll'}}</button>
61+
<button type="button" class="cancel-button"><i class="fas fa-xmark icon"></i>{{localize 'FU.Cancel'}}</button>
62+
</div>
63+
</form>
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
<form>
2+
<div style="font-weight: bold;">
3+
<div class="desc mb-3">
4+
<div id="base-item" class="inline-desc">{{{baseItemDetails}}}</div>
5+
<div style="text-align: center;"><i class="fas fa-caret-down"></i></div>
6+
<div id="current-item" class="inline-desc">{{{currentItemDetails}}}</div>
7+
</div>
8+
9+
<div class="desc grid grid-2col gap-5 mb-5"><div class="inline-desc grid grid-2col gap-5 mb-5">
10+
<div class="form-group">
11+
<label>{{localize 'FU.Primary'}}</label>
12+
<select id="primary" name="primary">{{{primaryOptions}}}</select>
13+
</div>
14+
15+
<div class="form-group">
16+
<label>{{localize 'FU.Secondary'}}</label>
17+
<select id="secondary" name="secondary">{{{secondaryOptions}}}</select>
18+
</div>
19+
</div>
20+
21+
<div class="inline-desc grid grid-2col gap-5 mb-5">
22+
<div class="row-one">
23+
<div class="form-group">
24+
<label>{{localize 'FU.Weapon'}}</label>
25+
<select id="item-selector" name="item-selector">{{{itemOptions}}}</select>
26+
</div>
27+
28+
<div class="form-group">
29+
<label>{{localize 'FU.AccuracyBonus'}}</label>
30+
<input type="number" id="accuracy-mod" name="accuracy-mod" value="0" />
31+
</div>
32+
33+
<div class="form-group">
34+
<label>{{localize 'FU.DamageBonus'}}</label>
35+
<input type="number" id="damage-mod" name="damage-mod" value="0" />
36+
</div>
37+
</div>
38+
39+
<div class="row-two">
40+
<div class="form-group">
41+
<label>{{localize 'FU.DamageType'}}</label>
42+
<select id="damage-type" name="damage-type">{{{damageTypeOptions}}}</select>
43+
</div>
44+
45+
<div class="form-group">
46+
<label>{{localize 'FU.WeaponType'}}</label>
47+
<select id="weapon-type" name="weapon-type">{{{weaponTypeOptions}}}</select>
48+
</div>
49+
50+
<div class="form-group">
51+
<label>{{localize 'FU.DefenseType'}}</label>
52+
<select id="defense-type" name="defense-type">{{{defenseTypeOptions}}}</select>
53+
</div>
54+
<div class="grid grid-2col">
55+
<div class="form-group">
56+
<label>{{localize 'FU.HRZero'}}</label>
57+
<input type="checkbox" id="hrzero" name="hrzero" />
58+
</div>
59+
<button type="button" class="reset-weapon-button"><i class="fas fa-rotate-left"></i></button>
60+
</div>
61+
</div>
62+
63+
</div>
64+
</div>
65+
<hr>
66+
<div class="form-buttons grid grid-2col gap-5">
67+
<button type="button" class="modify-button"><i class="fas fa-pen-to-square icon"></i>{{localize
68+
'FU.Modify'}}</button>
69+
<button type="button" class="clone-button"><i class="fas fa-copy icon"></i>{{localize 'FU.Clone'}}</button>
70+
<button type="button" class="temp-roll-button"><i class="fas fa-dice-d20 icon"></i>{{localize
71+
'FU.TempRoll'}}</button>
72+
<button type="button" class="cancel-button"><i class="fas fa-xmark icon"></i>{{localize 'FU.Cancel'}}</button>
73+
</div>
74+
</form>

0 commit comments

Comments
 (0)