=begin #=============================================================================== Title: Equip Param Formulas Author: Hime Date: Mar 15, 2014 URL: http://www.himeworks.com/2014/03/15/equip-param-formulas/ -------------------------------------------------------------------------------- ** Change log Mar 15, 2014 - Initial release -------------------------------------------------------------------------------- ** Terms of Use * Free to use in non-commercial projects * Contact me for commercial use * No real support. The script is provided as-is * Will do bug fixes, but no compatibility patches * Features may be requested but no guarantees, especially if it is non-trivial * Credits to Hime Works in your project * Preserve this header -------------------------------------------------------------------------------- ** Description This script allows you to use formulas to define parameters for weapons and armors. For example, if you were using a script that provided equip levels, you can define a formula that uses the level to determine the weapon's parameters. All attributes that the equip holds can be referenced. Formula variables are also available to use. -------------------------------------------------------------------------------- ** Installation Place this script below Materials and above Main -------------------------------------------------------------------------------- ** Usage To specify a parameter formula, note-tag a weapon or armor with FORMULA Where the TYPE is one of mhp - Max HP mmp - Max MP atk - Attack Power def - Defense Power mat - Magic Attack Power mdf - Magic Defense Power agi - Agility luk - Luck The formula can be any valid formula that returns a number The following formula variables are available p - game party t - game troop s - game switches v - game variables #=============================================================================== =end $imported = {} if $imported.nil? $imported[:TH_EquipParamFormulas] = true #=============================================================================== # ** Configuration #=============================================================================== module TH module Equip_Param_Formulas Ext_Regex = /(.*?)<\/param[-_ ]formula>/im Param_Table = { :mhp => 0, :mmp => 1, :atk => 2, :def => 3, :mat => 4, :mdf => 5, :agi => 6, :luk => 7 } end end #=============================================================================== # ** Rest of Script #=============================================================================== module RPG class EquipItem #--------------------------------------------------------------------------- # Not the most efficient way to do it but it preserves the interface #--------------------------------------------------------------------------- def params load_notetag_param_formulas unless @param_formulas_checked return @param_formulas.collect {|f| eval_param_formula(f)} end def eval_param_formula(formula, p=$game_party, s=$game_switches, t=$game_troop, v=$game_variables) eval(formula) end def load_notetag_param_formulas @param_formulas_checked = true @param_formulas = @params.map {|val| val.to_s } results = self.note.scan(TH::Equip_Param_Formulas::Ext_Regex) results.each do |res| type = res[0].strip.downcase.to_sym id = TH::Equip_Param_Formulas::Param_Table[type] formula = res[1] @param_formulas[id] = formula end end end end