public void DoorMiniGameEvent(string newMsg, GameObject obj, bool isUnlocked) // Co-op mini-game { if (isUnlocked) { // If the door is unlocked, then game has ended. QueueMessage("<#0,1,0,1#>AAccess Granted. Door Opening...", 0.0f, true, true); ResetToDefaultState(); } else { savedObject = obj; if (currEvent != CONSOLE_EVENT.DOOR_MINIGAME_TURN) // First time trigger into minigame { ChangeHeader("DOOR SYSTEM:"); QueueMessage("Door Access Requested.", 0.0f, false, true); QueueMessage("Unlock Sequence Initiating...\\n<#1,1,0,1#>Yellow " + Common.ConvertColorToStringTag(mColorOfText) + "external input required.", 0.6f, true, false); currEvent = CONSOLE_EVENT.DOOR_MINIGAME_TURN; // Create game screen column itself GameObject headerText = ObjectFactory.getInstance().Instantiate(Common.nameForFixedWidthText); Vector3 headerPos = mCenterPosForText; headerPos.X += 2.4f; headerPos.Y += 1.0f; headerText.transform.SetPosition(headerPos); CFontRenderer headerTextFont = headerText.GetComponent <CFontRenderer>(); headerTextFont.mText = newMsg; headerTextFont.mJustification = CFontRenderer.FONT_JUSTIFICATION.CENTER_JUSTIFIED; headerTextFont.mNewlineSpacing = 1.5f; // Create "Input ..." feedback at the btm GameObject btmText = ObjectFactory.getInstance().Instantiate(Common.nameForFixedWidthText); Vector3 btmPos = mCenterPosForText; btmPos.X = headerPos.X; btmPos.Y -= 1.0f; btmText.transform.SetPosition(btmPos); CFontRenderer btmTextFont = btmText.GetComponent <CFontRenderer>(); btmTextFont.mText = "Touch to enter your input"; btmTextFont.mJustification = CFontRenderer.FONT_JUSTIFICATION.CENTER_JUSTIFIED; btmTextFont.mFontScale = 0.002f; // Create divider GameObject dottedLine = CreateDividerText(); mExtraTexts.Add(headerText); mExtraTexts.Add(btmText); mExtraTexts.Add(dottedLine); } else { CFontRenderer headerTextFont = mExtraTexts[0].GetComponent <CFontRenderer>(); headerTextFont.mText = newMsg; // Update the main game column } } }
void ResetToDefaultState() { ChangeHeader(defaultHeaderText); savedObject = null; foreach (GameObject gObj in mExtraTexts) { gObj.Destroy(); } mExtraTexts.Clear(); currEvent = CONSOLE_EVENT.NONE; }
// List of Events to be sent to console public void DoorButtonEvent(GameObject obj, int greenYellowOrRedButton) // Co-op button press to unlock door { String message = ""; switch (greenYellowOrRedButton) { case 0: message = "<#1,1,0,1#>Door Override Detected."; break; case 1: ChangeHeader("DOOR SYSTEM:"); message = "<#1,1,0,1#>Door Access Requested. Touch to Confirm."; break; case 2: message = "<#1,0,0,1#>Warning! Invalid Door Access Requested!"; break; } QueueMessage(message, 0.0f, true, true); savedObject = obj; currEvent = CONSOLE_EVENT.DOOR_REQUEST; }
public void MiniGameFourPlayerEvent(string gameString, string seqText, int buttonIndex, GameObject buttonObj, int currHeight, bool isUnlocked) { if (isUnlocked) { // If the door is unlocked, then game has ended. QueueMessage("Access Granted. Door Opening...", 0.0f, false, true); ResetToDefaultState(); } else { if (currEvent != CONSOLE_EVENT.MINIGAME_FOUR_PLAYERS) // First time trigger into minigame { GameObject pz3room = GameObject.GetGameObjectByName("TrapSequenceRoom2"); PuzzleBEnvironmentController pz3ScaryScript = GetScript <PuzzleBEnvironmentController>(pz3room); pz3ScaryScript.activated = true; savedObject = buttonObj; // Save the last pressed button, so surveillance player can input into that button ChangeHeader("DOOR SYSTEM:"); QueueMessage("Door Access Requested. \\nUnlock Sequence Initiating...", 0.0f, false, true); QueueMessage("<#1,1,0,1#>Yellow " + Common.ConvertColorToStringTag(mColorOfText) + "external input required.", 0.6f, true, false); currEvent = CONSOLE_EVENT.MINIGAME_FOUR_PLAYERS; GameObject sequenceText = ObjectFactory.getInstance().Instantiate(Common.nameForFixedWidthText); Vector3 sequencePos = mCenterPosForText; sequencePos.X += 2.4f; sequencePos.Y += 1.5f; sequenceText.transform.SetPosition(sequencePos); CFontRenderer sequenceTextFont = sequenceText.GetComponent <CFontRenderer>(); sequenceTextFont.mText = "Code Sequence: \\n3A - 6C - 5D - 3B"; sequenceTextFont.mFontScale = 0.0032f; sequenceTextFont.mJustification = CFontRenderer.FONT_JUSTIFICATION.CENTER_JUSTIFIED; sequenceTextFont.mNewlineSpacing = 1.1f; GameObject currButtonText = ObjectFactory.getInstance().Instantiate(Common.nameForFixedWidthText); Vector3 currButtonPos = sequencePos; currButtonPos.X += 0.4f; currButtonPos.Y -= 0.7f; currButtonText.transform.SetPosition(currButtonPos); CFontRenderer currButtonTextFont = currButtonText.GetComponent <CFontRenderer>(); //currButtonTextFont.mText = "Sequence A: "; currButtonTextFont.mJustification = CFontRenderer.FONT_JUSTIFICATION.RIGHT_JUSTIFIED; currButtonTextFont.mNewlineSpacing = 1.1f; // Create game screen column itself GameObject headerText = ObjectFactory.getInstance().Instantiate(Common.nameForFixedWidthText); Vector3 headerPos = currButtonPos; headerPos.X += 0.05f; headerText.transform.SetPosition(headerPos); CFontRenderer headerTextFont = headerText.GetComponent <CFontRenderer>(); headerTextFont.mFontScale = 0.003f; headerTextFont.mJustification = CFontRenderer.FONT_JUSTIFICATION.LEFT_JUSTIFIED; headerTextFont.mNewlineSpacing = 1.5f; // Create "Input ..." feedback at the btm GameObject btmText = ObjectFactory.getInstance().Instantiate(Common.nameForFixedWidthText); Vector3 btmPos = sequencePos; btmPos.Y = headerPos.Y - 2.0f; btmText.transform.SetPosition(btmPos); CFontRenderer btmTextFont = btmText.GetComponent <CFontRenderer>(); btmTextFont.mText = "Touch to enter your input"; btmTextFont.mJustification = CFontRenderer.FONT_JUSTIFICATION.CENTER_JUSTIFIED; btmTextFont.mFontScale = 0.002f; // Create divider GameObject dottedLine = CreateDividerText(); mExtraTexts.Add(headerText); mExtraTexts.Add(btmText); mExtraTexts.Add(dottedLine); mExtraTexts.Add(sequenceText); mExtraTexts.Add(currButtonText); } // Update minigame based on what is keyed in CFontRenderer textFont = mExtraTexts[0].GetComponent <CFontRenderer>(); textFont.mText = gameString; // Update the main game column textFont = mExtraTexts[4].GetComponent <CFontRenderer>(); // the current button text CFontRenderer headerSeqFont = mExtraTexts[3].GetComponent <CFontRenderer>(); if (buttonIndex == -1) { textFont.mText = seqText; string headerSeqText = "Code Sequence: \\n3A - 6C - 5D - 3B"; headerSeqFont.mText = headerSeqText; // Reset code sequence coloring when got it wrong } else { string headerSeqText = ""; bool toChangeText = false; switch (buttonIndex) { case 0: // A is done if (currHeight == 3) { toChangeText = true; headerSeqText = "Code Sequence: \\n<#0,1,0,1#>3A<#1,1,1,1#> - 6C - 5D - 3B"; } break; case 2: // C is done if (currHeight == 6) { toChangeText = true; headerSeqText = "Code Sequence: \\n<#0,1,0,1#>3A - 6C<#1,1,1,1#> - 5D - 3B"; } break; case 3: // D is done if (currHeight == 5) { toChangeText = true; headerSeqText = "Code Sequence: \\n<#0,1,0,1#>3A - 6C - 5D<#1,1,1,1#> - 3B"; } break; case 1: // B is done if (currHeight == 3) { toChangeText = true; headerSeqText = "Code Sequence: \\n<#0,1,0,1#>3A - 6C - 5D - 3B"; } break; } if (toChangeText) { headerSeqFont.mText = headerSeqText; } textFont.mText = "Sequence " + seqText + ": "; } eventState2 = currHeight; eventState = buttonIndex; } }
public void BoobyTrapEvent(int numberCode, GameObject obj, bool isDeactivated) // pass in -1 to reset { if (isDeactivated) // End of trap { QueueMessage("Override successful. Lockdown deactivated.", 0.0f, false, true); QueueMessage("Laboratory access granted.", 1.6f, false, false); ResetToDefaultState(); } else // Start { if (currEvent != CONSOLE_EVENT.BOOBY_TRAP) // First time trigger into booby trap { savedObject = obj; eventTimer = 5.0f; eventState = 0; ChangeHeader("Lockdown System:"); QueueMessage("Intruder detected! Lockdown initiated.", 0.0f, false, true); QueueMessage("Override codes:\\n20, 43, 55, 82, 13, 59, 94, 35, 11", 0.6f, false, false); currEvent = CONSOLE_EVENT.BOOBY_TRAP; // Create an alert screen GameObject alertText = ObjectFactory.getInstance().Instantiate(Common.nameForFixedWidthText); Vector3 alertPos = mCenterPosForText; alertPos.X += 2.4f; alertPos.Y += 1.5f; alertText.transform.SetPosition(alertPos); CFontRenderer alertTextFont = alertText.GetComponent <CFontRenderer>(); alertTextFont.mText = ""; alertTextFont.mFontScale = 0.0032f; alertTextFont.mNewlineSpacing = 1.1f; alertTextFont.mJustification = CFontRenderer.FONT_JUSTIFICATION.CENTER_JUSTIFIED; alertTextFont.setEnabled(false); // Create game screen column itself GameObject headerText = ObjectFactory.getInstance().Instantiate(Common.nameForFixedWidthText); Vector3 headerPos = mCenterPosForText; headerPos.X += 2.4f; headerPos.Y += 0.6f; headerText.transform.SetPosition(headerPos); CFontRenderer headerTextFont = headerText.GetComponent <CFontRenderer>(); headerTextFont.mText = "Code: "; headerTextFont.mJustification = CFontRenderer.FONT_JUSTIFICATION.RIGHT_JUSTIFIED; // Create "Input ..." feedback at the btm GameObject btmText = ObjectFactory.getInstance().Instantiate(Common.nameForFixedWidthText); Vector3 btmPos = headerPos; btmText.transform.SetPosition(btmPos); CFontRenderer btmTextFont = btmText.GetComponent <CFontRenderer>(); btmTextFont.mText = "__\\n__\\n__\\n__"; btmTextFont.mFontScale = 0.003f; btmTextFont.mJustification = CFontRenderer.FONT_JUSTIFICATION.LEFT_JUSTIFIED; btmTextFont.mNewlineSpacing = 1.5f; // Create divider GameObject dottedLine = CreateDividerText(); mExtraTexts.Add(alertText); mExtraTexts.Add(headerText); mExtraTexts.Add(btmText); mExtraTexts.Add(dottedLine); } else { CFontRenderer btmTextFont = mExtraTexts[2].GetComponent <CFontRenderer>(); if (numberCode < 0) // Clear the screen back to __ { btmTextFont.mText = "__\\n__\\n__\\n__"; } else // Add another correct number { int indexToInsert = btmTextFont.mText.IndexOf("__"); if (indexToInsert >= 0) { string newString = btmTextFont.mText.Remove(indexToInsert, 2); btmTextFont.mText = newString.Insert(indexToInsert, "<#0,1,0,1#>" + numberCode.ToString() + "<#1,1,1,1#>"); } } } } // End of if in activated state }
// pass in -1 to reset public void BoobyTrapEvent(int numberCode, GameObject obj, bool isDeactivated) { if (isDeactivated) // End of trap { QueueMessage("Override successful. Lockdown deactivated.", 0.0f, false, true); QueueMessage("Laboratory access granted.", 1.6f, false, false); ResetToDefaultState(); } else // Start { if (currEvent != CONSOLE_EVENT.BOOBY_TRAP) // First time trigger into booby trap { savedObject = obj; eventTimer = 5.0f; eventState = 0; ChangeHeader("Lockdown System:"); QueueMessage("Intruder detected! Lockdown initiated.", 0.0f, false, true); QueueMessage("Override codes:\\n20, 43, 55, 82, 13, 59, 94, 35, 11", 0.6f, false, false); currEvent = CONSOLE_EVENT.BOOBY_TRAP; // Create an alert screen GameObject alertText = ObjectFactory.getInstance().Instantiate(Common.nameForFixedWidthText); Vector3 alertPos = mCenterPosForText; alertPos.X += 2.4f; alertPos.Y += 1.5f; alertText.transform.SetPosition(alertPos); CFontRenderer alertTextFont = alertText.GetComponent<CFontRenderer>(); alertTextFont.mText = ""; alertTextFont.mFontScale = 0.0032f; alertTextFont.mNewlineSpacing = 1.1f; alertTextFont.mJustification = CFontRenderer.FONT_JUSTIFICATION.CENTER_JUSTIFIED; alertTextFont.setEnabled(false); // Create game screen column itself GameObject headerText = ObjectFactory.getInstance().Instantiate(Common.nameForFixedWidthText); Vector3 headerPos = mCenterPosForText; headerPos.X += 2.4f; headerPos.Y += 0.6f; headerText.transform.SetPosition(headerPos); CFontRenderer headerTextFont = headerText.GetComponent<CFontRenderer>(); headerTextFont.mText = "Code: "; headerTextFont.mJustification = CFontRenderer.FONT_JUSTIFICATION.RIGHT_JUSTIFIED; // Create "Input ..." feedback at the btm GameObject btmText = ObjectFactory.getInstance().Instantiate(Common.nameForFixedWidthText); Vector3 btmPos = headerPos; btmText.transform.SetPosition(btmPos); CFontRenderer btmTextFont = btmText.GetComponent<CFontRenderer>(); btmTextFont.mText = "__\\n__\\n__\\n__"; btmTextFont.mFontScale = 0.003f; btmTextFont.mJustification = CFontRenderer.FONT_JUSTIFICATION.LEFT_JUSTIFIED; btmTextFont.mNewlineSpacing = 1.5f; // Create divider GameObject dottedLine = CreateDividerText(); mExtraTexts.Add(alertText); mExtraTexts.Add(headerText); mExtraTexts.Add(btmText); mExtraTexts.Add(dottedLine); } else { CFontRenderer btmTextFont = mExtraTexts[2].GetComponent<CFontRenderer>(); if (numberCode < 0) // Clear the screen back to __ { btmTextFont.mText = "__\\n__\\n__\\n__"; } else // Add another correct number { int indexToInsert = btmTextFont.mText.IndexOf("__"); if (indexToInsert >= 0) { string newString = btmTextFont.mText.Remove(indexToInsert, 2); btmTextFont.mText = newString.Insert(indexToInsert, "<#0,1,0,1#>" + numberCode.ToString() + "<#1,1,1,1#>"); } } } } // End of if in activated state }
public void MiniGameFourPlayerEvent(string gameString, string seqText, int buttonIndex, GameObject buttonObj, int currHeight, bool isUnlocked) { if (isUnlocked) { // If the door is unlocked, then game has ended. QueueMessage("Access Granted. Door Opening...", 0.0f, false, true); ResetToDefaultState(); } else { if (currEvent != CONSOLE_EVENT.MINIGAME_FOUR_PLAYERS) // First time trigger into minigame { GameObject pz3room = GameObject.GetGameObjectByName("TrapSequenceRoom2"); PuzzleBEnvironmentController pz3ScaryScript = GetScript<PuzzleBEnvironmentController>(pz3room); pz3ScaryScript.activated = true; savedObject = buttonObj; // Save the last pressed button, so surveillance player can input into that button ChangeHeader("DOOR SYSTEM:"); QueueMessage("Door Access Requested. \\nUnlock Sequence Initiating...", 0.0f, false, true); QueueMessage("<#1,1,0,1#>Yellow " + Common.ConvertColorToStringTag(mColorOfText) + "external input required.", 0.6f, true, false); currEvent = CONSOLE_EVENT.MINIGAME_FOUR_PLAYERS; GameObject sequenceText = ObjectFactory.getInstance().Instantiate(Common.nameForFixedWidthText); Vector3 sequencePos = mCenterPosForText; sequencePos.X += 2.4f; sequencePos.Y += 1.5f; sequenceText.transform.SetPosition(sequencePos); CFontRenderer sequenceTextFont = sequenceText.GetComponent<CFontRenderer>(); sequenceTextFont.mText = "Code Sequence: \\n3A - 6C - 5D - 3B"; sequenceTextFont.mFontScale = 0.0032f; sequenceTextFont.mJustification = CFontRenderer.FONT_JUSTIFICATION.CENTER_JUSTIFIED; sequenceTextFont.mNewlineSpacing = 1.1f; GameObject currButtonText = ObjectFactory.getInstance().Instantiate(Common.nameForFixedWidthText); Vector3 currButtonPos = sequencePos; currButtonPos.X += 0.4f; currButtonPos.Y -= 0.7f; currButtonText.transform.SetPosition(currButtonPos); CFontRenderer currButtonTextFont = currButtonText.GetComponent<CFontRenderer>(); //currButtonTextFont.mText = "Sequence A: "; currButtonTextFont.mJustification = CFontRenderer.FONT_JUSTIFICATION.RIGHT_JUSTIFIED; currButtonTextFont.mNewlineSpacing = 1.1f; // Create game screen column itself GameObject headerText = ObjectFactory.getInstance().Instantiate(Common.nameForFixedWidthText); Vector3 headerPos = currButtonPos; headerPos.X += 0.05f; headerText.transform.SetPosition(headerPos); CFontRenderer headerTextFont = headerText.GetComponent<CFontRenderer>(); headerTextFont.mFontScale = 0.003f; headerTextFont.mJustification = CFontRenderer.FONT_JUSTIFICATION.LEFT_JUSTIFIED; headerTextFont.mNewlineSpacing = 1.5f; // Create "Input ..." feedback at the btm GameObject btmText = ObjectFactory.getInstance().Instantiate(Common.nameForFixedWidthText); Vector3 btmPos = sequencePos; btmPos.Y = headerPos.Y - 2.0f; btmText.transform.SetPosition(btmPos); CFontRenderer btmTextFont = btmText.GetComponent<CFontRenderer>(); btmTextFont.mText = "Touch to enter your input"; btmTextFont.mJustification = CFontRenderer.FONT_JUSTIFICATION.CENTER_JUSTIFIED; btmTextFont.mFontScale = 0.002f; // Create divider GameObject dottedLine = CreateDividerText(); mExtraTexts.Add(headerText); mExtraTexts.Add(btmText); mExtraTexts.Add(dottedLine); mExtraTexts.Add(sequenceText); mExtraTexts.Add(currButtonText); } // Update minigame based on what is keyed in CFontRenderer textFont = mExtraTexts[0].GetComponent<CFontRenderer>(); textFont.mText = gameString; // Update the main game column textFont = mExtraTexts[4].GetComponent<CFontRenderer>(); // the current button text CFontRenderer headerSeqFont = mExtraTexts[3].GetComponent<CFontRenderer>(); if (buttonIndex == -1) { textFont.mText = seqText; string headerSeqText = "Code Sequence: \\n3A - 6C - 5D - 3B"; headerSeqFont.mText = headerSeqText; // Reset code sequence coloring when got it wrong } else { string headerSeqText = ""; bool toChangeText = false; switch (buttonIndex) { case 0: // A is done if (currHeight == 3) { toChangeText = true; headerSeqText = "Code Sequence: \\n<#0,1,0,1#>3A<#1,1,1,1#> - 6C - 5D - 3B"; } break; case 2: // C is done if (currHeight == 6) { toChangeText = true; headerSeqText = "Code Sequence: \\n<#0,1,0,1#>3A - 6C<#1,1,1,1#> - 5D - 3B"; } break; case 3: // D is done if (currHeight == 5) { toChangeText = true; headerSeqText = "Code Sequence: \\n<#0,1,0,1#>3A - 6C - 5D<#1,1,1,1#> - 3B"; } break; case 1: // B is done if (currHeight == 3) { toChangeText = true; headerSeqText = "Code Sequence: \\n<#0,1,0,1#>3A - 6C - 5D - 3B"; } break; } if (toChangeText) { headerSeqFont.mText = headerSeqText; } textFont.mText = "Sequence " + seqText + ": "; } eventState2 = currHeight; eventState = buttonIndex; } }
// Co-op mini-game public void DoorMiniGameEvent(string newMsg, GameObject obj, bool isUnlocked) { if (isUnlocked) { // If the door is unlocked, then game has ended. QueueMessage("<#0,1,0,1#>AAccess Granted. Door Opening...", 0.0f, true, true); ResetToDefaultState(); } else { savedObject = obj; if (currEvent != CONSOLE_EVENT.DOOR_MINIGAME_TURN) // First time trigger into minigame { ChangeHeader("DOOR SYSTEM:"); QueueMessage("Door Access Requested.", 0.0f, false, true); QueueMessage("Unlock Sequence Initiating...\\n<#1,1,0,1#>Yellow " + Common.ConvertColorToStringTag(mColorOfText) + "external input required.", 0.6f, true, false); currEvent = CONSOLE_EVENT.DOOR_MINIGAME_TURN; // Create game screen column itself GameObject headerText = ObjectFactory.getInstance().Instantiate(Common.nameForFixedWidthText); Vector3 headerPos = mCenterPosForText; headerPos.X += 2.4f; headerPos.Y += 1.0f; headerText.transform.SetPosition(headerPos); CFontRenderer headerTextFont = headerText.GetComponent<CFontRenderer>(); headerTextFont.mText = newMsg; headerTextFont.mJustification = CFontRenderer.FONT_JUSTIFICATION.CENTER_JUSTIFIED; headerTextFont.mNewlineSpacing = 1.5f; // Create "Input ..." feedback at the btm GameObject btmText = ObjectFactory.getInstance().Instantiate(Common.nameForFixedWidthText); Vector3 btmPos = mCenterPosForText; btmPos.X = headerPos.X; btmPos.Y -= 1.0f; btmText.transform.SetPosition(btmPos); CFontRenderer btmTextFont = btmText.GetComponent<CFontRenderer>(); btmTextFont.mText = "Touch to enter your input"; btmTextFont.mJustification = CFontRenderer.FONT_JUSTIFICATION.CENTER_JUSTIFIED; btmTextFont.mFontScale = 0.002f; // Create divider GameObject dottedLine = CreateDividerText(); mExtraTexts.Add(headerText); mExtraTexts.Add(btmText); mExtraTexts.Add(dottedLine); } else { CFontRenderer headerTextFont = mExtraTexts[0].GetComponent<CFontRenderer>(); headerTextFont.mText = newMsg; // Update the main game column } } }
// Co-op button press to unlock door // List of Events to be sent to console public void DoorButtonEvent(GameObject obj, int greenYellowOrRedButton) { String message = ""; switch (greenYellowOrRedButton) { case 0: message = "<#1,1,0,1#>Door Override Detected."; break; case 1: ChangeHeader("DOOR SYSTEM:"); message = "<#1,1,0,1#>Door Access Requested. Touch to Confirm."; break; case 2: message = "<#1,0,0,1#>Warning! Invalid Door Access Requested!"; break; } QueueMessage(message, 0.0f, true, true); savedObject = obj; currEvent = CONSOLE_EVENT.DOOR_REQUEST; }