Scene_Battle 2

Publié le par chindan

#============================================
# ¡ Scene_Battle (•ªŠ„’è‹` 2)
#----------------------------------------------
# @ƒoƒgƒ‹‰æ–ʂ̏ˆ—‚ðs‚¤ƒNƒ‰ƒX‚Å‚·B
#============================================

class Scene_Battle
#------------------------------------------
# œ ƒvƒŒƒoƒgƒ‹ƒtƒF[ƒYŠJŽn
#------------------------------------------
def start_phase1
# ƒtƒF[ƒY 1 ‚Ɉڍs
@phase = 1
# ƒp[ƒeƒB‘Sˆõ‚̃AƒNƒVƒ‡ƒ“‚ðƒNƒŠƒA
$game_party.clear_actions
# ƒoƒgƒ‹ƒCƒxƒ“ƒg‚ðƒZƒbƒgƒAƒbƒv
setup_battle_event
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒvƒŒƒoƒgƒ‹ƒtƒF[ƒY)
#------------------------------------------
def update_phase1
# Ÿ”s”»’è
if judge
# Ÿ—˜‚Ü‚½‚Í”s–k‚̏ꍇ : ƒƒƒbƒhI—¹
return
end
# ƒp[ƒeƒBƒRƒ}ƒ“ƒhƒtƒF[ƒYŠJŽn
start_phase2
end
#------------------------------------------
# œ ƒp[ƒeƒBƒRƒ}ƒ“ƒhƒtƒF[ƒYŠJŽn
#------------------------------------------
def start_phase2
# ƒtƒF[ƒY 2 ‚Ɉڍs
@phase = 2
# ƒAƒNƒ^[‚ð”ñ‘I‘ðó‘Ԃɐݒè
@actor_index = -1
@active_battler = nil
# ƒp[ƒeƒBƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ð—LŒø‰»
@party_command_window.active = true
@party_command_window.visible = true
# ƒAƒNƒ^[ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚𖳌ø‰»
@actor_command_window.active = false
@actor_command_window.visible = false
# ƒƒCƒ“ƒtƒF[ƒYƒtƒ‰ƒO‚ðƒNƒŠƒA
$game_temp.battle_main_phase = false
# ƒp[ƒeƒB‘Sˆõ‚̃AƒNƒVƒ‡ƒ“‚ðƒNƒŠƒA
$game_party.clear_actions
# ƒRƒ}ƒ“ƒh“ü—Í•s‰Â”‚ȏꍇ
unless $game_party.inputable?
# ƒƒCƒ“ƒtƒF[ƒYŠJŽn
start_phase4
end
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒp[ƒeƒBƒRƒ}ƒ“ƒhƒtƒF[ƒY)
#------------------------------------------
def update_phase2
# C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::C)
# ƒp[ƒeƒBƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚̃J[ƒƒ‹ˆÊ’u‚Å•ªŠò
case @party_command_window.index
when 0 # í‚¤
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒAƒNƒ^[ƒRƒ}ƒ“ƒhƒtƒF[ƒYŠJŽn
start_phase3
when 1 # “¦‚°‚é
# “¦‘–‰Â”‚Å‚Í‚È‚¢ê‡
if $game_temp.battle_can_escape == false
# ƒuƒU[ SE ‚ð‰‰‘t
$game_system.se_play($data_system.buzzer_se)
return
end
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# “¦‘–ˆ—
update_phase2_escape
end
return
end
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒp[ƒeƒBƒRƒ}ƒ“ƒhƒtƒF[ƒY : “¦‚°‚é)
#------------------------------------------
def update_phase2_escape
# ƒGƒlƒ~[‚Ì‘f‘‚³•½‹Ï’l‚ðŒvŽZ
enemies_agi = 0
enemies_number = 0
for enemy in $game_troop.enemies
if enemy.exist?
enemies_agi += enemy.agi
enemies_number += 1
end
end
if enemies_number > 0
enemies_agi /= enemies_number
end
# ƒAƒNƒ^[‚Ì‘f‘‚³•½‹Ï’l‚ðŒvŽZ
actors_agi = 0
actors_number = 0
for actor in $game_party.actors
if actor.exist?
actors_agi += actor.agi
actors_number += 1
end
end
if actors_number > 0
actors_agi /= actors_number
end
# “¦‘–¬Œ÷”»’è
success = rand(100) < 50 * actors_agi / enemies_agi
# “¦‘–¬Œ÷‚̏ꍇ
if success
# “¦‘– SE ‚ð‰‰‘t
$game_system.se_play($data_system.escape_se)
# ƒoƒgƒ‹ŠJŽn‘O‚Ì BGM ‚É–ß‚·
$game_system.bgm_play($game_temp.map_bgm)
# ƒoƒgƒ‹I—¹
battle_end(1)
# “¦‘–Ž¸”s‚̏ꍇ
else
# ƒp[ƒeƒB‘Sˆõ‚̃AƒNƒVƒ‡ƒ“‚ðƒNƒŠƒA
$game_party.clear_actions
# ƒƒCƒ“ƒtƒF[ƒYŠJŽn
start_phase4
end
end
#------------------------------------------
# œ ƒAƒtƒ^[ƒoƒgƒ‹ƒtƒF[ƒYŠJŽn
#------------------------------------------
def start_phase5
# ƒtƒF[ƒY 5 ‚Ɉڍs
@phase = 5
# ƒoƒgƒ‹I—¹ ME ‚ð‰‰‘t
$game_system.me_play($game_system.battle_end_me)
# ƒoƒgƒ‹ŠJŽn‘O‚Ì BGM ‚É–ß‚·
$game_system.bgm_play($game_temp.map_bgm)
# EXPAƒS[ƒ‹ƒhAƒgƒŒƒWƒƒ[‚ð‰Šú‰»
exp = 0
gold = 0
treasures = []
# ƒ‹[ƒv
for enemy in $game_troop.enemies
# ƒGƒlƒ~[‚ª‰B‚êó‘Ô‚Å‚È‚¢ê‡
unless enemy.hidden
# Šl“¾ EXPAƒS[ƒ‹ƒh‚ð’ljÁ
exp += enemy.exp
gold += enemy.gold
# ƒgƒŒƒWƒƒ[oŒ»”»’è
if rand(100) < enemy.treasure_prob
if enemy.item_id > 0
treasures.push($data_items[enemy.item_id])
end
if enemy.weapon_id > 0
treasures.push($data_weapons[enemy.weapon_id])
end
if enemy.armor_id > 0
treasures.push($data_armors[enemy.armor_id])
end
end
end
end
# ƒgƒŒƒWƒƒ[‚̐”‚ð 6 ŒÂ‚Ü‚Å‚ÉŒÀ’è
treasures = treasures[0..5]
# EXP Šl“¾
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
if actor.cant_get_exp? == false
last_level = actor.level
actor.exp += exp
if actor.level > last_level
@status_window.level_up(i)
end
end
end
# ƒS[ƒ‹ƒhŠl“¾
$game_party.gain_gold(gold)
# ƒgƒŒƒWƒƒ[Šl“¾
for item in treasures
case item
when RPG::Item
$game_party.gain_item(item.id, 1)
when RPG::Weapon
$game_party.gain_weapon(item.id, 1)
when RPG::Armor
$game_party.gain_armor(item.id, 1)
end
end
# ƒoƒgƒ‹ƒŠƒUƒ‹ƒgƒEƒBƒ“ƒhƒE‚ðì¬
@result_window = Window_BattleResult.new(exp, gold, treasures)
# ƒEƒFƒCƒgƒJƒEƒ“ƒg‚ðÝ’è
@phase5_wait_count = 100
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒAƒtƒ^[ƒoƒgƒ‹ƒtƒF[ƒY)
#------------------------------------------
def update_phase5
# ƒEƒFƒCƒgƒJƒEƒ“ƒg‚ª 0 ‚æ‚è‘å‚«‚¢ê‡
if @phase5_wait_count > 0
# ƒEƒFƒCƒgƒJƒEƒ“ƒg‚ðŒ¸‚ç‚·
@phase5_wait_count -= 1
# ƒEƒFƒCƒgƒJƒEƒ“ƒg‚ª 0 ‚É‚È‚Á‚½ê‡
if @phase5_wait_count == 0
# ƒŠƒUƒ‹ƒgƒEƒBƒ“ƒhƒE‚𕎦
@result_window.visible = true
# ƒƒCƒ“ƒtƒF[ƒYƒtƒ‰ƒO‚ðƒNƒŠƒA
$game_temp.battle_main_phase = false
# ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðƒŠƒtƒŒƒbƒVƒ…
@status_window.refresh
end
return
end
# C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::C)
# ƒoƒgƒ‹I—¹
battle_end(0)
end
end
end

Publié dans poubelle

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