public static corePokemonData pokemonStats(PokedexData p, int id)
        {
            PokemonJsonData pokemon = p.pokemon[id];

            corePokemonData data = new corePokemonData(pokemon);
            return data;
        }
        public FBG_Pokemon(int m_Level, corePokemonData data, List<attackIndex> attackMoves, ref FBG_PokemonTeam t)
        {
            team = t;

            Name = data.name;
            ID = data.id;
            Level = m_Level;

            baseHP = data.baseStats.hp;
            baseAttack = data.baseStats.atk;
            baseDefense = data.baseStats.def;
            baseSpecial_Attack = data.baseStats.spa;
            baseSpecial_Defense = data.baseStats.spd;
            baseSpeed = data.baseStats.spe;

            type1 = data.type1;
            type2 = data.type2;

            damageMultiplier = data.damageMultiplier;

            cachedDamage = 0;

            status_A = nonVolitileStatusEffects.none;
            nonVolDuration = 0;

            position = pokemonPosition.normal;
            atkStatus = attackStatus.normal;

            nextAttack = "";

            //need to set these to something before updaing them
            setStages();
            generatePokemonStats(Level);
            randomNumbers = generateRandomList(attackMoves.Count);
            SetAttacks(attackMoves, randomNumbers);
            //Debug.Log(attackMoves.Count);
        }