Scene_Equip

Publié le par chindan

#============================================
# ¡ Scene_Equip
#----------------------------------------------
# @‘•”õ‰æ–ʂ̏ˆ—‚ðs‚¤ƒNƒ‰ƒX‚Å‚·B
#============================================

class Scene_Equip
#------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
# actor_index : ƒAƒNƒ^[ƒCƒ“ƒfƒbƒNƒX
# equip_index : ‘•”õƒCƒ“ƒfƒbƒNƒX
#------------------------------------------
def initialize(actor_index = 0, equip_index = 0)
@actor_index = actor_index
@equip_index = equip_index
end
#------------------------------------------
# œ ƒƒCƒ“ˆ—
#------------------------------------------
def main
# ƒAƒNƒ^[‚ðŽæ“¾
@actor = $game_party.actors[@actor_index]
# ƒEƒBƒ“ƒhƒE‚ðì¬
@help_window = Window_Help.new
@left_window = Window_EquipLeft.new(@actor)
@right_window = Window_EquipRight.new(@actor)
@item_window1 = Window_EquipItem.new(@actor, 0)
@item_window2 = Window_EquipItem.new(@actor, 1)
@item_window3 = Window_EquipItem.new(@actor, 2)
@item_window4 = Window_EquipItem.new(@actor, 3)
@item_window5 = Window_EquipItem.new(@actor, 4)
# ƒwƒ‹ƒvƒEƒBƒ“ƒhƒE‚ðŠÖ˜A•t‚¯
@right_window.help_window = @help_window
@item_window1.help_window = @help_window
@item_window2.help_window = @help_window
@item_window3.help_window = @help_window
@item_window4.help_window = @help_window
@item_window5.help_window = @help_window
# ƒJ[ƒƒ‹ˆÊ’u‚ðÝ’è
@right_window.index = @equip_index
refresh
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“ŽÀs
Graphics.transition
# ƒƒCƒ“ƒ‹[ƒv
loop do
# ƒQ[ƒ€‰æ–Ê‚ðXV
Graphics.update
# “ü—͏î•ñ‚ðXV
Input.update
# ƒtƒŒ[ƒ€XV
update
# ‰æ–Ê‚ªØ‚è‘Ö‚í‚Á‚½‚烋[ƒv‚ð’†’f
if $scene != self
break
end
end
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“€”õ
Graphics.freeze
# ƒEƒBƒ“ƒhƒE‚ð‰ð•ú
@help_window.dispose
@left_window.dispose
@right_window.dispose
@item_window1.dispose
@item_window2.dispose
@item_window3.dispose
@item_window4.dispose
@item_window5.dispose
end
#------------------------------------------
# œ ƒŠƒtƒŒƒbƒVƒ…
#------------------------------------------
def refresh
# ƒAƒCƒeƒ€ƒEƒBƒ“ƒhƒE‚̉Ž‹ó‘Ԑݒè
@item_window1.visible = (@right_window.index == 0)
@item_window2.visible = (@right_window.index == 1)
@item_window3.visible = (@right_window.index == 2)
@item_window4.visible = (@right_window.index == 3)
@item_window5.visible = (@right_window.index == 4)
# Œ»Ý‘•”õ’†‚̃AƒCƒeƒ€‚ðŽæ“¾
item1 = @right_window.item
# Œ»Ý‚̃AƒCƒeƒ€ƒEƒBƒ“ƒhƒE‚ð @item_window ‚ɐݒè
case @right_window.index
when 0
@item_window = @item_window1
when 1
@item_window = @item_window2
when 2
@item_window = @item_window3
when 3
@item_window = @item_window4
when 4
@item_window = @item_window5
end
# ƒ‰ƒCƒgƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚̏ꍇ
if @right_window.active
# ‘•”õ•ύXŒã‚̃pƒ‰ƒ[ƒ^‚ðÁ‹Ž
@left_window.set_new_parameters(nil, nil, nil)
end
# ƒAƒCƒeƒ€ƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚̏ꍇ
if @item_window.active
# Œ»Ý‘I‘𒆂̃AƒCƒeƒ€‚ðŽæ“¾
item2 = @item_window.item
# ‘•”õ‚ð•ύX
last_hp = @actor.hp
last_sp = @actor.sp
@actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)
# ‘•”õ•ύXŒã‚̃pƒ‰ƒ[ƒ^‚ðŽæ“¾
new_atk = @actor.atk
new_pdef = @actor.pdef
new_mdef = @actor.mdef
# ‘•”õ‚ð–ß‚·
@actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)
@actor.hp = last_hp
@actor.sp = last_sp
# ƒŒƒtƒgƒEƒBƒ“ƒhƒE‚É•`‰æ
@left_window.set_new_parameters(new_atk, new_pdef, new_mdef)
end
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV
#------------------------------------------
def update
# ƒEƒBƒ“ƒhƒE‚ðXV
@left_window.update
@right_window.update
@item_window.update
refresh
# ƒ‰ƒCƒgƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚̏ꍇ: update_right ‚ðŒÄ‚Ô
if @right_window.active
update_right
return
end
# ƒAƒCƒeƒ€ƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚̏ꍇ: update_item ‚ðŒÄ‚Ô
if @item_window.active
update_item
return
end
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒ‰ƒCƒgƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚̏ꍇ)
#------------------------------------------
def update_right
# B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::B)
# ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t
$game_system.se_play($data_system.cancel_se)
# ƒƒjƒ…[‰æ–ʂɐ؂è‘Ö‚¦
$scene = Scene_Menu.new(2)
return
end
# C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::C)
# ‘•”õŒÅ’è‚̏ꍇ
if @actor.equip_fix?(@right_window.index)
# ƒ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ƒ€ƒEƒBƒ“ƒhƒE‚ðƒAƒNƒeƒBƒu‰»
@right_window.active = false
@item_window.active = true
@item_window.index = 0
return
end
# R ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::R)
# ƒJ[ƒƒ‹ SE ‚ð‰‰‘t
$game_system.se_play($data_system.cursor_se)
# ŽŸ‚̃AƒNƒ^[‚Ö
@actor_index += 1
@actor_index %= $game_party.actors.size
# •ʂ̑•”õ‰æ–ʂɐ؂è‘Ö‚¦
$scene = Scene_Equip.new(@actor_index, @right_window.index)
return
end
# L ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::L)
# ƒJ[ƒƒ‹ SE ‚ð‰‰‘t
$game_system.se_play($data_system.cursor_se)
# ‘O‚̃AƒNƒ^[‚Ö
@actor_index += $game_party.actors.size - 1
@actor_index %= $game_party.actors.size
# •ʂ̑•”õ‰æ–ʂɐ؂è‘Ö‚¦
$scene = Scene_Equip.new(@actor_index, @right_window.index)
return
end
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒAƒCƒeƒ€ƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚̏ꍇ)
#------------------------------------------
def update_item
# B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::B)
# ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t
$game_system.se_play($data_system.cancel_se)
# ƒ‰ƒCƒgƒEƒBƒ“ƒhƒE‚ðƒAƒNƒeƒBƒu‰»
@right_window.active = true
@item_window.active = false
@item_window.index = -1
return
end
# C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::C)
# ‘•”õ SE ‚ð‰‰‘t
$game_system.se_play($data_system.equip_se)
# ƒAƒCƒeƒ€ƒEƒBƒ“ƒhƒE‚ÅŒ»Ý‘I‘ð‚³‚ê‚Ä‚¢‚éƒf[ƒ^‚ðŽæ“¾
item = @item_window.item
# ‘•”õ‚ð•ύX
@actor.equip(@right_window.index, item == nil ? 0 : item.id)
# ƒ‰ƒCƒgƒEƒBƒ“ƒhƒE‚ðƒAƒNƒeƒBƒu‰»
@right_window.active = true
@item_window.active = false
@item_window.index = -1
# ƒ‰ƒCƒgƒEƒBƒ“ƒhƒEAƒAƒCƒeƒ€ƒEƒBƒ“ƒhƒE‚Ì“à—e‚ðÄì¬
@right_window.refresh
@item_window.refresh
return
end
end
end
Publicité

Publié dans poubelle

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article