Beispiel #1
0
 public ImpactRandomWeightExecutor(FormulaLogic formulaLogic, ConditionController condition, ImpactController impactLogic, SettingsAccessor settings, ImpactType type)
 {
     _condition    = condition;
     _formulaLogic = formulaLogic;
     _impactLogic  = impactLogic;
     _settings     = settings;
     Id            = type;
 }
 public ImpactManaExecutor(FormulaLogic logic, ExplorerAccessor explorer, ScorersAccessor scorers, BattleAccessor battle, SettingsAccessor settings)
 {
     _logic    = logic;
     _scorers  = scorers;
     _battle   = battle;
     _explorer = explorer;
     _settings = settings;
 }
 public UnitImpactBuffTypeExecutor(ImpactController impacts, ContextLogic context, FormulaLogic logic, BuffLogic buffs, BattleAccessor battle)
 {
     _impacts = impacts;
     _context = context;
     _buffs   = buffs;
     _logic   = logic;
     _battle  = battle;
 }
        //public FormulaLogic Logic { get;set; }

        //[Query]
        //public int Stamina => State.Values["stamina"];

        //[Query]
        //public IReadOnlyDictionary<int, IScorer> Scorers => Static.Scorers;

        public void Spend(IPrice price, FormulaLogic logic)
        {
            var value    = (int)logic.Calculate(price.Value);
            var scorerId = Static.MoneyTypes[price.MoneyType].ScorerId;

            State.Values.TryGetValue(scorerId, out var count);
            if (count < value)
            {
                throw new Exception($"Недостаточно ресурсов type = {price.MoneyType} для покупки ({count} < {value})");
            }
            State.Values[scorerId] = count - value;
        }
Beispiel #5
0
 public InternalAdditionalLogics(InternalAccessors accessors, IApplyManager storage, LogicData data, IServerAPI api)
 {
     ImpactController = new ImpactController(data.IsEmulate);
     ContextLogic     = ContextLogic.CreateClient(accessors.BattleAccessor, accessors.UnitsAccessor);
     DropLogic        = DropLogic.CreateClient(accessors.ScorersAccessor, accessors.InventoryAccessor, accessors.UnitsAccessor, accessors.ExplorerAccessor, accessors.FormulaController, ImpactController);
     ScorersLogic     = ScorersLogic.CreateClient(accessors.BattleAccessor, accessors.ScorersAccessor, accessors.ExplorerAccessor);
     ShopLogic        = ShopLogic.CreateClient(accessors.SettingsAccessor, accessors.ShopAccessor, accessors.FormulaController);
     ApplyChangeLogic = ApplyChangeLogic.CreateClient(storage, ContextLogic);
     FormulaLogic     = FormulaLogic.CreateClient(ContextLogic, accessors.ScorersAccessor, accessors.UnitsAccessor, accessors.BattleAccessor, accessors.ExplorerAccessor, data, accessors.PlayerAccessor, accessors.SettingsAccessor, accessors.ConditionController, accessors.FormulaController, ScorersLogic);
     BuffLogic        = BuffLogic.CreateClient(accessors.BattleAccessor, ContextLogic, ApplyChangeLogic);
     ExplorerLogic    = ExplorerLogic.CreateClient(accessors.ScorersAccessor, accessors.ExplorerAccessor, accessors.UnitsAccessor, accessors.FormulaController, ScorersLogic, ContextLogic, DropLogic, ImpactController);
     TriggerLogic     = TriggerLogic.CreateClient(accessors.BattleAccessor, FormulaLogic);
     ConditionLogic   = ConditionLogic.CreateClient(accessors.InventoryAccessor, accessors.ScorersAccessor, accessors.PlayerAccessor, accessors.UnitsAccessor, accessors.BattleAccessor, accessors.ExplorerAccessor, accessors.SettingsAccessor, accessors.AchievementAccessor, FormulaLogic, ContextLogic, ScorersLogic, data, accessors.ConditionController);
     BattleLogic      = BattleLogic.CreateClient(ApplyChangeLogic, ContextLogic, ConditionLogic, accessors.FormulaController, accessors.BattleAccessor, accessors.ScorersAccessor, accessors.UnitsAccessor, accessors.ExplorerAccessor, accessors.SettingsAccessor);
     ImpactLogic      = ImpactLogic.CreateClient(accessors.ScorersAccessor, accessors.PlayerAccessor, accessors.InventoryAccessor, accessors.ExplorerAccessor, accessors.UnitsAccessor, accessors.BattleAccessor, accessors.SettingsAccessor, accessors.AchievementAccessor, BattleLogic, FormulaLogic, accessors.ConditionController, ApplyChangeLogic, BuffLogic, ScorersLogic, ContextLogic, ImpactController, data);
 }
Beispiel #6
0
 public ConditionPlayerLevelChecker(FormulaLogic logic, PlayerAccessor player)
 {
     _player = player;
     _logic  = logic;
 }
 public UnitImpactDelayExecutor(ApplyChangeLogic logic, FormulaLogic formula)
 {
     _logic   = logic;
     _formula = formula;
 }
Beispiel #8
0
 public static UnitProgressModule CreateClient(UnitsAccessor _units, ScorersAccessor _scorers, BattleAccessor _battle, FormulaLogic _formuls, PlayerAccessor _player, ImpactController _impact)
 {
     return(new UnitProgressModule
     {
         _units = _units,
         _scorers = _scorers,
         _battle = _battle,
         _formuls = _formuls,
         _player = _player,
         _impact = _impact,
     }
            );
 }
Beispiel #9
0
 public ConditionUnitBuffTypeChecker(ContextLogic context, FormulaLogic formula, BattleAccessor battle)
 {
     _battle  = battle;
     _context = context;
     _formula = formula;
 }
Beispiel #10
0
 public static EquipmentModule CreateClient(InventoryAccessor _resources, ScorersAccessor _scorers, UnitsAccessor _units, ImpactController _impact, FormulaLogic _formula)
 {
     return(new EquipmentModule
     {
         _resources = _resources,
         _scorers = _scorers,
         _units = _units,
         _impact = _impact,
         _formula = _formula,
     }
            );
 }
Beispiel #11
0
 public static GachaModule CreateClient(ImpactController _impactLogic, ScorersAccessor _scorers, InventoryAccessor _resources, UnitsAccessor _units, ExplorerAccessor _explorer, DropLogic _dropLogic, ConditionController _condition, FormulaLogic _formuls)
 {
     return(new GachaModule
     {
         _impactLogic = _impactLogic,
         _scorers = _scorers,
         _resources = _resources,
         _units = _units,
         _explorer = _explorer,
         _dropLogic = _dropLogic,
         _condition = _condition,
         _formuls = _formuls,
     }
            );
 }
 public ImpactStaminaExecutor(FormulaLogic logic, ExplorerAccessor explorer, ScorersAccessor scorers)
 {
     _logic    = logic;
     _scorers  = scorers;
     _explorer = explorer;
 }
Beispiel #13
0
 public ConditionUnitBuffChecker(ContextLogic contextLogic, FormulaLogic formula)
 {
     _contextLogic = contextLogic;
     _formula      = formula;
 }
Beispiel #14
0
 public TriggerHpChecker(FormulaLogic formula, BattleAccessor accessor)
 {
     _formula  = formula;
     _accessor = accessor;
 }
Beispiel #15
0
 public ImpactBuffExecutor(FormulaLogic logic, ExplorerAccessor explorer)
 {
     _logic    = logic;
     _explorer = explorer;
 }
 public ConditionRandChecker(FormulaLogic formula, LogicData data)
 {
     _data    = data;
     _formula = formula;
 }
Beispiel #17
0
 public TriggerBuffChecker(FormulaLogic formula, BattleAccessor battle)
 {
     _battle  = battle;
     _formula = formula;
 }
 public ImpactScorerDataExecutor(FormulaLogic logic, ScorersLogic scorers, ExplorerAccessor explorer)
 {
     _scorers  = scorers;
     _logic    = logic;
     _explorer = explorer;
 }
 public ConditionScorerChecker(FormulaLogic logic, ScorersLogic scorers)
 {
     _scorers = scorers;
     _logic   = logic;
 }
 public FormulaConstantCalculator(FormulaLogic logic, ScorersAccessor scorer)
 {
     _logic  = logic;
     _scorer = scorer;
 }
 public ImpactPlayerExpExecutor(ImpactController logic, FormulaLogic formula, PlayerAccessor accessor)
 {
     _formula  = formula;
     _logic    = logic;
     _accessor = accessor;
 }
Beispiel #22
0
 public ImpactUnitShardExecutor(UnitsAccessor accessor, FormulaLogic logic)
 {
     _accessor = accessor;
     _logic    = logic;
 }
 public UnitImpactAnimFrameExecutor(ApplyChangeLogic logic, FormulaLogic formula)
 {
     _formula = formula;
     _logic   = logic;
 }
 public ImpactItemDataExecutor(FormulaLogic logic, InventoryAccessor inventory, ExplorerAccessor explorer)
 {
     _inventory = inventory;
     _explorer  = explorer;
     _logic     = logic;
 }
Beispiel #25
0
 public static ExplorerProgressModule CreateClient(ExplorerAccessor _explorer, InventoryAccessor _inventory, UnitsAccessor _units, SettingsAccessor _settings, ScorersAccessor _scorers, BattleAccessor _battle, ExplorerLogic _explorerLogic, FormulaLogic _formula, ImpactController _impactLogic)
 {
     return(new ExplorerProgressModule
     {
         _explorer = _explorer,
         _inventory = _inventory,
         _units = _units,
         _settings = _settings,
         _scorers = _scorers,
         _battle = _battle,
         _explorerLogic = _explorerLogic,
         _formula = _formula,
         _impactLogic = _impactLogic,
     }
            );
 }
 public ImpactPerkChargesExecutor(FormulaLogic logic, UnitsAccessor units)
 {
     _logic = logic;
     _units = units;
 }
Beispiel #27
0
 public static ShopModule CreateClient(ScorersAccessor _scorers, ShopAccessor _shop, FormulaLogic _formula, ImpactController _impacts, ShopLogic _shopLogic, DropLogic _dropLogic)
 {
     return(new ShopModule
     {
         _scorers = _scorers,
         _shop = _shop,
         _formula = _formula,
         _impacts = _impacts,
         _shopLogic = _shopLogic,
         _dropLogic = _dropLogic,
     }
            );
 }
 public ConditionIntentoryChecker(FormulaLogic logic, InventoryAccessor inventory)
 {
     _inventory = inventory;
     _logic     = logic;
 }
Beispiel #29
0
 public static AutowinModule CreateClient(ImpactController Impact, ExplorerAccessor _explorer, ScorersAccessor Scorers, FormulaLogic Formula, ExplorerLogic _explorerLogic)
 {
     return(new AutowinModule
     {
         Impact = Impact,
         _explorer = _explorer,
         Scorers = Scorers,
         Formula = Formula,
         _explorerLogic = _explorerLogic,
     }
            );
 }
 public ImpactChangeMoneyExecutor(FormulaLogic logic, ScorersAccessor scorers, ExplorerAccessor explorer)
 {
     _scorers  = scorers;
     _logic    = logic;
     _explorer = explorer;
 }