Example #1
0
        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);
        }
Example #2
0
        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);
                }
            }
        }