CharmEffect: use appendSubAbility

This commit is contained in:
Hanmac
2016-10-30 11:34:24 +00:00
parent 2c1ef7bbe1
commit ffa1495228

View File

@@ -153,10 +153,6 @@ public class CharmEffect extends SpellAbilityEffect {
} }
private static void chainAbilities(SpellAbility sa, List<AbilitySub> chosen) { private static void chainAbilities(SpellAbility sa, List<AbilitySub> chosen) {
SpellAbility saDeepest = sa;
while (saDeepest.getSubAbility() != null) {
saDeepest = saDeepest.getSubAbility();
}
// Sort Chosen by SA order // Sort Chosen by SA order
Collections.sort(chosen, new Comparator<AbilitySub>() { Collections.sort(chosen, new Comparator<AbilitySub>() {
@@ -170,8 +166,8 @@ public class CharmEffect extends SpellAbilityEffect {
// Clone the chosen, just in case the some subAb gets chosen multiple times // Clone the chosen, just in case the some subAb gets chosen multiple times
AbilitySub clone = (AbilitySub)sub.getCopy(); AbilitySub clone = (AbilitySub)sub.getCopy();
saDeepest.setSubAbility(clone); // update ActivatingPlayer
clone.setActivatingPlayer(saDeepest.getActivatingPlayer()); clone.setActivatingPlayer(sa.getActivatingPlayer());
// do not forget what was targeted by the subability // do not forget what was targeted by the subability
SpellAbility ssa = sub; SpellAbility ssa = sub;
@@ -187,14 +183,10 @@ public class CharmEffect extends SpellAbilityEffect {
ssaClone = ssaClone.getSubAbility(); ssaClone = ssaClone.getSubAbility();
} }
clone.setParent(saDeepest); // add Clone to Tail of sa
sa.appendSubAbility(clone);
// to chain the next one (but make sure it goes all the way at the end of the SA chain)
saDeepest = clone;
while (saDeepest.getSubAbility() != null) {
saDeepest = saDeepest.getSubAbility();
}
} }
} }