mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
Refactored summary screen code
This commit is contained in:
@@ -108,12 +108,12 @@ class BitmapSprite < Sprite
|
||||
|
||||
# TODO: Replaces def pbDrawImagePositions.
|
||||
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_height = (src_height >= 0) ? src_height : src_bitmap.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)
|
||||
src_bitmap.dispose
|
||||
src_bitmap.dispose if !filename.is_a?(AnimatedBitmap)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ module GameData
|
||||
class Stat
|
||||
attr_reader :id
|
||||
attr_reader :real_name
|
||||
attr_reader :real_name_semi_brief
|
||||
attr_reader :real_name_brief
|
||||
attr_reader :type
|
||||
attr_reader :pbs_order
|
||||
@@ -39,11 +40,12 @@ module GameData
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
def initialize(hash)
|
||||
@id = hash[:id]
|
||||
@real_name = hash[:name] || "Unnamed"
|
||||
@real_name_brief = hash[:name_brief] || "None"
|
||||
@type = hash[:type] || :none
|
||||
@pbs_order = hash[:pbs_order] || -1
|
||||
@id = hash[:id]
|
||||
@real_name = hash[:name] || "Unnamed"
|
||||
@real_name_semi_brief = hash[:name_semi_brief]
|
||||
@real_name_brief = hash[:name_brief] || "None"
|
||||
@type = hash[:type] || :none
|
||||
@pbs_order = hash[:pbs_order] || -1
|
||||
end
|
||||
|
||||
# @return [String] the translated name of this stat
|
||||
@@ -51,6 +53,10 @@ module GameData
|
||||
return _INTL(@real_name)
|
||||
end
|
||||
|
||||
def name_semi_brief
|
||||
return _INTL(@real_name_semi_brief || @real_name)
|
||||
end
|
||||
|
||||
# @return [String] the translated brief name of this stat
|
||||
def name_brief
|
||||
return _INTL(@real_name_brief)
|
||||
@@ -87,19 +93,21 @@ GameData::Stat.register({
|
||||
})
|
||||
|
||||
GameData::Stat.register({
|
||||
:id => :SPECIAL_ATTACK,
|
||||
:name => _INTL("Special Attack"),
|
||||
:name_brief => _INTL("SpAtk"),
|
||||
:type => :main_battle,
|
||||
:pbs_order => 4
|
||||
:id => :SPECIAL_ATTACK,
|
||||
:name => _INTL("Special Attack"),
|
||||
:name_semi_brief => _INTL("Sp. Atk"),
|
||||
:name_brief => _INTL("SpAtk"),
|
||||
:type => :main_battle,
|
||||
:pbs_order => 4
|
||||
})
|
||||
|
||||
GameData::Stat.register({
|
||||
:id => :SPECIAL_DEFENSE,
|
||||
:name => _INTL("Special Defense"),
|
||||
:name_brief => _INTL("SpDef"),
|
||||
:type => :main_battle,
|
||||
:pbs_order => 5
|
||||
:id => :SPECIAL_DEFENSE,
|
||||
:name => _INTL("Special Defense"),
|
||||
:name_semi_brief => _INTL("Sp. Def"),
|
||||
:name_brief => _INTL("SpDef"),
|
||||
:type => :main_battle,
|
||||
:pbs_order => 5
|
||||
})
|
||||
|
||||
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.
|
||||
#===============================================================================
|
||||
def pbGiveItemToPokemon(item, pkmn, scene, pkmnid = 0)
|
||||
return false if item.nil?
|
||||
newitemname = GameData::Item.get(item).portion_name
|
||||
if pkmn.egg?
|
||||
scene.pbDisplay(_INTL("Eggs can't hold items."))
|
||||
|
||||
@@ -314,6 +314,21 @@ class Pokemon
|
||||
@ready_to_evolve = false
|
||||
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.
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
@@ -54,11 +54,11 @@ module UI
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
def add_overlay(key)
|
||||
@sprites[key] = BitmapSprite.new(Graphics.width, Graphics.height, @viewport)
|
||||
@sprites[key].z = 1000
|
||||
self.class::TEXT_COLOR_THEMES.each_pair { |key, values| @sprites[key].add_text_theme(key, *values) }
|
||||
pbSetSystemFont(@sprites[key].bitmap)
|
||||
def add_overlay(overlay)
|
||||
@sprites[overlay] = BitmapSprite.new(Graphics.width, Graphics.height, @viewport)
|
||||
@sprites[overlay].z = 1000
|
||||
self.class::TEXT_COLOR_THEMES.each_pair { |key, values| @sprites[overlay].add_text_theme(key, *values) }
|
||||
pbSetSystemFont(@sprites[overlay].bitmap)
|
||||
end
|
||||
|
||||
def add_icon_sprite(key, x, y, filename = nil)
|
||||
@@ -66,6 +66,23 @@ module UI
|
||||
@sprites[key].setBitmap(filename) if filename
|
||||
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
|
||||
@@ -230,6 +247,18 @@ module UI
|
||||
@sprites[overlay].draw_themed_text(string.to_s, text_x, text_y, align, theme, outline)
|
||||
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)
|
||||
@sprites[overlay].draw_image(filename, image_x, image_y, src_x, src_y, src_width, src_height)
|
||||
end
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user