- Video player now works on auxilliary screens.

- The Chase modified to be much faster paced, and easier to read clues faster.
- Text on the host card during round 2 is hopefully a lot more readable now.
- Added simple teleports from backstage to the play area.
This commit is contained in:
2025-08-01 23:34:55 -04:00
parent 7657b8759f
commit cc7a4cd299
58 changed files with 9022 additions and 388 deletions
@@ -522,9 +522,17 @@ public class GameManagerRound1 : GameManagerBase
EnableInteraction("Here We Go");
}
private void NewTheChaseClue(int Clue)
private void TheChaseCluesLoop()
{
DataDictionary CurrentClue = _CurrentQuestion["Clues"].DataList[Clue - 1].DataDictionary;
DataList CluesList = _CurrentQuestion["Clues"].DataList;
if (_QuestionSubstage >= CluesList.Count)
{
_QuestionSubstage = 0;
EnableInteraction("End The Chase");
return;
}
DataDictionary CurrentClue = _CurrentQuestion["Clues"].DataList[_QuestionSubstage].DataDictionary;
HostCardTheChaseInterface Interface =
(HostCardTheChaseInterface)GetHostCardInterface(RoundSegmentType.TheChase);
@@ -546,10 +554,14 @@ public class GameManagerRound1 : GameManagerBase
Interface.ChoiceButtons[i].interactable = true;
}
_VideoPlayer.SubMapIndex = (Clue - 1) * 2;
SendCustomEventDelayedSeconds(nameof(DisplayNextChaseMap), 1.25f);
EnableBuzzInPeriodForAllPlayers();
}
public void DisplayNextChaseMap()
{
_VideoPlayer.SubMapIndex = _QuestionSubstage * 2;
}
private void TheChaseCheckAnswer(int Answer)
{
@@ -596,7 +608,9 @@ public class GameManagerRound1 : GameManagerBase
_VideoPlayer.SubMapIndex++;
EnableInteraction("Next Question");
_QuestionSubstage++;
AdvanceQuestion();
}
@@ -1243,11 +1257,11 @@ public class GameManagerRound1 : GameManagerBase
// it's two numbers, they're the same fucking thing".
switch (_CurrentQuestionType)
{
case RoundSegmentType.MultipleChoice: AdvanceMultipleChoiceStage(); break;
case RoundSegmentType.LightningRound: AdvanceLightningRoundQuestion(); break;
case RoundSegmentType.TheChase: AdvanceTheChase(); break;
case RoundSegmentType.FinalRound: AdvanceFinalRound(); break;
case RoundSegmentType.Tiebreaker: AdvanceTiebreaker(); break;
case RoundSegmentType.MultipleChoice: AdvanceMultipleChoiceStage(); break;
case RoundSegmentType.LightningRound: AdvanceLightningRoundQuestion(); break;
case RoundSegmentType.TheChase: AdvanceTheChase(); break;
case RoundSegmentType.FinalRound: AdvanceFinalRound(); break;
case RoundSegmentType.Tiebreaker: AdvanceTiebreaker(); break;
}
RequestSerialization();
@@ -1257,8 +1271,8 @@ public class GameManagerRound1 : GameManagerBase
{
switch (_QuestionStage)
{
case 1: PlayIntroVideo(); break;
case 2: AssignStarterPoints(); break;
case 1: PlayIntroVideo(); break;
case 2: AssignStarterPoints(); break;
default: break;
}
}
@@ -1267,13 +1281,13 @@ public class GameManagerRound1 : GameManagerBase
{
switch (_QuestionStage)
{
case 1: InitialiseCluePresentation(); 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;
case 1: InitialiseCluePresentation(); 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;
}
}
@@ -1282,11 +1296,11 @@ public class GameManagerRound1 : GameManagerBase
{
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;
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;
}
}
@@ -1295,14 +1309,10 @@ public class GameManagerRound1 : GameManagerBase
{
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;
case 1: BeginTheChase(); break;
case 2: PlayTheChaseMusic(); break;
case 3: TheChaseCluesLoop(); break;
case 8: AdvanceToNextQuestion(); break;
default: break;
}
}
@@ -1311,21 +1321,21 @@ public class GameManagerRound1 : GameManagerBase
{
switch (_QuestionStage)
{
case 1: BeginFinalRound(); break;
case 2: FinalRoundShowMapPreview(); break;
case 3: FinalRoundPlayThinkingMusic(); break;
case 4: InitialiseCluePresentation(); break;
case 5: FinalRoundRevealChoice1(); break;
case 6: FinalRoundRevealChoice2(); break;
case 7: FinalRoundRevealChoice3(); break;
case 8: FinalRoundLockAnswers(); break;
case 9: FinalRoundRevealPlayerPlace(3); break;
case 10: FinalRoundAssignPointsToPlayerPlace(3); break;
case 11: FinalRoundRevealPlayerPlace(2); break;
case 12: FinalRoundAssignPointsToPlayerPlace(2); break;
case 13: FinalRoundRevealPlayerPlace(1); break;
case 14: FinalRoundAssignPointsToPlayerPlace(1); break;
case 15: AdvanceToNextQuestion(); break;
case 1: BeginFinalRound(); break;
case 2: FinalRoundShowMapPreview(); break;
case 3: FinalRoundPlayThinkingMusic(); break;
case 4: InitialiseCluePresentation(); break;
case 5: FinalRoundRevealChoice1(); break;
case 6: FinalRoundRevealChoice2(); break;
case 7: FinalRoundRevealChoice3(); break;
case 8: FinalRoundLockAnswers(); break;
case 9: FinalRoundRevealPlayerPlace(3); break;
case 10: FinalRoundAssignPointsToPlayerPlace(3); break;
case 11: FinalRoundRevealPlayerPlace(2); break;
case 12: FinalRoundAssignPointsToPlayerPlace(2); break;
case 13: FinalRoundRevealPlayerPlace(1); break;
case 14: FinalRoundAssignPointsToPlayerPlace(1); break;
case 15: AdvanceToNextQuestion(); break;
default: break;
}
}
@@ -1334,8 +1344,8 @@ public class GameManagerRound1 : GameManagerBase
{
switch(_QuestionStage)
{
case 1: BeginTiebreakerRound(); break;
case 2: AdvanceToNextQuestion(); break;
case 1: BeginTiebreakerRound(); break;
case 2: AdvanceToNextQuestion(); break;
default: break;
}
}
@@ -44,7 +44,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 12
Data: 9
Data: 13
- Name:
Entry: 7
Data:
@@ -573,6 +573,204 @@ MonoBehaviour:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: COLOR_STANDARD
- Name: $v
Entry: 7
Data: 36|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: COLOR_STANDARD
- Name: <UserType>k__BackingField
Entry: 7
Data: 37|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.Color, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 37
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 38|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: COLOR_RED
- Name: $v
Entry: 7
Data: 39|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: COLOR_RED
- Name: <UserType>k__BackingField
Entry: 9
Data: 37
- Name: <SystemType>k__BackingField
Entry: 9
Data: 37
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 40|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: COLOR_YELLOW
- Name: $v
Entry: 7
Data: 41|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: COLOR_YELLOW
- Name: <UserType>k__BackingField
Entry: 9
Data: 37
- Name: <SystemType>k__BackingField
Entry: 9
Data: 37
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 42|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: COLOR_GREEN
- Name: $v
Entry: 7
Data: 43|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: COLOR_GREEN
- Name: <UserType>k__BackingField
Entry: 9
Data: 37
- Name: <SystemType>k__BackingField
Entry: 9
Data: 37
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 44|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 13
Data:
@@ -29,6 +29,11 @@ public class GameManagerRound2 : GameManagerBase
[UdonSynced] private int _CurrentPlayerCounter = 0;
[UdonSynced] private string[] _Players = new string[2];
private readonly Color COLOR_STANDARD = new Color(0.78431f, 0.78431f, 0.78431f);
private readonly Color COLOR_RED = new Color(0.78431f, 0.0f, 0.0f);
private readonly Color COLOR_YELLOW = new Color(0.78431f, 0.78431f, 0.0f);
private readonly Color COLOR_GREEN = new Color(0.0f, 0.78431f, 0.0f);
public override void InitialiseGameMode()
{
@@ -125,7 +130,7 @@ public class GameManagerRound2 : GameManagerBase
HostCardRecoverTheLootInterface RecoverTheLootInterface =
(HostCardRecoverTheLootInterface)GetHostCardInterface(RoundSegmentType.RecoverTheLoot);
RecoverTheLootInterface.SetComment(_Players[_CurrentPlayerCounter % _Players.Length] + ", you're up first.", Color.black);
RecoverTheLootInterface.SetComment(_Players[_CurrentPlayerCounter % _Players.Length] + ", you're up first.", COLOR_STANDARD);
RecoverTheLootInterface.EnableAllPanelButtons(true);
for (int i = 0; i < _Landmarks.Length; i++)
@@ -142,14 +147,14 @@ public class GameManagerRound2 : GameManagerBase
{
HostCardRecoverTheLootInterface Interface =
(HostCardRecoverTheLootInterface)GetHostCardInterface(RoundSegmentType.RecoverTheLoot);
Interface.SetComment("On the right track. You get a free turn.", Color.green);
Interface.SetComment("On the right track. You get a free turn.", COLOR_GREEN);
}
public void AlmostThere()
{
HostCardRecoverTheLootInterface Interface =
(HostCardRecoverTheLootInterface)GetHostCardInterface(RoundSegmentType.RecoverTheLoot);
Interface.SetComment("Almost got it. Another free turn.", Color.yellow);
Interface.SetComment("Almost got it. Another free turn.", COLOR_YELLOW);
}
public void OutOfOrder(PanelType Type)
@@ -171,7 +176,7 @@ public class GameManagerRound2 : GameManagerBase
break;
}
Interface.SetComment("Found " + PanelToken + ". Remember the order: loot, warrant, crook. Use some strategy.", Color.yellow);
Interface.SetComment("Found " + PanelToken + ". Remember the order: loot, warrant, crook. Use some strategy.", COLOR_YELLOW);
}
// All of these next functions are the end of a turn, and should disable
@@ -180,7 +185,7 @@ public class GameManagerRound2 : GameManagerBase
{
HostCardRecoverTheLootInterface Interface =
(HostCardRecoverTheLootInterface)GetHostCardInterface(RoundSegmentType.RecoverTheLoot);
Interface.SetComment("Nothing there.", Color.black);
Interface.SetComment("Nothing there.", COLOR_STANDARD);
Interface.EnableAllPanelButtons(false);
}
@@ -189,7 +194,7 @@ public class GameManagerRound2 : GameManagerBase
{
HostCardRecoverTheLootInterface Interface =
(HostCardRecoverTheLootInterface)GetHostCardInterface(RoundSegmentType.RecoverTheLoot);
Interface.SetComment("Already tried that one.", Color.black);
Interface.SetComment("Already tried that one.", COLOR_STANDARD);
Interface.EnableAllPanelButtons(false);
}
@@ -198,7 +203,7 @@ public class GameManagerRound2 : GameManagerBase
{
HostCardRecoverTheLootInterface Interface =
(HostCardRecoverTheLootInterface)GetHostCardInterface(RoundSegmentType.RecoverTheLoot);
Interface.SetComment("Nice strategy.", Color.green);
Interface.SetComment("Nice strategy.", COLOR_GREEN);
Interface.EnableAllPanelButtons(false);
}
@@ -213,7 +218,7 @@ public class GameManagerRound2 : GameManagerBase
HostCardRecoverTheLootInterface Interface =
(HostCardRecoverTheLootInterface)GetHostCardInterface(RoundSegmentType.RecoverTheLoot);
Interface.SetComment("Winner! Congratulations, " + Winner[0], Color.red);
Interface.SetComment("Winner! Congratulations, " + Winner[0], COLOR_RED);
Interface.EnableAllPanelButtons(false);
@@ -247,7 +252,7 @@ public class GameManagerRound2 : GameManagerBase
{
HostCardRecoverTheLootInterface Interface =
(HostCardRecoverTheLootInterface)GetHostCardInterface(RoundSegmentType.RecoverTheLoot);
Interface.SetComment(_Players[_CurrentPlayerCounter % _Players.Length] + ", your turn.", Color.black);
Interface.SetComment(_Players[_CurrentPlayerCounter % _Players.Length] + ", your turn.", COLOR_STANDARD);
Interface.EnableAllPanelButtons(true);
}