示例#1
0
        public async Task StartDigging(int playerId)
        {
            var gameState = await _gameStateDataService.GetGameState(playerId);

            _diggingService.StartDigging(gameState, GameUpdateData);
            await _digTimerService.Start(gameState.PlayerId, GameUpdateData);

            await _gameStateDataService.SaveGameState(gameState);

            await GameUpdateData(gameState);
        }
示例#2
0
        public async Task <List <string> > Tick(int playerId)
        {
            var gameState = await _gameStateDataService.GetGameState(playerId);

            if (gameState.Player.DigState == null)
            {
                _diggingService.PauseDigging(gameState);
                return(new List <string>());
            }
            var messageLists = new List <List <string> >()
            {
                HandleBuffs(gameState)
                , HandlePlayerDeath(gameState)
                , HandleMonsterDeaths(gameState)
                , ActivateItems(gameState)
                , HandlePlayerDeath(gameState)
                , HandleMonsterDeaths(gameState)
                , MonsterAttacks(gameState)
                , HandlePlayerDeath(gameState)
                , ProgressDigging(gameState)
                , FindItems(gameState)
                , MonsterApproach(gameState)
            };
            await _gameStateDataService.SaveGameState(gameState);

            return(messageLists.SelectMany(m => m).Where(m => !string.IsNullOrEmpty(m)).ToList());
        }