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; }
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; }