Auteur: Yukihiro matsumoto
#============================================
# ‘ Scene_Item
#----------------------------------------------
# @ACeζΚΜπs€NXΕ·B
#============================================
class Scene_Item
#------------------------------------------
# C
#------------------------------------------
def main
# wvEBhEAACeEBhEπμ¬
@help_window = Window_Help.new
@item_window = Window_Item.new
# wvEBhEπΦAt―
@item_window.help_window = @help_window
# ^[QbgEBhEπμ¬ (sΒEρANeBuΙέθ)
@target_window = Window_Target.new
@target_window.visible = false
@target_window.active = false
# gWVΐ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
# gWVυ
Graphics.freeze
# EBhEππϊ
@help_window.dispose
@item_window.dispose
@target_window.dispose
end
#------------------------------------------
# t[XV
#------------------------------------------
def update
# EBhEπXV
@help_window.update
@item_window.update
@target_window.update
# ACeEBhEͺANeBuΜκ: update_item πΔΤ
if @item_window.active
update_item
return
end
# ^[QbgEBhEͺANeBuΜκ: update_target πΔΤ
if @target_window.active
update_target
return
end
end
#------------------------------------------
# t[XV (ACeEBhEͺANeBuΜκ)
#------------------------------------------
def update_item
# B {^ͺ³κ½κ
if Input.trigger?(Input::B)
# LZ SE πt
$game_system.se_play($data_system.cancel_se)
# j
[ζΚΙΨθΦ¦
$scene = Scene_Menu.new(0)
return
end
# C {^ͺ³κ½κ
if Input.trigger?(Input::C)
# ACeEBhEΕ»έIπ³κΔ’ιf[^πζΎ
@item = @item_window.item
# gpACeΕΝΘ’κ
unless @item.is_a?(RPG::Item)
# uU[ SE πt
$game_system.se_play($data_system.buzzer_se)
return
end
# gpΕ«Θ’κ
unless $game_party.item_can_use?(@item.id)
# uU[ SE πt
$game_system.se_play($data_system.buzzer_se)
return
end
# θ SE πt
$game_system.se_play($data_system.decision_se)
# ψΚΝΝͺ‘ϋΜκ
if @item.scope >= 3
# ^[QbgEBhEπANeBu»
@item_window.active = false
@target_window.x = (@item_window.index + 1) % 2 * 304
@target_window.visible = true
@target_window.active = true
# ψΚΝΝ (PΜ/SΜ) ΙΆΔJ[Κuπέθ
if @item.scope == 4 || @item.scope == 6
@target_window.index = -1
else
@target_window.index = 0
end
# ψΚΝΝͺ‘ϋΘOΜκ
else
# RCxg ID ͺLψΜκ
if @item.common_event_id > 0
# RCxgΔΡo΅ρ
$game_temp.common_event_id = @item.common_event_id
# ACeΜgp SE πt
$game_system.se_play(@item.menu_se)
# ΑΥiΜκ
if @item.consumable
# gp΅½ACeπ 1 Έη·
$game_party.lose_item(@item.id, 1)
# ACeEBhEΜΪπΔ`ζ
@item_window.draw_item(@item_window.index)
end
# }bvζΚΙΨθΦ¦
$scene = Scene_Map.new
return
end
end
return
end
end
#------------------------------------------
# t[XV (^[QbgEBhEͺANeBuΜκ)
#------------------------------------------
def update_target
# B {^ͺ³κ½κ
if Input.trigger?(Input::B)
# LZ SE πt
$game_system.se_play($data_system.cancel_se)
# ACeΨκΘΗΕgpΕ«ΘΘΑ½κ
unless $game_party.item_can_use?(@item.id)
# ACeEBhEΜΰeπΔμ¬
@item_window.refresh
end
# ^[QbgEBhEπΑ
@item_window.active = true
@target_window.visible = false
@target_window.active = false
return
end
# C {^ͺ³κ½κ
if Input.trigger?(Input::C)
# ACeπg’ΨΑ½κ
if $game_party.item_number(@item.id) == 0
# uU[ SE πt
$game_system.se_play($data_system.buzzer_se)
return
end
# ^[QbgͺSΜΜκ
if @target_window.index == -1
# p[eBSΜΙACeΜgpψΚπKp
used = false
for i in $game_party.actors
used |= i.item_effect(@item)
end
end
# ^[QbgͺPΜΜκ
if @target_window.index >= 0
# ^[QbgΜAN^[ΙACeΜgpψΚπKp
target = $game_party.actors[@target_window.index]
used = target.item_effect(@item)
end
# ACeπgΑ½κ
if used
# ACeΜgp SE πt
$game_system.se_play(@item.menu_se)
# ΑΥiΜκ
if @item.consumable
# gp΅½ACeπ 1 Έη·
$game_party.lose_item(@item.id, 1)
# ACeEBhEΜΪπΔ`ζ
@item_window.draw_item(@item_window.index)
end
# ^[QbgEBhEΜΰeπΔμ¬
@target_window.refresh
# SΕΜκ
if $game_party.all_dead?
# Q[I[o[ζΚΙΨθΦ¦
$scene = Scene_Gameover.new
return
end
# RCxg ID ͺLψΜκ
if @item.common_event_id > 0
# RCxgΔΡo΅ρ
$game_temp.common_event_id = @item.common_event_id
# }bvζΚΙΨθΦ¦
$scene = Scene_Map.new
return
end
end
# ACeπgνΘ©Α½κ
unless used
# uU[ SE πt
$game_system.se_play($data_system.buzzer_se)
end
return
end
end
end |
|