Пример #1
0
    private void HandleBInteractEnded()
    {
        Audio.PlayGameSoundAtTransform(KMSoundOverride.SoundEffect.BigButtonRelease, BSelectable.transform);
        B.Released();
        logger.DEBUG("B->RELEASED");

        if (moduleState != ModuleStateE.ACTIVE)
        {
            return;
        }

        Signal solution;

        switch (BombInfo.GetStrikes())
        {
        case 0: solution = solutionSignalsNoStrikes.Get(inputSignal); break;

        case 1: solution = solutionSignalsOneStrike.Get(inputSignal); break;

        default: solution = solutionSignalsTwoStrikes.Get(inputSignal); break;
        }

        if (generatorSignal == solution)
        {
            logger.DEBUG(string.Format("PASS! INPUT:{0} GENERATOR:{1} SOLUTION:{2} ", inputSignal.ToString(), generatorSignal.ToString(), solution.ToString()));
            moduleState = ModuleStateE.DISARMED;
            logger.DEBUG(string.Format("STATE:{0}", moduleState.ToString()));
            BombModule.HandlePass();
        }
        else
        {
            logger.DEBUG(string.Format("STRIKE! INPUT:{0} GENERATOR:{1} SOLUTION:{2}", inputSignal.ToString(), generatorSignal.ToString(), solution.ToString()));
            BombModule.HandleStrike();
        }
    }
Пример #2
0
 // room shown, lights not yet on
 public void Awake()
 {
     moduleState = ModuleStateE.AWAKE;
     logger.DEBUG(string.Format("STATE:{0}", moduleState.ToString()));
 }
Пример #3
0
 // timer starts, light is on
 public void Activate()
 {
     moduleState = ModuleStateE.ACTIVE;
     logger.DEBUG(string.Format("STATE:{0}", moduleState.ToString()));
 }
Пример #4
0
    // bomb generation (loading screen)
    public void Start()
    {
        moduleState = ModuleStateE.START;
        logger.DEBUG(string.Format("STATE:{0}", moduleState.ToString()));

        string seedStr = string.Format("{0}{1}", BombInfo.GetSerialNumber(), moduleId);

        byte[] seedBytes = new MD5CryptoServiceProvider().ComputeHash(ASCIIEncoding.ASCII.GetBytes(seedStr));
        int    seedInt   = System.BitConverter.ToInt32(seedBytes, 0);

        Random.InitState(seedInt);
        logger.DEBUG(string.Format("Seed: {0}", seedInt));

        BombModule.OnActivate += Activate;

        S1                       = new Switch(S1Obj, Switch.StateE.DOWN);
        S1Selectable             = S1Obj.GetComponent <KMSelectable>();
        S1Selectable.OnInteract += delegate() { HandleS1Interact(); return(false); };
        S2                       = new Switch(S2Obj, Switch.StateE.DOWN);
        S2Selectable             = S2Obj.GetComponent <KMSelectable>();
        S2Selectable.OnInteract += delegate() { HandleS2Interact(); return(false); };
        S3                       = new Switch(S3Obj, Switch.StateE.DOWN);
        S3Selectable             = S3Obj.GetComponent <KMSelectable>();
        S3Selectable.OnInteract += delegate() { HandleS3Interact(); return(false); };

        CS                       = new Selector(CSObj, Selector.StateE.LEFT);
        CSSelectable             = CSObj.GetComponent <KMSelectable>();
        CSSelectable.OnInteract += delegate() { HandleCSInteract(); return(false); };

        B                            = new Button(BObj);
        BSelectable                  = BObj.GetComponent <KMSelectable>();
        BSelectable.OnInteract      += delegate() { HandleBInteract(); return(false); };
        BSelectable.OnInteractEnded += delegate() { HandleBInteractEnded(); };

        S1Mapping = new SwitchStateMapping();
        logger.DEBUG(string.Format("S1 Mapping: {0}", S1Mapping.ToString()));
        S2Mapping = new SwitchStateMapping();
        logger.DEBUG(string.Format("S2 Mapping: {0}", S2Mapping.ToString()));
        S3Mapping = new SwitchStateMapping();
        logger.DEBUG(string.Format("S3 Mapping: {0}", S3Mapping.ToString()));

        switchMapping = new SwitchMapping();
        logger.DEBUG(string.Format("SwitchMapping: {0}", switchMapping.ToString()));

        inputSignal = new Signal();
        logger.DEBUG(string.Format("INPUT: {0}", inputSignal.ToString()));

        solutionSignalsNoStrikes  = new SolutionSignals(SolutionSignalsNoStrikesJson);
        solutionSignalsOneStrike  = new SolutionSignals(SolutionSignalsOneStrikeJson);
        solutionSignalsTwoStrikes = new SolutionSignals(SolutionSignalsTwoStrikesJson);

        Triple switchesMapped = switchMapping.Map(new Triple(S1Mapping.Map(S1.State), S2Mapping.Map(S2.State), S3Mapping.Map(S3.State)));

        generatorSignal = new Signal(
            (Signal.CoefficientE)switchesMapped.OBJ1,
            (Signal.CoefficientE)switchesMapped.OBJ2,
            (Signal.CoefficientE)switchesMapped.OBJ3);
        logger.DEBUG(string.Format("GENERATOR: {0}", generatorSignal.ToString()));

        scope = new Scope(scopeObj, (CS.State == Selector.StateE.LEFT) ? Scope.ChannelE.A : Scope.ChannelE.B, inputSignal, generatorSignal, false, SignalTextureOffsetsJson);
        GameInfo.OnLightsChange += HandleLightChange;
    }