diff --git a/Data/Map019.rxdata b/Data/Map019.rxdata index b490899ab..e5e18068d 100644 Binary files a/Data/Map019.rxdata and b/Data/Map019.rxdata differ diff --git a/Data/Map020.rxdata b/Data/Map020.rxdata index 7468a23ff..60eda68e0 100644 Binary files a/Data/Map020.rxdata and b/Data/Map020.rxdata differ diff --git a/Data/Map078.rxdata b/Data/Map078.rxdata index ba1aff3d4..aa407bd24 100644 Binary files a/Data/Map078.rxdata and b/Data/Map078.rxdata differ diff --git a/Data/MapInfos.rxdata b/Data/MapInfos.rxdata index 5f209731c..89ba84cdc 100644 Binary files a/Data/MapInfos.rxdata and b/Data/MapInfos.rxdata differ diff --git a/Data/Scripts/001_Settings.rb b/Data/Scripts/001_Settings.rb index 2ce55ed0e..91705fdcb 100644 --- a/Data/Scripts/001_Settings.rb +++ b/Data/Scripts/001_Settings.rb @@ -330,7 +330,7 @@ module Settings POKE_RADAR_ENCOUNTERS = [ [78, 30, :FLETCHLING,2,5], #Rt. 1 [86, 30, :FLETCHLING,2,5], #Rt. 2 - [90, 30, :FLETCHLING,2,5], #Rt. 2 + [90, 30, :FLETCHLING,2,5], #Rt. 2 [491, 30, :SHROOMISH,2,5], #Viridian Forest [490, 30, :BUDEW,4,9], #Rt. 3 [106, 30, :NINCADA,8,10], #Rt. 4 @@ -359,25 +359,25 @@ module Settings [171, 30, :BIDOOF,2,5], #Rt. 22 [143, 30, :RIOLU,25,25], #Rt. 23 [8, 30, :BUNEARY,12,13], #Rt. 24 - [145, 30, :ABSOL,30,35], #Rt. 26 - [147, 30, :ABSOL,30,35], #Rt. 27 + [145, 30, :ABSOL,30,35], #Rt. 26 + [147, 30, :ABSOL,30,35], #Rt. 27 [311, 30, :BIDOOF,5,5], #Rt. 29 - [284, 30, :LUXIO,40,45], #Rt. 33 - [288, 30, :VIGOROTH,40,45], #Rt. 32 - [342, 30, :GOLETT,40,45], #Ruins of Alph - [261, 30, :BELLOSSOM,45,50], #Rt. 31 - [262, 30, :BIBAREL,45,50], #Rt. 30 + [284, 30, :LUXIO,40,45], #Rt. 33 + [288, 30, :VIGOROTH,40,45], #Rt. 32 + [342, 30, :GOLETT,40,45], #Ruins of Alph + [261, 30, :BELLOSSOM,45,50], #Rt. 31 + [262, 30, :BIBAREL,45,50], #Rt. 30 [265, 30, :KIRLIA,25,30], #Rt. 34 - [267, 30, :SUDOWOODO,25,30], #Rt. 36 + [267, 30, :SUDOWOODO,25,30], #Rt. 36 [300, 30, :ROSELIA,30,30], #National Park [300, 30, :BRELOOM,30,30], #Ilex Forest [670, 30, :WEAVILE,50,50], #Ice mountains [528, 30, :PYUKUMUKU,20,20], #Treasure Beach [690, 30, :OCTILLERY,32,45], #Deep Ocean [561, 30, :MAGMAR,32,45], #Mt. Ember - [562, 30, :NINJASK,45,50], #Boon Island - [603, 30, :KECLEON,45,50], #Chrono Island - [654, 30, :WHIMSICOTT,32,45] #Brine Road + [562, 30, :NINJASK,45,50], #Boon Island + [603, 30, :KECLEON,45,50], #Chrono Island + [654, 30, :WHIMSICOTT,32,45] #Brine Road ] #============================================================================= diff --git a/Data/Scripts/012_Overworld/002_Battle triggering/002_Overworld_BattleIntroAnim.rb b/Data/Scripts/012_Overworld/002_Battle triggering/002_Overworld_BattleIntroAnim.rb index 43ab8a88d..d4fda2b9e 100644 --- a/Data/Scripts/012_Overworld/002_Battle triggering/002_Overworld_BattleIntroAnim.rb +++ b/Data/Scripts/012_Overworld/002_Battle triggering/002_Overworld_BattleIntroAnim.rb @@ -2,18 +2,12 @@ # Battle intro animation #=============================================================================== def pbSceneStandby - $scene.disposeSpritesets if $scene && $scene.is_a?(Scene_Map) - if RPG::Cache.need_clearing - RPG::Cache.clear - end - Graphics.frame_reset yield - $scene.createSpritesets if $scene && $scene.is_a?(Scene_Map) end def pbBattleAnimation(bgm=nil,battletype=0,foe=nil) $game_temp.in_battle = true - viewport = Viewport.new(0,0,Graphics.width,Graphics.height) + viewport = Viewport.new(0,0,Graphicsc.width,Graphics.height) viewport.z = 99999 # Set up audio playingBGS = nil diff --git a/Data/Scripts/019_Utilities/001_Utilities.rb b/Data/Scripts/019_Utilities/001_Utilities.rb index 76428547d..fa24b760e 100644 --- a/Data/Scripts/019_Utilities/001_Utilities.rb +++ b/Data/Scripts/019_Utilities/001_Utilities.rb @@ -572,7 +572,7 @@ def pbLoadRpgxpScene(scene) oldscene = $scene $scene = scene Graphics.freeze - oldscene.disposeSpritesets + #oldscene.disposeSpritesets visibleObjects = pbHideVisibleObjects Graphics.transition(20) Graphics.freeze @@ -582,7 +582,7 @@ def pbLoadRpgxpScene(scene) Graphics.transition(20) Graphics.freeze $scene = oldscene - $scene.createSpritesets + #$scene.createSpritesets pbShowObjects(visibleObjects) Graphics.transition(20) end diff --git a/Data/Scripts/050_AddOns/Footprints.rb b/Data/Scripts/050_AddOns/Footprints.rb index 986d975d3..254ab6fc1 100644 --- a/Data/Scripts/050_AddOns/Footprints.rb +++ b/Data/Scripts/050_AddOns/Footprints.rb @@ -1,225 +1,225 @@ -#=============================================================================== -# Klein Footprints / WolfPP for Pokémon Essentials -# Give credits if you're using this! -# http://kleinstudio.deviantart.com +# #=============================================================================== +# # Klein Footprints / WolfPP for Pokémon Essentials +# # Give credits if you're using this! +# # http://kleinstudio.deviantart.com +# # +# # bo4p5687 update (v.19) +# #=============================================================================== # -# bo4p5687 update (v.19) -#=============================================================================== - -# Fix event comment -def pbEventCommentInput(*args) - parameters = [] - list = *args[0].list # Event or event page - elements = *args[1] # Number of elements - trigger = *args[2] # Trigger - return nil if list == nil - return nil unless list.is_a?(Array) - for item in list - next unless item.code == 108 || item.code == 408 - if item.parameters[0] == trigger[0] - start = list.index(item) + 1 - finish = start + elements[0] - for id in start...finish - next if !list[id] - parameters.push(list[id].parameters[0]) - end - return parameters - end - end - return nil -end - -module FootprintVariables - # If you set pokemon here, they doesn't have footprints - FOLLOWING_DONT_WALK = [ - # Example: - # 12,15,17 - ] - - # Set here the terrain tag for footprints, 3 is sand - TERRAIN_FOOT = 3 - - # Initial opacity for footprints - FOOT_OPACITY = 62 - - # Delay velocity - FOOT_DELAY = 1.1 - - def self.get_new_id - newId = 1 - while !$game_map.events[newId].nil? do - break if $game_map.events[newId].erased - newId += 1 - end - return newId - end - - def self.show(event, position) - if event != $game_player - return if event.character_name == "" || event.character_name == "nil" || event.name.include?("/nofoot/") - return if pbEventCommentInput(event, 0, "NoFoot") - if $Trainer.party.length > 0 - return if (!($game_map.events[event] && $game_map.events[event].name == "Dependent") && - (FOLLOWING_DONT_WALK.include?($Trainer.party[0].species) || $PokemonGlobal.bicycle)) - end - end - character_sprites = $scene.spriteset.character_sprites - viewport = $scene.spriteset.viewport1 - footsprites = $scene.spriteset.footsprites - nid = self.get_new_id - rpgEvent = RPG::Event.new(position[0], position[1]) - rpgEvent.id = nid - fev = Game_Event.new($game_map.map_id, rpgEvent, $game_map) - eventsprite = Sprite_Character.new(viewport, fev) - character_sprites.push(eventsprite) - footsprites.push(Footsprite.new(eventsprite, fev, viewport, $game_map, position[2], nid, character_sprites, (event==$game_player))) - end - -end - -class Game_Event < Game_Character - attr_reader :erased -end - -class Sprite_Character - alias old_initialize_foot initialize - def initialize(viewport, character=nil) - old_initialize_foot(viewport, character) - @disposed = false - end - - alias old_update_foot update - def update - return if @disposed - old_update_foot - end - - alias old_dispose_foot dispose - def dispose - old_dispose_foot - @disposed = true - end -end - -class Spriteset_Map - attr_accessor :character_sprites - attr_accessor :footsprites - - alias old_initialize initialize - def initialize(map=nil) - old_initialize(map) - @footsprites = [] - end - - def viewport1 - return @@viewport1 - end - - def putFootprint(event, pos) - return FootprintVariables.show(event, pos) - end - - alias old_dispose dispose - def dispose - old_dispose - @footsprites.each { |sprite| sprite.dispose } if !@footsprites.nil? - @footsprites.clear - end - - alias old_update update - def update - old_update - return if @footsprites.nil? - @footsprites.each { |sprite| sprite.update } - end -end - -class Scene_Map - def spriteset? - return !@spritesets.nil? - end -end - -class Game_Character - - def get_last_pos - case direction - when 2 then return [@x, @y-1, direction] # Move down - when 4 then return [@x+1, @y, direction] # Move left - when 6 then return [@x-1, @y, direction] # Move right - when 8 then return [@x, @y+1, direction] # Move up - end - return false - end - - def foot_prints? - return $game_map.terrain_tag(get_last_pos[0], get_last_pos[1]) == FootprintVariables::TERRAIN_FOOT && $scene.is_a?(Scene_Map) && $scene.spriteset? - end - - alias leave_tile_footprints triggerLeaveTile - def triggerLeaveTile - leave_tile_footprints - $scene.spriteset.putFootprint(self, get_last_pos) if foot_prints? - end - -end - -class Footsprite - def initialize(sprite,event,viewport,map,direction,nid,chardata,player) - @rsprite = sprite - # Sprite - @sprite = Sprite.new(viewport) - file = player && $PokemonGlobal.bicycle ? "footsetbike.png" : "footset.png" - @sprite.bitmap = RPG::Cache.load_bitmap("Graphics/Pictures/", file) - # Set position - @realwidth = @sprite.bitmap.width/4 - @sprite.src_rect.width = @realwidth - @opacity = FootprintVariables::FOOT_OPACITY - setFootset(direction) - # Values - @map = map - @event = event - @disposed = false - @eventid = nid - @viewport = viewport - @chardata = chardata - update - end - - def setFootset(direction) - @sprite.src_rect.x = - case direction - when 2 then 0 # Move down - when 4 then @realwidth * 3 # Move left - when 6 then @realwidth * 2 # Move right - when 8 then @realwidth # Move up - end - @sprite.opacity = @opacity - end - - def dispose - return if @disposed - @disposed = true - @event.erase - (0...@chardata.length).each { |i| @chardata.delete_at(i) if @chardata[i] == @rsprite } - @rsprite.dispose - @sprite.dispose - @sprite = nil - end - - def update - return if @disposed - x = @rsprite.x - @rsprite.ox - y = @rsprite.y - @rsprite.oy - width = @rsprite.src_rect.width - height = @rsprite.src_rect.height - @sprite.x = x + width / 2 - @sprite.y = y + height - @sprite.ox = @realwidth / 2 - @sprite.oy = @sprite.bitmap.height - @sprite.z = @rsprite.z - 2 - @opacity -= FootprintVariables::FOOT_DELAY - @sprite.opacity = @opacity - dispose if @sprite.opacity <= 0 - end -end \ No newline at end of file +# # Fix event comment +# def pbEventCommentInput(*args) +# parameters = [] +# list = *args[0].list # Event or event page +# elements = *args[1] # Number of elements +# trigger = *args[2] # Trigger +# return nil if list == nil +# return nil unless list.is_a?(Array) +# for item in list +# next unless item.code == 108 || item.code == 408 +# if item.parameters[0] == trigger[0] +# start = list.index(item) + 1 +# finish = start + elements[0] +# for id in start...finish +# next if !list[id] +# parameters.push(list[id].parameters[0]) +# end +# return parameters +# end +# end +# return nil +# end +# +# module FootprintVariables +# # If you set pokemon here, they doesn't have footprints +# FOLLOWING_DONT_WALK = [ +# # Example: +# # 12,15,17 +# ] +# +# # Set here the terrain tag for footprints, 3 is sand +# TERRAIN_FOOT = 3 +# +# # Initial opacity for footprints +# FOOT_OPACITY = 62 +# +# # Delay velocity +# FOOT_DELAY = 1.1 +# +# def self.get_new_id +# newId = 1 +# while !$game_map.events[newId].nil? do +# break if $game_map.events[newId].erased +# newId += 1 +# end +# return newId +# end +# +# def self.show(event, position) +# if event != $game_player +# return if event.character_name == "" || event.character_name == "nil" || event.name.include?("/nofoot/") +# return if pbEventCommentInput(event, 0, "NoFoot") +# if $Trainer.party.length > 0 +# return if (!($game_map.events[event] && $game_map.events[event].name == "Dependent") && +# (FOLLOWING_DONT_WALK.include?($Trainer.party[0].species) || $PokemonGlobal.bicycle)) +# end +# end +# character_sprites = $scene.spriteset.character_sprites +# viewport = $scene.spriteset.viewport1 +# footsprites = $scene.spriteset.footsprites +# nid = self.get_new_id +# rpgEvent = RPG::Event.new(position[0], position[1]) +# rpgEvent.id = nid +# fev = Game_Event.new($game_map.map_id, rpgEvent, $game_map) +# eventsprite = Sprite_Character.new(viewport, fev) +# character_sprites.push(eventsprite) +# footsprites.push(Footsprite.new(eventsprite, fev, viewport, $game_map, position[2], nid, character_sprites, (event==$game_player))) +# end +# +# end +# +# class Game_Event < Game_Character +# attr_reader :erased +# end +# +# class Sprite_Character +# alias old_initialize_foot initialize +# def initialize(viewport, character=nil) +# old_initialize_foot(viewport, character) +# @disposed = false +# end +# +# alias old_update_foot update +# def update +# return if @disposed +# old_update_foot +# end +# +# alias old_dispose_foot dispose +# def dispose +# old_dispose_foot +# @disposed = true +# end +# end +# +# class Spriteset_Map +# attr_accessor :character_sprites +# attr_accessor :footsprites +# +# alias old_initialize initialize +# def initialize(map=nil) +# old_initialize(map) +# @footsprites = [] +# end +# +# def viewport1 +# return @@viewport1 +# end +# +# def putFootprint(event, pos) +# return FootprintVariables.show(event, pos) +# end +# +# alias old_dispose dispose +# def dispose +# old_dispose +# @footsprites.each { |sprite| sprite.dispose } if !@footsprites.nil? +# @footsprites.clear +# end +# +# alias old_update update +# def update +# old_update +# return if @footsprites.nil? +# @footsprites.each { |sprite| sprite.update } +# end +# end +# +# class Scene_Map +# def spriteset? +# return !@spritesets.nil? +# end +# end +# +# class Game_Character +# +# def get_last_pos +# case direction +# when 2 then return [@x, @y-1, direction] # Move down +# when 4 then return [@x+1, @y, direction] # Move left +# when 6 then return [@x-1, @y, direction] # Move right +# when 8 then return [@x, @y+1, direction] # Move up +# end +# return false +# end +# +# def foot_prints? +# return $game_map.terrain_tag(get_last_pos[0], get_last_pos[1]) == FootprintVariables::TERRAIN_FOOT && $scene.is_a?(Scene_Map) && $scene.spriteset? +# end +# +# alias leave_tile_footprints triggerLeaveTile +# def triggerLeaveTile +# leave_tile_footprints +# $scene.spriteset.putFootprint(self, get_last_pos) if foot_prints? +# end +# +# end +# +# class Footsprite +# def initialize(sprite,event,viewport,map,direction,nid,chardata,player) +# @rsprite = sprite +# # Sprite +# @sprite = Sprite.new(viewport) +# file = player && $PokemonGlobal.bicycle ? "footsetbike.png" : "footset.png" +# @sprite.bitmap = RPG::Cache.load_bitmap("Graphics/Pictures/", file) +# # Set position +# @realwidth = @sprite.bitmap.width/4 +# @sprite.src_rect.width = @realwidth +# @opacity = FootprintVariables::FOOT_OPACITY +# setFootset(direction) +# # Values +# @map = map +# @event = event +# @disposed = false +# @eventid = nid +# @viewport = viewport +# @chardata = chardata +# update +# end +# +# def setFootset(direction) +# @sprite.src_rect.x = +# case direction +# when 2 then 0 # Move down +# when 4 then @realwidth * 3 # Move left +# when 6 then @realwidth * 2 # Move right +# when 8 then @realwidth # Move up +# end +# @sprite.opacity = @opacity +# end +# +# def dispose +# return if @disposed +# @disposed = true +# @event.erase +# (0...@chardata.length).each { |i| @chardata.delete_at(i) if @chardata[i] == @rsprite } +# @rsprite.dispose +# @sprite.dispose +# @sprite = nil +# end +# +# def update +# return if @disposed +# x = @rsprite.x - @rsprite.ox +# y = @rsprite.y - @rsprite.oy +# width = @rsprite.src_rect.width +# height = @rsprite.src_rect.height +# @sprite.x = x + width / 2 +# @sprite.y = y + height +# @sprite.ox = @realwidth / 2 +# @sprite.oy = @sprite.bitmap.height +# @sprite.z = @rsprite.z - 2 +# @opacity -= FootprintVariables::FOOT_DELAY +# @sprite.opacity = @opacity +# dispose if @sprite.opacity <= 0 +# end +# end \ No newline at end of file diff --git a/Data/Scripts/050_AddOns/UnrealTime.rb b/Data/Scripts/050_AddOns/UnrealTime.rb index 9369bb52e..fd92b0dba 100644 --- a/Data/Scripts/050_AddOns/UnrealTime.rb +++ b/Data/Scripts/050_AddOns/UnrealTime.rb @@ -1,278 +1,278 @@ -#=============================================================================== -# * Unreal Time System - by FL (Credits will be apreciated) -#=============================================================================== +# #=============================================================================== +# # * Unreal Time System - by FL (Credits will be apreciated) +# #=============================================================================== +# # +# # This script is for Pokémon Essentials. It makes the time in game uses its +# # own clock that only pass when you are in game instead of using real time +# # (like Minecraft and Zelda: Ocarina of Time). +# # +# #== INSTALLATION =============================================================== +# # +# # To this script works, put it above main OR convert into a plugin. +# # +# #== HOW TO USE ================================================================= +# # +# # This script automatic works after installed. +# # +# # If you wish to add/reduce time, there are 3 ways: +# # +# # 1. EXTRA_SECONDS/EXTRA_DAYS are variables numbers that hold time passage; +# # The time in these variable isn't affected by PROPORTION. +# # Example: When the player sleeps you wish to the time in game advance +# # 8 hours, so put in EXTRA_SECONDS a game variable number and sum +# # 28800 (60*60*8) in this variable every time that the players sleeps. +# # +# # 2. 'UnrealTime.add_seconds(seconds)' and 'UnrealTime.add_days(days)' does the +# # same thing, in fact, EXTRA_SECONDS/EXTRA_DAYS call these methods. +# # +# # 3. 'UnrealTime.advance_to(16,17,18)' advance the time to a fixed time of day, +# # 16:17:18 on this example. +# # +# #== NOTES ====================================================================== +# # +# # If you wish to some parts still use real time like the Trainer Card start time +# # and Pokémon Trainer Memo, just change 'pbGetTimeNow' to 'Time.now' in their +# # scripts. +# # +# # This script uses the Ruby Time class. Before Essentials version 19 (who came +# # with 64-bit ruby) it can only have 1901-2038 range. +# # +# # Some time methods: +# # 'pbGetTimeNow.year', 'pbGetTimeNow.mon' (the numbers from 1-12), +# # 'pbGetTimeNow.day','pbGetTimeNow.hour', 'pbGetTimeNow.min', +# # 'pbGetTimeNow.sec', 'pbGetAbbrevMonthName(pbGetTimeNow.mon)', +# # 'pbGetTimeNow.strftime("%A")' (displays weekday name), +# # 'pbGetTimeNow.strftime("%I:%M %p")' (displays Hours:Minutes pm/am) +# # +# #=============================================================================== # -# This script is for Pokémon Essentials. It makes the time in game uses its -# own clock that only pass when you are in game instead of using real time -# (like Minecraft and Zelda: Ocarina of Time). +# if defined?(PluginManager) && !PluginManager.installed?("Unreal Time System") +# PluginManager.register({ +# :name => "Unreal Time System", +# :version => "1.1", +# :link => "https://www.pokecommunity.com/showthread.php?t=285831", +# :credits => "FL" +# }) +# end # -#== INSTALLATION =============================================================== +# module UnrealTime +# # Set false to disable this system (returns Time.now) +# ENABLED=true # -# To this script works, put it above main OR convert into a plugin. +# # Time proportion here. +# # So if it is 100, one second in real time will be 100 seconds in game. +# # If it is 60, one second in real time will be one minute in game. +# PROPORTION=60 # -#== HOW TO USE ================================================================= +# # Starting on Essentials v17, the map tone only try to refresh tone each 30 +# # real time seconds. +# # If this variable number isn't -1, the game use this number instead of 30. +# # When time is changed with advance_to or add_seconds, the tone refreshes. +# TONE_CHECK_INTERVAL = 10.0 # -# This script automatic works after installed. +# # Make this true to time only pass at field (Scene_Map) +# # A note to scripters: To make time pass on other scenes, put line +# # '$PokemonGlobal.addNewFrameCount' near to line 'Graphics.update' +# TIME_STOPS=true # -# If you wish to add/reduce time, there are 3 ways: +# # Make this true to time pass in battle, during turns and command selection. +# # This won't affect the Pokémon and Bag submenus. +# # Only works if TIME_STOPS=true. +# BATTLE_PASS=true # -# 1. EXTRA_SECONDS/EXTRA_DAYS are variables numbers that hold time passage; -# The time in these variable isn't affected by PROPORTION. -# Example: When the player sleeps you wish to the time in game advance -# 8 hours, so put in EXTRA_SECONDS a game variable number and sum -# 28800 (60*60*8) in this variable every time that the players sleeps. +# # Make this true to time pass when the Dialog box or the main menu are open. +# # This won't affect the submenus like Pokémon and Bag. +# # Only works if TIME_STOPS=true. +# TALK_PASS=true # -# 2. 'UnrealTime.add_seconds(seconds)' and 'UnrealTime.add_days(days)' does the -# same thing, in fact, EXTRA_SECONDS/EXTRA_DAYS call these methods. +# # Choose switch number that when true the time won't pass (or -1 to cancel). +# # Only works if TIME_STOPS=true. +# SWITCH_STOPS=-1 # -# 3. 'UnrealTime.advance_to(16,17,18)' advance the time to a fixed time of day, -# 16:17:18 on this example. +# # Choose variable(s) number(s) that can hold time passage (or -1 to cancel). +# # Look at description for more details. +# EXTRA_SECONDS=79 +# EXTRA_DAYS=-1 # -#== NOTES ====================================================================== +# # Initial date. In sequence: Year, month, day, hour and minutes. +# # Method UnrealTime.reset resets time back to this time. +# def self.initial_date +# return Time.local(2000,1,1, 12,0) +# end # -# If you wish to some parts still use real time like the Trainer Card start time -# and Pokémon Trainer Memo, just change 'pbGetTimeNow' to 'Time.now' in their -# scripts. +# # Advance to next time. If time already passed, advance +# # into the time on the next day. +# # Hour is 0..23 +# def self.advance_to(hour,min=0,sec=0) +# if hour < 0 || hour > 23 +# raise RangeError, "hour is #{hour}, should be 0..23" +# end +# day_seconds = 60*60*24 +# seconds_now = pbGetTimeNow.hour*60*60+pbGetTimeNow.min*60+pbGetTimeNow.sec +# target_seconds = hour*60*60+min*60+sec +# seconds_added = target_seconds-seconds_now +# seconds_added += day_seconds if seconds_added<0 +# $PokemonGlobal.newFrameCount+=seconds_added +# PBDayNight.sheduleToneRefresh +# end # -# This script uses the Ruby Time class. Before Essentials version 19 (who came -# with 64-bit ruby) it can only have 1901-2038 range. +# # Resets time to initial_date. +# def self.reset +# raise "Method doesn't work when TIME_STOPS is false!" if !TIME_STOPS +# $game_variables[EXTRA_SECONDS]=0 if EXTRA_DAYS>0 +# $game_variables[EXTRA_DAYS]=0 if EXTRA_DAYS>0 +# $PokemonGlobal.newFrameCount=0 +# $PokemonGlobal.extraYears=0 +# PBDayNight.sheduleToneRefresh +# end # -# Some time methods: -# 'pbGetTimeNow.year', 'pbGetTimeNow.mon' (the numbers from 1-12), -# 'pbGetTimeNow.day','pbGetTimeNow.hour', 'pbGetTimeNow.min', -# 'pbGetTimeNow.sec', 'pbGetAbbrevMonthName(pbGetTimeNow.mon)', -# 'pbGetTimeNow.strftime("%A")' (displays weekday name), -# 'pbGetTimeNow.strftime("%I:%M %p")' (displays Hours:Minutes pm/am) +# # Does the same thing as EXTRA_SECONDS variable. +# def self.add_seconds(seconds) +# raise "Method doesn't work when TIME_STOPS is false!" if !TIME_STOPS +# $PokemonGlobal.newFrameCount+=(seconds*Graphics.frame_rate)/PROPORTION.to_f +# PBDayNight.sheduleToneRefresh +# end # -#=============================================================================== - -if defined?(PluginManager) && !PluginManager.installed?("Unreal Time System") - PluginManager.register({ - :name => "Unreal Time System", - :version => "1.1", - :link => "https://www.pokecommunity.com/showthread.php?t=285831", - :credits => "FL" - }) -end - -module UnrealTime - # Set false to disable this system (returns Time.now) - ENABLED=true - - # Time proportion here. - # So if it is 100, one second in real time will be 100 seconds in game. - # If it is 60, one second in real time will be one minute in game. - PROPORTION=60 - - # Starting on Essentials v17, the map tone only try to refresh tone each 30 - # real time seconds. - # If this variable number isn't -1, the game use this number instead of 30. - # When time is changed with advance_to or add_seconds, the tone refreshes. - TONE_CHECK_INTERVAL = 10.0 - - # Make this true to time only pass at field (Scene_Map) - # A note to scripters: To make time pass on other scenes, put line - # '$PokemonGlobal.addNewFrameCount' near to line 'Graphics.update' - TIME_STOPS=true - - # Make this true to time pass in battle, during turns and command selection. - # This won't affect the Pokémon and Bag submenus. - # Only works if TIME_STOPS=true. - BATTLE_PASS=true - - # Make this true to time pass when the Dialog box or the main menu are open. - # This won't affect the submenus like Pokémon and Bag. - # Only works if TIME_STOPS=true. - TALK_PASS=true - - # Choose switch number that when true the time won't pass (or -1 to cancel). - # Only works if TIME_STOPS=true. - SWITCH_STOPS=-1 - - # Choose variable(s) number(s) that can hold time passage (or -1 to cancel). - # Look at description for more details. - EXTRA_SECONDS=79 - EXTRA_DAYS=-1 - - # Initial date. In sequence: Year, month, day, hour and minutes. - # Method UnrealTime.reset resets time back to this time. - def self.initial_date - return Time.local(2000,1,1, 12,0) - end - - # Advance to next time. If time already passed, advance - # into the time on the next day. - # Hour is 0..23 - def self.advance_to(hour,min=0,sec=0) - if hour < 0 || hour > 23 - raise RangeError, "hour is #{hour}, should be 0..23" - end - day_seconds = 60*60*24 - seconds_now = pbGetTimeNow.hour*60*60+pbGetTimeNow.min*60+pbGetTimeNow.sec - target_seconds = hour*60*60+min*60+sec - seconds_added = target_seconds-seconds_now - seconds_added += day_seconds if seconds_added<0 - $PokemonGlobal.newFrameCount+=seconds_added - PBDayNight.sheduleToneRefresh - end - - # Resets time to initial_date. - def self.reset - raise "Method doesn't work when TIME_STOPS is false!" if !TIME_STOPS - $game_variables[EXTRA_SECONDS]=0 if EXTRA_DAYS>0 - $game_variables[EXTRA_DAYS]=0 if EXTRA_DAYS>0 - $PokemonGlobal.newFrameCount=0 - $PokemonGlobal.extraYears=0 - PBDayNight.sheduleToneRefresh - end - - # Does the same thing as EXTRA_SECONDS variable. - def self.add_seconds(seconds) - raise "Method doesn't work when TIME_STOPS is false!" if !TIME_STOPS - $PokemonGlobal.newFrameCount+=(seconds*Graphics.frame_rate)/PROPORTION.to_f - PBDayNight.sheduleToneRefresh - end - - def self.add_days(days) - add_seconds(60*60*24*days) - end - - NEED_32_BIT_FIX = [''].pack('p').size <= 4 -end - -# Essentials V18 and lower compatibility -module Settings - TIME_SHADING = defined?(ENABLESHADING) ? ENABLESHADING : ::TIME_SHADING -end if defined?(TIME_SHADING) || defined?(ENABLESHADING) - -module PBDayNight - class << self - if method_defined?(:getTone) && UnrealTime::TONE_CHECK_INTERVAL > 0 - def getTone - @cachedTone = Tone.new(0,0,0) if !@cachedTone - return @cachedTone if !Settings::TIME_SHADING - toneNeedUpdate = (!@dayNightToneLastUpdate || - Graphics.frame_count-@dayNightToneLastUpdate >= - Graphics.frame_rate*UnrealTime::TONE_CHECK_INTERVAL - ) - if toneNeedUpdate - getToneInternal - @dayNightToneLastUpdate = Graphics.frame_count - end - return @cachedTone - end - end - - # Shedule a tone refresh on the next try (probably next frame) - def sheduleToneRefresh - @dayNightToneLastUpdate = nil - end - end -end - -def pbGetTimeNow - return Time.now if !$PokemonGlobal || !UnrealTime::ENABLED - day_seconds = 60*60*24 - if UnrealTime::TIME_STOPS - # Sum the extra values to newFrameCount - if UnrealTime::EXTRA_SECONDS>0 - UnrealTime.add_seconds(pbGet(UnrealTime::EXTRA_SECONDS)) - $game_variables[UnrealTime::EXTRA_SECONDS]=0 - end - if UnrealTime::EXTRA_DAYS>0 - UnrealTime.add_seconds(day_seconds*pbGet(UnrealTime::EXTRA_DAYS)) - $game_variables[UnrealTime::EXTRA_DAYS]=0 - end - elsif UnrealTime::EXTRA_SECONDS>0 && UnrealTime::EXTRA_DAYS>0 - # Checks to regulate the max/min values at UnrealTime::EXTRA_SECONDS - while pbGet(UnrealTime::EXTRA_SECONDS)>=day_seconds - $game_variables[UnrealTime::EXTRA_SECONDS]-=day_seconds - $game_variables[UnrealTime::EXTRA_DAYS]+=1 - end - while pbGet(UnrealTime::EXTRA_SECONDS)<=-day_seconds - $game_variables[UnrealTime::EXTRA_SECONDS]+=day_seconds - $game_variables[UnrealTime::EXTRA_DAYS]-=1 - end - end - start_time=UnrealTime.initial_date - if UnrealTime::TIME_STOPS - time_played=$PokemonGlobal.newFrameCount - else - time_played=Graphics.frame_count - end - time_played=(time_played*UnrealTime::PROPORTION)/Graphics.frame_rate - time_jumped=0 - if UnrealTime::EXTRA_SECONDS>-1 - time_jumped+=pbGet(UnrealTime::EXTRA_SECONDS) - end - if UnrealTime::EXTRA_DAYS>-1 - time_jumped+=pbGet(UnrealTime::EXTRA_DAYS)*day_seconds - end - time_ret = 0 - # Before Essentials V19, there is a year limit. To prevent crashes due to this - # limit, every time that you reach in year 2036 the system will subtract 6 - # years (to works with leap year) from your date and sum in - # $PokemonGlobal.extraYears. You can sum your actual year with this extraYears - # when displaying years. - loop do - time_fix=0 - if $PokemonGlobal.extraYears!=0 - time_fix = $PokemonGlobal.extraYears*day_seconds*(365*6+1)/6 - end - time_ret=start_time+(time_played+time_jumped-time_fix) - break if !UnrealTime::NEED_32_BIT_FIX || time_ret.year<2036 - $PokemonGlobal.extraYears+=6 - end - return time_ret -end - -if UnrealTime::ENABLED - class PokemonGlobalMetadata - attr_accessor :newFrameCount # Became float when using extra values - attr_accessor :extraYears - - def addNewFrameCount - return if (UnrealTime::SWITCH_STOPS>0 && - $game_switches[UnrealTime::SWITCH_STOPS]) - self.newFrameCount+=1 - end - - def newFrameCount - @newFrameCount=0 if !@newFrameCount - return @newFrameCount - end - - def extraYears - @extraYears=0 if !@extraYears - return @extraYears - end - end - - if UnrealTime::TIME_STOPS - class Scene_Map - alias :updateold :update - def update - $PokemonGlobal.addNewFrameCount - updateold - end - - if UnrealTime::TALK_PASS - alias :miniupdateold :miniupdate - def miniupdate - $PokemonGlobal.addNewFrameCount - miniupdateold - end - end - end - - if UnrealTime::BATTLE_PASS - class PokeBattle_Scene - alias :pbGraphicsUpdateold :pbGraphicsUpdate - def pbGraphicsUpdate - $PokemonGlobal.addNewFrameCount - pbGraphicsUpdateold - end - end - end - end -end \ No newline at end of file +# def self.add_days(days) +# add_seconds(60*60*24*days) +# end +# +# NEED_32_BIT_FIX = [''].pack('p').size <= 4 +# end +# +# # Essentials V18 and lower compatibility +# module Settings +# TIME_SHADING = defined?(ENABLESHADING) ? ENABLESHADING : ::TIME_SHADING +# end if defined?(TIME_SHADING) || defined?(ENABLESHADING) +# +# module PBDayNight +# class << self +# if method_defined?(:getTone) && UnrealTime::TONE_CHECK_INTERVAL > 0 +# def getTone +# @cachedTone = Tone.new(0,0,0) if !@cachedTone +# return @cachedTone if !Settings::TIME_SHADING +# toneNeedUpdate = (!@dayNightToneLastUpdate || +# Graphics.frame_count-@dayNightToneLastUpdate >= +# Graphics.frame_rate*UnrealTime::TONE_CHECK_INTERVAL +# ) +# if toneNeedUpdate +# getToneInternal +# @dayNightToneLastUpdate = Graphics.frame_count +# end +# return @cachedTone +# end +# end +# +# # Shedule a tone refresh on the next try (probably next frame) +# def sheduleToneRefresh +# @dayNightToneLastUpdate = nil +# end +# end +# end +# +# def pbGetTimeNow +# return Time.now if !$PokemonGlobal || !UnrealTime::ENABLED +# day_seconds = 60*60*24 +# if UnrealTime::TIME_STOPS +# # Sum the extra values to newFrameCount +# if UnrealTime::EXTRA_SECONDS>0 +# UnrealTime.add_seconds(pbGet(UnrealTime::EXTRA_SECONDS)) +# $game_variables[UnrealTime::EXTRA_SECONDS]=0 +# end +# if UnrealTime::EXTRA_DAYS>0 +# UnrealTime.add_seconds(day_seconds*pbGet(UnrealTime::EXTRA_DAYS)) +# $game_variables[UnrealTime::EXTRA_DAYS]=0 +# end +# elsif UnrealTime::EXTRA_SECONDS>0 && UnrealTime::EXTRA_DAYS>0 +# # Checks to regulate the max/min values at UnrealTime::EXTRA_SECONDS +# while pbGet(UnrealTime::EXTRA_SECONDS)>=day_seconds +# $game_variables[UnrealTime::EXTRA_SECONDS]-=day_seconds +# $game_variables[UnrealTime::EXTRA_DAYS]+=1 +# end +# while pbGet(UnrealTime::EXTRA_SECONDS)<=-day_seconds +# $game_variables[UnrealTime::EXTRA_SECONDS]+=day_seconds +# $game_variables[UnrealTime::EXTRA_DAYS]-=1 +# end +# end +# start_time=UnrealTime.initial_date +# if UnrealTime::TIME_STOPS +# time_played=$PokemonGlobal.newFrameCount +# else +# time_played=Graphics.frame_count +# end +# time_played=(time_played*UnrealTime::PROPORTION)/Graphics.frame_rate +# time_jumped=0 +# if UnrealTime::EXTRA_SECONDS>-1 +# time_jumped+=pbGet(UnrealTime::EXTRA_SECONDS) +# end +# if UnrealTime::EXTRA_DAYS>-1 +# time_jumped+=pbGet(UnrealTime::EXTRA_DAYS)*day_seconds +# end +# time_ret = 0 +# # Before Essentials V19, there is a year limit. To prevent crashes due to this +# # limit, every time that you reach in year 2036 the system will subtract 6 +# # years (to works with leap year) from your date and sum in +# # $PokemonGlobal.extraYears. You can sum your actual year with this extraYears +# # when displaying years. +# loop do +# time_fix=0 +# if $PokemonGlobal.extraYears!=0 +# time_fix = $PokemonGlobal.extraYears*day_seconds*(365*6+1)/6 +# end +# time_ret=start_time+(time_played+time_jumped-time_fix) +# break if !UnrealTime::NEED_32_BIT_FIX || time_ret.year<2036 +# $PokemonGlobal.extraYears+=6 +# end +# return time_ret +# end +# +# if UnrealTime::ENABLED +# class PokemonGlobalMetadata +# attr_accessor :newFrameCount # Became float when using extra values +# attr_accessor :extraYears +# +# def addNewFrameCount +# return if (UnrealTime::SWITCH_STOPS>0 && +# $game_switches[UnrealTime::SWITCH_STOPS]) +# self.newFrameCount+=1 +# end +# +# def newFrameCount +# @newFrameCount=0 if !@newFrameCount +# return @newFrameCount +# end +# +# def extraYears +# @extraYears=0 if !@extraYears +# return @extraYears +# end +# end +# +# if UnrealTime::TIME_STOPS +# class Scene_Map +# alias :updateold :update +# def update +# $PokemonGlobal.addNewFrameCount +# updateold +# end +# +# if UnrealTime::TALK_PASS +# alias :miniupdateold :miniupdate +# def miniupdate +# $PokemonGlobal.addNewFrameCount +# miniupdateold +# end +# end +# end +# +# if UnrealTime::BATTLE_PASS +# class PokeBattle_Scene +# alias :pbGraphicsUpdateold :pbGraphicsUpdate +# def pbGraphicsUpdate +# $PokemonGlobal.addNewFrameCount +# pbGraphicsUpdateold +# end +# end +# end +# end +# end \ No newline at end of file diff --git a/Data/System.rxdata b/Data/System.rxdata index 0b72436e0..83c1b3b88 100644 Binary files a/Data/System.rxdata and b/Data/System.rxdata differ