Пример #1
0
        public Task ScavengerJoin(ILobbyObserver lobbyObserver, IScavengerObserver scavengerObserver)
        {
            Subscribe(lobbyObserver);
            _scavengerObserver = scavengerObserver;

            var scavengerGrain = GrainFactory.GetGrain <IScavengerGrain>(Guid.NewGuid());

            _lobby.AddScavenger(scavengerGrain.GetPrimaryKey());

            Console.WriteLine($"Scavenger {_lobby.ScavengerId} joined Lobby { this.GetPrimaryKey()}");

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

            return(TaskDone.Done);
        }