feat: more effects

This commit is contained in:
2026-04-17 17:15:31 +08:00
parent 131af2c0bb
commit 90ca8fa761
2 changed files with 89 additions and 2 deletions
@@ -22,7 +22,7 @@ type TriggerTypes = {
onCardDiscarded: { cardId: string, sourceEntityKey?: "player" | string },
onCardDrawn: { cardId: string, sourceEntityKey?: "player" | string },
onDraw: {count: number},
onEffectApplied: { effect: EffectData, entityKey: "player" | string, stacks: number, cardId?: string, sourceEntityKey?: "player" | string },
onEffectApplied: { effect: EffectData, entityKey: "player" | string, stacks: number, cardId?: string, sourceEntityKey?: "player" | string, targetId?: string },
onHpChange: { entityKey: "player" | string, amount: number},
onDamage: { entityKey: "player" | string, amount: number, prevented?: number, sourceEntityKey?: "player" | string},
onEnemyIntent: { enemyId: string, sourceEntityKey?: "player" | string },
@@ -71,7 +71,7 @@ function createTriggers(){
for(const [trigger, target, effect, stacks] of card.cardData.effects){
if(trigger !== 'onPlay') continue;
for(const entity of getEffectTargets(target, ctx.game, ctx.targetId))
await triggers.onEffectApplied.execute(ctx.game,{effect, entityKey: entity.id, stacks, cardId: ctx.cardId, sourceEntityKey: source});
await triggers.onEffectApplied.execute(ctx.game,{effect, entityKey: entity.id, stacks, cardId: ctx.cardId, sourceEntityKey: source, targetId: ctx.targetId});
}
}),
onCardDiscarded: createTrigger("onCardDiscarded", async ctx => {