public DiceRoll(DiceRollKind kind = DiceRollKind.Normal, string damageDice = "") { DamageDice = damageDice; Kind = kind; ThrowPower = 1.0; MinCrit = 20; // Some feats allow for a 19 to crit. SuccessMessage = "Success!"; FailMessage = "Fail!"; CritFailMessage = "Critical Fail!"; CritSuccessMessage = "Critical Success!"; }
private DiceRoll PrepareRoll(DiceRollType type) { DiceRollKind diceRollKind = DiceRollKind.Normal; if (CanIncludeVantageDice(type)) { if (rbTestAdvantageDieRoll.IsChecked == true) { diceRollKind = DiceRollKind.Advantage; } else if (rbTestDisadvantageDieRoll.IsChecked == true) { diceRollKind = DiceRollKind.Disadvantage; } } string damageDice = string.Empty; if (IsAttack(type) || type == DiceRollType.DamageOnly || type == DiceRollType.HealthOnly) { damageDice = tbxDamageDice.Text; } DiceRoll diceRoll = new DiceRoll(diceRollKind, damageDice); diceRoll.CritFailMessage = ""; diceRoll.CritSuccessMessage = ""; diceRoll.SuccessMessage = ""; diceRoll.FailMessage = ""; switch (type) { case DiceRollType.SkillCheck: diceRoll.CritFailMessage = "COMPLETE FAILURE!"; diceRoll.CritSuccessMessage = "Nat 20!"; diceRoll.SuccessMessage = "Success!"; diceRoll.FailMessage = "Fail!"; break; case DiceRollType.Attack: case DiceRollType.ChaosBolt: diceRoll.CritFailMessage = "SPECTACULAR MISS!"; diceRoll.CritSuccessMessage = "Critical Hit!"; diceRoll.SuccessMessage = "Hit!"; diceRoll.FailMessage = "Miss!"; break; case DiceRollType.SavingThrow: diceRoll.CritFailMessage = "COMPLETE FAILURE!"; diceRoll.CritSuccessMessage = "Critical Success!"; diceRoll.SuccessMessage = "Success!"; diceRoll.FailMessage = "Fail!"; break; case DiceRollType.DeathSavingThrow: diceRoll.CritFailMessage = "COMPLETE FAILURE!"; diceRoll.CritSuccessMessage = "Critical Success!"; diceRoll.SuccessMessage = "Success!"; diceRoll.FailMessage = "Fail!"; break; } diceRoll.ThrowPower = new Random().Next() * 2; if (diceRoll.ThrowPower < 0.3) { diceRoll.ThrowPower = 0.3; } if (double.TryParse(tbxModifier.Text, out double modifierResult)) { diceRoll.Modifier = modifierResult; } if (double.TryParse(tbxHiddenThreshold.Text, out double thresholdResult)) { diceRoll.HiddenThreshold = thresholdResult; } diceRoll.IsMagic = ckbUseMagic.IsChecked == true && IsAttack(type); diceRoll.Type = type; return(diceRoll); }
public DiceRoll(DiceRollKind kind = DiceRollKind.Normal, string damageDice = "") { DamageDice = damageDice; Kind = kind; ThrowPower = 1.0; }