void Handle(GameLockChanged gameLockChanged) { var obs = GetOrAdd(gameLockChanged.GameId); lock (obs) { var state = new GameLockState(gameLockChanged.IsLocked, gameLockChanged.CanAbort); _currentValues[gameLockChanged.GameId] = state; obs.Item1.OnNext(state); } }
void Handle(GameLockChanged message) { if (message.CanAbort) return; if (Current != null) { Current.NextAction = null; Current.NextActionInfo = null; } }