Esempio n. 1
0
        public Gem(IDatabasePreloader databasePreloader, int typeId, byte position)
        {
            _databasePreloader = databasePreloader;
            TypeId             = typeId;
            Position           = position;

            _item = _databasePreloader.Items[(Item.GEM_ITEM_TYPE, (byte)TypeId)];
Esempio n. 2
0
        public Gem(IDatabasePreloader databasePreloader, int typeId)
        {
            _databasePreloader = databasePreloader;
            TypeId             = typeId;

            // 30 type is always lapis.
            var item = _databasePreloader.Items[(30, (byte)TypeId)];
Esempio n. 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;
 }
Esempio n. 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;
        }
Esempio n. 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;
 }
Esempio n. 6
0
        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;
        }
Esempio n. 7
0
        public Quest(IDatabasePreloader databasePreloader, ushort questId)
        {
            _databasePreloader = databasePreloader;
            _dbQuest           = _databasePreloader.Quests[questId];

            _endTimer.AutoReset = false;
            _endTimer.Elapsed  += EndTimer_Elapsed;
        }
Esempio n. 8
0
 public MapFactory(ILogger <Map> logger, IDatabasePreloader databasePreloader, IMobFactory mobFactory, INpcFactory npcFactory, IObeliskFactory obeliskFactory)
 {
     _logger            = logger;
     _databasePreloader = databasePreloader;
     _mobFactory        = mobFactory;
     _npcFactory        = npcFactory;
     _obeliskFactory    = obeliskFactory;
 }
Esempio n. 9
0
        public Obelisk(ObeliskConfiguration config, IDatabasePreloader databasePreloader, Map map)
        {
            _config            = config;
            _databasePreloader = databasePreloader;
            Map = map;

            Init();
        }
Esempio n. 10
0
        public GameWorld(ILogger <GameWorld> logger, IBackgroundTaskQueue taskQueue, IDatabasePreloader databasePreloader, Character_HP_SP_MP_Configuration characterConfig)
        {
            _logger            = logger;
            _taskQueue         = taskQueue;
            _databasePreloader = databasePreloader;
            _characterConfig   = characterConfig;

            InitMaps();
        }
Esempio n. 11
0
        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)];
Esempio n. 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;
 }
Esempio n. 13
0
        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)];
        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
        }
Esempio n. 15
0
        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
        }
Esempio n. 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;
 }
Esempio n. 17
0
 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;
 }
Esempio n. 18
0
        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;
        }
Esempio n. 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)];
Esempio n. 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;
        }
Esempio n. 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
        }
Esempio n. 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
        }
Esempio n. 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
        }
Esempio n. 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
        }
Esempio n. 25
0
        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);
            }
        }
Esempio n. 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);
            }
        }
Esempio n. 27
0
        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;
        }
Esempio n. 28
0
 public LinkingManager(IDatabasePreloader databasePreloader)
 {
     _databasePreloader = databasePreloader;
 }
Esempio n. 29
0
        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;
            }
        }
Esempio n. 30
0
        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;
        }