rgss3_default_scripts 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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