mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2026-03-22 07:40:24 +00:00
Merge branch 'dev' into ai
This commit is contained in:
@@ -202,7 +202,7 @@ module Settings
|
|||||||
NUM_STORAGE_BOXES = 40
|
NUM_STORAGE_BOXES = 40
|
||||||
# Whether putting a Pokémon into Pokémon storage will heal it. IF false, they
|
# Whether putting a Pokémon into Pokémon storage will heal it. IF false, they
|
||||||
# are healed by the Recover All: Entire Party event command (at Poké Centers).
|
# are healed by the Recover All: Entire Party event command (at Poké Centers).
|
||||||
HEAL_STORED_POKEMON = (MECHANICS_GENERATION >= 8)
|
HEAL_STORED_POKEMON = (MECHANICS_GENERATION <= 7)
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
|
|||||||
@@ -317,7 +317,7 @@ end
|
|||||||
# NOTE: load_data checks anything added in MKXP's RTP setting, and matching
|
# NOTE: load_data checks anything added in MKXP's RTP setting, and matching
|
||||||
# mount points added through System.mount.
|
# mount points added through System.mount.
|
||||||
def pbRgssOpen(file, mode = nil)
|
def pbRgssOpen(file, mode = nil)
|
||||||
# File.open("debug.txt","ab") { |fw| fw.write([file,mode,Time.now.to_f].inspect+"\r\n") }
|
# File.open("debug.txt", "ab") { |fw| fw.write([file, mode, Time.now.to_f].inspect + "\r\n") }
|
||||||
if !safeExists?("./Game.rgssad")
|
if !safeExists?("./Game.rgssad")
|
||||||
if block_given?
|
if block_given?
|
||||||
File.open(file, mode) { |f| yield f }
|
File.open(file, mode) { |f| yield f }
|
||||||
|
|||||||
@@ -329,30 +329,6 @@ class Color
|
|||||||
def self.orange; return Color.new(255, 155, 0); end
|
def self.orange; return Color.new(255, 155, 0); end
|
||||||
def self.purple; return Color.new(155, 0, 255); end
|
def self.purple; return Color.new(155, 0, 255); end
|
||||||
def self.brown; return Color.new(112, 72, 32); end
|
def self.brown; return Color.new(112, 72, 32); end
|
||||||
|
|
||||||
# TODO: These are from def getSkinColor. It isn't appropriate to make Color
|
|
||||||
# objects of these, though, as they're just converted straight back into
|
|
||||||
# hex strings.
|
|
||||||
# def self.text_blue; return Color.new( 0, 112, 248); end
|
|
||||||
# def self.text_blue_light; return Color.new(120, 184, 232); end
|
|
||||||
# def self.text_red; return Color.new(232, 32, 16); end
|
|
||||||
# def self.text_red_light; return Color.new(248, 168, 184); end
|
|
||||||
# def self.text_green; return Color.new( 96, 176, 72); end
|
|
||||||
# def self.text_green_light; return Color.new(174, 208, 144); end
|
|
||||||
# def self.text_cyan; return Color.new( 72, 216, 216); end
|
|
||||||
# def self.text_cyan_light; return Color.new(168, 224, 224); end
|
|
||||||
# def self.text_magenta; return Color.new(208, 56, 184); end
|
|
||||||
# def self.text_magenta_light; return Color.new(232, 160, 224); end
|
|
||||||
# def self.text_yellow; return Color.new(232, 208, 32); end
|
|
||||||
# def self.text_yellow_light; return Color.new(248, 232, 136); end
|
|
||||||
# def self.text_gray; return Color.new(160, 160, 168); end
|
|
||||||
# def self.text_gray_light; return Color.new(208, 208, 216); end
|
|
||||||
# def self.text_white; return Color.new(240, 240, 248); end
|
|
||||||
# def self.text_white_light; return Color.new(200, 200, 208); end # Intentionally darker than text_white
|
|
||||||
# def self.text_purple; return Color.new(114, 64, 232); end
|
|
||||||
# def self.text_purple_light; return Color.new(184, 168, 224); end
|
|
||||||
# def self.text_orange; return Color.new(248, 152, 24); end
|
|
||||||
# def self.text_orange_light; return Color.new(248, 200, 152); end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
|
|||||||
@@ -284,8 +284,8 @@ module Translator
|
|||||||
f.write(0xEF.chr)
|
f.write(0xEF.chr)
|
||||||
f.write(0xBB.chr)
|
f.write(0xBB.chr)
|
||||||
f.write(0xBF.chr)
|
f.write(0xBF.chr)
|
||||||
f.write("# To localize this text for a particular language, please\r\n")
|
f.write("# To localize this text for a particular language, please" + "\r\n")
|
||||||
f.write("# translate every second line of this file.\r\n")
|
f.write("# translate every second line of this file." + "\r\n")
|
||||||
f.write("\#-------------------------------\r\n") if with_line
|
f.write("\#-------------------------------\r\n") if with_line
|
||||||
end
|
end
|
||||||
# Extract the text
|
# Extract the text
|
||||||
|
|||||||
@@ -2,26 +2,30 @@
|
|||||||
#
|
#
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
module MessageConfig
|
module MessageConfig
|
||||||
LIGHT_TEXT_MAIN_COLOR = Color.new(248, 248, 248)
|
LIGHT_TEXT_MAIN_COLOR = Color.new(248, 248, 248)
|
||||||
LIGHT_TEXT_SHADOW_COLOR = Color.new(72, 80, 88)
|
LIGHT_TEXT_SHADOW_COLOR = Color.new(72, 80, 88)
|
||||||
DARK_TEXT_MAIN_COLOR = Color.new(80, 80, 88)
|
DARK_TEXT_MAIN_COLOR = Color.new(80, 80, 88)
|
||||||
DARK_TEXT_SHADOW_COLOR = Color.new(160, 160, 168)
|
DARK_TEXT_SHADOW_COLOR = Color.new(160, 160, 168)
|
||||||
FONT_NAME = "Power Green"
|
MALE_TEXT_MAIN_COLOR = Color.new(48, 80, 200) # Used by message tag "\b"
|
||||||
FONT_SIZE = 27
|
MALE_TEXT_SHADOW_COLOR = Color.new(208, 208, 200)
|
||||||
FONT_Y_OFFSET = 8
|
FEMALE_TEXT_MAIN_COLOR = Color.new(224, 8, 8) # Used by message tag "\r"
|
||||||
SMALL_FONT_NAME = "Power Green Small"
|
FEMALE_TEXT_SHADOW_COLOR = Color.new(208, 208, 200)
|
||||||
SMALL_FONT_SIZE = 21
|
FONT_NAME = "Power Green"
|
||||||
SMALL_FONT_Y_OFFSET = 8
|
FONT_SIZE = 27
|
||||||
NARROW_FONT_NAME = "Power Green Narrow"
|
FONT_Y_OFFSET = 8
|
||||||
NARROW_FONT_SIZE = 27
|
SMALL_FONT_NAME = "Power Green Small"
|
||||||
NARROW_FONT_Y_OFFSET = 8
|
SMALL_FONT_SIZE = 21
|
||||||
|
SMALL_FONT_Y_OFFSET = 8
|
||||||
|
NARROW_FONT_NAME = "Power Green Narrow"
|
||||||
|
NARROW_FONT_SIZE = 27
|
||||||
|
NARROW_FONT_Y_OFFSET = 8
|
||||||
# 0 = Pause cursor is displayed at end of text
|
# 0 = Pause cursor is displayed at end of text
|
||||||
# 1 = Pause cursor is displayed at bottom right
|
# 1 = Pause cursor is displayed at bottom right
|
||||||
# 2 = Pause cursor is displayed at lower middle side
|
# 2 = Pause cursor is displayed at lower middle side
|
||||||
CURSOR_POSITION = 1
|
CURSOR_POSITION = 1
|
||||||
WINDOW_OPACITY = 255
|
WINDOW_OPACITY = 255
|
||||||
TEXT_SPEED = nil # can be positive to wait frames or negative to
|
TEXT_SPEED = nil # can be positive to wait frames, or negative
|
||||||
# show multiple characters in a single frame
|
# to show multiple characters in a single frame
|
||||||
@@systemFrame = nil
|
@@systemFrame = nil
|
||||||
@@defaultTextSkin = nil
|
@@defaultTextSkin = nil
|
||||||
@@textSpeed = nil
|
@@textSpeed = nil
|
||||||
@@ -328,21 +332,22 @@ def getSkinColor(windowskin, color, isDarkSkin)
|
|||||||
if !windowskin || windowskin.disposed? ||
|
if !windowskin || windowskin.disposed? ||
|
||||||
windowskin.width != 128 || windowskin.height != 128
|
windowskin.width != 128 || windowskin.height != 128
|
||||||
# Base color, shadow color (these are reversed on dark windowskins)
|
# Base color, shadow color (these are reversed on dark windowskins)
|
||||||
|
# Values in arrays are RGB numbers
|
||||||
textcolors = [
|
textcolors = [
|
||||||
"0070F8", "78B8E8", # 1 Blue
|
[ 0, 112, 248], [120, 184, 232], # 1 Blue
|
||||||
"E82010", "F8A8B8", # 2 Red
|
[232, 32, 16], [248, 168, 184], # 2 Red
|
||||||
"60B048", "B0D090", # 3 Green
|
[ 96, 176, 72], [174, 208, 144], # 3 Green
|
||||||
"48D8D8", "A8E0E0", # 4 Cyan
|
[ 72, 216, 216], [168, 224, 224], # 4 Cyan
|
||||||
"D038B8", "E8A0E0", # 5 Magenta
|
[208, 56, 184], [232, 160, 224], # 5 Magenta
|
||||||
"E8D020", "F8E888", # 6 Yellow
|
[232, 208, 32], [248, 232, 136], # 6 Yellow
|
||||||
"A0A0A8", "D0D0D8", # 7 Grey
|
[160, 160, 168], [208, 208, 216], # 7 Gray
|
||||||
"F0F0F8", "C8C8D0", # 8 White
|
[240, 240, 248], [200, 200, 208], # 8 White
|
||||||
"9040E8", "B8A8E0", # 9 Purple
|
[114, 64, 232], [184, 168, 224], # 9 Purple
|
||||||
"F89818", "F8C898", # 10 Orange
|
[248, 152, 24], [248, 200, 152], # 10 Orange
|
||||||
MessageConfig::DARK_TEXT_MAIN_COLOR.to_rgb24,
|
MessageConfig::DARK_TEXT_MAIN_COLOR,
|
||||||
MessageConfig::DARK_TEXT_SHADOW_COLOR.to_rgb24, # 11 Dark default
|
MessageConfig::DARK_TEXT_SHADOW_COLOR, # 11 Dark default
|
||||||
MessageConfig::LIGHT_TEXT_MAIN_COLOR.to_rgb24,
|
MessageConfig::LIGHT_TEXT_MAIN_COLOR,
|
||||||
MessageConfig::LIGHT_TEXT_SHADOW_COLOR.to_rgb24 # 12 Light default
|
MessageConfig::LIGHT_TEXT_SHADOW_COLOR # 12 Light default
|
||||||
]
|
]
|
||||||
if color == 0 || color > textcolors.length / 2 # No special colour, use default
|
if color == 0 || color > textcolors.length / 2 # No special colour, use default
|
||||||
if isDarkSkin # Dark background, light text
|
if isDarkSkin # Dark background, light text
|
||||||
@@ -353,10 +358,10 @@ def getSkinColor(windowskin, color, isDarkSkin)
|
|||||||
end
|
end
|
||||||
# Special colour as listed above
|
# Special colour as listed above
|
||||||
if isDarkSkin && color != 12 # Dark background, light text
|
if isDarkSkin && color != 12 # Dark background, light text
|
||||||
return sprintf("<c3=%s,%s>", textcolors[(2 * (color - 1)) + 1], textcolors[2 * (color - 1)])
|
return shadowc3tag(textcolors[(2 * (color - 1)) + 1], textcolors[2 * (color - 1)])
|
||||||
end
|
end
|
||||||
# Light background, dark text
|
# Light background, dark text
|
||||||
return sprintf("<c3=%s,%s>", textcolors[2 * (color - 1)], textcolors[(2 * (color - 1)) + 1])
|
return shadowc3tag(textcolors[2 * (color - 1)], textcolors[(2 * (color - 1)) + 1])
|
||||||
else # VX windowskin
|
else # VX windowskin
|
||||||
color = 0 if color >= 32
|
color = 0 if color >= 32
|
||||||
x = 64 + ((color % 8) * 8)
|
x = 64 + ((color % 8) * 8)
|
||||||
|
|||||||
@@ -307,7 +307,7 @@ class Window_AdvancedTextPokemon < SpriteWindow_Base
|
|||||||
@fmtchars = []
|
@fmtchars = []
|
||||||
fmt = getFormattedText(self.contents, 0, 0,
|
fmt = getFormattedText(self.contents, 0, 0,
|
||||||
self.width - self.borderX - SpriteWindow_Base::TEXT_PADDING, -1,
|
self.width - self.borderX - SpriteWindow_Base::TEXT_PADDING, -1,
|
||||||
shadowctag(@baseColor, @shadowColor) + value, 32, true)
|
shadowc3tag(@baseColor, @shadowColor) + value, 32, true)
|
||||||
@oldfont = self.contents.font.clone
|
@oldfont = self.contents.font.clone
|
||||||
fmt.each do |ch|
|
fmt.each do |ch|
|
||||||
chx = ch[1] + ch[3]
|
chx = ch[1] + ch[3]
|
||||||
@@ -334,7 +334,7 @@ class Window_AdvancedTextPokemon < SpriteWindow_Base
|
|||||||
else
|
else
|
||||||
@fmtchars = getFormattedText(self.contents, 0, 0,
|
@fmtchars = getFormattedText(self.contents, 0, 0,
|
||||||
self.width - self.borderX - SpriteWindow_Base::TEXT_PADDING, -1,
|
self.width - self.borderX - SpriteWindow_Base::TEXT_PADDING, -1,
|
||||||
shadowctag(@baseColor, @shadowColor) + value, 32, true)
|
shadowc3tag(@baseColor, @shadowColor) + value, 32, true)
|
||||||
@oldfont = self.contents.font.clone
|
@oldfont = self.contents.font.clone
|
||||||
@fmtchars.each do |ch|
|
@fmtchars.each do |ch|
|
||||||
chx = ch[1] + ch[3]
|
chx = ch[1] + ch[3]
|
||||||
|
|||||||
@@ -1,25 +1,40 @@
|
|||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Text colours
|
# Text colors
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# TODO: Unused.
|
# Unused
|
||||||
def ctag(color)
|
def ctag(color)
|
||||||
return sprintf("<c=%s>", color.to_rgb32(true))
|
return sprintf("<c=%s>", color.to_rgb32(true))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Unused
|
||||||
def shadowctag(base, shadow)
|
def shadowctag(base, shadow)
|
||||||
return sprintf("<c2=%s%s>", base.to_rgb15, shadow.to_rgb15)
|
return sprintf("<c2=%s%s>", base.to_rgb15, shadow.to_rgb15)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# base and shadow are either instances of class Color, or are arrays containing
|
||||||
|
# 3 or 4 integers which are RGB(A) values.
|
||||||
def shadowc3tag(base, shadow)
|
def shadowc3tag(base, shadow)
|
||||||
return sprintf("<c3=%s,%s>", base.to_rgb32, shadow.to_rgb32)
|
if base.is_a?(Color)
|
||||||
|
base_text = base.to_rgb32
|
||||||
|
else
|
||||||
|
base_text = sprintf("%02X%02X%02X", base[0], base[1], base[2])
|
||||||
|
base_text += sprintf("02X", base[3]) if base[3]
|
||||||
|
end
|
||||||
|
if shadow.is_a?(Color)
|
||||||
|
shadow_text = shadow.to_rgb32
|
||||||
|
else
|
||||||
|
shadow_text = sprintf("%02X%02X%02X", shadow[0], shadow[1], shadow[2])
|
||||||
|
shadow_text += sprintf("02X", shadow[3]) if shadow[3]
|
||||||
|
end
|
||||||
|
return sprintf("<c3=%s,%s>", base_text, shadow_text)
|
||||||
end
|
end
|
||||||
|
|
||||||
# TODO: Unused.
|
# Unused
|
||||||
def shadowctagFromColor(color)
|
def shadowctagFromColor(color)
|
||||||
return shadowc3tag(color, color.get_contrast_color)
|
return shadowc3tag(color, color.get_contrast_color)
|
||||||
end
|
end
|
||||||
|
|
||||||
# TODO: Unused.
|
# Unused
|
||||||
def shadowctagFromRgb(param)
|
def shadowctagFromRgb(param)
|
||||||
return shadowctagFromColor(Color.new_from_rgb(param))
|
return shadowctagFromColor(Color.new_from_rgb(param))
|
||||||
end
|
end
|
||||||
@@ -1022,7 +1037,7 @@ end
|
|||||||
def drawFormattedTextEx(bitmap, x, y, width, text, baseColor = nil, shadowColor = nil, lineheight = 32)
|
def drawFormattedTextEx(bitmap, x, y, width, text, baseColor = nil, shadowColor = nil, lineheight = 32)
|
||||||
base = baseColor ? baseColor.clone : Color.new(96, 96, 96)
|
base = baseColor ? baseColor.clone : Color.new(96, 96, 96)
|
||||||
shadow = shadowColor ? shadowColor.clone : Color.new(208, 208, 200)
|
shadow = shadowColor ? shadowColor.clone : Color.new(208, 208, 200)
|
||||||
text = shadowctag(base, shadow) + text
|
text = shadowc3tag(base, shadow) + text
|
||||||
chars = getFormattedText(bitmap, x, y, width, -1, text, lineheight)
|
chars = getFormattedText(bitmap, x, y, width, -1, text, lineheight)
|
||||||
drawFormattedChars(bitmap, chars)
|
drawFormattedChars(bitmap, chars)
|
||||||
end
|
end
|
||||||
@@ -1033,6 +1048,16 @@ def pbDrawShadow(bitmap, x, y, width, height, string)
|
|||||||
pbDrawShadowText(bitmap, x, y, width, height, string, nil, bitmap.font.color)
|
pbDrawShadowText(bitmap, x, y, width, height, string, nil, bitmap.font.color)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def pbDrawPlainText(bitmap, x, y, width, height, string, baseColor, align = 0)
|
||||||
|
return if !bitmap || !string
|
||||||
|
width = (width < 0) ? bitmap.text_size(string).width + 1 : width
|
||||||
|
height = (height < 0) ? bitmap.text_size(string).height + 1 : height
|
||||||
|
if baseColor && baseColor.alpha > 0
|
||||||
|
bitmap.font.color = baseColor
|
||||||
|
bitmap.draw_text(x, y, width, height, string, align)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def pbDrawShadowText(bitmap, x, y, width, height, string, baseColor, shadowColor = nil, align = 0)
|
def pbDrawShadowText(bitmap, x, y, width, height, string, baseColor, shadowColor = nil, align = 0)
|
||||||
return if !bitmap || !string
|
return if !bitmap || !string
|
||||||
width = (width < 0) ? bitmap.text_size(string).width + 1 : width
|
width = (width < 0) ? bitmap.text_size(string).width + 1 : width
|
||||||
@@ -1075,24 +1100,29 @@ end
|
|||||||
# 0 - Text to draw
|
# 0 - Text to draw
|
||||||
# 1 - X coordinate
|
# 1 - X coordinate
|
||||||
# 2 - Y coordinate
|
# 2 - Y coordinate
|
||||||
# 3 - If true or 1, the text is right aligned. If 2, the text is centered.
|
# 3 - Text alignment. Is one of :left (or false or 0), :right (or true or 1) or
|
||||||
# Otherwise, the text is left aligned.
|
# :center (or 2). If anything else, the text is left aligned.
|
||||||
# 4 - Base color
|
# 4 - Base color
|
||||||
# 5 - Shadow color
|
# 5 - Shadow color. If nil, there is no shadow.
|
||||||
# 6 - If true or 1, the text has an outline. Otherwise, the text has a shadow.
|
# 6 - If :outline (or true or 1), the text has a full outline. If :none (or the
|
||||||
|
# shadow color is nil), there is no shadow. Otherwise, the text has a shadow.
|
||||||
def pbDrawTextPositions(bitmap, textpos)
|
def pbDrawTextPositions(bitmap, textpos)
|
||||||
textpos.each do |i|
|
textpos.each do |i|
|
||||||
textsize = bitmap.text_size(i[0])
|
textsize = bitmap.text_size(i[0])
|
||||||
x = i[1]
|
x = i[1]
|
||||||
y = i[2]
|
y = i[2]
|
||||||
case i[3]
|
case i[3]
|
||||||
when true, 1 # right align
|
when :right, true, 1 # right align
|
||||||
x -= textsize.width
|
x -= textsize.width
|
||||||
when 2 # centered
|
when :center, 2 # centered
|
||||||
x -= (textsize.width / 2)
|
x -= (textsize.width / 2)
|
||||||
end
|
end
|
||||||
if i[6] == true || i[6] == 1 # outline text
|
i[6] = :none if !i[5] # No shadow color given, draw plain text
|
||||||
|
case i[6]
|
||||||
|
when :outline, true, 1 # outline text
|
||||||
pbDrawOutlineText(bitmap, x, y, textsize.width, textsize.height, i[0], i[4], i[5])
|
pbDrawOutlineText(bitmap, x, y, textsize.width, textsize.height, i[0], i[4], i[5])
|
||||||
|
when :none
|
||||||
|
pbDrawPlainText(bitmap, x, y, textsize.width, textsize.height, i[0], i[4])
|
||||||
else
|
else
|
||||||
pbDrawShadowText(bitmap, x, y, textsize.width, textsize.height, i[0], i[4], i[5])
|
pbDrawShadowText(bitmap, x, y, textsize.width, textsize.height, i[0], i[4], i[5])
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -442,8 +442,10 @@ def pbMessageDisplay(msgwindow, message, letterbyletter = true, commandProc = ni
|
|||||||
text.gsub!(/\\pog/i, "\\b") if $player&.female?
|
text.gsub!(/\\pog/i, "\\b") if $player&.female?
|
||||||
text.gsub!(/\\pg/i, "")
|
text.gsub!(/\\pg/i, "")
|
||||||
text.gsub!(/\\pog/i, "")
|
text.gsub!(/\\pog/i, "")
|
||||||
text.gsub!(/\\b/i, "<c3=3050C8,D0D0C8>")
|
male_text_tag = shadowc3tag(MessageConfig::MALE_TEXT_MAIN_COLOR, MessageConfig::MALE_TEXT_SHADOW_COLOR)
|
||||||
text.gsub!(/\\r/i, "<c3=E00808,D0D0C8>")
|
female_text_tag = shadowc3tag(MessageConfig::FEMALE_TEXT_MAIN_COLOR, MessageConfig::FEMALE_TEXT_SHADOW_COLOR)
|
||||||
|
text.gsub!(/\\b/i, male_text_tag)
|
||||||
|
text.gsub!(/\\r/i, female_text_tag)
|
||||||
text.gsub!(/\\[Ww]\[([^\]]*)\]/) do
|
text.gsub!(/\\[Ww]\[([^\]]*)\]/) do
|
||||||
w = $1.to_s
|
w = $1.to_s
|
||||||
if w == ""
|
if w == ""
|
||||||
|
|||||||
@@ -1302,7 +1302,7 @@ module Transitions
|
|||||||
@text_sprite.visible = false
|
@text_sprite.visible = false
|
||||||
pbSetSystemFont(@text_sprite.bitmap)
|
pbSetSystemFont(@text_sprite.bitmap)
|
||||||
pbDrawTextPositions(@text_sprite.bitmap,
|
pbDrawTextPositions(@text_sprite.bitmap,
|
||||||
[[$game_temp.transition_animation_data[1], 244, 86, 0,
|
[[$game_temp.transition_animation_data[1], 244, 86, :left,
|
||||||
Color.new(248, 248, 248), Color.new(72, 80, 80)]])
|
Color.new(248, 248, 248), Color.new(72, 80, 80)]])
|
||||||
# Foreground black
|
# Foreground black
|
||||||
@black_sprite = new_sprite(0, 0, @black_bitmap)
|
@black_sprite = new_sprite(0, 0, @black_bitmap)
|
||||||
@@ -1497,7 +1497,7 @@ module Transitions
|
|||||||
@text_sprite.z = 8
|
@text_sprite.z = 8
|
||||||
pbSetSystemFont(@text_sprite.bitmap)
|
pbSetSystemFont(@text_sprite.bitmap)
|
||||||
pbDrawTextPositions(@text_sprite.bitmap,
|
pbDrawTextPositions(@text_sprite.bitmap,
|
||||||
[[$game_temp.transition_animation_data[1], 160, 86, 0,
|
[[$game_temp.transition_animation_data[1], 160, 86, :left,
|
||||||
Color.new(248, 248, 248), Color.new(72, 80, 80)]])
|
Color.new(248, 248, 248), Color.new(72, 80, 80)]])
|
||||||
# VS logo
|
# VS logo
|
||||||
@vs_main_sprite = new_sprite(Graphics.width / 2, Graphics.height / 2, @vs_1_bitmap,
|
@vs_main_sprite = new_sprite(Graphics.width / 2, Graphics.height / 2, @vs_1_bitmap,
|
||||||
@@ -1804,7 +1804,7 @@ module Transitions
|
|||||||
@text_sprite.visible = false
|
@text_sprite.visible = false
|
||||||
pbSetSystemFont(@text_sprite.bitmap)
|
pbSetSystemFont(@text_sprite.bitmap)
|
||||||
pbDrawTextPositions(@text_sprite.bitmap,
|
pbDrawTextPositions(@text_sprite.bitmap,
|
||||||
[[$game_temp.transition_animation_data[1], 272, 8, 0,
|
[[$game_temp.transition_animation_data[1], 272, 8, :left,
|
||||||
Color.new(248, 248, 248), Color.new(72, 80, 80)]])
|
Color.new(248, 248, 248), Color.new(72, 80, 80)]])
|
||||||
# Foreground black
|
# Foreground black
|
||||||
@black_sprite = new_sprite(0, 0, @black_bitmap)
|
@black_sprite = new_sprite(0, 0, @black_bitmap)
|
||||||
|
|||||||
@@ -27,13 +27,13 @@ class Battle
|
|||||||
weather_data = GameData::BattleWeather.try_get(@field.weather)
|
weather_data = GameData::BattleWeather.try_get(@field.weather)
|
||||||
pbCommonAnimation(weather_data.animation) if weather_data
|
pbCommonAnimation(weather_data.animation) if weather_data
|
||||||
case @field.weather
|
case @field.weather
|
||||||
# when :Sun then pbDisplay(_INTL("The sunlight is strong."))
|
when :Sun then pbDisplay(_INTL("The sunlight is strong."))
|
||||||
# when :Rain then pbDisplay(_INTL("Rain continues to fall."))
|
when :Rain then pbDisplay(_INTL("Rain continues to fall."))
|
||||||
when :Sandstorm then pbDisplay(_INTL("The sandstorm is raging."))
|
when :Sandstorm then pbDisplay(_INTL("The sandstorm is raging."))
|
||||||
when :Hail then pbDisplay(_INTL("The hail is crashing down."))
|
when :Hail then pbDisplay(_INTL("The hail is crashing down."))
|
||||||
# when :HarshSun then pbDisplay(_INTL("The sunlight is extremely harsh."))
|
when :HarshSun then pbDisplay(_INTL("The sunlight is extremely harsh."))
|
||||||
# when :HeavyRain then pbDisplay(_INTL("It is raining heavily."))
|
when :HeavyRain then pbDisplay(_INTL("It is raining heavily."))
|
||||||
# when :StrongWinds then pbDisplay(_INTL("The wind is strong."))
|
when :StrongWinds then pbDisplay(_INTL("The wind is strong."))
|
||||||
when :ShadowSky then pbDisplay(_INTL("The shadow sky continues."))
|
when :ShadowSky then pbDisplay(_INTL("The shadow sky continues."))
|
||||||
end
|
end
|
||||||
# Effects due to weather
|
# Effects due to weather
|
||||||
|
|||||||
@@ -104,24 +104,24 @@ class Battle::Scene
|
|||||||
messageFilename = @battle.backdrop
|
messageFilename = @battle.backdrop
|
||||||
if time
|
if time
|
||||||
trialName = sprintf("%s_%s", backdropFilename, time)
|
trialName = sprintf("%s_%s", backdropFilename, time)
|
||||||
if pbResolveBitmap(sprintf("Graphics/Battlebacks/" + trialName + "_bg"))
|
if pbResolveBitmap(sprintf("Graphics/Battlebacks/%s_bg", trialName))
|
||||||
backdropFilename = trialName
|
backdropFilename = trialName
|
||||||
end
|
end
|
||||||
trialName = sprintf("%s_%s", baseFilename, time)
|
trialName = sprintf("%s_%s", baseFilename, time)
|
||||||
if pbResolveBitmap(sprintf("Graphics/Battlebacks/" + trialName + "_base0"))
|
if pbResolveBitmap(sprintf("Graphics/Battlebacks/%s_base0", trialName))
|
||||||
baseFilename = trialName
|
baseFilename = trialName
|
||||||
end
|
end
|
||||||
trialName = sprintf("%s_%s", messageFilename, time)
|
trialName = sprintf("%s_%s", messageFilename, time)
|
||||||
if pbResolveBitmap(sprintf("Graphics/Battlebacks/" + trialName + "_message"))
|
if pbResolveBitmap(sprintf("Graphics/Battlebacks/%s_message", trialName))
|
||||||
messageFilename = trialName
|
messageFilename = trialName
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if !pbResolveBitmap(sprintf("Graphics/Battlebacks/" + baseFilename + "_base0")) &&
|
if !pbResolveBitmap(sprintf("Graphics/Battlebacks/%s_base0", baseFilename)) &&
|
||||||
@battle.backdropBase
|
@battle.backdropBase
|
||||||
baseFilename = @battle.backdropBase
|
baseFilename = @battle.backdropBase
|
||||||
if time
|
if time
|
||||||
trialName = sprintf("%s_%s", baseFilename, time)
|
trialName = sprintf("%s_%s", baseFilename, time)
|
||||||
if pbResolveBitmap(sprintf("Graphics/Battlebacks/" + trialName + "_base0"))
|
if pbResolveBitmap(sprintf("Graphics/Battlebacks/%s_base0", trialName))
|
||||||
baseFilename = trialName
|
baseFilename = trialName
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -358,7 +358,7 @@ class Battle::Scene::FightMenu < Battle::Scene::MenuBase
|
|||||||
# code to ensure the font is an appropriate color.
|
# code to ensure the font is an appropriate color.
|
||||||
moveNameBase = button.bitmap.get_pixel(10, button.src_rect.y + 34)
|
moveNameBase = button.bitmap.get_pixel(10, button.src_rect.y + 34)
|
||||||
end
|
end
|
||||||
textPos.push([moves[i].name, x, y, 2, moveNameBase, TEXT_SHADOW_COLOR])
|
textPos.push([moves[i].name, x, y, :center, moveNameBase, TEXT_SHADOW_COLOR])
|
||||||
end
|
end
|
||||||
pbDrawTextPositions(@overlay.bitmap, textPos)
|
pbDrawTextPositions(@overlay.bitmap, textPos)
|
||||||
end
|
end
|
||||||
@@ -408,7 +408,7 @@ class Battle::Scene::FightMenu < Battle::Scene::MenuBase
|
|||||||
ppFraction = [(4.0 * move.pp / move.total_pp).ceil, 3].min
|
ppFraction = [(4.0 * move.pp / move.total_pp).ceil, 3].min
|
||||||
textPos = []
|
textPos = []
|
||||||
textPos.push([_INTL("PP: {1}/{2}", move.pp, move.total_pp),
|
textPos.push([_INTL("PP: {1}/{2}", move.pp, move.total_pp),
|
||||||
448, 56, 2, PP_COLORS[ppFraction * 2], PP_COLORS[(ppFraction * 2) + 1]])
|
448, 56, :center, PP_COLORS[ppFraction * 2], PP_COLORS[(ppFraction * 2) + 1]])
|
||||||
pbDrawTextPositions(@infoOverlay.bitmap, textPos)
|
pbDrawTextPositions(@infoOverlay.bitmap, textPos)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -540,7 +540,7 @@ class Battle::Scene::TargetMenu < Battle::Scene::MenuBase
|
|||||||
next if !button || nil_or_empty?(@texts[i])
|
next if !button || nil_or_empty?(@texts[i])
|
||||||
x = button.x - self.x + (button.src_rect.width / 2)
|
x = button.x - self.x + (button.src_rect.width / 2)
|
||||||
y = button.y - self.y + 14
|
y = button.y - self.y + 14
|
||||||
textpos.push([@texts[i], x, y, 2, TEXT_BASE_COLOR, TEXT_SHADOW_COLOR])
|
textpos.push([@texts[i], x, y, :center, TEXT_BASE_COLOR, TEXT_SHADOW_COLOR])
|
||||||
end
|
end
|
||||||
pbDrawTextPositions(@overlay.bitmap, textpos)
|
pbDrawTextPositions(@overlay.bitmap, textpos)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -214,7 +214,7 @@ class Battle::Scene::PokemonDataBox < Sprite
|
|||||||
nameOffset = 0
|
nameOffset = 0
|
||||||
nameOffset = nameWidth - 116 if nameWidth > 116
|
nameOffset = nameWidth - 116 if nameWidth > 116
|
||||||
pbDrawTextPositions(self.bitmap,
|
pbDrawTextPositions(self.bitmap,
|
||||||
[[@battler.name, @spriteBaseX + 8 - nameOffset, 12, false, NAME_BASE_COLOR, NAME_SHADOW_COLOR]]
|
[[@battler.name, @spriteBaseX + 8 - nameOffset, 12, :left, NAME_BASE_COLOR, NAME_SHADOW_COLOR]]
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -233,7 +233,7 @@ class Battle::Scene::PokemonDataBox < Sprite
|
|||||||
gender_text = (gender == 0) ? _INTL("♂") : _INTL("♀")
|
gender_text = (gender == 0) ? _INTL("♂") : _INTL("♀")
|
||||||
base_color = (gender == 0) ? MALE_BASE_COLOR : FEMALE_BASE_COLOR
|
base_color = (gender == 0) ? MALE_BASE_COLOR : FEMALE_BASE_COLOR
|
||||||
shadow_color = (gender == 0) ? MALE_SHADOW_COLOR : FEMALE_SHADOW_COLOR
|
shadow_color = (gender == 0) ? MALE_SHADOW_COLOR : FEMALE_SHADOW_COLOR
|
||||||
pbDrawTextPositions(self.bitmap, [[gender_text, @spriteBaseX + 126, 12, false, base_color, shadow_color]])
|
pbDrawTextPositions(self.bitmap, [[gender_text, @spriteBaseX + 126, 12, :left, base_color, shadow_color]])
|
||||||
end
|
end
|
||||||
|
|
||||||
def draw_status
|
def draw_status
|
||||||
@@ -479,12 +479,13 @@ class Battle::Scene::AbilitySplashBar < Sprite
|
|||||||
return if !@battler
|
return if !@battler
|
||||||
textPos = []
|
textPos = []
|
||||||
textX = (@side == 0) ? 10 : self.bitmap.width - 8
|
textX = (@side == 0) ? 10 : self.bitmap.width - 8
|
||||||
|
align = (@side == 0) ? :left : :right
|
||||||
# Draw Pokémon's name
|
# Draw Pokémon's name
|
||||||
textPos.push([_INTL("{1}'s", @battler.name), textX, 8, @side == 1,
|
textPos.push([_INTL("{1}'s", @battler.name), textX, 8, align,
|
||||||
TEXT_BASE_COLOR, TEXT_SHADOW_COLOR, true])
|
TEXT_BASE_COLOR, TEXT_SHADOW_COLOR, :outline])
|
||||||
# Draw Pokémon's ability
|
# Draw Pokémon's ability
|
||||||
textPos.push([@battler.abilityName, textX, 38, @side == 1,
|
textPos.push([@battler.abilityName, textX, 38, align,
|
||||||
TEXT_BASE_COLOR, TEXT_SHADOW_COLOR, true])
|
TEXT_BASE_COLOR, TEXT_SHADOW_COLOR, :outline])
|
||||||
pbDrawTextPositions(self.bitmap, textPos)
|
pbDrawTextPositions(self.bitmap, textPos)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -81,8 +81,8 @@ class Battle::Scene::SafariDataBox < Sprite
|
|||||||
base = Color.new(72, 72, 72)
|
base = Color.new(72, 72, 72)
|
||||||
shadow = Color.new(184, 184, 184)
|
shadow = Color.new(184, 184, 184)
|
||||||
textpos = []
|
textpos = []
|
||||||
textpos.push([_INTL("Safari Balls"), 30, 14, false, base, shadow])
|
textpos.push([_INTL("Safari Balls"), 30, 14, :left, base, shadow])
|
||||||
textpos.push([_INTL("Left: {1}", @battle.ballCount), 30, 44, false, base, shadow])
|
textpos.push([_INTL("Left: {1}", @battle.ballCount), 30, 44, :left, base, shadow])
|
||||||
pbDrawTextPositions(self.bitmap, textpos)
|
pbDrawTextPositions(self.bitmap, textpos)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -235,15 +235,15 @@ class Battle::Scene
|
|||||||
window.contents.clear
|
window.contents.clear
|
||||||
pbSetSystemFont(window.contents)
|
pbSetSystemFont(window.contents)
|
||||||
textpos = [
|
textpos = [
|
||||||
[battler1.name, 64, 6, 2, Color.new(248, 0, 0), Color.new(208, 208, 200)],
|
[battler1.name, 64, 6, :center, Color.new(248, 0, 0), Color.new(208, 208, 200)],
|
||||||
[_INTL("VS"), 144, 6, 2, Color.new(72, 72, 72), Color.new(208, 208, 200)],
|
[_INTL("VS"), 144, 6, :center, Color.new(72, 72, 72), Color.new(208, 208, 200)],
|
||||||
[battler2.name, 224, 6, 2, Color.new(72, 72, 72), Color.new(208, 208, 200)],
|
[battler2.name, 224, 6, :center, Color.new(72, 72, 72), Color.new(208, 208, 200)],
|
||||||
[_INTL("Mind"), 144, 54, 2, Color.new(72, 72, 72), Color.new(208, 208, 200)],
|
[_INTL("Mind"), 144, 54, :center, Color.new(72, 72, 72), Color.new(208, 208, 200)],
|
||||||
[_INTL("Skill"), 144, 86, 2, Color.new(72, 72, 72), Color.new(208, 208, 200)],
|
[_INTL("Skill"), 144, 86, :center, Color.new(72, 72, 72), Color.new(208, 208, 200)],
|
||||||
[_INTL("Body"), 144, 118, 2, Color.new(72, 72, 72), Color.new(208, 208, 200)],
|
[_INTL("Body"), 144, 118, :center, Color.new(72, 72, 72), Color.new(208, 208, 200)],
|
||||||
[sprintf("%d", total1), 64, 166, 2, Color.new(72, 72, 72), Color.new(208, 208, 200)],
|
[total1.to_s, 64, 166, :center, Color.new(72, 72, 72), Color.new(208, 208, 200)],
|
||||||
[_INTL("Judgment"), 144, 166, 2, Color.new(72, 72, 72), Color.new(208, 208, 200)],
|
[_INTL("Judgment"), 144, 166, :center, Color.new(72, 72, 72), Color.new(208, 208, 200)],
|
||||||
[sprintf("%d", total2), 224, 166, 2, Color.new(72, 72, 72), Color.new(208, 208, 200)]
|
[total2.to_s, 224, 166, :center, Color.new(72, 72, 72), Color.new(208, 208, 200)]
|
||||||
]
|
]
|
||||||
pbDrawTextPositions(window.contents, textpos)
|
pbDrawTextPositions(window.contents, textpos)
|
||||||
images = []
|
images = []
|
||||||
|
|||||||
@@ -88,9 +88,11 @@ def pbStartOver(gameover = false)
|
|||||||
$player.heal_party
|
$player.heal_party
|
||||||
if $PokemonGlobal.pokecenterMapId && $PokemonGlobal.pokecenterMapId >= 0
|
if $PokemonGlobal.pokecenterMapId && $PokemonGlobal.pokecenterMapId >= 0
|
||||||
if gameover
|
if gameover
|
||||||
pbMessage(_INTL("\\w[]\\wm\\c[8]\\l[3]After the unfortunate defeat, you scurry back to a Pokémon Center."))
|
pbMessage("\\w[]\\wm\\c[8]\\l[3]" +
|
||||||
|
_INTL("After the unfortunate defeat, you scurry back to a Pokémon Center."))
|
||||||
else
|
else
|
||||||
pbMessage(_INTL("\\w[]\\wm\\c[8]\\l[3]You scurry back to a Pokémon Center, protecting your exhausted Pokémon from any further harm..."))
|
pbMessage("\\w[]\\wm\\c[8]\\l[3]" +
|
||||||
|
_INTL("You scurry back to a Pokémon Center, protecting your exhausted Pokémon from any further harm..."))
|
||||||
end
|
end
|
||||||
pbCancelVehicles
|
pbCancelVehicles
|
||||||
Followers.clear
|
Followers.clear
|
||||||
@@ -113,9 +115,11 @@ def pbStartOver(gameover = false)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
if gameover
|
if gameover
|
||||||
pbMessage(_INTL("\\w[]\\wm\\c[8]\\l[3]After the unfortunate defeat, you scurry back home."))
|
pbMessage("\\w[]\\wm\\c[8]\\l[3]" +
|
||||||
|
_INTL("After the unfortunate defeat, you scurry back home."))
|
||||||
else
|
else
|
||||||
pbMessage(_INTL("\\w[]\\wm\\c[8]\\l[3]You scurry back home, protecting your exhausted Pokémon from any further harm..."))
|
pbMessage("\\w[]\\wm\\c[8]\\l[3]" +
|
||||||
|
_INTL("You scurry back home, protecting your exhausted Pokémon from any further harm..."))
|
||||||
end
|
end
|
||||||
if homedata
|
if homedata
|
||||||
pbCancelVehicles
|
pbCancelVehicles
|
||||||
|
|||||||
@@ -373,9 +373,9 @@ SpecialBattleIntroAnimations.register("alternate_vs_trainer_animation", 50, #
|
|||||||
trainer.tone = Tone.new(0, 0, 0)
|
trainer.tone = Tone.new(0, 0, 0)
|
||||||
trainername = foe[0].name
|
trainername = foe[0].name
|
||||||
textpos = [
|
textpos = [
|
||||||
[$player.name, Graphics.width / 4, (Graphics.height / 1.5) + 16, 2,
|
[$player.name, Graphics.width / 4, (Graphics.height / 1.5) + 16, :center,
|
||||||
Color.new(248, 248, 248), Color.new(72, 72, 72)],
|
Color.new(248, 248, 248), Color.new(72, 72, 72)],
|
||||||
[trainername, (Graphics.width / 4) + (Graphics.width / 2), (Graphics.height / 1.5) + 16, 2,
|
[trainername, (Graphics.width / 4) + (Graphics.width / 2), (Graphics.height / 1.5) + 16, :center,
|
||||||
Color.new(248, 248, 248), Color.new(72, 72, 72)]
|
Color.new(248, 248, 248), Color.new(72, 72, 72)]
|
||||||
]
|
]
|
||||||
pbDrawTextPositions(overlay.bitmap, textpos)
|
pbDrawTextPositions(overlay.bitmap, textpos)
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ def pbFishing(hasEncounter, rodType = 1)
|
|||||||
if hasEncounter && rand(100) < biteChance
|
if hasEncounter && rand(100) < biteChance
|
||||||
$scene.spriteset.addUserAnimation(Settings::EXCLAMATION_ANIMATION_ID, $game_player.x, $game_player.y, true, 3)
|
$scene.spriteset.addUserAnimation(Settings::EXCLAMATION_ANIMATION_ID, $game_player.x, $game_player.y, true, 3)
|
||||||
frames = Graphics.frame_rate - rand(Graphics.frame_rate / 2) # 0.5-1 second
|
frames = Graphics.frame_rate - rand(Graphics.frame_rate / 2) # 0.5-1 second
|
||||||
if !pbWaitForInput(msgWindow, message + _INTL("\r\nOh! A bite!"), frames)
|
if !pbWaitForInput(msgWindow, message + "\r\n" + _INTL("Oh! A bite!"), frames)
|
||||||
pbFishingEnd { pbMessageDisplay(msgWindow, _INTL("The Pokémon got away...")) }
|
pbFishingEnd { pbMessageDisplay(msgWindow, _INTL("The Pokémon got away...")) }
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -591,7 +591,7 @@ def pbLearnMove(pkmn, move, ignore_if_known = false, by_machine = false, &block)
|
|||||||
return false
|
return false
|
||||||
elsif pkmn.numMoves < Pokemon::MAX_MOVES
|
elsif pkmn.numMoves < Pokemon::MAX_MOVES
|
||||||
pkmn.learn_move(move)
|
pkmn.learn_move(move)
|
||||||
pbMessage(_INTL("\\se[]{1} learned {2}!\\se[Pkmn move learnt]", pkmn_name, move_name), &block)
|
pbMessage("\\se[]" + _INTL("{1} learned {2}!\\se[Pkmn move learnt]", pkmn_name, move_name), &block)
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
pbMessage(_INTL("{1} wants to learn {2}, but it already knows {3} moves.\1",
|
pbMessage(_INTL("{1} wants to learn {2}, but it already knows {3} moves.\1",
|
||||||
@@ -608,7 +608,7 @@ def pbLearnMove(pkmn, move, ignore_if_known = false, by_machine = false, &block)
|
|||||||
end
|
end
|
||||||
pbMessage(_INTL("1, 2, and...\\wt[16] ...\\wt[16] ...\\wt[16] Ta-da!\\se[Battle ball drop]\1"), &block)
|
pbMessage(_INTL("1, 2, and...\\wt[16] ...\\wt[16] ...\\wt[16] Ta-da!\\se[Battle ball drop]\1"), &block)
|
||||||
pbMessage(_INTL("{1} forgot how to use {2}.\\nAnd...\1", pkmn_name, old_move_name), &block)
|
pbMessage(_INTL("{1} forgot how to use {2}.\\nAnd...\1", pkmn_name, old_move_name), &block)
|
||||||
pbMessage(_INTL("\\se[]{1} learned {2}!\\se[Pkmn move learnt]", pkmn_name, move_name), &block)
|
pbMessage("\\se[]" + _INTL("{1} learned {2}!\\se[Pkmn move learnt]", pkmn_name, move_name), &block)
|
||||||
pkmn.changeHappiness("machine") if by_machine
|
pkmn.changeHappiness("machine") if by_machine
|
||||||
return true
|
return true
|
||||||
elsif pbConfirmMessage(_INTL("Give up on learning {1}?", move_name), &block)
|
elsif pbConfirmMessage(_INTL("Give up on learning {1}?", move_name), &block)
|
||||||
|
|||||||
@@ -255,7 +255,7 @@ MultipleForms.register(:ROTOM, {
|
|||||||
pkmn.moves[old_move_index].id = new_move_id
|
pkmn.moves[old_move_index].id = new_move_id
|
||||||
new_move_name = pkmn.moves[old_move_index].name
|
new_move_name = pkmn.moves[old_move_index].name
|
||||||
pbMessage(_INTL("{1} forgot {2}...\1", pkmn.name, old_move_name))
|
pbMessage(_INTL("{1} forgot {2}...\1", pkmn.name, old_move_name))
|
||||||
pbMessage(_INTL("\\se[]{1} learned {2}!\\se[Pkmn move learnt]\1", pkmn.name, new_move_name))
|
pbMessage("\\se[]" + _INTL("{1} learned {2}!\\se[Pkmn move learnt]\1", pkmn.name, new_move_name))
|
||||||
end
|
end
|
||||||
elsif !new_move_id.nil?
|
elsif !new_move_id.nil?
|
||||||
# Just learn the new move
|
# Just learn the new move
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ class PokemonEggHatch_Scene
|
|||||||
pbBGMStop
|
pbBGMStop
|
||||||
pbMEPlay("Evolution success")
|
pbMEPlay("Evolution success")
|
||||||
@pokemon.name = nil
|
@pokemon.name = nil
|
||||||
pbMessage(_INTL("\\se[]{1} hatched from the Egg!\\wt[80]", @pokemon.name)) { update }
|
pbMessage("\\se[]" + _INTL("{1} hatched from the Egg!\\wt[80]", @pokemon.name)) { update }
|
||||||
# Record the Pokémon's species as owned in the Pokédex
|
# Record the Pokémon's species as owned in the Pokédex
|
||||||
was_owned = $player.owned?(@pokemon.species)
|
was_owned = $player.owned?(@pokemon.species)
|
||||||
$player.pokedex.register(@pokemon)
|
$player.pokedex.register(@pokemon)
|
||||||
|
|||||||
@@ -591,7 +591,7 @@ class PokemonEvolutionScene
|
|||||||
pbMEPlay("Evolution success")
|
pbMEPlay("Evolution success")
|
||||||
newspeciesname = GameData::Species.get(@newspecies).name
|
newspeciesname = GameData::Species.get(@newspecies).name
|
||||||
pbMessageDisplay(@sprites["msgwindow"],
|
pbMessageDisplay(@sprites["msgwindow"],
|
||||||
_INTL("\\se[]Congratulations! Your {1} evolved into {2}!\\wt[80]",
|
"\\se[]" + _INTL("Congratulations! Your {1} evolved into {2}!\\wt[80]",
|
||||||
@pokemon.name, newspeciesname)) { pbUpdate }
|
@pokemon.name, newspeciesname)) { pbUpdate }
|
||||||
@sprites["msgwindow"].text = ""
|
@sprites["msgwindow"].text = ""
|
||||||
# Check for consumed item and check if Pokémon should be duplicated
|
# Check for consumed item and check if Pokémon should be duplicated
|
||||||
|
|||||||
@@ -319,16 +319,16 @@ class HallOfFame_Scene
|
|||||||
dexnumber = _ISPRINTF("No. {1:03d}", number)
|
dexnumber = _ISPRINTF("No. {1:03d}", number)
|
||||||
end
|
end
|
||||||
textPositions = [
|
textPositions = [
|
||||||
[dexnumber, 32, Graphics.height - 74, 0, BASECOLOR, SHADOWCOLOR],
|
[dexnumber, 32, Graphics.height - 74, :left, BASECOLOR, SHADOWCOLOR],
|
||||||
[pokename, Graphics.width - 192, Graphics.height - 74, 2, BASECOLOR, SHADOWCOLOR],
|
[pokename, Graphics.width - 192, Graphics.height - 74, :center, BASECOLOR, SHADOWCOLOR],
|
||||||
[_INTL("Lv. {1}", pokemon.egg? ? "?" : pokemon.level),
|
[_INTL("Lv. {1}", pokemon.egg? ? "?" : pokemon.level),
|
||||||
64, Graphics.height - 42, 0, BASECOLOR, SHADOWCOLOR],
|
64, Graphics.height - 42, :left, BASECOLOR, SHADOWCOLOR],
|
||||||
[_INTL("ID No. {1}", pokemon.egg? ? "?????" : idno),
|
[_INTL("ID No. {1}", pokemon.egg? ? "?????" : idno),
|
||||||
Graphics.width - 192, Graphics.height - 42, 2, BASECOLOR, SHADOWCOLOR]
|
Graphics.width - 192, Graphics.height - 42, :center, BASECOLOR, SHADOWCOLOR]
|
||||||
]
|
]
|
||||||
if hallNumber > -1
|
if hallNumber > -1
|
||||||
textPositions.push([_INTL("Hall of Fame No."), (Graphics.width / 2) - 104, 6, 0, BASECOLOR, SHADOWCOLOR])
|
textPositions.push([_INTL("Hall of Fame No."), (Graphics.width / 2) - 104, 6, :left, BASECOLOR, SHADOWCOLOR])
|
||||||
textPositions.push([hallNumber.to_s, (Graphics.width / 2) + 104, 6, 1, BASECOLOR, SHADOWCOLOR])
|
textPositions.push([hallNumber.to_s, (Graphics.width / 2) + 104, 6, :right, BASECOLOR, SHADOWCOLOR])
|
||||||
end
|
end
|
||||||
pbDrawTextPositions(overlay, textPositions)
|
pbDrawTextPositions(overlay, textPositions)
|
||||||
end
|
end
|
||||||
@@ -337,7 +337,7 @@ class HallOfFame_Scene
|
|||||||
overlay = @sprites["overlay"].bitmap
|
overlay = @sprites["overlay"].bitmap
|
||||||
overlay.clear
|
overlay.clear
|
||||||
pbDrawTextPositions(overlay, [[_INTL("Welcome to the Hall of Fame!"),
|
pbDrawTextPositions(overlay, [[_INTL("Welcome to the Hall of Fame!"),
|
||||||
Graphics.width / 2, Graphics.height - 68, 2, BASECOLOR, SHADOWCOLOR]])
|
Graphics.width / 2, Graphics.height - 68, :center, BASECOLOR, SHADOWCOLOR]])
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbAnimationLoop
|
def pbAnimationLoop
|
||||||
|
|||||||
@@ -18,9 +18,9 @@ class Window_DexesList < Window_CommandPokemon
|
|||||||
super(index, count, rect)
|
super(index, count, rect)
|
||||||
if index >= 0 && index < @commands2.length
|
if index >= 0 && index < @commands2.length
|
||||||
pbDrawShadowText(self.contents, rect.x + 254, rect.y, 64, rect.height,
|
pbDrawShadowText(self.contents, rect.x + 254, rect.y, 64, rect.height,
|
||||||
sprintf("%d", @commands2[index][0]), self.baseColor, self.shadowColor, 1)
|
@commands2[index][0].to_s, self.baseColor, self.shadowColor, 1)
|
||||||
pbDrawShadowText(self.contents, rect.x + 350, rect.y, 64, rect.height,
|
pbDrawShadowText(self.contents, rect.x + 350, rect.y, 64, rect.height,
|
||||||
sprintf("%d", @commands2[index][1]), self.baseColor, self.shadowColor, 1)
|
@commands2[index][1].to_s, self.baseColor, self.shadowColor, 1)
|
||||||
allseen = (@commands2[index][0] >= @commands2[index][2])
|
allseen = (@commands2[index][0] >= @commands2[index][2])
|
||||||
allown = (@commands2[index][1] >= @commands2[index][2])
|
allown = (@commands2[index][1] >= @commands2[index][2])
|
||||||
pbDrawImagePositions(
|
pbDrawImagePositions(
|
||||||
@@ -36,6 +36,9 @@ end
|
|||||||
#
|
#
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
class PokemonPokedexMenu_Scene
|
class PokemonPokedexMenu_Scene
|
||||||
|
SEEN_OBTAINED_TEXT_BASE = Color.new(248, 248, 248)
|
||||||
|
SEEN_OBTAINED_TEXT_SHADOW = Color.new(192, 32, 40)
|
||||||
|
|
||||||
def pbUpdate
|
def pbUpdate
|
||||||
pbUpdateSpriteHash(@sprites)
|
pbUpdateSpriteHash(@sprites)
|
||||||
end
|
end
|
||||||
@@ -47,8 +50,9 @@ class PokemonPokedexMenu_Scene
|
|||||||
@sprites = {}
|
@sprites = {}
|
||||||
@sprites["background"] = IconSprite.new(0, 0, @viewport)
|
@sprites["background"] = IconSprite.new(0, 0, @viewport)
|
||||||
@sprites["background"].setBitmap(_INTL("Graphics/UI/Pokedex/bg_menu"))
|
@sprites["background"].setBitmap(_INTL("Graphics/UI/Pokedex/bg_menu"))
|
||||||
|
text_tag = shadowc3tag(SEEN_OBTAINED_TEXT_BASE, SEEN_OBTAINED_TEXT_SHADOW)
|
||||||
@sprites["headings"] = Window_AdvancedTextPokemon.newWithSize(
|
@sprites["headings"] = Window_AdvancedTextPokemon.newWithSize(
|
||||||
_INTL("<c3=F8F8F8,C02028>SEEN<r>OBTAINED</c3>"), 286, 136, 208, 64, @viewport
|
text_tag + _INTL("SEEN") + "<r>" + _INTL("OBTAINED") + "</c3>", 286, 136, 208, 64, @viewport
|
||||||
)
|
)
|
||||||
@sprites["headings"].windowskin = nil
|
@sprites["headings"].windowskin = nil
|
||||||
@sprites["commands"] = Window_DexesList.new(commands, commands2, Graphics.width - 84)
|
@sprites["commands"] = Window_DexesList.new(commands, commands2, Graphics.width - 84)
|
||||||
|
|||||||
@@ -430,17 +430,17 @@ class PokemonPokedex_Scene
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
textpos = [
|
textpos = [
|
||||||
[dexname, Graphics.width / 2, 10, 2, Color.new(248, 248, 248), Color.black]
|
[dexname, Graphics.width / 2, 10, :center, Color.new(248, 248, 248), Color.black]
|
||||||
]
|
]
|
||||||
textpos.push([GameData::Species.get(iconspecies).name, 112, 58, 2, base, shadow]) if iconspecies
|
textpos.push([GameData::Species.get(iconspecies).name, 112, 58, :center, base, shadow]) if iconspecies
|
||||||
if @searchResults
|
if @searchResults
|
||||||
textpos.push([_INTL("Search results"), 112, 314, 2, base, shadow])
|
textpos.push([_INTL("Search results"), 112, 314, :center, base, shadow])
|
||||||
textpos.push([@dexlist.length.to_s, 112, 346, 2, base, shadow])
|
textpos.push([@dexlist.length.to_s, 112, 346, :center, base, shadow])
|
||||||
else
|
else
|
||||||
textpos.push([_INTL("Seen:"), 42, 314, 0, base, shadow])
|
textpos.push([_INTL("Seen:"), 42, 314, :left, base, shadow])
|
||||||
textpos.push([$player.pokedex.seen_count(pbGetPokedexRegion).to_s, 182, 314, 1, base, shadow])
|
textpos.push([$player.pokedex.seen_count(pbGetPokedexRegion).to_s, 182, 314, :right, base, shadow])
|
||||||
textpos.push([_INTL("Owned:"), 42, 346, 0, base, shadow])
|
textpos.push([_INTL("Owned:"), 42, 346, :left, base, shadow])
|
||||||
textpos.push([$player.pokedex.owned_count(pbGetPokedexRegion).to_s, 182, 346, 1, base, shadow])
|
textpos.push([$player.pokedex.owned_count(pbGetPokedexRegion).to_s, 182, 346, :right, base, shadow])
|
||||||
end
|
end
|
||||||
# Draw all text
|
# Draw all text
|
||||||
pbDrawTextPositions(overlay, textpos)
|
pbDrawTextPositions(overlay, textpos)
|
||||||
@@ -483,36 +483,36 @@ class PokemonPokedex_Scene
|
|||||||
shadow = Color.new(72, 72, 72)
|
shadow = Color.new(72, 72, 72)
|
||||||
# Write various bits of text
|
# Write various bits of text
|
||||||
textpos = [
|
textpos = [
|
||||||
[_INTL("Search Mode"), Graphics.width / 2, 10, 2, base, shadow],
|
[_INTL("Search Mode"), Graphics.width / 2, 10, :center, base, shadow],
|
||||||
[_INTL("Order"), 136, 64, 2, base, shadow],
|
[_INTL("Order"), 136, 64, :center, base, shadow],
|
||||||
[_INTL("Name"), 58, 122, 2, base, shadow],
|
[_INTL("Name"), 58, 122, :center, base, shadow],
|
||||||
[_INTL("Type"), 58, 174, 2, base, shadow],
|
[_INTL("Type"), 58, 174, :center, base, shadow],
|
||||||
[_INTL("Height"), 58, 226, 2, base, shadow],
|
[_INTL("Height"), 58, 226, :center, base, shadow],
|
||||||
[_INTL("Weight"), 58, 278, 2, base, shadow],
|
[_INTL("Weight"), 58, 278, :center, base, shadow],
|
||||||
[_INTL("Color"), 326, 122, 2, base, shadow],
|
[_INTL("Color"), 326, 122, :center, base, shadow],
|
||||||
[_INTL("Shape"), 454, 174, 2, base, shadow],
|
[_INTL("Shape"), 454, 174, :center, base, shadow],
|
||||||
[_INTL("Reset"), 80, 346, 2, base, shadow, 1],
|
[_INTL("Reset"), 80, 346, :center, base, shadow, 1],
|
||||||
[_INTL("Start"), Graphics.width / 2, 346, 2, base, shadow, 1],
|
[_INTL("Start"), Graphics.width / 2, 346, :center, base, shadow, :outline],
|
||||||
[_INTL("Cancel"), Graphics.width - 80, 346, 2, base, shadow, 1]
|
[_INTL("Cancel"), Graphics.width - 80, 346, :center, base, shadow, :outline]
|
||||||
]
|
]
|
||||||
# Write order, name and color parameters
|
# Write order, name and color parameters
|
||||||
textpos.push([@orderCommands[params[0]], 344, 66, 2, base, shadow, 1])
|
textpos.push([@orderCommands[params[0]], 344, 66, :center, base, shadow, :outline])
|
||||||
textpos.push([(params[1] < 0) ? "----" : @nameCommands[params[1]], 176, 124, 2, base, shadow, 1])
|
textpos.push([(params[1] < 0) ? "----" : @nameCommands[params[1]], 176, 124, :center, base, shadow, :outline])
|
||||||
textpos.push([(params[8] < 0) ? "----" : @colorCommands[params[8]].name, 444, 124, 2, base, shadow, 1])
|
textpos.push([(params[8] < 0) ? "----" : @colorCommands[params[8]].name, 444, 124, :center, base, shadow, :outline])
|
||||||
# Draw type icons
|
# Draw type icons
|
||||||
if params[2] >= 0
|
if params[2] >= 0
|
||||||
type_number = @typeCommands[params[2]].icon_position
|
type_number = @typeCommands[params[2]].icon_position
|
||||||
typerect = Rect.new(0, type_number * 32, 96, 32)
|
typerect = Rect.new(0, type_number * 32, 96, 32)
|
||||||
overlay.blt(128, 168, @typebitmap.bitmap, typerect)
|
overlay.blt(128, 168, @typebitmap.bitmap, typerect)
|
||||||
else
|
else
|
||||||
textpos.push(["----", 176, 176, 2, base, shadow, 1])
|
textpos.push(["----", 176, 176, :center, base, shadow, :outline])
|
||||||
end
|
end
|
||||||
if params[3] >= 0
|
if params[3] >= 0
|
||||||
type_number = @typeCommands[params[3]].icon_position
|
type_number = @typeCommands[params[3]].icon_position
|
||||||
typerect = Rect.new(0, type_number * 32, 96, 32)
|
typerect = Rect.new(0, type_number * 32, 96, 32)
|
||||||
overlay.blt(256, 168, @typebitmap.bitmap, typerect)
|
overlay.blt(256, 168, @typebitmap.bitmap, typerect)
|
||||||
else
|
else
|
||||||
textpos.push(["----", 304, 176, 2, base, shadow, 1])
|
textpos.push(["----", 304, 176, :center, base, shadow, :outline])
|
||||||
end
|
end
|
||||||
# Write height and weight limits
|
# Write height and weight limits
|
||||||
ht1 = (params[4] < 0) ? 0 : (params[4] >= @heightCommands.length) ? 999 : @heightCommands[params[4]]
|
ht1 = (params[4] < 0) ? 0 : (params[4] >= @heightCommands.length) ? 999 : @heightCommands[params[4]]
|
||||||
@@ -525,16 +525,16 @@ class PokemonPokedex_Scene
|
|||||||
ht2 = (params[5] < 0) ? 99 * 12 : (ht2 / 0.254).round
|
ht2 = (params[5] < 0) ? 99 * 12 : (ht2 / 0.254).round
|
||||||
wt1 = (params[6] >= @weightCommands.length) ? 99_990 : (wt1 / 0.254).round
|
wt1 = (params[6] >= @weightCommands.length) ? 99_990 : (wt1 / 0.254).round
|
||||||
wt2 = (params[7] < 0) ? 99_990 : (wt2 / 0.254).round
|
wt2 = (params[7] < 0) ? 99_990 : (wt2 / 0.254).round
|
||||||
textpos.push([sprintf("%d'%02d''", ht1 / 12, ht1 % 12), 166, 228, 2, base, shadow, 1])
|
textpos.push([sprintf("%d'%02d''", ht1 / 12, ht1 % 12), 166, 228, :center, base, shadow, :outline])
|
||||||
textpos.push([sprintf("%d'%02d''", ht2 / 12, ht2 % 12), 294, 228, 2, base, shadow, 1])
|
textpos.push([sprintf("%d'%02d''", ht2 / 12, ht2 % 12), 294, 228, :center, base, shadow, :outline])
|
||||||
textpos.push([sprintf("%.1f", wt1 / 10.0), 166, 280, 2, base, shadow, 1])
|
textpos.push([sprintf("%.1f", wt1 / 10.0), 166, 280, :center, base, shadow, :outline])
|
||||||
textpos.push([sprintf("%.1f", wt2 / 10.0), 294, 280, 2, base, shadow, 1])
|
textpos.push([sprintf("%.1f", wt2 / 10.0), 294, 280, :center, base, shadow, :outline])
|
||||||
hwoffset = true
|
hwoffset = true
|
||||||
else
|
else
|
||||||
textpos.push([sprintf("%.1f", ht1 / 10.0), 166, 228, 2, base, shadow, 1])
|
textpos.push([sprintf("%.1f", ht1 / 10.0), 166, 228, :center, base, shadow, :outline])
|
||||||
textpos.push([sprintf("%.1f", ht2 / 10.0), 294, 228, 2, base, shadow, 1])
|
textpos.push([sprintf("%.1f", ht2 / 10.0), 294, 228, :center, base, shadow, :outline])
|
||||||
textpos.push([sprintf("%.1f", wt1 / 10.0), 166, 280, 2, base, shadow, 1])
|
textpos.push([sprintf("%.1f", wt1 / 10.0), 166, 280, :center, base, shadow, :outline])
|
||||||
textpos.push([sprintf("%.1f", wt2 / 10.0), 294, 280, 2, base, shadow, 1])
|
textpos.push([sprintf("%.1f", wt2 / 10.0), 294, 280, :center, base, shadow, :outline])
|
||||||
end
|
end
|
||||||
overlay.blt(344, 214, @hwbitmap.bitmap, Rect.new(0, (hwoffset) ? 44 : 0, 32, 44))
|
overlay.blt(344, 214, @hwbitmap.bitmap, Rect.new(0, (hwoffset) ? 44 : 0, 32, 44))
|
||||||
overlay.blt(344, 266, @hwbitmap.bitmap, Rect.new(32, (hwoffset) ? 44 : 0, 32, 44))
|
overlay.blt(344, 266, @hwbitmap.bitmap, Rect.new(32, (hwoffset) ? 44 : 0, 32, 44))
|
||||||
@@ -555,13 +555,13 @@ class PokemonPokedex_Scene
|
|||||||
shadow = Color.new(72, 72, 72)
|
shadow = Color.new(72, 72, 72)
|
||||||
# Write various bits of text
|
# Write various bits of text
|
||||||
textpos = [
|
textpos = [
|
||||||
[_INTL("Search Mode"), Graphics.width / 2, 10, 2, base, shadow],
|
[_INTL("Search Mode"), Graphics.width / 2, 10, :center, base, shadow],
|
||||||
[_INTL("OK"), 80, 346, 2, base, shadow, 1],
|
[_INTL("OK"), 80, 346, :center, base, shadow, :outline],
|
||||||
[_INTL("Cancel"), Graphics.width - 80, 346, 2, base, shadow, 1]
|
[_INTL("Cancel"), Graphics.width - 80, 346, :center, base, shadow, :outline]
|
||||||
]
|
]
|
||||||
title = [_INTL("Order"), _INTL("Name"), _INTL("Type"), _INTL("Height"),
|
title = [_INTL("Order"), _INTL("Name"), _INTL("Type"), _INTL("Height"),
|
||||||
_INTL("Weight"), _INTL("Color"), _INTL("Shape")][mode]
|
_INTL("Weight"), _INTL("Color"), _INTL("Shape")][mode]
|
||||||
textpos.push([title, 102, (mode == 6) ? 70 : 64, 0, base, shadow])
|
textpos.push([title, 102, (mode == 6) ? 70 : 64, :left, base, shadow])
|
||||||
case mode
|
case mode
|
||||||
when 0 # Order
|
when 0 # Order
|
||||||
xstart = 46
|
xstart = 46
|
||||||
@@ -621,7 +621,7 @@ class PokemonPokedex_Scene
|
|||||||
when 2 # Type icons
|
when 2 # Type icons
|
||||||
2.times do |i|
|
2.times do |i|
|
||||||
if !sel[i] || sel[i] < 0
|
if !sel[i] || sel[i] < 0
|
||||||
textpos.push(["----", 298 + (128 * i), 66, 2, base, shadow, 1])
|
textpos.push(["----", 298 + (128 * i), 66, :center, base, shadow, :outline])
|
||||||
else
|
else
|
||||||
type_number = @typeCommands[sel[i]].icon_position
|
type_number = @typeCommands[sel[i]].icon_position
|
||||||
typerect = Rect.new(0, type_number * 32, 96, 32)
|
typerect = Rect.new(0, type_number * 32, 96, 32)
|
||||||
@@ -642,8 +642,8 @@ class PokemonPokedex_Scene
|
|||||||
txt1 = sprintf("%.1f", ht1 / 10.0)
|
txt1 = sprintf("%.1f", ht1 / 10.0)
|
||||||
txt2 = sprintf("%.1f", ht2 / 10.0)
|
txt2 = sprintf("%.1f", ht2 / 10.0)
|
||||||
end
|
end
|
||||||
textpos.push([txt1, 286, 66, 2, base, shadow, 1])
|
textpos.push([txt1, 286, 66, :center, base, shadow, :outline])
|
||||||
textpos.push([txt2, 414, 66, 2, base, shadow, 1])
|
textpos.push([txt2, 414, 66, :center, base, shadow, :outline])
|
||||||
overlay.blt(462, 52, @hwbitmap.bitmap, Rect.new(0, (hwoffset) ? 44 : 0, 32, 44))
|
overlay.blt(462, 52, @hwbitmap.bitmap, Rect.new(0, (hwoffset) ? 44 : 0, 32, 44))
|
||||||
when 4 # Weight range
|
when 4 # Weight range
|
||||||
wt1 = (sel[0] < 0) ? 0 : (sel[0] >= @weightCommands.length) ? 9999 : @weightCommands[sel[0]]
|
wt1 = (sel[0] < 0) ? 0 : (sel[0] >= @weightCommands.length) ? 9999 : @weightCommands[sel[0]]
|
||||||
@@ -659,14 +659,14 @@ class PokemonPokedex_Scene
|
|||||||
txt1 = sprintf("%.1f", wt1 / 10.0)
|
txt1 = sprintf("%.1f", wt1 / 10.0)
|
||||||
txt2 = sprintf("%.1f", wt2 / 10.0)
|
txt2 = sprintf("%.1f", wt2 / 10.0)
|
||||||
end
|
end
|
||||||
textpos.push([txt1, 286, 66, 2, base, shadow, 1])
|
textpos.push([txt1, 286, 66, :center, base, shadow, :outline])
|
||||||
textpos.push([txt2, 414, 66, 2, base, shadow, 1])
|
textpos.push([txt2, 414, 66, :center, base, shadow, :outline])
|
||||||
overlay.blt(462, 52, @hwbitmap.bitmap, Rect.new(32, (hwoffset) ? 44 : 0, 32, 44))
|
overlay.blt(462, 52, @hwbitmap.bitmap, Rect.new(32, (hwoffset) ? 44 : 0, 32, 44))
|
||||||
when 5 # Color
|
when 5 # Color
|
||||||
if sel[0] < 0
|
if sel[0] < 0
|
||||||
textpos.push(["----", 362, 66, 2, base, shadow, 1])
|
textpos.push(["----", 362, 66, :center, base, shadow, :outline])
|
||||||
else
|
else
|
||||||
textpos.push([cmds[sel[0]].name, 362, 66, 2, base, shadow, 1])
|
textpos.push([cmds[sel[0]].name, 362, 66, :center, base, shadow, :outline])
|
||||||
end
|
end
|
||||||
when 6 # Shape icon
|
when 6 # Shape icon
|
||||||
if sel[0] >= 0
|
if sel[0] >= 0
|
||||||
@@ -676,9 +676,9 @@ class PokemonPokedex_Scene
|
|||||||
else
|
else
|
||||||
if sel[0] < 0
|
if sel[0] < 0
|
||||||
text = ["----", "-", "----", "", "", "----", ""][mode]
|
text = ["----", "-", "----", "", "", "----", ""][mode]
|
||||||
textpos.push([text, 362, 66, 2, base, shadow, 1])
|
textpos.push([text, 362, 66, :center, base, shadow, :outline])
|
||||||
else
|
else
|
||||||
textpos.push([cmds[sel[0]], 362, 66, 2, base, shadow, 1])
|
textpos.push([cmds[sel[0]], 362, 66, :center, base, shadow, :outline])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# Draw selected option(s) button graphic
|
# Draw selected option(s) button graphic
|
||||||
@@ -698,8 +698,8 @@ class PokemonPokedex_Scene
|
|||||||
overlay.blt(xpos2, ystart, @searchsliderbitmap.bitmap, hwrect)
|
overlay.blt(xpos2, ystart, @searchsliderbitmap.bitmap, hwrect)
|
||||||
hwrect.y = 96
|
hwrect.y = 96
|
||||||
overlay.blt(xpos1, ystart + ygap, @searchsliderbitmap.bitmap, hwrect)
|
overlay.blt(xpos1, ystart + ygap, @searchsliderbitmap.bitmap, hwrect)
|
||||||
textpos.push([txt1, xpos1 + halfwidth, ypos1, 2, base, nil, 1])
|
textpos.push([txt1, xpos1 + halfwidth, ypos1, :center, base])
|
||||||
textpos.push([txt2, xpos2 + halfwidth, ypos2, 2, base, nil, 1])
|
textpos.push([txt2, xpos2 + halfwidth, ypos2, :center, base])
|
||||||
else
|
else
|
||||||
sel.length.times do |i|
|
sel.length.times do |i|
|
||||||
selrect = Rect.new(0, selbuttony, @selbitmap.bitmap.width, selbuttonheight)
|
selrect = Rect.new(0, selbuttony, @selbitmap.bitmap.width, selbuttonheight)
|
||||||
@@ -720,13 +720,13 @@ class PokemonPokedex_Scene
|
|||||||
cmds.length.times do |i|
|
cmds.length.times do |i|
|
||||||
x = xstart + halfwidth + ((i % cols) * xgap)
|
x = xstart + halfwidth + ((i % cols) * xgap)
|
||||||
y = ystart + 14 + ((i / cols).floor * ygap)
|
y = ystart + 14 + ((i / cols).floor * ygap)
|
||||||
textpos.push([cmds[i], x, y, 2, base, shadow, 1])
|
textpos.push([cmds[i], x, y, :center, base, shadow, :outline])
|
||||||
end
|
end
|
||||||
if mode != 0
|
if mode != 0
|
||||||
textpos.push([(mode == 1) ? "-" : "----",
|
textpos.push([(mode == 1) ? "-" : "----",
|
||||||
xstart + halfwidth + ((cols - 1) * xgap),
|
xstart + halfwidth + ((cols - 1) * xgap),
|
||||||
ystart + 14 + ((cmds.length / cols).floor * ygap),
|
ystart + 14 + ((cmds.length / cols).floor * ygap),
|
||||||
2, base, shadow, 1])
|
:center, base, shadow, :outline])
|
||||||
end
|
end
|
||||||
when 2 # Type
|
when 2 # Type
|
||||||
typerect = Rect.new(0, 0, 96, 32)
|
typerect = Rect.new(0, 0, 96, 32)
|
||||||
@@ -739,17 +739,17 @@ class PokemonPokedex_Scene
|
|||||||
textpos.push(["----",
|
textpos.push(["----",
|
||||||
xstart + halfwidth + ((cols - 1) * xgap),
|
xstart + halfwidth + ((cols - 1) * xgap),
|
||||||
ystart + 14 + ((cmds.length / cols).floor * ygap),
|
ystart + 14 + ((cmds.length / cols).floor * ygap),
|
||||||
2, base, shadow, 1])
|
:center, base, shadow, :outline])
|
||||||
when 5 # Color
|
when 5 # Color
|
||||||
cmds.length.times do |i|
|
cmds.length.times do |i|
|
||||||
x = xstart + halfwidth + ((i % cols) * xgap)
|
x = xstart + halfwidth + ((i % cols) * xgap)
|
||||||
y = ystart + 14 + ((i / cols).floor * ygap)
|
y = ystart + 14 + ((i / cols).floor * ygap)
|
||||||
textpos.push([cmds[i].name, x, y, 2, base, shadow, 1])
|
textpos.push([cmds[i].name, x, y, :center, base, shadow, :outline])
|
||||||
end
|
end
|
||||||
textpos.push(["----",
|
textpos.push(["----",
|
||||||
xstart + halfwidth + ((cols - 1) * xgap),
|
xstart + halfwidth + ((cols - 1) * xgap),
|
||||||
ystart + 14 + ((cmds.length / cols).floor * ygap),
|
ystart + 14 + ((cmds.length / cols).floor * ygap),
|
||||||
2, base, shadow, 1])
|
:center, base, shadow, :outline])
|
||||||
when 6 # Shape
|
when 6 # Shape
|
||||||
shaperect = Rect.new(0, 0, 60, 60)
|
shaperect = Rect.new(0, 0, 60, 60)
|
||||||
cmds.length.times do |i|
|
cmds.length.times do |i|
|
||||||
|
|||||||
@@ -221,18 +221,18 @@ class PokemonPokedexInfo_Scene
|
|||||||
end
|
end
|
||||||
textpos = [
|
textpos = [
|
||||||
[_INTL("{1}{2} {3}", indexText, " ", species_data.name),
|
[_INTL("{1}{2} {3}", indexText, " ", species_data.name),
|
||||||
246, 48, 0, Color.new(248, 248, 248), Color.black]
|
246, 48, :left, Color.new(248, 248, 248), Color.black]
|
||||||
]
|
]
|
||||||
if @show_battled_count
|
if @show_battled_count
|
||||||
textpos.push([_INTL("Number Battled"), 314, 164, 0, base, shadow])
|
textpos.push([_INTL("Number Battled"), 314, 164, :left, base, shadow])
|
||||||
textpos.push([$player.pokedex.battled_count(@species).to_s, 452, 196, 1, base, shadow])
|
textpos.push([$player.pokedex.battled_count(@species).to_s, 452, 196, :right, base, shadow])
|
||||||
else
|
else
|
||||||
textpos.push([_INTL("Height"), 314, 164, 0, base, shadow])
|
textpos.push([_INTL("Height"), 314, 164, :left, base, shadow])
|
||||||
textpos.push([_INTL("Weight"), 314, 196, 0, base, shadow])
|
textpos.push([_INTL("Weight"), 314, 196, :left, base, shadow])
|
||||||
end
|
end
|
||||||
if $player.owned?(@species)
|
if $player.owned?(@species)
|
||||||
# Write the category
|
# Write the category
|
||||||
textpos.push([_INTL("{1} Pokémon", species_data.category), 246, 80, 0, base, shadow])
|
textpos.push([_INTL("{1} Pokémon", species_data.category), 246, 80, :left, base, shadow])
|
||||||
# Write the height and weight
|
# Write the height and weight
|
||||||
if !@show_battled_count
|
if !@show_battled_count
|
||||||
height = species_data.height
|
height = species_data.height
|
||||||
@@ -240,11 +240,11 @@ class PokemonPokedexInfo_Scene
|
|||||||
if System.user_language[3..4] == "US" # If the user is in the United States
|
if System.user_language[3..4] == "US" # If the user is in the United States
|
||||||
inches = (height / 0.254).round
|
inches = (height / 0.254).round
|
||||||
pounds = (weight / 0.45359).round
|
pounds = (weight / 0.45359).round
|
||||||
textpos.push([_ISPRINTF("{1:d}'{2:02d}\"", inches / 12, inches % 12), 460, 164, 1, base, shadow])
|
textpos.push([_ISPRINTF("{1:d}'{2:02d}\"", inches / 12, inches % 12), 460, 164, :right, base, shadow])
|
||||||
textpos.push([_ISPRINTF("{1:4.1f} lbs.", pounds / 10.0), 494, 196, 1, base, shadow])
|
textpos.push([_ISPRINTF("{1:4.1f} lbs.", pounds / 10.0), 494, 196, :right, base, shadow])
|
||||||
else
|
else
|
||||||
textpos.push([_ISPRINTF("{1:.1f} m", height / 10.0), 470, 164, 1, base, shadow])
|
textpos.push([_ISPRINTF("{1:.1f} m", height / 10.0), 470, 164, :right, base, shadow])
|
||||||
textpos.push([_ISPRINTF("{1:.1f} kg", weight / 10.0), 482, 196, 1, base, shadow])
|
textpos.push([_ISPRINTF("{1:.1f} kg", weight / 10.0), 482, 196, :right, base, shadow])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# Draw the Pokédex entry text
|
# Draw the Pokédex entry text
|
||||||
@@ -267,15 +267,15 @@ class PokemonPokedexInfo_Scene
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
# Write the category
|
# Write the category
|
||||||
textpos.push([_INTL("????? Pokémon"), 246, 80, 0, base, shadow])
|
textpos.push([_INTL("????? Pokémon"), 246, 80, :left, base, shadow])
|
||||||
# Write the height and weight
|
# Write the height and weight
|
||||||
if !@show_battled_count
|
if !@show_battled_count
|
||||||
if System.user_language[3..4] == "US" # If the user is in the United States
|
if System.user_language[3..4] == "US" # If the user is in the United States
|
||||||
textpos.push([_INTL("???'??\""), 460, 164, 1, base, shadow])
|
textpos.push([_INTL("???'??\""), 460, 164, :right, base, shadow])
|
||||||
textpos.push([_INTL("????.? lbs."), 494, 196, 1, base, shadow])
|
textpos.push([_INTL("????.? lbs."), 494, 196, :right, base, shadow])
|
||||||
else
|
else
|
||||||
textpos.push([_INTL("????.? m"), 470, 164, 1, base, shadow])
|
textpos.push([_INTL("????.? m"), 470, 164, :right, base, shadow])
|
||||||
textpos.push([_INTL("????.? kg"), 482, 196, 1, base, shadow])
|
textpos.push([_INTL("????.? kg"), 482, 196, :right, base, shadow])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -376,13 +376,13 @@ class PokemonPokedexInfo_Scene
|
|||||||
if points.length == 0
|
if points.length == 0
|
||||||
pbDrawImagePositions(
|
pbDrawImagePositions(
|
||||||
overlay,
|
overlay,
|
||||||
[[sprintf("Graphics/UI/Pokedex/overlay_areanone"), 108, 188]]
|
[["Graphics/UI/Pokedex/overlay_areanone", 108, 188]]
|
||||||
)
|
)
|
||||||
textpos.push([_INTL("Area unknown"), Graphics.width / 2, (Graphics.height / 2) + 6, 2, base, shadow])
|
textpos.push([_INTL("Area unknown"), Graphics.width / 2, (Graphics.height / 2) + 6, :center, base, shadow])
|
||||||
end
|
end
|
||||||
textpos.push([@mapdata.name, 414, 50, 2, base, shadow])
|
textpos.push([@mapdata.name, 414, 50, :center, base, shadow])
|
||||||
textpos.push([_INTL("{1}'s area", GameData::Species.get(@species).name),
|
textpos.push([_INTL("{1}'s area", GameData::Species.get(@species).name),
|
||||||
Graphics.width / 2, 358, 2, base, shadow])
|
Graphics.width / 2, 358, :center, base, shadow])
|
||||||
pbDrawTextPositions(overlay, textpos)
|
pbDrawTextPositions(overlay, textpos)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -400,8 +400,8 @@ class PokemonPokedexInfo_Scene
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
textpos = [
|
textpos = [
|
||||||
[GameData::Species.get(@species).name, Graphics.width / 2, Graphics.height - 82, 2, base, shadow],
|
[GameData::Species.get(@species).name, Graphics.width / 2, Graphics.height - 82, :center, base, shadow],
|
||||||
[formname, Graphics.width / 2, Graphics.height - 50, 2, base, shadow]
|
[formname, Graphics.width / 2, Graphics.height - 50, :center, base, shadow]
|
||||||
]
|
]
|
||||||
# Draw all text
|
# Draw all text
|
||||||
pbDrawTextPositions(overlay, textpos)
|
pbDrawTextPositions(overlay, textpos)
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class PokemonPartyConfirmCancelSprite < Sprite
|
|||||||
@overlaysprite = BitmapSprite.new(@bgsprite.bitmap.width, @bgsprite.bitmap.height, viewport)
|
@overlaysprite = BitmapSprite.new(@bgsprite.bitmap.width, @bgsprite.bitmap.height, viewport)
|
||||||
@overlaysprite.z = self.z + 1
|
@overlaysprite.z = self.z + 1
|
||||||
pbSetSystemFont(@overlaysprite.bitmap)
|
pbSetSystemFont(@overlaysprite.bitmap)
|
||||||
textpos = [[text, 56, (narrowbox) ? 8 : 14, 2, Color.new(248, 248, 248), Color.new(40, 40, 40)]]
|
textpos = [[text, 56, (narrowbox) ? 8 : 14, :center, Color.new(248, 248, 248), Color.new(40, 40, 40)]]
|
||||||
pbDrawTextPositions(@overlaysprite.bitmap, textpos)
|
pbDrawTextPositions(@overlaysprite.bitmap, textpos)
|
||||||
self.x = x
|
self.x = x
|
||||||
self.y = y
|
self.y = y
|
||||||
@@ -373,7 +373,7 @@ class PokemonPartyPanel < Sprite
|
|||||||
|
|
||||||
def draw_name
|
def draw_name
|
||||||
pbDrawTextPositions(@overlaysprite.bitmap,
|
pbDrawTextPositions(@overlaysprite.bitmap,
|
||||||
[[@pokemon.name, 96, 22, 0, TEXT_BASE_COLOR, TEXT_SHADOW_COLOR]])
|
[[@pokemon.name, 96, 22, :left, TEXT_BASE_COLOR, TEXT_SHADOW_COLOR]])
|
||||||
end
|
end
|
||||||
|
|
||||||
def draw_level
|
def draw_level
|
||||||
@@ -384,7 +384,7 @@ class PokemonPartyPanel < Sprite
|
|||||||
# Level number
|
# Level number
|
||||||
pbSetSmallFont(@overlaysprite.bitmap)
|
pbSetSmallFont(@overlaysprite.bitmap)
|
||||||
pbDrawTextPositions(@overlaysprite.bitmap,
|
pbDrawTextPositions(@overlaysprite.bitmap,
|
||||||
[[@pokemon.level.to_s, 42, 68, 0, TEXT_BASE_COLOR, TEXT_SHADOW_COLOR]])
|
[[@pokemon.level.to_s, 42, 68, :left, TEXT_BASE_COLOR, TEXT_SHADOW_COLOR]])
|
||||||
pbSetSystemFont(@overlaysprite.bitmap)
|
pbSetSystemFont(@overlaysprite.bitmap)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -394,7 +394,7 @@ class PokemonPartyPanel < Sprite
|
|||||||
base_color = (@pokemon.male?) ? Color.new(0, 112, 248) : Color.new(232, 32, 16)
|
base_color = (@pokemon.male?) ? Color.new(0, 112, 248) : Color.new(232, 32, 16)
|
||||||
shadow_color = (@pokemon.male?) ? Color.new(120, 184, 232) : Color.new(248, 168, 184)
|
shadow_color = (@pokemon.male?) ? Color.new(120, 184, 232) : Color.new(248, 168, 184)
|
||||||
pbDrawTextPositions(@overlaysprite.bitmap,
|
pbDrawTextPositions(@overlaysprite.bitmap,
|
||||||
[[gender_text, 224, 22, 0, base_color, shadow_color]])
|
[[gender_text, 224, 22, :left, base_color, shadow_color]])
|
||||||
end
|
end
|
||||||
|
|
||||||
def draw_hp
|
def draw_hp
|
||||||
@@ -402,7 +402,7 @@ class PokemonPartyPanel < Sprite
|
|||||||
# HP numbers
|
# HP numbers
|
||||||
hp_text = sprintf("% 3d /% 3d", @pokemon.hp, @pokemon.totalhp)
|
hp_text = sprintf("% 3d /% 3d", @pokemon.hp, @pokemon.totalhp)
|
||||||
pbDrawTextPositions(@overlaysprite.bitmap,
|
pbDrawTextPositions(@overlaysprite.bitmap,
|
||||||
[[hp_text, 224, 66, 1, TEXT_BASE_COLOR, TEXT_SHADOW_COLOR]])
|
[[hp_text, 224, 66, :right, TEXT_BASE_COLOR, TEXT_SHADOW_COLOR]])
|
||||||
# HP bar
|
# HP bar
|
||||||
if @pokemon.able?
|
if @pokemon.able?
|
||||||
w = @pokemon.hp * HP_BAR_WIDTH / @pokemon.totalhp.to_f
|
w = @pokemon.hp * HP_BAR_WIDTH / @pokemon.totalhp.to_f
|
||||||
@@ -440,7 +440,7 @@ class PokemonPartyPanel < Sprite
|
|||||||
def draw_annotation
|
def draw_annotation
|
||||||
return if !@text || @text.length == 0
|
return if !@text || @text.length == 0
|
||||||
pbDrawTextPositions(@overlaysprite.bitmap,
|
pbDrawTextPositions(@overlaysprite.bitmap,
|
||||||
[[@text, 96, 62, 0, TEXT_BASE_COLOR, TEXT_SHADOW_COLOR]])
|
[[@text, 96, 62, :left, TEXT_BASE_COLOR, TEXT_SHADOW_COLOR]])
|
||||||
end
|
end
|
||||||
|
|
||||||
def refresh
|
def refresh
|
||||||
|
|||||||
@@ -104,6 +104,11 @@ end
|
|||||||
class PokemonSummary_Scene
|
class PokemonSummary_Scene
|
||||||
MARK_WIDTH = 16
|
MARK_WIDTH = 16
|
||||||
MARK_HEIGHT = 16
|
MARK_HEIGHT = 16
|
||||||
|
# Colors used for messages in this scene
|
||||||
|
RED_TEXT_BASE = Color.new(248, 56, 32)
|
||||||
|
RED_TEXT_SHADOW = Color.new(224, 152, 144)
|
||||||
|
BLACK_TEXT_BASE = Color.new(64, 64, 64)
|
||||||
|
BLACK_TEXT_SHADOW = Color.new(176, 176, 176)
|
||||||
|
|
||||||
def pbUpdate
|
def pbUpdate
|
||||||
pbUpdateSpriteHash(@sprites)
|
pbUpdateSpriteHash(@sprites)
|
||||||
@@ -325,10 +330,10 @@ class PokemonSummary_Scene
|
|||||||
end
|
end
|
||||||
# Show Pokérus cured icon
|
# Show Pokérus cured icon
|
||||||
if @pokemon.pokerusStage == 2
|
if @pokemon.pokerusStage == 2
|
||||||
imagepos.push([sprintf("Graphics/UI/Summary/icon_pokerus"), 176, 100])
|
imagepos.push(["Graphics/UI/Summary/icon_pokerus", 176, 100])
|
||||||
end
|
end
|
||||||
# Show shininess star
|
# Show shininess star
|
||||||
imagepos.push([sprintf("Graphics/UI/shiny"), 2, 134]) if @pokemon.shiny?
|
imagepos.push(["Graphics/UI/shiny", 2, 134]) if @pokemon.shiny?
|
||||||
# Draw all images
|
# Draw all images
|
||||||
pbDrawImagePositions(overlay, imagepos)
|
pbDrawImagePositions(overlay, imagepos)
|
||||||
# Write various bits of text
|
# Write various bits of text
|
||||||
@@ -338,22 +343,22 @@ class PokemonSummary_Scene
|
|||||||
_INTL("MOVES"),
|
_INTL("MOVES"),
|
||||||
_INTL("RIBBONS")][page - 1]
|
_INTL("RIBBONS")][page - 1]
|
||||||
textpos = [
|
textpos = [
|
||||||
[pagename, 26, 22, 0, base, shadow],
|
[pagename, 26, 22, :left, base, shadow],
|
||||||
[@pokemon.name, 46, 68, 0, base, shadow],
|
[@pokemon.name, 46, 68, :left, base, shadow],
|
||||||
[@pokemon.level.to_s, 46, 98, 0, Color.new(64, 64, 64), Color.new(176, 176, 176)],
|
[@pokemon.level.to_s, 46, 98, :left, Color.new(64, 64, 64), Color.new(176, 176, 176)],
|
||||||
[_INTL("Item"), 66, 324, 0, base, shadow]
|
[_INTL("Item"), 66, 324, :left, base, shadow]
|
||||||
]
|
]
|
||||||
# Write the held item's name
|
# Write the held item's name
|
||||||
if @pokemon.hasItem?
|
if @pokemon.hasItem?
|
||||||
textpos.push([@pokemon.item.name, 16, 358, 0, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
textpos.push([@pokemon.item.name, 16, 358, :left, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
||||||
else
|
else
|
||||||
textpos.push([_INTL("None"), 16, 358, 0, Color.new(192, 200, 208), Color.new(208, 216, 224)])
|
textpos.push([_INTL("None"), 16, 358, :left, Color.new(192, 200, 208), Color.new(208, 216, 224)])
|
||||||
end
|
end
|
||||||
# Write the gender symbol
|
# Write the gender symbol
|
||||||
if @pokemon.male?
|
if @pokemon.male?
|
||||||
textpos.push([_INTL("♂"), 178, 68, 0, Color.new(24, 112, 216), Color.new(136, 168, 208)])
|
textpos.push([_INTL("♂"), 178, 68, :left, Color.new(24, 112, 216), Color.new(136, 168, 208)])
|
||||||
elsif @pokemon.female?
|
elsif @pokemon.female?
|
||||||
textpos.push([_INTL("♀"), 178, 68, 0, Color.new(248, 56, 32), Color.new(224, 152, 144)])
|
textpos.push([_INTL("♀"), 178, 68, :left, Color.new(248, 56, 32), Color.new(224, 152, 144)])
|
||||||
end
|
end
|
||||||
# Draw all text
|
# Draw all text
|
||||||
pbDrawTextPositions(overlay, textpos)
|
pbDrawTextPositions(overlay, textpos)
|
||||||
@@ -386,12 +391,12 @@ class PokemonSummary_Scene
|
|||||||
end
|
end
|
||||||
# Write various bits of text
|
# Write various bits of text
|
||||||
textpos = [
|
textpos = [
|
||||||
[_INTL("Dex No."), 238, 86, 0, base, shadow],
|
[_INTL("Dex No."), 238, 86, :left, base, shadow],
|
||||||
[_INTL("Species"), 238, 118, 0, base, shadow],
|
[_INTL("Species"), 238, 118, :left, base, shadow],
|
||||||
[@pokemon.speciesName, 435, 118, 2, Color.new(64, 64, 64), Color.new(176, 176, 176)],
|
[@pokemon.speciesName, 435, 118, :center, Color.new(64, 64, 64), Color.new(176, 176, 176)],
|
||||||
[_INTL("Type"), 238, 150, 0, base, shadow],
|
[_INTL("Type"), 238, 150, :left, base, shadow],
|
||||||
[_INTL("OT"), 238, 182, 0, base, shadow],
|
[_INTL("OT"), 238, 182, :left, base, shadow],
|
||||||
[_INTL("ID No."), 238, 214, 0, base, shadow]
|
[_INTL("ID No."), 238, 214, :left, base, shadow]
|
||||||
]
|
]
|
||||||
# Write the Regional/National Dex number
|
# Write the Regional/National Dex number
|
||||||
dexnum = 0
|
dexnum = 0
|
||||||
@@ -410,15 +415,15 @@ class PokemonSummary_Scene
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
if dexnum <= 0
|
if dexnum <= 0
|
||||||
textpos.push(["???", 435, 86, 2, dexNumBase, dexNumShadow])
|
textpos.push(["???", 435, 86, :center, dexNumBase, dexNumShadow])
|
||||||
else
|
else
|
||||||
dexnum -= 1 if dexnumshift
|
dexnum -= 1 if dexnumshift
|
||||||
textpos.push([sprintf("%03d", dexnum), 435, 86, 2, dexNumBase, dexNumShadow])
|
textpos.push([sprintf("%03d", dexnum), 435, 86, :center, dexNumBase, dexNumShadow])
|
||||||
end
|
end
|
||||||
# Write Original Trainer's name and ID number
|
# Write Original Trainer's name and ID number
|
||||||
if @pokemon.owner.name.empty?
|
if @pokemon.owner.name.empty?
|
||||||
textpos.push([_INTL("RENTAL"), 435, 182, 2, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
textpos.push([_INTL("RENTAL"), 435, 182, :center, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
||||||
textpos.push(["?????", 435, 214, 2, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
textpos.push(["?????", 435, 214, :center, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
||||||
else
|
else
|
||||||
ownerbase = Color.new(64, 64, 64)
|
ownerbase = Color.new(64, 64, 64)
|
||||||
ownershadow = Color.new(176, 176, 176)
|
ownershadow = Color.new(176, 176, 176)
|
||||||
@@ -430,27 +435,28 @@ class PokemonSummary_Scene
|
|||||||
ownerbase = Color.new(248, 56, 32)
|
ownerbase = Color.new(248, 56, 32)
|
||||||
ownershadow = Color.new(224, 152, 144)
|
ownershadow = Color.new(224, 152, 144)
|
||||||
end
|
end
|
||||||
textpos.push([@pokemon.owner.name, 435, 182, 2, ownerbase, ownershadow])
|
textpos.push([@pokemon.owner.name, 435, 182, :center, ownerbase, ownershadow])
|
||||||
textpos.push([sprintf("%05d", @pokemon.owner.public_id), 435, 214, 2,
|
textpos.push([sprintf("%05d", @pokemon.owner.public_id), 435, 214, :center,
|
||||||
Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
||||||
end
|
end
|
||||||
# Write Exp text OR heart gauge message (if a Shadow Pokémon)
|
# Write Exp text OR heart gauge message (if a Shadow Pokémon)
|
||||||
if @pokemon.shadowPokemon?
|
if @pokemon.shadowPokemon?
|
||||||
textpos.push([_INTL("Heart Gauge"), 238, 246, 0, base, shadow])
|
textpos.push([_INTL("Heart Gauge"), 238, 246, :left, base, shadow])
|
||||||
|
black_text_tag = shadowc3tag(BLACK_TEXT_BASE, BLACK_TEXT_SHADOW)
|
||||||
heartmessage = [_INTL("The door to its heart is open! Undo the final lock!"),
|
heartmessage = [_INTL("The door to its heart is open! Undo the final lock!"),
|
||||||
_INTL("The door to its heart is almost fully open."),
|
_INTL("The door to its heart is almost fully open."),
|
||||||
_INTL("The door to its heart is nearly open."),
|
_INTL("The door to its heart is nearly open."),
|
||||||
_INTL("The door to its heart is opening wider."),
|
_INTL("The door to its heart is opening wider."),
|
||||||
_INTL("The door to its heart is opening up."),
|
_INTL("The door to its heart is opening up."),
|
||||||
_INTL("The door to its heart is tightly shut.")][@pokemon.heartStage]
|
_INTL("The door to its heart is tightly shut.")][@pokemon.heartStage]
|
||||||
memo = sprintf("<c3=404040,B0B0B0>%s\n", heartmessage)
|
memo = black_text_tag + heartmessage
|
||||||
drawFormattedTextEx(overlay, 234, 308, 264, memo)
|
drawFormattedTextEx(overlay, 234, 308, 264, memo)
|
||||||
else
|
else
|
||||||
endexp = @pokemon.growth_rate.minimum_exp_for_level(@pokemon.level + 1)
|
endexp = @pokemon.growth_rate.minimum_exp_for_level(@pokemon.level + 1)
|
||||||
textpos.push([_INTL("Exp. Points"), 238, 246, 0, base, shadow])
|
textpos.push([_INTL("Exp. Points"), 238, 246, :left, base, shadow])
|
||||||
textpos.push([@pokemon.exp.to_s_formatted, 488, 278, 1, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
textpos.push([@pokemon.exp.to_s_formatted, 488, 278, :right, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
||||||
textpos.push([_INTL("To Next Lv."), 238, 310, 0, base, shadow])
|
textpos.push([_INTL("To Next Lv."), 238, 310, :left, base, shadow])
|
||||||
textpos.push([(endexp - @pokemon.exp).to_s_formatted, 488, 342, 1, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
textpos.push([(endexp - @pokemon.exp).to_s_formatted, 488, 342, :right, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
||||||
end
|
end
|
||||||
# Draw all text
|
# Draw all text
|
||||||
pbDrawTextPositions(overlay, textpos)
|
pbDrawTextPositions(overlay, textpos)
|
||||||
@@ -486,42 +492,45 @@ class PokemonSummary_Scene
|
|||||||
pbDrawImagePositions(overlay, imagepos)
|
pbDrawImagePositions(overlay, imagepos)
|
||||||
# Write various bits of text
|
# Write various bits of text
|
||||||
textpos = [
|
textpos = [
|
||||||
[_INTL("TRAINER MEMO"), 26, 22, 0, base, shadow],
|
[_INTL("TRAINER MEMO"), 26, 22, :left, base, shadow],
|
||||||
[@pokemon.name, 46, 68, 0, base, shadow],
|
[@pokemon.name, 46, 68, :left, base, shadow],
|
||||||
[_INTL("Item"), 66, 324, 0, base, shadow]
|
[_INTL("Item"), 66, 324, :left, base, shadow]
|
||||||
]
|
]
|
||||||
# Write the held item's name
|
# Write the held item's name
|
||||||
if @pokemon.hasItem?
|
if @pokemon.hasItem?
|
||||||
textpos.push([@pokemon.item.name, 16, 358, 0, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
textpos.push([@pokemon.item.name, 16, 358, :left, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
||||||
else
|
else
|
||||||
textpos.push([_INTL("None"), 16, 358, 0, Color.new(192, 200, 208), Color.new(208, 216, 224)])
|
textpos.push([_INTL("None"), 16, 358, :left, Color.new(192, 200, 208), Color.new(208, 216, 224)])
|
||||||
end
|
end
|
||||||
# Draw all text
|
# Draw all text
|
||||||
pbDrawTextPositions(overlay, textpos)
|
pbDrawTextPositions(overlay, textpos)
|
||||||
|
red_text_tag = shadowc3tag(RED_TEXT_BASE, RED_TEXT_SHADOW)
|
||||||
|
black_text_tag = shadowc3tag(BLACK_TEXT_BASE, BLACK_TEXT_SHADOW)
|
||||||
memo = ""
|
memo = ""
|
||||||
# Write date received
|
# Write date received
|
||||||
if @pokemon.timeReceived
|
if @pokemon.timeReceived
|
||||||
date = @pokemon.timeReceived.day
|
date = @pokemon.timeReceived.day
|
||||||
month = pbGetMonthName(@pokemon.timeReceived.mon)
|
month = pbGetMonthName(@pokemon.timeReceived.mon)
|
||||||
year = @pokemon.timeReceived.year
|
year = @pokemon.timeReceived.year
|
||||||
memo += _INTL("<c3=404040,B0B0B0>{1} {2}, {3}\n", date, month, year)
|
memo += black_text_tag + _INTL("{1} {2}, {3}", date, month, year) + "\n"
|
||||||
end
|
end
|
||||||
# Write map name egg was received on
|
# Write map name egg was received on
|
||||||
mapname = pbGetMapNameFromId(@pokemon.obtain_map)
|
mapname = pbGetMapNameFromId(@pokemon.obtain_map)
|
||||||
mapname = @pokemon.obtain_text if @pokemon.obtain_text && !@pokemon.obtain_text.empty?
|
mapname = @pokemon.obtain_text if @pokemon.obtain_text && !@pokemon.obtain_text.empty?
|
||||||
if mapname && mapname != ""
|
if mapname && mapname != ""
|
||||||
memo += _INTL("<c3=404040,B0B0B0>A mysterious Pokémon Egg received from <c3=F83820,E09890>{1}<c3=404040,B0B0B0>.\n", mapname)
|
mapname = red_text_tag + mapname + black_text_tag
|
||||||
|
memo += black_text_tag + _INTL("A mysterious Pokémon Egg received from {1}.", mapname) + "\n"
|
||||||
else
|
else
|
||||||
memo += _INTL("<c3=404040,B0B0B0>A mysterious Pokémon Egg.\n", mapname)
|
memo += black_text_tag + _INTL("A mysterious Pokémon Egg.") + "\n"
|
||||||
end
|
end
|
||||||
memo += "\n" # Empty line
|
memo += "\n" # Empty line
|
||||||
# Write Egg Watch blurb
|
# Write Egg Watch blurb
|
||||||
memo += _INTL("<c3=404040,B0B0B0>\"The Egg Watch\"\n")
|
memo += black_text_tag + _INTL("\"The Egg Watch\"") + "\n"
|
||||||
eggstate = _INTL("It looks like this Egg will take a long time to hatch.")
|
eggstate = _INTL("It looks like this Egg will take a long time to hatch.")
|
||||||
eggstate = _INTL("What will hatch from this? It doesn't seem close to hatching.") if @pokemon.steps_to_hatch < 10_200
|
eggstate = _INTL("What will hatch from this? It doesn't seem close to hatching.") if @pokemon.steps_to_hatch < 10_200
|
||||||
eggstate = _INTL("It appears to move occasionally. It may be close to hatching.") if @pokemon.steps_to_hatch < 2550
|
eggstate = _INTL("It appears to move occasionally. It may be close to hatching.") if @pokemon.steps_to_hatch < 2550
|
||||||
eggstate = _INTL("Sounds can be heard coming from inside! It will hatch soon!") if @pokemon.steps_to_hatch < 1275
|
eggstate = _INTL("Sounds can be heard coming from inside! It will hatch soon!") if @pokemon.steps_to_hatch < 1275
|
||||||
memo += sprintf("<c3=404040,B0B0B0>%s\n", eggstate)
|
memo += black_text_tag + eggstate
|
||||||
# Draw all text
|
# Draw all text
|
||||||
drawFormattedTextEx(overlay, 232, 86, 268, memo)
|
drawFormattedTextEx(overlay, 232, 86, 268, memo)
|
||||||
# Draw the Pokémon's markings
|
# Draw the Pokémon's markings
|
||||||
@@ -530,44 +539,48 @@ class PokemonSummary_Scene
|
|||||||
|
|
||||||
def drawPageTwo
|
def drawPageTwo
|
||||||
overlay = @sprites["overlay"].bitmap
|
overlay = @sprites["overlay"].bitmap
|
||||||
|
red_text_tag = shadowc3tag(RED_TEXT_BASE, RED_TEXT_SHADOW)
|
||||||
|
black_text_tag = shadowc3tag(BLACK_TEXT_BASE, BLACK_TEXT_SHADOW)
|
||||||
memo = ""
|
memo = ""
|
||||||
# Write nature
|
# Write nature
|
||||||
showNature = !@pokemon.shadowPokemon? || @pokemon.heartStage <= 3
|
showNature = !@pokemon.shadowPokemon? || @pokemon.heartStage <= 3
|
||||||
if showNature
|
if showNature
|
||||||
natureName = @pokemon.nature.name
|
nature_name = red_text_tag + @pokemon.nature.name + black_text_tag
|
||||||
memo += _INTL("<c3=F83820,E09890>{1}<c3=404040,B0B0B0> nature.\n", natureName)
|
memo += _INTL("{1} nature.", @pokemon.nature.name) + "\n"
|
||||||
end
|
end
|
||||||
# Write date received
|
# Write date received
|
||||||
if @pokemon.timeReceived
|
if @pokemon.timeReceived
|
||||||
date = @pokemon.timeReceived.day
|
date = @pokemon.timeReceived.day
|
||||||
month = pbGetMonthName(@pokemon.timeReceived.mon)
|
month = pbGetMonthName(@pokemon.timeReceived.mon)
|
||||||
year = @pokemon.timeReceived.year
|
year = @pokemon.timeReceived.year
|
||||||
memo += _INTL("<c3=404040,B0B0B0>{1} {2}, {3}\n", date, month, year)
|
memo += black_text_tag + _INTL("{1} {2}, {3}", date, month, year) + "\n"
|
||||||
end
|
end
|
||||||
# Write map name Pokémon was received on
|
# Write map name Pokémon was received on
|
||||||
mapname = pbGetMapNameFromId(@pokemon.obtain_map)
|
mapname = pbGetMapNameFromId(@pokemon.obtain_map)
|
||||||
mapname = @pokemon.obtain_text if @pokemon.obtain_text && !@pokemon.obtain_text.empty?
|
mapname = @pokemon.obtain_text if @pokemon.obtain_text && !@pokemon.obtain_text.empty?
|
||||||
mapname = _INTL("Faraway place") if nil_or_empty?(mapname)
|
mapname = _INTL("Faraway place") if nil_or_empty?(mapname)
|
||||||
memo += sprintf("<c3=F83820,E09890>%s\n", mapname)
|
memo += red_text_tag + mapname + "\n"
|
||||||
# Write how Pokémon was obtained
|
# Write how Pokémon was obtained
|
||||||
mettext = [_INTL("Met at Lv. {1}.", @pokemon.obtain_level),
|
mettext = [
|
||||||
_INTL("Egg received."),
|
_INTL("Met at Lv. {1}.", @pokemon.obtain_level),
|
||||||
_INTL("Traded at Lv. {1}.", @pokemon.obtain_level),
|
_INTL("Egg received."),
|
||||||
"",
|
_INTL("Traded at Lv. {1}.", @pokemon.obtain_level),
|
||||||
_INTL("Had a fateful encounter at Lv. {1}.", @pokemon.obtain_level)][@pokemon.obtain_method]
|
"",
|
||||||
memo += sprintf("<c3=404040,B0B0B0>%s\n", mettext) if mettext && mettext != ""
|
_INTL("Had a fateful encounter at Lv. {1}.", @pokemon.obtain_level)
|
||||||
|
][@pokemon.obtain_method]
|
||||||
|
memo += black_text_tag + mettext + "\n" if mettext && mettext != ""
|
||||||
# If Pokémon was hatched, write when and where it hatched
|
# If Pokémon was hatched, write when and where it hatched
|
||||||
if @pokemon.obtain_method == 1
|
if @pokemon.obtain_method == 1
|
||||||
if @pokemon.timeEggHatched
|
if @pokemon.timeEggHatched
|
||||||
date = @pokemon.timeEggHatched.day
|
date = @pokemon.timeEggHatched.day
|
||||||
month = pbGetMonthName(@pokemon.timeEggHatched.mon)
|
month = pbGetMonthName(@pokemon.timeEggHatched.mon)
|
||||||
year = @pokemon.timeEggHatched.year
|
year = @pokemon.timeEggHatched.year
|
||||||
memo += _INTL("<c3=404040,B0B0B0>{1} {2}, {3}\n", date, month, year)
|
memo += black_text_tag + _INTL("{1} {2}, {3}", date, month, year) + "\n"
|
||||||
end
|
end
|
||||||
mapname = pbGetMapNameFromId(@pokemon.hatched_map)
|
mapname = pbGetMapNameFromId(@pokemon.hatched_map)
|
||||||
mapname = _INTL("Faraway place") if nil_or_empty?(mapname)
|
mapname = _INTL("Faraway place") if nil_or_empty?(mapname)
|
||||||
memo += sprintf("<c3=F83820,E09890>%s\n", mapname)
|
memo += red_text_tag + mapname + "\n"
|
||||||
memo += _INTL("<c3=404040,B0B0B0>Egg hatched.\n")
|
memo += black_text_tag + _INTL("Egg hatched.") + "\n"
|
||||||
else
|
else
|
||||||
memo += "\n" # Empty line
|
memo += "\n" # Empty line
|
||||||
end
|
end
|
||||||
@@ -616,7 +629,7 @@ class PokemonSummary_Scene
|
|||||||
_INTL("Somewhat of a clown."),
|
_INTL("Somewhat of a clown."),
|
||||||
_INTL("Quick to flee.")]
|
_INTL("Quick to flee.")]
|
||||||
}
|
}
|
||||||
memo += sprintf("<c3=404040,B0B0B0>%s\n", characteristics[best_stat][best_iv % 5])
|
memo += black_text_tag + characteristics[best_stat][best_iv % 5] + "\n"
|
||||||
end
|
end
|
||||||
# Write all text
|
# Write all text
|
||||||
drawFormattedTextEx(overlay, 232, 86, 268, memo)
|
drawFormattedTextEx(overlay, 232, 86, 268, memo)
|
||||||
@@ -637,24 +650,24 @@ class PokemonSummary_Scene
|
|||||||
end
|
end
|
||||||
# Write various bits of text
|
# Write various bits of text
|
||||||
textpos = [
|
textpos = [
|
||||||
[_INTL("HP"), 292, 82, 2, base, statshadows[:HP]],
|
[_INTL("HP"), 292, 82, :center, base, statshadows[:HP]],
|
||||||
[sprintf("%d/%d", @pokemon.hp, @pokemon.totalhp), 462, 82, 1, Color.new(64, 64, 64), Color.new(176, 176, 176)],
|
[sprintf("%d/%d", @pokemon.hp, @pokemon.totalhp), 462, 82, :right, Color.new(64, 64, 64), Color.new(176, 176, 176)],
|
||||||
[_INTL("Attack"), 248, 126, 0, base, statshadows[:ATTACK]],
|
[_INTL("Attack"), 248, 126, :left, base, statshadows[:ATTACK]],
|
||||||
[sprintf("%d", @pokemon.attack), 456, 126, 1, Color.new(64, 64, 64), Color.new(176, 176, 176)],
|
[@pokemon.attack.to_s, 456, 126, :right, Color.new(64, 64, 64), Color.new(176, 176, 176)],
|
||||||
[_INTL("Defense"), 248, 158, 0, base, statshadows[:DEFENSE]],
|
[_INTL("Defense"), 248, 158, :left, base, statshadows[:DEFENSE]],
|
||||||
[sprintf("%d", @pokemon.defense), 456, 158, 1, Color.new(64, 64, 64), Color.new(176, 176, 176)],
|
[@pokemon.defense.to_s, 456, 158, :right, Color.new(64, 64, 64), Color.new(176, 176, 176)],
|
||||||
[_INTL("Sp. Atk"), 248, 190, 0, base, statshadows[:SPECIAL_ATTACK]],
|
[_INTL("Sp. Atk"), 248, 190, :left, base, statshadows[:SPECIAL_ATTACK]],
|
||||||
[sprintf("%d", @pokemon.spatk), 456, 190, 1, Color.new(64, 64, 64), Color.new(176, 176, 176)],
|
[@pokemon.spatk.to_s, 456, 190, :right, Color.new(64, 64, 64), Color.new(176, 176, 176)],
|
||||||
[_INTL("Sp. Def"), 248, 222, 0, base, statshadows[:SPECIAL_DEFENSE]],
|
[_INTL("Sp. Def"), 248, 222, :left, base, statshadows[:SPECIAL_DEFENSE]],
|
||||||
[sprintf("%d", @pokemon.spdef), 456, 222, 1, Color.new(64, 64, 64), Color.new(176, 176, 176)],
|
[@pokemon.spdef.to_s, 456, 222, :right, Color.new(64, 64, 64), Color.new(176, 176, 176)],
|
||||||
[_INTL("Speed"), 248, 254, 0, base, statshadows[:SPEED]],
|
[_INTL("Speed"), 248, 254, :left, base, statshadows[:SPEED]],
|
||||||
[sprintf("%d", @pokemon.speed), 456, 254, 1, Color.new(64, 64, 64), Color.new(176, 176, 176)],
|
[@pokemon.speed.to_s, 456, 254, :right, Color.new(64, 64, 64), Color.new(176, 176, 176)],
|
||||||
[_INTL("Ability"), 224, 290, 0, base, shadow]
|
[_INTL("Ability"), 224, 290, :left, base, shadow]
|
||||||
]
|
]
|
||||||
# Draw ability name and description
|
# Draw ability name and description
|
||||||
ability = @pokemon.ability
|
ability = @pokemon.ability
|
||||||
if ability
|
if ability
|
||||||
textpos.push([ability.name, 362, 290, 0, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
textpos.push([ability.name, 362, 290, :left, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
||||||
drawTextEx(overlay, 224, 322, 282, 2, ability.description, Color.new(64, 64, 64), Color.new(176, 176, 176))
|
drawTextEx(overlay, 224, 322, 282, 2, ability.description, Color.new(64, 64, 64), Color.new(176, 176, 176))
|
||||||
end
|
end
|
||||||
# Draw all text
|
# Draw all text
|
||||||
@@ -698,9 +711,9 @@ class PokemonSummary_Scene
|
|||||||
if move
|
if move
|
||||||
type_number = GameData::Type.get(move.display_type(@pokemon)).icon_position
|
type_number = GameData::Type.get(move.display_type(@pokemon)).icon_position
|
||||||
imagepos.push(["Graphics/UI/types", 248, yPos - 4, 0, type_number * 28, 64, 28])
|
imagepos.push(["Graphics/UI/types", 248, yPos - 4, 0, type_number * 28, 64, 28])
|
||||||
textpos.push([move.name, 316, yPos, 0, moveBase, moveShadow])
|
textpos.push([move.name, 316, yPos, :left, moveBase, moveShadow])
|
||||||
if move.total_pp > 0
|
if move.total_pp > 0
|
||||||
textpos.push([_INTL("PP"), 342, yPos + 32, 0, moveBase, moveShadow])
|
textpos.push([_INTL("PP"), 342, yPos + 32, :left, moveBase, moveShadow])
|
||||||
ppfraction = 0
|
ppfraction = 0
|
||||||
if move.pp == 0
|
if move.pp == 0
|
||||||
ppfraction = 3
|
ppfraction = 3
|
||||||
@@ -709,11 +722,11 @@ class PokemonSummary_Scene
|
|||||||
elsif move.pp * 2 <= move.total_pp
|
elsif move.pp * 2 <= move.total_pp
|
||||||
ppfraction = 1
|
ppfraction = 1
|
||||||
end
|
end
|
||||||
textpos.push([sprintf("%d/%d", move.pp, move.total_pp), 460, yPos + 32, 1, ppBase[ppfraction], ppShadow[ppfraction]])
|
textpos.push([sprintf("%d/%d", move.pp, move.total_pp), 460, yPos + 32, :right, ppBase[ppfraction], ppShadow[ppfraction]])
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
textpos.push(["-", 316, yPos, 0, moveBase, moveShadow])
|
textpos.push(["-", 316, yPos, :left, moveBase, moveShadow])
|
||||||
textpos.push(["--", 442, yPos + 32, 1, moveBase, moveShadow])
|
textpos.push(["--", 442, yPos + 32, :right, moveBase, moveShadow])
|
||||||
end
|
end
|
||||||
yPos += 64
|
yPos += 64
|
||||||
end
|
end
|
||||||
@@ -745,10 +758,10 @@ class PokemonSummary_Scene
|
|||||||
end
|
end
|
||||||
# Write various bits of text
|
# Write various bits of text
|
||||||
textpos = [
|
textpos = [
|
||||||
[_INTL("MOVES"), 26, 22, 0, base, shadow],
|
[_INTL("MOVES"), 26, 22, :left, base, shadow],
|
||||||
[_INTL("CATEGORY"), 20, 128, 0, base, shadow],
|
[_INTL("CATEGORY"), 20, 128, :left, base, shadow],
|
||||||
[_INTL("POWER"), 20, 160, 0, base, shadow],
|
[_INTL("POWER"), 20, 160, :left, base, shadow],
|
||||||
[_INTL("ACCURACY"), 20, 192, 0, base, shadow]
|
[_INTL("ACCURACY"), 20, 192, :left, base, shadow]
|
||||||
]
|
]
|
||||||
imagepos = []
|
imagepos = []
|
||||||
# Write move names, types and PP amounts for each known move
|
# Write move names, types and PP amounts for each known move
|
||||||
@@ -764,9 +777,9 @@ class PokemonSummary_Scene
|
|||||||
if move
|
if move
|
||||||
type_number = GameData::Type.get(move.display_type(@pokemon)).icon_position
|
type_number = GameData::Type.get(move.display_type(@pokemon)).icon_position
|
||||||
imagepos.push(["Graphics/UI/types", 248, yPos - 4, 0, type_number * 28, 64, 28])
|
imagepos.push(["Graphics/UI/types", 248, yPos - 4, 0, type_number * 28, 64, 28])
|
||||||
textpos.push([move.name, 316, yPos, 0, moveBase, moveShadow])
|
textpos.push([move.name, 316, yPos, :left, moveBase, moveShadow])
|
||||||
if move.total_pp > 0
|
if move.total_pp > 0
|
||||||
textpos.push([_INTL("PP"), 342, yPos + 32, 0, moveBase, moveShadow])
|
textpos.push([_INTL("PP"), 342, yPos + 32, :left, moveBase, moveShadow])
|
||||||
ppfraction = 0
|
ppfraction = 0
|
||||||
if move.pp == 0
|
if move.pp == 0
|
||||||
ppfraction = 3
|
ppfraction = 3
|
||||||
@@ -775,11 +788,12 @@ class PokemonSummary_Scene
|
|||||||
elsif move.pp * 2 <= move.total_pp
|
elsif move.pp * 2 <= move.total_pp
|
||||||
ppfraction = 1
|
ppfraction = 1
|
||||||
end
|
end
|
||||||
textpos.push([sprintf("%d/%d", move.pp, move.total_pp), 460, yPos + 32, 1, ppBase[ppfraction], ppShadow[ppfraction]])
|
textpos.push([sprintf("%d/%d", move.pp, move.total_pp), 460, yPos + 32, :right,
|
||||||
|
ppBase[ppfraction], ppShadow[ppfraction]])
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
textpos.push(["-", 316, yPos, 0, moveBase, moveShadow])
|
textpos.push(["-", 316, yPos, :left, moveBase, moveShadow])
|
||||||
textpos.push(["--", 442, yPos + 32, 1, moveBase, moveShadow])
|
textpos.push(["--", 442, yPos + 32, :right, moveBase, moveShadow])
|
||||||
end
|
end
|
||||||
yPos += 64
|
yPos += 64
|
||||||
end
|
end
|
||||||
@@ -809,14 +823,14 @@ class PokemonSummary_Scene
|
|||||||
textpos = []
|
textpos = []
|
||||||
# Write power and accuracy values for selected move
|
# Write power and accuracy values for selected move
|
||||||
case selected_move.display_damage(@pokemon)
|
case selected_move.display_damage(@pokemon)
|
||||||
when 0 then textpos.push(["---", 216, 160, 1, base, shadow]) # Status move
|
when 0 then textpos.push(["---", 216, 160, :right, base, shadow]) # Status move
|
||||||
when 1 then textpos.push(["???", 216, 160, 1, base, shadow]) # Variable power move
|
when 1 then textpos.push(["???", 216, 160, :right, base, shadow]) # Variable power move
|
||||||
else textpos.push([selected_move.display_damage(@pokemon).to_s, 216, 160, 1, base, shadow])
|
else textpos.push([selected_move.display_damage(@pokemon).to_s, 216, 160, :right, base, shadow])
|
||||||
end
|
end
|
||||||
if selected_move.display_accuracy(@pokemon) == 0
|
if selected_move.display_accuracy(@pokemon) == 0
|
||||||
textpos.push(["---", 216, 192, 1, base, shadow])
|
textpos.push(["---", 216, 192, :right, base, shadow])
|
||||||
else
|
else
|
||||||
textpos.push(["#{selected_move.display_accuracy(@pokemon)}%", 216 + overlay.text_size("%").width, 192, 1, base, shadow])
|
textpos.push(["#{selected_move.display_accuracy(@pokemon)}%", 216 + overlay.text_size("%").width, 192, :right, base, shadow])
|
||||||
end
|
end
|
||||||
# Draw all text
|
# Draw all text
|
||||||
pbDrawTextPositions(overlay, textpos)
|
pbDrawTextPositions(overlay, textpos)
|
||||||
@@ -833,8 +847,8 @@ class PokemonSummary_Scene
|
|||||||
@sprites["downarrow"].visible = false
|
@sprites["downarrow"].visible = false
|
||||||
# Write various bits of text
|
# Write various bits of text
|
||||||
textpos = [
|
textpos = [
|
||||||
[_INTL("No. of Ribbons:"), 234, 338, 0, Color.new(64, 64, 64), Color.new(176, 176, 176)],
|
[_INTL("No. of Ribbons:"), 234, 338, :left, Color.new(64, 64, 64), Color.new(176, 176, 176)],
|
||||||
[@pokemon.numRibbons.to_s, 450, 338, 1, Color.new(64, 64, 64), Color.new(176, 176, 176)]
|
[@pokemon.numRibbons.to_s, 450, 338, :right, Color.new(64, 64, 64), Color.new(176, 176, 176)]
|
||||||
]
|
]
|
||||||
# Draw all text
|
# Draw all text
|
||||||
pbDrawTextPositions(overlay, textpos)
|
pbDrawTextPositions(overlay, textpos)
|
||||||
@@ -873,7 +887,7 @@ class PokemonSummary_Scene
|
|||||||
pbDrawImagePositions(overlay, imagepos)
|
pbDrawImagePositions(overlay, imagepos)
|
||||||
# Draw name of selected ribbon
|
# Draw name of selected ribbon
|
||||||
textpos = [
|
textpos = [
|
||||||
[name, 18, 292, 0, nameBase, nameShadow]
|
[name, 18, 292, :left, nameBase, nameShadow]
|
||||||
]
|
]
|
||||||
pbDrawTextPositions(overlay, textpos)
|
pbDrawTextPositions(overlay, textpos)
|
||||||
# Draw selected ribbon's description
|
# Draw selected ribbon's description
|
||||||
@@ -1082,9 +1096,9 @@ class PokemonSummary_Scene
|
|||||||
@markingbitmap.bitmap, markrect)
|
@markingbitmap.bitmap, markrect)
|
||||||
end
|
end
|
||||||
textpos = [
|
textpos = [
|
||||||
[_INTL("Mark {1}", pokemon.name), 366, 102, 2, base, shadow],
|
[_INTL("Mark {1}", pokemon.name), 366, 102, :center, base, shadow],
|
||||||
[_INTL("OK"), 366, 254, 2, base, shadow],
|
[_INTL("OK"), 366, 254, :center, base, shadow],
|
||||||
[_INTL("Cancel"), 366, 304, 2, base, shadow]
|
[_INTL("Cancel"), 366, 304, :center, base, shadow]
|
||||||
]
|
]
|
||||||
pbDrawTextPositions(@sprites["markingoverlay"].bitmap, textpos)
|
pbDrawTextPositions(@sprites["markingoverlay"].bitmap, textpos)
|
||||||
redraw = false
|
redraw = false
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ class Window_PokemonBag < Window_DrawableCommand
|
|||||||
rect = Rect.new(rect.x + 16, rect.y + 16, rect.width - 16, rect.height)
|
rect = Rect.new(rect.x + 16, rect.y + 16, rect.width - 16, rect.height)
|
||||||
thispocket = @bag.pockets[@pocket]
|
thispocket = @bag.pockets[@pocket]
|
||||||
if index == self.itemCount - 1
|
if index == self.itemCount - 1
|
||||||
textpos.push([_INTL("CLOSE BAG"), rect.x, rect.y + 2, false, self.baseColor, self.shadowColor])
|
textpos.push([_INTL("CLOSE BAG"), rect.x, rect.y + 2, :left, self.baseColor, self.shadowColor])
|
||||||
else
|
else
|
||||||
item = (@filterlist) ? thispocket[@filterlist[@pocket][index]][0] : thispocket[index][0]
|
item = (@filterlist) ? thispocket[@filterlist[@pocket][index]][0] : thispocket[index][0]
|
||||||
baseColor = self.baseColor
|
baseColor = self.baseColor
|
||||||
@@ -76,7 +76,7 @@ class Window_PokemonBag < Window_DrawableCommand
|
|||||||
shadowColor = Color.new(248, 144, 144)
|
shadowColor = Color.new(248, 144, 144)
|
||||||
end
|
end
|
||||||
textpos.push(
|
textpos.push(
|
||||||
[@adapter.getDisplayName(item), rect.x, rect.y + 2, false, baseColor, shadowColor]
|
[@adapter.getDisplayName(item), rect.x, rect.y + 2, :left, baseColor, shadowColor]
|
||||||
)
|
)
|
||||||
if GameData::Item.get(item).is_important?
|
if GameData::Item.get(item).is_important?
|
||||||
if @bag.registered?(item)
|
if @bag.registered?(item)
|
||||||
@@ -94,7 +94,7 @@ class Window_PokemonBag < Window_DrawableCommand
|
|||||||
qty = (@filterlist) ? thispocket[@filterlist[@pocket][index]][1] : thispocket[index][1]
|
qty = (@filterlist) ? thispocket[@filterlist[@pocket][index]][1] : thispocket[index][1]
|
||||||
qtytext = _ISPRINTF("x{1: 3d}", qty)
|
qtytext = _ISPRINTF("x{1: 3d}", qty)
|
||||||
xQty = rect.x + rect.width - self.contents.text_size(qtytext).width - 16
|
xQty = rect.x + rect.width - self.contents.text_size(qtytext).width - 16
|
||||||
textpos.push([qtytext, xQty, rect.y + 2, false, baseColor, shadowColor])
|
textpos.push([qtytext, xQty, rect.y + 2, :left, baseColor, shadowColor])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
pbDrawTextPositions(self.contents, textpos)
|
pbDrawTextPositions(self.contents, textpos)
|
||||||
@@ -258,13 +258,13 @@ class PokemonBag_Scene
|
|||||||
|
|
||||||
def pbRefresh
|
def pbRefresh
|
||||||
# Set the background image
|
# Set the background image
|
||||||
@sprites["background"].setBitmap(sprintf("Graphics/UI/Bag/bg_#{@bag.last_viewed_pocket}"))
|
@sprites["background"].setBitmap(sprintf("Graphics/UI/Bag/bg_%d", @bag.last_viewed_pocket))
|
||||||
# Set the bag sprite
|
# Set the bag sprite
|
||||||
fbagexists = pbResolveBitmap(sprintf("Graphics/UI/Bag/bag_#{@bag.last_viewed_pocket}_f"))
|
fbagexists = pbResolveBitmap(sprintf("Graphics/UI/Bag/bag_%d_f", @bag.last_viewed_pocket))
|
||||||
if $player.female? && fbagexists
|
if $player.female? && fbagexists
|
||||||
@sprites["bagsprite"].setBitmap("Graphics/UI/Bag/bag_#{@bag.last_viewed_pocket}_f")
|
@sprites["bagsprite"].setBitmap(sprintf("Graphics/UI/Bag/bag_%d_f", @bag.last_viewed_pocket))
|
||||||
else
|
else
|
||||||
@sprites["bagsprite"].setBitmap("Graphics/UI/Bag/bag_#{@bag.last_viewed_pocket}")
|
@sprites["bagsprite"].setBitmap(sprintf("Graphics/UI/Bag/bag_%d", @bag.last_viewed_pocket))
|
||||||
end
|
end
|
||||||
# Draw the pocket icons
|
# Draw the pocket icons
|
||||||
@sprites["pocketicon"].bitmap.clear
|
@sprites["pocketicon"].bitmap.clear
|
||||||
@@ -293,7 +293,7 @@ class PokemonBag_Scene
|
|||||||
# Draw the pocket name
|
# Draw the pocket name
|
||||||
pbDrawTextPositions(
|
pbDrawTextPositions(
|
||||||
overlay,
|
overlay,
|
||||||
[[PokemonBag.pocket_names[@bag.last_viewed_pocket - 1], 94, 186, 2, POCKETNAMEBASECOLOR, POCKETNAMESHADOWCOLOR]]
|
[[PokemonBag.pocket_names[@bag.last_viewed_pocket - 1], 94, 186, :center, POCKETNAMEBASECOLOR, POCKETNAMESHADOWCOLOR]]
|
||||||
)
|
)
|
||||||
# Draw slider arrows
|
# Draw slider arrows
|
||||||
showslider = false
|
showslider = false
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class PokegearButton < Sprite
|
|||||||
@image = command[0]
|
@image = command[0]
|
||||||
@name = command[1]
|
@name = command[1]
|
||||||
@selected = false
|
@selected = false
|
||||||
if $player.female? && pbResolveBitmap(sprintf("Graphics/UI/Pokegear/icon_button_f"))
|
if $player.female? && pbResolveBitmap("Graphics/UI/Pokegear/icon_button_f")
|
||||||
@button = AnimatedBitmap.new("Graphics/UI/Pokegear/icon_button_f")
|
@button = AnimatedBitmap.new("Graphics/UI/Pokegear/icon_button_f")
|
||||||
else
|
else
|
||||||
@button = AnimatedBitmap.new("Graphics/UI/Pokegear/icon_button")
|
@button = AnimatedBitmap.new("Graphics/UI/Pokegear/icon_button")
|
||||||
@@ -45,11 +45,11 @@ class PokegearButton < Sprite
|
|||||||
rect.y = @button.height / 2 if @selected
|
rect.y = @button.height / 2 if @selected
|
||||||
self.bitmap.blt(0, 0, @button.bitmap, rect)
|
self.bitmap.blt(0, 0, @button.bitmap, rect)
|
||||||
textpos = [
|
textpos = [
|
||||||
[@name, rect.width / 2, (rect.height / 2) - 10, 2, TEXT_BASE_COLOR, TEXT_SHADOW_COLOR]
|
[@name, rect.width / 2, (rect.height / 2) - 10, :center, TEXT_BASE_COLOR, TEXT_SHADOW_COLOR]
|
||||||
]
|
]
|
||||||
pbDrawTextPositions(self.bitmap, textpos)
|
pbDrawTextPositions(self.bitmap, textpos)
|
||||||
imagepos = [
|
imagepos = [
|
||||||
[sprintf("Graphics/UI/Pokegear/icon_" + @image), 18, 10]
|
[sprintf("Graphics/UI/Pokegear/icon_%s", @image), 18, 10]
|
||||||
]
|
]
|
||||||
pbDrawImagePositions(self.bitmap, imagepos)
|
pbDrawImagePositions(self.bitmap, imagepos)
|
||||||
end
|
end
|
||||||
@@ -73,7 +73,7 @@ class PokemonPokegear_Scene
|
|||||||
@viewport.z = 99999
|
@viewport.z = 99999
|
||||||
@sprites = {}
|
@sprites = {}
|
||||||
@sprites["background"] = IconSprite.new(0, 0, @viewport)
|
@sprites["background"] = IconSprite.new(0, 0, @viewport)
|
||||||
if $player.female? && pbResolveBitmap(sprintf("Graphics/UI/Pokegear/bg_f"))
|
if $player.female? && pbResolveBitmap("Graphics/UI/Pokegear/bg_f")
|
||||||
@sprites["background"].setBitmap("Graphics/UI/Pokegear/bg_f")
|
@sprites["background"].setBitmap("Graphics/UI/Pokegear/bg_f")
|
||||||
else
|
else
|
||||||
@sprites["background"].setBitmap("Graphics/UI/Pokegear/bg")
|
@sprites["background"].setBitmap("Graphics/UI/Pokegear/bg")
|
||||||
|
|||||||
@@ -39,9 +39,9 @@ class MapBottomSprite < Sprite
|
|||||||
def refresh
|
def refresh
|
||||||
bitmap.clear
|
bitmap.clear
|
||||||
textpos = [
|
textpos = [
|
||||||
[@mapname, 18, 4, 0, TEXT_MAIN_COLOR, TEXT_SHADOW_COLOR],
|
[@mapname, 18, 4, :left, TEXT_MAIN_COLOR, TEXT_SHADOW_COLOR],
|
||||||
[@maplocation, 18, 360, 0, TEXT_MAIN_COLOR, TEXT_SHADOW_COLOR],
|
[@maplocation, 18, 360, :left, TEXT_MAIN_COLOR, TEXT_SHADOW_COLOR],
|
||||||
[@mapdetails, Graphics.width - 16, 360, 1, TEXT_MAIN_COLOR, TEXT_SHADOW_COLOR]
|
[@mapdetails, Graphics.width - 16, 360, :right, TEXT_MAIN_COLOR, TEXT_SHADOW_COLOR]
|
||||||
]
|
]
|
||||||
pbDrawTextPositions(bitmap, textpos)
|
pbDrawTextPositions(bitmap, textpos)
|
||||||
end
|
end
|
||||||
@@ -236,7 +236,7 @@ class PokemonRegionMap_Scene
|
|||||||
text = (@mode == 0) ? _INTL("ACTION: Fly") : _INTL("ACTION: Cancel Fly")
|
text = (@mode == 0) ? _INTL("ACTION: Fly") : _INTL("ACTION: Cancel Fly")
|
||||||
pbDrawTextPositions(
|
pbDrawTextPositions(
|
||||||
@sprites["help"].bitmap,
|
@sprites["help"].bitmap,
|
||||||
[[text, Graphics.width - 16, 4, 1, Color.new(248, 248, 248), Color.black]]
|
[[text, Graphics.width - 16, 4, :right, Color.new(248, 248, 248), Color.black]]
|
||||||
)
|
)
|
||||||
@sprites.each do |key, sprite|
|
@sprites.each do |key, sprite|
|
||||||
next if !key.include?("point")
|
next if !key.include?("point")
|
||||||
|
|||||||
@@ -10,13 +10,13 @@ class PokemonTrainerCard_Scene
|
|||||||
@viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
@viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
||||||
@viewport.z = 99999
|
@viewport.z = 99999
|
||||||
@sprites = {}
|
@sprites = {}
|
||||||
background = pbResolveBitmap(sprintf("Graphics/UI/Trainer Card/bg_f"))
|
background = pbResolveBitmap("Graphics/UI/Trainer Card/bg_f")
|
||||||
if $player.female? && background
|
if $player.female? && background
|
||||||
addBackgroundPlane(@sprites, "bg", "Trainer Card/bg_f", @viewport)
|
addBackgroundPlane(@sprites, "bg", "Trainer Card/bg_f", @viewport)
|
||||||
else
|
else
|
||||||
addBackgroundPlane(@sprites, "bg", "Trainer Card/bg", @viewport)
|
addBackgroundPlane(@sprites, "bg", "Trainer Card/bg", @viewport)
|
||||||
end
|
end
|
||||||
cardexists = pbResolveBitmap(sprintf("Graphics/UI/Trainer Card/card_f"))
|
cardexists = pbResolveBitmap("Graphics/UI/Trainer Card/card_f")
|
||||||
@sprites["card"] = IconSprite.new(0, 0, @viewport)
|
@sprites["card"] = IconSprite.new(0, 0, @viewport)
|
||||||
if $player.female? && cardexists
|
if $player.female? && cardexists
|
||||||
@sprites["card"].setBitmap("Graphics/UI/Trainer Card/card_f")
|
@sprites["card"].setBitmap("Graphics/UI/Trainer Card/card_f")
|
||||||
@@ -49,18 +49,18 @@ class PokemonTrainerCard_Scene
|
|||||||
$PokemonGlobal.startTime.day,
|
$PokemonGlobal.startTime.day,
|
||||||
$PokemonGlobal.startTime.year)
|
$PokemonGlobal.startTime.year)
|
||||||
textPositions = [
|
textPositions = [
|
||||||
[_INTL("Name"), 34, 70, 0, baseColor, shadowColor],
|
[_INTL("Name"), 34, 70, :left, baseColor, shadowColor],
|
||||||
[$player.name, 302, 70, 1, baseColor, shadowColor],
|
[$player.name, 302, 70, :right, baseColor, shadowColor],
|
||||||
[_INTL("ID No."), 332, 70, 0, baseColor, shadowColor],
|
[_INTL("ID No."), 332, 70, :left, baseColor, shadowColor],
|
||||||
[sprintf("%05d", $player.public_ID), 468, 70, 1, baseColor, shadowColor],
|
[sprintf("%05d", $player.public_ID), 468, 70, :right, baseColor, shadowColor],
|
||||||
[_INTL("Money"), 34, 118, 0, baseColor, shadowColor],
|
[_INTL("Money"), 34, 118, :left, baseColor, shadowColor],
|
||||||
[_INTL("${1}", $player.money.to_s_formatted), 302, 118, 1, baseColor, shadowColor],
|
[_INTL("${1}", $player.money.to_s_formatted), 302, 118, :right, baseColor, shadowColor],
|
||||||
[_INTL("Pokédex"), 34, 166, 0, baseColor, shadowColor],
|
[_INTL("Pokédex"), 34, 166, :left, baseColor, shadowColor],
|
||||||
[sprintf("%d/%d", $player.pokedex.owned_count, $player.pokedex.seen_count), 302, 166, 1, baseColor, shadowColor],
|
[sprintf("%d/%d", $player.pokedex.owned_count, $player.pokedex.seen_count), 302, 166, :right, baseColor, shadowColor],
|
||||||
[_INTL("Time"), 34, 214, 0, baseColor, shadowColor],
|
[_INTL("Time"), 34, 214, :left, baseColor, shadowColor],
|
||||||
[time, 302, 214, 1, baseColor, shadowColor],
|
[time, 302, 214, :right, baseColor, shadowColor],
|
||||||
[_INTL("Started"), 34, 262, 0, baseColor, shadowColor],
|
[_INTL("Started"), 34, 262, :left, baseColor, shadowColor],
|
||||||
[starttime, 302, 262, 1, baseColor, shadowColor]
|
[starttime, 302, 262, :right, baseColor, shadowColor]
|
||||||
]
|
]
|
||||||
pbDrawTextPositions(overlay, textPositions)
|
pbDrawTextPositions(overlay, textPositions)
|
||||||
x = 72
|
x = 72
|
||||||
|
|||||||
@@ -62,31 +62,31 @@ class PokemonLoadPanel < Sprite
|
|||||||
end
|
end
|
||||||
textpos = []
|
textpos = []
|
||||||
if @isContinue
|
if @isContinue
|
||||||
textpos.push([@title, 32, 16, 0, TEXTCOLOR, TEXTSHADOWCOLOR])
|
textpos.push([@title, 32, 16, :left, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||||
textpos.push([_INTL("Badges:"), 32, 118, 0, TEXTCOLOR, TEXTSHADOWCOLOR])
|
textpos.push([_INTL("Badges:"), 32, 118, :left, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||||
textpos.push([@trainer.badge_count.to_s, 206, 118, 1, TEXTCOLOR, TEXTSHADOWCOLOR])
|
textpos.push([@trainer.badge_count.to_s, 206, 118, :right, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||||
textpos.push([_INTL("Pokédex:"), 32, 150, 0, TEXTCOLOR, TEXTSHADOWCOLOR])
|
textpos.push([_INTL("Pokédex:"), 32, 150, :left, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||||
textpos.push([@trainer.pokedex.seen_count.to_s, 206, 150, 1, TEXTCOLOR, TEXTSHADOWCOLOR])
|
textpos.push([@trainer.pokedex.seen_count.to_s, 206, 150, :right, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||||
textpos.push([_INTL("Time:"), 32, 182, 0, TEXTCOLOR, TEXTSHADOWCOLOR])
|
textpos.push([_INTL("Time:"), 32, 182, :left, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||||
hour = @totalsec / 60 / 60
|
hour = @totalsec / 60 / 60
|
||||||
min = @totalsec / 60 % 60
|
min = @totalsec / 60 % 60
|
||||||
if hour > 0
|
if hour > 0
|
||||||
textpos.push([_INTL("{1}h {2}m", hour, min), 206, 182, 1, TEXTCOLOR, TEXTSHADOWCOLOR])
|
textpos.push([_INTL("{1}h {2}m", hour, min), 206, 182, :right, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||||
else
|
else
|
||||||
textpos.push([_INTL("{1}m", min), 206, 182, 1, TEXTCOLOR, TEXTSHADOWCOLOR])
|
textpos.push([_INTL("{1}m", min), 206, 182, :right, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||||
end
|
end
|
||||||
if @trainer.male?
|
if @trainer.male?
|
||||||
textpos.push([@trainer.name, 112, 70, 0, MALETEXTCOLOR, MALETEXTSHADOWCOLOR])
|
textpos.push([@trainer.name, 112, 70, :left, MALETEXTCOLOR, MALETEXTSHADOWCOLOR])
|
||||||
elsif @trainer.female?
|
elsif @trainer.female?
|
||||||
textpos.push([@trainer.name, 112, 70, 0, FEMALETEXTCOLOR, FEMALETEXTSHADOWCOLOR])
|
textpos.push([@trainer.name, 112, 70, :left, FEMALETEXTCOLOR, FEMALETEXTSHADOWCOLOR])
|
||||||
else
|
else
|
||||||
textpos.push([@trainer.name, 112, 70, 0, TEXTCOLOR, TEXTSHADOWCOLOR])
|
textpos.push([@trainer.name, 112, 70, :left, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||||
end
|
end
|
||||||
mapname = pbGetMapNameFromId(@mapid)
|
mapname = pbGetMapNameFromId(@mapid)
|
||||||
mapname.gsub!(/\\PN/, @trainer.name)
|
mapname.gsub!(/\\PN/, @trainer.name)
|
||||||
textpos.push([mapname, 386, 16, 1, TEXTCOLOR, TEXTSHADOWCOLOR])
|
textpos.push([mapname, 386, 16, :right, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||||
else
|
else
|
||||||
textpos.push([@title, 32, 14, 0, TEXTCOLOR, TEXTSHADOWCOLOR])
|
textpos.push([@title, 32, 14, :left, TEXTCOLOR, TEXTSHADOWCOLOR])
|
||||||
end
|
end
|
||||||
pbDrawTextPositions(self.bitmap, textpos)
|
pbDrawTextPositions(self.bitmap, textpos)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -15,9 +15,10 @@ def pbEmergencySave
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
if Game.save
|
if Game.save
|
||||||
pbMessage(_INTL("\\se[]The game was saved.\\me[GUI save game] The previous save file has been backed up.\\wtnp[30]"))
|
pbMessage("\\se[]" +
|
||||||
|
_INTL("The game was saved.\\me[GUI save game] The previous save file has been backed up.\\wtnp[30]"))
|
||||||
else
|
else
|
||||||
pbMessage(_INTL("\\se[]Save failed.\\wtnp[30]"))
|
pbMessage("\\se[]" + _INTL("Save failed.\\wtnp[30]"))
|
||||||
end
|
end
|
||||||
$scene = oldscene
|
$scene = oldscene
|
||||||
end
|
end
|
||||||
@@ -26,6 +27,15 @@ end
|
|||||||
#
|
#
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
class PokemonSave_Scene
|
class PokemonSave_Scene
|
||||||
|
LOCATION_TEXT_BASE = Color.new(32, 152, 8) # Green
|
||||||
|
LOCATION_TEXT_SHADOW = Color.new(144, 240, 144)
|
||||||
|
MALE_TEXT_BASE = Color.new(0, 112, 248) # Blue
|
||||||
|
MALE_TEXT_SHADOW = Color.new(120, 184, 232)
|
||||||
|
FEMALE_TEXT_BASE = Color.new(232, 32, 16) # Red
|
||||||
|
FEMALE_TEXT_SHADOW = Color.new(248, 168, 184)
|
||||||
|
OTHER_TEXT_BASE = Color.new(0, 112, 248) # Blue
|
||||||
|
OTHER_TEXT_SHADOW = Color.new(120, 184, 232)
|
||||||
|
|
||||||
def pbStartScreen
|
def pbStartScreen
|
||||||
@viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
@viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
||||||
@viewport.z = 99999
|
@viewport.z = 99999
|
||||||
@@ -34,18 +44,24 @@ class PokemonSave_Scene
|
|||||||
hour = totalsec / 60 / 60
|
hour = totalsec / 60 / 60
|
||||||
min = totalsec / 60 % 60
|
min = totalsec / 60 % 60
|
||||||
mapname = $game_map.name
|
mapname = $game_map.name
|
||||||
textColor = ["0070F8,78B8E8", "E82010,F8A8B8", "0070F8,78B8E8"][$player.gender]
|
if $player.male?
|
||||||
locationColor = "209808,90F090" # green
|
text_tag = shadowc3tag(MALE_TEXT_BASE, MALE_TEXT_SHADOW)
|
||||||
loctext = _INTL("<ac><c3={1}>{2}</c3></ac>", locationColor, mapname)
|
elsif $player.female?
|
||||||
loctext += _INTL("Player<r><c3={1}>{2}</c3><br>", textColor, $player.name)
|
text_tag = shadowc3tag(FEMALE_TEXT_BASE, FEMALE_TEXT_SHADOW)
|
||||||
if hour > 0
|
|
||||||
loctext += _INTL("Time<r><c3={1}>{2}h {3}m</c3><br>", textColor, hour, min)
|
|
||||||
else
|
else
|
||||||
loctext += _INTL("Time<r><c3={1}>{2}m</c3><br>", textColor, min)
|
text_tag = shadowc3tag(OTHER_TEXT_BASE, OTHER_TEXT_SHADOW)
|
||||||
end
|
end
|
||||||
loctext += _INTL("Badges<r><c3={1}>{2}</c3><br>", textColor, $player.badge_count)
|
location_tag = shadowc3tag(LOCATION_TEXT_BASE, LOCATION_TEXT_SHADOW)
|
||||||
|
loctext = location_tag + "<ac>" + mapname + "</ac></c3>"
|
||||||
|
loctext += _INTL("Player") + "<r>" + text_tag + $player.name + "</c3><br>"
|
||||||
|
if hour > 0
|
||||||
|
loctext += _INTL("Time") + "<r>" + text_tag + _INTL("{1}h {2}m", hour, min) + "</c3><br>"
|
||||||
|
else
|
||||||
|
loctext += _INTL("Time") + "<r>" + text_tag + _INTL("{1}m", min) + "</c3><br>"
|
||||||
|
end
|
||||||
|
loctext += _INTL("Badges") + "<r>" + text_tag + $player.badge_count.to_s + "</c3><br>"
|
||||||
if $player.has_pokedex
|
if $player.has_pokedex
|
||||||
loctext += _INTL("Pokédex<r><c3={1}>{2}/{3}</c3>", textColor, $player.pokedex.owned_count, $player.pokedex.seen_count)
|
loctext += _INTL("Pokédex") + "<r>" + text_tag + $player.pokedex.owned_count.to_s + "/" + $player.pokedex.seen_count.to_s + "</c3>"
|
||||||
end
|
end
|
||||||
@sprites["locwindow"] = Window_AdvancedTextPokemon.new(loctext)
|
@sprites["locwindow"] = Window_AdvancedTextPokemon.new(loctext)
|
||||||
@sprites["locwindow"].viewport = @viewport
|
@sprites["locwindow"].viewport = @viewport
|
||||||
@@ -98,10 +114,10 @@ class PokemonSaveScreen
|
|||||||
$game_temp.begun_new_game = false
|
$game_temp.begun_new_game = false
|
||||||
pbSEPlay("GUI save choice")
|
pbSEPlay("GUI save choice")
|
||||||
if Game.save
|
if Game.save
|
||||||
pbMessage(_INTL("\\se[]{1} saved the game.\\me[GUI save game]\\wtnp[30]", $player.name))
|
pbMessage("\\se[]" +_INTL("{1} saved the game.\\me[GUI save game]\\wtnp[30]", $player.name))
|
||||||
ret = true
|
ret = true
|
||||||
else
|
else
|
||||||
pbMessage(_INTL("\\se[]Save failed.\\wtnp[30]"))
|
pbMessage("\\se[]" +_INTL("Save failed.\\wtnp[30]"))
|
||||||
ret = false
|
ret = false
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -230,7 +230,7 @@ class Window_PokemonOption < Window_DrawableCommand
|
|||||||
rect.y - 8 + (rect.height / 2),
|
rect.y - 8 + (rect.height / 2),
|
||||||
8, 16, SEL_VALUE_BASE_COLOR
|
8, 16, SEL_VALUE_BASE_COLOR
|
||||||
)
|
)
|
||||||
value = sprintf("%d", @options[index].lowest_value + self[index])
|
value = (@options[index].lowest_value + self[index]).to_s
|
||||||
xpos += (rect.width - rect.x - optionwidth) - self.contents.text_size(value).width
|
xpos += (rect.width - rect.x - optionwidth) - self.contents.text_size(value).width
|
||||||
pbDrawShadowText(self.contents, xpos, rect.y, optionwidth, rect.height, value,
|
pbDrawShadowText(self.contents, xpos, rect.y, optionwidth, rect.height, value,
|
||||||
SEL_VALUE_BASE_COLOR, SEL_VALUE_SHADOW_COLOR)
|
SEL_VALUE_BASE_COLOR, SEL_VALUE_SHADOW_COLOR)
|
||||||
|
|||||||
@@ -71,16 +71,16 @@ class ReadyMenuButton < Sprite
|
|||||||
self.bitmap.blt(0, 0, @button.bitmap, rect)
|
self.bitmap.blt(0, 0, @button.bitmap, rect)
|
||||||
textx = (@command[2]) ? 164 : (GameData::Item.get(@command[0]).is_important?) ? 146 : 124
|
textx = (@command[2]) ? 164 : (GameData::Item.get(@command[0]).is_important?) ? 146 : 124
|
||||||
textpos = [
|
textpos = [
|
||||||
[@command[1], textx, 24, 2, Color.new(248, 248, 248), Color.new(40, 40, 40), 1]
|
[@command[1], textx, 24, :center, Color.new(248, 248, 248), Color.new(40, 40, 40), :outline]
|
||||||
]
|
]
|
||||||
if !@command[2] && !GameData::Item.get(@command[0]).is_important?
|
if !@command[2] && !GameData::Item.get(@command[0]).is_important?
|
||||||
qty = $bag.quantity(@command[0])
|
qty = $bag.quantity(@command[0])
|
||||||
if qty > 99
|
if qty > 99
|
||||||
textpos.push([_INTL(">99"), 230, 24, 1,
|
textpos.push([_INTL(">99"), 230, 24, :right,
|
||||||
Color.new(248, 248, 248), Color.new(40, 40, 40), 1])
|
Color.new(248, 248, 248), Color.new(40, 40, 40), :outline])
|
||||||
else
|
else
|
||||||
textpos.push([_INTL("x{1}", qty), 230, 24, 1,
|
textpos.push([_INTL("x{1}", qty), 230, 24, :right,
|
||||||
Color.new(248, 248, 248), Color.new(40, 40, 40), 1])
|
Color.new(248, 248, 248), Color.new(40, 40, 40), :outline])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
pbDrawTextPositions(self.bitmap, textpos)
|
pbDrawTextPositions(self.bitmap, textpos)
|
||||||
|
|||||||
@@ -529,7 +529,7 @@ class PokemonBoxPartySprite < Sprite
|
|||||||
@contents.blt(0, 0, @boxbitmap.bitmap, Rect.new(0, 0, 172, 352))
|
@contents.blt(0, 0, @boxbitmap.bitmap, Rect.new(0, 0, 172, 352))
|
||||||
pbDrawTextPositions(
|
pbDrawTextPositions(
|
||||||
self.bitmap,
|
self.bitmap,
|
||||||
[[_INTL("Back"), 86, 248, 2, Color.new(248, 248, 248), Color.new(80, 80, 80), 1]]
|
[[_INTL("Back"), 86, 248, :center, Color.new(248, 248, 248), Color.new(80, 80, 80), :outline]]
|
||||||
)
|
)
|
||||||
xvalues = [] # [18, 90, 18, 90, 18, 90]
|
xvalues = [] # [18, 90, 18, 90, 18, 90]
|
||||||
yvalues = [] # [2, 18, 66, 82, 130, 146]
|
yvalues = [] # [2, 18, 66, 82, 130, 146]
|
||||||
@@ -1322,8 +1322,8 @@ class PokemonStorageScene
|
|||||||
@markingbitmap.bitmap, markrect)
|
@markingbitmap.bitmap, markrect)
|
||||||
end
|
end
|
||||||
textpos = [
|
textpos = [
|
||||||
[_INTL("OK"), 402, 216, 2, base, shadow, 1],
|
[_INTL("OK"), 402, 216, :center, base, shadow, :outline],
|
||||||
[_INTL("Cancel"), 402, 280, 2, base, shadow, 1]
|
[_INTL("Cancel"), 402, 280, :center, base, shadow, :outline]
|
||||||
]
|
]
|
||||||
pbDrawTextPositions(@sprites["markingoverlay"].bitmap, textpos)
|
pbDrawTextPositions(@sprites["markingoverlay"].bitmap, textpos)
|
||||||
pbMarkingSetArrow(@sprites["arrow"], index)
|
pbMarkingSetArrow(@sprites["arrow"], index)
|
||||||
@@ -1396,8 +1396,8 @@ class PokemonStorageScene
|
|||||||
buttonshadow = Color.new(80, 80, 80)
|
buttonshadow = Color.new(80, 80, 80)
|
||||||
pbDrawTextPositions(
|
pbDrawTextPositions(
|
||||||
overlay,
|
overlay,
|
||||||
[[_INTL("Party: {1}", (@storage.party.length rescue 0)), 270, 334, 2, buttonbase, buttonshadow, 1],
|
[[_INTL("Party: {1}", (@storage.party.length rescue 0)), 270, 334, :center, buttonbase, buttonshadow, :outline],
|
||||||
[_INTL("Exit"), 446, 334, 2, buttonbase, buttonshadow, 1]]
|
[_INTL("Exit"), 446, 334, :center, buttonbase, buttonshadow, :outline]]
|
||||||
)
|
)
|
||||||
pokemon = nil
|
pokemon = nil
|
||||||
if @screen.pbHeldPokemon
|
if @screen.pbHeldPokemon
|
||||||
@@ -1416,26 +1416,26 @@ class PokemonStorageScene
|
|||||||
nonshadow = Color.new(224, 224, 224)
|
nonshadow = Color.new(224, 224, 224)
|
||||||
pokename = pokemon.name
|
pokename = pokemon.name
|
||||||
textstrings = [
|
textstrings = [
|
||||||
[pokename, 10, 14, false, base, shadow]
|
[pokename, 10, 14, :left, base, shadow]
|
||||||
]
|
]
|
||||||
if !pokemon.egg?
|
if !pokemon.egg?
|
||||||
imagepos = []
|
imagepos = []
|
||||||
if pokemon.male?
|
if pokemon.male?
|
||||||
textstrings.push([_INTL("♂"), 148, 14, false, Color.new(24, 112, 216), Color.new(136, 168, 208)])
|
textstrings.push([_INTL("♂"), 148, 14, :left, Color.new(24, 112, 216), Color.new(136, 168, 208)])
|
||||||
elsif pokemon.female?
|
elsif pokemon.female?
|
||||||
textstrings.push([_INTL("♀"), 148, 14, false, Color.new(248, 56, 32), Color.new(224, 152, 144)])
|
textstrings.push([_INTL("♀"), 148, 14, :left, Color.new(248, 56, 32), Color.new(224, 152, 144)])
|
||||||
end
|
end
|
||||||
imagepos.push(["Graphics/UI/Storage/overlay_lv", 6, 246])
|
imagepos.push(["Graphics/UI/Storage/overlay_lv", 6, 246])
|
||||||
textstrings.push([pokemon.level.to_s, 28, 240, false, base, shadow])
|
textstrings.push([pokemon.level.to_s, 28, 240, :left, base, shadow])
|
||||||
if pokemon.ability
|
if pokemon.ability
|
||||||
textstrings.push([pokemon.ability.name, 86, 312, 2, base, shadow])
|
textstrings.push([pokemon.ability.name, 86, 312, :center, base, shadow])
|
||||||
else
|
else
|
||||||
textstrings.push([_INTL("No ability"), 86, 312, 2, nonbase, nonshadow])
|
textstrings.push([_INTL("No ability"), 86, 312, :center, nonbase, nonshadow])
|
||||||
end
|
end
|
||||||
if pokemon.item
|
if pokemon.item
|
||||||
textstrings.push([pokemon.item.name, 86, 348, 2, base, shadow])
|
textstrings.push([pokemon.item.name, 86, 348, :center, base, shadow])
|
||||||
else
|
else
|
||||||
textstrings.push([_INTL("No item"), 86, 348, 2, nonbase, nonshadow])
|
textstrings.push([_INTL("No item"), 86, 348, :center, nonbase, nonshadow])
|
||||||
end
|
end
|
||||||
imagepos.push(["Graphics/UI/shiny", 156, 198]) if pokemon.shiny?
|
imagepos.push(["Graphics/UI/shiny", 156, 198]) if pokemon.shiny?
|
||||||
typebitmap = AnimatedBitmap.new(_INTL("Graphics/UI/types"))
|
typebitmap = AnimatedBitmap.new(_INTL("Graphics/UI/types"))
|
||||||
|
|||||||
@@ -32,17 +32,17 @@ class Window_PokemonItemStorage < Window_DrawableCommand
|
|||||||
rect = drawCursor(index, rect)
|
rect = drawCursor(index, rect)
|
||||||
textpos = []
|
textpos = []
|
||||||
if index == @bag.length
|
if index == @bag.length
|
||||||
textpos.push([_INTL("CANCEL"), rect.x, rect.y, false, self.baseColor, self.shadowColor])
|
textpos.push([_INTL("CANCEL"), rect.x, rect.y, :left, self.baseColor, self.shadowColor])
|
||||||
else
|
else
|
||||||
item = @bag[index][0]
|
item = @bag[index][0]
|
||||||
itemname = @adapter.getDisplayName(item)
|
itemname = @adapter.getDisplayName(item)
|
||||||
baseColor = (index == @sortIndex) ? Color.new(248, 24, 24) : self.baseColor
|
baseColor = (index == @sortIndex) ? Color.new(248, 24, 24) : self.baseColor
|
||||||
textpos.push([itemname, rect.x, rect.y, false, self.baseColor, self.shadowColor])
|
textpos.push([itemname, rect.x, rect.y, :left, self.baseColor, self.shadowColor])
|
||||||
if !GameData::Item.get(item).is_important? # Not a Key item/HM/TM
|
if !GameData::Item.get(item).is_important? # Not a Key item/HM/TM
|
||||||
qty = _ISPRINTF("x{1: 2d}", @bag[index][1])
|
qty = _ISPRINTF("x{1: 2d}", @bag[index][1])
|
||||||
sizeQty = self.contents.text_size(qty).width
|
sizeQty = self.contents.text_size(qty).width
|
||||||
xQty = rect.x + rect.width - sizeQty - 2
|
xQty = rect.x + rect.width - sizeQty - 2
|
||||||
textpos.push([qty, xQty, rect.y, false, baseColor, self.shadowColor])
|
textpos.push([qty, xQty, rect.y, :left, baseColor, self.shadowColor])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
pbDrawTextPositions(self.contents, textpos)
|
pbDrawTextPositions(self.contents, textpos)
|
||||||
|
|||||||
@@ -200,15 +200,15 @@ class Window_PokemonMart < Window_DrawableCommand
|
|||||||
rect = drawCursor(index, rect)
|
rect = drawCursor(index, rect)
|
||||||
ypos = rect.y
|
ypos = rect.y
|
||||||
if index == count - 1
|
if index == count - 1
|
||||||
textpos.push([_INTL("CANCEL"), rect.x, ypos + 2, false, self.baseColor, self.shadowColor])
|
textpos.push([_INTL("CANCEL"), rect.x, ypos + 2, :left, self.baseColor, self.shadowColor])
|
||||||
else
|
else
|
||||||
item = @stock[index]
|
item = @stock[index]
|
||||||
itemname = @adapter.getDisplayName(item)
|
itemname = @adapter.getDisplayName(item)
|
||||||
qty = @adapter.getDisplayPrice(item)
|
qty = @adapter.getDisplayPrice(item)
|
||||||
sizeQty = self.contents.text_size(qty).width
|
sizeQty = self.contents.text_size(qty).width
|
||||||
xQty = rect.x + rect.width - sizeQty - 2 - 16
|
xQty = rect.x + rect.width - sizeQty - 2 - 16
|
||||||
textpos.push([itemname, rect.x, ypos + 2, false, self.baseColor, self.shadowColor])
|
textpos.push([itemname, rect.x, ypos + 2, :left, self.baseColor, self.shadowColor])
|
||||||
textpos.push([qty, xQty, ypos + 2, false, self.baseColor, self.shadowColor])
|
textpos.push([qty, xQty, ypos + 2, :left, self.baseColor, self.shadowColor])
|
||||||
end
|
end
|
||||||
pbDrawTextPositions(self.contents, textpos)
|
pbDrawTextPositions(self.contents, textpos)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -115,15 +115,15 @@ class Window_BattlePointShop < Window_DrawableCommand
|
|||||||
rect = drawCursor(index, rect)
|
rect = drawCursor(index, rect)
|
||||||
ypos = rect.y
|
ypos = rect.y
|
||||||
if index == count - 1
|
if index == count - 1
|
||||||
textpos.push([_INTL("CANCEL"), rect.x, ypos + 2, false, self.baseColor, self.shadowColor])
|
textpos.push([_INTL("CANCEL"), rect.x, ypos + 2, :left, self.baseColor, self.shadowColor])
|
||||||
else
|
else
|
||||||
item = @stock[index]
|
item = @stock[index]
|
||||||
itemname = @adapter.getDisplayName(item)
|
itemname = @adapter.getDisplayName(item)
|
||||||
qty = @adapter.getDisplayPrice(item)
|
qty = @adapter.getDisplayPrice(item)
|
||||||
sizeQty = self.contents.text_size(qty).width
|
sizeQty = self.contents.text_size(qty).width
|
||||||
xQty = rect.x + rect.width - sizeQty - 2 - 16
|
xQty = rect.x + rect.width - sizeQty - 2 - 16
|
||||||
textpos.push([itemname, rect.x, ypos + 2, false, self.baseColor, self.shadowColor])
|
textpos.push([itemname, rect.x, ypos + 2, :left, self.baseColor, self.shadowColor])
|
||||||
textpos.push([qty, xQty, ypos + 2, false, self.baseColor, self.shadowColor])
|
textpos.push([qty, xQty, ypos + 2, :left, self.baseColor, self.shadowColor])
|
||||||
end
|
end
|
||||||
pbDrawTextPositions(self.contents, textpos)
|
pbDrawTextPositions(self.contents, textpos)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ class MoveRelearner_Scene
|
|||||||
overlay.blt(type_x, 70, @typebitmap.bitmap, type_rect)
|
overlay.blt(type_x, 70, @typebitmap.bitmap, type_rect)
|
||||||
end
|
end
|
||||||
textpos = [
|
textpos = [
|
||||||
[_INTL("Teach which move?"), 16, 14, 0, Color.new(88, 88, 80), Color.new(168, 184, 184)]
|
[_INTL("Teach which move?"), 16, 14, :left, Color.new(88, 88, 80), Color.new(168, 184, 184)]
|
||||||
]
|
]
|
||||||
imagepos = []
|
imagepos = []
|
||||||
yPos = 88
|
yPos = 88
|
||||||
@@ -69,13 +69,13 @@ class MoveRelearner_Scene
|
|||||||
moveData = GameData::Move.get(moveobject)
|
moveData = GameData::Move.get(moveobject)
|
||||||
type_number = GameData::Type.get(moveData.display_type(@pokemon)).icon_position
|
type_number = GameData::Type.get(moveData.display_type(@pokemon)).icon_position
|
||||||
imagepos.push(["Graphics/UI/types", 12, yPos - 4, 0, type_number * 28, 64, 28])
|
imagepos.push(["Graphics/UI/types", 12, yPos - 4, 0, type_number * 28, 64, 28])
|
||||||
textpos.push([moveData.name, 80, yPos, 0, Color.new(248, 248, 248), Color.black])
|
textpos.push([moveData.name, 80, yPos, :left, Color.new(248, 248, 248), Color.black])
|
||||||
textpos.push([_INTL("PP"), 112, yPos + 32, 0, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
textpos.push([_INTL("PP"), 112, yPos + 32, :left, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
||||||
if moveData.total_pp > 0
|
if moveData.total_pp > 0
|
||||||
textpos.push([_INTL("{1}/{1}", moveData.total_pp), 230, yPos + 32, 1,
|
textpos.push([_INTL("{1}/{1}", moveData.total_pp), 230, yPos + 32, :right,
|
||||||
Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
||||||
else
|
else
|
||||||
textpos.push(["--", 230, yPos + 32, 1, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
textpos.push(["--", 230, yPos + 32, :right, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
yPos += 64
|
yPos += 64
|
||||||
@@ -87,13 +87,13 @@ class MoveRelearner_Scene
|
|||||||
power = selMoveData.display_damage(@pokemon)
|
power = selMoveData.display_damage(@pokemon)
|
||||||
category = selMoveData.display_category(@pokemon)
|
category = selMoveData.display_category(@pokemon)
|
||||||
accuracy = selMoveData.display_accuracy(@pokemon)
|
accuracy = selMoveData.display_accuracy(@pokemon)
|
||||||
textpos.push([_INTL("CATEGORY"), 272, 120, 0, Color.new(248, 248, 248), Color.black])
|
textpos.push([_INTL("CATEGORY"), 272, 120, :left, Color.new(248, 248, 248), Color.black])
|
||||||
textpos.push([_INTL("POWER"), 272, 152, 0, Color.new(248, 248, 248), Color.black])
|
textpos.push([_INTL("POWER"), 272, 152, :left, Color.new(248, 248, 248), Color.black])
|
||||||
textpos.push([power <= 1 ? power == 1 ? "???" : "---" : sprintf("%d", power),
|
textpos.push([power <= 1 ? power == 1 ? "???" : "---" : power.to_s, 468, 152, :center,
|
||||||
468, 152, 2, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
||||||
textpos.push([_INTL("ACCURACY"), 272, 184, 0, Color.new(248, 248, 248), Color.black])
|
textpos.push([_INTL("ACCURACY"), 272, 184, :left, Color.new(248, 248, 248), Color.black])
|
||||||
textpos.push([accuracy == 0 ? "---" : "#{accuracy}%",
|
textpos.push([accuracy == 0 ? "---" : "#{accuracy}%", 468, 184, :center,
|
||||||
468, 184, 2, Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
Color.new(64, 64, 64), Color.new(176, 176, 176)])
|
||||||
pbDrawTextPositions(overlay, textpos)
|
pbDrawTextPositions(overlay, textpos)
|
||||||
imagepos.push(["Graphics/UI/category", 436, 116, 0, category * 28, 64, 28])
|
imagepos.push(["Graphics/UI/category", 436, 116, 0, category * 28, 64, 28])
|
||||||
if @sprites["commands"].index < @moves.length - 1
|
if @sprites["commands"].index < @moves.length - 1
|
||||||
|
|||||||
@@ -648,9 +648,9 @@ class Window_PurifyChamberSets < Window_DrawableCommand
|
|||||||
textpos = []
|
textpos = []
|
||||||
rect = drawCursor(index, rect)
|
rect = drawCursor(index, rect)
|
||||||
if index == @switching
|
if index == @switching
|
||||||
textpos.push([(index + 1).to_s, rect.x, rect.y, false, Color.new(248, 0, 0), self.shadowColor])
|
textpos.push([(index + 1).to_s, rect.x, rect.y, :left, Color.new(248, 0, 0), self.shadowColor])
|
||||||
else
|
else
|
||||||
textpos.push([(index + 1).to_s, rect.x, rect.y, false, self.baseColor, self.shadowColor])
|
textpos.push([(index + 1).to_s, rect.x, rect.y, :left, self.baseColor, self.shadowColor])
|
||||||
end
|
end
|
||||||
if @chamber.setCount(index) > 0
|
if @chamber.setCount(index) > 0
|
||||||
pbDrawGauge(self.contents, Rect.new(rect.x + 16, rect.y + 6, 48, 8),
|
pbDrawGauge(self.contents, Rect.new(rect.x + 16, rect.y + 6, 48, 8),
|
||||||
@@ -942,8 +942,8 @@ class PurifyChamberSetView < Sprite
|
|||||||
type_string += GameData::Type.get(type).name
|
type_string += GameData::Type.get(type).name
|
||||||
end
|
end
|
||||||
textpos.push([_INTL("{1} Lv.{2} {3}", pkmn.name, pkmn.level, type_string),
|
textpos.push([_INTL("{1} Lv.{2} {3}", pkmn.name, pkmn.level, type_string),
|
||||||
2, 6, 0, Color.new(248, 248, 248), Color.new(128, 128, 128)])
|
2, 6, :left, Color.new(248, 248, 248), Color.new(128, 128, 128)])
|
||||||
textpos.push([_INTL("FLOW"), 2 + (@info.bitmap.width / 2), 30, 0,
|
textpos.push([_INTL("FLOW"), 2 + (@info.bitmap.width / 2), 30, :left,
|
||||||
Color.new(248, 248, 248), Color.new(128, 128, 128)])
|
Color.new(248, 248, 248), Color.new(128, 128, 128)])
|
||||||
# draw heart gauge
|
# draw heart gauge
|
||||||
pbDrawGauge(@info.bitmap, Rect.new(@info.bitmap.width * 3 / 4, 8, @info.bitmap.width * 1 / 4, 8),
|
pbDrawGauge(@info.bitmap, Rect.new(@info.bitmap.width * 3 / 4, 8, @info.bitmap.width * 1 / 4, 8),
|
||||||
@@ -953,8 +953,7 @@ class PurifyChamberSetView < Sprite
|
|||||||
Color.new(0, 0, 248), @chamber.chamberFlow(@set), 7)
|
Color.new(0, 0, 248), @chamber.chamberFlow(@set), 7)
|
||||||
end
|
end
|
||||||
if @chamber.setCount(@set) > 0
|
if @chamber.setCount(@set) > 0
|
||||||
textpos.push([_INTL("TEMPO"), 2, 30, 0,
|
textpos.push([_INTL("TEMPO"), 2, 30, :left, Color.new(248, 248, 248), Color.new(128, 128, 128)])
|
||||||
Color.new(248, 248, 248), Color.new(128, 128, 128)])
|
|
||||||
# draw tempo gauge
|
# draw tempo gauge
|
||||||
pbDrawGauge(@info.bitmap, Rect.new(@info.bitmap.width * 1 / 4, 32, @info.bitmap.width * 1 / 4, 8),
|
pbDrawGauge(@info.bitmap, Rect.new(@info.bitmap.width * 1 / 4, 32, @info.bitmap.width * 1 / 4, 8),
|
||||||
Color.new(0, 0, 248), @chamber[@set].tempo, PurifyChamber.maximumTempo)
|
Color.new(0, 0, 248), @chamber[@set].tempo, PurifyChamber.maximumTempo)
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ def pbManageMysteryGifts
|
|||||||
command = 0
|
command = 0
|
||||||
loop do
|
loop do
|
||||||
commands = pbRefreshMGCommands(master, online)
|
commands = pbRefreshMGCommands(master, online)
|
||||||
command = pbMessage(_INTL("\\ts[]Manage Mystery Gifts (X=online)."), commands, -1, nil, command)
|
command = pbMessage("\\ts[]" + _INTL("Manage Mystery Gifts (X=online)."), commands, -1, nil, command)
|
||||||
# Gift chosen
|
# Gift chosen
|
||||||
if command == -1 || command == commands.length - 1 # Cancel
|
if command == -1 || command == commands.length - 1 # Cancel
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -149,9 +149,9 @@ class PokemonEntryScene
|
|||||||
pbSetSystemFont(@sprites["gender"].bitmap)
|
pbSetSystemFont(@sprites["gender"].bitmap)
|
||||||
textpos = []
|
textpos = []
|
||||||
if pokemon.male?
|
if pokemon.male?
|
||||||
textpos.push([_INTL("♂"), 0, 6, false, Color.new(0, 128, 248), Color.new(168, 184, 184)])
|
textpos.push([_INTL("♂"), 0, 6, :left, Color.new(0, 128, 248), Color.new(168, 184, 184)])
|
||||||
elsif pokemon.female?
|
elsif pokemon.female?
|
||||||
textpos.push([_INTL("♀"), 0, 6, false, Color.new(248, 24, 24), Color.new(168, 184, 184)])
|
textpos.push([_INTL("♀"), 0, 6, :left, Color.new(248, 24, 24), Color.new(168, 184, 184)])
|
||||||
end
|
end
|
||||||
pbDrawTextPositions(@sprites["gender"].bitmap, textpos)
|
pbDrawTextPositions(@sprites["gender"].bitmap, textpos)
|
||||||
end
|
end
|
||||||
@@ -376,14 +376,14 @@ class PokemonEntryScene2
|
|||||||
# Create bitmaps
|
# Create bitmaps
|
||||||
@bitmaps = []
|
@bitmaps = []
|
||||||
@@Characters.length.times do |i|
|
@@Characters.length.times do |i|
|
||||||
@bitmaps[i] = AnimatedBitmap.new(sprintf("Graphics/UI/Naming/overlay_tab_#{i + 1}"))
|
@bitmaps[i] = AnimatedBitmap.new(sprintf("Graphics/UI/Naming/overlay_tab_%d", i + 1))
|
||||||
b = @bitmaps[i].bitmap.clone
|
b = @bitmaps[i].bitmap.clone
|
||||||
pbSetSystemFont(b)
|
pbSetSystemFont(b)
|
||||||
textPos = []
|
textPos = []
|
||||||
COLUMNS.times do |y|
|
COLUMNS.times do |y|
|
||||||
ROWS.times do |x|
|
ROWS.times do |x|
|
||||||
pos = (y * ROWS) + x
|
pos = (y * ROWS) + x
|
||||||
textPos.push([@@Characters[i][0][pos], 44 + (x * 32), 24 + (y * 38), 2,
|
textPos.push([@@Characters[i][0][pos], 44 + (x * 32), 24 + (y * 38), :center,
|
||||||
Color.new(16, 24, 32), Color.new(160, 160, 160)])
|
Color.new(16, 24, 32), Color.new(160, 160, 160)])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -430,9 +430,9 @@ class PokemonEntryScene2
|
|||||||
pbSetSystemFont(@sprites["gender"].bitmap)
|
pbSetSystemFont(@sprites["gender"].bitmap)
|
||||||
textpos = []
|
textpos = []
|
||||||
if pokemon.male?
|
if pokemon.male?
|
||||||
textpos.push([_INTL("♂"), 0, 6, false, Color.new(0, 128, 248), Color.new(168, 184, 184)])
|
textpos.push([_INTL("♂"), 0, 6, :left, Color.new(0, 128, 248), Color.new(168, 184, 184)])
|
||||||
elsif pokemon.female?
|
elsif pokemon.female?
|
||||||
textpos.push([_INTL("♀"), 0, 6, false, Color.new(248, 24, 24), Color.new(168, 184, 184)])
|
textpos.push([_INTL("♀"), 0, 6, :left, Color.new(248, 24, 24), Color.new(168, 184, 184)])
|
||||||
end
|
end
|
||||||
pbDrawTextPositions(@sprites["gender"].bitmap, textpos)
|
pbDrawTextPositions(@sprites["gender"].bitmap, textpos)
|
||||||
end
|
end
|
||||||
@@ -507,12 +507,12 @@ class PokemonEntryScene2
|
|||||||
bgoverlay.clear
|
bgoverlay.clear
|
||||||
pbSetSystemFont(bgoverlay)
|
pbSetSystemFont(bgoverlay)
|
||||||
textPositions = [
|
textPositions = [
|
||||||
[@helptext, 160, 18, false, Color.new(16, 24, 32), Color.new(168, 184, 184)]
|
[@helptext, 160, 18, :left, Color.new(16, 24, 32), Color.new(168, 184, 184)]
|
||||||
]
|
]
|
||||||
chars = @helper.textChars
|
chars = @helper.textChars
|
||||||
x = 172
|
x = 172
|
||||||
chars.each do |ch|
|
chars.each do |ch|
|
||||||
textPositions.push([ch, x, 54, 2, Color.new(16, 24, 32), Color.new(168, 184, 184)])
|
textPositions.push([ch, x, 54, :center, Color.new(16, 24, 32), Color.new(168, 184, 184)])
|
||||||
x += 24
|
x += 24
|
||||||
end
|
end
|
||||||
pbDrawTextPositions(bgoverlay, textPositions)
|
pbDrawTextPositions(bgoverlay, textPositions)
|
||||||
|
|||||||
@@ -7,6 +7,13 @@ class DuelWindow < Window_AdvancedTextPokemon
|
|||||||
attr_reader :name
|
attr_reader :name
|
||||||
attr_reader :is_enemy
|
attr_reader :is_enemy
|
||||||
|
|
||||||
|
PLAYER_TEXT_BASE = Color.new(48, 80, 200) # Blue
|
||||||
|
PLAYER_TEXT_SHADOW = Color.new(160, 192, 240)
|
||||||
|
ENEMY_TEXT_BASE = Color.new(224, 8, 8) # Red
|
||||||
|
ENEMY_TEXT_SHADOW = Color.new(248, 184, 112)
|
||||||
|
HP_TEXT_BASE = Color.new(32, 152, 8) # Green
|
||||||
|
HP_TEXT_SHADOW = Color.new(144, 240, 144)
|
||||||
|
|
||||||
def initialize(name, is_enemy)
|
def initialize(name, is_enemy)
|
||||||
@hp = 10
|
@hp = 10
|
||||||
@name = name
|
@name = name
|
||||||
@@ -33,9 +40,13 @@ class DuelWindow < Window_AdvancedTextPokemon
|
|||||||
end
|
end
|
||||||
|
|
||||||
def duel_refresh
|
def duel_refresh
|
||||||
name_color = @is_enemy ? "<ar><c3=E00808,F8B870>" : "<c3=3050C8,A0C0F0>"
|
if @is_enemy
|
||||||
hp_color = "<c3=209808,90F090>"
|
name_tag = shadowc3tag(ENEMY_TEXT_BASE, ENEMY_TEXT_SHADOW)
|
||||||
self.text = _INTL("{1}{2}\r\n{3}HP: {4}", name_color, fmtescape(@name), hp_color, @hp)
|
else
|
||||||
|
name_tag = shadowc3tag(PLAYER_TEXT_BASE, PLAYER_TEXT_SHADOW)
|
||||||
|
end
|
||||||
|
hp_tag = shadowc3tag(HP_TEXT_BASE, HP_TEXT_SHADOW)
|
||||||
|
self.text = name_tag + fmtescape(@name) + "\r\n" + hp_tag + _INTL("HP: {1}", @hp)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -200,8 +200,8 @@ class TriadScene
|
|||||||
pbSetSystemFont(@sprites["overlay"].bitmap)
|
pbSetSystemFont(@sprites["overlay"].bitmap)
|
||||||
pbDrawTextPositions(
|
pbDrawTextPositions(
|
||||||
@sprites["overlay"].bitmap,
|
@sprites["overlay"].bitmap,
|
||||||
[[@battle.opponentName, 52, 10, 2, Color.new(248, 248, 248), Color.new(96, 96, 96)],
|
[[@battle.opponentName, 52, 10, :center, Color.new(248, 248, 248), Color.new(96, 96, 96)],
|
||||||
[@battle.playerName, Graphics.width - 52, 10, 2, Color.new(248, 248, 248), Color.new(96, 96, 96)]]
|
[@battle.playerName, Graphics.width - 52, 10, :center, Color.new(248, 248, 248), Color.new(96, 96, 96)]]
|
||||||
)
|
)
|
||||||
@sprites["score"] = Sprite.new(@viewport)
|
@sprites["score"] = Sprite.new(@viewport)
|
||||||
@sprites["score"].bitmap = BitmapWrapper.new(Graphics.width, Graphics.height)
|
@sprites["score"].bitmap = BitmapWrapper.new(Graphics.width, Graphics.height)
|
||||||
@@ -578,7 +578,7 @@ class TriadScene
|
|||||||
end
|
end
|
||||||
pbDrawTextPositions(
|
pbDrawTextPositions(
|
||||||
bitmap,
|
bitmap,
|
||||||
[[_INTL("{1}-{2}", oppscore, playerscore), Graphics.width / 2, 10, 2, Color.new(248, 248, 248), Color.new(96, 96, 96)]]
|
[[_INTL("{1}-{2}", oppscore, playerscore), Graphics.width / 2, 10, :center, Color.new(248, 248, 248), Color.new(96, 96, 96)]]
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -183,10 +183,10 @@ class SlotMachineScene
|
|||||||
Input.update
|
Input.update
|
||||||
update
|
update
|
||||||
@sprites["window2"].bitmap&.clear
|
@sprites["window2"].bitmap&.clear
|
||||||
@sprites["window1"].setBitmap(sprintf("Graphics/UI/Slot Machine/win"))
|
@sprites["window1"].setBitmap("Graphics/UI/Slot Machine/win")
|
||||||
@sprites["window1"].src_rect.set(152 * ((frame / timePerFrame) % 4), 0, 152, 208)
|
@sprites["window1"].src_rect.set(152 * ((frame / timePerFrame) % 4), 0, 152, 208)
|
||||||
if bonus > 0
|
if bonus > 0
|
||||||
@sprites["window2"].setBitmap(sprintf("Graphics/UI/Slot Machine/bonus"))
|
@sprites["window2"].setBitmap("Graphics/UI/Slot Machine/bonus")
|
||||||
@sprites["window2"].src_rect.set(152 * (bonus - 1), 0, 152, 208)
|
@sprites["window2"].src_rect.set(152 * (bonus - 1), 0, 152, 208)
|
||||||
end
|
end
|
||||||
@sprites["light1"].visible = true
|
@sprites["light1"].visible = true
|
||||||
@@ -231,7 +231,7 @@ class SlotMachineScene
|
|||||||
Input.update
|
Input.update
|
||||||
update
|
update
|
||||||
@sprites["window2"].bitmap&.clear
|
@sprites["window2"].bitmap&.clear
|
||||||
@sprites["window1"].setBitmap(sprintf("Graphics/UI/Slot Machine/lose"))
|
@sprites["window1"].setBitmap("Graphics/UI/Slot Machine/lose")
|
||||||
@sprites["window1"].src_rect.set(152 * ((frame / timePerFrame) % 2), 0, 152, 208)
|
@sprites["window1"].src_rect.set(152 * ((frame / timePerFrame) % 2), 0, 152, 208)
|
||||||
frame += 1
|
frame += 1
|
||||||
end
|
end
|
||||||
@@ -249,7 +249,7 @@ class SlotMachineScene
|
|||||||
@sprites["reel3"] = SlotMachineReel.new(224, 112, difficulty)
|
@sprites["reel3"] = SlotMachineReel.new(224, 112, difficulty)
|
||||||
(1..3).each do |i|
|
(1..3).each do |i|
|
||||||
@sprites["button#{i}"] = IconSprite.new(68 + (80 * (i - 1)), 260, @viewport)
|
@sprites["button#{i}"] = IconSprite.new(68 + (80 * (i - 1)), 260, @viewport)
|
||||||
@sprites["button#{i}"].setBitmap(sprintf("Graphics/UI/Slot Machine/button"))
|
@sprites["button#{i}"].setBitmap("Graphics/UI/Slot Machine/button")
|
||||||
@sprites["button#{i}"].visible = false
|
@sprites["button#{i}"].visible = false
|
||||||
end
|
end
|
||||||
(1..5).each do |i|
|
(1..5).each do |i|
|
||||||
@@ -260,14 +260,14 @@ class SlotMachineScene
|
|||||||
@sprites["row#{i}"].visible = false
|
@sprites["row#{i}"].visible = false
|
||||||
end
|
end
|
||||||
@sprites["light1"] = IconSprite.new(16, 32, @viewport)
|
@sprites["light1"] = IconSprite.new(16, 32, @viewport)
|
||||||
@sprites["light1"].setBitmap(sprintf("Graphics/UI/Slot Machine/lights"))
|
@sprites["light1"].setBitmap("Graphics/UI/Slot Machine/lights")
|
||||||
@sprites["light1"].visible = false
|
@sprites["light1"].visible = false
|
||||||
@sprites["light2"] = IconSprite.new(240, 32, @viewport)
|
@sprites["light2"] = IconSprite.new(240, 32, @viewport)
|
||||||
@sprites["light2"].setBitmap(sprintf("Graphics/UI/Slot Machine/lights"))
|
@sprites["light2"].setBitmap("Graphics/UI/Slot Machine/lights")
|
||||||
@sprites["light2"].mirror = true
|
@sprites["light2"].mirror = true
|
||||||
@sprites["light2"].visible = false
|
@sprites["light2"].visible = false
|
||||||
@sprites["window1"] = IconSprite.new(358, 96, @viewport)
|
@sprites["window1"] = IconSprite.new(358, 96, @viewport)
|
||||||
@sprites["window1"].setBitmap(sprintf("Graphics/UI/Slot Machine/insert"))
|
@sprites["window1"].setBitmap("Graphics/UI/Slot Machine/insert")
|
||||||
@sprites["window1"].src_rect.set(0, 0, 152, 208)
|
@sprites["window1"].src_rect.set(0, 0, 152, 208)
|
||||||
@sprites["window2"] = IconSprite.new(358, 96, @viewport)
|
@sprites["window2"] = IconSprite.new(358, 96, @viewport)
|
||||||
@sprites["credit"] = SlotMachineScore.new(360, 66, $player.coins)
|
@sprites["credit"] = SlotMachineScore.new(360, 66, $player.coins)
|
||||||
@@ -294,7 +294,7 @@ class SlotMachineScene
|
|||||||
pbMessage(_INTL("You've run out of Coins.\nGame over!"))
|
pbMessage(_INTL("You've run out of Coins.\nGame over!"))
|
||||||
break
|
break
|
||||||
elsif @gameRunning # Reels are spinning
|
elsif @gameRunning # Reels are spinning
|
||||||
@sprites["window1"].setBitmap(sprintf("Graphics/UI/Slot Machine/stop"))
|
@sprites["window1"].setBitmap("Graphics/UI/Slot Machine/stop")
|
||||||
@sprites["window1"].src_rect.set(152 * ((frame / spinFrameTime) % 4), 0, 152, 208)
|
@sprites["window1"].src_rect.set(152 * ((frame / spinFrameTime) % 4), 0, 152, 208)
|
||||||
if Input.trigger?(Input::USE)
|
if Input.trigger?(Input::USE)
|
||||||
pbSEPlay("Slots stop")
|
pbSEPlay("Slots stop")
|
||||||
@@ -324,10 +324,10 @@ class SlotMachineScene
|
|||||||
end
|
end
|
||||||
@gameEnd = false
|
@gameEnd = false
|
||||||
else # Awaiting coins for the next spin
|
else # Awaiting coins for the next spin
|
||||||
@sprites["window1"].setBitmap(sprintf("Graphics/UI/Slot Machine/insert"))
|
@sprites["window1"].setBitmap("Graphics/UI/Slot Machine/insert")
|
||||||
@sprites["window1"].src_rect.set(152 * ((frame / insertFrameTime) % 2), 0, 152, 208)
|
@sprites["window1"].src_rect.set(152 * ((frame / insertFrameTime) % 2), 0, 152, 208)
|
||||||
if @wager > 0
|
if @wager > 0
|
||||||
@sprites["window2"].setBitmap(sprintf("Graphics/UI/Slot Machine/press"))
|
@sprites["window2"].setBitmap("Graphics/UI/Slot Machine/press")
|
||||||
@sprites["window2"].src_rect.set(152 * ((frame / insertFrameTime) % 2), 0, 152, 208)
|
@sprites["window2"].src_rect.set(152 * ((frame / insertFrameTime) % 2), 0, 152, 208)
|
||||||
end
|
end
|
||||||
if Input.trigger?(Input::DOWN) && @wager < 3 && @sprites["credit"].score > 0
|
if Input.trigger?(Input::DOWN) && @wager < 3 && @sprites["credit"].score > 0
|
||||||
|
|||||||
@@ -250,7 +250,7 @@ class MiningGameScene
|
|||||||
@sprites["crack"] = MiningGameCounter.new(0, 4)
|
@sprites["crack"] = MiningGameCounter.new(0, 4)
|
||||||
@sprites["cursor"] = MiningGameCursor.new(58, 0) # central position, pick
|
@sprites["cursor"] = MiningGameCursor.new(58, 0) # central position, pick
|
||||||
@sprites["tool"] = IconSprite.new(434, 254, @viewport)
|
@sprites["tool"] = IconSprite.new(434, 254, @viewport)
|
||||||
@sprites["tool"].setBitmap(sprintf("Graphics/UI/Mining/toolicons"))
|
@sprites["tool"].setBitmap("Graphics/UI/Mining/toolicons")
|
||||||
@sprites["tool"].src_rect.set(0, 0, 68, 100)
|
@sprites["tool"].src_rect.set(0, 0, 68, 100)
|
||||||
update
|
update
|
||||||
pbFadeInAndShow(@sprites)
|
pbFadeInAndShow(@sprites)
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
#
|
#
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
class BattleSwapScene
|
class BattleSwapScene
|
||||||
|
RED_TEXT_BASE = Color.new(232, 32, 16)
|
||||||
|
RED_TEXT_SHADOW = Color.new(248, 168, 184)
|
||||||
|
|
||||||
def pbStartRentScene(rentals)
|
def pbStartRentScene(rentals)
|
||||||
@rentals = rentals
|
@rentals = rentals
|
||||||
@mode = 0 # rental (pick 3 out of 6 initial Pokémon)
|
@mode = 0 # rental (pick 3 out of 6 initial Pokémon)
|
||||||
@@ -78,12 +81,13 @@ class BattleSwapScene
|
|||||||
end
|
end
|
||||||
|
|
||||||
def pbGetCommands(list, choices)
|
def pbGetCommands(list, choices)
|
||||||
|
red_text_tag = shadowc3tag(RED_TEXT_BASE, RED_TEXT_SHADOW)
|
||||||
commands = []
|
commands = []
|
||||||
list.length.times do |i|
|
list.length.times do |i|
|
||||||
pkmn = list[i]
|
pkmn = list[i]
|
||||||
category = pkmn.species_data.category
|
category = pkmn.species_data.category
|
||||||
cmd = _INTL("{1} - {2} Pokémon", pkmn.speciesName, category)
|
cmd = _INTL("{1} - {2} Pokémon", pkmn.speciesName, category)
|
||||||
cmd = "<c3=E82010,F8A8B8>" + cmd if choices.include?(i) # Red text
|
cmd = red_text_tag + cmd if choices.include?(i) # Red text
|
||||||
commands.push(cmd)
|
commands.push(cmd)
|
||||||
end
|
end
|
||||||
return commands
|
return commands
|
||||||
|
|||||||
@@ -967,9 +967,9 @@ def pbPokemonEditor
|
|||||||
if param_type.nil?
|
if param_type.nil?
|
||||||
evo[2] = nil
|
evo[2] = nil
|
||||||
elsif param_type == Integer
|
elsif param_type == Integer
|
||||||
evo[2] = Compiler.csvPosInt!(evo[2])
|
evo[2] = Compiler.cast_csv_value(evo[2], "u")
|
||||||
elsif param_type != String
|
elsif param_type != String
|
||||||
evo[2] = Compiler.csvEnumField!(evo[2], param_type, "Evolutions", species_hash[:id])
|
evo[2] = Compiler.cast_csv_value(evo[2], "e", param_type)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# Add species' data to records
|
# Add species' data to records
|
||||||
@@ -1049,7 +1049,7 @@ def pbRegionalDexEditor(dex)
|
|||||||
end
|
end
|
||||||
when 0
|
when 0
|
||||||
if cmd[1] >= 0 # Edit entry
|
if cmd[1] >= 0 # Edit entry
|
||||||
case pbMessage(_INTL("\\ts[]Do what with this entry?"),
|
case pbMessage("\\ts[]" + _INTL("Do what with this entry?"),
|
||||||
[_INTL("Change species"), _INTL("Clear"),
|
[_INTL("Change species"), _INTL("Clear"),
|
||||||
_INTL("Insert entry"), _INTL("Delete entry"),
|
_INTL("Insert entry"), _INTL("Delete entry"),
|
||||||
_INTL("Cancel")], 5)
|
_INTL("Cancel")], 5)
|
||||||
@@ -1166,7 +1166,7 @@ def pbRegionalDexEditorMain
|
|||||||
refresh_list = true
|
refresh_list = true
|
||||||
end
|
end
|
||||||
elsif cmd[1] > 0 # Edit a Dex
|
elsif cmd[1] > 0 # Edit a Dex
|
||||||
case pbMessage(_INTL("\\ts[]Do what with this Dex?"),
|
case pbMessage("\\ts[]" + _INTL("Do what with this Dex?"),
|
||||||
[_INTL("Edit"), _INTL("Copy"), _INTL("Delete"), _INTL("Cancel")], 4)
|
[_INTL("Edit"), _INTL("Copy"), _INTL("Delete"), _INTL("Cancel")], 4)
|
||||||
when 0 # Edit
|
when 0 # Edit
|
||||||
dex_lists[cmd[1] - 1] = pbRegionalDexEditor(dex_lists[cmd[1] - 1])
|
dex_lists[cmd[1] - 1] = pbRegionalDexEditor(dex_lists[cmd[1] - 1])
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ class PokemonTilesetScene
|
|||||||
TILES_PER_ROW.times do |xx|
|
TILES_PER_ROW.times do |xx|
|
||||||
tile_id = tile_ID_from_coordinates(xx, @top_y + yy)
|
tile_id = tile_ID_from_coordinates(xx, @top_y + yy)
|
||||||
terr = @tileset.terrain_tags[tile_id]
|
terr = @tileset.terrain_tags[tile_id]
|
||||||
textpos.push([terr.to_s, (xx * TILE_SIZE) + (TILE_SIZE / 2), (yy * TILE_SIZE) + 6, 2, TEXT_COLOR, TEXT_SHADOW_COLOR])
|
textpos.push([terr.to_s, (xx * TILE_SIZE) + (TILE_SIZE / 2), (yy * TILE_SIZE) + 6, :center, TEXT_COLOR, TEXT_SHADOW_COLOR])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
pbDrawTextPositions(@sprites["overlay"].bitmap, textpos)
|
pbDrawTextPositions(@sprites["overlay"].bitmap, textpos)
|
||||||
@@ -123,8 +123,8 @@ class PokemonTilesetScene
|
|||||||
terrain_tag_name = terrain_tag.to_s
|
terrain_tag_name = terrain_tag.to_s
|
||||||
end
|
end
|
||||||
textpos = [
|
textpos = [
|
||||||
[_INTL("Terrain Tag:"), tile_x + TILE_SIZE, tile_y + (TILE_SIZE * 2) + 22, 2, Color.new(248, 248, 248), Color.new(40, 40, 40)],
|
[_INTL("Terrain Tag:"), tile_x + TILE_SIZE, tile_y + (TILE_SIZE * 2) + 22, :center, Color.new(248, 248, 248), Color.new(40, 40, 40)],
|
||||||
[terrain_tag_name, tile_x + TILE_SIZE, tile_y + (TILE_SIZE * 2) + 54, 2, Color.new(248, 248, 248), Color.new(40, 40, 40)]
|
[terrain_tag_name, tile_x + TILE_SIZE, tile_y + (TILE_SIZE * 2) + 54, :center, Color.new(248, 248, 248), Color.new(40, 40, 40)]
|
||||||
]
|
]
|
||||||
# Draw all text
|
# Draw all text
|
||||||
pbDrawTextPositions(overlay, textpos)
|
pbDrawTextPositions(overlay, textpos)
|
||||||
@@ -212,7 +212,7 @@ class PokemonTilesetScene
|
|||||||
cmds.push("#{tag.id_number}: #{tag.real_name}")
|
cmds.push("#{tag.id_number}: #{tag.real_name}")
|
||||||
ids.push(tag.id_number)
|
ids.push(tag.id_number)
|
||||||
end
|
end
|
||||||
val = pbMessage(_INTL("\\l[1]\\ts[]Set the terrain tag."), cmds, -1, nil, old_idx)
|
val = pbMessage("\\l[1]\\ts[]" + _INTL("Set the terrain tag."), cmds, -1, nil, old_idx)
|
||||||
if val >= 0 && val != old_tag
|
if val >= 0 && val != old_tag
|
||||||
set_terrain_tag_for_tile_ID(selected, ids[val])
|
set_terrain_tag_for_tile_ID(selected, ids[val])
|
||||||
draw_overlay
|
draw_overlay
|
||||||
|
|||||||
@@ -350,12 +350,12 @@ class MapScreenScene
|
|||||||
end
|
end
|
||||||
|
|
||||||
def helpWindow
|
def helpWindow
|
||||||
helptext = _INTL("A: Add map to canvas\r\n")
|
helptext = _INTL("A: Add map to canvas") + "\r\n"
|
||||||
helptext += _INTL("DEL: Delete map from canvas\r\n")
|
helptext += _INTL("DEL: Delete map from canvas") + "\r\n"
|
||||||
helptext += _INTL("S: Go to another map\r\n")
|
helptext += _INTL("S: Go to another map") + "\r\n"
|
||||||
helptext += _INTL("Click to select a map\r\n")
|
helptext += _INTL("Click to select a map") + "\r\n"
|
||||||
helptext += _INTL("Double-click: Edit map's metadata\r\n")
|
helptext += _INTL("Double-click: Edit map's metadata") + "\r\n"
|
||||||
helptext += _INTL("Drag map to move it\r\n")
|
helptext += _INTL("Drag map to move it") + "\r\n"
|
||||||
helptext += _INTL("Arrow keys/drag canvas: Move around canvas")
|
helptext += _INTL("Arrow keys/drag canvas: Move around canvas")
|
||||||
title = Window_UnformattedTextPokemon.newWithSize(
|
title = Window_UnformattedTextPokemon.newWithSize(
|
||||||
helptext, 0, 0, Graphics.width * 8 / 10, Graphics.height, @viewport
|
helptext, 0, 0, Graphics.width * 8 / 10, Graphics.height, @viewport
|
||||||
|
|||||||
@@ -380,9 +380,7 @@ module BattleAnimationEditor
|
|||||||
cmdEditBG = -1
|
cmdEditBG = -1
|
||||||
cmdNewFO = -1
|
cmdNewFO = -1
|
||||||
cmdEditFO = -1
|
cmdEditFO = -1
|
||||||
canvas.animation.timing.each do |i|
|
canvas.animation.timing.each { |i| commands.push(i.to_s) }
|
||||||
commands.push(sprintf("%s", i))
|
|
||||||
end
|
|
||||||
commands[cmdNewSound = commands.length] = _INTL("Add: Play Sound...")
|
commands[cmdNewSound = commands.length] = _INTL("Add: Play Sound...")
|
||||||
commands[cmdNewBG = commands.length] = _INTL("Add: Set Background Graphic...")
|
commands[cmdNewBG = commands.length] = _INTL("Add: Set Background Graphic...")
|
||||||
commands[cmdEditBG = commands.length] = _INTL("Add: Edit Background Color/Location...")
|
commands[cmdEditBG = commands.length] = _INTL("Add: Edit Background Color/Location...")
|
||||||
@@ -413,7 +411,7 @@ module BattleAnimationEditor
|
|||||||
cmdwin.index != cmdEditFO
|
cmdwin.index != cmdEditFO
|
||||||
if framewindow.changed?(1) # Set Frame
|
if framewindow.changed?(1) # Set Frame
|
||||||
canvas.animation.timing[cmdwin.index].frame = framewindow.value(0) - 1
|
canvas.animation.timing[cmdwin.index].frame = framewindow.value(0) - 1
|
||||||
cmdwin.commands[cmdwin.index] = sprintf("%s", canvas.animation.timing[cmdwin.index])
|
cmdwin.commands[cmdwin.index] = canvas.animation.timing[cmdwin.index].to_s
|
||||||
cmdwin.refresh
|
cmdwin.refresh
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
@@ -476,7 +474,7 @@ module BattleAnimationEditor
|
|||||||
when 2, 4
|
when 2, 4
|
||||||
pbEditBG(canvas, canvas.animation.timing[cmdwin.index])
|
pbEditBG(canvas, canvas.animation.timing[cmdwin.index])
|
||||||
end
|
end
|
||||||
cmdwin.commands[cmdwin.index] = sprintf("%s", canvas.animation.timing[cmdwin.index])
|
cmdwin.commands[cmdwin.index] = canvas.animation.timing[cmdwin.index].to_s
|
||||||
cmdwin.refresh
|
cmdwin.refresh
|
||||||
end
|
end
|
||||||
if redrawcmds
|
if redrawcmds
|
||||||
@@ -486,7 +484,7 @@ module BattleAnimationEditor
|
|||||||
cmdwin.commands[cmdNewFO] = nil if cmdNewFO >= 0
|
cmdwin.commands[cmdNewFO] = nil if cmdNewFO >= 0
|
||||||
cmdwin.commands[cmdEditFO] = nil if cmdEditFO >= 0
|
cmdwin.commands[cmdEditFO] = nil if cmdEditFO >= 0
|
||||||
cmdwin.commands.compact!
|
cmdwin.commands.compact!
|
||||||
cmdwin.commands.push(sprintf("%s", canvas.animation.timing[canvas.animation.timing.length - 1]))
|
cmdwin.commands.push(canvas.animation.timing[canvas.animation.timing.length - 1].to_s)
|
||||||
cmdwin.commands[cmdNewSound = cmdwin.commands.length] = _INTL("Add: Play Sound...")
|
cmdwin.commands[cmdNewSound = cmdwin.commands.length] = _INTL("Add: Play Sound...")
|
||||||
cmdwin.commands[cmdNewBG = cmdwin.commands.length] = _INTL("Add: Set Background Graphic...")
|
cmdwin.commands[cmdNewBG = cmdwin.commands.length] = _INTL("Add: Set Background Graphic...")
|
||||||
cmdwin.commands[cmdEditBG = cmdwin.commands.length] = _INTL("Add: Edit Background Color/Location...")
|
cmdwin.commands[cmdEditBG = cmdwin.commands.length] = _INTL("Add: Edit Background Color/Location...")
|
||||||
|
|||||||
@@ -287,7 +287,7 @@ class StringListProperty
|
|||||||
do_refresh = true
|
do_refresh = true
|
||||||
end
|
end
|
||||||
else # Edit value
|
else # Edit value
|
||||||
case pbMessage(_INTL("\\ts[]Do what with this value?"),
|
case pbMessage("\\ts[]" + _INTL("Do what with this value?"),
|
||||||
[_INTL("Edit"), _INTL("Delete"), _INTL("Cancel")], 3)
|
[_INTL("Edit"), _INTL("Delete"), _INTL("Cancel")], 3)
|
||||||
when 0 # Edit
|
when 0 # Edit
|
||||||
new_value = pbMessageFreeText(_INTL("Enter the new value."),
|
new_value = pbMessageFreeText(_INTL("Enter the new value."),
|
||||||
@@ -1096,7 +1096,7 @@ class GameDataPoolProperty
|
|||||||
need_refresh = true
|
need_refresh = true
|
||||||
end
|
end
|
||||||
else # Edit existing value
|
else # Edit existing value
|
||||||
case pbMessage(_INTL("\\ts[]Do what with this value?"),
|
case pbMessage("\\ts[]" + _INTL("Do what with this value?"),
|
||||||
[_INTL("Change value"), _INTL("Delete"), _INTL("Cancel")], 3)
|
[_INTL("Change value"), _INTL("Delete"), _INTL("Cancel")], 3)
|
||||||
when 0 # Change value
|
when 0 # Change value
|
||||||
new_value = pbChooseFromGameDataList(@game_data, entry[0])
|
new_value = pbChooseFromGameDataList(@game_data, entry[0])
|
||||||
@@ -1250,7 +1250,7 @@ module LevelUpMovesProperty
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
else # Edit existing move
|
else # Edit existing move
|
||||||
case pbMessage(_INTL("\\ts[]Do what with this move?"),
|
case pbMessage("\\ts[]" + _INTL("Do what with this move?"),
|
||||||
[_INTL("Change level"), _INTL("Change move"), _INTL("Delete"), _INTL("Cancel")], 4)
|
[_INTL("Change level"), _INTL("Change move"), _INTL("Delete"), _INTL("Cancel")], 4)
|
||||||
when 0 # Change level
|
when 0 # Change level
|
||||||
params = ChooseNumberParams.new
|
params = ChooseNumberParams.new
|
||||||
@@ -1457,7 +1457,7 @@ class EvolutionsProperty
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
else # Edit evolution
|
else # Edit evolution
|
||||||
case pbMessage(_INTL("\\ts[]Do what with this evolution?"),
|
case pbMessage("\\ts[]" + _INTL("Do what with this evolution?"),
|
||||||
[_INTL("Change species"), _INTL("Change method"),
|
[_INTL("Change species"), _INTL("Change method"),
|
||||||
_INTL("Change parameter"), _INTL("Delete"), _INTL("Cancel")], 5)
|
_INTL("Change parameter"), _INTL("Delete"), _INTL("Cancel")], 5)
|
||||||
when 0 # Change species
|
when 0 # Change species
|
||||||
|
|||||||
@@ -1180,6 +1180,18 @@ MenuHandlers.add(:debug_menu, :rename_files, {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
MenuHandlers.add(:debug_menu, :collate_script_and_event_text, {
|
||||||
|
"name" => _INTL("Collate Script/Event Texts For Translation"),
|
||||||
|
"parent" => :files_menu,
|
||||||
|
"description" => _INTL("Find translatable text in scripts/map events. Do this before extracting text."),
|
||||||
|
"effect" => proc {
|
||||||
|
Translator.gather_script_and_event_texts
|
||||||
|
MessageTypes.save_default_messages
|
||||||
|
MessageTypes.load_default_messages if safeExists?("Data/messages_core.dat")
|
||||||
|
pbMessage(_INTL("Translatable text gathered from scripts and map events and saved in data files."))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
MenuHandlers.add(:debug_menu, :extract_text, {
|
MenuHandlers.add(:debug_menu, :extract_text, {
|
||||||
"name" => _INTL("Extract Text For Translation"),
|
"name" => _INTL("Extract Text For Translation"),
|
||||||
"parent" => :files_menu,
|
"parent" => :files_menu,
|
||||||
|
|||||||
@@ -206,8 +206,8 @@ MenuHandlers.add(:battle_debug_menu, :mega_evolution, {
|
|||||||
next if !trainers[i]
|
next if !trainers[i]
|
||||||
text = (side == 0) ? "Your side:" : "Foe side:"
|
text = (side == 0) ? "Your side:" : "Foe side:"
|
||||||
text += sprintf(" %d: %s", i, trainers[i].name)
|
text += sprintf(" %d: %s", i, trainers[i].name)
|
||||||
text += sprintf(" [ABLE]") if value == -1
|
text += " [ABLE]" if value == -1
|
||||||
text += sprintf(" [UNABLE]") if value == -2
|
text += " [UNABLE]" if value == -2
|
||||||
commands.push(text)
|
commands.push(text)
|
||||||
cmds.push([side, i])
|
cmds.push([side, i])
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -40,12 +40,12 @@ module FileLineData
|
|||||||
def self.linereport
|
def self.linereport
|
||||||
if @section
|
if @section
|
||||||
if @key.nil?
|
if @key.nil?
|
||||||
return _INTL("File {1}, section {2}\r\n{3}\r\n\r\n", @file, @section, @value)
|
return _INTL("File {1}, section {2}\r\n{3}", @file, @section, @value) + "\r\n\r\n"
|
||||||
else
|
else
|
||||||
return _INTL("File {1}, section {2}, key {3}\r\n{4}\r\n\r\n", @file, @section, @key, @value)
|
return _INTL("File {1}, section {2}, key {3}\r\n{4}", @file, @section, @key, @value) + "\r\n\r\n"
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
return _INTL("File {1}, line {2}\r\n{3}\r\n\r\n", @file, @lineno, @linedata)
|
return _INTL("File {1}, line {2}\r\n{3}", @file, @lineno, @linedata) + "\r\n\r\n"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -248,9 +248,55 @@ module Compiler
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
# Splits a string containing comma-separated values into an array of those
|
||||||
|
# values.
|
||||||
|
#=============================================================================
|
||||||
|
def split_csv_line(string)
|
||||||
|
# Split the string into an array of values, using a comma as the separator
|
||||||
|
values = string.split(",")
|
||||||
|
# Check for quote marks in each value, as we may need to recombine some values
|
||||||
|
# to make proper results
|
||||||
|
(0...values.length).each do |i|
|
||||||
|
value = values[i]
|
||||||
|
next if !value || value.empty?
|
||||||
|
quote_count = value.count('"') #scan(/(?:^|\G|[^\\])(\\)*"/).length
|
||||||
|
if !quote_count.zero?
|
||||||
|
# Quote marks found in value
|
||||||
|
(i...(values.length - 1)).each do |j|
|
||||||
|
quote_count = values[i].count('"')
|
||||||
|
if quote_count == 2 && value.start_with?('\\"') && values[i].end_with?('\\"')
|
||||||
|
# Two quote marks around the whole value; remove them
|
||||||
|
values[i] = values[i][2..-3]
|
||||||
|
break
|
||||||
|
elsif quote_count.even?
|
||||||
|
break
|
||||||
|
end
|
||||||
|
# Odd number of quote marks in value; concatenate the next value to it and
|
||||||
|
# see if that's any better
|
||||||
|
values[i] += "," + values[j + 1]
|
||||||
|
values[j + 1] = nil
|
||||||
|
end
|
||||||
|
# Recheck for enclosing quote marks to remove
|
||||||
|
if quote_count != 2
|
||||||
|
if value.count('"') == 2 && value.start_with?('\\"') && value.end_with?('\\"')
|
||||||
|
values[i] = values[i][2..-3]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
# Remove leading and trailing whitespace from value
|
||||||
|
values[i].strip!
|
||||||
|
end
|
||||||
|
# Remove nil values caused by concatenating values above
|
||||||
|
values.compact!
|
||||||
|
return values
|
||||||
|
end
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Convert a string to certain kinds of values
|
# Convert a string to certain kinds of values
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
# Unused
|
||||||
|
# NOTE: This method is about 10 times slower than split_csv_line.
|
||||||
def csvfield!(str)
|
def csvfield!(str)
|
||||||
ret = ""
|
ret = ""
|
||||||
str.sub!(/^\s*/, "")
|
str.sub!(/^\s*/, "")
|
||||||
@@ -286,16 +332,15 @@ module Compiler
|
|||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Unused
|
||||||
def csvBoolean!(str, _line = -1)
|
def csvBoolean!(str, _line = -1)
|
||||||
field = csvfield!(str)
|
field = csvfield!(str)
|
||||||
if field[/^1|[Tt][Rr][Uu][Ee]|[Yy][Ee][Ss]|[Yy]$/]
|
return true if field[/^(?:1|TRUE|YES|Y)$/i]
|
||||||
return true
|
return false if field[/^(?:0|FALSE|NO|N)$/i]
|
||||||
elsif field[/^0|[Ff][Aa][Ll][Ss][Ee]|[Nn][Oo]|[Nn]$/]
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
raise _INTL("Field {1} is not a Boolean value (true, false, 1, 0)\r\n{2}", field, FileLineData.linereport)
|
raise _INTL("Field {1} is not a Boolean value (true, false, 1, 0)\r\n{2}", field, FileLineData.linereport)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Unused
|
||||||
def csvInt!(str, _line = -1)
|
def csvInt!(str, _line = -1)
|
||||||
ret = csvfield!(str)
|
ret = csvfield!(str)
|
||||||
if !ret[/^\-?\d+$/]
|
if !ret[/^\-?\d+$/]
|
||||||
@@ -304,6 +349,7 @@ module Compiler
|
|||||||
return ret.to_i
|
return ret.to_i
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Unused
|
||||||
def csvPosInt!(str, _line = -1)
|
def csvPosInt!(str, _line = -1)
|
||||||
ret = csvfield!(str)
|
ret = csvfield!(str)
|
||||||
if !ret[/^\d+$/]
|
if !ret[/^\d+$/]
|
||||||
@@ -312,22 +358,83 @@ module Compiler
|
|||||||
return ret.to_i
|
return ret.to_i
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Unused
|
||||||
def csvFloat!(str, _line = -1)
|
def csvFloat!(str, _line = -1)
|
||||||
ret = csvfield!(str)
|
ret = csvfield!(str)
|
||||||
return Float(ret) rescue raise _INTL("Field {1} is not a number\r\n{2}", ret, FileLineData.linereport)
|
return Float(ret) rescue raise _INTL("Field {1} is not a number\r\n{2}", ret, FileLineData.linereport)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Unused
|
||||||
def csvEnumField!(value, enumer, _key, _section)
|
def csvEnumField!(value, enumer, _key, _section)
|
||||||
ret = csvfield!(value)
|
ret = csvfield!(value)
|
||||||
return checkEnumField(ret, enumer)
|
return checkEnumField(ret, enumer)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Unused
|
||||||
def csvEnumFieldOrInt!(value, enumer, _key, _section)
|
def csvEnumFieldOrInt!(value, enumer, _key, _section)
|
||||||
ret = csvfield!(value)
|
ret = csvfield!(value)
|
||||||
return ret.to_i if ret[/\-?\d+/]
|
return ret.to_i if ret[/\-?\d+/]
|
||||||
return checkEnumField(ret, enumer)
|
return checkEnumField(ret, enumer)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Turns a value (a string) into another data type as determined by the given
|
||||||
|
# schema.
|
||||||
|
# @param value [String]
|
||||||
|
# @param schema [String]
|
||||||
|
def cast_csv_value(value, schema, enumer = nil)
|
||||||
|
case schema.downcase
|
||||||
|
when "i" # Integer
|
||||||
|
if !value[/^\-?\d+$/]
|
||||||
|
raise _INTL("Field {1} is not an integer\r\n{2}", value, FileLineData.linereport)
|
||||||
|
end
|
||||||
|
return value.to_i
|
||||||
|
when "u" # Positive integer or zero
|
||||||
|
if !value[/^\d+$/]
|
||||||
|
raise _INTL("Field {1} is not a positive integer or 0\r\n{2}", value, FileLineData.linereport)
|
||||||
|
end
|
||||||
|
return value.to_i
|
||||||
|
when "v" # Positive integer
|
||||||
|
if !value[/^\d+$/]
|
||||||
|
raise _INTL("Field {1} is not a positive integer\r\n{2}", value, FileLineData.linereport)
|
||||||
|
end
|
||||||
|
if value.to_i == 0
|
||||||
|
raise _INTL("Field '{1}' must be greater than 0\r\n{2}", value, FileLineData.linereport)
|
||||||
|
end
|
||||||
|
return value.to_i
|
||||||
|
when "x" # Hexadecimal number
|
||||||
|
if !value[/^[A-F0-9]+$/i]
|
||||||
|
raise _INTL("Field '{1}' is not a hexadecimal number\r\n{2}", value, FileLineData.linereport)
|
||||||
|
end
|
||||||
|
return value.hex
|
||||||
|
when "f" # Floating point number
|
||||||
|
if !value[/^\-?^\d*\.?\d*$/]
|
||||||
|
raise _INTL("Field {1} is not a number\r\n{2}", value, FileLineData.linereport)
|
||||||
|
end
|
||||||
|
return value.to_f
|
||||||
|
when "b" # Boolean
|
||||||
|
return true if value[/^(?:1|TRUE|YES|Y)$/i]
|
||||||
|
return false if value[/^(?:0|FALSE|NO|N)$/i]
|
||||||
|
raise _INTL("Field {1} is not a Boolean value (true, false, 1, 0)\r\n{2}", value, FileLineData.linereport)
|
||||||
|
when "n" # Name
|
||||||
|
if !value[/^(?![0-9])\w+$/]
|
||||||
|
raise _INTL("Field '{1}' must contain only letters, digits, and\r\nunderscores and can't begin with a number.\r\n{2}", value, FileLineData.linereport)
|
||||||
|
end
|
||||||
|
when "s" # String
|
||||||
|
when "q" # Unformatted text
|
||||||
|
when "m" # Symbol
|
||||||
|
if !value[/^(?![0-9])\w+$/]
|
||||||
|
raise _INTL("Field '{1}' must contain only letters, digits, and\r\nunderscores and can't begin with a number.\r\n{2}", value, FileLineData.linereport)
|
||||||
|
end
|
||||||
|
return value.to_sym
|
||||||
|
when "e" # Enumerable
|
||||||
|
return checkEnumField(value, enumer)
|
||||||
|
when "y" # Enumerable or integer
|
||||||
|
return value.to_i if value[/^\-?\d+$/]
|
||||||
|
return checkEnumField(value, enumer)
|
||||||
|
end
|
||||||
|
return value
|
||||||
|
end
|
||||||
|
|
||||||
def checkEnumField(ret, enumer)
|
def checkEnumField(ret, enumer)
|
||||||
case enumer
|
case enumer
|
||||||
when Module
|
when Module
|
||||||
@@ -376,6 +483,7 @@ module Compiler
|
|||||||
raise _INTL("Enumeration not defined\r\n{1}", FileLineData.linereport)
|
raise _INTL("Enumeration not defined\r\n{1}", FileLineData.linereport)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Unused
|
||||||
def checkEnumFieldOrNil(ret, enumer)
|
def checkEnumFieldOrNil(ret, enumer)
|
||||||
case enumer
|
case enumer
|
||||||
when Module
|
when Module
|
||||||
@@ -403,7 +511,10 @@ module Compiler
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Convert a string to values using a schema
|
# Convert a string to values using a schema
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
# Unused
|
||||||
|
# @deprecated This method is slated to be removed in v22.
|
||||||
def pbGetCsvRecord(rec, lineno, schema)
|
def pbGetCsvRecord(rec, lineno, schema)
|
||||||
|
Deprecation.warn_method("pbGetCsvRecord", "v22", "get_csv_record")
|
||||||
record = []
|
record = []
|
||||||
repeat = false
|
repeat = false
|
||||||
schema_length = schema[1].length
|
schema_length = schema[1].length
|
||||||
@@ -573,6 +684,58 @@ module Compiler
|
|||||||
return (!repeat && schema_length == 1) ? record[0] : record
|
return (!repeat && schema_length == 1) ? record[0] : record
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
# Convert a string to values using a schema
|
||||||
|
#=============================================================================
|
||||||
|
def get_csv_record(rec, schema)
|
||||||
|
ret = []
|
||||||
|
repeat = false
|
||||||
|
start = 0
|
||||||
|
schema_length = schema[1].length
|
||||||
|
case schema[1][0, 1] # First character in schema
|
||||||
|
when "*"
|
||||||
|
repeat = true
|
||||||
|
start = 1
|
||||||
|
when "^"
|
||||||
|
start = 1
|
||||||
|
schema_length -= 1
|
||||||
|
end
|
||||||
|
subarrays = repeat && schema[1].length - start > 1 # Whether ret is an array of arrays
|
||||||
|
# Split the string on commas into an array of values to apply the schema to
|
||||||
|
values = split_csv_line(rec)
|
||||||
|
# Apply the schema to each value in the line
|
||||||
|
idx = -1 # Index of value to look at in values
|
||||||
|
loop do
|
||||||
|
record = []
|
||||||
|
(start...schema[1].length).each do |i|
|
||||||
|
idx += 1
|
||||||
|
sche = schema[1][i, 1]
|
||||||
|
if sche[/[A-Z]/] # Upper case = optional
|
||||||
|
if nil_or_empty?(values[idx])
|
||||||
|
record.push(nil)
|
||||||
|
next
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if sche.downcase == "q" # Unformatted text
|
||||||
|
record.push(rec)
|
||||||
|
idx = values.length
|
||||||
|
break
|
||||||
|
else
|
||||||
|
record.push(cast_csv_value(values[idx], sche, schema[2 + i - start]))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if !record.empty?
|
||||||
|
if subarrays
|
||||||
|
ret.push(record)
|
||||||
|
else
|
||||||
|
ret.concat(record)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
break if !repeat || idx >= values.length - 1
|
||||||
|
end
|
||||||
|
return (!repeat && schema_length == 1) ? ret[0] : ret
|
||||||
|
end
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Write values to a file using a schema
|
# Write values to a file using a schema
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
@@ -584,9 +747,16 @@ module Compiler
|
|||||||
(start...schema[1].length).each do |i|
|
(start...schema[1].length).each do |i|
|
||||||
index += 1
|
index += 1
|
||||||
value = rec[index]
|
value = rec[index]
|
||||||
if schema[1][i, 1].upcase != schema[1][i, 1] || !value.nil?
|
if schema[1][i, 1][/[A-Z]/] # Optional
|
||||||
file.write(",") if index > 0
|
# Check the rest of the values for non-nil things
|
||||||
|
later_value_found = false
|
||||||
|
(index...rec.length).each do |j|
|
||||||
|
later_value_found = true if !rec[j].nil?
|
||||||
|
break if later_value_found
|
||||||
|
end
|
||||||
|
break if !later_value_found
|
||||||
end
|
end
|
||||||
|
file.write(",") if index > 0
|
||||||
if value.nil?
|
if value.nil?
|
||||||
# do nothing
|
# do nothing
|
||||||
elsif value.is_a?(String)
|
elsif value.is_a?(String)
|
||||||
@@ -845,14 +1015,6 @@ module Compiler
|
|||||||
compile_pbs_files
|
compile_pbs_files
|
||||||
compile_animations
|
compile_animations
|
||||||
compile_trainer_events(mustCompile)
|
compile_trainer_events(mustCompile)
|
||||||
Console.echo_li(_INTL("Saving messages..."))
|
|
||||||
Translator.gather_script_and_event_texts
|
|
||||||
MessageTypes.save_default_messages
|
|
||||||
MessageTypes.load_default_messages if safeExists?("Data/messages_core.dat")
|
|
||||||
Console.echo_done(true)
|
|
||||||
Console.echo_li(_INTL("Reloading cache..."))
|
|
||||||
System.reload_cache
|
|
||||||
Console.echo_done(true)
|
|
||||||
Console.echoln_li_done(_INTL("Successfully compiled all game data"))
|
Console.echoln_li_done(_INTL("Successfully compiled all game data"))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ module Compiler
|
|||||||
# the keys are the XXX and the values are the YYY (as unprocessed strings).
|
# the keys are the XXX and the values are the YYY (as unprocessed strings).
|
||||||
idx = 0
|
idx = 0
|
||||||
pbEachFileSection(f, schema) do |contents, section_name|
|
pbEachFileSection(f, schema) do |contents, section_name|
|
||||||
echo "." if idx % 50 == 0
|
echo "." if idx % 100 == 0
|
||||||
Graphics.update if idx % 250 == 0
|
Graphics.update if idx % 500 == 0
|
||||||
idx += 1
|
idx += 1
|
||||||
data_hash = {
|
data_hash = {
|
||||||
:id => section_name.to_sym,
|
:id => section_name.to_sym,
|
||||||
@@ -31,7 +31,7 @@ module Compiler
|
|||||||
schema.each_key do |key|
|
schema.each_key do |key|
|
||||||
FileLineData.setSection(section_name, key, contents[key]) # For error reporting
|
FileLineData.setSection(section_name, key, contents[key]) # For error reporting
|
||||||
if key == "SectionName"
|
if key == "SectionName"
|
||||||
data_hash[schema[key][0]] = pbGetCsvRecord(section_name, key, schema[key])
|
data_hash[schema[key][0]] = get_csv_record(section_name, schema[key])
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
# Skip empty properties
|
# Skip empty properties
|
||||||
@@ -39,14 +39,14 @@ module Compiler
|
|||||||
# Compile value for key
|
# Compile value for key
|
||||||
if schema[key][1][0] == "^"
|
if schema[key][1][0] == "^"
|
||||||
contents[key].each do |val|
|
contents[key].each do |val|
|
||||||
value = pbGetCsvRecord(val, key, schema[key])
|
value = get_csv_record(val, schema[key])
|
||||||
value = nil if value.is_a?(Array) && value.empty?
|
value = nil if value.is_a?(Array) && value.empty?
|
||||||
data_hash[schema[key][0]] ||= []
|
data_hash[schema[key][0]] ||= []
|
||||||
data_hash[schema[key][0]].push(value)
|
data_hash[schema[key][0]].push(value)
|
||||||
end
|
end
|
||||||
data_hash[schema[key][0]].compact!
|
data_hash[schema[key][0]].compact!
|
||||||
else
|
else
|
||||||
value = pbGetCsvRecord(contents[key], key, schema[key])
|
value = get_csv_record(contents[key], schema[key])
|
||||||
value = nil if value.is_a?(Array) && value.empty?
|
value = nil if value.is_a?(Array) && value.empty?
|
||||||
data_hash[schema[key][0]] = value
|
data_hash[schema[key][0]] = value
|
||||||
end
|
end
|
||||||
@@ -102,28 +102,22 @@ module Compiler
|
|||||||
# Compile map connections
|
# Compile map connections
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
def compile_connections(*paths)
|
def compile_connections(*paths)
|
||||||
|
hashenum = {
|
||||||
|
"N" => "N", "North" => "N",
|
||||||
|
"E" => "E", "East" => "E",
|
||||||
|
"S" => "S", "South" => "S",
|
||||||
|
"W" => "W", "West" => "W"
|
||||||
|
}
|
||||||
|
schema = [nil, "iyiiyi", nil, hashenum, nil, nil, hashenum]
|
||||||
records = []
|
records = []
|
||||||
paths.each do |path|
|
paths.each do |path|
|
||||||
compile_pbs_file_message_start(path)
|
compile_pbs_file_message_start(path)
|
||||||
pbCompilerEachPreppedLine(path) do |line, lineno|
|
pbCompilerEachPreppedLine(path) do |line, lineno|
|
||||||
hashenum = {
|
FileLineData.setLine(line, lineno)
|
||||||
"N" => "N", "North" => "N",
|
record = get_csv_record(line, schema)
|
||||||
"E" => "E", "East" => "E",
|
|
||||||
"S" => "S", "South" => "S",
|
|
||||||
"W" => "W", "West" => "W"
|
|
||||||
}
|
|
||||||
record = []
|
|
||||||
thisline = line.dup
|
|
||||||
record.push(csvInt!(thisline, lineno))
|
|
||||||
record.push(csvEnumFieldOrInt!(thisline, hashenum, "", sprintf("(line %d)", lineno)))
|
|
||||||
record.push(csvInt!(thisline, lineno))
|
|
||||||
record.push(csvInt!(thisline, lineno))
|
|
||||||
record.push(csvEnumFieldOrInt!(thisline, hashenum, "", sprintf("(line %d)", lineno)))
|
|
||||||
record.push(csvInt!(thisline, lineno))
|
|
||||||
if !pbRgssExists?(sprintf("Data/Map%03d.rxdata", record[0]))
|
if !pbRgssExists?(sprintf("Data/Map%03d.rxdata", record[0]))
|
||||||
print _INTL("Warning: Map {1}, as mentioned in the map connection data, was not found.\r\n{2}", record[0], FileLineData.linereport)
|
print _INTL("Warning: Map {1}, as mentioned in the map connection data, was not found.\r\n{2}", record[0], FileLineData.linereport)
|
||||||
end
|
elsif !pbRgssExists?(sprintf("Data/Map%03d.rxdata", record[3]))
|
||||||
if !pbRgssExists?(sprintf("Data/Map%03d.rxdata", record[3]))
|
|
||||||
print _INTL("Warning: Map {1}, as mentioned in the map connection data, was not found.\r\n{2}", record[3], FileLineData.linereport)
|
print _INTL("Warning: Map {1}, as mentioned in the map connection data, was not found.\r\n{2}", record[3], FileLineData.linereport)
|
||||||
end
|
end
|
||||||
case record[1]
|
case record[1]
|
||||||
@@ -333,21 +327,21 @@ module Compiler
|
|||||||
FileLineData.setSection(species.id.to_s, "Offspring", nil) # For error reporting
|
FileLineData.setSection(species.id.to_s, "Offspring", nil) # For error reporting
|
||||||
offspring = species.offspring
|
offspring = species.offspring
|
||||||
offspring.each_with_index do |sp, i|
|
offspring.each_with_index do |sp, i|
|
||||||
offspring[i] = csvEnumField!(sp, :Species, "Offspring", species.id)
|
offspring[i] = cast_csv_value(sp, "e", :Species)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# Enumerate all evolution species and parameters (this couldn't be done earlier)
|
# Enumerate all evolution species and parameters (this couldn't be done earlier)
|
||||||
GameData::Species.each do |species|
|
GameData::Species.each do |species|
|
||||||
FileLineData.setSection(species.id.to_s, "Evolutions", nil) # For error reporting
|
FileLineData.setSection(species.id.to_s, "Evolutions", nil) # For error reporting
|
||||||
species.evolutions.each do |evo|
|
species.evolutions.each do |evo|
|
||||||
evo[0] = csvEnumField!(evo[0], :Species, "Evolutions", species.id)
|
evo[0] = cast_csv_value(evo[0], "e", :Species)
|
||||||
param_type = GameData::Evolution.get(evo[1]).parameter
|
param_type = GameData::Evolution.get(evo[1]).parameter
|
||||||
if param_type.nil?
|
if param_type.nil?
|
||||||
evo[2] = nil
|
evo[2] = nil
|
||||||
elsif param_type == Integer
|
elsif param_type == Integer
|
||||||
evo[2] = csvPosInt!(evo[2])
|
evo[2] = cast_csv_value(evo[2], "u")
|
||||||
elsif param_type != String
|
elsif param_type != String
|
||||||
evo[2] = csvEnumField!(evo[2], param_type, "Evolutions", species.id)
|
evo[2] = cast_csv_value(evo[2], "e", param_type)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -396,8 +390,8 @@ module Compiler
|
|||||||
# the keys are the XXX and the values are the YYY (as unprocessed strings).
|
# the keys are the XXX and the values are the YYY (as unprocessed strings).
|
||||||
idx = 0
|
idx = 0
|
||||||
pbEachFileSection(f, schema) do |contents, section_name|
|
pbEachFileSection(f, schema) do |contents, section_name|
|
||||||
echo "." if idx % 50 == 0
|
echo "." if idx % 100 == 0
|
||||||
Graphics.update if idx % 250 == 0
|
Graphics.update if idx % 500 == 0
|
||||||
idx += 1
|
idx += 1
|
||||||
data_hash = {
|
data_hash = {
|
||||||
:id => section_name.to_sym,
|
:id => section_name.to_sym,
|
||||||
@@ -407,7 +401,7 @@ module Compiler
|
|||||||
schema.each_key do |key|
|
schema.each_key do |key|
|
||||||
FileLineData.setSection(section_name, key, contents[key]) # For error reporting
|
FileLineData.setSection(section_name, key, contents[key]) # For error reporting
|
||||||
if key == "SectionName"
|
if key == "SectionName"
|
||||||
data_hash[schema[key][0]] = pbGetCsvRecord(section_name, key, schema[key])
|
data_hash[schema[key][0]] = get_csv_record(section_name, schema[key])
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
# Skip empty properties
|
# Skip empty properties
|
||||||
@@ -415,14 +409,14 @@ module Compiler
|
|||||||
# Compile value for key
|
# Compile value for key
|
||||||
if schema[key][1][0] == "^"
|
if schema[key][1][0] == "^"
|
||||||
contents[key].each do |val|
|
contents[key].each do |val|
|
||||||
value = pbGetCsvRecord(val, key, schema[key])
|
value = get_csv_record(val, schema[key])
|
||||||
value = nil if value.is_a?(Array) && value.empty?
|
value = nil if value.is_a?(Array) && value.empty?
|
||||||
data_hash[schema[key][0]] ||= []
|
data_hash[schema[key][0]] ||= []
|
||||||
data_hash[schema[key][0]].push(value)
|
data_hash[schema[key][0]].push(value)
|
||||||
end
|
end
|
||||||
data_hash[schema[key][0]].compact!
|
data_hash[schema[key][0]].compact!
|
||||||
else
|
else
|
||||||
value = pbGetCsvRecord(contents[key], key, schema[key])
|
value = get_csv_record(contents[key], schema[key])
|
||||||
value = nil if value.is_a?(Array) && value.empty?
|
value = nil if value.is_a?(Array) && value.empty?
|
||||||
data_hash[schema[key][0]] = value
|
data_hash[schema[key][0]] = value
|
||||||
end
|
end
|
||||||
@@ -645,9 +639,9 @@ module Compiler
|
|||||||
current_type = nil
|
current_type = nil
|
||||||
idx = 0
|
idx = 0
|
||||||
pbCompilerEachPreppedLine(path) do |line, line_no|
|
pbCompilerEachPreppedLine(path) do |line, line_no|
|
||||||
echo "." if idx % 50 == 0
|
echo "." if idx % 100 == 0
|
||||||
idx += 1
|
idx += 1
|
||||||
Graphics.update if idx % 250 == 0
|
Graphics.update if idx % 500 == 0
|
||||||
next if line.length == 0
|
next if line.length == 0
|
||||||
if current_type && line[/^\d+,/] # Species line
|
if current_type && line[/^\d+,/] # Species line
|
||||||
values = line.split(",").collect! { |v| v.strip }
|
values = line.split(",").collect! { |v| v.strip }
|
||||||
@@ -655,7 +649,7 @@ module Compiler
|
|||||||
raise _INTL("Expected a species entry line for encounter type {1} for map '{2}', got \"{3}\" instead.\r\n{4}",
|
raise _INTL("Expected a species entry line for encounter type {1} for map '{2}', got \"{3}\" instead.\r\n{4}",
|
||||||
GameData::EncounterType.get(current_type).real_name, encounter_hash[:map], line, FileLineData.linereport)
|
GameData::EncounterType.get(current_type).real_name, encounter_hash[:map], line, FileLineData.linereport)
|
||||||
end
|
end
|
||||||
values = pbGetCsvRecord(line, line_no, [0, "vevV", nil, :Species])
|
values = get_csv_record(line, [nil, "vevV", nil, :Species])
|
||||||
values[3] = values[2] if !values[3]
|
values[3] = values[2] if !values[3]
|
||||||
if values[2] > max_level
|
if values[2] > max_level
|
||||||
raise _INTL("Level number {1} is not valid (max. {2}).\r\n{3}", values[2], max_level, FileLineData.linereport)
|
raise _INTL("Level number {1} is not valid (max. {2}).\r\n{3}", values[2], max_level, FileLineData.linereport)
|
||||||
@@ -783,9 +777,9 @@ module Compiler
|
|||||||
section_line = nil
|
section_line = nil
|
||||||
# Read each line of trainers.txt at a time and compile it as a trainer property
|
# Read each line of trainers.txt at a time and compile it as a trainer property
|
||||||
pbCompilerEachPreppedLine(path) do |line, line_no|
|
pbCompilerEachPreppedLine(path) do |line, line_no|
|
||||||
echo "." if idx % 50 == 0
|
echo "." if idx % 100 == 0
|
||||||
idx += 1
|
idx += 1
|
||||||
Graphics.update if idx % 250 == 0
|
Graphics.update if idx % 500 == 0
|
||||||
FileLineData.setSection(section_name, nil, section_line)
|
FileLineData.setSection(section_name, nil, section_line)
|
||||||
if line[/^\s*\[\s*(.+)\s*\]\s*$/]
|
if line[/^\s*\[\s*(.+)\s*\]\s*$/]
|
||||||
# New section [trainer_type, name] or [trainer_type, name, version]
|
# New section [trainer_type, name] or [trainer_type, name, version]
|
||||||
@@ -800,7 +794,7 @@ module Compiler
|
|||||||
data_hash = {
|
data_hash = {
|
||||||
:pbs_file_suffix => file_suffix
|
:pbs_file_suffix => file_suffix
|
||||||
}
|
}
|
||||||
data_hash[schema["SectionName"][0]] = pbGetCsvRecord(section_name.clone, line_no, schema["SectionName"])
|
data_hash[schema["SectionName"][0]] = get_csv_record(section_name.clone, schema["SectionName"])
|
||||||
data_hash[schema["Pokemon"][0]] = []
|
data_hash[schema["Pokemon"][0]] = []
|
||||||
current_pkmn = nil
|
current_pkmn = nil
|
||||||
elsif line[/^\s*(\w+)\s*=\s*(.*)$/]
|
elsif line[/^\s*(\w+)\s*=\s*(.*)$/]
|
||||||
@@ -810,7 +804,7 @@ module Compiler
|
|||||||
end
|
end
|
||||||
key = $~[1]
|
key = $~[1]
|
||||||
if schema[key] # Property of the trainer
|
if schema[key] # Property of the trainer
|
||||||
property_value = pbGetCsvRecord($~[2], line_no, schema[key])
|
property_value = get_csv_record($~[2], schema[key])
|
||||||
if key == "Pokemon"
|
if key == "Pokemon"
|
||||||
current_pkmn = {
|
current_pkmn = {
|
||||||
:species => property_value[0],
|
:species => property_value[0],
|
||||||
@@ -824,7 +818,7 @@ module Compiler
|
|||||||
if !current_pkmn
|
if !current_pkmn
|
||||||
raise _INTL("Pokémon hasn't been defined yet!\r\n{1}", FileLineData.linereport)
|
raise _INTL("Pokémon hasn't been defined yet!\r\n{1}", FileLineData.linereport)
|
||||||
end
|
end
|
||||||
current_pkmn[sub_schema[key][0]] = pbGetCsvRecord($~[2], line_no, sub_schema[key])
|
current_pkmn[sub_schema[key][0]] = get_csv_record($~[2], sub_schema[key])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -967,7 +961,7 @@ module Compiler
|
|||||||
schema = btTrainersRequiredTypes[key]
|
schema = btTrainersRequiredTypes[key]
|
||||||
next if key == "Challenges" && name == "DefaultTrainerList"
|
next if key == "Challenges" && name == "DefaultTrainerList"
|
||||||
next if !schema
|
next if !schema
|
||||||
record = pbGetCsvRecord(section[key], 0, schema)
|
record = get_csv_record(section[key], schema)
|
||||||
rsection[schema[0]] = record
|
rsection[schema[0]] = record
|
||||||
end
|
end
|
||||||
if !rsection[0]
|
if !rsection[0]
|
||||||
@@ -1028,7 +1022,7 @@ module Compiler
|
|||||||
FileLineData.setSection(name, key, section[key])
|
FileLineData.setSection(name, key, section[key])
|
||||||
schema = requiredtypes[key]
|
schema = requiredtypes[key]
|
||||||
next if !schema
|
next if !schema
|
||||||
record = pbGetCsvRecord(section[key], 0, schema)
|
record = get_csv_record(section[key], schema)
|
||||||
rsection[schema[0]] = record
|
rsection[schema[0]] = record
|
||||||
end
|
end
|
||||||
trainernames.push(rsection[1])
|
trainernames.push(rsection[1])
|
||||||
@@ -1067,8 +1061,8 @@ module Compiler
|
|||||||
# the keys are the XXX and the values are the YYY (as unprocessed strings).
|
# the keys are the XXX and the values are the YYY (as unprocessed strings).
|
||||||
idx = 0
|
idx = 0
|
||||||
pbEachFileSection(f) do |contents, section_name|
|
pbEachFileSection(f) do |contents, section_name|
|
||||||
echo "." if idx % 50 == 0
|
echo "." if idx % 100 == 0
|
||||||
Graphics.update if idx % 250 == 0
|
Graphics.update if idx % 500 == 0
|
||||||
idx += 1
|
idx += 1
|
||||||
schema = (section_name.to_i == 0) ? global_schema : player_schema
|
schema = (section_name.to_i == 0) ? global_schema : player_schema
|
||||||
data_hash = {
|
data_hash = {
|
||||||
@@ -1079,7 +1073,7 @@ module Compiler
|
|||||||
schema.each_key do |key|
|
schema.each_key do |key|
|
||||||
FileLineData.setSection(section_name, key, contents[key]) # For error reporting
|
FileLineData.setSection(section_name, key, contents[key]) # For error reporting
|
||||||
if key == "SectionName"
|
if key == "SectionName"
|
||||||
data_hash[schema[key][0]] = pbGetCsvRecord(section_name, key, schema[key])
|
data_hash[schema[key][0]] = get_csv_record(section_name, schema[key])
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
# Skip empty properties
|
# Skip empty properties
|
||||||
@@ -1087,14 +1081,14 @@ module Compiler
|
|||||||
# Compile value for key
|
# Compile value for key
|
||||||
if schema[key][1][0] == "^"
|
if schema[key][1][0] == "^"
|
||||||
contents[key].each do |val|
|
contents[key].each do |val|
|
||||||
value = pbGetCsvRecord(val, key, schema[key])
|
value = get_csv_record(val, schema[key])
|
||||||
value = nil if value.is_a?(Array) && value.empty?
|
value = nil if value.is_a?(Array) && value.empty?
|
||||||
data_hash[schema[key][0]] ||= []
|
data_hash[schema[key][0]] ||= []
|
||||||
data_hash[schema[key][0]].push(value)
|
data_hash[schema[key][0]].push(value)
|
||||||
end
|
end
|
||||||
data_hash[schema[key][0]].compact!
|
data_hash[schema[key][0]].compact!
|
||||||
else
|
else
|
||||||
value = pbGetCsvRecord(contents[key], key, schema[key])
|
value = get_csv_record(contents[key], schema[key])
|
||||||
value = nil if value.is_a?(Array) && value.empty?
|
value = nil if value.is_a?(Array) && value.empty?
|
||||||
data_hash[schema[key][0]] = value
|
data_hash[schema[key][0]] = value
|
||||||
end
|
end
|
||||||
@@ -1230,7 +1224,7 @@ module Compiler
|
|||||||
hash[:id] = "default"
|
hash[:id] = "default"
|
||||||
hash[:trainer_type] = hash[:id]
|
hash[:trainer_type] = hash[:id]
|
||||||
else
|
else
|
||||||
line_data = pbGetCsvRecord(hash[:id], -1, [0, "esU", :TrainerType])
|
line_data = get_csv_record(hash[:id], [nil, "esU", :TrainerType])
|
||||||
hash[:trainer_type] = line_data[0]
|
hash[:trainer_type] = line_data[0]
|
||||||
hash[:real_name] = line_data[1]
|
hash[:real_name] = line_data[1]
|
||||||
hash[:version] = line_data[2] || 0
|
hash[:version] = line_data[2] || 0
|
||||||
@@ -1276,7 +1270,11 @@ module Compiler
|
|||||||
# end
|
# end
|
||||||
# pbanims[anim.id] = pbConvertRPGAnimation(anim) if !found
|
# pbanims[anim.id] = pbConvertRPGAnimation(anim) if !found
|
||||||
# end
|
# end
|
||||||
|
idx = 0
|
||||||
pbanims.length.times do |i|
|
pbanims.length.times do |i|
|
||||||
|
echo "." if idx % 100 == 0
|
||||||
|
Graphics.update if idx % 500 == 0
|
||||||
|
idx += 1
|
||||||
next if !pbanims[i]
|
next if !pbanims[i]
|
||||||
if pbanims[i].name[/^OppMove\:\s*(.*)$/]
|
if pbanims[i].name[/^OppMove\:\s*(.*)$/]
|
||||||
if GameData::Move.exists?($~[1])
|
if GameData::Move.exists?($~[1])
|
||||||
|
|||||||
@@ -31,8 +31,8 @@ module Compiler
|
|||||||
# Write each element in turn
|
# Write each element in turn
|
||||||
game_data.each do |element|
|
game_data.each do |element|
|
||||||
next if element.pbs_file_suffix != path[1]
|
next if element.pbs_file_suffix != path[1]
|
||||||
echo "." if idx % 50 == 0
|
echo "." if idx % 100 == 0
|
||||||
Graphics.update if idx % 250 == 0
|
Graphics.update if idx % 500 == 0
|
||||||
idx += 1
|
idx += 1
|
||||||
f.write("\#-------------------------------\r\n")
|
f.write("\#-------------------------------\r\n")
|
||||||
if schema["SectionName"]
|
if schema["SectionName"]
|
||||||
@@ -189,8 +189,8 @@ module Compiler
|
|||||||
# Write each element in turn
|
# Write each element in turn
|
||||||
GameData::Species.each_species do |element|
|
GameData::Species.each_species do |element|
|
||||||
next if element.pbs_file_suffix != path[1]
|
next if element.pbs_file_suffix != path[1]
|
||||||
echo "." if idx % 50 == 0
|
echo "." if idx % 100 == 0
|
||||||
Graphics.update if idx % 250 == 0
|
Graphics.update if idx % 500 == 0
|
||||||
idx += 1
|
idx += 1
|
||||||
f.write("\#-------------------------------\r\n")
|
f.write("\#-------------------------------\r\n")
|
||||||
if schema["SectionName"]
|
if schema["SectionName"]
|
||||||
@@ -249,8 +249,8 @@ module Compiler
|
|||||||
GameData::Species.each do |element|
|
GameData::Species.each do |element|
|
||||||
next if element.form == 0
|
next if element.form == 0
|
||||||
next if element.pbs_file_suffix != path[1]
|
next if element.pbs_file_suffix != path[1]
|
||||||
echo "." if idx % 50 == 0
|
echo "." if idx % 100 == 0
|
||||||
Graphics.update if idx % 250 == 0
|
Graphics.update if idx % 500 == 0
|
||||||
idx += 1
|
idx += 1
|
||||||
f.write("\#-------------------------------\r\n")
|
f.write("\#-------------------------------\r\n")
|
||||||
if schema["SectionName"]
|
if schema["SectionName"]
|
||||||
@@ -317,8 +317,8 @@ module Compiler
|
|||||||
element.shadow_x == base_element.shadow_x &&
|
element.shadow_x == base_element.shadow_x &&
|
||||||
element.shadow_size == base_element.shadow_size
|
element.shadow_size == base_element.shadow_size
|
||||||
end
|
end
|
||||||
echo "." if idx % 50 == 0
|
echo "." if idx % 100 == 0
|
||||||
Graphics.update if idx % 250 == 0
|
Graphics.update if idx % 500 == 0
|
||||||
idx += 1
|
idx += 1
|
||||||
f.write("\#-------------------------------\r\n")
|
f.write("\#-------------------------------\r\n")
|
||||||
if schema["SectionName"]
|
if schema["SectionName"]
|
||||||
@@ -410,8 +410,8 @@ module Compiler
|
|||||||
add_PBS_header_to_file(f)
|
add_PBS_header_to_file(f)
|
||||||
GameData::Encounter.each do |element|
|
GameData::Encounter.each do |element|
|
||||||
next if element.pbs_file_suffix != path[1]
|
next if element.pbs_file_suffix != path[1]
|
||||||
echo "." if idx % 50 == 0
|
echo "." if idx % 100 == 0
|
||||||
Graphics.update if idx % 250 == 0
|
Graphics.update if idx % 500 == 0
|
||||||
idx += 1
|
idx += 1
|
||||||
f.write("\#-------------------------------\r\n")
|
f.write("\#-------------------------------\r\n")
|
||||||
map_name = (map_infos[element.map]) ? " # #{map_infos[element.map].name}" : ""
|
map_name = (map_infos[element.map]) ? " # #{map_infos[element.map].name}" : ""
|
||||||
@@ -463,8 +463,8 @@ module Compiler
|
|||||||
# Write each element in turn
|
# Write each element in turn
|
||||||
GameData::Trainer.each do |element|
|
GameData::Trainer.each do |element|
|
||||||
next if element.pbs_file_suffix != path[1]
|
next if element.pbs_file_suffix != path[1]
|
||||||
echo "." if idx % 50 == 0
|
echo "." if idx % 100 == 0
|
||||||
Graphics.update if idx % 250 == 0
|
Graphics.update if idx % 500 == 0
|
||||||
idx += 1
|
idx += 1
|
||||||
f.write("\#-------------------------------\r\n")
|
f.write("\#-------------------------------\r\n")
|
||||||
if schema["SectionName"]
|
if schema["SectionName"]
|
||||||
@@ -560,7 +560,7 @@ module Compiler
|
|||||||
else
|
else
|
||||||
pbWriteCsvRecord(record, f, schema)
|
pbWriteCsvRecord(record, f, schema)
|
||||||
end
|
end
|
||||||
f.write(sprintf("\r\n"))
|
f.write("\r\n")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -696,8 +696,8 @@ module Compiler
|
|||||||
add_PBS_header_to_file(f)
|
add_PBS_header_to_file(f)
|
||||||
GameData::MapMetadata.each do |element|
|
GameData::MapMetadata.each do |element|
|
||||||
next if element.pbs_file_suffix != path[1]
|
next if element.pbs_file_suffix != path[1]
|
||||||
echo "." if idx % 50 == 0
|
echo "." if idx % 100 == 0
|
||||||
Graphics.update if idx % 250 == 0
|
Graphics.update if idx % 500 == 0
|
||||||
idx += 1
|
idx += 1
|
||||||
f.write("\#-------------------------------\r\n")
|
f.write("\#-------------------------------\r\n")
|
||||||
map_name = (map_infos && map_infos[element.id]) ? map_infos[element.id].name : nil
|
map_name = (map_infos && map_infos[element.id]) ? map_infos[element.id].name : nil
|
||||||
|
|||||||
@@ -574,7 +574,7 @@ module Compiler
|
|||||||
trainerid = GameData::TrainerType.get(trtype).id
|
trainerid = GameData::TrainerType.get(trtype).id
|
||||||
filename = GameData::TrainerType.charset_filename_brief(trainerid)
|
filename = GameData::TrainerType.charset_filename_brief(trainerid)
|
||||||
if FileTest.image_exist?("Graphics/Characters/" + filename)
|
if FileTest.image_exist?("Graphics/Characters/" + filename)
|
||||||
firstpage.graphic.character_name = sprintf(filename)
|
firstpage.graphic.character_name = filename
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# Create strings that will be used repeatedly
|
# Create strings that will be used repeatedly
|
||||||
@@ -1012,13 +1012,13 @@ module Compiler
|
|||||||
list[index].parameters[1] = sprintf("WildBattle.start(#{pkmn1}, #{pkmn2})")
|
list[index].parameters[1] = sprintf("WildBattle.start(#{pkmn1}, #{pkmn2})")
|
||||||
old_indent = list[index].indent
|
old_indent = list[index].indent
|
||||||
new_events = []
|
new_events = []
|
||||||
if battle_params[3] && battle_params[5][/false/]
|
if battle_params[5] && battle_params[5][/false/]
|
||||||
push_script(new_events, "setBattleRule(\"cannotRun\")", old_indent)
|
push_script(new_events, "setBattleRule(\"cannotRun\")", old_indent)
|
||||||
end
|
end
|
||||||
if battle_params[4] && battle_params[6][/true/]
|
if battle_params[6] && battle_params[6][/true/]
|
||||||
push_script(new_events, "setBattleRule(\"canLose\")", old_indent)
|
push_script(new_events, "setBattleRule(\"canLose\")", old_indent)
|
||||||
end
|
end
|
||||||
if battle_params[2] && battle_params[4] != "1"
|
if battle_params[4] && battle_params[4] != "1"
|
||||||
push_script(new_events, "setBattleRule(\"outcome\", #{battle_params[4]})", old_indent)
|
push_script(new_events, "setBattleRule(\"outcome\", #{battle_params[4]})", old_indent)
|
||||||
end
|
end
|
||||||
list[index, 0] = new_events if new_events.length > 0
|
list[index, 0] = new_events if new_events.length > 0
|
||||||
@@ -1031,13 +1031,13 @@ module Compiler
|
|||||||
list[index].parameters[1] = sprintf("WildBattle.start(#{pkmn1}, #{pkmn2}, #{pkmn3})")
|
list[index].parameters[1] = sprintf("WildBattle.start(#{pkmn1}, #{pkmn2}, #{pkmn3})")
|
||||||
old_indent = list[index].indent
|
old_indent = list[index].indent
|
||||||
new_events = []
|
new_events = []
|
||||||
if battle_params[3] && battle_params[7][/false/]
|
if battle_params[7] && battle_params[7][/false/]
|
||||||
push_script(new_events, "setBattleRule(\"cannotRun\")", old_indent)
|
push_script(new_events, "setBattleRule(\"cannotRun\")", old_indent)
|
||||||
end
|
end
|
||||||
if battle_params[4] && battle_params[8][/true/]
|
if battle_params[8] && battle_params[8][/true/]
|
||||||
push_script(new_events, "setBattleRule(\"canLose\")", old_indent)
|
push_script(new_events, "setBattleRule(\"canLose\")", old_indent)
|
||||||
end
|
end
|
||||||
if battle_params[2] && battle_params[6] != "1"
|
if battle_params[6] && battle_params[6] != "1"
|
||||||
push_script(new_events, "setBattleRule(\"outcome\", #{battle_params[6]})", old_indent)
|
push_script(new_events, "setBattleRule(\"outcome\", #{battle_params[6]})", old_indent)
|
||||||
end
|
end
|
||||||
list[index, 0] = new_events if new_events.length > 0
|
list[index, 0] = new_events if new_events.length > 0
|
||||||
@@ -1108,7 +1108,7 @@ module Compiler
|
|||||||
speech = battle_params[7].gsub(/^\s*_I\(\s*"\s*/, "").gsub(/\"\s*\)\s*$/, "")
|
speech = battle_params[7].gsub(/^\s*_I\(\s*"\s*/, "").gsub(/\"\s*\)\s*$/, "")
|
||||||
push_comment(new_events, "EndSpeech2: #{speech.strip}", old_indent)
|
push_comment(new_events, "EndSpeech2: #{speech.strip}", old_indent)
|
||||||
end
|
end
|
||||||
if battle_params[7] && !battle_params[7].empty? && battle_params[11] != "nil"
|
if battle_params[11] && !battle_params[11].empty? && battle_params[11] != "nil"
|
||||||
speech = battle_params[11].gsub(/^\s*_I\(\s*"\s*/, "").gsub(/\"\s*\)\s*$/, "")
|
speech = battle_params[11].gsub(/^\s*_I\(\s*"\s*/, "").gsub(/\"\s*\)\s*$/, "")
|
||||||
push_comment(new_events, "EndSpeech3: #{speech.strip}", old_indent)
|
push_comment(new_events, "EndSpeech3: #{speech.strip}", old_indent)
|
||||||
end
|
end
|
||||||
@@ -1681,9 +1681,9 @@ module Compiler
|
|||||||
Console.echo_li(_INTL("Processing {1} maps...", mapData.mapinfos.keys.length))
|
Console.echo_li(_INTL("Processing {1} maps...", mapData.mapinfos.keys.length))
|
||||||
idx = 0
|
idx = 0
|
||||||
mapData.mapinfos.keys.sort.each do |id|
|
mapData.mapinfos.keys.sort.each do |id|
|
||||||
echo "." if idx % 20 == 0
|
echo "." if idx % 100 == 0
|
||||||
idx += 1
|
idx += 1
|
||||||
Graphics.update if idx % 250 == 0
|
Graphics.update if idx % 500 == 0
|
||||||
changed = false
|
changed = false
|
||||||
map = mapData.getMap(id)
|
map = mapData.getMap(id)
|
||||||
next if !map || !mapData.mapinfos[id]
|
next if !map || !mapData.mapinfos[id]
|
||||||
|
|||||||
@@ -4,33 +4,33 @@
|
|||||||
Name = Essen
|
Name = Essen
|
||||||
Filename = mapRegion0.png
|
Filename = mapRegion0.png
|
||||||
Point = 13,12,Lappet Town,Oak's Lab,2,8,8
|
Point = 13,12,Lappet Town,Oak's Lab,2,8,8
|
||||||
Point = 13,11,Route 1,
|
Point = 13,11,Route 1
|
||||||
Point = 13,10,Cedolan City,Cedolan Dept. Store,7,47,11
|
Point = 13,10,Cedolan City,Cedolan Dept. Store,7,47,11
|
||||||
Point = 14,10,Cedolan City,,7,47,11
|
Point = 14,10,Cedolan City,,7,47,11
|
||||||
Point = 14,9,Route 2,
|
Point = 14,9,Route 2
|
||||||
Point = 14,8,Route 2,
|
Point = 14,8,Route 2
|
||||||
Point = 15,8,Lerucean Town,,23,11,15
|
Point = 15,8,Lerucean Town,,23,11,15
|
||||||
Point = 16,8,Natural Park,
|
Point = 16,8,Natural Park
|
||||||
Point = 15,7,Route 3,
|
Point = 15,7,Route 3
|
||||||
Point = 15,6,Route 3,Ice Cave
|
Point = 15,6,Route 3,Ice Cave
|
||||||
Point = 14,6,Route 3,
|
Point = 14,6,Route 3
|
||||||
Point = 13,6,Ingido Plateau,,35,17,7
|
Point = 13,6,Ingido Plateau,,35,17,7
|
||||||
Point = 12,6,Route 4,
|
Point = 12,6,Route 4
|
||||||
Point = 11,6,Route 4,
|
Point = 11,6,Route 4
|
||||||
Point = 11,7,Route 5,Cycle Road
|
Point = 11,7,Route 5,Cycle Road
|
||||||
Point = 11,8,Route 5,Cycle Road
|
Point = 11,8,Route 5,Cycle Road
|
||||||
Point = 11,9,Route 5,Cycle Road
|
Point = 11,9,Route 5,Cycle Road
|
||||||
Point = 11,10,Route 6,
|
Point = 11,10,Route 6
|
||||||
Point = 12,10,Route 6,
|
Point = 12,10,Route 6
|
||||||
Point = 15,10,Route 7,
|
Point = 15,10,Route 7
|
||||||
Point = 16,10,Route 7,Rock Cave
|
Point = 16,10,Route 7,Rock Cave
|
||||||
Point = 17,10,Battle Frontier,,52,17,14
|
Point = 17,10,Battle Frontier,,52,17,14
|
||||||
Point = 12,12,Safari Zone,
|
Point = 12,12,Safari Zone
|
||||||
Point = 13,13,Route 8,Diving area
|
Point = 13,13,Route 8,Diving area
|
||||||
Point = 18,17,Berth Island,,51
|
Point = 18,17,Berth Island,,,,,51
|
||||||
Point = 22,16,Faraday Island,,52
|
Point = 22,16,Faraday Island,,,,,52
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[1]
|
[1]
|
||||||
Name = Tiall
|
Name = Tiall
|
||||||
Filename = mapRegion1.png
|
Filename = mapRegion1.png
|
||||||
Point = 13,16,Here,
|
Point = 13,16,Here
|
||||||
|
|||||||
Reference in New Issue
Block a user