コード例 #1
0
        protected override void RunInt()
        {
            Slate slate = QuestGen.slate;
            QuestPart_MechCluster questPart_MechCluster = new QuestPart_MechCluster();

            questPart_MechCluster.inSignal  = QuestGenUtility.HardcodedSignalWithQuestID(inSignal.GetValue(slate)) ?? QuestGen.slate.Get <string>("inSignal");
            questPart_MechCluster.tag       = QuestGenUtility.HardcodedTargetQuestTagWithQuestID(tag.GetValue(slate));
            questPart_MechCluster.mapParent = slate.Get <Map>("map").Parent;
            questPart_MechCluster.sketch    = GenerateSketch(slate);
            QuestGen.quest.AddPart(questPart_MechCluster);
            string text = "";

            if (questPart_MechCluster.sketch.pawns != null)
            {
                text += PawnUtility.PawnKindsToLineList(questPart_MechCluster.sketch.pawns.Select((MechClusterSketch.Mech m) => m.kindDef), "  - ", ColoredText.ThreatColor);
            }
            string[] array = (from t in questPart_MechCluster.sketch.buildingsSketch.Things
                              where GenHostility.IsDefMechClusterThreat(t.def)
                              group t by t.def.label).Select(delegate(IGrouping <string, SketchThing> grp)
            {
                int num = grp.Count();
                return(num + " " + ((num > 1) ? Find.ActiveLanguageWorker.Pluralize(grp.Key, num) : grp.Key));
            }).ToArray();
            if (array.Any())
            {
                if (text != "")
                {
                    text += "\n";
                }
                text += array.ToLineList(ColoredText.ThreatColor, "  - ");
            }
            if (text != "")
            {
                QuestGen.AddQuestDescriptionRules(new List <Rule>
                {
                    new Rule_String("allThreats", text)
                });
            }
        }