mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 03:38:01 +00:00
consolidated code to find the fighters into one common method
This commit is contained in:
@@ -15,29 +15,7 @@ public class FightEffect extends SpellEffect {
|
|||||||
protected String getStackDescription(SpellAbility sa) {
|
protected String getStackDescription(SpellAbility sa) {
|
||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
Card fighter1 = null;
|
ArrayList<Card> fighters = getFighters(sa);
|
||||||
Card fighter2 = null;
|
|
||||||
final Target tgt = sa.getTarget();
|
|
||||||
ArrayList<Card> tgts = null;
|
|
||||||
if (tgt != null) {
|
|
||||||
tgts = tgt.getTargetCards();
|
|
||||||
if (tgts.size() > 0) {
|
|
||||||
fighter1 = tgts.get(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (sa.hasParam("Defined")) {
|
|
||||||
ArrayList<Card> defined = AbilityFactory.getDefinedCards(sa.getSourceCard(), sa.getParam("Defined"), sa);
|
|
||||||
// Allow both fighters to come from defined list if first fighter not already found
|
|
||||||
if (defined.size() > 1 && fighter1 == null) {
|
|
||||||
fighter1 = defined.get(0);
|
|
||||||
fighter2 = defined.get(1);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
fighter2 = defined.get(0);
|
|
||||||
}
|
|
||||||
} else if (tgts.size() > 1) {
|
|
||||||
fighter2 = tgts.get(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sa instanceof AbilitySub) {
|
if (sa instanceof AbilitySub) {
|
||||||
sb.append(" ");
|
sb.append(" ");
|
||||||
@@ -45,7 +23,12 @@ public class FightEffect extends SpellEffect {
|
|||||||
sb.append(sa.getSourceCard()).append(" - ");
|
sb.append(sa.getSourceCard()).append(" - ");
|
||||||
}
|
}
|
||||||
|
|
||||||
sb.append(fighter1 + " fights " + fighter2);
|
if (fighters.size() > 1) {
|
||||||
|
sb.append(fighters.get(0) + " fights " + fighters.get(1));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sb.append(fighters.get(0) + " fights unknown");
|
||||||
|
}
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,6 +37,21 @@ public class FightEffect extends SpellEffect {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void resolve(SpellAbility sa) {
|
public void resolve(SpellAbility sa) {
|
||||||
|
ArrayList<Card> fighters = getFighters(sa);
|
||||||
|
|
||||||
|
if (fighters.size() < 2 || !fighters.get(0).isInPlay()
|
||||||
|
|| !fighters.get(1).isInPlay()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int dmg2 = fighters.get(1).getNetAttack();
|
||||||
|
fighters.get(1).addDamage(fighters.get(0).getNetAttack(), fighters.get(0));
|
||||||
|
fighters.get(0).addDamage(dmg2, fighters.get(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ArrayList<Card> getFighters(SpellAbility sa) {
|
||||||
|
final ArrayList<Card> fighterList = new ArrayList<Card>();
|
||||||
|
|
||||||
Card fighter1 = null;
|
Card fighter1 = null;
|
||||||
Card fighter2 = null;
|
Card fighter2 = null;
|
||||||
final Target tgt = sa.getTarget();
|
final Target tgt = sa.getTarget();
|
||||||
@@ -67,25 +65,23 @@ public class FightEffect extends SpellEffect {
|
|||||||
if (sa.hasParam("Defined")) {
|
if (sa.hasParam("Defined")) {
|
||||||
ArrayList<Card> defined = AbilityFactory.getDefinedCards(sa.getSourceCard(), sa.getParam("Defined"), sa);
|
ArrayList<Card> defined = AbilityFactory.getDefinedCards(sa.getSourceCard(), sa.getParam("Defined"), sa);
|
||||||
// Allow both fighters to come from defined list if first fighter not already found
|
// Allow both fighters to come from defined list if first fighter not already found
|
||||||
if (defined.size() > 1 && fighter1 == null) {
|
if (!defined.isEmpty()) {
|
||||||
fighter1 = defined.get(0);
|
if (defined.size() > 1 && fighter1 == null) {
|
||||||
fighter2 = defined.get(1);
|
fighter1 = defined.get(0);
|
||||||
}
|
fighter2 = defined.get(1);
|
||||||
else {
|
}
|
||||||
fighter2 = defined.get(0);
|
else {
|
||||||
|
fighter2 = defined.get(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (tgts.size() > 1) {
|
} else if (tgts.size() > 1) {
|
||||||
fighter2 = tgts.get(1);
|
fighter2 = tgts.get(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fighter1 == null || fighter2 == null || !fighter1.isInPlay()
|
if (fighter1 != null) fighterList.add(fighter1);
|
||||||
|| !fighter2.isInPlay()) {
|
if (fighter2 != null) fighterList.add(fighter2);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
int dmg2 = fighter2.getNetAttack();
|
return fighterList;
|
||||||
fighter2.addDamage(fighter1.getNetAttack(), fighter1);
|
|
||||||
fighter1.addDamage(dmg2, fighter2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user