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))] public class OpponentController : Controller { private float offsetDistance; private Rigidbody2D rb; private GameManager gameManager; void Start() { setup(); inputs = new Inputs(); currentHand = 1; myTurn = false; canMove = true; canSkill = true; changeTurn(); } private void setup() { animatorController = GetComponent<Animator>(); rb = GetComponent<Rigidbody2D>(); gameManager = FindObjectOfType<GameManager>(); } private void Update() { /* inputs.steal = UnityEngine.Random.Range(0, 2); inputs.crossOver = UnityEngine.Random.Range(0, 2); */ } public override void changeTurn() { if (myTurn) { GetComponent<StepBackScript>().enabled = true; GetComponent<CrossOverScript>().enabled = true; GetComponent<BehindBackScript>().enabled = true; animatorController.SetTrigger("AtkTurn"); myTurn = false; StopCoroutine("defTurn"); StartCoroutine("atkTurn"); } else { GetComponent<RoubarBolaScript>().enabled = true; GetComponent<IAMovementScript>().enabled = true; animatorController.SetTrigger("DefTurn"); myTurn = true; StopCoroutine("atkTurn"); StartCoroutine("defTurn"); } //do something } private IEnumerator atkTurn() { yield return null; } private IEnumerator defTurn() { while (true) { if (rb.velocity == Vector2.zero) { inputs.steal = UnityEngine.Random.Range(0, 5); } 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; animatorController.SetTrigger("Idle"); } public void moveToPosition(Transform atkPosition, Transform defPosition) { if (myTurn) { rb.MovePosition(atkPosition.position); } else { rb.MovePosition(defPosition.position); } } }