private HttpResponseMessage SaveBattleProgress(BattleProgressRegistration progress, int playerId) { Battle currentBattle = Battle.BattleByCode(progress.BattleCode); if (currentBattle == null) { var errorResponse = new HttpResponseMessage(HttpStatusCode.NotFound); errorResponse.ReasonPhrase = "Battle not found"; return(errorResponse); } if (currentBattle.PlayerId != playerId) { var errorResponse = new HttpResponseMessage(HttpStatusCode.Forbidden); errorResponse.ReasonPhrase = "Battle ownership trouble"; return(errorResponse); } currentBattle.CurrentCycle = progress.CurrentCycle; currentBattle.CurrentStage = progress.CurrentStage; currentBattle.MaxOpenedCycle = progress.MaxOpenedCycle; currentBattle.MaxOpenedStage = progress.MaxOpenedStage; currentBattle.ShipOpenedSkills = progress.ShipSkills; currentBattle.ShipExperience = progress.battleExperience.Experience; currentBattle.ShipSkillPoints = progress.battleExperience.skillPoints; currentBattle.ShipNextSkillPointExperience = progress.battleExperience.nextSkillPointExperience; currentBattle.ShipTotalSkillPointsReceived = progress.battleExperience.totalSkillPointsReceived; currentBattle.ModuleSkillsJsonCompressed = progress.ModuleSkillsSerializedString; currentBattle.SaveData(); currentBattle.GainedResources = progress.GainedResources; progress.GainedResources.SaveData(PlayerResources.StorageType.SpaceShip, currentBattle.RigId, playerId); var response = new HttpResponseMessage(HttpStatusCode.OK); return(response); }
public HttpResponseMessage RegisterBattleProgress(BattleProgressRegistration progress) { string steamId = User.Identity.Name; int playerId = PlayerDataSql.PlayerId(steamId); return(SaveBattleProgress(progress, playerId)); }
public void RegisterBattleCompleted(BattleProgressRegistration progress) { string q; //0. Save main data SaveData(); //1. Transfer property from ship to the main warehouse progress.GainedResources.TransferToWarehouse(PlayerResources.StorageType.SpaceShip, RigId, PlayerId); //2. Update data in battles table q = $@" UPDATE battles SET ongoing = 0, date_complete = GETDATE(), successfull = 1, current_cycle = 0, current_stage = 0 WHERE id = {Id}"; DataConnection.Execute(q); //3. Insert a record in story table q = $@" INSERT INTO players_progress ( player, object_type, object_id, date_completed ) VALUES ( {PlayerId}, 'battle', {BattleSceneTypeId}, GETDATE() )"; DataConnection.Execute(q); //4. Clear rig ids for officers, ship and modules, and rig themselves q = $@" UPDATE crew_officers SET rig_id = 0 WHERE player_id = {PlayerId} AND rig_id = {RigId} UPDATE players_ships SET rig_id = 0 WHERE player_id = {PlayerId} AND rig_id = {RigId} UPDATE players_modules SET rig_id = 0 WHERE player_id = {PlayerId} AND rig_id = {RigId} --DELETE FROM ss_rigs WHERE id = {RigId} --DELETE FROM ss_rigs_slots WHERE ss_rig_id = {RigId} "; DataConnection.Execute(q); }
public HttpResponseMessage RegisterBattleCompleted(BattleProgressRegistration progress) { string steamId = User.Identity.Name; int playerId = PlayerDataSql.PlayerId(steamId); var response = SaveBattleProgress(progress, playerId); if (!response.IsSuccessStatusCode) { return(response); } Battle currentBattle = Battle.BattleByCode(progress.BattleCode); currentBattle.RegisterBattleCompleted(progress); return(response); }