diff options
Diffstat (limited to 'Client/Assembly-CSharp/EnterCodeMinigame.cs')
-rw-r--r-- | Client/Assembly-CSharp/EnterCodeMinigame.cs | 121 |
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; + } +} |