private static SpaceshipRig RigByGuid(Guid guid) { if (guid == Guid.Empty) { return(null); } if (rigGuidDict == null) { rigGuidDict = new Dictionary <Guid, SpaceshipRig>(); } if (rigGuidDict.ContainsKey(guid)) { return(rigGuidDict[guid]); } else { string q = SpaceshipRigQuery(0, 0, "", false); q += $" AND rig_code = CAST('{guid.ToString()}' AS uniqueidentifier)"; SqlDataReader r = DataConnection.GetReader(q); SpaceshipRig curRig = null; if (r.HasRows) { r.Read(); curRig = new SpaceshipRig(r); } r.Close(); return(curRig); } }
public HttpResponseMessage StartBattleWithRigInDb(int battleSceneId) { string steamId = User.Identity.Name; int playerId = PlayerDataSql.PlayerId(steamId); SpaceshipRig rig = SpaceshipRig.RigForBattle(playerId, battleSceneId); Battle battle = null; if (rig != null) { if (rig.Id == 0) { rig.SaveData(playerId, ""); } } else { rig = SpaceshipRig.RigForBattle(playerId, battleSceneId); } battle = Battle.CreateBattle(playerId, battleSceneId, rig.Id, true); battle.Rig = rig; string serializedElement = JsonConvert.SerializeObject(battle); serializedElement = CommonFunctions.Compress(serializedElement); var response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StringContent(serializedElement); return(response); }
public PlayerAsset(int playerId) { Rigs = SpaceshipRig.PlayerRigs(playerId); Officers = Crew.CrewOfficer.OfficersForPlayer(playerId, false); Ships = Ship.PlayerShips(playerId); Modules = ShipModule.PlayerModules(playerId); //CreateModuleTypeDictionary(); }
public void CalculateParameters() { SpaceshipRig Rig = EnemyType.Rig; /*Rig.RecalculateParameters(); * pEnemyStructurePoints = (int)Math.Round(EnemyStatsMultiplier * Rig.Params.ParameterValue(SpaceshipParameters.SpaceShipParameter.StructureHitpoints)); * pEnemyShieldPoints = (int)Math.Round(EnemyStatsMultiplier * Rig.Params.ParameterValue(SpaceshipParameters.SpaceShipParameter.ShieldPoints)); * pEnemyShieldRegen = (int)Math.Round(EnemyStatsMultiplier * Rig.Params.ParameterValue(SpaceshipParameters.SpaceShipParameter.ShieldRegen));*/ }
private static void UpdateRigDict(SpaceshipRig rig) { if (StaticMembers.rigsDict == null) { StaticMembers.rigsDict = new Dictionary <int, SpaceshipRig>(); } if (!StaticMembers.rigsDict.ContainsKey(rig.Id)) { StaticMembers.rigsDict.Add(rig.Id, rig); } }
private void buttonCreateRig_Click(object sender, EventArgs e) { ShipModel curModel = GetCurrentModel(); if (curModel == null) { return; } saRig = new SpaceshipRig(); saRig.LoadShipModel(curModel); FillRig(); }
public HttpResponseMessage RigForBattle(int BattleSceneId) { string steamId = User.Identity.Name; int playerId = PlayerDataSql.PlayerId(steamId); var rig = SpaceshipRig.RigForBattle(playerId, BattleSceneId); string serializedElement = JsonConvert.SerializeObject(rig); var response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StringContent(serializedElement); return(response); }
public HttpResponseMessage RegisterRigCompleted(SpaceshipRig rig) { string steamId = User.Identity.Name; int playerId = PlayerDataSql.PlayerId(steamId); if (rig != null) { rig.SaveData(playerId, ""); } var response = new HttpResponseMessage(HttpStatusCode.OK); return(response); }
public static SpaceshipRig RigById(int id) { if (id == 0) { return(null); } if (StaticMembers.rigsDict == null) { StaticMembers.rigsDict = new Dictionary <int, SpaceshipRig>(); } if (!StaticMembers.rigsDict.ContainsKey(id)) { SpaceshipRig newRig = new SpaceshipRig(id); StaticMembers.rigsDict.Add(newRig.Id, newRig); } return(StaticMembers.rigsDict[id]); }
private void buttonSaDeleteRig_Click(object sender, EventArgs e) { TreeNode n = treeSaRigs.SelectedNode; if (n == null) { return; } SpaceshipRig rig = (SpaceshipRig)n.Tag; if (MessageBox.Show(null, "Delete rig?", "", MessageBoxButtons.YesNo) == DialogResult.No) { return; } rig.Delete(); treeSaRigs.Nodes.Remove(n); }
public HttpResponseMessage ContinueBattle(int battleSceneId) { string steamId = User.Identity.Name; int playerId = PlayerDataSql.PlayerId(steamId); Battle battle = Battle.BattleByTypeId(playerId, battleSceneId); BattleScene tBattle = new BattleScene(BattleSceneType.SceneById(battleSceneId)); battle.battleScene = new UnityBattleScene(tBattle); battle.Rig = SpaceshipRig.RigById(battle.RigId); string serializedElement = JsonConvert.SerializeObject(battle); serializedElement = CommonFunctions.Compress(serializedElement); var response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StringContent(serializedElement); return(response); }
private void FillRigTree() { treeSaRigs.Nodes.Clear(); string rigQuery; rigQuery = SpaceshipRig.SpaceshipRigQuery(0, 0, "", false); SqlDataReader r = DataConnection.GetReader(rigQuery); if (r.HasRows) { while (r.Read()) { SpaceshipRig rig = new SpaceshipRig(r); TreeNode n = treeSaRigs.Nodes.Add(rig.ToString()); n.Tag = rig; } } r.Close(); }
private void buttonLoadPlayerShip_Click(object sender, EventArgs e) { if (treePlayerShipsRig.SelectedNode == null) { return; } Ship ship = (Ship)treePlayerShipsRig.SelectedNode.Tag; ship.Model.ClearSlotDuplicates(); saRig = new SpaceshipRig(); saRig.LoadShip(ship); FillRig(); SpaceShipParameters Params = new SpaceShipParameters(); Params.rig = saRig; Params.CalculateParameters(); textSaBottomLine.Text = Params.BottomLineString(); }
private void buttonSaLoadRig_Click(object sender, EventArgs e) { TreeNode n = treeSaRigs.SelectedNode; if (n == null) { return; } SpaceshipRig rig = (SpaceshipRig)n.Tag; saRig = rig; textSaRigTag.Text = rig.Tag; checkSaForPlayer.Checked = saRig.PlayerId > 0; FillRig(); SpaceShipParameters Params = new SpaceShipParameters(); Params.rig = saRig; Params.CalculateParameters(); textSaBottomLine.Text = Params.BottomLineString(); }
public static SpaceshipRig RigForPlayer(int playerId) { SpaceshipRig tRig = null; string q = SpaceshipRigQuery(0, playerId, "", false); SqlDataReader r = DataConnection.GetReader(q); if (r.HasRows) { r.Read(); tRig = new SpaceshipRig(r); } r.Close(); if (tRig != null) { return(tRig); } List <Ship> ships = Ship.PlayerShips(playerId); if (ships.Count == 0) { return(null); } tRig = new SpaceshipRig(); tRig.LoadShip(ships[0]); var moduleList = ShipModule.PlayerModules(playerId); tRig.LoadModules(moduleList); List <CrewOfficer> officers = CrewOfficer.OfficersForPlayer(playerId, true); officers.Add(new CrewOfficer(playerId)); tRig.LoadOfficers(officers); return(tRig); }
/// <summary> /// Возвращает имя и идентификатор объекта, который в данный момент доступен для игрока. /// Начинается всё со сцены истории story 1 потом битва и так далее пока не дойдёт до /// базы. Там будем разрабатывать систему миссий которая будет выглядеть несколько /// по-другому. /// </summary> /// <param name="steamId"></param> /// <returns></returns> public static StringAndInt NextStoryObject(string steamId) { int playerId = PlayerId(steamId); StringAndInt curData = PlayerStoryFlowHub.CurrentProgressElementForPlayer(playerId).ToStringAndInt(); //Если битва еще не началась, то игрока надо кинуть на сцену рига корабля if (curData.StrValue == "battle") { int battleId = curData.IntValue; //Проверка на то, что битва уже идёт Battle curBattle = Battle.BattleByTypeId(playerId, battleId); //Если битва не идёт надо проверить нет ли уже готового рига под эту битву if (curBattle == null) { SpaceshipRig rig = SpaceshipRig.RigForBattle(playerId, battleId); if (rig == null) { curData.StrValue = "rig"; } else { curData.StrValue = "launch battle"; } } } //Если следующий объект истории - станция, тогда нужно поставить специальную пометку в профиль игрока что у него есть станция if (curData.StrValue == "station") { PlayerStoryFlowHub.SetStationAvailable(playerId); } return(curData); }
public string SaveData(int playerId, string tag) { if (playerId > 0) { SpaceshipRig rigByGuid = RigByGuid(this.RigCode); if (rigByGuid != null) { if (rigByGuid.PlayerId != playerId) { return("Wrong guid"); } Id = rigByGuid.Id; } } string q; List <string> names = new List <string> { tag }; int shipId = 0; if (Ship != null) { Ship baseShip = Ship.GetShipByGuid(Ship.ShipCode); if (baseShip == null) { return("ship can't be found"); } if (baseShip.PlayerId != playerId) { return("Error ship ownership"); } Ship = baseShip; shipId = Ship.Id; } if (Id == 0) { if (RigCode == Guid.Empty) { RigCode = Guid.NewGuid(); } q = $@" INSERT INTO ss_rigs(ship_model_id, ship_id, player_id, tag, rig_code, for_battle_id) VALUES({sModel.Id}, {shipId}, {playerId}, @str1, CAST('{RigCode.ToString()}' AS uniqueidentifier), {ForBattleId}) SELECT @@IDENTITY AS Result"; Id = DataConnection.GetResultInt(q, names); } else { q = $@" UPDATE ss_rigs SET ship_model_id = {sModel.Id}, ship_id = {shipId}, player_id = {playerId}, tag = @str1, for_battle_id = {ForBattleId} WHERE id = {Id}"; DataConnection.Execute(q, names); } string idsDoNotDelete = ""; if (Slots.Count > 0) { foreach (RigSlot slot in Slots) { slot.SaveData(Id); if (idsDoNotDelete != "") { idsDoNotDelete += ","; } idsDoNotDelete += slot.Id; } } q = $"DELETE FROM ss_rigs_slots WHERE ss_rig_id = {Id} "; if (idsDoNotDelete != "") { q += " AND id NOT IN (" + idsDoNotDelete + ")"; } DataConnection.Execute(q); UpdateRigDict(this); if (Ship != null) { Ship.RigId = Id; Ship.Save(); } return(""); }
private void LoadRigs() { rigList = SpaceshipRig.BuiltInRigs(); }