Exemple #1
0
        internal override void Export(string table)
        {
            base.Export(table);

            table = GetType().Name;

            var vals = new List <object>
            {
                Id,
                HfId.DBExport(),
                HfId_Slayer.DBExport(),
                SlayerRace.DBExport(),
                SlayerCaste.DBExport(HistoricalFigure.Castes),
                ArtifiactId_SlayerItem.DBExport(),
                ArtifactId_SlayerShooterItem.DBExport(),
                Cause.DBExport(Causes),
                SiteId.DBExport(),
                SubregionId.DBExport(),
                FeatureLayerId.DBExport(),
                ItemID.DBExport(),
                ArtifactId.DBExport(),
                ItemType.DBExport(Item.ItemTypes),
                ItemSubType.DBExport(Item.ItemSubTypes),
                Mat.DBExport(Item.Materials),
                BowItem.DBExport(),
                BowArtifactId.DBExport(),
                BowItemType.DBExport(Item.ItemTypes),
                BowItemSubType.DBExport(Item.ItemSubTypes),
                BowMat.DBExport(Item.Materials)
            };

            Database.ExportWorldItem(table, vals);
        }
Exemple #2
0
        internal override void Export(string table)
        {
            base.Export(table);


            table = GetType().Name;



            var vals = new List <object> {
                ID, HFID, SlayerHFID, SlayerRace == null ? (object)DBNull.Value : SlayerRace.ToString(), HistoricalFigure.Castes[SlayerCaste], SlayerItemID, SlayerShooterItemID, Causes[Cause], SiteID, SubregionID, FeatureLayerID
            };


            Database.ExportWorldItem(table, vals);
        }
Exemple #3
0
        private string GetDeathString(bool link = true, DwarfObject pov = null)
        {
            string eventString = "";

            eventString += HistoricalFigure.ToLink(link, pov, this) + " ";
            string deathString = "";

            if (Slayer != null || SlayerRace != "UNKNOWN" && SlayerRace != "-1")
            {
                string slayerString;
                if (Slayer == null)
                {
                    slayerString = " a " + SlayerRace.ToLower();
                }
                else
                {
                    slayerString = Slayer.ToLink(link, pov, this);
                }

                switch (Cause)
                {
                case DeathCause.DragonsFire:
                    deathString = "burned up in " + slayerString + "'s dragon fire";
                    break;

                case DeathCause.Burned:
                    deathString = "was burned to death by " + slayerString + "'s fire";
                    break;

                case DeathCause.Murdered:
                    deathString = "was murdered by " + slayerString;
                    break;

                case DeathCause.Shot:
                    deathString = "was shot and killed by " + slayerString;
                    break;

                case DeathCause.Struck:
                    deathString = "was struck down by " + slayerString;
                    break;

                case DeathCause.ExecutedGeneric:
                    deathString = "was executed by " + slayerString;
                    break;

                case DeathCause.ExecutedBuriedAlive:
                    deathString = "was buried alive by " + slayerString;
                    break;

                case DeathCause.ExecutedBurnedAlive:
                    deathString = "was burned alive by " + slayerString;
                    break;

                case DeathCause.ExecutedCrucified:
                    deathString = "was crucified by " + slayerString;
                    break;

                case DeathCause.ExecutedDrowned:
                    deathString = "was drowned by " + slayerString;
                    break;

                case DeathCause.ExecutedFedToBeasts:
                    deathString = "was fed to beasts by " + slayerString;
                    break;

                case DeathCause.ExecutedHackedToPieces:
                    deathString = "was hacked to pieces by " + slayerString;
                    break;

                case DeathCause.ExecutedBeheaded:
                    deathString = "was beheaded by " + slayerString;
                    break;

                case DeathCause.DrainedBlood:
                    deathString = "was drained of blood by " + slayerString;
                    break;

                case DeathCause.Collapsed:
                    deathString = "collapsed, struck down by " + slayerString;
                    break;

                case DeathCause.ScaredToDeath:
                    deathString = " was scared to death by " + slayerString;
                    break;

                case DeathCause.Bled:
                    deathString = " bled to death, slain by " + slayerString;
                    break;

                case DeathCause.Spikes:
                    deathString = " was impaled by " + slayerString;
                    break;

                default:
                    deathString += ", slain by " + slayerString;
                    break;
                }
            }
            else
            {
                switch (Cause)
                {
                case DeathCause.Thirst:
                    deathString = "died of thirst";
                    break;

                case DeathCause.OldAge:
                    deathString = "died of old age";
                    break;

                case DeathCause.Suffocated:
                    deathString = "suffocated";
                    break;

                case DeathCause.Bled:
                    deathString = "bled to death";
                    break;

                case DeathCause.Cold:
                    deathString = "froze to death";
                    break;

                case DeathCause.CrushedByABridge:
                    deathString = "was crushed by a drawbridge";
                    break;

                case DeathCause.Drowned:
                    deathString = "drowned";
                    break;

                case DeathCause.Starved:
                    deathString = "starved to death";
                    break;

                case DeathCause.Infection:
                    deathString = "succumbed to infection";
                    break;

                case DeathCause.CollidedWithAnObstacle:
                    deathString = "died after colliding with an obstacle";
                    break;

                case DeathCause.PutToRest:
                    deathString = "was put to rest";
                    break;

                case DeathCause.StarvedQuit:
                    deathString = "starved";
                    break;

                case DeathCause.Trap:
                    deathString = "was killed by a trap";
                    break;

                case DeathCause.CaveIn:
                    deathString = "was crushed under a collapsing ceiling";
                    break;

                case DeathCause.InACage:
                    deathString = "died in a cage";
                    break;

                case DeathCause.FrozenInWater:
                    deathString = "was incased in ice";
                    break;

                case DeathCause.Scuttled:
                    deathString = "was scuttled";
                    break;

                case DeathCause.Slaughtered:
                    deathString = "was slaughtered";
                    break;

                case DeathCause.FlyingObject:
                    deathString = "was killed by a flying object";
                    break;

                case DeathCause.ExecutedGeneric:
                    deathString = "was executed";
                    break;

                case DeathCause.ExecutedBuriedAlive:
                    deathString = "was buried alive";
                    break;

                case DeathCause.ExecutedBurnedAlive:
                    deathString = "was burned alive";
                    break;

                case DeathCause.ExecutedCrucified:
                    deathString = "was crucified";
                    break;

                case DeathCause.ExecutedDrowned:
                    deathString = "was drowned";
                    break;

                case DeathCause.ExecutedFedToBeasts:
                    deathString = "was fed to beasts";
                    break;

                case DeathCause.ExecutedHackedToPieces:
                    deathString = "was hacked to pieces";
                    break;

                case DeathCause.ExecutedBeheaded:
                    deathString = "was beheaded";
                    break;

                case DeathCause.Melted:
                    deathString = "melted";
                    break;

                case DeathCause.Spikes:
                    deathString = "was impaled";
                    break;

                case DeathCause.Heat:
                    deathString = "died in the heat";
                    break;

                case DeathCause.Vanish:
                    deathString = "vanished";
                    break;

                case DeathCause.CoolingMagma:
                    deathString = "was encased in cooling magma";
                    break;

                case DeathCause.Vehicle:
                    deathString = "was killed by a vehicle";
                    break;

                case DeathCause.SuicideDrowned:
                    deathString = "drowned ";
                    switch (HistoricalFigure.Caste)
                    {
                    case "Female":
                        deathString += "herself ";
                        break;

                    case "Male":
                        deathString += "himself ";
                        break;

                    default:
                        deathString += "itself ";
                        break;
                    }
                    break;

                case DeathCause.SuicideLeaping:
                    deathString = "leapt from a great height";
                    break;

                case DeathCause.Chasm:
                    deathString = "fell into a deep chasm";
                    break;

                case DeathCause.Unknown:
                    deathString = "died (" + UnknownCause + ")";
                    break;
                }
            }

            eventString += deathString;

            if (ItemId >= 0)
            {
                if (Artifact != null)
                {
                    eventString += " with " + Artifact.ToLink(link, pov, this);
                }
                else if (!string.IsNullOrWhiteSpace(ItemType) || !string.IsNullOrWhiteSpace(ItemSubType))
                {
                    eventString += " with a ";
                    eventString += !string.IsNullOrWhiteSpace(ItemMaterial) ? ItemMaterial + " " : " ";
                    eventString += !string.IsNullOrWhiteSpace(ItemSubType) ? ItemSubType : ItemType;
                }
            }
            else if (ShooterItemId >= 0)
            {
                if (ShooterArtifact != null)
                {
                    eventString += " (shot) with " + ShooterArtifact.ToLink(link, pov, this);
                }
                else if (!string.IsNullOrWhiteSpace(ShooterItemType) || !string.IsNullOrWhiteSpace(ShooterItemSubType))
                {
                    eventString += " (shot) with a ";
                    eventString += !string.IsNullOrWhiteSpace(ShooterItemMaterial) ? ShooterItemMaterial + " " : " ";
                    eventString += !string.IsNullOrWhiteSpace(ShooterItemSubType) ? ShooterItemSubType : ShooterItemType;
                }
            }
            else if (SlayerItemId >= 0)
            {
                eventString += " with a (" + SlayerItemId + ")";
            }
            else if (SlayerShooterItemId >= 0)
            {
                eventString += " (shot) with a (" + SlayerShooterItemId + ")";
            }

            if (Site != null)
            {
                eventString += " in " + Site.ToLink(link, pov, this);
            }
            else if (Region != null)
            {
                eventString += " in " + Region.ToLink(link, pov, this);
            }
            else if (UndergroundRegion != null)
            {
                eventString += " in " + UndergroundRegion.ToLink(link, pov, this);
            }

            return(eventString);
        }
Exemple #4
0
        protected override string LegendsDescription()
        {
            var timestring = base.LegendsDescription();

            switch (Causes[Cause])
            {
            case "struck":
                return(string.Format("{0} the {1} {2} was struck down by \nthe {3} {4} in {5}.",
                                     timestring, HF.Race, HF,
                                     SlayerRace == null ? "" : SlayerRace.ToString(), SlayerHF == null ? SlayerHFID.ToString() : SlayerHF.ToString(),
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "shot":
                return(string.Format("{0} the {1} {2} was shot and killed by \nthe {3} {4} in {5}.",
                                     timestring, HF.Race, HF,
                                     SlayerRace == null ? "" : SlayerRace.ToString(), SlayerHF == null ? SlayerHFID.ToString() : SlayerHF.ToString(),
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "murdered":
                return(string.Format("{0} the {1} {2} was murdered by \nthe {3} {4} in {5}.",
                                     timestring, HF.Race, HF,
                                     SlayerRace == null ? "" : SlayerRace.ToString(), SlayerHF == null ? SlayerHFID.ToString() : SlayerHF.ToString(),
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "old age":
                return(string.Format("{0} the {1} {2} died of old age.",
                                     timestring, HF.Race, HF));

            case "infection":
                return(string.Format("{0} the {1} {2} succumbed to infection, slain by \nthe {3} {4} in {5}.",
                                     timestring, HF.Race, HF,
                                     SlayerRace == null ? "" : SlayerRace.ToString(), SlayerHF == null ? SlayerHFID.ToString() : SlayerHF.ToString(),
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "blood":
                if (SlayerHF == null)
                {
                    return(string.Format("{0} the {1} {2} bled to death in {3}.",
                                         timestring, HF.Race, HF,
                                         Site == null ? SiteID.ToString() : Site.AltName));
                }
                return(string.Format("{0} the {1} {2} bled to death, slain by the {3} {4} with ITEM: {5} in {6}.",
                                     timestring, HF.Race, HF, SlayerRace == null ? "" : SlayerRace.ToString(), SlayerHF == null ? SlayerHFID.ToString() : SlayerHF.ToString(), SlayerItemID,
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "thirst":
                return(string.Format("{0} the {1} {2} died of thirst in {3}.",
                                     timestring, HF.Race, HF,
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "collapsed":
                return(string.Format("{0} the {1} {2} collapsed, struck down by \nthe {3} {4} in {5}.",
                                     timestring, HF.Race, HF,
                                     SlayerRace == null ? "" : SlayerRace.ToString(), SlayerHF == null ? SlayerHFID.ToString() : SlayerHF.ToString(),
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "vanish":
                return(string.Format("{0} the {1} {2} vanished in {3}.",
                                     timestring, HF.Race, HF,
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "drown":
                return(string.Format("{0} the {1} {2} drowned in {3}.",
                                     timestring, HF.Race, HF,
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "crushed bridge":
                return(string.Format("{0} the {1} {2} was crushed by a drawbridge in {3}.",
                                     timestring, HF.Race, HF,
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "put to rest":
                return(string.Format("{0} the {1} {2} was put to rest in {3}.",
                                     timestring, HF.Race, HF,
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "quitdead":
                return(string.Format("{0} the {1} {2} starved to death in {3}.",
                                     timestring, HF.Race, HF,
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "exec beheaded":
                return(string.Format("{0} the {1} {2} was beheaded by \nthe {3} {4} in {5}.",
                                     timestring, HF.Race, HF,
                                     SlayerRace == null ? "" : SlayerRace.ToString(), SlayerHF == null ? SlayerHFID.ToString() : SlayerHF.ToString(),
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "exec burned alive":
                return(string.Format("{0} the {1} {2} burned \nthe {3} {4} alive in {5}.",
                                     timestring, HF.Race, HF,
                                     SlayerRace == null ? "" : SlayerRace.ToString(), SlayerHF == null ? SlayerHFID.ToString() : SlayerHF.ToString(),
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "exec fed to beasts":
                return(string.Format("{0} the {1} {2} fed \nthe {3} {4} to beasts in {5}.",
                                     timestring, HF.Race, HF,
                                     SlayerRace == null ? "" : SlayerRace.ToString(), SlayerHF == null ? SlayerHFID.ToString() : SlayerHF.ToString(),
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "exec hacked to pieces":
                return(string.Format("{0} the {1} {2} hacked \nthe {3} {4} to pieces in {5}.",
                                     timestring, HF.Race, HF,
                                     SlayerRace == null ? "" : SlayerRace.ToString(), SlayerHF == null ? SlayerHFID.ToString() : SlayerHF.ToString(),
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "exec drowned":
                return(string.Format("{0} the {1} {2} drowned \nthe {3} {4} in {5}.",
                                     timestring, HF.Race, HF,
                                     SlayerRace == null ? "" : SlayerRace.ToString(), SlayerHF == null ? SlayerHFID.ToString() : SlayerHF.ToString(),
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "exec buried alive":
                return(string.Format("{0} the {1} {2} buried \nthe {3} {4} alive in {5}.",
                                     timestring, HF.Race, HF,
                                     SlayerRace == null ? "" : SlayerRace.ToString(), SlayerHF == null ? SlayerHFID.ToString() : SlayerHF.ToString(),
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "exec crucified":
                return(string.Format("{0} the {1} {2} was crucified by \nthe {3} {4} alive in {5}.",
                                     timestring, HF.Race, HF,
                                     SlayerRace == null ? "" : SlayerRace.ToString(), SlayerHF == null ? SlayerHFID.ToString() : SlayerHF.ToString(),
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "air":
                return(string.Format("{0} the {1} {2} suffocated, slain by {3} {4} alive in {5}.",
                                     timestring, HF.Race, HF,
                                     SlayerRace == null ? "" : SlayerRace.ToString(), SlayerHF == null ? SlayerHFID.ToString() : SlayerHF.ToString(),
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "obstacle":
                return(string.Format("{0} the {1} {2} died after colliding with an obstacle, slain by {3} {4} in {5}.",
                                     timestring, HF.Race, HF,
                                     SlayerRace == null ? "" : SlayerRace.ToString(), SlayerHF == null ? SlayerHFID.ToString() : SlayerHF.ToString(),
                                     Site != null ? Site.AltName : (SiteID != null ? SiteID.ToString() : Subregion.ToString())));

            case "hunger":
                return(string.Format("{0} the {1} {2} starved to death in {3}.",
                                     timestring, HF.Race, HF,
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "scuttled":
                return(string.Format("{0} {2} a {1} was scuttled in {3}.",
                                     timestring, HF.Race, HF,
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "spikes":
                return(string.Format("{0} the {1} {2} was impaled on spikes in {3}.",
                                     timestring, HF.Race, HF,
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "scared to death":
                return(string.Format("{0} the {1} {2} was scared to death by \nthe {3} {4} in {5}.",
                                     timestring, HF.Race, HF,
                                     SlayerRace == null ? "" : SlayerRace.ToString(), SlayerHF == null ? SlayerHFID.ToString() : SlayerHF.ToString(),
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "slaughtered":
                return(string.Format("{0} {2} a {1} was slaughtered in {5} by {4} a {3}.",
                                     timestring, HF.Race, HF,
                                     SlayerRace == null ? "" : SlayerRace.ToString(), SlayerHF == null ? SlayerHFID.ToString() : SlayerHF.ToString(),
                                     Site == null ? SiteID.ToString() : Site.AltName));

            case "trap":
                return(string.Format("{0} the {1} {2} was killed by a trap in {3}.",
                                     timestring, HF.Race, HF,
                                     Site.AltName));

            case "blood drained":
                return(string.Format("{0} the {1} {2} was drained of blood by \nthe {3} {4} in {5}.",
                                     timestring, HF.Race, HF,
                                     SlayerRace == null ? "" : SlayerRace.ToString(), SlayerHF == null ? SlayerHFID.ToString() : SlayerHF.ToString(),
                                     Site != null ? Site.AltName : (SiteID != null ? SiteID.ToString() : Subregion.ToString())));
            }

            return(timestring);
        }
Exemple #5
0
        protected override string LegendsDescription()
        {
            var timestring = base.LegendsDescription();

            var locationText = "";

            if (Site != null)
            {
                locationText = Site.AltName;
            }
            else if (Subregion != null)
            {
                locationText = Subregion.ToString();
            }

            var hfText = Hf != null ? $"{Hf.Race} {Hf}" : "UNKNOWN";

            switch (Causes[Cause])
            {
            case "struck":
                if (ItemID == null)
                {
                    return
                        ($"{timestring} the {hfText} was struck down by \nthe {SlayerRace?.ToString() ?? ""} {Hf_Slayer?.ToString() ?? HfId_Slayer.ToString()} in {locationText}.");
                }
                if (Artifact_SlayerItem != null)
                {
                    return
                        ($"{timestring} the {hfText} was struck down by \n the {SlayerRace?.ToString() ?? ""} {Hf_Slayer?.ToString() ?? HfId_Slayer.ToString()} with {Artifact_SlayerItem} in {locationText}.");
                }
                if (ItemType != null && Item.ItemTypes[ItemType.Value] == "corpsepiece")
                {
                    return
                        ($"{timestring} the {hfText} was struck down by \nthe {SlayerRace?.ToString() ?? ""} {Hf_Slayer?.ToString() ?? HfId_Slayer.ToString()} {"with a body part"} in {locationText}.");
                }
                if (ItemType != null && Item.ItemTypes[ItemType.Value] == "corpse")
                {
                    return
                        ($"{timestring} the {hfText} was struck down by \nthe {SlayerRace?.ToString() ?? ""} {Hf_Slayer?.ToString() ?? HfId_Slayer.ToString()} {"with a corpse"} in {locationText}.");
                }
                if (Mat != null && ItemType != null && ItemSubType == null)     //Test
                {
                    return
                        ($"{timestring} the {hfText} was struck down by \nthe {SlayerRace?.ToString() ?? ""} {Hf_Slayer?.ToString() ?? HfId_Slayer.ToString()} {"with a " + Item.Materials[Mat.Value] + " " + Item.ItemTypes[ItemType.Value]} in {locationText}.");
                }
                if (Mat != null && ItemType != null && ItemSubType != null)
                {
                    return
                        ($"{timestring} the {hfText} was struck down by \nthe {SlayerRace?.ToString() ?? ""} {Hf_Slayer?.ToString() ?? HfId_Slayer.ToString()} {"with a " + Item.Materials[Mat.Value] + " " + Item.ItemSubTypes[ItemSubType.Value]} in {locationText}.");
                }
                return
                    ($"{timestring} the {hfText} was struck down by \nthe {SlayerRace?.ToString() ?? ""} {Hf_Slayer?.ToString() ?? HfId_Slayer.ToString()} {"with "} in {locationText}.");

            case "shot":
                if (BowItem == null)
                {
                    if (Mat != null && ItemType != null && ItemSubType != null)
                    {
                        return
                            ($"{timestring} the {hfText} was shot and killed by \nthe {SlayerRace?.ToString() ?? ""} {Hf_Slayer?.ToString() ?? HfId_Slayer.ToString()} {"with a " + Item.Materials[Mat.Value] + " " + Item.ItemSubTypes[ItemSubType.Value]} in {locationText}.");
                    }
                    return
                        ($"{timestring} the {hfText} was shot and killed by \nthe {SlayerRace?.ToString() ?? ""} {Hf_Slayer?.ToString() ?? HfId_Slayer.ToString()} in {locationText} " +
                         $"with a {(Mat.HasValue ? Item.Materials[Mat.Value] : "UNKNOWN")}  {(ItemSubType.HasValue ? Item.ItemSubTypes[ItemSubType.Value] : "UNKNOWN")}");
                }
                if (Artifact_SlayerShooterItem != null)
                {
                    return
                        ($"{timestring} the {hfText} was shot and killed by \n the {SlayerRace?.ToString() ?? ""} {Hf_Slayer?.ToString() ?? HfId_Slayer.ToString()} with {Artifact_SlayerShooterItem} in {locationText}.");
                }
                if (BowMat != null && BowItemType != null && BowItemSubType == null && ItemType != null && Mat != null)     //Test
                {
                    return
                        ($"{timestring} the {hfText} was shot and killed by \nthe {SlayerRace?.ToString() ?? ""} {Hf_Slayer?.ToString() ?? HfId_Slayer.ToString()} {"with a " + Item.Materials[Mat.Value] + " " + Item.ItemTypes[ItemType.Value]} in {locationText}.");
                }
                if (BowMat != null && BowItemType != null && BowItemSubType != null && Mat != null && ItemType != null && ItemSubType != null)
                {
                    return
                        ($"{timestring} the {hfText} was shot and killed by \nthe {SlayerRace?.ToString() ?? ""} {Hf_Slayer?.ToString() ?? HfId_Slayer.ToString()} {"with a " + Item.Materials[Mat.Value] + " " + Item.ItemSubTypes[ItemSubType.Value] + " from a " + Item.Materials[BowMat.Value] + " " + Item.ItemSubTypes[BowItemSubType.Value]} in {locationText}.");
                }
                return
                    ($"{timestring} the {hfText} was shot and killed by \nthe {SlayerRace?.ToString() ?? ""} {Hf_Slayer?.ToString() ?? HfId_Slayer.ToString()} {"with "} in {locationText}.");

            case "murdered":
                return
                    ($"{timestring} the {hfText} was murdered by \nthe {SlayerRace?.ToString() ?? ""} {Hf_Slayer?.ToString() ?? HfId_Slayer.ToString()} in {locationText}.");

            case "old age":
                return($"{timestring} the {hfText} died of old age.");

            case "infection":
                return
                    ($"{timestring} the {hfText} succumbed to infection, slain by \nthe {SlayerRace?.ToString() ?? ""} {Hf_Slayer?.ToString() ?? HfId_Slayer.ToString()} in {locationText}.");

            case "blood":
                return(Hf_Slayer == null ?
                       $"{timestring} the {hfText} bled to death in {locationText}." :
                       $"{timestring} the {hfText} bled to death, slain by the {SlayerRace?.ToString() ?? ""} {Hf_Slayer} with ITEM: {ArtifiactId_SlayerItem} in {locationText}.");

            case "thirst":
                return($"{timestring} the {hfText} died of thirst in {locationText}.");

            case "collapsed":
                return
                    ($"{timestring} the {hfText} collapsed, struck down by \nthe {SlayerRace?.ToString() ?? ""} {Hf_Slayer?.ToString() ?? HfId_Slayer.ToString()} in {locationText}.");

            case "vanish":
                return($"{timestring} the {hfText} vanished in {locationText}.");

            case "drown":
                return($"{timestring} the {hfText} drowned in {locationText}.");

            case "crushed bridge":
                return($"{timestring} the {hfText} was crushed by a drawbridge in {locationText}.");

            case "put to rest":
                return($"{timestring} the {hfText} was put to rest in {locationText}.");

            case "quitdead":
                return($"{timestring} the {hfText} starved to death in {locationText}.");

            case "exec beheaded":
                return
                    ($"{timestring} the {hfText} was beheaded by \nthe {SlayerRace?.ToString() ?? ""} {Hf_Slayer?.ToString() ?? HfId_Slayer.ToString()} in {locationText}.");

            case "exec burned alive":
                return
                    ($"{timestring} the {hfText} burned \nthe {(SlayerRace?.ToString() ?? "")} {(Hf_Slayer?.ToString() ?? HfId_Slayer.ToString())} alive in {locationText}.");

            case "exec fed to beasts":
                return
                    ($"{timestring} the {hfText} fed \nthe {(SlayerRace?.ToString() ?? "")} {(Hf_Slayer?.ToString() ?? HfId_Slayer.ToString())} to beasts in {locationText}.");

            case "exec hacked to pieces":
                return
                    ($"{timestring} the {hfText} hacked \nthe {(SlayerRace?.ToString() ?? "")} {(Hf_Slayer?.ToString() ?? HfId_Slayer.ToString())} to pieces in {locationText}.");

            case "exec drowned":
                return
                    ($"{timestring} the {hfText} drowned \nthe {(SlayerRace?.ToString() ?? "")} {(Hf_Slayer?.ToString() ?? HfId_Slayer.ToString())} in {locationText}.");

            case "exec buried alive":
                return
                    ($"{timestring} the {hfText} buried \nthe {(SlayerRace?.ToString() ?? "")} {(Hf_Slayer?.ToString() ?? HfId_Slayer.ToString())} alive in {locationText}.");

            case "exec crucified":
                return
                    ($"{timestring} the {hfText} was crucified by \nthe {(SlayerRace?.ToString() ?? "")} {(Hf_Slayer?.ToString() ?? HfId_Slayer.ToString())} alive in {locationText}.");

            case "air":
                return
                    ($"{timestring} the {hfText} suffocated, slain by {(SlayerRace?.ToString() ?? "")} {(Hf_Slayer?.ToString() ?? HfId_Slayer.ToString())} alive in {locationText}.");

            case "obstacle":
                return
                    ($"{timestring} the {hfText} died after colliding with an obstacle, slain by {(SlayerRace?.ToString() ?? "")} {(Hf_Slayer?.ToString() ?? HfId_Slayer.ToString())} in {locationText}.");

            case "hunger":
                return($"{timestring} the {hfText} starved to death in {locationText}.");

            case "scuttled":
                return($"{timestring} {hfText} was scuttled in {locationText}.");

            case "spikes":
                return($"{timestring} the {hfText} was impaled on spikes in {locationText}.");

            case "scared to death":
                return
                    ($"{timestring} the {hfText} was scared to death by \nthe {(SlayerRace?.ToString() ?? "")} {(Hf_Slayer?.ToString() ?? HfId_Slayer.ToString())} in {locationText}.");

            case "slaughtered":
                return($"{timestring} the {hfText} was slaughtered in {locationText} by {Hf_Slayer?.ToString() ?? HfId_Slayer.ToString()} a {SlayerRace?.ToString() ?? ""}.");

            case "trap":
                return($"{timestring} the {hfText} was killed by a trap in {locationText}.");

            case "blood drained":
                return
                    ($"{timestring} the {hfText} was drained of blood by \nthe {(SlayerRace?.ToString() ?? "")} {(Hf_Slayer?.ToString() ?? HfId_Slayer.ToString())} in {locationText}.");
            }

            return(timestring);
        }