Filing cabinet is implemented and mostly functional.

This commit is contained in:
2025-12-02 13:34:45 -05:00
parent a97a7a03d1
commit 769423d150
28 changed files with 5177 additions and 217 deletions
@@ -44,7 +44,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 12
Data: 31
Data: 32
- Name:
Entry: 7
Data:
@@ -1724,19 +1724,19 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: _Modem
Data: _FilingCabinet
- Name: $v
Entry: 7
Data: 110|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _Modem
Data: _FilingCabinet
- Name: <UserType>k__BackingField
Entry: 7
Data: 111|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: Modem, Assembly-CSharp
Data: FilingCabinet, Assembly-CSharp
- Name:
Entry: 8
Data:
@@ -1785,19 +1785,19 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: _ArrivalDisplay
Data: _Modem
- Name: $v
Entry: 7
Data: 114|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _ArrivalDisplay
Data: _Modem
- Name: <UserType>k__BackingField
Entry: 7
Data: 115|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: ArrivalDisplay, Assembly-CSharp
Data: Modem, Assembly-CSharp
- Name:
Entry: 8
Data:
@@ -1846,25 +1846,25 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: _LightningRoundAnimator
Data: _ArrivalDisplay
- Name: $v
Entry: 7
Data: 118|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _LightningRoundAnimator
Data: _ArrivalDisplay
- Name: <UserType>k__BackingField
Entry: 7
Data: 119|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.Animator, UnityEngine.AnimationModule
Data: ArrivalDisplay, Assembly-CSharp
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 119
Data: 4
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -1881,12 +1881,73 @@ MonoBehaviour:
Entry: 7
Data: 120|System.Collections.Generic.List`1[[System.Attribute, mscorlib]],
mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 121|UnityEngine.SerializeField, UnityEngine.CoreModule
- 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: _LightningRoundAnimator
- Name: $v
Entry: 7
Data: 122|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _LightningRoundAnimator
- Name: <UserType>k__BackingField
Entry: 7
Data: 123|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.Animator, UnityEngine.AnimationModule
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 123
- 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: true
- Name: _fieldAttributes
Entry: 7
Data: 124|System.Collections.Generic.List`1[[System.Attribute, mscorlib]],
mscorlib
- Name:
Entry: 12
Data: 3
- Name:
Entry: 7
Data: 121|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
Data: 125|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
- Name: height
Entry: 4
Data: 8
@@ -1895,7 +1956,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 7
Data: 122|UnityEngine.HeaderAttribute, UnityEngine.CoreModule
Data: 126|UnityEngine.HeaderAttribute, UnityEngine.CoreModule
- Name: header
Entry: 1
Data: Effects
@@ -1904,7 +1965,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 7
Data: 123|UnityEngine.SerializeField, UnityEngine.CoreModule
Data: 127|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
@@ -13,7 +13,8 @@ public enum PresentationMedium
VideoClue,
VideoMusicClue,
ACMECrimenetComputer,
DetectiveNoirEffect
DetectiveNoirEffect,
FilingCabinet
}
@@ -50,6 +51,7 @@ public class GameManagerRound1 : GameManagerBase
[SerializeField] private ACMECrimenetComputer _ACMECrimenetComputer;
[SerializeField] private VideoMusicClueSkateboard _VideoMusicClueSkateboard;
[SerializeField] private DetectiveNoirEffect _DetectiveNoirEffect;
[SerializeField] private FilingCabinet _FilingCabinet;
[SerializeField] private Modem _Modem;
[SerializeField] private ArrivalDisplay _ArrivalDisplay;
@@ -95,6 +97,8 @@ public class GameManagerRound1 : GameManagerBase
Networking.SetOwner(NewOwner, _VideoPlayer.gameObject);
Networking.SetOwner(NewOwner, _ACMECrimenetComputer.gameObject);
Networking.SetOwner(NewOwner, _VideoMusicClueSkateboard.gameObject);
Networking.SetOwner(NewOwner, _DetectiveNoirEffect.gameObject);
Networking.SetOwner(NewOwner, _FilingCabinet.gameObject);
Networking.SetOwner(NewOwner, _Modem.gameObject);
Networking.SetOwner(NewOwner, _ArrivalDisplay.gameObject);
@@ -244,10 +248,11 @@ public class GameManagerRound1 : GameManagerBase
DataDictionary Presentation = _CurrentQuestion["Presentation"].DataDictionary;
switch ((PresentationMedium)(int)Presentation["Medium"].Number)
{
case PresentationMedium.VideoClue: InitialiseVideoClue(Presentation); break;
case PresentationMedium.VideoMusicClue: InitialiseVideoMusicClue(Presentation); break;
case PresentationMedium.ACMECrimenetComputer: InitialiseACMECrimenetComputer(Presentation); break;
case PresentationMedium.DetectiveNoirEffect: InitialiseDetectiveNoirEffect(Presentation); break;
case PresentationMedium.VideoClue: InitialiseVideoClue(Presentation); break;
case PresentationMedium.VideoMusicClue: InitialiseVideoMusicClue(Presentation); break;
case PresentationMedium.ACMECrimenetComputer: InitialiseACMECrimenetComputer(Presentation); break;
case PresentationMedium.DetectiveNoirEffect: InitialiseDetectiveNoirEffect(Presentation); break;
case PresentationMedium.FilingCabinet: InitialiseFilingCabinet(Presentation); break;
}
}
@@ -350,8 +355,6 @@ 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 = "";
@@ -420,6 +423,78 @@ public class GameManagerRound1 : GameManagerBase
}
}
private void InitialiseFilingCabinet(DataDictionary Presentation)
{
if (_QuestionSubstage < 1)
{
HostCardBetweenRoundsInterface Interface =
(HostCardBetweenRoundsInterface)GetHostCardInterface(RoundSegmentType.BetweenSegments);
string UntranslatedText = "";
string TranslatedText = "";
if (Presentation.ContainsKey("Clue Text"))
{
UntranslatedText = Presentation["Clue Text"].String;
}
if (Presentation.ContainsKey("Translated Text"))
{
TranslatedText = Presentation["Translated Text"].String;
}
else
{
TranslatedText = UntranslatedText;
}
if (Presentation.ContainsKey("Clue Notes") && Presentation["Clue Notes"].TokenType == TokenType.DataList)
{
DataList ClueNotes = Presentation["Clue Notes"].DataList;
for (int i = 0; i < ClueNotes.Count && i < FilingCabinet.DRAWER_COUNT; i++)
{
if (ClueNotes[i].TokenType == TokenType.DataDictionary)
{
if (ClueNotes[i].DataDictionary.ContainsKey("Clue Text"))
{
_FilingCabinet.ClueNotes[i] = ClueNotes[i].DataDictionary["Clue Text"].String;
}
else
{
_FilingCabinet.ClueNotes[i] = "";
}
if (ClueNotes[i].DataDictionary.ContainsKey("Clue Image"))
{
_FilingCabinet.ClueImages[i] = (int)ClueNotes[i].DataDictionary["Clue Image"].DataList[0].Number;
if (ClueNotes[i].DataDictionary.ContainsKey("Clue Image Scale"))
{
_FilingCabinet.ClueImageScales[i] = (float)ClueNotes[i].DataDictionary["Clue Image Scale"].DataList[0].Number;
}
}
else
{
_FilingCabinet.ClueImages[i] = -1;
}
}
}
}
_FilingCabinet.Activate = true;
_FilingCabinet.UpdateNoteData();
_FilingCabinet.RequestSerialization();
_QuestionSubstage++;
EnableInteraction("Reveal Question");
}
else
{
_FilingCabinet.Activate = false;
MultipleChoiceRevealQuestion();
}
RequestSerialization();
}
private void MultipleChoiceRevealQuestion()
{
_QuestionSubstage = 0;