パーティを扱うクラスです。所持金やアイテムなどの情報が含まれます。このクラ スのインスタンスは $game_party で参照されます。
- A
- B
- C
- D
- E
- G
- H
- I
- L
- M
- N
- O
- P
- R
- S
- T
- U
- W
ABILITY_ENCOUNTER_HALF | = | 0 |
定数 |
||
ABILITY_ENCOUNTER_NONE | = | 1 |
ABILITY_CANCEL_SURPRISE | = | 2 |
ABILITY_RAISE_PREEMPTIVE | = | 3 |
ABILITY_GOLD_DOUBLE | = | 4 |
ABILITY_DROP_ITEM_DOUBLE | = | 5 |
[R] | gold | 公開インスタンス変数 |
[R] | last_item | |
[R] | steps |
オブジェクト初期化
Source: show
# File Game_Party.rb, line 28 def initialize super @gold = 0 @steps = 0 @last_item = Game_BaseItem.new @menu_actor_id = 0 @target_actor_id = 0 @actors = [] init_all_items end
アクターを加える
Source: show
# File Game_Party.rb, line 192 def add_actor(actor_id) @actors.push(actor_id) unless @actors.include?(actor_id) $game_player.refresh $game_map.need_refresh = true end
全滅判定
Source: show
# File Game_Party.rb, line 336 def all_dead? super && ($game_party.in_battle || members.size > 0) end
全てのアイテムオブジェクトの配列取得
Source: show
# File Game_Party.rb, line 121 def all_items items + equip_items end
全メンバーの取得
Source: show
# File Game_Party.rb, line 65 def all_members @actors.collect {|id| $game_actors[id] } end
防具オブジェクトの配列取得
Source: show
# File Game_Party.rb, line 107 def armors @armors.keys.sort.collect {|id| $data_armors[id] } end
バトルメンバーの取得
Source: show
# File Game_Party.rb, line 72 def battle_members all_members[0, max_battle_members].select {|actor| actor.exist? } end
不意打ち無効?
Source: show
# File Game_Party.rb, line 434 def cancel_surprise? party_ability(ABILITY_CANCEL_SURPRISE) end
セーブファイル表示用のキャラクター画像情報
Source: show
# File Game_Party.rb, line 404 def characters_for_savefile battle_members.collect do |actor| [actor.character_name, actor.character_index] end end
アイテムの消耗
指定されたオブジェクトが消耗アイテムであれば、所持数を 1 減らす。
Source: show
# File Game_Party.rb, line 315 def consume_item(item) lose_item(item, 1) if item.is_a?(RPG::Item) && item.consumable end
メンバーの装備品を破棄する
Source: show
# File Game_Party.rb, line 293 def discard_members_equip(item, amount) n = amount members.each do |actor| while n > 0 && actor.equips.include?(item) actor.discard_equip(item) n -= 1 end end end
アイテム入手率二倍?
Source: show
# File Game_Party.rb, line 455 def drop_item_double? party_ability(ABILITY_DROP_ITEM_DOUBLE) end
エンカウント半減?
Source: show
# File Game_Party.rb, line 420 def encounter_half? party_ability(ABILITY_ENCOUNTER_HALF) end
エンカウント無効?
Source: show
# File Game_Party.rb, line 427 def encounter_none? party_ability(ABILITY_ENCOUNTER_NONE) end
全ての装備品オブジェクトの配列取得
Source: show
# File Game_Party.rb, line 114 def equip_items weapons + armors end
所持金の増加(減少)
Source: show
# File Game_Party.rb, line 210 def gain_gold(amount) @gold = [[@gold + amount, 0].max, max_gold].min end
アイテムの増加(減少)
include_equip : 装備品も含める
Source: show
# File Game_Party.rb, line 277 def gain_item(item, amount, include_equip = false) container = item_container(item.class) return unless container last_number = item_number(item) new_number = last_number + amount container[item.id] = [[new_number, 0].max, max_item_number(item)].min container.delete(item.id) if container[item.id] == 0 if include_equip && new_number < 0 discard_members_equip(item, -new_number) end $game_map.need_refresh = true end
獲得金額二倍?
Source: show
# File Game_Party.rb, line 448 def gold_double? party_ability(ABILITY_GOLD_DOUBLE) end
アイテムの所持判定
include_equip : 装備品も含める
Source: show
# File Game_Party.rb, line 261 def has_item?(item, include_equip = false) return true if item_number(item) > 0 return include_equip ? members_equip_include?(item) : false end
パーティメンバーの最も高いレベルの取得
Source: show
# File Game_Party.rb, line 185 def highest_level lv = members.collect {|actor| actor.level }.max end
歩数増加
Source: show
# File Game_Party.rb, line 231 def increase_steps @steps += 1 end
全アイテムリストの初期化
Source: show
# File Game_Party.rb, line 42 def init_all_items @items = {} @weapons = {} @armors = {} end
戦闘時コマンド入力可能判定
Source: show
# File Game_Party.rb, line 329 def inputable? members.any? {|actor| actor.inputable? } end
アイテムのクラスに対応するコンテナオブジェクトを取得
Source: show
# File Game_Party.rb, line 128 def item_container(item_class) return @items if item_class == RPG::Item return @weapons if item_class == RPG::Weapon return @armors if item_class == RPG::Armor return nil end
アイテムを最大まで所持しているか判定
Source: show
# File Game_Party.rb, line 253 def item_max?(item) item_number(item) >= max_item_number(item) end
アイテムの所持数取得
Source: show
# File Game_Party.rb, line 238 def item_number(item) container = item_container(item.class) container ? container[item.id] || 0 : 0 end
アイテムオブジェクトの配列取得
Source: show
# File Game_Party.rb, line 93 def items @items.keys.sort.collect {|id| $data_items[id] } end
所持金の減少
Source: show
# File Game_Party.rb, line 217 def lose_gold(amount) gain_gold(-amount) end
アイテムの減少
include_equip : 装備品も含める
Source: show
# File Game_Party.rb, line 307 def lose_item(item, amount, include_equip = false) gain_item(item, -amount, include_equip) end
バトルメンバーの最大数を取得
Source: show
# File Game_Party.rb, line 79 def max_battle_members return 4 end
所持金の最大値を取得
Source: show
# File Game_Party.rb, line 224 def max_gold return 99999999 end
アイテムの最大所持数取得
Source: show
# File Game_Party.rb, line 246 def max_item_number(item) return 99 end
メンバーの取得
Source: show
# File Game_Party.rb, line 58 def members in_battle ? battle_members : all_members end
指定アイテムがメンバーの装備品に含まれているかを判定
Source: show
# File Game_Party.rb, line 269 def members_equip_include?(item) members.any? {|actor| actor.equips.include?(item) } end
メニュー画面で選択中のアクターを取得
Source: show
メニュー画面で選択中のアクターを設定
Source: show
メニュー画面で次のアクターを選択
Source: show
メニュー画面で前のアクターを選択
Source: show
パーティ名の取得
一人ならそのアクターの名前、複数なら “○○たち” を返す。
Source: show
# File Game_Party.rb, line 146 def name return "" if battle_members.size == 0 return leader.name if battle_members.size == 1 return sprintf(Vocab::PartyName, leader.name) end
プレイヤーが 1 歩動いたときの処理
Source: show
# File Game_Party.rb, line 343 def on_player_walk members.each {|actor| actor.on_player_walk } end
パーティ能力判定
Source: show
# File Game_Party.rb, line 413 def party_ability(ability_id) battle_members.any? {|actor| actor.party_ability(ability_id) } end
先制攻撃率アップ?
Source: show
# File Game_Party.rb, line 441 def raise_preemptive? party_ability(ABILITY_RAISE_PREEMPTIVE) end
先制攻撃の確率計算
Source: show
# File Game_Party.rb, line 462 def rate_preemptive(troop_agi) (agi >= troop_agi ? 0.05 : 0.03) * (raise_preemptive? ? 4 : 1) end
不意打ちの確率計算
Source: show
# File Game_Party.rb, line 469 def rate_surprise(troop_agi) cancel_surprise? ? 0 : (agi >= troop_agi ? 0.03 : 0.05) end
アクターを外す
Source: show
# File Game_Party.rb, line 201 def remove_actor(actor_id) @actors.delete(actor_id) $game_player.refresh $game_map.need_refresh = true end
戦闘テストのセットアップ
Source: show
# File Game_Party.rb, line 155 def setup_battle_test setup_battle_test_members setup_battle_test_items end
戦闘テスト用アイテムのセットアップ
Source: show
# File Game_Party.rb, line 176 def setup_battle_test_items $data_items.each do |item| gain_item(item, max_item_number(item)) if item && !item.name.empty? end end
戦闘テスト用パーティのセットアップ
Source: show
# File Game_Party.rb, line 163 def setup_battle_test_members $data_system.test_battlers.each do |battler| actor = $game_actors[battler.actor_id] actor.change_level(battler.level, false) actor.init_equips(battler.equips) actor.recover_all add_actor(actor.id) end end
初期パーティのセットアップ
Source: show
# File Game_Party.rb, line 138 def setup_starting_members @actors = $data_system.party_members.clone end
順序入れ替え
Source: show
# File Game_Party.rb, line 396 def swap_order(index1, index2) @actors[index1], @actors[index2] = @actors[index2], @actors[index1] $game_player.refresh end
スキル/アイテムの使用対象となったアクターを取得
Source: show
# File Game_Party.rb, line 382 def target_actor $game_actors[@target_actor_id] || members[0] end
スキル/アイテムの使用対象となったアクターを設定
Source: show
# File Game_Party.rb, line 389 def target_actor=(actor) @target_actor_id = actor.id end