summaryrefslogtreecommitdiff
path: root/Client/Assembly-CSharp/EnterCodeMinigame.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2020-12-30 20:59:04 +0800
committerchai <chaifix@163.com>2020-12-30 20:59:04 +0800
commite9ea621b93fbb58d9edfca8375918791637bbd52 (patch)
tree19ce3b1c1f2d51eda6878c9d0f2c9edc27f13650 /Client/Assembly-CSharp/EnterCodeMinigame.cs
+init
Diffstat (limited to 'Client/Assembly-CSharp/EnterCodeMinigame.cs')
-rw-r--r--Client/Assembly-CSharp/EnterCodeMinigame.cs121
1 files changed, 121 insertions, 0 deletions
diff --git a/Client/Assembly-CSharp/EnterCodeMinigame.cs b/Client/Assembly-CSharp/EnterCodeMinigame.cs
new file mode 100644
index 0000000..4bbc0ef
--- /dev/null
+++ b/Client/Assembly-CSharp/EnterCodeMinigame.cs
@@ -0,0 +1,121 @@
+using System;
+using System.Collections;
+using UnityEngine;
+
+public class EnterCodeMinigame : Minigame
+{
+ public TextRenderer NumberText;
+
+ public TextRenderer TargetText;
+
+ public int number;
+
+ public string numString = string.Empty;
+
+ private bool animating;
+
+ public SpriteRenderer AcceptButton;
+
+ private bool done;
+
+ private int targetNumber;
+
+ public void EnterDigit(int i)
+ {
+ if (this.animating)
+ {
+ return;
+ }
+ if (this.done)
+ {
+ return;
+ }
+ if (this.NumberText.Text.Length >= 5)
+ {
+ base.StartCoroutine(this.BlinkAccept());
+ return;
+ }
+ this.numString += i;
+ this.number = this.number * 10 + i;
+ this.NumberText.Text = this.numString;
+ }
+
+ public void ClearDigits()
+ {
+ if (this.animating)
+ {
+ return;
+ }
+ this.number = 0;
+ this.numString = string.Empty;
+ this.NumberText.Text = string.Empty;
+ }
+
+ public void AcceptDigits()
+ {
+ if (this.animating)
+ {
+ return;
+ }
+ base.StartCoroutine(this.Animate());
+ }
+
+ public override void Begin(PlayerTask task)
+ {
+ base.Begin(task);
+ this.targetNumber = BitConverter.ToInt32(this.MyNormTask.Data, 0);
+ this.NumberText.Text = string.Empty;
+ this.TargetText.Text = this.targetNumber.ToString("D5");
+ }
+
+ private IEnumerator BlinkAccept()
+ {
+ int num;
+ for (int i = 0; i < 5; i = num)
+ {
+ this.AcceptButton.color = Color.gray;
+ yield return null;
+ yield return null;
+ this.AcceptButton.color = Color.white;
+ yield return null;
+ yield return null;
+ num = i + 1;
+ }
+ yield break;
+ }
+
+ private IEnumerator Animate()
+ {
+ this.animating = true;
+ WaitForSeconds wait = new WaitForSeconds(0.1f);
+ yield return wait;
+ this.NumberText.Text = string.Empty;
+ yield return wait;
+ if (this.targetNumber == this.number)
+ {
+ this.done = true;
+ this.NumberText.Text = "OK";
+ yield return wait;
+ this.NumberText.Text = string.Empty;
+ yield return wait;
+ this.NumberText.Text = "OK";
+ yield return wait;
+ this.NumberText.Text = string.Empty;
+ yield return base.CoStartClose(0.5f);
+ }
+ else
+ {
+ this.NumberText.Text = "Bad";
+ yield return wait;
+ this.NumberText.Text = string.Empty;
+ yield return wait;
+ this.NumberText.Text = "Bad";
+ yield return wait;
+ this.numString = string.Empty;
+ this.number = 0;
+ this.NumberText.Text = this.numString;
+ }
+ this.animating = false;
+ yield break;
+ }
+}