Пример #1
0
 public void ElecSwitchTouched(ElecSwitch elecSwitch)
 {
     AllSwitchTouched = true;
     if (elecSwitch.Touched == true)
     {
         foreach(var es in ElecSwitches)
         {
             if (!es.Touched) AllSwitchTouched = false;
         }
     }
     if (AllSwitchTouched)
     {
         DoorOpen();
     }
     else
     {
         DoorClose();
     }
 }
    private IEnumerator SwitchHandlerCoroutine(ElecSwitch elecSwitch, ElecSwitchColor color)
    {
        elecSwitch.TurnOff();

        if ((ElecSwitchColor.RED == color && redDoorsOpen)
            || (ElecSwitchColor.BLACK == color && blackDoorsOpen)
            || (ElecSwitchColor.BLUE == color && blueDoorsOpen))
            goto EXIT_LABEL;

        cman.BeginCutScene();

        yield return StartCoroutine(elecSwitch.Press());

        switch (color) {
        case ElecSwitchColor.BLACK:
            toggleDoor(blackDoors, blackDoorsOpen = true);
            toggleDoor(blueDoors, blueDoorsOpen = false);
            toggleDoor(redDoors, redDoorsOpen = false);
            break;
        case ElecSwitchColor.BLUE:
            toggleDoor(blackDoors, blackDoorsOpen = false);
            toggleDoor(blueDoors, blueDoorsOpen = true);
            toggleDoor(redDoors, redDoorsOpen = false);
            break;
        case ElecSwitchColor.RED:
            toggleDoor(blackDoors, blackDoorsOpen = false);
            toggleDoor(blueDoors, blueDoorsOpen = false);
            toggleDoor(redDoors, redDoorsOpen = true);
            break;
        }

        yield return StartCoroutine(elecSwitch.Recover());

        cman.EndCutScene();
        EXIT_LABEL:
        elecSwitch.TurnOn();
    }
 private void SwitchHandler(ElecSwitch elecSwitch, ElecSwitchColor color)
 {
     StartCoroutine(SwitchHandlerCoroutine(elecSwitch, color));
 }