public RigSlotOfficerTeam(string list, int playerId) { OfficerList = new List <CrewOfficer>(); if (String.IsNullOrEmpty(list)) { return; } string[] ofString = list.Split(','); foreach (string s in ofString) { string s2 = s.Trim(); if (s2 != "") { if (s2 == "player") { //AccountData playerAcc = AssetEditor.FormMain.GetLatestUser(); //OfficerList.Add(new CrewOfficer(playerId)); OfficerList.Add(Crew.CrewOfficer.OfficerById(Crew.CrewOfficer.PlayerOfficerId(playerId))); } else { OfficerList.Add(CrewOfficer.OfficerById(Convert.ToInt32(s2))); } } } }
private void listSaOfficers_DoubleClick(object sender, EventArgs e) { if (gridSaSlots.SelectedCells.Count == 0) { return; } DataGridViewRow slotRow = gridSaSlots.Rows[gridSaSlots.SelectedCells[0].RowIndex]; CrewOfficer officer = (CrewOfficer)listSaOfficers.SelectedItem; RigSlot slot; slot = (RigSlot)slotRow.Cells["sas_object"].Value; string fitMsg = slot.LoadOfficer(officer); if (fitMsg != "") { MessageBox.Show(fitMsg); return; } slotRow.Cells["sas_content"].Value = null; slotRow.Cells["sas_content"].Value = slot; SpaceShipParameters Params = new SpaceShipParameters(); Params.rig = saRig; Params.CalculateParameters(); textSaBottomLine.Text = Params.BottomLineString(); }
public string LoadOfficer(CrewOfficer officer) { if (!Slot.SlotForOfficer) { return("Slot can't contain officer"); } return(team.AddOfficer(officer)); }
private void buttonSaDeleteOfficer_Click(object sender, EventArgs e) { if (listSaOfficers.SelectedItem == null) { return; } CrewOfficer ofType = (CrewOfficer)listSaOfficers.SelectedItem; ofType.Delete(); listSaOfficers.Items.Remove(ofType); }
private void buttonSaCreateOfficer_Click(object sender, EventArgs e) { if (comboSaOfficers.SelectedItem == null) { return; } CrewOfficerType ofType = (CrewOfficerType)comboSaOfficers.SelectedItem; //int playerId = DataConnection.GetResultInt("SELECT MAX(id) AS Result FROM [admirals]"); int playerId = PlayerDataSql.GetTestPlayerData().Id; CrewOfficer newOfficer = new CrewOfficer(ofType, playerId); listSaOfficers.Items.Add(newOfficer); }
private void FillPlayersOfficers() { PlayerData pData = PlayerDataSql.GetTestPlayerData(); listSaOfficers.Items.Clear(); List <CrewOfficer> officers = CrewOfficer.OfficersForPlayer(pData.Id); if (officers.Count > 0) { foreach (CrewOfficer off in officers) { listSaOfficers.Items.Add(off); } } }
private void listSaOfficers_SelectedIndexChanged(object sender, EventArgs e) { gridSaOfficer.Rows.Clear(); if (listSaOfficers.SelectedItem == null) { return; } CrewOfficer ofType = (CrewOfficer)listSaOfficers.SelectedItem; foreach (CrewOfficerStat stat in ofType.Stats) { DataGridViewRow row; gridSaOfficer.Rows.Add(); row = gridSaOfficer.Rows[gridSaOfficer.Rows.Count - 1]; row.Cells["sao_stat_name"].Value = stat; row.Cells["sao_value"].Value = stat.Value; } }
/// <summary> /// Возвращает пустую строку если всё ОК или описание ошибки если что-то пошло не так /// Что может пойти не так в данном случае? Только что превышено количество офицеров /// (может быть не более трех) или попытка добавить офицера, который уже есть в списке /// </summary> /// <param name="officer"></param> /// <returns></returns> public string AddOfficer(CrewOfficer officer) { if (OfficerList.Count >= MaxOfficers) { return("Too many officers in team"); } int id = officer.Id; if (id > 0 && OfficerList.Count > 0) { foreach (CrewOfficer of in OfficerList) { if (of.Id == id) { return("Duplicate officer in team"); } } } OfficerList.Add(officer); return(""); }
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); }
public void ExecuteEvent(int playerId) { if (Elements.Count == 0) { return; } //Repeatable events - check if already happend if (Repeatable == 0) { if (EventHappened(playerId, Id)) { return; } } string q; foreach (EventElement element in Elements) { if (element.ShipModel != null) { q = $@" INSERT INTO players_ships ( player_id, ss_design_id, experience, ship_level, ship_code ) VALUES ( {playerId}, {element.ShipModel.Id}, {element.Experience}, 1, NEWID() )"; DataConnection.Execute(q); } if (element.ModuleType != null) { q = $@" INSERT INTO players_modules ( player_id, module_id, experience, module_level, module_code ) VALUES ( {playerId}, {element.ModuleType.Id}, {element.Experience}, 1, NEWID() )"; DataConnection.Execute(q); } if (element.Officer != null) { CrewOfficer officer = new CrewOfficer(element.Officer, playerId); officer.Save(); } if (element.RemoveShipModel != null) { q = $@"DELETE FROM players_ships WHERE player_id = {playerId} AND ss_design_id = {element.RemoveShipModel.Id}"; DataConnection.Execute(q); } if (element.RemoveModuleType != null) { q = $@"DELETE FROM players_modules WHERE player_id = {playerId} AND module_id = {element.RemoveModuleType.Id}"; DataConnection.Execute(q); } } q = $@"INSERT INTO game_events_log( player_id, event_id, occurs ) VALUES ( {playerId}, {Id}, GETDATE() )"; DataConnection.Execute(q); }