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); }