protected virtual void AnimateEquipment(IEquipment equipment, IAnimationEvent @event) { Ensure.That(equipment, nameof(equipment)).IsNotNull(); Ensure.That(@event, nameof(@event)).IsNotNull(); var path = @event.Path.ToSeq().Skip(2); if (!path.Any()) { return; } path.Deconstruct(out var command, out var args); switch (@event) { case ValueChangeEvent v when command == AnimationEventKeyMorph: var key = args.HeadOrNone(); var morph = key.Bind(equipment.Morphs.TryGetValue); morph.Iter(m => m.Value = v.Value); break; } }
public void SetEventAnimation(IAnimationEvent animationEvent) { this.animationEvent = animationEvent; }