internal void TextPress() { if (_linq.IsSolved) { return; } bool[] answer = LinqValidate.Run(_linq.Get <KMBombInfo>().GetSerialNumber(), initialButtonStates, functions[currentStage], parameter); _linq.ButtonEffect(_linq.TextSelectable, 0.5f, KMSoundOverride.SoundEffect.TypewriterKey, Sounds.Linq.Id(answer.SequenceEqual(buttonStates) ? 8 : 7)); if (answer.SequenceEqual(buttonStates)) { currentStage++; if (currentStage == MaxStage) { _linq.StartCoroutine(Solve()); } else { Generate(); } } else { Array.Copy(initialButtonStates, buttonStates, 6); UpdateButtons(); _linq.Strike("Strike! Expected {0} but received {1}.".Form(answer.Select(b => b ? "O" : "-").Join(""), buttonStates.Select(b => b ? "O" : "-").Join(""))); } return; }
internal LinqSelect(LinqScript linq) { _linq = linq; List <LinqFunctions> allFunctions = Enum.GetValues(typeof(LinqFunctions)).Cast <LinqFunctions>().ToList(); if (Application.isEditor) { isInverted = _linq.ModuleId / allFunctions.Count() % 2 == 1; functions = Enumerable.Repeat(allFunctions[_linq.ModuleId % allFunctions.Count()], MaxStage).ToArray(); } else { isInverted = Rnd.Range(0, 1f) > 0.5f; functions = allFunctions.Shuffle().Take(MaxStage).ToArray(); } _linq.StartCoroutine(WaitForSerialNumber()); }
internal KMSelectable.OnInteractHandler TextPress() { return(delegate() { if (_linq.IsSolved) { return false; } bool[] answer = LinqValidate.Run(_linq.Info.GetSerialNumber(), initialButtonStates, functions[currentStage], parameter); _linq.TextSelectable.AddInteractionPunch(2); _linq.Audio.PlayGameSoundAtTransform(KMSoundOverride.SoundEffect.TypewriterKey, _linq.TextSelectable.transform); _linq.Audio.PlaySoundAtTransform(answer.SequenceEqual(buttonStates) ? "8" : "7", _linq.TextSelectable.transform); if (answer.SequenceEqual(buttonStates)) { currentStage++; if (currentStage == MaxStage) { _linq.StartCoroutine(Solve()); } else { Generate(); } } else { Debug.LogFormat("[Linq #{0}]: Strike! Expected {1} but received {2}.", _linq.ModuleId, answer.Select(b => b ? "O" : "-").Join(""), buttonStates.Select(b => b ? "O" : "-").Join("")); Array.Copy(initialButtonStates, buttonStates, 6); UpdateButtons(); _linq.Module.HandleStrike(); } return false; }); }