예제 #1
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            eventString += HistoricalFigure.ToLink(link, pov);
            if (RaisedBefore)
            {
                eventString += " came back from the dead once more, this time as a " + _ghost;
            }
            else
            {
                eventString += " came back from the dead as a " + _ghost;
            }
            eventString += " in ";
            if (Site != null)
            {
                eventString += Site.ToLink(link, pov);
            }
            else if (Region != null)
            {
                eventString += Region.ToLink(link, pov);
            }
            else if (UndergroundRegion != null)
            {
                eventString += UndergroundRegion.ToLink(link, pov);
            }
            else
            {
                eventString += "UNKNOWN LOCATION";
            }
            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
예제 #2
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            eventString += Artifact != null?Artifact.ToLink(link, pov, this) : "UNKNOWN ARTIFACT";

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

            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
예제 #3
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            eventString += GroupHistoricalFigure.ToLink(link, pov, this);
            eventString += " performed horrible experiments";
            if (Structure != null)
            {
                eventString += " in ";
                eventString += Structure.ToLink(link, pov, this);
            }
            if (Site != null)
            {
                eventString += " in ";
                eventString += Site.ToLink(link, pov, this);
            }
            else if (Region != null)
            {
                eventString += " in ";
                eventString += Region.ToLink(link, pov, this);
            }
            else if (UndergroundRegion != null)
            {
                eventString += " in ";
                eventString += UndergroundRegion.ToLink(link, pov, this);
            }
            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
예제 #4
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            eventString += HistoricalFigure != null?HistoricalFigure.ToLink(link, pov, this) : "UNKNOWN HISTORICAL FIGURE";

            eventString += " reached the summit";
            if (Region != null)
            {
                eventString += ", which rises above ";
                eventString += Region.ToLink(link, pov, this);
            }
            else if (UndergroundRegion != null)
            {
                eventString += ", in the depths of ";
                eventString += UndergroundRegion.ToLink(link, pov, this);
            }
            if (Site != null)
            {
                eventString += " in ";
                eventString += Site.ToLink(link, pov, this);
            }
            eventString += ".";
            return(eventString);
        }
예제 #5
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime() + HistoricalFigure.ToLink(link, pov) + " tamed the creatures named ";

            if (!string.IsNullOrWhiteSpace(Pet))
            {
                eventString += Pet;
            }
            else
            {
                eventString += "UNKNOWN";
            }
            if (Site != null)
            {
                eventString += " in " + Site.ToLink(link, pov);
            }
            else if (Region != null)
            {
                eventString += " in " + Region.ToLink(link, pov);
            }
            else if (UndergroundRegion != null)
            {
                eventString += " in " + UndergroundRegion.ToLink(link, pov);
            }
            if (!(ParentCollection is Journey))
            {
                eventString += PrintParentCollection(link, pov);
            }
            eventString += ".";
            return(eventString);
        }
예제 #6
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime() + Artifact.ToLink(link, pov, this);

            switch (ArtifactReason)
            {
            case ArtifactReason.ArtifactIsHeirloomOfFamilyHfid:
                eventString += " was acquired";
                break;

            case ArtifactReason.ArtifactIsSymbolOfEntityPosition:
                eventString += " was acquired";
                break;

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

            eventString += " by " + HistoricalFigure.ToLink(link, pov, this);
            switch (ArtifactReason)
            {
            case ArtifactReason.ArtifactIsHeirloomOfFamilyHfid:
                eventString += " as an heirloom of the ";
                eventString += FamilyFigure?.ToLink(link, pov, this);
                eventString += " family";
                break;

            case ArtifactReason.ArtifactIsSymbolOfEntityPosition:
                eventString += " as a symbol of authority within ";
                eventString += SymbolEntity?.ToLink(link, pov, this);
                break;
            }
            switch (Circumstance)
            {
            case Circumstance.HfIsDead:
                eventString += " after the death of ";
                eventString += FormerHolder?.ToLink(link, pov, this);
                break;
            }
            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
예제 #7
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            eventString += HistoricalFigure.ToLink(link, pov, this);
            if (Disturbance)
            {
                eventString += " was disturbed from eternal rest";
            }
            else
            {
                eventString += Actor != null ? " was brought" : " came";
                eventString += " back from the dead";
            }

            if (RaisedBefore)
            {
                eventString += " once more";
            }

            if (Actor != null)
            {
                eventString += " by ";
                eventString += Actor.ToLink(link, pov, this);
            }


            if (!string.IsNullOrWhiteSpace(_ghost))
            {
                if (RaisedBefore)
                {
                    eventString += ", this time";
                }
                eventString += " as a " + _ghost;
            }

            if (Site != null)
            {
                eventString += " in ";
                eventString += Site.ToLink(link, pov, this);
            }
            else if (Region != null)
            {
                eventString += " in ";
                eventString += Region.ToLink(link, pov, this);
            }
            else if (UndergroundRegion != null)
            {
                eventString += " in ";
                eventString += UndergroundRegion.ToLink(link, pov, this);
            }
            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
예제 #8
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            eventString += Gambler.ToLink(link, pov, this);
            // same ranges like in "trade" event
            var balance = NewAccount - OldAccount;

            if (balance >= 5000)
            {
                eventString += " made a fortune";
            }
            else if (balance >= 1000)
            {
                eventString += " did well";
            }
            else if (balance <= -1000)
            {
                eventString += " did poorly";
            }
            else if (balance <= -5000)
            {
                eventString += " lost a fortune";
            }
            else
            {
                eventString += " broke even";
            }
            eventString += " gambling";
            if (Site != null)
            {
                eventString += " in ";
                eventString += Site.ToLink(link, pov, this);
            }
            else if (Region != null)
            {
                eventString += " in ";
                eventString += Region.ToLink(link, pov, this);
            }
            else if (UndergroundRegion != null)
            {
                eventString += " in ";
                eventString += UndergroundRegion.ToLink(link, pov, this);
            }
            if (Structure != null)
            {
                eventString += " at ";
                eventString += Structure.ToLink(link, pov, this);
            }

            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            eventString += GroupHistoricalFigure.ToLink(link, pov, this);
            eventString += " purchased ";
            if (Quality == 1)
            {
                eventString += "well-crafted ";
            }
            else if (Quality == 2)
            {
                eventString += "finely-crafted ";
            }
            else if (Quality == 3)
            {
                eventString += "superior quality ";
            }
            else if (Quality == 4)
            {
                eventString += "exceptional ";
            }
            else if (Quality == 5)
            {
                eventString += "masterwork ";
            }
            eventString += "equipment";
            if (Site != null)
            {
                eventString += " in ";
                eventString += Site.ToLink(link, pov, this);
            }
            else if (Region != null)
            {
                eventString += " in ";
                eventString += Region.ToLink(link, pov, this);
            }
            else if (UndergroundRegion != null)
            {
                eventString += " in ";
                eventString += UndergroundRegion.ToLink(link, pov, this);
            }
            if (Structure != null)
            {
                eventString += " at ";
                eventString += Structure.ToLink(link, pov, this);
            }

            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
예제 #10
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            if (Eater != null)
            {
                eventString += Eater.ToLink(link, pov);
            }
            else
            {
                eventString += "UNKNOWN HISTORICAL FIGURE";
            }
            eventString += " devoured ";
            if (Victim != null)
            {
                eventString += Victim.ToLink(link, pov);
            }
            else if (!string.IsNullOrWhiteSpace(Race))
            {
                eventString += " a ";
                if (!string.IsNullOrWhiteSpace(Caste))
                {
                    eventString += Caste + " ";
                }
                eventString += Race;
            }
            else
            {
                eventString += "UNKNOWN HISTORICAL FIGURE";
            }
            eventString += " in ";
            if (Site != null)
            {
                eventString += Site.ToLink(link, pov);
            }
            else if (Region != null)
            {
                eventString += Region.ToLink(link, pov);
            }
            else if (UndergroundRegion != null)
            {
                eventString += UndergroundRegion.ToLink(link, pov);
            }
            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
예제 #11
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            if (Woundee != null)
            {
                eventString += Woundee.ToLink(link, pov, this);
            }
            else
            {
                eventString += "UNKNOWN HISTORICAL FIGURE";
            }

            eventString += " was wounded by ";
            if (Wounder != null)
            {
                eventString += Wounder.ToLink(link, pov, this);
            }
            else
            {
                eventString += "UNKNOWN HISTORICAL FIGURE";
            }

            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);
            }

            if (WasTorture)
            {
                eventString += " as a means of torture";
            }

            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
예제 #12
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            eventString += Artifact.ToLink(link, pov, this);
            eventString += " was found";
            if (HistoricalFigure != null)
            {
                eventString += " by ";
                eventString += HistoricalFigure.ToLink(link, pov, this);
            }

            if (SiteProperty != null)
            {
                eventString += " in ";
                eventString += SiteProperty.Print(link, pov);
            }
            else if (Structure != null)
            {
                eventString += " inside ";
                eventString += Structure.ToLink(link, pov, this);
            }
            if (Site != null)
            {
                eventString += " in ";
                eventString += Site.ToLink(link, pov, this);
            }
            else if (Region != null)
            {
                eventString += " in ";
                eventString += Region.ToLink(link, pov, this);
            }
            else if (UndergroundRegion != null)
            {
                eventString += " in ";
                eventString += UndergroundRegion.ToLink(link, pov, this);
            }
            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
예제 #13
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            eventString += JoinerEntity.ToLink(link, pov, this);
            if (PartialIncorporation)
            {
                eventString += " began operating at the direction of ";
            }
            else
            {
                eventString += " fully incorporated into ";
            }
            eventString += JoinedEntity.ToLink(link, pov, this);
            if (Leader != null)
            {
                eventString += " under the leadership of ";
                eventString += Leader.ToLink(link, pov, this);
            }
            if (Site != null)
            {
                eventString += " in ";
                eventString += Site.ToLink(link, pov, this);
            }
            else if (Region != null)
            {
                eventString += " in ";
                eventString += Region.ToLink(link, pov, this);
            }
            else if (UndergroundRegion != null)
            {
                eventString += " in ";
                eventString += UndergroundRegion.ToLink(link, pov, this);
            }

            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
예제 #14
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime() + HistoricalFigure.ToLink(link, pov, this);

            if (Escaped)
            {
                return(GetYearTime() + HistoricalFigure.ToLink(link, pov, this) + " escaped from the " + UndergroundRegion.ToLink(link, pov, this));
            }

            if (Returned)
            {
                eventString += " returned to ";
            }
            else
            {
                eventString += " made a journey to ";
            }

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

            if (!(ParentCollection is Journey))
            {
                eventString += PrintParentCollection(link, pov);
            }
            eventString += ".";
            return(eventString);
        }
예제 #15
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            eventString += HistoricalFigure.ToLink(link, pov, this);
            if (WasHired)
            {
                eventString += " was hired";
                if (AsScout)
                {
                    eventString += " as a scout";
                }
                eventString += " to fight in ";
            }
            else
            {
                eventString += " fought in ";
            }
            eventString += Battle.ToLink(link, pov, this);
            if (Site != null)
            {
                eventString += " an assault on ";
                eventString += Site.ToLink(link, pov, this);
            }
            else if (Region != null)
            {
                eventString += " in ";
                eventString += Region.ToLink(link, pov, this);
            }
            else if (UndergroundRegion != null)
            {
                eventString += " in ";
                eventString += UndergroundRegion.ToLink(link, pov, this);
            }
            eventString += ".";
            return(eventString);
        }
예제 #16
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            if (Bodies.Count > 1)
            {
                eventString += "the bodies of ";
                for (int i = 0; i < Bodies.Count; i++)
                {
                    eventString += Bodies[i].ToLink(link, pov, this) ?? "UNKNOWN HISTORICAL FIGURE";
                    if (i != Bodies.Count - 1)
                    {
                        if (i == Bodies.Count - 2)
                        {
                            eventString += " and ";
                        }
                        else
                        {
                            eventString += ", ";
                        }
                    }
                }
                eventString += " were ";
            }
            else
            {
                eventString += "the body of ";
                eventString += Bodies.FirstOrDefault()?.ToLink(link, pov, this) ?? "UNKNOWN HISTORICAL FIGURE";
                eventString += " was ";
            }
            switch (AbuseType)
            {
            case AbuseType.Impaled:
                eventString += "impaled on a ";
                eventString += !string.IsNullOrWhiteSpace(Material) ? Material + " " : "";
                if (!string.IsNullOrWhiteSpace(ItemSubType) && ItemSubType != "-1")
                {
                    eventString += ItemSubType;
                }
                else
                {
                    eventString += !string.IsNullOrWhiteSpace(ItemType) ? ItemType : "UNKNOWN ITEM";
                }
                break;

            case AbuseType.Piled:
                eventString += "added to a " + PileType.GetDescription();
                break;

            case AbuseType.Flayed:
                eventString += "flayed";
                break;

            case AbuseType.Hung:
                eventString += "hung";
                break;

            case AbuseType.Mutilated:
                eventString += "horribly mutilated";
                break;

            case AbuseType.Animated:
                eventString += "animated";
                break;

            default:
                eventString += "abused";
                break;
            }
            eventString += " by ";

            if (HistoricalFigure != null)
            {
                eventString += HistoricalFigure.ToLink(link, pov, this);
                if (Abuser != null)
                {
                    eventString += " of ";
                }
            }
            if (Abuser != null)
            {
                eventString += Abuser.ToLink(link, pov, this);
            }
            if (Structure != null)
            {
                eventString += " in ";
                eventString += Structure.ToLink(link, pov, this);
            }
            if (Site != null)
            {
                eventString += " in ";
                eventString += Site.ToLink(link, pov, this);
            }
            else if (Region != null)
            {
                eventString += " in ";
                eventString += Region.ToLink(link, pov, this);
            }
            else if (UndergroundRegion != null)
            {
                eventString += " in ";
                eventString += UndergroundRegion.ToLink(link, pov, this);
            }
            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
예제 #17
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime() + HistoricalFigure.ToLink(link, pov);

            if (State == HfState.Visiting)
            {
                eventString += " visited ";
            }
            else if (State == HfState.Settled)
            {
                switch (SubState)
                {
                case 45:
                    eventString += " fled to ";
                    break;

                case 46:
                case 47:
                    eventString += " moved to study in ";
                    break;

                default:
                    eventString += " settled in ";
                    break;
                }
            }
            else if (State == HfState.Wandering)
            {
                eventString += " began wandering ";
            }
            else if (State == HfState.Refugee || State == HfState.Snatcher || State == HfState.Thief)
            {
                eventString += " became a " + State.ToString().ToLower() + " in ";
            }
            else if (State == HfState.Scouting)
            {
                eventString += " began scouting the area around ";
            }
            else if (State == HfState.Hunting)
            {
                eventString += " began hunting great beasts in ";
            }
            else if (Mood != Mood.Unknown)
            {
                switch (Mood)
                {
                case Mood.Macabre:
                    eventString += " began to skulk and brood in ";
                    break;

                case Mood.Secretive:
                    eventString += " withdrew from society in ";
                    break;

                case Mood.Insane:
                    eventString += " became crazed in ";
                    break;

                case Mood.Possessed:
                    eventString += " was possessed in ";
                    break;

                case Mood.Berserk:
                    eventString += " went berserk in ";
                    break;

                case Mood.Fey:
                    eventString += " was taken by a fey mood in ";
                    break;

                case Mood.Melancholy:
                    eventString += " was striken by melancholy in ";
                    break;

                case Mood.Fell:
                    eventString += " was taken by a fell mood in ";
                    break;

                case Mood.Catatonic:
                    eventString += " stopped responding to the outside world in ";
                    break;
                }
            }
            else
            {
                eventString += " changed state in ";
            }

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

            if (Reason != ChangeHfStateReason.Unknown)
            {
                switch (Reason)
                {
                case ChangeHfStateReason.FailedMood:
                    eventString += " after failing to create an artifact";
                    break;

                case ChangeHfStateReason.GatherInformation:
                    eventString += " to gather information";
                    break;

                case ChangeHfStateReason.BeWithMaster:
                    eventString += " in order to be with the master";
                    break;

                case ChangeHfStateReason.Flight:
                    eventString += " in order to flee";
                    break;

                case ChangeHfStateReason.Scholarship:
                    eventString += " in order to pursue scholarship";
                    break;

                case ChangeHfStateReason.Pilgrimage:
                    eventString += " on a pilgrimage";
                    break;

                case ChangeHfStateReason.LackOfSleep:
                    eventString += " due to lack of sleep";
                    break;
                }
            }
            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            eventString += CorruptorHf.ToLink(link, pov, this);
            eventString += " attempted to corrupt ";
            eventString += TargetHf.ToLink(link, pov, this);
            switch (Action)
            {
            case IntrigueAction.BribeOfficial:
                eventString += " in order to have law enforcement look the other way";
                break;

            case IntrigueAction.InduceToEmbezzle:
                eventString += " in order to secure embezzled funds";
                break;

            case IntrigueAction.CorruptInPlace:
                eventString += " in order to have an agent";
                break;

            case IntrigueAction.BringIntoNetwork:
                eventString += " in order to have someone to act on plots and schemes";
                break;
            }
            if (Site != null)
            {
                eventString += " in ";
                eventString += Site.ToLink(link, pov, this);
            }
            else if (Region != null)
            {
                eventString += " in ";
                eventString += Region.ToLink(link, pov, this);
            }
            else if (UndergroundRegion != null)
            {
                eventString += " in ";
                eventString += UndergroundRegion.ToLink(link, pov, this);
            }
            else
            {
                eventString += " in the wilds";
            }
            eventString += PrintParentCollection(link, pov);
            eventString += ". ";
            if (LureHf != null)
            {
                eventString += LureHf.ToLink(link, pov, this).ToUpperFirstLetter();
                eventString += " lured ";
                eventString += TargetHf.ToLink(link, pov, this);
                eventString += " into a meeting";
            }
            else
            {
                eventString += CorruptorHf.ToLink(link, pov, this).ToUpperFirstLetter();
                eventString += " met with ";
                eventString += TargetHf.ToLink(link, pov, this);
            }
            eventString += " and, while completely misreading the situation, ";
            switch (Method)
            {
            case IntrigueMethod.Intimidate:
                eventString += "made a threat. ";
                //eventString += TargetHf.ToLink(link, pov, this).ToUpperFirstLetter();
                //eventString += " was unfraid and refused.";
                break;

            case IntrigueMethod.Flatter:
                eventString += "made flattering remarks. ";
                //eventString += TargetHf.ToLink(link, pov, this).ToUpperFirstLetter();
                //eventString += " hated ";
                //eventString += CorruptorHf.ToLink(link, pov, this);
                //eventString += " and refused.";
                break;

            case IntrigueMethod.Bribe:
                eventString += "offered a bribe. ";
                break;

            case IntrigueMethod.Precedence:
                eventString += "pulled rank. ";
                break;

            case IntrigueMethod.OfferImmortality:
                eventString += "offered immortality. ";
                break;

            case IntrigueMethod.ReligiousSympathy:
                eventString += $"played on sympathy by appealing to a shared worship of {World.GetHistoricalFigure(RelevantIdForMethod)?.ToLink(link, pov, this)}. ";
                break;

            case IntrigueMethod.BlackmailOverEmbezzlement:
                var position = RelevantEntity?.EntityPositions.FirstOrDefault(p => p.Id == RelevantPositionProfileId);
                eventString += $"made a blackmail threat, due to embezzlement using the position {position?.Name} of {RelevantEntity?.ToLink(link, pov, this)}. ";
                break;

            case IntrigueMethod.RevengeOnGrudge:
                eventString += $"offered revenge upon  {World.GetHistoricalFigure(RelevantIdForMethod)?.ToLink(link, pov, this)}. ";
                break;
            }
            eventString += "The plan failed.";
            // TODO create the right sentences for facet, value and relationship factors
            //eventString += "<br/>";
            //if (TopFacet != null)
            //{
            //    eventString += $" TopFacet: {TopFacet} ({TopFacetRating}/{TopFacetModifier}) ";
            //}
            //if (TopValue != null)
            //{
            //    eventString += $" TopValue: {TopValue} ({TopValueRating}/{TopValueModifier}) ";
            //}
            //if (TopRelationshipFactor != null)
            //{
            //    eventString += $" TopRelationshipFactor: {TopRelationshipFactor} ({TopRelationshipRating}/{TopRelationshipModifier}) ";
            //}
            //if (FailedJudgmentTest)
            //{
            //    eventString += " FailedJudgmentTest ";
            //}
            //if (AllyDefenseBonus != 0)
            //{
            //    eventString += $" AllyDefenseBonus: {AllyDefenseBonus}";
            //}
            //if (CoConspiratorBonus != 0)
            //{
            //    eventString += $" CoConspiratorBonus: {CoConspiratorBonus}";
            //}
            return(eventString);
        }
예제 #19
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);
        }