Beispiel #1
0
        public void Upgrade()
        {
            if (IsMaxed)
            {
                return;
            }

            GameContext.ResourceManager.Decrease(ResourceType.Gold, UpgradeCost);

            Level++;
            IsOpened = true;
            Settings = Configuration.GetSettings(Level);

            var nextSettings = Configuration.GetSettings(Level + 1);

            if (nextSettings != null)
            {
                IsMaxed     = false;
                UpgradeCost = nextSettings.UpgradeCost;
            }
            else
            {
                IsMaxed = true;
            }

            IdleMining = CalculateIdleMining();
            SaveState(Configuration.Id, Level, IsManagerAssigned, IdleMining);

            UnityEngine.Debug.Log(string.Format("{0} upgrade: Level -> {1}, Units -> {2} Load -> {3}, Move Time -> {4}, Work Time -> {5}",
                                                GetType().Name, Level, Settings.Units, Settings.Load, Settings.MoveTime, Settings.WorkTime));
        }
Beispiel #2
0
 public void UpdateSettings(IWorldObjectSettings settings, Manager manager)
 {
     Load              = settings.Load;
     MoveTime          = settings.MoveTime;
     WorkTime          = settings.WorkTime;
     IsManagerAssigned = manager.IsAssigned;
     _manager          = manager;
 }
Beispiel #3
0
        public virtual void Initialize(IGameData gameData, T configuration)
        {
            GameData      = gameData;
            Configuration = configuration;

            var levelData = GameData.GetWorldObjectLevelData(Configuration.Id);

            Level             = levelData.Level;
            IsManagerAssigned = levelData.IsManagerAssigned;
            ManagerCost       = Configuration.ManagerCost;

            if (Level > 0)
            {
                IsOpened = true;
                Settings = Configuration.GetSettings(Level);
            }
            else
            {
                Level             = 1;
                IsManagerAssigned = false;

                Settings = Configuration.GetSettings(Level);
                if (Settings.UpgradeCost == 0)
                {
                    IsOpened = true;
                }
                else
                {
                    Level    = 0;
                    IsOpened = false;
                }
            }

            IdleMining = CalculateIdleMining();

            var nextSettings = Configuration.GetSettings(Level + 1);

            if (nextSettings != null)
            {
                IsMaxed     = false;
                UpgradeCost = nextSettings.UpgradeCost;
            }
            else
            {
                IsMaxed = true;
            }

            SaveState(Configuration.Id, Level, IsManagerAssigned, IdleMining);
        }