public static void ShowDamage(string creatureId, int damageAmount, string bloodColor, float rotationOffset = 0)
            {
                CreatureBoardAsset creatureAsset = GetCreatureBoardAsset(creatureId);

                if (creatureAsset == null)
                {
                    Log.Error($"ShowDamage - creatureId {creatureId} not found.");
                    return;
                }

                if (damageAmount > 30)
                {
                    ShowDamage(creatureId, damageAmount - 30, bloodColor, random.NextInt(60) - 30);
                    damageAmount = 30;
                }

                float scale = 0.65f * creatureAsset.CreatureScale;                  // 0.5, 1, 2, 3, 4

                string prefabName;
                float  scaleMultiplier;

                if (damageAmount < 15)
                {
                    prefabName      = GetRandomSmallBloodPrefab();
                    scaleMultiplier = 1;
                }
                else
                {
                    prefabName      = GetRandomLargeBloodPrefab();
                    scaleMultiplier = 1 + damageAmount / 70f;
                }

                Log.Debug($"prefabName = \"{prefabName}\"");
                GameObject bloodPrefab = Prefabs.Get(prefabName);

                if (bloodPrefab == null)
                {
                    Log.Error($"Prefab \"{prefabName}\" not found!");
                    bloodPrefab = Prefabs.Get("Blood4");
                }

                // TODO: Change the blood color... bloodColor

                scale *= scaleMultiplier;

                float groundHeight = creatureAsset.GetGroundHeight();

                //Log.Debug($"groundHeight = {groundHeight}");

                GameObject bloodEffect = UnityEngine.Object.Instantiate(bloodPrefab, creatureAsset.HookHitTarget.position, creatureAsset.HookHitTarget.rotation);

                Property.ModifyFloat(bloodEffect, null, "<BFX_BloodSettings>.GroundHeight", groundHeight);
                ChangeBloodEffectColor(bloodEffect, bloodColor);
                bloodEffect.transform.Rotate(Vector3.up, 180 + rotationOffset);
                bloodEffect.transform.localScale = new Vector3(scale, scale, scale);

                Instances.AddTemporal(bloodEffect, 16);
            }