# Slip Damage Ex - by 허걱
#
# - 한 턴이 지날 때 입는 슬립 데미지의 계산식을 상태별로 적용합니다.
# (슬립데미지 속성이 있는 상태에만 적용됩니다.)
#
# 상태의 메모부분에 <s_value X> 를 적어주면 됩니다.
# X : 값 (또는 계산 식)
#
# 예>
# <s_value 10>
# <s_value maxhp*0.1>
#
# 새로운 스크립트 섹션을 추가 후 본문의 모든 내용을 추가합니다.
class Game_Battler
OVERLAP_DAMAGE = false # 데미지 중복 설정 true / false
# true 일 경우 모든 슬립데미지 적용
# false 일 경우 가장 높은 데미지 적용
DEFAULT_SLIP_DAMAGE = "maxhp * 0.05" # 기본 데미지 값
SLIP_DAMAGE_STRING = "<s_value (.*)>" # 메모장에 적을 문자열 - (.*) 부분 수정금지
#--------------------------------------------------------------------------
# ● 슬립 데미지의 효과 적용 - 재정의
#--------------------------------------------------------------------------
def slip_damage_effect
if slip_damage? and @hp > 0
@hp_damage = apply_variance(get_slip_damage_value, 10)
@hp_damage = @hp - 1 if @hp_damage >= @hp
self.hp -= @hp_damage
end
end
#--------------------------------------------------------------------------
# ● 슬립 데미지의 적용값 취득
#--------------------------------------------------------------------------
def get_slip_damage_value
val_list = []
for state in states
next unless state.slip_damage
if state.note =~ /#{SLIP_DAMAGE_STRING}/
val_list.push($1)
end
end
if val_list.empty?
value = eval(DEFAULT_SLIP_DAMAGE)
else
value = 0
val_list.each {|val|
new_value = eval(val)
if OVERLAP_DAMAGE
value += new_value
else
value = new_value if value < new_value
end
}
end
return value.to_i
end
end