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))]
public class OpponentController : Controller
{
private float offsetDistance;
private Rigidbody2D rb;
void Start()
{
setup();
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);
}
}