Exemple #1
0
 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)));
             }
         }
     }
 }
Exemple #2
0
        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();
        }
Exemple #3
0
 public string LoadOfficer(CrewOfficer officer)
 {
     if (!Slot.SlotForOfficer)
     {
         return("Slot can't contain officer");
     }
     return(team.AddOfficer(officer));
 }
Exemple #4
0
        private void buttonSaDeleteOfficer_Click(object sender, EventArgs e)
        {
            if (listSaOfficers.SelectedItem == null)
            {
                return;
            }
            CrewOfficer ofType = (CrewOfficer)listSaOfficers.SelectedItem;

            ofType.Delete();
            listSaOfficers.Items.Remove(ofType);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
                }
            }
        }
Exemple #7
0
        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;
            }
        }
Exemple #8
0
    /// <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("");
    }
Exemple #9
0
    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);
    }
Exemple #10
0
    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);
    }