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 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;
ForceBarController.shootAction -= block;
animatorController.SetTrigger("AtkTurn");
myTurn = false;
StopCoroutine("defTurn");
StartCoroutine("atkTurn");
}
else
{
GetComponent<RoubarBolaScript>().enabled = true;
GetComponent<IAMovementScript>().enabled = true;
GetComponent<BlockScript>().enabled = true;
ForceBarController.shootAction += block;
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;
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;
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;
}
}
}