Пример #1
0
        public SiteTakenOver(List <Property> properties, World world) : base(properties, world)
        {
            foreach (Property property in properties)
            {
                switch (property.Name)
                {
                case "attacker_civ_id":
                    Attacker = world.GetEntity(Convert.ToInt32(property.Value));
                    break;

                case "defender_civ_id":
                    Defender = world.GetEntity(Convert.ToInt32(property.Value));
                    break;

                case "new_site_civ_id":
                    NewSiteEntity = world.GetEntity(Convert.ToInt32(property.Value));
                    break;

                case "site_civ_id":
                    SiteEntity = world.GetEntity(Convert.ToInt32(property.Value));
                    break;

                case "site_id":
                    Site = world.GetSite(Convert.ToInt32(property.Value));
                    break;
                }
            }

            if (Site.OwnerHistory.Count == 0)
            {
                if (SiteEntity != null && SiteEntity != Defender)
                {
                    SiteEntity.Parent = Defender;
                    Site.OwnerHistory.Add(new OwnerPeriod(Site, SiteEntity, -1, "founded"));
                }
                else
                {
                    Site.OwnerHistory.Add(new OwnerPeriod(Site, Defender, -1, "founded"));
                }
            }

            Site.OwnerHistory.Last().EndCause = "taken over";
            Site.OwnerHistory.Last().EndYear  = Year;
            Site.OwnerHistory.Last().Ender    = Attacker;
            NewSiteEntity.Parent = Attacker;
            Site.OwnerHistory.Add(new OwnerPeriod(Site, NewSiteEntity, Year, "took over"));

            Attacker.AddEvent(this);
            if (Defender != Attacker)
            {
                Defender.AddEvent(this);
            }
            NewSiteEntity.AddEvent(this);
            if (SiteEntity != Defender)
            {
                SiteEntity.AddEvent(this);
            }

            Site.AddEvent(this);
        }
Пример #2
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            eventString += Attacker?.ToLink(link, pov, this) ?? "an unknown entity";
            eventString += " defeated ";
            if (SiteEntity != null && SiteEntity != Defender)
            {
                eventString += SiteEntity.ToLink(link, pov, this);
                eventString += " of ";
            }

            eventString += Defender?.ToLink(link, pov, this) ?? "an unknown entity";
            eventString += " and placed ";
            eventString += NewLeader?.ToLink(link, pov, this) ?? "an unknown creature";
            eventString += " in charge of ";
            eventString += Site?.ToLink(link, pov, this) ?? "an unknown site";
            if (NewSiteEntity != null)
            {
                eventString += ".";
                eventString += " The new government was called ";
                eventString += NewSiteEntity.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() + Attacker.ToLink(link, pov) + " defeated ";

            if (SiteEntity != null && SiteEntity != Defender)
            {
                eventString += SiteEntity.ToLink(link, pov) + " of ";
            }

            if (Defender == null)
            {
                eventString += "UNKNOWN";
            }
            else
            {
                eventString += Defender.ToLink(link, pov);
            }
            eventString += " and took over " + Site.ToLink(link, pov) + ". The new government was called " + NewSiteEntity.ToLink(link, pov);
            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
Пример #4
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime() + Attacker.ToLink(link, pov, this) + " defeated ";

            if (SiteEntity != null && SiteEntity != Defender)
            {
                eventString += SiteEntity.ToLink(link, pov, this) + " of ";
            }

            eventString += Defender.ToLink(link, pov, this) + " and placed " + NewLeader.ToLink(link, pov, this) + " in charge of " + Site.ToLink(link, pov, this) + ". The new government was called " + NewSiteEntity.ToLink(link, pov, this);
            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }