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); }
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); }
public bool IsRollbackMaxLevel(IManagerImprovementRepository improveRepo) => RollbackImrpoveLevel >= improveRepo.MaxLevel;
public bool IsEfficiencyMaxLevel(IManagerImprovementRepository improveRepo) => EfficiencyImproveLevel >= improveRepo.MaxLevel;