Ejemplo n.º 1
0
        private async Task TickSinglePlayer(Player player)
        {
            bool success = false;

            while (!success)
            {
                // Increment Mana
                if (player.Mana < Player.MaxMana)
                {
                    player.Mana += 100;
                }

                success = await PlayersRepository.Update(player);

                if (!success)
                {
                    player = await PlayersRepository.Get(player.Id);

                    if (player.Adventure == null)
                    {
                        return;
                    }
                }
            }
        }
        public async Task Class([Remainder] string args = null)
        {
            if (string.IsNullOrWhiteSpace(args))
            {
                Player player = await PlayersRepository.Get(Context.User.Id.ToString());

                await Context.User.SendMessageAsync($"Your Class is {(string.IsNullOrWhiteSpace(player.Class) ? "Not Set!" : player.Class)}");

                return;
            }

            args = args.ToLower().Trim();
            args = args.First().ToString().ToUpper() + args.Substring(1);

            HashSet <string> classes = new HashSet <string>()
            {
                "Fighter", "Rogue", "Ranger", "Cleric", "Wizard", "Bard", "Barbarian"
            };

            if (classes.Contains(args))
            {
                bool success = false;
                while (!success)
                {
                    Player player = await PlayersRepository.Get(Context.User.Id.ToString());

                    player.Class = args;
                    success      = await PlayersRepository.Update(player);
                }
                await Context.User.SendMessageAsync($"Class set to {args}!");
            }
            else
            {
                await Context.User.SendMessageAsync("Invalid Class Selection!");
            }
        }
Ejemplo n.º 3
0
 public IEnumerable <Player> Get()
 {
     return(_repo.Get());
 }
        public async Task Start([Remainder] string args = "")
        {
            Adventure.Rank adventureRank;
            args = (args ?? "").ToString().ToLower().Trim();
            if (args.StartsWith('f'))
            {
                adventureRank = Adventure.Rank.Frontline;
            }
            else if (args.StartsWith('m'))
            {
                adventureRank = Adventure.Rank.Midline;
            }
            else if (args.StartsWith('b'))
            {
                adventureRank = Adventure.Rank.Backline;
            }
            else
            {
                await Context.User.SendMessageAsync("Invalid input! You need to specify a rank! front, mid, or back!");

                return;
            }

            Player player = await PlayersRepository.Get(Context.User.Id.ToString());

            if (!(await ModuleLibrary.PlayerExists(player, Context.User)))
            {
                return;
            }
            if (!(await ModuleLibrary.PlayerSetup(player, Context.User)))
            {
                return;
            }
            if (!(await ModuleLibrary.PlayerHasNoAdventure(player, Context.User)))
            {
                return;
            }

            // Create an adventure if it doesn't already exist.
            await AdventuresRepository.Create
            (
                new Adventure()
            {
                Id                = Context.Channel.Id.ToString(),
                Channel           = Context.Channel.Id,
                Guild             = Context.Guild.Id,
                StartTime         = DateTime.UtcNow,
                RegenerateMessage = true
            }
            );

            await PlayersRepository.AddPlayerToAdventure
            (
                playerId : Context.User.Id.ToString(),
                adventureId : Context.Channel.Id.ToString(),
                adventureRank : adventureRank
            );

            await AdventuresRepository.AddLogToAdventure
            (
                adventureId : Context.Channel.Id.ToString(),
                logEntry : $"<@{player.Id}> joined the Adventure at the {adventureRank}!"
            );
        }