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; }
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); }
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); }
public CommunicationDialogWindow(CommunicationDialog dialog, Pawn speaker, Pawn defendant) { forcePause = true; Speaker = speaker; Defendant = defendant; Dialog = dialog; defendant.GetQuestPawn(out QuestPawn); }
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; } } }
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); }
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); }
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); } }
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; } }
public abstract void DoAction(CommunicationDialog dialog, Pawn speaker, Pawn defendant);
public void AddCommunication(CommunicationDialog dialog) { CommunicationDialogs.Add(dialog); }
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; }