Esempio n. 1
0
    protected void OnNeedyDeactivation()
    {
        Dial1.Move(0);
        Dial2.Move(0);

        foreach (Nixie n in NumList)
        {
            n.SetValue(-1);
        }
    }
Esempio n. 2
0
    public override void RealFixedTick()
    {
        if (Active)
        {
            int t = (int)(GetComponent <KMNeedyModule>().GetNeedyTimeRemaining() + 0.8f);
            Dial1.Move(t / 10);
            Dial2.Move(t % 10);
        }

        if (InSpin)
        {
            Progress++;

            float angle;
            if (Progress >= GetSpinLimit())
            {
                InSpin = false;
                angle  = 180f;
                if (Active)
                {
                    Response = Response * 10 + Target;
                    ResponsePos++;
                    if (ResponsePos == NUM_DIGITS)
                    {
                        Debug.Log("[Rotary Phone #" + thisLoggingID + "] Provided value: " + Response);
                        Debug.Log("[Rotary Phone #" + thisLoggingID + "] Expected value: " + CurAnswer);
                        Active = false;
                        if (Response == CurAnswer)
                        {
                            GetComponent <KMNeedyModule>().HandlePass();
                            Sound.PlayGameSoundAtTransform(KMSoundOverride.SoundEffect.ButtonPress, gameObject.transform);
                        }
                        else
                        {
                            GetComponent <KMNeedyModule>().HandleStrike();
                            GetComponent <KMNeedyModule>().HandlePass();
                            CurAnswer  = DisplayNumber;
                            PhoneDelay = 50;
                        }
                    }
                }
            }
            else
            {
                angle = GetSpinPosition();
            }
            PhoneRing.localEulerAngles = new Vector3(0, angle, 0);
        }

        if (PhoneDelay > 0)
        {
            PhoneDelay--;
            if (PhoneDelay == 0)
            {
                bool voice = false;
                if (HasFailed)
                {
                    if (Random.Range(0, 3) == 0)
                    {
                        voice = true;
                    }
                }
                HasFailed = true;
                if (voice)
                {
                    string name = SoundNames[Random.Range(0, SoundNames.Length)];
                    Sound.PlaySoundAtTransform(name, gameObject.transform);
                }
                else
                {
                    Sound.PlaySoundAtTransform("NoNumber", gameObject.transform);
                }
            }
        }
    }