Exemplo n.º 1
0
    public IEnumerator PlaySolveSound(KMAudio moduleAudio, Transform transform)
    {
        var randomStartingNote = Random.Range(0, soundListArray.Count() - 12);

        yield return(new WaitForSeconds(1f));

        moduleAudio.PlaySoundAtTransform(soundListArray[randomStartingNote], transform);
        yield return(new WaitForSeconds(.2f));

        moduleAudio.PlaySoundAtTransform(soundListArray[randomStartingNote + 4], transform);
        yield return(new WaitForSeconds(.2f));

        moduleAudio.PlaySoundAtTransform(soundListArray[randomStartingNote + 7], transform);
        yield return(new WaitForSeconds(.2f));

        moduleAudio.PlaySoundAtTransform(soundListArray[randomStartingNote + 12], transform);
        yield return(new WaitForSeconds(.2f));

        moduleAudio.PlaySoundAtTransform(soundListArray[randomStartingNote + 7], transform);
        yield return(new WaitForSeconds(.2f));

        moduleAudio.PlaySoundAtTransform(soundListArray[randomStartingNote + 4], transform);
        yield return(new WaitForSeconds(.2f));

        moduleAudio.PlaySoundAtTransform(soundListArray[randomStartingNote], transform);
        moduleAudio.PlaySoundAtTransform(soundListArray[randomStartingNote + 4], transform);
        moduleAudio.PlaySoundAtTransform(soundListArray[randomStartingNote + 7], transform);
        moduleAudio.PlaySoundAtTransform(soundListArray[randomStartingNote + 12], transform);
    }
    private IEnumerator DelayKeyTurn(bool restoreBombTimer, bool causeStrikeIfWrongTime = true, bool bypassSettings = false)
    {
        Animator keyAnimator = (Animator)KeyAnimatorField.GetValue(Module.BombComponent.GetComponent(ComponentType));
        KMAudio  keyAudio    = (KMAudio)KeyAudioField.GetValue(Module.BombComponent.GetComponent(ComponentType));
        int      time        = (int)TargetTimeField.GetValue(Module.BombComponent.GetComponent(ComponentType));

        if (!restoreBombTimer)
        {
            Module.Bomb.CurrentTimer = time + 0.5f + Time.deltaTime;
            yield return(null);
        }
        else if (causeStrikeIfWrongTime && time != (int)Mathf.Floor(Module.Bomb.CurrentTimer))
        {
            Module.BombComponent.GetComponent <KMBombModule>().HandleStrike();
            keyAnimator.SetTrigger("WrongTurn");
            keyAudio.PlaySoundAtTransform("WrongKeyTurnFK", Module.transform);
            yield return(null);

            if (!(TwitchPlaySettings.data.AllowTurnTheKeyEarlyLate || bypassSettings) || (bool)SolvedField.GetValue(Module.BombComponent.GetComponent(ComponentType)))
            {
                yield break;
            }
        }

        Module.BombComponent.GetComponent <KMBombModule>().HandlePass();
        KeyUnlockedField.SetValue(Module.BombComponent.GetComponent(ComponentType), true);
        SolvedField.SetValue(Module.BombComponent.GetComponent(ComponentType), true);
        keyAnimator.SetBool("IsUnlocked", true);
        keyAudio.PlaySoundAtTransform("TurnTheKeyFX", Module.transform);
        yield return(null);
    }
Exemplo n.º 3
0
    private void Awake()
    {
        for (int i = 0; i < 31; i++)
        {
            days[i] = i + 1;
        }                                                 //Days' setup
        for (int i = 0; i < 100; i++)
        {
            years[i] = i;
        }                                               //Years' setup
        for (int i = 0; i < 29; i++)
        {
            centuries[i] = i;
        }                                                  //Centuries' setup

        yearCenturyResult = 0;
        _moduleId         = _moduleIdCounter++;

        GenerateDate();

        audio      = GetComponent <KMAudio>();
        bombModule = GetComponent <KMBombModule>();

        buttonText.text = weekDays[x];
    }
Exemplo n.º 4
0
 public void SetAudio(KMAudio a)
 {
     for (int i = 0; i < 7; i++)
     {
         this.matches[i].SetAudio(a);
     }
 }
Exemplo n.º 5
0
    private IEnumerator DelayKeyTurn(bool restoreBombTimer, bool causeStrikeIfWrongTime = true, bool bypassSettings = false)
    {
        Animator keyAnimator = (Animator)_keyAnimatorField.GetValue(module.GetComponent(_componentType));
        KMAudio  keyAudio    = (KMAudio)_keyAudioField.GetValue(module.GetComponent(_componentType));
        int      time        = (int)_targetTimeField.GetValue(module.GetComponent(_componentType));

        if (!restoreBombTimer)
        {
            currentBomb.GetTimer().TimeRemaining = time + 0.5f + Time.deltaTime;
            yield return(null);
        }
        else if (causeStrikeIfWrongTime && time != (int)Mathf.Floor(currentBomb.GetTimer().TimeRemaining))
        {
            module.GetComponent <KMBombModule>().HandleStrike();
            keyAnimator.SetTrigger("WrongTurn");
            keyAudio.PlaySoundAtTransform("WrongKeyTurnFK", module.transform);
            yield return(null);

            if (!(bool)_solvedField.GetValue(module.GetComponent(_componentType)))
            {
                yield break;
            }
        }

        module.GetComponent <KMBombModule>().HandlePass();
        _keyUnlockedField.SetValue(module.GetComponent(_componentType), true);
        _solvedField.SetValue(module.GetComponent(_componentType), true);
        keyAnimator.SetBool("IsUnlocked", true);
        keyAudio.PlaySoundAtTransform("TurnTheKeyFX", module.transform);
        yield return(null);
    }
Exemplo n.º 6
0
    public void Start()
    {
        bombInfo    = GetComponent <KMBombInfo>();
        needyModule = GetComponent <KMNeedyModule>();
        bombAudio   = GetComponent <KMAudio>();
        data        = GetComponent <TechSupportData>();

        interruptableModules = new List <InterruptableModule>();
        options   = new List <Tuple <string, int> >();
        allErrors = new List <ErrorData>();

        needyModule.OnActivate        += OnActivate;
        needyModule.OnNeedyActivation += Interrupt;
        needyModule.OnTimerExpired    += OnTimerExpired;

        screenOverlay.Toggle(false);

        // TODO: do something with KMSeedable here.
        monoRandom = new MonoRandom(0);
        data.Generate(monoRandom, 16, 12, 9, 9, 9);

        // Adds methods to buttons.
        okButton.AddListener(OnOKClicked);
        upButton.AddListener(OnUpClicked);
        downButton.AddListener(OnDownClicked);

        StartCoroutine(DelayedStart());
    }
Exemplo n.º 7
0
 //Initial actions
 void Start()
 {
     ModuleNum             = ModuleCount++;
     subButton.OnInteract += () => { return(ButtonPressed('u')); };
     supButton.OnInteract += () => { return(ButtonPressed('s')); };
     module.OnActivate    += OnActivate;
     audio = GetComponent <KMAudio>();
 }
Exemplo n.º 8
0
        private void Awake()
        {
            _audio = GetComponent <KMAudio>();
            _light = GetComponent <Light>();

            _camera          = Camera.main;
            _cameraTransform = _camera.transform;
        }
Exemplo n.º 9
0
 private void Awake()
 {
     moduleId = moduleIdCounter++;
     module   = this.GetComponent <KMBombModule>();
     audio    = this.GetComponent <KMAudio>();
     for (int i = 0; i < 3; i++)
     {
         this.digits[i].SetAudio(this.audio);
     }
 }
        public override void Start()
        {
            base.Start();
            this.KMAudio = this.GetComponent <KMAudio>();
#if (!DEBUG)
            this.needyComponent = this.GetComponent <NeedyComponent>();
            this.toneGenerator  = this.gameObject.AddComponent <ToneGenerator>();
            this.baseGain       = this.toneGenerator.gain;
#endif
        }
Exemplo n.º 11
0
 public Cell(MSGrid game, int x, int y, GameObject Object, KMAudio Audio, List <Sprite> Sprites)
 {
     _game       = game;
     _x          = x;
     _y          = y;
     _object     = Object;
     _audio      = Audio;
     _selectable = Object.GetComponent <KMSelectable>();
     _renderer   = Object.transform.Find("Sprite").GetComponent <SpriteRenderer>();
     _sprites    = Sprites;
 }
Exemplo n.º 12
0
 public RedHexabuttons(ColorfulButtonSeries m, KMAudio aud, int MI, KMSelectable[] HB, MeshRenderer[] BM, Material[] LC, MeshRenderer[] LM, Transform T)
 {
     coloredHexabuttons = m;
     Audio      = aud;
     moduleId   = MI;
     hexButtons = HB;
     buttonMesh = BM;
     ledColors  = LC;
     ledMesh    = LM;
     transform  = T;
 }
Exemplo n.º 13
0
        /// <summary>
        /// Unity event.
        /// </summary>
        private void Awake()
        {
            _data = GetComponent <FactoryRoomData>();

            _conveyorBeltAnimator = GetComponent <Animator>();
            _room         = GetComponent <KMGameplayRoom>();
            _audio        = GetComponent <KMAudio>();
            _gameCommands = GetComponent <KMGameCommands>();

            _room.OnLightChange += OnLightChange;
        }
Exemplo n.º 14
0
    public void PlaySubmitSound(KMAudio moduleAudio, Transform transform)
    {
        var randomStartingNote = Random.Range(8, soundListArray.Count() - 8);
        var offset             = 0;

        for (int i = 0; i < 3; i++)
        {
            moduleAudio.PlaySoundAtTransform(soundListArray[randomStartingNote + offset], transform);
            offset += Random.Range(0, 2) == 0 ? 3 : 4;
        }
    }
Exemplo n.º 15
0
 /// <summary>
 /// Plays an in-game sound and/or custom sound.
 /// </summary>
 /// <param name="audio">The instance of audio, so that the sound can be played.</param>
 /// <param name="transform">The location of the sound.</param>
 /// <param name="customSound">The custom sound effect, which is ignored if null.</param>
 /// <param name="gameSound">The in-game sound effect, which is ignored if null.</param>
 internal static void Play(this KMAudio audio, Transform transform, string customSound = null, KMSoundOverride.SoundEffect?gameSound = null)
 {
     if (customSound != null)
     {
         audio.PlaySoundAtTransform(customSound, transform);
     }
     if (gameSound != null)
     {
         audio.PlayGameSoundAtTransform((KMSoundOverride.SoundEffect)gameSound, transform);
     }
 }
 public OrangeHexabuttons(ColorfulButtonSeries m, KMAudio a, int mi, KMSelectable[] hb, MeshRenderer[] bm, TextMesh[] bt, Material[] lc, MeshRenderer[] lm, Transform t)
 {
     coloredHexabuttons = m;
     Audio      = a;
     moduleId   = mi;
     hexButtons = hb;
     buttonMesh = bm;
     buttonText = bt;
     ledColors  = lc;
     ledMesh    = lm;
     transform  = t;
 }
Exemplo n.º 17
0
    public IEnumerator PlayCycleSound(KMAudio moduleAudio, Transform transform, int comboNum)
    {
        var randomStartingNote = Random.Range(8, soundListArray.Count() - 8);
        var offset             = 0;

        for (int i = 0; i < 3; i++)
        {
            moduleAudio.PlaySoundAtTransform(soundListArray[randomStartingNote + offset], transform);
            offset += (comboNum == 0 ? 1 : -1) * (Random.Range(0, 4) + 1);
            yield return(new WaitForSeconds(.1f));
        }
    }
 private void SetupPrompt(string title, string defaultValue, KMAudio audio, Action <string> confirm)
 {
     Title.text = title;
     Input.text = defaultValue;
     Confirm.onClick.AddListener(() => closePrompt(true));
     Confirm.GetComponent <KMSelectable>().OnInteract += () => { closePrompt(true); return(false); };
     Cancel.onClick.AddListener(() => closePrompt(false));
     OnConfirm = confirm;
     Cancel.GetComponent <KMSelectable>().OnInteract += () => { closePrompt(false); return(false); };
     // Pass KMAudio from the main pages
     Audio = audio;
 }
Exemplo n.º 19
0
 public BlackHexabuttons(ColorfulButtonSeries m, KMAudio aud, AudioClip[] MS, int MI, KMSelectable[] HB, MeshRenderer[] BM, Material[] LC, MeshRenderer[] LM, Light[] L, Transform T)
 {
     coloredHexabuttons = m;
     Audio       = aud;
     morseSounds = MS;
     moduleId    = MI;
     hexButtons  = HB;
     buttonMesh  = BM;
     ledColors   = LC;
     ledMesh     = LM;
     lights      = L;
     transform   = T;
 }
Exemplo n.º 20
0
 public GrayHexabuttons(ColorfulButtonSeries m, KMAudio aud, int MI, KMSelectable[] HB, MeshRenderer[] BM, TextMesh[] BT, Material[] LC, MeshRenderer[] LM, Light[] L, Transform T)
 {
     coloredHexabuttons = m;
     Audio      = aud;
     moduleId   = MI;
     hexButtons = HB;
     buttonMesh = BM;
     buttonText = BT;
     ledColors  = LC;
     ledMesh    = LM;
     lights     = L;
     transform  = T;
 }
Exemplo n.º 21
0
    private void Awake()
    {
        _bombModule = GetComponent <KMBombModule>();
        _audio      = GetComponent <KMAudio>();
        _selectable = GetComponent <KMSelectable>();

        _displayBar = GetComponentInChildren <TangramDisplayBar>(true);
        _smoke      = GetComponentInChildren <ParticleSystem>(true);

        _bombModule.GenerateLogFriendlyName();

        RandomizePuzzle();
    }
 public YellowHexabuttons(ColorfulButtonSeries m, KMAudio aud, int MI, KMSelectable[] HB, MeshRenderer[] BM, MeshFilter[] BMF, MeshFilter[] HMF, Transform[] HTF, MeshRenderer[] LM, Transform T, MeshFilter[] S)
 {
     coloredHexabuttons = m;
     Audio       = aud;
     moduleId    = MI;
     hexButtons  = HB;
     buttonMesh  = BM;
     buttonMF    = BMF;
     highlightMF = HMF;
     highlightTF = HTF;
     ledMesh     = LM;
     transform   = T;
     shapes      = S;
 }
Exemplo n.º 23
0
    private void Awake()
    {
        _moduleId   = _moduleIdCounter++;
        _module     = GetComponent <KMBombModule>();
        _audio      = GetComponent <KMAudio>();
        _keys       = GetComponent <KMSelectable>().Children;
        _screenText = transform.Find("Rotate and Scale/Display/ScreenText").GetComponent <TextMesh>();

        Init();

        for (var i = 0; i < _keys.Length; i++)
        {
            int j = i;
            _keys[j].OnInteract += delegate { ButtonPressed(j); return(false); };
        }
    }
Exemplo n.º 24
0
    private IEnumerator DelayKeyTurn(bool restoreBombTimer, bool causeStrikeIfWrongTime = true)
    {
        var      passCheck   = false;
        Animator keyAnimator = (Animator)_keyAnimatorField.GetValue(module.GetComponent(_componentType));
        KMAudio  keyAudio    = (KMAudio)_keyAudioField.GetValue(module.GetComponent(_componentType));
        int      time        = (int)_targetTimeField.GetValue(module.GetComponent(_componentType));

        var solvedModules = currentBomb.BombComponents.Where(component => component.IsSolvable);
        var remaining     = currentBomb.BombComponents.Where(component => component.IsSolvable && !solvedModules.Contains(component))
                            .Select(component => component.GetModuleDisplayName())
                            .ToList();

        if (!remaining.Exists(x => !x.Equals("Turn The Key")) && remaining.Contains("Turn The Key"))
        {
            passCheck = true;
        }
        if (!restoreBombTimer)
        {
            currentBomb.GetTimer().TimeRemaining = time + 0.5f + Time.deltaTime;
            yield return(null);
        }
        else if (causeStrikeIfWrongTime && time != (int)Mathf.Floor(currentBomb.GetTimer().TimeRemaining))
        {
            module.HandleStrike();
            keyAnimator.SetTrigger("WrongTurn");
            keyAudio.PlaySoundAtTransform("WrongKeyTurnFK", module.transform);
            yield return(null);

            if (passCheck)
            {
                goto skip;
            }
            if (!(bool)_solvedField.GetValue(module.GetComponent(_componentType)))
            {
                yield break;
            }
        }
skip:
        module.HandlePass();
        _keyUnlockedField.SetValue(module.GetComponent(_componentType), true);
        _solvedField.SetValue(module.GetComponent(_componentType), true);
        keyAnimator.SetBool("IsUnlocked", true);
        keyAudio.PlaySoundAtTransform("TurnTheKeyFX", module.transform);
        yield return(null);
    }
    private void OnActivate()
    {
        string   serial   = Module.Bomb.QueryWidgets <string>(KMBombInfo.QUERYKEY_GET_SERIAL_NUMBER).First()["serial"];
        TextMesh textMesh = (TextMesh)DisplayField.GetValue(Module.BombComponent.GetComponent(ComponentType));

        ActivatedField.SetValue(Module.BombComponent.GetComponent(ComponentType), true);

        if (string.IsNullOrEmpty(_previousSerialNumber) || !_previousSerialNumber.Equals(serial) || _keyTurnTimes.Count == 0)
        {
            if (!string.IsNullOrEmpty(_previousSerialNumber) && _previousSerialNumber.Equals(serial))
            {
                Animator keyAnimator = (Animator)KeyAnimatorField.GetValue(Module.BombComponent.GetComponent(ComponentType));
                KMAudio  keyAudio    = (KMAudio)KeyAudioField.GetValue(Module.BombComponent.GetComponent(ComponentType));
                AttemptedForcedSolve = true;
                PrepareSilentSolve();
                Module.BombComponent.GetComponent <KMBombModule>().HandlePass();
                KeyUnlockedField.SetValue(Module.BombComponent.GetComponent(ComponentType), true);
                SolvedField.SetValue(Module.BombComponent.GetComponent(ComponentType), true);
                keyAnimator.SetBool("IsUnlocked", true);
                keyAudio.PlaySoundAtTransform("TurnTheKeyFX", Module.transform);
                textMesh.text = "88:88";
                return;
            }

            _keyTurnTimes.Clear();
            for (int i = OtherModes.Unexplodable ? 45 : 3; i < (OtherModes.Unexplodable ? 3600 : Module.Bomb.CurrentTimer - 45); i += 3)
            {
                _keyTurnTimes.Add(i);
            }
            if (_keyTurnTimes.Count == 0)
            {
                _keyTurnTimes.Add((int)(Module.Bomb.CurrentTimer / 2f));
            }

            _keyTurnTimes         = _keyTurnTimes.Shuffle().ToList();
            _previousSerialNumber = serial;
        }
        TargetTimeField.SetValue(Module.BombComponent.GetComponent(ComponentType), _keyTurnTimes[0]);

        string display = $"{_keyTurnTimes[0] / 60:00}:{_keyTurnTimes[0] % 60:00}";

        _keyTurnTimes.RemoveAt(0);

        textMesh.text = display;
    }
Exemplo n.º 26
0
    private void OnActivate()
    {
        string   serial   = QueryWidgets <string>(KMBombInfo.QUERYKEY_GET_SERIAL_NUMBER).First()["serial"];
        TextMesh textMesh = (TextMesh)_displayField.GetValue(module.GetComponent(_componentType));

        _activatedField.SetValue(module.GetComponent(_componentType), true);

        if (string.IsNullOrEmpty(_previousSerialNumber) || !_previousSerialNumber.Equals(serial) || _keyTurnTimes.Count == 0)
        {
            if (!string.IsNullOrEmpty(_previousSerialNumber) && _previousSerialNumber.Equals(serial))
            {
                Animator keyAnimator = (Animator)_keyAnimatorField.GetValue(module.GetComponent(_componentType));
                KMAudio  keyAudio    = (KMAudio)_keyAudioField.GetValue(module.GetComponent(_componentType));
                module.HandlePass();
                _keyUnlockedField.SetValue(module.GetComponent(_componentType), true);
                _solvedField.SetValue(module.GetComponent(_componentType), true);
                keyAnimator.SetBool("IsUnlocked", true);
                keyAudio.PlaySoundAtTransform("TurnTheKeyFX", module.transform);
                textMesh.text = "88:88";
                return;
            }
            _keyTurnTimes.Clear();
            for (int i = (Tweaks.CurrentMode.Equals(Mode.Zen) ? 45 : 3); i < (Tweaks.CurrentMode.Equals(Mode.Zen) ? initialTime : (currentBomb.GetTimer().TimeRemaining - 45)); i += 3)
            {
                _keyTurnTimes.Add(i);
            }
            if (_keyTurnTimes.Count == 0)
            {
                _keyTurnTimes.Add((int)(currentBomb.GetTimer().TimeRemaining / 2f));
            }

            _keyTurnTimes         = _keyTurnTimes.Shuffle().ToList();
            _previousSerialNumber = serial;
        }
        _targetTimeField.SetValue(module.GetComponent(_componentType), _keyTurnTimes[0]);

        string display = $"{_keyTurnTimes[0] / 60:00}:{_keyTurnTimes[0] % 60:00}";

        _keyTurnTimes.RemoveAt(0);

        textMesh.text = display;
        //Doesn't work
        active = true;
    }
Exemplo n.º 27
0
    private bool HandleKey(string[] modulesBefore, IEnumerable <string> modulesAfter, FieldInfo keyTurned, FieldInfo otherKeyTurned, FieldInfo beforeKeyField, MethodInfo onKeyTurn, FieldInfo animatorField)
    {
        if (!GetValue(ActivatedField) || GetValue(keyTurned))
        {
            return(false);
        }
        KMBombInfo   bombInfo    = Module.BombComponent.GetComponent <KMBombInfo>();
        KMBombModule bombModule  = Module.BombComponent.GetComponent <KMBombModule>();
        KMAudio      bombAudio   = Module.BombComponent.GetComponent <KMAudio>();
        Animator     keyAnimator = (Animator)animatorField.GetValue(Module.BombComponent.GetComponent(ComponentType));

        if (TwitchPlaySettings.data.EnforceSolveAllBeforeTurningKeys &&
            modulesAfter.Any(x => bombInfo.GetSolvedModuleNames().Count(x.Equals) != bombInfo.GetSolvableModuleNames().Count(x.Equals)))
        {
            keyAnimator.SetTrigger("WrongTurn");
            bombAudio.PlaySoundAtTransform("WrongKeyTurnFK", Module.transform);
            bombModule.HandleStrike();
            return(false);
        }

        beforeKeyField.SetValue(null, TwitchPlaySettings.data.DisableTurnTheKeysSoftLock ? new string[0] : modulesBefore);
        onKeyTurn.Invoke(Module.BombComponent.GetComponent(ComponentType), null);
        if (GetValue(keyTurned))
        {
            //Check to see if any forbidden modules for this key were solved.
            if (TwitchPlaySettings.data.DisableTurnTheKeysSoftLock && bombInfo.GetSolvedModuleNames().Any(modulesBefore.Contains))
            {
                bombModule.HandleStrike();                 //If so, Award a strike for it.
            }
            if (!GetValue(otherKeyTurned))
            {
                return(false);
            }
            int modules = bombInfo.GetSolvedModuleNames().Count(x => RightAfterA.Contains(x) || LeftAfterA.Contains(x));
            TwitchPlaySettings.AddRewardBonus((2 * modules * OtherModes.ScoreMultiplier).RoundToInt());
            IRCConnection.SendMessage($"Reward increased by {modules * 2} for defusing module !{Code} ({bombModule.ModuleDisplayName}).");
        }
        else
        {
            keyAnimator.SetTrigger("WrongTurn");
            bombAudio.PlaySoundAtTransform("WrongKeyTurnFK", Module.transform);
        }
        return(false);
    }
Exemplo n.º 28
0
    public IEnumerator PlayIntervalRandomNote(int intervalInSemitones, KMAudio moduleAudio, Transform transform, string type)
    {
        var randomStartingNote = Random.Range(0, soundListArray.Count() - intervalInSemitones);

        switch (type)
        {
        case "Harmonically":
            moduleAudio.PlaySoundAtTransform(soundListArray[randomStartingNote], transform);
            moduleAudio.PlaySoundAtTransform(soundListArray[randomStartingNote + intervalInSemitones], transform);
            break;

        default:
            moduleAudio.PlaySoundAtTransform(soundListArray[randomStartingNote + (type == "Ascending" ? 0 : intervalInSemitones)], transform);
            yield return(new WaitForSeconds(1));

            moduleAudio.PlaySoundAtTransform(soundListArray[randomStartingNote + (type == "Descending" ? 0 : intervalInSemitones)], transform);
            break;
        }
        yield return(null);
    }
Exemplo n.º 29
0
    private void Start()
    {
        Audio      = GetComponent <KMAudio>();
        Bomb       = GetComponent <KMBombInfo>();
        Module     = GetComponent <KMBombModule>();
        Selectable = GetComponent <KMSelectable>();

        buttons = Selectable.Children;
        foreach (KMSelectable button in buttons)
        {
            button.OnInteract += () =>
            {
                button.AddInteractionPunch();
                ButtonPressed(button.GetComponent <BurgerButton>());
                return(false);
            };
        }

        GenerateOrder();
    }
Exemplo n.º 30
0
    private void OnActivate()
    {
        string   serial   = QueryWidgets <string>(KMBombInfo.QUERYKEY_GET_SERIAL_NUMBER).First()["serial"];
        TextMesh textMesh = component.GetValue <TextMesh>("Display");

        component.SetValue("bActivated", true);

        if (string.IsNullOrEmpty(_previousSerialNumber) || !_previousSerialNumber.Equals(serial) || _keyTurnTimes.Count == 0)
        {
            if (!string.IsNullOrEmpty(_previousSerialNumber) && _previousSerialNumber.Equals(serial))
            {
                Animator keyAnimator = component.GetValue <Animator>("KeyAnimator");
                KMAudio  keyAudio    = component.GetValue <KMAudio>("mAudio");
                module.HandlePass();
                component.SetValue("bUnlocked", true);
                keyAnimator.SetBool("IsUnlocked", true);
                keyAudio.PlaySoundAtTransform("TurnTheKeyFX", module.transform);
                textMesh.text = "88:88";
                return;
            }
            _keyTurnTimes.Clear();
            for (int i = zenMode ? 45 : 3; i < (zenMode ? initialTime : (currentBomb.GetTimer().TimeRemaining - 45)); i += 3)
            {
                _keyTurnTimes.Add(i);
            }
            if (_keyTurnTimes.Count == 0)
            {
                _keyTurnTimes.Add((int)(currentBomb.GetTimer().TimeRemaining / 2f));
            }

            _keyTurnTimes         = _keyTurnTimes.Shuffle().ToList();
            _previousSerialNumber = serial;
        }
        component.SetValue("mTargetSecond", _keyTurnTimes[0]);

        string display = $"{_keyTurnTimes[0] / 60:00}:{_keyTurnTimes[0] % 60:00}";

        _keyTurnTimes.RemoveAt(0);

        textMesh.text = display;
    }