FIRST_VARIABLE = 1
SECOND_VARIABLE = 2
THRID_VARIABLE = 3
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# < Clive's Gradient Bars [Starts] =
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#==============================================================================
# ** Window_Base
#------------------------------------------------------------------------------
# This class is for all in-game windows.
#==============================================================================
class Window_Base < Window
alias raz_bars_base_exp draw_actor_exp
alias raz_bars_base_parameter draw_actor_parameter
def draw_map_image(x, y)
bitmap = RPG::Cache.picture("Map_"+$game_map.map_id.to_s)
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x, y, bitmap, src_rect)
end
#==========================================================================
# * Draw Slant Bar(by Sephiroth Spawn)
#==========================================================================
def draw_slant_bar(x, y, min, max, width = 152, height = 6,
bar_color = Color.new(150, 0, 0, 255),
end_color = Color.new(255, 255, 60, 255))
# Draw Border
for i in 0..height
self.contents.fill_rect(x + i, y + height - i, width + 1, 1, Color.new(50, 50, 50, 255))
end
# Draw Background
for i in 1..(height - 1)
r = 100 * (height - i) / height + 0 * i / height
g = 100 * (height - i) / height + 0 * i / height
b = 100 * (height - i) / height + 0 * i / height
a = 255 * (height - i) / height + 255 * i / height
self.contents.fill_rect(x + i, y + height - i, width, 1, Color.new(r, b, g, a))
end
# Draws Bar
for i in 1..( (min / max.to_f) * width - 1)
for j in 1..(height - 1)
r = bar_color.red * (width - i) / width + end_color.red * i / width
g = bar_color.green * (width - i) / width + end_color.green * i / width
b = bar_color.blue * (width - i) / width + end_color.blue * i / width
a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width
self.contents.fill_rect(x + i + j, y + height - j, 1, 1, Color.new(r, g, b, a))
end
end
end
#==========================================================================
# * Draw HP
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# width : draw spot width
#==========================================================================
alias :draw_actor_hp_hpsp :draw_actor_hp
def draw_actor_hp(actor, x, y, width = 144)
# Calculate if there is draw space for MaxHP
if width - 32 >= 108
hp_x = x + width - 108
flag = true
elsif width - 32 >= 48
hp_x = x + width - 48
flag = false
end
if $game_temp.in_battle
bar_width = hp_x - x + 50
else
bar_width = hp_x - x + 100
end
# Draw HP
draw_slant_bar(x, y + 12, actor.hp, actor.maxhp, bar_width, 6, bar_color = Color.new(150, 0, 0, 255), end_color = Color.new(255, 255, 60, 255))
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, $data_system.words.hp)
self.contents.font.color = actor.hp == 0 ? knockout_color :
actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2)
# Draw MaxHP
if flag
self.contents.font.color = normal_color
self.contents.draw_text(hp_x + 48, y, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s)
end
draw_actor_hp_hpsp(actor, x, y, width)
end
#==========================================================================
# * Draw SP
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# width : draw spot width
#==========================================================================
alias :draw_actor_sp_hpsp :draw_actor_sp
def draw_actor_sp(actor, x, y, width = 144)
# Calculate if there is draw space for MaxHP
if width - 32 >= 108
sp_x = x + width - 108
flag = true
elsif width - 32 >= 48
sp_x = x + width - 48
flag = false
end
if $game_temp.in_battle
bar_width = sp_x - x + 50
else
bar_width = sp_x - x + 100
end
# Draw SP
draw_slant_bar(x, y + 12, actor.sp, actor.maxsp, bar_width, 6, bar_color = Color.new(0, 0, 155, 255), end_color = Color.new(255, 255, 255, 255))
# Draw "SP" text string
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, $data_system.words.sp)
self.contents.font.color = actor.sp == 0 ? knockout_color :
actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
self.contents.draw_text(sp_x, y, 48, 32, actor.sp.to_s, 2)
# Draw MaxSP
if flag
self.contents.font.color = normal_color
self.contents.draw_text(sp_x + 48, y, 12, 32, "/", 1)
self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s)
end
end
#==========================================================================
# * Draw EXP
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
#==========================================================================
def draw_actor_exp(actor, x, y)
if actor.level == 99
draw_slant_bar(x, y + 18, 1, 1, 190, 6, bar_color = Color.new(0, 100, 0, 255), end_color = Color.new(0, 255, 0, 255))
else
draw_slant_bar(x, y + 18, actor.now_exp, actor.next_exp, 190, 6, bar_color = Color.new(0, 100, 0, 255), end_color = Color.new(255, 255, 255, 255))
end
raz_bars_base_exp(actor, x, y)
end
#==========================================================================
# * Draw Parameter
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# type : parameter type (0-6)
#==========================================================================
def draw_actor_parameter(actor, x, y, type)
case type
when 0
para_color1 = Color.new(100,0,0)
para_color2 = Color.new(255,0,0)
para_begin = actor.atk
when 1
para_color1 = Color.new(100,100,0)
para_color2 = Color.new(255,255,0)
para_begin = actor.pdef
when 2
para_color1 = Color.new(100,0,100)
para_color2 = Color.new(255,0,255)
para_begin = actor.mdef
when 3
para_color1 = Color.new(50,0,100)
para_color2 = Color.new(50,0,255)
para_begin = actor.str
when 4
para_color1 = Color.new(0,100,0)
para_color2 = Color.new(0,255,0)
para_begin = actor.dex
when 5
para_color1 = Color.new(50,0,50)
para_color2 = Color.new(255,0,255)
para_begin = actor.agi
when 6
para_color1 = Color.new(0,100,100)
para_color2 = Color.new(0,255,255)
para_begin = actor.int
end
draw_slant_bar(x, y + 18, para_begin, 999, 155, 4, bar_color = para_color1,
end_color = para_color2)
raz_bars_base_parameter(actor, x, y, type)
end
#=========================================================================
# * Draw Actor ATG
# actor : Actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# width : draw spot width
#=========================================================================
def draw_actor_atg(actor, x, y, width = 144, height = 5)
if @at_gauge == nil
# plus_x: revised x-coordinate
# rate_x: revised X-coordinate as (%)
# plus_y: revised y-coordinate
# plus_width: revised width
# rate_width: revised width as (%)
# height: Vertical width
# align1: Type 1 ( 0: left justify 1: center justify 2: right justify )
# align2: Type 2 ( 0: Upper stuffing 1: Central arranging 2:Lower stuffing )
# align3: Gauge type 0:Left justify 1: Right justify
@plus_x = 0
@rate_x = 0
@plus_y = 16
@plus_width = 0
@rate_width = 100
@width = @plus_width + width * @rate_width / 100
@height = 5
@align1 = 0
@align2 = 1
@align3 = 0
# Gradation settings: grade1: Empty gauge grade2:Actual gauge
# (0:On side gradation 1:Vertically gradation 2: Slantedly gradation)
grade1 = 1
grade2 = 0
# Color setting. color1: Outermost framework, color2: Medium framework
# color3: Empty framework dark color, color4: Empty framework light/write color
color1 = Color.new(0, 0, 0)
color2 = Color.new(255, 255, 192)
color3 = Color.new(0, 0, 0, 192)
color4 = Color.new(0, 0, 64, 192)
# Color setting of gauge
# Usually color setting of the time
color5 = Color.new(0, 64, 80)
color6 = Color.new(255, 255, 255)#(0, 128, 160)
# When gauge is MAX, color setting
color7 = Color.new(80, 0, 0)
color8 = Color.new(255, 255,255) #(240,0,0)
# Color setting at time of cooperation skill use
color9 = Color.new(80, 64, 32)
color10 = Color.new(255, 255, 255) #(240, 192, 96)
# Color setting at time of skill permanent residence
color11 = Color.new(80, 0, 64)
color12 = Color.new(255,255, 255) #(240, 0, 192)
# Drawing of gauge
gauge_rect_at(@width, @height, @align3, color1, color2, color3, color4,
color5, color6, color7, color8, color9, color10, color11, color12,
grade1, grade2)
end
# Variable at substituting the width of the gauge which is drawn
if actor.rtp == 0
at = (width + @plus_width) * actor.atp * @rate_width / 10000
else
at = (width + @plus_width) * actor.rt * @rate_width / actor.rtp / 100
end
# AT Width Check
if at > width
at = width
end
# Revision such as the left stuffing central posture of gauge
case @align1
when 1
x += (@rect_width - width) / 2
when 2
x += @rect_width - width
end
case @align2
when 1
y -= @height / 2
when 2
y -= @height
end
# Draw Border
for i in 0..height
self.contents.fill_rect(x + 1.5 + i, y + 12 + height - i, width - 2 , 3,
Color.new(50, 50, 50, 255))
end
# Draw Background
for i in 1..(height - 1)
r = 100 * (height - i) / height + 0 * i / height
g = 100 * (height - i) / height + 0 * i / height
b = 100 * (height - i) / height + 0 * i / height
a = 255 * (height - i) / height + 255 * i / height
self.contents.fill_rect(x + 1.5 + i, y + 12 + height - i, width - 3, 3,
Color.new(r, b, g, a))
end
# Rect_X control
if @align3 == 0
rect_x = 0
else
x += @width - at - 1
rect_x = @width - at - 1
end
# Color setting of gauge
if at == width
#Gauge drawing at the time of MAX
for i in 0..height
self.contents.blt(x + i + @plus_x + @width * @rate_x / 100, y -i +
@plus_y, @at_gauge, Rect.new(rect_x, @height * 2, at, @height))
end
else
if actor.rtp == 0
for i in 0..height
# Usually gauge drawing of the time
self.contents.blt(x + i + @plus_x + @width * @rate_x / 100, y- i +
@plus_y, @at_gauge,Rect.new(rect_x, @height, at, @height))
end
else
if actor.spell == true
for i in 0..height
#Gauge drawing at time of cooperation skill use
self.contents.blt(x + i + @plus_x + @width * @rate_x / 100, y - i +
@plus_y, @at_gauge, Rect.new(rect_x, @height * 3, at, @height))
end
else
for i in 0..height
# Gauge drawing at time of skill permanent residence
self.contents.blt(x + i + @plus_x + @width * @rate_x / 100, y - i +
@plus_y, @at_gauge, Rect.new(rect_x, @height * 4, at, @height))
end
end
end
end
end
end
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# < Clive's Gradient Bars [Ends] =
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
class Window_Hud < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(0, 0, 142, 129)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.size = 16
self.contents.draw_text(4, 0 - 5, 80, 32, "Text:") #Edit This text
self.contents.draw_text(4, 28 - 5, 80, 32, "Text:") #Edit this text
self.contents.draw_text(4, 52 - 5, 80, 32, "Text:") #Edit this text
draw_slant_bar(1, 82, $game_variables[8], 200, width = 98, height = 10,
bar_color = Color.new(150, 0, 0, 255),
end_color = Color.new(255, 255, 60, 255))
self.contents.draw_text(8, 71, 140, 32, "Alignment: " + $game_variables[8].to_s,3)
self.contents.font.color = normal_color
self.contents.draw_text(65, 0 - 5, 80, 32, $game_variables[FIRST_VARIABLE].to_s,3) #Edit This variable
self.contents.draw_text(65, 28 - 5, 80, 32, $game_variables[SECOND_VARIABLE].to_s,3) #Edit this variable
self.contents.draw_text(65, 52 - 5, 80, 32, $game_variables[THRID_VARIABLE].to_s,3) #Edit this variable
end
end
#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
# This class performs map screen processing.
#==============================================================================
class Scene_Map
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
# Make sprite set
@spriteset = Spriteset_Map.new
# Make message window
@message_window = Window_Message.new
@hud = Window_Hud.new
@variable1beforechange = $game_variables[FIRST_VARIABLE]
@variable2beforechange = $game_variables[SECOND_VARIABLE]
@variable3beforechange = $game_variables[THRID_VARIABLE]
@variable8beforechange = $game_variables[8]
# Transition run
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 sprite set
@hud.dispose
@spriteset.dispose
# Dispose of message window
@message_window.dispose
# If switching to title screen
if $scene.is_a?(Scene_Title)
# Fade out screen
Graphics.transition
Graphics.freeze
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# Loop
loop do
# Update map, interpreter, and player order
# (this update order is important for when conditions are fulfilled
# to run any event, and the player isn't provided the opportunity to
# move in an instant)
$game_map.update
$game_system.map_interpreter.update
$game_player.update
@hud.update
# Update system (timer), screen
$game_system.update
$game_screen.update
# Abort loop if player isn't place moving
unless $game_temp.player_transferring
break
end
# Run place move
@hud.update
transfer_player
# Abort loop if transition processing
if $game_temp.transition_processing
break
end
end
# Update sprite set
@hud.update
@spriteset.update
# Update message window
@message_window.update
if $game_variables[FIRST_VARIABLE] > @variable1beforechange
@variable1beforechange = $game_variables[FIRST_VARIABLE]
@variable2beforechange = $game_variables[SECOND_VARIABLE]
@variable3beforechange = $game_variables[THRID_VARIABLE]
@hud.dispose
return @hud= Window_Hud.new
end
if $game_variables[FIRST_VARIABLE] < @variable1beforechange
@variable1beforechange = $game_variables[FIRST_VARIABLE]
@variable2beforechange = $game_variables[SECOND_VARIABLE]
@variable3beforechange = $game_variables[THRID_VARIABLE]
@hud.dispose
return @hud= Window_Hud.new
end
if $game_variables[SECOND_VARIABLE] > @variable2beforechange
@variable1beforechange = $game_variables[FIRST_VARIABLE]
@variable2beforechange = $game_variables[SECOND_VARIABLE]
@variable3beforechange = $game_variables[THRID_VARIABLE]
@hud.dispose
return @hud= Window_Hud.new
end
if $game_variables[SECOND_VARIABLE] < @variable2beforechange
@variable1beforechange = $game_variables[FIRST_VARIABLE]
@variable2beforechange = $game_variables[SECOND_VARIABLE]
@variable3beforechange = $game_variables[THRID_VARIABLE]
@hud.dispose
return @hud= Window_Hud.new
end
if $game_variables[THRID_VARIABLE] > @variable3beforechange
@variable1beforechange = $game_variables[FIRST_VARIABLE]
@variable2beforechange = $game_variables[SECOND_VARIABLE]
@variable3beforechange = $game_variables[THRID_VARIABLE]
@hud.dispose
return @hud= Window_Hud.new
end
if $game_variables[THRID_VARIABLE] < @variable3beforechange
@variable1beforechange = $game_variables[FIRST_VARIABLE]
@variable2beforechange = $game_variables[SECOND_VARIABLE]
@variable3beforechange = $game_variables[THRID_VARIABLE]
@hud.dispose
return @hud = Window_Hud.new
end
if $game_variables[8] < @variable8beforechange
@variable1beforechange = $game_variables[FIRST_VARIABLE]
@variable2beforechange = $game_variables[SECOND_VARIABLE]
@variable3beforechange = $game_variables[THRID_VARIABLE]
@variable8beforechange = $game_variables[8]
@hud.dispose
return @hud = Window_Hud.new
end
if $game_variables[8] > @variable8beforechange
@variable1beforechange = $game_variables[FIRST_VARIABLE]
@variable2beforechange = $game_variables[SECOND_VARIABLE]
@variable3beforechange = $game_variables[THRID_VARIABLE]
@variable8beforechange = $game_variables[8]
@hud.dispose
return @hud = Window_Hud.new
end
# If game over
if $game_temp.gameover
# Switch to game over screen
$scene = Scene_Gameover.new
return
end
# If returning to title screen
if $game_temp.to_title
# Change to title screen
$scene = Scene_Title.new
return
end
# If transition processing
if $game_temp.transition_processing
# Clear transition processing flag
$game_temp.transition_processing = false
# Execute transition
if $game_temp.transition_name == ""
Graphics.transition(20)
else
Graphics.transition(40, "Graphics/Transitions/" +
$game_temp.transition_name)
end
end
# If showing message window
if $game_temp.message_window_showing
return
end
# If encounter list isn't empty, and encounter count is 0
if $game_player.encounter_count == 0 and $game_map.encounter_list != []
# If event is running or encounter is not forbidden
unless $game_system.map_interpreter.running? or
$game_system.encounter_disabled
# Confirm troop
n = rand($game_map.encounter_list.size)
troop_id = $game_map.encounter_list[n]
# If troop is valid
if $data_troops[troop_id] != nil
# Set battle calling flag
$game_temp.battle_calling = true
$game_temp.battle_troop_id = troop_id
$game_temp.battle_can_escape = true
$game_temp.battle_can_lose = false
$game_temp.battle_proc = nil
end
end
end
# If B button was pressed
if Input.trigger?(Input::B)
# If event is running, or menu is not forbidden
unless $game_system.map_interpreter.running? or
$game_system.menu_disabled
# Set menu calling flag or beep flag
$game_temp.menu_calling = true
$game_temp.menu_beep = true
end
end
# If debug mode is ON and F9 key was pressed
if $DEBUG and Input.press?(Input::F9)
# Set debug calling flag
$game_temp.debug_calling = true
end
# If player is not moving
unless $game_player.moving?
# Run calling of each screen
if $game_temp.battle_calling
call_battle
elsif $game_temp.shop_calling
call_shop
elsif $game_temp.name_calling
call_name
elsif $game_temp.menu_calling
call_menu
elsif $game_temp.save_calling
call_save
elsif $game_temp.debug_calling
call_debug
end
end
end
#--------------------------------------------------------------------------
# * Battle Call
#--------------------------------------------------------------------------
def call_battle
# Clear battle calling flag
$game_temp.battle_calling = false
# Clear menu calling flag
$game_temp.menu_calling = false
$game_temp.menu_beep = false
# Make encounter count
$game_player.make_encounter_count
# Memorize map BGM and stop BGM
$game_temp.map_bgm = $game_system.playing_bgm
$game_system.bgm_stop
# Play battle start SE
$game_system.se_play($data_system.battle_start_se)
# Play battle BGM
$game_system.bgm_play($game_system.battle_bgm)
# Straighten player position
$game_player.straighten
# Switch to battle screen
$scene = Scene_Battle.new
end
#--------------------------------------------------------------------------
# * Shop Call
#--------------------------------------------------------------------------
def call_shop
# Clear shop call flag
$game_temp.shop_calling = false
# Straighten player position
$game_player.straighten
# Switch to shop screen
$scene = Scene_Shop.new
end
#--------------------------------------------------------------------------
# * Name Input Call
#--------------------------------------------------------------------------
def call_name
# Clear name input call flag
$game_temp.name_calling = false
# Straighten player position
$game_player.straighten
# Switch to name input screen
$scene = Scene_Name.new
end
#--------------------------------------------------------------------------
# * Menu Call
#--------------------------------------------------------------------------
def call_menu
# Clear menu call flag
$game_temp.menu_calling = false
# If menu beep flag is set
if $game_temp.menu_beep
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Clear menu beep flag
$game_temp.menu_beep = false
end
# Straighten player position
$game_player.straighten
# Switch to menu screen
$scene = Scene_Menu.new
end
#--------------------------------------------------------------------------
# * Save Call
#--------------------------------------------------------------------------
def call_save
# Straighten player position
$game_player.straighten
# Switch to save screen
$scene = Scene_Save.new
end
#--------------------------------------------------------------------------
# * Debug Call
#--------------------------------------------------------------------------
def call_debug
# Clear debug call flag
$game_temp.debug_calling = false
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Straighten player position
$game_player.straighten
# Switch to debug screen
$scene = Scene_Debug.new
end
#--------------------------------------------------------------------------
# * Player Place Move
#--------------------------------------------------------------------------
def transfer_player
# Clear player place move call flag
$game_temp.player_transferring = false
# If move destination is different than current map
if $game_map.map_id != $game_temp.player_new_map_id
# Set up a new map
$game_map.setup($game_temp.player_new_map_id)
end
# Set up player position
$game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)
# Set player direction
case $game_temp.player_new_direction
when 2 # down
$game_player.turn_down
when 4 # left
$game_player.turn_left
when 6 # right
$game_player.turn_right
when 8 # up
$game_player.turn_up
end
# Straighten player position
$game_player.straighten
# Update map (run parallel process event)
$game_map.update
# Remake sprite set
@spriteset.dispose
@spriteset = Spriteset_Map.new
# If processing transition
if $game_temp.transition_processing
# Clear transition processing flag
$game_temp.transition_processing = false
# Execute transition
Graphics.transition(20)
end
# Run automatic change for BGM and BGS set on the map
$game_map.autoplay
# Frame reset
Graphics.frame_reset
# Update input information
Input.update
end
end