Exemplo n.º 1
0
    public void EquipItem(int slot, int weaponSlot)
    {
        Item ItemInSlot = (inventory.FetchItemInSlot(slot));

        if (!weaponSlotsUnlocked[weaponSlot] && ItemInSlot.MyItemType == ItemType.WEAPON)
        {
            return;
        }
        if (ItemInSlot == null)
        {
            return;
        }

        print("Called equip: " + ItemInSlot.ItemName);
        if (ItemInSlot.MyItemType == ItemType.WEAPON)
        {
            Weapon wep = (inventory.PullItemFromInventory("", slot) as Weapon);
            if (wep.perks == null)
            {
                wep.perks = new List <LegendaryPerk>();
            }

            for (int i = 0; i < wep.perks.Count; i++)
            {
                ActivePerks.Add(wep.perks[i]);
            }

            if (wep == null)
            {
                return;
            }

            wep.lib = aLib;
            wep.PopulateSkills();

            if (EquippedWeapons[weaponSlot] != null)
            {
                for (int i = 0; i < EquippedWeapons[weaponSlot].perks.Count; i++)
                {
                    ActivePerks.Remove(EquippedWeapons[weaponSlot].perks[i]);
                }
                for (int i = 0; i < 4; i++)
                {
                    if (EquippedWeapons[weaponSlot].SkillSet[i] != null)
                    {
                        EquippedWeapons[weaponSlot].SkillSet[i].isSelected = false;
                        EquippedWeapons[weaponSlot].SkillSet[i]            = null;
                    }
                }
                inventory.AddItemToInventory(EquippedWeapons[weaponSlot]);
            }

            EquippedWeapons[weaponSlot] = wep;
            switch (weaponSlot)
            {
            case (0):
                //firstSlot = obj as Weapon;
                firstSlot = wep;
                break;

            case (1):
                //secondSlot = obj as Weapon;
                secondSlot = wep;
                break;

            case (2):
                //thirdSlot = obj as Weapon;
                thirdSlot = wep;
                break;

            case (3):
                //fourthSlot = obj as Weapon;
                fourthSlot = wep;
                break;

            default:
                //firstSlot = obj as Weapon;
                firstSlot = wep;
                break;
            }

            if (EquippedWeapons[currentWeaponSlot] != null)
            {
                equippedWeapon = EquippedWeapons[currentWeaponSlot];
                foreach (GameObject weapon in weaponLinkModel)
                {
                    weapon.SetActive(false);
                    if (weapon.name == equippedWeapon.Type.ToString())
                    {
                        weapon.SetActive(true);
                    }
                }
            }
            abilities_Interface.UpdateSkillCooldowns();
            abilities_Interface.UpdateSkillIcons();
            Ability_Select_Interface.instance.ResetRefIndex();
        }
        else if (ArmorItemTypes.Contains(ItemInSlot.MyItemType))
        {
            Armor armorRef;
            switch (ItemInSlot.MyItemType)
            {
            case (ItemType.HAT):
            case (ItemType.COIF):
            case (ItemType.HELMET):
                if (ItemInSlot.MyItemType == ItemType.HAT)
                {
                    armorRef = inventory.PullItemFromInventory("", slot) as Hat;
                }
                else if (ItemInSlot.MyItemType == ItemType.COIF)
                {
                    armorRef = inventory.PullItemFromInventory("", slot) as Coif;
                }
                else
                {
                    armorRef = inventory.PullItemFromInventory("", slot) as Helmet;
                }

                if (Helmet != null)
                {
                    inventory.AddItemToInventory(Helmet);
                }
                Helmet = armorRef;
                break;

            case (ItemType.ROBE):
            case (ItemType.CHESTGUARD):
            case (ItemType.CHESTPLATE):
                if (ItemInSlot.MyItemType == ItemType.ROBE)
                {
                    armorRef = inventory.PullItemFromInventory("", slot) as Robe;
                }
                else if (ItemInSlot.MyItemType == ItemType.CHESTGUARD)
                {
                    armorRef = inventory.PullItemFromInventory("", slot) as Chestguard;
                }
                else
                {
                    armorRef = inventory.PullItemFromInventory("", slot) as Chestplate;
                }

                if (Chestplate != null)
                {
                    inventory.AddItemToInventory(Chestplate);
                }
                Chestplate = armorRef;
                break;

            case (ItemType.PLATELEGS):
            case (ItemType.TROUSERS):
            case (ItemType.CHAPS):
                if (ItemInSlot.MyItemType == ItemType.PLATELEGS)
                {
                    armorRef = inventory.PullItemFromInventory("", slot) as Platelegs;
                }
                else if (ItemInSlot.MyItemType == ItemType.TROUSERS)
                {
                    armorRef = inventory.PullItemFromInventory("", slot) as Trousers;
                }
                else
                {
                    armorRef = inventory.PullItemFromInventory("", slot) as Chaps;
                }

                if (LegArmor != null)
                {
                    inventory.AddItemToInventory(LegArmor);
                }
                LegArmor = armorRef;
                break;
            }
        }
        else if (ItemInSlot.MyItemType == ItemType.TOOL)
        {
            Tool toolRef = (inventory.PullItemFromInventory("", slot) as Tool);
            if (EquippedTool != null)
            {
                inventory.AddItemToInventory(EquippedTool);
            }
            EquippedTool = toolRef;
        }

        SaveCharacterData();
        inventory.SaveInventory();
        GetComponent <Player_Details_Script>().MaxHealth = BonusHealth;
    }
Exemplo n.º 2
0
    public void EquipItem(int slot)
    {
        if (!weaponSlotsUnlocked[currentWeaponSlot])
        {
            return;
        }

        Item itemRef = inventory.FetchItemInSlot(slot);

        if (itemRef == null)
        {
            return;
        }

        if (itemRef.MyItemType == ItemType.WEAPON)
        {
            Weapon wep = (inventory.PullItemFromInventory("Weapon", slot) as Weapon);
            if (wep == null)
            {
                return;
            }

            if (wep.perks == null)
            {
                wep.perks = new List <LegendaryPerk>();
            }

            for (int i = 0; i < wep.perks.Count; i++)
            {
                ActivePerks.Add(wep.perks[i]);
            }

            if (wep == null)
            {
                return;
            }

            wep.lib = aLib;
            wep.PopulateSkills();

            if (equippedWeapon != null)
            {
                for (int i = 0; i < equippedWeapon.perks.Count; i++)
                {
                    ActivePerks.Remove(equippedWeapon.perks[i]);
                }
                for (int i = 0; i < 4; i++)
                {
                    if (equippedWeapon.SkillSet[i] != null)
                    {
                        equippedWeapon.SkillSet[i].isSelected = false;
                        equippedWeapon.SkillSet[i]            = null;
                    }
                }
                inventory.AddItemToInventory(equippedWeapon);
            }

            equippedWeapon = wep;
            foreach (GameObject weapon in weaponLinkModel)
            {
                weapon.SetActive(false);
                if (weapon.name == wep.Type.ToString())
                {
                    weapon.SetActive(true);
                }
            }

            switch (currentWeaponSlot)
            {
            case (0):
                firstSlot = wep;
                break;

            case (1):
                secondSlot = wep;
                break;

            case (2):
                thirdSlot = wep;
                break;

            case (3):
                fourthSlot = wep;
                break;

            default:
                firstSlot = wep;
                break;
            }
        }
        else if (itemRef.MyItemType == ItemType.HELMET || itemRef.MyItemType == ItemType.PLATELEGS || itemRef.MyItemType == ItemType.CHESTPLATE)
        {
            Armor armorRef;
            if (itemRef.MyItemType == ItemType.HELMET)
            {
                armorRef = inventory.PullItemFromInventory("", slot) as Helmet;
                if (Helmet != null)
                {
                    inventory.AddItemToInventory(Helmet);
                }

                Helmet = armorRef;
            }
            else if (itemRef.MyItemType == ItemType.CHESTPLATE)
            {
                armorRef = inventory.PullItemFromInventory("", slot) as Chestplate;
                if (Chestplate != null)
                {
                    inventory.AddItemToInventory(Chestplate);
                }

                Chestplate = armorRef;
            }
            else if (itemRef.MyItemType == ItemType.PLATELEGS)
            {
                armorRef = inventory.PullItemFromInventory("", slot) as Platelegs;
                if (LegArmor != null)
                {
                    inventory.AddItemToInventory(LegArmor);
                }

                LegArmor = armorRef;
            }
        }
        else if (itemRef.MyItemType == ItemType.TOOL)
        {
            //UnequipTool();
            //EquipTool();
        }
        abilities_Interface.UpdateSkillCooldowns();
        abilities_Interface.UpdateSkillIcons();
        Ability_Select_Interface.instance.ResetRefIndex();
        SaveCharacterData();
        inventory.SaveInventory();
        GetComponent <Player_Details_Script>().MaxHealth = BonusHealth;
    }