public override string Print(bool link = true, DwarfObject pov = null) { string eventString = GetYearTime(); if (HistoricalFigure != null) { eventString += "the body of "; if (Body != null) { eventString += Body.ToLink(link, pov); } else { eventString += "UNKNOWN HISTORICAL FIGURE"; } eventString += " was animated by "; eventString += HistoricalFigure.ToLink(link, pov); } else { if (Body != null) { eventString += Body.ToLink(link, pov); } else { eventString += "UNKNOWN HISTORICAL FIGURE"; } eventString += "'s body was abused by "; if (Abuser != null) { eventString += Abuser.ToLink(link, pov); } else { eventString += "UNKNOWN ENTITY"; } } if (Site != null) { eventString += " in " + Site.ToLink(link, pov); } eventString += PrintParentCollection(link, pov); eventString += "."; return(eventString); }
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); }