Separate types for data and _data for DS4Actor
This commit is contained in:
parent
7c7d30854c
commit
17633ced68
7 changed files with 174 additions and 102 deletions
|
@ -1,4 +1,4 @@
|
|||
import { ModifiableDataTotal, ResourceData, UsableResource } from "../common/common-data";
|
||||
import { ModifiableData, ModifiableDataBase, ResourceData, UsableResource } from "../common/common-data";
|
||||
import { DS4 } from "../config";
|
||||
import { DS4ItemData } from "../item/item-data";
|
||||
|
||||
|
@ -6,50 +6,48 @@ export type DS4ActorData = DS4CharacterData | DS4CreatureData;
|
|||
|
||||
type ActorType = keyof typeof DS4.i18n.actorTypes;
|
||||
|
||||
interface DS4ActorDataHelper<T, U extends ActorType> extends Actor.Data<T, DS4ItemData> {
|
||||
export interface DS4ActorDataHelper<T, U extends ActorType> extends Actor.Data<T, DS4ItemData> {
|
||||
type: U;
|
||||
}
|
||||
|
||||
type DS4CharacterData = DS4ActorDataHelper<DS4CharacterDataData, "character">;
|
||||
type DS4CreatureData = DS4ActorDataHelper<DS4CreatureDataData, "creature">;
|
||||
|
||||
// templates
|
||||
|
||||
interface DS4ActorDataDataBase {
|
||||
attributes: DS4ActorDataDataAttributes;
|
||||
traits: DS4ActorDataDataTraits;
|
||||
combatValues: DS4ActorDataDataCombatValues;
|
||||
rolling: DS4ActorDataDataRolling;
|
||||
}
|
||||
|
||||
interface DS4ActorDataDataAttributes {
|
||||
body: ModifiableDataTotal<number>;
|
||||
mobility: ModifiableDataTotal<number>;
|
||||
mind: ModifiableDataTotal<number>;
|
||||
body: ModifiableDataBase<number>;
|
||||
mobility: ModifiableDataBase<number>;
|
||||
mind: ModifiableDataBase<number>;
|
||||
}
|
||||
|
||||
interface DS4ActorDataDataTraits {
|
||||
strength: ModifiableDataTotal<number>;
|
||||
constitution: ModifiableDataTotal<number>;
|
||||
agility: ModifiableDataTotal<number>;
|
||||
dexterity: ModifiableDataTotal<number>;
|
||||
intellect: ModifiableDataTotal<number>;
|
||||
aura: ModifiableDataTotal<number>;
|
||||
strength: ModifiableDataBase<number>;
|
||||
constitution: ModifiableDataBase<number>;
|
||||
agility: ModifiableDataBase<number>;
|
||||
dexterity: ModifiableDataBase<number>;
|
||||
intellect: ModifiableDataBase<number>;
|
||||
aura: ModifiableDataBase<number>;
|
||||
}
|
||||
|
||||
interface DS4ActorDataDataCombatValues {
|
||||
hitPoints: ResourceData<number>;
|
||||
defense: ModifiableDataTotal<number>;
|
||||
initiative: ModifiableDataTotal<number>;
|
||||
movement: ModifiableDataTotal<number>;
|
||||
meleeAttack: ModifiableDataTotal<number>;
|
||||
rangedAttack: ModifiableDataTotal<number>;
|
||||
spellcasting: ModifiableDataTotal<number>;
|
||||
targetedSpellcasting: ModifiableDataTotal<number>;
|
||||
defense: ModifiableData<number>;
|
||||
initiative: ModifiableData<number>;
|
||||
movement: ModifiableData<number>;
|
||||
meleeAttack: ModifiableData<number>;
|
||||
rangedAttack: ModifiableData<number>;
|
||||
spellcasting: ModifiableData<number>;
|
||||
targetedSpellcasting: ModifiableData<number>;
|
||||
}
|
||||
|
||||
interface DS4ActorDataDataRolling {
|
||||
maximumCoupResult?: number;
|
||||
minimumFumbleResult?: number;
|
||||
}
|
||||
// types
|
||||
|
||||
interface DS4CharacterDataData extends DS4ActorDataDataBase {
|
||||
baseInfo: DS4CharacterDataDataBaseInfo;
|
||||
|
@ -58,25 +56,25 @@ interface DS4CharacterDataData extends DS4ActorDataDataBase {
|
|||
profile: DS4CharacterDataDataProfile;
|
||||
currency: DS4CharacterDataDataCurrency;
|
||||
}
|
||||
interface DS4CharacterDataDataBaseInfo {
|
||||
export interface DS4CharacterDataDataBaseInfo {
|
||||
race: string;
|
||||
class: string;
|
||||
heroClass: string;
|
||||
culture: string;
|
||||
}
|
||||
interface DS4CharacterDataDataProgression {
|
||||
export interface DS4CharacterDataDataProgression {
|
||||
level: number;
|
||||
experiencePoints: number;
|
||||
talentPoints: UsableResource<number>;
|
||||
progressPoints: UsableResource<number>;
|
||||
}
|
||||
|
||||
interface DS4CharacterDataDataLanguage {
|
||||
export interface DS4CharacterDataDataLanguage {
|
||||
languages: string;
|
||||
alphabets: string;
|
||||
}
|
||||
|
||||
interface DS4CharacterDataDataProfile {
|
||||
export interface DS4CharacterDataDataProfile {
|
||||
biography: string;
|
||||
gender: string;
|
||||
birthday: string;
|
||||
|
@ -89,7 +87,7 @@ interface DS4CharacterDataDataProfile {
|
|||
specialCharacteristics: string;
|
||||
}
|
||||
|
||||
interface DS4CharacterDataDataCurrency {
|
||||
export interface DS4CharacterDataDataCurrency {
|
||||
gold: number;
|
||||
silver: number;
|
||||
copper: number;
|
||||
|
@ -99,11 +97,7 @@ interface DS4CreatureDataData extends DS4ActorDataDataBase {
|
|||
baseInfo: DS4CreatureDataDataBaseInfo;
|
||||
}
|
||||
|
||||
type CreatureType = "animal" | "construct" | "humanoid" | "magicalEntity" | "plantBeing" | "undead";
|
||||
|
||||
type SizeCategory = "tiny" | "small" | "normal" | "large" | "huge" | "colossal";
|
||||
|
||||
interface DS4CreatureDataDataBaseInfo {
|
||||
export interface DS4CreatureDataDataBaseInfo {
|
||||
loot: string;
|
||||
foeFactor: number;
|
||||
creatureType: CreatureType;
|
||||
|
@ -111,3 +105,7 @@ interface DS4CreatureDataDataBaseInfo {
|
|||
experiencePoints: number;
|
||||
description: string;
|
||||
}
|
||||
|
||||
type CreatureType = "animal" | "construct" | "humanoid" | "magicalEntity" | "plantBeing" | "undead";
|
||||
|
||||
type SizeCategory = "tiny" | "small" | "normal" | "large" | "huge" | "colossal";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue