From d4ac24ae17f4b00a76d26d3642c319f8d0ab4629 Mon Sep 17 00:00:00 2001 From: AeonLucid Date: Mon, 19 Dec 2022 00:56:03 +0100 Subject: [PATCH] Added game manager net object and logic classes --- .../Objects/GameManager/IInnerGameManager.cs | 6 ++ .../GameManager/IInnerHideAndSeekManager.cs | 6 ++ .../GameManager/IInnerNormalGameManager.cs | 6 ++ .../Objects/GameManager/InnerGameManager.cs | 64 +++++++++++++++++++ .../GameManager/InnerHideAndSeekManager.cs | 37 +++++++++++ .../GameManager/InnerNormalGameManager.cs | 20 ++++++ .../GameManager/Logic/GameLogicComponent.cs | 19 ++++++ .../Logic/HideAndSeek/LogicGameFlowHnS.cs | 24 +++++++ .../Logic/HideAndSeek/LogicHnSDangerLevel.cs | 17 +++++ .../Logic/HideAndSeek/LogicHnSDeathPopup.cs | 17 +++++ .../Logic/HideAndSeek/LogicHnSMusic.cs | 17 +++++ .../Logic/HideAndSeek/LogicMinigameHnS.cs | 8 +++ .../Logic/HideAndSeek/LogicOptionsHnS.cs | 10 +++ .../Logic/HideAndSeek/LogicPingsHnS.cs | 17 +++++ .../HideAndSeek/LogicRoleSelectionHnS.cs | 17 +++++ .../Logic/HideAndSeek/LogicUsablesHnS.cs | 13 ++++ .../GameManager/Logic/LogicGameFlow.cs | 5 ++ .../GameManager/Logic/LogicMinigame.cs | 17 +++++ .../Objects/GameManager/Logic/LogicOptions.cs | 25 ++++++++ .../GameManager/Logic/LogicRoleSelection.cs | 5 ++ .../Objects/GameManager/Logic/LogicUsables.cs | 5 ++ .../Logic/Normal/LogicGameFlowNormal.cs | 17 +++++ .../Logic/Normal/LogicOptionsNormal.cs | 10 +++ .../Logic/Normal/LogicRoleSelectionNormal.cs | 17 +++++ .../Logic/Normal/LogicUsablesBasic.cs | 17 +++++ src/Impostor.Server/Net/State/Game.Data.cs | 3 + 26 files changed, 419 insertions(+) create mode 100644 src/Impostor.Api/Net/Inner/Objects/GameManager/IInnerGameManager.cs create mode 100644 src/Impostor.Api/Net/Inner/Objects/GameManager/IInnerHideAndSeekManager.cs create mode 100644 src/Impostor.Api/Net/Inner/Objects/GameManager/IInnerNormalGameManager.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/InnerGameManager.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/InnerHideAndSeekManager.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/InnerNormalGameManager.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/GameLogicComponent.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicGameFlowHnS.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicHnSDangerLevel.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicHnSDeathPopup.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicHnSMusic.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicMinigameHnS.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicOptionsHnS.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicPingsHnS.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicRoleSelectionHnS.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicUsablesHnS.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicGameFlow.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicMinigame.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicOptions.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicRoleSelection.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicUsables.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicGameFlowNormal.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicOptionsNormal.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicRoleSelectionNormal.cs create mode 100644 src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicUsablesBasic.cs diff --git a/src/Impostor.Api/Net/Inner/Objects/GameManager/IInnerGameManager.cs b/src/Impostor.Api/Net/Inner/Objects/GameManager/IInnerGameManager.cs new file mode 100644 index 0000000..4f502f2 --- /dev/null +++ b/src/Impostor.Api/Net/Inner/Objects/GameManager/IInnerGameManager.cs @@ -0,0 +1,6 @@ +namespace Impostor.Api.Net.Inner.Objects.GameManager; + +public interface IInnerGameManager +{ + +} diff --git a/src/Impostor.Api/Net/Inner/Objects/GameManager/IInnerHideAndSeekManager.cs b/src/Impostor.Api/Net/Inner/Objects/GameManager/IInnerHideAndSeekManager.cs new file mode 100644 index 0000000..b8267f6 --- /dev/null +++ b/src/Impostor.Api/Net/Inner/Objects/GameManager/IInnerHideAndSeekManager.cs @@ -0,0 +1,6 @@ +namespace Impostor.Api.Net.Inner.Objects.GameManager; + +internal interface IInnerHideAndSeekManager +{ + +} diff --git a/src/Impostor.Api/Net/Inner/Objects/GameManager/IInnerNormalGameManager.cs b/src/Impostor.Api/Net/Inner/Objects/GameManager/IInnerNormalGameManager.cs new file mode 100644 index 0000000..7f7b3c0 --- /dev/null +++ b/src/Impostor.Api/Net/Inner/Objects/GameManager/IInnerNormalGameManager.cs @@ -0,0 +1,6 @@ +namespace Impostor.Api.Net.Inner.Objects.GameManager; + +public interface IInnerNormalGameManager +{ + +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerGameManager.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerGameManager.cs new file mode 100644 index 0000000..27ce592 --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerGameManager.cs @@ -0,0 +1,64 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Impostor.Api.Net; +using Impostor.Api.Net.Custom; +using Impostor.Api.Net.Inner.Objects.GameManager; +using Impostor.Server.Net.Inner.Objects.GameManager.Logic; +using Impostor.Server.Net.State; +using Microsoft.Extensions.Logging; + +namespace Impostor.Server.Net.Inner.Objects.GameManager; + +internal abstract class InnerGameManager : InnerNetObject, IInnerGameManager +{ + private readonly ILogger _logger; + + public InnerGameManager(ICustomMessageManager customMessageManager, Game game, ILogger logger) : base(customMessageManager, game) + { + _logger = logger; + + Components.Add(this); + } + + protected readonly List LogicComponents = new(); + + public LogicGameFlow LogicFlow { get; protected init; } = null!; + + public LogicMinigame LogicMinigame { get; protected init; } = null!; + + public LogicRoleSelection LogicRoleSelection { get; protected init; } = null!; + + public LogicUsables LogicUsables { get; protected init; } = null!; + + public LogicOptions LogicOptions { get; protected init; } = null!; + + protected T AddGameLogic(T logic) + where T : GameLogicComponent + { + LogicComponents.Add(logic); + return logic; + } + + public override ValueTask SerializeAsync(IMessageWriter writer, bool initialState) + { + throw new System.NotImplementedException(); + } + + public override ValueTask DeserializeAsync(IClientPlayer sender, IClientPlayer? target, IMessageReader reader, bool initialState) + { + while (reader.Position < reader.Length) + { + var innerReader = reader.ReadMessage(); + var tag = (int)innerReader.Tag; + if (tag < 0 || tag > this.LogicComponents.Count) + { + _logger.LogError("Out of bounds in DeserializeAsync of InnerGameManager"); + continue; + } + + this.LogicComponents[tag].Deserialize(innerReader, initialState); + } + + return ValueTask.CompletedTask; + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerHideAndSeekManager.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerHideAndSeekManager.cs new file mode 100644 index 0000000..306f9b0 --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerHideAndSeekManager.cs @@ -0,0 +1,37 @@ +using Impostor.Api.Net.Custom; +using Impostor.Api.Net.Inner.Objects.GameManager; +using Impostor.Server.Net.Inner.Objects.GameManager.Logic.HideAndSeek; +using Impostor.Server.Net.State; +using Microsoft.Extensions.Logging; + +namespace Impostor.Server.Net.Inner.Objects.GameManager; + +internal class InnerHideAndSeekManager : InnerGameManager, IInnerHideAndSeekManager +{ + public InnerHideAndSeekManager(ICustomMessageManager customMessageManager, Game game, ILogger logger) : base(customMessageManager, game, logger) + { + LogicMusic = AddGameLogic(new LogicHnSMusic(this)); + LogicMinigame = AddGameLogic(new LogicMinigameHnS(this)); + LogicFlowHnS = new LogicGameFlowHnS(this); + LogicFlow = AddGameLogic(LogicFlowHnS); + LogicUsables = AddGameLogic(new LogicUsablesHnS()); + LogicRoleSelection = AddGameLogic(new LogicRoleSelectionHnS(this)); + LogicOptionsHnS = new LogicOptionsHnS(this, game); + LogicOptions = AddGameLogic(this.LogicOptionsHnS); + LogicDangerLevel = AddGameLogic(new LogicHnSDangerLevel(this)); + LogicPing = AddGameLogic(new LogicPingsHnS(this)); + LogicDeathPopup = AddGameLogic(new LogicHnSDeathPopup(this)); + } + + public LogicHnSMusic LogicMusic { get; private set; } + + public LogicGameFlowHnS LogicFlowHnS { get; private set; } + + public LogicOptionsHnS LogicOptionsHnS { get; private set; } + + public LogicHnSDangerLevel LogicDangerLevel { get; private set; } + + public LogicPingsHnS LogicPing { get; private set; } + + public LogicHnSDeathPopup LogicDeathPopup { get; private set; } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerNormalGameManager.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerNormalGameManager.cs new file mode 100644 index 0000000..9b8e3b7 --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/InnerNormalGameManager.cs @@ -0,0 +1,20 @@ +using Impostor.Api.Net.Custom; +using Impostor.Api.Net.Inner.Objects.GameManager; +using Impostor.Server.Net.Inner.Objects.GameManager.Logic; +using Impostor.Server.Net.Inner.Objects.GameManager.Logic.Normal; +using Impostor.Server.Net.State; +using Microsoft.Extensions.Logging; + +namespace Impostor.Server.Net.Inner.Objects.GameManager; + +internal class InnerNormalGameManager : InnerGameManager, IInnerNormalGameManager +{ + public InnerNormalGameManager(ICustomMessageManager customMessageManager, Game game, ILogger logger) : base(customMessageManager, game, logger) + { + LogicFlow = AddGameLogic(new LogicGameFlowNormal(this)); + LogicMinigame = AddGameLogic(new LogicMinigame(this)); + LogicRoleSelection = AddGameLogic(new LogicRoleSelectionNormal(this)); + LogicUsables = AddGameLogic(new LogicUsablesBasic(this)); + LogicOptions = AddGameLogic(new LogicOptionsNormal(this, game)); + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/GameLogicComponent.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/GameLogicComponent.cs new file mode 100644 index 0000000..9241a19 --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/GameLogicComponent.cs @@ -0,0 +1,19 @@ +using Impostor.Api.Net.Inner; +using Impostor.Api.Net.Inner.Objects; + +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic; + +internal abstract class GameLogicComponent +{ + public virtual void OnPlayerDisconnect(IInnerPlayerControl pc) + { + } + + public virtual void HandleRPC(RpcCalls callId, IMessageReader reader) + { + } + + public abstract bool Serialize(IMessageWriter writer, bool initialState); + + public abstract void Deserialize(IMessageReader reader, bool initialState); +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicGameFlowHnS.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicGameFlowHnS.cs new file mode 100644 index 0000000..47e3c7c --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicGameFlowHnS.cs @@ -0,0 +1,24 @@ +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic.HideAndSeek; + +internal class LogicGameFlowHnS : LogicGameFlow +{ + private float currentFinalHideTime; + private float currentHideTime; + + public LogicGameFlowHnS(InnerHideAndSeekManager gameManager) + { + } + + public override bool Serialize(IMessageWriter writer, bool initialState) + { + throw new System.NotImplementedException(); + } + + public override void Deserialize(IMessageReader reader, bool initialState) + { + var num = reader.ReadSingle(); + + currentFinalHideTime = reader.ReadSingle(); + currentHideTime = num; + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicHnSDangerLevel.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicHnSDangerLevel.cs new file mode 100644 index 0000000..eae6ee2 --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicHnSDangerLevel.cs @@ -0,0 +1,17 @@ +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic.HideAndSeek; + +internal class LogicHnSDangerLevel : GameLogicComponent +{ + public LogicHnSDangerLevel(InnerHideAndSeekManager gameManager) + { + } + + public override bool Serialize(IMessageWriter writer, bool initialState) + { + return false; + } + + public override void Deserialize(IMessageReader reader, bool initialState) + { + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicHnSDeathPopup.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicHnSDeathPopup.cs new file mode 100644 index 0000000..f2ef712 --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicHnSDeathPopup.cs @@ -0,0 +1,17 @@ +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic.HideAndSeek; + +internal class LogicHnSDeathPopup : GameLogicComponent +{ + public LogicHnSDeathPopup(InnerHideAndSeekManager gameManager) + { + } + + public override bool Serialize(IMessageWriter writer, bool initialState) + { + return false; + } + + public override void Deserialize(IMessageReader reader, bool initialState) + { + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicHnSMusic.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicHnSMusic.cs new file mode 100644 index 0000000..b775b29 --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicHnSMusic.cs @@ -0,0 +1,17 @@ +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic.HideAndSeek; + +internal class LogicHnSMusic : GameLogicComponent +{ + public LogicHnSMusic(InnerHideAndSeekManager gameManager) + { + } + + public override bool Serialize(IMessageWriter writer, bool initialState) + { + return false; + } + + public override void Deserialize(IMessageReader reader, bool initialState) + { + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicMinigameHnS.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicMinigameHnS.cs new file mode 100644 index 0000000..aa5438b --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicMinigameHnS.cs @@ -0,0 +1,8 @@ +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic.HideAndSeek; + +internal class LogicMinigameHnS : LogicMinigame +{ + public LogicMinigameHnS(InnerHideAndSeekManager gameManager) : base(gameManager) + { + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicOptionsHnS.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicOptionsHnS.cs new file mode 100644 index 0000000..3b2f313 --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicOptionsHnS.cs @@ -0,0 +1,10 @@ +using Impostor.Server.Net.State; + +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic.HideAndSeek; + +internal class LogicOptionsHnS : LogicOptions +{ + public LogicOptionsHnS(InnerHideAndSeekManager gameManager, Game game) : base(game) + { + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicPingsHnS.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicPingsHnS.cs new file mode 100644 index 0000000..62682ea --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicPingsHnS.cs @@ -0,0 +1,17 @@ +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic.HideAndSeek; + +internal class LogicPingsHnS : GameLogicComponent +{ + public LogicPingsHnS(InnerHideAndSeekManager gameManager) + { + } + + public override bool Serialize(IMessageWriter writer, bool initialState) + { + return false; + } + + public override void Deserialize(IMessageReader reader, bool initialState) + { + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicRoleSelectionHnS.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicRoleSelectionHnS.cs new file mode 100644 index 0000000..d65f74e --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicRoleSelectionHnS.cs @@ -0,0 +1,17 @@ +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic.HideAndSeek; + +internal class LogicRoleSelectionHnS : LogicRoleSelection +{ + public LogicRoleSelectionHnS(InnerHideAndSeekManager gameManager) + { + } + + public override bool Serialize(IMessageWriter writer, bool initialState) + { + return false; + } + + public override void Deserialize(IMessageReader reader, bool initialState) + { + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicUsablesHnS.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicUsablesHnS.cs new file mode 100644 index 0000000..61df129 --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/HideAndSeek/LogicUsablesHnS.cs @@ -0,0 +1,13 @@ +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic.HideAndSeek; + +internal class LogicUsablesHnS : LogicUsables +{ + public override bool Serialize(IMessageWriter writer, bool initialState) + { + return false; + } + + public override void Deserialize(IMessageReader reader, bool initialState) + { + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicGameFlow.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicGameFlow.cs new file mode 100644 index 0000000..2b408e8 --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicGameFlow.cs @@ -0,0 +1,5 @@ +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic; + +internal abstract class LogicGameFlow : GameLogicComponent +{ +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicMinigame.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicMinigame.cs new file mode 100644 index 0000000..13c938b --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicMinigame.cs @@ -0,0 +1,17 @@ +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic; + +internal class LogicMinigame : GameLogicComponent +{ + public LogicMinigame(InnerGameManager gameManager) + { + } + + public override bool Serialize(IMessageWriter writer, bool initialState) + { + return false; + } + + public override void Deserialize(IMessageReader reader, bool initialState) + { + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicOptions.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicOptions.cs new file mode 100644 index 0000000..2bffea9 --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicOptions.cs @@ -0,0 +1,25 @@ +using Impostor.Api.Innersloth.GameOptions; +using Impostor.Server.Net.State; + +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic; + +internal abstract class LogicOptions : GameLogicComponent +{ + private readonly Game _game; + + protected LogicOptions(Game game) + { + _game = game; + } + + public override bool Serialize(IMessageWriter writer, bool initialState) + { + GameOptionsFactory.Serialize(writer, _game.Options); + return true; + } + + public override void Deserialize(IMessageReader reader, bool initialState) + { + var options = GameOptionsFactory.Deserialize(reader); + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicRoleSelection.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicRoleSelection.cs new file mode 100644 index 0000000..5674c73 --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicRoleSelection.cs @@ -0,0 +1,5 @@ +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic; + +internal abstract class LogicRoleSelection : GameLogicComponent +{ +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicUsables.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicUsables.cs new file mode 100644 index 0000000..1a60f09 --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicUsables.cs @@ -0,0 +1,5 @@ +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic; + +internal abstract class LogicUsables : GameLogicComponent +{ +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicGameFlowNormal.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicGameFlowNormal.cs new file mode 100644 index 0000000..30febf1 --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicGameFlowNormal.cs @@ -0,0 +1,17 @@ +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic.Normal; + +internal class LogicGameFlowNormal : LogicGameFlow +{ + public LogicGameFlowNormal(InnerNormalGameManager gameManager) + { + } + + public override bool Serialize(IMessageWriter writer, bool initialState) + { + return false; + } + + public override void Deserialize(IMessageReader reader, bool initialState) + { + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicOptionsNormal.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicOptionsNormal.cs new file mode 100644 index 0000000..b94649b --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicOptionsNormal.cs @@ -0,0 +1,10 @@ +using Impostor.Server.Net.State; + +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic.Normal; + +internal class LogicOptionsNormal : LogicOptions +{ + public LogicOptionsNormal(InnerNormalGameManager gameManager, Game game) : base(game) + { + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicRoleSelectionNormal.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicRoleSelectionNormal.cs new file mode 100644 index 0000000..4e32da8 --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicRoleSelectionNormal.cs @@ -0,0 +1,17 @@ +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic.Normal; + +internal class LogicRoleSelectionNormal : LogicRoleSelection +{ + public LogicRoleSelectionNormal(InnerNormalGameManager gameManager) + { + } + + public override bool Serialize(IMessageWriter writer, bool initialState) + { + return false; + } + + public override void Deserialize(IMessageReader reader, bool initialState) + { + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicUsablesBasic.cs b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicUsablesBasic.cs new file mode 100644 index 0000000..a16b5fa --- /dev/null +++ b/src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/Normal/LogicUsablesBasic.cs @@ -0,0 +1,17 @@ +namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic.Normal; + +internal class LogicUsablesBasic : LogicUsables +{ + public LogicUsablesBasic(InnerNormalGameManager gameManager) + { + } + + public override bool Serialize(IMessageWriter writer, bool initialState) + { + return false; + } + + public override void Deserialize(IMessageReader reader, bool initialState) + { + } +} diff --git a/src/Impostor.Server/Net/State/Game.Data.cs b/src/Impostor.Server/Net/State/Game.Data.cs index 64d8f05..d08b636 100644 --- a/src/Impostor.Server/Net/State/Game.Data.cs +++ b/src/Impostor.Server/Net/State/Game.Data.cs @@ -10,6 +10,7 @@ using Impostor.Server.Events.Player; using Impostor.Server.Net.Inner; using Impostor.Server.Net.Inner.Objects; using Impostor.Server.Net.Inner.Objects.Components; +using Impostor.Server.Net.Inner.Objects.GameManager; using Impostor.Server.Net.Inner.Objects.ShipStatus; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; @@ -40,6 +41,8 @@ namespace Impostor.Server.Net.State typeof(InnerPolusShipStatus), typeof(InnerSkeldShipStatus), // April fools skeld typeof(InnerAirshipStatus), + typeof(InnerHideAndSeekManager), + typeof(InnerNormalGameManager), }; private readonly List _allObjects = new List(); -- 2.39.5