/// <summary> /// Resolves the event and returns an AnimEventHandle. /// </summary> public AnimEventHandle ResolveOn(AnimEvent animEvent, BattlerPuppet battlerPuppet) { int hash = animsHashes[Random.Range(0, animsHashes.Length)]; battlerPuppet.animator.Play(hash); return(new AnimEventHandle(animEvent, battlerPuppet, hash)); }
/// <summary> /// Dispatch the given anim event to the BattlerPuppet. /// </summary> public AnimEventHandle DispatchAnimEvent(AnimEvent animEvent, BattlerPuppet puppet) { if (animEventResolverTable.ContainsKey(animEvent.animEventType)) { return(animEventResolverTable[animEvent.animEventType].ResolveOn(animEvent, puppet)); } else if (animEventResolverTable.ContainsKey(animEvent.fallbackType)) { return(animEventResolverTable[animEvent.fallbackType].ResolveOn(animEvent, puppet)); } else if ((animEvent.flags & AnimEvent.Flags.IsMandatory) == AnimEvent.Flags.IsMandatory) { Util.Crash(puppet.gameObject.name + " failed to resolve mandatory AnimEvent of type " + animEvent.animEventType + " and fallback type " + animEvent.fallbackType); } return(null); }