diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtil.java b/forge-ai/src/main/java/forge/ai/ComputerUtil.java index bf4dd6a167b..d7ee664fd33 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtil.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtil.java @@ -1186,16 +1186,14 @@ public class ComputerUtil { int activations = sa.getRestrictions().getNumberTurnActivations(); if (sa.isTemporary()) { - final Random r = MyRandom.getRandom(); - return r.nextFloat() >= .95; // Abilities created by static abilities have no memory + return MyRandom.getRandom().nextFloat() >= .95; // Abilities created by static abilities have no memory } if (activations < 10) { //10 activations per turn should still be acceptable return false; } - final Random r = MyRandom.getRandom(); - return r.nextFloat() >= Math.pow(.95, activations); + return MyRandom.getRandom().nextFloat() >= Math.pow(.95, activations); } public static boolean activateForCost(SpellAbility sa, final Player ai) { diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java b/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java index 0b542206c7c..e41429127e6 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java @@ -19,7 +19,6 @@ package forge.ai; import java.util.List; import java.util.Map; -import java.util.Random; import com.google.common.base.Predicate; import com.google.common.collect.Iterables; @@ -49,6 +48,7 @@ import forge.game.trigger.Trigger; import forge.game.trigger.TriggerHandler; import forge.game.trigger.TriggerType; import forge.game.zone.ZoneType; +import forge.util.MyRandom; import forge.util.TextUtil; import forge.util.collect.FCollection; @@ -436,10 +436,10 @@ public class ComputerUtilCombat { int threshold = (((PlayerControllerAi) ai.getController()).getAi().getIntProperty(AiProps.AI_IN_DANGER_THRESHOLD)); int maxTreshold = (((PlayerControllerAi) ai.getController()).getAi().getIntProperty(AiProps.AI_IN_DANGER_MAX_THRESHOLD)) - threshold; - Random rand = new Random(); - int chance = rand.nextInt(80) + 5; + + int chance = MyRandom.getRandom().nextInt(80) + 5; while (maxTreshold > 0) { - if (rand.nextInt(100) < chance) { + if (MyRandom.getRandom().nextInt(100) < chance) { threshold++; } maxTreshold--; diff --git a/forge-ai/src/main/java/forge/ai/ability/ActivateAbilityAi.java b/forge-ai/src/main/java/forge/ai/ability/ActivateAbilityAi.java index 75cc8cc423f..b71f07080f7 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ActivateAbilityAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ActivateAbilityAi.java @@ -12,7 +12,6 @@ import forge.game.zone.ZoneType; import forge.util.MyRandom; import java.util.List; -import java.util.Random; public class ActivateAbilityAi extends SpellAbilityAi { @@ -23,8 +22,7 @@ public class ActivateAbilityAi extends SpellAbilityAi { final TargetRestrictions tgt = sa.getTargetRestrictions(); final Card source = sa.getHostCard(); final Player opp = ComputerUtil.getOpponentFor(ai); - final Random r = MyRandom.getRandom(); - boolean randomReturn = r.nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); + boolean randomReturn = MyRandom.getRandom().nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); List list = CardLists.getType(opp.getCardsIn(ZoneType.Battlefield), sa.getParamOrDefault("Type", "Card")); if (list.isEmpty()) { diff --git a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAllAi.java b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAllAi.java index b2486819e20..ad5de0b33b1 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAllAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAllAi.java @@ -17,7 +17,6 @@ import forge.game.zone.ZoneType; import forge.util.MyRandom; import java.util.Collections; -import java.util.Random; public class ChangeZoneAllAi extends SpellAbilityAi { @Override @@ -45,9 +44,8 @@ public class ChangeZoneAllAi extends SpellAbilityAi { } } - final Random r = MyRandom.getRandom(); // prevent run-away activations - first time will always return true - boolean chance = r.nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); + boolean chance = MyRandom.getRandom().nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); // TODO targeting with ChangeZoneAll // really two types of targeting. @@ -283,7 +281,7 @@ public class ChangeZoneAllAi extends SpellAbilityAi { } } - return (((r.nextFloat() < .8) || sa.isTrigger()) && chance); + return (((MyRandom.getRandom().nextFloat() < .8) || sa.isTrigger()) && chance); } /** diff --git a/forge-ai/src/main/java/forge/ai/ability/CharmAi.java b/forge-ai/src/main/java/forge/ai/ability/CharmAi.java index 470d9f0c5f2..1f9343599df 100644 --- a/forge-ai/src/main/java/forge/ai/ability/CharmAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/CharmAi.java @@ -11,7 +11,6 @@ import forge.util.MyRandom; import forge.util.collect.FCollection; import java.util.List; -import java.util.Random; public class CharmAi extends SpellAbilityAi { @Override @@ -19,9 +18,7 @@ public class CharmAi extends SpellAbilityAi { // sa is Entwined, no need for extra logic if (sa.isEntwine()) { return true; - } - - final Random r = MyRandom.getRandom(); + } final int num = Integer.parseInt(sa.hasParam("CharmNum") ? sa.getParam("CharmNum") : "1"); final int min = sa.hasParam("MinCharmNum") ? Integer.parseInt(sa.getParam("MinCharmNum")) : num; @@ -65,7 +62,7 @@ public class CharmAi extends SpellAbilityAi { sa.setChosenList(chosenList); // prevent run-away activations - first time will always return true - return r.nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); + return MyRandom.getRandom().nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); } private List chooseOptionsAi(List choices, final Player ai, boolean isTrigger, int num, diff --git a/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java b/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java index 249cdf8a843..3c38cfd40fa 100644 --- a/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java @@ -30,7 +30,6 @@ import forge.util.MyRandom; import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.Random; public class CountersPutAi extends SpellAbilityAi { @@ -118,7 +117,6 @@ public class CountersPutAi extends SpellAbilityAi { protected boolean checkApiLogic(Player ai, final SpellAbility sa) { // AI needs to be expanded, since this function can be pretty complex // based on what the expected targets could be - final Random r = MyRandom.getRandom(); final Cost abCost = sa.getPayCosts(); final Card source = sa.getHostCard(); final String sourceName = ComputerUtilAbility.getAbilitySourceName(sa); @@ -514,7 +512,7 @@ public class CountersPutAi extends SpellAbilityAi { } } else { final List cards = AbilityUtils.getDefinedCards(sa.getHostCard(), sa.getParam("Defined"), sa); - // Don't activate Curse abilities on my cards and non-curse abilites + // Don't activate Curse abilities on my cards and non-curse abilities // on my opponents if (cards.isEmpty() || (cards.get(0).getController().isOpponentOf(ai) && !sa.isCurse())) { return false; @@ -524,7 +522,7 @@ public class CountersPutAi extends SpellAbilityAi { // each non +1/+1 counter on the card is a 10% chance of not // activating this ability. - if (!(type.equals("P1P1") || type.equals("M1M1") || type.equals("ICE")) && (r.nextFloat() < (.1 * currCounters))) { + if (!(type.equals("P1P1") || type.equals("M1M1") || type.equals("ICE")) && (MyRandom.getRandom().nextFloat() < (.1 * currCounters))) { return false; } // Instant +1/+1 diff --git a/forge-ai/src/main/java/forge/ai/ability/CountersPutAllAi.java b/forge-ai/src/main/java/forge/ai/ability/CountersPutAllAi.java index 00498933d3b..82dc7f1adfd 100644 --- a/forge-ai/src/main/java/forge/ai/ability/CountersPutAllAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/CountersPutAllAi.java @@ -21,7 +21,6 @@ import forge.game.zone.ZoneType; import forge.util.MyRandom; import java.util.List; -import java.util.Random; public class CountersPutAllAi extends SpellAbilityAi { @Override @@ -29,7 +28,6 @@ public class CountersPutAllAi extends SpellAbilityAi { // AI needs to be expanded, since this function can be pretty complex // based on what // the expected targets could be - final Random r = MyRandom.getRandom(); final Cost abCost = sa.getPayCosts(); final Card source = sa.getHostCard(); List hList; @@ -89,7 +87,7 @@ public class CountersPutAllAi extends SpellAbilityAi { } // prevent run-away activations - first time will always return true - boolean chance = r.nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); + boolean chance = MyRandom.getRandom().nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); if (curse) { if (type.equals("M1M1")) { @@ -139,7 +137,7 @@ public class CountersPutAllAi extends SpellAbilityAi { return chance; } - return ((r.nextFloat() < .6667) && chance); + return ((MyRandom.getRandom().nextFloat() < .6667) && chance); } @Override diff --git a/forge-ai/src/main/java/forge/ai/ability/DamageAllAi.java b/forge-ai/src/main/java/forge/ai/ability/DamageAllAi.java index 631cdfe6535..8f2e82a901f 100644 --- a/forge-ai/src/main/java/forge/ai/ability/DamageAllAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/DamageAllAi.java @@ -15,8 +15,6 @@ import forge.game.spellability.TargetRestrictions; import forge.game.zone.ZoneType; import forge.util.MyRandom; -import java.util.Random; - public class DamageAllAi extends SpellAbilityAi { @Override protected boolean canPlayAI(Player ai, SpellAbility sa) { @@ -25,8 +23,7 @@ public class DamageAllAi extends SpellAbilityAi { final Card source = sa.getHostCard(); // prevent run-away activations - first time will always return true - final Random r = MyRandom.getRandom(); - if (r.nextFloat() > Math.pow(.9, sa.getActivationsThisTurn())) { + if (MyRandom.getRandom().nextFloat() > Math.pow(.9, sa.getActivationsThisTurn())) { return false; } // abCost stuff that should probably be centralized... diff --git a/forge-ai/src/main/java/forge/ai/ability/DigUntilAi.java b/forge-ai/src/main/java/forge/ai/ability/DigUntilAi.java index 2397f6cba9d..7be26f04209 100644 --- a/forge-ai/src/main/java/forge/ai/ability/DigUntilAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/DigUntilAi.java @@ -15,7 +15,6 @@ import forge.game.zone.ZoneType; import forge.util.MyRandom; import java.util.List; -import java.util.Random; public class DigUntilAi extends SpellAbilityAi { @@ -34,8 +33,7 @@ public class DigUntilAi extends SpellAbilityAi { chance = 1; } - final Random r = MyRandom.getRandom(); - final boolean randomReturn = r.nextFloat() <= Math.pow(chance, sa.getActivationsThisTurn() + 1); + final boolean randomReturn = MyRandom.getRandom().nextFloat() <= Math.pow(chance, sa.getActivationsThisTurn() + 1); Player libraryOwner = ai; Player opp = ComputerUtil.getOpponentFor(ai); diff --git a/forge-ai/src/main/java/forge/ai/ability/DiscardAi.java b/forge-ai/src/main/java/forge/ai/ability/DiscardAi.java index 4077571d282..991225e08e1 100644 --- a/forge-ai/src/main/java/forge/ai/ability/DiscardAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/DiscardAi.java @@ -16,7 +16,6 @@ import forge.game.zone.ZoneType; import forge.util.MyRandom; import java.util.List; -import java.util.Random; public class DiscardAi extends SpellAbilityAi { @@ -142,8 +141,7 @@ public class DiscardAi extends SpellAbilityAi { return false; } - final Random r = MyRandom.getRandom(); - boolean randomReturn = r.nextFloat() <= Math.pow(0.9, sa.getActivationsThisTurn()); + boolean randomReturn = MyRandom.getRandom().nextFloat() <= Math.pow(0.9, sa.getActivationsThisTurn()); // some other variables here, like handsize vs. maxHandSize diff --git a/forge-ai/src/main/java/forge/ai/ability/DrainManaAi.java b/forge-ai/src/main/java/forge/ai/ability/DrainManaAi.java index fd110c4e249..a922c0f0508 100644 --- a/forge-ai/src/main/java/forge/ai/ability/DrainManaAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/DrainManaAi.java @@ -10,7 +10,6 @@ import forge.game.spellability.TargetRestrictions; import forge.util.MyRandom; import java.util.List; -import java.util.Random; public class DrainManaAi extends SpellAbilityAi { @@ -21,8 +20,7 @@ public class DrainManaAi extends SpellAbilityAi { final TargetRestrictions tgt = sa.getTargetRestrictions(); final Card source = sa.getHostCard(); final Player opp = ComputerUtil.getOpponentFor(ai); - final Random r = MyRandom.getRandom(); - boolean randomReturn = r.nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); + boolean randomReturn = MyRandom.getRandom().nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); if (tgt == null) { // assume we are looking to tap human's stuff diff --git a/forge-ai/src/main/java/forge/ai/ability/EffectAi.java b/forge-ai/src/main/java/forge/ai/ability/EffectAi.java index bed19556fa5..f79a824d169 100644 --- a/forge-ai/src/main/java/forge/ai/ability/EffectAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/EffectAi.java @@ -1,7 +1,6 @@ package forge.ai.ability; import java.util.List; -import java.util.Random; import com.google.common.base.Predicate; import com.google.common.base.Predicates; @@ -31,8 +30,7 @@ public class EffectAi extends SpellAbilityAi { @Override protected boolean canPlayAI(final Player ai,final SpellAbility sa) { final Game game = ai.getGame(); - final Random r = MyRandom.getRandom(); - boolean randomReturn = r.nextFloat() <= .6667; + boolean randomReturn = MyRandom.getRandom().nextFloat() <= .6667; String logic = ""; if (sa.hasParam("AILogic")) { diff --git a/forge-ai/src/main/java/forge/ai/ability/FightAi.java b/forge-ai/src/main/java/forge/ai/ability/FightAi.java index d104fca38cf..d597b5cfa6d 100644 --- a/forge-ai/src/main/java/forge/ai/ability/FightAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/FightAi.java @@ -16,7 +16,6 @@ import forge.util.MyRandom; import java.util.List; import java.util.Map; -import java.util.Random; public class FightAi extends SpellAbilityAi { @Override @@ -240,8 +239,7 @@ public class FightAi extends SpellAbilityAi { if (!canKill(opponent, fighter, -pumpDefense)) { // can survive return true; } else { - final Random r = MyRandom.getRandom(); - if (r.nextInt(20)<(opponent.getCMC() - fighter.getCMC())) { // trade + if (MyRandom.getRandom().nextInt(20)<(opponent.getCMC() - fighter.getCMC())) { // trade return true; } } diff --git a/forge-ai/src/main/java/forge/ai/ability/LifeExchangeAi.java b/forge-ai/src/main/java/forge/ai/ability/LifeExchangeAi.java index a0b06ed9304..e9b7515b950 100644 --- a/forge-ai/src/main/java/forge/ai/ability/LifeExchangeAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/LifeExchangeAi.java @@ -7,8 +7,6 @@ import forge.game.spellability.SpellAbility; import forge.game.spellability.TargetRestrictions; import forge.util.MyRandom; -import java.util.Random; - public class LifeExchangeAi extends SpellAbilityAi { /* @@ -21,7 +19,6 @@ public class LifeExchangeAi extends SpellAbilityAi { */ @Override protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { - final Random r = MyRandom.getRandom(); final int myLife = aiPlayer.getLife(); Player opponent = ComputerUtil.getOpponentFor(aiPlayer); final int hLife = opponent.getLife(); @@ -31,7 +28,7 @@ public class LifeExchangeAi extends SpellAbilityAi { } // prevent run-away activations - first time will always return true - boolean chance = r.nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); + boolean chance = MyRandom.getRandom().nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); /* * TODO - There is one card that takes two targets (Soul Conduit) @@ -58,7 +55,7 @@ public class LifeExchangeAi extends SpellAbilityAi { // cost includes sacrifice probably, so make sure it's worth it chance &= (hLife > (myLife + 8)); - return ((r.nextFloat() < .6667) && chance); + return ((MyRandom.getRandom().nextFloat() < .6667) && chance); } /** diff --git a/forge-ai/src/main/java/forge/ai/ability/LifeSetAi.java b/forge-ai/src/main/java/forge/ai/ability/LifeSetAi.java index 799e83af629..eb849eb92c9 100644 --- a/forge-ai/src/main/java/forge/ai/ability/LifeSetAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/LifeSetAi.java @@ -13,13 +13,10 @@ import forge.game.spellability.SpellAbility; import forge.game.spellability.TargetRestrictions; import forge.util.MyRandom; -import java.util.Random; - public class LifeSetAi extends SpellAbilityAi { @Override protected boolean canPlayAI(Player ai, SpellAbility sa) { - final Random r = MyRandom.getRandom(); // Ability_Cost abCost = sa.getPayCosts(); final Card source = sa.getHostCard(); final int myLife = ai.getLife(); @@ -56,7 +53,7 @@ public class LifeSetAi extends SpellAbilityAi { } // prevent run-away activations - first time will always return true - final boolean chance = r.nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); + final boolean chance = MyRandom.getRandom().nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); final TargetRestrictions tgt = sa.getTargetRestrictions(); if (tgt != null) { @@ -104,7 +101,7 @@ public class LifeSetAi extends SpellAbilityAi { return true; } - return ((r.nextFloat() < .6667) && chance); + return ((MyRandom.getRandom().nextFloat() < .6667) && chance); } @Override diff --git a/forge-ai/src/main/java/forge/ai/ability/PhasesAi.java b/forge-ai/src/main/java/forge/ai/ability/PhasesAi.java index 7255d558d80..dffcc09e823 100644 --- a/forge-ai/src/main/java/forge/ai/ability/PhasesAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/PhasesAi.java @@ -17,7 +17,6 @@ import forge.game.zone.ZoneType; import forge.util.MyRandom; import java.util.List; -import java.util.Random; public class PhasesAi extends SpellAbilityAi { @Override @@ -26,8 +25,7 @@ public class PhasesAi extends SpellAbilityAi { final TargetRestrictions tgt = sa.getTargetRestrictions(); final Card source = sa.getHostCard(); - final Random r = MyRandom.getRandom(); - boolean randomReturn = r.nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); + boolean randomReturn = MyRandom.getRandom().nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); List tgtCards; if (tgt == null) { diff --git a/forge-ai/src/main/java/forge/ai/ability/ProtectAi.java b/forge-ai/src/main/java/forge/ai/ability/ProtectAi.java index 94080169ed3..214e5f5537a 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ProtectAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ProtectAi.java @@ -2,7 +2,6 @@ package forge.ai.ability; import java.util.ArrayList; import java.util.List; -import java.util.Random; import com.google.common.base.Predicate; @@ -151,8 +150,7 @@ public class ProtectAi extends SpellAbilityAi { Combat combat = ai.getGame().getCombat(); int dmg = ComputerUtilCombat.damageIfUnblocked(c, opponent, combat, true); float ratio = 1.0f * dmg / opponent.getLife(); - Random r = MyRandom.getRandom(); - return r.nextFloat() < ratio; + return MyRandom.getRandom().nextFloat() < ratio; } } return false; diff --git a/forge-ai/src/main/java/forge/ai/ability/RevealAi.java b/forge-ai/src/main/java/forge/ai/ability/RevealAi.java index 3622daf3e5a..79dea1a45db 100644 --- a/forge-ai/src/main/java/forge/ai/ability/RevealAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/RevealAi.java @@ -1,7 +1,5 @@ package forge.ai.ability; -import java.util.Random; - import forge.ai.AiPlayDecision; import forge.ai.PlayerControllerAi; import forge.ai.SpellAbilityAi; @@ -23,8 +21,7 @@ public class RevealAi extends RevealAiBase { return false; } - final Random r = MyRandom.getRandom(); - boolean randomReturn = r.nextFloat() <= Math.pow(.667, sa.getActivationsThisTurn() + 1); + boolean randomReturn = MyRandom.getRandom().nextFloat() <= Math.pow(.667, sa.getActivationsThisTurn() + 1); if (SpellAbilityAi.playReusable(ai, sa)) { randomReturn = true; @@ -34,7 +31,7 @@ public class RevealAi extends RevealAiBase { @Override protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { - // logic to see if it should reveal Mircacle Card + // logic to see if it should reveal Miracle Card if (sa.hasParam("MiracleCost")) { final Card c = sa.getHostCard(); for (SpellAbility s : c.getBasicSpells()) { diff --git a/forge-ai/src/main/java/forge/ai/ability/RevealHandAi.java b/forge-ai/src/main/java/forge/ai/ability/RevealHandAi.java index 4bdee1e1153..841a0cdedca 100644 --- a/forge-ai/src/main/java/forge/ai/ability/RevealHandAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/RevealHandAi.java @@ -1,7 +1,5 @@ package forge.ai.ability; -import java.util.Random; - import forge.ai.SpellAbilityAi; import forge.game.player.Player; import forge.game.spellability.SpellAbility; @@ -20,8 +18,7 @@ public class RevealHandAi extends RevealAiBase { return false; } - final Random r = MyRandom.getRandom(); - boolean randomReturn = r.nextFloat() <= Math.pow(.667, sa.getActivationsThisTurn() + 1); + boolean randomReturn = MyRandom.getRandom().nextFloat() <= Math.pow(.667, sa.getActivationsThisTurn() + 1); if (SpellAbilityAi.playReusable(ai, sa)) { randomReturn = true; diff --git a/forge-ai/src/main/java/forge/ai/ability/SacrificeAllAi.java b/forge-ai/src/main/java/forge/ai/ability/SacrificeAllAi.java index 8e27b2f6fd4..4a077ba19a1 100644 --- a/forge-ai/src/main/java/forge/ai/ability/SacrificeAllAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/SacrificeAllAi.java @@ -15,15 +15,12 @@ import forge.game.zone.ZoneType; import forge.util.MyRandom; import forge.util.TextUtil; -import java.util.Random; - public class SacrificeAllAi extends SpellAbilityAi { @Override protected boolean canPlayAI(Player ai, SpellAbility sa) { // AI needs to be expanded, since this function can be pretty complex // based on what the expected targets could be - final Random r = MyRandom.getRandom(); final Cost abCost = sa.getPayCosts(); final Card source = sa.getHostCard(); String valid = ""; @@ -52,7 +49,7 @@ public class SacrificeAllAi extends SpellAbilityAi { } // prevent run-away activations - first time will always return true - boolean chance = r.nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); + boolean chance = MyRandom.getRandom().nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); // if only creatures are affected evaluate both lists and pass only if // human creatures are more valuable @@ -74,7 +71,7 @@ public class SacrificeAllAi extends SpellAbilityAi { return false; } - return ((r.nextFloat() < .9667) && chance); + return ((MyRandom.getRandom().nextFloat() < .9667) && chance); } @Override diff --git a/forge-ai/src/main/java/forge/ai/ability/ScryAi.java b/forge-ai/src/main/java/forge/ai/ability/ScryAi.java index 1966e2a3c20..a831818c7da 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ScryAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ScryAi.java @@ -15,8 +15,6 @@ import forge.game.spellability.TargetRestrictions; import forge.game.zone.ZoneType; import forge.util.MyRandom; -import java.util.Random; - public class ScryAi extends SpellAbilityAi { /* (non-Javadoc) @@ -171,8 +169,7 @@ public class ScryAi extends SpellAbilityAi { chance = .667; // 66.7% chance for sorcery speed (since it will // never activate EOT) } - final Random r = MyRandom.getRandom(); - boolean randomReturn = r.nextFloat() <= Math.pow(chance, sa.getActivationsThisTurn() + 1); + boolean randomReturn = MyRandom.getRandom().nextFloat() <= Math.pow(chance, sa.getActivationsThisTurn() + 1); if (SpellAbilityAi.playReusable(ai, sa)) { randomReturn = true; diff --git a/forge-ai/src/main/java/forge/ai/ability/TapAllAi.java b/forge-ai/src/main/java/forge/ai/ability/TapAllAi.java index d23715135fd..c61ef26a721 100644 --- a/forge-ai/src/main/java/forge/ai/ability/TapAllAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/TapAllAi.java @@ -21,7 +21,6 @@ import forge.game.zone.ZoneType; import forge.util.MyRandom; import java.util.List; -import java.util.Random; public class TapAllAi extends SpellAbilityAi { @Override @@ -64,8 +63,7 @@ public class TapAllAi extends SpellAbilityAi { } } - final Random r = MyRandom.getRandom(); - if (r.nextFloat() > Math.pow(.6667, sa.getActivationsThisTurn())) { + if (MyRandom.getRandom().nextFloat() > Math.pow(.6667, sa.getActivationsThisTurn())) { return false; } @@ -135,9 +133,8 @@ public class TapAllAi extends SpellAbilityAi { return true; } - final Random r = MyRandom.getRandom(); boolean rr = false; - if (r.nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn())) { + if (MyRandom.getRandom().nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn())) { rr = true; } diff --git a/forge-ai/src/main/java/forge/ai/ability/TapOrUntapAi.java b/forge-ai/src/main/java/forge/ai/ability/TapOrUntapAi.java index a60d1d7d983..b2655c16ff5 100644 --- a/forge-ai/src/main/java/forge/ai/ability/TapOrUntapAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/TapOrUntapAi.java @@ -8,7 +8,6 @@ import forge.game.spellability.TargetRestrictions; import forge.util.MyRandom; import java.util.List; -import java.util.Random; public class TapOrUntapAi extends TapAiBase { @@ -20,8 +19,7 @@ public class TapOrUntapAi extends TapAiBase { final TargetRestrictions tgt = sa.getTargetRestrictions(); final Card source = sa.getHostCard(); - final Random r = MyRandom.getRandom(); - boolean randomReturn = r.nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); + boolean randomReturn = MyRandom.getRandom().nextFloat() <= Math.pow(.6667, sa.getActivationsThisTurn()); if (tgt == null) { // assume we are looking to tap human's stuff diff --git a/forge-ai/src/main/java/forge/ai/ability/UnattachAllAi.java b/forge-ai/src/main/java/forge/ai/ability/UnattachAllAi.java index 22494c8b557..5a105d49d00 100644 --- a/forge-ai/src/main/java/forge/ai/ability/UnattachAllAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/UnattachAllAi.java @@ -16,7 +16,6 @@ import forge.util.MyRandom; import java.util.ArrayList; import java.util.List; -import java.util.Random; public class UnattachAllAi extends SpellAbilityAi { @@ -25,7 +24,6 @@ public class UnattachAllAi extends SpellAbilityAi { */ @Override protected boolean canPlayAI(Player ai, SpellAbility sa) { - final Random r = MyRandom.getRandom(); final Cost abCost = sa.getPayCosts(); final Card source = sa.getHostCard(); @@ -34,7 +32,7 @@ public class UnattachAllAi extends SpellAbilityAi { } // prevent run-away activations - first time will always return true - boolean chance = r.nextFloat() <= .9; + boolean chance = MyRandom.getRandom().nextFloat() <= .9; // Attach spells always have a target final TargetRestrictions tgt = sa.getTargetRestrictions();