Beispiel #1
0
            private static GameObject smethod_183(Spawns.SpawnerLootable spawnerLootable_0)
            {
                GameObject result;

                if (spawnerLootable_0.SpawnedObject == null && spawnerLootable_0.vector3_0 != Vector3.zero && spawnerLootable_0.List.Count > 0)
                {
                    string text = spawnerLootable_0.method_0();
                    if (text != null)
                    {
                        Vector3 vector;
                        Vector3 vector2;
                        TransformHelpers.GetGroundInfo(spawnerLootable_0.vector3_0, out vector, out vector2);
                        if (text == "BoxLoot")
                        {
                            vector.y += 0.35f;
                        }
                        Quaternion     quaternion = Quaternion.Euler(0f, (float)UnityEngine.Random.Range(0, 360), 0f);
                        GameObject     gameObject = NetCull.InstantiateStatic(text, vector, quaternion);
                        LootableObject component  = gameObject.GetComponent <LootableObject>();
                        if (component != null)
                        {
                            component.LootCycle = spawnerLootable_0.List[text].LootCycle;
                            component.lifeTime  = spawnerLootable_0.List[text].LifeTime;
                            component.ResetInvokes();
                        }
                        result = gameObject;
                        return(result);
                    }
                }
                result = spawnerLootable_0.SpawnedObject;
                return(result);
            }
        public static bool LookAtPosition(PlayerClient player, out Vector3 position, [Optional, DefaultParameterValue(100f)] float maxDistance)
        {
            RaycastHit hit;

            position = new Vector3(0f, 0f, 0f);
            Character idMain = player.controllable.idMain;

            if ((idMain != null) && Physics.Raycast(idMain.eyesRay, out hit, maxDistance, -1))
            {
                Vector3 vector;
                TransformHelpers.GetGroundInfo(hit.point, 100f, out position, out vector);
                return(true);
            }
            return(false);
        }
Beispiel #3
0
    public override void ProcessNetworkUpdate(ref Vector3 origin, ref Quaternion rotation)
    {
        Vector3 vector;
        Vector3 vector2;

        TransformHelpers.GetGroundInfo(origin + new Vector3(0f, 0.25f, 0f), 10f, out vector, out vector2);
        Vector3 from = (Vector3)(rotation * Vector3.up);
        float   num  = Vector3.Angle(from, vector2);

        if (num > 20f)
        {
            vector2 = Vector3.Slerp(from, vector2, 20f / num);
        }
        origin   = vector;
        rotation = TransformHelpers.LookRotationForcedUp(rotation, vector2);
    }
Beispiel #4
0
    public override void ProcessNetworkUpdate(ref Vector3 origin, ref Quaternion rotation)
    {
        Vector3 vector3;
        Vector3 vector31;

        TransformHelpers.GetGroundInfo(origin + new Vector3(0f, 0.25f, 0f), 10f, out vector3, out vector31);
        Vector3 vector32 = rotation * Vector3.up;
        float   single   = Vector3.Angle(vector32, vector31);

        if (single > 20f)
        {
            vector31 = Vector3.Slerp(vector32, vector31, 20f / single);
        }
        origin   = vector3;
        rotation = TransformHelpers.LookRotationForcedUp(rotation, vector31);
    }
Beispiel #5
0
    protected void OnClientDeath(ref Vector3 deathPosition, uLink.NetworkViewID attackerNetViewID, ref uLink.NetworkMessageInfo info)
    {
        Vector3 vector;
        Vector3 vector2;

        TransformHelpers.GetGroundInfo(deathPosition + new Vector3(0f, 0.25f, 0f), 10f, out vector, out vector2);
        deathPosition = vector;
        Quaternion rot = TransformHelpers.LookRotationForcedUp((Vector3)(this._myTransform.rotation * Vector3.forward), vector2);

        this._interp.SetGoals(deathPosition, rot, info.timestamp);
        if (attackerNetViewID.isMine)
        {
            this.DoClientDeath();
        }
        else
        {
            InterpTimedEvent.Queue(this, "DEATH", ref info);
        }
    }
        public static bool LookAtPosition(PlayerClient player, out Vector3 position, float maxDistance = 100f)
        {
            position = new Vector3(0f, 0f, 0f);
            Character  idMain = player.controllable.idMain;
            RaycastHit raycastHit;
            bool       result;

            if (idMain != null && Physics.Raycast(idMain.eyesRay, out raycastHit, maxDistance, -1))
            {
                Vector3 vector;
                TransformHelpers.GetGroundInfo(raycastHit.point, 100f, out position, out vector);
                result = true;
            }
            else
            {
                result = false;
            }
            return(result);
        }
Beispiel #7
0
 public static bool GetGroundInfo(Vector3 startPos, out Vector3 pos, out Vector3 normal)
 {
     return(TransformHelpers.GetGroundInfo(startPos, 100f, out pos, out normal));
 }