// Max save possible is 1d20+36: +15 (stat) + 6 (120 skill) + 6 (120 skill) + 3 (luck) + 6 (120 chiv) public static bool SavingThrow( Mobile m, DDSave ddsave, int dc ) { int save = 0; switch( ddsave ) { case DDSave.Fort: { if ( m.Player ) save += m.Str / 10; else save += m.Str / 100; save += (int)(m.Skills[SkillName.Tactics].Value * 0.05); save += (int)(m.Skills[SkillName.Anatomy].Value * 0.05); break; } case DDSave.Refl: { if ( m.Player ) save += m.Dex / 10; else save += m.Dex / 100; save += (int)(m.Skills[SkillName.Stealth].Value * 0.05); save += (int)(m.Skills[SkillName.Stealing].Value * 0.05); break; } case DDSave.Will: { if ( m.Player ) save += m.Int / 10; else save += m.Int / 100; save += (int)(m.Skills[SkillName.MagicResist].Value * 0.05); save += (int)(m.Skills[SkillName.Meditation].Value * 0.05); break; } } if ( m.Luck > 1500 ) save += 3; else save += m.Luck / 500; save += (int)(m.Skills[SkillName.Chivalry].Value * 0.05); save += Utility.Random( 19 ) + 1; if ( !m.Player ) save += (m.Fame / 2) / 1000; return save >= dc; }
// Max save possible is 1d20+36: +15 (stat) + 6 (120 skill) + 6 (120 skill) + 3 (luck) + 6 (120 chiv) public static bool SavingThrow(Mobile m, DDSave ddsave, int dc) { int save = 0; switch (ddsave) { case DDSave.Fort: { if (m.Player) { save += m.Str / 10; } else { save += m.Str / 100; } save += (int)(m.Skills[SkillName.Tactics].Value * 0.05); save += (int)(m.Skills[SkillName.Anatomy].Value * 0.05); break; } case DDSave.Refl: { if (m.Player) { save += m.Dex / 10; } else { save += m.Dex / 100; } save += (int)(m.Skills[SkillName.Stealth].Value * 0.05); save += (int)(m.Skills[SkillName.Stealing].Value * 0.05); break; } case DDSave.Will: { if (m.Player) { save += m.Int / 10; } else { save += m.Int / 100; } save += (int)(m.Skills[SkillName.MagicResist].Value * 0.05); save += (int)(m.Skills[SkillName.Meditation].Value * 0.05); break; } } if (m.Luck > 1500) { save += 3; } else { save += m.Luck / 500; } save += (int)(m.Skills[SkillName.Chivalry].Value * 0.05); save += Utility.Random(19) + 1; if (!m.Player) { save += (m.Fame / 2) / 1000; } return(save >= dc); }