示例#1
0
        private void PerformSavingThrow(string stat, bool advantage, bool disadvantage)
        {
            string[] throws = c.GetSavingThrows();
            int      mod    = 0;

            mod += c.GetModifier(stat);

            if (throws[0] == stat || throws[1] == stat)
            {
                mod += c.GetProfiencyBonus();
            }

            if (advantage || disadvantage)
            {
                if (advantage)
                {
                    log.Write(stat + " SAVE: " + DiceThrower.ThrowDieAdvantage(20, mod, true));
                }
                else
                {
                    log.Write(stat + " SAVE: " + DiceThrower.ThrowDieAdvantage(20, mod, false));
                }
            }
            else
            {
                log.Write(stat + " SAVE: " + DiceThrower.ThrowDie(20, mod));
            }
        }
        public void Roll(string skillName, int mod)
        {
            int  bonus = 0;
            bool adv   = rbAdvantage.IsChecked.Value;
            bool dis   = rbDisadvantage.IsChecked.Value;

            if (tbBonus.Text != "")
            {
                try
                {
                    bonus = Convert.ToInt32(tbBonus.Text);
                }
                catch (Exception)
                {
                    MessageBox.Show("Invalid bonus.");
                }
            }

            mod += bonus;

            if (skillName == "Stealth")
            {
                if (stealthDis)
                {
                    if (!adv)
                    {
                        dis = true;
                    }
                    adv = false;
                }
            }

            if (adv)
            {
                p.log.Write(skillName + ": " + DiceThrower.ThrowDieAdvantage(20, mod, true));
            }
            else if (dis)
            {
                p.log.Write(skillName + ": " + DiceThrower.ThrowDieAdvantage(20, mod, false));
            }
            else
            {
                p.log.Write(skillName + ": " + DiceThrower.ThrowDie(20, mod));
            }

            this.Close();
        }
示例#3
0
        private void btnInitiative_Click(object sender, RoutedEventArgs e)
        {
            List <int> results = new List <int>();

            log.Write("Initiative Result: " + DiceThrower.ThrowDie(20, c.GetModifier("DEX")));
        }