improve conclave_sledge_captain.txt keyword implementation

This commit is contained in:
Northmoc
2023-04-07 14:47:54 -04:00
parent ff22e476d4
commit 6ac832b310
2 changed files with 16 additions and 17 deletions

View File

@@ -842,31 +842,28 @@ public class CardFactoryUtil {
} else if (keyword.startsWith("Backup")) { } else if (keyword.startsWith("Backup")) {
final String[] k = keyword.split(":"); final String[] k = keyword.split(":");
String magnitude = k[1]; String magnitude = k[1];
int times = k.length >= 4 ? Integer.parseInt(k[3]) : 1;
final String backupVar = card.getSVar(k[2]); final String backupVar = card.getSVar(k[2]);
String descStr = "Backup " + magnitude; String descStr = "Backup " + magnitude;
for (int i = 0; i < times; i++) { final String trigStr = "Mode$ ChangesZone | Destination$ Battlefield | ValidCard$ Card.Self | " +
final String trigStr = "Mode$ ChangesZone | Destination$ Battlefield | ValidCard$ Card.Self | " + "Secondary$ True | TriggerDescription$ " + descStr;
"Secondary$ True | TriggerDescription$ " + descStr;
final String putCounter = "DB$ PutCounter | ValidTgts$ Creature | CounterNum$ " + magnitude final String putCounter = "DB$ PutCounter | ValidTgts$ Creature | CounterNum$ " + magnitude
+ " | CounterType$ P1P1 | Backup$ True"; + " | CounterType$ P1P1 | Backup$ True";
final String addAbility = backupVar + " | ConditionDefined$ Targeted | " + final String addAbility = backupVar + " | ConditionDefined$ Targeted | ConditionPresent$ Card.Other | " +
"ConditionPresent$ Card.Other | Defined$ Targeted"; "Defined$ Targeted";
SpellAbility sa = AbilityFactory.getAbility(putCounter, card); SpellAbility sa = AbilityFactory.getAbility(putCounter, card);
AbilitySub backupSub = (AbilitySub) AbilityFactory.getAbility(addAbility, card); AbilitySub backupSub = (AbilitySub) AbilityFactory.getAbility(addAbility, card);
sa.setSubAbility(backupSub); sa.setSubAbility(backupSub);
final Trigger trigger = TriggerHandler.parseTrigger(trigStr, card, intrinsic); final Trigger trigger = TriggerHandler.parseTrigger(trigStr, card, intrinsic);
sa.setIntrinsic(intrinsic); sa.setIntrinsic(intrinsic);
trigger.setOverridingAbility(sa); trigger.setOverridingAbility(sa);
inst.addTrigger(trigger); inst.addTrigger(trigger);
}
} else if (keyword.equals("Battle cry")) { } else if (keyword.equals("Battle cry")) {
final String trig = "Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Secondary$ True " final String trig = "Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Secondary$ True "
+ " | TriggerDescription$ " + keyword + " (" + inst.getReminderText() + ")"; + " | TriggerDescription$ " + keyword + " (" + inst.getReminderText() + ")";

View File

@@ -2,7 +2,9 @@ Name:Conclave Sledge-Captain
ManaCost:5 G ManaCost:5 G
Types:Creature Elephant Soldier Types:Creature Elephant Soldier
PT:4/4 PT:4/4
K:Backup:1:BackupAbilities:3 K:Backup:1:BackupAbilities
K:Backup:1:BackupAbilities
K:Backup:1:BackupAbilities
SVar:BackupAbilities:DB$ Animate | Keywords$ Trample | Triggers$ DamageTrig SVar:BackupAbilities:DB$ Animate | Keywords$ Trample | Triggers$ DamageTrig
SVar:DamageTrig:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | TriggerZones$ Battlefield | CombatDamage$ True | Execute$ TrigPutCounter | TriggerDescription$ Whenever this creature deals combat damage to a player, put that many +1/+1 counters on it. SVar:DamageTrig:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | TriggerZones$ Battlefield | CombatDamage$ True | Execute$ TrigPutCounter | TriggerDescription$ Whenever this creature deals combat damage to a player, put that many +1/+1 counters on it.
SVar:TrigPutCounter:DB$ PutCounter | Defined$ TriggeredSourceLKICopy | CounterType$ P1P1 | CounterNum$ X SVar:TrigPutCounter:DB$ PutCounter | Defined$ TriggeredSourceLKICopy | CounterType$ P1P1 | CounterNum$ X