rgss3_default_scripts 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/Gemfile +4 -0
  4. data/README.md +9 -0
  5. data/Rakefile +2 -0
  6. data/lib/rgss3_default_scripts.rb +109 -0
  7. data/lib/rgss3_default_scripts/BattleManager.rb +392 -0
  8. data/lib/rgss3_default_scripts/Cache.rb +134 -0
  9. data/lib/rgss3_default_scripts/DataManager.rb +267 -0
  10. data/lib/rgss3_default_scripts/Game_Action.rb +262 -0
  11. data/lib/rgss3_default_scripts/Game_ActionResult.rb +159 -0
  12. data/lib/rgss3_default_scripts/Game_Actor.rb +696 -0
  13. data/lib/rgss3_default_scripts/Game_Actors.rb +22 -0
  14. data/lib/rgss3_default_scripts/Game_BaseItem.rb +51 -0
  15. data/lib/rgss3_default_scripts/Game_Battler.rb +824 -0
  16. data/lib/rgss3_default_scripts/Game_BattlerBase.rb +731 -0
  17. data/lib/rgss3_default_scripts/Game_Character.rb +396 -0
  18. data/lib/rgss3_default_scripts/Game_CharacterBase.rb +443 -0
  19. data/lib/rgss3_default_scripts/Game_CommonEvent.rb +41 -0
  20. data/lib/rgss3_default_scripts/Game_Enemy.rb +264 -0
  21. data/lib/rgss3_default_scripts/Game_Event.rb +308 -0
  22. data/lib/rgss3_default_scripts/Game_Follower.rb +74 -0
  23. data/lib/rgss3_default_scripts/Game_Followers.rb +112 -0
  24. data/lib/rgss3_default_scripts/Game_Interpreter.rb +1413 -0
  25. data/lib/rgss3_default_scripts/Game_Map.rb +704 -0
  26. data/lib/rgss3_default_scripts/Game_Message.rb +101 -0
  27. data/lib/rgss3_default_scripts/Game_Party.rb +418 -0
  28. data/lib/rgss3_default_scripts/Game_Picture.rb +161 -0
  29. data/lib/rgss3_default_scripts/Game_Pictures.rb +28 -0
  30. data/lib/rgss3_default_scripts/Game_Player.rb +488 -0
  31. data/lib/rgss3_default_scripts/Game_Screen.rb +234 -0
  32. data/lib/rgss3_default_scripts/Game_SelfSwitches.rb +35 -0
  33. data/lib/rgss3_default_scripts/Game_Switches.rb +35 -0
  34. data/lib/rgss3_default_scripts/Game_System.rb +122 -0
  35. data/lib/rgss3_default_scripts/Game_Temp.rb +45 -0
  36. data/lib/rgss3_default_scripts/Game_Timer.rb +56 -0
  37. data/lib/rgss3_default_scripts/Game_Troop.rb +205 -0
  38. data/lib/rgss3_default_scripts/Game_Unit.rb +131 -0
  39. data/lib/rgss3_default_scripts/Game_Variables.rb +34 -0
  40. data/lib/rgss3_default_scripts/Game_Vehicle.rb +193 -0
  41. data/lib/rgss3_default_scripts/SceneManager.rb +94 -0
  42. data/lib/rgss3_default_scripts/Scene_Base.rb +132 -0
  43. data/lib/rgss3_default_scripts/Scene_Battle.rb +693 -0
  44. data/lib/rgss3_default_scripts/Scene_Debug.rb +87 -0
  45. data/lib/rgss3_default_scripts/Scene_End.rb +61 -0
  46. data/lib/rgss3_default_scripts/Scene_Equip.rb +144 -0
  47. data/lib/rgss3_default_scripts/Scene_File.rb +203 -0
  48. data/lib/rgss3_default_scripts/Scene_Gameover.rb +85 -0
  49. data/lib/rgss3_default_scripts/Scene_Item.rb +75 -0
  50. data/lib/rgss3_default_scripts/Scene_ItemBase.rb +147 -0
  51. data/lib/rgss3_default_scripts/Scene_Load.rb +40 -0
  52. data/lib/rgss3_default_scripts/Scene_Map.rb +276 -0
  53. data/lib/rgss3_default_scripts/Scene_Menu.rb +127 -0
  54. data/lib/rgss3_default_scripts/Scene_MenuBase.rb +63 -0
  55. data/lib/rgss3_default_scripts/Scene_Name.rb +32 -0
  56. data/lib/rgss3_default_scripts/Scene_Save.rb +38 -0
  57. data/lib/rgss3_default_scripts/Scene_Shop.rb +299 -0
  58. data/lib/rgss3_default_scripts/Scene_Skill.rb +108 -0
  59. data/lib/rgss3_default_scripts/Scene_Status.rb +25 -0
  60. data/lib/rgss3_default_scripts/Scene_Title.rb +137 -0
  61. data/lib/rgss3_default_scripts/Sound.rb +135 -0
  62. data/lib/rgss3_default_scripts/Sprite_Base.rb +232 -0
  63. data/lib/rgss3_default_scripts/Sprite_Battler.rb +231 -0
  64. data/lib/rgss3_default_scripts/Sprite_Character.rb +226 -0
  65. data/lib/rgss3_default_scripts/Sprite_Picture.rb +82 -0
  66. data/lib/rgss3_default_scripts/Sprite_Timer.rb +77 -0
  67. data/lib/rgss3_default_scripts/Spriteset_Battle.rb +389 -0
  68. data/lib/rgss3_default_scripts/Spriteset_Map.rb +273 -0
  69. data/lib/rgss3_default_scripts/Spriteset_Weather.rb +184 -0
  70. data/lib/rgss3_default_scripts/Vocab.rb +145 -0
  71. data/lib/rgss3_default_scripts/Window_ActorCommand.rb +78 -0
  72. data/lib/rgss3_default_scripts/Window_Base.rb +571 -0
  73. data/lib/rgss3_default_scripts/Window_BattleActor.rb +38 -0
  74. data/lib/rgss3_default_scripts/Window_BattleEnemy.rb +70 -0
  75. data/lib/rgss3_default_scripts/Window_BattleItem.rb +40 -0
  76. data/lib/rgss3_default_scripts/Window_BattleLog.rb +425 -0
  77. data/lib/rgss3_default_scripts/Window_BattleSkill.rb +34 -0
  78. data/lib/rgss3_default_scripts/Window_BattleStatus.rb +111 -0
  79. data/lib/rgss3_default_scripts/Window_ChoiceList.rb +88 -0
  80. data/lib/rgss3_default_scripts/Window_Command.rb +152 -0
  81. data/lib/rgss3_default_scripts/Window_DebugLeft.rb +104 -0
  82. data/lib/rgss3_default_scripts/Window_DebugRight.rb +119 -0
  83. data/lib/rgss3_default_scripts/Window_EquipCommand.rb +36 -0
  84. data/lib/rgss3_default_scripts/Window_EquipItem.rb +78 -0
  85. data/lib/rgss3_default_scripts/Window_EquipSlot.rb +111 -0
  86. data/lib/rgss3_default_scripts/Window_EquipStatus.rb +97 -0
  87. data/lib/rgss3_default_scripts/Window_GameEnd.rb +38 -0
  88. data/lib/rgss3_default_scripts/Window_Gold.rb +47 -0
  89. data/lib/rgss3_default_scripts/Window_Help.rb +43 -0
  90. data/lib/rgss3_default_scripts/Window_HorzCommand.rb +106 -0
  91. data/lib/rgss3_default_scripts/Window_ItemCategory.rb +54 -0
  92. data/lib/rgss3_default_scripts/Window_ItemList.rb +117 -0
  93. data/lib/rgss3_default_scripts/Window_KeyItem.rb +55 -0
  94. data/lib/rgss3_default_scripts/Window_MapName.rb +96 -0
  95. data/lib/rgss3_default_scripts/Window_MenuActor.rb +43 -0
  96. data/lib/rgss3_default_scripts/Window_MenuCommand.rb +106 -0
  97. data/lib/rgss3_default_scripts/Window_MenuStatus.rb +85 -0
  98. data/lib/rgss3_default_scripts/Window_Message.rb +397 -0
  99. data/lib/rgss3_default_scripts/Window_NameEdit.rb +129 -0
  100. data/lib/rgss3_default_scripts/Window_NameInput.rb +253 -0
  101. data/lib/rgss3_default_scripts/Window_NumberInput.rb +148 -0
  102. data/lib/rgss3_default_scripts/Window_PartyCommand.rb +47 -0
  103. data/lib/rgss3_default_scripts/Window_SaveFile.rb +69 -0
  104. data/lib/rgss3_default_scripts/Window_ScrollText.rb +90 -0
  105. data/lib/rgss3_default_scripts/Window_Selectable.rb +442 -0
  106. data/lib/rgss3_default_scripts/Window_ShopBuy.rb +115 -0
  107. data/lib/rgss3_default_scripts/Window_ShopCommand.rb +36 -0
  108. data/lib/rgss3_default_scripts/Window_ShopNumber.rb +137 -0
  109. data/lib/rgss3_default_scripts/Window_ShopSell.rb +27 -0
  110. data/lib/rgss3_default_scripts/Window_ShopStatus.rb +124 -0
  111. data/lib/rgss3_default_scripts/Window_SkillCommand.rb +76 -0
  112. data/lib/rgss3_default_scripts/Window_SkillList.rb +121 -0
  113. data/lib/rgss3_default_scripts/Window_SkillStatus.rb +38 -0
  114. data/lib/rgss3_default_scripts/Window_Status.rb +125 -0
  115. data/lib/rgss3_default_scripts/Window_TitleCommand.rb +45 -0
  116. data/rgss3_default_scripts.gemspec +23 -0
  117. metadata +186 -0
@@ -0,0 +1,101 @@
1
+ #==============================================================================
2
+ # ** Game_Message
3
+ #------------------------------------------------------------------------------
4
+ # This class handles the state of the message window that displays text or
5
+ # selections, etc. The instance of this class is referenced by $game_message.
6
+ #==============================================================================
7
+
8
+ class Game_Message
9
+ #--------------------------------------------------------------------------
10
+ # * Public Instance Variables
11
+ #--------------------------------------------------------------------------
12
+ attr_reader :texts # text array (in rows)
13
+ attr_reader :choices # choice array
14
+ attr_accessor :face_name # face graphic filename
15
+ attr_accessor :face_index # face graphic index
16
+ attr_accessor :background # background type
17
+ attr_accessor :position # display position
18
+ attr_accessor :choice_proc # show choices: call back (Proc)
19
+ attr_accessor :choice_cancel_type # show choices: cancel
20
+ attr_accessor :num_input_variable_id # input number: variable ID
21
+ attr_accessor :num_input_digits_max # input number: digit count
22
+ attr_accessor :item_choice_variable_id # item selection: variable ID
23
+ attr_accessor :scroll_mode # scroll text flag
24
+ attr_accessor :scroll_speed # scroll text: speed
25
+ attr_accessor :scroll_no_fast # scroll text: disable fast forward
26
+ attr_accessor :visible # displaying a message
27
+ #--------------------------------------------------------------------------
28
+ # * Object Initialization
29
+ #--------------------------------------------------------------------------
30
+ def initialize
31
+ clear
32
+ @visible = false
33
+ end
34
+ #--------------------------------------------------------------------------
35
+ # * Clear
36
+ #--------------------------------------------------------------------------
37
+ def clear
38
+ @texts = []
39
+ @choices = []
40
+ @face_name = ""
41
+ @face_index = 0
42
+ @background = 0
43
+ @position = 2
44
+ @choice_cancel_type = 0
45
+ @choice_proc = nil
46
+ @num_input_variable_id = 0
47
+ @num_input_digits_max = 0
48
+ @item_choice_variable_id = 0
49
+ @scroll_mode = false
50
+ @scroll_speed = 2
51
+ @scroll_no_fast = false
52
+ end
53
+ #--------------------------------------------------------------------------
54
+ # * Add Text
55
+ #--------------------------------------------------------------------------
56
+ def add(text)
57
+ @texts.push(text)
58
+ end
59
+ #--------------------------------------------------------------------------
60
+ # * Determine Existence of Text
61
+ #--------------------------------------------------------------------------
62
+ def has_text?
63
+ @texts.size > 0
64
+ end
65
+ #--------------------------------------------------------------------------
66
+ # * Determine if Choices Mode
67
+ #--------------------------------------------------------------------------
68
+ def choice?
69
+ @choices.size > 0
70
+ end
71
+ #--------------------------------------------------------------------------
72
+ # * Determine if Number Input Mode
73
+ #--------------------------------------------------------------------------
74
+ def num_input?
75
+ @num_input_variable_id > 0
76
+ end
77
+ #--------------------------------------------------------------------------
78
+ # * Determine if Item Selection Mode
79
+ #--------------------------------------------------------------------------
80
+ def item_choice?
81
+ @item_choice_variable_id > 0
82
+ end
83
+ #--------------------------------------------------------------------------
84
+ # * Determine if Busy
85
+ #--------------------------------------------------------------------------
86
+ def busy?
87
+ has_text? || choice? || num_input? || item_choice?
88
+ end
89
+ #--------------------------------------------------------------------------
90
+ # * New Page
91
+ #--------------------------------------------------------------------------
92
+ def new_page
93
+ @texts[-1] += "\f" if @texts.size > 0
94
+ end
95
+ #--------------------------------------------------------------------------
96
+ # * Get All Text Including New Lines
97
+ #--------------------------------------------------------------------------
98
+ def all_text
99
+ @texts.inject("") {|r, text| r += text + "\n" }
100
+ end
101
+ end
@@ -0,0 +1,418 @@
1
+ #==============================================================================
2
+ # ** Game_Party
3
+ #------------------------------------------------------------------------------
4
+ # This class handles parties. Information such as gold and items is included.
5
+ # Instances of this class are referenced by $game_party.
6
+ #==============================================================================
7
+
8
+ class Game_Party < Game_Unit
9
+ #--------------------------------------------------------------------------
10
+ # * Constants
11
+ #--------------------------------------------------------------------------
12
+ ABILITY_ENCOUNTER_HALF = 0 # halve encounters
13
+ ABILITY_ENCOUNTER_NONE = 1 # disable encounters
14
+ ABILITY_CANCEL_SURPRISE = 2 # disable surprise
15
+ ABILITY_RAISE_PREEMPTIVE = 3 # increase preemptive strike rate
16
+ ABILITY_GOLD_DOUBLE = 4 # double money earned
17
+ ABILITY_DROP_ITEM_DOUBLE = 5 # double item acquisition rate
18
+ #--------------------------------------------------------------------------
19
+ # * Public Instance Variables
20
+ #--------------------------------------------------------------------------
21
+ attr_reader :gold # party's gold
22
+ attr_reader :steps # number of steps
23
+ attr_reader :last_item # for cursor memorization: item
24
+ #--------------------------------------------------------------------------
25
+ # * Object Initialization
26
+ #--------------------------------------------------------------------------
27
+ def initialize
28
+ super
29
+ @gold = 0
30
+ @steps = 0
31
+ @last_item = Game_BaseItem.new
32
+ @menu_actor_id = 0
33
+ @target_actor_id = 0
34
+ @actors = []
35
+ init_all_items
36
+ end
37
+ #--------------------------------------------------------------------------
38
+ # * Initialize All Item Lists
39
+ #--------------------------------------------------------------------------
40
+ def init_all_items
41
+ @items = {}
42
+ @weapons = {}
43
+ @armors = {}
44
+ end
45
+ #--------------------------------------------------------------------------
46
+ # * Determine Existence
47
+ #--------------------------------------------------------------------------
48
+ def exists
49
+ !@actors.empty?
50
+ end
51
+ #--------------------------------------------------------------------------
52
+ # * Get Members
53
+ #--------------------------------------------------------------------------
54
+ def members
55
+ in_battle ? battle_members : all_members
56
+ end
57
+ #--------------------------------------------------------------------------
58
+ # * Get All Members
59
+ #--------------------------------------------------------------------------
60
+ def all_members
61
+ @actors.collect {|id| $game_actors[id] }
62
+ end
63
+ #--------------------------------------------------------------------------
64
+ # * Get Battle Members
65
+ #--------------------------------------------------------------------------
66
+ def battle_members
67
+ all_members[0, max_battle_members].select {|actor| actor.exist? }
68
+ end
69
+ #--------------------------------------------------------------------------
70
+ # * Get Maximum Number of Battle Members
71
+ #--------------------------------------------------------------------------
72
+ def max_battle_members
73
+ return 4
74
+ end
75
+ #--------------------------------------------------------------------------
76
+ # * Get Leader
77
+ #--------------------------------------------------------------------------
78
+ def leader
79
+ battle_members[0]
80
+ end
81
+ #--------------------------------------------------------------------------
82
+ # * Get Item Object Array
83
+ #--------------------------------------------------------------------------
84
+ def items
85
+ @items.keys.sort.collect {|id| $data_items[id] }
86
+ end
87
+ #--------------------------------------------------------------------------
88
+ # * Get Weapon Object Array
89
+ #--------------------------------------------------------------------------
90
+ def weapons
91
+ @weapons.keys.sort.collect {|id| $data_weapons[id] }
92
+ end
93
+ #--------------------------------------------------------------------------
94
+ # * Get Armor Object Array
95
+ #--------------------------------------------------------------------------
96
+ def armors
97
+ @armors.keys.sort.collect {|id| $data_armors[id] }
98
+ end
99
+ #--------------------------------------------------------------------------
100
+ # * Get Array of All Equipment Objects
101
+ #--------------------------------------------------------------------------
102
+ def equip_items
103
+ weapons + armors
104
+ end
105
+ #--------------------------------------------------------------------------
106
+ # * Get Array of All Item Objects
107
+ #--------------------------------------------------------------------------
108
+ def all_items
109
+ items + equip_items
110
+ end
111
+ #--------------------------------------------------------------------------
112
+ # * Get Container Object Corresponding to Item Class
113
+ #--------------------------------------------------------------------------
114
+ def item_container(item_class)
115
+ return @items if item_class == RPG::Item
116
+ return @weapons if item_class == RPG::Weapon
117
+ return @armors if item_class == RPG::Armor
118
+ return nil
119
+ end
120
+ #--------------------------------------------------------------------------
121
+ # * Initial Party Setup
122
+ #--------------------------------------------------------------------------
123
+ def setup_starting_members
124
+ @actors = $data_system.party_members.clone
125
+ end
126
+ #--------------------------------------------------------------------------
127
+ # * Get Party Name
128
+ # If there is only one, returns the actor's name.
129
+ # If there are more, returns "XX's Party".
130
+ #--------------------------------------------------------------------------
131
+ def name
132
+ return "" if battle_members.size == 0
133
+ return leader.name if battle_members.size == 1
134
+ return sprintf(Vocab::PartyName, leader.name)
135
+ end
136
+ #--------------------------------------------------------------------------
137
+ # * Set Up Battle Test
138
+ #--------------------------------------------------------------------------
139
+ def setup_battle_test
140
+ setup_battle_test_members
141
+ setup_battle_test_items
142
+ end
143
+ #--------------------------------------------------------------------------
144
+ # * Battle Test Party Setup
145
+ #--------------------------------------------------------------------------
146
+ def setup_battle_test_members
147
+ $data_system.test_battlers.each do |battler|
148
+ actor = $game_actors[battler.actor_id]
149
+ actor.change_level(battler.level, false)
150
+ actor.init_equips(battler.equips)
151
+ actor.recover_all
152
+ add_actor(actor.id)
153
+ end
154
+ end
155
+ #--------------------------------------------------------------------------
156
+ # * Set Up Items for Battle Test
157
+ #--------------------------------------------------------------------------
158
+ def setup_battle_test_items
159
+ $data_items.each do |item|
160
+ gain_item(item, max_item_number(item)) if item && !item.name.empty?
161
+ end
162
+ end
163
+ #--------------------------------------------------------------------------
164
+ # * Get Highest Level of Party Members
165
+ #--------------------------------------------------------------------------
166
+ def highest_level
167
+ lv = members.collect {|actor| actor.level }.max
168
+ end
169
+ #--------------------------------------------------------------------------
170
+ # * Add an Actor
171
+ #--------------------------------------------------------------------------
172
+ def add_actor(actor_id)
173
+ @actors.push(actor_id) unless @actors.include?(actor_id)
174
+ $game_player.refresh
175
+ $game_map.need_refresh = true
176
+ end
177
+ #--------------------------------------------------------------------------
178
+ # * Remove Actor
179
+ #--------------------------------------------------------------------------
180
+ def remove_actor(actor_id)
181
+ @actors.delete(actor_id)
182
+ $game_player.refresh
183
+ $game_map.need_refresh = true
184
+ end
185
+ #--------------------------------------------------------------------------
186
+ # * Increase Gold
187
+ #--------------------------------------------------------------------------
188
+ def gain_gold(amount)
189
+ @gold = [[@gold + amount, 0].max, max_gold].min
190
+ end
191
+ #--------------------------------------------------------------------------
192
+ # * Decrease Gold
193
+ #--------------------------------------------------------------------------
194
+ def lose_gold(amount)
195
+ gain_gold(-amount)
196
+ end
197
+ #--------------------------------------------------------------------------
198
+ # * Get Maximum Value of Gold
199
+ #--------------------------------------------------------------------------
200
+ def max_gold
201
+ return 99999999
202
+ end
203
+ #--------------------------------------------------------------------------
204
+ # * Increase Steps
205
+ #--------------------------------------------------------------------------
206
+ def increase_steps
207
+ @steps += 1
208
+ end
209
+ #--------------------------------------------------------------------------
210
+ # * Get Number of Items Possessed
211
+ #--------------------------------------------------------------------------
212
+ def item_number(item)
213
+ container = item_container(item.class)
214
+ container ? container[item.id] || 0 : 0
215
+ end
216
+ #--------------------------------------------------------------------------
217
+ # * Get Maximum Number of Items Possessed
218
+ #--------------------------------------------------------------------------
219
+ def max_item_number(item)
220
+ return 99
221
+ end
222
+ #--------------------------------------------------------------------------
223
+ # * Determine if Maximum Number of Items Are Possessed
224
+ #--------------------------------------------------------------------------
225
+ def item_max?(item)
226
+ item_number(item) >= max_item_number(item)
227
+ end
228
+ #--------------------------------------------------------------------------
229
+ # * Determine Item Possession Status
230
+ # include_equip : Include equipped items
231
+ #--------------------------------------------------------------------------
232
+ def has_item?(item, include_equip = false)
233
+ return true if item_number(item) > 0
234
+ return include_equip ? members_equip_include?(item) : false
235
+ end
236
+ #--------------------------------------------------------------------------
237
+ # * Determine if Specified Item Is Included in Members' Equipment
238
+ #--------------------------------------------------------------------------
239
+ def members_equip_include?(item)
240
+ members.any? {|actor| actor.equips.include?(item) }
241
+ end
242
+ #--------------------------------------------------------------------------
243
+ # * Increase/Decrease Items
244
+ # include_equip : Include equipped items
245
+ #--------------------------------------------------------------------------
246
+ def gain_item(item, amount, include_equip = false)
247
+ container = item_container(item.class)
248
+ return unless container
249
+ last_number = item_number(item)
250
+ new_number = last_number + amount
251
+ container[item.id] = [[new_number, 0].max, max_item_number(item)].min
252
+ container.delete(item.id) if container[item.id] == 0
253
+ if include_equip && new_number < 0
254
+ discard_members_equip(item, -new_number)
255
+ end
256
+ $game_map.need_refresh = true
257
+ end
258
+ #--------------------------------------------------------------------------
259
+ # * Discard Members' Equipment
260
+ #--------------------------------------------------------------------------
261
+ def discard_members_equip(item, amount)
262
+ n = amount
263
+ members.each do |actor|
264
+ while n > 0 && actor.equips.include?(item)
265
+ actor.discard_equip(item)
266
+ n -= 1
267
+ end
268
+ end
269
+ end
270
+ #--------------------------------------------------------------------------
271
+ # * Lose Items
272
+ # include_equip : Include equipped items
273
+ #--------------------------------------------------------------------------
274
+ def lose_item(item, amount, include_equip = false)
275
+ gain_item(item, -amount, include_equip)
276
+ end
277
+ #--------------------------------------------------------------------------
278
+ # * Consume Items
279
+ # If the specified object is a consumable item, the number in investory
280
+ # will be reduced by 1.
281
+ #--------------------------------------------------------------------------
282
+ def consume_item(item)
283
+ lose_item(item, 1) if item.is_a?(RPG::Item) && item.consumable
284
+ end
285
+ #--------------------------------------------------------------------------
286
+ # * Determine Skill/Item Usability
287
+ #--------------------------------------------------------------------------
288
+ def usable?(item)
289
+ members.any? {|actor| actor.usable?(item) }
290
+ end
291
+ #--------------------------------------------------------------------------
292
+ # * Determine Command Inputability During Battle
293
+ #--------------------------------------------------------------------------
294
+ def inputable?
295
+ members.any? {|actor| actor.inputable? }
296
+ end
297
+ #--------------------------------------------------------------------------
298
+ # * Determine if Everyone is Dead
299
+ #--------------------------------------------------------------------------
300
+ def all_dead?
301
+ super && ($game_party.in_battle || members.size > 0)
302
+ end
303
+ #--------------------------------------------------------------------------
304
+ # * Processing Performed When Player Takes 1 Step
305
+ #--------------------------------------------------------------------------
306
+ def on_player_walk
307
+ members.each {|actor| actor.on_player_walk }
308
+ end
309
+ #--------------------------------------------------------------------------
310
+ # * Get Actor Selected on Menu Screen
311
+ #--------------------------------------------------------------------------
312
+ def menu_actor
313
+ $game_actors[@menu_actor_id] || members[0]
314
+ end
315
+ #--------------------------------------------------------------------------
316
+ # * Set Actor Selected on Menu Screen
317
+ #--------------------------------------------------------------------------
318
+ def menu_actor=(actor)
319
+ @menu_actor_id = actor.id
320
+ end
321
+ #--------------------------------------------------------------------------
322
+ # * Select Next Actor on Menu Screen
323
+ #--------------------------------------------------------------------------
324
+ def menu_actor_next
325
+ index = members.index(menu_actor) || -1
326
+ index = (index + 1) % members.size
327
+ self.menu_actor = members[index]
328
+ end
329
+ #--------------------------------------------------------------------------
330
+ # * Select Previous Actor on Menu Screen
331
+ #--------------------------------------------------------------------------
332
+ def menu_actor_prev
333
+ index = members.index(menu_actor) || 1
334
+ index = (index + members.size - 1) % members.size
335
+ self.menu_actor = members[index]
336
+ end
337
+ #--------------------------------------------------------------------------
338
+ # * Get Actor Targeted by Skill/Item Use
339
+ #--------------------------------------------------------------------------
340
+ def target_actor
341
+ $game_actors[@target_actor_id] || members[0]
342
+ end
343
+ #--------------------------------------------------------------------------
344
+ # * Set Actor Targeted by Skill/Item Use
345
+ #--------------------------------------------------------------------------
346
+ def target_actor=(actor)
347
+ @target_actor_id = actor.id
348
+ end
349
+ #--------------------------------------------------------------------------
350
+ # * Change Order
351
+ #--------------------------------------------------------------------------
352
+ def swap_order(index1, index2)
353
+ @actors[index1], @actors[index2] = @actors[index2], @actors[index1]
354
+ $game_player.refresh
355
+ end
356
+ #--------------------------------------------------------------------------
357
+ # * Character Image Information for Save File Display
358
+ #--------------------------------------------------------------------------
359
+ def characters_for_savefile
360
+ battle_members.collect do |actor|
361
+ [actor.character_name, actor.character_index]
362
+ end
363
+ end
364
+ #--------------------------------------------------------------------------
365
+ # * Determine Party Ability
366
+ #--------------------------------------------------------------------------
367
+ def party_ability(ability_id)
368
+ battle_members.any? {|actor| actor.party_ability(ability_id) }
369
+ end
370
+ #--------------------------------------------------------------------------
371
+ # * Halve Encounters?
372
+ #--------------------------------------------------------------------------
373
+ def encounter_half?
374
+ party_ability(ABILITY_ENCOUNTER_HALF)
375
+ end
376
+ #--------------------------------------------------------------------------
377
+ # * Disable Encounters?
378
+ #--------------------------------------------------------------------------
379
+ def encounter_none?
380
+ party_ability(ABILITY_ENCOUNTER_NONE)
381
+ end
382
+ #--------------------------------------------------------------------------
383
+ # * Disable Surprise?
384
+ #--------------------------------------------------------------------------
385
+ def cancel_surprise?
386
+ party_ability(ABILITY_CANCEL_SURPRISE)
387
+ end
388
+ #--------------------------------------------------------------------------
389
+ # * Increase Preemptive Strike Rate?
390
+ #--------------------------------------------------------------------------
391
+ def raise_preemptive?
392
+ party_ability(ABILITY_RAISE_PREEMPTIVE)
393
+ end
394
+ #--------------------------------------------------------------------------
395
+ # * Double Money Earned?
396
+ #--------------------------------------------------------------------------
397
+ def gold_double?
398
+ party_ability(ABILITY_GOLD_DOUBLE)
399
+ end
400
+ #--------------------------------------------------------------------------
401
+ # * Double Item Acquisition Rate?
402
+ #--------------------------------------------------------------------------
403
+ def drop_item_double?
404
+ party_ability(ABILITY_DROP_ITEM_DOUBLE)
405
+ end
406
+ #--------------------------------------------------------------------------
407
+ # * Calculate Probability of Preemptive Attack
408
+ #--------------------------------------------------------------------------
409
+ def rate_preemptive(troop_agi)
410
+ (agi >= troop_agi ? 0.05 : 0.03) * (raise_preemptive? ? 4 : 1)
411
+ end
412
+ #--------------------------------------------------------------------------
413
+ # * Calculate Probability of Surprise
414
+ #--------------------------------------------------------------------------
415
+ def rate_surprise(troop_agi)
416
+ cancel_surprise? ? 0 : (agi >= troop_agi ? 0.03 : 0.05)
417
+ end
418
+ end