Newer
Older
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Animator))]
[RequireComponent(typeof(PlayerController))]
[RequireComponent(typeof(Rigidbody2D))]
public class CrossOverScript : MonoBehaviour
{
private Animator animatorController;
private PlayerController playerController;
private Rigidbody2D rb;
private bool isActive;
[SerializeField] float speedModifier;
// Use this for initialization
void Start ()
{
playerController = GetComponentInParent<PlayerController>();
animatorController = GetComponent<Animator>();
rb = GetComponent<Rigidbody2D>();
CrossOverBehaviour.action += updateState;
isActive = false;
}
// Update is called once per frame
private void Update()
{
if (playerController.isMyturn() && !playerController.isSkillUsing() && Input.GetKeyDown(playerController.controlType.getCrossOverInput()))
{
activateSkill("crossOver");
}
}
private IEnumerator crossOver()
{
playerController.updateMovementLockStates();
animatorController.SetTrigger("CrossOver");
while(isActive)
{
rb.velocity = new Vector2(-1, playerController.currentHand) * playerController.getSpeed() * speedModifier;
yield return null;
}
playerController.updateMovementLockStates();
}
private void activateSkill(string method)
{
StopCoroutine("move");
StartCoroutine(method);
}
private void updateState()
{
isActive = isActive == true? false : true;
}