This class handles parties. Information such as gold and items is included. Instances of this class are referenced by $game_party.
- A
- B
- C
- D
- E
- G
- H
- I
- L
- M
- N
- O
- P
- R
- S
- T
- U
- W
| ABILITY_ENCOUNTER_HALF | = | 0 |
Constants |
||
| ABILITY_ENCOUNTER_NONE | = | 1 |
| ABILITY_CANCEL_SURPRISE | = | 2 |
| ABILITY_RAISE_PREEMPTIVE | = | 3 |
| ABILITY_GOLD_DOUBLE | = | 4 |
| ABILITY_DROP_ITEM_DOUBLE | = | 5 |
| [R] | gold | Public Instance Variables |
| [R] | last_item | |
| [R] | steps |
Object Initialization
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
Add an Actor
Source: show
# File Game_Party.rb, line 193 def add_actor(actor_id) @actors.push(actor_id) unless @actors.include?(actor_id) $game_player.refresh $game_map.need_refresh = true end
Determine if Everyone is Dead
Source: show
# File Game_Party.rb, line 338 def all_dead? super && ($game_party.in_battle || members.size > 0) end
Get Array of All Item Objects
Source: show
# File Game_Party.rb, line 121 def all_items items + equip_items end
Get All Members
Source: show
# File Game_Party.rb, line 65 def all_members @actors.collect {|id| $game_actors[id] } end
Get Armor Object Array
Source: show
# File Game_Party.rb, line 107 def armors @armors.keys.sort.collect {|id| $data_armors[id] } end
Get Battle Members
Source: show
# File Game_Party.rb, line 72 def battle_members all_members[0, max_battle_members].select {|actor| actor.exist? } end
Disable Surprise?
Source: show
# File Game_Party.rb, line 436 def cancel_surprise? party_ability(ABILITY_CANCEL_SURPRISE) end
Character Image Information for Save File Display
Source: show
# File Game_Party.rb, line 406 def characters_for_savefile battle_members.collect do |actor| [actor.character_name, actor.character_index] end end
Consume Items
If the specified object is a consumable item, the number in investory will be reduced by 1.
Source: show
# File Game_Party.rb, line 317 def consume_item(item) lose_item(item, 1) if item.is_a?(RPG::Item) && item.consumable end
Discard Members’ Equipment
Source: show
# File Game_Party.rb, line 294 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
Double Item Acquisition Rate?
Source: show
# File Game_Party.rb, line 457 def drop_item_double? party_ability(ABILITY_DROP_ITEM_DOUBLE) end
Halve Encounters?
Source: show
# File Game_Party.rb, line 422 def encounter_half? party_ability(ABILITY_ENCOUNTER_HALF) end
Disable Encounters?
Source: show
# File Game_Party.rb, line 429 def encounter_none? party_ability(ABILITY_ENCOUNTER_NONE) end
Get Array of All Equipment Objects
Source: show
# File Game_Party.rb, line 114 def equip_items weapons + armors end
Determine Existence
Source: show
# File Game_Party.rb, line 51 def exists !@actors.empty? end
Increase Gold
Source: show
# File Game_Party.rb, line 211 def gain_gold(amount) @gold = [[@gold + amount, 0].max, max_gold].min end
Increase/Decrease Items
include_equip : Include equipped items
Source: show
# File Game_Party.rb, line 278 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
Double Money Earned?
Source: show
# File Game_Party.rb, line 450 def gold_double? party_ability(ABILITY_GOLD_DOUBLE) end
Determine Item Possession Status
include_equip : Include equipped items
Source: show
# File Game_Party.rb, line 262 def has_item?(item, include_equip = false) return true if item_number(item) > 0 return include_equip ? members_equip_include?(item) : false end
Get Highest Level of Party Members
Source: show
# File Game_Party.rb, line 186 def highest_level lv = members.collect {|actor| actor.level }.max end
Increase Steps
Source: show
# File Game_Party.rb, line 232 def increase_steps @steps += 1 end
Initialize All Item Lists
Source: show
# File Game_Party.rb, line 42 def init_all_items @items = {} @weapons = {} @armors = {} end
Determine Command Inputability During Battle
Source: show
# File Game_Party.rb, line 331 def inputable? members.any? {|actor| actor.inputable? } end
Get Container Object Corresponding to Item Class
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
Determine if Maximum Number of Items Are Possessed
Source: show
# File Game_Party.rb, line 254 def item_max?(item) item_number(item) >= max_item_number(item) end
Get Number of Items Possessed
Source: show
# File Game_Party.rb, line 239 def item_number(item) container = item_container(item.class) container ? container[item.id] || 0 : 0 end
Get Item Object Array
Source: show
# File Game_Party.rb, line 93 def items @items.keys.sort.collect {|id| $data_items[id] } end
Get Leader
Source: show
# File Game_Party.rb, line 86 def leader battle_members[0] end
Decrease Gold
Source: show
# File Game_Party.rb, line 218 def lose_gold(amount) gain_gold(-amount) end
Lose Items
include_equip : Include equipped items
Source: show
# File Game_Party.rb, line 308 def lose_item(item, amount, include_equip = false) gain_item(item, -amount, include_equip) end
Get Maximum Number of Battle Members
Source: show
# File Game_Party.rb, line 79 def max_battle_members return 4 end
Get Maximum Value of Gold
Source: show
# File Game_Party.rb, line 225 def max_gold return 99999999 end
Get Maximum Number of Items Possessed
Source: show
# File Game_Party.rb, line 247 def max_item_number(item) return 99 end
Get Members
Source: show
# File Game_Party.rb, line 58 def members in_battle ? battle_members : all_members end
Determine if Specified Item Is Included in Members’ Equipment
Source: show
# File Game_Party.rb, line 270 def members_equip_include?(item) members.any? {|actor| actor.equips.include?(item) } end
Get Actor Selected on Menu Screen
Source: show
Set Actor Selected on Menu Screen
Source: show
Select Next Actor on Menu Screen
Source: show
Select Previous Actor on Menu Screen
Source: show
Get Party Name
If there is only one, returns the actor’s name. If there are more, returns “XX’s Party”.
Source: show
# File Game_Party.rb, line 147 def name return "" if battle_members.size == 0 return leader.name if battle_members.size == 1 return sprintf(Vocab::PartyName, leader.name) end
Processing Performed When Player Takes 1 Step
Source: show
# File Game_Party.rb, line 345 def on_player_walk members.each {|actor| actor.on_player_walk } end
Determine Party Ability
Source: show
# File Game_Party.rb, line 415 def party_ability(ability_id) battle_members.any? {|actor| actor.party_ability(ability_id) } end
Increase Preemptive Strike Rate?
Source: show
# File Game_Party.rb, line 443 def raise_preemptive? party_ability(ABILITY_RAISE_PREEMPTIVE) end
Calculate Probability of Preemptive Attack
Source: show
# File Game_Party.rb, line 464 def rate_preemptive(troop_agi) (agi >= troop_agi ? 0.05 : 0.03) * (raise_preemptive? ? 4 : 1) end
Calculate Probability of Surprise
Source: show
# File Game_Party.rb, line 471 def rate_surprise(troop_agi) cancel_surprise? ? 0 : (agi >= troop_agi ? 0.03 : 0.05) end
Remove Actor
Source: show
# File Game_Party.rb, line 202 def remove_actor(actor_id) @actors.delete(actor_id) $game_player.refresh $game_map.need_refresh = true end
Set Up Battle Test
Source: show
# File Game_Party.rb, line 156 def setup_battle_test setup_battle_test_members setup_battle_test_items end
Set Up Items for Battle Test
Source: show
# File Game_Party.rb, line 177 def setup_battle_test_items $data_items.each do |item| gain_item(item, max_item_number(item)) if item && !item.name.empty? end end
Battle Test Party Setup
Source: show
# File Game_Party.rb, line 164 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
Initial Party Setup
Source: show
# File Game_Party.rb, line 138 def setup_starting_members @actors = $data_system.party_members.clone end
Change Order
Source: show
# File Game_Party.rb, line 398 def swap_order(index1, index2) @actors[index1], @actors[index2] = @actors[index2], @actors[index1] $game_player.refresh end
Get Actor Targeted by Skill/Item Use
Source: show
# File Game_Party.rb, line 384 def target_actor $game_actors[@target_actor_id] || members[0] end
Set Actor Targeted by Skill/Item Use
Source: show
# File Game_Party.rb, line 391 def target_actor=(actor) @target_actor_id = actor.id end