void UpdateFlyingState()
        {
            Talespire.Log.Indent();
            try
            {
                CreatureBoardAsset owner = OwnerCreature;
                if (Guard.IsNull(owner, "owner"))
                {
                    return;
                }

                float altitude = owner.GetCharacterPosition().Position.y;

                foreach (string memberId in Data.Members)
                {
                    Talespire.Minis.SetFlying(memberId, isFlying);
                }

                if (!isFlying)
                {
                    foreach (string memberId in Data.Members)
                    {
                        Talespire.Log.Debug($"Moving relative...");
                        Talespire.Minis.MoveRelative(memberId, new Vector3(0.01f, 0, 0.01f));
                    }
                }
            }
            finally
            {
                Talespire.Log.Unindent();
            }
        }
            public static CharacterPosition GetPosition(string id)
            {
                CreatureBoardAsset creatureAsset = GetCreatureBoardAsset(id);

                if (creatureAsset == null)
                {
                    return(null);
                }

                return(creatureAsset.GetCharacterPosition());
            }
            public static Vector3 GetHitTargetVector(string id)
            {
                Vector3            vector             = Vector3.zero;
                CreatureBoardAsset creatureBoardAsset = GetCreatureBoardAsset(id);

                if (creatureBoardAsset != null)
                {
                    if (creatureBoardAsset.HookHitTarget != null)
                    {
                        vector = creatureBoardAsset.HookHitTarget.position;
                    }
                    else
                    {
                        vector = creatureBoardAsset.GetCharacterPosition().Position.GetVector3();
                    }
                }
                return(vector);
            }