Ejemplo n.º 1
0
        public override void OpenLetter()
        {
            DiaNode diaNode = new DiaNode(text);

            diaNode.options.AddRange(Choices);
            Dialog_NodeTreeWithFactionInfo window = new Dialog_NodeTreeWithFactionInfo(diaNode, relatedFaction, delayInteractivity: false, radioMode, title);

            Find.WindowStack.Add(window);
        }
Ejemplo n.º 2
0
        public void ExposeData()
        {
            Scribe_Values.Look(ref id, "id");

            if (Scribe.mode == LoadSaveMode.Saving)
            {
                Scribe_References.Look(ref dialog.faction, "faction");
                ScribeUtil.LookValue(dialog.soundAmbient == SoundDefOf.RadioComms_Ambience, "radioMode");
                Scribe_Values.Look(ref dialog.title, "title");

                var nodes = dialog.curNode.TraverseNodes().ToList();

                saveNodes = new List <DiaNodeSave>();
                foreach (var node in nodes)
                {
                    saveNodes.Add(new DiaNodeSave(this, node));
                }

                fieldValues = nodes
                              .SelectMany(n => n.options)
                              .SelectMany(o => DelegateValues(o.action).Concat(DelegateValues(o.linkLateBind)))
                              .Distinct(new FieldSaveEquality())
                              .ToList();

                Scribe_Collections.Look(ref fieldValues, "fieldValues", LookMode.Deep);
                Scribe_Collections.Look(ref saveNodes, "nodes", LookMode.Deep);

                fieldValues = null;
                saveNodes   = null;
            }
            else
            {
                Scribe_References.Look(ref faction, "faction");
                Scribe_Values.Look(ref radioMode, "radioMode");
                Scribe_Values.Look(ref title, "title");

                Scribe_Collections.Look(ref fieldValues, "fieldValues", LookMode.Deep, this);
                Scribe_Collections.Look(ref saveNodes, "nodes", LookMode.Deep, this);
            }

            if (Scribe.mode == LoadSaveMode.PostLoadInit)
            {
                dialog = new Dialog_NodeTreeWithFactionInfo(saveNodes[0].node, faction, false, radioMode, title)
                {
                    doCloseX      = true,
                    closeOnCancel = true
                };

                faction     = null;
                saveNodes   = null;
                fieldValues = null;
            }
        }
Ejemplo n.º 3
0
        public override void OpenLetter()
        {
            DiaNode diaNode = new DiaNode(this.text);

            diaNode.options.AddRange(this.Choices);
            DiaNode nodeRoot       = diaNode;
            Faction relatedFaction = this.relatedFaction;
            bool    flag           = this.radioMode;
            Dialog_NodeTreeWithFactionInfo window = new Dialog_NodeTreeWithFactionInfo(nodeRoot, relatedFaction, false, flag, this.title);

            Find.WindowStack.Add(window);
        }
Ejemplo n.º 4
0
 public PersistentDialog(Map map, Dialog_NodeTreeWithFactionInfo dialog) : this(map)
 {
     id          = Multiplayer.GlobalIdBlock.NextId();
     this.dialog = dialog;
 }