Created
February 1, 2012 12:59
-
-
Save kl/1716887 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#============================================================================== | |
# | |
# ▼ Gamesfreak13563 - Item Stats Bonus | |
# -- Last Updated: 2011.12.27 | |
# | |
#============================================================================== | |
#============================================================================== | |
# ■ Options | |
#============================================================================== | |
module GF | |
module ITEMBONUS | |
DEFAULT_GROWTH ={ | |
# ParamID => [:param, +set], | |
0 => 0, # maxhp | |
1 => 0, # maxmp | |
2 => 0, # atk | |
3 => 0, # def | |
4 => 0, # mat | |
5 => 0, # mdf | |
6 => 0, # agi | |
7 => 0 # luk | |
} # Do not remove this. | |
end #ITEMBONUS | |
end #GF | |
#============================================================================== | |
# ■ Tags | |
#============================================================================== | |
module GF | |
module ITEMBONUS | |
module BASEITEM | |
GROWTH_SET = /<(.*):[ ]([\+\-]\d+)[ ](?:BONUS|bonus)>/i | |
end # BASEITEM | |
end # ITEMBONUS | |
end # GF | |
#=========================================================================== | |
# ■ DataManager | |
#=========================================================================== | |
module DataManager | |
#-------------------------------------------------------------------------- | |
# ● Loads the database | |
#-------------------------------------------------------------------------- | |
class << self | |
alias_method(:gf_itembonus_load_database, :load_database) unless $@ | |
end | |
def self.load_database | |
gf_itembonus_load_database | |
load_bonus_notetags | |
end | |
#-------------------------------------------------------------------------- | |
# ● Loads the note tags | |
#-------------------------------------------------------------------------- | |
def self.load_bonus_notetags | |
groups = [$data_weapons, $data_armors] | |
classes = [RPG::Weapon, RPG::Armor] | |
for group in groups | |
for obj in group | |
next if obj.nil? | |
obj.load_bonus_notetags if classes.include?(obj.class) | |
end | |
end | |
end | |
end | |
#========================================================================== | |
# ■ RPG::EquipItem | |
#========================================================================== | |
class RPG::EquipItem | |
#-------------------------------------------------------------------------- | |
# public instance variables | |
#-------------------------------------------------------------------------- | |
attr_reader :level_growth | |
#-------------------------------------------------------------------------- | |
# common cache: load_bonus_notetags | |
#-------------------------------------------------------------------------- | |
def load_bonus_notetags | |
@level_growth = GF::ITEMBONUS::DEFAULT_GROWTH.clone | |
#--- | |
self.note.split(/[\r\n]+/).each { |line| | |
case line | |
#--- | |
when GF::ITEMBONUS::BASEITEM::GROWTH_SET | |
case $1.upcase | |
when "MAXHP", "MHP", "HP" | |
type = 0 | |
when "MAXMP", "MMP", "MP", "MAXSP", "MSP", "SP" | |
type = 1 | |
when "ATK", "ATTACK" | |
type = 2 | |
when "DEF", "DEFENSE" | |
type = 3 | |
when "MAT", "MAGIC ATTACK", "INT", "INTELLIGENCE", "SPI", "SPIRIT" | |
type = 4 | |
when "MDF", "MAGIC DEFENSE", "RES", "RESISTANCE" | |
type = 5 | |
when "AGI", "AGILITY" | |
type = 6 | |
when "LUK", "LUCK" | |
type = 7 | |
else; next | |
end | |
@level_growth[type] = $2.to_i | |
end | |
} # self.note.split | |
#--- | |
end | |
end # RPG::Enemy | |
#========================================================================== | |
# ■ Game_Actor | |
#========================================================================== | |
class Game_Actor < Game_Battler | |
def level_up_sum | |
@equips.each do |slot| | |
next if slot.object.nil? | |
item = slot.object | |
(0..7).each do |stat| | |
add_param(stat, item.level_growth[stat]) | |
end | |
end | |
end | |
def level_up | |
@level += 1 | |
level_up_sum | |
self.class.learnings.each do |learning| | |
learn_skill(learning.skill_id) if learning.level == @level | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment