Exemplo n.º 1
0
 public static void FixDish()
 {
     foreach (MeshCollider mc in FindObjectsOfType <MeshCollider>())
     {
         if (mc.gameObject.name == "dish armored hull")
         {
             MappingHelpersPack.DamageReceiver dr = mc.gameObject.AddComponent <MappingHelpersPack.DamageReceiver>();
             dr.directional = true;
             dr.localDir    = Vector3.forward;
             dr.objToDie    = dr.transform.parent.gameObject;
         }
     }
 }
Exemplo n.º 2
0
        void LateUpdate()
        {
            t -= Time.deltaTime;
            if (t < 0)
            {
                t = 0.1f;
                Ray ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0f));
                // Ray ray = Camera.main.ScreenPointToRay(Camera.main.transform.forward);

                float radius = 0.05f;
                bool  hitt   = false;


                foreach (RaycastHit hit in Physics.SphereCastAll(ray, radius))
                {
                    // Debug.Log("hit;"+hit.collider.name);
                    FlyingOnion fo    = hit.collider.gameObject.GetComponent <FlyingOnion> ();
                    DishOnion   disho = hit.collider.gameObject.GetComponent <DishOnion>();
                    if (disho)
                    {
                        // Debug.Log("Showy");
                        if (ItemPopup.instance)
                        {
                            ItemPopup.instance.Show(disho.transform.position + Vector3.up * 0.25f, "Destroy this! " + disho.DishesRemainingInfo[0].ToString() + " of  " + disho.DishesRemainingInfo[1].ToString() + " dishes remaining.");
                        }
                        break;
                    }
                    if (fo)
                    {
                        fo.CameraHovering();                          // Let onion "know" it has been seen -- causes onion to move for 1-2 seconds
                    }

                    DamageReceiver dr = hit.collider.gameObject.GetComponent <DamageReceiver> ();
                    if (dr || fo || disho)
                    {
                        hitt = true;
                        Crosshair.instance.SetState(Crosshair.State.Destructible);
                    }
                }
                if (!hitt)
                {
                    Crosshair.instance.SetState(Crosshair.State.Nominal);
                }
            }
        }
Exemplo n.º 3
0
        void Update()
        {
            RaycastHit hit;

            if (Physics.Raycast(new Ray(rp.lastPosition, rp.nowPosition - rp.lastPosition), out hit, (rp.lastPosition - rp.nowPosition).magnitude * 4f))
            {
                DamageReceiver dr = hit.collider.GetComponent <DamageReceiver> ();
                if (dr)
                {
                    if (!dr.directional || dr.DirectionValid(rp.lastPosition - rp.nowPosition))
                    {
                        dr.TakeDamage(damageAmount);
                        dr.DamageFx(this);
                        Destroy(this);
                    }
                }
            }
        }