#sb:nap_min_dmg [battle]=beginAuthor: NapoleonVersion: 1.01About: Both you and enemies now always deal a minimum damage (percentage) when dealing damage. This is to prevent doing 0 damage or just not enough damage when an ally/enemy has just too much defense.Note: When dealing percentage damage the percentage is based on a single attack/magic damage * percentage. And not "attack x4" for example.License: CC3 (But attribution is not required).=end$imported ||= {}$imported[:nap_min_damage] = 1.01#===============================================================================# Settings#===============================================================================module Nap; module Battle MIN_DMG_PERC = 0.25 # A value between 0.0 and 1.0 MIN_DMG = 1 # The absolute minimum amount of damage dealt no matter whatend; end#===============================================================================# RPG::UsableItem:

amage# For: Never deal less than Nap::Battle::MIN_DMG damage for a damaging-ability#===============================================================================class RPG::UsableItem:

amage alias nap_min_dmg_eval eval def eval(a, b, v) damage = nap_min_dmg_eval(a, b, v) # if-check is required because HP/MP Recovery is a negative value. damage >= 0 ? [damage, Nap::Battle::MIN_DMG].max : damage endend#===============================================================================# Game Battler# For: To ensure to deal a minimum amount of damage (in %) when the target's# defense is too high (part 1/2).#===============================================================================class Game_Battler < Game_BattlerBase #----------------------------------------------------------------------------- # Make Damage Value [ALIAS] #----------------------------------------------------------------------------- alias nap_min_dmg_perc_make_damage_value make_damage_value def make_damage_value(user, item) $nap_temp_battle_user = user nap_min_dmg_perc_make_damage_value(user, item) endend#===============================================================================# Game Action Result# For: To ensure to deal a minimum amount of damage (in %) when the target's# defense is too high (part 2/2).#===============================================================================class Game_ActionResult #----------------------------------------------------------------------------- # Make Damage [ALIAS] #----------------------------------------------------------------------------- alias nap_min_dmg_perc_make_damage make_damage def make_damage(value, item) user = $nap_temp_battle_user $nap_temp_battle_user = nil # Return normally if it's a hp/mp recovery. return nap_min_dmg_perc_make_damage(value.to_i, item) if item.damage.type.between?(3, 4) if ((item.physical?) || item.certain?) && (value <= (user.atk * Nap::Battle::MIN_DMG_PERC)) value = (user.atk * Nap::Battle::MIN_DMG_PERC) elsif value <= (user.mat * Nap::Battle::MIN_DMG_PERC) value = (user.mat * Nap::Battle::MIN_DMG_PERC) end nap_min_dmg_perc_make_damage(value.to_i, item) endend#===============================================================================