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