/** * Returns the to-hit modifier of the weapon at the given range. This is only weapon-specific, it * does not account for target or firer movement, or other modifiers. If the weapon cannot hit at * the given range, we return 12. * * @param w The weapon in question. * @param range The range that the weapon will be hitting a target at. * @return The to-hit modifier for the weapon at the given range. */ public static int GetToHitAtRange(ifWeapon w, int range) { if (range > w.GetRangeLong()) { return 12; } else if (range > w.GetRangeMedium()) { return 4 + w.GetToHitLong(); } else if (range > w.GetRangeShort()) { return 2 + w.GetToHitMedium(); } else { if (range <= w.GetRangeMin() && w.GetRangeMin() > 0) { int min = w.GetRangeMin() - range + 1; return 0 + min + w.GetToHitShort(); } else { return 0 + w.GetToHitShort(); } } }