#==============================================================================#
# ** Classe Color
#==============================================================================#
class Color
#-----------------------------------------------------------------------------
# * Inverte o valor das cores
#-----------------------------------------------------------------------------
def invert
r = 255 - self.red
g = 255 - self.green
b = 255 - self.blue
a = self.alpha
self.set(r, g, b, a)
end
end
#==============================================================================#
# ** Classe Mini Map
#==============================================================================#
class MiniMap
include SheolShade::MiniMap
def initialize(viewport)
@viewport = viewport
@playercolor = PlayerColor.dup.invert
@followercolor = FollowerColor.dup.invert
@boatcolor = BoatColor.dup.invert
@shipcolor = ShipColor.dup.invert
@airshipcolor = AirshipColor.dup.invert
@objectcolor = ObjectColor.dup
@objectcolor.each_pair do |key, value|
@objectcolor[key] = value.dup.invert
end
@bordercolor = BorderColor.dup.invert
@mapcolor = MapColor.dup.invert
@mapbordercolor = MapBorderColor.dup.invert
@clearoutsidecolor = ClearOutsideColor.dup.invert
@outlinemapcolor = OutlineMapColor.dup.invert
refresh
end
def refresh
@map_id = $game_map.map_id
@backmask = Sprite.new(@viewport)
@backmask.bitmap = Cache::system("Back_96")
@backmask.x = @backmask.y = 8
@backtile = Sprite.new(@viewport)
@backtile.blend_type = 2
@backtile.z = 1
@backtile.x = @backtile.y = -100
@map = Sprite.new(@viewport)
@map.z = 2
@map.blend_type = 2
@object_layer = Sprite.new(@viewport)
@object_layer.z = 3
@object_layer.blend_type = 2
@object_layer.bitmap = Bitmap.new($game_map.width*TileSize + 112,
$game_map.height*TileSize + 112)
@object_layer.opacity = ObjectLayerOpacity
@border = Sprite.new(@viewport)
@border.bitmap = Cache::system(BorderName)
@border.z = 4
@border.opacity = 255
@mask = Cache::system("Mask")
draw_back
draw_map
end
def visible?
$game_switches[EnableSwitchId]
end
def draw_map
front = make_map_bitmap(@mapcolor)
border = make_map_bitmap(@mapbordercolor)
result = Bitmap.new($game_map.width*TileSize + 112,
$game_map.height*TileSize+ 112)
result.blt(-1, 0, border, border.rect)
result.blt(1, 0, border, border.rect)
result.blt(0, -1, border, border.rect)
result.blt(0, 1, border, border.rect)
result.blt(0, 0, front, front.rect)
@mapbitmap = result
end
def draw_back
bitmap = Bitmap.new($game_map.width*TileSize+112,
$game_map.height*TileSize+112)
if UseBGTexture
bit = Cache::system(BackTextureName)
bitmap.stretch_blt(bitmap.rect, bit, bit.rect)
else
bitmap.fill_rect(bitmap.rect, BGColor)
end
if ClearOutsideArea
bitmap.fill_rect(0,0,bitmap.width, 56, @clearoutsidecolor)
bitmap.fill_rect(0,0,56, bitmap.height, @clearoutsidecolor)
bitmap.fill_rect(0,bitmap.height-56,bitmap.width, 56, @clearoutsidecolor)
bitmap.fill_rect(bitmap.width-56,0,56, bitmap.height, @clearoutsidecolor)
elsif OutlineMapArea
bitmap.fill_rect(56,55,bitmap.width-112,1,@outlinemapcolor)
bitmap.fill_rect(55,56,1,bitmap.height-112,@outlinemapcolor)
bitmap.fill_rect(bitmap.width-56,55,1,bitmap.height-112,@outlinemapcolor)
bitmap.fill_rect(56,bitmap.height-56,bitmap.width-112,1,@outlinemapcolor)
end
@backtilebitmap = bitmap
end
def draw_object_layer
for event in $game_map.events.keys
if $game_map.events[event].list.size >= 0
for item in $game_map.events[event].list
if item.code == 108 or item.code == 408
if @objectcolor.has_key?(item.parameters[0])
draw_object($game_map.events[event].real_x*TileSize+56,
$game_map.events[event].real_y*TileSize+56,
@objectcolor[item.parameters[0]])
end
end
end
end
end
if ShowFollowers
unless $game_player.vehicle
$game_player.followers.each do |follower|
draw_object(follower.real_x*TileSize+56,
follower.real_y*TileSize+56,
@followercolor) if follower.visible?
end
end
end
if ShowVehicles
unless $game_map.airship.transparent
draw_object($game_map.airship.real_x*TileSize+56,
$game_map.airship.real_y*TileSize+56,
@airshipcolor)
end
unless $game_map.ship.transparent
draw_object($game_map.ship.real_x*TileSize+56,
$game_map.ship.real_y*TileSize+56,
@shipcolor)
end
unless $game_map.boat.transparent
draw_object($game_map.boat.real_x*TileSize+56,
$game_map.boat.real_y*TileSize+56,
@boatcolor)
end
end
draw_object($game_player.real_x*TileSize+56,
$game_player.real_y*TileSize+56,
@playercolor)
end
def draw_object(x, y, color)
@object_layer.bitmap.fill_rect(x, y, TileSize, TileSize, @bordercolor)
@object_layer.bitmap.fill_rect(x+1, y+1, TileSize-2, TileSize-2, color)
@object_layer.bitmap.clear_rect(x,y,1,1)
@object_layer.bitmap.clear_rect(x,y+TileSize-1,1,1)
@object_layer.bitmap.clear_rect(x+TileSize-1,y,1,1)
@object_layer.bitmap.clear_rect(x+TileSize-1,y+TileSize-1,1,1)
end
def make_map_bitmap(color)
bitmap = Bitmap.new($game_map.width*TileSize + 112,
$game_map.height*TileSize + 112)
for x in 0..$game_map.width - 1
for y in 0..$game_map.height - 1
if $game_map.airship_land_ok?(x, y) || $game_map.bush?(x, y)
if UseHideRegion
bitmap.fill_rect(x*TileSize+56,
y*TileSize+56,
TileSize, TileSize,
color) if $game_map.region_id(x, y) == HideRegionId
else
next
end
if $game_map.bush?(x, y)
unless $game_map.passable?(x, y, 4)
bitmap.fill_rect(x*TileSize+56, y*TileSize+56, TileSize, TileSize, color)
end
end
next
end
bitmap.fill_rect(x*TileSize+56, y*TileSize+56, TileSize, TileSize, color)
end
end
bitmap
end
def update_object_layer
@object_layer.bitmap.clear
draw_object_layer
end
def dispose
@backmask.dispose
@backtile.dispose
@map.dispose
@object_layer.dispose
@border.dispose
end
def update
if @map_id != $game_map.map_id
dispose
@map_id = $game_map.map_id
refresh
end
@backmask.visible = visible?
@backtile.visible = visible?
@map.visible = visible?
@object_layer.visible = visible?
@border.visible = visible?
if visible?
@map.bitmap.dispose if @map.bitmap
@map.bitmap = @mapbitmap.dup
@backtile.bitmap.dispose if @backtile.bitmap
@backtile.bitmap = @backtilebitmap.dup
sx = $game_player.real_x * (TileSize * -1) + MapOffset
sy = $game_player.real_y * (TileSize * -1) + MapOffset
update_object_layer
@map.x = @backtile.x = @object_layer.x = sx
@map.y = @backtile.y = @object_layer.y = sy
@backtile.bitmap.blt(sx*-1, sy*-1,@mask,@mask.rect)
@map.bitmap.blt(sx*-1, sy*-1,@mask,@mask.rect)
@object_layer.bitmap.blt(sx*-1, sy*-1,@mask,@mask.rect)
end
end
end
#==============================================================================#
# ** Classe Spriteset_Map
#==============================================================================#
class Spriteset_Map
alias sheol_mini_map_init initialize
alias sheol_mini_map_updt update
alias sheol_mini_map_disp dispose
include SheolShade::MiniMap
def initialize
create_minimap
sheol_mini_map_init
end
def create_minimap
viewport = Viewport.new(Graphics.width - 112,0,112,112)
viewport.rect.set(MiniMapCoords[MiniMapCorner][0],
MiniMapCoords[MiniMapCorner][1],
MiniMapCoords[MiniMapCorner][2],
MiniMapCoords[MiniMapCorner][3])
viewport.z = 500
@minimapa = MiniMap.new(viewport)
end
def dispose
sheol_mini_map_disp
@minimapa.dispose
end
def update
sheol_mini_map_updt
@minimapa.update
end
end
#==============================================================================#
# ** Fim do Script
#==============================================================================#