コード例 #1
0
ファイル: Gem.cs プロジェクト: matigramirez/Imgeneus
        public Gem(IDatabasePreloader databasePreloader, int typeId, byte position)
        {
            _databasePreloader = databasePreloader;
            TypeId             = typeId;
            Position           = position;

            _item = _databasePreloader.Items[(Item.GEM_ITEM_TYPE, (byte)TypeId)];
コード例 #2
0
        public Gem(IDatabasePreloader databasePreloader, int typeId)
        {
            _databasePreloader = databasePreloader;
            TypeId             = typeId;

            // 30 type is always lapis.
            var item = _databasePreloader.Items[(30, (byte)TypeId)];
コード例 #3
0
 public GMGetItemHandler(IGamePacketFactory packetFactory, IGameSession gameSession, IDatabasePreloader databasePreloader, IItemEnchantConfiguration enchantConfig, IItemCreateConfiguration itemCreateConfig, IInventoryManager inventoryManager) : base(packetFactory, gameSession)
 {
     _databasePreloader = databasePreloader;
     _enchantConfig     = enchantConfig;
     _itemCreateConfig  = itemCreateConfig;
     _inventoryManager  = inventoryManager;
 }
コード例 #4
0
        public Character(ILogger <Character> logger,
                         IGameWorld gameWorld,
                         ICharacterConfiguration characterConfig,
                         IBackgroundTaskQueue taskQueue,
                         IDatabasePreloader databasePreloader,
                         IChatManager chatManager,
                         ILinkingManager linkinManager,
                         IDyeingManager dyeingManager) : base(databasePreloader)
        {
            _logger          = logger;
            _gameWorld       = gameWorld;
            _characterConfig = characterConfig;
            _taskQueue       = taskQueue;
            _chatManager     = chatManager;
            _linkingManager  = linkinManager;
            _dyeingManager   = dyeingManager;
            _packetsHelper   = new PacketsHelper();

            _castTimer.Elapsed          += CastTimer_Elapsed;
            _summonVehicleTimer.Elapsed += SummonVehicleTimer_Elapsed;

            OnMaxHPChanged += Character_OnMaxHPChanged;
            OnMaxMPChanged += Character_OnMaxMPChanged;
            OnMaxSPChanged += Character_OnMaxSPChanged;

            OnDead += Character_OnDead;

            Bless.Instance.OnDarkBlessChanged  += OnDarkBlessChanged;
            Bless.Instance.OnLightBlessChanged += OnLightBlessChanged;
        }
コード例 #5
0
 public GMCreateMobHandler(IGamePacketFactory packetFactory, IGameSession gameSession, IDatabasePreloader databasePreloader, IMovementManager movementManager, IMobFactory mobFactory, IMapProvider mapProvider) : base(packetFactory, gameSession)
 {
     _databasePreloader = databasePreloader;
     _movementManager   = movementManager;
     _mobFactory        = mobFactory;
     _mapProvider       = mapProvider;
 }
コード例 #6
0
ファイル: Item.cs プロジェクト: SyBozzDEV/Imgeneus
        public Item(IDatabasePreloader databasePreloader, DbCharacterItems dbItem) : this(databasePreloader, dbItem.Type, dbItem.TypeId)
        {
            Bag     = dbItem.Bag;
            Slot    = dbItem.Slot;
            Quality = dbItem.Quality;

            if (dbItem.GemTypeId1 != 0)
            {
                Gem1 = new Gem(databasePreloader, dbItem.GemTypeId1);
            }
            if (dbItem.GemTypeId2 != 0)
            {
                Gem2 = new Gem(databasePreloader, dbItem.GemTypeId2);
            }
            if (dbItem.GemTypeId3 != 0)
            {
                Gem3 = new Gem(databasePreloader, dbItem.GemTypeId3);
            }
            if (dbItem.GemTypeId4 != 0)
            {
                Gem4 = new Gem(databasePreloader, dbItem.GemTypeId4);
            }
            if (dbItem.GemTypeId5 != 0)
            {
                Gem5 = new Gem(databasePreloader, dbItem.GemTypeId5);
            }
            if (dbItem.GemTypeId6 != 0)
            {
                Gem6 = new Gem(databasePreloader, dbItem.GemTypeId6);
            }
            Count = dbItem.Count;
        }
コード例 #7
0
ファイル: Quest.cs プロジェクト: tai-engineer/Imgeneus
        public Quest(IDatabasePreloader databasePreloader, ushort questId)
        {
            _databasePreloader = databasePreloader;
            _dbQuest           = _databasePreloader.Quests[questId];

            _endTimer.AutoReset = false;
            _endTimer.Elapsed  += EndTimer_Elapsed;
        }
コード例 #8
0
ファイル: MapFactory.cs プロジェクト: ZheinGlitch/Imgeneus
 public MapFactory(ILogger <Map> logger, IDatabasePreloader databasePreloader, IMobFactory mobFactory, INpcFactory npcFactory, IObeliskFactory obeliskFactory)
 {
     _logger            = logger;
     _databasePreloader = databasePreloader;
     _mobFactory        = mobFactory;
     _npcFactory        = npcFactory;
     _obeliskFactory    = obeliskFactory;
 }
コード例 #9
0
        public Obelisk(ObeliskConfiguration config, IDatabasePreloader databasePreloader, Map map)
        {
            _config            = config;
            _databasePreloader = databasePreloader;
            Map = map;

            Init();
        }
コード例 #10
0
ファイル: GameWorld.cs プロジェクト: SyBozzDEV/Imgeneus
        public GameWorld(ILogger <GameWorld> logger, IBackgroundTaskQueue taskQueue, IDatabasePreloader databasePreloader, Character_HP_SP_MP_Configuration characterConfig)
        {
            _logger            = logger;
            _taskQueue         = taskQueue;
            _databasePreloader = databasePreloader;
            _characterConfig   = characterConfig;

            InitMaps();
        }
コード例 #11
0
ファイル: Item.cs プロジェクト: SyBozzDEV/Imgeneus
        public Item(IDatabasePreloader databasePreloader, byte type, byte typeId)
        {
            _databasePreloader = databasePreloader;
            Type   = type;
            TypeId = typeId;

            if (Type != 0 && TypeId != 0)
            {
                var item = _databasePreloader.Items[(Type, TypeId)];
コード例 #12
0
 public MapFactory(ILogger <Map> logger, IDatabasePreloader databasePreloader, IMobFactory mobFactory, INpcFactory npcFactory, IObeliskFactory obeliskFactory, ITimeService timeService, IGuildRankingManager guildRankingManger)
 {
     _logger              = logger;
     _databasePreloader   = databasePreloader;
     _mobFactory          = mobFactory;
     _npcFactory          = npcFactory;
     _obeliskFactory      = obeliskFactory;
     _timeService         = timeService;
     _guildRankingManager = guildRankingManger;
 }
コード例 #13
0
ファイル: Item.cs プロジェクト: ZheinGlitch/Imgeneus
        public Item(IDatabasePreloader databasePreloader, byte type, byte typeId, byte count = 1)
        {
            _databasePreloader = databasePreloader;
            Type   = type;
            TypeId = typeId;
            Count  = count;

            if (Type != 0 && TypeId != 0 && Type != MONEY_ITEM_TYPE)
            {
                _dbItem = _databasePreloader.Items[(Type, TypeId)];
コード例 #14
0
        public SelectionScreenManager(ILogger <SelectionScreenManager> logger, IGameWorld gameWorld, ICharacterConfiguration characterConfiguration, IDatabase database, IDatabasePreloader databasePreloader)
        {
            _logger    = logger;
            _gameWorld = gameWorld;
            _characterConfiguration = characterConfiguration;
            _database          = database;
            _databasePreloader = databasePreloader;

#if DEBUG
            _logger.LogDebug($"SelectionScreenManager {GetHashCode()} created");
#endif
        }
コード例 #15
0
ファイル: BankManager.cs プロジェクト: matigramirez/Imgeneus
        public BankManager(ILogger<BankManager> logger, IDatabase database, IDatabasePreloader databasePreloader, IItemEnchantConfiguration enchantConfig, IItemCreateConfiguration itemCreateConfig, IInventoryManager inventoryManager)
        {
            _logger = logger;
            _database = database;
            _databasePreloader = databasePreloader;
            _enchantConfig = enchantConfig;
            _itemCreateConfig = itemCreateConfig;
            _inventoryManager = inventoryManager;
#if DEBUG
            _logger.LogDebug("BankManager {hashcode} created", GetHashCode());
#endif
        }
コード例 #16
0
 public BaseKillable(IDatabasePreloader databasePreloader, ICountryProvider countryProvider, IStatsManager statsManager, IHealthManager healthManager, ILevelProvider levelProvider, IBuffsManager buffsManager, IElementProvider elementProvider, IMovementManager movementManager, IUntouchableManager untouchableManager, IMapProvider mapProvider)
 {
     _databasePreloader = databasePreloader;
     CountryProvider    = countryProvider;
     StatsManager       = statsManager;
     HealthManager      = healthManager;
     LevelProvider      = levelProvider;
     BuffsManager       = buffsManager;
     ElementProvider    = elementProvider;
     MovementManager    = movementManager;
     UntouchableManager = untouchableManager;
     MapProvider        = mapProvider;
 }
コード例 #17
0
ファイル: Quest.cs プロジェクト: tai-engineer/Imgeneus
 public Quest(IDatabasePreloader databasePreloader, DbCharacterQuest dbCharacterQuest) : this(databasePreloader, dbCharacterQuest.QuestId)
 {
     if (dbCharacterQuest.Delay > 0)
     {
         _endTime           = DateTime.UtcNow.AddMinutes(dbCharacterQuest.Delay);
         _endTimer.Interval = dbCharacterQuest.Delay * 60 * 1000;
         _endTimer.Start();
     }
     CountMob1    = dbCharacterQuest.Count1;
     CountMob2    = dbCharacterQuest.Count2;
     IsFinished   = dbCharacterQuest.Finish;
     IsSuccessful = dbCharacterQuest.Success;
 }
コード例 #18
0
ファイル: Character.cs プロジェクト: SyBozzDEV/Imgeneus
        public Character(ILogger <Character> logger, Character_HP_SP_MP_Configuration characterConfig, IBackgroundTaskQueue taskQueue, IDatabasePreloader databasePreloader)
        {
            _logger            = logger;
            _characterConfig   = characterConfig;
            _taskQueue         = taskQueue;
            _databasePreloader = databasePreloader;
            _packetsHelper     = new CharacterPacketsHelper();

            InventoryItems.CollectionChanged += InventoryItems_CollectionChanged;
            Skills.CollectionChanged         += Skills_CollectionChanged;
            ActiveBuffs.CollectionChanged    += ActiveBuffs_CollectionChanged;
            _castTimer.Elapsed += CastTimer_Elapsed;
        }
コード例 #19
0
        public Item(IDatabasePreloader databasePreloader, IItemEnchantConfiguration enchantConfig, IItemCreateConfiguration itemCreateConfig, byte type, byte typeId, byte count = 1)
        {
            _databasePreloader = databasePreloader;
            _enchantConfig     = enchantConfig;
            _itemCreateConfig  = itemCreateConfig;
            Type         = type;
            TypeId       = typeId;
            Count        = count;
            CreationTime = DateTime.UtcNow;

            if (Type != 0 && TypeId != 0 && Type != MONEY_ITEM_TYPE)
            {
                _dbItem = _databasePreloader.Items[(Type, TypeId)];
コード例 #20
0
        public Mob(ushort mobId,
                   bool shouldRebirth,
                   MoveArea moveArea,
                   ILogger <Mob> logger,
                   IDatabasePreloader databasePreloader,
                   IAIManager aiManager,
                   IItemEnchantConfiguration enchantConfig,
                   IItemCreateConfiguration itemCreateConfig,
                   ICountryProvider countryProvider,
                   IStatsManager statsManager,
                   IHealthManager healthManager,
                   ILevelProvider levelProvider,
                   ISpeedManager speedManager,
                   IAttackManager attackManager,
                   ISkillsManager skillsManager,
                   IBuffsManager buffsManager,
                   IElementProvider elementProvider,
                   IMovementManager movementManager,
                   IUntouchableManager untouchableManager,
                   IMapProvider mapProvider) : base(databasePreloader, countryProvider, statsManager, healthManager, levelProvider, buffsManager, elementProvider, movementManager, untouchableManager, mapProvider)
        {
            _logger           = logger;
            _enchantConfig    = enchantConfig;
            _itemCreateConfig = itemCreateConfig;
            _dbMob            = databasePreloader.Mobs[mobId];
            _moveArea         = moveArea;

            AIManager = aiManager;

            Exp           = _dbMob.Exp;
            ShouldRebirth = shouldRebirth;

            SpeedManager  = speedManager;
            AttackManager = attackManager;
            SkillsManager = skillsManager;

            ElementProvider.ConstAttackElement  = _dbMob.Element;
            ElementProvider.ConstDefenceElement = _dbMob.Element;

            if (ShouldRebirth)
            {
                _rebirthTimer.Interval = RespawnTimeInMilliseconds;
                _rebirthTimer.Elapsed += RebirthTimer_Elapsed;

                HealthManager.OnDead += MobRebirth_OnDead;
            }

            HealthManager.OnGotDamage += OnDecreaseHP;
            AIManager.OnStateChanged  += AIManager_OnStateChanged;
        }
コード例 #21
0
        public WarehouseManager(ILogger <WarehouseManager> logger, IDatabase database, IDatabasePreloader databasePreloader, IItemEnchantConfiguration enchantConfig, IItemCreateConfiguration itemCreateConfig, IGameWorld gameWorld, IGamePacketFactory packetFactory)
        {
            _logger            = logger;
            _database          = database;
            _databasePreloader = databasePreloader;
            _enchantConfig     = enchantConfig;
            _itemCreateConfig  = itemCreateConfig;
            _gameWorld         = gameWorld;
            _packetFactory     = packetFactory;
            Items = new(_items);

#if DEBUG
            _logger.LogDebug("WarehouseManager {hashcode} created", GetHashCode());
#endif
        }
コード例 #22
0
        public LevelingManager(ILogger <LevelingManager> logger, IDatabase database, ILevelProvider levelProvider, IAdditionalInfoManager additionalInfoManager, ICharacterConfiguration charConfig, IDatabasePreloader databasePreloader, IPartyManager partyManager, IMapProvider mapProvider, IMovementManager movementManager)
        {
            _logger                = logger;
            _database              = database;
            _levelProvider         = levelProvider;
            _additionalInfoManager = additionalInfoManager;
            _characterConfig       = charConfig;
            _databasePreloader     = databasePreloader;
            _partyManager          = partyManager;
            _mapProvider           = mapProvider;
            _movementManager       = movementManager;

#if DEBUG
            _logger.LogDebug("LevelingManager {hashcode} created", GetHashCode());
#endif
        }
コード例 #23
0
        public QuestsManager(ILogger <QuestsManager> logger, IGameDefinitionsPreloder definitionsPreloader, IMapProvider mapProvider, IGameWorld gameWorld, IDatabase database, IPartyManager partyManager, IInventoryManager inventoryManager, IDatabasePreloader databasePreloader, IItemEnchantConfiguration enchantConfig, IItemCreateConfiguration itemCreateConfig, ILevelingManager levelingManager)
        {
            _logger = logger;
            _definitionsPreloader = definitionsPreloader;
            _mapProvider          = mapProvider;
            _gameWorld            = gameWorld;
            _database             = database;
            _partyManager         = partyManager;
            _inventoryManager     = inventoryManager;
            _databasePreloader    = databasePreloader;
            _enchantConfig        = enchantConfig;
            _itemCreateConfig     = itemCreateConfig;
            _levelingManager      = levelingManager;
#if DEBUG
            _logger.LogDebug("QuestsManager {hashcode} created", GetHashCode());
#endif
        }
コード例 #24
0
        public LinkingManager(ILogger <LinkingManager> logger, IDatabasePreloader databasePreloader, IInventoryManager inventoryManager, IStatsManager statsManager, IHealthManager healthManager, ISpeedManager speedManager, IGuildManager guildManager, IMapProvider mapProvider, IItemEnchantConfiguration itemEnchantConfig, IItemCreateConfiguration itemCreateConfig)
        {
            _logger            = logger;
            _databasePreloader = databasePreloader;
            _inventoryManager  = inventoryManager;
            _statsManager      = statsManager;
            _healthManager     = healthManager;
            _speedManager      = speedManager;
            _guildManager      = guildManager;
            _mapProvider       = mapProvider;
            _itemEnchantConfig = itemEnchantConfig;
            _itemCreateConfig  = itemCreateConfig;

#if DEBUG
            _logger.LogDebug("LinkingManager {hashcode} created", GetHashCode());
#endif
        }
コード例 #25
0
ファイル: Item.cs プロジェクト: blockspacer/Imgeneus
        public Item(IDatabasePreloader databasePreloader, DbCharacterItems dbCharacterItem) : this(databasePreloader, dbCharacterItem.Type, dbCharacterItem.TypeId, dbCharacterItem.Count)
        {
            Bag     = dbCharacterItem.Bag;
            Slot    = dbCharacterItem.Slot;
            Quality = dbCharacterItem.Quality;

            CreationTime   = dbCharacterItem.CreationTime;
            ExpirationTime = dbCharacterItem.ExpirationTime;

            if (!string.IsNullOrWhiteSpace(dbCharacterItem.Craftname))
            {
                ParseCraftname(dbCharacterItem.Craftname);
            }

            if (dbCharacterItem.HasDyeColor)
            {
                DyeColor = new DyeColor(dbCharacterItem.DyeColorAlpha, dbCharacterItem.DyeColorSaturation, dbCharacterItem.DyeColorR, dbCharacterItem.DyeColorG, dbCharacterItem.DyeColorB);
            }

            if (dbCharacterItem.GemTypeId1 != 0)
            {
                Gem1 = new Gem(databasePreloader, dbCharacterItem.GemTypeId1, 0);
            }
            if (dbCharacterItem.GemTypeId2 != 0)
            {
                Gem2 = new Gem(databasePreloader, dbCharacterItem.GemTypeId2, 1);
            }
            if (dbCharacterItem.GemTypeId3 != 0)
            {
                Gem3 = new Gem(databasePreloader, dbCharacterItem.GemTypeId3, 2);
            }
            if (dbCharacterItem.GemTypeId4 != 0)
            {
                Gem4 = new Gem(databasePreloader, dbCharacterItem.GemTypeId4, 3);
            }
            if (dbCharacterItem.GemTypeId5 != 0)
            {
                Gem5 = new Gem(databasePreloader, dbCharacterItem.GemTypeId5, 4);
            }
            if (dbCharacterItem.GemTypeId6 != 0)
            {
                Gem6 = new Gem(databasePreloader, dbCharacterItem.GemTypeId6, 5);
            }
        }
コード例 #26
0
        public Item(IDatabasePreloader databasePreloader, IItemEnchantConfiguration enchantConfig, IItemCreateConfiguration itemCreateConfig, DbWarehouseItem dbWarehouseItem) : this(databasePreloader, enchantConfig, itemCreateConfig, dbWarehouseItem.Type, dbWarehouseItem.TypeId, dbWarehouseItem.Count)
        {
            Bag     = WarehouseManager.WAREHOUSE_BAG;
            Slot    = dbWarehouseItem.Slot;
            Quality = dbWarehouseItem.Quality;

            CreationTime   = dbWarehouseItem.CreationTime;
            ExpirationTime = dbWarehouseItem.ExpirationTime;

            if (!string.IsNullOrWhiteSpace(dbWarehouseItem.Craftname))
            {
                ParseCraftname(dbWarehouseItem.Craftname);
            }

            if (dbWarehouseItem.HasDyeColor)
            {
                DyeColor = new DyeColor(dbWarehouseItem.DyeColorAlpha, dbWarehouseItem.DyeColorSaturation, dbWarehouseItem.DyeColorR, dbWarehouseItem.DyeColorG, dbWarehouseItem.DyeColorB);
            }

            if (dbWarehouseItem.GemTypeId1 != 0)
            {
                Gem1 = new Gem(databasePreloader, dbWarehouseItem.GemTypeId1, 0);
            }
            if (dbWarehouseItem.GemTypeId2 != 0)
            {
                Gem2 = new Gem(databasePreloader, dbWarehouseItem.GemTypeId2, 1);
            }
            if (dbWarehouseItem.GemTypeId3 != 0)
            {
                Gem3 = new Gem(databasePreloader, dbWarehouseItem.GemTypeId3, 2);
            }
            if (dbWarehouseItem.GemTypeId4 != 0)
            {
                Gem4 = new Gem(databasePreloader, dbWarehouseItem.GemTypeId4, 3);
            }
            if (dbWarehouseItem.GemTypeId5 != 0)
            {
                Gem5 = new Gem(databasePreloader, dbWarehouseItem.GemTypeId5, 4);
            }
            if (dbWarehouseItem.GemTypeId6 != 0)
            {
                Gem6 = new Gem(databasePreloader, dbWarehouseItem.GemTypeId6, 5);
            }
        }
コード例 #27
0
ファイル: Mob.cs プロジェクト: blockspacer/Imgeneus
        public Mob(ushort mobId,
                   bool shouldRebirth,
                   MoveArea moveArea,
                   Map map,
                   ILogger <Mob> logger,
                   IDatabasePreloader databasePreloader) : base(databasePreloader)
        {
            _logger = logger;
            _dbMob  = databasePreloader.Mobs[mobId];

            Id            = map.GenerateId();
            CurrentHP     = _dbMob.HP;
            Level         = _dbMob.Level;
            Exp           = _dbMob.Exp;
            AI            = _dbMob.AI;
            ShouldRebirth = shouldRebirth;

            MoveArea = moveArea;
            Map      = map;
            PosX     = new Random().NextFloat(MoveArea.X1, MoveArea.X2);
            PosY     = new Random().NextFloat(MoveArea.Y1, MoveArea.Y2);
            PosZ     = new Random().NextFloat(MoveArea.Z1, MoveArea.Z2);

            IsAttack1Enabled = _dbMob.AttackOk1 != 0;
            IsAttack2Enabled = _dbMob.AttackOk2 != 0;
            IsAttack3Enabled = _dbMob.AttackOk3 != 0;

            if (ShouldRebirth)
            {
                _rebirthTimer.Interval = RespawnTimeInMilliseconds;
                _rebirthTimer.Elapsed += RebirthTimer_Elapsed;

                OnDead += MobRebirth_OnDead;
            }

            SetupAITimers();
            State = MobState.Idle;
        }
コード例 #28
0
 public LinkingManager(IDatabasePreloader databasePreloader)
 {
     _databasePreloader = databasePreloader;
 }
コード例 #29
0
ファイル: PartyMap.cs プロジェクト: matigramirez/Imgeneus
        public PartyMap(IParty party, ushort id, MapDefinition definition, Svmap config, ILogger <Map> logger, IGamePacketFactory packetFactory, IDatabasePreloader databasePreloader, IMobFactory mobFactory, INpcFactory npcFactory, IObeliskFactory obeliskFactory, ITimeService timeService)
            : base(id, definition, config, new List <ObeliskConfiguration>(), logger, packetFactory, databasePreloader, mobFactory, npcFactory, obeliskFactory, timeService)
        {
            _party = party;

            if (_party != null)
            {
                _party.AllMembersLeft += Party_AllMembersLeft;
            }
        }
コード例 #30
0
ファイル: Character.cs プロジェクト: matigramirez/Imgeneus
        public Character(ILogger <Character> logger,
                         IDatabasePreloader databasePreloader,
                         IGuildManager guildManager,
                         ICountryProvider countryProvider,
                         ISpeedManager speedManager,
                         IStatsManager statsManager,
                         IAdditionalInfoManager additionalInfoManager,
                         IHealthManager healthManager,
                         ILevelProvider levelProvider,
                         ILevelingManager levelingManager,
                         IInventoryManager inventoryManager,
                         IStealthManager stealthManager,
                         IAttackManager attackManager,
                         ISkillsManager skillsManager,
                         IBuffsManager buffsManager,
                         IElementProvider elementProvider,
                         IKillsManager killsManager,
                         IVehicleManager vehicleManager,
                         IShapeManager shapeManager,
                         IMovementManager movementManager,
                         ILinkingManager linkinManager,
                         IMapProvider mapProvider,
                         ITeleportationManager teleportationManager,
                         IPartyManager partyManager,
                         ITradeManager tradeManager,
                         IFriendsManager friendsManager,
                         IDuelManager duelManager,
                         IBankManager bankManager,
                         IQuestsManager questsManager,
                         IUntouchableManager untouchableManager,
                         IWarehouseManager warehouseManager,
                         IShopManager shopManager,
                         ISkillCastingManager skillCastingManager,
                         ICastProtectionManager castProtectionManager,
                         IGameSession gameSession,
                         IGamePacketFactory packetFactory) : base(databasePreloader, countryProvider, statsManager, healthManager, levelProvider, buffsManager, elementProvider, movementManager, untouchableManager, mapProvider)
        {
            _logger        = logger;
            _packetFactory = packetFactory;

            AdditionalInfoManager = additionalInfoManager;
            InventoryManager      = inventoryManager;
            StealthManager        = stealthManager;
            LevelingManager       = levelingManager;
            SpeedManager          = speedManager;
            AttackManager         = attackManager;
            SkillsManager         = skillsManager;
            KillsManager          = killsManager;
            VehicleManager        = vehicleManager;
            ShapeManager          = shapeManager;
            LinkingManager        = linkinManager;
            TeleportationManager  = teleportationManager;
            PartyManager          = partyManager;
            TradeManager          = tradeManager;
            FriendsManager        = friendsManager;
            DuelManager           = duelManager;
            GuildManager          = guildManager;
            BankManager           = bankManager;
            QuestsManager         = questsManager;
            WarehouseManager      = warehouseManager;
            ShopManager           = shopManager;
            SkillCastingManager   = skillCastingManager;
            CastProtectionManager = castProtectionManager;
            GameSession           = gameSession;

            HealthManager.MP_SP_Used += SendUseMPSP;
            HealthManager.OnCurrentHitpointsChanged += SendCurrentHitpoints;
            StatsManager.OnAdditionalStatsUpdate    += SendAdditionalStats;
            StatsManager.OnResetStats         += SendResetStats;
            BuffsManager.OnBuffAdded          += SendAddBuff;
            BuffsManager.OnBuffRemoved        += SendRemoveBuff;
            AttackManager.OnStartAttack       += SendAttackStart;
            VehicleManager.OnUsedVehicle      += SendUseVehicle;
            SkillsManager.OnResetSkills       += SendResetSkills;
            InventoryManager.OnAddItem        += SendAddItemToInventory;
            InventoryManager.OnRemoveItem     += SendRemoveItemFromInventory;
            InventoryManager.OnItemExpired    += SendItemExpired;
            AttackManager.TargetOnBuffAdded   += SendTargetAddBuff;
            AttackManager.TargetOnBuffRemoved += SendTargetRemoveBuff;
            DuelManager.OnDuelResponse        += SendDuelResponse;
            DuelManager.OnStart                   += SendDuelStart;
            DuelManager.OnCanceled                += SendDuelCancel;
            DuelManager.OnFinish                  += SendDuelFinish;
            LevelingManager.OnExpChanged          += SendExperienceGain;
            QuestsManager.OnQuestMobCountChanged  += SendQuestCountUpdate;
            QuestsManager.OnQuestFinished         += SendQuestFinished;
            ShopManager.OnUseShopClosed           += SendUseShopClosed;
            ShopManager.OnUseShopItemCountChanged += SendUseShopItemCountChanged;
            ShopManager.OnSoldItem                += SendSoldItem;

            Bless.Instance.OnDarkBlessChanged  += OnDarkBlessChanged;
            Bless.Instance.OnLightBlessChanged += OnLightBlessChanged;
        }