diff --git a/src/main/java/forge/card/abilityfactory/ApiType.java b/src/main/java/forge/card/abilityfactory/ApiType.java index 4d0638b4b19..9f015abc67e 100644 --- a/src/main/java/forge/card/abilityfactory/ApiType.java +++ b/src/main/java/forge/card/abilityfactory/ApiType.java @@ -9,108 +9,108 @@ import forge.card.abilityfactory.effects.*; * */ public enum ApiType { - - AddTurn ( AddTurnEffect.class, AddTurnAi.class ), - Animate ( AnimateEffect.class, AnimateAi.class ), - AnimateAll ( AnimateAllEffect.class, AnimateAllAi.class ), - Attach ( AttachEffect.class, AttachAi.class ), - Bond ( BondEffect.class, BondAi.class ), + + AddTurn (AddTurnEffect.class, AddTurnAi.class), + Animate (AnimateEffect.class, AnimateAi.class), + AnimateAll (AnimateAllEffect.class, AnimateAllAi.class), + Attach (AttachEffect.class, AttachAi.class), + Bond (BondEffect.class, BondAi.class), ChangeZone(ChangeZoneEffect.class, ChangeZoneAi.class), ChangeZoneAll(ChangeZoneAllEffect.class, ChangeZoneAllAi.class), /** This is Modal, like 'choose one - ' or 'choose two - '.
Might be great to rename this api and update all scripts.*/ Charm(CharmEffect.class, CharmAi.class), - ChooseCard ( ChooseCardEffect.class, ChooseCardAi.class ), - ChooseColor ( ChooseColorEffect.class, ChooseColorAi.class ), - ChooseNumber ( ChooseNumberEffect.class, CannotPlayAi.class ), - ChoosePlayer ( ChoosePlayerEffect.class, CannotPlayAi.class ), - ChooseType ( ChooseTypeEffect.class, ChooseTypeAi.class ), - Clash ( ClashEffect.class, ClashAi.class ), - Cleanup ( CleanUpEffect.class, AlwaysPlayAi.class ), - Clone ( CloneEffect.class, CloneAi.class ), - CopyPermanent ( CopyPermanentEffect.class, CopyPermanentAi.class ), - CopySpell ( CopySpellEffect.class, CanPlayAsDrawbackAi.class ), - Counter ( CounterEffect.class, CounterAi.class ), - DamageAll ( DamageAllEffect.class, DamageAllAi.class ), - DealDamage ( DamageDealEffect.class, DamageDealAi.class ), - Debuff ( DebuffEffect.class, DebuffAi.class ), - DebuffAll ( DebuffAllEffect.class, DebuffAllAi.class ), - DelayedTrigger ( DelayedTriggerEffect.class, DelayedTriggerAi.class ), - Destroy ( DestroyEffect.class, DestroyAi.class ), - DestroyAll ( DestroyAllEffect.class, DestroyAllAi.class ), - Dig ( DigEffect.class, DigAi.class ), - DigUntil ( DigUntilEffect.class, DigUntilAi.class ), - Discard ( DiscardEffect.class, DiscardAi.class ), - DrainMana ( DrainManaEffect.class, DrainManaAi.class ), - Draw ( DrawEffect.class, DrawAi.class ), - EachDamage ( DamageEachEffect.class, DamageEachAi.class ), - Effect ( EffectEffect.class, EffectAi.class ), - EndTurn ( EndTurnEffect.class, EndTurnAi.class ), - ExchangeLife ( LifeExchangeEffect.class, LifeExchangeAi.class ), - ExchangeControl ( ControlExchangeEffect.class, ControlExchangeAi.class ), - Fight ( FightEffect.class, FightAi.class ), - FlipACoin ( FlipCoinEffect.class, AlwaysPlayAi.class ), - Fog ( FogEffect.class, FogAi.class ), - GainControl ( ControlGainEffect.class, ControlGainAi.class ), - GainLife ( LifeGainEffect.class, LifeGainAi.class ), - GenericChoice ( ChooseGenericEffect.class, CannotPlayAi.class ), - LoseLife ( LifeLoseEffect.class, LifeLoseAi.class ), - LosesGame ( GameLossEffect.class, GameLossAi.class ), - Mana ( ManaEffect.class, CannotPlayAi.class ), - ManaReflected ( ManaReflectedEffect.class, CannotPlayAi.class ), - Mill ( MillEffect.class, MillAi.class ), - MoveCounter ( CountersMoveEffect.class, CountersMoveAi.class ), - MustAttack ( MustAttackEffect.class, MustAttackAi.class ), - MustBlock ( MustBlockEffect.class, MustBlockAi.class ), - NameCard ( ChooseCardNameEffect.class, ChooseCardNameAi.class ), - Phases ( PhasesEffect.class, PhasesAi.class ), - Play ( PlayEffect.class, PlayAi.class ), - Poison ( PoisonEffect.class, PoisonAi.class ), - PreventDamage ( DamagePreventEffect.class, DamagePreventAi.class ), - PreventDamageAll ( DamagePreventAllEffect.class, DamagePreventAllAi.class ), - Proliferate ( CountersProliferateEffect.class, CountersProliferateAi.class ), - Protection ( ProtectEffect.class, ProtectAi.class ), - ProtectionAll ( ProtectAllEffect.class, ProtectAllAi.class ), - Pump ( PumpEffect.class, PumpAi.class ), - PumpAll ( PumpAllEffect.class, PumpAllAi.class ), - PutCounter ( CountersPutEffect.class, CountersPutAi.class ), - PutCounterAll ( CountersPutAllEffect.class, CountersPutAllAi.class ), - RearrangeTopOfLibrary ( RearrangeTopOfLibraryEffect.class, RearrangeTopOfLibraryAi.class ), - Regenerate ( RegenerateEffect.class, RegenerateAi.class ), - RegenerateAll ( RegenerateAllEffect.class, RegenerateAllAi.class ), - RemoveCounter ( CountersRemoveEffect.class, CountersRemoveAi.class ), - RemoveCounterAll ( CountersRemoveAllEffect.class, CannotPlayAi.class ), - RemoveFromCombat ( RemoveFromCombatEffect.class, RemoveFromCombatAi.class ), - Repeat ( RepeatEffect.class, RepeatAi.class ), - RepeatEach ( RepeatEachEffect.class, RepeatEachAi.class ), - RestartGame ( RestartGameEffect.class, RestartGameAi.class ), - Reveal ( RevealEffect.class, RevealAi.class ), - RevealHand ( RevealHandEffect.class, RevealHandAi.class ), - Sacrifice ( SacrificeEffect.class, SacrificeAi.class ), - SacrificeAll ( SacrificeAllEffect.class, SacrificeAllAi.class ), - Scry ( ScryEffect.class, ScryAi.class ), - SetLife ( LifeSetEffect.class, LifeSetAi.class ), - SetState ( SetStateEffect.class, SetStateAi.class ), - SetStateAll ( SetStateAllEffect.class, SetStateAllAi.class ), - Shuffle ( ShuffleEffect.class, ShuffleAi.class ), - StoreSVar ( StoreSVarEffect.class, StoreSVarAi.class ), - Tap ( TapEffect.class, TapAi.class ), - TapAll ( TapAllEffect.class, TapAllAi.class ), - TapOrUntap ( TapOrUntapEffect.class, TapOrUntapAi.class ), - Token ( TokenEffect.class, TokenAi.class ), - TwoPiles ( TwoPilesEffect.class, TwoPilesAi.class ), - UnattachAll ( UnattachAllEffect.class, UnattachAllAi.class ), - Untap ( UntapEffect.class, UntapAi.class ), - UntapAll ( UntapAllEffect.class, UntapAllAi.class ), - WinsGame ( GameWinEffect.class, GameWinAi.class ); + ChooseCard (ChooseCardEffect.class, ChooseCardAi.class), + ChooseColor (ChooseColorEffect.class, ChooseColorAi.class), + ChooseNumber (ChooseNumberEffect.class, CannotPlayAi.class), + ChoosePlayer (ChoosePlayerEffect.class, CannotPlayAi.class), + ChooseType (ChooseTypeEffect.class, ChooseTypeAi.class), + Clash (ClashEffect.class, ClashAi.class), + Cleanup (CleanUpEffect.class, AlwaysPlayAi.class), + Clone (CloneEffect.class, CloneAi.class), + CopyPermanent (CopyPermanentEffect.class, CopyPermanentAi.class), + CopySpell (CopySpellEffect.class, CanPlayAsDrawbackAi.class), + Counter (CounterEffect.class, CounterAi.class), + DamageAll (DamageAllEffect.class, DamageAllAi.class), + DealDamage (DamageDealEffect.class, DamageDealAi.class), + Debuff (DebuffEffect.class, DebuffAi.class), + DebuffAll (DebuffAllEffect.class, DebuffAllAi.class), + DelayedTrigger (DelayedTriggerEffect.class, DelayedTriggerAi.class), + Destroy (DestroyEffect.class, DestroyAi.class), + DestroyAll (DestroyAllEffect.class, DestroyAllAi.class), + Dig (DigEffect.class, DigAi.class), + DigUntil (DigUntilEffect.class, DigUntilAi.class), + Discard (DiscardEffect.class, DiscardAi.class), + DrainMana (DrainManaEffect.class, DrainManaAi.class), + Draw (DrawEffect.class, DrawAi.class), + EachDamage (DamageEachEffect.class, DamageEachAi.class), + Effect (EffectEffect.class, EffectAi.class), + EndTurn (EndTurnEffect.class, EndTurnAi.class), + ExchangeLife (LifeExchangeEffect.class, LifeExchangeAi.class), + ExchangeControl (ControlExchangeEffect.class, ControlExchangeAi.class), + Fight (FightEffect.class, FightAi.class), + FlipACoin (FlipCoinEffect.class, AlwaysPlayAi.class), + Fog (FogEffect.class, FogAi.class), + GainControl (ControlGainEffect.class, ControlGainAi.class), + GainLife (LifeGainEffect.class, LifeGainAi.class), + GenericChoice (ChooseGenericEffect.class, CannotPlayAi.class), + LoseLife (LifeLoseEffect.class, LifeLoseAi.class), + LosesGame (GameLossEffect.class, GameLossAi.class), + Mana (ManaEffect.class, CannotPlayAi.class), + ManaReflected (ManaReflectedEffect.class, CannotPlayAi.class), + Mill (MillEffect.class, MillAi.class), + MoveCounter (CountersMoveEffect.class, CountersMoveAi.class), + MustAttack (MustAttackEffect.class, MustAttackAi.class), + MustBlock (MustBlockEffect.class, MustBlockAi.class), + NameCard (ChooseCardNameEffect.class, ChooseCardNameAi.class), + Phases (PhasesEffect.class, PhasesAi.class), + Play (PlayEffect.class, PlayAi.class), + Poison (PoisonEffect.class, PoisonAi.class), + PreventDamage (DamagePreventEffect.class, DamagePreventAi.class), + PreventDamageAll (DamagePreventAllEffect.class, DamagePreventAllAi.class), + Proliferate (CountersProliferateEffect.class, CountersProliferateAi.class), + Protection (ProtectEffect.class, ProtectAi.class), + ProtectionAll (ProtectAllEffect.class, ProtectAllAi.class), + Pump (PumpEffect.class, PumpAi.class), + PumpAll (PumpAllEffect.class, PumpAllAi.class), + PutCounter (CountersPutEffect.class, CountersPutAi.class), + PutCounterAll (CountersPutAllEffect.class, CountersPutAllAi.class), + RearrangeTopOfLibrary (RearrangeTopOfLibraryEffect.class, RearrangeTopOfLibraryAi.class), + Regenerate (RegenerateEffect.class, RegenerateAi.class), + RegenerateAll (RegenerateAllEffect.class, RegenerateAllAi.class), + RemoveCounter (CountersRemoveEffect.class, CountersRemoveAi.class), + RemoveCounterAll (CountersRemoveAllEffect.class, CannotPlayAi.class), + RemoveFromCombat (RemoveFromCombatEffect.class, RemoveFromCombatAi.class), + Repeat (RepeatEffect.class, RepeatAi.class), + RepeatEach (RepeatEachEffect.class, RepeatEachAi.class), + RestartGame (RestartGameEffect.class, RestartGameAi.class), + Reveal (RevealEffect.class, RevealAi.class), + RevealHand (RevealHandEffect.class, RevealHandAi.class), + Sacrifice (SacrificeEffect.class, SacrificeAi.class), + SacrificeAll (SacrificeAllEffect.class, SacrificeAllAi.class), + Scry (ScryEffect.class, ScryAi.class), + SetLife (LifeSetEffect.class, LifeSetAi.class), + SetState (SetStateEffect.class, SetStateAi.class), + SetStateAll (SetStateAllEffect.class, SetStateAllAi.class), + Shuffle (ShuffleEffect.class, ShuffleAi.class), + StoreSVar (StoreSVarEffect.class, StoreSVarAi.class), + Tap (TapEffect.class, TapAi.class), + TapAll (TapAllEffect.class, TapAllAi.class), + TapOrUntap (TapOrUntapEffect.class, TapOrUntapAi.class), + Token (TokenEffect.class, TokenAi.class), + TwoPiles (TwoPilesEffect.class, TwoPilesAi.class), + UnattachAll (UnattachAllEffect.class, UnattachAllAi.class), + Untap (UntapEffect.class, UntapAi.class), + UntapAll (UntapAllEffect.class, UntapAllAi.class), + WinsGame (GameWinEffect.class, GameWinAi.class); ApiType(Class clsEf, Class clsAI) { clsEffect = clsEf; clsAi = clsAI; } - + private final Class clsEffect; private final Class clsAi; - + public static ApiType smartValueOf(String value) { final String valToCompate = value.trim(); @@ -122,11 +122,11 @@ public enum ApiType { throw new RuntimeException("Element " + value + " not found in ApiType enum"); } - - - public SpellEffect getSpellEffect() { - if ( null == clsEffect ) + + public SpellEffect getSpellEffect() { + if (null == clsEffect) { return null; + } @SuppressWarnings("unchecked") Constructor[] cc = (Constructor[]) clsEffect.getConstructors(); for (Constructor c : cc) { @@ -138,16 +138,17 @@ public enum ApiType { } catch (Exception e) { // TODO Auto-generated catch block ignores the exception, but sends it to System.err and probably forge.log. e.printStackTrace(); - } + } } } throw new RuntimeException("No default constructor found in class " + clsEffect.getName()); } - + public SpellAiLogic getAi() { - if ( null == clsAi ) + if (null == clsAi) { return null; - + } + @SuppressWarnings("unchecked") Constructor[] cc = (Constructor[]) clsAi.getConstructors(); for (Constructor c : cc) { @@ -159,10 +160,10 @@ public enum ApiType { } catch (Exception e) { // TODO Auto-generated catch block ignores the exception, but sends it to System.err and probably forge.log. e.printStackTrace(); - } + } } } throw new RuntimeException("No default constructor found in class " + clsEffect.getName()); } - + }