From aad5f6ce937e56a8e56c5fd80f1cd73ab2d70a73 Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Sun, 15 Jan 2023 23:01:46 +0100 Subject: [PATCH] Clean up --- .../java/forge/game/TriggerReplacementBase.java | 8 -------- forge-game/src/main/java/forge/game/card/Card.java | 3 +-- .../src/main/java/forge/game/cost/CostExert.java | 13 ++++++------- .../src/main/java/forge/game/cost/CostPart.java | 5 +---- .../staticability/StaticAbilityCantAttackBlock.java | 2 +- .../java/forge/game/trigger/TriggerExerted.java | 3 --- forge-gui/res/cardsfolder/a/ahn_crop_crasher.txt | 2 +- 7 files changed, 10 insertions(+), 26 deletions(-) diff --git a/forge-game/src/main/java/forge/game/TriggerReplacementBase.java b/forge-game/src/main/java/forge/game/TriggerReplacementBase.java index b5a10c0535a..3e636eb4968 100644 --- a/forge-game/src/main/java/forge/game/TriggerReplacementBase.java +++ b/forge-game/src/main/java/forge/game/TriggerReplacementBase.java @@ -17,7 +17,6 @@ public abstract class TriggerReplacementBase extends CardTraitBase implements II /** The overriding ability. */ private SpellAbility overridingAbility = null; - private CardTraitBase linkedAbility = null; @Override public void setHostCard(final Card c) { @@ -77,12 +76,5 @@ public abstract class TriggerReplacementBase extends CardTraitBase implements II this.overridingAbility = overridingAbility0; } - public CardTraitBase getLinkedAbility() { - return this.linkedAbility; - } - public void setLinkedAbility(final CardTraitBase linked) { - this.linkedAbility = linked; - } - abstract public SpellAbility ensureAbility(); } diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 8d8f8901391..27731326e3c 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -5789,13 +5789,12 @@ public class Card extends GameEntity implements Comparable, IHasSVars { return exertThisTurn; } - public void exert(StaticAbility host) { + public void exert() { exertedByPlayer.add(getController()); exertThisTurn++; view.updateExertedThisTurn(this, true); final Map runParams = AbilityKey.mapFromCard(this); runParams.put(AbilityKey.Player, getController()); - runParams.put(AbilityKey.Source, host); game.getTriggerHandler().runTrigger(TriggerType.Exerted, runParams, false); } diff --git a/forge-game/src/main/java/forge/game/cost/CostExert.java b/forge-game/src/main/java/forge/game/cost/CostExert.java index c0dc3bfbe97..0e8087baefd 100644 --- a/forge-game/src/main/java/forge/game/cost/CostExert.java +++ b/forge-game/src/main/java/forge/game/cost/CostExert.java @@ -17,13 +17,13 @@ */ package forge.game.cost; +import forge.game.ability.AbilityFactory; +import forge.game.ability.AbilityUtils; import forge.game.card.Card; import forge.game.card.CardCollectionView; import forge.game.card.CardLists; import forge.game.player.Player; import forge.game.spellability.SpellAbility; -import forge.game.trigger.Trigger; -import forge.game.trigger.TriggerHandler; import forge.game.zone.ZoneType; /** @@ -99,12 +99,11 @@ public class CostExert extends CostPartWithList { @Override protected Card doPayment(SpellAbility ability, Card targetCard, final boolean effect) { if (trigger != null) { - TriggerHandler handler = targetCard.getGame().getTriggerHandler(); - Trigger trig = TriggerHandler.parseTrigger(trigHost.getSVar(trigger), trigHost.getHostCard(), false); - trig.setLinkedAbility(trigHost); - handler.registerOneTrigger(trig); + SpellAbility trig = AbilityFactory.getAbility(targetCard.getSVar(trigger), targetCard); + trig.setActivatingPlayer(ability.getActivatingPlayer()); + AbilityUtils.resolve(trig); } - targetCard.exert(trigHost); + targetCard.exert(); return targetCard; } diff --git a/forge-game/src/main/java/forge/game/cost/CostPart.java b/forge-game/src/main/java/forge/game/cost/CostPart.java index 3712c27488d..769867b2a03 100644 --- a/forge-game/src/main/java/forge/game/cost/CostPart.java +++ b/forge-game/src/main/java/forge/game/cost/CostPart.java @@ -27,7 +27,6 @@ import forge.game.ability.AbilityUtils; import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; -import forge.game.staticability.StaticAbility; /** * The Class CostPart. @@ -43,7 +42,6 @@ public abstract class CostPart implements Comparable, Cloneable, Seria private String typeDescription, type; protected String trigger; - protected transient StaticAbility trigHost; /** * Instantiates a new cost part. @@ -158,9 +156,8 @@ public abstract class CostPart implements Comparable, Cloneable, Seria return AbilityUtils.calculateAmount(ability.getHostCard(), getAmount(), ability); } - public void setTrigger(String trig, StaticAbility host) { + public void setTrigger(String trig) { trigger = trig; - trigHost = host; } /** diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantAttackBlock.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantAttackBlock.java index 4d7b5bed8ac..f6d2a7eb51b 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantAttackBlock.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantAttackBlock.java @@ -188,7 +188,7 @@ public class StaticAbilityCantAttackBlock { Cost cost = new Cost(costString, true); if (stAb.hasParam("Trigger")) { - cost.getCostParts().get(0).setTrigger(stAb.getParam("Trigger"), stAb); + cost.getCostParts().get(0).setTrigger(stAb.getParam("Trigger")); } return cost; diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerExerted.java b/forge-game/src/main/java/forge/game/trigger/TriggerExerted.java index 9bffb88f47d..3d4c466d910 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerExerted.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerExerted.java @@ -27,9 +27,6 @@ public class TriggerExerted extends Trigger { if (!matchesValidParam("ValidCard", runParams.get(AbilityKey.Card))) { return false; } - if (hasParam("Linked") && !runParams.get(AbilityKey.Source).equals(getLinkedAbility())) { - return false; - } return true; } diff --git a/forge-gui/res/cardsfolder/a/ahn_crop_crasher.txt b/forge-gui/res/cardsfolder/a/ahn_crop_crasher.txt index 430a396424e..8b0e88b69f8 100644 --- a/forge-gui/res/cardsfolder/a/ahn_crop_crasher.txt +++ b/forge-gui/res/cardsfolder/a/ahn_crop_crasher.txt @@ -4,6 +4,6 @@ Types:Creature Minotaur Warrior PT:3/2 K:Haste S:Mode$ CantAttackUnless | ValidCard$ Card.Self | Trigger$ TrigExert | Cost$ Exert<1/CARDNAME> | Description$ You may exert CARDNAME as it attacks. When you do, target creature can't block this turn. -SVar:TrigExert:Mode$ Exerted | ValidCard$ Card.Self | Linked$ True | Execute$ TrigCanNotBlock | TriggerDescription$ When you exert CARDNAME, target creature can't block this turn. +SVar:TrigExert:DB$ ImmediateTrigger | Execute$ TrigCanNotBlock | TriggerDescription$ When you exert CARDNAME, target creature can't block this turn. SVar:TrigCanNotBlock:DB$ Pump | ValidTgts$ Creature | KW$ HIDDEN CARDNAME can't block. | TgtPrompt$ Select target creature. | IsCurse$ True | SpellDescription$ Target creature can't block this turn. Oracle:Haste\nYou may exert Ahn-Crop Crasher as it attacks. When you do, target creature can't block this turn. (An exerted creature won't untap during your next untap step.)