#===============================================================================
# Time System
# By Jet10985 (Jet)
# Slight Help by: Mr. Anonymous
#===============================================================================
# This script is my time system. Time System: A system of tracking in-game "time"
# which in-turn contain more systems relating to time. Used for visual effects,
# the novelty, and eventing purposes. My Time System: see Time system +
# see ultimate.
# This script has: 50 customization option.
#===============================================================================
#===============================================================================
# Features
#===============================================================================
# CHECK means the script has the feature
# WIP means it is a future feature
#-------------------------------------------------------------------------------
# Thomas Edison Compat. CHECK
# Auto-Tint CHECK
# Auto-Weather CHECK
# Auto-Season CHECK
# Time to variable/switch CHECK
# Weather to switch CHECK
# Changable Days/Months CHECK
# Military time CHECK
# Real time option CHECK
# Resting CHECK
# Map/Menu Windows CHECK
# Changable map encounters WIP
# Map labels CHECK
# Alignment System compat. CHECK
# Tile set Changes WIP
# Skill damage differences depending on time of day. WIP
# Update only on Map feature. CHECK
#===============================================================================
=begin
Disable auto-tint and auto-weather on maps:
In the map name ex. MAP001, add [JDN] in the name. Like so
MAP001 [JDN]
Built-in script commands:
freeze_time(option) <--------------- Script-time command only
option = true/false. true freeze's time, false unfreeze's it.
add_time(type, amount) <------------------- Script-time command only
type = "minute", "hour", "day", "month", "year" according to what you want to add
amount = amount of that time you want to add.
jump_to_hour(hour) <-------------------------- Script-time command only
hour = the hour you want to jump to. Be below 25 and above 0.
--------------------------------------------------------------------------------
Compatability Instructions:
If you want compatability with Jet's Alignment system and/or Thomas Edison VX,
place this script below both of them and toggle the configuration for them below
=end
#===============================================================================
# BEGIN CONFIGURATION
#===============================================================================
module Jet_DayNight # Don't Touch.
#===============================================================================
# Detail Configuration
#===============================================================================
# Use computer time or script time? false is script, true is computer.
REAL_TIME = false
# This switch will turn the script into a real time script while on.
REAL_TIME_SWITCH = 61
# Hour script time will start at.
STARTING_HOUR = 1
# Minute script time will start at.
STARTING_MINUTE = 0
# Day script time will start at.
STARTING_DAY = 0
# Year script time will start at.
STARTING_YEAR = 2010
# This is how many frames it takes for a Script time minute to pass.
# 60 frames = 1 Real life second. So 120 would be 2 real life seconds, etc.
MINUTE_LENGTH = 120
# Military time or AM/PM time? false is AM/PM, true is military.
MILITARY_TIME = false
# Should time only update on the map, and no where else?
UPDATE_ONLY_ON_MAP = true
# Automaticly change seasons? (This is auto-weather as well)
AUTO_SEASONS = true
# Automaticly tint according to time of day/weather?
AUTO_TINT = true
# Allows resting? Resting is the ability to call a scene that will allow
# the player to "rest" for a certain amount of hours. Script time only.
ALLOW_REST = true
# The button to call the resting menu.
REST_BUTTON = Input::F5
# Include a window showing time of day, month, and day name in the menu?
MENU_TIME_WINDOW = true
# Include a window showing time of day and day name on the map?
MAP_TIME_WINDOW = true
# These are the X and Y coordinates of the map time window if you choose to
# display the window on the map.
MAP_TIME_WINDOW_COORDS = [384, 360]
# This will add compatability with Thomas Edison VX the same as if you were
# using KGC's day/night.
# Meaning, lights will be on during night and off during day.
THOMAS_EDISON_COMPATABILITY = true
# This will add Jet's Alignment System compatability. Meaning, if you
# have negative alignment, dusk and night will give bonus stats, and
# vice versa for dawn and day if you're good.
ALIGNMENT_SYSTEM_COMPATABILITY = false
# This is the positive alignment bonus in dawn/day. These are in decimals.
# By default, all bonuses are 1.2, meaning 20% bonus.
# ATK DEF SPI AGI
GOOD_BONUSES = [1.2, 1.2, 1.2, 1.2]
# This is the negative alignment bonus in dusk/night. These are in decimals.
# By default, all bonuses are 1.2, meaning 20% bonus.
# ATK DEF SPI AGI
BAD_BONUSES = [1.2, 1.2, 1.2, 1.2]
#===============================================================================
# Calendar Configuration (Script time only)
#===============================================================================
# These are the months in a 3-4 letter form that will be used.
MONTHS = {
0 => ["Jan", 31], # month number => ["Month name", days in month],
1 => ["Feb", 28], # month number => ["Month name", days in month],
2 => ["Mar", 31], # month number => ["Month name", days in month],
3 => ["Apr", 30],
4 => ["May", 31],
5 => ["June", 30],
6 => ["July", 31],
7 => ["Aug", 31],
8 => ["Sept", 30],
9 => ["Oct", 31],
10 => ["Nov", 30],
11 => ["Dec", 31] }
# These are the days in the month in a 3-4 letter form for window space.
DAYS = {
0 => "Sun", # day number => day name
1 => "Mon", # day number => day name
2 => "Tues", # day number => day name
3 => "Wed",
4 => "Thu",
5 => "Fri",
6 => "Sat" }
#===============================================================================
# Switches Configuration (Script time and Real time)
#===============================================================================
# The switch that will turn on when it is Autumn.
AUTUMN_SWITCH = 50
# The switch that will turn on when it is Winter.
WINTER_SWITCH = 51
# The switch that will turn on when it is Summer.
SUMMER_SWITCH = 52
# The switch that will turn on when it is Spring.
SPRING_SWITCH = 53
# The switch that will turn on when it is Raining.
RAIN_SWITCH = 54
# The switch that will turn on when it is Snowing.
SNOW_SWITCH = 55
# The switch that will turn on when it is Stormy.
STORM_SWITCH = 56
# The switch that will turn on when it is Night.
NIGHT_SWITCH = 57
# The switch that will turn on when it is Dawn.
DAWN_SWITCH = 58
# The switch that will turn on when it is Day.
DAY_SWITCH = 59
# The switch that will turn on when it is Dusk.
DUSK_SWITCH = 60
#===============================================================================
# Variable Configuration (Script time and Real time)
#===============================================================================
# Variable hour will be stored in.
HOUR_VARIABLE = 50
# Variable minute will be stored in.
MINUTE_VARIABLE = 51
# Variable day will be stored in.
DAY_VARIABLE = 52
# Variable month will be stored in.
MONTH_VARIABLE = 53
# Variable year will be stored in.
YEAR_VARIABLE = 54
#===============================================================================
# Weather Configuration (Script time and Real time)
#-------------------------------------------------------------------------------
# Seasonal Numbers:
# 0 = Winter
# 1 = Autumn
# 2 = Summer
# 3 = Spring
#===============================================================================
# Seasons that rain will occur in randomly.
RAIN_SEASONS = [0, 1, 3]
# Seasons that snow will occur in randomly.
SNOW_SEASONS = [0, 1]
# Seasons that storms will occur in randomly.
STORM_SEASONS = [0, 1, 3]
#===============================================================================
# Season Configuration (Script time only)
#===============================================================================
# These months will be in the summer season.
SUMMER_MONTHS = [5, 6, 7]
# These months will be in the summer season.
WINTER_MONTHS = [11, 0, 1]
# These months will be in the summer season.
AUTUMN_MONTHS = [8, 9, 10]
# These months will be in the summer season.
SPRING_MONTHS = [2, 3, 4]
#===============================================================================
# Tint Configuration (Hours config for Script time only, tint for both.)
#===============================================================================
# These hours will be considered dusk.
DUSK_HOURS = [18, 19, 20, 21]
# These hours will be considered night.
NIGHT_HOURS = [22, 23, 24, 1, 2, 3]
# These hours are considered dawn.
DAWN_HOURS = [4, 5, 6, 7]
# These hours are considered day.
DAY_HOURS = [8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
# This is the tint that will be applied for dusk.
DUSK_TINT = Tone.new(17, -51, -102, 0)
# This is the tint that will be applied for night.
NIGHT_TINT = Tone.new(-187, -119, -17, 68)
# This is the tint that will be applied for dawn.
DAWN_TINT = Tone.new(17, -51, -102, 0)
# This is the tint that will be applied for day.
DAY_TINT = Tone.new(0, 0, 0, 0)
# This is the amount of time it takes for tone to change from one to another.
FADE_LENGTH = 240
end
#===============================================================================
# DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO.
#===============================================================================
class RPG::MapInfo
def name
return @name.gsub(/\[.*\]/) {""}
end
def indoors?
return @name.scan(/\[JDN\]/).size > 0
end
end
class Game_Time
include Jet_DayNight
attr_accessor :day
attr_accessor :day_name
attr_accessor :days_passed
attr_accessor :month
attr_accessor :month_name
attr_accessor :month_day
attr_accessor :hour
attr_accessor :minute
attr_accessor :second
attr_accessor :minute_length
attr_accessor :year
attr_accessor :frozen_time
attr_accessor :map_infos
def initialize
if REAL_TIME
@day = Time.now.strftime("%j").to_i
@day_name = Time.now.strftime('%a')
@month = Time.now.strftime("%m").to_i
@month_name = Time.now.strftime("%b")
@month_day = Time.now.strftime("%d")
@hour = Time.now.hour
@minute = Time.now.min
@year = Time.now.strftime("%Y").to_i
else
@day = STARTING_DAY % DAYS.keys.size
@day_name = DAYS[@day]
@days_passed = STARTING_DAY
@hour = STARTING_HOUR
@month = 0
@minute = STARTING_MINUTE
@second = 0
@year = STARTING_YEAR
end
@frozen_time = false
@map_infos = load_data("Data/MapInfos.rvdata")
@minute_length = 0
end
def screen
if $game_temp.in_battle
return $game_troop.screen
else
return $game_map.screen
end
end
def update_time
@day_name = DAYS[@day]
@map_infos = load_data("Data/MapInfos.rvdata")
time_of_day = get_time_of_day
unless @map_infos[$game_map.map_id].indoors?
case time_of_day
when "Dusk"
if !$instant_tint
screen.start_tone_change(DUSK_TINT, FADE_LENGTH) unless screen.tone == DUSK_TINT || !AUTO_TINT
else
screen.start_tone_change(DUSK_TINT, 0)
end
when "Night"
if !$instant_tint
screen.start_tone_change(NIGHT_TINT, FADE_LENGTH) unless screen.tone == NIGHT_TINT || !AUTO_TINT
else
screen.start_tone_change(NIGHT_TINT, 0)
end
when "Dawn"
if !$instant_tint
screen.start_tone_change(DAWN_TINT, FADE_LENGTH) unless screen.tone == DAWN_TINT || !AUTO_TINT
else
screen.start_tone_change(DAWN_TINT, 0)
end
when "Day"
if !$instant_tint
screen.start_tone_change(DAY_TINT, FADE_LENGTH) unless screen.tone == DAY_TINT || !AUTO_TINT
else
screen.start_tone_change(DAY_TINT, 0)
end
end
get_weather
end
if REAL_TIME || $game_switches[REAL_TIME_SWITCH]
@day = Time.now.strftime("%j").to_i
@day_name = Time.now.strftime('%a')
@month = Time.now.strftime("%m").to_i
@month_name = Time.now.strftime("%b")
@month_day = Time.now.strftime("%d")
@hour = Time.now.hour
@minute = Time.now.min
@second = Time.now.sec
@year = Time.now.strftime("%Y").to_i
else
@second += 1
@minute_length += 1 unless @frozen_time
if @minute_length == MINUTE_LENGTH
@minute += 1
@minute_length = 0
end
if @minute == 60
@hour += 1
@minute = 0
end
if @hour == 25
@day += 1
@hour = 1
end
if @day == DAYS.keys.size
@day = 0
@days_passed += DAYS.keys.size
end
if @days_passed > MONTHS[@month][1]
@month += 1
end
if @month == MONTHS.keys.size
@year += 1
@month = 0
@days_passed = 0
end
end
$game_variables[MINUTE_VARIABLE] = @minute
$game_variables[HOUR_VARIABLE] = @hour
$game_variables[YEAR_VARIABLE] = @year
$game_variables[DAY_VARIABLE] = @day
$game_variables[MONTH_VARIABLE] = @month
get_season
if @seconds == 1000
@seconds = 0
end
end
def get_month_data(type)
case type
when 0
return @month
when 1
return @month_name
when 2
return @month_day
end
end
def get_day_data(type)
case type
when 0
return @day
when 1
return @day_name
end
end
def get_time_data(type)
case type
when 0
return @second
when 1
return @minute
when 2
return @hour
when 3
return @year
end
end
def get_season
if REAL_TIME
if @month == 12 || 1 || 2
$game_switches[AUTUMN_SWITCH] = false
$game_switches[SPRING_SWITCH] = false
$game_switches[SUMMER_SWITCH] = false
$game_switches[WINTER_SWITCH] = true
return "Winter"
elsif @month == 3 || 4 || 5
$game_switches[AUTUMN_SWITCH] = false
$game_switches[SUMMER_SWITCH] = false
$game_switches[WINTER_SWITCH] = false
$game_switches[SPRING_SWITCH] = true
return "Spring"
elsif @month == 6 || 7 || 8
$game_switches[AUTUMN_SWITCH] = false
$game_switches[SPRING_SWITCH] = false
$game_switches[WINTER_SWITCH] = false
$game_switches[SUMMER_SWITCH] = true
return "Summer"
elsif @month == 9 || 10 || 11
$game_switches[SPRING_SWITCH] = false
$game_switches[SUMMER_SWITCH] = false
$game_switches[WINTER_SWITCH] = false
$game_switches[AUTUMN_SWITCH] = true
return "Autumn"
end
else
if SUMMER_MONTHS.include?(@month)
$game_switches[SUMMER_SWITCH] = true
$game_switches[AUTUMN_SWITCH] = false
$game_switches[SPRING_SWITCH] = false
$game_switches[WINTER_SWITCH] = false
return "Summer"
elsif WINTER_MONTHS.include?(@month)
$game_switches[AUTUMN_SWITCH] = false
$game_switches[SPRING_SWITCH] = false
$game_switches[SUMMER_SWITCH] = false
$game_switches[WINTER_SWITCH] = true
return "Winter"
elsif AUTUMN_MONTHS.include?(@month)
$game_switches[SPRING_SWITCH] = false
$game_switches[SUMMER_SWITCH] = false
$game_switches[WINTER_SWITCH] = false
$game_switches[AUTUMN_SWITCH] = true
return "Autumn"
elsif SPRING_MONTHS.include?(@month)
$game_switches[AUTUMN_SWITCH] = false
$game_switches[SUMMER_SWITCH] = false
$game_switches[WINTER_SWITCH] = false
$game_switches[SPRING_SWITCH] = true
return "Spring"
end
end
end
def get_weather
random_weather = get_season
new_weather = []
case random_weather
when "Winter"
new_weather.push("Clear")
if RAIN_SEASONS.include?(0)
new_weather.push("Rain")
end
if SNOW_SEASONS.include?(0)
new_weather.push("Snow")
end
if STORM_SEASONS.include?(0)
new_weather.push("Storm")
end
stuff = rand(new_weather.size - 1)
@more_stuff = new_weather[stuff]
when "Autumn"
new_weather.push("Clear")
if RAIN_SEASONS.include?(1)
new_weather.push("Rain")
end
if SNOW_SEASONS.include?(1)
new_weather.push("Snow")
end
if STORM_SEASONS.include?(1)
new_weather.push("Storm")
end
stuff = rand(new_weather.size - 1)
@more_stuff = new_weather[stuff]
when "Summer"
new_weather.push("Clear")
if RAIN_SEASONS.include?(2)
new_weather.push("Rain")
end
if SNOW_SEASONS.include?(2)
new_weather.push("Snow")
end
if STORM_SEASONS.include?(2)
new_weather.push("Storm")
end
stuff = rand(new_weather.size - 1)
@more_stuff = new_weather[stuff]
when "Spring"
new_weather.push("Clear")
if RAIN_SEASONS.include?(3)
new_weather.push("Rain")
end
if SNOW_SEASONS.include?(3)
new_weather.push("Snow")
end
if STORM_SEASONS.include?(3)
new_weather.push("Storm")
end
stuff = rand(new_weather.size - 1)
@more_stuff = new_weather[stuff]
end
case @more_stuff
when "Clear"
screen.weather(0, 0, 0)
$game_switches[RAIN_SWITCH] = false
$game_switches[STORM_SWITCH] = false
$game_switches[SNOW_SWITCH] = false
when "Rain"
screen.weather(1, 4 || 5, 999)
$game_switches[RAIN_SWITCH] = true
$game_switches[STORM_SWITCH] = false
$game_switches[SNOW_SWITCH] = false
when "Storm"
screen.weather(2, 4 || 5, 999)
$game_switches[RAIN_SWITCH] = false
$game_switches[STORM_SWITCH] = true
$game_switches[SNOW_SWITCH] = false
when "Snow"
screen.weather(3, 4 || 5, 999)
$game_switches[RAIN_SWITCH] = false
$game_switches[STORM_SWITCH] = false
$game_switches[SNOW_SWITCH] = true
end
end
def get_time_of_day
if REAL_TIME
if (18..21) === @hour
$game_switches[DUSK_SWITCH] = true
$game_switches[DAWN_SWITCH] = false
$game_switches[DAY_SWITCH] = false
$game_switches[NIGHT_SWITCH] = false
$light_switch = true
return "Dusk"
elsif (22..24) === @hour || (1..3) === @hour
$game_switches[DUSK_SWITCH] = false
$game_switches[DAWN_SWITCH] = false
$game_switches[DAY_SWITCH] = false
$game_switches[NIGHT_SWITCH] = true
$light_switch = true
return "Night"
elsif (4..7) === @hour
$game_switches[DUSK_SWITCH] = false
$game_switches[DAWN_SWITCH] = true
$game_switches[DAY_SWITCH] = false
$game_switches[NIGHT_SWITCH] = false
$light_switch = false
return "Dawn"
elsif (8..17) === @hour
$game_switches[DUSK_SWITCH] = false
$game_switches[DAWN_SWITCH] = false
$game_switches[DAY_SWITCH] = true
$game_switches[NIGHT_SWITCH] = false
$light_switch = false
return "Day"
end
else
if DUSK_HOURS.include?(@hour)
$game_switches[DUSK_SWITCH] = true
$game_switches[DAWN_SWITCH] = false
$game_switches[DAY_SWITCH] = false
$game_switches[NIGHT_SWITCH] = false
$light_switch = true
return "Dusk"
elsif DAWN_HOURS.include?(@hour)
$game_switches[DUSK_SWITCH] = false
$game_switches[DAWN_SWITCH] = true
$game_switches[DAY_SWITCH] = false
$game_switches[NIGHT_SWITCH] = false
$light_switch = false
return "Dawn"
elsif NIGHT_HOURS.include?(@hour)
$game_switches[DUSK_SWITCH] = false
$game_switches[DAWN_SWITCH] = false
$game_switches[DAY_SWITCH] = false
$game_switches[NIGHT_SWITCH] = true
$light_switch = true
return "Night"
elsif DAY_HOURS.include?(@hour)
$game_switches[DUSK_SWITCH] = false
$game_switches[DAWN_SWITCH] = false
$game_switches[DAY_SWITCH] = true
$game_switches[NIGHT_SWITCH] = false
$light_switch = false
return "Day"
end
end
end
end
$game_time = Game_Time.new
class Window_DayNight < Window_Base
include Jet_DayNight
def initialize
super(0, 360, 160, 56)
refresh
end
def refresh
self.contents.clear
$game_time.update_time unless UPDATE_ONLY_ON_MAP
if MILITARY_TIME
if $game_time.minute < 10
self.contents.draw_text(0, 0, 140, WLH, $game_time.day_name + " " + $game_time.hour.to_s + ":" + 0.to_s + $game_time.minute.to_s)
else
self.contents.draw_text(0, 0, 140, WLH, $game_time.day_name + " " + $game_time.hour.to_s + ":" + $game_time.minute.to_s)
end
else
if $game_time.minute < 10
if $game_time.hour > 12
self.contents.draw_text(0, 0, 140, WLH, $game_time.day_name + " " + ($game_time.hour - 12).to_s + ":" + 0.to_s + $game_time.minute.to_s + " " + "PM")
else
self.contents.draw_text(0, 0, 140, WLH, $game_time.day_name + " " + $game_time.hour.to_s + ":" + 0.to_s + $game_time.minute.to_s + " " + "AM")
end
else
if $game_time.hour > 12
self.contents.draw_text(0, 0, 140, WLH, $game_time.day_name + " " + ($game_time.hour - 12).to_s + ":" + $game_time.minute.to_s + " " + "PM")
else
self.contents.draw_text(0, 0, 140, WLH, $game_time.day_name + " " + $game_time.hour.to_s + ":" + $game_time.minute.to_s + " " + "AM")
end
end
end
end
def update
refresh
end
end
class Scene_Base
include Jet_DayNight
alias jet8922_update update unless $@
def update
jet8922_update
if UPDATE_ONLY_ON_MAP
$game_time.update_time if $scene.is_a?(Scene_Map)
else
$game_time.update_time unless $scene.is_a?(Scene_Title)
end
end
end
class Scene_Menu
alias jet3922_start start unless $@
def start
jet3922_start
@time_window = Window_DayNight.new if MENU_TIME_WINDOW
@time_window.y = 304 if MENU_TIME_WINDOW
end
alias jet3022_terminate terminate unless $@
def terminate
@time_window.dispose if MENU_TIME_WINDOW
jet3022_terminate
end
alias jet3026_update update unless $@
def update
jet3026_update
@time_window.update if MENU_TIME_WINDOW
end
end
class Game_Interpreter
def jump_to_hour(hour)
if hour < 24
if hour > 0
$game_time.hour = hour
else
p "Hour must be above 0 and below 25, please edit the command."
end
else
p "Hour must be above 0 and below 25, please edit the command."
end
end
def add_time(time, amount)
case time
when "minute"
loop do
$game_time.minute += 1
amount -= 1
if amount == 0
break
end
end
when "hour"
loop do
$game_time.hour += 1
amount -= 1
if amount == 0
break
end
end
when "day"
loop do
$game_time.day += 1
amount -= 1
if amount == 0
break
end
end
when "month"
loop do
$game_time.month += 1
amount -= 1
if amount == 0
break
end
end
when "year"
loop do
$game_time.year += 1
amount -= 1
if amount == 0
break
end
end
end
end
def freeze_time(option)
if option == true
$game_time.frozen_time = true
elsif option == false
$game_time.frozen_time = false
elsif
p "The option you chose was neither true or false. Please error check and try again"
end
end
end
class Window_NumberInput
def index=(new_index)
@index = new_index
end
end
class Scene_Rest < Scene_Base
def start
super
create_menu_background
if $game_time.frozen_time
@notification_window = Window_Help.new
@notification_window.y = 188
@notification_window.set_text("Time is frozen, so you may not rest. Press enter to continue.", 1)
else
@number_window = Window_NumberInput.new
@number_window.digits_max = 3
@number_window.x = 210
@number_window.y = 190
@number_window.index = 2
@number_window.active = true
@description_window = Window_Help.new
@description_window.set_text("How many hours would you like to rest?", 1)
@decoration_window = Window_Base.new(210, 190, 120, 56)
end
end
def terminate
super
if $game_time.frozen_time
@notification_window.dispose
dispose_menu_background
else
@number_window.dispose
@description_window.dispose
@decoration_window.dispose
dispose_menu_background
end
end
def update
if $game_time.frozen_time
if Input.trigger?(Input::C)
$scene = Scene_Map.new
end
else
@number_window.update
if Input.trigger?(Input::C)
loop do
$game_time.hour += 1
$game_time.update_time
@number_window.number -= 1
@number_window.update
Graphics.wait(10)
if @number_window.number == 0
break
end
$scene = Scene_Map.new
end
end
if Input.trigger?(Input::B)
$scene = Scene_Map.new
end
end
end
end
class Scene_Map
include Jet_DayNight
alias jet3829_start start unless $@
def start
unless $game_time.map_infos[$game_map.map_id].indoors?
$instant_tint = true
$game_time.get_weather unless $first_weather
$first_weather = true
end
@time_window = Window_DayNight.new if MAP_TIME_WINDOW
@time_window.x = MAP_TIME_WINDOW_COORDS[0] if MAP_TIME_WINDOW
@time_window.y = MAP_TIME_WINDOW_COORDS[1] if MAP_TIME_WINDOW
jet3829_start
end
alias jet3023_update update unless $@
def update
if @message_window.openness > 0 && MAP_TIME_WINDOW
@time_window.visible = false
elsif MAP_TIME_WINDOW
@time_window.visible = true
end
@time_window.update if MAP_TIME_WINDOW
update_rest if ALLOW_REST
jet3023_update
end
alias jet6454_terminate terminate unless $@
def terminate
@time_window.dispose if MAP_TIME_WINDOW
jet6454_terminate
end
def update_rest
if Input.trigger?(REST_BUTTON)
snapshot_for_background
$scene = Scene_Rest.new
end
end
end
class Scene_File
alias jet3890_write_save_data write_save_data unless $@
def write_save_data(file)
jet3890_write_save_data(file)
Marshal.dump($game_time, file)
end
alias jet5935_read_save_data read_save_data unless $@
def read_save_data(file)
jet5935_read_save_data(file)
$game_time = Marshal.load(file)
end
end
class Spriteset_Map
include Jet_DayNight
if THOMAS_EDISON_COMPATABILITY
alias jet3422_update_light_effects update_light_effects unless $@
def update_light_effects
if $light_switch || $game_time.map_infos[$game_map.map_id].indoors?
jet3422_update_light_effects
else
for effect in @light_effects
effect.light.visible = false
end
end
end
end
end
class Game_Battler
include Jet_DayNight
if ALIGNMENT_SYSTEM_COMPATABILITY
def atk
n = [[base_atk + @atk_plus, 1].max, 999].min
for state in states do n *= state.atk_rate / 100.0 end
n = [[Integer(n), 1].max, 999].min
if $game_system.alignment < 0 && $light_switch
n *= BAD_BONUS[0]
elsif $game_system.alignment > 0 && !$light_switch
n *= GOOD_BONUS[0]
end
return n
end
def def
n = [[base_def + @def_plus, 1].max, 999].min
for state in states do n *= state.def_rate / 100.0 end
n = [[Integer(n), 1].max, 999].min
if $game_system.alignment < 0 && $light_switch
n *= BAD_BONUS[1]
elsif $game_system.alignment > 0 && !$light_switch
n *= GOOD_BONUS[1]
end
return n
end
def spi
n = [[base_spi + @spi_plus, 1].max, 999].min
for state in states do n *= state.spi_rate / 100.0 end
n = [[Integer(n), 1].max, 999].min
if $game_system.alignment < 0 && $light_switch
n *= BAD_BONUS[2]
elsif $game_system.alignment > 0 && !$light_switch
n *= GOOD_BONUS[2]
end
return n
end
def agi
n = [[base_agi + @agi_plus, 1].max, 999].min
for state in states do n *= state.agi_rate / 100.0 end
n = [[Integer(n), 1].max, 999].min
if $game_system.alignment < 0 && $light_switch
n *= BAD_BONUS[3]
elsif $game_system.alignment > 0 && !$light_switch
n *= GOOD_BONUS[3]
end
return n
end
end
end
class Game_Map
alias jet5044_setup setup unless $@
def setup(*args)
jet5044_setup(*args)
@map_infos = load_data("Data/MapInfos.rvdata")
if @map_infos[@map_id].indoors?
@screen.start_tone_change(Tone.new(0, 0, 0), 0)
@screen.weather(0, 0, 0)
end
end
end
unless $engine_scripts.nil?
JetEngine.active("DayNight System", "v1.2.1")
end