Esempio n. 1
0
        public bool GenerateQuests()
        {
            configurationAdapter.LoadConfigs(_configRepository);
            var now           = DateTime.Now;
            var refreshResult = _refreshingMechnism.GetRefreshStatus(RefreshOption.Quests, now);

            if (refreshResult.Status == RefresStatus.Ready)
            {
                _questRepository.Clear(_accountManagement.GetLoggedAccount().ID);
                List <Quest> quests = new List <Quest>();
                for (int i = 1; i <= configurationAdapter.NumberOfQuests; i++)
                {
                    quests.Add(GenerateFightQuest(GetRandomLevel(configurationAdapter.QuestGenerateChances), i));
                }

                _questRepository.AddMany(quests, _accountManagement.GetLoggedAccount().ID);

                _refreshingMechnism.AddRefreshFactForLoggedAccount(RefreshOption.Quests, now);
                return(true);
            }
            else
            {
                return(false);
            }
        }
Esempio n. 2
0
        public bool ConvinceRecruit(Mercenary recruit)
        {
            configurationAdapter.LoadConfigs(_configRepository);
            var firstLevelMax       = configurationAdapter.MercenaryConvinceChances[1];
            var convinceValue       = CalculateConvinceValue(recruit.Level);
            var convinceRandomValue = _randomizer.GetRandomValueInRange(1, firstLevelMax.MaxValue, "Recruits_convincing");
            var convinced           = convinceRandomValue <= convinceValue;

            if (convinced)
            {
                AddNewMercenary(recruit.CreateCharacter());
            }

            _gifts.Values.ToList().ForEach(item => _inventoryManagement.RemoveItems(item.Identyficator, item.Amount));
            _gifts.Clear();
            _recruitsRepository.Remove(recruit, _accountManagement.GetLoggedAccount().ID);
            return(convinced);
        }