mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28: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 java.util.HashMap;
|
||||||
|
|
||||||
import forge.AllZone;
|
import forge.AllZone;
|
||||||
import forge.Card;
|
|
||||||
import forge.ComputerUtil;
|
import forge.ComputerUtil;
|
||||||
import forge.Player;
|
import forge.Player;
|
||||||
import forge.card.cardFactory.CardFactoryUtil;
|
|
||||||
import forge.card.spellability.Ability_Activated;
|
import forge.card.spellability.Ability_Activated;
|
||||||
import forge.card.spellability.Ability_Sub;
|
import forge.card.spellability.Ability_Sub;
|
||||||
import forge.card.spellability.Spell;
|
import forge.card.spellability.Spell;
|
||||||
@@ -15,21 +13,22 @@ import forge.card.spellability.SpellAbility;
|
|||||||
import forge.card.spellability.Target;
|
import forge.card.spellability.Target;
|
||||||
|
|
||||||
public class AbilityFactory_Turns {
|
public class AbilityFactory_Turns {
|
||||||
|
|
||||||
// *************************************************************************
|
// *************************************************************************
|
||||||
// ************************* ADD TURN **************************************
|
// ************************* 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;
|
private static final long serialVersionUID = -3526200766738015688L;
|
||||||
final AbilityFactory af = AF;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getStackDescription() {
|
public String getStackDescription() {
|
||||||
return addTurnStackDescription(af, this);
|
return addTurnStackDescription(af, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean canPlayAI() {
|
public boolean canPlayAI() {
|
||||||
return addTurnCanPlayAI(af, this);
|
return addTurnCanPlayAI(af, this);
|
||||||
}
|
}
|
||||||
@@ -48,21 +47,17 @@ public class AbilityFactory_Turns {
|
|||||||
return abAddTurn;
|
return abAddTurn;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SpellAbility createSpellAddTurn(final AbilityFactory AF){
|
public static SpellAbility createSpellAddTurn(final AbilityFactory af) {
|
||||||
final SpellAbility spAddTurn = new Spell(AF.getHostCard(), AF.getAbCost(), AF.getAbTgt()){
|
final SpellAbility spAddTurn = new Spell(af.getHostCard(), af.getAbCost(), af.getAbTgt()) {
|
||||||
private static final long serialVersionUID = -3921131887560356006L;
|
private static final long serialVersionUID = -3921131887560356006L;
|
||||||
final AbilityFactory af = AF;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getStackDescription(){
|
public String getStackDescription(){
|
||||||
return addTurnStackDescription(af, this);
|
return addTurnStackDescription(af, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canPlayAI()
|
@Override
|
||||||
{
|
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
|
|
||||||
return addTurnCanPlayAI(af, this);
|
return addTurnCanPlayAI(af, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,10 +70,9 @@ public class AbilityFactory_Turns {
|
|||||||
return spAddTurn;
|
return spAddTurn;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SpellAbility createDrawbackAddTurn(final AbilityFactory AF){
|
public static SpellAbility createDrawbackAddTurn(final AbilityFactory af) {
|
||||||
final SpellAbility dbAddTurn = new Ability_Sub(AF.getHostCard(), AF.getAbTgt()){
|
final SpellAbility dbAddTurn = new Ability_Sub(af.getHostCard(), af.getAbTgt()) {
|
||||||
private static final long serialVersionUID = -562517287448810951L;
|
private static final long serialVersionUID = -562517287448810951L;
|
||||||
final AbilityFactory af = AF;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getStackDescription() {
|
public String getStackDescription() {
|
||||||
@@ -144,23 +138,7 @@ public class AbilityFactory_Turns {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static boolean addTurnCanPlayAI(final AbilityFactory af, final SpellAbility sa) {
|
private static boolean addTurnCanPlayAI(final AbilityFactory af, final SpellAbility sa) {
|
||||||
if (!ComputerUtil.canPayCost(sa))
|
return addTurnTriggerAI(af, sa, false);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean addTurnTriggerAI(final AbilityFactory af, final SpellAbility sa, boolean mandatory) {
|
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){
|
private static void addTurnResolve(final AbilityFactory af, final SpellAbility sa){
|
||||||
HashMap<String,String> params = af.getMapParams();
|
HashMap<String,String> params = af.getMapParams();
|
||||||
Card card = af.getHostCard();
|
|
||||||
int numTurns = AbilityFactory.calculateAmount(af.getHostCard(), params.get("NumTurns"), sa);
|
int numTurns = AbilityFactory.calculateAmount(af.getHostCard(), params.get("NumTurns"), sa);
|
||||||
|
|
||||||
ArrayList<Player> tgtPlayers;
|
ArrayList<Player> tgtPlayers;
|
||||||
@@ -209,12 +186,7 @@ public class AbilityFactory_Turns {
|
|||||||
if(abSub != null) {
|
if(abSub != null) {
|
||||||
abSub.resolve();
|
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