Process comments

This commit is contained in:
miniduikboot committed 2023-11-28 23:09:39 +01:00
1 parent 5edb409388
commit e303065688
7 files changed
+35 -21

No files matched your search

@@ -1,4 +1,5 @@
using Impostor.Api.Net.Custom;
using Impostor.Api.Events.Managers;
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;
@@ -8,7 +9,7 @@ namespace Impostor.Server.Net.Inner.Objects.GameManager;
internal partial class InnerHideAndSeekManager : InnerGameManager, IInnerHideAndSeekManager
{
public InnerHideAndSeekManager(ICustomMessageManager<ICustomRpc> customMessageManager, Game game, ILogger<InnerGameManager> logger) : base(customMessageManager, game, logger)
public InnerHideAndSeekManager(ICustomMessageManager<ICustomRpc> customMessageManager, Game game, ILogger<InnerGameManager> logger, IEventManager eventManager) : base(customMessageManager, game, logger)
{
LogicMusic = AddGameLogic(new LogicHnSMusic());
LogicMinigame = AddGameLogic(new LogicMinigameHnS());
@@ -16,7 +17,7 @@ internal partial class InnerHideAndSeekManager : InnerGameManager, IInnerHideAnd
LogicFlow = AddGameLogic(LogicFlowHnS);
LogicUsables = AddGameLogic(new LogicUsablesHnS());
LogicRoleSelection = AddGameLogic(new LogicRoleSelectionHnS());
LogicOptionsHnS = new LogicOptionsHnS(game);
LogicOptionsHnS = new LogicOptionsHnS(game, eventManager);
LogicOptions = AddGameLogic(this.LogicOptionsHnS);
LogicDangerLevel = AddGameLogic(new LogicHnSDangerLevel());
LogicPing = AddGameLogic(new LogicPingsHnS());
@@ -1,4 +1,5 @@
using Impostor.Api.Net.Custom;
using Impostor.Api.Events.Managers;
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;
@@ -9,12 +10,12 @@ namespace Impostor.Server.Net.Inner.Objects.GameManager;
internal class InnerNormalGameManager : InnerGameManager, IInnerNormalGameManager
{
public InnerNormalGameManager(ICustomMessageManager<ICustomRpc> customMessageManager, Game game, ILogger<InnerGameManager> logger) : base(customMessageManager, game, logger)
public InnerNormalGameManager(ICustomMessageManager<ICustomRpc> customMessageManager, Game game, ILogger<InnerGameManager> logger, IEventManager eventManager) : base(customMessageManager, game, logger)
{
LogicFlow = AddGameLogic(new LogicGameFlowNormal());
LogicMinigame = AddGameLogic(new LogicMinigame());
LogicRoleSelection = AddGameLogic(new LogicRoleSelectionNormal());
LogicUsables = AddGameLogic(new LogicUsablesBasic());
LogicOptions = AddGameLogic(new LogicOptionsNormal(game));
LogicOptions = AddGameLogic(new LogicOptionsNormal(game, eventManager));
}
}
@@ -1,10 +1,11 @@
using Impostor.Server.Net.State;
using Impostor.Api.Events.Managers;
using Impostor.Server.Net.State;
namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic.HideAndSeek;
internal class LogicOptionsHnS : LogicOptions
{
public LogicOptionsHnS(Game game) : base(game)
public LogicOptionsHnS(Game game, IEventManager eventManager) : base(game, eventManager)
{
}
}
@@ -1,4 +1,6 @@
using Impostor.Api.Innersloth.GameOptions;
using Impostor.Api.Events.Managers;
using Impostor.Api.Innersloth.GameOptions;
using Impostor.Server.Events;
using Impostor.Server.Net.State;
namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic;
@@ -6,10 +8,12 @@ namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic;
internal abstract class LogicOptions : GameLogicComponent
{
private readonly Game _game;
private readonly IEventManager _eventManager;
protected LogicOptions(Game game)
protected LogicOptions(Game game, IEventManager eventManager)
{
_game = game;
_eventManager = eventManager;
}
public override bool Serialize(IMessageWriter writer, bool initialState)
@@ -18,8 +22,11 @@ internal abstract class LogicOptions : GameLogicComponent
return true;
}
public override void Deserialize(IMessageReader reader, bool initialState)
public override async void Deserialize(IMessageReader reader, bool initialState)
{
GameOptionsFactory.DeserializeInto(reader, _game.Options);
await _eventManager.CallAsync(new GameOptionsChangedEvent(
_game,
Api.Events.IGameOptionsChangedEvent.ChangeReason.Rpc));
}
}
@@ -1,10 +1,11 @@
using Impostor.Server.Net.State;
using Impostor.Api.Events.Managers;
using Impostor.Server.Net.State;
namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic.Normal;
internal class LogicOptionsNormal : LogicOptions
{
public LogicOptionsNormal(Game game) : base(game)
public LogicOptionsNormal(Game game, IEventManager eventManager) : base(game, eventManager)
{
}
}
@@ -143,9 +143,6 @@ namespace Impostor.Server.Net.Inner.Objects
}
Rpc02SyncSettings.DeserializeInto(reader, Game.Options);
await _eventManager.CallAsync(new GameOptionsChangedEvent(
Game,
Api.Events.IGameOptionsChangedEvent.ChangeReason.Rpc));
break;
}
+11 -5
View File
@@ -71,11 +71,17 @@ namespace Impostor.Server.Net.State
}
else
{
alreadyCallingOptionsChangedEvent = true;
await _eventManager.CallAsync(new GameOptionsChangedEvent(
this,
Api.Events.IGameOptionsChangedEvent.ChangeReason.Api));
alreadyCallingOptionsChangedEvent = false;
try
{
alreadyCallingOptionsChangedEvent = true;
await _eventManager.CallAsync(new GameOptionsChangedEvent(
this,
Api.Events.IGameOptionsChangedEvent.ChangeReason.Api));
}
finally
{
alreadyCallingOptionsChangedEvent = false;
}
}
}