示例#1
0
        public Task GuideJoin(ILobbyObserver lobbyObserver, IGuideObserver guideObserver)
        {
            Subscribe(lobbyObserver);
            _guideObserver = guideObserver;

            var guideGrain = GrainFactory.GetGrain <IGuideGrain>(Guid.NewGuid());

            _lobby.AddGuide(guideGrain.GetPrimaryKey());

            Console.WriteLine($"Guide {_lobby.GuideId} joined Lobby { this.GetPrimaryKey()}");

            if (_lobby.IsWaitingForScavenger)
            {
                var lobbyManagerGrain = GrainFactory.GetGrain <ILobbyManagerGrain>(0);
                lobbyManagerGrain.AddLobbyWaitingForScavenger(this.GetPrimaryKey());
            }

            return(TaskDone.Done);
        }