public async Task AddWarpEnd(AuthorizationTokenContainer tokenContainer, SelectedShipContainer selectedShipContainer, SelectedWarpStartContainer selectedWarpStart) { GetPlayerByAccessTokenResponse playerByAccessTokenResponse = _authService.GetPlayerByAccessToken(tokenContainer.Token); if (playerByAccessTokenResponse.Success && playerByAccessTokenResponse.Player.IsAdmin == true) { GetShipsByPlayerIdResponse serviceResult = _gameService.GetShipByPlayerId(playerByAccessTokenResponse.Player.Id, selectedShipContainer.ShipId); if (serviceResult.Success) { Ship ship = serviceResult.Ships.First(); ConnectWarpgateResult connectResult = _objectService.ConnectWarpGate(ship.X, ship.Y, ship.Z, selectedWarpStart.WarpStartId); if (connectResult.Success == true) { await Clients.Caller.ReceiveMessage("Connected warpgates together: " + connectResult.SourceObjectId + " --> " + connectResult.DestinationObjectId); } else { await Clients.Caller.ReceiveMessage("Space object could not be created."); } } else { await Clients.Caller.ReceiveError(new ErrorFromServer("Could not retrieve the ship you are piloting for object placement or selection purposes.")); } } else { await Clients.Caller.ReceiveError(new ErrorFromServer("Warp ending spot creation is only available to administrators.")); } }
public async Task AddWarpStart(AuthorizationTokenContainer tokenContainer, SelectedShipContainer selectedShipContainer) { GetPlayerByAccessTokenResponse playerByAccessTokenResponse = _authService.GetPlayerByAccessToken(tokenContainer.Token); if (playerByAccessTokenResponse.Success && playerByAccessTokenResponse.Player.IsAdmin == true) { GetShipsByPlayerIdResponse serviceResult = _gameService.GetShipByPlayerId(playerByAccessTokenResponse.Player.Id, selectedShipContainer.ShipId); if (serviceResult.Success) { Ship ship = serviceResult.Ships.First(); CreateSpaceObjectResult spaceObjectResult = _objectService.SpawnWarpGate(ship.X, ship.Y, ship.Z); if (spaceObjectResult.Success == true) { await Clients.Caller.ReceiveMessage("Space object #" + spaceObjectResult.SpaceObject.Id + " created."); } else { await Clients.Caller.ReceiveMessage("Space object could not be created."); } } else { await Clients.Caller.ReceiveError(new ErrorFromServer("Could not retrieve the ship you are piloting for object placement or selection purposes.")); } } else { await Clients.Caller.ReceiveError(new ErrorFromServer("Warp start selection is only available to administrators.")); } }
public async Task AddShipModule(AuthorizationTokenContainer tokenContainer, SelectedShipContainer selectedShipContainer) { GetPlayerByAccessTokenResponse playerByAccessTokenResponse = _authService.GetPlayerByAccessToken(tokenContainer.Token); if (playerByAccessTokenResponse.Success && playerByAccessTokenResponse.Player.IsAdmin == true) { GetShipsByPlayerIdResponse serviceResult = _gameService.GetShipByPlayerId(playerByAccessTokenResponse.Player.Id, selectedShipContainer.ShipId); if (serviceResult.Success) { Ship ship = serviceResult.Ships.First(); _lootService.SpawnRandomModule(ship.X, ship.Y, ship.Z); Clients.Caller.ReceiveMessage("Random module spawned!"); } else { await Clients.Caller.ReceiveError(new ErrorFromServer("Could not retrieve the ship you are piloting for object placement or selection purposes.")); } } else { await Clients.Caller.ReceiveError(new ErrorFromServer("Loot spawning is is only available to administrators.")); } }
public async Task ScanShipLocationForLoot(AuthorizationTokenContainer tokenContainer, SelectedShipContainer selectedShipContainer) { GetPlayerByAccessTokenResponse playerByAccessTokenResponse = _authService.GetPlayerByAccessToken(tokenContainer.Token); if (playerByAccessTokenResponse.Success && playerByAccessTokenResponse.Player.IsAdmin == true) { GetShipsByPlayerIdResponse serviceResult = _gameService.GetShipByPlayerId(playerByAccessTokenResponse.Player.Id, selectedShipContainer.ShipId); if (serviceResult.Success) { Ship ship = serviceResult.Ships.First(); List <SpaceLoot> loot = _lootService.GetAllSpaceLoot(ship.X, ship.Y, ship.Z); LootScanResponse scanResponse = new LootScanResponse(); scanResponse.X = ship.X; scanResponse.Y = ship.Y; scanResponse.Z = ship.Z; if (loot.Count > 0) { scanResponse.SpaceLoots = loot; } else { scanResponse.SpaceLoots = null; } Clients.Caller.ReceiveLootScanResponse(scanResponse); } else { await Clients.Caller.ReceiveError(new ErrorFromServer("Could not retrieve the ship you are piloting for object placement or selection purposes.")); } } else { await Clients.Caller.ReceiveError(new ErrorFromServer("Loot spawning is is only available to administrators.")); } }