Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
ContentCodex.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using UnityEngine;
4
5public class ContentCodex : EContent
6{
8
10
12
14
16
18
20
22
23 public UINote note;
24
26
27 public Transform transInfo;
28
30
32
34
35 public Vector2 pivot;
36
37 public Vector2 localPos;
38
39 public override void OnSwitchContent(int idTab)
40 {
41 if (list.isBuilt)
42 {
43 if (currentCodex != null)
44 {
47 }
48 }
49 else
50 {
53 {
54 EClass.game.config.autoCollectCard = a;
55 });
56 }
57 }
58
59 public void RefreshList()
60 {
61 currentCodex = null;
62 list.Clear();
63 list.callbacks = new UIList.Callback<CodexCreature, ButtonGrid>
64 {
65 onClick = delegate(CodexCreature a, ButtonGrid b)
66 {
67 currentCodex = a;
69 list.Select(a);
70 },
71 onRedraw = delegate(CodexCreature a, ButtonGrid b, int i)
72 {
73 b.refObj = a.source;
75 b.subText.text = a.numCard.ToString() ?? "";
76 b.subText2.SetText(a.source._id + ".");
77 if (EClass.core.uiScale < 1.2f)
78 {
79 b.icon.transform.localScale = new Vector3(1f / EClass.core.uiScale, 1f / EClass.core.uiScale, 1f);
80 }
81 int idSkin = ((EClass.core.config.game.antiSpider && a.source.race == "spider" && a.source.tiles.Length > 1) ? 1 : 0);
82 a.SetImage(b.icon, idSkin);
83 },
84 onList = delegate
85 {
86 List<CodexCreature> list = new List<CodexCreature>();
87 foreach (KeyValuePair<string, CodexCreature> creature in EClass.player.codex.creatures)
88 {
89 if (creature.Value.numCard > 0 && EClass.sources.charas.map.ContainsKey(creature.Value.id))
90 {
91 list.Add(creature.Value);
92 }
93 }
94 list.Sort((CodexCreature a, CodexCreature b) => a.source._id - b.source._id);
95 foreach (CodexCreature item in list)
96 {
97 this.list.Add(item);
98 }
99 }
100 };
101 list.List();
102 bool flag = list.objects.Count > 0;
103 if (flag)
104 {
105 list.dsv.scrollByItemIndex(0);
106 list.Select(list.objects[0], invoke: true);
108 }
109 transInfo.SetActive(flag);
110 buttonTake.SetActive(flag);
111 }
112
113 public void RefreshInfo()
114 {
115 CodexCreature codexCreature = currentCodex;
116 if (codexCreature != null)
117 {
118 UINote uINote = note;
119 SourceChara.Row source = codexCreature.source;
120 uINote.Clear();
121 UIItem uIItem = uINote.AddHeader("HeaderCodex", codexCreature.Name.Replace("『", Environment.NewLine + "『"));
122 int idSkin = ((EClass.core.config.game.antiSpider && codexCreature.source.race == "spider" && codexCreature.source.tiles.Length > 1) ? 1 : 0);
123 codexCreature.SetImage(uIItem.image1, idSkin);
124 uIItem.text2.text = "Lv." + source.LV + Environment.NewLine + EClass.sources.races.map[source.race].GetName().ToTitleCase(wholeText: true) + Environment.NewLine + EClass.sources.jobs.map[source.job].GetName().ToTitleCase(wholeText: true);
125 uIItem.image1.rectTransform.pivot = pivot;
126 uIItem.image1.rectTransform.localPosition = localPos;
127 uIItem.image1.rectTransform.localScale = new Vector3(0f - uIItem.image1.transform.localScale.x, uIItem.image1.transform.localScale.y, 1f);
128 uINote.Build();
129 textOwn.text = codexCreature.numCard.ToString() ?? "";
130 textValue.text = codexCreature.source.value.ToString() ?? "";
131 textKills.text = codexCreature.kills.ToString() ?? "";
132 textWeakspot.SetText((codexCreature.weakspot == 0) ? "undiscovered".lang() : "discovered".lang(codexCreature.weakspot.ToString() ?? ""), (codexCreature.weakspot == 0) ? FontColor.Default : FontColor.Good);
133 textSpawns.text = codexCreature.spawns.ToString() ?? "";
134 textBonus.text = codexCreature.GetTextBonus();
135 currentCodex = codexCreature;
136 }
137 }
138
139 public void OnClickAddCards()
140 {
141 List<Thing> list = EClass.pc.things.List((Thing c) => c.id == "figure3", onlyAccessible: true);
142 int num = 0;
143 if (list.Count > 0)
144 {
145 foreach (Thing item in list)
146 {
147 EClass.player.codex.AddCard(item.c_idRefCard, item.Num);
148 num += item.Num;
149 item.Destroy();
150 RefreshList();
151 }
152 SE.Play("use_card");
153 Msg.Say("addedCards", num, num.ToString() ?? "");
154 }
155 else
156 {
157 SE.BeepSmall();
158 Msg.Say("noCard");
159 }
160 RefreshInfo();
161 }
162
163 public static void Collect(Thing t)
164 {
166 SE.Play("use_card");
167 Msg.Say("addedCards", t.Num, t.Num.ToString() ?? "");
168 t.Destroy();
169 }
170
171 public void OnClickGetCard()
172 {
174 Thing thing = ThingGen.Create("figure3");
176 bool autoCollectCard = EClass.game.config.autoCollectCard;
177 EClass.game.config.autoCollectCard = false;
178 EClass.pc.Pick(thing);
179 EClass.game.config.autoCollectCard = autoCollectCard;
180 if (currentCodex.numCard == 0)
181 {
182 RefreshList();
183 return;
184 }
185 list.Redraw();
187 RefreshInfo();
188 }
189}
FontColor
Definition: FontColor.cs:2
bool isBuilt
Definition: BaseList.cs:36
void MakeFigureFrom(string id)
Definition: Card.cs:5089
string id
Definition: Card.cs:31
void Destroy()
Definition: Card.cs:4538
ThingContainer things
Definition: Card.cs:34
int Num
Definition: Card.cs:154
string c_idRefCard
Definition: Card.cs:1637
Thing Pick(Thing t, bool msg=true, bool tryStack=true)
Definition: Chara.cs:3920
SourceChara.Row source
string GetTextBonus()
void SetImage(Image image, int idSkin=0, bool nativeSize=true)
void AddCard(string id, int num=1)
Definition: CodexManager.cs:31
Dictionary< string, CodexCreature > creatures
Definition: CodexManager.cs:7
Vector2 localPos
Definition: ContentCodex.cs:37
static void Collect(Thing t)
UIText textValue
Definition: ContentCodex.cs:13
UIText textBonus
Definition: ContentCodex.cs:21
void RefreshInfo()
override void OnSwitchContent(int idTab)
Definition: ContentCodex.cs:39
UIButton buttonAddCards
Definition: ContentCodex.cs:31
UIButton buttonTake
Definition: ContentCodex.cs:29
CodexCreature currentCodex
Definition: ContentCodex.cs:25
void RefreshList()
Definition: ContentCodex.cs:59
UIText textSpawns
Definition: ContentCodex.cs:19
UIButton buttonToggleCollect
Definition: ContentCodex.cs:33
void OnClickAddCards()
Transform transInfo
Definition: ContentCodex.cs:27
void OnClickGetCard()
UIText textWeakspot
Definition: ContentCodex.cs:17
Vector2 pivot
Definition: ContentCodex.cs:35
UIText textKills
Definition: ContentCodex.cs:15
UIText textOwn
Definition: ContentCodex.cs:11
UIDynamicList list
Definition: ContentCodex.cs:7
UIText textName
Definition: ContentCodex.cs:9
override float uiScale
Definition: Core.cs:95
Definition: EClass.cs:5
static Game game
Definition: EClass.cs:8
static Core core
Definition: EClass.cs:6
static SourceManager sources
Definition: EClass.cs:42
static Player player
Definition: EClass.cs:12
static Chara pc
Definition: EClass.cs:14
bool autoCollectCard
Definition: Game.cs:51
Config config
Definition: Game.cs:215
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
CodexManager codex
Definition: Player.cs:916
SourceRace races
SourceChara charas
SourceJob jobs
List< Thing > List(Func< Thing, bool > func, bool onlyAccessible=false)
static Thing Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:53
Definition: Thing.cs:8
UIText subText2
Definition: UIButton.cs:106
Image icon
Definition: UIButton.cs:110
UIText mainText
Definition: UIButton.cs:102
void SetToggle(bool isOn, Action< bool > onToggle=null)
Definition: UIButton.cs:341
override void List()
List< object > objects
override void Redraw()
override void Add(object o)
bool Select(object o, bool invoke=false)
DynamicScrollView dsv
override void Clear()
Definition: UIItem.cs:5
Image image1
Definition: UIItem.cs:14
Definition: UIList.cs:9
Definition: UINote.cs:6
void Clear()
Definition: UINote.cs:35
UIItem AddHeader(string text, Sprite sprite=null)
Definition: UINote.cs:79
void Build()
Definition: UINote.cs:49
Definition: UIText.cs:6
void SetText(string s)
Definition: UIText.cs:159