Exemplo n.º 1
0
        public async Task HandleGuildUpgradeNpc(WorldClient client, GuildNpcUpgradePacket packet)
        {
            if (!_guildManager.HasGuild || (_guildManager.GuildRank != 1 && _guildManager.GuildRank != 2))
            {
                _packetFactory.SendGuildUpgradeNpc(client, GuildNpcUpgradeReason.Failed, packet.NpcType, packet.NpcGroup, packet.NpcLevel);
                return;
            }

            var reason = await _guildManager.TryUpgradeNPC(packet.NpcType, packet.NpcGroup, packet.NpcLevel);

            if (reason == GuildNpcUpgradeReason.Ok)
            {
                var etin = await _guildManager.GetEtin();

                _packetFactory.SendGetEtin(client, etin);
            }

            _packetFactory.SendGuildUpgradeNpc(client, reason, packet.NpcType, packet.NpcGroup, packet.NpcLevel);
        }