Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- #
- # ▼ Yanfly Engine Ace - Battle System Add-On: Free Turn Battle v1.02
- # -- Last Updated: 2012.01.15
- # -- Level: Normal, Hard
- # -- Requires: Yanfly Engine Ace - Ace Battle Engine v1.15+
- #
- #==============================================================================
- $imported = {} if $imported.nil?
- $imported["YEA-BattleSystem-FTB"] = true
- #==============================================================================
- # ▼ Updates
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # 2012.01.15 - Bug fixed: Battle victory log doesn't play twice.
- # 2012.01.11 - Bug fixed: Dead actors are no longer inputable.
- # 2012.01.10 - Finished Script.
- # 2012.01.09 - Started Script.
- #
- #==============================================================================
- # ▼ Introduction
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # Free Turn Battle is a type of battle system made for Ace Battle Engine, where
- # actors perform their actions immediately (unless under the effects of berserk
- # or any other form of autobattle) as they're selected. After all of their
- # actions have been performed, the enemies will take their turn in battling the
- # actors. This becomes a system where actors and enemies will take turns
- # attacking one another as a whole.
- #
- #==============================================================================
- # ▼ Instructions
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # To install this script, open up your script editor and copy/paste this script
- # to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
- #
- # First, set the default battle system for your game to be :ftb by either going
- # to the Ace Battle Engine script and setting DEFAULT_BATTLE_SYSTEM as :ftb or
- # by using the following script call:
- #
- # $game_system:set_battle_system(:ftb)
- #
- # -----------------------------------------------------------------------------
- # Actor Notetags - These notetags go in the actors notebox in the database.
- # -----------------------------------------------------------------------------
- # <ftb actions: +x>
- # <ftb actions: -x>
- # This increases or decreases the maximum number of actions available to an
- # actor by x. While an actor's individual maximum can be any value, it does not
- # provide more than the party maximum applied in the module. An actor's total
- # maximum cannot go below 1.
- #
- # -----------------------------------------------------------------------------
- # Class Notetags - These notetags go in the classes notebox in the database.
- # -----------------------------------------------------------------------------
- # <ftb actions: +x>
- # <ftb actions: -x>
- # This increases or decreases the maximum number of actions available to an
- # actor by x. While an actor's individual maximum can be any value, it does not
- # provide more than the party maximum applied in the module. An actor's total
- # maximum cannot go below 1.
- #
- # -----------------------------------------------------------------------------
- # Skill Notetags - These notetags go in the skills notebox in the database.
- # -----------------------------------------------------------------------------
- # <ftb cost: x>
- # This causes the skill to have an FTB cost of x. The FTB Cost does not occur
- # for individual chain skills, individual input skills, specialized input
- # skills, or instant skills. However, an FTB Cost can be used to put a specific
- # requirement on those listed types of skills.
- #
- # -----------------------------------------------------------------------------
- # Item Notetags - These notetags go in the items notebox in the database.
- # -----------------------------------------------------------------------------
- # <ftb cost: x>
- # This causes the item to have an FTB cost of x. The FTB Cost does not occur
- # for instant items. If items cost more actions than the party has available,
- # then the items will not appear in the usable item list during battle.
- #
- # -----------------------------------------------------------------------------
- # Weapon Notetags - These notetags go in the weapons notebox in the database.
- # -----------------------------------------------------------------------------
- # <ftb actions: +x>
- # <ftb actions: -x>
- # This increases or decreases the maximum number of actions available to an
- # actor by x. While an actor's individual maximum can be any value, it does not
- # provide more than the party maximum applied in the module. An actor's total
- # maximum cannot go below 1.
- #
- # -----------------------------------------------------------------------------
- # Armour Notetags - These notetags go in the armour notebox in the database.
- # -----------------------------------------------------------------------------
- # <ftb actions: +x>
- # <ftb actions: -x>
- # This increases or decreases the maximum number of actions available to an
- # actor by x. While an actor's individual maximum can be any value, it does not
- # provide more than the party maximum applied in the module. An actor's total
- # maximum cannot go below 1.
- #
- # -----------------------------------------------------------------------------
- # State Notetags - These notetags go in the state notebox in the database.
- # -----------------------------------------------------------------------------
- # <ftb actions: +x>
- # <ftb actions: -x>
- # This increases or decreases the maximum number of actions available to an
- # actor by x. While an actor's individual maximum can be any value, it does not
- # provide more than the party maximum applied in the module. An actor's total
- # maximum cannot go below 1.
- #
- #==============================================================================
- # ▼ Compatibility
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
- # it will run with RPG Maker VX without adjusting.
- #
- # This script requires Yanfly Engine Ace - Ace Battle Engine v1.15+ and the
- # script must be placed under Ace Battle Engine in the script listing.
- #
- #==============================================================================
- module YEA
- module FTB
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # - General FTB Settings -
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # These settings adjust various general Free Turn Battle constants such as
- # the icons used for actions and no actions, whether or not party members
- # will have limited actions (or unlimited).
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- ICON_ACTION = 188 # Icon displayed when there are actions left.
- ICON_EMPTY = 185 # Icon displayed to indicate a used action.
- # For every x% above the base AGI, actors will gain an extra action. Change
- # the value below to adjust the percentage needed.
- EXTRA_FTB_ACTION_BONUS = 0.20
- # This is the maximum number of actions that the party can have despite the
- # maximum number of individual actor actions totalling to more than this.
- MAXIMUM_FTB_ACTIONS = 10
- # If this setting is on, then each member can only perform a limited amount
- # of actions per turn as opposed to freely performing actions until the
- # party's action usage is depleted.
- LIMITED_ACTIONS_PER_MEMBER = true
- end # FTB
- end # YEA
- #==============================================================================
- # ▼ Editting anything past this point may potentially result in causing
- # computer damage, incontinence, explosion of user's head, coma, death, and/or
- # halitosis so edit at your own risk.
- #==============================================================================
- module YEA
- module REGEXP
- module BASEITEM
- FTB_ACTIONS = /<(?:FTB_ACTIONS|ftb actions):[ ]([\+\-]\d+)>/i
- end # BASEITEM
- module USABLEITEM
- FTB_COST = /<(?:FTB_COST|ftb cost):[ ](\d+)>/i
- end # USABLEITEM
- end # REGEXP
- end # YEA
- #==============================================================================
- # ■ Icon
- #==============================================================================
- module Icon
- #--------------------------------------------------------------------------
- # self.ftb_action
- #--------------------------------------------------------------------------
- def self.ftb_action
- return YEA::FTB::ICON_ACTION
- end
- #--------------------------------------------------------------------------
- # self.ftb_empty
- #--------------------------------------------------------------------------
- def self.ftb_empty
- return YEA::FTB::ICON_EMPTY
- end
- end # Icon
- #==============================================================================
- # ■ DataManager
- #==============================================================================
- module DataManager
- #--------------------------------------------------------------------------
- # alias method: load_database
- #--------------------------------------------------------------------------
- class <<self; alias load_database_ftb load_database; end
- def self.load_database
- load_database_ftb
- load_notetags_ftb
- end
- #--------------------------------------------------------------------------
- # new method: load_notetags_ftb
- #--------------------------------------------------------------------------
- def self.load_notetags_ftb
- groups = [$data_skills, $data_items, $data_actors, $data_classes,
- $data_weapons, $data_armors, $data_states]
- for group in groups
- for obj in group
- next if obj.nil?
- obj.load_notetags_ftb
- end
- end
- end
- end # DataManager
- #==============================================================================
- # ■ RPG::BaseItem
- #==============================================================================
- class RPG::BaseItem
- #--------------------------------------------------------------------------
- # public instance variables
- #--------------------------------------------------------------------------
- attr_accessor :ftb_actions
- #--------------------------------------------------------------------------
- # common cache: load_notetags_ftb
- #--------------------------------------------------------------------------
- def load_notetags_ftb
- @ftb_actions = 0
- #---
- self.note.split(/[\r\n]+/).each { |line|
- case line
- #---
- when YEA::REGEXP::BASEITEM::FTB_ACTIONS
- @ftb_actions = $1.to_i
- end
- } # self.note.split
- #---
- end
- end # RPG::BaseItem
- #==============================================================================
- # ■ RPG::UsableItem
- #==============================================================================
- class RPG::UsableItem < RPG::BaseItem
- #--------------------------------------------------------------------------
- # public instance variables
- #--------------------------------------------------------------------------
- attr_accessor :ftb_cost
- #--------------------------------------------------------------------------
- # common cache: load_notetags_ftb
- #--------------------------------------------------------------------------
- def load_notetags_ftb
- @ftb_cost = 1
- #---
- self.note.split(/[\r\n]+/).each { |line|
- case line
- #---
- when YEA::REGEXP::USABLEITEM::FTB_COST
- @ftb_cost = $1.to_i
- end
- } # self.note.split
- #---
- end
- end # RPG::UsableItem
- #==============================================================================
- # ■ BattleManager
- #==============================================================================
- module BattleManager
- #--------------------------------------------------------------------------
- # alias method: make_action_orders
- #--------------------------------------------------------------------------
- class <<self; alias make_action_orders_ftb make_action_orders; end
- def self.make_action_orders
- make_action_orders_ftb
- make_ftb_action_orders if btype?(:ftb)
- end
- #--------------------------------------------------------------------------
- # new method: make_ftb_action_orders
- #--------------------------------------------------------------------------
- def self.make_ftb_action_orders
- @action_battlers = []
- @action_battlers += $game_party.members unless @surprise
- @action_battlers += $game_troop.members unless @preemptive
- @action_battlers.each { |battler| battler.make_speed }
- @action_battlers.sort! {|a,b| a.screen_x <=> b.screen_x }
- end
- #--------------------------------------------------------------------------
- # alias method: judge_win_loss
- #--------------------------------------------------------------------------
- class <<self; alias judge_win_loss_ftb judge_win_loss; end
- def self.judge_win_loss
- if @phase && $game_troop.all_dead? && SceneManager.scene_is?(Scene_Battle)
- SceneManager.scene.hide_ftb_gauge
- end
- judge_win_loss_ftb
- end
- end # BattleManager
- #==============================================================================
- # ■ Game_BattlerBase
- #==============================================================================
- class Game_BattlerBase
- #--------------------------------------------------------------------------
- # new method: init_ftb_actions
- #--------------------------------------------------------------------------
- def init_ftb_actions
- @used_ftb_actions = 0
- end
- #--------------------------------------------------------------------------
- # new method: ftb_actions
- #--------------------------------------------------------------------------
- def ftb_actions
- init_ftb_actions if @used_ftb_actions.nil?
- return @used_ftb_actions
- end
- #--------------------------------------------------------------------------
- # new method: max_ftb_actions
- #--------------------------------------------------------------------------
- def max_ftb_actions
- n = make_action_times
- n += agi_bonus_max_ftb_actions
- n += trait_bonus_max_ftb_actions
- return [n, 1].max
- end
- #--------------------------------------------------------------------------
- # new method: agi_bonus_max_ftb_actions
- #--------------------------------------------------------------------------
- def agi_bonus_max_ftb_actions
- bonus_agi = agi - param_base(6)
- value_agi = param_base(6) * YEA::FTB::EXTRA_FTB_ACTION_BONUS
- return (bonus_agi / value_agi).to_i
- end
- #--------------------------------------------------------------------------
- # new method: trait_bonus_max_ftb_actions
- #--------------------------------------------------------------------------
- def trait_bonus_max_ftb_actions
- n = 0
- if actor?
- n += self.actor.ftb_actions
- n += self.class.ftb_actions
- for equip in equips
- next if equip.nil?
- n += equip.ftb_actions
- end
- end
- for state in states
- next if state.nil?
- n += state.ftb_actions
- end
- return n
- end
- #--------------------------------------------------------------------------
- # new method: use_ftb_action
- #--------------------------------------------------------------------------
- def use_ftb_action(value = 1)
- init_ftb_actions if @used_ftb_actions.nil?
- @used_ftb_actions += value
- end
- #--------------------------------------------------------------------------
- # alias method: inputable?
- #--------------------------------------------------------------------------
- alias game_battlerbase_inputable_ftb inputable?
- def inputable?
- result = game_battlerbase_inputable_ftb
- return false unless result
- return result unless SceneManager.scene_is?(Scene_Battle)
- return result unless BattleManager.btype?(:ftb)
- return result unless YEA::FTB::LIMITED_ACTIONS_PER_MEMBER
- return max_ftb_actions > ftb_actions
- end
- #--------------------------------------------------------------------------
- # alias method: skill_conditions_met?
- #--------------------------------------------------------------------------
- alias game_battlerbase_skill_conditions_met_ftb skill_conditions_met?
- def skill_conditions_met?(skill)
- return false unless ftb_item_conditions_met?(skill)
- return game_battlerbase_skill_conditions_met_ftb(skill)
- end
- #--------------------------------------------------------------------------
- # alias method: item_conditions_met?
- #--------------------------------------------------------------------------
- alias game_battlerbase_item_conditions_met_ftb item_conditions_met?
- def item_conditions_met?(item)
- return false unless ftb_item_conditions_met?(item)
- return game_battlerbase_item_conditions_met_ftb(item)
- end
- #--------------------------------------------------------------------------
- # new method: ftb_item_conditions_met?
- #--------------------------------------------------------------------------
- def ftb_item_conditions_met?(item)
- return true unless actor?
- return true unless SceneManager.scene_is?(Scene_Battle)
- return true unless BattleManager.btype?(:ftb)
- return true if BattleManager.in_turn?
- return $game_party.ftb_actions_remaining >= item.ftb_cost
- end
- end # Game_BattlerBase
- #==============================================================================
- # ■ Game_Battler
- #==============================================================================
- class Game_Battler < Game_BattlerBase
- #--------------------------------------------------------------------------
- # alias method: on_battle_start
- #--------------------------------------------------------------------------
- alias game_battler_on_battle_start_ftb on_battle_start
- def on_battle_start
- game_battler_on_battle_start_ftb
- init_ftb_actions
- end
- #--------------------------------------------------------------------------
- # alias method: on_turn_end
- #--------------------------------------------------------------------------
- alias game_battler_on_turn_end_ftb on_turn_end
- def on_turn_end
- game_battler_on_turn_end_ftb
- init_ftb_actions
- end
- #--------------------------------------------------------------------------
- # alias method: make_action_times
- #--------------------------------------------------------------------------
- alias game_battler_make_action_times_ftb make_action_times
- def make_action_times
- if SceneManager.scene_is?(Scene_Battle) && BattleManager.btype?(:ftb)
- return make_ftb_action_times
- else
- return game_battler_make_action_times_ftb
- end
- end
- #--------------------------------------------------------------------------
- # new method: make_ftb_action_times
- #--------------------------------------------------------------------------
- def make_ftb_action_times
- return action_plus_set.inject(1) {|r, p| p > 0.01 ? r + 1 : r }
- end
- end # Game_Battler
- #==============================================================================
- # ■ Game_Actor
- #==============================================================================
- class Game_Actor < Game_Battler
- #--------------------------------------------------------------------------
- # alias method: next_command
- #--------------------------------------------------------------------------
- alias game_actor_next_command_ftb next_command
- def next_command
- if SceneManager.scene_is?(Scene_Battle) && BattleManager.btype?(:ftb)
- return false
- end
- return game_actor_next_command_ftb
- end
- #--------------------------------------------------------------------------
- # alias method: prior_command
- #--------------------------------------------------------------------------
- alias game_actor_prior_command_ftb prior_command
- def prior_command
- if SceneManager.scene_is?(Scene_Battle) && BattleManager.btype?(:ftb)
- return false
- end
- return game_actor_prior_command_ftb
- end
- end # Game_Actor
- #==============================================================================
- # ■ Game_Party
- #==============================================================================
- class Game_Party < Game_Unit
- #--------------------------------------------------------------------------
- # alias method: inputable?
- #--------------------------------------------------------------------------
- alias game_party_inputable_ftb inputable?
- def inputable?
- return false unless meet_ftb_requirements?
- return game_party_inputable_ftb
- end
- #--------------------------------------------------------------------------
- # new method: meet_ftb_requirements?
- #--------------------------------------------------------------------------
- def meet_ftb_requirements?
- return true unless BattleManager.btype?(:ftb)
- return ftb_actions_remaining > 0
- end
- #--------------------------------------------------------------------------
- # new method: ftb_actions_remaining
- #--------------------------------------------------------------------------
- def ftb_actions_remaining
- return ftb_actions_maximum - ftb_actions_used
- end
- #--------------------------------------------------------------------------
- # new method: ftb_actions_maximum
- #--------------------------------------------------------------------------
- def ftb_actions_maximum
- n = 0
- for member in $game_party.members
- next unless member.game_battlerbase_inputable_ftb
- n += member.max_ftb_actions
- end
- return [n, YEA::FTB::MAXIMUM_FTB_ACTIONS].min
- end
- #--------------------------------------------------------------------------
- # new method: ftb_actions_used
- #--------------------------------------------------------------------------
- def ftb_actions_used
- n = 0
- for member in $game_party.members
- next unless member.game_battlerbase_inputable_ftb
- n += member.ftb_actions
- end
- return n
- end
- end # Game_Party
- #==============================================================================
- # ■ Window_BattleStatus
- #==============================================================================
- class Window_BattleStatus < Window_Selectable
- #--------------------------------------------------------------------------
- # alias method: action_icon
- #--------------------------------------------------------------------------
- alias window_battlestatus_action_icon_ftb action_icon
- def action_icon(actor)
- if SceneManager.scene_is?(Scene_Battle) && BattleManager.btype?(:ftb)
- return Icon.ftb_action if act_ftb_valid?(actor)
- end
- return window_battlestatus_action_icon_ftb(actor)
- end
- #--------------------------------------------------------------------------
- # new method: act_ftb_valid?
- #--------------------------------------------------------------------------
- def act_ftb_valid?(actor)
- return false unless actor.current_action.nil? ||
- actor.current_action.item.nil?
- return true unless YEA::FTB::LIMITED_ACTIONS_PER_MEMBER
- return actor.max_ftb_actions > actor.ftb_actions
- end
- end # Window_BattleStatus
- #==============================================================================
- # ■ Window_FTB_Gauge
- #==============================================================================
- class Window_FTB_Gauge < Window_Base
- #--------------------------------------------------------------------------
- # initialize
- #--------------------------------------------------------------------------
- def initialize(help_window)
- @help_window = help_window
- super(0, 0, Graphics.width, fitting_height(1))
- self.opacity = 0
- self.contents_opacity = 0
- self.z = 200
- end
- #--------------------------------------------------------------------------
- # refresh
- #--------------------------------------------------------------------------
- def refresh
- contents.clear
- draw_empty_icons
- draw_filled_icons
- end
- #--------------------------------------------------------------------------
- # draw_empty_icons
- #--------------------------------------------------------------------------
- def draw_empty_icons
- n = $game_party.ftb_actions_maximum
- dx = contents.width
- n.times do
- dx -= 24
- draw_icon(Icon.ftb_empty, dx, 0)
- end
- end
- #--------------------------------------------------------------------------
- # draw_filled_icons
- #--------------------------------------------------------------------------
- def draw_filled_icons
- n = $game_party.ftb_actions_maximum - $game_party.ftb_actions_used
- dx = contents.width
- n.times do
- dx -= 24
- draw_icon(Icon.ftb_action, dx, 0)
- end
- end
- #--------------------------------------------------------------------------
- # update
- #--------------------------------------------------------------------------
- def update
- super
- self.contents_opacity = 0 unless SceneManager.scene_is?(Scene_Battle)
- return unless SceneManager.scene_is?(Scene_Battle)
- return unless BattleManager.btype?(:ftb)
- change_contents_opacity
- change_y_position
- end
- #--------------------------------------------------------------------------
- # change_contents_opacity
- #--------------------------------------------------------------------------
- def change_contents_opacity
- rate = BattleManager.in_turn? ? -8 : 8
- self.contents_opacity += rate
- end
- #--------------------------------------------------------------------------
- # change_y_position
- #--------------------------------------------------------------------------
- def change_y_position
- self.y = @help_window.visible ? @help_window.height : 0
- end
- end # Window_FTB_Gauge
- #==============================================================================
- # ■ Scene_Battle
- #==============================================================================
- class Scene_Battle < Scene_Base
- #--------------------------------------------------------------------------
- # alias method: create_all_windows
- #--------------------------------------------------------------------------
- alias scene_battle_create_all_windows_ftb create_all_windows
- def create_all_windows
- scene_battle_create_all_windows_ftb
- create_ftb_gauge
- end
- #--------------------------------------------------------------------------
- # new method: create_ftb_gauge
- #--------------------------------------------------------------------------
- def create_ftb_gauge
- @ftb_gauge = Window_FTB_Gauge.new(@help_window)
- end
- #--------------------------------------------------------------------------
- # alias method: start_party_command_selection
- #--------------------------------------------------------------------------
- alias start_party_command_selection_ftb start_party_command_selection
- def start_party_command_selection
- start_party_command_selection_ftb
- refresh_ftb_gauge
- end
- #--------------------------------------------------------------------------
- # alias method: start_actor_command_selection
- #--------------------------------------------------------------------------
- alias start_actor_command_selection_ftb start_actor_command_selection
- def start_actor_command_selection
- start_actor_command_selection_ftb
- refresh_ftb_gauge
- end
- #--------------------------------------------------------------------------
- # new method: refresh_ftb_gauge
- #--------------------------------------------------------------------------
- def refresh_ftb_gauge
- @ftb_gauge.refresh
- end
- #--------------------------------------------------------------------------
- # new method: hide_ftb_gauge
- #--------------------------------------------------------------------------
- def hide_ftb_gauge
- @ftb_gauge.hide
- end
- #--------------------------------------------------------------------------
- # alias method: next_command
- #--------------------------------------------------------------------------
- alias scene_battle_next_command_ftb next_command
- def next_command
- if ftb_action?
- perform_ftb_action
- else
- scene_battle_next_command_ftb
- end
- end
- #--------------------------------------------------------------------------
- # new method: ftb_action?
- #--------------------------------------------------------------------------
- def ftb_action?
- return false unless BattleManager.btype?(:ftb)
- return false if BattleManager.actor.nil?
- return false if BattleManager.actor.current_action.nil?
- action = BattleManager.actor.current_action.item
- return !action.nil?
- end
- #--------------------------------------------------------------------------
- # new method: perform_ftb_action
- #--------------------------------------------------------------------------
- def perform_ftb_action
- hide_ftb_action_windows
- @subject = BattleManager.actor
- item = @subject.current_action.item
- execute_action
- process_event
- loop do
- @subject.remove_current_action
- break if $game_troop.all_dead?
- break unless @subject.current_action
- @subject.current_action.prepare
- execute_action if @subject.current_action.valid?
- end
- return if $game_troop.alive_members.size <= 0
- process_action_end
- consume_ftb_action(item)
- @subject.make_actions
- @subject = nil
- show_ftb_action_windows
- end
- #--------------------------------------------------------------------------
- # new method: consume_ftb_action
- #--------------------------------------------------------------------------
- def consume_ftb_action(item)
- @subject.use_ftb_action(item.ftb_cost) unless item.nil?
- refresh_ftb_gauge
- end
- #--------------------------------------------------------------------------
- # new method: hide_ftb_action_windows
- #--------------------------------------------------------------------------
- def hide_ftb_action_windows
- @info_viewport.visible = true
- @status_aid_window.hide
- @status_window.show
- @actor_command_window.show
- end
- #--------------------------------------------------------------------------
- # new method: show_ftb_action_windows
- #--------------------------------------------------------------------------
- def show_ftb_action_windows
- @info_viewport.visible = true
- end_ftb_action
- end
- #--------------------------------------------------------------------------
- # new method: end_ftb_action
- #--------------------------------------------------------------------------
- def end_ftb_action
- if $game_party.inputable?
- select_next_member
- else
- status_redraw_target(BattleManager.actor)
- BattleManager.next_command
- turn_start
- end
- end
- #--------------------------------------------------------------------------
- # new method: select_next_member
- #--------------------------------------------------------------------------
- def select_next_member
- status_redraw_target(BattleManager.actor)
- last_index = $game_party.battle_members.size - 1
- for member in $game_party.battle_members.reverse
- break if member.inputable?
- last_index -= 1
- end
- next_command if next_ftb_member?(last_index)
- return if BattleManager.actor.nil?
- if BattleManager.actor.index >= last_index && !BattleManager.actor.inputable?
- prior_command
- else
- start_actor_command_selection
- status_redraw_target(BattleManager.actor)
- end
- end
- #--------------------------------------------------------------------------
- # new method: next_ftb_member?
- #--------------------------------------------------------------------------
- def next_ftb_member?(last_index)
- actor = BattleManager.actor
- return true if actor.nil?
- return false if actor.max_ftb_actions > actor.ftb_actions
- return false if BattleManager.actor.index >= last_index
- return BattleManager.actor.index != last_index
- end
- #--------------------------------------------------------------------------
- # alias method: hide_extra_gauges
- #--------------------------------------------------------------------------
- alias scene_battle_hide_extra_gauges_ftb hide_extra_gauges
- def hide_extra_gauges
- scene_battle_hide_extra_gauges_ftb
- @ftb_gauge.hide
- end
- #--------------------------------------------------------------------------
- # alias method: show_extra_gauges
- #--------------------------------------------------------------------------
- alias scene_battle_show_extra_gauges_ftb show_extra_gauges
- def show_extra_gauges
- scene_battle_show_extra_gauges_ftb
- @ftb_gauge.show
- end
- end # Scene_Battle
- #==============================================================================
- #
- # ▼ End of File
- #
- #==============================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement