void OnTriggerEnter2D(Collider2D collider) { //I want the character to float to line up with the moon //once the character is in the center of the moon they explode //1) Disable top hitbox //2) Line up moon x-coordinate with character x-coordinate. Or look into smoothstepping (Vector2.MoveTowards) //3) When character gets close enough to the moon they explode exploded = true; skeletonToExplode = collider.transform.parent.GetComponent<SkeletonRagdoll2D>(); StartCoroutine(Explode()); }
void Start () { ragdoll = GetComponent<SkeletonRagdoll2D>(); naturalCollider = GetComponent<Collider2D>(); }
void Start() { ragdoll = GetComponent <SkeletonRagdoll2D>(); naturalCollider = GetComponent <Collider2D>(); }
void Update() { if (currentGameState == CurrentGameState.Playing) { } else if (currentGameState == CurrentGameState.DelayBeforeWin) { elapsedTime += Time.deltaTime; if (elapsedTime >= timeUntilPersonLoses) { volcanoParticles.Play(); currentGameState = CurrentGameState.SomeoneWins; if (bothPlayersLost) { winText.text = "Nobody Wins..."; if (SoundManager.instance != null) { Debug.Log("Tried to play boo"); if (!SoundManager.instance.sfxSource.isPlaying) { SoundManager.instance.PlaySound("Boo"); } } } else if (playerThatLost == "Player1") { winText.text = "Player 2 Wins!"; winningPlayerSkeleton = Player2.GetComponent<SkeletonRagdoll2D>(); winningPlayerRigidBody = winningPlayerSkeleton.GetRigidbody("Torso"); winningPlayerParticles = Player2.GetComponentInChildren<ParticleSystem>(); winningPlayerParticles.Play(); ExplosionCollider.transform.position = new Vector3(winningPlayerRigidBody.transform.position.x, ExplosionCollider.transform.position.y, ExplosionCollider.transform.position.z); Moon.transform.position = ExplosionCollider.transform.position; TopHitBox.gameObject.SetActive(false); Destroy(GetComponent<BoxCollider2D>()); } else if (playerThatLost == "Player2") { winText.text = "Player 1 Wins!"; winningPlayerSkeleton = Player1.GetComponent<SkeletonRagdoll2D>(); winningPlayerRigidBody = winningPlayerSkeleton.GetRigidbody("Torso"); winningPlayerParticles = Player1.GetComponentInChildren<ParticleSystem>(); winningPlayerParticles.Play(); ExplosionCollider.transform.position = new Vector3(winningPlayerRigidBody.transform.position.x, ExplosionCollider.transform.position.y, ExplosionCollider.transform.position.z); Moon.transform.position = ExplosionCollider.transform.position; TopHitBox.gameObject.SetActive(false); Destroy(GetComponent<BoxCollider2D>()); } winControlText.gameObject.SetActive(true); elapsedTime = 0; } } else if (currentGameState == CurrentGameState.SomeoneWins) { elapsedTime += Time.deltaTime; if (elapsedTime >= timePerFlash) { elapsedTime = 0; winText.gameObject.SetActive(!winText.gameObject.activeSelf); } if (!bothPlayersLost) { winningPlayerParticles.transform.position = winningPlayerRigidBody.transform.position; winningPlayerRigidBody.velocity = new Vector2(0, floatingForce); if (DEBUG) { Debug.Log("Winning player is being lifted"); } if (Camera.main.transform.position.y < winningPlayerRigidBody.position.y && Camera.main.transform.position.y < ExplosionCollider.transform.position.y) { Camera.main.transform.position = new Vector3(Camera.main.transform.position.x, winningPlayerRigidBody.position.y, Camera.main.transform.position.z); } else if (Camera.main.transform.position.y > ExplosionCollider.transform.position.y) { winningPlayerParticles.Stop(); floatingForce = 0; } } else { if (Input.GetButton("B1") || Input.GetKeyDown(KeyCode.B)) { SceneManager.LoadScene("TeamSelect"); } else if (Input.GetButton("A1") || Input.GetKeyDown(KeyCode.A)) { SceneManager.LoadScene("Game"); } } } }
void Start () { a = new GameObject(); SpriteRenderer Arender = a.AddComponent<SpriteRenderer>(); Arender.sprite = ATexture; Arender.sortingOrder = 100; a.transform.parent = transform; b = new GameObject(); SpriteRenderer Brender = b.AddComponent<SpriteRenderer>(); Brender.sprite = BTexture; Brender.sortingOrder = 100; b.transform.parent = transform; x = new GameObject(); SpriteRenderer Xrender = x.AddComponent<SpriteRenderer>(); Xrender.sprite = XTexture; Xrender.sortingOrder = 100; x.transform.parent = transform; y = new GameObject(); SpriteRenderer Yrender = y.AddComponent<SpriteRenderer>(); Yrender.sprite = YTexture; Yrender.sortingOrder = 100; y.transform.parent = transform; staminaBarScript = StaminaBar.GetComponent<StaminaBarScript>(); ragdoll = GetComponent<SkeletonRagdoll2D>(); ragdoll.Apply(); torso = ragdoll.GetRigidbody("Torso"); leftFoot = ragdoll.GetRigidbody("LeftFoot"); leftHand = ragdoll.GetRigidbody("LeftHand"); rightFoot = ragdoll.GetRigidbody("RightFoot"); rightHand = ragdoll.GetRigidbody("RightHand"); hip = ragdoll.GetRigidbody("Hip"); ragdoll.joints["LeftUpperArm"].limits = new JointAngleLimits2D() { min = -90, max = 90 }; ragdoll.joints["RightUpperArm"].limits = new JointAngleLimits2D() { min = -90, max = 90 }; ragdoll.joints["LeftLowerArm"].limits = new JointAngleLimits2D() { min = -100, max = 100 }; ragdoll.joints["RightLowerArm"].limits = new JointAngleLimits2D() { min = -100, max = 100 }; ragdoll.joints["LeftHand"].limits = new JointAngleLimits2D() { min = -30, max = 30 }; ragdoll.joints["RightHand"].limits = new JointAngleLimits2D() { min = -30, max = 30 }; ragdoll.joints["LeftShin"].limits = new JointAngleLimits2D() { min = -10, max = 10 }; ragdoll.joints["RightShin"].limits = new JointAngleLimits2D() { min = -10, max = 10 }; ragdoll.joints["LeftFoot"].limits = new JointAngleLimits2D() { min = -10, max = 10 }; ragdoll.joints["RightFoot"].limits = new JointAngleLimits2D() { min = -10, max = 10 }; }