protected void RotationOnScene(MoverScript obj) { obj.rotationCenter = Handles.PositionHandle(obj.rotationCenter, Quaternion.identity); if (lockRotationTransform) { Vector3 newPos = new Vector3(radiusDiference.x + obj.rotationCenter.x, radiusDiference.y + obj.rotationCenter.y); obj.transform.position = new Vector3(newPos.x, newPos.y, newPos.z); } else { radiusDiference = obj.transform.position - obj.rotationCenter; } Handles.DrawWireDisc(obj.rotationCenter, Vector3.forward, obj.radius); }
protected void RotationMenu(MoverScript obj) { obj.rotationCenter = EditorGUILayout.Vector2Field("Rotation Center", obj.rotationCenter); lockRotationTransform = EditorGUILayout.Toggle("LOCK", lockRotationTransform); //Raio obj.radius = (obj.transform.position - obj.rotationCenter).magnitude; EditorGUILayout.FloatField("Radius", obj.radius); //Horario/AntiHorario EditorGUILayout.BeginHorizontal(); antiHorario = EditorGUILayout.Toggle("C.Clockwise", antiHorario); horario = !antiHorario; horario = EditorGUILayout.Toggle("Clockwise", horario); antiHorario = !horario; obj.reverse = horario; EditorGUILayout.EndHorizontal(); }
IEnumerator StandOff() { state = BattleState.STANDOFF; playerButtons.SetActive(true); enemyButtons.SetActive(true); for (int i = 0; i < 3; i++) { string player = playerMoves[i]; string enemy = enemyMoves[i]; // Rock => SCcissors => Paper if (player == "Scissors") { if (enemy == "Scissors") { playerMover = playerButtonArray[1].GetComponent <MoverScript>(); enemyMover = enemyButtonArray[1].GetComponent <MoverScript>(); playerMover.MoveToCenter(); enemyMover.MoveToCenter(); playerMover.SpinOn(); enemyMover.SpinOn(); yield return(new WaitForSeconds(0.5f)); // stop spinning playerMover.SpinOff(); enemyMover.SpinOff(); yield return(new WaitForSeconds(1f)); // halt playerMover.Grow(); enemyMover.Grow(); yield return(new WaitForSeconds(1f)); // halt playerMover.Shrink(); enemyMover.Shrink(); yield return(new WaitForSeconds(1f)); // pause before moving playerMover.SpinOn(); enemyMover.SpinOn(); playerMover.MoveToOrigin(); enemyMover.MoveToOrigin(); yield return(new WaitForSeconds(0.5f)); playerMover.SpinOff(); enemyMover.SpinOff(); yield return(new WaitForSeconds(0.5f)); // insert animation here playerSlash.SetActive(true); enemySlash.SetActive(true); yield return(new WaitForSeconds(0.5f)); // insert animation here playerSlash.SetActive(false); enemySlash.SetActive(false); FindObjectOfType <AudioManager>().Play("Critical"); BothDamage(50); } else if (enemy == "Rock") { playerMover = playerButtonArray[1].GetComponent <MoverScript>(); enemyMover = enemyButtonArray[0].GetComponent <MoverScript>(); playerMover.MoveToCenter(); enemyMover.MoveToCenter(); playerMover.SpinOn(); // on spin enemyMover.SpinOn(); yield return(new WaitForSeconds(0.5f)); playerMover.SpinOff(); // turn off spin enemyMover.SpinOff(); yield return(new WaitForSeconds(1f)); enemyMover.Grow(); yield return(new WaitForSeconds(1f)); enemyMover.Shrink(); enemyMover.SpinOn(); // turn on spin playerMover.SpinOn(); yield return(new WaitForSeconds(1f)); playerMover.MoveToOrigin(); enemyMover.MoveToOrigin(); yield return(new WaitForSeconds(0.5f)); playerMover.SpinOff(); enemyMover.SpinOff(); yield return(new WaitForSeconds(0.5f)); playerSlash.SetActive(true); yield return(new WaitForSeconds(0.5f)); playerSlash.SetActive(false); FindObjectOfType <AudioManager>().Play("Critical"); FullDamage(playerHero, enemyHero.GetDamage()); } else if (enemy == "Paper") { playerMover = playerButtonArray[1].GetComponent <MoverScript>(); enemyMover = enemyButtonArray[2].GetComponent <MoverScript>(); playerMover.MoveToCenter(); enemyMover.MoveToCenter(); playerMover.SpinOn(); enemyMover.SpinOn(); yield return(new WaitForSeconds(0.5f)); playerMover.SpinOff(); enemyMover.SpinOff(); yield return(new WaitForSeconds(1f)); playerMover.Grow(); yield return(new WaitForSeconds(1f)); playerMover.Shrink(); playerMover.SpinOn(); enemyMover.SpinOn(); yield return(new WaitForSeconds(1f)); playerMover.MoveToOrigin(); enemyMover.MoveToOrigin(); yield return(new WaitForSeconds(0.5f)); playerMover.SpinOff(); enemyMover.SpinOff(); yield return(new WaitForSeconds(0.5f)); enemySlash.SetActive(true); yield return(new WaitForSeconds(0.5f)); enemySlash.SetActive(false); FindObjectOfType <AudioManager>().Play("Critical"); FullDamage(enemyHero, playerHero.GetDamage()); } } else if (player == "Rock") { playerMover = playerButtonArray[0].GetComponent <MoverScript>(); if (enemy == "Scissors") { playerMover = playerButtonArray[0].GetComponent <MoverScript>(); enemyMover = enemyButtonArray[1].GetComponent <MoverScript>(); playerMover.MoveToCenter(); enemyMover.MoveToCenter(); playerMover.SpinOn(); enemyMover.SpinOn(); yield return(new WaitForSeconds(0.5f)); playerMover.SpinOff(); enemyMover.SpinOff(); yield return(new WaitForSeconds(1f)); playerMover.Grow(); yield return(new WaitForSeconds(1f)); playerMover.Shrink(); yield return(new WaitForSeconds(1f)); playerMover.SpinOn(); enemyMover.SpinOn(); playerMover.MoveToOrigin(); enemyMover.MoveToOrigin(); yield return(new WaitForSeconds(0.5f)); playerMover.SpinOff(); enemyMover.SpinOff(); yield return(new WaitForSeconds(0.5f)); enemySlash.SetActive(true); yield return(new WaitForSeconds(0.5f)); enemySlash.SetActive(false); FindObjectOfType <AudioManager>().Play("Critical"); FullDamage(enemyHero, playerHero.GetDamage()); } else if (enemy == "Rock") { playerMover = playerButtonArray[0].GetComponent <MoverScript>(); enemyMover = enemyButtonArray[0].GetComponent <MoverScript>(); playerMover.MoveToCenter(); enemyMover.MoveToCenter(); playerMover.SpinOn(); enemyMover.SpinOn(); yield return(new WaitForSeconds(0.5f)); playerMover.SpinOff(); enemyMover.SpinOff(); yield return(new WaitForSeconds(1f)); // halt playerMover.Grow(); enemyMover.Grow(); yield return(new WaitForSeconds(1f)); // halt playerMover.Shrink(); enemyMover.Shrink(); yield return(new WaitForSeconds(1f)); // pause before moving playerMover.SpinOn(); enemyMover.SpinOn(); playerMover.MoveToOrigin(); enemyMover.MoveToOrigin(); yield return(new WaitForSeconds(0.5f)); playerMover.SpinOff(); enemyMover.SpinOff(); yield return(new WaitForSeconds(0.5f)); print("DRAW"); } else if (enemy == "Paper") { playerMover = playerButtonArray[0].GetComponent <MoverScript>(); enemyMover = enemyButtonArray[2].GetComponent <MoverScript>(); playerMover.MoveToCenter(); enemyMover.MoveToCenter(); playerMover.SpinOn(); enemyMover.SpinOn(); yield return(new WaitForSeconds(0.5f)); playerMover.SpinOff(); enemyMover.SpinOff(); yield return(new WaitForSeconds(1f)); // halt enemyMover.Grow(); yield return(new WaitForSeconds(1f)); // halt enemyMover.Shrink(); yield return(new WaitForSeconds(1f)); // pause before moving playerMover.SpinOn(); enemyMover.SpinOn(); playerMover.MoveToOrigin(); enemyMover.MoveToOrigin(); yield return(new WaitForSeconds(0.5f)); playerMover.SpinOff(); enemyMover.SpinOff(); yield return(new WaitForSeconds(0.5f)); playerSlash.SetActive(true); yield return(new WaitForSeconds(0.5f)); playerSlash.SetActive(false); FindObjectOfType <AudioManager>().Play("Critical"); FullDamage(playerHero, enemyHero.GetDamage()); } } else if (player == "Paper") { playerMover = playerButtonArray[2].GetComponent <MoverScript>(); if (enemy == "Scissors") { playerMover = playerButtonArray[2].GetComponent <MoverScript>(); enemyMover = enemyButtonArray[1].GetComponent <MoverScript>(); playerMover.MoveToCenter(); enemyMover.MoveToCenter(); playerMover.SpinOn(); enemyMover.SpinOn(); yield return(new WaitForSeconds(0.5f)); playerMover.SpinOff(); enemyMover.SpinOff(); yield return(new WaitForSeconds(1f)); // halt enemyMover.Grow(); yield return(new WaitForSeconds(1f)); // halt enemyMover.Shrink(); yield return(new WaitForSeconds(1f)); // pause before moving playerMover.SpinOn(); enemyMover.SpinOn(); playerMover.MoveToOrigin(); enemyMover.MoveToOrigin(); yield return(new WaitForSeconds(0.5f)); playerMover.SpinOff(); enemyMover.SpinOff(); yield return(new WaitForSeconds(0.5f)); playerSlash.SetActive(true); yield return(new WaitForSeconds(0.5f)); playerSlash.SetActive(false); FindObjectOfType <AudioManager>().Play("Critical"); FullDamage(playerHero, enemyHero.GetDamage()); } else if (enemy == "Rock") { playerMover = playerButtonArray[2].GetComponent <MoverScript>(); enemyMover = enemyButtonArray[0].GetComponent <MoverScript>(); enemyMover.MoveToCenter(); playerMover.MoveToCenter(); playerMover.SpinOn(); enemyMover.SpinOn(); yield return(new WaitForSeconds(0.5f)); playerMover.SpinOff(); enemyMover.SpinOff(); yield return(new WaitForSeconds(1f)); playerMover.Grow(); yield return(new WaitForSeconds(1f)); playerMover.Shrink(); yield return(new WaitForSeconds(1f)); playerMover.SpinOn(); enemyMover.SpinOn(); playerMover.MoveToOrigin(); enemyMover.MoveToOrigin(); yield return(new WaitForSeconds(0.5f)); playerMover.SpinOff(); enemyMover.SpinOff(); yield return(new WaitForSeconds(0.5f)); enemySlash.SetActive(true); yield return(new WaitForSeconds(0.5f)); enemySlash.SetActive(false); FindObjectOfType <AudioManager>().Play("Critical"); FullDamage(enemyHero, playerHero.GetDamage()); } else if (enemy == "Paper") { playerMover = playerButtonArray[2].GetComponent <MoverScript>(); enemyMover = enemyButtonArray[2].GetComponent <MoverScript>(); playerMover.MoveToCenter(); enemyMover.MoveToCenter(); playerMover.SpinOn(); enemyMover.SpinOn(); yield return(new WaitForSeconds(0.5f)); playerMover.SpinOff(); enemyMover.SpinOff(); yield return(new WaitForSeconds(1f)); // halt playerMover.Grow(); enemyMover.Grow(); yield return(new WaitForSeconds(1f)); // halt playerMover.Shrink(); enemyMover.Shrink(); yield return(new WaitForSeconds(1f)); // pause before moving playerMover.SpinOn(); enemyMover.SpinOn(); playerMover.MoveToOrigin(); enemyMover.MoveToOrigin(); yield return(new WaitForSeconds(0.5f)); playerMover.SpinOff(); enemyMover.SpinOff(); yield return(new WaitForSeconds(0.5f)); print("DRAW"); } } // UPDATE HUD print($"{player} VS {enemy}"); yield return(new WaitForSeconds(0.4f)); playerHUD.SetHP(playerHero.currentHealth); enemyHUD.SetHP(enemyHero.currentHealth); // Check if there is a winner if (playerHero.currentHealth <= 0) { StartCoroutine(AnnounceResult(BattleState.LOST, "YOU LOSE!")); battleAnim.PlayKO(); enemyHUD.addRoundWon(); break; } else if (enemyHero.currentHealth <= 0) { StartCoroutine(AnnounceResult(BattleState.WON, "YOU WIN!")); battleAnim.PlayKO(); playerHUD.addRoundWon(); break; } // Change State to Player TURN } if (state != BattleState.WON || state != BattleState.LOST) { state = BattleState.PLAYERTURN; playerButtons.SetActive(true); enemyButtons.SetActive(false); } }
protected void OnceMenu(MoverScript obj) { string butonText; //Incia listas if (obj.points == null) { obj.points = new List <Vector3>(); obj.points.Add(obj.transform.position); } if (lockCycleTransforms == null || lockCycleTransforms.Count < obj.points.Count) { if (lockCycleTransforms == null) { lockCycleTransforms = new List <bool>(); } for (int i = 0; i < obj.points.Count; i++) { lockCycleTransforms.Add(false); } } if (transformsDiference == null || transformsDiference.Count < obj.points.Count) { if (transformsDiference == null) { transformsDiference = new List <Vector3>(); } for (int i = 0; i < obj.points.Count; i++) { transformsDiference.Add(obj.transform.position - obj.points[i]); } } EditorGUILayout.BeginVertical(); for (int i = 0; i < obj.points.Count; i++) { EditorGUILayout.BeginHorizontal("Box"); EditorGUILayout.BeginHorizontal(); lockCycleTransforms[i] = EditorGUILayout.Toggle(lockCycleTransforms[i], GUILayout.Width(20)); EditorGUILayout.TextField(i.ToString(), GUILayout.MaxWidth(20)); obj.points[i] = EditorGUILayout.Vector2Field("", obj.points[i]); EditorGUILayout.EndHorizontal(); if (obj.targetN == i) { butonText = "(T)"; } else { butonText = "( )"; } if (GUILayout.Button(butonText, GUILayout.Width(20))) { obj.targetN = i; } if (GUILayout.Button("X", GUILayout.Width(10), GUILayout.Height(10))) { obj.points.RemoveAt(i); transformsDiference.RemoveAt(i); lockCycleTransforms.RemoveAt(i); } EditorGUILayout.EndHorizontal(); } if (GUILayout.Button("Add Point")) { obj.points.Add(obj.transform.position); lockCycleTransforms.Add(false); transformsDiference.Add(Vector3.zero); } EditorGUILayout.EndVertical(); }
protected void CycleOnScene(MoverScript obj) { if (obj.points == null) { obj.points = new List <Vector3>(); obj.points.Add(obj.transform.position); } if (lockCycleTransforms == null || lockCycleTransforms.Count < obj.points.Count) { if (lockCycleTransforms == null) { lockCycleTransforms = new List <bool>(); } for (int i = 0; i < obj.points.Count; i++) { lockCycleTransforms.Add(false); } } if (transformsDiference == null || transformsDiference.Count < obj.points.Count) { if (transformsDiference == null) { transformsDiference = new List <Vector3>(); } for (int i = 0; i < obj.points.Count; i++) { transformsDiference.Add(obj.transform.position - obj.points[i]); } } for (int i = 0; i < obj.points.Count; i++) { obj.points[i] = Handles.PositionHandle(obj.points[i], Quaternion.identity); var labelStyle = new GUIStyle(); labelStyle.fontSize = 18; if (obj.targetN == i) { labelStyle.fontSize = 25; labelStyle.fontStyle = FontStyle.BoldAndItalic; } //Numera as handles Handles.Label(obj.points[i], i.ToString(), labelStyle); //Lock if (lockCycleTransforms[i]) { obj.points[i] = obj.transform.position - transformsDiference[i]; } else { transformsDiference[i] = obj.transform.position - obj.points[i]; } //Desenha linha if (lines) { if (i == obj.points.Count - 1) { Handles.DrawLine(obj.points[i], obj.points[0]); } else { Handles.DrawLine(obj.points[i], obj.points[i + 1]); } } } }