public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            if (WantedAndRecognized && HeldFirmInInterrogation)
            {
                eventString += TargetHf.ToLink(link, pov, this);
                eventString += " was recognized and arrested by ";
                eventString += ArrestingEntity.ToLink(link, pov, this);
                eventString += ". Despite the interrogation by ";
                eventString += InterrogatorHf.ToLink(link, pov, this);
                eventString += ", ";
                eventString += TargetHf.ToLink(link, pov, this);
                eventString += " refused to reveal anything and was released";
            }
            else
            {
                eventString += TargetHf.ToLink(link, pov, this);
                eventString += " was interrogated";
            }
            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            if (HeldFirmInInterrogation)
            {
                eventString += "due to ongoing surveillance";
                if (SurveiledContact & ContactHf != null)
                {
                    eventString += " on the contact ";
                    eventString += ContactHf.ToLink(link, pov, this);
                }
                if (SurveiledCoConspirator & CoConspiratorHf != null)
                {
                    eventString += " on a coconspirator ";
                    eventString += CoConspiratorHf.ToLink(link, pov, this);
                }
                if (SurveiledTarget & TargetHf != null)
                {
                    eventString += " on a target ";
                    eventString += TargetHf.ToLink(link, pov, this);
                }
                eventString += " as the plot unfolded, ";
            }
            eventString += ConvictedHf.ToLink(link, pov, this);
            eventString += $" was {(WrongfulConviction ? "wrongfully " : "")}convicted ";
            if (ConvictIsContact)
            {
                eventString += $"as a go-between in a conspiracy to commit {Crime} ";
            }
            else
            {
                eventString += $"of {Crime} ";
            }
            if (ConvicterEntity != null)
            {
                eventString += "by ";
                eventString += ConvicterEntity.ToLink(link, pov, this);
            }

            if (CorruptConvictorHf != null)
            {
                eventString += " and ";
                eventString += CorruptConvictorHf.ToLink(link, pov, this);
            }
            if (PlotterHf != null && PlotterHf != CorruptConvictorHf)
            {
                eventString += " plotted by ";
                eventString += PlotterHf.ToLink(link, pov, this);
            }
            if (FooledHf != null && FramerHf != null)
            {
                eventString += " after ";
                eventString += FramerHf.ToLink(link, pov, this);
                eventString += " fooled ";
                eventString += FooledHf.ToLink(link, pov, this);
                eventString += " with fabricated evidence";
            }

            if (Beating)
            {
                eventString += ", beaten";
            }
            else if (Hammerstrokes > 0)
            {
                eventString += $", sentenced to {Hammerstrokes} hammerstrokes";
            }
            if (PrisonMonth > 0)
            {
                eventString += $" and imprisoned for a term of {(PrisonMonth > 12 ? (PrisonMonth / 12) + " years" : PrisonMonth + " month")}";
            }
            else if (DeathPenalty)
            {
                eventString += " and sentenced to death";
            }
            if (Exiled)
            {
                eventString += " and exiled";
            }
            eventString += PrintParentCollection(link, pov);
            eventString += ". ";
            if (ImplicatedHf != null)
            {
                eventString += ConvictedHf.ToLink(link, pov, this);
                eventString += " implicated ";
                eventString += ImplicatedHf.ToLink(link, pov, this);
                eventString += " during interrogation. ";
            }

            if (InterrogatorHf != null)
            {
                eventString += "Interrogation was led by ";
                eventString += InterrogatorHf.ToLink(link, pov, this);
                eventString += ". ";
            }
            return(eventString);
        }