22 lines
767 B
TypeScript
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>;
|
|
};
|