che_필살 예시 구현

This commit is contained in:
2023-09-24 05:43:06 +00:00
parent 905b401aab
commit 45f14f0b72
11 changed files with 220 additions and 27 deletions
+20 -22
View File
@@ -1,25 +1,23 @@
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";
import type * as IMethod from "./IActionMethod.js";
export type * as IMethod from "./IActionMethod.js";
export interface IActionMethod extends
IMethod.TurnExecuteTriggerList,
IMethod.CalcDomestic,
IMethod.CalcStat,
IMethod.CalcStatRange,
IMethod.CalcOpposeStat,
IMethod.CalcStrategic,
IMethod.CalcIncome,
IMethod.WarPowerMultiplier,
IMethod.BattleInitTrigger,
IMethod.BattlePhaseTrigger,
IMethod.ArbitraryAction {
}
export interface IAction extends Partial<IActionMethod> {
readonly name: string;
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[];
getInfo(): string[] | string;
}