예제 #1
0
        public void Update(IGameTimeService gameTime)
        {
            if (KeyboardManager.PlaceTurret.IsBindTapped())
            {
                if (PlayerShip != null && PlayerShip.Cargo.IsCargoInHolds(StatefulCargoTypes.LaserTurret, 1) && TimeKeeper.MsSinceInitialization - _lastRequestTime > _minimumRequestPeriod)
                {
                    PlayerShip.EnterMode = false;

                    _messageService.SendStructurePlacementRequest(StructureTypes.LaserTurret, PlayerShip.Position, PlayerShip.Id);

                    _lastRequestTime = TimeKeeper.MsSinceInitialization;
                }
            }

            if (KeyboardManager.PlaceMine.IsBindTapped())
            {
                if (PlayerShip != null && PlayerShip.Cargo.IsCargoInHolds(StatefulCargoTypes.DefensiveMine, 1) && TimeKeeper.MsSinceInitialization - _lastRequestTime > _minimumRequestPeriod)
                {
                    PlayerShip.EnterMode = false;

                    _messageService.SendStructurePlacementRequest(StructureTypes.DefensiveMine, PlayerShip.Position, PlayerShip.Id);

                    _lastRequestTime = TimeKeeper.MsSinceInitialization;
                }
            }
        }
예제 #2
0
        protected void SendStructurePlacementRequest(JSMarshallContainer request)
        {
            var req = request as StructurePlacementRequest;//Hmmm...would be nice to come up with a way to avoid this.

            _messageService.SendStructurePlacementRequest(req.StructureType, new Vector2(req.PosX, req.PosY), _playerShipManager.PlayerShip.Id);
        }