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 ); }
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 ); }
private void TurnLeft ( IActionOrder order ) { action.AddOrder( new OrderRotaRaderToAzi( rotaAziLeft, rotaSpeed, TurnRight, false ) ); }
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 ); }