- Added a multi-display system to the clue screen.

- Maps are now available during the standard multiple choice sections.
This commit is contained in:
2025-07-10 04:10:59 -04:00
parent d72e9eca18
commit 45ed829373
43 changed files with 2960 additions and 2190 deletions
@@ -41,7 +41,7 @@ public class GameManagerRound1 : GameManagerBase
[SerializeField] private AudioManager _AudioManager;
public override void InitialiseGameMode()
{
_GameHasBegun = false;
@@ -148,12 +148,21 @@ public class GameManagerRound1 : GameManagerBase
return;
}
if (_CurrentQuestion.ContainsKey("Maps") && _CurrentQuestion["Maps"].TokenType == TokenType.DataList)
{
DataList Maps = _CurrentQuestion["Maps"].DataList;
for (int i = 0; i < Maps.Count; i++)
{
_VideoPlayer.LoadMap((int)Maps[i].Number);
}
}
DataDictionary Presentation = _CurrentQuestion["Presentation"].DataDictionary;
switch ((PresentationMedium)(int)Presentation["Medium"].Number)
{
case PresentationMedium.VideoClue: MultipleChoiceInitialiseVideoClue(Presentation); break;
case PresentationMedium.VideoMusicClue: MultipleChoiceInitialiseVideoMusicClue(Presentation); break;
case PresentationMedium.ACMECrimenetComputer: MultipleChoiceInitialiseACMECrimenetComputer(Presentation); break;
case PresentationMedium.VideoClue: MultipleChoiceInitialiseVideoClue(Presentation); break;
case PresentationMedium.VideoMusicClue: MultipleChoiceInitialiseVideoMusicClue(Presentation); break;
case PresentationMedium.ACMECrimenetComputer: MultipleChoiceInitialiseACMECrimenetComputer(Presentation); break;
}
}
@@ -173,7 +182,6 @@ public class GameManagerRound1 : GameManagerBase
}
else
{
_QuestionSubstage = 0;
MultipleChoiceRevealQuestion();
}
}
@@ -197,6 +205,9 @@ public class GameManagerRound1 : GameManagerBase
private void MultipleChoiceRevealQuestion()
{
_QuestionSubstage = 0;
_VideoPlayer.InitialiseMapScreen();
HostCardMultipleChoiceInterface Interface =
(HostCardMultipleChoiceInterface)GetHostCardInterface(RoundSegmentType.MultipleChoice);
@@ -230,6 +241,8 @@ public class GameManagerRound1 : GameManagerBase
private void MultipleChoiceRevealChoice1()
{
_VideoPlayer.IncrementMap();
HostCardMultipleChoiceInterface Interface =
(HostCardMultipleChoiceInterface)GetHostCardInterface(RoundSegmentType.MultipleChoice);
@@ -242,6 +255,8 @@ public class GameManagerRound1 : GameManagerBase
}
private void MultipleChoiceRevealChoice2()
{
_VideoPlayer.IncrementMap();
HostCardMultipleChoiceInterface Interface =
(HostCardMultipleChoiceInterface)GetHostCardInterface(RoundSegmentType.MultipleChoice);
@@ -254,6 +269,8 @@ public class GameManagerRound1 : GameManagerBase
}
private void MultipleChoiceRevealChoice3()
{
_VideoPlayer.IncrementMap();
HostCardMultipleChoiceInterface Interface =
(HostCardMultipleChoiceInterface)GetHostCardInterface(RoundSegmentType.MultipleChoice);
@@ -334,6 +351,8 @@ public class GameManagerRound1 : GameManagerBase
"VerifyMultipleChoiceResponse", _QuestionCorrectResponse);
}
_VideoPlayer.FlashCorrectAnswer = true;
EnableInteraction("Next Question");
}
@@ -354,7 +373,7 @@ public class GameManagerRound1 : GameManagerBase
EnableInteraction("First Question");
}
private void NewLightningRoundQuestion(int Question)
{
DataDictionary CurrentQuestion = _CurrentQuestion["Questions"].DataList[Question - 1].DataDictionary;
@@ -619,7 +638,7 @@ public class GameManagerRound1 : GameManagerBase
{
HostCardFinalRoundInterface Interface =
(HostCardFinalRoundInterface)GetHostCardInterface(RoundSegmentType.FinalRound);
Interface.ChoiceButtonImages[2].color = (_QuestionCorrectResponse == 3) ? Color.green : Color.red;
DataList Choices = _CurrentQuestion["Choices"].DataList;
EnableChoiceCards();
@@ -789,7 +808,7 @@ public class GameManagerRound1 : GameManagerBase
// Tag first place player as first place, and second place as second
Number1.SetPlayerTag("Round1State", "FirstPlace");
Number2.SetPlayerTag("Round2State", "SecondPlace");
Interface.HeaderUI.text = "[[FIRSTPLACEPLAYER]] and [[SECONDPLACEPLAYER]] will move on to the next round.";
}
}
@@ -811,6 +830,8 @@ public class GameManagerRound1 : GameManagerBase
DisableRiskCards();
DisableBuzzers();
_VideoPlayer.ClearScreen();
HostCardBetweenRoundsInterface Interface = ShowBetweenQuestionsInterface();
_QuestionIndex++;
@@ -907,7 +928,8 @@ public class GameManagerRound1 : GameManagerBase
ResetBuzzers();
}
private void WaitForBuzzInsWithoutLastPlayer() {
private void WaitForBuzzInsWithoutLastPlayer()
{
_BuzzInAllowed = true;
int PodiumIndex = _BuzzedInPlayer - 1;
if (PodiumIndex >= 0 && PodiumIndex < _PlayerPodiums.Length)
@@ -951,7 +973,8 @@ public class GameManagerRound1 : GameManagerBase
private void ResetBuzzers()
{
for (int i = 0; i < _PlayerPodiums.Length; i++) {
for (int i = 0; i < _PlayerPodiums.Length; i++)
{
_PlayerBuzzInAllowed[i] = true;
NetworkCalling.SendCustomNetworkEvent((IUdonEventReceiver)_PlayerPodiums[i], NetworkEventTarget.All, "EnableBuzzInEffect", false);
}
@@ -985,10 +1008,10 @@ public class GameManagerRound1 : GameManagerBase
// it's two numbers, they're the same fucking thing".
switch ((int)_CurrentQuestion["Type"].Number)
{
case (int)RoundSegmentType.MultipleChoice: AdvanceMultipleChoiceStage(); break;
case (int)RoundSegmentType.LightningRound: AdvanceLightningRoundQuestion(); break;
case (int)RoundSegmentType.TheChase: AdvanceTheChase(); break;
case (int)RoundSegmentType.FinalRound: AdvanceFinalRound(); break;
case (int)RoundSegmentType.MultipleChoice: AdvanceMultipleChoiceStage(); break;
case (int)RoundSegmentType.LightningRound: AdvanceLightningRoundQuestion(); break;
case (int)RoundSegmentType.TheChase: AdvanceTheChase(); break;
case (int)RoundSegmentType.FinalRound: AdvanceFinalRound(); break;
}
RequestSerialization();
@@ -996,55 +1019,55 @@ public class GameManagerRound1 : GameManagerBase
private void AdvanceIntro()
{
switch(_QuestionStage)
switch (_QuestionStage)
{
case 1: PlayIntroVideo(); break;
case 2: AssignStarterPoints(); break;
default: break;
case 1: PlayIntroVideo(); break;
case 2: AssignStarterPoints(); break;
default: break;
}
}
private void AdvanceMultipleChoiceStage()
{
switch(_QuestionStage)
switch (_QuestionStage)
{
case 1: MultipleChoiceInitialisePresentation(); break;
case 2: MultipleChoiceRevealChoice1(); break;
case 3: MultipleChoiceRevealChoice2(); break;
case 4: MultipleChoiceRevealChoice3(); break;
case 5: MultipleChoiceLockAnswers(); break;
case 6: MultipleChoiceRevealAnswersAndAssignPoints(); break;
case 7: AdvanceToNextQuestion(); break;
default: break;
case 1: MultipleChoiceInitialisePresentation(); break;
case 2: MultipleChoiceRevealChoice1(); break;
case 3: MultipleChoiceRevealChoice2(); break;
case 4: MultipleChoiceRevealChoice3(); break;
case 5: MultipleChoiceLockAnswers(); break;
case 6: MultipleChoiceRevealAnswersAndAssignPoints(); break;
case 7: AdvanceToNextQuestion(); break;
default: break;
}
}
private void AdvanceLightningRoundQuestion()
{
switch(_QuestionStage)
switch (_QuestionStage)
{
case 1: BeginLightningRound(); break;
case 2: NewLightningRoundQuestion(1); break;
case 3: NewLightningRoundQuestion(2); break;
case 4: NewLightningRoundQuestion(3); break;
case 5: AdvanceToNextQuestion(); break;
default: break;
case 1: BeginLightningRound(); break;
case 2: NewLightningRoundQuestion(1); break;
case 3: NewLightningRoundQuestion(2); break;
case 4: NewLightningRoundQuestion(3); break;
case 5: AdvanceToNextQuestion(); break;
default: break;
}
}
private void AdvanceTheChase()
{
switch(_QuestionStage)
switch (_QuestionStage)
{
case 1: BeginTheChase(); break;
case 2: PlayTheChaseMusic(); break;
case 3: NewTheChaseClue(1); break;
case 4: NewTheChaseClue(2); break;
case 5: NewTheChaseClue(3); break;
case 6: NewTheChaseClue(4); break;
case 7: NewTheChaseClue(5); break;
case 8: AdvanceToNextQuestion(); break;
default: break;
case 1: BeginTheChase(); break;
case 2: PlayTheChaseMusic(); break;
case 3: NewTheChaseClue(1); break;
case 4: NewTheChaseClue(2); break;
case 5: NewTheChaseClue(3); break;
case 6: NewTheChaseClue(4); break;
case 7: NewTheChaseClue(5); break;
case 8: AdvanceToNextQuestion(); break;
default: break;
}
}
@@ -1052,24 +1075,30 @@ public class GameManagerRound1 : GameManagerBase
{
switch (_QuestionStage)
{
case 1: BeginFinalRound(); break;
case 2: PlayThinkingMusic(); break;
case 3: FinalRoundRevealChoice1(); break;
case 4: FinalRoundRevealChoice2(); break;
case 5: FinalRoundRevealChoice3(); break;
case 6: FinalRoundLockAnswers(); break;
case 7: FinalRoundRevealPlayerPlace(3); break;
case 8: FinalRoundAssignPointsToPlayerPlace(3); break;
case 9: FinalRoundRevealPlayerPlace(2); break;
case 10: FinalRoundAssignPointsToPlayerPlace(2); break;
case 11: FinalRoundRevealPlayerPlace(1); break;
case 12: FinalRoundAssignPointsToPlayerPlace(1); break;
case 13: AdvanceToNextQuestion(); break;
default: break;
case 1: BeginFinalRound(); break;
case 2: PlayThinkingMusic(); break;
case 3: FinalRoundRevealChoice1(); break;
case 4: FinalRoundRevealChoice2(); break;
case 5: FinalRoundRevealChoice3(); break;
case 6: FinalRoundLockAnswers(); break;
case 7: FinalRoundRevealPlayerPlace(3); break;
case 8: FinalRoundAssignPointsToPlayerPlace(3); break;
case 9: FinalRoundRevealPlayerPlace(2); break;
case 10: FinalRoundAssignPointsToPlayerPlace(2); break;
case 11: FinalRoundRevealPlayerPlace(1); break;
case 12: FinalRoundAssignPointsToPlayerPlace(1); break;
case 13: AdvanceToNextQuestion(); break;
default: break;
}
}
public VRCUrl GetMapURL(int MapIndex)
{
return _CaseManager.GetMap(MapIndex);
}
protected override void _HostCardUseButtonDown_Internal()
{
AdvanceQuestion();