public void SetPP(MoveProxy move)
 {
     Add(new SetPP()
     {
         Pm = move.Owner.Id, Move = move.MoveE.Id, PP = move.PP
     });
 }
예제 #2
0
 internal PokemonProxy(Pokemon pokemon)
 {
     Controller         = pokemon.Controller;
     Pokemon            = pokemon;
     NullOnboardPokemon = new OnboardPokemon(pokemon, -1);
     StruggleMove       = new MoveProxy(new Move(RomData.GetMove(Ms.STRUGGLE), 1), this);
     _moves             = new List <MoveProxy>(4);
 }
예제 #3
0
 internal void BuildAtkContext(MoveProxy move)
 {
     if (move.MoveE.Id == Ms.STRUGGLE)
     {
         _atkContext = new AtkContext(this);
     }
     else
     {
         _atkContext = new AtkContext(move);
     }
 }
예제 #4
0
 public void ChangeMove(MoveTypeE from, MoveTypeE to)
 {
     for (int i = 0; i < _moves.Count; ++i)
     {
         if (_moves[i].MoveE == from)
         {
             _moves[i] = new MoveProxy(to, this);
             break;
         }
     }
 }
예제 #5
0
 internal bool SelectMove(MoveProxy move, Tile target, bool mega)
 {
     if (Hp > 0 && move.CanBeSelected && (!mega || CanMega))
     {
         Action         = PokemonAction.WillMove;
         SelectedMove   = move;
         SelectedTarget = target;
         SelectMega     = mega;
         return(true);
     }
     return(false);
 }
예제 #6
0
 public bool SelectMove(MoveProxy move, Tile target, bool mega)
 {
     return(move.Owner.CanInput && move.Owner.SelectMove(move, target, mega));
 }
예제 #7
0
 internal bool InputSelectMove(MoveProxy move, Tile target, bool mega, bool zmove)
 {
     return(InputController.SelectMove(move, target, mega, zmove));
 }
예제 #8
0
 public AtkContext(MoveProxy mp)
 {
     MoveProxy = mp;
     Attacker  = mp.Owner;
 }