public static ReturnTypes spell_acid_blast(int sn, int level, CharacterInstance ch, object vo) { var victim = vo.CastAs <CharacterInstance>(); var damage = SmaugRandom.D6(level); if (victim.SavingThrows.CheckSaveVsSpellStaff(level, victim)) { damage /= 2; } return(ch.CauseDamageTo(victim, damage, sn)); }
public static ReturnTypes spell_black_hand(int sn, int level, CharacterInstance ch, object vo) { var lvl = 0.GetHighestOfTwoNumbers(level); lvl = 5.GetLowestOfTwoNumbers(lvl); var dam = (int)(1.3f * (lvl * SmaugRandom.D6() + 3)); var victim = (CharacterInstance)vo; if (victim.SavingThrows.CheckSaveVsSpellStaff(lvl, victim)) { dam /= 4; } return(ch.CauseDamageTo(victim, dam, sn)); }
public static ReturnTypes spell_caustic_fount(int sn, int level, CharacterInstance ch, object vo) { var victim = (CharacterInstance)vo; var lvl = 0.GetHighestOfTwoNumbers(level); lvl = 42.GetLowestOfTwoNumbers(lvl); var damage = (int)(1.3f * (2 * lvl * SmaugRandom.D6() - 31)); damage = 0.GetHighestOfTwoNumbers(damage); if (victim.SavingThrows.CheckSaveVsSpellStaff(lvl, victim)) { damage = damage * 1 / 2; } return(ch.CauseDamageTo(victim, damage, sn)); }