Elin Decompiled Documentation EA 23.240 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 if (num == 3 && ELayer.game.cards.globalCharas.Find("farris") == null)
66 {
67 num = 0;
68 }
69 imageBG.sprite = spriteBG[num];
70 Rand.SetSeed();
71 base.Awake();
72 }
73
74 public void Show()
75 {
76 Show(ELayer.player.shippingResults.LastItem() ?? new ShippingResult());
77 SE.Play("money_shipping");
78 InvokeRepeating("UpdateRepeating", 0f, duration / (float)maxUpdate);
79 }
80
81 public void UpdateRepeating()
82 {
83 if (showEffect)
84 {
85 Refresh();
86 }
87 }
88
89 public void Refresh()
90 {
91 if (update == 0)
92 {
93 lastBonus = 0;
94 }
95 if (!showEffect)
96 {
97 if (update != maxUpdate)
98 {
99 DOTweenAnimation[] componentsInChildren = GetComponentsInChildren<DOTweenAnimation>();
100 foreach (DOTweenAnimation dOTweenAnimation in componentsInChildren)
101 {
102 if (dOTweenAnimation.tween != null)
103 {
104 dOTweenAnimation.tween.Kill(complete: true);
105 }
106 }
107 }
109 }
111 float num = (float)update / (float)maxUpdate;
112 int income = result.GetIncome();
113 income = (int)((float)income * num);
114 long num2 = result.total + income;
115 textIncome.text = Lang._currency(income, showUnit: true);
116 textIncomeTotal.text = Lang._currency(num2, showUnit: true);
117 int shippingBonus = ELayer.player.stats.GetShippingBonus(result.total);
118 int shippingBonus2 = ELayer.player.stats.GetShippingBonus(num2);
119 int lastShippingExp = ELayer.player.stats.lastShippingExp;
120 int lastShippingExpMax = ELayer.player.stats.lastShippingExpMax;
121 int hearthLv = result.hearthLv;
122 int num3 = (int)((float)result.hearthExpGained * num);
123 int nextExp = branch.GetNextExp(hearthLv);
124 int num4 = result.hearthExp + num3;
125 gaugeGold.rectTransform.sizeDelta = new Vector2(Mathf.Min(300, 300 * lastShippingExp / lastShippingExpMax), 50f);
126 gaugeHearth.rectTransform.sizeDelta = new Vector2(Mathf.Min(300, 300 * num4 / nextExp), 50f);
127 gaugeDebt.rectTransform.sizeDelta = new Vector2(Mathf.Min(300f, 300f * ((float)result.debt / 20000000f)), 50f);
128 textGold.text = "shipping_nextGold".lang(lastShippingExp.ToFormat(), lastShippingExpMax.ToFormat());
129 int num5 = shippingBonus2 - shippingBonus;
130 textGold2.text = ((num5 == 0) ? "" : ("+" + num5));
131 textHearth.text = "shipping_hearth".lang(hearthLv.ToString() ?? "", (100f * (float)num4 / (float)nextExp).ToString("F1"));
132 float num6 = 100f * (float)num3 / (float)nextExp;
133 textHearth2.text = ((num6 == 0f) ? "" : ("+" + num6.ToString("F1") + "%"));
134 textDebt.text = (ELayer.game.quests.IsStarted<QuestDebt>() ? (Lang._currency(result.debt, showUnit: true) ?? "") : "???");
135 gaugeDebt.SetActive(ELayer.game.quests.IsStarted<QuestDebt>());
136 if (shippingBonus2 - shippingBonus != lastBonus)
137 {
138 lastBonus = shippingBonus2 - shippingBonus;
139 if (showEffect)
140 {
141 SE.Play("ore_drop");
142 }
143 }
144 update++;
145 if (showEffect && update > maxUpdate)
146 {
147 SE.Play("regi");
148 showEffect = false;
149 }
150 }
151
152 public void Show(ShippingResult _result)
153 {
154 result = _result;
156 _ = zone.branch;
157 list.callbacks = new UIList.Callback<ShippingResult.Item, UIItem>
158 {
159 onInstantiate = delegate(ShippingResult.Item a, UIItem b)
160 {
161 b.text1.SetText(a.text);
162 b.text2.SetText(a.income.ToFormat());
163 }
164 };
165 list.Clear();
166 foreach (ShippingResult.Item item in result.items)
167 {
168 list.Add(item);
169 }
170 list.Refresh();
171 Date date = Date.ToDate(result.rawDate);
172 textTitle.text = date.month + "/" + date.day + " " + date.year;
173 textHome.text = "shipping_home".lang(zone.Name);
174 Refresh();
175 int count = ELayer.player.shippingResults.Count;
176 int index = ELayer.player.shippingResults.IndexOf(result);
177 buttonNext.SetActive(index != -1 && count > index + 1);
178 buttonPrev.SetActive(index > 0);
179 buttonNext.SetOnClick(delegate
180 {
181 showEffect = false;
182 Show(ELayer.player.shippingResults[index + 1]);
183 });
184 buttonPrev.SetOnClick(delegate
185 {
186 showEffect = false;
187 Show(ELayer.player.shippingResults[index - 1]);
188 });
189 this.RebuildLayout(recursive: true);
190 }
191}
Chara Find(string id)
Definition: CardManager.cs:20
GlobalCharaList globalCharas
Definition: CardManager.cs:46
Zone homeZone
Definition: Chara.cs:267
Definition: Date.cs:4
static Date ToDate(int raw)
Definition: Date.cs:397
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:182
int seed
Definition: Game.cs:200
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:219
int lastShippingExp
Definition: Player.cs:131
int lastShippingExpMax
Definition: Player.cs:133
int days
Definition: Player.cs:75
Stats stats
Definition: Player.cs:1016
List< ShippingResult > shippingResults
Definition: Player.cs:1124
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:509
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