Exemplo n.º 1
0
        public virtual void Use(IBattle battle, UseMove useMoveAction)
        {
            if (!DamageType.HasValue)
            {
                return;
            }

            Battle.IMove move = useMoveAction.Slot.Pokemon.Moves.Find(this);

            InflictMoveDamage message = new InflictMoveDamage(battle, move, useMoveAction.Slot, useMoveAction.HitTargets);

            battle.MessageQueue.AddFirst(message); // Maybe Enqueue?
        }
Exemplo n.º 2
0
        public void Receive(UseMove useMoveAction)
        {
            if (useMoveAction.Slot.Pokemon.HasFainted())
            {
                return;
            }

            UseMoveEventArgs useMoveEventArgs = new UseMoveEventArgs(this, useMoveAction);

            OnUseMove?.Invoke(this, useMoveEventArgs);

            useMoveAction.Move.Use(this, useMoveAction);

            MoveUsedEventArgs moveUsedEventArgs = new MoveUsedEventArgs(this, useMoveAction);

            OnMoveUsed?.Invoke(this, moveUsedEventArgs);
        }
Exemplo n.º 3
0
 public void Use(IBattle battle, UseMove useMoveAction)
 {
     Base.Use(battle, useMoveAction);
 }
Exemplo n.º 4
0
        public override void Use(IBattle battle, UseMove useMoveAction)
        {
            ShiftStatStage shift = new ShiftStatStage(useMoveAction.Targets[0].Pokemon, PokemonEngine.Model.Battle.Statistic.Attack, -1);

            battle.MessageQueue.AddFirst(shift);
        }
Exemplo n.º 5
0
 public MoveUsedEventArgs(IBattle battle, UseMove action) : base(battle)
 {
     Action = action;
 }