Ejemplo n.º 1
0
    public void Equip(EquippableItem EquipItem)
    {
        if (inventory.RemoveItem(EquipItem))
        {
            bool           canEquip = true;
            EquippableItem previousItem;
            if (EquipPanel.AddEquipItem(EquipItem, out previousItem))
            {
                switch (EquipItem.EquipmentType)
                {
                case EquipmentType.Head:
                    Character.Instance.HeadSprite.sprite = EquipItem.Icon;
                    if (EquipItem.DisableHair == true)
                    {
                        Character.Instance.Hair.enabled = false;
                    }
                    break;

                case EquipmentType.Chest:
                    Character.Instance.ChestSprite.sprite  = EquipItem.Sprite1;
                    Character.Instance.ChestSprite1.sprite = EquipItem.Sprite2;
                    Character.Instance.ChestSprite2.sprite = EquipItem.Sprite3;
                    Character.Instance.Shoulder1.sprite    = EquipItem.Sprite4;
                    Character.Instance.Shoulder2.sprite    = EquipItem.Sprite5;
                    Character.Instance.Cap.sprite          = EquipItem.Sprite6;
                    Character.Instance.Cap2.sprite         = EquipItem.Sprite7;
                    break;

                case EquipmentType.Hands:
                    Character.Instance.HandsSprite1.sprite = EquipItem.Sprite1;
                    Character.Instance.HandsSprite2.sprite = EquipItem.Sprite2;
                    break;

                case EquipmentType.Weapon1:
                    Character.Instance.Weapon1Sprite.sprite = EquipItem.Icon;
                    if (EquipItem.twoHanded && EquipmentPanel.Instance.EquipSlots[5].Item != null)
                    {
                        UnequipFromEquipPanel(EquipmentPanel.Instance.EquipSlots[5].Item);
                    }
                    CreatePlayer.Instance.Weapon1Dam = EquipItem.PhysicDamage + EquipItem.FireDamage + EquipItem.EletricDamage + EquipItem.MagicDamage + EquipItem.PoisonDamage;
                    break;

                case EquipmentType.Weapon2:
                    if (EquipmentPanel.Instance.EquipSlots[4].Item != null && EquipmentPanel.Instance.EquipSlots[4].Item.twoHanded)
                    {
                        canEquip = false;
                    }
                    else
                    {
                        Character.Instance.Weapon2Sprite.sprite = EquipItem.Icon;
                    }
                    break;

                case EquipmentType.Legs:
                    Character.Instance.LegsSprite1.sprite = EquipItem.Sprite1;
                    Character.Instance.LegsSprite2.sprite = EquipItem.Sprite2;
                    Character.Instance.LegsSprite3.sprite = EquipItem.Sprite3;
                    break;
                }
                if (canEquip)
                {
                    if (EquipItem.AnimLayer != 0)
                    {
                        Character.Instance.Anim.SetLayerWeight(EquipItem.AnimLayer, 1.0f);
                    }
                    if (EquipItem.EquipmentType != EquipmentType.Weapon2)
                    {
                        CreatePlayer.Instance.PhysicDEF  += EquipItem.PhysicDEF;
                        CreatePlayer.Instance.FireDEF    += EquipItem.FireDEF;
                        CreatePlayer.Instance.EletricDEF += EquipItem.EletricDEF;     //Adding new item's values
                        CreatePlayer.Instance.MagicDEF   += EquipItem.MagicDEF;
                        CreatePlayer.Instance.PoisonDEF  += EquipItem.PoisonDEF;
                        // CreatePlayer.Instance.Weight += EquipItem.Weight;
                    }
                    CreatePlayer.Instance.Weight += EquipItem.Weight;
                    //CreatePlayer.Instance.UpdateUI();
                    if (previousItem != null)
                    {
                        if (previousItem.EquipmentType != EquipmentType.Weapon2)
                        {
                            CreatePlayer.Instance.PhysicDEF  -= previousItem.PhysicDEF;
                            CreatePlayer.Instance.FireDEF    -= previousItem.FireDEF;
                            CreatePlayer.Instance.EletricDEF -= previousItem.EletricDEF;      //Removing previous item's values
                            CreatePlayer.Instance.MagicDEF   -= previousItem.MagicDEF;
                            CreatePlayer.Instance.PoisonDEF  -= previousItem.PoisonDEF;
                        }
                        CreatePlayer.Instance.Weight -= previousItem.Weight;
                        if (previousItem.AnimLayer != 0)
                        {
                            Character.Instance.Anim.SetLayerWeight(previousItem.AnimLayer, 0.0f);
                        }
                        inventory.AddItem(previousItem);
                    }
                    CreatePlayer.Instance.UpdateUI();
                }
            }
            else
            {
                inventory.AddItem(previousItem);
            }
        }
    }