Ejemplo n.º 1
0
 public void Take(ItemController item)
 {
     item.photonView.RequestOwnership();
     photonView.RPC("RPCTake", Photon.Pun.RpcTarget.OthersBuffered, item.photonView.ViewID);
     inventary.AddItem(this, item);
 }
Ejemplo n.º 2
0
        public void GunControl()
        {
            ItemController selectedWeapon = inventary.GetSelectedAt("PrimaryWeapon");

            if (selectedWeapon != null)
            {
                selectedWeapon.Show();
                if (selectedWeapon is GunController)
                {
                    states.Armed = true;
                    GunController GUN = (selectedWeapon as GunController);
                    this.SetHandState(GUN.getGunStats().HandsState);

                    ik.LeftHandPosition  = GUN.leftHandPosition;
                    ik.LeftElbowPosition = GUN.leftElbowPosition;

                    if (Player)
                    {
                        GUN.DrawCrossHair(cam);

                        if (!states.Inventary)
                        {
                            if (states.Shooting)
                            {
                                if (!GUN.Attack(this))
                                {
                                    notShooting = false;
                                }
                            }
                            else if (states.Reloading)
                            {
                                GUN.Use(this);
                            }
                            else if (states.FireMode)
                            {
                                GUN.NextFireState();
                            }
                        }
                    }
                }
                else
                {
                    states.Armed = false;
                }
            }
            else
            {
                states.Armed = false;
            }



            InventaryGroup weaponGroup = inventary.GetGroup("PrimaryWeapon");

            if (weaponGroup != null)
            {
                if (states.W1)
                {
                    weaponGroup.Select(0);
                }
                if (states.W2)
                {
                    weaponGroup.Select(1);
                }
                if (states.W3)
                {
                    weaponGroup.Select(2);
                }
            }
        }
Ejemplo n.º 3
0
        private void ItemsControl()
        {
            Collider[] checking = Physics.OverlapSphere(LookAt.position, 2f, LayerMask.GetMask("Item"));


            if (states.Inventary)
            {
                Collider[] checkingArround = Physics.OverlapSphere(this.tr.position, 2f, LayerMask.GetMask("Item"));
                inventary.inventaryViewer.SceneViewer.ShowItems(checkingArround);
            }


            if (checking.Length > 0)
            {
                float    near    = 2f;
                Collider nearest = null;

                foreach (Collider c in checking)
                {
                    Vector3 collisionpos = c.ClosestPoint(LookAt.position);
                    float   distance     = Vector3.Distance(collisionpos, LookAt.position);
                    if (distance < near)
                    {
                        nearest = c;
                        near    = distance;
                    }
                }

                if (nearest != null)
                {
                    ItemController item = nearest.GetComponent <ItemController>();
                    if (item != null)
                    {
                        if (Player)
                        {
                            inventary.ItemViewer.DrawItemViewer(item.Stats, item.mTransform, cam);
                        }
                        if (states.Interacting)
                        {
                            if (item.Stats.IsPickeable)
                            {
                                Take(item);
                            }
                            else
                            {
                                item.Use(this);
                            }
                            ///take MULTI// inventary.AddItem(this, item);
                        }
                    }
                }
            }
            else
            {
                if (this.Player)
                {
                    inventary.ItemViewer.HideViewer();
                }
            }

            if (!states.Throwing)
            {
                this.GunControl();
            }
            else
            {
                this.ThrowControl();
            }



            if (states.Consuming)
            {
                ItemController selectedMed = inventary.GetSelectedAt("Meds");
                if (selectedMed != null)
                {
                    if (selectedMed is ConsumableItem)
                    {
                        ConsumableItem consumable = selectedMed as ConsumableItem;
                        consumable.Use(this);
                    }
                }
            }
        }