public PokemonEntity(string m_Name, int m_ID, int m_Level, int m_baseHP, int m_baseAttack, int m_baseDefense,
        int m_baseSpAttack, int m_baseSpDef, int m_baseSpeed, string m_Type1, string m_Type2, 
        List<attackIndex> attackMoves)
    {
        Name = m_Name;
        ID = m_ID;
        Level = m_Level;

        baseHP = m_baseHP;
        baseAttack = m_baseAttack;
        baseDefense = m_baseDefense;
        baseSpecial_Attack = m_baseSpAttack;
        baseSpecial_Defense = m_baseSpDef;
        baseSpeed = m_baseSpeed;

        Type1 = m_Type1;
        Type2 = m_Type2;

        cachedDamage = 0;
        sleepDuration = 0;
        confusedDuration = 0;

        status_A = nonVolitileStatusEffects.none;

        //need to set these to something before updaing them
        setStages();
        setBools();
        generatePokemonStats(Level);
        randomNumbers = generateRandomList(attackMoves.Count);
        SetAttacks(attackMoves, randomNumbers);
    }
    public PokemonEntity(string m_Name, int m_ID, int m_Level, int m_baseHP, int m_baseAttack, int m_baseDefense,
                         int m_baseSpAttack, int m_baseSpDef, int m_baseSpeed, string m_Type1, string m_Type2,
                         List <attackIndex> attackMoves)
    {
        Name  = m_Name;
        ID    = m_ID;
        Level = m_Level;

        baseHP              = m_baseHP;
        baseAttack          = m_baseAttack;
        baseDefense         = m_baseDefense;
        baseSpecial_Attack  = m_baseSpAttack;
        baseSpecial_Defense = m_baseSpDef;
        baseSpeed           = m_baseSpeed;

        Type1 = m_Type1;
        Type2 = m_Type2;

        cachedDamage     = 0;
        sleepDuration    = 0;
        confusedDuration = 0;

        status_A = nonVolitileStatusEffects.none;

        //need to set these to something before updaing them
        setStages();
        setBools();
        generatePokemonStats(Level);
        randomNumbers = generateRandomList(attackMoves.Count);
        SetAttacks(attackMoves, randomNumbers);
    }
    private void dmgStatusText(bool isPlayer)
    {
        nonVolitileStatusEffects curNVE = playerNVStatus;
        string pokemon = playerStats.PokemonName;

        if (!isPlayer)
        {
            pokemon = enemyStats.PokemonName;
            curNVE  = enemyNVStatus;
        }

        string status = "";

        switch (curNVE)
        {
        case nonVolitileStatusEffects.burned:
            status = "burn";
            break;

        case nonVolitileStatusEffects.poisioned:
            status = "poison";
            break;

        case nonVolitileStatusEffects.toxic:
            status = "toxic";
            break;
        }

        string text = pokemon + " was hurt by " + status + ".";

        c_Queue.AddCoroutineToQueue(DisplayText(text));
    }
 private bool checkPlayerNVStatus()
 {
     if (playerNVStatus != nonVolitileStatusEffects.none)
     {
         if (playerNVStatus == nonVolitileStatusEffects.paralized)
         {
             int rnd = UnityEngine.Random.Range(1, 4);
             if (rnd == 1)
             {
                 string text = playerStats.PokemonName + " is Paralized!";
                 c_Queue.AddCoroutineToQueue(DisplayText(text));
                 return(true);
             }
         }
         if (playerNVStatus == nonVolitileStatusEffects.sleep)
         {
             playerNVDur--;
             string text = "";
             if (playerNVDur == 0)
             {
                 text = playerStats.PokemonName + " woke up!";
                 c_Queue.AddCoroutineToQueue(DisplayText(text));
             }
             else
             {
                 text = playerStats.PokemonName + " is fast asleep!";
                 c_Queue.AddCoroutineToQueue(DisplayText(text));
                 return(true);
             }
         }
         if (playerNVStatus == nonVolitileStatusEffects.frozen)
         {
             int rnd = UnityEngine.Random.Range(1, 10);
             if (rnd >= 2)
             {
                 string text = playerStats.PokemonName + " is Frozen!";
                 c_Queue.AddCoroutineToQueue(DisplayText(text));
                 return(true);
             }
             else
             {
                 playerNVStatus = nonVolitileStatusEffects.none;
                 string text = playerStats.PokemonName + " thawed out!";
                 c_Queue.AddCoroutineToQueue(DisplayText(text));
             }
         }
     }
     return(false);
 }
        private void updateStats()
        {
            if(curTeam == PokemonTeam.redTeam)
            {
                pokemonTeamData = battlesim.redTeam;
            }
            else
            {
                pokemonTeamData = battlesim.blueTeam;
            }

            if (index < 0)
            {
                index = pokemonTeamData.Count - 1;
            }

            if (index >= pokemonTeamData.Count)
            {
                index = 0;
            }

            FBG_Pokemon p = pokemonTeamData[index];
            pokeName = p.Name;
            m_ID = p.ID;
            m_Level = p.Level;

            m_Attack = p.Attack;
            m_Defenese = p.Defense;
            m_SpecialAttack = p.Special_Attack;
            m_SpecialDefense = p.Special_Defense;

            atkMoves = p.atkMoves;

            status_A = p.status_A;
            position = p.position;
            atkStatus = p.atkStatus;

            damageMultiplier = p.damageMultiplier;
            nextAttack = p.nextAttack;
        }
    private bool checkPlayerNVStatus()
    {
        if (playerNVStatus != nonVolitileStatusEffects.none)
        {
            if (playerNVStatus == nonVolitileStatusEffects.paralized)
            {
                int rnd = UnityEngine.Random.Range(1, 4);
                if (rnd == 1)
                {
                    string text = playerStats.PokemonName + " is Paralized!";
                    c_Queue.AddCoroutineToQueue(DisplayText(text));
                    return true;
                }
            }
            if (playerNVStatus == nonVolitileStatusEffects.sleep)
            {
                playerNVDur--;
                string text = "";
                if (playerNVDur == 0)
                {
                    text = playerStats.PokemonName + " woke up!";
                    c_Queue.AddCoroutineToQueue(DisplayText(text));
                }
                else {
                    text = playerStats.PokemonName + " is fast asleep!";
                    c_Queue.AddCoroutineToQueue(DisplayText(text));
                    return true;
                }

            }
            if (playerNVStatus == nonVolitileStatusEffects.frozen)
            {
                int rnd = UnityEngine.Random.Range(1, 10);
                if (rnd >= 2)
                {
                    string text = playerStats.PokemonName + " is Frozen!";
                    c_Queue.AddCoroutineToQueue(DisplayText(text));
                    return true;
                }
                else
                {
                    playerNVStatus = nonVolitileStatusEffects.none;
                    string text = playerStats.PokemonName + " thawed out!";
                    c_Queue.AddCoroutineToQueue(DisplayText(text));

                }
            }
        }
        return false;
    }