Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #
- # EDOS/lib/module/easm.rb
- # by IceDragon
- # EASM is a module for writing events using either the EASM language
- # or the ruby DSL, EASM is converted to the proper RMVX/RMVXA event commands
- # as needed.
- # EASM seeks to ease the creation of event lists through its functions.
- module EASM
- VERSION = "0.0.1".freeze
- extend self
- def tokenize(ary)
- result = []
- ary.each_with_index do |line, i|
- (warn "nulls found in ary" && next) unless line
- str = line.delete("\n")
- # is a label line
- tokendata = if data = str.match(/\A\s*(?<name>\S+):/)
- [:label, data[:name]]
- # is a instruction line
- elsif data = str.match(/\A\s*(?<name>\S+)(?:\s+(?<params>.+))?/)
- [:inst, data[:name], data[:params]]
- else
- [:null]
- end
- result.push({ line: i, raw: line, token: tokendata})
- end
- result
- end
- def read_easm_stream(stream)
- @variable_table = {}
- stream_nc_ary = stream.each_line.map do |l|
- l.gsub!(/;(.*)/, '');
- l.delete!("\n")
- l.delete!("\r")
- l
- end
- # preprocess
- stream_pp_ary = stream_nc_ary.map do |line|
- if data = line.match(/\#undef\s+(?<name>\S+)/)
- @variable_table.delete(data[:name])
- nil
- elsif data = line.match(/\#define\s+(?<name>\S+)(?:\s+(?<value>.+))?/)
- v = data[:value].to_s
- v.gsub!(@variable_table)
- @variable_table[data[:name]] = v
- nil
- else
- v = line.to_s
- v.gsub!(@variable_table)
- v.gsub!(/\A\s+/, '') # remove preceding whitespace
- v.gsub!(/\s+\z/, '') # remove trailing whitespace
- v
- end
- end
- # convert to Token hashes
- return tokenize(stream_pp_ary)
- end
- def load_easm_file(filename)
- tokenlist = read_easm_stream(File.open(filename, "r"))
- tokenlist
- end
- module TokenToEventCommands
- EventCommmand = Struct.new(:name, :code, :param_types, :cb)
- extend self
- @evcmds = {}
- class << self
- attr_reader :evcmds
- end
- ## TODO
- #
- def tokenlist_to_eventcommands!(tokenlist)
- end
- def evcmd(token_name, evcmd_id, *param_types, &block)
- @evcmds[token_name] = EventCommmand.new(token_name, evcmd_id, param_types, block)
- end
- def evcmd_alias(newname, oldname)
- @evcmds[newname] = oldname
- end
- ### RMVXA Event Commands
- ## name code Types
- #
- evcmd :null, 0
- # show_text face_name, face_index, background, position
- evcmd :show_text, 101, :String, :Integer, :String, :Integer
- evcmd :text, 401, :String
- ##
- # show_choice ["String", "String", ...], cancel_choice_type
- evcmd :show_choice, 102, [:String], :Integer
- evcmd :choice_branch, 402, :Integer, :String # When [**]
- evcmd :choice_cancel, 403 # When Cancel
- evcmd :branch_end, 404 # Choice End
- ##
- # show_num_input var_id, digits_max
- evcmd :show_num_input, 103, :Integer, :Integer
- ##
- # show_item_choice trg_var_id
- evcmd :show_item_choice, 104, :Integer # ???
- ##
- # show_text_scrolling scroll_speed, scroll_no_fast
- evcmd :show_text_scrolling, 105, :Integer, :Boolean
- evcmd :text_scrolling, 405, :String
- ##
- # comment Comment String
- evcmd :comment, 108, :String
- evcmd :comment_text, 408, :String
- ## TODO
- # conditional_branch
- evcmd :conditional_branch, 111 do |str|
- # TODO convert str to a param list (and compensate for String parameters)
- case param[0] # opcode
- when 0 # Switch
- when 1 # Variable
- when 2 # Self Switch
- when 3 # Timer
- when 4 # Actor
- when 5 # Enemy
- when 6 # Character
- when 7 # Gold
- when 8 # Item
- when 9 # Weapon
- when 10 # Armor
- when 11 # Button
- when 12 # Script
- when 13 # Vehicle
- end
- end
- evcmd :conditional_branch_else, 411
- evcmd :conditional_branch_end, 412
- # loop
- evcmd :loop, 112
- evcmd :repeat, 413
- evcmd :break, 113
- evcmd :terminate, 115
- ##
- # call_common_event common_event_id
- evcmd :call_common_event, 117, :Integer
- ##
- # label_name:
- # label label_name
- evcmd :label, 118, :String
- ##
- # jump_to_label label_name
- evcmd :jump_to_label, 119, :String
- ##
- # control_switch range_start, range_end, state
- evcmd :control_switch, 121, :Integer, :Integer, :Integer
- ## TODO
- # control_variable range_start, range_end, opcode, operation, *
- evcmd :control_variable, 122 do |str|
- # TODO convert str to a param list (and compensate for String parameters)
- case param[3]
- when 0 # Constant Integer
- when 1 # Variable Integer
- when 2 # Random Integer, Integer
- when 3 # GameData Integer, Integer, Integer
- when 4 # Script String
- end
- end
- ##
- # control_self_switch self_switch_id, state
- evcmd :control_self_switch, 123, :String, :Integer
- ##
- # control_timer 0, time_in_secs
- # control_timer 1 # turn off
- evcmd :control_timer, 124, :Integer, :Integer
- ##
- # change_gold operation, operand_type, operand
- # change_gold 0, operand_type, operand # increase
- # change_gold 0, 0, integer # constant
- # change_gold 0, 1, var_id # variable
- # change_gold 1, operand_type, operand # decrease
- # change_gold 1, 0, integer # constant
- # change_gold 1, 1, var_id # variable
- evcmd :change_gold, 125, :Integer, :Integer, :Integer
- ##
- # change_item item_id, operation, operand_type, operand
- # change_item item_id, 0, operand_type, operand # increase
- # change_item item_id, 0, 0, integer # constant
- # change_item item_id, 0, 1, var_id # variable
- # change_item item_id, 1, operand_type, operand # descrease
- # change_item item_id, 1, 0, integer # constant
- # change_item item_id, 1, 1, var_id # variable
- evcmd :change_item, 126, :Integer, :Integer, :Integer, :Integer
- ##
- # change_weapon weapon_id, operation, operand_type, operand, check_equipped
- # change_weapon weapon_id, 0, operand_type, operand, check_equipped # increase
- # change_weapon weapon_id, 0, 0, integer, check_equipped # constant
- # change_weapon weapon_id, 0, 1, var_id, check_equipped # variable
- # change_weapon weapon_id, 1, operand_type, operand, check_equipped # decrease
- # change_weapon weapon_id, 1, 0, integer, check_equipped # constant
- # change_weapon weapon_id, 1, 1, var_id, check_equipped # variable
- evcmd :change_weapon, 127, :Integer, :Integer, :Integer, :Integer, :Integer
- ##
- # change_armor armor_id, operation, operand_type, operand, check_equipped
- # change_armor armor_id, 0, operand_type, operand, check_equipped # increase
- # change_armor armor_id, 0, 0, integer, check_equipped # constant
- # change_armor armor_id, 0, 1, var_id, check_equipped # variable
- # change_armor armor_id, 1, operand_type, operand, check_equipped # decrease
- # change_armor armor_id, 1, 0, integer, check_equipped # constant
- # change_armor armor_id, 1, 1, var_id, check_equipped # variable
- evcmd :change_armor, 128, :Integer, :Integer, :Integer, :Integer, :Integer
- ##
- # change_party_member 0, actor_id # add actor
- # change_party_member 1, actor_id # remove actor
- evcmd :change_party_member, 129, :Integer, :Integer
- ## TODO
- # change_battle_bgm bgm
- evcmd :change_battle_bgm, 132, "RPG::BGM"
- ## TODO
- # change_battle_end_me me
- evcmd :change_battle_end_me, 133, "RPG::ME"
- ##
- # change_save_access state
- evcmd :change_save_access, 134, :Integer
- ##
- # change_menu_access state
- evcmd :change_menu_access, 135, :Integer
- ##
- # change_encounter state
- evcmd :change_encounter, 136, :Integer
- ##
- # change_formation_access state
- evcmd :change_formation_access, 137, :Integer
- ##
- # change_window_tone state
- evcmd :change_window_tone, 138, :Tone
- ##
- # transfer_player opcode, map_id, p1, p2, keep_dir, fade_type
- # transfer_player 0, map_id, x, y, keep_dir, fade_type
- # transfer_player 1, map_id, var1, var2, keep_dir, fade_type
- evcmd :set_player_position, 201, :Integer, :Integer, :Integer, :Integer, :Integer
- ##
- # set_vehicle_position vehicle_id, opcode, map_id, p1, p2, keep_dir, fade_type
- # set_vehicle_position vehicle_id, 0, map_id, x, y, keep_dir, fade_type
- # set_vehicle_position vehicle_id, 1, map_id, var1, var2, keep_dir, fade_type
- evcmd :set_vehicle_position, 202, :Integer, :Integer, :Integer, :Integer, :Integer
- ##
- # set_event_position event_id, opcode, map_id, p1, p2, keep_dir, fade_type
- # set_event_position event_id, 0, map_id, x, y, keep_dir, fade_type
- # set_event_position event_id, 1, map_id, var1, var2, keep_dir, fade_type
- # set_event_position event_id, 2, map_id, char_id, _, keep_dir, fade_type
- evcmd :set_event_position, 203, :Integer, :Integer, :Integer, :Integer, :Integer
- ## TODO
- # scroll_map ***
- evcmd :scroll_map, 204, :Integer, :Integer, :Integer
- ## TODO
- # set_move_route char_id, move_route
- evcmd :set_move_route, 205, :Integer, "RPG::Event::MoveRoute"
- ##
- # get_on_off_vehicle
- evcmd :get_on_off_vehicle, 206
- ##
- # change_transperency state
- evcmd :change_transperency, 211, :Integer
- ##
- # show_animation char_id, animation_id, wait_for_animation
- evcmd :show_animation, 212, :Integer, :Integer, :Integer
- ##
- # show_balloon char_id, balloon_id, wait_for_balloon
- evcmd :show_balloon, 213, :Integer, :Integer, :Integer
- ##
- # erase_event
- evcmd :erase_event, 214
- ##
- # set_followers_visiblity state
- evcmd :set_followers_visiblity, 216, :Integer
- ##
- # gather_followers
- evcmd :gather_followers, 217
- ##
- # screen_fadeout
- evcmd :screen_fadeout, 221
- ##
- # screen_fadein
- evcmd :screen_fadein, 222
- ##
- # screen_tint tone, time, wait
- evcmd :screen_tint, 223, :Tone, :Integer, :Integer
- ##
- # screen_flash color, time, wait
- evcmd :screen_flash, 224, :Color, :Integer, :Integer
- ##
- # screen_shake force, time, wait
- evcmd :screen_shake, 225, :Integer, :Integer, :Integer
- ##
- # wait time
- evcmd :wait, 230, :Integer
- ## TODO
- # show_picture
- evcmd :show_picture, 231, :Integer, :Integer, :Integer, :Integer, :Integer, :Integer, :Integer, :Integer, :Integer, :Integer
- ## TODO
- # move_picture
- evcmd :move_picture, 232, :Integer, :Integer, :Integer, :Integer, :Integer, :Integer, :Integer, :Integer, :Integer, :Integer, :Integer, :Integer
- ##
- # rotate_picture picture_id, angle
- evcmd :rotate_picture, 233, :Integer, :Integer
- ##
- # tint_picture picture_id, tone, time, wait
- evcmd :tint_picture, 234, :Integer, :Integer, :Integer, :Integer
- ##
- # erase_picture picture_id
- evcmd :erase_picture, 235, :Integer
- ## TODO
- # set_weather **
- evcmd :set_weather, 236, :Integer, :Integer, :Integer, :Integer, :Integer
- ## TODO
- # set_weather **
- evcmd :set_weather, 236, :Integer, :Integer, :Integer, :Integer, :Integer
- ## TODO
- # bgm_play bgm
- evcmd :bgm_play, 241, "RPG::BGM"
- ##
- # bgm_fadeout time_in_seconds
- evcmd :bgm_fadeout, 242, :Integer
- ##
- # bgm_save
- evcmd :bgm_save, 243
- ##
- # bgm_resume
- evcmd :bgm_resume, 244
- ## TODO
- # bgs_play bgs
- evcmd :bgs_play, 245, "RPG::BGS"
- ##
- # bgs_fadeout time_in_seconds
- evcmd :bgs_fadeout, 246, :Integer
- ## TODO
- # me_play me
- evcmd :me_play, 249, "RPG::ME"
- ## TODO
- # se_play se
- evcmd :se_play, 250, "RPG::SE"
- ##
- # se_stop
- evcmd :se_stop, 251
- ##
- # movie_play filename
- evcmd :movie_play, 261, :String
- ##
- # set_map_name_display state
- evcmd :set_map_name_display, 281, :Integer
- ##
- # change_tileset tileset
- evcmd :change_tileset, 282, "RPG::Tileset"
- ## TODO
- # change_battle_background
- evcmd :change_battle_background,283, :String, :String
- ## TODO
- # change_parallax_background
- evcmd :change_parallax_background,284, :Unknown, :Unknown, :Unknown, :Unknown, :Unknown
- ## TODO
- # get_location_info variable_id, info_id, is_direct, x, y
- evcmd :get_location_info, 285, :Integer, :Integer, :Integer, :Integer, :Integer
- ## TODO
- # process_battle
- evcmd :process_battle, 301
- evcmd :result_branch_win, 601
- evcmd :result_branch_escape, 602
- evcmd :result_branch_lose, 603
- ## TODO
- # process_shop
- evcmd :process_shop, 302
- ## TODO
- # process_name_input
- evcmd :process_name_input, 303
- ##
- # process_menu
- evcmd :process_menu, 351
- ##
- # process_save
- evcmd :process_save, 352
- ##
- # process_gameover
- evcmd :process_gameover, 353
- ##
- # process_title
- evcmd :process_title, 354
- ## TODO
- # change_actor_hp
- evcmd :change_actor_hp, 311, :Unknown, :Unknown, :Unknown, :Unknown, :Unknown, :Unknown
- ## TODO
- # change_actor_mp
- evcmd :change_actor_mp, 312, :Unknown, :Unknown, :Unknown, :Unknown, :Unknown
- ## TODO
- # change_actor_state
- evcmd :change_actor_state, 313, :Unknown, :Unknown, :Unknown, :Unknown
- ## TODO
- # actor_recover_all
- evcmd :actor_recover_all, 314, :Unknown, :Unknown
- ## TODO
- # change_actor_exp
- evcmd :change_actor_exp, 315, :Unknown, :Unknown, :Unknown, :Unknown, :Unknown, :Unknown
- ## TODO
- # change_actor_level
- evcmd :change_actor_level, 316, :Unknown, :Unknown, :Unknown, :Unknown, :Unknown, :Unknown
- ## TODO
- # change_actor_parameters
- evcmd :change_actor_parameters, 317, :Unknown, :Unknown, :Unknown, :Unknown, :Unknown, :Unknown
- ## TODO
- # change_actor_skill
- evcmd :change_actor_skill, 318, :Unknown, :Unknown, :Unknown, :Unknown
- ## TODO
- # change_actor_equip
- evcmd :change_actor_equip, 319, :Unknown, :Unknown, :Unknown
- ##
- # change_actor_name actor_id, new_name
- evcmd :change_actor_name, 320, :Integer, :String
- ##
- # change_actor_class actor_id, class_id
- evcmd :change_actor_class, 321, :Integer, :Integer
- ##
- # change_actor_graphic actor_id, character_name, character_index, face_name, face_index
- evcmd :change_actor_graphic, 322, :Integer, :String, :Integer, :String, :Integer
- ##
- # change_graphic actor_id, character_name, character_index, face_name, face_index
- evcmd :change_vehicle_graphic, 323, :Integer, :String, :Integer
- ##
- # change_actor_nickname actor_id, new_name
- evcmd :change_actor_nickname, 324, :Integer, :String
- ## TODO
- # change_enemy_hp
- evcmd :change_enemy_hp, 331
- ## TODO
- # change_enemy_mp
- evcmd :change_enemy_mp, 332
- ## TODO
- # change_enemy_state
- evcmd :change_enemy_state, 333
- ##
- # enemy_recover_all
- evcmd :enemy_recover_all, 334
- ##
- # enemy_appear enemy_index
- evcmd :enemy_appear, 335, :Integer
- ##
- # enemy_transform enemy_index, new_enemy_id
- evcmd :enemy_transform, 336, :Integer, :Integer
- ##
- # show_battle_animation enemy_index, animation_id
- evcmd :show_battle_animation, 337, :Integer, :Integer
- ## TODO
- # battle_force_action
- evcmd :battle_force_action, 339, :Unknown, :Unknown, :Unknown, :Unknown
- ##
- # battle_abort
- evcmd :battle_abort, 340
- ##
- # script ruby_string
- evcmd :script, 355, :String
- evcmd :script_text, 655. :String
- ### aliases
- evcmd_alias :if, :conditional_branch
- evcmd_alias :transfer_player, :set_player_position
- evcmd_alias :eval, :script
- evcmds.each_value do |ec|
- puts "#{ec.code} => \"#{ec.name}\"" if ec.is_a?(EventCommmand)
- end
- end
- class EventCommandBuilder
- attr_reader :list
- attr_accessor :indent
- def initialize
- @list = []
- end
- def clear
- @list.clear
- end
- def partial
- old_list = @list
- @list = []
- yield
- new_list = @list
- @list = old_list
- return new_list
- end
- def concat(evcmds)
- @list.concat(evcmds)
- end
- def push(*evcmds)
- concat(evcmds)
- end
- def _inc_indent
- @indent += 1
- if block_given?
- yield
- _dec_indent
- end
- end
- def _dec_indent
- @indent -= 1
- end
- append = "_evcmd_"
- TokenToEventCommands.evcmds.each do |key, command|
- case command
- ##
- when String, Symbol
- define_method(append+key.to_s) { |*args, &block| send(append+command.to_s, *args, &block) }
- ## EventCommmand<:name, :id, :param_types, :cb>
- when TokenToEventCommands::EventCommmand
- define_method(append+key.to_s) do |*args, &block|
- result = args
- result = command.cb.call(*args, &block) if command.cb
- __push(RPG::EventCommand.new(command.code, indent, result))
- end
- else
- warn "Unknown command type #{command.class}"
- end
- end
- # puts instance_methods.select { |str| str.to_s.start_with?(append) }
- # _evcmd_null
- def null
- _evcmd_null
- end
- # _evcmd_show_text
- # _evcmd_text
- def show_text(opts)
- face_name = ""
- face_index = 0
- background = ""
- position = 2
- texts = []
- case opts
- when Array
- texts = opts
- when String
- texts = [opts]
- when Hash
- face_name = opts[:face_name] || face_name
- face_index = opts[:face_index] || face_index
- background = opts[:background] || background
- position = opts[:position] || position
- texts = opts.fetch(:texts)
- else
- raise TypeError,
- "wrong argument type #{ops.class} (expected Array, Hash, or String)"
- end
- _evcmd_show_text(face_name, face_index, background, position)
- texts.each { |str| _evcmd_text str }
- end
- alias :text :show_text
- # _evcmd_show_choice
- # _evcmd_choice_branch
- # _evcmd_choice_cancel
- # _evcmd_choice_end
- def show_choice(opts)
- choices = opts.fetch(:choices).map(&:to_s)
- cancel_type = opts[:cancel_type] || 0
- _evcmd_show_choice(choices, cancel_type)
- choices.each_with_index do |str, index|
- _evcmd_choice_branch index, str
- _inc_indent do
- yield str, index
- _evcmd_null
- end
- end
- #if cancel_type > 0
- # _evcmd_choice_cancel
- # _evcmd_null
- #end
- _evcmd_choice_end
- end
- alias :choice :show_choice
- # _evcmd_show_num_input
- def show_number_input(variable_id, digits_max)
- _evcmd_show_num_input variable_id, digits_max
- end
- alias :show_num_input :show_number_input
- alias :num_input :show_number_input
- # _evcmd_show_item_choice
- def show_item_choice(variable_id)
- _evcmd_show_item_choice variable_id
- end
- alias :item_choice :show_item_choice
- # _evcmd_show_text_scrolling
- # _evcmd_text_scrolling
- def show_text_scrolling(opts)
- speed = opts[:speed] || 5
- fast_scroll = opts[:fast_scroll]
- texts = opts.fetch(texts)
- _evcmd_show_text_scrolling speed, !fast_scroll
- texts.each { |str| _evcmd_text_scrolling str }
- end
- alias :scrolling_text :show_text_scrolling
- # _evcmd_comment
- # _evcmd_comment_text
- def comment(*comments)
- first = comments.pop
- _evcmd_comment first
- comments.each { |str| _evcmd_comment_text str }
- end
- # _evcmd_conditional_branch
- def conditional_branch(*args)
- end
- # _evcmd_branch_else
- # _evcmd_loop
- # _evcmd_repeat
- # _evcmd_break
- # _evcmd_terminate
- # _evcmd_call_common_event
- # _evcmd_label
- # _evcmd_jump_to_label
- # _evcmd_control_switch
- # _evcmd_control_variable
- # _evcmd_control_self_switch
- # _evcmd_control_timer
- # _evcmd_change_gold
- # change_gold operation, operand_type, operand
- def change_gold(operation, operand_type, operand)
- _evcmd_change_gold(operation.to_i, operand_type.to_i, operand.to_i)
- end
- def change_gold_i(operation, value)
- change_gold(operation, 0, value)
- end
- def change_gold_var(operation, variable_id)
- change_gold(operation, 1, variable_id)
- end
- def increase_gold(operand_type, value)
- change_gold(0, operand_type, value)
- end
- def decrease_gold(operand_type, value)
- change_gold(1, operand_type, value)
- end
- def increase_gold_i(value)
- change_gold_i(0, value)
- end
- def decrease_gold_i(value)
- change_gold_i(1, value)
- end
- def increase_gold_var(variable_id)
- change_gold_var(0, variable_id)
- end
- def decrease_gold_var(variable_id)
- change_gold_var(1, variable_id)
- end
- # _evcmd_change_item
- def change_item(operation, operand_type, operand)
- _evcmd_change_item(operation.to_i, operand_type.to_i, operand.to_i)
- end
- def change_item_i(operation, value)
- change_item(operation, 0, value)
- end
- def change_item_var(operation, variable_id)
- change_item(operation, 1, variable_id)
- end
- def increase_item(operand_type, value)
- change_item(0, operand_type, value)
- end
- def decrease_item(operand_type, value)
- change_item(1, operand_type, value)
- end
- def increase_item_i(value)
- change_item_i(0, value)
- end
- def decrease_item_i(value)
- change_item_i(1, value)
- end
- def increase_item_var(variable_id)
- change_item_var(0, variable_id)
- end
- def decrease_item_var(variable_id)
- change_item_var(1, variable_id)
- end
- # _evcmd_change_weapon
- def change_weapon(operation, operand_type, operand, check_equipped=false)
- _evcmd_change_weapon(operation.to_i, operand_type.to_i, operand.to_i, check_equipped)
- end
- def change_weapon_i(operation, value, check_equipped=false)
- change_weapon(operation, 0, value, check_equipped)
- end
- def change_weapon_var(operation, variable_id, check_equipped=false)
- change_weapon(operation, 1, variable_id, check_equipped)
- end
- def increase_weapon(operand_type, value, check_equipped=false)
- change_weapon(0, operand_type, value, check_equipped)
- end
- def decrease_weapon(operand_type, value, check_equipped=false)
- change_weapon(1, operand_type, value, check_equipped)
- end
- def increase_weapon_i(value, check_equipped=false)
- change_weapon_i(0, value, check_equipped)
- end
- def decrease_weapon_i(value, check_equipped=false)
- change_weapon_i(1, value, check_equipped)
- end
- def increase_weapon_var(variable_id, check_equipped=false)
- change_weapon_var(0, variable_id, check_equipped)
- end
- def decrease_weapon_var(variable_id, check_equipped=false)
- change_weapon_var(1, variable_id, check_equipped)
- end
- # _evcmd_change_armor
- def change_armor(operation, operand_type, operand, check_equipped=false)
- _evcmd_change_armor(operation.to_i, operand_type.to_i, operand.to_i, check_equipped)
- end
- def change_armor_i(operation, value, check_equipped=false)
- change_armor(operation, 0, value, check_equipped)
- end
- def change_armor_var(operation, variable_id, check_equipped=false)
- change_armor(operation, 1, variable_id, check_equipped)
- end
- def increase_armor(operand_type, value, check_equipped=false)
- change_armor(0, operand_type, value, check_equipped)
- end
- def decrease_armor(operand_type, value, check_equipped=false)
- change_armor(1, operand_type, value, check_equipped)
- end
- def increase_armor_i(value, check_equipped=false)
- change_armor_i(0, value, check_equipped)
- end
- def decrease_armor_i(value, check_equipped=false)
- change_armor_i(1, value, check_equipped)
- end
- def increase_armor_var(variable_id, check_equipped=false)
- change_armor_var(0, variable_id, check_equipped)
- end
- def decrease_armor_var(variable_id, check_equipped=false)
- change_armor_var(1, variable_id, check_equipped)
- end
- # _evcmd_change_party_member
- def change_party_member(operation, actor_id)
- _evcmd_change_party_member(operation.to_i, actor_id.to_i)
- end
- def add_party_member(actor_id)
- change_party_member(0, actor_id)
- end
- def remove_party_member(actor_id)
- change_party_member(1, actor_id)
- end
- # _evcmd_change_battle_bgm
- # _evcmd_change_battle_end_me
- # _evcmd_change_save_access
- # _evcmd_change_menu_access
- # _evcmd_change_encounter
- # _evcmd_change_formation_access
- # _evcmd_change_window_tone
- # _evcmd_set_player_position
- # _evcmd_set_vehicle_position
- # _evcmd_set_event_position
- # _evcmd_scroll_map
- # _evcmd_set_move_route
- # _evcmd_get_on_off_vehicle
- def get_on_off_vehicle
- _evcmd_get_on_off_vehicle
- end
- # _evcmd_change_transperency
- def change_transperency(bool)
- _evcmd_change_transperency(bool ? 0 : 1)
- end
- # _evcmd_show_animation
- def show_animation(character_id, animation_id, should_wait=false)
- _evcmd_show_animation(character_id.to_i, animation_id.to_i, !!should_wait)
- end
- # _evcmd_show_balloon
- def show_balloon(character_id, balloon_id, should_wait=false)
- _evcmd_show_balloon(character_id.to_i, balloon_id.to_i, !!should_wait)
- end
- # _evcmd_erase_event
- def erase_event
- _evcmd_erase_event
- end
- # _evcmd_set_followers_visiblity
- def set_followers_visiblity(bool)
- _evcmd_set_followers_visiblity(!!bool)
- end
- # _evcmd_gather_followers
- # _evcmd_screen_fadeout
- # _evcmd_screen_fadein
- # _evcmd_screen_tint
- # _evcmd_screen_flash
- # _evcmd_screen_shake
- # _evcmd_wait
- def wait(n)
- _evcmd_wait(n.to_i)
- end
- # _evcmd_show_picture
- # _evcmd_move_picture
- # _evcmd_rotate_picture
- # _evcmd_tint_picture
- # _evcmd_erase_picture
- # _evcmd_set_weather
- # _evcmd_bgm_play
- def bgm_play(filename, volume=100, pitch=100)
- _evcmd_bgm_play(RPG::BGM.new(filename, volume, pitch))
- end
- alias :play_bgm :bgm_play
- # _evcmd_bgm_fadeout
- def bgm_fadeout(seconds)
- _evcmd_bgm_fadeout(seconds)
- end
- # _evcmd_bgm_save
- def bgm_save
- _evcmd_bgm_save
- end
- alias :save_bgm :bgm_save
- # _evcmd_bgm_resume
- def bgm_resume
- _evcmd_bgm_resume
- end
- alias :resume_bgm :bgm_resume
- # _evcmd_bgs_play
- def bgs_play(filename, volume=100, pitch=100)
- _evcmd_bgs_play(RPG::BGS.new(filename, volume, pitch))
- end
- alias :play_bgs :bgs_play
- # _evcmd_bgs_fadeout
- # _evcmd_me_play
- def me_play(filename, volume=100, pitch=100)
- _evcmd_me_play(RPG::ME.new(filename, volume, pitch))
- end
- alias :play_me :me_play
- # _evcmd_se_play
- def se_play(filename, volume=100, pitch=100)
- _evcmd_se_play(RPG::SE.new(filename, volume, pitch))
- end
- alias :play_se :se_play
- # _evcmd_se_stop
- def se_stop
- _evcmd_se_stop
- end
- alias :stop_se :se_stop
- # _evcmd_movie_play
- def movie_play(filename)
- _evcmd_movie_play(filename)
- end
- alias :play_movie :movie_play
- # _evcmd_set_map_name_display
- def set_map_name_display
- _evcmd_set_map_name_display(bool ? 0 : 1)
- end
- alias :toggle_map_name_display :set_map_name_display
- # _evcmd_change_tileset
- def change_tileset(tileset_id)
- _evcmd_change_tileset(tileset_id.to_i)
- end
- # _evcmd_change_battle_background
- def change_battle_background(top_filename, bottom_filename)
- _evcmd_change_battle_background(String(top_filename),
- String(bottom_filename))
- end
- # _evcmd_change_parallax_background
- # _evcmd_get_location_info
- # _evcmd_process_battle
- # _evcmd_result_if_win
- # _evcmd_result_if_escape
- # _evcmd_result_if_lose
- # _evcmd_process_shop
- # _evcmd_process_name_input
- # _evcmd_process_menu
- # _evcmd_process_save
- # _evcmd_process_gameover
- # _evcmd_process_title
- # _evcmd_change_actor_hp
- # _evcmd_change_actor_mp
- # _evcmd_change_actor_state
- # _evcmd_actor_recover_all
- # _evcmd_change_actor_exp
- # _evcmd_change_actor_level
- # _evcmd_change_actor_parameters
- # _evcmd_change_actor_skill
- # _evcmd_change_actor_equip
- # _evcmd_change_actor_name
- # _evcmd_change_actor_class
- # _evcmd_change_actor_graphic
- # _evcmd_change_vehicle_graphic
- # _evcmd_change_actor_nickname
- # _evcmd_change_enemy_hp
- # _evcmd_change_enemy_mp
- # _evcmd_change_enemy_state
- # _evcmd_enemy_recover_all
- # _evcmd_enemy_appear
- # _evcmd_enemy_transform
- # _evcmd_show_battle_animation
- # _evcmd_battle_force_action
- # _evcmd_battle_abort
- def battle_abort
- _evcmd_battle_abort
- end
- alias :abort_battle :battle_abort
- # _evcmd_script
- # _evcmd_script_text
- def script(str)
- lines = str.each_line.to_a
- first = lines.pop
- _evcmd_script(first)
- lines.each { |line| _evcmd_script_text line }
- end
- # _evcmd_if
- alias :eif :conditional_branch
- # _evcmd_transfer_player
- alias :transfer_player :set_player_position
- # _evcmd_eval
- alias :eeval :script
- end
- end
- __END__ #
- # ####### MESSAGE #######
- # Show Text, displays text (speech)
- show_text 101 ["", 0, 0, 2]
- text 401 ["text goes here"]
- # Show choices, displays choices (yes, no)
- show_choice 102 [["Yes", "No"], 2]
- branch_choice 402 [0, "Yes"]
- null 000 []
- branch_choice 402 [1, "No"]
- null 000 []
- branch_end 404 []
- # Input a number (ties into variables)
- show_num_input 103 [1, 1]
- # Select a key item
- show_item_choice 104 [1]
- # scrolling text, easy enough
- show_text_scrolling 105 [2, false]
- text_scrolling 405 ["yoloswag"]
- text_scrolling 405 ["420mlg"]
- # ####### GAME PROGRESSION ######
- # control switches through this event by turning them on/off
- control_switch 121 [1, 1, 0]
- # same as above but with variables
- control_variable 122 [1, 1, 0, 0, 0]
- # self switches!
- control_self_switch 123 ["A", 0]
- # this is the timer
- control_timer 124 [0, 60]
- # ####### FLOW CONTROL #######
- # Conditional Brances, basically if "x" or "y" (any variable you want)
- # is fulilled (or not) it would branch off
- conditional_branch 111 [0, 1, 0]
- null 000 []
- branch_else 411 []
- null 000 []
- 412 []
- # loop (start)
- loop 112 []
- null 000 []
- repeat 413 []
- # break loop
- break 113 []
- # exit event processing
- terminate 115 []
- # Call common event
- call_common_event 117 [1]
- # Label
- label 118 ["hjg"]
- # jump to the specific label
- jump_to_label 119 ["hjg"]
- # ####### CHANGE PARTY (ITEMS) #######
- # change gold in inventory
- change_gold 125 [0, 0, 1]
- # change items
- change_item 126 [2, 0, 0, 1]
- # change weapons
- change_weapon 127 [1, 0, 0, 1, false]
- # change armor
- change_armor 128 [1, 0, 0, 1, false]
- # change party member
- change_party_member 129 [1, 0, 0]
- # ####### CHANGE ACTOR STATS #######
- # change actor HP
- change_actor_hp 311 [0, 0, 0, 0, 1, false]
- # change MP
- change_actor_mp 312 [0, 0, 0, 0, 1]
- # change state
- change_actor_state 313 [0, 0, 0, 8]
- # recover all; heals your health
- actor_recover_all 314 [0, 0]
- # change EXP
- change_actor_exp 315 [0, 0, 0, 0, 1, false]
- # change level
- change_actor_level 316 [0, 0, 0, 0, 1, false]
- # change parameters (edit stats)
- change_actor_parameters 317 [0, 1, 0, 0, 0, 1]
- # add/remove skills
- change_actor_skill 318 [0, 1, 0, 23]
- # change equipment for a party member
- change_actor_equip 319 [1, 0, 0]
- # change a characters name
- change_actor_name 320 [1, "Poopman"]
- # change a characters class
- change_actor_class 321 [1, 1]
- # change nickname
- change_actor_nickname 324 [1, "EROCK"]
- null 000 []
- # ###### MOVEMENT COMMANDS ######
- # Transfer player to map id/coordinates
- set_player_position 201 [0, 1, 6, 10, 0, 0]
- # set vehicle location
- set_vehicle_position 202 [0, 0, 1, 5, 6]
- # set event location
- set_event_position 203 [0, 0, 5, 6, 0]
- # scroll/move around your map
- scroll_map 204 [2, 1, 4]
- # set move route for an event
- set_move_route 205 [-1, {"repeat"=>false, "skippable"=>false, "wait"=>true, "list"=>[{"code"=>4, "parameters"=>[]}, {"code"=>0, "parameters"=>[]}]}]
- 505 [{"code"=>4, "parameters"=>[]}]
- # get on/off vehicle
- get_on_off_vehicle 206 []
- # ####### CHARACTER #######
- # change character transparency on/off
- change_transperency 211 [0]
- # disable/enable player followers
- set_followers_visiblity 216 [0]
- # gather followers
- gather_followers 217 []
- # show animation (by id)
- show_animation 212 [-1, 1, false]
- # show balloon icon
- show_balloon 213 [-1, 1, false]
- # erase event
- erase_event 214 []
- # ####### SCREEN EFFECTS #######
- # fadeout screen
- screen_fadeout 221 []
- # fade in screen
- screen_fadein 222 []
- # tint screen
- screen_tint 223 [{}, 60, true]
- # flash screen
- screen_flash 224 [{}, 60, true]
- # shake screen
- screen_shake 225 [5, 5, 60, true]
- # ####### WAIT #######
- # wait for a set amount of frames
- wait 230 [60]
- # ####### PICTURE AND WEATHER #######
- # show picture
- show_picture 231 [1, "", 0, 0, 0, 0, 100, 100, 255, 0]
- # move picture
- move_picture 232 [1, nil, 0, 0, 0, 0, 100, 100, 255, 0, 60, true]
- # rotate picture
- rotate_picture 233 [1, 5]
- # tint picture
- tint_picture 234 [1, {}, 60, true]
- # erase picture
- erase_picture 235 [1]
- # set weather effects
- set_weather 236 [":none", 9, 0, true]
- # ####### MUSIC AND SOUNDS #######
- # PLAY BGM
- bgm_play 241 [{"name"=>"Airship", "volume"=>100, "pitch"=>100}]
- # fadeout bgm
- bgm_fadeout 242 [10]
- # save bgm location
- bgm_save 243 []
- # replay bgm
- bgm_resume 244 []
- # play background sound
- bgs_play 245 [{"name"=>"Drips", "volume"=>80, "pitch"=>100}]
- # fadeout bgs
- bgs_fadeout 246 [10]
- # play ME
- me_play 249 [{"name"=>"Gameover1", "pitch"=>100, "volume"=>100}]
- # play sound effect
- se_play 250 [{"name"=>"Bite", "pitch"=>100, "volume"=>80}]
- # stop sound effect
- se_stop 251 []
- null 000 []
- # ####### SCENE CONTROL #######
- # battle processing
- process_battle 301 [0, 1, false, false]
- # Shop processing
- process_shop 302 [0, 1, 0, 0, false]
- # name input processing, allows the player to choose a name
- process_name_input 303 [1, 6]
- # force open menu screen
- process_menu 351 []
- # force open save screen
- process_save 352 []
- # game over
- process_gameover 353 []
- # return to title screen
- process_title 354 []
- # ####### SYSTEM SETTINGS #######
- # change battle music
- change_battle_bgm 132 [{"name"=>"Dungeon2", "volume"=>100, "pitch"=>100}]
- # change battle end jingle
- change_battle_end_me 133 [{"name"=>"Victory1", "pitch"=>100, "volume"=>100}]
- # enable/disable save ability
- change_save_access 134 [0]
- # enable/disable menu access
- change_menu_access 135 [0]
- # enable/disable random encounters
- change_encounter 136 [0]
- # change access to formation
- change_formation_access 137 [0]
- # change window color
- change_window_tone 138 [{}]
- # change actor graphic (sprite and face)
- change_actor_graphic 322 [1, "Actor4", 0, "Actor4", 0]
- # change vehicle graphic
- change_vehicle_graphic 323 [1, "Vehicle", 1]
- # play movie
- movie_play 261 [""]
- # ####### MAP ######
- # toggle map name display
- set_map_name_display 281 [0]
- # change tileset
- change_tileset 282 [1]
- # change battleback
- change_battle_background 283 ["DecorativeTile", "DemonCastle2"]
- # change parallax background
- change_parallax_background 284 ["SeaofClouds", false, false, 0, 0]
- # get location info (id tags, coordinates) from a specific coordinate
- get_location_info 285 [1, 0, 0, 5, 8]
- # ####### BATTLE STUFF ######
- # increase/decrease enemy HP
- change_enemy_hp 331 [-1, 0, 0, 1, false]
- # increase/decrease enemy MP
- change_enemy_mp 332 [-1, 0, 0, 1]
- # change enemy state
- change_enemy_state 333 [-1, 0, 7]
- # recover all enemies HP
- enemy_recover_all 334 [-1]
- # enemy appears
- enemy_appear 335 [0]
- # enemy transforms
- enemy_transform 336 [0, 1]
- # show battle animation
- show_battle_animation 337 [-1, 1]
- # force an action
- battle_force_action 339 [0, 0, 1, -1]
- # abort battle
- battle_abort 340 []
- # ############## SCRIPT cALL
- script 355 [""]
- null 000 []
- __END__
- test_easm = <<-__EOF__
- #define CONSTANT "delta"
- #define XINST inst2
- main:
- inst1
- XINST CONSTANT ; something
- if (x == y)
- inst3
- endif
- ; comment
- __EOF__
- puts EASM.read_easm_stream(test_easm).map(&:inspect).join("\n")
Advertisement
Add Comment
Please, Sign In to add comment