Example #1
0
        private NowCharacter ResetCharacter(NowCharacter character)
        {
            character.Level        = 1;
            character.Class        = GetClass();
            character.Strength     = GetStat();
            character.Dexterity    = GetStat();
            character.Constitution = GetStat();
            character.Intelligence = GetStat();
            character.Wisdom       = GetStat();
            character.Charisma     = GetStat();

            return(character);
        }
Example #2
0
        public void Process(SlashCommandPayload command)
        {
            var character = new NowCharacter();
            var reply     = new SlashCommandReply();
            var action    = GetAction(command.text);

            switch (action)
            {
            case NowActions.Checkin:
                reply.text          = GenerateCheckin();
                reply.response_type = "in_channel";
                break;

            case NowActions.CreateCharacter:
                character           = GetCharacter(command.team_domain, command.user_name);
                reply.text          = String.Format("Behold {0}, a powerful {1} (Level {2}).\nStr: {3}, Dex: {4}, Con: {5}, Int: {6}, Wis: {7}, Cha: {8}", character.Name, character.Class, character.Level, character.Strength, character.Dexterity, character.Constitution, character.Intelligence, character.Wisdom, character.Charisma);
                reply.response_type = "in_channel";
                break;

            case NowActions.RerollCharacter:
                character           = RerollCharacter(command.team_domain, command.user_name);
                reply.text          = String.Format("{0} has rerolled {1} and returned to level {2}.\nStr: {3}, Dex: {4}, Con: {5}, Int: {6}, Wis: {7}, Cha: {8}", character.Name, character.Class, character.Level, character.Strength, character.Dexterity, character.Constitution, character.Intelligence, character.Wisdom, character.Charisma);
                reply.response_type = "in_channel";
                break;

            case NowActions.Help:
                reply.text          = "/rpg..... Create or show off your character\n/rpg reroll..... Reset your character, class, stats and level\n/rpg leaderboard..... List top 10 characters on your server\n/rpg fight {name}..... Fight your character against {name}\n/rpg help..... Show this list of commands";
                reply.response_type = "ephemeral";
                break;

            case NowActions.Leaderboard:
                reply.text          = GetLeaderboard(command.team_domain);
                reply.response_type = "ephemeral";
                break;

            case NowActions.Fight:
                character           = GetCharacter(command.team_domain, command.user_name);
                reply.text          = Fight(command.team_domain, character.Name, command.text);
                reply.response_type = reply.text == "Opponent not found." ? "ephemeral" : "in_channel";
                break;

            case NowActions.Error:
            default:
                reply.text          = "Error in command string.";
                reply.response_type = "ephemeral";
                break;
            }

            SendPost(reply, command.response_url);
        }
Example #3
0
        private NowCharacter CreateCharacter(string team, string name)
        {
            var character = new NowCharacter()
            {
                Id           = team + name,
                Name         = name,
                Class        = GetClass(),
                Level        = 1,
                Strength     = GetStat(),
                Dexterity    = GetStat(),
                Constitution = GetStat(),
                Intelligence = GetStat(),
                Wisdom       = GetStat(),
                Charisma     = GetStat()
            };

            _mongo.Save <NowCharacter>(character);

            return(character);
        }