mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-07 13:15:01 +00:00
Refactored summary screen code
This commit is contained in:
@@ -108,12 +108,12 @@ class BitmapSprite < Sprite
|
|||||||
|
|
||||||
# TODO: Replaces def pbDrawImagePositions.
|
# TODO: Replaces def pbDrawImagePositions.
|
||||||
def draw_image(filename, image_x, image_y, src_x = 0, src_y = 0, src_width = -1, src_height = -1)
|
def draw_image(filename, image_x, image_y, src_x = 0, src_y = 0, src_width = -1, src_height = -1)
|
||||||
src_bitmap = AnimatedBitmap.new(pbBitmapName(filename))
|
src_bitmap = (filename.is_a?(AnimatedBitmap)) ? filename : AnimatedBitmap.new(pbBitmapName(filename))
|
||||||
src_width = (src_width >= 0) ? src_width : src_bitmap.width
|
src_width = (src_width >= 0) ? src_width : src_bitmap.width
|
||||||
src_height = (src_height >= 0) ? src_height : src_bitmap.height
|
src_height = (src_height >= 0) ? src_height : src_bitmap.height
|
||||||
src_rect = Rect.new(src_x, src_y, src_width, src_height)
|
src_rect = Rect.new(src_x, src_y, src_width, src_height)
|
||||||
self.bitmap.blt(image_x, image_y, src_bitmap.bitmap, src_rect)
|
self.bitmap.blt(image_x, image_y, src_bitmap.bitmap, src_rect)
|
||||||
src_bitmap.dispose
|
src_bitmap.dispose if !filename.is_a?(AnimatedBitmap)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ module GameData
|
|||||||
class Stat
|
class Stat
|
||||||
attr_reader :id
|
attr_reader :id
|
||||||
attr_reader :real_name
|
attr_reader :real_name
|
||||||
|
attr_reader :real_name_semi_brief
|
||||||
attr_reader :real_name_brief
|
attr_reader :real_name_brief
|
||||||
attr_reader :type
|
attr_reader :type
|
||||||
attr_reader :pbs_order
|
attr_reader :pbs_order
|
||||||
@@ -39,11 +40,12 @@ module GameData
|
|||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
def initialize(hash)
|
def initialize(hash)
|
||||||
@id = hash[:id]
|
@id = hash[:id]
|
||||||
@real_name = hash[:name] || "Unnamed"
|
@real_name = hash[:name] || "Unnamed"
|
||||||
@real_name_brief = hash[:name_brief] || "None"
|
@real_name_semi_brief = hash[:name_semi_brief]
|
||||||
@type = hash[:type] || :none
|
@real_name_brief = hash[:name_brief] || "None"
|
||||||
@pbs_order = hash[:pbs_order] || -1
|
@type = hash[:type] || :none
|
||||||
|
@pbs_order = hash[:pbs_order] || -1
|
||||||
end
|
end
|
||||||
|
|
||||||
# @return [String] the translated name of this stat
|
# @return [String] the translated name of this stat
|
||||||
@@ -51,6 +53,10 @@ module GameData
|
|||||||
return _INTL(@real_name)
|
return _INTL(@real_name)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def name_semi_brief
|
||||||
|
return _INTL(@real_name_semi_brief || @real_name)
|
||||||
|
end
|
||||||
|
|
||||||
# @return [String] the translated brief name of this stat
|
# @return [String] the translated brief name of this stat
|
||||||
def name_brief
|
def name_brief
|
||||||
return _INTL(@real_name_brief)
|
return _INTL(@real_name_brief)
|
||||||
@@ -87,19 +93,21 @@ GameData::Stat.register({
|
|||||||
})
|
})
|
||||||
|
|
||||||
GameData::Stat.register({
|
GameData::Stat.register({
|
||||||
:id => :SPECIAL_ATTACK,
|
:id => :SPECIAL_ATTACK,
|
||||||
:name => _INTL("Special Attack"),
|
:name => _INTL("Special Attack"),
|
||||||
:name_brief => _INTL("SpAtk"),
|
:name_semi_brief => _INTL("Sp. Atk"),
|
||||||
:type => :main_battle,
|
:name_brief => _INTL("SpAtk"),
|
||||||
:pbs_order => 4
|
:type => :main_battle,
|
||||||
|
:pbs_order => 4
|
||||||
})
|
})
|
||||||
|
|
||||||
GameData::Stat.register({
|
GameData::Stat.register({
|
||||||
:id => :SPECIAL_DEFENSE,
|
:id => :SPECIAL_DEFENSE,
|
||||||
:name => _INTL("Special Defense"),
|
:name => _INTL("Special Defense"),
|
||||||
:name_brief => _INTL("SpDef"),
|
:name_semi_brief => _INTL("Sp. Def"),
|
||||||
:type => :main_battle,
|
:name_brief => _INTL("SpDef"),
|
||||||
:pbs_order => 5
|
:type => :main_battle,
|
||||||
|
:pbs_order => 5
|
||||||
})
|
})
|
||||||
|
|
||||||
GameData::Stat.register({
|
GameData::Stat.register({
|
||||||
|
|||||||
@@ -780,6 +780,7 @@ end
|
|||||||
# Give an item to a Pokémon to hold, and take a held item from a Pokémon.
|
# Give an item to a Pokémon to hold, and take a held item from a Pokémon.
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
def pbGiveItemToPokemon(item, pkmn, scene, pkmnid = 0)
|
def pbGiveItemToPokemon(item, pkmn, scene, pkmnid = 0)
|
||||||
|
return false if item.nil?
|
||||||
newitemname = GameData::Item.get(item).portion_name
|
newitemname = GameData::Item.get(item).portion_name
|
||||||
if pkmn.egg?
|
if pkmn.egg?
|
||||||
scene.pbDisplay(_INTL("Eggs can't hold items."))
|
scene.pbDisplay(_INTL("Eggs can't hold items."))
|
||||||
|
|||||||
@@ -314,6 +314,21 @@ class Pokemon
|
|||||||
@ready_to_evolve = false
|
@ready_to_evolve = false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
# Stats.
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
def stat(id)
|
||||||
|
case id
|
||||||
|
when :HP then return @totalhp
|
||||||
|
when :ATTACK then return @attack
|
||||||
|
when :DEFENSE then return @defense
|
||||||
|
when :SPECIAL_ATTACK then return @spatk
|
||||||
|
when :SPECIAL_DEFENSE then return @spdef
|
||||||
|
when :SPEED then return @speed
|
||||||
|
end
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Types.
|
# Types.
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -54,11 +54,11 @@ module UI
|
|||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
def add_overlay(key)
|
def add_overlay(overlay)
|
||||||
@sprites[key] = BitmapSprite.new(Graphics.width, Graphics.height, @viewport)
|
@sprites[overlay] = BitmapSprite.new(Graphics.width, Graphics.height, @viewport)
|
||||||
@sprites[key].z = 1000
|
@sprites[overlay].z = 1000
|
||||||
self.class::TEXT_COLOR_THEMES.each_pair { |key, values| @sprites[key].add_text_theme(key, *values) }
|
self.class::TEXT_COLOR_THEMES.each_pair { |key, values| @sprites[overlay].add_text_theme(key, *values) }
|
||||||
pbSetSystemFont(@sprites[key].bitmap)
|
pbSetSystemFont(@sprites[overlay].bitmap)
|
||||||
end
|
end
|
||||||
|
|
||||||
def add_icon_sprite(key, x, y, filename = nil)
|
def add_icon_sprite(key, x, y, filename = nil)
|
||||||
@@ -66,6 +66,23 @@ module UI
|
|||||||
@sprites[key].setBitmap(filename) if filename
|
@sprites[key].setBitmap(filename) if filename
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def add_animated_arrow(key, x, y, direction)
|
||||||
|
case direction
|
||||||
|
when :up
|
||||||
|
@sprites[key] = AnimatedSprite.new(UI_FOLDER + "up_arrow", 8, 28, 40, 2, @viewport)
|
||||||
|
when :down
|
||||||
|
@sprites[key] = AnimatedSprite.new(UI_FOLDER + "down_arrow", 8, 28, 40, 2, @viewport)
|
||||||
|
when :left
|
||||||
|
@sprites[key] = AnimatedSprite.new(UI_FOLDER + "left_arrow", 8, 40, 28, 2, @viewport)
|
||||||
|
when :right
|
||||||
|
@sprites[key] = AnimatedSprite.new(UI_FOLDER + "right_arrow", 8, 40, 28, 2, @viewport)
|
||||||
|
end
|
||||||
|
@sprites[key].x = x
|
||||||
|
@sprites[key].y = y
|
||||||
|
@sprites[key].visible = false
|
||||||
|
@sprites[key].play
|
||||||
|
end
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
def fade_in
|
def fade_in
|
||||||
@@ -230,6 +247,18 @@ module UI
|
|||||||
@sprites[overlay].draw_themed_text(string.to_s, text_x, text_y, align, theme, outline)
|
@sprites[overlay].draw_themed_text(string.to_s, text_x, text_y, align, theme, outline)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def draw_paragraph_text(string, text_x, text_y, text_width, num_lines, theme: :default, overlay: :overlay)
|
||||||
|
drawTextEx(@sprites[overlay].bitmap, text_x, text_y, text_width, num_lines,
|
||||||
|
string, *self.class::TEXT_COLOR_THEMES[theme])
|
||||||
|
end
|
||||||
|
|
||||||
|
# NOTE: This also draws string in a paragraph, but with no limit on the
|
||||||
|
# number of lines.
|
||||||
|
def draw_formatted_text(string, text_x, text_y, text_width, theme: :default, overlay: :overlay)
|
||||||
|
drawFormattedTextEx(@sprites[overlay].bitmap, text_x, text_y, text_width,
|
||||||
|
string, *self.class::TEXT_COLOR_THEMES[theme])
|
||||||
|
end
|
||||||
|
|
||||||
def draw_image(filename, image_x, image_y, src_x = 0, src_y = 0, src_width = -1, src_height = -1, overlay: :overlay)
|
def draw_image(filename, image_x, image_y, src_x = 0, src_y = 0, src_width = -1, src_height = -1, overlay: :overlay)
|
||||||
@sprites[overlay].draw_image(filename, image_x, image_y, src_x, src_y, src_width, src_height)
|
@sprites[overlay].draw_image(filename, image_x, image_y, src_x, src_y, src_width, src_height)
|
||||||
end
|
end
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user