89 lines
2.1 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|