Exemple #1
0
    public void OnDrop(PointerEventData eventData)
    {
        if (canDrag == false)
        {
            if (eventData.pointerDrag != null)
            {
                BagListitem bagListitem = eventData.pointerDrag.GetComponent <BagListitem>();
                DropItem    dropItem    = eventData.pointerDrag.GetComponent <DropItem>();

                switch (equippedItemType)
                {
                case EquippedItem.BodyGem1:
                case EquippedItem.BodyGem2:
                case EquippedItem.HeadGem1:
                case EquippedItem.HeadGem2:
                case EquippedItem.Weapon1_Gem1:
                case EquippedItem.Weapon1_Gem2:
                case EquippedItem.Weapon2_Gem1:
                case EquippedItem.Weapon2_Gem2:
                    if (bagListitem != null)
                    {
                        if (bagListitem.Item.itemType == ItemType.Gem)
                        {
                            image.sprite = bagListitem.img.sprite;
                            object[] param = new object[2];

                            param[0] = equippedItemType;
                            param[1] = bagListitem.Item;
                            MessageCenter.Send_Multparam(Meaningless.EMessageType.EquipItem, param);

                            ItemInfo = bagListitem.Item;

                            bagListitem.UseItem();

                            canDrag = true;
                        }
                    }
                    if (dropItem != null)
                    {
                        if (dropItem.ItemInfo.itemType == ItemType.Gem)
                        {
                            image.sprite = dropItem.image.sprite;
                            MessageCenter.Send(Meaningless.EMessageType.UnEquipItem, dropItem.equippedItemType);

                            object[] param = new object[2];
                            param[0] = equippedItemType;
                            param[1] = dropItem.ItemInfo;
                            MessageCenter.Send_Multparam(Meaningless.EMessageType.EquipItem, param);

                            ItemInfo = dropItem.ItemInfo;
                            canDrag  = true;
                            dropItem.DropedToOtherSlot();
                        }
                    }
                    break;

                case EquippedItem.Head:
                    if (bagListitem != null)
                    {
                        if (bagListitem.Item.itemType == ItemType.Armor)
                        {
                            if (bagListitem.Item.armorProperties.armorType == ArmorType.Head)
                            {
                                image.sprite = bagListitem.img.sprite;

                                BagManager.Instance.EquipItem(equippedItemType, bagListitem.Item);
                                ItemInfo = bagListitem.Item;

                                bagListitem.Equip();
                                CameraBase.Instance.player.GetComponent <PlayerController>().EquipHelmet(bagListitem.Item.ItemID);
                                NetworkManager.SendPlayerEquipHelmet(bagListitem.Item.ItemID);     //发送戴头盔消息
                                canDrag = true;
                            }
                        }
                    }
                    break;

                case EquippedItem.Body:
                    if (bagListitem != null)
                    {
                        if (bagListitem.Item.itemType == ItemType.Armor)
                        {
                            if (bagListitem.Item.armorProperties.armorType == ArmorType.Body)
                            {
                                image.sprite = bagListitem.img.sprite;

                                BagManager.Instance.EquipItem(equippedItemType, bagListitem.Item);
                                ItemInfo = bagListitem.Item;

                                bagListitem.Equip();
                                CameraBase.Instance.player.GetComponent <PlayerController>().EquipClothes(bagListitem.Item.ItemID);
                                NetworkManager.SendPlayerEquipClothe(bagListitem.Item.ItemID);     //发送着衫消息

                                canDrag = true;
                            }
                        }
                    }

                    break;

                case EquippedItem.Weapon1:
                    if (bagListitem != null)
                    {
                        if (bagListitem.Item.itemType == ItemType.Weapon)
                        {
                            if (bagListitem.Item.weaponProperties.weaponType != WeaponType.Shield)
                            {
                                image.sprite = bagListitem.img.sprite;
                                // MessageCenter.Send_Multparam(Meaningless.EMessageType.EquipItem, param);
                                BagManager.Instance.EquipItem(equippedItemType, bagListitem.Item);
                                BagManager.Instance.CurrentSelected = 1;
                                CameraBase.Instance.player.GetComponent <PlayerController>().ChangeWeapon(1);
                                NetworkManager.SendPlayerEquipWeapon(bagListitem.Item.ItemID);     //发送换武器消息

                                ItemInfo = bagListitem.Item;

                                bagListitem.Equip();

                                canDrag = true;
                            }
                        }
                    }
                    break;

                case EquippedItem.Weapon2:
                    if (bagListitem != null)
                    {
                        if (bagListitem.Item.itemType == ItemType.Weapon)
                        {
                            if (bagListitem.Item.weaponProperties.weaponType != WeaponType.Shield)
                            {
                                image.sprite = bagListitem.img.sprite;

                                BagManager.Instance.EquipItem(equippedItemType, bagListitem.Item);
                                BagManager.Instance.CurrentSelected = 2;
                                CameraBase.Instance.player.GetComponent <PlayerController>().ChangeWeapon(2);
                                NetworkManager.SendPlayerEquipWeapon(bagListitem.Item.ItemID);     //发送换武器消息
                                ItemInfo = bagListitem.Item;

                                bagListitem.Equip();

                                canDrag = true;
                            }
                        }
                    }
                    break;

                case EquippedItem.Magic1:
                case EquippedItem.Magic2:
                    if (bagListitem != null)
                    {
                        if (bagListitem.Item.itemType == ItemType.Magic)
                        {
                            image.sprite = bagListitem.img.sprite;

                            BagManager.Instance.EquipItem(equippedItemType, bagListitem.Item);

                            ItemInfo = bagListitem.Item;

                            bagListitem.Equip();

                            canDrag = true;
                        }
                    }

                    break;
                }
            }
        }
    }