Scene_Shop
#============================================
# ¡ Scene_Shop
#----------------------------------------------
# @ƒVƒ‡ƒbƒv‰æ–ʂ̈—‚ðs‚¤ƒNƒ‰ƒX‚Å‚·B
#============================================
class Scene_Shop
#------------------------------------------
# œ ƒƒCƒ“ˆ—
#------------------------------------------
def main
# ƒwƒ‹ƒvƒEƒBƒ“ƒhƒE‚ðì¬
@help_window = Window_Help.new
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ðì¬
@command_window = Window_ShopCommand.new
# ƒS[ƒ‹ƒhƒEƒBƒ“ƒhƒE‚ðì¬
@gold_window = Window_Gold.new
@gold_window.x = 480
@gold_window.y = 64
# ƒ_ƒ~[ƒEƒBƒ“ƒhƒE‚ðì¬
@dummy_window = Window_Base.new(0, 128, 640, 352)
# w“üƒEƒBƒ“ƒhƒE‚ðì¬
@buy_window = Window_ShopBuy.new($game_temp.shop_goods)
@buy_window.active = false
@buy_window.visible = false
@buy_window.help_window = @help_window
# ”„‹pƒEƒBƒ“ƒhƒE‚ðì¬
@sell_window = Window_ShopSell.new
@sell_window.active = false
@sell_window.visible = false
@sell_window.help_window = @help_window
# ŒÂ”“ü—̓EƒBƒ“ƒhƒE‚ðì¬
@number_window = Window_ShopNumber.new
@number_window.active = false
@number_window.visible = false
# ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðì¬
@status_window = Window_ShopStatus.new
@status_window.visible = false
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“Às
Graphics.transition
# ƒƒCƒ“ƒ‹[ƒv
loop do
# ƒQ[ƒ€‰æ–Ê‚ðXV
Graphics.update
# “ü—Íî•ñ‚ðXV
Input.update
# ƒtƒŒ[ƒ€XV
update
# ‰æ–Ê‚ªØ‚è‘Ö‚í‚Á‚½‚烋[ƒv‚ð’†’f
if $scene != self
break
end
end
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“€”õ
Graphics.freeze
# ƒEƒBƒ“ƒhƒE‚ð‰ð•ú
@help_window.dispose
@command_window.dispose
@gold_window.dispose
@dummy_window.dispose
@buy_window.dispose
@sell_window.dispose
@number_window.dispose
@status_window.dispose
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV
#------------------------------------------
def update
# ƒEƒBƒ“ƒhƒE‚ðXV
@help_window.update
@command_window.update
@gold_window.update
@dummy_window.update
@buy_window.update
@sell_window.update
@number_window.update
@status_window.update
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡: update_command ‚ðŒÄ‚Ô
if @command_window.active
update_command
return
end
# w“üƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡: update_buy ‚ðŒÄ‚Ô
if @buy_window.active
update_buy
return
end
# ”„‹pƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡: update_sell ‚ðŒÄ‚Ô
if @sell_window.active
update_sell
return
end
# ŒÂ”“ü—̓EƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡: update_number ‚ðŒÄ‚Ô
if @number_window.active
update_number
return
end
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡)
#------------------------------------------
def update_command
# B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::B)
# ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t
$game_system.se_play($data_system.cancel_se)
# ƒ}ƒbƒv‰æ–Ê‚ÉØ‚è‘Ö‚¦
$scene = Scene_Map.new
return
end
# C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::C)
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚̃J[ƒƒ‹ˆÊ’u‚Å•ªŠò
case @command_window.index
when 0 # w“ü‚·‚é
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ô‚ðw“üƒ‚[ƒh‚Ö
@command_window.active = false
@dummy_window.visible = false
@buy_window.active = true
@buy_window.visible = true
@buy_window.refresh
@status_window.visible = true
when 1 # ”„‹p‚·‚é
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ԃ𔄋pƒ‚[ƒh‚Ö
@command_window.active = false
@dummy_window.visible = false
@sell_window.active = true
@sell_window.visible = true
@sell_window.refresh
when 2 # ‚â‚ß‚é
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒ}ƒbƒv‰æ–Ê‚ÉØ‚è‘Ö‚¦
$scene = Scene_Map.new
end
return
end
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV (w“üƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡)
#------------------------------------------
def update_buy
# ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚̃AƒCƒeƒ€‚ðÝ’è
@status_window.item = @buy_window.item
# B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::B)
# ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t
$game_system.se_play($data_system.cancel_se)
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ô‚ð‰Šúƒ‚[ƒh‚Ö
@command_window.active = true
@dummy_window.visible = true
@buy_window.active = false
@buy_window.visible = false
@status_window.visible = false
@status_window.item = nil
# ƒwƒ‹ƒvƒeƒLƒXƒg‚ðÁ‹
@help_window.set_text("")
return
end
# C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::C)
# ƒAƒCƒeƒ€‚ðæ“¾
@item = @buy_window.item
# ƒAƒCƒeƒ€‚ª–³Œø‚Ìê‡A‚Ü‚½‚͉¿Ši‚ªŠ‹à‚æ‚èã‚Ìê‡
if @item == nil or @item.price > $game_party.gold
# ƒuƒU[ SE ‚ð‰‰‘t
$game_system.se_play($data_system.buzzer_se)
return
end
# ƒAƒCƒeƒ€‚ÌŠ”‚ðæ“¾
case @item
when RPG::Item
number = $game_party.item_number(@item.id)
when RPG::Weapon
number = $game_party.weapon_number(@item.id)
when RPG::Armor
number = $game_party.armor_number(@item.id)
end
# ‚·‚Å‚É 99 ŒÂŠ‚µ‚Ä‚¢‚éê‡
if number == 99
# ƒuƒU[ SE ‚ð‰‰‘t
$game_system.se_play($data_system.buzzer_se)
return
end
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# Å‘åw“ü‰Â”ŒÂ”‚ðŒvZ
max = @item.price == 0 ? 99 : $game_party.gold / @item.price
max = [max, 99 - number].min
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ô‚ðŒÂ”“ü—̓‚[ƒh‚Ö
@buy_window.active = false
@buy_window.visible = false
@number_window.set(@item, max, @item.price)
@number_window.active = true
@number_window.visible = true
end
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV (”„‹pƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡)
#------------------------------------------
def update_sell
# B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::B)
# ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t
$game_system.se_play($data_system.cancel_se)
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ô‚ð‰Šúƒ‚[ƒh‚Ö
@command_window.active = true
@dummy_window.visible = true
@sell_window.active = false
@sell_window.visible = false
@status_window.item = nil
# ƒwƒ‹ƒvƒeƒLƒXƒg‚ðÁ‹
@help_window.set_text("")
return
end
# C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::C)
# ƒAƒCƒeƒ€‚ðæ“¾
@item = @sell_window.item
# ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚̃AƒCƒeƒ€‚ðÝ’è
@status_window.item = @item
# ƒAƒCƒeƒ€‚ª–³Œø‚Ìê‡A‚Ü‚½‚͉¿Ši‚ª 0 (”„‹p•s‰Â) ‚Ìê‡
if @item == nil or @item.price == 0
# ƒuƒU[ SE ‚ð‰‰‘t
$game_system.se_play($data_system.buzzer_se)
return
end
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒAƒCƒeƒ€‚ÌŠ”‚ðæ“¾
case @item
when RPG::Item
number = $game_party.item_number(@item.id)
when RPG::Weapon
number = $game_party.weapon_number(@item.id)
when RPG::Armor
number = $game_party.armor_number(@item.id)
end
# ő唄‹pŒÂ” = ƒAƒCƒeƒ€‚ÌŠ”
max = number
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ô‚ðŒÂ”“ü—̓‚[ƒh‚Ö
@sell_window.active = false
@sell_window.visible = false
@number_window.set(@item, max, @item.price / 2)
@number_window.active = true
@number_window.visible = true
@status_window.visible = true
end
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ŒÂ”“ü—̓EƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡)
#------------------------------------------
def update_number
# B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::B)
# ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t
$game_system.se_play($data_system.cancel_se)
# ŒÂ”“ü—̓EƒBƒ“ƒhƒE‚ð”ñƒAƒNƒeƒBƒuE•s‰Â‹‚ÉÝ’è
@number_window.active = false
@number_window.visible = false
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚̃J[ƒƒ‹ˆÊ’u‚Å•ªŠò
case @command_window.index
when 0 # w“ü‚·‚é
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ô‚ðw“üƒ‚[ƒh‚Ö
@buy_window.active = true
@buy_window.visible = true
when 1 # ”„‹p‚·‚é
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ԃ𔄋pƒ‚[ƒh‚Ö
@sell_window.active = true
@sell_window.visible = true
@status_window.visible = false
end
return
end
# C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::C)
# ƒVƒ‡ƒbƒv SE ‚ð‰‰‘t
$game_system.se_play($data_system.shop_se)
# ŒÂ”“ü—̓EƒBƒ“ƒhƒE‚ð”ñƒAƒNƒeƒBƒuE•s‰Â‹‚ÉÝ’è
@number_window.active = false
@number_window.visible = false
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚̃J[ƒƒ‹ˆÊ’u‚Å•ªŠò
case @command_window.index
when 0 # w“ü‚·‚é
# w“üˆ—
$game_party.lose_gold(@number_window.number * @item.price)
case @item
when RPG::Item
$game_party.gain_item(@item.id, @number_window.number)
when RPG::Weapon
$game_party.gain_weapon(@item.id, @number_window.number)
when RPG::Armor
$game_party.gain_armor(@item.id, @number_window.number)
end
# ŠeƒEƒBƒ“ƒhƒE‚ðƒŠƒtƒŒƒbƒVƒ…
@gold_window.refresh
@buy_window.refresh
@status_window.refresh
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ô‚ðw“üƒ‚[ƒh‚Ö
@buy_window.active = true
@buy_window.visible = true
when 1 # ”„‹p‚·‚é
# ”„‹pˆ—
$game_party.gain_gold(@number_window.number * (@item.price / 2))
case @item
when RPG::Item
$game_party.lose_item(@item.id, @number_window.number)
when RPG::Weapon
$game_party.lose_weapon(@item.id, @number_window.number)
when RPG::Armor
$game_party.lose_armor(@item.id, @number_window.number)
end
# ŠeƒEƒBƒ“ƒhƒE‚ðƒŠƒtƒŒƒbƒVƒ…
@gold_window.refresh
@sell_window.refresh
@status_window.refresh
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ԃ𔄋pƒ‚[ƒh‚Ö
@sell_window.active = true
@sell_window.visible = true
@status_window.visible = false
end
return
end
end
end
# ¡ Scene_Shop
#----------------------------------------------
# @ƒVƒ‡ƒbƒv‰æ–ʂ̈—‚ðs‚¤ƒNƒ‰ƒX‚Å‚·B
#============================================
class Scene_Shop
#------------------------------------------
# œ ƒƒCƒ“ˆ—
#------------------------------------------
def main
# ƒwƒ‹ƒvƒEƒBƒ“ƒhƒE‚ðì¬
@help_window = Window_Help.new
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ðì¬
@command_window = Window_ShopCommand.new
# ƒS[ƒ‹ƒhƒEƒBƒ“ƒhƒE‚ðì¬
@gold_window = Window_Gold.new
@gold_window.x = 480
@gold_window.y = 64
# ƒ_ƒ~[ƒEƒBƒ“ƒhƒE‚ðì¬
@dummy_window = Window_Base.new(0, 128, 640, 352)
# w“üƒEƒBƒ“ƒhƒE‚ðì¬
@buy_window = Window_ShopBuy.new($game_temp.shop_goods)
@buy_window.active = false
@buy_window.visible = false
@buy_window.help_window = @help_window
# ”„‹pƒEƒBƒ“ƒhƒE‚ðì¬
@sell_window = Window_ShopSell.new
@sell_window.active = false
@sell_window.visible = false
@sell_window.help_window = @help_window
# ŒÂ”“ü—̓EƒBƒ“ƒhƒE‚ðì¬
@number_window = Window_ShopNumber.new
@number_window.active = false
@number_window.visible = false
# ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðì¬
@status_window = Window_ShopStatus.new
@status_window.visible = false
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“Às
Graphics.transition
# ƒƒCƒ“ƒ‹[ƒv
loop do
# ƒQ[ƒ€‰æ–Ê‚ðXV
Graphics.update
# “ü—Íî•ñ‚ðXV
Input.update
# ƒtƒŒ[ƒ€XV
update
# ‰æ–Ê‚ªØ‚è‘Ö‚í‚Á‚½‚烋[ƒv‚ð’†’f
if $scene != self
break
end
end
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“€”õ
Graphics.freeze
# ƒEƒBƒ“ƒhƒE‚ð‰ð•ú
@help_window.dispose
@command_window.dispose
@gold_window.dispose
@dummy_window.dispose
@buy_window.dispose
@sell_window.dispose
@number_window.dispose
@status_window.dispose
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV
#------------------------------------------
def update
# ƒEƒBƒ“ƒhƒE‚ðXV
@help_window.update
@command_window.update
@gold_window.update
@dummy_window.update
@buy_window.update
@sell_window.update
@number_window.update
@status_window.update
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡: update_command ‚ðŒÄ‚Ô
if @command_window.active
update_command
return
end
# w“üƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡: update_buy ‚ðŒÄ‚Ô
if @buy_window.active
update_buy
return
end
# ”„‹pƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡: update_sell ‚ðŒÄ‚Ô
if @sell_window.active
update_sell
return
end
# ŒÂ”“ü—̓EƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡: update_number ‚ðŒÄ‚Ô
if @number_window.active
update_number
return
end
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡)
#------------------------------------------
def update_command
# B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::B)
# ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t
$game_system.se_play($data_system.cancel_se)
# ƒ}ƒbƒv‰æ–Ê‚ÉØ‚è‘Ö‚¦
$scene = Scene_Map.new
return
end
# C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::C)
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚̃J[ƒƒ‹ˆÊ’u‚Å•ªŠò
case @command_window.index
when 0 # w“ü‚·‚é
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ô‚ðw“üƒ‚[ƒh‚Ö
@command_window.active = false
@dummy_window.visible = false
@buy_window.active = true
@buy_window.visible = true
@buy_window.refresh
@status_window.visible = true
when 1 # ”„‹p‚·‚é
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ԃ𔄋pƒ‚[ƒh‚Ö
@command_window.active = false
@dummy_window.visible = false
@sell_window.active = true
@sell_window.visible = true
@sell_window.refresh
when 2 # ‚â‚ß‚é
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒ}ƒbƒv‰æ–Ê‚ÉØ‚è‘Ö‚¦
$scene = Scene_Map.new
end
return
end
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV (w“üƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡)
#------------------------------------------
def update_buy
# ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚̃AƒCƒeƒ€‚ðÝ’è
@status_window.item = @buy_window.item
# B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::B)
# ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t
$game_system.se_play($data_system.cancel_se)
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ô‚ð‰Šúƒ‚[ƒh‚Ö
@command_window.active = true
@dummy_window.visible = true
@buy_window.active = false
@buy_window.visible = false
@status_window.visible = false
@status_window.item = nil
# ƒwƒ‹ƒvƒeƒLƒXƒg‚ðÁ‹
@help_window.set_text("")
return
end
# C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::C)
# ƒAƒCƒeƒ€‚ðæ“¾
@item = @buy_window.item
# ƒAƒCƒeƒ€‚ª–³Œø‚Ìê‡A‚Ü‚½‚͉¿Ši‚ªŠ‹à‚æ‚èã‚Ìê‡
if @item == nil or @item.price > $game_party.gold
# ƒuƒU[ SE ‚ð‰‰‘t
$game_system.se_play($data_system.buzzer_se)
return
end
# ƒAƒCƒeƒ€‚ÌŠ”‚ðæ“¾
case @item
when RPG::Item
number = $game_party.item_number(@item.id)
when RPG::Weapon
number = $game_party.weapon_number(@item.id)
when RPG::Armor
number = $game_party.armor_number(@item.id)
end
# ‚·‚Å‚É 99 ŒÂŠ‚µ‚Ä‚¢‚éê‡
if number == 99
# ƒuƒU[ SE ‚ð‰‰‘t
$game_system.se_play($data_system.buzzer_se)
return
end
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# Å‘åw“ü‰Â”ŒÂ”‚ðŒvZ
max = @item.price == 0 ? 99 : $game_party.gold / @item.price
max = [max, 99 - number].min
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ô‚ðŒÂ”“ü—̓‚[ƒh‚Ö
@buy_window.active = false
@buy_window.visible = false
@number_window.set(@item, max, @item.price)
@number_window.active = true
@number_window.visible = true
end
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV (”„‹pƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡)
#------------------------------------------
def update_sell
# B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::B)
# ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t
$game_system.se_play($data_system.cancel_se)
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ô‚ð‰Šúƒ‚[ƒh‚Ö
@command_window.active = true
@dummy_window.visible = true
@sell_window.active = false
@sell_window.visible = false
@status_window.item = nil
# ƒwƒ‹ƒvƒeƒLƒXƒg‚ðÁ‹
@help_window.set_text("")
return
end
# C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::C)
# ƒAƒCƒeƒ€‚ðæ“¾
@item = @sell_window.item
# ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚̃AƒCƒeƒ€‚ðÝ’è
@status_window.item = @item
# ƒAƒCƒeƒ€‚ª–³Œø‚Ìê‡A‚Ü‚½‚͉¿Ši‚ª 0 (”„‹p•s‰Â) ‚Ìê‡
if @item == nil or @item.price == 0
# ƒuƒU[ SE ‚ð‰‰‘t
$game_system.se_play($data_system.buzzer_se)
return
end
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒAƒCƒeƒ€‚ÌŠ”‚ðæ“¾
case @item
when RPG::Item
number = $game_party.item_number(@item.id)
when RPG::Weapon
number = $game_party.weapon_number(@item.id)
when RPG::Armor
number = $game_party.armor_number(@item.id)
end
# ő唄‹pŒÂ” = ƒAƒCƒeƒ€‚ÌŠ”
max = number
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ô‚ðŒÂ”“ü—̓‚[ƒh‚Ö
@sell_window.active = false
@sell_window.visible = false
@number_window.set(@item, max, @item.price / 2)
@number_window.active = true
@number_window.visible = true
@status_window.visible = true
end
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ŒÂ”“ü—̓EƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìê‡)
#------------------------------------------
def update_number
# B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::B)
# ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t
$game_system.se_play($data_system.cancel_se)
# ŒÂ”“ü—̓EƒBƒ“ƒhƒE‚ð”ñƒAƒNƒeƒBƒuE•s‰Â‹‚ÉÝ’è
@number_window.active = false
@number_window.visible = false
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚̃J[ƒƒ‹ˆÊ’u‚Å•ªŠò
case @command_window.index
when 0 # w“ü‚·‚é
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ô‚ðw“üƒ‚[ƒh‚Ö
@buy_window.active = true
@buy_window.visible = true
when 1 # ”„‹p‚·‚é
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ԃ𔄋pƒ‚[ƒh‚Ö
@sell_window.active = true
@sell_window.visible = true
@status_window.visible = false
end
return
end
# C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::C)
# ƒVƒ‡ƒbƒv SE ‚ð‰‰‘t
$game_system.se_play($data_system.shop_se)
# ŒÂ”“ü—̓EƒBƒ“ƒhƒE‚ð”ñƒAƒNƒeƒBƒuE•s‰Â‹‚ÉÝ’è
@number_window.active = false
@number_window.visible = false
# ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚̃J[ƒƒ‹ˆÊ’u‚Å•ªŠò
case @command_window.index
when 0 # w“ü‚·‚é
# w“üˆ—
$game_party.lose_gold(@number_window.number * @item.price)
case @item
when RPG::Item
$game_party.gain_item(@item.id, @number_window.number)
when RPG::Weapon
$game_party.gain_weapon(@item.id, @number_window.number)
when RPG::Armor
$game_party.gain_armor(@item.id, @number_window.number)
end
# ŠeƒEƒBƒ“ƒhƒE‚ðƒŠƒtƒŒƒbƒVƒ…
@gold_window.refresh
@buy_window.refresh
@status_window.refresh
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ô‚ðw“üƒ‚[ƒh‚Ö
@buy_window.active = true
@buy_window.visible = true
when 1 # ”„‹p‚·‚é
# ”„‹pˆ—
$game_party.gain_gold(@number_window.number * (@item.price / 2))
case @item
when RPG::Item
$game_party.lose_item(@item.id, @number_window.number)
when RPG::Weapon
$game_party.lose_weapon(@item.id, @number_window.number)
when RPG::Armor
$game_party.lose_armor(@item.id, @number_window.number)
end
# ŠeƒEƒBƒ“ƒhƒE‚ðƒŠƒtƒŒƒbƒVƒ…
@gold_window.refresh
@sell_window.refresh
@status_window.refresh
# ƒEƒBƒ“ƒhƒE‚Ìó‘Ԃ𔄋pƒ‚[ƒh‚Ö
@sell_window.active = true
@sell_window.visible = true
@status_window.visible = false
end
return
end
end
end
Publicité