diff --git a/server/game/GameActions/ResolveAbilityAction.ts b/server/game/GameActions/ResolveAbilityAction.ts index 031c5c0f42..1001f62e3f 100644 --- a/server/game/GameActions/ResolveAbilityAction.ts +++ b/server/game/GameActions/ResolveAbilityAction.ts @@ -43,7 +43,7 @@ class ResolveAbilityActionResolver extends AbilityResolver { card: this.context.source, context: this.context })); - } + } this.game.openEventWindow(events); } @@ -83,7 +83,7 @@ export interface ResolveAbilityProperties extends CardActionProperties { export class ResolveAbilityAction extends CardGameAction { name = 'resolveAbility'; - defaultProperties: ResolveAbilityProperties = { + defaultProperties: ResolveAbilityProperties = { ability: null, ignoredRequirements: [], subResolution: false @@ -106,7 +106,7 @@ export class ResolveAbilityAction extends CardGameAction { return false; } let newContext = ability.createContext(player, newContextEvent); - let ignoredRequirements = properties.ignoredRequirements.concat('player', 'location'); + let ignoredRequirements = properties.ignoredRequirements.concat('player', 'location', 'limit'); return !ability.meetsRequirements(newContext, ignoredRequirements); } diff --git a/test/server/cards/09.5-aCF/KeeperofSecretNames.spec.js b/test/server/cards/09.5-aCF/KeeperofSecretNames.spec.js index 508a602bb0..d465a85b47 100644 --- a/test/server/cards/09.5-aCF/KeeperofSecretNames.spec.js +++ b/test/server/cards/09.5-aCF/KeeperofSecretNames.spec.js @@ -129,6 +129,29 @@ describe('Keeper of Secret Names', function() { expect(this.player2.fate).toBe(p2fate - 2); }); + it('Should be able to trigger after province has been triggered', function() { + this.player1.passConflict(); + this.noMoreActions(); + this.initiateConflict({ + type: 'military', + attackers: [this.p2Keeper], + defenders: [this.p1Keeper], + province: this.vassalFields + }); + + let p2fate = this.player2.fate; + + this.player1.clickCard(this.vassalFields); + expect(this.player2.fate).toBe(p2fate - 1); + + this.player2.pass(); + + this.player1.clickCard(this.p1Keeper); + expect(this.player1).toBeAbleToSelect(this.vassalFields); + this.player1.clickCard(this.vassalFields); + expect(this.player2.fate).toBe(p2fate - 2); + }); + it('Riot in the Streets (province has a triggering condition)', function() { this.initiateConflict({ type: 'military',