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();
    }
Ejemplo n.º 2
0
    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();
    }
Ejemplo n.º 3
0
    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]);
            }
        }
    }
Ejemplo n.º 4
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
        });
    }