Example #1
0
    // Update is called once per frame
    void Update()
    {
        if (state == RobotState.Idle)
        {
            //Check for action commands
            if (Input.GetButtonDown("Dodge" + robotNumber.ToString()))
            {
                state    = RobotState.Dodging;
                lockTime = 1f;
                TriggerAnimation();
                audioSource.PlayOneShot(dodgeSounds[Random.Range(0, dodgeSounds.Length)]);
            }
            else if (Input.GetButtonDown("Punch" + robotNumber.ToString()))
            {
                //Debug.Log("Punch" + robotNumber.ToString());
                state    = RobotState.Punching;
                lockTime = 1f;
                punchBox.SetActive(true);
                TriggerAnimation();
            }
            else if (Input.GetButtonDown("Flair" + robotNumber.ToString()))
            {
                state    = RobotState.Posing;
                lockTime = 1f;
                TriggerAnimation();
            }
            else if (Input.GetButtonDown("Shoot" + robotNumber.ToString()))
            {
                state    = RobotState.Shooting;
                lockTime = 1f;
                TriggerAnimation();
                GameObject tempBullet = Instantiate(bullet, bulletSpawnPoint.position, new Quaternion());
                tempBullet.GetComponent <Bullet>().SetOwner(robotNumber);
            }
            else if (Input.GetButtonDown("Reflect" + robotNumber.ToString()))
            {
                state    = RobotState.Reflecting;
                lockTime = 1f;
                TriggerAnimation();
            }
            else if (Input.GetButtonDown("Charge" + robotNumber.ToString()))
            {
                state = RobotState.Charging;
                TriggerAnimation();
            }
            else
            {
                float deltaX = Input.GetAxis("Horizontal" + robotNumber.ToString());
                if (deltaX != 0f)
                {
                    xpos  = pos.position.x;
                    xpos += Input.GetAxis("Horizontal" + robotNumber.ToString()) * Time.deltaTime * speed;

                    float enemyPos = opponent.GetPosition();

                    if (robotNumber == 1)
                    {
                        if (xpos + 4f > enemyPos)
                        {
                            xpos = enemyPos - 4f;
                        }
                        else if (xpos < -14f)
                        {
                            xpos = -14f;
                        }
                    }
                    else
                    {
                        if (xpos - 4f < enemyPos)
                        {
                            xpos = enemyPos + 4f;
                        }
                        else if (xpos > 14f)
                        {
                            xpos = 14f;
                        }
                    }

                    pos.position = new Vector3(xpos, pos.position.y, pos.position.z);
                    if (deltaX > 0)
                    {
                        //Move one way
                    }
                    else
                    {
                        //Move the other way
                    }
                }
                else
                {
                    //Idle
                }
            }
        }
        else if (state == RobotState.Charging)
        {
            if (Input.GetButtonDown("Charge" + robotNumber.ToString()))
            {
                state = RobotState.Idle;
                TriggerAnimation();
            }
        }
        else
        {
            lockTime -= Time.deltaTime;
            if (lockTime <= 0f)
            {
                state = RobotState.Idle;
                punchBox.SetActive(false);
                TriggerAnimation();
            }
        }
    }