Exemple #1
0
        /// <summary>
        /// Update the set of recruits
        /// </summary>
        internal void CreateRecruits()
        {
            var recuritsToRemove = new List <string>();

            //remove recruits from iat and randomly select to remove them from pool of available recruits
            foreach (var member in Recruits)
            {
                var path = Path.Combine(storageLocation, member.Value.RolePlayCharacter.VoiceName + ".rpc").Replace("\\", "/");
                iat.RemoveCharacters(new List <int> {
                    iat.GetAllCharacterSources().First(c => c.Source.Replace("\\", "/") == path).Id
                });
                if (StaticRandom.Int(0, 100) % ConfigKey.RecruitChangeChance.GetIntValue() != 0)
                {
                    recuritsToRemove.Add(member.Key);
                }
            }
            foreach (var member in recuritsToRemove)
            {
                Recruits.Remove(member);
            }

            //for the amount of empty recruit spaces, create a new recruit
            var amount = ConfigKey.RecruitCount.GetIntValue() - Recruits.Count;

            for (var i = 0; i < amount; i++)
            {
                var position  = Boat.GetWeakestPosition(CrewMembers.Values.Concat(Recruits.Values).ToList());
                var newMember = new CrewMember(position, Nationality);
                UniqueNameCheck(newMember);
                Recruits.Add(newMember.Name, newMember);
            }
            var storeNum = 0;

            //set up the files for each recruit and their avatar
            foreach (var recruit in Recruits)
            {
                recruit.Value.CreateRecruitFile(iat, storageLocation, storeNum);
                storeNum++;
            }
            iat.Save();
        }
        private void buttonRemoveCharacter_Click(object sender, EventArgs e)
        {
            IList <string> charactersToRemove = new List <string>();

            for (int i = 0; i < dataGridViewCharacters.SelectedRows.Count; i++)
            {
                var character = ((ObjectView <CharacterSourceDTO>)dataGridViewCharacters.SelectedRows[i].DataBoundItem).Object;
                charactersToRemove.Add(character.Name);
            }
            _iatAsset.RemoveCharacters(charactersToRemove);
            _characterSources.DataSource = _iatAsset.GetAllCharacterSources().ToList();
            _characterSources.Refresh();
        }