rpg-combat-pi-01/src/characters/CharacterState.ts

22 lines
767 B
TypeScript

/**
* CharacterState — immutable record of all character state at a point in time.
*
* Groups the five character properties into a single value type,
* keeping the Character constructor at one parameter.
*/
import type { Health } from '../value-objects/Health.ts';
import type { Level } from '../value-objects/Level.ts';
import type { Status } from '../value-objects/Status.ts';
import type { Faction } from '../factions/Faction.ts';
import type { Damage } from '../value-objects/Damage.ts';
export type CharacterState = {
readonly name: string;
readonly health: Health;
readonly status: Status;
readonly level: Level;
readonly factions: ReadonlySet<Faction>;
readonly totalDamageTaken: Damage;
readonly factionsJoined: ReadonlySet<Faction>;
};