Esempio n. 1
0
        public async Task AddSkillMod(string skillName, int mod, string source, [Remainder] string name = null)
        {
            DnDPlayerCharacter player = await GetPlayerOrCurrent(name);

            if (player != null)
            {
                DnDCharacterSkills skill = GetSkill(skillName);
                if ((int)skill == -1)
                {
                    await ReplyAsync("Invalid skill! Valid: athl, acro, slei, stea, arca, hist, inve, natu, reli, anim, insi, medi, perc, surv, dece, inti, perf, pers");

                    return;
                }
                DnDBasicCharacterInfo basicInfo = player.BasicInfo;
                basicInfo.SkillMods.Add(new DnDSkillModDescriptor()
                {
                    SourceDescription = source,
                    SkillMod          = new DnDSkillModifier()
                    {
                        Skill    = skill,
                        Modifier = mod
                    }
                });
                player.BasicInfo = basicInfo;
                await ReplyAsync("Successfully added skill modifier.");
            }
        }
Esempio n. 2
0
        public async Task DeleteSkillMod(string skillName, int num, [Remainder] string name = null)
        {
            DnDPlayerCharacter player = await GetPlayerOrCurrent(name);

            if (player != null)
            {
                DnDCharacterSkills skill = GetSkill(skillName);
                if ((int)skill == -1)
                {
                    await ReplyAsync("Invalid skill! Valid: athl, acro, slei, stea, arca, hist, inve, natu, reli, anim, insi, medi, perc, surv, dece, inti, perf, pers");

                    return;
                }
                DnDBasicCharacterInfo basicInfo = player.BasicInfo;
                DnDSkillModDescriptor match     = basicInfo.SkillMods.Where((smd) => smd.SkillMod.Skill == skill).ElementAtOrDefault(num - 1);
                if (match.Equals(default(DnDSkillModDescriptor)))
                {
                    await ReplyAsync("No valid modifier found. Must be a number from .listsmods " + skillName);

                    return;
                }
                basicInfo.SkillMods.Remove(match);
                player.BasicInfo = basicInfo;
                await ReplyAsync("Successfully deleted skill modifier.");
            }
        }
Esempio n. 3
0
        public async Task DeleteSkillProficiency(string skillName, [Remainder] string name = null)
        {
            DnDPlayerCharacter player = await GetPlayerOrCurrent(name);

            if (player != null)
            {
                DnDCharacterSkills skill = GetSkill(skillName);
                if ((int)skill == -1)
                {
                    await ReplyAsync("Invalid skill! Valid: athl, acro, slei, stea, arca, hist, inve, natu, reli, anim, insi, medi, perc, surv, dece, inti, perf, pers");

                    return;
                }
                DnDBasicCharacterInfo basicInfo = player.BasicInfo;
                if (!basicInfo.SkillProficiencies.Contains(skill))
                {
                    await ReplyAsync(player.Name + " does not have a proficiency in " + skill.ToString().ToLowerInvariant() + "!");

                    return;
                }
                basicInfo.SkillProficiencies.Remove(skill);
                player.BasicInfo = basicInfo;
                await ReplyAsync("Successfully deleted skill proficiency.");
            }
        }
Esempio n. 4
0
        public async Task DeleteAbilityMod(string ability, int num, [Remainder] string name = null)
        {
            DnDPlayerCharacter player = await GetPlayerOrCurrent(name);

            if (player != null)
            {
                DnDAbilityScores abilityScore = GetAbility(ability);
                if ((int)abilityScore == -1)
                {
                    await ReplyAsync("Invalid ability score! Valid: STR, DEX, CON, INT, WIS, CHA");

                    return;
                }
                DnDBasicCharacterInfo   basicInfo = player.BasicInfo;
                DnDAbilityModDescriptor match     = basicInfo.AbilityMods.Where((amd) => amd.AbilityMod.Ability == abilityScore).ElementAtOrDefault(num - 1);
                if (match.Equals(default(DnDAbilityModDescriptor)))
                {
                    await ReplyAsync("No valid modifier found. Must be a number from .listamods " + ability);

                    return;
                }
                basicInfo.AbilityMods.Remove(match);
                player.BasicInfo = basicInfo;
                await ReplyAsync("Successfully deleted ability modifier.");
            }
        }
Esempio n. 5
0
        public async Task AddAbilityMod(string ability, int mod, string source, [Remainder] string name = null)
        {
            DnDPlayerCharacter player = await GetPlayerOrCurrent(name);

            if (player != null)
            {
                DnDAbilityScores abilityScore = GetAbility(ability);
                if ((int)abilityScore == -1)
                {
                    await ReplyAsync("Invalid ability score! Valid: STR, DEX, CON, INT, WIS, CHA");

                    return;
                }
                DnDBasicCharacterInfo basicInfo = player.BasicInfo;
                basicInfo.AbilityMods.Add(new DnDAbilityModDescriptor()
                {
                    SourceDescription = source,
                    AbilityMod        = new DnDAbilityModifier()
                    {
                        Ability  = abilityScore,
                        Modifier = mod
                    }
                });
                player.BasicInfo = basicInfo;
                await ReplyAsync("Successfully added ability modifier.");
            }
        }
Esempio n. 6
0
        public async Task SetStats(int strength, int dexterity, int constitution, int intelligence, int wisdom, int charisma, [Remainder] string name = null)
        {
            DnDPlayerCharacter player = await GetPlayerOrCurrent(name);

            if (player != null)
            {
                DnDBasicCharacterInfo basicInfo = player.BasicInfo;
                basicInfo.Strength     = strength;
                basicInfo.Dexterity    = dexterity;
                basicInfo.Constitution = constitution;
                basicInfo.Intelligence = intelligence;
                basicInfo.Wisdom       = wisdom;
                basicInfo.Charisma     = charisma;
                player.BasicInfo       = basicInfo;
                await ReplyAsync("Successfully modified stats.");
            }
        }
Esempio n. 7
0
        public static DnDPlayerCharacter Migrate(DnDPlayerCharacter player)
        {
            if (player == null || player.Migrated)
            {
                return(player);
            }
            DnDBasicCharacterInfo basicInfo = player.BasicInfo;

            if (basicInfo.AbilityMods == null)
            {
                basicInfo.AbilityMods = new List <DnDAbilityModDescriptor>();
            }
            if (basicInfo.SkillMods == null)
            {
                basicInfo.SkillMods = new List <DnDSkillModDescriptor>();
            }
            player.BasicInfo = basicInfo;
            player.Migrated  = true;
            return(player);
        }