#============================================================================== # [ZTBS] -Zenith Tactical Battle System- タクティカルバトルシステム #  〜+6:ZTBS専用イベントコマンド〜   by 水夜 #  ver1.01  Zenith Creation (http://zenith.ifdef.jp/) #------------------------------------------------------------------------------ # マップ上での戦略的なバトルを実現。 #============================================================================== class Interpreter #-------------------------------------------------------------------------- # ● 指定イベントへカーソルジャンプ #-------------------------------------------------------------------------- def cursor_moveto_event(event_id) if $game_system.in_tactics event = $game_map.events[event_id] $game_player.moveto(event.x, event.y) # カーソル位置のバトラー(イベント)取得 $scene.get_cursor_battler # ヘルプウィンドウにアクター or エネミーをセット $scene.set_battler_info end return true end #-------------------------------------------------------------------------- # ● 指定座標へカーソルジャンプ #-------------------------------------------------------------------------- def cursor_moveto_position(x, y) if $game_system.in_tactics $game_player.moveto(x, y) # カーソル位置のバトラー(イベント)取得 $scene.get_cursor_battler # ヘルプウィンドウにアクター or エネミーをセット $scene.set_battler_info end return true end #-------------------------------------------------------------------------- # ● ダメージの処理 #-------------------------------------------------------------------------- def add_damage(event_id, damage) # アクターの場合 if $game_system.tactics_actors.keys.include?(event_id) event = $game_map.events[event_id] battler = $game_system.tactics_actors[event_id] # ダメージを与える battler.hp -= damage event.damage = damage event.damage_pop = true if $game_player.x == event.x and $game_player.y == event.y $scene.refresh_battler_info end # 消去対象をチェック $scene.set_erase_battler # エネミーの場合 elsif $game_system.tactics_enemies.keys.include?(event_id) event = $game_map.events[event_id] battler = $game_system.tactics_enemies[event_id] # ダメージを与える battler.hp -= damage event.damage = damage event.damage_pop = true if $game_player.x == event.x and $game_player.y == event.y and !battler.dead? $scene.refresh_battler_info end # 消去対象をチェック $scene.set_erase_battler end return true end #-------------------------------------------------------------------------- # ● ステートの付加 #-------------------------------------------------------------------------- def add_state(event_id, state_id) # アクターの場合 if $game_system.tactics_actors.keys.include?(event_id) event = $game_map.events[event_id] battler = $game_system.tactics_actors[event_id] # ステートを付加 battler.add_state(state_id) if $game_player.x == event.x and $game_player.y == event.y $scene.refresh_battler_info end # 消去対象をチェック $scene.set_erase_battler # エネミーの場合 elsif $game_system.tactics_enemies.keys.include?(event_id) event = $game_map.events[event_id] battler = $game_system.tactics_enemies[event_id] # ステートを付加 battler.add_state(state_id) if $game_player.x == event.x and $game_player.y == event.y $scene.refresh_battler_info end # 消去対象をチェック $scene.set_erase_battler end return true end #-------------------------------------------------------------------------- # ● ステートの解除 #-------------------------------------------------------------------------- def remove_state(event_id, state_id) # アクターの場合 if $game_system.tactics_actors.keys.include?(event_id) event = $game_map.events[event_id] battler = $game_system.tactics_actors[event_id] # ステートを解除 battler.remove_state(state_id) if $game_player.x == event.x and $game_player.y == event.y $scene.refresh_battler_info end # 消去対象をチェック $scene.set_erase_battler # 戦闘不能アクターの場合 elsif $game_system.tactics_dead_actors.keys.include?(event_id) event = $game_map.events[event_id] battler = $game_system.tactics_dead_actors[event_id] # ステートを解除 battler.remove_state(state_id) if $game_player.x == event.x and $game_player.y == event.y $scene.refresh_battler_info end # 消去対象をチェック $scene.set_erase_battler # エネミーの場合 elsif $game_system.tactics_enemies.keys.include?(event_id) event = $game_map.events[event_id] battler = $game_system.tactics_enemies[event_id] # ステートを解除 battler.remove_state(state_id) if $game_player.x == event.x and $game_player.y == event.y $scene.refresh_battler_info end # 消去対象をチェック $scene.set_erase_battler end return true end #-------------------------------------------------------------------------- # ● アクターに変身 #-------------------------------------------------------------------------- def transform_to_actor(event_id, actor_id) # 消去されたイベントの場合 if $game_map.events[event_id].erased return end # エネミーの場合 if $game_system.tactics_enemies.keys.include?(event_id) $game_system.tactics_enemies.delete(event_id) end if $game_actors[actor_id].dead? $game_map.events[event_id].erase # アクターをハッシュに格納 $game_system.tactics_dead_actors[event_id] = $game_actors[actor_id] else # アクターをハッシュに格納 $game_system.tactics_actors[event_id] = $game_actors[actor_id] end return true end #-------------------------------------------------------------------------- # ● エネミーに変身 #-------------------------------------------------------------------------- def transform_to_enemy(event_id, enemy_id) # 消去されたイベントの場合 if $game_map.events[event_id].erased return end # 戦闘不能アクターの場合 if $game_system.tactics_dead_actors.keys.include?(event_id) return end # アクターの場合 if $game_system.tactics_actors.keys.include?(event_id) $game_system.tactics_actors.delete(event_id) end # エネミーをハッシュに格納 $game_system.tactics_enemies[event_id] = Game_Enemy.new(0, enemy_id) return true end end