game_logic 정의

This commit is contained in:
2023-09-23 18:34:27 +00:00
parent cea888573c
commit e084835249
14 changed files with 215 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
import type { RandUtil } from "@sammo/crypto";
import type { General } from "./General.js";
import type { GeneralTriggerCaller } from "./TriggerCaller/GeneralTriggerCaller.js";
import type { WarUnitTriggerCaller } from "./TriggerCaller/WarUnitTriggerCaller.js";
import type { WarUnit } from "./WarUnit.js";
export interface IAction {
getName(): string;
getInfo(): string;
getPreTurnExecuteTriggerList(general: General):GeneralTriggerCaller | undefined;
//TODO: turnType, varType이 string이면 안됨. enum에 가까워야함!
onCalcDomestic(turnType: string, varType: string, value: number, aux?: unknown[]): number;
onCalcStat(general: General, statName: string, value: number, aux?: unknown[]): number;
onCalcOpposeStat(general: General, statName: string, value: number, aux?: unknown[]): number;
onCalcStrategic(turnType: string, varType: string, value: number): number;
onCalcNationalIncome(type: string, value: number): number;
getWarPowerMultiplier(unit: WarUnit): [number, number];
getBattleInitSkillTriggerList(unit: WarUnit): WarUnitTriggerCaller | undefined;
getBattlePhaseSkillTriggerList(unit: WarUnit): WarUnitTriggerCaller | undefined;
onArbitraryAction(general: General, rng: RandUtil, actionType: string, phase?: string, aux?: unknown[]): null | string[];
}