mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
code simplification in AF_Turns
This commit is contained in:
@@ -4,10 +4,8 @@ import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
import forge.AllZone;
|
||||
import forge.Card;
|
||||
import forge.ComputerUtil;
|
||||
import forge.Player;
|
||||
import forge.card.cardFactory.CardFactoryUtil;
|
||||
import forge.card.spellability.Ability_Activated;
|
||||
import forge.card.spellability.Ability_Sub;
|
||||
import forge.card.spellability.Spell;
|
||||
@@ -15,21 +13,22 @@ import forge.card.spellability.SpellAbility;
|
||||
import forge.card.spellability.Target;
|
||||
|
||||
public class AbilityFactory_Turns {
|
||||
|
||||
// *************************************************************************
|
||||
// ************************* ADD TURN **************************************
|
||||
// *************************************************************************
|
||||
|
||||
public static SpellAbility createAbilityAddTurn(final AbilityFactory AF){
|
||||
public static SpellAbility createAbilityAddTurn(final AbilityFactory af) {
|
||||
|
||||
final SpellAbility abAddTurn = new Ability_Activated(AF.getHostCard(), AF.getAbCost(), AF.getAbTgt()){
|
||||
final SpellAbility abAddTurn = new Ability_Activated(af.getHostCard(), af.getAbCost(), af.getAbTgt()) {
|
||||
private static final long serialVersionUID = -3526200766738015688L;
|
||||
final AbilityFactory af = AF;
|
||||
|
||||
@Override
|
||||
public String getStackDescription() {
|
||||
return addTurnStackDescription(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlayAI() {
|
||||
return addTurnCanPlayAI(af, this);
|
||||
}
|
||||
@@ -48,21 +47,17 @@ public class AbilityFactory_Turns {
|
||||
return abAddTurn;
|
||||
}
|
||||
|
||||
public static SpellAbility createSpellAddTurn(final AbilityFactory AF){
|
||||
final SpellAbility spAddTurn = new Spell(AF.getHostCard(), AF.getAbCost(), AF.getAbTgt()){
|
||||
public static SpellAbility createSpellAddTurn(final AbilityFactory af) {
|
||||
final SpellAbility spAddTurn = new Spell(af.getHostCard(), af.getAbCost(), af.getAbTgt()) {
|
||||
private static final long serialVersionUID = -3921131887560356006L;
|
||||
final AbilityFactory af = AF;
|
||||
|
||||
@Override
|
||||
public String getStackDescription(){
|
||||
return addTurnStackDescription(af, this);
|
||||
}
|
||||
|
||||
public boolean canPlayAI()
|
||||
{
|
||||
// if X depends on abCost, the AI needs to choose which card he would sacrifice first
|
||||
// then call xCount with that card to properly calculate the amount
|
||||
// Or choosing how many to sacrifice
|
||||
@Override
|
||||
public boolean canPlayAI() {
|
||||
return addTurnCanPlayAI(af, this);
|
||||
}
|
||||
|
||||
@@ -75,10 +70,9 @@ public class AbilityFactory_Turns {
|
||||
return spAddTurn;
|
||||
}
|
||||
|
||||
public static SpellAbility createDrawbackAddTurn(final AbilityFactory AF){
|
||||
final SpellAbility dbAddTurn = new Ability_Sub(AF.getHostCard(), AF.getAbTgt()){
|
||||
public static SpellAbility createDrawbackAddTurn(final AbilityFactory af) {
|
||||
final SpellAbility dbAddTurn = new Ability_Sub(af.getHostCard(), af.getAbTgt()) {
|
||||
private static final long serialVersionUID = -562517287448810951L;
|
||||
final AbilityFactory af = AF;
|
||||
|
||||
@Override
|
||||
public String getStackDescription() {
|
||||
@@ -144,23 +138,7 @@ public class AbilityFactory_Turns {
|
||||
}
|
||||
|
||||
private static boolean addTurnCanPlayAI(final AbilityFactory af, final SpellAbility sa) {
|
||||
if (!ComputerUtil.canPayCost(sa))
|
||||
return false;
|
||||
|
||||
Target tgt = sa.getTarget();
|
||||
|
||||
if (sa.getTarget() != null){
|
||||
tgt.resetTargets();
|
||||
sa.getTarget().addTarget(AllZone.ComputerPlayer);
|
||||
}
|
||||
else{
|
||||
ArrayList<Player> tgtPlayers = AbilityFactory.getDefinedPlayers(sa.getSourceCard(), af.getMapParams().get("Defined"), sa);
|
||||
for (Player p : tgtPlayers)
|
||||
if (p.isHuman())
|
||||
return false;
|
||||
// not sure if the AI should be playing with cards that give the Human more turns.
|
||||
}
|
||||
return true;
|
||||
return addTurnTriggerAI(af, sa, false);
|
||||
}
|
||||
|
||||
private static boolean addTurnTriggerAI(final AbilityFactory af, final SpellAbility sa, boolean mandatory) {
|
||||
@@ -185,7 +163,6 @@ public class AbilityFactory_Turns {
|
||||
|
||||
private static void addTurnResolve(final AbilityFactory af, final SpellAbility sa){
|
||||
HashMap<String,String> params = af.getMapParams();
|
||||
Card card = af.getHostCard();
|
||||
int numTurns = AbilityFactory.calculateAmount(af.getHostCard(), params.get("NumTurns"), sa);
|
||||
|
||||
ArrayList<Player> tgtPlayers;
|
||||
@@ -209,12 +186,7 @@ public class AbilityFactory_Turns {
|
||||
if(abSub != null) {
|
||||
abSub.resolve();
|
||||
}
|
||||
else{
|
||||
String DrawBack = params.get("SubAbility");
|
||||
if (af.hasSubAbility())
|
||||
CardFactoryUtil.doDrawBack(DrawBack, numTurns, card.getController(), card.getController().getOpponent(), tgtPlayers.get(0), card, null, sa);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}//end class AbilityFactory_Turns
|
||||
|
||||
Reference in New Issue
Block a user