RiftMayhem/Assets/Scripts/NPC/NPCControllers_v2/DragonAnimatorController.cs

89 lines
2.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DragonAnimatorController : NPCAnimatorControllerBase
{
DragonEnemyNPCController dragonEnemyNPCController;
List<float> flyStyles = new List<float>() { 0f, 0.5f, 1f };
float changeFlyingStyleTimer = 0f;
float timeBetweenFlyStyles = 3f;
protected override void Awake()
{
base.Awake();
dragonEnemyNPCController = (DragonEnemyNPCController)npcController;
}
protected override void Start()
{
if (!photonView.IsMine) return;
base.Start();
changeFlyingStyleTimer = 0f;
}
protected override void Update()
{
if (!photonView.IsMine) return;
base.Update();
if (!dragonEnemyNPCController.IsFlying) return;
changeFlyingStyleTimer += Time.deltaTime;
if (changeFlyingStyleTimer >= timeBetweenFlyStyles)
{
changeFlyingStyleTimer = 0f;
anim.SetFloat("flyStyle", flyStyles[Random.Range(0, flyStyles.Count)]);
}
}
protected override void OnAttackAnimationEvent()
{
base.OnAttackAnimationEvent();
}
protected override void OnDeathAnimationEvent()
{
base.OnDeathAnimationEvent();
}
public void SetFlying(bool isFlying)
{
anim.SetBool("fly", isFlying);
}
public void SetAwake(bool isAwake)
{
anim.SetBool("awake", isAwake);
}
public override void SetTriggerBasedOnAbility(AbilityAnimationType animationType)
{
//Debug.Log("Setting animation trigger = " + animationType);
switch (animationType)
{
case AbilityAnimationType.Throw:
anim.SetTrigger("throw");
break;
case AbilityAnimationType.Spell:
anim.SetTrigger("cast");
break;
case AbilityAnimationType.Melee:
anim.SetTrigger("melee");
break;
case AbilityAnimationType.Jump:
anim.SetTrigger("jump");
break;
default:
break;
}
}
}