void SetWeapon(GameObject weapon, GameObject owner, EquipSide side, WeaponType type, string customHandler)
    {
        //vShooterWeapon shooterWeapon = weapon.GetComponent<vShooterWeapon>();
        //PUN_ShooterManager manager = owner.GetComponent<PUN_ShooterManager>();
        Transform handler = GetHandler(owner.transform, side, type, customHandler);

        weapon.transform.position = handler.position;
        weapon.transform.rotation = handler.rotation;
        weapon.transform.SetParent(handler);
    }
Exemplo n.º 2
0
 public EquipAttach GetEquipAttach(EquipSlot slot, EquipSide side)
 {
     foreach (EquipAttach attach in equip_attachments)
     {
         if (attach.slot == slot)
         {
             if (attach.side == EquipSide.Default || side == EquipSide.Default || attach.side == side)
             {
                 return(attach);
             }
         }
     }
     return(null);
 }
    public void DestroyWeapon(GameObject owner, string weaponName, EquipSide side)
    {
        List <Transform> handlers = GetHandlers(owner, side);
        List <Transform> weapons  = new List <Transform>();

        foreach (Transform handler in handlers)
        {
            weapons.Clear();
            weapons = FindAllWithName(handler, weaponName, weapons);
            foreach (Transform weapon in weapons)
            {
                Destroy(weapon.gameObject);
            }
        }
    }
    public GameObject createItem(string itemName, EquipSide side, GameObject calledFrom)
    {
        itemName = itemName.Replace("(Clone)", "").Trim();
        if (itemName[0] == 'v')
        {
            itemName = itemName.Remove(0, 1);
        }
        GameObject newitem = null;
        string     temp    = "";

        foreach (var item in allItems.items)
        {
            temp = item.name;
            if (temp[0] == 'v')
            {
                temp = temp.Remove(0, 1);
            }
            if (temp == itemName)
            {
                newitem = Instantiate(item.originalObject, this.transform.position, this.transform.rotation);
                if (item.customHandler != "")
                {
                    if (!customHandlers.Contains(item.customHandler))
                    {
                        customHandlers.Add(item.customHandler);
                    }
                }
                switch (item.type)
                {
                case vItemType.Shooter:
                    SetWeapon(newitem, calledFrom, side, WeaponType.shooter, item.customHandler);
                    break;

                case vItemType.MeleeWeapon:
                    SetWeapon(newitem, calledFrom, side, WeaponType.melee, item.customHandler);
                    break;
                }
            }
        }

        return(newitem);
    }
    List <Transform> GetHandlers(GameObject owner, EquipSide side)
    {
        List <Transform> handlers = new List <Transform>();

        handlers.Add(GetHandler(owner.transform, side, WeaponType.melee, ""));
        handlers.Add(GetHandler(owner.transform, side, WeaponType.shooter, ""));
        foreach (string handler in customHandlers)
        {
            Transform meleeHandler = GetHandler(owner.transform, side, WeaponType.melee, handler);
            if (meleeHandler != null)
            {
                handlers.Add(meleeHandler);
            }
            Transform shooterHandler = GetHandler(owner.transform, side, WeaponType.shooter, handler);
            if (shooterHandler != null)
            {
                handlers.Add(shooterHandler);
            }
        }
        return(handlers);
    }
    Transform GetHandler(Transform owner, EquipSide side, WeaponType type, string customHandler)
    {
        string foundHandler = "";
        string searchParent = "";

        switch (side)
        {
        case EquipSide.Left:
            searchParent = "LeftHandlers";
            break;

        case EquipSide.Right:
            searchParent = "RightHandlers";
            break;
        }
        if (customHandler == "")
        {
            switch (type)
            {
            case WeaponType.melee:
                foundHandler = "meleeHandler";
                break;

            case WeaponType.shooter:
                foundHandler = "defaultHandler";
                break;
            }
        }
        else
        {
            foundHandler = customHandler;
        }

        Transform rootHandler = FindWithName(owner, searchParent);
        Transform handler     = FindWithName(rootHandler, foundHandler);

        return(handler);
    }
    public GameObject SetItem(int weaponViewId, EquipSide side, GameObject calledFrom)
    {
        PhotonView weapon = null;

        if (weaponViewId != -1)
        {
            weapon = PhotonNetwork.GetPhotonView(weaponViewId);

            if (weapon)
            {
                vCollectableStandalone collectableStandalone = weapon.GetComponentInChildren <vCollectableStandalone>();
                if (collectableStandalone != null)
                {
                    if (collectableStandalone.targetEquipPoint != "")
                    {
                        if (!customHandlers.Contains(collectableStandalone.targetEquipPoint))
                        {
                            customHandlers.Add(collectableStandalone.targetEquipPoint);
                        }
                    }
                }

                if (weapon.GetComponent <vShooterWeapon>())
                {
                    SetWeapon(weapon.gameObject, calledFrom, side, WeaponType.shooter, collectableStandalone.targetEquipPoint);
                }
                else
                {
                    SetWeapon(weapon.gameObject, calledFrom, side, WeaponType.melee, collectableStandalone.targetEquipPoint);
                }
                return(weapon.gameObject);
            }
        }

        return(null);
    }