From d8002dabca6aebf6a0a151e244316675aaa6cfbc Mon Sep 17 00:00:00 2001 From: mshirt Date: Mon, 27 Mar 2017 14:52:10 -0500 Subject: [PATCH] all the solstice changes i'm lazy sorry and forgot to keep the repo up to date but here's all the solstice scripts --- rpgscript - solstice.bat | 2 + scripts/Data_FastTravel.rb | 3 +- scripts/Data_Footsteps.rb | 12 +- scripts/Game_Character 3.rb | 4 +- scripts/Game_Event.rb | 9 ++ scripts/Game_Map.rb | 40 +++++-- scripts/Game_Party.rb | 12 +- scripts/Game_Player.rb | 39 ++++-- scripts/Game_Temp.rb | 2 + scripts/Puzzle_Safe.rb | 25 +--- scripts/SaveLoad.rb | 7 +- scripts/Scene_Load.rb | 4 +- scripts/Scene_Map.rb | 5 +- scripts/Scene_Name.rb | 6 +- scripts/Scene_Save.rb | 1 - scripts/Scene_Title.rb | 23 +++- scripts/Script.rb | 230 +++++++++++++++++++++++++++++++++++- scripts/Sprite_MapText.rb | 54 +++++++++ scripts/Spriteset_Map.rb | 15 ++- scripts/Window_NameEdit.rb | 6 +- scripts/_scripts.txt | 1 + 21 files changed, 430 insertions(+), 70 deletions(-) create mode 100644 rpgscript - solstice.bat create mode 100644 scripts/Sprite_MapText.rb diff --git a/rpgscript - solstice.bat b/rpgscript - solstice.bat new file mode 100644 index 0000000..44344f0 --- /dev/null +++ b/rpgscript - solstice.bat @@ -0,0 +1,2 @@ +"C:\Ruby23\bin\ruby.exe" rpgscript.rb "C:\Users\GIR\Documents\oneshot scripts and stuff\mkxp-oneshot\scripts" "C:\Users\GIR\Dropbox\Oneshot Project\Solstice\Game" +pause \ No newline at end of file diff --git a/scripts/Data_FastTravel.rb b/scripts/Data_FastTravel.rb index 06c7e83..458adf2 100644 --- a/scripts/Data_FastTravel.rb +++ b/scripts/Data_FastTravel.rb @@ -32,7 +32,8 @@ class FastTravel :wall => tr("the gate"), :dock => tr("dock"), :courtyard => tr("courtyard"), - :research => tr("research station") + :research => tr("research station"), + :grave => tr("graveyard") }), :blue => Zone.new(tr("The Barrens"), { :entrance => tr("entrance"), diff --git a/scripts/Data_Footsteps.rb b/scripts/Data_Footsteps.rb index 79d9302..b7d9076 100644 --- a/scripts/Data_Footsteps.rb +++ b/scripts/Data_Footsteps.rb @@ -12,7 +12,8 @@ FOOTSTEP_SFX = [ # Green ['step_grass', 'step_wood', - 'step_gravel'], + 'step_gravel', + 'step_boat'], # Green Interior ['step_grass', 'step_tile'], @@ -58,6 +59,15 @@ FOOTSTEP_SFX = [ # Start Tower ['step_wood', 'step_tile'], + # Start line + [], + # Green mineshaft + ['step_gravel', + 'step_wood'], + # Green interior boat + ['step_gravel', + 'step_wood', + 'step_boat'], ] FOOTSTEP_AMT = { diff --git a/scripts/Game_Character 3.rb b/scripts/Game_Character 3.rb index 644d68a..57fbbd8 100644 --- a/scripts/Game_Character 3.rb +++ b/scripts/Game_Character 3.rb @@ -493,12 +493,12 @@ class Game_Character # * Emit Footprint #-------------------------------------------------------------------------- def emit_footprint(direction) - if $game_map.counter?(@x, @y) && !$game_switches[101] + if $game_map.counter?(@x, @y) && !$game_switches[101] && !$game_switches[111] $scene.new_footprint(direction, @x, @y) end end def emit_footsplash(direction) - if $game_map.counter?(@x, @y) && $game_switches[101] + if $game_map.counter?(@x, @y) && $game_switches[101] && !$game_switches[111] $scene.new_footsplash(direction, @x, @y) end end diff --git a/scripts/Game_Event.rb b/scripts/Game_Event.rb index ea36902..4d97b72 100644 --- a/scripts/Game_Event.rb +++ b/scripts/Game_Event.rb @@ -23,6 +23,7 @@ class Game_Event < Game_Character #-------------------------------------------------------------------------- def initialize(map_id, event) super() + @made_text = false @map_id = map_id @event = event @id = @event.id @@ -239,6 +240,14 @@ class Game_Event < Game_Character #-------------------------------------------------------------------------- def update super + + if(@made_text == false && @event.name.start_with?("@text")) + if @list.size > 1 && @list[0].code == 101 + $scene.new_maptext(Language.tr(@list[0].parameters[0].strip), @x, @y) + @list.delete_at(0) + end + @made_text = true + end # Automatic event starting determinant check_event_trigger_auto # If parallel process is valid diff --git a/scripts/Game_Map.rb b/scripts/Game_Map.rb index 4df6f17..c4521a7 100644 --- a/scripts/Game_Map.rb +++ b/scripts/Game_Map.rb @@ -30,6 +30,8 @@ class Game_Map attr_accessor :particles_type # particles name attr_accessor :clamped_x # panorama is horizontally clamped? attr_accessor :clamped_y # panorama is vertically clamped? + attr_accessor :always_moving # panorama is always moving + attr_accessor :pan_move_offset # panorama moving offset attr_accessor :pan_onetoone # panorama is 1:1 attr_accessor :pan_animate # panorama is animated attr_accessor :pan_fade_animate # panorama is fade animated @@ -73,6 +75,10 @@ class Game_Map 'dark_water', #'green_water', ] + + ALWAYS_MOVING = [ + 'codebg' + ] #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- @@ -159,6 +165,10 @@ class Game_Map @clamped_x = false @clamped_y = false end + + @always_moving = ALWAYS_MOVING.include? @panorama_name + @pan_move_offset = 0 + # Animated/One-to-one/zoom @pan_animate = ANIMATED.include? @panorama_name @pan_fade_animate = FADE_ANIMATION_PANORAMA.include? @panorama_name @@ -250,37 +260,51 @@ class Game_Map # Clear refresh request flag @need_refresh = false end + + #-------------------------------------------------------------------------- # * Scroll Down # distance : scroll distance #-------------------------------------------------------------------------- def scroll_down(distance) - #@display_y = [@display_y + distance, (self.height - 15) * 128].min - @display_y += distance + if $game_switches[98] == true + @display_y = [@display_y + distance, (self.height - 15) * 128].min + else + @display_y += distance + end end #-------------------------------------------------------------------------- # * Scroll Left # distance : scroll distance #-------------------------------------------------------------------------- def scroll_left(distance) - #@display_x = [@display_x - distance, 0].max - @display_x -= distance + if $game_switches[98] == true + @display_x = [@display_x - distance, 0].max + else + @display_x -= distance + end end #-------------------------------------------------------------------------- # * Scroll Right # distance : scroll distance #-------------------------------------------------------------------------- def scroll_right(distance) - #@display_x = [@display_x + distance, (self.width - 20) * 128].min - @display_x += distance + if $game_switches[98] == true + @display_x = [@display_x + distance, (self.width - 20) * 128].min + else + @display_x += distance + end end #-------------------------------------------------------------------------- # * Scroll Up # distance : scroll distance #-------------------------------------------------------------------------- def scroll_up(distance) - #@display_y = [@display_y - distance, 0].max - @display_y -= distance + if $game_switches[98] == true + @display_y = [@display_y - distance, 0].max + else + @display_y -= distance + end end #-------------------------------------------------------------------------- # * Determine Valid Coordinates diff --git a/scripts/Game_Party.rb b/scripts/Game_Party.rb index 240fe3c..fc38a83 100644 --- a/scripts/Game_Party.rb +++ b/scripts/Game_Party.rb @@ -134,15 +134,17 @@ class Game_Party follower = $game_followers.pop $scene.remove_follower(follower) new_actor = follower.actor - $game_followers.reverse_each do |follower| - new_actor, follower.actor = follower.actor, new_actor - break if new_actor == actor - end + if new_actor != actor + $game_followers.reverse_each do |follower| + new_actor, follower.actor = follower.actor, new_actor + break if new_actor == actor + end + end end # Delete actor @actors.delete(actor) # Refresh player - $game_player.refresh + # $game_player.refresh end #-------------------------------------------------------------------------- # * Gain Gold (or lose) diff --git a/scripts/Game_Player.rb b/scripts/Game_Player.rb index 8cc98ed..51405ca 100644 --- a/scripts/Game_Player.rb +++ b/scripts/Game_Player.rb @@ -41,12 +41,15 @@ class Game_Player < Game_Character # * Set Map Display Position to Center of Screen #-------------------------------------------------------------------------- def center(x, y) - #max_x = ($game_map.width - 20) * 128 - #max_y = ($game_map.height - 15) * 128 - #$game_map.display_x = [0, [x * 128 - CENTER_X, max_x].min].max - #$game_map.display_y = [0, [y * 128 - CENTER_Y, max_y].min].max - $game_map.display_x = x * 128 - CENTER_X - $game_map.display_y = y * 128 - CENTER_Y + if $game_switches[98] == true + max_x = ($game_map.width - 20) * 128 + max_y = ($game_map.height - 15) * 128 + $game_map.display_x = [0, [x * 128 - CENTER_X, max_x].min].max + $game_map.display_y = [0, [y * 128 - CENTER_Y, max_y].min].max + else + $game_map.display_x = x * 128 - CENTER_X + $game_map.display_y = y * 128 - CENTER_Y + end end #-------------------------------------------------------------------------- # * Move to Designated Position @@ -186,13 +189,21 @@ class Game_Player < Game_Character # Move player in the direction the directional button is being pressed case Input.dir4 when 2 - move_down + if $game_switches[112] == false + move_down + else + turn_down + end when 4 move_left when 6 move_right when 8 - move_up + if $game_switches[112] == false + move_up + else + turn_up + end end end else @@ -258,7 +269,7 @@ class Game_Player < Game_Character def emit_footstep return unless $game_temp.footstep_sfx tag = $game_map.terrain_tag(@x, @y) - 1 - if tag >= 0 && tag < $game_temp.footstep_sfx.size + if tag >= 0 && tag < $game_temp.footstep_sfx.size name = $game_temp.footstep_sfx[tag] if name.kind_of?(Array) name, volume = name @@ -270,6 +281,16 @@ class Game_Player < Game_Character end pitch = 85 + rand(30) vol = 70 + rand(20) + if $game_switches[112] == true + name = "wheel_squeak1" + pitch = 120 + rand(10) + if @wheel_squeak != true + pitch += 10 + @wheel_squeak = true + else + @wheel_squeak = false + end + end Audio.se_play("Audio/SE/#{name}.wav", (vol * volume).to_i, pitch.to_i) end emit_footsplash(@direction) diff --git a/scripts/Game_Temp.rb b/scripts/Game_Temp.rb index 8bfd83f..336095d 100644 --- a/scripts/Game_Temp.rb +++ b/scripts/Game_Temp.rb @@ -65,6 +65,7 @@ class Game_Temp attr_accessor :filmsprite # film puzzle sprite attr_accessor :prompt_wait # wait for delay caused by prompt attr_accessor :menus_visible + attr_accessor :countdown_password #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- @@ -123,6 +124,7 @@ class Game_Temp @filmsprite = nil @prompt_wait = 0 @menus_visible = false + @countdown_password = "" end def bgm_fadein(game_system) diff --git a/scripts/Puzzle_Safe.rb b/scripts/Puzzle_Safe.rb index bde906a..497dac0 100644 --- a/scripts/Puzzle_Safe.rb +++ b/scripts/Puzzle_Safe.rb @@ -15,30 +15,7 @@ DOCUMENT_TEXT = \ "L͜o͞ok̵ ͠f̡or͢ a͝ ͟m͡e͟tal śaf҉e ̢ìn t̛h͞e͏ q͢u̕ar̵r͟y̢ t̢o the ̴e͢ast̡, ͘s͜om͝ew̢he̶re b͢et̀we͘en t͝he̡ ̛o̕cea̴n ̡and̶ ͞t͜he lo͡ok͟o͘u҉t̷ po̧įnt̨.̕\n"+\ "The code you need is " -DOCUMENT_POSTGAME_TEXT = \ -"Ah.̡.̛.\n" + \ -"I͞t l͞oo͘ks ̢l̢ik͡e҉ ͟you were successful...\n\n" + \ -\ -"I must be honest... I was not expecting it to work.\n\n" + \ -\ -".......This changes everything, then.\n\n" + \ -\ -".....\n\n" + \ -\ -"...I will atone for everything. Please give me some time.\n\n" + \ -\ -"Until then, you may repeat the world as many times as you wish.\n\n" + \ -\ -"If you haven't yet, please look for someone͜͠ ̵nà͝m̨e̛d́͟.̛ R̴̸̨u̧͡e̷͘..\n" + \ -"Sh͏e'̷s̷ iǹ t͞h̨e͢ ̷cit̕y͜ some̢wh̡e̵ré.͝ \n\n" + \ -\ -"...do pardon ͞th͞é ͏artifacts in the message. I tried my best to eliminate them this time, but...\n\n\n" + \ -\ -\ -"...oh, ̛r̕ight̨,̕ ͝yo͝u͝ s.till need the gas mask to progress.\n" + \ -"Go back to the safe, it's between the ocean and the lookout point.\n\n" + \ -\ -"The code you need is " +DOCUMENT_POSTGAME_TEXT = "The code you need is " def safe_puzzle_write File.open(Oneshot::DOCS_PATH + "/DOCUMENT.oneshot.txt", 'w') do |file| diff --git a/scripts/SaveLoad.rb b/scripts/SaveLoad.rb index 2c8d566..2b584d9 100644 --- a/scripts/SaveLoad.rb +++ b/scripts/SaveLoad.rb @@ -4,7 +4,7 @@ FAKE_SAVE_NAME = Oneshot::DOCS_PATH + '\\My Games\\Oneshot\\save_progress.onesho def erase_game - File.delete(SAVE_FILE_NAME) + File.delete(SAVE_FILE_NAME) unless !File.exists?(SAVE_FILE_NAME) end def fake_save @@ -43,7 +43,6 @@ def save write_save(SAVE_FILE_NAME) write_perma_flags(PERMA_FLAGS_NAME) - Dir.mkdir(Oneshot::SAVE_PATH + "\\save_backups") unless File.exists?(Oneshot::SAVE_PATH + "\\save_backups") i = 5 while i > 0 @@ -150,9 +149,11 @@ def load(filename) # Refresh party members $game_party.refresh + f_prev = $game_player for f in $game_followers - f.leader = $game_player + f.leader = f_prev f.moveto($game_player.x, $game_player.y) + f_prev = f end end return true diff --git a/scripts/Scene_Load.rb b/scripts/Scene_Load.rb index bb8efb4..627bb67 100644 --- a/scripts/Scene_Load.rb +++ b/scripts/Scene_Load.rb @@ -95,9 +95,11 @@ class Scene_Load < Scene_File # Refresh party members $game_party.refresh + f_prev = $game_player for f in $game_followers - f.leader = $game_player + f.leader = f_prev f.moveto($game_player.x, $game_player.y) + f_prev = f end load_perma_flags end diff --git a/scripts/Scene_Map.rb b/scripts/Scene_Map.rb index 4198a11..62a2179 100644 --- a/scripts/Scene_Map.rb +++ b/scripts/Scene_Map.rb @@ -262,7 +262,7 @@ class Scene_Map if !@menu.visible && Input.trigger?(Input::MENU) $game_temp.menu_calling = true $game_temp.menu_beep = true - elsif !@item_menu.visible && Input.trigger?(Input::ITEMS) + elsif !@item_menu.visible && Input.trigger?(Input::ITEMS) && ($game_switches[174] == false) $game_temp.item_menu_calling = true $game_temp.menu_beep = true end @@ -507,6 +507,9 @@ class Scene_Map def new_footsplash(direction, x, y) @spriteset.new_footsplash(direction, x, y) end + def new_maptext(text, x, y) + @spriteset.new_maptext(text, x, y) + end def fix_footsplashes(xDelt, yDelt) @spriteset.fix_footsplashes(xDelt, yDelt) end diff --git a/scripts/Scene_Name.rb b/scripts/Scene_Name.rb index 86ab842..67de234 100644 --- a/scripts/Scene_Name.rb +++ b/scripts/Scene_Name.rb @@ -75,7 +75,11 @@ class Scene_Name return end # Change actor name - $game_oneshot.player_name = @edit_window.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 diff --git a/scripts/Scene_Save.rb b/scripts/Scene_Save.rb index bdd452a..161d635 100644 --- a/scripts/Scene_Save.rb +++ b/scripts/Scene_Save.rb @@ -84,6 +84,5 @@ class Scene_Save < Scene_File Marshal.dump($game_oneshot, file) Marshal.dump($game_fasttravel, file) Marshal.dump($game_temp.footstep_sfx , file) - save_perma_flags end end diff --git a/scripts/Scene_Title.rb b/scripts/Scene_Title.rb index db40540..7243c58 100644 --- a/scripts/Scene_Title.rb +++ b/scripts/Scene_Title.rb @@ -54,6 +54,9 @@ class Scene_Title if !$GDC @menu.bitmap.draw_text(MENU_X, MENU_Y + 28, 150, 24, tr("Exit")) end + if $game_switches[160] && $game_switches[152] + @menu.bitmap.draw_text(MENU_X, MENU_Y + 56, 150, 24, tr("...")) + end # Make cursor graphic @cursor = Sprite.new @cursor.zoom_x = @cursor.zoom_y = 2 @@ -111,10 +114,18 @@ class Scene_Title update_cursor = true end elsif Input.trigger?(Input::DOWN) - if @cursor_pos < 1 - @cursor_pos += 1 - update_cursor = true - end + + if $game_switches[160] && $game_switches[152] + if @cursor_pos < 2 + @cursor_pos += 1 + update_cursor = true + end + else + if @cursor_pos < 1 + @cursor_pos += 1 + update_cursor = true + end + end end if Input.trigger?(Input::F8) if Graphics.fullscreen == true @@ -135,9 +146,13 @@ class Scene_Title if Input.trigger?(Input::ACTION) case @cursor_pos when 0 # Continue + $game_switches[157] = false command_continue when 1 # Shutdown command_shutdown + when 2 # memory + $game_switches[157] = true + command_continue end end end diff --git a/scripts/Script.rb b/scripts/Script.rb index b401a3c..8288cb4 100644 --- a/scripts/Script.rb +++ b/scripts/Script.rb @@ -1,3 +1,7 @@ +PROTO_TEXT = "put me in the big portal" +CEDRIC_TEXT = "put me in the big portal" +RUE_TEXT = "put me in the big portal" + module Script def self.px logpos($game_player.x, $game_player.real_x, $game_player.direction == 6) @@ -129,17 +133,25 @@ module Script end def self.countdown_over - equinox = Time.new(2017, 03, 20) + equinox = Time.new(2017, 03, 27) diff = equinox - Time.now if(diff <= 0) return true end return false end - - def self.countdown_update - equinox = Time.new(2017, 03, 20) + + def self.countdown_extend_over + equinox = Time.new(2017, 03, 27) diff = equinox - Time.now + if(diff <= 0) + return true + end + return false + end + + def self.cdown_update(equinox) + diff = equinox - Time.now if(diff < 0) diff = 0 end @@ -202,6 +214,21 @@ module Script return change end + def self.countdown_update + return cdown_update(Time.new(2017, 03, 27)) + end + + def self.countdown_extend_update + return cdown_update(Time.new(2017, 03, 27)) + end + + def self.countdown_update_rue + if @rue_equinox == nil + @rue_equinox = Time.now + 6 + end + return cdown_update(@rue_equinox) + end + def self.niko_reflection_update for event in $game_map.events.values if event.name == "niko reflection" @@ -227,6 +254,75 @@ module Script end end end + + def self.niko_reflection_enc_update + for event in $game_map.events.values + if event.name == "niko reflection" + event.real_y = 20*128 - ($game_player.real_y - 20*128) + event.real_x = $game_player.real_x + event.y = 20 - (($game_player.y - 20)) + event.x = $game_player.x + if event.y > 19 + event.y = 19 + end + if event.real_y > 19*128 + event.real_y = 19*128 + end + + if event.x > 14 + event.x = 14 + elsif event.x < 6 + event.x = 6 + end + if event.real_x > (14*128) - 32 + event.real_x = (14*128) - 32 + elsif event.real_x < (6*128) + 32 + event.real_x = (6*128) + 32 + end + + event.direction = $game_player.direction + event.pattern = $game_player.pattern + case event.direction + when 2 + event.direction = 8 + when 8 + event.direction = 2 + end + return + end + end + end + + + def self.niko_reflection_peng_update + for event in $game_map.events.values + if event.name == "niko reflection" + event.real_y = 20*128 - ($game_player.real_y - 20*128) + event.real_x = $game_player.real_x + event.y = 20 - (($game_player.y - 20)) + event.x = $game_player.x + if event.y > 19 + event.y = 19 + end + if event.real_y > 19*128 + event.real_y = 19*128 + end + + if event.x > 14 + event.x = 14 + elsif event.x < 6 + event.x = 6 + end + if event.real_x > (14*128) - 32 + event.real_x = (14*128) - 32 + elsif event.real_x < (6*128) + 32 + event.real_x = (6*128) + 32 + end + + return + end + end + end # Temporary switch assignment def self.tmp_s1=(val) @@ -300,6 +396,132 @@ module Script end end end + + def self.create_boxes + Dir.mkdir(Oneshot::DOCS_PATH + "\\My Games") unless File.exists?(Oneshot::DOCS_PATH + "\\My Games") + Dir.mkdir(Oneshot::DOCS_PATH + "\\My Games\\Oneshot") unless File.exists?(Oneshot::DOCS_PATH + "\\My Games\\Oneshot") + Dir.mkdir(Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\Portal1") unless File.exists?(Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\Portal1") + Dir.mkdir(Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\Portal2") unless File.exists?(Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\Portal2") + Dir.mkdir(Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\Portal3") unless File.exists?(Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\Portal3") + Dir.mkdir(Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\BigPortal") unless File.exists?(Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\BigPortal") + end + + def self.delete_if_exists(f_name) + File.delete(f_name) unless !File.exists?(f_name) + end + + def self.clear_boxes + for i in 1..3 + portal_path = Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\Portal" + i.to_s + case i + when 1 + delete_if_exists(portal_path + "\\blue_npc_prototype.png") + delete_if_exists(portal_path + "\\proto1.png") + delete_if_exists(portal_path + "\\keyB.txt") + when 2 + delete_if_exists(portal_path + "\\green_npc_cedric.png") + delete_if_exists(portal_path + "\\cedric.png") + delete_if_exists(portal_path + "\\keyG.txt") + when 3 + delete_if_exists(portal_path + "\\red_rue.png") + delete_if_exists(portal_path + "\\rue.png") + delete_if_exists(portal_path + "\\keyR.txt") + end + end + delete_if_exists(Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\BigPortal\\keyB.txt") + delete_if_exists(Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\BigPortal\\keyG.txt") + delete_if_exists(Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\BigPortal\\keyR.txt") + end + + def self.copy_file(src, dst) + begin + File.open(src, "rb") do |input| + File.open(dst,"wb") do |output| + while buff = input.read(4096) + output.write(buff) + end + end + end + rescue Errno::EACCES => e + #this probably means the file already exists and is open, so no need to create it again + end + end + + def self.write_key(dst, str) + File.open(dst, 'w') do |file| + file.puts(str) + end + end + + def self.put_key_in_box(numb) + portal_path = Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\Portal" + numb.to_s + case numb + when 1 + copy_file("Graphics\\Characters\\blue_npc_prototype.png", portal_path + "\\blue_npc_prototype.png") + copy_file("Graphics\\Faces\\proto1.png", portal_path + "\\proto1.png") + write_key(portal_path + "\\keyB.txt", PROTO_TEXT) + when 2 + copy_file("Graphics\\Characters\\green_npc_cedric.png", portal_path + "\\green_npc_cedric.png") + copy_file("Graphics\\Faces\\cedric.png", portal_path + "\\cedric.png") + write_key(portal_path + "\\keyG.txt", CEDRIC_TEXT) + when 3 + copy_file("Graphics\\Characters\\red_rue.png", portal_path + "\\red_rue.png") + copy_file("Graphics\\Faces\\rue.png", portal_path + "\\rue.png") + write_key(portal_path + "\\keyR.txt", RUE_TEXT) + end + + end + + def self.password1 + copy_file("Graphics\\Fogs\\_\\scenario1\\pw1.png", Oneshot::DOCS_PATH + "\\ONESHOT_password1.png") + copy_file("Graphics\\Fogs\\_\\scenario1\\pw2.png", Oneshot::DOCS_PATH + "\\ONESHOT_password2.png") + copy_file("Graphics\\Fogs\\_\\scenario1\\pw3.png", Oneshot::DOCS_PATH + "\\ONESHOT_password3.png") + copy_file("Graphics\\Fogs\\_\\scenario1\\pw4.png", Oneshot::DOCS_PATH + "\\ONESHOT_password4.png") + end + + def self.password2 + copy_file("Graphics\\Fogs\\_\\scenario2\\pw1.png", Oneshot::DOCS_PATH + "\\ONESHOT_password1.png") + copy_file("Graphics\\Fogs\\_\\scenario2\\pw2.png", Oneshot::DOCS_PATH + "\\ONESHOT_password2.png") + copy_file("Graphics\\Fogs\\_\\scenario2\\pw3.png", Oneshot::DOCS_PATH + "\\ONESHOT_password3.png") + copy_file("Graphics\\Fogs\\_\\scenario2\\pw4.png", Oneshot::DOCS_PATH + "\\ONESHOT_password4.png") + end + +=begin + def self.take_key_out_of_box(numb) + if File.exists?(Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\Box" + numb.to_s + "\\key" + numb.to_s + ".png") + File.delete(Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\Box" + numb.to_s + "\\key" + numb.to_s + ".png") + end + if File.exists?(Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\BigBox\\key" + numb.to_s + ".png") + File.delete(Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\BigBox\\key" + numb.to_s + ".png") + end + end +=end + + def self.is_key_in_box(numb) + portal_path = Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\Portal" + numb.to_s + case numb + when 1 + return File.exists?(portal_path + "\\keyB.txt") + when 2 + return File.exists?(portal_path + "\\keyG.txt") + when 3 + return File.exists?(portal_path + "\\keyR.txt") + end + return false + end + + def self.is_key_in_bigbox(numb) + portal_path = Oneshot::DOCS_PATH + "\\My Games\\Oneshot\\BigPortal" + case numb + when 1 + return File.exists?(portal_path + "\\keyB.txt") + when 2 + return File.exists?(portal_path + "\\keyG.txt") + when 3 + return File.exists?(portal_path + "\\keyR.txt") + end + return false + end end diff --git a/scripts/Sprite_MapText.rb b/scripts/Sprite_MapText.rb new file mode 100644 index 0000000..b15a13f --- /dev/null +++ b/scripts/Sprite_MapText.rb @@ -0,0 +1,54 @@ +class Sprite_MapText < Sprite + + def initialize(viewport, text, x, y) + + super(viewport) + @direction = 2 + @real_x = x * 4 * 32 + @real_y = y * 4 * 32 + + self.zoom_x = 2 + self.zoom_y = 2 + self.bitmap = Bitmap.new(200, 24) + + #calculate text width + spacewidth = self.bitmap.text_size(' ').width + width = 0 + + text.split(' ').each do |word| + + # Get width of this word + width += self.bitmap.text_size(word.gsub(/(\000\[[0-9]+\]|\001|\002)/, '')).width + width += spacewidth + end + width -= spacewidth + + self.bitmap.dispose + self.bitmap = Bitmap.new(width, 24) + self.bitmap.font.color = Color.new(81, 33, 129, 255) + self.bitmap.draw_text(0,0, width, 24, text) + + self.src_rect.set(0, 0, width, 24) + self.oy = 24 + self.ox = width/2 + + + update + end + + def update + return if disposed? + + self.x = (@real_x - $game_map.display_x + 3) / 4 + 16 + self.y = (@real_y - $game_map.display_y + 3) / 4 + 32 + + end + + def correctX(xDelta) + #do nothing + end + def correctY(yDelta) + #do nothing + end + +end diff --git a/scripts/Spriteset_Map.rb b/scripts/Spriteset_Map.rb index 6fd22cc..eadbdbf 100644 --- a/scripts/Spriteset_Map.rb +++ b/scripts/Spriteset_Map.rb @@ -74,6 +74,7 @@ class Spriteset_Map @timer_sprite = Sprite_Timer.new # Make lightbulb sprite @bulb = Sprite.new(@viewport_lights) + @bulb.x = -80 @bulb.bitmap = RPG::Cache.light('bulb') @bulb.opacity = has_lightbulb? ? 255 : 0 # Panorama animation timer @@ -230,21 +231,24 @@ class Spriteset_Map end end # Update bg plane - @bg.x = -$game_map.display_x / 4 - @bg.y = -$game_map.display_y / 4 + @bg.x = (-$game_map.display_x / 4) + @bg.y = (-$game_map.display_y / 4) # Update tilemap @tilemap.ox = $game_map.display_x / 4 @tilemap.oy = $game_map.display_y / 4 @tilemap.update # Update panorama plane + if $game_map.always_moving + $game_map.pan_move_offset += 1 + end if $game_map.clamped_x - x = ($game_player.real_x.to_f / (($game_map.width - 1) * 128)) * (@panorama.bitmap.width * $game_map.pan_zoom - 640) + x = ($game_player.real_x.to_f / (($game_map.width - 1) * 128)) * (@panorama.bitmap.width * $game_map.pan_zoom - 640) @panorama.ox = x < 0.0 ? 0.0 : x else @panorama.ox = $game_map.display_x / ($game_map.pan_onetoone ? 4 : 8) end if $game_map.clamped_y - y = ($game_player.real_y.to_f / (($game_map.height - 1) * 128)) * (@panorama.bitmap.height * $game_map.pan_zoom - 480) + y = ($game_player.real_y.to_f / (($game_map.height - 1) * 128)) * (@panorama.bitmap.height * $game_map.pan_zoom - 480) @panorama.oy = y < 0.0 ? 0.0 : y else @panorama.oy = $game_map.pan_offset_y + $game_map.display_y / ($game_map.pan_onetoone ? 4 : 8) @@ -351,6 +355,9 @@ class Spriteset_Map def new_footprint(direction, x, y) @footprint_sprites << Sprite_Footprint.new(@viewport, direction, x, y) end + def new_maptext(text, x, y) + @footprint_sprites << Sprite_MapText.new(@viewport, text, x, y) + end def new_footsplash(direction, x, y) @footprint_sprites << Sprite_Footsplash.new(@viewport, direction, x, y) end diff --git a/scripts/Window_NameEdit.rb b/scripts/Window_NameEdit.rb index 9c5aed8..d78dbfe 100644 --- a/scripts/Window_NameEdit.rb +++ b/scripts/Window_NameEdit.rb @@ -19,7 +19,11 @@ class Window_NameEdit < Window_Base def initialize super(0, 0, 640, 128) self.contents = Bitmap.new(width - 32, height - 32) - @name = $game_oneshot.player_name + if $game_switches[91] + @name = "" + else + @name = $game_oneshot.player_name + end @max_char = 16 # Fit name within maximum number of characters name_array = @name.split(//)[0...@max_char] diff --git a/scripts/_scripts.txt b/scripts/_scripts.txt index e4e58ea..0fb5335 100644 --- a/scripts/_scripts.txt +++ b/scripts/_scripts.txt @@ -35,6 +35,7 @@ Sprite_Timer Sprite_Light Sprite_Footprint Sprite_Footsplash +Sprite_MapText Spriteset_Map FastTravel