Code:
#==============================================================================
# Slip SP Damage
#==============================================================================
#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#==============================================================================
class Scene_Battle
alias refresh_sp_phase refresh_phase
def refresh_phase(battler)
if battler.sp > 0 and battler.slip_sp_damage?
battler.slip_sp_damage_effect
battler.damage_pop["slip_sp"] = true
end
refresh_sp_phase(battler)
end
end
#==============================================================================
# ** Game_Battler
#------------------------------------------------------------------------------
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# * Effective application of slip sp damage
#--------------------------------------------------------------------------
def slip_sp_damage_effect
# Setting the damage
self.damage_sp["slip_sp"] = self.maxsp / 10
# Dispersion
if self.damage_sp["slip_sp"].abs > 0
amp = [self.damage_sp["slip_sp"].abs * 15 / 100, 1].max
self.damage_sp["slip_sp"] += rand(amp+1) + rand(amp+1) - amp
end
# From SP damage subtraction
self.sp -= self.damage_sp["slip_sp"]
# Method end
return true
end
#--------------------------------------------------------------------------
# * Determine [Slip Sp Damage] States
#--------------------------------------------------------------------------
def slip_sp_damage?
for i in @states
if $data_states[i].id == 3#<=================== Slip state id
return true
end
end
return false
end
end
#==============================================================================
# ** Game_Party
#------------------------------------------------------------------------------
#==============================================================================
class Game_Party
alias map_slip_sp_damage check_map_slip_damage
#--------------------------------------------------------------------------
# * Slip Damage Check (for map)
#--------------------------------------------------------------------------
def check_map_slip_damage
for actor in @actors
if actor.sp > 0 and actor.slip_sp_damage?
actor.sp -= [actor.maxsp / 100, 1].max
$game_screen.start_flash(Color.new(255,0,0,128), 4)
end
end
map_slip_sp_damage
end
end