88 lines
3.0 KiB
Ruby
88 lines
3.0 KiB
Ruby
|
#==============================================================================
|
|||
|
# ** Window_ShopNumber
|
|||
|
#------------------------------------------------------------------------------
|
|||
|
# This window is for inputting quantity of items to buy or sell on the
|
|||
|
# shop screen.
|
|||
|
#==============================================================================
|
|||
|
|
|||
|
class Window_ShopNumber < Window_Base
|
|||
|
#--------------------------------------------------------------------------
|
|||
|
# * Object Initialization
|
|||
|
#--------------------------------------------------------------------------
|
|||
|
def initialize
|
|||
|
super(0, 128, 368, 352)
|
|||
|
self.contents = Bitmap.new(width - 32, height - 32)
|
|||
|
@item = nil
|
|||
|
@max = 1
|
|||
|
@price = 0
|
|||
|
@number = 1
|
|||
|
end
|
|||
|
#--------------------------------------------------------------------------
|
|||
|
# * Set Items, Max Quantity, and Price
|
|||
|
#--------------------------------------------------------------------------
|
|||
|
def set(item, max, price)
|
|||
|
@item = item
|
|||
|
@max = max
|
|||
|
@price = price
|
|||
|
@number = 1
|
|||
|
refresh
|
|||
|
end
|
|||
|
#--------------------------------------------------------------------------
|
|||
|
# * Set Inputted Quantity
|
|||
|
#--------------------------------------------------------------------------
|
|||
|
def number
|
|||
|
return @number
|
|||
|
end
|
|||
|
#--------------------------------------------------------------------------
|
|||
|
# * Refresh
|
|||
|
#--------------------------------------------------------------------------
|
|||
|
def refresh
|
|||
|
self.contents.clear
|
|||
|
draw_item_name(@item, 4, 96)
|
|||
|
self.contents.font.color = normal_color
|
|||
|
self.contents.draw_text(272, 96, 32, 32, "×")
|
|||
|
self.contents.draw_text(308, 96, 24, 32, @number.to_s, 2)
|
|||
|
self.cursor_rect.set(304, 96, 32, 32)
|
|||
|
# Draw total price and currency units
|
|||
|
domination = $data_system.words.gold
|
|||
|
cx = contents.text_size(domination).width
|
|||
|
total_price = @price * @number
|
|||
|
self.contents.font.color = normal_color
|
|||
|
self.contents.draw_text(4, 160, 328-cx-2, 32, total_price.to_s, 2)
|
|||
|
self.contents.font.color = system_color
|
|||
|
self.contents.draw_text(332-cx, 160, cx, 32, domination, 2)
|
|||
|
end
|
|||
|
#--------------------------------------------------------------------------
|
|||
|
# * Frame Update
|
|||
|
#--------------------------------------------------------------------------
|
|||
|
def update
|
|||
|
super
|
|||
|
if self.active
|
|||
|
# Cursor right (+1)
|
|||
|
if Input.repeat?(Input::RIGHT) and @number < @max
|
|||
|
$game_system.se_play($data_system.cursor_se)
|
|||
|
@number += 1
|
|||
|
refresh
|
|||
|
end
|
|||
|
# Cursor left (-1)
|
|||
|
if Input.repeat?(Input::LEFT) and @number > 1
|
|||
|
$game_system.se_play($data_system.cursor_se)
|
|||
|
@number -= 1
|
|||
|
refresh
|
|||
|
end
|
|||
|
# Cursdr up (+10)
|
|||
|
if Input.repeat?(Input::UP) and @number < @max
|
|||
|
$game_system.se_play($data_system.cursor_se)
|
|||
|
@number = [@number + 10, @max].min
|
|||
|
refresh
|
|||
|
end
|
|||
|
# Cursor down (-10)
|
|||
|
if Input.repeat?(Input::DOWN) and @number > 1
|
|||
|
$game_system.se_play($data_system.cursor_se)
|
|||
|
@number = [@number - 10, 1].max
|
|||
|
refresh
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
end
|