using System.Collections; using System.Collections.Generic; using UnityEngine; public class DragonAnimatorController : NPCAnimatorControllerBase { DragonEnemyNPCController dragonEnemyNPCController; List flyStyles = new List() { 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; } } }