Beispiel #1
0
 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]);
         }
     }
 }
Beispiel #2
0
    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);
    }
Beispiel #3
0
    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();
        }
    }
Beispiel #4
0
    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();
            }
        }
    }