Esempio n. 1
0
        /// <summary>
        /// Increases the favor value for the specified <see cref = "FavorComponent"/> by the specified amount for the specified number of rounds.
        /// </summary>
        public void IncreaseFavorForRounds(FavorComponent favorComponent, float amount, int rounds)
        {
            if (rounds < 1)
            {
                this.Log($"Favor for {favorComponent} cannot be increased for {rounds} rounds: rounds are less than 1", LogType.Warning);
                return;
            }

            IncreaseFavor(favorComponent, amount);

            var delayedFavorChange = new DelayedFavorChange(rounds, favorComponent, amount);

            DelayedFavorChanges.Add(delayedFavorChange);
        }
Esempio n. 2
0
        void OnYearTicked(object sender, TimeComponent.TimeEventArgs e)
        {
            foreach (var delayedFavorChange in DelayedFavorChanges)
            {
                delayedFavorChange.Rounds -= 1;

                if (delayedFavorChange.Rounds > 0)
                {
                    continue;
                }
                DecreaseFavor(delayedFavorChange.FavorComponent, delayedFavorChange.Amount);
            }

            DelayedFavorChanges.RemoveAll(delayedFavorChange =>
                                          delayedFavorChange.Rounds <= 0);
        }