Пример #1
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

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

            switch (LinkType)
            {
            case HfEntityLinkType.Prisoner:
                eventString += " was imprisoned by ";
                break;

            case HfEntityLinkType.Slave:
                eventString += " was enslaved by ";
                break;

            case HfEntityLinkType.Enemy:
                eventString += " became an enemy of ";
                break;

            case HfEntityLinkType.Member:
                eventString += " became a member of ";
                break;

            case HfEntityLinkType.FormerMember:
                eventString += " became a former member of ";
                break;

            case HfEntityLinkType.Squad:
            case HfEntityLinkType.Position:
                EntityPosition position = Entity.EntityPositions.FirstOrDefault(pos => pos.Name.ToLower() == Position.ToLower() || pos.Id == PositionId);
                if (position != null)
                {
                    string positionName = position.GetTitleByCaste(HistoricalFigure?.Caste);
                    eventString += " became the " + positionName + " of ";
                }
                else if (!string.IsNullOrWhiteSpace(Position))
                {
                    eventString += " became the " + Position + " of ";
                }
                else
                {
                    eventString += " got an honorable position in ";
                }
                break;

            default:
                eventString += " linked to ";
                break;
            }

            eventString += Entity.ToLink(link, pov, this);
            eventString += PrintParentCollection(link, pov);
            if (AppointerHf != null)
            {
                eventString += ", appointed by ";
                eventString += AppointerHf.ToLink(link, pov, this);
            }
            if (PromiseToHf != null)
            {
                eventString += " as promised to ";
                eventString += PromiseToHf.ToLink(link, pov, this);
            }
            eventString += ".";
            return(eventString);
        }