private bool CheckSpForm()
        {
            switch (number)
            {
            case Ps.ARCEUS:
                form = _item / 1000 == Is.FLAME_PLATE / 1000 ? _item - Is.FLAME_PLATE + 1 : 0;
                break;

            case Ps.GIRATINA:
                form = _item == Is.GRISEOUS_ORB ? 1 : 0;
                break;

            case Ps.GENESECT:
                form = _item / 100 == Is.DOUSE_DRIVE / 100 ? _item - Is.DOUSE_DRIVE + 1 : 0;
                break;

            case Ps.KELDEO:
                if (!HasMove(Ms.SECRET_SWORD))
                {
                    form = 0;
                }
                break;

            case Ps.MEOWSTIC:
                form = _gender == PokemonGender.Female ? 1 : 0;
                break;
            }
            if (_form != null && _form.Index != form)
            {
                _form = null;
            }
            return(_form == null);
        }
 public void ChangeForm(int form, bool forever)
 {
     Form = Form.Species.GetForm(form);
     if (forever)
     {
         originForm = Form;
     }
 }
Beispiel #3
0
 internal PokemonSpecies(int number, int gender, EggGroup e1, EggGroup e2, PokemonColor color, int forms)
 {
     _number         = number;
     _genderBoundary = (byte)gender;
     _forms          = new PokemonForm[forms];
     for (int i = 0; i < forms; ++i)
     {
         _forms[i] = new PokemonForm(this, i);
     }
     _eggGroup1 = e1;
     _eggGroup2 = e2;
     _color     = color;
 }
Beispiel #4
0
 /// <summary>
 /// will not notify property changes
 /// </summary>
 public void SetAll(string name, PokemonForm form, PokemonGender gender, int lv, Position position, bool substitute, int hp, PokemonState state, bool shiny)
 {
     _name        = name;
     Form         = form;
     _gender      = gender;
     Lv           = lv;
     _position.X  = position.X;
     _position.Y  = position.Y;
     IsSubstitute = substitute;
     Hp.Value     = hp;
     _state       = state;
     Shiny        = shiny;
 }