Auteur: Yukihiro matsumoto
#============================================
# ‘ Scene_Battle (ͺθ` 3)
#----------------------------------------------
# @ogζΚΜπs€NXΕ·B
#============================================
class Scene_Battle
#------------------------------------------
# AN^[R}htF[YJn
#------------------------------------------
def start_phase3
# tF[Y 3 ΙΪs
@phase = 3
# AN^[πρIπσΤΙέθ
@actor_index = -1
@active_battler = nil
# ΜAN^[ΜR}hόΝΦ
phase3_next_actor
end
#------------------------------------------
# ΜAN^[ΜR}hόΝΦ
#------------------------------------------
def phase3_next_actor
# [v
begin
# AN^[ΜΎΕGtFNg OFF
if @active_battler != nil
@active_battler.blink = false
end
# ΕγΜAN^[Μκ
if @actor_index == $game_party.actors.size-1
# CtF[YJn
start_phase4
return
end
# AN^[ΜCfbNXπiίι
@actor_index += 1
@active_battler = $game_party.actors[@actor_index]
@active_battler.blink = true
# AN^[ͺR}hόΝπσ―t―Θ’σΤΘηΰ€κx
end until @active_battler.inputable?
# AN^[R}hEBhEπZbgAbv
phase3_setup_command_window
end
#------------------------------------------
# OΜAN^[ΜR}hόΝΦ
#------------------------------------------
def phase3_prior_actor
# [v
begin
# AN^[ΜΎΕGtFNg OFF
if @active_battler != nil
@active_battler.blink = false
end
# ΕΜAN^[Μκ
if @actor_index == 0
# p[eBR}htF[YJn
start_phase2
return
end
# AN^[ΜCfbNXπί·
@actor_index -= 1
@active_battler = $game_party.actors[@actor_index]
@active_battler.blink = true
# AN^[ͺR}hόΝπσ―t―Θ’σΤΘηΰ€κx
end until @active_battler.inputable?
# AN^[R}hEBhEπZbgAbv
phase3_setup_command_window
end
#------------------------------------------
# AN^[R}hEBhEΜZbgAbv
#------------------------------------------
def phase3_setup_command_window
# p[eBR}hEBhEπ³ψ»
@party_command_window.active = false
@party_command_window.visible = false
# AN^[R}hEBhEπLψ»
@actor_command_window.active = true
@actor_command_window.visible = true
# AN^[R}hEBhEΜΚuπέθ
@actor_command_window.x = @actor_index * 160
# CfbNXπ 0 Ιέθ
@actor_command_window.index = 0
end
#------------------------------------------
# t[XV (AN^[R}htF[Y)
#------------------------------------------
def update_phase3
# Gl~[A[ͺLψΜκ
if @enemy_arrow != nil
update_phase3_enemy_select
# AN^[A[ͺLψΜκ
elsif @actor_arrow != nil
update_phase3_actor_select
# XLEBhEͺLψΜκ
elsif @skill_window != nil
update_phase3_skill_select
# ACeEBhEͺLψΜκ
elsif @item_window != nil
update_phase3_item_select
# AN^[R}hEBhEͺLψΜκ
elsif @actor_command_window.active
update_phase3_basic_command
end
end
#------------------------------------------
# t[XV (AN^[R}htF[Y : ξ{R}h)
#------------------------------------------
def update_phase3_basic_command
# B {^ͺ³κ½κ
if Input.trigger?(Input::B)
# LZ SE πt
$game_system.se_play($data_system.cancel_se)
# OΜAN^[ΜR}hόΝΦ
phase3_prior_actor
return
end
# C {^ͺ³κ½κ
if Input.trigger?(Input::C)
# AN^[R}hEBhEΜJ[ΚuΕͺς
case @actor_command_window.index
when 0 # U
# θ SE πt
$game_system.se_play($data_system.decision_se)
# ANVπέθ
@active_battler.current_action.kind = 0
@active_battler.current_action.basic = 0
# Gl~[ΜIππJn
start_enemy_select
when 1 # XL
# θ SE πt
$game_system.se_play($data_system.decision_se)
# ANVπέθ
@active_battler.current_action.kind = 1
# XLΜIππJn
start_skill_select
when 2 # hδ
# θ SE πt
$game_system.se_play($data_system.decision_se)
# ANVπέθ
@active_battler.current_action.kind = 0
@active_battler.current_action.basic = 1
# ΜAN^[ΜR}hόΝΦ
phase3_next_actor
when 3 # ACe
# θ SE πt
$game_system.se_play($data_system.decision_se)
# ANVπέθ
@active_battler.current_action.kind = 2
# ACeΜIππJn
start_item_select
end
return
end
end
#------------------------------------------
# t[XV (AN^[R}htF[Y : XLIπ)
#------------------------------------------
def update_phase3_skill_select
# XLEBhEπΒσΤΙ·ι
@skill_window.visible = true
# XLEBhEπXV
@skill_window.update
# B {^ͺ³κ½κ
if Input.trigger?(Input::B)
# LZ SE πt
$game_system.se_play($data_system.cancel_se)
# XLΜIππIΉ
end_skill_select
return
end
# C {^ͺ³κ½κ
if Input.trigger?(Input::C)
# XLEBhEΕ»έIπ³κΔ’ιf[^πζΎ
@skill = @skill_window.skill
# gpΕ«Θ’κ
if @skill == nil or not @active_battler.skill_can_use?(@skill.id)
# uU[ SE πt
$game_system.se_play($data_system.buzzer_se)
return
end
# θ SE πt
$game_system.se_play($data_system.decision_se)
# ANVπέθ
@active_battler.current_action.skill_id = @skill.id
# XLEBhEπsΒσΤΙ·ι
@skill_window.visible = false
# ψΚΝΝͺGPΜΜκ
if @skill.scope == 1
# Gl~[ΜIππJn
start_enemy_select
# ψΚΝΝͺ‘ϋPΜΜκ
elsif @skill.scope == 3 or @skill.scope == 5
# AN^[ΜIππJn
start_actor_select
# ψΚΝΝͺPΜΕΝΘ’κ
else
# XLΜIππIΉ
end_skill_select
# ΜAN^[ΜR}hόΝΦ
phase3_next_actor
end
return
end
end
#------------------------------------------
# t[XV (AN^[R}htF[Y : ACeIπ)
#------------------------------------------
def update_phase3_item_select
# ACeEBhEπΒσΤΙ·ι
@item_window.visible = true
# ACeEBhEπXV
@item_window.update
# B {^ͺ³κ½κ
if Input.trigger?(Input::B)
# LZ SE πt
$game_system.se_play($data_system.cancel_se)
# ACeΜIππIΉ
end_item_select
return
end
# C {^ͺ³κ½κ
if Input.trigger?(Input::C)
# ACeEBhEΕ»έIπ³κΔ’ιf[^πζΎ
@item = @item_window.item
# 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)
# ANVπέθ
@active_battler.current_action.item_id = @item.id
# ACeEBhEπsΒσΤΙ·ι
@item_window.visible = false
# ψΚΝΝͺGPΜΜκ
if @item.scope == 1
# Gl~[ΜIππJn
start_enemy_select
# ψΚΝΝͺ‘ϋPΜΜκ
elsif @item.scope == 3 or @item.scope == 5
# AN^[ΜIππJn
start_actor_select
# ψΚΝΝͺPΜΕΝΘ’κ
else
# ACeΜIππIΉ
end_item_select
# ΜAN^[ΜR}hόΝΦ
phase3_next_actor
end
return
end
end
#------------------------------------------
# t[XV (AN^[R}htF[Y : Gl~[Iπ)
#------------------------------------------
def update_phase3_enemy_select
# Gl~[A[πXV
@enemy_arrow.update
# B {^ͺ³κ½κ
if Input.trigger?(Input::B)
# LZ SE πt
$game_system.se_play($data_system.cancel_se)
# Gl~[ΜIππIΉ
end_enemy_select
return
end
# C {^ͺ³κ½κ
if Input.trigger?(Input::C)
# θ SE πt
$game_system.se_play($data_system.decision_se)
# ANVπέθ
@active_battler.current_action.target_index = @enemy_arrow.index
# Gl~[ΜIππIΉ
end_enemy_select
# XLEBhE¦Μκ
if @skill_window != nil
# XLΜIππIΉ
end_skill_select
end
# ACeEBhE¦Μκ
if @item_window != nil
# ACeΜIππIΉ
end_item_select
end
# ΜAN^[ΜR}hόΝΦ
phase3_next_actor
end
end
#------------------------------------------
# t[XV (AN^[R}htF[Y : AN^[Iπ)
#------------------------------------------
def update_phase3_actor_select
# AN^[A[πXV
@actor_arrow.update
# B {^ͺ³κ½κ
if Input.trigger?(Input::B)
# LZ SE πt
$game_system.se_play($data_system.cancel_se)
# AN^[ΜIππIΉ
end_actor_select
return
end
# C {^ͺ³κ½κ
if Input.trigger?(Input::C)
# θ SE πt
$game_system.se_play($data_system.decision_se)
# ANVπέθ
@active_battler.current_action.target_index = @actor_arrow.index
# AN^[ΜIππIΉ
end_actor_select
# XLEBhE¦Μκ
if @skill_window != nil
# XLΜIππIΉ
end_skill_select
end
# ACeEBhE¦Μκ
if @item_window != nil
# ACeΜIππIΉ
end_item_select
end
# ΜAN^[ΜR}hόΝΦ
phase3_next_actor
end
end
#------------------------------------------
# Gl~[IπJn
#------------------------------------------
def start_enemy_select
# Gl~[A[πμ¬
@enemy_arrow = Arrow_Enemy.new(@spriteset.viewport1)
# wvEBhEπΦAt―
@enemy_arrow.help_window = @help_window
# AN^[R}hEBhEπ³ψ»
@actor_command_window.active = false
@actor_command_window.visible = false
end
#------------------------------------------
# Gl~[IπIΉ
#------------------------------------------
def end_enemy_select
# Gl~[A[ππϊ
@enemy_arrow.dispose
@enemy_arrow = nil
# R}hͺ [ν€] Μκ
if @actor_command_window.index == 0
# AN^[R}hEBhEπLψ»
@actor_command_window.active = true
@actor_command_window.visible = true
# wvEBhEπB·
@help_window.visible = false
end
end
#------------------------------------------
# AN^[IπJn
#------------------------------------------
def start_actor_select
# AN^[A[πμ¬
@actor_arrow = Arrow_Actor.new(@spriteset.viewport2)
@actor_arrow.index = @actor_index
# wvEBhEπΦAt―
@actor_arrow.help_window = @help_window
# AN^[R}hEBhEπ³ψ»
@actor_command_window.active = false
@actor_command_window.visible = false
end
#------------------------------------------
# AN^[IπIΉ
#------------------------------------------
def end_actor_select
# AN^[A[ππϊ
@actor_arrow.dispose
@actor_arrow = nil
end
#------------------------------------------
# XLIπJn
#------------------------------------------
def start_skill_select
# XLEBhEπμ¬
@skill_window = Window_Skill.new(@active_battler)
# wvEBhEπΦAt―
@skill_window.help_window = @help_window
# AN^[R}hEBhEπ³ψ»
@actor_command_window.active = false
@actor_command_window.visible = false
end
#------------------------------------------
# XLIπIΉ
#------------------------------------------
def end_skill_select
# XLEBhEππϊ
@skill_window.dispose
@skill_window = nil
# wvEBhEπB·
@help_window.visible = false
# AN^[R}hEBhEπLψ»
@actor_command_window.active = true
@actor_command_window.visible = true
end
#------------------------------------------
# ACeIπJn
#------------------------------------------
def start_item_select
# ACeEBhEπμ¬
@item_window = Window_Item.new
# wvEBhEπΦAt―
@item_window.help_window = @help_window
# AN^[R}hEBhEπ³ψ»
@actor_command_window.active = false
@actor_command_window.visible = false
end
#------------------------------------------
# ACeIπIΉ
#------------------------------------------
def end_item_select
# ACeEBhEππϊ
@item_window.dispose
@item_window = nil
# wvEBhEπB·
@help_window.visible = false
# AN^[R}hEBhEπLψ»
@actor_command_window.active = true
@actor_command_window.visible = true
end
end |
|