summaryrefslogtreecommitdiff
path: root/Client/Assembly-CSharp/UploadDataGame.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Client/Assembly-CSharp/UploadDataGame.cs')
-rw-r--r--Client/Assembly-CSharp/UploadDataGame.cs203
1 files changed, 203 insertions, 0 deletions
diff --git a/Client/Assembly-CSharp/UploadDataGame.cs b/Client/Assembly-CSharp/UploadDataGame.cs
new file mode 100644
index 0000000..0f3d95c
--- /dev/null
+++ b/Client/Assembly-CSharp/UploadDataGame.cs
@@ -0,0 +1,203 @@
+using System;
+using System.Collections;
+using System.Text;
+using PowerTools;
+using UnityEngine;
+
+public class UploadDataGame : Minigame
+{
+ public SpriteAnim LeftFolder;
+
+ public SpriteAnim RightFolder;
+
+ public AnimationClip FolderOpen;
+
+ public AnimationClip FolderClose;
+
+ public SpriteRenderer Runner;
+
+ public HorizontalGauge Gauge;
+
+ public TextRenderer PercentText;
+
+ public TextRenderer EstimatedText;
+
+ public TextRenderer SourceText;
+
+ public TextRenderer TargetText;
+
+ public SpriteRenderer Button;
+
+ public Sprite DownloadImage;
+
+ public GameObject Status;
+
+ public GameObject Tower;
+
+ private int count;
+
+ private float timer;
+
+ public const float RandomChunks = 5f;
+
+ public const float ConstantTime = 3f;
+
+ private bool running = true;
+
+ public override void Begin(PlayerTask task)
+ {
+ PlayerControl.LocalPlayer.SetPlayerMaterialColors(this.Runner);
+ base.Begin(task);
+ if (this.MyNormTask.taskStep == 0)
+ {
+ this.Button.sprite = this.DownloadImage;
+ this.Tower.SetActive(false);
+ this.SourceText.Text = this.MyTask.StartAt.ToString();
+ this.TargetText.Text = "My Tablet";
+ return;
+ }
+ this.SourceText.Text = "My Tablet";
+ this.TargetText.Text = "Headquarters";
+ }
+
+ public void Click()
+ {
+ base.StartCoroutine(this.Transition());
+ }
+
+ private IEnumerator Transition()
+ {
+ this.Button.gameObject.SetActive(false);
+ this.Status.SetActive(true);
+ float target = this.Gauge.transform.localScale.x;
+ for (float t = 0f; t < 0.15f; t += Time.deltaTime)
+ {
+ this.Gauge.transform.localScale = new Vector3(t / 0.15f * target, 1f, 1f);
+ yield return null;
+ }
+ base.StartCoroutine(this.PulseText());
+ base.StartCoroutine(this.DoRun());
+ base.StartCoroutine(this.DoText());
+ base.StartCoroutine(this.DoPercent());
+ yield break;
+ }
+
+ private IEnumerator PulseText()
+ {
+ MeshRenderer rend2 = this.PercentText.GetComponent<MeshRenderer>();
+ MeshRenderer rend1 = this.EstimatedText.GetComponent<MeshRenderer>();
+ Color gray = new Color(0.3f, 0.3f, 0.3f, 1f);
+ while (this.running)
+ {
+ yield return new WaitForLerp(0.4f, delegate(float t)
+ {
+ Color value = Color.Lerp(Color.black, gray, t);
+ rend2.material.SetColor("_OutlineColor", value);
+ rend1.material.SetColor("_OutlineColor", value);
+ });
+ yield return new WaitForLerp(0.4f, delegate(float t)
+ {
+ Color value = Color.Lerp(gray, Color.black, t);
+ rend2.material.SetColor("_OutlineColor", value);
+ rend1.material.SetColor("_OutlineColor", value);
+ });
+ }
+ rend2.material.SetColor("_OutlineColor", Color.black);
+ rend1.material.SetColor("_OutlineColor", Color.black);
+ yield break;
+ }
+
+ private IEnumerator DoPercent()
+ {
+ while (this.running)
+ {
+ float num = (float)this.count / 5f * 0.7f + this.timer / 3f * 0.3f;
+ if (num >= 1f)
+ {
+ this.running = false;
+ }
+ num = Mathf.Clamp(num, 0f, 1f);
+ this.Gauge.Value = num;
+ this.PercentText.Text = Mathf.RoundToInt(num * 100f) + "%";
+ yield return null;
+ }
+ yield break;
+ }
+
+ private IEnumerator DoText()
+ {
+ StringBuilder txt = new StringBuilder("Estimated Time: ");
+ int baselen = txt.Length;
+ int max = 604800;
+ this.count = 0;
+ while ((float)this.count < 5f)
+ {
+ txt.Length = baselen;
+ int num = IntRange.Next(max / 6, max);
+ int num2 = num / 86400;
+ if (num2 > 0)
+ {
+ txt.Append(num2 + "d ");
+ }
+ int num3 = num / 3600 % 24;
+ if (num3 > 0)
+ {
+ txt.Append(num3 + "hr ");
+ }
+ int num4 = num / 60 % 60;
+ if (num4 > 0)
+ {
+ txt.Append(num4 + "m ");
+ }
+ int num5 = num % 60;
+ if (num5 > 0)
+ {
+ txt.Append(num5 + "s");
+ }
+ this.EstimatedText.Text = txt.ToString();
+ max /= 4;
+ yield return new WaitForSeconds(FloatRange.Next(0.6f, 1.2f));
+ this.count++;
+ }
+ this.timer = 0f;
+ while (this.timer < 3f)
+ {
+ txt.Length = baselen;
+ int num6 = Mathf.RoundToInt(3f - this.timer);
+ txt.Append(num6 + "s");
+ this.EstimatedText.Text = txt.ToString();
+ yield return null;
+ this.timer += Time.deltaTime;
+ }
+ yield break;
+ }
+
+ private IEnumerator DoRun()
+ {
+ while (this.running)
+ {
+ UploadDataGame.<>c__DisplayClass25_0 CS$<>8__locals1 = new UploadDataGame.<>c__DisplayClass25_0();
+ CS$<>8__locals1.<>4__this = this;
+ this.LeftFolder.Play(this.FolderOpen, 1f);
+ CS$<>8__locals1.pos = this.Runner.transform.localPosition;
+ yield return new WaitForLerp(1.125f, delegate(float t)
+ {
+ CS$<>8__locals1.pos.x = Mathf.Lerp(-1.25f, 0.5625f, t);
+ CS$<>8__locals1.<>4__this.Runner.transform.localPosition = CS$<>8__locals1.pos;
+ });
+ this.LeftFolder.Play(this.FolderClose, 1f);
+ this.RightFolder.Play(this.FolderOpen, 1f);
+ yield return new WaitForLerp(1.375f, delegate(float t)
+ {
+ CS$<>8__locals1.pos.x = Mathf.Lerp(0.5625f, 1.25f, t);
+ CS$<>8__locals1.<>4__this.Runner.transform.localPosition = CS$<>8__locals1.pos;
+ });
+ yield return new WaitForAnimationFinish(this.RightFolder, this.FolderClose);
+ CS$<>8__locals1 = null;
+ }
+ this.EstimatedText.Text = "Complete";
+ this.MyNormTask.NextStep();
+ base.StartCoroutine(base.CoStartClose(0.75f));
+ yield break;
+ }
+}