mkxp-sunshine/scripts/Scene_Name.rb
mshirt d8002dabca all the solstice changes
i'm lazy sorry and forgot to keep the repo up to date

but here's all the solstice scripts
2017-03-27 14:52:10 -05:00

113 lines
3.4 KiB
Ruby

#==============================================================================
# ** Scene_Name
#------------------------------------------------------------------------------
# This class performs name input screen processing.
#==============================================================================
class Scene_Name
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
# Make windows
@edit_window = Window_NameEdit.new
@input_window = Language.create_input
# Execute transition
Graphics.transition
# Main loop
loop do
# Update game screen
Graphics.update
# Update input information
Input.update
# Frame update
update
# Abort loop if screen is changed
if $scene != self
break
end
end
# Prepare for transition
Graphics.freeze
# Dispose of windows
@edit_window.dispose
@input_window.dispose
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# Update windows
@edit_window.update
@input_window.update
# If B button was pressed
if Input.repeat?(Input::CANCEL)
# If cursor position is at 0
if @edit_window.index == 0
return
end
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Delete text
@edit_window.back
return
end
# If C button was pressed
if Input.trigger?(Input::ACTION)
# If cursor position is at [OK]
if @input_window.character == nil
# Cursor is at OK or mode buttons
slot = @input_window.mode_button_slot
if slot == -1
# Cursor is at OK
# If name is empty
if @edit_window.name == ""
# Return to default name
@edit_window.restore_default
# If name is empty
if @edit_window.name == ""
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Play decision SE
$game_system.se_play($data_system.decision_se)
return
end
# Change actor name
if $game_switches[91]
$game_temp.countdown_password = @edit_window.name
else
$game_oneshot.player_name = @edit_window.name
end
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to map screen
$scene = Scene_Map.new
return
end
# Cursor is on mode buttons
$game_system.se_play($data_system.decision_se)
@input_window.cycle_mode(slot)
return
end
# If cursor position is at maximum
if @edit_window.index == @edit_window.max_char
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# If text character is empty
if @input_window.character == ""
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Add text character
@edit_window.add(@input_window.character)
return
end
end
end