mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
make sure a bunch of TODOs are properly marked so they are easier to find in Eclipse
This commit is contained in:
@@ -221,7 +221,7 @@ public class AbilityFactory_Animate {
|
||||
// AI should only activate this during Human's turn
|
||||
boolean chance = animateTgtAI(af, sa);
|
||||
|
||||
// todo: restrict the subAbility a bit
|
||||
// TODO: restrict the subAbility a bit
|
||||
|
||||
Ability_Sub subAb = sa.getSubAbility();
|
||||
if (subAb != null)
|
||||
|
||||
@@ -271,7 +271,7 @@ public class AbilityFactory_ChangeZone {
|
||||
}
|
||||
}
|
||||
else if (origin.equals("Sideboard")){
|
||||
// todo: once sideboard is added
|
||||
// TODO: once sideboard is added
|
||||
// canPlayAI for Wishes will go here
|
||||
}
|
||||
}
|
||||
@@ -381,7 +381,7 @@ public class AbilityFactory_ChangeZone {
|
||||
// TODO: add some more improvements based on Destination and Type
|
||||
}
|
||||
else if (origin.equals("Sideboard")){
|
||||
// todo: once sideboard is added
|
||||
// TODO: once sideboard is added
|
||||
// canPlayAI for Wishes will go here
|
||||
}
|
||||
}
|
||||
@@ -452,7 +452,7 @@ public class AbilityFactory_ChangeZone {
|
||||
}
|
||||
}
|
||||
else if (origin.equals("Battlefield")){
|
||||
// todo: Expand on this Description as more cards use it
|
||||
// TODO: Expand on this Description as more cards use it
|
||||
// for the non-targeted SAs when you choose what is returned on resolution
|
||||
sb.append("Return ").append(num).append(" ").append(type).append(" card(s) ");
|
||||
sb.append(" to your ").append(destination);
|
||||
@@ -888,7 +888,7 @@ public class AbilityFactory_ChangeZone {
|
||||
choice = mostExpensive;
|
||||
}
|
||||
else{
|
||||
// todo: AI needs more improvement to it's retrieval (reuse some code from spReturn here)
|
||||
// TODO: AI needs more improvement to it's retrieval (reuse some code from spReturn here)
|
||||
list.shuffle();
|
||||
choice = list.get(0);
|
||||
}
|
||||
@@ -900,7 +900,7 @@ public class AbilityFactory_ChangeZone {
|
||||
return false;
|
||||
}
|
||||
else{
|
||||
// todo is this good enough? for up to amounts?
|
||||
// TODO is this good enough? for up to amounts?
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -958,7 +958,7 @@ public class AbilityFactory_ChangeZone {
|
||||
else if (destination.equals("Battlefield") || origin.equals("Battlefield"))
|
||||
choice = CardFactoryUtil.AI_getMostExpensivePermanent(list, af.getHostCard(), false);
|
||||
else{
|
||||
// todo: AI needs more improvement to it's retrieval (reuse some code from spReturn here)
|
||||
// TODO: AI needs more improvement to it's retrieval (reuse some code from spReturn here)
|
||||
list.shuffle();
|
||||
choice = list.get(0);
|
||||
}
|
||||
@@ -969,7 +969,7 @@ public class AbilityFactory_ChangeZone {
|
||||
return false;
|
||||
}
|
||||
else{
|
||||
// todo is this good enough? for up to amounts?
|
||||
// TODO is this good enough? for up to amounts?
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1188,7 +1188,7 @@ public class AbilityFactory_ChangeZone {
|
||||
|
||||
// **************************** Known Utility **************************************
|
||||
private static CardList knownDetermineDefined(SpellAbility sa, String defined, String origin){
|
||||
// todo: this function should return a ArrayList<Card> and then be handled by the callees
|
||||
// TODO: this function should return a ArrayList<Card> and then be handled by the callees
|
||||
CardList grave = AllZoneUtil.getCardsInZone(origin, sa.getActivatingPlayer());
|
||||
CardList ret = new CardList();
|
||||
|
||||
@@ -1320,7 +1320,7 @@ public class AbilityFactory_ChangeZone {
|
||||
// prevent run-away activations - first time will always return true
|
||||
boolean chance = r.nextFloat() <= Math.pow(.6667, source.getAbilityUsed());
|
||||
|
||||
// todo: targeting with ChangeZoneAll
|
||||
// TODO: targeting with ChangeZoneAll
|
||||
// really two types of targeting.
|
||||
// Target Player has all their types change zones
|
||||
// or target permanent and do something relative to that permanent
|
||||
@@ -1332,7 +1332,7 @@ public class AbilityFactory_ChangeZone {
|
||||
CardList computerType = AllZoneUtil.getCardsInZone(origin, AllZone.ComputerPlayer);
|
||||
computerType = filterListByType(computerType, params, "ChangeType", sa);
|
||||
|
||||
// todo: improve restrictions on when the AI would want to use this
|
||||
// TODO: improve restrictions on when the AI would want to use this
|
||||
// spBounceAll has some AI we can compare to.
|
||||
if (origin.equals("Hand")){
|
||||
|
||||
|
||||
@@ -182,7 +182,7 @@ public class AbilityFactory_Copy {
|
||||
return false;
|
||||
}
|
||||
else{
|
||||
// todo is this good enough? for up to amounts?
|
||||
// TODO is this good enough? for up to amounts?
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -201,7 +201,7 @@ public class AbilityFactory_Copy {
|
||||
return false;
|
||||
}
|
||||
else{
|
||||
// todo is this good enough? for up to amounts?
|
||||
// TODO is this good enough? for up to amounts?
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -231,7 +231,7 @@ public class AbilityFactory_Counters {
|
||||
// Set PayX here to maximum value.
|
||||
amount = ComputerUtil.determineLeftoverMana(sa);
|
||||
source.setSVar("PayX", Integer.toString(amount));
|
||||
// todo:
|
||||
// TODO:
|
||||
}
|
||||
|
||||
// prevent run-away activations - first time will always return true
|
||||
@@ -248,7 +248,7 @@ public class AbilityFactory_Counters {
|
||||
return false;
|
||||
}
|
||||
else{
|
||||
// todo is this good enough? for up to amounts?
|
||||
// TODO is this good enough? for up to amounts?
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -266,7 +266,7 @@ public class AbilityFactory_Counters {
|
||||
return false;
|
||||
}
|
||||
else{
|
||||
// todo is this good enough? for up to amounts?
|
||||
// TODO is this good enough? for up to amounts?
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -341,7 +341,7 @@ public class AbilityFactory_Counters {
|
||||
return false;
|
||||
}
|
||||
else{
|
||||
// todo is this good enough? for up to amounts?
|
||||
// TODO is this good enough? for up to amounts?
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -379,7 +379,7 @@ public class AbilityFactory_Counters {
|
||||
list = new CardList(AbilityFactory.getDefinedCards(source, params.get("Defined"), sa).toArray());
|
||||
|
||||
if (!mandatory){
|
||||
// todo: If Trigger isn't mandatory, when wouldn't we want to put a counter?
|
||||
// TODO: If Trigger isn't mandatory, when wouldn't we want to put a counter?
|
||||
// things like Powder Keg, which are way too complex for the AI
|
||||
}
|
||||
}
|
||||
@@ -911,7 +911,7 @@ public class AbilityFactory_Counters {
|
||||
if (subAb != null)
|
||||
chance &= subAb.chkAI_Drawback();
|
||||
|
||||
// todo: Make sure Human has poison counters or there are some counters we want to proliferate
|
||||
// TODO: Make sure Human has poison counters or there are some counters we want to proliferate
|
||||
return chance;
|
||||
}
|
||||
|
||||
@@ -921,7 +921,7 @@ public class AbilityFactory_Counters {
|
||||
if (subAb != null)
|
||||
chance &= subAb.doTrigger(mandatory);
|
||||
|
||||
// todo: Make sure Human has poison counters or there are some counters we want to proliferate
|
||||
// TODO: Make sure Human has poison counters or there are some counters we want to proliferate
|
||||
return chance;
|
||||
}
|
||||
|
||||
|
||||
@@ -220,7 +220,7 @@ public class AbilityFactory_DealDamage {
|
||||
|
||||
if(source.getName().equals("Stuffy Doll")){
|
||||
// Now stuffy sits around for blocking
|
||||
// todo(sol): this should also happen if Stuffy is going to die
|
||||
// TODO(sol): this should also happen if Stuffy is going to die
|
||||
if (AllZone.Phase.is(Constant.Phase.End_Of_Turn, AllZone.HumanPlayer))
|
||||
return true;
|
||||
else
|
||||
@@ -368,7 +368,7 @@ public class AbilityFactory_DealDamage {
|
||||
// When giving priority to targeting Creatures for mandatory triggers
|
||||
// feel free to add the Human after we run out of good targets
|
||||
|
||||
// todo: add check here if card is about to die from something on the stack
|
||||
// TODO: add check here if card is about to die from something on the stack
|
||||
// or from taking combat damage
|
||||
boolean freePing = mandatory || AbilityFactory.playReusable(saMe);
|
||||
|
||||
@@ -384,7 +384,7 @@ public class AbilityFactory_DealDamage {
|
||||
}
|
||||
}
|
||||
|
||||
// todo: Improve Damage, we shouldn't just target the player just because we can
|
||||
// TODO: Improve Damage, we shouldn't just target the player just because we can
|
||||
else if (tgt.canTgtPlayer()) {
|
||||
if (tgt.addTarget(AllZone.HumanPlayer))
|
||||
continue;
|
||||
@@ -401,7 +401,7 @@ public class AbilityFactory_DealDamage {
|
||||
return damageChooseRequiredTargets(saMe, tgt, dmg, mandatory);
|
||||
}
|
||||
} else {
|
||||
// todo is this good enough? for up to amounts?
|
||||
// TODO is this good enough? for up to amounts?
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -409,7 +409,7 @@ public class AbilityFactory_DealDamage {
|
||||
}
|
||||
|
||||
private boolean damageChooseNontargeted(SpellAbility saMe, int dmg){
|
||||
// todo: Improve circumstances where the Defined Damage is unwanted
|
||||
// TODO: Improve circumstances where the Defined Damage is unwanted
|
||||
ArrayList<Object> objects = AbilityFactory.getDefinedObjects(saMe.getSourceCard(), AF.getMapParams().get("Defined"), saMe);
|
||||
|
||||
for(Object o : objects){
|
||||
@@ -719,7 +719,7 @@ public class AbilityFactory_DealDamage {
|
||||
return false;
|
||||
/////
|
||||
|
||||
// todo: if damage is dependant on mana paid, maybe have X be human's max life
|
||||
// TODO: if damage is dependant on mana paid, maybe have X be human's max life
|
||||
//Don't kill yourself
|
||||
if (validP.contains("Each")
|
||||
&& AllZone.ComputerPlayer.getLife() <= AllZone.ComputerPlayer.predictDamage(dmg, source, false))
|
||||
|
||||
@@ -126,7 +126,7 @@ public class AbilityFactory_Destroy {
|
||||
|
||||
// If NoRegen is not set, filter out creatures that have a regeneration shield
|
||||
if (!noRegen){
|
||||
// todo: filter out things that could regenerate in response? might be tougher?
|
||||
// TODO: filter out things that could regenerate in response? might be tougher?
|
||||
list = list.filter(new CardListFilter() {
|
||||
public boolean addCard(Card c) {
|
||||
return c.getShield() == 0;
|
||||
@@ -171,7 +171,7 @@ public class AbilityFactory_Destroy {
|
||||
return false;
|
||||
}
|
||||
else{
|
||||
// todo is this good enough? for up to amounts?
|
||||
// TODO is this good enough? for up to amounts?
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -188,7 +188,7 @@ public class AbilityFactory_Destroy {
|
||||
return false;
|
||||
}
|
||||
else{
|
||||
// todo is this good enough? for up to amounts?
|
||||
// TODO is this good enough? for up to amounts?
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -233,7 +233,7 @@ public class AbilityFactory_Destroy {
|
||||
|
||||
// If NoRegen is not set, filter out creatures that have a regeneration shield
|
||||
if (!noRegen){
|
||||
// todo: filter out things that could regenerate in response? might be tougher?
|
||||
// TODO: filter out things that could regenerate in response? might be tougher?
|
||||
preferred = preferred.filter(new CardListFilter() {
|
||||
public boolean addCard(Card c) {
|
||||
return c.getShield() == 0;
|
||||
|
||||
@@ -202,7 +202,7 @@ public class AbilityFactory_GainControl {
|
||||
return false;
|
||||
}
|
||||
else{
|
||||
// todo is this good enough? for up to amounts?
|
||||
// TODO is this good enough? for up to amounts?
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,7 +117,7 @@ public class AbilityFactory_Mana {
|
||||
|
||||
@Override
|
||||
public boolean chkAI_Drawback() {
|
||||
// todo: AI shouldn't use this until he has a mana pool
|
||||
// TODO: AI shouldn't use this until he has a mana pool
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -271,7 +271,7 @@ public class AbilityFactory_Mana {
|
||||
return false;
|
||||
}
|
||||
|
||||
// todo: maybe add can produce here, so old AI code can use reflected mana?
|
||||
// TODO: maybe add can produce here, so old AI code can use reflected mana?
|
||||
};
|
||||
//tmpMana.setReflectedMana(true);
|
||||
|
||||
|
||||
@@ -262,7 +262,7 @@ public class AbilityFactory_Pump {
|
||||
}
|
||||
}
|
||||
else if (AllZone.Stack.size() > 0){
|
||||
// todo: pump something only if the top thing on the stack will kill it via damage
|
||||
// TODO: pump something only if the top thing on the stack will kill it via damage
|
||||
// or if top thing on stack will pump it/enchant it and I want to kill it
|
||||
return false;
|
||||
}
|
||||
@@ -312,7 +312,7 @@ public class AbilityFactory_Pump {
|
||||
|
||||
// when this happens we need to expand AI to consider if its ok for everything?
|
||||
for(Card card : cards){
|
||||
// todo: if AI doesn't control Card and Pump is a Curse, than maybe use?
|
||||
// TODO: if AI doesn't control Card and Pump is a Curse, than maybe use?
|
||||
if((card.getNetDefense() + defense > 0) && (!card.hasAnyKeyword(Keywords))) {
|
||||
if(card.hasSickness() && Keywords.contains("Haste"))
|
||||
return true;
|
||||
@@ -378,7 +378,7 @@ public class AbilityFactory_Pump {
|
||||
return false;
|
||||
}
|
||||
else{
|
||||
// todo is this good enough? for up to amounts?
|
||||
// TODO is this good enough? for up to amounts?
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -851,7 +851,7 @@ public class AbilityFactory_Pump {
|
||||
if (!ComputerUtil.canPayCost(sa))
|
||||
return false;
|
||||
|
||||
// todo: add targeting consideration such as "Creatures target player controls gets"
|
||||
// TODO: add targeting consideration such as "Creatures target player controls gets"
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -192,7 +192,7 @@ public class AbilityFactory_Sacrifice {
|
||||
// AI should only activate this during Human's turn
|
||||
boolean chance = sacrificeTgtAI(af, sa);
|
||||
|
||||
// todo: restrict the subAbility a bit
|
||||
// TODO: restrict the subAbility a bit
|
||||
|
||||
Ability_Sub subAb = sa.getSubAbility();
|
||||
if (subAb != null)
|
||||
@@ -341,7 +341,7 @@ public class AbilityFactory_Sacrifice {
|
||||
CardList list = AllZoneUtil.getPlayerCardsInPlay(p);
|
||||
list = list.getValidCards(valid.split(","), sa.getActivatingPlayer(), sa.getSourceCard());
|
||||
|
||||
// todo: Wait for Input to finish before moving on with the rest of Resolution
|
||||
// TODO: Wait for Input to finish before moving on with the rest of Resolution
|
||||
AllZone.InputControl.setInput(CardFactoryUtil.input_sacrificePermanentsFromList(amount, list, message), true);
|
||||
}
|
||||
|
||||
|
||||
@@ -223,7 +223,7 @@ public class AbilityFactory_Token extends AbilityFactory {
|
||||
if (AbilityFactory.playReusable(sa))
|
||||
return true;
|
||||
|
||||
// todo: if i don't have enough blockers and my token can block one of the unblocked creatures
|
||||
// TODO: if i don't have enough blockers and my token can block one of the unblocked creatures
|
||||
// create it after attackers are declared
|
||||
//if (AllZone.Phase.is(Constant.Phase.Combat_Declare_Attackers_InstantAbility, AllZone.HumanPlayer))
|
||||
// return true;
|
||||
|
||||
@@ -237,7 +237,7 @@ public class AbilityFactory_ZoneAffecting {
|
||||
xPaid = true;
|
||||
}
|
||||
|
||||
// todo: if xPaid and one of the below reasons would fail, instead of bailing
|
||||
// TODO: if xPaid and one of the below reasons would fail, instead of bailing
|
||||
// reduce toPay amount to acceptable level
|
||||
|
||||
if (tgt != null) {
|
||||
|
||||
Reference in New Issue
Block a user