Skip to content

Instantly share code, notes, and snippets.

@kl
Created February 1, 2012 12:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kl/1716887 to your computer and use it in GitHub Desktop.
Save kl/1716887 to your computer and use it in GitHub Desktop.
#==============================================================================
#
# ▼ 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