Ejemplo n.º 1
0
 void Start()
 {
     foreach (Renderer wall in exteriorWalls)
     {
         wall.material = exteriorMaterials[0];
     }
     currentLevelInfo = level1Info;
     foreach (GameObject button in controllerButtons)
     {
         button.GetComponent <Renderer>().material = exteriorMaterials[currentLevelInfo.level - 1];
     }
 }
Ejemplo n.º 2
0
 void CheckForTarget()
 {
     if (currentActive.GetComponent <PositionRules>().isActive&& currentActive.GetComponent <PositionRules>().isTarget)
     {
         currentStage++;
         arrived = true;
         Audio.PlaySoundAtTransform("portal", transform);
     }
     if (arrived)
     {
         if (currentStage == 2 || currentStage == 8)
         {
             for (int i = 0; i <= 40; i++)
             {
                 level1Info.level1Indicators[i].enabled = false;
                 level3Info.level1Indicators[i].enabled = false;
             }
             foreach (Renderer wall in exteriorWalls)
             {
                 wall.material = exteriorMaterials[1];
             }
             Debug.LogFormat("[The Labyrinth #{0}] Portal entered. Arriving at layer 2.", moduleId);
             positionIndexTransfer = currentActive.GetComponent <PositionRules>().positionIndex;
             level2Info.level1Indicators[positionIndexTransfer].GetComponent <PositionRules>().isActive = true;
             currentLevelInfo = level2Info;
             level2Info.GetLocations();
             currentActive.GetComponent <PositionRules>().isActive = false;
             arrived = false;
         }
         else if (currentStage == 3 || currentStage == 7)
         {
             for (int i = 0; i <= 40; i++)
             {
                 level2Info.level1Indicators[i].enabled = false;
                 level4Info.level1Indicators[i].enabled = false;
             }
             foreach (Renderer wall in exteriorWalls)
             {
                 wall.material = exteriorMaterials[2];
             }
             Debug.LogFormat("[The Labyrinth #{0}] Portal entered. Arriving at layer 3.", moduleId);
             positionIndexTransfer = currentActive.GetComponent <PositionRules>().positionIndex;
             level3Info.level1Indicators[positionIndexTransfer].GetComponent <PositionRules>().isActive = true;
             currentLevelInfo = level3Info;
             level3Info.GetLocations();
             currentActive.GetComponent <PositionRules>().isActive = false;
             arrived = false;
         }
         else if (currentStage == 4 || currentStage == 6)
         {
             for (int i = 0; i <= 40; i++)
             {
                 level3Info.level1Indicators[i].enabled = false;
                 level5Info.level1Indicators[i].enabled = false;
             }
             foreach (Renderer wall in exteriorWalls)
             {
                 wall.material = exteriorMaterials[3];
             }
             Debug.LogFormat("[The Labyrinth #{0}] Portal entered. Arriving at layer 4.", moduleId);
             positionIndexTransfer = currentActive.GetComponent <PositionRules>().positionIndex;
             level4Info.level1Indicators[positionIndexTransfer].GetComponent <PositionRules>().isActive = true;
             currentLevelInfo = level4Info;
             level4Info.GetLocations();
             currentActive.GetComponent <PositionRules>().isActive = false;
             arrived = false;
         }
         else if (currentStage == 5)
         {
             for (int i = 0; i <= 40; i++)
             {
                 level4Info.level1Indicators[i].enabled = false;
             }
             foreach (Renderer wall in exteriorWalls)
             {
                 wall.material = exteriorMaterials[4];
             }
             Debug.LogFormat("[The Labyrinth #{0}] Portal entered. Arriving at layer 5.", moduleId);
             positionIndexTransfer = currentActive.GetComponent <PositionRules>().positionIndex;
             level5Info.level1Indicators[positionIndexTransfer].GetComponent <PositionRules>().isActive = true;
             currentLevelInfo = level5Info;
             level5Info.GetLocations();
             currentActive.GetComponent <PositionRules>().isActive = false;
             arrived = false;
         }
         else if (currentStage == 9)
         {
             for (int i = 0; i <= 40; i++)
             {
                 level2Info.level1Indicators[i].enabled = false;
             }
             foreach (Renderer wall in exteriorWalls)
             {
                 wall.material = exteriorMaterials[0];
             }
             Debug.LogFormat("[The Labyrinth #{0}] Portal entered. Arriving at layer 1.", moduleId);
             positionIndexTransfer = currentActive.GetComponent <PositionRules>().positionIndex;
             level1Info.level1Indicators[positionIndexTransfer].GetComponent <PositionRules>().isActive = true;
             currentLevelInfo = level1Info;
             level1Info.GetLocations();
             currentActive.GetComponent <PositionRules>().isActive = false;
             arrived = false;
         }
         else if (currentStage == 10)
         {
             for (int i = 0; i <= 40; i++)
             {
                 level1Info.level1Indicators[i].enabled = false;
             }
             foreach (Renderer wall in exteriorWalls)
             {
                 wall.enabled = false;
             }
             wallOutlines.SetActive(false);
             moduleSolved = true;
             GetComponent <KMBombModule>().HandlePass();
             Debug.LogFormat("[The Labyrinth #{0}] Labyrinth solved. Module disarmed.", moduleId);
             foreach (GameObject button in controllerButtons)
             {
                 button.SetActive(false);
             }
             return;
         }
     }
     foreach (GameObject button in controllerButtons)
     {
         button.GetComponent <Renderer>().material = exteriorMaterials[currentLevelInfo.level - 1];
     }
 }
Ejemplo n.º 3
0
    public void PressDown()
    {
        if (moduleSolved || flashing)
        {
            return;
        }
        moveDown.AddInteractionPunch();
        if (currentStage == 1 || currentStage == 9)
        {
            currentLevelInfo = level1Info;
            foreach (Renderer indicator in level1Info.level1Indicators)
            {
                if (indicator.GetComponent <PositionRules>().isActive)
                {
                    currentActive = indicator;
                }
            }
        }
        else if (currentStage == 2 || currentStage == 8)
        {
            currentLevelInfo = level2Info;
            foreach (Renderer indicator in level2Info.level1Indicators)
            {
                if (indicator.GetComponent <PositionRules>().isActive)
                {
                    currentActive = indicator;
                }
            }
        }
        else if (currentStage == 3 || currentStage == 7)
        {
            currentLevelInfo = level3Info;
            foreach (Renderer indicator in level3Info.level1Indicators)
            {
                if (indicator.GetComponent <PositionRules>().isActive)
                {
                    currentActive = indicator;
                }
            }
        }
        else if (currentStage == 4 || currentStage == 6)
        {
            currentLevelInfo = level4Info;
            foreach (Renderer indicator in level4Info.level1Indicators)
            {
                if (indicator.GetComponent <PositionRules>().isActive)
                {
                    currentActive = indicator;
                }
            }
        }
        else if (currentStage == 5)
        {
            currentLevelInfo = level5Info;
            foreach (Renderer indicator in level5Info.level1Indicators)
            {
                if (indicator.GetComponent <PositionRules>().isActive)
                {
                    currentActive = indicator;
                }
            }
        }

        if (!currentActive.GetComponent <PositionRules>().canMoveDown)
        {
            GetComponent <KMBombModule>().HandleStrike();
            Debug.LogFormat("[The Labyrinth #{0}] Strike! You tried to move down from position {1} in layer {2}. That is not allowed.", moduleId, currentActive.name, currentLevelInfo.level);
            flashing = true;
            if (currentStage <= 5)
            {
                StartCoroutine(strikeFlash());
            }
            else
            {
                StartCoroutine(portalFlash());
            }
        }
        else
        {
            Audio.PlaySoundAtTransform("move", transform);
            currentActive.GetComponent <PositionRules>().toDown.enabled = true;
            currentActive.GetComponent <PositionRules>().toDown.GetComponent <PositionRules>().isActive = true;
            currentActive.GetComponent <PositionRules>().isActive = false;
            currentActive.enabled  = false;
            currentActive          = currentActive.GetComponent <PositionRules>().toDown;
            currentActive.material = level1Info.activeMat;
        }
        CheckForTarget();
    }