public static void IssueNotification(Colony colony, localization.LocalizationHelper localizationHelper,
                                      string message,
                                      params string[] args)
 {
     colony.ForEachOwner(player =>
     {
         IssueNotification(player, localizationHelper, message, args);
     });
 }
 public static void NotifyAll(localization.LocalizationHelper localizationHelper,
                              string message,
                              params string[] args)
 {
     foreach (var player in Players.PlayerDatabase.Values)
     {
         IssueNotification(player, localizationHelper, message, args);
     }
 }
 public static void IssueNotification(Players.Player player, localization.LocalizationHelper localizationHelper,
                                      string message,
                                      params string[] args)
 {
     if (player.IsConnected())
     {
         var messageBuilt = string.Format(localizationHelper.LocalizeOrDefault(message, player), PandaChat.LocalizeArgs(player, localizationHelper, args));
         IssueNotification(player, messageBuilt);
     }
 }
Example #4
0
        public string GetDescription(Colony colony, Players.Player player)
        {
            var localizationHelper = new localization.LocalizationHelper("Happiness");
            var name = "";
            var cs   = Entities.ColonyState.GetColonyState(colony);

            if (colony.HappinessData.CachedHappiness < 0)
            {
                float percent = 0.05f;

                if (colony.HappinessData.CachedHappiness < -20)
                {
                    percent = 0.10f;
                }

                if (colony.HappinessData.CachedHappiness < -50)
                {
                    percent = 0.15f;
                }

                if (colony.HappinessData.CachedHappiness < -70)
                {
                    percent = 0.20f;
                }

                if (colony.HappinessData.CachedHappiness < -100)
                {
                    percent = 0.25f;
                }

                percent = percent * cs.Difficulty.UnhappyGuardsMultiplyRate;

                foreach (var colonist in colony.Followers)
                {
                    colonist.ApplyJobResearch();

                    if (colonist.Job != null && colonist.Job.IsValid && colonist.TryGetNPCGuardSettings(out var guardJobSettings))
                    {
                        guardJobSettings.CooldownShot = guardJobSettings.CooldownShot - (guardJobSettings.CooldownShot * percent);
                    }
                }

                name = localizationHelper.LocalizeOrDefault("SlowGuards", player) + " " + Math.Round((percent * 100), 2) + "%";
            }
            else
            {
                foreach (var colonist in colony.Followers)
                {
                    colonist.ApplyJobResearch();
                }
            }

            return(name);
        }