Inheritance: MonoBehaviour
Example #1
0
    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);
    }
Example #2
0
    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);
        }
    }
Example #4
0
    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();
    }
Example #5
0
    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]);
                }
            }
        }
    }