Ejemplo n.º 1
0
        private void DrawCommCard(Rect rect, ref int y, CommunicationDialog dialog)
        {
            Rect   r         = new Rect(10, y, rect.width - 20, 60);
            Rect   titleRect = new Rect(15, y, rect.width - 20, 60);
            string title     = dialog.CardLabel.Length > 36 ? dialog.CardLabel.Substring(0, 36) : dialog.CardLabel;

            Widgets.Label(titleRect, title);
            Text.Font = GameFont.Tiny;
            Rect rect2 = new Rect(15, y + 22, rect.width - 20, 20);

            Widgets.Label(rect2, dialog.RelatedIncident != null ? "RelatedEventCom".Translate(dialog.RelatedIncident.LabelCap) : "NoEventComm".Translate());
            rect2.y += 20;
            Widgets.Label(rect2, dialog.Faction != null ? "FactionComm".Translate(dialog.Faction.Name) : dialog.KnownFaction ? "NoFactionComm".Translate() : "NoFactionComm_D".Translate());
            Text.Font = GameFont.Small;
            Widgets.DrawHighlightIfMouseover(r);

            GUI.color = CommCardBGColor;
            Widgets.DrawHighlight(r);
            GUI.color = Color.white;
            if (Widgets.ButtonInvisible(r))
            {
                currentDialog = dialog;
            }
            y += 77;
        }
Ejemplo n.º 2
0
        public void Destroy()
        {
            if (Quests != null)
            {
                for (int i = 0; i < Quests.Count; i++)
                {
                    Quest quest = Quests[i];
                    if (quest != null)
                    {
                        if (quest.Site != null)
                        {
                            quest.Site.EndQuest(null, EndCondition.None);
                        }
                        else
                        {
                            quest.EndQuest(null, EndCondition.None);
                        }
                    }
                }
            }

            if (Dialogs != null)
            {
                for (int i = 0; i < Dialogs.Count; i++)
                {
                    CommunicationDialog dialog = Dialogs[i];
                    if (!dialog.ShowInConsole)
                    {
                        dialog.Destroy();
                    }
                }
            }

            QuestsManager.Communications.RemoveQuestPawn(this);
        }
Ejemplo n.º 3
0
        private void EventsPage(Rect inRect)
        {
            Rect rect1 = inRect;
            Rect rect2 = inRect;

            rect1.xMax   = 328;
            rect1.height = 500;

            GUI.color = MenuSectionBGBorderColor;
            Widgets.DrawBox(rect1);
            GUI.color = Color.white;

            Rect scrollVertRectFact = new Rect(0, 0, rect1.x, commDialogSliderLength);
            int  y = 10;

            Widgets.BeginScrollView(rect1, ref commSlider, scrollVertRectFact, false);
            for (int i = 0; i < communicationsDialogs.Count; i++)
            {
                CommunicationDialog comDialog = communicationsDialogs[i];

                if (comDialog.ShowInConsole)
                {
                    DrawCommCard(rect1, ref y, comDialog);
                }
            }
            Widgets.EndScrollView();

            DrawPawnCard(speaker);

            Text.Font = GameFont.Small;
            Rect rect3 = new Rect(340, rect2.yMin + 20, 610, rect2.yMax);

            DrawDialogCard(rect3);
        }
Ejemplo n.º 4
0
        public CommunicationDialogWindow(CommunicationDialog dialog, Pawn speaker, Pawn defendant)
        {
            forcePause = true;

            Speaker   = speaker;
            Defendant = defendant;
            Dialog    = dialog;

            defendant.GetQuestPawn(out QuestPawn);
        }
Ejemplo n.º 5
0
 public void RemoveCommunication(int key)
 {
     for (int i = 0; i < CommunicationDialogs.Count; i++)
     {
         CommunicationDialog dialog = CommunicationDialogs[i];
         if (dialog.id == key)
         {
             communicationDialogs.Remove(dialog);
             return;
         }
     }
 }
Ejemplo n.º 6
0
        public static CommunicationDialog MakeCommunicationDialog(string cardLabel, string description, Faction faction, IncidentDef incident, List <CommOption> options)
        {
            CommunicationDialog comDialog = new CommunicationDialog
            {
                id              = QuestsManager.Communications.UniqueIdManager.GetNextDialogID(),
                CardLabel       = cardLabel,
                Description     = description,
                Faction         = faction,
                RelatedIncident = incident,
                Options         = options
            };

            return(comDialog);
        }
Ejemplo n.º 7
0
        public CommunicationDialog AddCommunication(int id, string cardLabel, string description, Faction faction = null, IncidentDef incident = null, List <CommOption> options = null)
        {
            CommunicationDialog comDialog = new CommunicationDialog
            {
                id              = id,
                CardLabel       = cardLabel,
                Description     = description,
                Faction         = faction,
                RelatedIncident = incident,
                Options         = options
            };

            CommunicationDialogs.Add(comDialog);

            return(comDialog);
        }
Ejemplo n.º 8
0
        public void AddQuestPawn(Pawn pawn, CommunicationDialog dialog)
        {
            pawn.GetQuestPawn(out QuestPawn questPawn);
            if (questPawn != null)
            {
                if (!questPawn.Dialogs.Contains(dialog))
                {
                    questPawn.Dialogs.Add(dialog);
                }
            }
            else
            {
                questPawn      = new QuestPawn();
                questPawn.Pawn = pawn;
                questPawn.Dialogs.Add(dialog);

                QuestPawns.Add(questPawn);
            }
        }
Ejemplo n.º 9
0
        public override void DoWindowContents(Rect inRect)
        {
            Text.Font   = GameFont.Small;
            Text.Anchor = TextAnchor.UpperLeft;

            Rect rect2 = inRect;

            rect2.yMin += 35;
            tabsList.Clear();
            tabsList.Add(new TabRecord("EventsCommTab".Translate(), delegate
            {
                tab          = Tab.Events;
                currentQuest = null;
            }, tab == Tab.Events));
            tabsList.Add(new TabRecord("QuestsCommTab".Translate(), delegate
            {
                tab           = Tab.Quests;
                currentDialog = null;
            }, tab == Tab.Quests));
            tabsList.Add(new TabRecord("InteractionCommTab".Translate(), delegate
            {
                tab = Tab.Interaction;
            }, tab == Tab.Interaction));

            Widgets.DrawMenuSection(rect2);
            TabDrawer.DrawTabs(rect2, tabsList, maxTabWidth: 500);
            tabsList.Clear();

            switch (tab)
            {
            case Tab.Events:
                EventsPage(rect2);
                break;

            case Tab.Quests:
                QuestsPage(rect2);
                break;

            case Tab.Interaction:
                InteractionPage(rect2);
                break;
            }
        }
Ejemplo n.º 10
0
 public abstract void DoAction(CommunicationDialog dialog, Pawn speaker, Pawn defendant);
Ejemplo n.º 11
0
 public void AddCommunication(CommunicationDialog dialog)
 {
     CommunicationDialogs.Add(dialog);
 }
Ejemplo n.º 12
0
 public void RemoveCommunication(CommunicationDialog dialog)
 {
     CommunicationDialogs.Remove(dialog);
 }
 public CommunicationComponent_CommunicationDialogTimer(int ticks, CommunicationDialog dialog, string notification = null) : base(ticks)
 {
     this.dialog       = dialog;
     this.notification = notification;
 }