Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
LayerQuestBoard.cs
Go to the documentation of this file.
1using UnityEngine;
2
3public class LayerQuestBoard : ELayer
4{
5 public UIList list;
6
8
10
12
14
16
18
20
22
24
26
28
30
31 public Gradient gradientRank;
32
33 public override void OnInit()
34 {
36 {
38 }
39 windows[0].setting.tabs[1].disable = !ELayer._zone.IsPCFaction;
40 }
41
42 public override void OnSwitchContent(Window window)
43 {
44 switch (window.idTab)
45 {
46 case 0:
48 break;
49 case 1:
51 break;
52 case 2:
54 break;
55 }
56 WindowMenu menuRight = windows[0].menuRight;
57 menuRight.Clear();
58 if (window.idTab != 0)
59 {
60 return;
61 }
62 UIButton button = null;
63 button = menuRight.AddButton("rerollQuest".lang(GetCost().ToString() ?? ""), delegate
64 {
65 if (ELayer._zone.influence < GetCost())
66 {
67 SE.Beep();
68 Msg.Say("notEnoughInfluence");
69 }
70 else
71 {
72 SE.Dice();
73 ELayer._zone.UpdateQuests(force: true);
75 ELayer._zone.influence -= GetCost();
77 {
79 }
80 button.mainText.SetText("rerollQuest".lang(GetCost().ToString() ?? ""));
81 }
82 });
83 static int GetCost()
84 {
85 return 1;
86 }
87 }
88
89 public void RefreshQuest()
90 {
91 list.Clear();
92 list.callbacks = new UIList.Callback<Quest, ItemQuest>
93 {
94 onInstantiate = delegate(Quest a, ItemQuest b)
95 {
96 b.SetQuest(a);
97 b.button.SetOnClick(delegate
98 {
99 Close();
100 a.OnClickQuest();
101 });
102 }
103 };
105 foreach (Quest global in ELayer.game.quests.globalList)
106 {
107 if (global.IsVisibleOnQuestBoard())
108 {
109 list.Add(global);
110 }
111 }
112 foreach (Chara chara in ELayer._map.charas)
113 {
114 if (chara.quest != null && !ELayer.game.quests.list.Contains(chara.quest) && !chara.IsPCParty && chara.memberType == FactionMemberType.Default && chara.quest.IsVisibleOnQuestBoard())
115 {
116 list.Add(chara.quest);
117 }
118 }
119 list.Refresh();
120 textQuestLimit.SetText("questLimit".lang(ELayer.game.quests.CountRandomQuest().ToString() ?? "", 5.ToString() ?? ""));
121 }
122
123 public void RefreshHire()
124 {
126 list.Clear();
127 list.callbacks = new UIList.Callback<HireInfo, ButtonChara>
128 {
129 onClick = delegate(HireInfo a, ButtonChara b)
130 {
131 a.isNew = false;
132 GameLang.refDrama1 = "(" + "money2".lang() + ": " + CalcGold.Hire(a.chara) + ")";
133 GameLang.refDrama2 = ELayer.pc.things.Find("ticket_resident")?.Name ?? "";
134 a.chara.ShowDialog("_chara", "4-1").onKill.AddListener(RefreshHire);
135 },
136 onInstantiate = delegate(HireInfo a, ButtonChara b)
137 {
138 Chara chara = a.chara;
139 b.SetChara(chara, ButtonChara.Mode.Hire);
140 int cost = CalcGold.Hire(chara);
141 b.item.text1.text = cost.ToString().TagColorGoodBad(() => ELayer.pc.GetCurrency("money2") >= cost || ELayer.pc.things.Find("ticket_resident") != null);
142 b.item.text2.text = ((a.Days == -1) ? "-" : (a.Days.ToString() ?? ""));
143 HintIcon[] componentsInChildren = b.layoutTag.GetComponentsInChildren<HintIcon>();
144 for (int i = 0; i < componentsInChildren.Length; i++)
145 {
146 componentsInChildren[i].onPointerDown = delegate
147 {
148 list.callbacks.OnClick(a, b);
149 };
150 }
151 b.textHobby.text = chara.GetTextHobby();
152 b.textWork.text = chara.GetTextWork();
153 b.textLifeStyle.text = "lifestyle".lang() + ": " + ("lifestyle_" + chara.idTimeTable).lang();
154 b.item.image1.SetActive(a.isNew);
155 },
156 onRefresh = null
157 };
159 {
160 if (!item.chara.IsHomeMember() && (item.chara.currentZone == null || !item.chara.currentZone.IsPlayerFaction))
161 {
162 list.Add(item);
163 }
164 }
165 list.Refresh();
166 this.RebuildLayout(recursive: true);
167 }
168
169 public void RefreshRanking()
170 {
172 list.Clear();
173 list.callbacks = new UIList.Callback<Chara, ButtonChara>
174 {
175 onClick = delegate
176 {
177 },
178 onRedraw = delegate(Chara a, ButtonChara b, int i)
179 {
180 b.SetChara(a, ButtonChara.Mode.Ranking);
181 int advRank = a.trait.GetAdvRank();
183 b.textAlias.color = gradientRank.Evaluate(0.1f * (float)advRank);
184 b.item.image2.SetActive(a.IsPCFaction);
185 bool enable = a.GetInt(111) > 0;
186 b.transDefeated.SetActive(enable);
187 },
188 onList = delegate
189 {
190 foreach (Chara value in ELayer.game.cards.globalCharas.Values)
191 {
192 if (value.trait.ShowAdvRank)
193 {
194 list.Add(value);
195 }
196 }
197 list.objects.Sort((object a, object b) => GetSortVal(b as Chara) - GetSortVal(a as Chara));
198 },
199 onRefresh = null
200 };
201 list.List();
202 int num = list.objects.IndexOf(ELayer.pc);
203 if (num != -1)
204 {
205 list.dsv.scrollByItemIndex(num);
206 list.Refresh();
207 }
208 this.RebuildLayout(recursive: true);
209 static int GetSortVal(Chara c)
210 {
211 return c.trait.GetAdvRank() * 10000 + Mathf.Clamp(c.LV, 0, 1000) + ((c.trait is TraitAdventurerBacker) ? 1000 : 0);
212 }
213 }
214
215 public override void OnKill()
216 {
217 if (ELayer.Branch != null)
218 {
220 }
221 }
222}
int GetInt(int id, int? defaultInt=null)
Definition: BaseCard.cs:25
UIList.ICallback callbacks
Definition: BaseList.cs:13
Transform transDefeated
Definition: ButtonChara.cs:31
new UIItem item
Definition: ButtonChara.cs:29
void SetChara(Chara c, Mode m)
Definition: ButtonChara.cs:35
UIText textAlias
Definition: ButtonChara.cs:19
LayoutGroup layoutTag
Definition: ButtonChara.cs:33
static int Hire(Chara c)
Definition: CalcGold.cs:8
GlobalCharaList globalCharas
Definition: CardManager.cs:46
string Name
Definition: Card.cs:2013
int GetCurrency(string id="money")
Definition: Card.cs:3652
ThingContainer things
Definition: Card.cs:34
int LV
Definition: Card.cs:370
Definition: Chara.cs:10
new TraitChara trait
Definition: Chara.cs:488
void ShowDialog()
Definition: Chara.cs:6368
override bool IsPCFaction
Definition: Chara.cs:656
Quest quest
Definition: Chara.cs:24
string idTimeTable
Definition: Chara.cs:453
string GetTextWork(bool simple=false)
Definition: Chara.cs:8235
string GetTextHobby(bool simple=false)
Definition: Chara.cs:8225
Definition: ELayer.cs:4
static Chara pc
Definition: ELayer.cs:15
static Player player
Definition: ELayer.cs:13
static Game game
Definition: ELayer.cs:9
static Map _map
Definition: ELayer.cs:23
static FactionBranch Branch
Definition: ELayer.cs:17
static Zone _zone
Definition: ELayer.cs:25
void ClearNewRecruits()
void UpdateReqruits(bool clear=false)
List< HireInfo > listRecruit
CardManager cards
Definition: Game.cs:155
QuestManager quests
Definition: Game.cs:179
Action onPointerDown
Definition: HintIcon.cs:15
Chara chara
Definition: HireInfo.cs:6
int Days
Definition: HireInfo.cs:29
bool isNew
Definition: HireInfo.cs:9
void SetQuest(Quest q)
Definition: ItemQuest.cs:23
UIButton button
Definition: ItemQuest.cs:7
UIDynamicList listRanking
UICurrency uiCurrency
Gradient gradientRank
override void OnKill()
override void OnInit()
override void OnSwitchContent(Window window)
List< Window > windows
Definition: Layer.cs:116
virtual void Close()
Definition: Layer.cs:463
List< Chara > charas
Definition: Map.cs:81
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
int questRerollCost
Definition: Player.cs:769
List< Quest > list
Definition: QuestManager.cs:11
int CountRandomQuest()
List< Quest > globalList
Definition: QuestManager.cs:14
Definition: Quest.cs:7
virtual void OnClickQuest()
Definition: Quest.cs:422
virtual bool IsVisibleOnQuestBoard()
Definition: Quest.cs:292
int influence
Definition: Spatial.cs:214
Thing Find(int uid)
string GetAdvRankText()
Definition: TraitChara.cs:174
virtual bool ShowAdvRank
Definition: TraitChara.cs:95
int GetAdvRank()
Definition: TraitChara.cs:160
UIText mainText
Definition: UIButton.cs:102
Image image2
Definition: UIItem.cs:16
Image image1
Definition: UIItem.cs:14
Definition: UIList.cs:9
override void Clear()
Definition: UIList.cs:349
override void Add(object item)
Definition: UIList.cs:302
virtual void Refresh(bool highlightLast=false)
Definition: UIList.cs:424
void Sort()
Definition: UIList.cs:697
override void List()
Definition: UIList.cs:717
Definition: UIText.cs:6
void SetText(string s)
Definition: UIText.cs:159
void Clear()
Definition: WindowMenu.cs:44
UIButton AddButton(string idLang, Action< UIButton > onClick, Sprite sprite=null, string idButton="Default")
Definition: WindowMenu.cs:54
Definition: Window.cs:13
int idTab
Definition: Window.cs:694
FactionBranch branch
Definition: Zone.cs:34
bool IsPCFaction
Definition: Zone.cs:464
void UpdateQuests(bool force=false)
Definition: Zone.cs:3320