Ejemplo n.º 1
0
            protected override async void nextStageAction()
            {
                if (Overshot == true) // Need to reset to zero
                {
                    if (Current.LockBeingOpened.Tumblers.IndexOf(targetTumbler) > 0)
                    {
                        Current.LockBeingOpened.NumberOfAttempts++;
                    }
                    CurrentStage = new VaultTumblerFindingStage("Resetting to zero", Kit, Tumbler.ResetToZero, AttitudeProvider);
                }
                else if (object.ReferenceEquals(targetTumbler, Tumbler.ResetToZero))
                {
                    CurrentStage = new VaultTumblerFindingStage("Tumbler 0", Kit, Current.LockBeingOpened.Tumblers[0], AttitudeProvider);
                }
                else if (targetTumbler.NextTumbler != Tumbler.EndOfLock)
                {
                    int i = Current.LockBeingOpened.Tumblers.IndexOf(targetTumbler) + 1;
                    CurrentStage = new VaultTumblerFindingStage($"Tumbler {i}", Kit, targetTumbler.NextTumbler, AttitudeProvider);
                }
                else
                {
                    await Current.SuccessFX.PlayToCompletion(useSpeakers : true);

                    Current.LockBeingOpened.AnnounceLockOpened();
                    await Speech.SayAllOf("Lock is open; well done.", useSpeakerMode : false);

                    Current.Finish();
                }
            }
Ejemplo n.º 2
0
        protected override void BeginFirstTumbler()
        {
            RunOnUiThread(() =>
            {
                FindViewById(Resource.Id.vault_notification).Visibility = ViewStates.Gone;
                //DialText.Visibility = ViewStates.Visible;
                DialBody.Rotation = 0;
            });
            var provider = new AngleAxisProvider(UpVector, AxisVector);

            SensorProvider.EnsureIsReady(provider).Wait();
            CurrentStage = new VaultTumblerFindingStage("Tumbler 0", ThePlayersToolkit, Current.LockBeingOpened.Tumblers[0], provider);
        }