- Finally added a thunder sound before the Lightning Round.
- Made many improvements to the host interface so things can run more smoothly.
This commit is contained in:
@@ -44,7 +44,7 @@ MonoBehaviour:
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 12
|
||||
Data: 17
|
||||
Data: 18
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data:
|
||||
@@ -806,13 +806,13 @@ MonoBehaviour:
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: _StolenLoot
|
||||
Data: _CaseIntroVideoTranscript
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 50|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: _StolenLoot
|
||||
Data: _CaseIntroVideoTranscript
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 44
|
||||
@@ -860,16 +860,70 @@ MonoBehaviour:
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: _AccusedCrook
|
||||
Data: _StolenLoot
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 53|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: _StolenLoot
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 44
|
||||
- Name: <SystemType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 44
|
||||
- Name: <SyncMode>k__BackingField
|
||||
Entry: 7
|
||||
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||
- Name:
|
||||
Entry: 3
|
||||
Data: 1
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name: <IsSerialized>k__BackingField
|
||||
Entry: 5
|
||||
Data: false
|
||||
- Name: _fieldAttributes
|
||||
Entry: 7
|
||||
Data: 54|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||
- Name:
|
||||
Entry: 12
|
||||
Data: 1
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data: 55|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- 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: _AccusedCrook
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 56|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: _AccusedCrook
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 7
|
||||
Data: 54|System.RuntimeType, mscorlib
|
||||
Data: 57|System.RuntimeType, mscorlib
|
||||
- Name:
|
||||
Entry: 1
|
||||
Data: AccusedCrook, Assembly-CSharp
|
||||
@@ -878,7 +932,7 @@ MonoBehaviour:
|
||||
Data:
|
||||
- Name: <SystemType>k__BackingField
|
||||
Entry: 7
|
||||
Data: 55|System.RuntimeType, mscorlib
|
||||
Data: 58|System.RuntimeType, mscorlib
|
||||
- Name:
|
||||
Entry: 1
|
||||
Data: System.Int32, mscorlib
|
||||
@@ -899,13 +953,13 @@ MonoBehaviour:
|
||||
Data: false
|
||||
- Name: _fieldAttributes
|
||||
Entry: 7
|
||||
Data: 56|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||
Data: 59|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||
- Name:
|
||||
Entry: 12
|
||||
Data: 1
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data: 57|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
|
||||
Data: 60|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
@@ -929,13 +983,13 @@ MonoBehaviour:
|
||||
Data: _CurrentWinningPlayers
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 58|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
Data: 61|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: _CurrentWinningPlayers
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 7
|
||||
Data: 59|System.RuntimeType, mscorlib
|
||||
Data: 62|System.RuntimeType, mscorlib
|
||||
- Name:
|
||||
Entry: 1
|
||||
Data: System.String[], mscorlib
|
||||
@@ -944,7 +998,7 @@ MonoBehaviour:
|
||||
Data:
|
||||
- Name: <SystemType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 59
|
||||
Data: 62
|
||||
- Name: <SyncMode>k__BackingField
|
||||
Entry: 7
|
||||
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||
@@ -959,13 +1013,13 @@ MonoBehaviour:
|
||||
Data: false
|
||||
- Name: _fieldAttributes
|
||||
Entry: 7
|
||||
Data: 60|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||
Data: 63|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||
- Name:
|
||||
Entry: 12
|
||||
Data: 1
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data: 61|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
|
||||
Data: 64|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
@@ -989,13 +1043,13 @@ MonoBehaviour:
|
||||
Data: _CaseFileDictionary
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 62|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
Data: 65|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: _CaseFileDictionary
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 7
|
||||
Data: 63|System.RuntimeType, mscorlib
|
||||
Data: 66|System.RuntimeType, mscorlib
|
||||
- Name:
|
||||
Entry: 1
|
||||
Data: VRC.SDK3.Data.DataDictionary, VRCSDK3
|
||||
@@ -1004,7 +1058,7 @@ MonoBehaviour:
|
||||
Data:
|
||||
- Name: <SystemType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 63
|
||||
Data: 66
|
||||
- Name: <SyncMode>k__BackingField
|
||||
Entry: 7
|
||||
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||
@@ -1019,7 +1073,7 @@ MonoBehaviour:
|
||||
Data: false
|
||||
- Name: _fieldAttributes
|
||||
Entry: 7
|
||||
Data: 64|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||
Data: 67|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||
- Name:
|
||||
Entry: 12
|
||||
Data: 0
|
||||
|
||||
@@ -45,6 +45,7 @@ public class CaseManager : UdonSharpBehaviour
|
||||
|
||||
[UdonSynced] private string _CaseTitle = "";
|
||||
[UdonSynced] private string _CaseDescription = "";
|
||||
[UdonSynced] private string _CaseIntroVideoTranscript = "";
|
||||
[UdonSynced] private string _StolenLoot = "";
|
||||
[UdonSynced] private AccusedCrook _AccusedCrook = AccusedCrook.INDEX_MAX;
|
||||
|
||||
@@ -74,12 +75,13 @@ public class CaseManager : UdonSharpBehaviour
|
||||
{
|
||||
_CaseFileDictionary = JSONResult.DataDictionary;
|
||||
|
||||
if (_CaseFileDictionary.ContainsKey("Case Title") && _CaseFileDictionary.ContainsKey("Case Description") &&
|
||||
if (_CaseFileDictionary.ContainsKey("Case Title") && _CaseFileDictionary.ContainsKey("Case Description") && _CaseFileDictionary.ContainsKey("Intro Video Transcript") &&
|
||||
_CaseFileDictionary.ContainsKey("Stolen Loot") && _CaseFileDictionary.ContainsKey("Accused Crook"))
|
||||
{
|
||||
_CaseTitle = _CaseFileDictionary["Case Title"].ToString();
|
||||
_CaseDescription = _CaseFileDictionary["Case Description"].ToString();
|
||||
_StolenLoot = _CaseFileDictionary["Stolen Loot"].ToString();
|
||||
_CaseTitle = _CaseFileDictionary["Case Title"].String;
|
||||
_CaseDescription = _CaseFileDictionary["Case Description"].String;
|
||||
_CaseIntroVideoTranscript = _CaseFileDictionary["Intro Video Transcript"].String;
|
||||
_StolenLoot = _CaseFileDictionary["Stolen Loot"].String;
|
||||
_AccusedCrook = (AccusedCrook)(int)_CaseFileDictionary["Accused Crook"].Number;
|
||||
|
||||
if (_CaseFileDictionary.ContainsKey("Round 1") && _CaseFileDictionary.ContainsKey("Round 2") && _CaseFileDictionary.ContainsKey("Round 3"))
|
||||
@@ -131,10 +133,14 @@ public class CaseManager : UdonSharpBehaviour
|
||||
ErrorString = "Ensure the first element is a dictionary";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ErrorString = "JSON failed to parse.";
|
||||
}
|
||||
|
||||
if (ErrorString != "")
|
||||
{
|
||||
Debug.LogError("Malformed case file. " + ErrorString);
|
||||
Debug.LogError("[CaseManager] Malformed case file. " + ErrorString);
|
||||
}
|
||||
|
||||
RequestSerialization();
|
||||
@@ -174,6 +180,10 @@ public class CaseManager : UdonSharpBehaviour
|
||||
{
|
||||
return _CaseDescription;
|
||||
}
|
||||
public string GetIntroVideoTranscript()
|
||||
{
|
||||
return _CaseIntroVideoTranscript;
|
||||
}
|
||||
public string GetLoot()
|
||||
{
|
||||
return _StolenLoot;
|
||||
|
||||
@@ -89,12 +89,14 @@ public class GameManagerRound1 : GameManagerBase
|
||||
|
||||
if (_QuestionsList.Count == 0)
|
||||
{
|
||||
Interface.HeaderUI.text =
|
||||
Interface.HeaderUI.text = "Error loading case file";
|
||||
Interface.CommentUI.text =
|
||||
"Unable to find any questions. Ensure the root array elements are all objects.";
|
||||
return;
|
||||
}
|
||||
|
||||
Interface.HeaderUI.text = "Case has been loaded.";
|
||||
Interface.HeaderUI.text = _CaseManager.GetCaseTitle() + " has been loaded.";
|
||||
Interface.CommentUI.text = _CaseManager.GetCaseDescription();
|
||||
|
||||
_GameHasBegun = false;
|
||||
EnableInteraction("Start Game");
|
||||
@@ -108,6 +110,7 @@ public class GameManagerRound1 : GameManagerBase
|
||||
HostCardBetweenRoundsInterface Interface =
|
||||
(HostCardBetweenRoundsInterface)GetHostCardInterface(RoundSegmentType.BetweenSegments);
|
||||
Interface.HeaderUI.text = "Playing intro video...";
|
||||
Interface.CommentUI.text = _CaseManager.GetIntroVideoTranscript();
|
||||
|
||||
_VideoPlayer.VideoURL = _CaseManager.GetIntroVideo();
|
||||
for (int i = 0; i < _PlayerPodiums.Length; i++)
|
||||
@@ -156,13 +159,11 @@ public class GameManagerRound1 : GameManagerBase
|
||||
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All,
|
||||
"PlaySFXAtPitch", SFXEventType.Ding, AudioManager.D6);
|
||||
|
||||
ShowBetweenQuestionsInterface();
|
||||
|
||||
DisableChoiceCards();
|
||||
DisableRiskCards();
|
||||
DisableBuzzers();
|
||||
|
||||
EnableInteraction("Show First Question");
|
||||
ShowBetweenQuestionsInterface();
|
||||
|
||||
_GameHasBegun = true;
|
||||
}
|
||||
@@ -182,6 +183,7 @@ public class GameManagerRound1 : GameManagerBase
|
||||
{
|
||||
Interface = (HostCardBetweenRoundsInterface)GetHostCardInterface(RoundSegmentType.BetweenSegments);
|
||||
Interface.HeaderUI.text = "No special presentation available. Continuing on...";
|
||||
Interface.CommentUI.text = "";
|
||||
|
||||
EnableInteraction("Reveal Question");
|
||||
return;
|
||||
@@ -204,7 +206,14 @@ public class GameManagerRound1 : GameManagerBase
|
||||
HostCardBetweenRoundsInterface Interface =
|
||||
(HostCardBetweenRoundsInterface)GetHostCardInterface(RoundSegmentType.BetweenSegments);
|
||||
Interface.HeaderUI.text = "Playing video...";
|
||||
|
||||
if (Presentation.ContainsKey("Video Transcripts"))
|
||||
{
|
||||
Interface.CommentUI.text = Presentation["Video Transcripts"].DataList[_QuestionSubstage].String;
|
||||
}
|
||||
else
|
||||
{
|
||||
Interface.CommentUI.text = "";
|
||||
}
|
||||
_VideoPlayer.VideoURL = _CaseManager.GetVideo((int)Videos[_QuestionSubstage].Number);
|
||||
|
||||
_QuestionSubstage++;
|
||||
@@ -236,10 +245,10 @@ public class GameManagerRound1 : GameManagerBase
|
||||
|
||||
string Header = "Error Reading Data";
|
||||
string Clue = "just wing it i guess idk";
|
||||
if (Presentation.ContainsKey("Video Artist") && Presentation.ContainsKey("Clue Description"))
|
||||
if (Presentation.ContainsKey("Video Artist") && Presentation.ContainsKey("Note"))
|
||||
{
|
||||
Header = Presentation["Video Artist"].String;
|
||||
Clue = Presentation["Clue Description"].String;
|
||||
Clue = Presentation["Note"].String;
|
||||
}
|
||||
_VideoMusicClueSkateboard.SendCustomNetworkEvent(NetworkEventTarget.All,
|
||||
"SetCardTexts", Header, Clue);
|
||||
@@ -255,6 +264,14 @@ public class GameManagerRound1 : GameManagerBase
|
||||
HostCardBetweenRoundsInterface Interface =
|
||||
(HostCardBetweenRoundsInterface)GetHostCardInterface(RoundSegmentType.BetweenSegments);
|
||||
Interface.HeaderUI.text = "Playing video...";
|
||||
if (Presentation.ContainsKey("Video Artist"))
|
||||
{
|
||||
Interface.CommentUI.text = "Artist: " + Presentation["Video Artist"].String;
|
||||
}
|
||||
else
|
||||
{
|
||||
Interface.CommentUI.text = "";
|
||||
}
|
||||
|
||||
DataList Videos = Presentation["Videos"].DataList;
|
||||
_VideoPlayer.VideoURL = _CaseManager.GetVideo((int)Videos[0].Number);
|
||||
@@ -281,13 +298,14 @@ public class GameManagerRound1 : GameManagerBase
|
||||
HostCardBetweenRoundsInterface Interface =
|
||||
(HostCardBetweenRoundsInterface)GetHostCardInterface(RoundSegmentType.BetweenSegments);
|
||||
Interface.HeaderUI.text = "Check the computer for clues that need translating.";
|
||||
Interface.CommentUI.text = "";
|
||||
|
||||
string UntranslatedText = "";
|
||||
string TranslatedText = "";
|
||||
if (Presentation.ContainsKey("Clue Description") && Presentation.ContainsKey("Original Text Placeholder"))
|
||||
if (Presentation.ContainsKey("Untranslated Text Placeholder") && Presentation.ContainsKey("Translated Text"))
|
||||
{
|
||||
UntranslatedText = Presentation["Original Text Placeholder"].String;
|
||||
TranslatedText = Presentation["Clue Description"].String;
|
||||
UntranslatedText = Presentation["Untranslated Text Placeholder"].String;
|
||||
TranslatedText = Presentation["Translated Text"].String;
|
||||
}
|
||||
|
||||
_ACMECrimenetComputer.SendCustomNetworkEvent(NetworkEventTarget.All,
|
||||
@@ -484,6 +502,8 @@ public class GameManagerRound1 : GameManagerBase
|
||||
|
||||
private void BeginLightningRound()
|
||||
{
|
||||
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All, "PlaySFX", SFXEventType.Thunder);
|
||||
|
||||
HostCardLightningRoundInterface Interface =
|
||||
(HostCardLightningRoundInterface)GetHostCardInterface(RoundSegmentType.LightningRound);
|
||||
|
||||
@@ -492,7 +512,7 @@ public class GameManagerRound1 : GameManagerBase
|
||||
{
|
||||
Interface.ChoiceUI[i].text = "";
|
||||
}
|
||||
Interface.QuestionUI.text = "All of these questions are worth 5 Acme Crimebucks. These questions are all about [[CROOK]]'s most recent whereabouts, which is " + _CurrentQuestion["Location"].ToString() + ". Hands on your buzzers. Here's the first question...";
|
||||
Interface.QuestionUI.text = "All of these questions are worth 5 Acme Crimebucks. These questions are all about " + _CaseManager.GetCrookName() + "'s most recent whereabouts, which is " + _CurrentQuestion["Location"].ToString() + ". Hands on your buzzers. Here's the first question...";
|
||||
|
||||
EnableBuzzers();
|
||||
|
||||
@@ -602,14 +622,14 @@ public class GameManagerRound1 : GameManagerBase
|
||||
|
||||
private void PlayTheChaseMusic()
|
||||
{
|
||||
HostCardTheChaseInterface Interface =
|
||||
(HostCardTheChaseInterface)GetHostCardInterface(RoundSegmentType.TheChase);
|
||||
HostCardBetweenRoundsInterface Interface =
|
||||
(HostCardBetweenRoundsInterface)GetHostCardInterface(RoundSegmentType.BetweenSegments);
|
||||
|
||||
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All,
|
||||
"PlayMusic", MusicEventType.TheChase);
|
||||
|
||||
Interface.HeaderUI.text = RoundSegmentTypeToString(RoundSegmentType.TheChase);
|
||||
Interface.ClueUI.text = "All of these questions are worth 5 Acme Crimebucks. Hands on your buzzers. Listen carefully. Here we go.";
|
||||
Interface.CommentUI.text = "All of these questions are worth 5 Acme Crimebucks. Hands on your buzzers. Listen carefully. Here we go.";
|
||||
|
||||
EnableBuzzers();
|
||||
|
||||
@@ -635,7 +655,7 @@ public class GameManagerRound1 : GameManagerBase
|
||||
|
||||
HostCardTheChaseInterface Interface =
|
||||
(HostCardTheChaseInterface)GetHostCardInterface(RoundSegmentType.TheChase);
|
||||
|
||||
Interface.HeaderUI.text = "The Chase" + (_CurrentQuestion.ContainsKey("Location") ? (" | " + _CurrentQuestion["Location"].String) : "");
|
||||
Interface.ClueUI.text = CurrentClue["Clue"].ToString();
|
||||
|
||||
DataList Choices = CurrentClue["Choices"].DataList;
|
||||
@@ -713,12 +733,18 @@ public class GameManagerRound1 : GameManagerBase
|
||||
}
|
||||
|
||||
|
||||
private void BeginFinalRound()
|
||||
private void IntroduceFinalRound()
|
||||
{
|
||||
HostCardBetweenRoundsInterface Interface =
|
||||
(HostCardBetweenRoundsInterface)GetHostCardInterface(RoundSegmentType.BetweenSegments);
|
||||
|
||||
Interface.HeaderUI.text = "Introduce the round here.";
|
||||
Interface.HeaderUI.text = "The Final Round";
|
||||
Interface.CommentUI.text =
|
||||
"- Now it's time for the final clue of this round, which means you have to decide how many of your ACME Crimebucks you want to risk.\n" +
|
||||
"- If you're right, we'll add that amount to your score.\n" +
|
||||
"- If you're not right, we'll subtract that amount from your score.\n" +
|
||||
"- You can risk 0, 10, 20, 30, 40, or 50 ACME Crimebucks.\n\n" +
|
||||
"- Choose how much to risk by placing your wager to the other side of your podium.";
|
||||
|
||||
LoadMapsIntoQueue();
|
||||
|
||||
@@ -734,7 +760,12 @@ public class GameManagerRound1 : GameManagerBase
|
||||
HostCardBetweenRoundsInterface Interface =
|
||||
(HostCardBetweenRoundsInterface)GetHostCardInterface(RoundSegmentType.BetweenSegments);
|
||||
|
||||
Interface.HeaderUI.text = "Introduce the round here.";
|
||||
Interface.HeaderUI.text = "Show The Map Preview";
|
||||
Interface.CommentUI.text =
|
||||
"- Here's a portion of the world where we think " + _CaseManager.GetCrookName() + " is headed with " + _CaseManager.GetLoot() + ".\n" +
|
||||
"- If you think you know a lot about this part of the world, you may want to risk a lot.\n" +
|
||||
"- If you don't know very much about it, though, you may not want to risk quite so much.\n\n" +
|
||||
"So, take a look at the map, and think about it.";
|
||||
|
||||
EnableInteraction("Think About It");
|
||||
}
|
||||
@@ -744,6 +775,7 @@ public class GameManagerRound1 : GameManagerBase
|
||||
HostCardBetweenRoundsInterface Interface =
|
||||
(HostCardBetweenRoundsInterface)GetHostCardInterface(RoundSegmentType.BetweenSegments);
|
||||
Interface.HeaderUI.text = "Think about it...";
|
||||
Interface.CommentUI.text = "";
|
||||
|
||||
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All,
|
||||
"PlayMusic", MusicEventType.ThinkAboutIt);
|
||||
@@ -780,7 +812,9 @@ public class GameManagerRound1 : GameManagerBase
|
||||
_PlayerPodiums[i].SendCustomNetworkEvent(NetworkEventTarget.All, "LockInRisk");
|
||||
}
|
||||
|
||||
EnableInteraction("Present Clues");
|
||||
ShowBetweenQuestionsInterface();
|
||||
|
||||
CreateClueSpecificHostInteractionText(_CurrentQuestion["Presentation"].DataDictionary);
|
||||
}
|
||||
|
||||
private void FinalRoundRevealChoices()
|
||||
@@ -921,6 +955,9 @@ public class GameManagerRound1 : GameManagerBase
|
||||
(HostCardBetweenRoundsInterface)GetHostCardInterface(RoundSegmentType.BetweenSegments);
|
||||
|
||||
Interface.HeaderUI.text = "Player: " + _PlayerPodiums[PlayerNumber - 1].PlayerName;
|
||||
Interface.CommentUI.text =
|
||||
"- Before you show us your answer, how much did you risk?\n" +
|
||||
"- What is your answer?";
|
||||
_PlayerPodiums[PlayerNumber - 1].EnableBuzzInEffect(true);
|
||||
|
||||
EnableInteraction("Assign Points");
|
||||
@@ -975,11 +1012,15 @@ public class GameManagerRound1 : GameManagerBase
|
||||
{
|
||||
if (SortedPlayerScores[0] == SortedPlayerScores[1])
|
||||
{
|
||||
Interface.HeaderUI.text = "We have a three-way tie. We'll start with a tiebreaker between " + Number2.displayName + " and " + Number3.displayName + ".";
|
||||
Interface.HeaderUI.text = "We have a three-way tie.";
|
||||
Interface.CommentUI.text = "We'll start with a tiebreaker between " + Number2.displayName + " and " + Number3.displayName + ".";
|
||||
}
|
||||
else
|
||||
{
|
||||
Interface.HeaderUI.text = Number1.displayName + " is in first place and will be moving on to the next round. There is a tie for second place between " + Number2.displayName + " and " + Number3.displayName + ", so we will move on to a tiebreaker.";
|
||||
Interface.HeaderUI.text = Number1.displayName + " is in first place";
|
||||
Interface.CommentUI.text =
|
||||
"- " + Number1.displayName + " will be moving on to the next round.\n" +
|
||||
"- There is a tie for second place between " + Number2.displayName + " and " + Number3.displayName + ", so we will move on to a tiebreaker.";
|
||||
}
|
||||
TiebreakerNeeded = true;
|
||||
PrepareTiebreakerRound(Number2Podium.PlayerNumber, Number3Podium.PlayerNumber);
|
||||
@@ -1046,9 +1087,18 @@ public class GameManagerRound1 : GameManagerBase
|
||||
private void PrepareNextQuestion()
|
||||
{
|
||||
InitialiseQuestion();
|
||||
ShowBetweenQuestionsInterface();
|
||||
|
||||
EnableInteraction("Show Next Question");
|
||||
if (_CurrentQuestionType == RoundSegmentType.FinalRound)
|
||||
{
|
||||
HostCardBetweenRoundsInterface Interface =
|
||||
(HostCardBetweenRoundsInterface)GetHostCardInterface(RoundSegmentType.BetweenSegments);
|
||||
Interface.HeaderUI.text = "The Final Round";
|
||||
Interface.CommentUI.text = "";
|
||||
AdvanceQuestion();
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowBetweenQuestionsInterface();
|
||||
}
|
||||
}
|
||||
private void PrepareEndGame()
|
||||
{
|
||||
@@ -1063,7 +1113,8 @@ public class GameManagerRound1 : GameManagerBase
|
||||
{
|
||||
HostCardBetweenRoundsInterface Interface =
|
||||
(HostCardBetweenRoundsInterface)GetHostCardInterface(RoundSegmentType.BetweenSegments);
|
||||
Interface.HeaderUI.text = "Round is over. Move to the loot recovery area.";
|
||||
Interface.HeaderUI.text = "Round is over.";
|
||||
Interface.CommentUI.text = "Move to the loot recovery area.";
|
||||
|
||||
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All,
|
||||
"PlayMusicLoop", MusicEventType.CapitalLoop);
|
||||
@@ -1075,7 +1126,7 @@ public class GameManagerRound1 : GameManagerBase
|
||||
|
||||
_CaseManager.ContinueToRound2();
|
||||
|
||||
EnableInteraction("End Game");
|
||||
EnableInteraction("Advance To Round 2");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1085,6 +1136,7 @@ public class GameManagerRound1 : GameManagerBase
|
||||
HostCardBetweenRoundsInterface Interface =
|
||||
(HostCardBetweenRoundsInterface)GetHostCardInterface(RoundSegmentType.BetweenSegments);
|
||||
Interface.HeaderUI.text = "Preparing tiebreaker...";
|
||||
Interface.CommentUI.text = "";
|
||||
|
||||
VRCStringDownloader.LoadUrl(_TiebreakerData, (IUdonEventReceiver)this);
|
||||
}
|
||||
@@ -1423,7 +1475,7 @@ public class GameManagerRound1 : GameManagerBase
|
||||
{
|
||||
switch (_QuestionStage)
|
||||
{
|
||||
case 1: BeginFinalRound(); break;
|
||||
case 1: IntroduceFinalRound(); break;
|
||||
case 2: FinalRoundShowMapPreview(); break;
|
||||
case 3: FinalRoundPlayThinkingMusic(); break;
|
||||
case 4: InitialiseCluePresentation(); break;
|
||||
@@ -1478,11 +1530,27 @@ public class GameManagerRound1 : GameManagerBase
|
||||
return _HostCard.EnableHostCardDisplay(RoundType.LocateTheCrook, Question);
|
||||
}
|
||||
|
||||
private void CreateClueSpecificHostInteractionText(DataDictionary Presentation)
|
||||
{
|
||||
switch ((PresentationMedium)(int)Presentation["Medium"].Number)
|
||||
{
|
||||
case PresentationMedium.VideoClue:
|
||||
case PresentationMedium.VideoMusicClue:
|
||||
EnableInteraction("Play Video"); break;
|
||||
case PresentationMedium.ACMECrimenetComputer:
|
||||
EnableInteraction("ACME Crimenet Computer"); break;
|
||||
default:
|
||||
EnableInteraction("Present Next Clue"); break;
|
||||
}
|
||||
}
|
||||
|
||||
private HostCardBetweenRoundsInterface ShowBetweenQuestionsInterface()
|
||||
{
|
||||
HostCardBetweenRoundsInterface Interface =
|
||||
(HostCardBetweenRoundsInterface)GetHostCardInterface(RoundSegmentType.BetweenSegments);
|
||||
|
||||
Interface.CommentUI.text = "";
|
||||
|
||||
string PresentationMediumString = "";
|
||||
if (_CurrentQuestion.ContainsKey("Presentation"))
|
||||
{
|
||||
@@ -1496,12 +1564,31 @@ public class GameManagerRound1 : GameManagerBase
|
||||
{
|
||||
PresentationMediumString = PresentationMediumToString((PresentationMedium)(int)Presentation["Medium"].Number);
|
||||
}
|
||||
|
||||
if (_CurrentQuestionType == RoundSegmentType.FinalRound)
|
||||
{
|
||||
EnableInteraction("Introduce Final Round");
|
||||
}
|
||||
else
|
||||
{
|
||||
CreateClueSpecificHostInteractionText(Presentation);
|
||||
}
|
||||
|
||||
if (Presentation.ContainsKey("Clue Description"))
|
||||
{
|
||||
Interface.CommentUI.text = Presentation["Clue Description"].String;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
PresentationMediumString = RoundSegmentTypeToString(_CurrentQuestionType);
|
||||
EnableInteraction("Begin " + PresentationMediumString);
|
||||
if (_CurrentQuestion.ContainsKey("Clue Description"))
|
||||
{
|
||||
Interface.CommentUI.text = _CurrentQuestion["Clue Description"].String;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Interface.HeaderUI.text = "Upcoming Question: " + PresentationMediumString;
|
||||
|
||||
return Interface;
|
||||
|
||||
Reference in New Issue
Block a user