Пример #1
0
        public void AddOrder ( IActionOrder order )
        {
            ActionRights needRights = order.NeedRights;
            if ((needRights & ActionRights.Rota) == ActionRights.Rota)
            {
                RotaRightOwner.Stop();
                DeleteAllRightOfOrder( RotaRightOwner );
                RotaRightOwner = order;
            }
            if ((needRights & ActionRights.RotaTurret) == ActionRights.RotaTurret)
            {
                RotaTurretRightOwner.Stop();
                DeleteAllRightOfOrder( RotaTurretRightOwner );
                RotaTurretRightOwner = order;
            }
            if ((needRights & ActionRights.RotaRader) == ActionRights.RotaRader)
            {
                RotaRaderRightOwner.Stop();
                DeleteAllRightOfOrder( RotaRaderRightOwner );
                RotaRaderRightOwner = order;
            }
            if ((needRights & ActionRights.Move) == ActionRights.Move)
            {
                MoveRightOwner.Stop();
                DeleteAllRightOfOrder( MoveRightOwner );
                MoveRightOwner = order;
            }

            order.OrderServer = orderServer;
            curOrder.Add( order );
        }
Пример #2
0
 public void Update ( float seconds )
 {
     if (curOrder.IsEnd)
     {
         if (curOrder is OrderRotaToAzi)
         {
             orderServer.TurnRightSpeed = 0;
             curOrder = new OrderMove( Vector2.Distance( aimPos, orderServer.Pos ), forwardVel );
             curOrder.OrderServer = orderServer;
         }
         else
         {
             isEnd = true;
             if (finishHandler != null)
             {
                 finishHandler( this );
             }
         }
     }
     curOrder.Update( seconds );
 }
Пример #3
0
 private void TurnLeft ( IActionOrder order )
 {
     action.AddOrder( new OrderRotaRaderToAzi( rotaAziLeft, rotaSpeed, TurnRight, false ) );
 }
Пример #4
0
        private void DeleteAllRightOfOrder ( IActionOrder order )
        {
            if (RotaRightOwner == order)
            {
                RotaRightOwner = new EmptyActionOrder();
                orderServer.TurnRightSpeed = 0;
            }
            if (RotaTurretRightOwner == order)
            {
                RotaTurretRightOwner = new EmptyActionOrder();
                ((IAIOrderServerSinTur)orderServer).TurnTurretWiseSpeed = 0;
            }
            if (RotaRaderRightOwner == order)
            {
                RotaRaderRightOwner = new EmptyActionOrder();
                orderServer.TurnRaderWiseSpeed = 0;
            }
            if (MoveRightOwner == order)
            {
                MoveRightOwner = new EmptyActionOrder();
                orderServer.ForwardSpeed = 0;
            }

            curOrder.Remove( order );
        }