Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
ContentQuest.cs
Go to the documentation of this file.
1using System;
2using UnityEngine;
3
4public class ContentQuest : EContent
5{
6 public UIList list;
7
9
11
13
15
17
19
21
23
25
26 public override void OnSwitchContent(int idTab)
27 {
28 list.sortMode = UIList.SortMode.ByValue;
29 list.callbacks = new UIList.Callback<Quest, ItemGeneral>
30 {
31 onInstantiate = delegate(Quest a, ItemGeneral b)
32 {
33 b.SetSound();
34 string text = a.GetTitle();
36 {
37 text = text + "(" + a.phase + ")";
38 }
40 b.SetSubText(a.TextDeadline, 260, FontColor.Default, TextAnchor.MiddleRight);
41 b.button2.SetActive(EClass.debug.enable && a.CanAutoAdvance);
43 {
44 b.button2.SetOnClick(delegate
45 {
46 if (a.task != null)
47 {
48 a.CompleteTask();
49 }
50 else if (a is QuestSequence)
51 {
52 a.NextPhase();
53 }
54 else
55 {
56 a.Complete();
57 }
58 list.List();
59 });
60 }
61 b.button3.SetOnClick(delegate
62 {
63 a.track = !a.track;
65 {
66 EClass.player.questTracker = true;
67 EClass.ui.widgets.ActivateWidget("QuestTracker");
68 WidgetHotbar.RefreshButtons();
69 }
71 list.Select(a);
72 SelectQuest(a);
74 });
75 },
76 onClick = delegate(Quest a, ItemGeneral b)
77 {
78 SelectQuest(a);
79 },
80 onList = delegate
81 {
82 foreach (Quest item in EClass.game.quests.list)
83 {
84 list.Add(item);
85 }
86 },
87 onSort = (Quest a, UIList.SortMode m) => -EClass.sources.quests.rows.IndexOf(a.source)
88 };
89 list.List();
92 }
93
94 public void RefreshTrackButtons()
95 {
96 foreach (UIList.ButtonPair button in list.buttons)
97 {
98 ClassExtension.SetActive(enable: (button.obj as Quest).track, c: (button.component as ItemGeneral).button3.icon);
99 }
100 }
101
102 public void SelectQuest(Quest q)
103 {
104 buttonAbandon.SetActive(q.CanAbandon);
105 buttonAbandon.SetOnClick(delegate
106 {
107 Dialog.YesNo("dialog_abandonQuest", delegate
108 {
109 Msg.Say("questAbandon", q.GetTitle());
110 q.Fail();
112 });
113 });
114 textClient.text = q.person.NameBraced;
116 string text = q.GetDetail(onJournal: true);
117 if (EClass.debug.showExtra && q.person != null)
118 {
119 text += Environment.NewLine;
120 text = text + q.person.id + "/" + q.person.name + "/" + q.person.chara?.ToString() + Environment.NewLine;
121 if (q is QuestDeliver questDeliver)
122 {
123 text = text + questDeliver.uidDest + "/" + questDeliver.DestChara;
124 }
125 }
126 textDetail.SetText(text);
127 textHours.text = q.TextDeadline;
128 textZone.text = q.ClientZone?.Name ?? "-";
130 this.RebuildLayout(recursive: true);
131 }
132}
FontColor
Definition: FontColor.cs:2
if(item3.idFile==idFirstFile &&item3.id==idFirstTopic)
Definition: UIBook.cs:627
override string ToString()
Definition: Chara.cs:981
static void SetActive(this Component c, bool enable)
void SelectQuest(Quest q)
override void OnSwitchContent(int idTab)
Definition: ContentQuest.cs:26
UIText textClient
Definition: ContentQuest.cs:8
UIList list
Definition: ContentQuest.cs:6
UIText textTitle
Definition: ContentQuest.cs:10
UIText textZone
Definition: ContentQuest.cs:20
void RefreshTrackButtons()
Definition: ContentQuest.cs:94
UIText textReward
Definition: ContentQuest.cs:18
UIText textHours
Definition: ContentQuest.cs:14
UIButton buttonAbandon
Definition: ContentQuest.cs:24
Portrait portrait
Definition: ContentQuest.cs:22
UIText textDetail
Definition: ContentQuest.cs:12
UIText textNote
Definition: ContentQuest.cs:16
bool showExtra
Definition: CoreDebug.cs:167
bool enable
Definition: CoreDebug.cs:285
Definition: Dialog.cs:7
static Dialog YesNo(string langDetail, Action actionYes, Action actionNo=null, string langYes="yes", string langNo="no")
Definition: Dialog.cs:244
Definition: EClass.cs:5
static Game game
Definition: EClass.cs:8
static SourceManager sources
Definition: EClass.cs:42
static CoreDebug debug
Definition: EClass.cs:48
QuestManager quests
Definition: Game.cs:179
void SetSound(SoundData data=null)
Definition: ItemGeneral.cs:142
UIButton SetSubText(string lang, int x, FontColor c=FontColor.Default, TextAnchor align=TextAnchor.MiddleLeft)
Definition: ItemGeneral.cs:119
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
string NameBraced
Definition: Person.cs:58
Chara chara
Definition: Person.cs:36
void SetPerson(Person p)
Definition: Portrait.cs:120
List< Quest > list
Definition: QuestManager.cs:11
Definition: Quest.cs:7
string TextDeadline
Definition: Quest.cs:136
Person person
Definition: Quest.cs:73
virtual bool CanAbandon
Definition: Quest.cs:177
void Fail()
Definition: Quest.cs:438
Zone ClientZone
Definition: Quest.cs:81
virtual string GetTitle()
Definition: Quest.cs:608
virtual bool CanAutoAdvance
Definition: Quest.cs:235
string GetRewardText()
Definition: Quest.cs:665
virtual string GetDetail(bool onJournal=false)
Definition: Quest.cs:628
QuestTask task
Definition: Quest.cs:76
void NextPhase()
Definition: Quest.cs:567
void Complete()
Definition: Quest.cs:468
bool track
Definition: Quest.cs:70
virtual SourceQuest.Row source
Definition: Quest.cs:107
virtual string TitlePrefix
Definition: Quest.cs:233
SourceQuest quests
virtual string Name
Definition: Spatial.cs:495
UIText mainText
Definition: UIButton.cs:102
UIButton button3
Definition: UIItem.cs:22
UIButton button1
Definition: UIItem.cs:18
UIButton button2
Definition: UIItem.cs:20
Definition: UIList.cs:9
List< ButtonPair > buttons
Definition: UIList.cs:244
List< object > items
Definition: UIList.cs:241
void Select(int index=0, bool invoke=false)
Definition: UIList.cs:644
SortMode
Definition: UIList.cs:27
override void Add(object item)
Definition: UIList.cs:302
override void List()
Definition: UIList.cs:717
Definition: UIText.cs:6
void SetText(string s)
Definition: UIText.cs:159
static WidgetQuestTracker Instance