Exemple #1
0
        public void StageAutowin(int selectedStageId, int tryCount)
        {
            var stage     = _explorer.Stages[selectedStageId];
            var stageData = _explorer.GetStage(stage.Id);

            for (var i = 0; i < tryCount; i++)
            {
                _explorer.SetCurrentStage(selectedStageId);
                Impact.ExecuteImpact(stage.ImpactAutowin);
                Scorers.Spend(stage.Price, Formula);
                _explorer.ClearCurrentStage();
                LogicLog.SetExplorer(selectedStageId, LogExplorerType.AutoWin);
            }

            stageData.DailyNumber = Mathf.Clamp(stageData.DailyNumber - tryCount, 0, int.MaxValue);
        }
Exemple #2
0
        public void StartExplorer(int stageId)
        {
            var stageData = _explorer.GetStage(stageId);

            _explorer.SetCurrentStage(stageId);
            _explorer.State.PlayerBuffs.Clear();

            foreach (var id in stageData.ObjectAvailibility.Select(x => x.Key).ToList())
            {
                var staticData = _explorer.Static.Objects[id];
                if (staticData.Revert)
                {
                    stageData.ObjectAvailibility.Remove(id);
                }
            }


            _scorersLogic.ClearTemporaryScorers();
            var maxStamina = 0;

            foreach (var unitId in _units.ExplorerUnits)
            {
                var(data, def) = _units.GetUnit(unitId);
                maxStamina    += _units.CalculateMaxStamina(unitId);
                foreach (var perk in data.PerkStars)
                {
                    var charges = _units.CalculatePerkCharges(unitId, perk.Key);
                    data.PerkCharges[perk.Key] = charges;
                }
                //_context.SetContextFormula(unitId);
                //data.CurrentHp = (float)_units.CalculateMaxHp(data, _formula).Value;
            }
            foreach (var data in _units.State.Units)
            {
                if (data.Stars > 0)
                {
                    _context.SetContextFormula(data.Id);
                    data.CurrentHp = (float)_units.CalculateMaxHp(data, _formula).Value;
                }
            }

            _context.SetContextFormula(null);
            stageData.Values[_scorers.StaminaId] = maxStamina;
        }