Elin Decompiled Documentation EA 23.286 Nightly Patch 1
Loading...
Searching...
No Matches
ItemGeneral.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using UnityEngine;
4using UnityEngine.UI;
5
7{
8 private const int IconSize = 40;
9
10 private const int IconPadding = 10;
11
12 private const int ButtonPaddingWhenIcon = 3;
13
14 public LayoutGroup layout;
15
16 public int paddingSubText = 50;
17
18 public Card card;
19
20 private int count;
21
22 private bool built;
23
24 private Dictionary<string, UIButton> subButtons = new Dictionary<string, UIButton>();
25
26 private Dictionary<string, Component> prefabs = new Dictionary<string, Component>();
27
28 public void SetChara(Chara c, BaseListPeople list = null)
29 {
30 card = c;
32 string text = c.Name;
33 if (EClass.Branch?.uidMaid == c.uid)
34 {
35 text += ("(" + "maid".lang() + ")").TagSize(12);
36 }
37 FontColor c2 = FontColor.ButtonGeneral;
38 if (list is ListPeopleParty)
39 {
40 if (c.isDead)
41 {
42 c2 = FontColor.Bad;
43 }
44 else if (!(list as ListPeopleParty).CanJoinParty(c))
45 {
46 c2 = FontColor.Warning;
47 }
48 }
49 else if (c.isDead)
50 {
51 c2 = FontColor.Bad;
52 }
53 else if (c.IsPCParty)
54 {
55 c2 = FontColor.Good;
56 }
57 else if (c.hp < c.MaxHP / 2 && c.currentZone == EClass._zone)
58 {
59 c2 = FontColor.Warning;
60 }
61 if (list is ListPeopleBuySlave)
62 {
63 text = text + " " + c.bio.TextBioSlave(c);
64 }
65 button1.mainText.SetText(text, c2);
66 }
67
69 {
70 return card?.sourceRenderCard;
71 }
72
73 public void OnRefreshPref()
74 {
75 if (card != null && card.isChara)
76 {
78 }
79 }
80
81 public void Clear()
82 {
83 if (count <= 0)
84 {
85 return;
86 }
87 foreach (UIButton componentsInDirectChild in base.transform.GetComponentsInDirectChildren<UIButton>())
88 {
89 if (componentsInDirectChild != button1)
90 {
91 UnityEngine.Object.DestroyImmediate(componentsInDirectChild.gameObject);
92 }
93 }
94 count = 0;
95 }
96
97 public UIButton AddSubButton(Sprite sprite, Action action, string lang = null, Action<UITooltip> onTooltip = null, string id = null)
98 {
99 UIButton uIButton;
100 if (built)
101 {
102 uIButton = subButtons[id];
103 }
104 else
105 {
106 uIButton = Util.Instantiate<UIButton>("UI/Element/Button/SubButton", base.transform);
107 uIButton.Rect().anchoredPosition = new Vector2(count * -40 - 20 - 10, 0f);
108 }
109 uIButton.icon.sprite = sprite;
110 uIButton.onClick.RemoveAllListeners();
111 uIButton.onClick.AddListener(delegate
112 {
113 action();
114 });
115 if (!lang.IsEmpty())
116 {
117 uIButton.tooltip.enable = true;
118 uIButton.tooltip.lang = lang;
119 }
120 if (onTooltip != null)
121 {
122 uIButton.tooltip.id = "note";
123 uIButton.tooltip.onShowTooltip = onTooltip;
124 uIButton.tooltip.enable = true;
125 }
126 uIButton.highlightTarget = button1;
127 if (!built)
128 {
129 count++;
130 if (id != null)
131 {
132 subButtons[id] = uIButton;
133 }
134 }
135 return uIButton;
136 }
137
138 public void SetMainText(string lang, Sprite sprite = null, bool disableMask = true)
139 {
140 button1.mainText.SetText(lang.lang());
141 if ((bool)sprite)
142 {
143 button1.icon.sprite = sprite;
144 button1.icon.SetNativeSize();
145 if (disableMask)
146 {
147 DisableMask();
148 }
149 }
150 else
151 {
152 DisableIcon();
153 }
154 }
155
156 public UIButton SetSubText(string lang, int x, FontColor c = FontColor.Default, TextAnchor align = TextAnchor.MiddleLeft)
157 {
158 button1.subText.SetActive(enable: true);
159 button1.subText.SetText(lang.lang(), c);
160 button1.subText.alignment = align;
161 button1.mainText.rectTransform.sizeDelta = new Vector2(x - paddingSubText, 20f);
162 button1.subText.rectTransform.anchoredPosition = new Vector2(x, 0f);
163 return button1;
164 }
165
166 public UIButton SetSubText2(string lang, FontColor c = FontColor.Default, TextAnchor align = TextAnchor.MiddleRight)
167 {
168 button1.subText2.SetActive(enable: true);
169 button1.subText2.SetText(lang.lang(), c);
170 button1.subText2.alignment = align;
171 return button1;
172 }
173
174 public T AddPrefab<T>(string id) where T : Component
175 {
176 T val = prefabs.TryGetValue(id) as T;
177 if (val != null)
178 {
179 return val;
180 }
181 val = Util.Instantiate<T>("UI/Element/Item/Extra/" + id, base.transform);
182 prefabs[id] = val;
183 return val;
184 }
185
186 public void SetSound(SoundData data = null)
187 {
188 button1.soundClick = data ?? SE.DataClick;
189 }
190
191 public void DisableIcon()
192 {
193 button1.icon.transform.parent.SetActive(enable: false);
194 if (!button1.keyText)
195 {
196 button1.mainText.rectTransform.anchoredPosition = new Vector2(20f, 0f);
197 }
198 }
199
200 public void DisableMask()
201 {
202 image2.enabled = false;
203 }
204
205 public void Build()
206 {
207 RectTransform rectTransform = button1.Rect();
208 if (count > 0)
209 {
210 rectTransform.sizeDelta = new Vector2(count * -40 - 10 - 3, 0f);
211 }
212 built = true;
213 }
214}
FontColor
Definition: FontColor.cs:2
string TextBioSlave(Chara c)
Definition: Biography.cs:520
Definition: Card.cs:11
virtual Chara Chara
Definition: Card.cs:2108
Biography bio
Definition: Card.cs:45
int hp
Definition: Card.cs:243
string Name
Definition: Card.cs:2177
virtual CardRow sourceRenderCard
Definition: Card.cs:2171
int uid
Definition: Card.cs:123
virtual bool isChara
Definition: Card.cs:2121
void SetImage(Image image, int dir, int idSkin=0)
Definition: Card.cs:6316
Definition: Chara.cs:10
override bool IsPCParty
Definition: Chara.cs:629
override int MaxHP
Definition: Chara.cs:722
Zone currentZone
Definition: Chara.cs:257
bool isDead
Definition: Chara.cs:391
Definition: EClass.cs:6
static Zone _zone
Definition: EClass.cs:21
static FactionBranch Branch
Definition: EClass.cs:23
void Build()
Definition: ItemGeneral.cs:205
const int ButtonPaddingWhenIcon
Definition: ItemGeneral.cs:12
void SetMainText(string lang, Sprite sprite=null, bool disableMask=true)
Definition: ItemGeneral.cs:138
UIButton AddSubButton(Sprite sprite, Action action, string lang=null, Action< UITooltip > onTooltip=null, string id=null)
Definition: ItemGeneral.cs:97
UIButton SetSubText2(string lang, FontColor c=FontColor.Default, TextAnchor align=TextAnchor.MiddleRight)
Definition: ItemGeneral.cs:166
int paddingSubText
Definition: ItemGeneral.cs:16
void Clear()
Definition: ItemGeneral.cs:81
void SetChara(Chara c, BaseListPeople list=null)
Definition: ItemGeneral.cs:28
void OnRefreshPref()
Definition: ItemGeneral.cs:73
const int IconPadding
Definition: ItemGeneral.cs:10
void SetSound(SoundData data=null)
Definition: ItemGeneral.cs:186
T AddPrefab< T >(string id)
Definition: ItemGeneral.cs:174
const int IconSize
Definition: ItemGeneral.cs:8
void DisableMask()
Definition: ItemGeneral.cs:200
LayoutGroup layout
Definition: ItemGeneral.cs:14
void DisableIcon()
Definition: ItemGeneral.cs:191
RenderRow GetRenderRow()
Definition: ItemGeneral.cs:68
UIButton SetSubText(string lang, int x, FontColor c=FontColor.Default, TextAnchor align=TextAnchor.MiddleLeft)
Definition: ItemGeneral.cs:156
Dictionary< string, Component > prefabs
Definition: ItemGeneral.cs:26
Dictionary< string, UIButton > subButtons
Definition: ItemGeneral.cs:24
UIText subText2
Definition: UIButton.cs:106
UIText subText
Definition: UIButton.cs:104
Image icon
Definition: UIButton.cs:110
UIText keyText
Definition: UIButton.cs:108
UIText mainText
Definition: UIButton.cs:102
Definition: UIItem.cs:5
UIButton button1
Definition: UIItem.cs:18
void SetText(string s)
Definition: UIText.cs:163