Ejemplo n.º 1
0
        public HistoricalEventRelationShip(List <Property> properties, World world) : base(properties, world)
        {
            Type      = "historical event relationship";
            Seconds72 = -1;
            foreach (Property property in properties)
            {
                switch (property.Name)
                {
                case "event":
                    Id = Convert.ToInt32(property.Value);
                    break;

                case "source_hf":
                    SourceHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value));
                    break;

                case "target_hf":
                    TargetHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value));
                    break;

                case "year":
                    Year = Convert.ToInt32(property.Value);
                    break;

                case "relationship":
                    RelationshipType = VagueRelationship.GetVagueRelationshipTypeByProperty(property, property.Value);
                    break;
                }
            }

            SourceHf.AddEvent(this);
            TargetHf.AddEvent(this);
        }
Ejemplo n.º 2
0
        public Sabotage(List <Property> properties, World world)
            : base(properties, world)
        {
            foreach (Property property in properties)
            {
                switch (property.Name)
                {
                case "saboteur_hfid":
                    SaboteurHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value));
                    break;

                case "target_hfid":
                    TargetHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value));
                    break;

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

            SaboteurHf.AddEvent(this);
            TargetHf.AddEvent(this);
            Site.AddEvent(this);
        }
Ejemplo n.º 3
0
        public HfInterrogated(List <Property> properties, World world) : base(properties, world)
        {
            foreach (Property property in properties)
            {
                switch (property.Name)
                {
                case "target_hfid": TargetHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;

                case "interrogator_hfid": InterrogatorHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;

                case "arresting_enid": ArrestingEntity = world.GetEntity(Convert.ToInt32(property.Value)); break;

                case "held_firm_in_interrogation": property.Known = true; HeldFirmInInterrogation = true; break;

                case "wanted_and_recognized": property.Known = true; WantedAndRecognized = true; break;
                }
            }

            TargetHf.AddEvent(this);
            if (InterrogatorHf != TargetHf)
            {
                InterrogatorHf.AddEvent(this);
            }
            ArrestingEntity.AddEvent(this);
        }
Ejemplo n.º 4
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            eventString += FramerHf.ToLink(link, pov, this);
            eventString += " attempted to frame ";
            eventString += TargetHf.ToLink(link, pov, this);
            eventString += $" for {Crime}";
            if (PlotterHf != null)
            {
                eventString += " at the behest of ";
                eventString += PlotterHf.ToLink(link, pov, this);
            }
            eventString += " by fooling ";
            eventString += FooledHf.ToLink(link, pov, this);
            if (ConvicterEntity != null)
            {
                eventString += " and ";
                eventString += ConvicterEntity.ToLink(link, pov, this);
            }
            eventString += " with fabricated evidence, but nothing came from it";
            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
Ejemplo n.º 5
0
        public FailedFrameAttempt(List <Property> properties, World world) : base(properties, world)
        {
            foreach (Property property in properties)
            {
                switch (property.Name)
                {
                case "target_hfid": TargetHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;

                case "convicter_enid": ConvicterEntity = world.GetEntity(Convert.ToInt32(property.Value)); break;

                case "fooled_hfid": FooledHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;

                case "framer_hfid": FramerHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;

                case "plotter_hfid": PlotterHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;

                case "crime": Crime = property.Value; break;
                }
            }

            TargetHf.AddEvent(this);
            ConvicterEntity.AddEvent(this);
            if (FooledHf != TargetHf)
            {
                FooledHf.AddEvent(this);
            }
            if (FramerHf != FooledHf)
            {
                FramerHf.AddEvent(this);
            }
            PlotterHf.AddEvent(this);
        }
Ejemplo n.º 6
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            switch (RelationshipType)
            {
            case VagueRelationshipType.JealousObsession:
                eventString += SourceHf != null?SourceHf.ToLink(link, pov, this) : "UNKNOWN HISTORICAL FIGURE";

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

                break;

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

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

                eventString += " as a capable ";
                eventString += RelationshipType.GetDescription().ToLower();
                break;

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

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

                eventString += " broke up";
                break;

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

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

                eventString += " became ";
                eventString += RelationshipType.GetDescription().ToLower() + "s";
                break;
            }

            if (_site != null)
            {
                eventString += " in ";
                eventString += _site.ToLink(link, pov, this);
            }
            eventString += ".";
            return(eventString);
        }
Ejemplo n.º 7
0
        public override string Print(bool link = true, DwarfObject pov = null)
        {
            string eventString = GetYearTime();

            eventString += SaboteurHf.ToLink(link, pov, this);
            eventString += " sabotaged the activities of ";
            eventString += TargetHf.ToLink(link, pov, this);
            if (Site != null)
            {
                eventString += " at ";
                eventString += Site.ToLink(link, pov, this);
            }
            eventString += PrintParentCollection(link, pov);
            eventString += ".";
            return(eventString);
        }
Ejemplo n.º 8
0
        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);
        }
        // Similar to hfs formed intrigue relationship
        public FailedIntrigueCorruption(List <Property> properties, World world) : base(properties, world)
        {
            foreach (Property property in properties)
            {
                switch (property.Name)
                {
                case "corruptor_hfid": CorruptorHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;

                case "target_hfid": TargetHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;

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

                case "subregion_id": Region = world.GetRegion(Convert.ToInt32(property.Value)); break;

                case "feature_layer_id": UndergroundRegion = world.GetUndergroundRegion(Convert.ToInt32(property.Value)); break;

                case "failed_judgment_test": property.Known = true; FailedJudgmentTest = true; break;

                case "action":
                    switch (property.Value.Replace("_", " "))
                    {
                    case "bribe official": Action = IntrigueAction.BribeOfficial; break;

                    case "induce to embezzle": Action = IntrigueAction.InduceToEmbezzle; break;

                    case "corrupt in place": Action = IntrigueAction.CorruptInPlace; break;

                    case "bring into network": Action = IntrigueAction.BringIntoNetwork; break;

                    default:
                        property.Known = false;
                        break;
                    }
                    break;

                case "method":
                    switch (property.Value.Replace("_", " "))
                    {
                    case "intimidate": Method = IntrigueMethod.Intimidate; break;

                    case "flatter": Method = IntrigueMethod.Flatter; break;

                    case "bribe": Method = IntrigueMethod.Bribe; break;

                    case "precedence": Method = IntrigueMethod.Precedence; break;

                    case "offer immortality": Method = IntrigueMethod.OfferImmortality; break;

                    case "religious sympathy": Method = IntrigueMethod.ReligiousSympathy; break;

                    case "blackmail over embezzlement": Method = IntrigueMethod.BlackmailOverEmbezzlement; break;

                    case "revenge on grudge": Method = IntrigueMethod.RevengeOnGrudge; break;

                    default:
                        property.Known = false;
                        break;
                    }
                    break;

                case "top_facet": TopFacet = property.Value; break;

                case "top_facet_rating": TopFacetRating = Convert.ToInt32(property.Value); break;

                case "top_facet_modifier": TopFacetModifier = Convert.ToInt32(property.Value); break;

                case "top_value": TopValue = property.Value; break;

                case "top_value_rating": TopValueRating = Convert.ToInt32(property.Value); break;

                case "top_value_modifier": TopValueModifier = Convert.ToInt32(property.Value); break;

                case "top_relationship_factor": TopRelationshipFactor = property.Value; break;

                case "top_relationship_rating": TopRelationshipRating = Convert.ToInt32(property.Value); break;

                case "top_relationship_modifier": TopRelationshipModifier = Convert.ToInt32(property.Value); break;

                case "ally_defense_bonus": AllyDefenseBonus = Convert.ToInt32(property.Value); break;

                case "coconspirator_bonus": CoConspiratorBonus = Convert.ToInt32(property.Value); break;

                case "lure_hfid": LureHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;

                case "corruptor_identity": CorruptorIdentityId = Convert.ToInt32(property.Value); break;

                case "target_identity": TargetIdentityId = Convert.ToInt32(property.Value); break;

                case "relevant_entity_id": RelevantEntity = world.GetEntity(Convert.ToInt32(property.Value)); break;

                case "relevant_position_profile_id": RelevantPositionProfileId = Convert.ToInt32(property.Value); break;

                case "relevant_id_for_method": RelevantIdForMethod = Convert.ToInt32(property.Value); break;
                }
            }

            CorruptorHf.AddEvent(this);
            TargetHf.AddEvent(this);
            Site.AddEvent(this);
            Region.AddEvent(this);
            UndergroundRegion.AddEvent(this);
            LureHf.AddEvent(this);
        }
        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);
        }
Ejemplo n.º 11
0
        public HfConvicted(List <Property> properties, World world) : base(properties, world)
        {
            foreach (Property property in properties)
            {
                switch (property.Name)
                {
                case "target_hfid": TargetHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;

                case "convicted_hfid": ConvictedHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;

                case "convicter_enid": ConvicterEntity = world.GetEntity(Convert.ToInt32(property.Value)); break;

                case "crime": Crime = property.Value; break;

                case "prison_months": PrisonMonth = Convert.ToInt32(property.Value); break;

                case "fooled_hfid": FooledHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;

                case "framer_hfid": FramerHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;

                case "death_penalty": property.Known = true; DeathPenalty = true; break;

                case "beating": property.Known = true; Beating = true; break;

                case "hammerstrokes": Hammerstrokes = Convert.ToInt32(property.Value); break;

                case "wrongful_conviction": property.Known = true; WrongfulConviction = true; break;

                case "corrupt_convicter_hfid": CorruptConvictorHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;

                case "plotter_hfid": PlotterHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;

                case "exiled": property.Known = true; Exiled = true; break;

                case "held_firm_in_interrogation": property.Known = true; HeldFirmInInterrogation = true; break;

                case "convict_is_contact": property.Known = true; ConvictIsContact = true; break;

                case "surveiled_convicted": property.Known = true; SurveiledConvicted = true; break;

                case "surveiled_coconspirator": property.Known = true; SurveiledCoConspirator = true; break;

                case "surveiled_contact": property.Known = true; SurveiledContact = true; break;

                case "surveiled_target": property.Known = true; SurveiledContact = true; break;

                case "confessed_after_apb_arrest_enid": ConfessedAfterApbArrestEntity = world.GetEntity(Convert.ToInt32(property.Value)); break;

                case "coconspirator_hfid": CoConspiratorHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;

                case "implicated_hfid": ImplicatedHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;

                case "interrogator_hfid": InterrogatorHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;

                case "contact_hfid": ContactHf = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;
                }
            }
            TargetHf.AddEvent(this);
            ConvictedHf.AddEvent(this);
            ConvicterEntity.AddEvent(this);
            if (FooledHf != ConvictedHf)
            {
                FooledHf.AddEvent(this);
            }
            FramerHf.AddEvent(this);
            CorruptConvictorHf.AddEvent(this);
            if (PlotterHf != CorruptConvictorHf)
            {
                PlotterHf.AddEvent(this);
            }

            if (ConvicterEntity != ConfessedAfterApbArrestEntity)
            {
                ConfessedAfterApbArrestEntity.AddEvent(this);
            }
            CoConspiratorHf.AddEvent(this);
            ImplicatedHf.AddEvent(this);
            InterrogatorHf.AddEvent(this);
            if (ImplicatedHf != ContactHf)
            {
                ContactHf.AddEvent(this);
            }
        }
Ejemplo n.º 12
0
        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);
        }