#==============================================================================
# ** RPG::Weapon
#==============================================================================
class RPG::Weapon
#============================================================================
# ** AutoStates
#============================================================================
module AutoStates
#--------------------------------------------------------------------------
# * Auto States
#
# @_auto_states = { weapon_id => [state_id, ...], ... }
# @_auto_states.default = [state_id, ...]
#--------------------------------------------------------------------------
@_auto_states = {}
@_auto_states.default = []
#------------------------------------------------------------------------
# * Auto State IDs
#------------------------------------------------------------------------
def self.[](id)
return @_auto_states[id]
end
#------------------------------------------------------------------------
# * Set Auto State IDs
#------------------------------------------------------------------------
def self.[]=(id, auto_states)
@_auto_states[id] = auto_states
end
#------------------------------------------------------------------------
# * Auto States
#------------------------------------------------------------------------
def self.auto_states
return @_auto_states
end
#------------------------------------------------------------------------
# * Set Auto States
#------------------------------------------------------------------------
def self.auto_states=(auto_states)
@_auto_states = auto_states
end
end
#--------------------------------------------------------------------------
# * Auto State IDs
#--------------------------------------------------------------------------
def auto_state_ids
return AutoStates[@id]
end
#--------------------------------------------------------------------------
# * Set Auto State IDs
#--------------------------------------------------------------------------
def auto_state_ids=(auto_states)
AutoStates[@id] = auto_states
end
end
#==============================================================================
# ** RPG::Armor
#==============================================================================
class RPG::Armor
#============================================================================
# ** AutoStates
#============================================================================
module AutoStates
#--------------------------------------------------------------------------
# * Auto States
#
# @_auto_states = { armor_id => [state_id, ...], ... }
# @_auto_states.default = [state_id, ...]
#--------------------------------------------------------------------------
@_auto_states = {}
@_auto_states.default = []
#------------------------------------------------------------------------
# * Auto State IDs
#------------------------------------------------------------------------
def self.[](id)
return @_auto_states[id]
end
#------------------------------------------------------------------------
# * Set Auto State IDs
#------------------------------------------------------------------------
def self.[]=(id, auto_states)
@_auto_states[id] = auto_states
end
#------------------------------------------------------------------------
# * Auto States
#------------------------------------------------------------------------
def self.auto_states
return @_auto_states
end
#------------------------------------------------------------------------
# * Set Auto States
#------------------------------------------------------------------------
def self.auto_states=(auto_states)
@_auto_states = auto_states
end
end
#--------------------------------------------------------------------------
# * Auto State IDs
#--------------------------------------------------------------------------
def auto_state_ids
return AutoStates[@id]
end
#--------------------------------------------------------------------------
# * Set Auto State IDs
#--------------------------------------------------------------------------
def auto_state_ids=(auto_states)
AutoStates[@id] = auto_states
end
end
#==============================================================================
# ** Game_Actor
#==============================================================================
class Game_Actor
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias_method :seph_multiequipmentautostates_gmactr_setup, :setup
alias_method :seph_multiequipmentautostates_gmactr_equip, :equip
#--------------------------------------------------------------------------
# * Setup
#--------------------------------------------------------------------------
def setup(actor_id)
# Original Setup
seph_multiequipmentautostates_gmactr_setup(actor_id)
# Update Auto States
update_auto_states(nil, $data_weapons[@weapon_id])
update_auto_states(nil, $data_armors[@armor1_id])
update_auto_states(nil, $data_armors[@armor2_id])
update_auto_states(nil, $data_armors[@armor3_id])
update_auto_states(nil, $data_armors[@armor4_id])
end
#--------------------------------------------------------------------------
# * Change Equipment
#--------------------------------------------------------------------------
def equip(equip_type, id)
# Branch By Equip Type
case equip_type
when 0 # Weapon
update_auto_states($data_weapons[@weapon_id], $data_weapons[id])
when 1 # Shield
update_auto_states($data_armors[@armor1_id], $data_armors[id])
when 2 # Head
update_auto_states($data_armors[@armor2_id], $data_armors[id])
when 3 # Accessory
update_auto_states($data_armors[@armor3_id], $data_armors[id])
when 4 # Armor
update_auto_states($data_armors[@armor4_id], $data_armors[id])
end
# Original Equip
seph_multiequipmentautostates_gmactr_equip(equip_type, id)
end
#--------------------------------------------------------------------------
# * Update Auto States
#--------------------------------------------------------------------------
def update_auto_states(old_equipment, new_equipment)
# If Non-nil old Equipment
unless old_equipment.nil?
# Pass Through Auto-States
old_equipment.auto_state_ids.each do |state_id|
# Remove State
remove_state(state_id, true)
end
end
# If Non-nil new Equipment
unless new_equipment.nil?
# Pass Through Auto-States
new_equipment.auto_state_ids.each do |state_id|
# Remove State
add_state(state_id, true)
end
end
end
end
#==============================================================================
# ** Scene_Save
#==============================================================================
class Scene_Save < Scene_File
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias_method :seph_multiequipmentautostates_gmactr_wsd, :write_save_data
#--------------------------------------------------------------------------
# * Write Save Data
#--------------------------------------------------------------------------
def write_save_data(file)
# Original Write Save Data
seph_multiequipmentautostates_gmactr_wsd(file)
# Dump Weapon & Armor Armor States
Marshal.dump(RPG::Weapon::AutoStates.auto_states, file)
Marshal.dump(RPG::Armor::AutoStates.auto_states, file)
end
end
#==============================================================================
# ** Scene_Load
#==============================================================================
class Scene_Load < Scene_File
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias_method :seph_multiequipmentautostates_gmactr_rsd, :read_save_data
#--------------------------------------------------------------------------
# * Read Save Data
#--------------------------------------------------------------------------
def read_save_data(file)
# Original Read Save Data
seph_multiequipmentautostates_gmactr_rsd(file)
# Dump Weapon & Armor Armor States
RPG::Weapon::AutoStates.auto_states = Marshal.load(file)
RPG::Armor::AutoStates.auto_states = Marshal.load(file)
end
end