public void Equip(PlayerInfo playerInfo)
    {
        //Debug.Log("调用了防具装备函数");
        if (IsEqu)
        {
            throw new System.Exception("已经装备了该物品");
        }
        IsEqu           = true;
        playerInfo.DEF += DEF;
        switch (armorType)
        {
        case ArmorType.Clothes:
            if (playerInfo.equipments.IsClEquip)
            {
                //Debug.Log("已经装备了衣服,因此");
                playerInfo.equipments.clothes.Unequip(playerInfo);
            }
            playerInfo.equipments.IsClEquip = true;
            playerInfo.equipments.clothes   = this;
            //Debug.Log("装备了衣服");
            SystemMessages.AddMessage("装备了衣服");
            break;

        case ArmorType.Helmet:
            if (playerInfo.equipments.IsHmEquip)
            {
                //Debug.Log("已经装备了头饰,因此");
                playerInfo.equipments.helmet.Unequip(playerInfo);
            }
            playerInfo.equipments.IsHmEquip = true;
            playerInfo.equipments.helmet    = this;
            //Debug.Log("装备了头饰");
            SystemMessages.AddMessage("装备了头饰");
            break;

        case ArmorType.WristBand:
            if (playerInfo.equipments.IsWBEquip)
            {
                //Debug.Log("已经装备了护腕,因此");
                playerInfo.equipments.wristband.Unequip(playerInfo);
            }
            playerInfo.equipments.IsWBEquip = true;
            playerInfo.equipments.wristband = this;
            //Debug.Log("装备了护腕");
            SystemMessages.AddMessage("装备了护腕");
            break;

        case ArmorType.Shoes:
            if (playerInfo.equipments.IsShEquip)
            {
                //Debug.Log("已经装备了鞋履,因此");
                playerInfo.equipments.shoes.Unequip(playerInfo);
            }
            playerInfo.equipments.IsShEquip = true;
            playerInfo.equipments.shoes     = this;
            //Debug.Log("装备了鞋履");
            SystemMessages.AddMessage("装备了鞋履");
            break;
        }
        if (enchant != null)
        {
            enchant.Enchanting(playerInfo);
        }
        if (suitEffect != null)
        {
            if (playerInfo.equipments.suitEffect != null)
            {
                SuitEffectInfo sinfo = playerInfo.equipments.suitEffect.Find(s => s.SuittID == suitEffect.SuittID);
                if (sinfo != null)
                {
                    sinfo.currentNum++;
                    sinfo.TryEffect(playerInfo);
                }
                else
                {
                    suitEffect.currentNum++;
                    playerInfo.equipments.suitEffect.Add(suitEffect);
                }
            }
            else
            {
                suitEffect.currentNum++;
                playerInfo.equipments.suitEffect = new List <SuitEffectInfo>
                {
                    suitEffect
                };
            }
        }
        ItemInfo info = playerInfo.bag.itemList.Find(i => i.Item == this);

        info.Quantity--;
        playerInfo.bag.itemList.Remove(info);
        playerInfo.bag.Current_Size--;
    }
예제 #2
0
    public void Equip(PlayerInfo playerInfo)
    {
        //Debug.Log("调用了首饰装备函数");
        if (IsEqu)
        {
            throw new System.Exception("已经装备了该物品");
        }
        IsEqu = true;
        power_Add.TryPowerUp(playerInfo);
        switch (jewelry_Type)
        {
        case JewelryType.Necklace:
            if (playerInfo.equipments.IsNlEquip)
            {
                //Debug.Log("已经装备了项链,因此");
                playerInfo.equipments.necklace.Unequip(playerInfo, 0);
            }
            playerInfo.equipments.IsNlEquip = true;
            playerInfo.equipments.necklace  = this;
            //Debug.Log("装备了项链");
            break;

        case JewelryType.Belt:
            if (playerInfo.equipments.IsBtEquip)
            {
                //Debug.Log("已经装备了腰饰,因此");
                playerInfo.equipments.belt.Unequip(playerInfo, 0);
            }
            playerInfo.equipments.IsBtEquip = true;
            playerInfo.equipments.belt      = this;
            //Debug.Log("装备了腰饰");
            break;

        case JewelryType.Ring:
            if (playerInfo.equipments.IsRgEquip_1 && !playerInfo.equipments.IsRgEquip_2)
            {
                playerInfo.equipments.IsRgEquip_2 = true;
                playerInfo.equipments.ring_2      = this;
            }
            else
            {
                if (playerInfo.equipments.IsRgEquip_1 && playerInfo.equipments.IsRgEquip_2)
                {
                    //Debug.Log("两手都装备了戒指,因此");
                    playerInfo.equipments.ring_1.Unequip(playerInfo, 1);
                }
                playerInfo.equipments.IsRgEquip_1 = true;
                playerInfo.equipments.ring_1      = this;
            }
            //Debug.Log("装备了戒指");
            break;
        }
        if (enchant != null)
        {
            enchant.Enchanting(playerInfo);
        }
        if (suitEffect != null)
        {
            if (playerInfo.equipments.suitEffect != null)
            {
                SuitEffectInfo sinfo = playerInfo.equipments.suitEffect.Find(s => s.SuittID == suitEffect.SuittID);
                if (sinfo != null)
                {
                    sinfo.currentNum++;
                    sinfo.TryEffect(playerInfo);
                }
                else
                {
                    suitEffect.currentNum++;
                    playerInfo.equipments.suitEffect.Add(suitEffect);
                }
            }
            else
            {
                suitEffect.currentNum++;
                playerInfo.equipments.suitEffect = new List <SuitEffectInfo>
                {
                    suitEffect
                };
            }
        }
        ItemInfo info = playerInfo.bag.itemList.Find(i => i.Item == this);

        info.Quantity--;
        playerInfo.bag.itemList.Remove(info);
        playerInfo.bag.Current_Size--;
    }
    public void Equip(PlayerInfo playerInfo)
    {
        //Debug.Log("调用了武器装备函数");
        if (IsEqu)
        {
            throw new System.Exception("已经装备了该物品");
        }
        if (!CheckEquipAble(playerInfo))
        {
            throw new System.Exception("武器不符,无法装备");
        }
        IsEqu           = true;
        playerInfo.ATK += ATK;
        if (this.weaponType == WeaponType.Knife)
        {
            if (playerInfo.equipments.IsSdEquip)
            {
                //Debug.Log("已经装备了副武器,因此");
                playerInfo.equipments.shield.Unequip(playerInfo);
            }
            playerInfo.equipments.IsSdEquip = true;
            playerInfo.equipments.shield    = this;
            //Debug.Log("装备了副武器");
            SystemMessages.AddMessage("装备了副武器");
        }
        else
        {
            if (playerInfo.equipments.IsWpEquip)
            {
                //Debug.Log("已经装备了主武器,因此");
                playerInfo.equipments.weapon.Unequip(playerInfo);
            }
            playerInfo.equipments.IsWpEquip = true;
            playerInfo.equipments.weapon    = this;
            //Debug.Log("装备了主武器");
            SystemMessages.AddMessage("装备了主武器");
        }
        if (enchant != null)
        {
            enchant.Enchanting(playerInfo);
        }
        if (suitEffect != null)
        {
            if (playerInfo.equipments.suitEffect != null)
            {
                SuitEffectInfo sinfo = playerInfo.equipments.suitEffect.Find(s => s.SuittID == suitEffect.SuittID);
                if (sinfo != null)
                {
                    sinfo.currentNum++;
                    sinfo.TryEffect(playerInfo);
                }
                else
                {
                    suitEffect.currentNum++;
                    playerInfo.equipments.suitEffect.Add(suitEffect);
                }
            }
            else
            {
                suitEffect.currentNum++;
                playerInfo.equipments.suitEffect = new List <SuitEffectInfo>
                {
                    suitEffect
                };
            }
        }
        ItemInfo info = playerInfo.bag.itemList.Find(i => i.Item == this);

        info.Quantity--;
        playerInfo.bag.itemList.Remove(info);
        playerInfo.bag.Current_Size--;
    }