public static void WorldStarted() { IUpgrade iUpgradeCapacity, iUpgradeEfficiency; ServerManager.UpgradeManager.TryGetKeyUpgrade("pipliz.colonypointcap", out keyCapacity, out iUpgradeCapacity); ServerManager.UpgradeManager.TryGetKeyUpgrade("pipliz.pointmultiplier", out keyEfficiency, out iUpgradeEfficiency); upgradeCapacity = (ColonyPointCapacityUpgrade)iUpgradeCapacity; upgradeEfficiency = (ColonyPointMultiplierUpgrade)iUpgradeEfficiency; ThreadManager.InvokeOnMainThread(delegate() { CheckColonies(); }, CHECK_INTERVAL); }
public static void CheckAndPerformEfficiencyUpgrade(Colony colony) { int lvlEfficiency = colony.UpgradeState.GetUnlockedLevels(keyEfficiency); if (lvlEfficiency < upgradeEfficiency.LevelCount) { long costEfficiency = upgradeEfficiency.GetUpgradeCost(lvlEfficiency); if (colony.ColonyPoints >= costEfficiency) { long?current = ColonyPointMultiplierUpgrade.GetCapacity(upgradeEfficiency.Levels, lvlEfficiency, 0); foreach (Players.Player owner in colony.Owners) { if (owner.ConnectionState == Players.EConnectionState.Connected) { Chat.Send(owner, $"Upgraded {colony.Name} points efficiency to {current + 100}%"); } } colony.UpgradeState.TryUnlock(colony, keyEfficiency, lvlEfficiency); } } }