Skip to content
Snippets Groups Projects
OpponentController.cs 4 KiB
Newer Older
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;

[RequireComponent(typeof(Animator))]
[RequireComponent(typeof(Rigidbody2D))]
[RequireComponent(typeof(StepBackScript))]
[RequireComponent(typeof(CrossOverScript))]
[RequireComponent(typeof(BehindBackScript))]
[RequireComponent(typeof(IAMovementScript))]
[RequireComponent(typeof(RoubarBolaScript))]
[RequireComponent(typeof(BlockScript))]
public class OpponentController : Controller
    private GameManager gameManager;
        inputs = new Inputs();
        canMove = true;
        canSkill = true;
        changeTurn();
    }

    private void setup()
    {
        animatorController = GetComponent<Animator>();
        gameManager = FindObjectOfType<GameManager>();
    }

    private void Update()
    {
        /*
        inputs.steal = UnityEngine.Random.Range(0, 2);
        inputs.crossOver = UnityEngine.Random.Range(0, 2);
    public override void changeTurn()
            GetComponent<StepBackScript>().enabled = true;
            GetComponent<CrossOverScript>().enabled = true;
            GetComponent<BehindBackScript>().enabled = true;
            ForceBarController.shootAction -= block;
            BehindBackScript.action -= steal;
            animatorController.SetTrigger("AtkTurn");
            myTurn = false;
            disableBallCollider();
            StartCoroutine(atkTurn());    
            GetComponent<RoubarBolaScript>().enabled = true;
            GetComponent<IAMovementScript>().enabled = true;
            GetComponent<BlockScript>().enabled = true;
            ForceBarController.shootAction += block;
            BehindBackScript.action += steal;
            animatorController.SetTrigger("DefTurn");
            myTurn = true;
            enableBallCollider();
            StopCoroutine(atkTurn());  

    private IEnumerator atkTurn()
    {
        yield return null;
    }

    public virtual void OnDisable()
    {
        GetComponent<StepBackScript>().enabled = false;
        GetComponent<CrossOverScript>().enabled = false;
        GetComponent<BehindBackScript>().enabled = false;
        GetComponent<RoubarBolaScript>().enabled = false;
        GetComponent<IAMovementScript>().enabled = false;
        GetComponent<BlockScript>().enabled = false;
    private void block()
    {
        //do something
        if (GetComponent<Animation>() != null)
        {
            GetComponent<Animation>().Stop();
        }
        StartCoroutine(new WaitForSecondsRealtime(UnityEngine.Random.Range(0, 1)));
        inputs.block = 1;
    private void steal()
    {
        //do something
        if (GetComponent<Animation>() != null)
        {
            GetComponent<Animation>().Stop();
        }
        //StartCoroutine(new WaitForSecondsRealtime(UnityEngine.Random.Range(0, 1)));
        inputs.steal = UnityEngine.Random.Range(0, 2);
    }

    public void moveToPosition(Transform atkPosition, Transform defPosition)
    {
        if (myTurn)
        {
            rb.MovePosition(atkPosition.position);
        }
        else
        {
            rb.MovePosition(defPosition.position);
        }
    }

    private void disableBallCollider()
    {
        foreach (Transform t in GetComponentInChildren<Transform>())
        {
            if (t.CompareTag("BallCollider"))
            {
                t.GetComponent<BoxCollider2D>().enabled = false;
                return;
            }
        }
    }

    private void enableBallCollider()
    {
        foreach (Transform t in GetComponentInChildren<Transform>())
        {
            if (t.CompareTag("BallCollider"))
            {
                t.GetComponent<BoxCollider2D>().enabled = true;
                return;
            }
        }
    }