travian/src/State/HeroState.ts

31 lines
829 B
TypeScript

import { DataStorage } from '../DataStorage';
import { HeroAttributes } from '../Game';
const VILLAGE_ID_KEY = 'village_id';
const ATTRIBUTES_KEY = 'attr';
export class HeroState {
private storage: DataStorage;
constructor() {
this.storage = new DataStorage('hero.v1');
}
storeVillageId(villageId: number) {
this.storage.set(VILLAGE_ID_KEY, villageId);
}
getVillageId(): number | undefined {
return (this.storage.get(VILLAGE_ID_KEY) as number) || undefined;
}
storeAttributes(attributes: HeroAttributes) {
this.storage.set(ATTRIBUTES_KEY, attributes);
}
getAttributes(): HeroAttributes {
let plain = this.storage.get(ATTRIBUTES_KEY);
let res = new HeroAttributes(0);
return Object.assign(res, plain) as HeroAttributes;
}
}