Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
LayerShippingResult.cs
Go to the documentation of this file.
1using DG.Tweening;
2using UnityEngine;
3using UnityEngine.UI;
4
6{
7 public UIList list;
8
10
12
13 public Image gaugeGold;
14
15 public Image gaugeHearth;
16
17 public Image gaugeDebt;
18
19 public Image imageBG;
20
22
24
26
28
30
32
34
36
38
39 public bool showEffect = true;
40
41 public float duration;
42
43 public int update;
44
45 public int maxUpdate;
46
48
49 public Sprite[] spriteBG;
50
51 private int lastBonus;
52
53 private new void Awake()
54 {
56 int num = ELayer.rnd(spriteBG.Length);
57 if (num == 1 && ELayer.game.cards.globalCharas.Find("corgon") == null)
58 {
59 num = 0;
60 }
61 if (num == 2 && ELayer.game.cards.globalCharas.Find("loytel") == null)
62 {
63 num = 0;
64 }
65 imageBG.sprite = spriteBG[num];
66 Rand.SetSeed();
67 base.Awake();
68 }
69
70 public void Show()
71 {
72 Show(ELayer.player.shippingResults.LastItem() ?? new ShippingResult());
73 SE.Play("money_shipping");
74 InvokeRepeating("UpdateRepeating", 0f, duration / (float)maxUpdate);
75 }
76
77 public void UpdateRepeating()
78 {
79 if (showEffect)
80 {
81 Refresh();
82 }
83 }
84
85 public void Refresh()
86 {
87 if (update == 0)
88 {
89 lastBonus = 0;
90 }
91 if (!showEffect)
92 {
93 if (update != maxUpdate)
94 {
95 DOTweenAnimation[] componentsInChildren = GetComponentsInChildren<DOTweenAnimation>();
96 foreach (DOTweenAnimation dOTweenAnimation in componentsInChildren)
97 {
98 if (dOTweenAnimation.tween != null)
99 {
100 dOTweenAnimation.tween.Kill(complete: true);
101 }
102 }
103 }
105 }
107 float num = (float)update / (float)maxUpdate;
108 int income = result.GetIncome();
109 income = (int)((float)income * num);
110 long num2 = result.total + income;
111 textIncome.text = Lang._currency(income, showUnit: true);
112 textIncomeTotal.text = Lang._currency(num2, showUnit: true);
113 int shippingBonus = ELayer.player.stats.GetShippingBonus(result.total);
114 int shippingBonus2 = ELayer.player.stats.GetShippingBonus(num2);
115 int lastShippingExp = ELayer.player.stats.lastShippingExp;
116 int lastShippingExpMax = ELayer.player.stats.lastShippingExpMax;
117 int hearthLv = result.hearthLv;
118 int num3 = (int)((float)result.hearthExpGained * num);
119 int nextExp = branch.GetNextExp(hearthLv);
120 int num4 = result.hearthExp + num3;
121 gaugeGold.rectTransform.sizeDelta = new Vector2(Mathf.Min(300, 300 * lastShippingExp / lastShippingExpMax), 50f);
122 gaugeHearth.rectTransform.sizeDelta = new Vector2(Mathf.Min(300, 300 * num4 / nextExp), 50f);
123 gaugeDebt.rectTransform.sizeDelta = new Vector2(Mathf.Min(300f, 300f * ((float)result.debt / 20000000f)), 50f);
124 textGold.text = "shipping_nextGold".lang(lastShippingExp.ToFormat(), lastShippingExpMax.ToFormat());
125 int num5 = shippingBonus2 - shippingBonus;
126 textGold2.text = ((num5 == 0) ? "" : ("+" + num5));
127 textHearth.text = "shipping_hearth".lang(hearthLv.ToString() ?? "", (100f * (float)num4 / (float)nextExp).ToString("F1"));
128 float num6 = 100f * (float)num3 / (float)nextExp;
129 textHearth2.text = ((num6 == 0f) ? "" : ("+" + num6.ToString("F1") + "%"));
130 textDebt.text = (ELayer.game.quests.IsStarted<QuestDebt>() ? (Lang._currency(result.debt, showUnit: true) ?? "") : "???");
131 gaugeDebt.SetActive(ELayer.game.quests.IsStarted<QuestDebt>());
132 if (shippingBonus2 - shippingBonus != lastBonus)
133 {
134 lastBonus = shippingBonus2 - shippingBonus;
135 if (showEffect)
136 {
137 SE.Play("ore_drop");
138 }
139 }
140 update++;
141 if (showEffect && update > maxUpdate)
142 {
143 SE.Play("regi");
144 showEffect = false;
145 }
146 }
147
148 public void Show(ShippingResult _result)
149 {
150 result = _result;
152 _ = zone.branch;
153 list.callbacks = new UIList.Callback<ShippingResult.Item, UIItem>
154 {
155 onInstantiate = delegate(ShippingResult.Item a, UIItem b)
156 {
157 b.text1.SetText(a.text);
158 b.text2.SetText(a.income.ToFormat());
159 }
160 };
161 list.Clear();
162 foreach (ShippingResult.Item item in result.items)
163 {
164 list.Add(item);
165 }
166 list.Refresh();
167 Date date = Date.ToDate(result.rawDate);
168 textTitle.text = date.month + "/" + date.day + " " + date.year;
169 textHome.text = "shipping_home".lang(zone.Name);
170 Refresh();
171 int count = ELayer.player.shippingResults.Count;
172 int index = ELayer.player.shippingResults.IndexOf(result);
173 buttonNext.SetActive(index != -1 && count > index + 1);
174 buttonPrev.SetActive(index > 0);
175 buttonNext.SetOnClick(delegate
176 {
177 showEffect = false;
178 Show(ELayer.player.shippingResults[index + 1]);
179 });
180 buttonPrev.SetOnClick(delegate
181 {
182 showEffect = false;
183 Show(ELayer.player.shippingResults[index - 1]);
184 });
185 this.RebuildLayout(recursive: true);
186 }
187}
Chara Find(string id)
Definition: CardManager.cs:20
GlobalCharaList globalCharas
Definition: CardManager.cs:46
Zone homeZone
Definition: Chara.cs:252
Definition: Date.cs:4
static Date ToDate(int raw)
Definition: Date.cs:393
int year
Definition: Date.cs:38
Definition: ELayer.cs:4
static Chara pc
Definition: ELayer.cs:15
static Player player
Definition: ELayer.cs:13
static int rnd(int a)
Definition: ELayer.cs:49
static Game game
Definition: ELayer.cs:9
int GetNextExp(int _lv=-1)
SpatialManager spatials
Definition: Game.cs:152
CardManager cards
Definition: Game.cs:155
QuestManager quests
Definition: Game.cs:179
int seed
Definition: Game.cs:197
Definition: Lang.cs:6
static string _currency(object a, string IDCurrency)
Definition: Lang.cs:162
void Show(ShippingResult _result)
int GetShippingBonus(long _a)
Definition: Player.cs:106
int lastShippingExp
Definition: Player.cs:101
int lastShippingExpMax
Definition: Player.cs:104
int days
Definition: Player.cs:68
Stats stats
Definition: Player.cs:817
List< ShippingResult > shippingResults
Definition: Player.cs:925
Definition: Rand.cs:4
static void SetSeed(int a=-1)
Definition: Rand.cs:37
List< Item > items
Zone Find(string id)
virtual string Name
Definition: Spatial.cs:495
Definition: UIItem.cs:5
UIText text2
Definition: UIItem.cs:8
UIText text1
Definition: UIItem.cs:6
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
Definition: UIText.cs:6
void SetText(string s)
Definition: UIText.cs:159
Definition: Zone.cs:12
FactionBranch branch
Definition: Zone.cs:34