private IEnumerator doRedmanOnCliff(Transform pos) { GameObject red = UnityEngine.Object.Instantiate <GameObject>((GameObject)Resources.Load("CutScene/redman_cutscene_prefab"), pos.position, pos.rotation); redmanSetup setup = red.GetComponent <redmanSetup>(); red.transform.localScale = new Vector3(1.15f, 1.15f, 1.15f); this.animator = red.GetComponent <Animator>(); setup.alignHeightToTerrain = true; setup.useIk = true; this.animator.SetBool("caveWalk3", true); this.leaveTime = Time.time; for (;;) { Vector3 playerPos = pos.InverseTransformPoint(LocalPlayer.Transform.position); float angle = Mathf.Atan2(playerPos.x, playerPos.z) * 57.29578f; float dist = Vector3.Distance(LocalPlayer.Transform.position, pos.position); if (dist < 90f || dist > 250f || angle > 70f || angle < -70f || Time.time > this.leaveTime + 40f) { break; } yield return(YieldPresets.WaitOneSecond); } this.animator.SetBool("toRun", true); base.StartCoroutine(this.removeRedman(red, 3f)); yield break; yield break; }
private IEnumerator doCave2Spawn() { if (this.doneCave2) { yield break; } while (Clock.planecrash) { yield return(null); } yield return(YieldPresets.WaitTwentySeconds); for (;;) { while (Clock.Day != this.canSeeRedDay) { yield return(null); } Vector3 playerPos = this.caveSpawn2.transform.InverseTransformPoint(LocalPlayer.Transform.position); float angle = Mathf.Atan2(playerPos.x, playerPos.z) * 57.29578f; float dist = Vector3.Distance(LocalPlayer.Transform.position, this.caveSpawn2.transform.position); if (dist < 160f && dist > 100f && angle < 60f && angle > -60f && !this.doneCave2) { this.redMan = UnityEngine.Object.Instantiate <GameObject>((GameObject)Resources.Load("CutScene/redman_cutscene_prefab"), this.caveSpawn2.transform.position, this.caveSpawn2.transform.rotation); redmanSetup component = this.redMan.GetComponent <redmanSetup>(); this.redMan.transform.localScale = new Vector3(1.15f, 1.15f, 1.15f); this.animator = this.redMan.GetComponent <Animator>(); this.animator.SetBool("caveWalk2", true); this.leaveTime = Time.time; this.doneCave2 = true; } if (this.doneCave2 && (dist < 110f || dist > 200f || angle > 70f || angle < -70f || Time.time > this.leaveTime + 60f)) { break; } yield return(YieldPresets.WaitTwoSeconds); yield return(YieldPresets.WaitPointOneSeconds); } this.animator.SetBool("toWalk", true); base.StartCoroutine(this.removeRedman(this.redMan, 10f)); yield break; yield break; }
private IEnumerator doYachtSpawn() { if (this.doneYacht) { yield break; } while (Clock.planecrash) { yield return(null); } yield return(YieldPresets.WaitTwentySeconds); while (LocalPlayer.Transform) { while (Clock.Day != this.canSeeRedDay) { yield return(null); } Vector3 playerPos = this.yachtSpawn.transform.InverseTransformPoint(LocalPlayer.Transform.position); float playerAngle = Mathf.Atan2(playerPos.x, playerPos.z) * 57.29578f; float dist = Vector3.Distance(LocalPlayer.Transform.position, this.yachtSpawn.transform.position); if (dist < 390f && dist > 150f && !this.doneYacht) { this.redMan = UnityEngine.Object.Instantiate <GameObject>((GameObject)Resources.Load("CutScene/redman_cutscene_prefab"), this.yachtSpawn.transform.position, this.yachtSpawn.transform.rotation); this.redMan.transform.parent = this.yachtSpawn.transform; redmanSetup component = this.redMan.GetComponent <redmanSetup>(); this.animator = this.redMan.GetComponent <Animator>(); this.animator.SetBool("yachtScene", true); component.useIk = true; this.leaveTime = Time.time; this.doneYacht = true; } if (this.doneYacht && (dist < 145f || dist > 440f || Time.time > this.leaveTime + 100f)) { this.animator.SetBool("yachtSceneLeave", true); base.StartCoroutine(this.removeRedman(this.redMan, 10f)); yield break; } yield return(YieldPresets.WaitTwoSeconds); } yield break; yield break; }