Elin Decompiled Documentation EA 23.300 Nightly
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 UIButton GetSubButton(string id)
139 {
140 return subButtons.TryGetValue(id);
141 }
142
143 public void SetMainText(string lang, Sprite sprite = null, bool disableMask = true)
144 {
145 button1.mainText.SetText(lang.lang());
146 if ((bool)sprite)
147 {
148 button1.icon.sprite = sprite;
149 button1.icon.SetNativeSize();
150 if (disableMask)
151 {
152 DisableMask();
153 }
154 }
155 else
156 {
157 DisableIcon();
158 }
159 }
160
161 public UIButton SetSubText(string lang, int x, FontColor c = FontColor.Default, TextAnchor align = TextAnchor.MiddleLeft)
162 {
163 button1.subText.SetActive(enable: true);
164 button1.subText.SetText(lang.lang(), c);
165 button1.subText.alignment = align;
166 button1.mainText.rectTransform.sizeDelta = new Vector2(x - paddingSubText, 20f);
167 button1.subText.rectTransform.anchoredPosition = new Vector2(x, 0f);
168 return button1;
169 }
170
171 public UIButton SetSubText2(string lang, FontColor c = FontColor.Default, TextAnchor align = TextAnchor.MiddleRight)
172 {
173 button1.subText2.SetActive(enable: true);
174 button1.subText2.SetText(lang.lang(), c);
175 button1.subText2.alignment = align;
176 return button1;
177 }
178
179 public T AddPrefab<T>(string id) where T : Component
180 {
181 T val = prefabs.TryGetValue(id) as T;
182 if (val != null)
183 {
184 return val;
185 }
186 val = Util.Instantiate<T>("UI/Element/Item/Extra/" + id, base.transform);
187 prefabs[id] = val;
188 return val;
189 }
190
191 public void SetSound(SoundData data = null)
192 {
193 button1.soundClick = data ?? SE.DataClick;
194 }
195
196 public void DisableIcon()
197 {
198 button1.icon.transform.parent.SetActive(enable: false);
199 if (!button1.keyText)
200 {
201 button1.mainText.rectTransform.anchoredPosition = new Vector2(20f, 0f);
202 }
203 }
204
205 public void DisableMask()
206 {
207 image2.enabled = false;
208 }
209
210 public void Build()
211 {
212 RectTransform rectTransform = button1.Rect();
213 if (count > 0)
214 {
215 rectTransform.sizeDelta = new Vector2(count * -40 - 10 - 3, 0f);
216 }
217 built = true;
218 }
219}
FontColor
Definition: FontColor.cs:2
string TextBioSlave(Chara c)
Definition: Biography.cs:520
Definition: Card.cs:11
virtual Chara Chara
Definition: Card.cs:2110
Biography bio
Definition: Card.cs:45
int hp
Definition: Card.cs:245
string Name
Definition: Card.cs:2179
virtual CardRow sourceRenderCard
Definition: Card.cs:2173
int uid
Definition: Card.cs:125
virtual bool isChara
Definition: Card.cs:2123
void SetImage(Image image, int dir, int idSkin=0)
Definition: Card.cs:6384
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:210
UIButton GetSubButton(string id)
Definition: ItemGeneral.cs:138
const int ButtonPaddingWhenIcon
Definition: ItemGeneral.cs:12
void SetMainText(string lang, Sprite sprite=null, bool disableMask=true)
Definition: ItemGeneral.cs:143
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:171
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:191
T AddPrefab< T >(string id)
Definition: ItemGeneral.cs:179
const int IconSize
Definition: ItemGeneral.cs:8
void DisableMask()
Definition: ItemGeneral.cs:205
LayoutGroup layout
Definition: ItemGeneral.cs:14
void DisableIcon()
Definition: ItemGeneral.cs:196
RenderRow GetRenderRow()
Definition: ItemGeneral.cs:68
UIButton SetSubText(string lang, int x, FontColor c=FontColor.Default, TextAnchor align=TextAnchor.MiddleLeft)
Definition: ItemGeneral.cs:161
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