#==============================================================================
#                    「非戦闘メンバーのパーティ能力」(ACE) Ver.1.0
#   製作者:奈々(なな)
#   へぷたなすくろーる http://heptanas.mamagoto.com/
#
#   ◇利用規約
#   この素材はフリーゲームにのみご利用頂けます。
#   シェアウェア、販売作品への利用は原則として禁止します。(詳細はブログ参照)
#   利用される場合はスクリプト作成者として「奈々」とURLを明記し
#   配布時にブログで利用規約の確認と、利用報告を行って下さい。
#
#------------------------------------------------------------------------------
#   
#   デフォルトの仕様では「パーティ能力」の特徴は
#   戦闘に参加しているメンバーのみで判定されます。
#   これをパーティメンバー全員を含めるように、個々に設定することができます。
#   非戦闘要員として活躍するアクターを作りたいときにどうでしょうか。
#   
#   使い方は、初期設定で該当の項目の「false」を「true」に書き換えます。
#   
#==============================================================================
module Nana
module Party_Ability
  
  ENCOUNTER_HALF = false        #エンカウント半減
  
  ENCOUNTER_NONE = false        #エンカウント無効
  
  CANCEL_SURPRISE = false       #不意打ち無効
  
  RAISE_PREEMPTIVE = false      #先制攻撃率アップ
  
  GOLD_DOUBLE = false           #獲得金額二倍
  
  DROP_ITEM_DOUBLE = false      #アイテム入手率二倍
  
end
end

#==============================================================================
# ■ Game_Party
#------------------------------------------------------------------------------
#  パーティを扱うクラスです。所持金やアイテムなどの情報が含まれます。このクラ
# スのインスタンスは $game_party で参照されます。
#==============================================================================

class Game_Party < Game_Unit
  #--------------------------------------------------------------------------
  # ● パーティ能力判定(全メンバー)
  #--------------------------------------------------------------------------
  def party_ability_all(ability_id)
    all_members.any? {|actor| actor.party_ability(ability_id) }
  end
  #--------------------------------------------------------------------------
  # ● エンカウント半減?
  #--------------------------------------------------------------------------
  def encounter_half?
    if Nana::Party_Ability::ENCOUNTER_HALF
      party_ability_all(ABILITY_ENCOUNTER_HALF)
    else
      party_ability(ABILITY_ENCOUNTER_HALF)
    end
  end
  #--------------------------------------------------------------------------
  # ● エンカウント無効?
  #--------------------------------------------------------------------------
  def encounter_none?
    if Nana::Party_Ability::ENCOUNTER_NONE
      party_ability_all(ABILITY_ENCOUNTER_NONE)
    else
      party_ability(ABILITY_ENCOUNTER_NONE)
    end
  end
  #--------------------------------------------------------------------------
  # ● 不意打ち無効?
  #--------------------------------------------------------------------------
  def cancel_surprise?
    if Nana::Party_Ability::CANCEL_SURPRISE
      party_ability_all(ABILITY_CANCEL_SURPRISE)
    else
      party_ability(ABILITY_CANCEL_SURPRISE)
    end
  end
  #--------------------------------------------------------------------------
  # ● 先制攻撃率アップ?
  #--------------------------------------------------------------------------
  def raise_preemptive?
    if Nana::Party_Ability::RAISE_PREEMPTIVE
      party_ability_all(ABILITY_RAISE_PREEMPTIVE)
    else
      party_ability(ABILITY_RAISE_PREEMPTIVE)
    end
  end
  #--------------------------------------------------------------------------
  # ● 獲得金額二倍?
  #--------------------------------------------------------------------------
  def gold_double?
    if Nana::Party_Ability::GOLD_DOUBLE
      party_ability_all(ABILITY_GOLD_DOUBLE)
    else
      party_ability(ABILITY_GOLD_DOUBLE)
    end
  end
  #--------------------------------------------------------------------------
  # ● アイテム入手率二倍?
  #--------------------------------------------------------------------------
  def drop_item_double?
    if Nana::Party_Ability::DROP_ITEM_DOUBLE
      party_ability_all(ABILITY_DROP_ITEM_DOUBLE)
    else
      party_ability(ABILITY_DROP_ITEM_DOUBLE)
    end
  end
end