mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-14 09:48:02 +00:00
Change static trigger to a replacement
This commit is contained in:
@@ -370,26 +370,7 @@ public class CardFactory {
|
|||||||
//K:etbCounter:DEFENSE:3
|
//K:etbCounter:DEFENSE:3
|
||||||
|
|
||||||
if (card.getType().hasSubtype("Siege")) {
|
if (card.getType().hasSubtype("Siege")) {
|
||||||
StringBuilder triggerSB = new StringBuilder();
|
CardFactoryUtil.setupSiegeAbilities(card);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -103,8 +103,6 @@ public class CardFactoryUtil {
|
|||||||
* abilityMorphDown.
|
* abilityMorphDown.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param sourceCard
|
|
||||||
* a {@link forge.game.card.Card} object.
|
|
||||||
* @return a {@link forge.game.spellability.SpellAbility} object.
|
* @return a {@link forge.game.spellability.SpellAbility} object.
|
||||||
*/
|
*/
|
||||||
public static SpellAbility abilityMorphDown(final CardState cardState, final boolean intrinsic) {
|
public static SpellAbility abilityMorphDown(final CardState cardState, final boolean intrinsic) {
|
||||||
@@ -160,8 +158,6 @@ public class CardFactoryUtil {
|
|||||||
* abilityMorphUp.
|
* abilityMorphUp.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param sourceCard
|
|
||||||
* a {@link forge.game.card.Card} object.
|
|
||||||
* @return a {@link forge.game.spellability.AbilityActivated} 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) {
|
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;
|
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) {
|
public static void setupAdventureAbility(Card card) {
|
||||||
if (card.getCurrentStateName() != CardStateName.Adventure) {
|
if (card.getCurrentStateName() != CardStateName.Adventure) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user