Simplify checking if something is a valid attribute / trait / combatValue key
This commit is contained in:
parent
24725c15f9
commit
549669e9e2
5 changed files with 39 additions and 58 deletions
|
@ -21,30 +21,32 @@ interface DS4ActorDataDataBase {
|
|||
combatValues: DS4ActorDataDataCombatValues;
|
||||
}
|
||||
|
||||
interface DS4ActorDataDataAttributes {
|
||||
body: ModifiableDataBase<number>;
|
||||
mobility: ModifiableDataBase<number>;
|
||||
mind: ModifiableDataBase<number>;
|
||||
type DS4ActorDataDataAttributes = { [Key in keyof typeof DS4.i18n.attributes]: ModifiableDataBase<number> };
|
||||
|
||||
type Attribute = keyof DS4ActorDataDataAttributes;
|
||||
|
||||
export function isAttribute(value: unknown): value is Attribute {
|
||||
return (Object.keys(DS4.i18n.attributes) as Array<unknown>).includes(value);
|
||||
}
|
||||
|
||||
interface DS4ActorDataDataTraits {
|
||||
strength: ModifiableDataBase<number>;
|
||||
constitution: ModifiableDataBase<number>;
|
||||
agility: ModifiableDataBase<number>;
|
||||
dexterity: ModifiableDataBase<number>;
|
||||
intellect: ModifiableDataBase<number>;
|
||||
aura: ModifiableDataBase<number>;
|
||||
type DS4ActorDataDataTraits = { [Key in keyof typeof DS4.i18n.traits]: ModifiableDataBase<number> };
|
||||
|
||||
type Trait = keyof DS4ActorDataDataTraits;
|
||||
|
||||
export function isTrait(value: unknown): value is Trait {
|
||||
return (Object.keys(DS4.i18n.traits) as Array<unknown>).includes(value);
|
||||
}
|
||||
|
||||
interface DS4ActorDataDataCombatValues {
|
||||
hitPoints: ResourceData<number>;
|
||||
defense: ModifiableData<number>;
|
||||
initiative: ModifiableData<number>;
|
||||
movement: ModifiableData<number>;
|
||||
meleeAttack: ModifiableData<number>;
|
||||
rangedAttack: ModifiableData<number>;
|
||||
spellcasting: ModifiableData<number>;
|
||||
targetedSpellcasting: ModifiableData<number>;
|
||||
type DS4ActorDataDataCombatValues = {
|
||||
[Key in keyof typeof DS4.i18n.combatValues]: Key extends "hitPoints"
|
||||
? ResourceData<number>
|
||||
: ModifiableData<number>;
|
||||
};
|
||||
|
||||
type CombatValue = keyof DS4ActorDataDataCombatValues;
|
||||
|
||||
export function isCombatValue(value: string): value is CombatValue {
|
||||
return (Object.keys(DS4.i18n.combatValues) as Array<unknown>).includes(value);
|
||||
}
|
||||
|
||||
// types
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue