private static void PrepareForSavingThrow(DiceRoll diceRoll, int dieOwnerId, string rollData, ref string dieBackColorOverride, ref string dieTextColorOverride, ref double modifier, ref string diePlayerName, ref double scaleOverride, ref int dieOwnerOverride) { Ability savingThrowAbility = DndUtils.ToAbility(rollData); if (savingThrowAbility == Ability.none) { return; } // We have a saving throw! Creature targetCreature = DndUtils.GetCreatureById(dieOwnerId); if (targetCreature == null) { return; } dieOwnerOverride = dieOwnerId; diePlayerName = targetCreature.Name; if (scaleOverride > 1) { scaleOverride = 1; // Player dice are always thrown at no more than 100% scale. } modifier = targetCreature.GetSavingThrowModifier(savingThrowAbility); dieBackColorOverride = GetDieBackColor(targetCreature); dieTextColorOverride = GetDieTextColor(targetCreature, dieBackColorOverride); diceRoll.SavingThrow = savingThrowAbility; diceRoll.Type = DiceRollType.DamagePlusSavingThrow; diceRoll.HiddenThreshold = INT_ViewerSpellCasterDC; diceRoll.TrailingEffects.Clear(); // No viewer trailing effects on saving throws. diceRoll.DieTotalMessage = ""; }
public bool Matches(string message) { testAllPlayers = false; Match match = Regex.Match(message, @"^sv\s+(\w+)" + PlayerSpecifier); if (match.Success) { SetTargetPlayer(match.Groups); abilityToTest = DndUtils.ToAbility(match.Groups[1].Value); return(abilityToTest != Ability.none); } match = Regex.Match(message, @"^svs\s+(\w+)$"); if (match.Success) { testSelectedPlayers = true; abilityToTest = DndUtils.ToAbility(match.Groups[1].Value); return(abilityToTest != Ability.none); } match = Regex.Match(message, @"^sva\s+(\w+)$"); if (match.Success) { testAllPlayers = true; abilityToTest = DndUtils.ToAbility(match.Groups[1].Value); return(abilityToTest != Ability.none); } return(false); }
public void TestStringToAbilityConversion() { Assert.AreEqual(Ability.dexterity | Ability.intelligence, DndUtils.ToAbility("dexterity,intelligence")); Assert.AreEqual(Ability.dexterity | Ability.intelligence, DndUtils.ToAbility("Intelligence,Dexterity")); Assert.AreEqual(Ability.charisma | Ability.constitution | Ability.dexterity | Ability.intelligence | Ability.strength, DndUtils.ToAbility("Charisma, constitution ,Dexterity, Intelligence , Strength")); Assert.AreEqual(Ability.constitution, DndUtils.ToAbility("Constitution")); Assert.AreEqual(Ability.strength, DndUtils.ToAbility("strength")); }
public bool Matches(string message) { Match match = Regex.Match(message, @"^sv\s+(\w+)$"); if (match.Success) { abilityToTest = DndUtils.ToAbility(match.Groups[1].Value); return(abilityToTest != Ability.None); } return(false); }
public bool Matches(string message) { testAllPlayers = false; Match match = Regex.Match(message, @"^sv\s+(\w+)$"); if (match.Success) { abilityToTest = DndUtils.ToAbility(match.Groups[1].Value); return(abilityToTest != Ability.none); } match = Regex.Match(message, @"^sva\s+(\w+)$"); if (match.Success) { testAllPlayers = true; abilityToTest = DndUtils.ToAbility(match.Groups[1].Value); return(abilityToTest != Ability.none); } return(false); }
Ability GetSpellCastingAbility() { return(DndUtils.ToAbility(statSpellcastingAbility.Text)); }