Exemplo n.º 1
0
        public void RollMonsterSpawn()
        {
            var channel           = PickRandomRegion(_channelRepository);
            var monsterIds        = channel.Monsters.Select(mons => mons.MonsterId).ToList().OrderBy(mons => Guid.NewGuid());
            var monstersInChannel = _spawnedMonsterRepository.GetMonsters(channel.Id).ToList();

            foreach (var monsterId in monsterIds)
            {
                if (monstersInChannel.Count(monsta => monsta.MonsterId == monsterId) < MaximumMonsterTypeInChannel)
                {
                    var monster = _monsterRepository.GetMonster(monsterId);
                    _spawnedMonsterRepository.SpawnMonster(monster, channel.Id);
                    _slack.BroadcastMessage(string.Format(DougMessages.MonsterSpawned, monster.Name), channel.Id).Wait();
                    return;
                }
            }
        }
Exemplo n.º 2
0
 public async Task ShowMonsters(string channel)
 {
     var monsters = _spawnedMonsterRepository.GetMonsters(channel);
     var blocks   = monsters.SelectMany(monster => new MonsterMenu(monster).Blocks);
     await _slack.BroadcastBlocks(blocks, channel);
 }