void CharacterJoiningEvent() { Debug.Log($"{Constant.TimeCycle.CHARACTER_ADDING_EVENT_CYCLE}s passed, Trying to start CharacterJoiningEvent."); if (LoadManager.Instance.allCharacterData.Count <= 0) { return; } /// Event occur chance int random = UnityEngine.Random.Range(0, 101); int joiningChance = Constant.CalculatingFunction.CharacterJoiningChanceCalculation(characterWaitingInLine.Count); Debug.Log($"Chance : 0 - {joiningChance}, Randomed : {random}. Adding event = {!(random >= joiningChance)}"); if (random >= joiningChance) { return; } int index = UnityEngine.Random.Range(0, LoadManager.Instance.allCharacterData.Count); Character.CharacterData characterData = LoadManager.Instance.allCharacterData[index]; Character character = new Character(characterData.name, characterData.gender, characterData.spritePath);; characterWaitingInLine.Add(character); LoadManager.Instance.allCharacterData.Remove(characterData); EventManager.Instance.CharacterAssigned(); }
void CreateWaitingCharacter() { int index = UnityEngine.Random.Range(0, LoadManager.Instance.allCharacterData.Count); Character.CharacterData characterData = LoadManager.Instance.allCharacterData.ElementAt(index).Value; Character character = new Character(characterData.name, characterData.gender, characterData.spritePath);; characterWaitingInLine.Add(character); LoadManager.Instance.allCharacterData.Remove(characterData.name); EventManager.Instance.CharacterAssigned(); }
void RemoveDuplicateCharacterData() { foreach (Character character in CharacterManager.Instance.AllCharacters) { Character.CharacterData cData = LoadManager.Instance.allCharacterData.SingleOrDefault(c => c.name == character.Name); if (cData != null) { LoadManager.Instance.allCharacterData.Remove(cData); } } foreach (Character character in CharacterManager.Instance.characterWaitingInLine) { Character.CharacterData[] cData = LoadManager.Instance.allCharacterData.Where(c => c.name == character.Name).ToArray(); if (cData.Length != 0) { LoadManager.Instance.allCharacterData.Remove(cData[0]); } } }
public void CreateChildCharacter(Character father, Character mother) { int index = UnityEngine.Random.Range(0, LoadManager.Instance.allCharacterData.Count); Character.CharacterData characterData = LoadManager.Instance.allCharacterData.ElementAt(index).Value; Character character = new Character(characterData.name, characterData.gender, characterData.spritePath);; character.workStatus = Character.WorkStatus.Minor; character.InheritStars(father, mother); AddCharacterToList(character); LoadManager.Instance.allCharacterData.Remove(characterData.name); EventManager.Instance.CharacterAssigned(); NotificationManager.Instance.AddActivity(new ActivityInformation() { activityName = ($"Growing:{character.Name}"), activityType = ActivityType.CharacterGrowing, startPoint = DateTime.Now.Ticks, requiredPoint = DateTime.Now.Ticks + (Constant.TimeCycle.CHILD_GROWING_TIME * TimeSpan.TicksPerSecond), informationID = character.ID }); }