Professional Documents
Culture Documents
end
def self.mult_lvl_stat_regex(param_id)
/<mult[-_ ]?level[-_ ]?#{Selchar::Param[param_id]}:\s*(.*)\s*>/i
end
Price_Static_Regex = /<static[-_ ]?level[-_ ]?price:\s*(.*)\s*>/i
Price_Mult_Regex = /<mult[-_ ]?level[-_ ]?price:\s*(.*)\s*>/i
end
end
#===============================================================================
# Rest of the Script
#===============================================================================
module Selchar
Param = ['mhp','mmp','atk','def','mat','mdf','agi','luk','mtp']
end
$imported = {} if $imported.nil?
$imported[:Sel_Equip_Leveling_Base] = true
unless $imported["TH_InstanceItems"]
msgbox("Tsukihime's Instance not detected, exiting")
exit
end
#===============================================================================
# Equip Methods
#===============================================================================
class RPG::EquipItem
attr_accessor :level
def level
@level ||= 0
end
#Call this to increase an equip's level
def level_up
return unless can_level
return if @level == @max_level
@level += 1
level_update
end
#Call this to decrease an equip's level
def level_down
return if @level.zero?
@level -= 1
level_update
end
#Unnecessary?
def level_update
refresh
end
#===============================================================================
# Renaming/Param/Price Adjusting
#===============================================================================
def apply_level_suffix(name)
name += TH_Instance::Equip::Level_Prefix % [@level]
end
alias :sel_equip_levels_make_name :make_name
def make_name(name)
name = sel_equip_levels_make_name(name)
name = apply_level_suffix(name) if can_level && level > 0
name
end
def apply_level_params(params)
@level.times do
(0..7).each do |i|
params[i] = (params[i] * instance_mult_lvl_bonus(i)).to_i
params[i] += instance_static_lvl_bonus(i)
end
end
return params
end
alias :sel_equip_levels_make_params :make_params
def make_params(params)
params = sel_equip_levels_make_params(params)
params = apply_level_params(params) if can_level && @level > 0
params
end
alias :sel_equip_levels_make_price :make_price
def make_price(price)
price = sel_equip_levels_make_price(price)
price = apply_level_price(price) if can_level && @level > 0
price
end
def apply_level_price(price)
@level.times do
price = (price * instance_mult_price_mod).to_i
price += instance_static_price_mod
end
price
end
#===============================================================================
# Equip Notetag
#===============================================================================
def max_level
@note =~ /<max[-_ ]?level:\s*(.*)\s*>/i ? @max_level = $1.to_i : @max_level
= TH_Instance::Equip::Default_Max_Level if @max_level.nil?
@max_level
end
def can_level
if @can_level.nil?
cl = TH_Instance::Equip::Default_Can_Level
@note =~ /<can[-_ ]?level>/i ? @can_level = !cl : @can_level = cl
end
@can_level
end
def instance_static_lvl_bonus(param_id)
if @instance_static_lvl_bonus.nil?
@instance_static_lvl_bonus = []
(0..8).each do |i|
if @note =~ TH_Instance::Equip.static_lvl_stat_regex(i)
@instance_static_lvl_bonus[i] = $1.to_i
else
@instance_static_lvl_bonus[i] = 0
end
end
end
@instance_static_lvl_bonus[param_id]
end
def instance_mult_lvl_bonus(param_id)
if @instance_mult_lvl_bonus.nil?
@instance_mult_lvl_bonus = []
(0..8).each do |i|
if @note =~ TH_Instance::Equip.mult_lvl_stat_regex(i)
@instance_mult_lvl_bonus[i] = $1.to_f
else
@instance_mult_lvl_bonus[i] = TH_Instance::Equip::Default_Mult_Bonus
end
end
end
@instance_mult_lvl_bonus[param_id]
end
def instance_static_price_mod
@note =~ TH_Instance::Equip::Price_Static_Regex ? @instance_static_price_mod
= $1.to_i : @instance_static_price_mod = 0 if @instance_static_price_mod.nil?
@instance_static_price_mod
end
def instance_mult_price_mod
@note =~ TH_Instance::Equip::Price_Mult_Regex ? @instance_mult_price_mod = $
1.to_f : @instance_mult_price_mod = TH_Instance::Equip::Default_Mult_Price if @i
nstance_mult_price_mod.nil?
@instance_mult_price_mod
end
end
#===============================================================================
# Instance Manager: setup_instance
#===============================================================================
module InstanceManager
class << self
alias :instance_equip_level_setup :setup_equip_instance
end
def self.setup_equip_instance(obj)
obj.level = 0
obj.max_level
instance_equip_level_setup(obj)
end
end
#===============================================================================
# End of File
#===============================================================================