Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 36.96 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityStandardAssets.Characters.FirstPerson;
  5. using UnityEngine.UI;
  6. using TMPro;
  7. using UnityEngine.SceneManagement;
  8.  
  9. public class RaycastingScript : MonoBehaviour
  10. {
  11.     public float distanceOfRay;
  12.     public RaycastHit hitObject;
  13.     public GameObject player;
  14.     public TextMeshProUGUI UIPrompt;
  15.     public FirstPersonController playerController;
  16.     public Color highlightColor;
  17.     public Color pressedColor;
  18.     public GameObject mainMenuObject;
  19.     private List<int> selectedIndices = new List<int>();
  20.     public GameObject[] patchyFadeBox;
  21.  
  22.     public JettisonScript jettisonScript;
  23.     public bool jettisonStored;
  24.     public TextMeshPro jettisonToHighlight;
  25.     public TextMeshPro storedJettison;
  26.     TextMeshPro jettisonSubmitToHighlight;
  27.  
  28.     public MagnetiseScript magnetScript;
  29.     TextMeshPro objToUnderline;
  30.  
  31.     public Animator lift;
  32.     public Animator liftMove;
  33.     public bool liftIsOpen;
  34.     public GameObject doorBlocker;
  35.     public TextMeshPro liftFloors;
  36.     public int currentFloor = 1;
  37.     public bool liftIsMoving = false;
  38.  
  39.     public PhotonScript photonScript;
  40.     TextMeshPro photonToHighlight;
  41.  
  42.     public RadionScript radionScript;
  43.  
  44.     public DampenerScript dampenerScript;
  45.     TextMeshPro dampToHighlight;
  46.  
  47.     public CarbonScript carbonScript;
  48.     TextMeshPro carbonToHighlight;
  49.  
  50.     public SubspaceScript subspaceScript;
  51.     TextMeshPro subspaceToUnderline;
  52.  
  53.     public TransmitScript transmitScript;
  54.     TextMeshPro transmitToUnderline;
  55.  
  56.     public PrefireScript prefireScript;
  57.     TextMeshPro prefireToHighlight;
  58.  
  59.     public TerminateScript terminateScript;
  60.     TextMeshPro terminateToUnderline;
  61.  
  62.     TextMeshPro returnToUnderline;
  63.  
  64.     public ThelaronScript thelaronScript;
  65.     TextMeshPro thelaronToHighlight;
  66.  
  67.     public bool audioHighlight;
  68.     public PuzzleAudioManager puzzleAudio;
  69.     public EventHandler eventHandler;
  70.     public AudioSource liftDoorsSFX;
  71.     public AudioSource liftMoveSFX;
  72.     public AudioClip[] liftOpenCloseSFX;
  73.  
  74.     void Start()
  75.     {
  76.         player = GameObject.FindWithTag("Player");
  77.         doorBlocker.SetActive(false);
  78.         UIPrompt.enabled = false;
  79.     }
  80.  
  81.     void Update()
  82.     {
  83.         Debug.DrawRay(this.transform.position, this.transform.forward * distanceOfRay, Color.red);
  84.         if (!playerController.enabled)
  85.         {
  86.             return;
  87.         }
  88.         if (Physics.Raycast(this.transform.position, this.transform.forward, out hitObject, distanceOfRay))
  89.         {
  90.             if(hitObject.collider == null)
  91.             {
  92.                 UIPrompt.enabled = false;
  93.                 return;
  94.             }
  95.             else if (hitObject.collider.gameObject.tag == "JettisonMove")
  96.             {
  97.                 jettisonToHighlight = hitObject.collider.gameObject.GetComponent<TextMeshPro>();
  98.                 JettisonMove();
  99.                 if (!audioHighlight && !jettisonScript.jettisonSolved && !eventHandler.suppressInterfaceAudio && hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>() != storedJettison)
  100.                 {
  101.                     puzzleAudio.ObjectHighlight();
  102.                 }
  103.                 audioHighlight = true;
  104.             }
  105.             else if (hitObject.collider.gameObject.tag == "JettisonSubmit")
  106.             {
  107.                 jettisonSubmitToHighlight = hitObject.collider.gameObject.GetComponent<TextMeshPro>();
  108.                 JettisonSubmit();
  109.                 if (!audioHighlight && !jettisonScript.jettisonSolved && !eventHandler.suppressInterfaceAudio)
  110.                 {
  111.                     puzzleAudio.ObjectHighlight();
  112.                 }
  113.                 audioHighlight = true;
  114.             }
  115.             else if (hitObject.collider.gameObject.tag == "MagnetBypass")
  116.             {
  117.                 objToUnderline = hitObject.collider.gameObject.GetComponent<TextMeshPro>();
  118.                 MagnetBypass();
  119.                 if (!audioHighlight && !magnetScript.magnetSolved && !eventHandler.suppressInterfaceAudio && !magnetScript.passwordSolved)
  120.                 {
  121.                     puzzleAudio.ObjectHighlight();
  122.                 }
  123.                 audioHighlight = true;
  124.             }
  125.             else if (hitObject.collider.gameObject.tag == "MagnetInit")
  126.             {
  127.                 objToUnderline = hitObject.collider.gameObject.GetComponent<TextMeshPro>();
  128.                 MagnetInit();
  129.                 if (!audioHighlight && !magnetScript.magnetSolved && !eventHandler.suppressInterfaceAudio)
  130.                 {
  131.                     puzzleAudio.ObjectHighlight();
  132.                 }
  133.                 audioHighlight = true;
  134.             }
  135.             else if (hitObject.collider.gameObject.tag == "MagnetColor")
  136.             {
  137.                 MagnetColor();
  138.                 if (!audioHighlight && !magnetScript.magnetSolved && !eventHandler.suppressInterfaceAudio)
  139.                 {
  140.                     puzzleAudio.ObjectHighlight();
  141.                 }
  142.                 audioHighlight = true;
  143.             }
  144.             else if (hitObject.collider.gameObject.tag == "MagnetCommand")
  145.             {
  146.                 objToUnderline = hitObject.collider.gameObject.GetComponent<TextMeshPro>();
  147.                 MagnetCommand();
  148.                 if (!audioHighlight && !magnetScript.magnetSolved && !eventHandler.suppressInterfaceAudio)
  149.                 {
  150.                     puzzleAudio.ObjectHighlight();
  151.                 }
  152.                 audioHighlight = true;
  153.             }
  154.             else if (hitObject.collider.gameObject.tag == "OpenLift")
  155.             {
  156.                 OpenLift();
  157.             }
  158.             else if (hitObject.collider.gameObject.tag == "CloseLift")
  159.             {
  160.                 CloseLift();
  161.             }
  162.             else if (hitObject.collider.gameObject.tag == "PhotonButton")
  163.             {
  164.                 photonToHighlight = hitObject.collider.gameObject.GetComponent<TextMeshPro>();
  165.                 PhotonButton();
  166.                 if(!audioHighlight && !photonScript.photonSolved && !eventHandler.suppressInterfaceAudio)
  167.                 {
  168.                     puzzleAudio.ObjectHighlight();
  169.                 }
  170.                 audioHighlight = true;
  171.             }
  172.             else if (hitObject.collider.gameObject.tag == "PhotonSubmit")
  173.             {
  174.                 photonToHighlight = hitObject.collider.gameObject.GetComponent<TextMeshPro>();
  175.                 PhotonSubmit();
  176.                 if (!audioHighlight && !photonScript.photonSolved && !eventHandler.suppressInterfaceAudio)
  177.                 {
  178.                     puzzleAudio.ObjectHighlight();
  179.                 }
  180.                 audioHighlight = true;
  181.             }
  182.             else if (hitObject.collider.gameObject.tag == "RadionButton")
  183.             {
  184.                 objToUnderline = hitObject.collider.gameObject.GetComponent<TextMeshPro>();
  185.                 RadionButton();
  186.                 if (!audioHighlight && !radionScript.radionSolved && !eventHandler.suppressInterfaceAudio)
  187.                 {
  188.                     puzzleAudio.ObjectHighlight();
  189.                 }
  190.                 audioHighlight = true;
  191.             }
  192.             else if (hitObject.collider.gameObject.tag == "DampenerButton")
  193.             {
  194.                 if(!dampenerScript.dampenerActive)
  195.                 {
  196.                     return;
  197.                 }
  198.                 dampToHighlight = hitObject.collider.gameObject.GetComponent<TextMeshPro>();
  199.                 DampenerButton();
  200.                 if (!audioHighlight && !dampenerScript.dampenerSolved && !eventHandler.suppressInterfaceAudio && !hitObject.collider.gameObject.GetComponent<DampenerButtons>().buttonPressed)
  201.                 {
  202.                     puzzleAudio.ObjectHighlight();
  203.                 }
  204.                 audioHighlight = true;
  205.             }
  206.             else if (hitObject.collider.gameObject.tag == "CarbonButton")
  207.             {
  208.                 carbonToHighlight = hitObject.collider.gameObject.GetComponent<TextMeshPro>();
  209.                 CarbonButton();
  210.                 if (!audioHighlight && !carbonScript.carbonSolved && !eventHandler.suppressInterfaceAudio)
  211.                 {
  212.                     puzzleAudio.ObjectHighlight();
  213.                 }
  214.                 audioHighlight = true;
  215.             }
  216.             else if (hitObject.collider.gameObject.tag == "CarbonSubmit")
  217.             {
  218.                 carbonToHighlight = hitObject.collider.gameObject.GetComponent<TextMeshPro>();
  219.                 CarbonSubmit();
  220.                 if (!audioHighlight && !carbonScript.carbonSolved && !eventHandler.suppressInterfaceAudio)
  221.                 {
  222.                     puzzleAudio.ObjectHighlight();
  223.                 }
  224.                 audioHighlight = true;
  225.             }
  226.             else if (hitObject.collider.gameObject.tag == "SubspaceButton")
  227.             {
  228.                 subspaceToUnderline = hitObject.collider.gameObject.GetComponent<TextMeshPro>();
  229.                 SubspaceButton();
  230.                 if (!audioHighlight && !subspaceScript.subspaceSolved && !eventHandler.suppressInterfaceAudio && !hitObject.collider.gameObject.GetComponent<SubspaceButtonScript>().clicked && !hitObject.collider.gameObject.GetComponent<SubspaceButtonScript>().resetting)
  231.                 {
  232.                     puzzleAudio.ObjectHighlight();
  233.                 }
  234.                 audioHighlight = true;
  235.             }
  236.             else if (hitObject.collider.gameObject.tag == "TransmitArray")
  237.             {
  238.                 transmitToUnderline = hitObject.collider.gameObject.GetComponent<TextMeshPro>();
  239.                 TransmitArray();
  240.                 if (!audioHighlight && !transmitScript.transmitSolved && !eventHandler.suppressInterfaceAudio)
  241.                 {
  242.                     puzzleAudio.ObjectHighlight();
  243.                 }
  244.                 audioHighlight = true;
  245.             }
  246.             else if (hitObject.collider.gameObject.tag == "PrefireButton")
  247.             {
  248.                 prefireToHighlight = hitObject.collider.gameObject.GetComponent<TextMeshPro>();
  249.                 PrefireButton();
  250.                 if (!audioHighlight && !prefireScript.prefireSolved && !eventHandler.suppressInterfaceAudio)
  251.                 {
  252.                     puzzleAudio.ObjectHighlight();
  253.                 }
  254.                 audioHighlight = true;
  255.             }
  256.             else if (hitObject.collider.gameObject.tag == "PrefireSubmit")
  257.             {
  258.                 prefireToHighlight = hitObject.collider.gameObject.GetComponent<TextMeshPro>();
  259.                 PrefireSubmit();
  260.                 if (!audioHighlight && !prefireScript.prefireSolved && !eventHandler.suppressInterfaceAudio)
  261.                 {
  262.                     puzzleAudio.ObjectHighlight();
  263.                 }
  264.                 audioHighlight = true;
  265.             }
  266.             else if (hitObject.collider.gameObject.tag == "TerminateButton")
  267.             {
  268.                 terminateToUnderline = hitObject.collider.gameObject.GetComponent<TextMeshPro>();
  269.                 TerminateButton();
  270.                 if (!audioHighlight && !eventHandler.suppressInterfaceAudio)
  271.                 {
  272.                     puzzleAudio.ObjectHighlight();
  273.                 }
  274.                 audioHighlight = true;
  275.             }
  276.             else if (hitObject.collider.gameObject.tag == "ReturnToMenu")
  277.             {
  278.                 returnToUnderline = hitObject.collider.gameObject.GetComponent<TextMeshPro>();
  279.                 ReturnToMenu();
  280.                 if (!audioHighlight && !eventHandler.suppressInterfaceAudio)
  281.                 {
  282.                     puzzleAudio.ObjectHighlight();
  283.                 }
  284.                 audioHighlight = true;
  285.             }
  286.             else if (hitObject.collider.gameObject.tag == "ThelaronButton")
  287.             {
  288.                 if (!hitObject.collider.gameObject.GetComponent<ThelaronButtons>().clicked)
  289.                 {
  290.                     thelaronToHighlight = hitObject.collider.gameObject.GetComponent<TextMeshPro>();
  291.                     ThelaronButton();
  292.                     if (!audioHighlight && !thelaronScript.thelaronSolved && !eventHandler.suppressInterfaceAudio && !hitObject.collider.gameObject.GetComponent<ThelaronButtons>().clicked)
  293.                     {
  294.                         puzzleAudio.ObjectHighlight();
  295.                     }
  296.                     audioHighlight = true;
  297.                 }
  298.             }
  299.             else
  300.             {
  301.                 audioHighlight = false;
  302.                 UIPrompt.enabled = false;
  303.                 if (objToUnderline != null)
  304.                 {
  305.                     objToUnderline.fontStyle = FontStyles.Normal;
  306.                     objToUnderline = null;
  307.                 }
  308.                 if (dampToHighlight != null && !dampToHighlight.GetComponent<DampenerButtons>().buttonPressed)
  309.                 {
  310.                     dampToHighlight.color = dampenerScript.startColor;
  311.                     dampToHighlight = null;
  312.                 }
  313.                 if (!photonScript.photonSolved)
  314.                 {
  315.                     if (photonToHighlight != null)
  316.                     {
  317.                         photonToHighlight.color = dampenerScript.startColor;
  318.                         photonToHighlight = null;
  319.                     }
  320.                 }
  321.                 if (!jettisonScript.jettisonSolved)
  322.                 {
  323.                     if (jettisonToHighlight != null)
  324.                     {
  325.                         jettisonToHighlight.color = dampenerScript.startColor;
  326.                         jettisonToHighlight = null;
  327.                     }
  328.                     if(jettisonSubmitToHighlight != null)
  329.                     {
  330.                         jettisonSubmitToHighlight.color = dampenerScript.startColor;
  331.                         jettisonSubmitToHighlight = null;
  332.                     }
  333.                 }
  334.                 if (storedJettison != null && jettisonStored && !jettisonScript.jettisonSolved)
  335.                 {
  336.                     storedJettison.color = pressedColor;
  337.                 }
  338.                 if (!carbonScript.carbonSolved)
  339.                 {
  340.                     if (carbonToHighlight != null)
  341.                     {
  342.                         carbonToHighlight.color = dampenerScript.startColor;
  343.                         carbonToHighlight = null;
  344.                     }
  345.                 }
  346.                 if (subspaceToUnderline != null)
  347.                 {
  348.                     subspaceToUnderline.fontStyle = FontStyles.Normal;
  349.                     subspaceToUnderline = null;
  350.                 }
  351.                 if (transmitToUnderline != null)
  352.                 {
  353.                     transmitToUnderline.fontStyle = FontStyles.Normal;
  354.                     transmitToUnderline = null;
  355.                 }
  356.                 if (!prefireScript.prefireSolved)
  357.                 {
  358.                     if (prefireToHighlight != null)
  359.                     {
  360.                         prefireToHighlight.color = dampenerScript.startColor;
  361.                         prefireToHighlight = null;
  362.                     }
  363.                 }
  364.                 if (terminateToUnderline != null)
  365.                 {
  366.                     terminateToUnderline.fontStyle = FontStyles.Normal;
  367.                     terminateToUnderline = null;
  368.                 }
  369.                 if (returnToUnderline != null)
  370.                 {
  371.                     returnToUnderline.fontStyle = FontStyles.Normal;
  372.                     returnToUnderline = null;
  373.                 }
  374.                 if (!thelaronScript.thelaronSolved)
  375.                 {
  376.                     if (thelaronToHighlight != null)
  377.                     {
  378.                         thelaronToHighlight.color = dampenerScript.startColor;
  379.                         thelaronToHighlight = null;
  380.                     }
  381.                 }
  382.             }
  383.         }
  384.         else
  385.         {
  386.             UIPrompt.enabled = false;
  387.             return;
  388.         }
  389.     }
  390.  
  391.     void JettisonMove()
  392.     {
  393.         if (jettisonScript.jettisonSolved || !jettisonScript.jettisonActive || hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>() == storedJettison)
  394.         {
  395.             return;
  396.         }
  397.         for (int i = 0; i < 9; i++)
  398.         {
  399.             jettisonScript.displayedLetters[i].color = dampenerScript.startColor;
  400.         }
  401.         hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().color = highlightColor;
  402.         if (storedJettison != null)
  403.         {
  404.             storedJettison.color = pressedColor;
  405.         }
  406.  
  407.         if (Input.GetMouseButtonDown(0) == true)
  408.         {
  409.             if (!jettisonStored)
  410.             {
  411.                 puzzleAudio.ObjectClick();
  412.                 storedJettison = hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>();
  413.                 jettisonScript.storedMesh = hitObject.collider.gameObject.GetComponentInChildren<JettisonMove>().buttonMesh;
  414.                 jettisonScript.storedCharacter = hitObject.collider.gameObject.GetComponentInChildren<JettisonMove>().buttonLabel;
  415.                 hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().color = pressedColor;
  416.                 jettisonStored = true;
  417.                 jettisonScript.UpdateColors();
  418.             }
  419.             else
  420.             {
  421.                 puzzleAudio.ObjectAltClick();
  422.                 storedJettison = null;
  423.                 jettisonScript.storedMesh.GetComponentInChildren<JettisonMove>().buttonLabel = hitObject.collider.gameObject.GetComponentInChildren<JettisonMove>().buttonLabel;
  424.                 hitObject.collider.gameObject.GetComponentInChildren<JettisonMove>().buttonLabel = jettisonScript.storedCharacter;
  425.                 jettisonScript.storedMesh = null;
  426.                 jettisonScript.storedCharacter = "";
  427.                 jettisonStored = false;
  428.                 jettisonScript.UpdateColors();
  429.             }
  430.         }
  431.     }
  432.  
  433.     void JettisonSubmit()
  434.     {
  435.         if (jettisonScript.jettisonSolved || !jettisonScript.jettisonActive)
  436.         {
  437.             return;
  438.         }
  439.         hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().color = highlightColor;
  440.         if (Input.GetMouseButtonDown(0) == true)
  441.         {
  442.             jettisonScript.CheckAnswer();
  443.         }
  444.     }
  445.  
  446.     void MagnetBypass()
  447.     {
  448.         if (magnetScript.magnetSolved || !magnetScript.magnetActive || magnetScript.passwordSolved)
  449.         {
  450.             return;
  451.         }
  452.         hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().fontStyle = FontStyles.Underline;
  453.         if (Input.GetMouseButtonDown(0) == true)
  454.         {
  455.             puzzleAudio.ObjectAltClick();
  456.             if (objToUnderline != null)
  457.             {
  458.                 objToUnderline.fontStyle = FontStyles.Normal;
  459.                 objToUnderline = null;
  460.             }
  461.             magnetScript.frontPage.SetActive(false);
  462.             magnetScript.bypassScreen.SetActive(true);
  463.             magnetScript.bypass = true;
  464.         }
  465.     }
  466.  
  467.     void MagnetInit()
  468.     {
  469.         if (magnetScript.magnetSolved || !magnetScript.magnetActive)
  470.         {
  471.             return;
  472.         }
  473.         hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().fontStyle = FontStyles.Underline;
  474.         if (Input.GetMouseButtonDown(0) == true)
  475.         {
  476.             puzzleAudio.ObjectAltClick();
  477.             if (objToUnderline != null)
  478.             {
  479.                 objToUnderline.fontStyle = FontStyles.Normal;
  480.                 objToUnderline = null;
  481.             }
  482.             if (magnetScript.passwordSolved)
  483.             {
  484.                 magnetScript.frontPage.SetActive(false);
  485.                 magnetScript.initiateScreen.SetActive(true);
  486.                 magnetScript.magnetInit = true;
  487.             }
  488.             else
  489.             {
  490.                 magnetScript.EarlyClick();
  491.             }
  492.         }
  493.     }
  494.  
  495.     void MagnetColor()
  496.     {
  497.         if (magnetScript.magnetSolved || !magnetScript.magnetActive)
  498.         {
  499.             return;
  500.         }
  501.         if (Input.GetMouseButtonDown(0) == true)
  502.         {
  503.             puzzleAudio.ObjectClick();
  504.             hitObject.collider.gameObject.GetComponentInChildren<MagnetiseColorScript>().currentlyDisplayedColor = (hitObject.collider.gameObject.GetComponentInChildren<MagnetiseColorScript>().currentlyDisplayedColor + 1) % 3;
  505.             hitObject.collider.gameObject.GetComponentInChildren<MagnetiseColorScript>().block.material = hitObject.collider.gameObject.GetComponentInChildren<MagnetiseColorScript>().cyclingColors[hitObject.collider.gameObject.GetComponentInChildren<MagnetiseColorScript>().currentlyDisplayedColor];
  506.         }
  507.     }
  508.  
  509.     void MagnetCommand()
  510.     {
  511.         if (magnetScript.magnetSolved || !magnetScript.magnetActive)
  512.         {
  513.             return;
  514.         }
  515.         hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().fontStyle = FontStyles.Underline;
  516.         if (Input.GetMouseButtonDown(0) == true)
  517.         {
  518.             puzzleAudio.ObjectAltClick();
  519.             magnetScript.commandLine.text = "";
  520.             magnetScript.command = true;
  521.             if (objToUnderline != null)
  522.             {
  523.                 objToUnderline.fontStyle = FontStyles.Normal;
  524.                 objToUnderline = null;
  525.             }
  526.         }
  527.     }
  528.  
  529.     void OpenLift()
  530.     {
  531.         if (liftIsMoving || liftIsOpen)
  532.         {
  533.             UIPrompt.enabled = false;
  534.             return;
  535.         }
  536.         UIPrompt.enabled = true;
  537.         UIPrompt.text = "Call Lift";
  538.         if (Input.GetMouseButtonDown(0) == true)
  539.         {
  540.             if (!liftIsOpen)
  541.             {
  542.                 UIPrompt.enabled = false;
  543.                 lift.SetTrigger("open");
  544.                 liftIsOpen = true;
  545.                 liftDoorsSFX.clip = liftOpenCloseSFX[0];
  546.                 liftDoorsSFX.Play();
  547.                 StartCoroutine(TimerClose());
  548.             }
  549.         }
  550.     }
  551.  
  552.     void CloseLift()
  553.     {
  554.         if (liftIsMoving)
  555.         {
  556.             UIPrompt.enabled = false;
  557.             return;
  558.         }
  559.         bool tempDamaged = false;
  560.         UIPrompt.enabled = true;
  561.         UIPrompt.text = "Move Lift";
  562.         if (Input.GetMouseButtonDown(0) == true)
  563.         {
  564.             if (liftIsOpen)
  565.             {
  566.                 if(lift.GetBool("damaged"))
  567.                 {
  568.                     tempDamaged = true;
  569.                     lift.SetBool("damaged", false);
  570.                 }
  571.                 lift.SetTrigger("close");
  572.                 liftIsOpen = false;
  573.                 liftDoorsSFX.clip = liftOpenCloseSFX[1];
  574.                 liftDoorsSFX.Play();
  575.             }
  576.             liftIsMoving = true;
  577.             StartCoroutine(MoveLift(tempDamaged));
  578.         }
  579.     }
  580.  
  581.     void PhotonButton()
  582.     {
  583.         if (photonScript.photonSolved || !photonScript.photonActive)
  584.         {
  585.             return;
  586.         }
  587.         for (int i = 0; i < 4; i++)
  588.         {
  589.             photonScript.buttons[i].GetComponent<TextMeshPro>().color = dampenerScript.startColor;
  590.         }
  591.         photonScript.centralNumberText.color = dampenerScript.startColor;
  592.         hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().color = highlightColor;
  593.         if (Input.GetMouseButtonDown(0) == true)
  594.         {
  595.             puzzleAudio.ObjectClick();
  596.             int direction = hitObject.collider.gameObject.GetComponentInChildren<PhotonButton>().direction;
  597.             photonScript.ChangeNumber(direction);
  598.         }
  599.     }
  600.  
  601.     void PhotonSubmit()
  602.     {
  603.         if (photonScript.photonSolved || !photonScript.photonActive)
  604.         {
  605.             return;
  606.         }
  607.         for (int i = 0; i < 4; i++)
  608.         {
  609.             photonScript.buttons[i].GetComponent<TextMeshPro>().color = dampenerScript.startColor;
  610.         }
  611.         hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().color = highlightColor;
  612.         if (Input.GetMouseButtonDown(0) == true)
  613.         {
  614.             photonScript.CheckAnswer();
  615.         }
  616.     }
  617.  
  618.     void RadionButton()
  619.     {
  620.         if (radionScript.radionSolved || !radionScript.radionActive)
  621.         {
  622.             return;
  623.         }
  624.         hitObject.collider.gameObject.GetComponent<TextMeshPro>().fontStyle = FontStyles.Underline;
  625.         if (Input.GetMouseButtonDown(0) == true)
  626.         {
  627.             radionScript.ActivateClock();
  628.         }
  629.     }
  630.  
  631.     void DampenerButton()
  632.     {
  633.         if (hitObject.collider.gameObject.GetComponent<DampenerButtons>().buttonPressed)
  634.         {
  635.             return;
  636.         }
  637.         if (dampenerScript.dampenerSolved || !dampenerScript.dampenerActive)
  638.         {
  639.             hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().color = dampenerScript.startColor;
  640.             return;
  641.         }
  642.         for (int i = 0; i < 4; i++)
  643.         {
  644.             if (!dampenerScript.buttons[i].GetComponent<DampenerButtons>().buttonPressed)
  645.             {
  646.                 dampenerScript.buttons[i].color = dampenerScript.startColor;
  647.             }
  648.         }
  649.         hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().color = highlightColor;
  650.  
  651.         if (Input.GetMouseButtonDown(0) == true)
  652.         {
  653.             hitObject.collider.gameObject.GetComponent<DampenerButtons>().buttonPressed = true;
  654.             hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().color = pressedColor;
  655.             string containedLetter = hitObject.collider.gameObject.GetComponent<DampenerButtons>().containedLetter;
  656.             dampenerScript.ButtonPush(containedLetter);
  657.         }
  658.     }
  659.  
  660.     void CarbonButton()
  661.     {
  662.         if (carbonScript.carbonSolved || !carbonScript.carbonActive)
  663.         {
  664.             return;
  665.         }
  666.         for (int i = 0; i < 8; i++)
  667.         {
  668.             carbonScript.buttons[i].button.color = dampenerScript.startColor;
  669.         }
  670.         carbonScript.submitText.color = dampenerScript.startColor;
  671.         hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().color = highlightColor;
  672.         if (Input.GetMouseButtonDown(0) == true)
  673.         {
  674.             puzzleAudio.ObjectClick();
  675.             hitObject.collider.gameObject.GetComponent<CarbonButton>().SwitchColor();
  676.         }
  677.     }
  678.  
  679.     void CarbonSubmit()
  680.     {
  681.         if (carbonScript.carbonSolved || !carbonScript.carbonActive)
  682.         {
  683.             return;
  684.         }
  685.         for (int i = 0; i < 8; i++)
  686.         {
  687.             carbonScript.buttons[i].button.color = dampenerScript.startColor;
  688.         }
  689.         carbonScript.submitText.color = dampenerScript.startColor;
  690.         hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().color = highlightColor;
  691.         if (Input.GetMouseButtonDown(0) == true)
  692.         {
  693.             carbonScript.CheckAnswer();
  694.         }
  695.     }
  696.  
  697.     void SubspaceButton()
  698.     {
  699.         for (int i = 0; i < 6; i++)
  700.         {
  701.             subspaceScript.buttons[i].button.fontStyle = FontStyles.Normal;
  702.         }
  703.         if (subspaceScript.subspaceSolved || !subspaceScript.subspaceActive || hitObject.collider.gameObject.GetComponent<SubspaceButtonScript>().clicked)
  704.         {
  705.             return;
  706.         }
  707.         hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().fontStyle = FontStyles.Underline;
  708.         if (Input.GetMouseButtonDown(0) == true && hitObject.collider.gameObject.GetComponent<SubspaceButtonScript>().button.enabled == true)
  709.         {
  710.             int gridLocation = hitObject.collider.gameObject.GetComponent<SubspaceButtonScript>().buttonLocation;
  711.             string symbolColor = hitObject.collider.gameObject.GetComponent<SubspaceButtonScript>().selectedColorNames[hitObject.collider.gameObject.GetComponent<SubspaceButtonScript>().currentlyDisplaying];
  712.             hitObject.collider.gameObject.GetComponent<SubspaceButtonScript>().clicked = true;
  713.             if (subspaceScript.currentAnswer < 5)
  714.             {
  715.                 puzzleAudio.ObjectClick();
  716.                 hitObject.collider.gameObject.GetComponent<SubspaceButtonScript>().SelectedFlicker();
  717.             }
  718.             subspaceScript.CheckAnswer(gridLocation, symbolColor);
  719.         }
  720.     }
  721.  
  722.     void TransmitArray()
  723.     {
  724.         if (transmitScript.transmitSolved || !transmitScript.transmitActive)
  725.         {
  726.             return;
  727.         }
  728.         hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().fontStyle = FontStyles.Underline;
  729.         if (Input.GetMouseButtonDown(0) == true)
  730.         {
  731.             puzzleAudio.ObjectAltClick();
  732.             if (transmitToUnderline != null)
  733.             {
  734.                 transmitToUnderline.fontStyle = FontStyles.Normal;
  735.                 transmitToUnderline = null;
  736.             }
  737.             transmitScript.EnterTransmission();
  738.         }
  739.     }
  740.  
  741.     void PrefireButton()
  742.     {
  743.         if (prefireScript.prefireSolved || !prefireScript.prefireActive)
  744.         {
  745.             return;
  746.         }
  747.         for (int i = 0; i < 4; i++)
  748.         {
  749.             prefireScript.buttons[i].button.color = dampenerScript.startColor;
  750.         }
  751.         prefireScript.submitText.color = dampenerScript.startColor;
  752.         hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().color = highlightColor;
  753.  
  754.         if (Input.GetMouseButtonDown(0) == true)
  755.         {
  756.             if (prefireToHighlight != null)
  757.             {
  758.                 prefireToHighlight.color = dampenerScript.startColor;
  759.                 prefireToHighlight = null;
  760.             }
  761.             string leftRight = hitObject.collider.gameObject.GetComponentInChildren<PrefireButtonScript>().leftRight;
  762.             string direction = hitObject.collider.gameObject.GetComponentInChildren<PrefireButtonScript>().direction;
  763.             prefireScript.Move(leftRight, direction);
  764.         }
  765.     }
  766.  
  767.     void PrefireSubmit()
  768.     {
  769.         if (prefireScript.prefireSolved || !prefireScript.prefireActive)
  770.         {
  771.             return;
  772.         }
  773.         for (int i = 0; i < 4; i++)
  774.         {
  775.             prefireScript.buttons[i].button.color = dampenerScript.startColor;
  776.         }
  777.         hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().color = highlightColor;
  778.  
  779.         if (Input.GetMouseButtonDown(0) == true)
  780.         {
  781.             if (prefireToHighlight != null)
  782.             {
  783.                 prefireToHighlight.color = dampenerScript.startColor;
  784.                 prefireToHighlight = null;
  785.             }
  786.             prefireScript.CheckAnswer();
  787.         }
  788.     }
  789.  
  790.     void TerminateButton()
  791.     {
  792.         if(!terminateScript.timerScript.clockOn && !EventHandler.trainingMode)
  793.         {
  794.             return;
  795.         }
  796.         hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().fontStyle = FontStyles.Underline;
  797.         if (Input.GetMouseButtonDown(0) == true)
  798.         {
  799.             puzzleAudio.ObjectAltClick();
  800.             if (terminateToUnderline != null)
  801.             {
  802.                 terminateToUnderline.fontStyle = FontStyles.Normal;
  803.                 terminateToUnderline = null;
  804.             }
  805.             terminateScript.TerminateRun();
  806.             audioHighlight = false;
  807.             Debug.Log(MissionPlayData.mission);
  808.         }
  809.     }
  810.  
  811.     void ReturnToMenu()
  812.     {
  813.         hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().fontStyle = FontStyles.Underline;
  814.         if (Input.GetMouseButtonDown(0) == true)
  815.         {
  816.             if(EndlessTimerScript.endlessBoolForLogging)
  817.             {
  818.                 int endMode = PlayerPrefs.GetInt("CurrentlyDisplayedEndlessMode");
  819.                 if(endMode == 0)
  820.                 {
  821.                     if(SerializableMissionData.bestTimeFloat > SaveSystem.GetFloat("slowFloat"))
  822.                     {
  823.                         SaveSystem.SetString("slow", SerializableMissionData.bestTime);
  824.                         SaveSystem.SetFloat("slowFloat", SerializableMissionData.bestTimeFloat);
  825.                     }
  826.                 }
  827.                 else if(endMode == 1)
  828.                 {
  829.                     if (SerializableMissionData.bestTimeFloat > SaveSystem.GetFloat("mediumFloat"))
  830.                     {
  831.                         SaveSystem.SetString("medium", SerializableMissionData.bestTime);
  832.                         SaveSystem.SetFloat("mediumFloat", SerializableMissionData.bestTimeFloat);
  833.                     }
  834.                 }
  835.                 else if(endMode == 2)
  836.                 {
  837.                     if (SerializableMissionData.bestTimeFloat > SaveSystem.GetFloat("fastFloat"))
  838.                     {
  839.                         SaveSystem.SetString("fast", SerializableMissionData.bestTime);
  840.                         SaveSystem.SetFloat("fastFloat", SerializableMissionData.bestTimeFloat);
  841.                     }
  842.                 }
  843.                 EndlessTimerScript.endlessBoolForLogging = false;
  844.             }
  845.             puzzleAudio.ObjectAltClick();
  846.             mainMenuObject.SetActive(false);
  847.             distanceOfRay = 3f;
  848.             playerController.enabled = false;
  849.             StartCoroutine(PatchyFade());
  850.             StartCoroutine(puzzleAudio.PermanentFadeOut());
  851.         }
  852.     }
  853.  
  854.     public IEnumerator PatchyFade()
  855.     {
  856.         for(int i = 0; i < 60; i++)
  857.         {
  858.             int index = UnityEngine.Random.Range(0, 60);
  859.             while(selectedIndices.Contains(index))
  860.             {
  861.                 index = UnityEngine.Random.Range(0, 60);
  862.             }
  863.             selectedIndices.Add(index);
  864.             patchyFadeBox[index].SetActive(true);
  865.             float delay = UnityEngine.Random.Range(0.01f, 0.05f);
  866.             yield return new WaitForSeconds(delay);
  867.         }
  868.         selectedIndices.Clear();
  869.         SceneManager.LoadScene("Menu");
  870.     }
  871.  
  872.     void ThelaronButton()
  873.     {
  874.         if (thelaronScript.thelaronSolved || !thelaronScript.thelaronActive)
  875.         {
  876.             return;
  877.         }
  878.         for(int i = 0; i < 20; i++)
  879.         {
  880.             int index = UnityEngine.Random.Range(0, 5);
  881.             if(!thelaronScript.buttons[i].GetComponent<ThelaronButtons>().clicked)
  882.             {
  883.                 thelaronScript.buttons[i].color = thelaronScript.potentialColors[index];
  884.             }
  885.         }
  886.         hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>().color = thelaronScript.solveColor;
  887.  
  888.         if (Input.GetMouseButtonDown(0) == true)
  889.         {
  890.             hitObject.collider.gameObject.GetComponentInChildren<ThelaronButtons>().clicked = true;
  891.             thelaronScript.ClickedLetter(hitObject.collider.gameObject.GetComponentInChildren<TextMeshPro>());
  892.             if (thelaronToHighlight != null)
  893.             {
  894.                 thelaronToHighlight.color = thelaronScript.solveColor;
  895.                 thelaronToHighlight = null;
  896.             }
  897.         }
  898.     }
  899.  
  900.     IEnumerator TimerClose()
  901.     {
  902.         int counter = 0;
  903.         while(counter != 10)
  904.         {
  905.             yield return new WaitForSeconds(1f);
  906.             if(!liftIsOpen)
  907.             {
  908.                 break;
  909.             }
  910.             counter++;
  911.         }
  912.         if(liftIsOpen)
  913.         {
  914.             lift.SetTrigger("close");
  915.             liftIsOpen = false;
  916.             liftDoorsSFX.clip = liftOpenCloseSFX[1];
  917.             liftDoorsSFX.Play();
  918.         }
  919.     }
  920.  
  921.     IEnumerator MoveLift(bool tempDamaged)
  922.     {
  923.         doorBlocker.SetActive(true);
  924.         yield return new WaitForSeconds(2f);
  925.         liftMoveSFX.Play();
  926.         liftMove.SetTrigger("move");
  927.         if(currentFloor == 1)
  928.         {
  929.             StartCoroutine(LiftFloorsUp());
  930.         }
  931.         else if(currentFloor == 50)
  932.         {
  933.             StartCoroutine(LiftFloorsDown());
  934.         }
  935.         yield return new WaitForSeconds(5f);
  936.         if(tempDamaged)
  937.         {
  938.             lift.SetBool("damaged", true);
  939.             tempDamaged = false;
  940.         }
  941.         lift.SetTrigger("open");
  942.         liftDoorsSFX.clip = liftOpenCloseSFX[0];
  943.         liftDoorsSFX.Play();
  944.         liftIsOpen = true;
  945.         liftIsMoving = false;
  946.         doorBlocker.SetActive(false);
  947.         StartCoroutine(TimerClose());
  948.     }
  949.  
  950.     IEnumerator LiftFloorsUp()
  951.     {
  952.         while(currentFloor < 40)
  953.         {
  954.             yield return new WaitForSeconds(0.06f);
  955.             currentFloor++;
  956.             liftFloors.text = currentFloor.ToString();
  957.         }
  958.         while(currentFloor < 45)
  959.         {
  960.             yield return new WaitForSeconds(0.15f);
  961.             currentFloor++;
  962.             liftFloors.text = currentFloor.ToString();
  963.         }
  964.         while (currentFloor < 50)
  965.         {
  966.             yield return new WaitForSeconds(0.175f);
  967.             currentFloor++;
  968.             liftFloors.text = currentFloor.ToString();
  969.         }
  970.     }
  971.  
  972.     IEnumerator LiftFloorsDown()
  973.     {
  974.         while (currentFloor > 10)
  975.         {
  976.             yield return new WaitForSeconds(0.06f);
  977.             currentFloor--;
  978.             liftFloors.text = currentFloor.ToString();
  979.         }
  980.         while (currentFloor > 5)
  981.         {
  982.             yield return new WaitForSeconds(0.15f);
  983.             currentFloor--;
  984.             liftFloors.text = currentFloor.ToString();
  985.         }
  986.         while (currentFloor > 1)
  987.         {
  988.             yield return new WaitForSeconds(0.175f);
  989.             currentFloor--;
  990.             liftFloors.text = currentFloor.ToString();
  991.         }
  992.     }
  993. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement