mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-04-21 23:13:39 +02:00
Stuff
This commit is contained in:
parent
1fea8438ba
commit
7af3f07a26
14 changed files with 260 additions and 16 deletions
|
|
@ -303,7 +303,13 @@ export default class DhCharacter extends DhCreature {
|
|||
initial: null,
|
||||
label: 'DAGGERHEART.ACTORS.Character.defaultDisadvantageDice'
|
||||
}),
|
||||
})
|
||||
}),
|
||||
comboDieIndex: new fields.NumberField({
|
||||
integer: true,
|
||||
min: 0,
|
||||
max: 5,
|
||||
initial: 0,
|
||||
})
|
||||
})
|
||||
};
|
||||
}
|
||||
|
|
@ -447,6 +453,19 @@ export default class DhCharacter extends DhCreature {
|
|||
return attack;
|
||||
}
|
||||
|
||||
get levelupTiers() {
|
||||
const tierData = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LevelTiers);
|
||||
for (const tierKey of Object.keys(this.class?.value?.system.levelupOptionTiers ?? {})) {
|
||||
const tier = this.class.value.system.levelupOptionTiers[tierKey];
|
||||
for (const optionKey of Object.keys(tier)) {
|
||||
const option = tier[optionKey];
|
||||
tierData.tiers[tierKey].options[optionKey] = option;
|
||||
}
|
||||
}
|
||||
|
||||
return tierData;
|
||||
}
|
||||
|
||||
/* All items are valid on characters */
|
||||
isItemValid() {
|
||||
return true;
|
||||
|
|
@ -745,6 +764,9 @@ export default class DhCharacter extends DhCreature {
|
|||
}
|
||||
});
|
||||
break;
|
||||
case 'comboStrikes':
|
||||
this.rules.comboDieIndex += 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import ForeignDocumentUUIDField from '../fields/foreignDocumentUUIDField.mjs';
|
|||
import ForeignDocumentUUIDArrayField from '../fields/foreignDocumentUUIDArrayField.mjs';
|
||||
import ItemLinkFields from '../fields/itemLinkFields.mjs';
|
||||
import { addLinkedItemsDiff, getFeaturesHTMLData, updateLinkedItemApps } from '../../helpers/utils.mjs';
|
||||
import { DhLevelOption } from '../levelTier.mjs';
|
||||
|
||||
export default class DHClass extends BaseDataItem {
|
||||
/** @inheritDoc */
|
||||
|
|
@ -10,7 +11,8 @@ export default class DHClass extends BaseDataItem {
|
|||
return foundry.utils.mergeObject(super.metadata, {
|
||||
label: 'TYPES.Item.class',
|
||||
type: 'class',
|
||||
hasDescription: true
|
||||
hasDescription: true,
|
||||
hasLevelUpOptions: true,
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -51,7 +53,10 @@ export default class DHClass extends BaseDataItem {
|
|||
}),
|
||||
backgroundQuestions: new fields.ArrayField(new fields.StringField(), { initial: ['', '', ''] }),
|
||||
connections: new fields.ArrayField(new fields.StringField(), { initial: ['', '', ''] }),
|
||||
isMulticlass: new fields.BooleanField({ initial: false })
|
||||
isMulticlass: new fields.BooleanField({ initial: false }),
|
||||
levelupOptionTiers: new fields.TypedObjectField(new fields.TypedObjectField(new fields.EmbeddedDataField(DhLevelOption)), {
|
||||
initial: { 2: {}, 3: {}, 4: {} }
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -43,17 +43,40 @@ class DhLevelTier extends foundry.abstract.DataModel {
|
|||
}
|
||||
}
|
||||
|
||||
class DhLevelOption extends foundry.abstract.DataModel {
|
||||
export class DhLevelOption extends foundry.abstract.DataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
|
||||
return {
|
||||
label: new fields.StringField({ required: true }),
|
||||
checkboxSelections: new fields.NumberField({ required: true, integer: true, initial: 1 }),
|
||||
minCost: new fields.NumberField({ required: true, integer: true, initial: 1 }),
|
||||
type: new fields.StringField({ required: true, choices: LevelOptionType }),
|
||||
value: new fields.NumberField({ integer: true }),
|
||||
amount: new fields.NumberField({ integer: true })
|
||||
label: new fields.StringField({
|
||||
required: true,
|
||||
label: 'DAGGERHEART.GENERAL.label'
|
||||
}),
|
||||
checkboxSelections: new fields.NumberField({
|
||||
required: true,
|
||||
integer: true,
|
||||
initial: 1,
|
||||
label: 'DAGGERHEART.CONFIG.LevelupData.checkboxSelections'
|
||||
}),
|
||||
minCost: new fields.NumberField({
|
||||
required: true,
|
||||
integer: true,
|
||||
initial: 1,
|
||||
label: 'DAGGERHEART.CONFIG.LevelupData.minCost'
|
||||
}),
|
||||
type: new fields.StringField({
|
||||
required: true,
|
||||
choices: LevelOptionType,
|
||||
label: 'DAGGERHEART.GENERAL.type'
|
||||
}),
|
||||
value: new fields.NumberField({
|
||||
integer: true,
|
||||
label: 'DAGGERHEART.GENERAL.value'
|
||||
}),
|
||||
amount: new fields.NumberField({
|
||||
integer: true,
|
||||
label: 'DAGGERHEART.GENERAL.amount'
|
||||
})
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -113,6 +136,13 @@ export const CompanionLevelOptionType = {
|
|||
}
|
||||
};
|
||||
|
||||
export const ClassLevelOptionTypes = {
|
||||
comboStrikes: {
|
||||
id: 'comboStrikes',
|
||||
label: 'Increase your Combo Die size',
|
||||
},
|
||||
};
|
||||
|
||||
export const LevelOptionType = {
|
||||
trait: {
|
||||
id: 'trait',
|
||||
|
|
@ -162,6 +192,7 @@ export const LevelOptionType = {
|
|||
id: 'multiclass',
|
||||
label: 'Multiclass'
|
||||
},
|
||||
...ClassLevelOptionTypes,
|
||||
...CompanionLevelOptionType
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue