Пример #1
0
        public ManagerTransactionState GetBuyRollbackLevelStatus(int managerId)
        {
            var manager  = GetManager(managerId);
            var mgrLevel = GetManagerEfficiencyRollbackLevel(managerId);

            if (!manager.IsHired)
            {
                return(ManagerTransactionState.ManagerIsNotHired);
            }
            IManagerImprovementRepository improveRepo = Services.ResourceService.ManagerImprovements;

            if (mgrLevel.RollbackImrpoveLevel >= improveRepo.MaxLevel)
            {
                return(ManagerTransactionState.AlreadyMaxLevel);
            }

            int currentLevel = mgrLevel.RollbackImrpoveLevel;
            int nextLevel    = currentLevel + 1;
            var improveData  = improveRepo.GetRollbackImproveData(nextLevel);

            Bos.Data.Currency price = Bos.Data.Currency.CreateCoins(improveData.CoinsPrice);
            if (!Services.PlayerService.IsEnough(price))
            {
                return(ManagerTransactionState.DontEnoughCoins);
            }

            return(ManagerTransactionState.Success);
        }
Пример #2
0
        public ManagerTransactionState BuyMegaUpgrade(int managerId)
        {
            var manager  = GetManager(managerId);
            var mgrLevel = GetManagerEfficiencyRollbackLevel(managerId);
            IManagerImprovementRepository improveRepo = Services.ResourceService.ManagerImprovements;

            if (!manager.IsHired)
            {
                return(ManagerTransactionState.ManagerIsNotHired);
            }

            if (!mgrLevel.IsRollbackMaxLevel(improveRepo) || !mgrLevel.IsEfficiencyMaxLevel(improveRepo))
            {
                return(ManagerTransactionState.ManagerCantUpgradeMega);
            }

            var improveData = improveRepo.MegaImprovement.CoinPrice;

            Bos.Data.Currency price = Bos.Data.Currency.CreateCoins(improveData);
            if (!Services.PlayerService.IsEnough(price))
            {
                return(ManagerTransactionState.DontEnoughCoins);
            }

            Services.PlayerService.RemoveCurrency(price);
            manager.AddMaxRollback(improveRepo.MegaImprovement.RollbackIncrement);
            manager.AddMaxEfficiency(improveRepo.MegaImprovement.EfficiencyIncrement, Services);
            mgrLevel.ApplyMega();

            return(ManagerTransactionState.Success);
        }
Пример #3
0
 public bool IsRollbackMaxLevel(IManagerImprovementRepository improveRepo)
 => RollbackImrpoveLevel >= improveRepo.MaxLevel;
Пример #4
0
 public bool IsEfficiencyMaxLevel(IManagerImprovementRepository improveRepo)
 => EfficiencyImproveLevel >= improveRepo.MaxLevel;