public PlayerActionChoiceCanvas(Player player, Mokepon playerMokepon)
 {
     this.player        = player;
     this.playerMokepon = playerMokepon;
     screen             = (Screens.BattleScreen)Managers.ScreenManager.Instance.CurrentScreen;
     SetMode(Mode.MAIN);
 }
Esempio n. 2
0
        public override void Effect(ref Mokepon caster, ref Mokepon target, BattleScreen screen)
        {
            Damage damage = GameManager.Instance.CalculateDamage(caster, target, this);

            screen.Dialogues.AddText(caster.Name + " absorbed " + target.Name + "'s health points");
            caster.Heal((int)Math.Ceiling(damage.DamageValue / 2.0));
        }
Esempio n. 3
0
        public MokeponOverview(Mokepon pokemon, Vector2 pos) : base(null, null)
        {
            Position     = pos;
            Scale        = Vector2.One;
            Width        = 400;
            Height       = 200;
            this.pokemon = pokemon;

            Background   = new Image("White", new Rectangle((int)pos.X, (int)pos.Y, Width, Height), 0.8f);
            pokemonImage = new Image("Mokepons/" + pokemon.DefaultName);

            pokemonName  = new Text(pokemon.Name, Color.Black, pos + new Vector2(150, 14), Vector2.One, "Expression-pro-18px");
            pokemonLevel = new Text("Lvl " + pokemon.LVL.ToString(), Color.Black, pos + new Vector2(310, 15), Vector2.One, "Expression-pro-18px");
            hpbar        = new HPBar(ref pokemon, 6, 150, pos + new Vector2(150, 55));
            hpStatus     = new Text("", Color.Black, pos + new Vector2(310, 55), Vector2.One, "Expression-pro-18px");
            expbar       = new ExpBar(ref pokemon, 4, 120, pos + new Vector2(150, 60));

            pokemonStats = new Text[6];

            pokemonStats[0] = new Text("ATK: " + pokemon.ATK, Color.Black,
                                       pos + new Vector2(150, 100), Vector2.One, "Expression-pro-18px");
            pokemonStats[1] = new Text("DEF: " + pokemon.DEF, Color.Black,
                                       pos + new Vector2(275, 100), Vector2.One, "Expression-pro-18px");
            pokemonStats[2] = new Text("SP ATK: " + pokemon.SP_ATK, Color.Black,
                                       pos + new Vector2(150, 125), Vector2.One, "Expression-pro-18px");
            pokemonStats[3] = new Text("SP DEF: " + pokemon.SP_DEF, Color.Black,
                                       pos + new Vector2(275, 125), Vector2.One, "Expression-pro-18px");
            pokemonStats[4] = new Text("SPD: " + pokemon.SPD, Color.Black,
                                       pos + new Vector2(150, 150), Vector2.One, "Expression-pro-18px");
            pokemonStats[5] = new Text("ACC: " + pokemon.ACC, Color.Black,
                                       pos + new Vector2(275, 150), Vector2.One, "Expression-pro-18px");
        }
Esempio n. 4
0
        public Damage CalculateDamage(Mokepon attacker, Mokepon defender, Ability ability)
        {
            if (!ability.Attack) //SHOULDN'T HAPPEN, EVER
            {
                return(null);
            }

            int  critPpb = defender.SPD / 2;
            bool crit    = (Managers.GameManager.Instance.random.Next(0, 256) < critPpb);

            double damage = (2.0 * (crit ? 2.0 : 1.0) / 5.0 + 2.0);

            damage *= ability.Special ? (attacker.SP_ATK / (double)defender.SP_DEF) : (attacker.ATK / (double)defender.DEF);
            damage /= 50;
            damage += 2;

            damage *= Managers.GameManager.Instance.random.NextDouble() * 0.15 + 0.85; //random double from 0.85 to 1.0

            double multip = 1;

            multip *= Globals.MokeponValueChart[(int)ability.AbilityType, (int)defender.Type1];
            multip *= Globals.MokeponValueChart[(int)ability.AbilityType, (int)defender.Type2];
            damage *= multip;

            if (attacker.Type1 == ability.AbilityType || attacker.Type2 == ability.AbilityType)
            {
                damage *= 1.5;
            }

            return(new Damage(crit, multip, (int)Math.Round(damage)));
        }
Esempio n. 5
0
        public override void Effect(ref Mokepon caster, ref Mokepon target, BattleScreen screen)
        {
            int prevHP = caster.HP;

            caster.Heal(25);
            screen.Dialogues.AddText(caster.Name + " restored " + (caster.HP - prevHP).ToString() + " health points!");
        }
Esempio n. 6
0
        void ChoosePlayer(GameTime gameTime)
        {
            if (playerMokepon == null)
            {
                if (currentCanvas == null)
                {
                    bool lost = true;
                    foreach (var pok in player.Mokepons)
                    {
                        if (pok.HP > 0)
                        {
                            lost = false;
                        }
                    }

                    if (lost)
                    {
                        currentState = BattleState.LOST;
                        return;
                    }

                    currentCanvas = new PlayerChooseMokeponCanvas(player.Mokepons);
                    currentCanvas.LoadContent();
                }

                currentCanvas.Update(gameTime);

                if ((currentCanvas as PlayerChooseMokeponCanvas).MokeponChosen == true)
                {
                    playerMokepon = player.Mokepons[(currentCanvas as PlayerChooseMokeponCanvas).Choice];

                    currentCanvas.UnloadContent();
                    currentCanvas = null;
                    GC.Collect();

                    Dialogues.AddText(string.Format("Go! {0}!", playerMokepon.Name));
                    Dialogues.DisplayNext();

                    playerMokeponImage = new Image("Mokepons/" + playerMokepon.DefaultName);
                    playerMokeponImage.LoadContent();
                    playerMokeponImage.MoveMid(new Vector2(Globals.ScreenWidth / 4, 3 * Globals.ScreenHeight / 4 - 100));
                    PulseEffect pulse = new PulseEffect(2f, 1.5);
                    playerMokeponImage.AddEffect("PulseEffect", ref pulse);
                    playerMokeponImage.ActivateEffect("PulseEffect");

                    playerStats = new MokeponBattleStats(ref playerMokepon, new Vector2(500, 400), true);
                    playerStats.LoadContent();
                    wait = 3.0;
                    SwitchState(BattleState.CHOOSE_ACTION);
                    return;
                }
            }
            else
            {
                SwitchState(BattleState.CHOOSE_ACTION);
                return;
            }
        }
        public PlayerChooseMokeponCanvas(List <Mokepon> pokemons, Mokepon current = null) : base(pokemons)
        {
            cur = current;
            Elements.Add(new Text("Choose your Mokepon!", "Expression-pro-32px"));
            (Elements.Last() as Text).Color = Color.White;

            MokeponChosen = false;
            warning       = false;
        }
Esempio n. 8
0
 public ExpBar(ref Mokepon pok, int height, int width, Vector2 pos)
 {
     pokemon        = pok;
     Width          = width;
     Height         = height;
     Position       = pos;
     Scale          = Vector2.One;
     back           = new Image("Black", new Rectangle(0, 0, 1, 1), pos, width, height);
     bar            = new Image("White", new Rectangle(0, 0, 1, 1), pos + new Vector2(1, 1), width - 2, height - 2);
     bar.ImageColor = Color.LightSkyBlue;
 }
Esempio n. 9
0
        public int CalculateExperience(Mokepon attacker, Mokepon defender, bool wild = true)
        {
            double exp = 1;

            if (!wild)
            {
                exp = 1.5;
            }

            exp *= defender.LVL / (double)attacker.LVL;
            exp *= defender.LVL;

            return((int)Math.Ceiling(exp));
        }
        public MokeponOptionsCanvas(Mokepon mokepon)
        {
            Elements.Add(new Image("White", new Rectangle(0, 0, Globals.ScreenWidth, Globals.ScreenHeight)));
            this.mokepon = mokepon;
            Elements.Add(new Text("Name: " + mokepon.Name, "Expression-pro-32px"));
            Elements.Add(new Text("Species: " + mokepon.DefaultName, "Expression-pro-32px"));
            Elements.Add(new Image("Mokepons/" + mokepon.DefaultName));
            Elements.Add(new Text("Statistics:", "Expression-pro-32px"));
            Elements.Add(new Text("Max Health: " + mokepon.MaxHP + "\nHealth: " + mokepon.HP + "\nAttack: " + mokepon.ATK +
                                  "\nDefense: " + mokepon.DEF + "\nSpecial Attack: " + mokepon.SP_ATK + "\nSpecial Defense: " + mokepon.SP_DEF +
                                  "\nSpeed: " + mokepon.SPD + "\nAccuracy: " + mokepon.ACC));

            Buttons.Add(new Button(null, new Text("Release")));
            Buttons.Add(new Button(null, new Text("Back")));
            ButtonRows = 2;
            Buttons[0].ButtonText.Color = Color.DimGray;
        }
Esempio n. 11
0
        public MokeponBattleStats(ref Mokepon pokemon, Vector2 pos, bool mine = false)
        {
            Position = pos;
            Scale    = Vector2.One;

            this.mine    = mine;
            this.pokemon = pokemon;

            background   = new Image(mine ? "MyMokeponStatus" : "MokeponStatus", pos, Vector2.One);
            pokemonName  = new Text(pokemon.Name, Color.Black, pos + new Vector2(10, 10), Vector2.One, "Expression-pro-24px");
            pokemonLevel = new Text("Lvl " + pokemon.LVL.ToString(), Color.Black, pos + new Vector2(200, 10), Vector2.One, "Expression-pro-18px");
            pokemonName.MoveVector(mine ? new Vector2(18, 0) : new Vector2(0, 0));
            pokemonLevel.MoveVector(mine ? new Vector2(18, 0) : new Vector2(0, 0));
            hpbar = new HPBar(ref pokemon, 6, 150, pos + new Vector2(10, 55));
            hpbar.MoveVector(mine ? new Vector2(18, 0) : new Vector2(0, 0));

            if (mine)
            {
                hpStatus = new Text("", Color.Black, pos + new Vector2(190, 55), Vector2.One, "Expression-pro-18px");
                expbar   = new ExpBar(ref pokemon, 4, 120, pos + new Vector2(28, 60));
            }
        }
Esempio n. 12
0
        public override void Effect(ref Mokepon caster, ref Mokepon target, BattleScreen screen)
        {
            if (screen.enemy.Name.Length > 0)
            {
                screen.Dialogues.AddText("How dare you try to catch someone's Mokepon?!");
                return;
            }

            int rand     = Managers.GameManager.Instance.random.Next(256);
            int treshold = (target.HP * 255 * target.LVL) / (target.MaxHP * 4);

            if (rand < treshold)
            {
                screen.Dialogues.AddText(target.Name + " broke free!");
                return;
            }
            else
            {
                screen.EnemyMokeponCaught = true;
                return;
            }
        }
Esempio n. 13
0
        public override void Stepped()
        {
            base.Stepped();

            if (Probability <= Managers.GameManager.Instance.random.Next(100))
            {
                return;
            }

            int totalPpb = 0;

            Console.WriteLine("Spawn count: " + Spawns.Count.ToString());

            foreach (var spawn in Spawns)
            {
                totalPpb += spawn.Probability;
            }

            int randint = Managers.GameManager.Instance.random.Next(0, totalPpb);

            foreach (var spawn in Spawns)
            {
                if (randint < spawn.Probability)
                {
                    int level = Managers.GameManager.Instance.random.Next(MinLevel, MaxLevel + 1);

                    Mokepon wildMokepon = new Mokepon(spawn.MokeponName, level);

                    Enemy enemy = new Enemy();
                    enemy.Mokepons.Add(wildMokepon);
                    enemy.MokeponChoiceText = "Wild {0} has appeared!";
                    enemy.AILevel           = 0;

                    (Managers.ScreenManager.Instance.CurrentScreen as Screens.GameScreen).StartBattle(enemy);
                    return;
                }
                randint -= spawn.Probability;
            }
        }
Esempio n. 14
0
        void ChooseEnemy(GameTime gameTime)
        {
            if (enemyMokepon == null)
            {
                if (enemy.Mokepons.Count == 0)
                {
                    SwitchState(BattleState.WON);
                    return;
                }

                foreach (var mok in enemy.Mokepons)
                {
                    if (mok.HP > 0)
                    {
                        enemyMokepon = mok;
                        break;
                    }
                }

                Dialogues.AddText(string.Format(enemy.MokeponChoiceText, enemyMokepon.Name));
                Dialogues.DisplayNext();

                enemyMokeponImage = new Image("Mokepons/" + enemyMokepon.Name);
                enemyMokeponImage.LoadContent();
                enemyMokeponImage.MoveMid(new Vector2(3 * Globals.ScreenWidth / 4, Globals.ScreenHeight / 4));
                PulseEffect pulse = new PulseEffect(2f, 1.5);
                enemyMokeponImage.AddEffect("PulseEffect", ref pulse);
                enemyMokeponImage.ActivateEffect("PulseEffect");

                enemyStats = new MokeponBattleStats(ref enemyMokepon, new Vector2(450, 100));
                enemyStats.LoadContent();
                wait = 3.0;
            }

            SwitchState(BattleState.PLAYER_CHOICE);
        }
Esempio n. 15
0
 public override void Effect(ref Mokepon caster, ref Mokepon target, BattleScreen screen)
 {
     screen.Dialogues.AddText(target.Name + "\'s attack fell!");
     target.AddBuff(-3, 0, 0, 0, 0, 0);
 }
Esempio n. 16
0
 public override void Effect(ref Mokepon caster, ref Mokepon target, BattleScreen screen)
 {
     target.AddBuff(0, 0, 0, 0, -20, -20);
     screen.Dialogues.AddText(caster.Name + "\'s cold has slowed " + target.Name + "! ");
     screen.Dialogues.AddText(target.Name + "\'s speed and accuracy fell!");
 }
Esempio n. 17
0
 public override void Effect(ref Mokepon caster, ref Mokepon target, BattleScreen screen)
 {
     caster.EraseBattleBuffs();
     screen.Dialogues.AddText(caster.Name + " attributes have been reset!");
 }
Esempio n. 18
0
 public override void Effect(ref Mokepon caster, ref Mokepon target, BattleScreen screen)
 {
     caster.AddBuff(0, 5, 0, 0, 0, 0);
     screen.Dialogues.AddText(caster.Name + "\'s defence rose!");
 }
Esempio n. 19
0
        void UseAbilities(GameTime gameTime)
        {
            //USE ABILITIES
            if (playerAbility == null && enemyAbility == null)
            {
                SwitchState(BattleState.END_TURN);
                return;
            }
            else if (enemyAbility != null && ((playerAbility == null) ||
                                              (playerAbility.Priority < enemyAbility.Priority) ||
                                              (playerAbility.Priority == enemyAbility.Priority && playerMokepon.SPD < enemyMokepon.SPD)))
            {
                //Use enemy ability
                if (enemyAbility.UsedWithItem)
                {
                    Dialogues.AddText(enemy.Name + " uses " + enemyAbility.ItemName + "!");
                    if (!Dialogues.Displaying)
                    {
                        Dialogues.DisplayNext();
                    }
                }
                else
                {
                    Dialogues.AddText(enemyMokepon.Name + " uses " + enemyAbility.Name + "!");
                    if (!Dialogues.Displaying)
                    {
                        Dialogues.DisplayNext();
                    }
                }

                double hit = Managers.GameManager.Instance.random.NextDouble();

                if (hit >= (enemyAbility.UsedWithItem ? (enemyAbility.ACC / 100.0) :
                            (enemyAbility.ACC / 100.0 * enemyMokepon.ACC / 100.0)))
                {
                    Dialogues.AddText("It missed!");
                    enemyAbility = null;
                    return;
                }

                if (enemyAbility.Attack)
                {
                    Damage damage = GameManager.Instance.CalculateDamage(enemyMokepon, playerMokepon, enemyAbility);

                    if (damage.Critical)
                    {
                        Dialogues.AddText("Critical hit!");
                        if (!Dialogues.Displaying)
                        {
                            Dialogues.DisplayNext();
                        }
                    }

                    if (damage.Multipiler > 1)
                    {
                        Dialogues.AddText("It's super effective!");
                        if (!Dialogues.Displaying)
                        {
                            Dialogues.DisplayNext();
                        }
                    }
                    else if (damage.Multipiler < 1)
                    {
                        Dialogues.AddText("It's not very effective!");
                        if (!Dialogues.Displaying)
                        {
                            Dialogues.DisplayNext();
                        }
                    }

                    playerMokepon.ReceiveDamage(damage.DamageValue);
                }

                enemyAbility.Effect(ref enemyMokepon, ref playerMokepon, this);
                wait         = 3.0;
                enemyAbility = null;
                GC.Collect();
            }
            else
            {
                //Use player ability
                if (playerAbility.UsedWithItem)
                {
                    Dialogues.AddText(player.Name + " uses " + playerAbility.ItemName + "!");
                    if (!Dialogues.Displaying)
                    {
                        Dialogues.DisplayNext();
                    }
                }
                else
                {
                    Dialogues.AddText(playerMokepon.Name + " uses " + playerAbility.Name + "!");
                    if (!Dialogues.Displaying)
                    {
                        Dialogues.DisplayNext();
                    }
                }

                double hit = Managers.GameManager.Instance.random.NextDouble();

                if (hit >= (playerAbility.UsedWithItem ? (playerAbility.ACC / 100.0) :
                            (playerAbility.ACC / 100.0 * playerMokepon.ACC / 100.0)))
                {
                    Dialogues.AddText("It missed!");
                    playerAbility = null;
                    return;
                }

                if (playerAbility.Attack)
                {
                    Damage damage = GameManager.Instance.CalculateDamage(playerMokepon, enemyMokepon, playerAbility);

                    if (damage.Critical)
                    {
                        Dialogues.AddText("Critical hit!");
                        if (!Dialogues.Displaying)
                        {
                            Dialogues.DisplayNext();
                        }
                    }

                    if (damage.Multipiler > 1)
                    {
                        Dialogues.AddText("It's super effective!");
                        if (!Dialogues.Displaying)
                        {
                            Dialogues.DisplayNext();
                        }
                    }
                    else if (damage.Multipiler < 1)
                    {
                        Dialogues.AddText("It's not very effective!");
                        if (!Dialogues.Displaying)
                        {
                            Dialogues.DisplayNext();
                        }
                    }

                    enemyMokepon.ReceiveDamage(damage.DamageValue);
                }

                playerAbility.Effect(ref playerMokepon, ref enemyMokepon, this);
                wait          = 3.0;
                playerAbility = null;
                GC.Collect();

                if (EnemyMokeponCaught)
                {
                    Dialogues.AddText(player.Name + " has caught " + enemyMokepon.Name + "!");

                    if (player.Mokepons.Count < 6)
                    {
                        player.Mokepons.Add(enemyMokepon);

                        enemy.Mokepons.Remove(enemyMokepon);
                        enemyMokepon = null;
                        enemyStats.UnloadContent();
                        enemyMokeponImage.UnloadContent();
                        enemyStats        = null;
                        enemyMokeponImage = null;
                        GC.Collect();
                        SwitchState(BattleState.NAME_MOKEPON);
                        return;
                    }
                    else
                    {
                        Dialogues.AddText(player.Name + " has reached maximum number of Mokepons!");
                        enemyMokepon.HP = 0;
                    }

                    playerAbility = null;
                    enemyAbility  = null;
                }
            }

            if (playerMokepon.HP == 0)
            {
                Dialogues.AddText(playerMokepon.Name + " fainted!");
                if (!Dialogues.Displaying)
                {
                    Dialogues.DisplayNext();
                }
                playerMokepon = null;
                playerStats.UnloadContent();
                playerMokeponImage.UnloadContent();
                playerStats        = null;
                playerMokeponImage = null;
                GC.Collect();
                SwitchState(BattleState.END_TURN);
            }

            if (enemyMokepon.HP == 0)
            {
                int XP = GameManager.Instance.CalculateExperience(playerMokepon, enemyMokepon, enemy.Name.Length > 0);
                playerMokepon.GainXP(XP);
                Dialogues.AddText(playerMokepon.Name + " gained " + XP.ToString() + " experience points!");
                if (!Dialogues.Displaying)
                {
                    Dialogues.DisplayNext();
                }

                while (playerMokepon.XP >= playerMokepon.LVL_UP_XP)
                {
                    playerMokepon.LevelUp();
                    Dialogues.AddText(playerMokepon.Name + " grew to level " + playerMokepon.LVL + "!");
                }

                Dialogues.AddText(enemyMokepon.Name + " fainted!");

                enemyMokepon = null;
                enemyStats.UnloadContent();
                enemyMokeponImage.UnloadContent();
                enemyStats        = null;
                enemyMokeponImage = null;

                GC.Collect();
                SwitchState(BattleState.END_TURN);
            }
        }
Esempio n. 20
0
        void ChooseAction(GameTime gameTime)
        {
            if (!MoveChosen)
            {
                if (currentCanvas == null)
                {
                    Dialogues.AddText("What will " + playerMokepon.Name + " do?");
                    Dialogues.DisplayNext();
                    currentCanvas = new PlayerActionChoiceCanvas(player, playerMokepon);
                    currentCanvas.LoadContent();
                }

                currentCanvas.Update(gameTime);
            }
            else
            {
                if (currentCanvas.GetType() == typeof(PlayerActionChoiceCanvas))
                {
                    currentCanvas.UnloadContent();
                    currentCanvas = null;
                    GC.Collect();
                }

                if (PlayerMove == "Run")
                {
                    foreach (var pok in player.Mokepons)
                    {
                        pok.HP = 0;
                    }

                    Dialogues.AddText(player.Name + " has fled from the battle!");
                    Dialogues.AddText(player.Name + "\'s Mokepons have fainted!");
                    Dialogues.DisplayNext();
                    wait = 3.0;
                    SwitchState(BattleState.LOST);
                    return;
                }
                else if (PlayerMove == "SwitchMokepon")
                {
                    if (currentCanvas == null)
                    {
                        currentCanvas = new PlayerChooseMokeponCanvas(player.Mokepons, playerMokepon);
                        currentCanvas.LoadContent();
                    }

                    if ((currentCanvas as PlayerChooseMokeponCanvas).MokeponChosen == false)
                    {
                        currentCanvas.Update(gameTime);
                    }

                    if ((currentCanvas as PlayerChooseMokeponCanvas).MokeponChosen == true)
                    {
                        if (playerMokepon != null)
                        {
                            hideCanvas = true;
                            Dialogues.AddText(playerMokepon.Name + ", go back!");
                            Dialogues.DisplayNext();
                            playerMokepon = null;
                            playerMokeponImage.UnloadContent();
                            playerMokeponImage = null;
                            playerStats.UnloadContent();
                            playerStats = null;
                            GC.Collect();
                            wait = 3.0;
                            return;
                        }

                        playerMokepon = player.Mokepons[(currentCanvas as PlayerChooseMokeponCanvas).Choice];
                        currentCanvas.UnloadContent();
                        currentCanvas = null;
                        hideCanvas    = false;
                        GC.Collect();

                        playerMokeponImage = new Image("Mokepons/" + playerMokepon.DefaultName);
                        playerMokeponImage.LoadContent();
                        playerMokeponImage.MoveMid(new Vector2(Globals.ScreenWidth / 4, 3 * Globals.ScreenHeight / 4 - 100));
                        PulseEffect pulse = new PulseEffect(2f, 1.5);
                        playerMokeponImage.AddEffect("PulseEffect", ref pulse);
                        playerMokeponImage.ActivateEffect("PulseEffect");

                        playerStats = new MokeponBattleStats(ref playerMokepon, new Vector2(500, 400), true);
                        playerStats.LoadContent();

                        Dialogues.AddText(string.Format("Go! {0}!", playerMokepon.Name));
                        Dialogues.DisplayNext();
                        wait         = 3.0;
                        EnemyMove    = EnemyAI.ChooseMove(enemyMokepon, playerMokepon, enemy.AILevel);
                        enemyAbility = (Ability)Activator.CreateInstance(Type.GetType("MokeponGame.Gameplay.Abilities." + EnemyMove));
                        SwitchState(BattleState.USE_ABILITIES);
                        return;
                    }
                }
                else if (PlayerMove == "Wait")
                {
                    Dialogues.AddText(playerMokepon.Name + " decides to wait!");
                    Dialogues.DisplayNext();
                    wait         = 3.0;
                    EnemyMove    = EnemyAI.ChooseMove(enemyMokepon, playerMokepon, enemy.AILevel);
                    enemyAbility = (Ability)Activator.CreateInstance(Type.GetType("MokeponGame.Gameplay.Abilities." + EnemyMove));
                    SwitchState(BattleState.USE_ABILITIES);
                    return;
                }
                else if (PlayerMove.StartsWith("Item_"))
                {
                    string[] strings = PlayerMove.Split('_');
                    EnemyMove     = EnemyAI.ChooseMove(enemyMokepon, playerMokepon, enemy.AILevel);
                    enemyAbility  = (Ability)Activator.CreateInstance(Type.GetType("MokeponGame.Gameplay.Abilities." + EnemyMove));
                    playerAbility = (Ability)Activator.CreateInstance(Type.GetType("MokeponGame.Gameplay.Abilities." + strings[2]));
                    playerAbility.UsedWithItem = true;
                    playerAbility.ItemName     = strings[1];
                    SwitchState(BattleState.USE_ABILITIES);
                    return;
                }
                else
                {
                    EnemyMove     = EnemyAI.ChooseMove(enemyMokepon, playerMokepon, enemy.AILevel);
                    enemyAbility  = (Ability)Activator.CreateInstance(Type.GetType("MokeponGame.Gameplay.Abilities." + EnemyMove.Replace(" ", "")));
                    playerAbility = (Ability)Activator.CreateInstance(Type.GetType("MokeponGame.Gameplay.Abilities." + PlayerMove.Replace(" ", "")));
                    SwitchState(BattleState.USE_ABILITIES);
                    return;
                }
            }
        }