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; } }