public void SetAIEquipment() { for (int i = 0; i < currentEquipment.Length; i++) { if (currentEquipment[i] != null) { if (currentEquipment[i].itemType == ItemType.Weapon) { if (currentEquipment[i].itemGameObject != null) { GameObject itemGo = Instantiate(currentEquipment[i].itemGameObject) as GameObject; itemGo.transform.SetParent(weaponHolsterMountPoint); itemGo.transform.localPosition = Vector3.zero; itemGo.transform.localEulerAngles = Vector3.zero; } weaponTypeUsed = currentEquipment[i].weaponType; weaponHoldingType = currentEquipment[i].weaponHoldingType; } else if (currentEquipment[i].itemType == ItemType.Shield) { if (currentEquipment[i].itemGameObject != null) { GameObject itemGo = Instantiate(currentEquipment[i].itemGameObject) as GameObject; itemGo.transform.SetParent(shieldHolsterMountPoint); itemGo.transform.localPosition = Vector3.zero; itemGo.transform.localEulerAngles = Vector3.zero; } } AddPointModifiers(currentEquipment[i]); } } }
public void EquipItemForNpc(TopDownItemObject item) { int slotIndex = (int)item.itemType; currentEquipment[slotIndex] = item; if (item.itemType == ItemType.Weapon) { if (item.weaponType == WeaponType.Melee) { if (item.itemGameObject != null) { GameObject itemGo = Instantiate(item.itemGameObject) as GameObject; for (int i = 0; i < itemGo.transform.childCount; i++) { itemGo.transform.GetChild(i).gameObject.layer = gameObject.layer; } itemGo.transform.SetParent(weaponHolsterMountPoint); itemGo.transform.localPosition = Vector3.zero; itemGo.transform.localEulerAngles = Vector3.zero; } } else if (item.weaponType == WeaponType.Ranged) { if (item.itemGameObject != null) { GameObject itemGo = Instantiate(item.itemGameObject) as GameObject; for (int i = 0; i < itemGo.transform.childCount; i++) { itemGo.transform.GetChild(i).gameObject.layer = gameObject.layer; } itemGo.transform.SetParent(shieldHolsterMountPoint); itemGo.transform.localPosition = Vector3.zero; itemGo.transform.localEulerAngles = Vector3.zero; } } weaponTypeUsed = item.weaponType; weaponHoldingType = item.weaponHoldingType; } else if (item.itemType == ItemType.Shield) { if (item.itemGameObject != null) { GameObject itemGo = Instantiate(item.itemGameObject) as GameObject; for (int i = 0; i < itemGo.transform.childCount; i++) { itemGo.transform.GetChild(i).gameObject.layer = gameObject.layer; } itemGo.transform.SetParent(shieldHolsterMountPoint); itemGo.transform.localPosition = Vector3.zero; itemGo.transform.localEulerAngles = Vector3.zero; } } if (characterEquipmentType == CharacterEquipementType.EnableMesh) { for (int i = 0; i < itemsOnCharacter.Length; i++) { if (item.itemSkinnedMeshName == itemsOnCharacter[i].name) { itemsOnCharacter[i].enabled = true; } } } else if (characterEquipmentType == CharacterEquipementType.ReplaceMesh) { if (item.itemType == ItemType.Chest) { bodyMesh.sharedMesh = item.itemMesh; } else if (item.itemType == ItemType.Head) { helmMesh.sharedMesh = item.itemMesh; } else if (item.itemType == ItemType.Legs) { leggsMesh.sharedMesh = item.itemMesh; } else if (item.itemType == ItemType.Hands) { handsMesh.sharedMesh = item.itemMesh; } else if (item.itemType == ItemType.Neck) { neckMesh.sharedMesh = item.itemMesh; } } AddPointModifiers(item); }
public void UnequipItem(TopDownItemObject item) { if (TopDownAudioManager.instance.inventoryItemUseAudio != null) { Instantiate(TopDownAudioManager.instance.inventoryItemUseAudio, Vector3.zero, Quaternion.identity); } RemovePointModifiers(item); int slotIndex = (int)item.itemType; currentEquipment[slotIndex] = null; weaponTypeUsed = WeaponType.NoWeapon; weaponHoldingType = WeaponHoldingType.None; if (item.itemType == ItemType.Weapon) { if (item.weaponType == WeaponType.Melee) { if (weaponHolsterMountPoint.childCount > 0) { foreach (Transform itemGo in weaponHolsterMountPoint) { Destroy(itemGo.gameObject); } } } else if (item.weaponType == WeaponType.Ranged) { if (shieldHolsterMountPoint.childCount > 0) { foreach (Transform itemGo in shieldHolsterMountPoint) { Destroy(itemGo.gameObject); } } } } else if (item.itemType == ItemType.Shield) { if (shieldHolsterMountPoint.childCount > 0) { foreach (Transform itemGo in shieldHolsterMountPoint) { Destroy(itemGo.gameObject); } } } else { if (characterEquipmentType == CharacterEquipementType.EnableMesh) { for (int i = 0; i < itemsOnCharacter.Length; i++) { if (item.itemSkinnedMeshName == itemsOnCharacter[i].name) { itemsOnCharacter[i].gameObject.SetActive(false); } } } else if (characterEquipmentType == CharacterEquipementType.InstantiateMesh) { if (item.itemType == ItemType.Chest) { Destroy(headInstantiatedModel); headInstantiatedModel = null; } else if (item.itemType == ItemType.Head) { Destroy(headInstantiatedModel); headInstantiatedModel = null; } else if (item.itemType == ItemType.Legs) { Destroy(leggsLInstantiatedModel); Destroy(leggsRInstantiatedModel); leggsLInstantiatedModel = null; leggsRInstantiatedModel = null; } else if (item.itemType == ItemType.Hands) { Destroy(handsLInstantiatedModel); Destroy(handsRInstantiatedModel); handsLInstantiatedModel = null; handsRInstantiatedModel = null; } else if (item.itemType == ItemType.Neck) { Destroy(neckInstantiatedModel); neckInstantiatedModel = null; } } else if (characterEquipmentType == CharacterEquipementType.ReplaceMesh) { if (item.itemType == ItemType.Chest) { bodyMesh.sharedMesh = defaultBodyMesh; } else if (item.itemType == ItemType.Head) { helmMesh.sharedMesh = null; } else if (item.itemType == ItemType.Legs) { leggsMesh.sharedMesh = defaultLeggsMesh; } else if (item.itemType == ItemType.Hands) { handsMesh.sharedMesh = defaultHandsMesh; } else if (item.itemType == ItemType.Neck) { neckMesh.sharedMesh = null; } } } for (int i = 0; i < TopDownUIInventory.instance.slots.Length; i++) { if (TopDownUIInventory.instance.slots[i].itemInSlot == item) { //TopDownUIInventory.instance.slots[i].GetComponent<Image>().color = TopDownUIInventory.instance.slots[i].normalSlotColor; } } if (TopDownUIManager.instance.characterPortraitType == CharacterPortraitType.Runtime) { GetComponent <TopDownCharacterCard>().UpdatePortrait(); } }
public void EquipItem(TopDownItemObject item) { int slotIndex = (int)item.itemType; /*if (currentEquipment[slotIndex] != null) { * for (int i = 0; i < TopDownUIInventory.instance.slots.Length; i++) { * if (TopDownUIInventory.instance.slots[i].itemInSlot == currentEquipment[slotIndex]) { * TopDownUIInventory.instance.slots[i].GetComponent<Image>().color = TopDownUIInventory.instance.slots[i].normalSlotColor; * } * } * }*/ currentEquipment[slotIndex] = item; //Instantiate weapon model as weapon mount points child if (item.itemType == ItemType.Weapon) { if (item.weaponType == WeaponType.Melee) { if (item.itemGameObject != null) { GameObject itemGo = Instantiate(item.itemGameObject) as GameObject; for (int i = 0; i < itemGo.transform.childCount; i++) { itemGo.transform.GetChild(i).gameObject.layer = gameObject.layer; } itemGo.transform.SetParent(weaponHolsterMountPoint); itemGo.transform.localPosition = Vector3.zero; itemGo.transform.localEulerAngles = Vector3.zero; } } else if (item.weaponType == WeaponType.Ranged) { if (item.itemGameObject != null) { GameObject itemGo = Instantiate(item.itemGameObject) as GameObject; for (int i = 0; i < itemGo.transform.childCount; i++) { itemGo.transform.GetChild(i).gameObject.layer = gameObject.layer; } itemGo.transform.SetParent(shieldHolsterMountPoint); itemGo.transform.localPosition = Vector3.zero; itemGo.transform.localEulerAngles = Vector3.zero; } } weaponTypeUsed = item.weaponType; weaponHoldingType = item.weaponHoldingType; } else if (item.itemType == ItemType.Shield) { if (item.itemGameObject != null) { GameObject itemGo = Instantiate(item.itemGameObject) as GameObject; for (int i = 0; i < itemGo.transform.childCount; i++) { itemGo.transform.GetChild(i).gameObject.layer = gameObject.layer; } itemGo.transform.SetParent(shieldHolsterMountPoint); itemGo.transform.localPosition = Vector3.zero; itemGo.transform.localEulerAngles = Vector3.zero; } } else { if (characterEquipmentType == CharacterEquipementType.EnableMesh) { for (int i = 0; i < itemsOnCharacter.Length; i++) { if (item.itemSkinnedMeshName == itemsOnCharacter[i].name) { itemsOnCharacter[i].gameObject.SetActive(true); } } } else if (characterEquipmentType == CharacterEquipementType.InstantiateMesh) { if (item.itemGameObject != null) { if (item.itemType == ItemType.Chest) { GameObject itemGo = Instantiate(item.itemGameObject) as GameObject; for (int i = 0; i < itemGo.transform.childCount; i++) { itemGo.transform.GetChild(i).gameObject.layer = gameObject.layer; } itemGo.transform.SetParent(bodyTransform); bodyInstantiatedModel = itemGo; itemGo.transform.localPosition = Vector3.zero; itemGo.transform.localEulerAngles = Vector3.zero; } else if (item.itemType == ItemType.Head) { GameObject itemGo = Instantiate(item.itemGameObject) as GameObject; for (int i = 0; i < itemGo.transform.childCount; i++) { itemGo.transform.GetChild(i).gameObject.layer = gameObject.layer; } itemGo.transform.SetParent(headTransform); headInstantiatedModel = itemGo; itemGo.transform.localPosition = Vector3.zero; itemGo.transform.localEulerAngles = Vector3.zero; } else if (item.itemType == ItemType.Legs) { } else if (item.itemType == ItemType.Hands) { } else if (item.itemType == ItemType.Neck) { GameObject itemGo = Instantiate(item.itemGameObject) as GameObject; for (int i = 0; i < itemGo.transform.childCount; i++) { itemGo.transform.GetChild(i).gameObject.layer = gameObject.layer; } itemGo.transform.SetParent(neckTransform); neckInstantiatedModel = itemGo; itemGo.transform.localPosition = Vector3.zero; itemGo.transform.localEulerAngles = Vector3.zero; } } } else if (characterEquipmentType == CharacterEquipementType.ReplaceMesh) { if (item.itemType == ItemType.Chest) { bodyMesh.sharedMesh = item.itemMesh; } else if (item.itemType == ItemType.Head) { helmMesh.sharedMesh = item.itemMesh; } else if (item.itemType == ItemType.Legs) { leggsMesh.sharedMesh = item.itemMesh; } else if (item.itemType == ItemType.Hands) { handsMesh.sharedMesh = item.itemMesh; } else if (item.itemType == ItemType.Neck) { neckMesh.sharedMesh = item.itemMesh; } } } /*for (int i = 0; i < TopDownUIInventory.instance.slots.Length; i++) { * if (TopDownUIInventory.instance.slots[i].itemInSlot == item) { * TopDownUIInventory.instance.slots[i].GetComponent<Image>().color = TopDownUIInventory.instance.slots[i].equipedSlotColor; * } * }*/ if (TopDownAudioManager.instance.inventoryItemUseAudio != null) { Instantiate(TopDownAudioManager.instance.inventoryItemUseAudio, Vector3.zero, Quaternion.identity); } AddPointModifiers(item); if (gameObject.tag != "NPC") { if (TopDownUIManager.instance.characterPortraitType == CharacterPortraitType.Runtime) { GetComponent <TopDownCharacterCard>().UpdatePortrait(); } } }