Пример #1
0
        protected override void Execute()
        {
            MovePathAction               ma  = new MovePathAction(this.Source, path, this.Source.Module <MoveModule>().MoveDuration);
            AttackUnitAction             aa  = new AttackUnitAction(this.attackUnit);
            PlayerDeclareMoveAttackEvent evt = new PlayerDeclareMoveAttackEvent(player, (UnitEntity)this.Source, this.attackUnit, ma, aa);

            this.EventManager.Raise(evt);
        }
 public PlayerDeclareMoveAttackEvent(Player player, UnitEntity ent, UnitEntity attackEnt, MovePathAction ma = null, AttackUnitAction aa = null)
 {
     this.player       = player;
     this.ma           = ma;
     this.ent          = ent;
     this.aa           = aa;
     this.attackEnt    = attackEnt;
     this.AttackAction = aa;
 }
Пример #3
0
        private void PerformAttacks()
        {
            MultiAction ma = new MultiAction();

            foreach (PlayerDeclareMoveAttackEvent evt in this.moveAttackDeclaration.Values)
            {
                AttackUnitAction aua = evt.AttackAction;
                if (evt.AttackUnit != null)
                {
                    ma.AddAction(evt.Entity, aua);
                }
            }
            ma.Resolved += (sender, maEvt) => SkipToPhase(Phases.EndCombat, this.playersTurn);
            this.ActionManager.Queue(ma);
        }