# =========================================================================== # ◆ A1 Scripts ◆ # 全体通常攻撃(RGSS3) # # バージョン : 1.00 (2012/01/21) # 作者 : A1 # URL     : http://a1tktk.web.fc2.com/ #--------------------------------------------------------------------------- # 機能: # ・通常攻撃で全体攻撃ができる武器を設定できます # --------------------------------------------------------------------------- # 更新履歴   :2012/01/21 Ver1.00 リリース # --------------------------------------------------------------------------- # 設置場所 # A1バトル共通スクリプト以下 # (サイドビューバトル以上) # # 必要スクリプト # A1バトル共通スクリプト #--------------------------------------------------------------------------- # 使い方 # データベース「武器」のメモ欄に記述します # # <全体通常攻撃> #============================================================================== $imported = {} if $imported == nil if $imported["A1_BattleCommonScript"] $imported["A1_WideNomalAttack"] = true old_common_script("全体通常攻撃", "4.20") if common_version < 4.20 #============================================================================== # ■ RPG::BaseItem #============================================================================== class RPG::BaseItem #-------------------------------------------------------------------------- # ○ 全体攻撃武器? #-------------------------------------------------------------------------- def wide_attack @wide_attack = $a1_common.note_data(self.note, "全体通常攻撃") if @wide_attack == nil return @wide_attack end end #============================================================================== # ■ Scene_Battle #------------------------------------------------------------------------------ #  バトル画面の処理を行うクラスです。 #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ☆ コマンド[攻撃] #-------------------------------------------------------------------------- alias a1_wide_attack_ga_command_attack command_attack def command_attack return command_wide_attack if BattleManager.actor.wide_attack?(false) a1_wide_attack_ga_command_attack end #-------------------------------------------------------------------------- # ○ コマンド[攻撃](全体) #-------------------------------------------------------------------------- def command_wide_attack BattleManager.actor.input.set_attack next_command end end #============================================================================== # ■ Game_Action #------------------------------------------------------------------------------ #  戦闘行動を扱うクラスです。このクラスは Game_Battler クラスの内部で使用され # ます。 #============================================================================== class Game_Action #-------------------------------------------------------------------------- # ☆ 敵に対するターゲット #-------------------------------------------------------------------------- alias a1_wide_attack_ga_targets_for_opponents targets_for_opponents def targets_for_opponents return opponents_unit.alive_members if @subject.wide_attack? a1_wide_attack_ga_targets_for_opponents end end #============================================================================== # ■ Game_Battler #------------------------------------------------------------------------------ #  スプライトや行動に関するメソッドを追加したバトラーのクラスです。このクラス # は Game_Actor クラスと Game_Enemy クラスのスーパークラスとして使用されます。 #============================================================================== class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # ○ 全体通常攻撃? #-------------------------------------------------------------------------- def wide_attack?(any = true) return true if battler.wide_attack return wide_attack_weapon?(any) end #-------------------------------------------------------------------------- # ○ 全体攻撃武器? #-------------------------------------------------------------------------- def wide_attack_weapon?(any) return weapons.any? {|weapon| next unless weapon; weapon.wide_attack } if any return weapons.all? {|weapon| next unless weapon; weapon.wide_attack } end end end