コード例 #1
0
        public static async Task RarifyAsync(this RarifyEvent e, IPlayerEntity player, sbyte rarity)
        {
            if (e.Mode != RarifyMode.Drop)
            {
                await player.NotifyRarifyResult(rarity);
            }

            e.Item.Rarity = rarity;
            /* GenerateHeroicShell(protection);*/
            e.Item.SetRarityPoint();
        }
コード例 #2
0
        public static async Task FailAsync(this RarifyEvent e, IPlayerEntity player)
        {
            if (e.Mode != RarifyMode.Drop)
            {
                switch (e.Protection)
                {
                case RarifyProtection.BlueAmulet:
                case RarifyProtection.RedAmulet:
                case RarifyProtection.HeroicAmulet:
                case RarifyProtection.RandomHeroicAmulet:
                    ItemInstanceDto amulets = player.Inventory.GetItemFromSlotAndType((short)EquipmentType.Amulet, InventoryType.Wear);
                    if (amulets == null)
                    {
                        return;
                    }

                    /* amulet.DurabilityPoint -= 1;
                     * if (amulet.DurabilityPoint <= 0)
                     * {
                     *   session.Character.DeleteItemByItemInstanceId(amulet.Id);
                     *   await session.SendPacketAsync($"info {Language.Instance.GetMessageFromKey("AMULET_DESTROYED")}");
                     *   await session.SendPacketAsync(session.Character.GenerateEquipment());
                     * }*/
                    await player.SendTopscreenMessage("AMULET_FAIL_SAVED", MsgPacketType.Whisper);

                    await player.SendChatMessageAsync("AMULET_FAIL_SAVED", SayColorType.Purple);

                    return;

                case RarifyProtection.None:
                    /* session.Character.DeleteItemByItemInstanceId(Id);*/
                    //player.EmitEvent(new InventoryDestroyItemEvent { ItemInstance = e.Item });
                    await player.SendTopscreenMessage("RARIFY_FAILED", MsgPacketType.Whisper);

                    await player.SendChatMessageAsync("RARIFY_FAILED", SayColorType.Purple);

                    return;
                }

                await player.SendTopscreenMessage("RARIFY_FAILED_ITEM_SAVED", MsgPacketType.Whisper);

                await player.SendChatMessageAsync("RARIFY_FAILED_ITEM_SAVED", SayColorType.Purple);

                await player.BroadcastAsync(player.GenerateEffectPacket(3004));
            }
        }