Class: Game_Party
- Defined in:
- lib/rgss3_default_scripts/Game_Party.rb
Overview
** Game_Party
This class handles parties. Information such as gold and items is included.
Instances of this class are referenced by $game_party.
Constant Summary collapse
- ABILITY_ENCOUNTER_HALF =
-
Constants
-
0- ABILITY_ENCOUNTER_NONE =
halve encounters
1- ABILITY_CANCEL_SURPRISE =
disable encounters
2- ABILITY_RAISE_PREEMPTIVE =
disable surprise
3- ABILITY_GOLD_DOUBLE =
increase preemptive strike rate
4- ABILITY_DROP_ITEM_DOUBLE =
double money earned
5
Instance Attribute Summary collapse
-
#gold ⇒ Object
readonly
————————————————————————– * Public Instance Variables ————————————————————————–.
-
#last_item ⇒ Object
readonly
for cursor memorization: item.
-
#steps ⇒ Object
readonly
number of steps.
Attributes inherited from Game_Unit
Instance Method Summary collapse
-
#add_actor(actor_id) ⇒ Object
————————————————————————– * Add an Actor ————————————————————————–.
-
#all_dead? ⇒ Boolean
————————————————————————– * Determine if Everyone is Dead ————————————————————————–.
-
#all_items ⇒ Object
————————————————————————– * Get Array of All Item Objects ————————————————————————–.
-
#all_members ⇒ Object
————————————————————————– * Get All Members ————————————————————————–.
-
#armors ⇒ Object
————————————————————————– * Get Armor Object Array ————————————————————————–.
-
#battle_members ⇒ Object
————————————————————————– * Get Battle Members ————————————————————————–.
-
#cancel_surprise? ⇒ Boolean
————————————————————————– * Disable Surprise? ————————————————————————–.
-
#characters_for_savefile ⇒ Object
————————————————————————– * Character Image Information for Save File Display ————————————————————————–.
-
#consume_item(item) ⇒ Object
————————————————————————– * Consume Items If the specified object is a consumable item, the number in investory will be reduced by 1.
-
#discard_members_equip(item, amount) ⇒ Object
————————————————————————– * Discard Members’ Equipment ————————————————————————–.
-
#drop_item_double? ⇒ Boolean
————————————————————————– * Double Item Acquisition Rate? ————————————————————————–.
-
#encounter_half? ⇒ Boolean
————————————————————————– * Halve Encounters? ————————————————————————–.
-
#encounter_none? ⇒ Boolean
————————————————————————– * Disable Encounters? ————————————————————————–.
-
#equip_items ⇒ Object
————————————————————————– * Get Array of All Equipment Objects ————————————————————————–.
-
#exists ⇒ Object
————————————————————————– * Determine Existence ————————————————————————–.
-
#gain_gold(amount) ⇒ Object
————————————————————————– * Increase Gold ————————————————————————–.
-
#gain_item(item, amount, include_equip = false) ⇒ Object
————————————————————————– * Increase/Decrease Items include_equip : Include equipped items ————————————————————————–.
-
#gold_double? ⇒ Boolean
————————————————————————– * Double Money Earned? ————————————————————————–.
-
#has_item?(item, include_equip = false) ⇒ Boolean
————————————————————————– * Determine Item Possession Status include_equip : Include equipped items ————————————————————————–.
-
#highest_level ⇒ Object
————————————————————————– * Get Highest Level of Party Members ————————————————————————–.
-
#increase_steps ⇒ Object
————————————————————————– * Increase Steps ————————————————————————–.
-
#init_all_items ⇒ Object
————————————————————————– * Initialize All Item Lists ————————————————————————–.
-
#initialize ⇒ Game_Party
constructor
————————————————————————– * Object Initialization ————————————————————————–.
-
#inputable? ⇒ Boolean
————————————————————————– * Determine Command Inputability During Battle ————————————————————————–.
-
#item_container(item_class) ⇒ Object
————————————————————————– * Get Container Object Corresponding to Item Class ————————————————————————–.
-
#item_max?(item) ⇒ Boolean
————————————————————————– * Determine if Maximum Number of Items Are Possessed ————————————————————————–.
-
#item_number(item) ⇒ Object
————————————————————————– * Get Number of Items Possessed ————————————————————————–.
-
#items ⇒ Object
————————————————————————– * Get Item Object Array ————————————————————————–.
-
#leader ⇒ Object
————————————————————————– * Get Leader ————————————————————————–.
-
#lose_gold(amount) ⇒ Object
————————————————————————– * Decrease Gold ————————————————————————–.
-
#lose_item(item, amount, include_equip = false) ⇒ Object
————————————————————————– * Lose Items include_equip : Include equipped items ————————————————————————–.
-
#max_battle_members ⇒ Object
————————————————————————– * Get Maximum Number of Battle Members ————————————————————————–.
-
#max_gold ⇒ Object
————————————————————————– * Get Maximum Value of Gold ————————————————————————–.
-
#max_item_number(item) ⇒ Object
————————————————————————– * Get Maximum Number of Items Possessed ————————————————————————–.
-
#members ⇒ Object
————————————————————————– * Get Members ————————————————————————–.
-
#members_equip_include?(item) ⇒ Boolean
————————————————————————– * Determine if Specified Item Is Included in Members’ Equipment ————————————————————————–.
-
#menu_actor ⇒ Object
————————————————————————– * Get Actor Selected on Menu Screen ————————————————————————–.
-
#menu_actor=(actor) ⇒ Object
————————————————————————– * Set Actor Selected on Menu Screen ————————————————————————–.
-
#menu_actor_next ⇒ Object
————————————————————————– * Select Next Actor on Menu Screen ————————————————————————–.
-
#menu_actor_prev ⇒ Object
————————————————————————– * Select Previous Actor on Menu Screen ————————————————————————–.
-
#name ⇒ Object
————————————————————————– * Get Party Name If there is only one, returns the actor’s name.
-
#on_player_walk ⇒ Object
————————————————————————– * Processing Performed When Player Takes 1 Step ————————————————————————–.
-
#party_ability(ability_id) ⇒ Object
————————————————————————– * Determine Party Ability ————————————————————————–.
-
#raise_preemptive? ⇒ Boolean
————————————————————————– * Increase Preemptive Strike Rate? ————————————————————————–.
-
#rate_preemptive(troop_agi) ⇒ Object
————————————————————————– * Calculate Probability of Preemptive Attack ————————————————————————–.
-
#rate_surprise(troop_agi) ⇒ Object
————————————————————————– * Calculate Probability of Surprise ————————————————————————–.
-
#remove_actor(actor_id) ⇒ Object
————————————————————————– * Remove Actor ————————————————————————–.
-
#setup_battle_test ⇒ Object
————————————————————————– * Set Up Battle Test ————————————————————————–.
-
#setup_battle_test_items ⇒ Object
————————————————————————– * Set Up Items for Battle Test ————————————————————————–.
-
#setup_battle_test_members ⇒ Object
————————————————————————– * Battle Test Party Setup ————————————————————————–.
-
#setup_starting_members ⇒ Object
————————————————————————– * Initial Party Setup ————————————————————————–.
-
#swap_order(index1, index2) ⇒ Object
————————————————————————– * Change Order ————————————————————————–.
-
#target_actor ⇒ Object
————————————————————————– * Get Actor Targeted by Skill/Item Use ————————————————————————–.
-
#target_actor=(actor) ⇒ Object
————————————————————————– * Set Actor Targeted by Skill/Item Use ————————————————————————–.
-
#usable?(item) ⇒ Boolean
————————————————————————– * Determine Skill/Item Usability ————————————————————————–.
-
#weapons ⇒ Object
————————————————————————– * Get Weapon Object Array ————————————————————————–.
Methods inherited from Game_Unit
#agi, #alive_members, #clear_actions, #clear_results, #dead_members, #make_actions, #movable_members, #on_battle_end, #on_battle_start, #random_dead_target, #random_target, #smooth_dead_target, #smooth_target, #substitute_battler, #tgr_sum
Constructor Details
#initialize ⇒ Game_Party
-
Object Initialization
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 27 def initialize super @gold = 0 @steps = 0 @last_item = Game_BaseItem.new = 0 @target_actor_id = 0 @actors = [] init_all_items end |
Instance Attribute Details
#gold ⇒ Object (readonly)
-
Public Instance Variables
21 22 23 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 21 def gold @gold end |
#last_item ⇒ Object (readonly)
for cursor memorization: item
23 24 25 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 23 def last_item @last_item end |
#steps ⇒ Object (readonly)
number of steps
22 23 24 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 22 def steps @steps end |
Instance Method Details
#add_actor(actor_id) ⇒ Object
-
Add an Actor
172 173 174 175 176 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 172 def add_actor(actor_id) @actors.push(actor_id) unless @actors.include?(actor_id) $game_player.refresh $game_map.need_refresh = true end |
#all_dead? ⇒ Boolean
-
Determine if Everyone is Dead
300 301 302 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 300 def all_dead? super && ($game_party.in_battle || members.size > 0) end |
#all_items ⇒ Object
-
Get Array of All Item Objects
108 109 110 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 108 def all_items items + equip_items end |
#all_members ⇒ Object
-
Get All Members
60 61 62 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 60 def all_members @actors.collect {|id| $game_actors[id] } end |
#armors ⇒ Object
-
Get Armor Object Array
96 97 98 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 96 def armors @armors.keys.sort.collect {|id| $data_armors[id] } end |
#battle_members ⇒ Object
-
Get Battle Members
66 67 68 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 66 def battle_members all_members[0, max_battle_members].select {|actor| actor.exist? } end |
#cancel_surprise? ⇒ Boolean
-
Disable Surprise?
385 386 387 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 385 def cancel_surprise? party_ability(ABILITY_CANCEL_SURPRISE) end |
#characters_for_savefile ⇒ Object
-
Character Image Information for Save File Display
359 360 361 362 363 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 359 def characters_for_savefile battle_members.collect do |actor| [actor.character_name, actor.character_index] end end |
#consume_item(item) ⇒ Object
-
Consume Items
If the specified object is a consumable item, the number in investory will be reduced by 1.
282 283 284 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 282 def consume_item(item) lose_item(item, 1) if item.is_a?(RPG::Item) && item.consumable end |
#discard_members_equip(item, amount) ⇒ Object
-
Discard Members’ Equipment
261 262 263 264 265 266 267 268 269 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 261 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 |
#drop_item_double? ⇒ Boolean
-
Double Item Acquisition Rate?
403 404 405 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 403 def drop_item_double? party_ability(ABILITY_DROP_ITEM_DOUBLE) end |
#encounter_half? ⇒ Boolean
-
Halve Encounters?
373 374 375 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 373 def encounter_half? party_ability(ABILITY_ENCOUNTER_HALF) end |
#encounter_none? ⇒ Boolean
-
Disable Encounters?
379 380 381 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 379 def encounter_none? party_ability(ABILITY_ENCOUNTER_NONE) end |
#equip_items ⇒ Object
-
Get Array of All Equipment Objects
102 103 104 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 102 def equip_items weapons + armors end |
#exists ⇒ Object
-
Determine Existence
48 49 50 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 48 def exists !@actors.empty? end |
#gain_gold(amount) ⇒ Object
-
Increase Gold
188 189 190 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 188 def gain_gold(amount) @gold = [[@gold + amount, 0].max, max_gold].min end |
#gain_item(item, amount, include_equip = false) ⇒ Object
-
Increase/Decrease Items
include_equip : Include equipped items
246 247 248 249 250 251 252 253 254 255 256 257 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 246 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 |
#gold_double? ⇒ Boolean
-
Double Money Earned?
397 398 399 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 397 def gold_double? party_ability(ABILITY_GOLD_DOUBLE) end |
#has_item?(item, include_equip = false) ⇒ Boolean
-
Determine Item Possession Status
include_equip : Include equipped items
232 233 234 235 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 232 def has_item?(item, include_equip = false) return true if item_number(item) > 0 return include_equip ? members_equip_include?(item) : false end |
#highest_level ⇒ Object
-
Get Highest Level of Party Members
166 167 168 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 166 def highest_level lv = members.collect {|actor| actor.level }.max end |
#increase_steps ⇒ Object
-
Increase Steps
206 207 208 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 206 def increase_steps @steps += 1 end |
#init_all_items ⇒ Object
-
Initialize All Item Lists
40 41 42 43 44 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 40 def init_all_items @items = {} @weapons = {} @armors = {} end |
#inputable? ⇒ Boolean
-
Determine Command Inputability During Battle
294 295 296 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 294 def inputable? members.any? {|actor| actor.inputable? } end |
#item_container(item_class) ⇒ Object
-
Get Container Object Corresponding to Item Class
114 115 116 117 118 119 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 114 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 |
#item_max?(item) ⇒ Boolean
-
Determine if Maximum Number of Items Are Possessed
225 226 227 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 225 def item_max?(item) item_number(item) >= max_item_number(item) end |
#item_number(item) ⇒ Object
-
Get Number of Items Possessed
212 213 214 215 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 212 def item_number(item) container = item_container(item.class) container ? container[item.id] || 0 : 0 end |
#items ⇒ Object
-
Get Item Object Array
84 85 86 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 84 def items @items.keys.sort.collect {|id| $data_items[id] } end |
#leader ⇒ Object
-
Get Leader
78 79 80 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 78 def leader battle_members[0] end |
#lose_gold(amount) ⇒ Object
-
Decrease Gold
194 195 196 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 194 def lose_gold(amount) gain_gold(-amount) end |
#lose_item(item, amount, include_equip = false) ⇒ Object
-
Lose Items
include_equip : Include equipped items
274 275 276 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 274 def lose_item(item, amount, include_equip = false) gain_item(item, -amount, include_equip) end |
#max_battle_members ⇒ Object
-
Get Maximum Number of Battle Members
72 73 74 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 72 def max_battle_members return 4 end |
#max_gold ⇒ Object
-
Get Maximum Value of Gold
200 201 202 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 200 def max_gold return 99999999 end |
#max_item_number(item) ⇒ Object
-
Get Maximum Number of Items Possessed
219 220 221 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 219 def max_item_number(item) return 99 end |
#members ⇒ Object
-
Get Members
54 55 56 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 54 def members in_battle ? battle_members : all_members end |
#members_equip_include?(item) ⇒ Boolean
-
Determine if Specified Item Is Included in Members’ Equipment
239 240 241 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 239 def members_equip_include?(item) members.any? {|actor| actor.equips.include?(item) } end |
#menu_actor ⇒ Object
-
Get Actor Selected on Menu Screen
312 313 314 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 312 def $game_actors[] || members[0] end |
#menu_actor=(actor) ⇒ Object
-
Set Actor Selected on Menu Screen
318 319 320 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 318 def (actor) = actor.id end |
#menu_actor_next ⇒ Object
-
Select Next Actor on Menu Screen
324 325 326 327 328 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 324 def index = members.index() || -1 index = (index + 1) % members.size self. = members[index] end |
#menu_actor_prev ⇒ Object
-
Select Previous Actor on Menu Screen
332 333 334 335 336 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 332 def index = members.index() || 1 index = (index + members.size - 1) % members.size self. = members[index] end |
#name ⇒ Object
-
Get Party Name
If there is only one, returns the actor's name. If there are more, returns "XX's Party".
131 132 133 134 135 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 131 def name return "" if battle_members.size == 0 return leader.name if battle_members.size == 1 return sprintf(Vocab::PartyName, leader.name) end |
#on_player_walk ⇒ Object
-
Processing Performed When Player Takes 1 Step
306 307 308 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 306 def on_player_walk members.each {|actor| actor.on_player_walk } end |
#party_ability(ability_id) ⇒ Object
-
Determine Party Ability
367 368 369 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 367 def party_ability(ability_id) battle_members.any? {|actor| actor.party_ability(ability_id) } end |
#raise_preemptive? ⇒ Boolean
-
Increase Preemptive Strike Rate?
391 392 393 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 391 def raise_preemptive? party_ability(ABILITY_RAISE_PREEMPTIVE) end |
#rate_preemptive(troop_agi) ⇒ Object
-
Calculate Probability of Preemptive Attack
409 410 411 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 409 def rate_preemptive(troop_agi) (agi >= troop_agi ? 0.05 : 0.03) * (raise_preemptive? ? 4 : 1) end |
#rate_surprise(troop_agi) ⇒ Object
-
Calculate Probability of Surprise
415 416 417 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 415 def rate_surprise(troop_agi) cancel_surprise? ? 0 : (agi >= troop_agi ? 0.03 : 0.05) end |
#remove_actor(actor_id) ⇒ Object
-
Remove Actor
180 181 182 183 184 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 180 def remove_actor(actor_id) @actors.delete(actor_id) $game_player.refresh $game_map.need_refresh = true end |
#setup_battle_test ⇒ Object
-
Set Up Battle Test
139 140 141 142 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 139 def setup_battle_test setup_battle_test_members setup_battle_test_items end |
#setup_battle_test_items ⇒ Object
-
Set Up Items for Battle Test
158 159 160 161 162 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 158 def setup_battle_test_items $data_items.each do |item| gain_item(item, max_item_number(item)) if item && !item.name.empty? end end |
#setup_battle_test_members ⇒ Object
-
Battle Test Party Setup
146 147 148 149 150 151 152 153 154 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 146 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 |
#setup_starting_members ⇒ Object
-
Initial Party Setup
123 124 125 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 123 def setup_starting_members @actors = $data_system.party_members.clone end |
#swap_order(index1, index2) ⇒ Object
-
Change Order
352 353 354 355 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 352 def swap_order(index1, index2) @actors[index1], @actors[index2] = @actors[index2], @actors[index1] $game_player.refresh end |
#target_actor ⇒ Object
-
Get Actor Targeted by Skill/Item Use
340 341 342 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 340 def target_actor $game_actors[@target_actor_id] || members[0] end |
#target_actor=(actor) ⇒ Object
-
Set Actor Targeted by Skill/Item Use
346 347 348 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 346 def target_actor=(actor) @target_actor_id = actor.id end |
#usable?(item) ⇒ Boolean
-
Determine Skill/Item Usability
288 289 290 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 288 def usable?(item) members.any? {|actor| actor.usable?(item) } end |
#weapons ⇒ Object
-
Get Weapon Object Array
90 91 92 |
# File 'lib/rgss3_default_scripts/Game_Party.rb', line 90 def weapons @weapons.keys.sort.collect {|id| $data_weapons[id] } end |