1026 lines
22 KiB
Ruby
1026 lines
22 KiB
Ruby
#===============================================================================
|
|
# Filename: rgss_internal.rb
|
|
#
|
|
# Developer: Raku (rakudayo@gmail.com)
|
|
#
|
|
# Description: This file contains Ruby implementations of the RGSS Built-in
|
|
# classes Table, Color, and Tone. These classes are required to load and
|
|
# dump the .rxdata files used by RMXP to store game data.
|
|
#===============================================================================
|
|
# These classes are based on the version provided by vgvgf on the RMXP.org
|
|
# forums at the link below. Thanks vgvgf!!
|
|
#
|
|
# http://www.rmxp.org/forums/viewtopic.php?t=49838
|
|
#
|
|
# I have modified them to more closely mimic the behavior of the RGSS Built-in
|
|
# classes Table, Color, and Tone. When these classes are dumped by the
|
|
# importer/exporter scripts, they can now be correctly read by RMXP.
|
|
#===============================================================================
|
|
|
|
class Table
|
|
def initialize(x, y = 0, z = 0)
|
|
@dim = 1 + (y > 0 ? 1 : 0) + (z > 0 ? 1 : 0)
|
|
@xsize, @ysize, @zsize = x, [y, 1].max, [z, 1].max
|
|
@data = Array.new(x * y * z, 0)
|
|
end
|
|
def [](x, y = 0, z = 0)
|
|
@data[x + y * @xsize + z * @xsize * @ysize]
|
|
end
|
|
def []=(*args)
|
|
x = args[0]
|
|
y = args.size > 2 ? args[1] : 0
|
|
z = args.size > 3 ? args[2] : 0
|
|
v = args.pop
|
|
@data[x + y * @xsize + z * @xsize * @ysize] = v
|
|
end
|
|
def _dump(d = 0)
|
|
[@dim, @xsize, @ysize, @zsize, @xsize * @ysize * @zsize].pack('LLLLL') <<
|
|
@data.pack("S#{@xsize * @ysize * @zsize}")
|
|
end
|
|
def self._load(s)
|
|
size, nx, ny, nz, items = *s[0, 20].unpack('LLLLL')
|
|
t = Table.new(*[nx, ny, nz][0,size])
|
|
t.data = s[20, items * 2].unpack("S#{items}")
|
|
t
|
|
end
|
|
attr_accessor(:xsize, :ysize, :zsize, :data)
|
|
end
|
|
|
|
class Color
|
|
def initialize(r, g, b, a = 255.0)
|
|
self.red = r.to_f
|
|
self.green = g.to_f
|
|
self.blue = b.to_f
|
|
self.alpha = a.to_f
|
|
end
|
|
def set(r, g, b, a = 255.0)
|
|
self.red = r.to_f
|
|
self.green = g.to_f
|
|
self.blue = b.to_f
|
|
self.alpha = a.to_f
|
|
end
|
|
attr_reader(:red, :green, :blue, :alpha)
|
|
def red=(val)
|
|
@red = [[val.to_f, 0.0].max, 255.0].min
|
|
end
|
|
def green=(val)
|
|
@green = [[val.to_f, 0.0].max, 255.0].min
|
|
end
|
|
def blue=(val)
|
|
@blue = [[val.to_f, 0.0].max, 255.0].min
|
|
end
|
|
def alpha=(val)
|
|
@alpha = [[val.to_f, 0.0].max, 255.0].min
|
|
end
|
|
def color
|
|
Color.new(@red, @green, @blue, @alpha)
|
|
end
|
|
def _dump(d = 0)
|
|
[@red, @green, @blue, @alpha].pack('d4')
|
|
end
|
|
def self._load(s)
|
|
Color.new(*s.unpack('d4'))
|
|
end
|
|
end
|
|
|
|
class Tone
|
|
def initialize(r, g, b, a = 0.0)
|
|
self.red = r.to_f
|
|
self.green = g.to_f
|
|
self.blue = b.to_f
|
|
self.gray = a.to_f
|
|
end
|
|
def set(r, g, b, a = 0.0)
|
|
self.red = r.to_f
|
|
self.green = g.to_f
|
|
self.blue = b.to_f
|
|
self.gray = a.to_f
|
|
end
|
|
def color
|
|
Color.new(@red, @green, @blue, @gray)
|
|
end
|
|
def _dump(d = 0)
|
|
[@red, @green, @blue, @gray].pack('d4')
|
|
end
|
|
def self._load(s)
|
|
Tone.new(*s.unpack('d4'))
|
|
end
|
|
attr_reader(:red, :green, :blue, :gray)
|
|
def red=(val)
|
|
@red = [[val.to_f, -255.0].max, 255.0].min
|
|
end
|
|
def green=(val)
|
|
@green = [[val.to_f, -255.0].max, 255.0].min
|
|
end
|
|
def blue=(val)
|
|
@blue = [[val.to_f, -255.0].max, 255.0].min
|
|
end
|
|
def gray=(val)
|
|
@gray = [[val.to_f, 0.0].max, 255.0].min
|
|
end
|
|
end
|
|
|
|
|
|
#===============================================================================
|
|
# Filename: rgss_rpg.rb
|
|
#
|
|
# Description: This file contains the default implementations of all of the
|
|
# RGSS classes in the RPG module. They are needed here because we use them
|
|
# outside of RMXP to dump and load the .rxdata files.
|
|
#===============================================================================
|
|
|
|
module RPG
|
|
class Actor
|
|
def initialize
|
|
@id = 0
|
|
@name = ""
|
|
@class_id = 1
|
|
@initial_level = 1
|
|
@final_level = 99
|
|
@exp_basis = 30
|
|
@exp_inflation = 30
|
|
@character_name = ""
|
|
@character_hue = 0
|
|
@battler_name = ""
|
|
@battler_hue = 0
|
|
@parameters = Table.new(6,100)
|
|
for i in 1..99
|
|
@parameters[0,i] = 500+i*50
|
|
@parameters[1,i] = 500+i*50
|
|
@parameters[2,i] = 50+i*5
|
|
@parameters[3,i] = 50+i*5
|
|
@parameters[4,i] = 50+i*5
|
|
@parameters[5,i] = 50+i*5
|
|
end
|
|
@weapon_id = 0
|
|
@armor1_id = 0
|
|
@armor2_id = 0
|
|
@armor3_id = 0
|
|
@armor4_id = 0
|
|
@weapon_fix = false
|
|
@armor1_fix = false
|
|
@armor2_fix = false
|
|
@armor3_fix = false
|
|
@armor4_fix = false
|
|
end
|
|
attr_accessor :id
|
|
attr_accessor :name
|
|
attr_accessor :class_id
|
|
attr_accessor :initial_level
|
|
attr_accessor :final_level
|
|
attr_accessor :exp_basis
|
|
attr_accessor :exp_inflation
|
|
attr_accessor :character_name
|
|
attr_accessor :character_hue
|
|
attr_accessor :battler_name
|
|
attr_accessor :battler_hue
|
|
attr_accessor :parameters
|
|
attr_accessor :weapon_id
|
|
attr_accessor :armor1_id
|
|
attr_accessor :armor2_id
|
|
attr_accessor :armor3_id
|
|
attr_accessor :armor4_id
|
|
attr_accessor :weapon_fix
|
|
attr_accessor :armor1_fix
|
|
attr_accessor :armor2_fix
|
|
attr_accessor :armor3_fix
|
|
attr_accessor :armor4_fix
|
|
end
|
|
|
|
class Animation
|
|
def initialize
|
|
@id = 0
|
|
@name = ""
|
|
@animation_name = ""
|
|
@animation_hue = 0
|
|
@position = 1
|
|
@frame_max = 1
|
|
@frames = [RPG::Animation::Frame.new]
|
|
@timings = []
|
|
end
|
|
attr_accessor :id
|
|
attr_accessor :name
|
|
attr_accessor :animation_name
|
|
attr_accessor :animation_hue
|
|
attr_accessor :position
|
|
attr_accessor :frame_max
|
|
attr_accessor :frames
|
|
attr_accessor :timings
|
|
|
|
class Frame
|
|
def initialize
|
|
@cell_max = 0
|
|
@cell_data = Table.new(0, 0)
|
|
end
|
|
attr_accessor :cell_max
|
|
attr_accessor :cell_data
|
|
end
|
|
|
|
class Timing
|
|
def initialize
|
|
@frame = 0
|
|
@se = RPG::AudioFile.new("", 80)
|
|
@flash_scope = 0
|
|
@flash_color = Color.new(255,255,255,255)
|
|
@flash_duration = 5
|
|
@condition = 0
|
|
end
|
|
attr_accessor :frame
|
|
attr_accessor :se
|
|
attr_accessor :flash_scope
|
|
attr_accessor :flash_color
|
|
attr_accessor :flash_duration
|
|
attr_accessor :condition
|
|
end
|
|
end
|
|
|
|
class Armor
|
|
def initialize
|
|
@id = 0
|
|
@name = ""
|
|
@icon_name = ""
|
|
@description = ""
|
|
@kind = 0
|
|
@auto_state_id = 0
|
|
@price = 0
|
|
@pdef = 0
|
|
@mdef = 0
|
|
@eva = 0
|
|
@str_plus = 0
|
|
@dex_plus = 0
|
|
@agi_plus = 0
|
|
@int_plus = 0
|
|
@guard_element_set = []
|
|
@guard_state_set = []
|
|
end
|
|
attr_accessor :id
|
|
attr_accessor :name
|
|
attr_accessor :icon_name
|
|
attr_accessor :description
|
|
attr_accessor :kind
|
|
attr_accessor :auto_state_id
|
|
attr_accessor :price
|
|
attr_accessor :pdef
|
|
attr_accessor :mdef
|
|
attr_accessor :eva
|
|
attr_accessor :str_plus
|
|
attr_accessor :dex_plus
|
|
attr_accessor :agi_plus
|
|
attr_accessor :int_plus
|
|
attr_accessor :guard_element_set
|
|
attr_accessor :guard_state_set
|
|
end
|
|
|
|
class AudioFile
|
|
def initialize(name = "", volume = 100, pitch = 100)
|
|
@name = name
|
|
@volume = volume
|
|
@pitch = pitch
|
|
end
|
|
attr_accessor :name
|
|
attr_accessor :volume
|
|
attr_accessor :pitch
|
|
end
|
|
|
|
class Class
|
|
def initialize
|
|
@id = 0
|
|
@name = ""
|
|
@position = 0
|
|
@weapon_set = []
|
|
@armor_set = []
|
|
@element_ranks = Table.new(1)
|
|
@state_ranks = Table.new(1)
|
|
@learnings = []
|
|
end
|
|
attr_accessor :id
|
|
attr_accessor :name
|
|
attr_accessor :position
|
|
attr_accessor :weapon_set
|
|
attr_accessor :armor_set
|
|
attr_accessor :element_ranks
|
|
attr_accessor :state_ranks
|
|
attr_accessor :learnings
|
|
|
|
class Learning
|
|
def initialize
|
|
@level = 1
|
|
@skill_id = 1
|
|
end
|
|
attr_accessor :level
|
|
attr_accessor :skill_id
|
|
end
|
|
end
|
|
|
|
class CommonEvent
|
|
def initialize
|
|
@id = 0
|
|
@name = ""
|
|
@trigger = 0
|
|
@switch_id = 1
|
|
@list = [RPG::EventCommand.new]
|
|
end
|
|
attr_accessor :id
|
|
attr_accessor :name
|
|
attr_accessor :trigger
|
|
attr_accessor :switch_id
|
|
attr_accessor :list
|
|
end
|
|
|
|
class Enemy
|
|
def initialize
|
|
@id = 0
|
|
@name = ""
|
|
@battler_name = ""
|
|
@battler_hue = 0
|
|
@maxhp = 500
|
|
@maxsp = 500
|
|
@str = 50
|
|
@dex = 50
|
|
@agi = 50
|
|
@int = 50
|
|
@atk = 100
|
|
@pdef = 100
|
|
@mdef = 100
|
|
@eva = 0
|
|
@animation1_id = 0
|
|
@animation2_id = 0
|
|
@element_ranks = Table.new(1)
|
|
@state_ranks = Table.new(1)
|
|
@actions = [RPG::Enemy::Action.new]
|
|
@exp = 0
|
|
@gold = 0
|
|
@item_id = 0
|
|
@weapon_id = 0
|
|
@armor_id = 0
|
|
@treasure_prob = 100
|
|
end
|
|
attr_accessor :id
|
|
attr_accessor :name
|
|
attr_accessor :battler_name
|
|
attr_accessor :battler_hue
|
|
attr_accessor :maxhp
|
|
attr_accessor :maxsp
|
|
attr_accessor :str
|
|
attr_accessor :dex
|
|
attr_accessor :agi
|
|
attr_accessor :int
|
|
attr_accessor :atk
|
|
attr_accessor :pdef
|
|
attr_accessor :mdef
|
|
attr_accessor :eva
|
|
attr_accessor :animation1_id
|
|
attr_accessor :animation2_id
|
|
attr_accessor :element_ranks
|
|
attr_accessor :state_ranks
|
|
attr_accessor :actions
|
|
attr_accessor :exp
|
|
attr_accessor :gold
|
|
attr_accessor :item_id
|
|
attr_accessor :weapon_id
|
|
attr_accessor :armor_id
|
|
attr_accessor :treasure_prob
|
|
|
|
class Action
|
|
def initialize
|
|
@kind = 0
|
|
@basic = 0
|
|
@skill_id = 1
|
|
@condition_turn_a = 0
|
|
@condition_turn_b = 1
|
|
@condition_hp = 100
|
|
@condition_level = 1
|
|
@condition_switch_id = 0
|
|
@rating = 5
|
|
end
|
|
attr_accessor :kind
|
|
attr_accessor :basic
|
|
attr_accessor :skill_id
|
|
attr_accessor :condition_turn_a
|
|
attr_accessor :condition_turn_b
|
|
attr_accessor :condition_hp
|
|
attr_accessor :condition_level
|
|
attr_accessor :condition_switch_id
|
|
attr_accessor :rating
|
|
end
|
|
end
|
|
|
|
class Event
|
|
def initialize(x, y)
|
|
@id = 0
|
|
@name = ""
|
|
@x = x
|
|
@y = y
|
|
@pages = [RPG::Event::Page.new]
|
|
end
|
|
attr_accessor :id
|
|
attr_accessor :name
|
|
attr_accessor :x
|
|
attr_accessor :y
|
|
attr_accessor :pages
|
|
|
|
class Page
|
|
def initialize
|
|
@condition = RPG::Event::Page::Condition.new
|
|
@graphic = RPG::Event::Page::Graphic.new
|
|
@move_type = 0
|
|
@move_speed = 3
|
|
@move_frequency = 3
|
|
@move_route = RPG::MoveRoute.new
|
|
@walk_anime = true
|
|
@step_anime = false
|
|
@direction_fix = false
|
|
@through = false
|
|
@always_on_top = false
|
|
@trigger = 0
|
|
@list = [RPG::EventCommand.new]
|
|
end
|
|
attr_accessor :condition
|
|
attr_accessor :graphic
|
|
attr_accessor :move_type
|
|
attr_accessor :move_speed
|
|
attr_accessor :move_frequency
|
|
attr_accessor :move_route
|
|
attr_accessor :walk_anime
|
|
attr_accessor :step_anime
|
|
attr_accessor :direction_fix
|
|
attr_accessor :through
|
|
attr_accessor :always_on_top
|
|
attr_accessor :trigger
|
|
attr_accessor :list
|
|
|
|
class Condition
|
|
def initialize
|
|
@switch1_valid = false
|
|
@switch2_valid = false
|
|
@variable_valid = false
|
|
@self_switch_valid = false
|
|
@switch1_id = 1
|
|
@switch2_id = 1
|
|
@variable_id = 1
|
|
@variable_value = 0
|
|
@self_switch_ch = "A"
|
|
end
|
|
attr_accessor :switch1_valid
|
|
attr_accessor :switch2_valid
|
|
attr_accessor :variable_valid
|
|
attr_accessor :self_switch_valid
|
|
attr_accessor :switch1_id
|
|
attr_accessor :switch2_id
|
|
attr_accessor :variable_id
|
|
attr_accessor :variable_value
|
|
attr_accessor :self_switch_ch
|
|
end
|
|
|
|
class Graphic
|
|
def initialize
|
|
@tile_id = 0
|
|
@character_name = ""
|
|
@character_hue = 0
|
|
@direction = 2
|
|
@pattern = 0
|
|
@opacity = 255
|
|
@blend_type = 0
|
|
end
|
|
attr_accessor :tile_id
|
|
attr_accessor :character_name
|
|
attr_accessor :character_hue
|
|
attr_accessor :direction
|
|
attr_accessor :pattern
|
|
attr_accessor :opacity
|
|
attr_accessor :blend_type
|
|
end
|
|
end
|
|
end
|
|
|
|
class EventCommand
|
|
def initialize(code = 0, indent = 0, parameters = [])
|
|
@code = code
|
|
@indent = indent
|
|
@parameters = parameters
|
|
end
|
|
attr_accessor :code
|
|
attr_accessor :indent
|
|
attr_accessor :parameters
|
|
end
|
|
|
|
class Item
|
|
def initialize
|
|
@id = 0
|
|
@name = ""
|
|
@icon_name = ""
|
|
@description = ""
|
|
@scope = 0
|
|
@occasion = 0
|
|
@animation1_id = 0
|
|
@animation2_id = 0
|
|
@menu_se = RPG::AudioFile.new("", 80)
|
|
@common_event_id = 0
|
|
@price = 0
|
|
@consumable = true
|
|
@parameter_type = 0
|
|
@parameter_points = 0
|
|
@recover_hp_rate = 0
|
|
@recover_hp = 0
|
|
@recover_sp_rate = 0
|
|
@recover_sp = 0
|
|
@hit = 100
|
|
@pdef_f = 0
|
|
@mdef_f = 0
|
|
@variance = 0
|
|
@element_set = []
|
|
@plus_state_set = []
|
|
@minus_state_set = []
|
|
end
|
|
attr_accessor :id
|
|
attr_accessor :name
|
|
attr_accessor :icon_name
|
|
attr_accessor :description
|
|
attr_accessor :scope
|
|
attr_accessor :occasion
|
|
attr_accessor :animation1_id
|
|
attr_accessor :animation2_id
|
|
attr_accessor :menu_se
|
|
attr_accessor :common_event_id
|
|
attr_accessor :price
|
|
attr_accessor :consumable
|
|
attr_accessor :parameter_type
|
|
attr_accessor :parameter_points
|
|
attr_accessor :recover_hp_rate
|
|
attr_accessor :recover_hp
|
|
attr_accessor :recover_sp_rate
|
|
attr_accessor :recover_sp
|
|
attr_accessor :hit
|
|
attr_accessor :pdef_f
|
|
attr_accessor :mdef_f
|
|
attr_accessor :variance
|
|
attr_accessor :element_set
|
|
attr_accessor :plus_state_set
|
|
attr_accessor :minus_state_set
|
|
end
|
|
|
|
class Map
|
|
def initialize(width, height)
|
|
@tileset_id = 1
|
|
@width = width
|
|
@height = height
|
|
@autoplay_bgm = false
|
|
@bgm = RPG::AudioFile.new
|
|
@autoplay_bgs = false
|
|
@bgs = RPG::AudioFile.new("", 80)
|
|
@encounter_list = []
|
|
@encounter_step = 30
|
|
@data = Table.new(width, height, 3)
|
|
@events = {}
|
|
end
|
|
attr_accessor :tileset_id
|
|
attr_accessor :width
|
|
attr_accessor :height
|
|
attr_accessor :autoplay_bgm
|
|
attr_accessor :bgm
|
|
attr_accessor :autoplay_bgs
|
|
attr_accessor :bgs
|
|
attr_accessor :encounter_list
|
|
attr_accessor :encounter_step
|
|
attr_accessor :data
|
|
attr_accessor :events
|
|
end
|
|
|
|
class MapInfo
|
|
def initialize
|
|
@name = ""
|
|
@parent_id = 0
|
|
@order = 0
|
|
@expanded = false
|
|
@scroll_x = 0
|
|
@scroll_y = 0
|
|
end
|
|
attr_accessor :name
|
|
attr_accessor :parent_id
|
|
attr_accessor :order
|
|
attr_accessor :expanded
|
|
attr_accessor :scroll_x
|
|
attr_accessor :scroll_y
|
|
end
|
|
|
|
class MoveRoute
|
|
def initialize
|
|
@repeat = true
|
|
@skippable = false
|
|
@list = [RPG::MoveCommand.new]
|
|
end
|
|
attr_accessor :repeat
|
|
attr_accessor :skippable
|
|
attr_accessor :list
|
|
end
|
|
|
|
class MoveCommand
|
|
def initialize(code = 0, parameters = [])
|
|
@code = code
|
|
@parameters = parameters
|
|
end
|
|
attr_accessor :code
|
|
attr_accessor :parameters
|
|
end
|
|
|
|
class Skill
|
|
def initialize
|
|
@id = 0
|
|
@name = ""
|
|
@icon_name = ""
|
|
@description = ""
|
|
@scope = 0
|
|
@occasion = 1
|
|
@animation1_id = 0
|
|
@animation2_id = 0
|
|
@menu_se = RPG::AudioFile.new("", 80)
|
|
@common_event_id = 0
|
|
@sp_cost = 0
|
|
@power = 0
|
|
@atk_f = 0
|
|
@eva_f = 0
|
|
@str_f = 0
|
|
@dex_f = 0
|
|
@agi_f = 0
|
|
@int_f = 100
|
|
@hit = 100
|
|
@pdef_f = 0
|
|
@mdef_f = 100
|
|
@variance = 15
|
|
@element_set = []
|
|
@plus_state_set = []
|
|
@minus_state_set = []
|
|
end
|
|
attr_accessor :id
|
|
attr_accessor :name
|
|
attr_accessor :icon_name
|
|
attr_accessor :description
|
|
attr_accessor :scope
|
|
attr_accessor :occasion
|
|
attr_accessor :animation1_id
|
|
attr_accessor :animation2_id
|
|
attr_accessor :menu_se
|
|
attr_accessor :common_event_id
|
|
attr_accessor :sp_cost
|
|
attr_accessor :power
|
|
attr_accessor :atk_f
|
|
attr_accessor :eva_f
|
|
attr_accessor :str_f
|
|
attr_accessor :dex_f
|
|
attr_accessor :agi_f
|
|
attr_accessor :int_f
|
|
attr_accessor :hit
|
|
attr_accessor :pdef_f
|
|
attr_accessor :mdef_f
|
|
attr_accessor :variance
|
|
attr_accessor :element_set
|
|
attr_accessor :plus_state_set
|
|
attr_accessor :minus_state_set
|
|
end
|
|
|
|
class State
|
|
def initialize
|
|
@id = 0
|
|
@name = ""
|
|
@animation_id = 0
|
|
@restriction = 0
|
|
@nonresistance = false
|
|
@zero_hp = false
|
|
@cant_get_exp = false
|
|
@cant_evade = false
|
|
@slip_damage = false
|
|
@rating = 5
|
|
@hit_rate = 100
|
|
@maxhp_rate = 100
|
|
@maxsp_rate = 100
|
|
@str_rate = 100
|
|
@dex_rate = 100
|
|
@agi_rate = 100
|
|
@int_rate = 100
|
|
@atk_rate = 100
|
|
@pdef_rate = 100
|
|
@mdef_rate = 100
|
|
@eva = 0
|
|
@battle_only = true
|
|
@hold_turn = 0
|
|
@auto_release_prob = 0
|
|
@shock_release_prob = 0
|
|
@guard_element_set = []
|
|
@plus_state_set = []
|
|
@minus_state_set = []
|
|
end
|
|
attr_accessor :id
|
|
attr_accessor :name
|
|
attr_accessor :animation_id
|
|
attr_accessor :restriction
|
|
attr_accessor :nonresistance
|
|
attr_accessor :zero_hp
|
|
attr_accessor :cant_get_exp
|
|
attr_accessor :cant_evade
|
|
attr_accessor :slip_damage
|
|
attr_accessor :rating
|
|
attr_accessor :hit_rate
|
|
attr_accessor :maxhp_rate
|
|
attr_accessor :maxsp_rate
|
|
attr_accessor :str_rate
|
|
attr_accessor :dex_rate
|
|
attr_accessor :agi_rate
|
|
attr_accessor :int_rate
|
|
attr_accessor :atk_rate
|
|
attr_accessor :pdef_rate
|
|
attr_accessor :mdef_rate
|
|
attr_accessor :eva
|
|
attr_accessor :battle_only
|
|
attr_accessor :hold_turn
|
|
attr_accessor :auto_release_prob
|
|
attr_accessor :shock_release_prob
|
|
attr_accessor :guard_element_set
|
|
attr_accessor :plus_state_set
|
|
attr_accessor :minus_state_set
|
|
end
|
|
|
|
class System
|
|
def initialize
|
|
@magic_number = 0
|
|
@party_members = [1]
|
|
@elements = [nil, ""]
|
|
@switches = [nil, ""]
|
|
@variables = [nil, ""]
|
|
@windowskin_name = ""
|
|
@title_name = ""
|
|
@gameover_name = ""
|
|
@battle_transition = ""
|
|
@title_bgm = RPG::AudioFile.new
|
|
@battle_bgm = RPG::AudioFile.new
|
|
@battle_end_me = RPG::AudioFile.new
|
|
@gameover_me = RPG::AudioFile.new
|
|
@cursor_se = RPG::AudioFile.new("", 80)
|
|
@decision_se = RPG::AudioFile.new("", 80)
|
|
@cancel_se = RPG::AudioFile.new("", 80)
|
|
@buzzer_se = RPG::AudioFile.new("", 80)
|
|
@equip_se = RPG::AudioFile.new("", 80)
|
|
@shop_se = RPG::AudioFile.new("", 80)
|
|
@save_se = RPG::AudioFile.new("", 80)
|
|
@load_se = RPG::AudioFile.new("", 80)
|
|
@battle_start_se = RPG::AudioFile.new("", 80)
|
|
@escape_se = RPG::AudioFile.new("", 80)
|
|
@actor_collapse_se = RPG::AudioFile.new("", 80)
|
|
@enemy_collapse_se = RPG::AudioFile.new("", 80)
|
|
@words = RPG::System::Words.new
|
|
@test_battlers = []
|
|
@test_troop_id = 1
|
|
@start_map_id = 1
|
|
@start_x = 0
|
|
@start_y = 0
|
|
@battleback_name = ""
|
|
@battler_name = ""
|
|
@battler_hue = 0
|
|
@edit_map_id = 1
|
|
end
|
|
attr_accessor :magic_number
|
|
attr_accessor :party_members
|
|
attr_accessor :elements
|
|
attr_accessor :switches
|
|
attr_accessor :variables
|
|
attr_accessor :windowskin_name
|
|
attr_accessor :title_name
|
|
attr_accessor :gameover_name
|
|
attr_accessor :battle_transition
|
|
attr_accessor :title_bgm
|
|
attr_accessor :battle_bgm
|
|
attr_accessor :battle_end_me
|
|
attr_accessor :gameover_me
|
|
attr_accessor :cursor_se
|
|
attr_accessor :decision_se
|
|
attr_accessor :cancel_se
|
|
attr_accessor :buzzer_se
|
|
attr_accessor :equip_se
|
|
attr_accessor :shop_se
|
|
attr_accessor :save_se
|
|
attr_accessor :load_se
|
|
attr_accessor :battle_start_se
|
|
attr_accessor :escape_se
|
|
attr_accessor :actor_collapse_se
|
|
attr_accessor :enemy_collapse_se
|
|
attr_accessor :words
|
|
attr_accessor :test_battlers
|
|
attr_accessor :test_troop_id
|
|
attr_accessor :start_map_id
|
|
attr_accessor :start_x
|
|
attr_accessor :start_y
|
|
attr_accessor :battleback_name
|
|
attr_accessor :battler_name
|
|
attr_accessor :battler_hue
|
|
attr_accessor :edit_map_id
|
|
|
|
class Words
|
|
def initialize
|
|
@gold = ""
|
|
@hp = ""
|
|
@sp = ""
|
|
@str = ""
|
|
@dex = ""
|
|
@agi = ""
|
|
@int = ""
|
|
@atk = ""
|
|
@pdef = ""
|
|
@mdef = ""
|
|
@weapon = ""
|
|
@armor1 = ""
|
|
@armor2 = ""
|
|
@armor3 = ""
|
|
@armor4 = ""
|
|
@attack = ""
|
|
@skill = ""
|
|
@guard = ""
|
|
@item = ""
|
|
@equip = ""
|
|
end
|
|
attr_accessor :gold
|
|
attr_accessor :hp
|
|
attr_accessor :sp
|
|
attr_accessor :str
|
|
attr_accessor :dex
|
|
attr_accessor :agi
|
|
attr_accessor :int
|
|
attr_accessor :atk
|
|
attr_accessor :pdef
|
|
attr_accessor :mdef
|
|
attr_accessor :weapon
|
|
attr_accessor :armor1
|
|
attr_accessor :armor2
|
|
attr_accessor :armor3
|
|
attr_accessor :armor4
|
|
attr_accessor :attack
|
|
attr_accessor :skill
|
|
attr_accessor :guard
|
|
attr_accessor :item
|
|
attr_accessor :equip
|
|
end
|
|
|
|
class TestBattler
|
|
def initialize
|
|
@actor_id = 1
|
|
@level = 1
|
|
@weapon_id = 0
|
|
@armor1_id = 0
|
|
@armor2_id = 0
|
|
@armor3_id = 0
|
|
@armor4_id = 0
|
|
end
|
|
attr_accessor :actor_id
|
|
attr_accessor :level
|
|
attr_accessor :weapon_id
|
|
attr_accessor :armor1_id
|
|
attr_accessor :armor2_id
|
|
attr_accessor :armor3_id
|
|
attr_accessor :armor4_id
|
|
end
|
|
end
|
|
|
|
class Tileset
|
|
def initialize
|
|
@id = 0
|
|
@name = ""
|
|
@tileset_name = ""
|
|
@autotile_names = [""]*7
|
|
@panorama_name = ""
|
|
@panorama_hue = 0
|
|
@fog_name = ""
|
|
@fog_hue = 0
|
|
@fog_opacity = 64
|
|
@fog_blend_type = 0
|
|
@fog_zoom = 200
|
|
@fog_sx = 0
|
|
@fog_sy = 0
|
|
@battleback_name = ""
|
|
@passages = Table.new(384)
|
|
@priorities = Table.new(384)
|
|
@priorities[0] = 5
|
|
@terrain_tags = Table.new(384)
|
|
end
|
|
attr_accessor :id
|
|
attr_accessor :name
|
|
attr_accessor :tileset_name
|
|
attr_accessor :autotile_names
|
|
attr_accessor :panorama_name
|
|
attr_accessor :panorama_hue
|
|
attr_accessor :fog_name
|
|
attr_accessor :fog_hue
|
|
attr_accessor :fog_opacity
|
|
attr_accessor :fog_blend_type
|
|
attr_accessor :fog_zoom
|
|
attr_accessor :fog_sx
|
|
attr_accessor :fog_sy
|
|
attr_accessor :battleback_name
|
|
attr_accessor :passages
|
|
attr_accessor :priorities
|
|
attr_accessor :terrain_tags
|
|
end
|
|
|
|
class Troop
|
|
def initialize
|
|
@id = 0
|
|
@name = ""
|
|
@members = []
|
|
@pages = [RPG::BattleEventPage.new]
|
|
end
|
|
attr_accessor :id
|
|
attr_accessor :name
|
|
attr_accessor :members
|
|
attr_accessor :pages
|
|
|
|
class Member
|
|
def initialize
|
|
@enemy_id = 1
|
|
@x = 0
|
|
@y = 0
|
|
@hidden = false
|
|
@immortal = false
|
|
end
|
|
attr_accessor :enemy_id
|
|
attr_accessor :x
|
|
attr_accessor :y
|
|
attr_accessor :hidden
|
|
attr_accessor :immortal
|
|
end
|
|
|
|
class Page
|
|
def initialize
|
|
@condition = RPG::Troop::Page::Condition.new
|
|
@span = 0
|
|
@list = [RPG::EventCommand.new]
|
|
end
|
|
attr_accessor :condition
|
|
attr_accessor :span
|
|
attr_accessor :list
|
|
|
|
class Condition
|
|
def initialize
|
|
@turn_valid = false
|
|
@enemy_valid = false
|
|
@actor_valid = false
|
|
@switch_valid = false
|
|
@turn_a = 0
|
|
@turn_b = 0
|
|
@enemy_index = 0
|
|
@enemy_hp = 50
|
|
@actor_id = 1
|
|
@actor_hp = 50
|
|
@switch_id = 1
|
|
end
|
|
attr_accessor :turn_valid
|
|
attr_accessor :enemy_valid
|
|
attr_accessor :actor_valid
|
|
attr_accessor :switch_valid
|
|
attr_accessor :turn_a
|
|
attr_accessor :turn_b
|
|
attr_accessor :enemy_index
|
|
attr_accessor :enemy_hp
|
|
attr_accessor :actor_id
|
|
attr_accessor :actor_hp
|
|
attr_accessor :switch_id
|
|
end
|
|
end
|
|
end
|
|
|
|
class Weapon
|
|
def initialize
|
|
@id = 0
|
|
@name = ""
|
|
@icon_name = ""
|
|
@description = ""
|
|
@animation1_id = 0
|
|
@animation2_id = 0
|
|
@price = 0
|
|
@atk = 0
|
|
@pdef = 0
|
|
@mdef = 0
|
|
@str_plus = 0
|
|
@dex_plus = 0
|
|
@agi_plus = 0
|
|
@int_plus = 0
|
|
@element_set = []
|
|
@plus_state_set = []
|
|
@minus_state_set = []
|
|
end
|
|
attr_accessor :id
|
|
attr_accessor :name
|
|
attr_accessor :icon_name
|
|
attr_accessor :description
|
|
attr_accessor :animation1_id
|
|
attr_accessor :animation2_id
|
|
attr_accessor :price
|
|
attr_accessor :atk
|
|
attr_accessor :pdef
|
|
attr_accessor :mdef
|
|
attr_accessor :str_plus
|
|
attr_accessor :dex_plus
|
|
attr_accessor :agi_plus
|
|
attr_accessor :int_plus
|
|
attr_accessor :element_set
|
|
attr_accessor :plus_state_set
|
|
attr_accessor :minus_state_set
|
|
end
|
|
end
|