diff --git a/src/samples/slay-the-spire-like/data/desert/triggers/card-events.ts b/src/samples/slay-the-spire-like/data/desert/triggers/card-events.ts index 21ba363..ca663ff 100644 --- a/src/samples/slay-the-spire-like/data/desert/triggers/card-events.ts +++ b/src/samples/slay-the-spire-like/data/desert/triggers/card-events.ts @@ -30,9 +30,9 @@ export function addCardEventTriggers(triggers: Triggers, run: IRunContext) { for (let i = 0; i < storm; i++) { await triggers.onEffectApplied.execute(ctx.game, { effect: findEffect("static"), - entityKey: "player", + entityId: "player", stacks: 1, - sourceEntityKey: ctx.enemyId, + sourceEntityId: ctx.enemyId, }); } } @@ -52,7 +52,7 @@ export function addCardEventTriggers(triggers: Triggers, run: IRunContext) { await triggers.onCardPlayed.execute(ctx.game, { cardId: id, targetId: ctx.targetId, - sourceEntityKey: "player", + sourceEntityId: "player", }); } } @@ -113,17 +113,17 @@ export function addCardEventTriggers(triggers: Triggers, run: IRunContext) { await next(); const dealt = ctx.amount - (ctx.prevented ?? 0); - if (dealt <= 0 || !ctx.sourceEntityKey) return; + if (dealt <= 0 || !ctx.sourceEntityId) return; - const attacker = getCombatEntity(ctx.game.value, ctx.sourceEntityKey); + const attacker = getCombatEntity(ctx.game.value, ctx.sourceEntityId); if (!attacker || !("enemy" in attacker) || attacker.enemy.id !== "秃鹫") return; await triggers.onEffectApplied.execute(ctx.game, { effect: findEffect("vultureEye"), - entityKey: "player", + entityId: "player", stacks: 1, - sourceEntityKey: ctx.sourceEntityKey, + sourceEntityId: ctx.sourceEntityId, }); }); } diff --git a/src/samples/slay-the-spire-like/data/desert/triggers/damage.ts b/src/samples/slay-the-spire-like/data/desert/triggers/damage.ts index e0f38bf..b95c36c 100644 --- a/src/samples/slay-the-spire-like/data/desert/triggers/damage.ts +++ b/src/samples/slay-the-spire-like/data/desert/triggers/damage.ts @@ -22,7 +22,7 @@ export function addDamageTriggers(triggers: Triggers) { // block / damage prevention triggers.onDamage.use(async (ctx, next) => { - const entity = getCombatEntity(ctx.game.value, ctx.entityKey); + const entity = getCombatEntity(ctx.game.value, ctx.entityId); if (!entity) return; let preventable = ctx.amount - (ctx.prevented ?? 0); @@ -42,7 +42,7 @@ export function addDamageTriggers(triggers: Triggers) { ctx.prevented = (ctx.prevented ?? 0) + blocked; preventable -= blocked; await ctx.game.produceAsync((draft) => { - const e = getCombatEntity(draft, ctx.entityKey); + const e = getCombatEntity(draft, ctx.entityId); if (e) addEntityEffect(e, findEffect("defend"), -blocked); }); } @@ -61,26 +61,26 @@ export function addDamageTriggers(triggers: Triggers) { if (ctx.amount - (ctx.prevented ?? 0) <= 0) return; - const entity = getCombatEntity(ctx.game.value, ctx.entityKey); + const entity = getCombatEntity(ctx.game.value, ctx.entityId); if (!entity || !entity.isAlive) return; const spike = entity.effects.spike?.stacks ?? 0; - if (spike > 0 && ctx.sourceEntityKey) { + if (spike > 0 && ctx.sourceEntityId) { await triggers.onDamage.execute(ctx.game, { - entityKey: ctx.sourceEntityKey, + entityId: ctx.sourceEntityId, amount: spike, - sourceEntityKey: ctx.entityKey, + sourceEntityId: ctx.entityId, }); } }); // energyDrain: player loses energy when enemy takes damage triggers.onDamage.use(async (ctx, next) => { - const entity = getCombatEntity(ctx.game.value, ctx.entityKey); + const entity = getCombatEntity(ctx.game.value, ctx.entityId); if (!entity) return; const energyDrain = entity.effects.energyDrain?.stacks ?? 0; - if (energyDrain > 0 && ctx.entityKey !== "player") { + if (energyDrain > 0 && ctx.entityId !== "player") { const dealt = Math.min( Math.max(0, entity.hp), ctx.amount - (ctx.prevented ?? 0), @@ -97,7 +97,7 @@ export function addDamageTriggers(triggers: Triggers) { // molt: enemy flees if molt >= maxHp triggers.onDamage.use(async (ctx, next) => { - const entity = getCombatEntity(ctx.game.value, ctx.entityKey); + const entity = getCombatEntity(ctx.game.value, ctx.entityId); if (!entity || !entity.isAlive) { await next(); return; @@ -106,7 +106,7 @@ export function addDamageTriggers(triggers: Triggers) { const molt = entity.effects.molt?.stacks ?? 0; if (molt >= entity.maxHp) { await ctx.game.produceAsync((draft) => { - const e = draft.enemies.find((en) => en.id === ctx.entityKey); + const e = draft.enemies.find((en) => en.id === ctx.entityId); if (e) { e.isAlive = false; e.hp = 0; @@ -124,7 +124,7 @@ export function addDamageTriggers(triggers: Triggers) { // aim: double damage, lose aim on damage triggers.onDamage.use(async (ctx, next) => { - if (ctx.sourceEntityKey === "player") { + if (ctx.sourceEntityId === "player") { const player = ctx.game.value.player; const aim = player.effects.aim?.stacks ?? 0; if (aim > 0) { @@ -136,7 +136,7 @@ export function addDamageTriggers(triggers: Triggers) { // roll: consume 10 roll per 10 damage triggers.onDamage.use(async (ctx, next) => { - if (ctx.sourceEntityKey === "player") { + if (ctx.sourceEntityId === "player") { const player = ctx.game.value.player; const roll = player.effects.roll?.stacks ?? 0; if (roll >= 10) { @@ -152,8 +152,8 @@ export function addDamageTriggers(triggers: Triggers) { // tailSting: bonus damage on attack triggers.onDamage.use(async (ctx, next) => { - if (ctx.sourceEntityKey && ctx.sourceEntityKey !== "player") { - const attacker = getCombatEntity(ctx.game.value, ctx.sourceEntityKey); + if (ctx.sourceEntityId && ctx.sourceEntityId !== "player") { + const attacker = getCombatEntity(ctx.game.value, ctx.sourceEntityId); if (attacker) { const tailSting = attacker.effects.tailSting?.stacks ?? 0; if (tailSting > 0) { @@ -166,7 +166,7 @@ export function addDamageTriggers(triggers: Triggers) { // charge: double damage dealt/received, consume equal charge triggers.onDamage.use(async (ctx, next) => { - const entity = getCombatEntity(ctx.game.value, ctx.entityKey); + const entity = getCombatEntity(ctx.game.value, ctx.entityId); if (entity) { const charge = entity.effects.charge?.stacks ?? 0; if (charge > 0) { @@ -178,20 +178,20 @@ export function addDamageTriggers(triggers: Triggers) { ctx.amount += dealt; if (consumed > 0) { await ctx.game.produceAsync((draft) => { - const e = getCombatEntity(draft, ctx.entityKey); + const e = getCombatEntity(draft, ctx.entityId); if (e) addEntityEffect(e, findEffect("charge"), -consumed); }); } } } - if (ctx.sourceEntityKey) { - const attacker = getCombatEntity(ctx.game.value, ctx.sourceEntityKey); + if (ctx.sourceEntityId) { + const attacker = getCombatEntity(ctx.game.value, ctx.sourceEntityId); if (attacker) { const charge = attacker.effects.charge?.stacks ?? 0; if (charge > 0) { const baseAmount = ctx.amount; - const targetEntity = getCombatEntity(ctx.game.value, ctx.entityKey); + const targetEntity = getCombatEntity(ctx.game.value, ctx.entityId); const dealt = Math.min( Math.max(0, targetEntity?.hp ?? 0), baseAmount - (ctx.prevented ?? 0), @@ -200,7 +200,7 @@ export function addDamageTriggers(triggers: Triggers) { ctx.amount += dealt; if (consumed > 0) { await ctx.game.produceAsync((draft) => { - const a = getCombatEntity(draft, ctx.sourceEntityKey!); + const a = getCombatEntity(draft, ctx.sourceEntityId!); if (a) addEntityEffect(a, findEffect("charge"), -consumed); }); } diff --git a/src/samples/slay-the-spire-like/data/desert/triggers/instant.ts b/src/samples/slay-the-spire-like/data/desert/triggers/instant.ts index cc26714..df8b9e3 100644 --- a/src/samples/slay-the-spire-like/data/desert/triggers/instant.ts +++ b/src/samples/slay-the-spire-like/data/desert/triggers/instant.ts @@ -93,10 +93,10 @@ export function addInstantEffectTriggers(triggers: Triggers) { triggers.onEffectApplied.use(async (ctx, next) => { if (ctx.effect.id === "attack") { await triggers.onDamage.execute(ctx.game, { - entityKey: ctx.entityKey, + entityId: ctx.entityId, amount: ctx.stacks, - sourceEntityKey: - (ctx.sourceEntityKey ?? ctx.entityKey === "player") + sourceEntityId: + (ctx.sourceEntityId ?? ctx.entityId === "player") ? undefined : "player", }); diff --git a/src/samples/slay-the-spire-like/data/desert/triggers/turn-start.ts b/src/samples/slay-the-spire-like/data/desert/triggers/turn-start.ts index 7c4cea5..894f0d9 100644 --- a/src/samples/slay-the-spire-like/data/desert/triggers/turn-start.ts +++ b/src/samples/slay-the-spire-like/data/desert/triggers/turn-start.ts @@ -19,7 +19,7 @@ export function addTurnStartTriggers(triggers: Triggers) { // discard: random discard at turn start triggers.onTurnStart.use(async (ctx, next) => { - if (ctx.entityKey !== "player") { + if (ctx.entityId !== "player") { await next(); return; } @@ -56,7 +56,7 @@ export function addTurnStartTriggers(triggers: Triggers) { // energyNext: gain energy next turn triggers.onTurnStart.use(async (ctx, next) => { - if (ctx.entityKey !== "player") { + if (ctx.entityId !== "player") { await next(); return; } @@ -74,7 +74,7 @@ export function addTurnStartTriggers(triggers: Triggers) { // drawNext: draw extra cards next turn triggers.onTurnStart.use(async (ctx, next) => { - if (ctx.entityKey !== "player") { + if (ctx.entityId !== "player") { await next(); return; } diff --git a/src/samples/slay-the-spire-like/system/combat/triggers.ts b/src/samples/slay-the-spire-like/system/combat/triggers.ts index 36958b0..d0ec33c 100644 --- a/src/samples/slay-the-spire-like/system/combat/triggers.ts +++ b/src/samples/slay-the-spire-like/system/combat/triggers.ts @@ -19,33 +19,33 @@ import { EffectData } from "@/samples/slay-the-spire-like/system/types"; type TriggerTypes = { onCombatStart: {}; - onTurnStart: { entityKey: "player" | string }; - onTurnEnd: { entityKey: "player" | string }; + onTurnStart: { entityId: "player" | string }; + onTurnEnd: { entityId: "player" | string }; onShuffle: {}; onCardPlayed: { cardId: string; targetId?: string; - sourceEntityKey?: "player" | string; + sourceEntityId?: "player" | string; }; - onCardDiscarded: { cardId: string; sourceEntityKey?: "player" | string }; - onCardDrawn: { cardId: string; sourceEntityKey?: "player" | string }; + onCardDiscarded: { cardId: string; sourceEntityId?: "player" | string }; + onCardDrawn: { cardId: string; sourceEntityId?: "player" | string }; onDraw: { count: number }; onEffectApplied: { effect: EffectData; - entityKey: "player" | string; + entityId: "player" | string; stacks: number; cardId?: string; - sourceEntityKey?: "player" | string; + sourceEntityId?: "player" | string; targetId?: string; }; - onHpChange: { entityKey: "player" | string; amount: number }; + onHpChange: { entityId: "player" | string; amount: number }; onDamage: { - entityKey: "player" | string; + entityId: "player" | string; amount: number; prevented?: number; - sourceEntityKey?: "player" | string; + sourceEntityId?: "player" | string; }; - onEnemyIntent: { enemyId: string; sourceEntityKey?: "player" | string }; + onEnemyIntent: { enemyId: string; sourceEntityId?: "player" | string }; onIntentUpdate: { enemyId: string }; }; @@ -57,13 +57,13 @@ export function createTriggers(run: IRunContext) { }), onTurnStart: createTrigger("onTurnStart", async (ctx) => { await ctx.game.produceAsync((draft) => { - const entity = getCombatEntity(draft, ctx.entityKey); + const entity = getCombatEntity(draft, ctx.entityId); if (entity) onEntityEffectUpkeep(entity); if (entity === draft.player) onPlayerItemEffectUpkeep(draft.player); }); }), onTurnEnd: createTrigger("onTurnEnd", async (ctx) => { - if (ctx.entityKey !== "player") return; + if (ctx.entityId !== "player") return; const { regions } = ctx.game.value.player.deck; for (const cardId of Object.values(regions.hand.childIds)) { await triggers.onCardDiscarded.execute(ctx.game, { cardId }); @@ -97,7 +97,7 @@ export function createTriggers(run: IRunContext) { }); const { cards, regions } = ctx.game.value.player.deck; const card = cards[ctx.cardId]; - const source = ctx.sourceEntityKey ?? "player"; + const source = ctx.sourceEntityId ?? "player"; for (const { trigger, target, effects } of card.cardData.effects) { if (trigger !== "onPlay") continue; for (const [effect, stacks] of effects) @@ -109,10 +109,10 @@ export function createTriggers(run: IRunContext) { )) await triggers.onEffectApplied.execute(ctx.game, { effect, - entityKey: entity.id, + entityId: entity.id, stacks, cardId: ctx.cardId, - sourceEntityKey: source, + sourceEntityId: source, targetId: ctx.targetId, }); } @@ -125,7 +125,7 @@ export function createTriggers(run: IRunContext) { }); const { cards, regions } = ctx.game.value.player.deck; const card = cards[ctx.cardId]; - const source = ctx.sourceEntityKey ?? "player"; + const source = ctx.sourceEntityId ?? "player"; for (const { trigger, target, effects } of card.cardData.effects) { if (trigger !== "onDiscard") continue; for (const [effect, stacks] of effects) @@ -137,10 +137,10 @@ export function createTriggers(run: IRunContext) { )) await triggers.onEffectApplied.execute(ctx.game, { effect, - entityKey: entity.id, + entityId: entity.id, stacks, cardId: ctx.cardId, - sourceEntityKey: source, + sourceEntityId: source, }); } }), @@ -151,7 +151,7 @@ export function createTriggers(run: IRunContext) { }); const { cards, regions } = ctx.game.value.player.deck; const card = cards[ctx.cardId]; - const source = ctx.sourceEntityKey ?? "player"; + const source = ctx.sourceEntityId ?? "player"; for (const { trigger, target, effects } of card.cardData.effects) { if (trigger !== "onDraw") continue; for (const [effect, stacks] of effects) @@ -163,10 +163,10 @@ export function createTriggers(run: IRunContext) { )) await triggers.onEffectApplied.execute(ctx.game, { effect, - entityKey: entity.id, + entityId: entity.id, stacks, cardId: ctx.cardId, - sourceEntityKey: source, + sourceEntityId: source, }); } }), @@ -204,18 +204,18 @@ export function createTriggers(run: IRunContext) { await ctx.game.produceAsync((draft) => { const entity = - ctx.entityKey === "player" + ctx.entityId === "player" ? draft.player - : draft.enemies.find((e) => e.id === ctx.entityKey); + : draft.enemies.find((e) => e.id === ctx.entityId); if (entity) addEntityEffect(entity, ctx.effect, ctx.stacks); }); }), onHpChange: createTrigger("onHpChange", async (ctx) => { await ctx.game.produceAsync((draft) => { const entity = - ctx.entityKey === "player" + ctx.entityId === "player" ? draft.player - : draft.enemies.find((e) => e.id === ctx.entityKey); + : draft.enemies.find((e) => e.id === ctx.entityId); if (!entity) return; entity.hp += ctx.amount; entity.isAlive = entity.hp > 0; @@ -229,9 +229,9 @@ export function createTriggers(run: IRunContext) { }), onDamage: createTrigger("onDamage", async (ctx) => { const entity = - ctx.entityKey === "player" + ctx.entityId === "player" ? ctx.game.value.player - : ctx.game.value.enemies.find((e) => e.id === ctx.entityKey); + : ctx.game.value.enemies.find((e) => e.id === ctx.entityId); if (!entity || !entity.isAlive) return; const dealt = Math.min( Math.max(0, entity.hp), @@ -241,7 +241,7 @@ export function createTriggers(run: IRunContext) { onEntityPostureDamage(entity, dealt); }); await triggers.onHpChange.execute(ctx.game, { - entityKey: ctx.entityKey, + entityId: ctx.entityId, amount: -dealt, }); }), @@ -252,7 +252,7 @@ export function createTriggers(run: IRunContext) { const intent = enemy.currentIntent; if (!intent) return; - const source = ctx.sourceEntityKey ?? enemy.id; + const source = ctx.sourceEntityId ?? enemy.id; for (const [target, effect, stacks] of intent.effects) { for (const entity of getEffectTargets( target, @@ -262,9 +262,9 @@ export function createTriggers(run: IRunContext) { )) await triggers.onEffectApplied.execute(ctx.game, { effect, - entityKey: entity.id, + entityId: entity.id, stacks, - sourceEntityKey: source, + sourceEntityId: source, }); } }), @@ -298,7 +298,7 @@ export function createStartWith( try { while (true) { - await triggers.onTurnStart.execute(game, { entityKey: "player" }); + await triggers.onTurnStart.execute(game, { entityId: "player" }); while (true) { const action = await promptMainAction(game, run); if (action.action === "end-turn") break; @@ -306,17 +306,17 @@ export function createStartWith( await triggers.onCardPlayed.execute(game, action); } } - await triggers.onTurnEnd.execute(game, { entityKey: "player" }); + await triggers.onTurnEnd.execute(game, { entityId: "player" }); for (const enemy of getAliveEnemies(game.value)) { - await triggers.onTurnStart.execute(game, { entityKey: enemy.id }); + await triggers.onTurnStart.execute(game, { entityId: enemy.id }); } for (const enemy of getAliveEnemies(game.value)) { await triggers.onEnemyIntent.execute(game, { enemyId: enemy.id }); await triggers.onIntentUpdate.execute(game, { enemyId: enemy.id }); } for (const enemy of getAliveEnemies(game.value)) { - await triggers.onTurnEnd.execute(game, { entityKey: enemy.id }); + await triggers.onTurnEnd.execute(game, { entityId: enemy.id }); } } } catch (e) { diff --git a/tests/samples/slay-the-spire-like/combat/triggers.test.ts b/tests/samples/slay-the-spire-like/combat/triggers.test.ts index 124038c..e191a92 100644 --- a/tests/samples/slay-the-spire-like/combat/triggers.test.ts +++ b/tests/samples/slay-the-spire-like/combat/triggers.test.ts @@ -205,9 +205,9 @@ describe("desert triggers", () => { await triggers.onEffectApplied.execute(ctx, { effect: attackEffect, - entityKey: "player", + entityId: "player", stacks: 5, - sourceEntityKey: "enemy-0", + sourceEntityId: "enemy-0", }); expect(ctx.value.player.hp).toBe(25); @@ -223,7 +223,7 @@ describe("desert triggers", () => { await triggers.onEffectApplied.execute(ctx, { effect: drawEffect, - entityKey: "player", + entityId: "player", stacks: 2, }); @@ -239,7 +239,7 @@ describe("desert triggers", () => { const initialEnergy = ctx.value.player.energy; await triggers.onEffectApplied.execute(ctx, { effect: gainEnergyEffect, - entityKey: "player", + entityId: "player", stacks: 2, }); @@ -261,7 +261,7 @@ describe("desert triggers", () => { await triggers.onEffectApplied.execute(ctx, { effect: removeWoundEffect, - entityKey: "player", + entityId: "player", stacks: 2, }); @@ -286,9 +286,9 @@ describe("desert triggers", () => { }); await triggers.onDamage.execute(ctx, { - entityKey: "player", + entityId: "player", amount: 8, - sourceEntityKey: "enemy-0", + sourceEntityId: "enemy-0", }); expect(ctx.value.player.hp).toBe(27); @@ -312,9 +312,9 @@ describe("desert triggers", () => { }); await triggers.onDamage.execute(ctx, { - entityKey: "player", + entityId: "player", amount: 8, - sourceEntityKey: "enemy-0", + sourceEntityId: "enemy-0", }); expect(ctx.value.player.hp).toBe(25); @@ -334,9 +334,9 @@ describe("desert triggers", () => { }); await triggers.onDamage.execute(ctx, { - entityKey: "player", + entityId: "player", amount: 5, - sourceEntityKey: "enemy-0", + sourceEntityId: "enemy-0", }); expect(ctx.value.player.hp).toBe(23); @@ -359,9 +359,9 @@ describe("desert triggers", () => { }); await triggers.onDamage.execute(ctx, { - entityKey: "仙人掌怪-0", + entityId: "仙人掌怪-0", amount: 5, - sourceEntityKey: "player", + sourceEntityId: "player", }); expect(ctx.value.player.hp).toBe(27); @@ -402,9 +402,9 @@ describe("desert triggers", () => { }); await triggers.onDamage.execute(ctx, { - entityKey: "幼沙虫-0", + entityId: "幼沙虫-0", amount: 5, - sourceEntityKey: "player", + sourceEntityId: "player", }); expect(ctx.value.player.energy).toBe(2); @@ -429,9 +429,9 @@ describe("desert triggers", () => { let threw = false; try { await triggers.onDamage.execute(ctx, { - entityKey: "蜥蜴-0", + entityId: "蜥蜴-0", amount: 1, - sourceEntityKey: "player", + sourceEntityId: "player", }); } catch (e) { threw = true; @@ -457,7 +457,7 @@ describe("desert triggers", () => { draft.player.effects.discard = { data: discardEffect, stacks: 1 }; }); - await triggers.onTurnStart.execute(ctx, { entityKey: "player" }); + await triggers.onTurnStart.execute(ctx, { entityId: "player" }); expect(ctx.value.player.deck.regions.hand.childIds.length).toBe(2); expect(ctx.value.player.deck.regions.discardPile.childIds.length).toBe(1); @@ -474,7 +474,7 @@ describe("desert triggers", () => { draft.player.effects.defendNext = { data: defendNextEffect, stacks: 5 }; }); - await triggers.onTurnStart.execute(ctx, { entityKey: "player" }); + await triggers.onTurnStart.execute(ctx, { entityId: "player" }); expect(ctx.value.player.effects.defend?.stacks).toBe(5); expect(ctx.value.player.effects.defendNext).toBeUndefined(); @@ -489,7 +489,7 @@ describe("desert triggers", () => { draft.player.effects.energyNext = { data: energyNextEffect, stacks: 2 }; }); - await triggers.onTurnStart.execute(ctx, { entityKey: "player" }); + await triggers.onTurnStart.execute(ctx, { entityId: "player" }); expect(ctx.value.player.energy).toBe(5); expect(ctx.value.player.effects.energyNext).toBeUndefined(); @@ -508,7 +508,7 @@ describe("desert triggers", () => { draft.player.effects.drawNext = { data: drawNextEffect, stacks: 2 }; }); - await triggers.onTurnStart.execute(ctx, { entityKey: "player" }); + await triggers.onTurnStart.execute(ctx, { entityId: "player" }); expect(ctx.value.player.deck.regions.hand.childIds.length).toBe(2); expect(ctx.value.player.effects.drawNext).toBeUndefined(); @@ -530,9 +530,9 @@ describe("desert triggers", () => { }); await triggers.onDamage.execute(ctx, { - entityKey: "仙人掌怪-0", + entityId: "仙人掌怪-0", amount: 5, - sourceEntityKey: "player", + sourceEntityId: "player", }); expect(ctx.value.enemies[0].hp).toBe(2); @@ -552,9 +552,9 @@ describe("desert triggers", () => { }); await triggers.onDamage.execute(ctx, { - entityKey: "仙人掌怪-0", + entityId: "仙人掌怪-0", amount: 5, - sourceEntityKey: "player", + sourceEntityId: "player", }); expect(ctx.value.enemies[0].hp).toBe(74); @@ -576,9 +576,9 @@ describe("desert triggers", () => { }); await triggers.onDamage.execute(ctx, { - entityKey: "player", + entityId: "player", amount: 5, - sourceEntityKey: "沙蝎-0", + sourceEntityId: "沙蝎-0", }); expect(ctx.value.player.hp).toBe(23); @@ -599,9 +599,9 @@ describe("desert triggers", () => { }); await triggers.onDamage.execute(ctx, { - entityKey: "player", + entityId: "player", amount: 5, - sourceEntityKey: "骑马枪手-0", + sourceEntityId: "骑马枪手-0", }); expect(ctx.value.player.hp).toBe(20); @@ -623,10 +623,10 @@ describe("desert triggers", () => { await triggers.onEffectApplied.execute(ctx, { effect: crossbowEffect, - entityKey: "player", + entityId: "player", stacks: 0, cardId: "crossbow-1", - sourceEntityKey: "player", + sourceEntityId: "player", targetId: "仙人掌怪-0", }); @@ -647,7 +647,7 @@ describe("desert triggers", () => { await triggers.onCardDiscarded.execute(ctx, { cardId: "fatigue-1", - sourceEntityKey: "player", + sourceEntityId: "player", }); expect(ctx.value.enemies[0].hp).toBe(40); @@ -664,9 +664,9 @@ describe("desert triggers", () => { const triggers = getTriggers(); await triggers.onDamage.execute(ctx, { - entityKey: "player", + entityId: "player", amount: 5, - sourceEntityKey: "秃鹫-0", + sourceEntityId: "秃鹫-0", }); const vultureEyeCards = Object.values(ctx.value.player.deck.cards).filter(