mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-12 08:48:39 +00:00
Change static trigger to a replacement
This commit is contained in:
@@ -370,26 +370,7 @@ public class CardFactory {
|
||||
//K:etbCounter:DEFENSE:3
|
||||
|
||||
if (card.getType().hasSubtype("Siege")) {
|
||||
StringBuilder triggerSB = new StringBuilder();
|
||||
triggerSB.append("Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Static$ True | ");
|
||||
triggerSB.append("TriggerDescription$ (As a Siege enters the battlefield, choose an opponent to protect it. You and others can attack it. When it’s defeated, exile it, then cast it transformed.)");
|
||||
|
||||
String chooseProtector = "DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent | Protect$ True | ChoiceTitle$ Choose an opponent to protect this battle | AILogic$ Curse";
|
||||
|
||||
Trigger protectTrigger = TriggerHandler.parseTrigger(triggerSB.toString(), card, true);
|
||||
protectTrigger.setOverridingAbility(AbilityFactory.getAbility(chooseProtector, card));
|
||||
card.addTrigger(protectTrigger);
|
||||
|
||||
|
||||
StringBuilder triggerDefeated = new StringBuilder();
|
||||
triggerDefeated.append("Mode$ Defeated | ValidCard$ Card.Self | Secondary$ True | ");
|
||||
triggerDefeated.append(" TriggerDescription$ When CARDNAME is defeated, exile it, then cast it transformed.");
|
||||
|
||||
String castDefeatedBattle = "DB$ Play | Defined$ Self | WithoutManaCost$ True | CastTransformed$ True";
|
||||
|
||||
Trigger defeatedTrigger = TriggerHandler.parseTrigger(triggerDefeated.toString(), card, true);
|
||||
defeatedTrigger.setOverridingAbility(AbilityFactory.getAbility(castDefeatedBattle, card));
|
||||
card.addTrigger(defeatedTrigger);
|
||||
CardFactoryUtil.setupSiegeAbilities(card);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -103,8 +103,6 @@ public class CardFactoryUtil {
|
||||
* abilityMorphDown.
|
||||
* </p>
|
||||
*
|
||||
* @param sourceCard
|
||||
* a {@link forge.game.card.Card} object.
|
||||
* @return a {@link forge.game.spellability.SpellAbility} object.
|
||||
*/
|
||||
public static SpellAbility abilityMorphDown(final CardState cardState, final boolean intrinsic) {
|
||||
@@ -160,8 +158,6 @@ public class CardFactoryUtil {
|
||||
* abilityMorphUp.
|
||||
* </p>
|
||||
*
|
||||
* @param sourceCard
|
||||
* a {@link forge.game.card.Card} object.
|
||||
* @return a {@link forge.game.spellability.AbilityActivated} object.
|
||||
*/
|
||||
public static SpellAbility abilityMorphUp(final CardState cardState, final String costStr, final boolean mega, final boolean intrinsic) {
|
||||
@@ -3932,6 +3928,28 @@ public class CardFactoryUtil {
|
||||
return altCostSA;
|
||||
}
|
||||
|
||||
public static void setupSiegeAbilities(Card card) {
|
||||
StringBuilder chooseSB = new StringBuilder();
|
||||
chooseSB.append("Event$ Moved | ValidCard$ Card.Self | Destination$ Battlefield | ReplacementResult$ Updated");
|
||||
chooseSB.append(" | Description$ (As a Siege enters the battlefield, choose an opponent to protect it. You and others can attack it. When it’s defeated, exile it, then cast it transformed.)");
|
||||
String chooseProtector = "DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent | Protect$ True | ChoiceTitle$ Choose an opponent to protect this battle | AILogic$ Curse";
|
||||
|
||||
ReplacementEffect re = ReplacementHandler.parseReplacement(chooseSB.toString(), card, true);
|
||||
re.setOverridingAbility(AbilityFactory.getAbility(chooseProtector, card));
|
||||
card.addReplacementEffect(re);
|
||||
|
||||
// Defeated trigger
|
||||
StringBuilder triggerDefeated = new StringBuilder();
|
||||
triggerDefeated.append("Mode$ Defeated | ValidCard$ Card.Self | Secondary$ True | ");
|
||||
triggerDefeated.append(" TriggerDescription$ When CARDNAME is defeated, exile it, then cast it transformed.");
|
||||
|
||||
String castDefeatedBattle = "DB$ Play | Defined$ Self | WithoutManaCost$ True | CastTransformed$ True";
|
||||
|
||||
Trigger defeatedTrigger = TriggerHandler.parseTrigger(triggerDefeated.toString(), card, true);
|
||||
defeatedTrigger.setOverridingAbility(AbilityFactory.getAbility(castDefeatedBattle, card));
|
||||
card.addTrigger(defeatedTrigger);
|
||||
}
|
||||
|
||||
public static void setupAdventureAbility(Card card) {
|
||||
if (card.getCurrentStateName() != CardStateName.Adventure) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user