rgss3_default_scripts 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/Gemfile +4 -0
- data/README.md +9 -0
- data/Rakefile +2 -0
- data/lib/rgss3_default_scripts.rb +109 -0
- data/lib/rgss3_default_scripts/BattleManager.rb +392 -0
- data/lib/rgss3_default_scripts/Cache.rb +134 -0
- data/lib/rgss3_default_scripts/DataManager.rb +267 -0
- data/lib/rgss3_default_scripts/Game_Action.rb +262 -0
- data/lib/rgss3_default_scripts/Game_ActionResult.rb +159 -0
- data/lib/rgss3_default_scripts/Game_Actor.rb +696 -0
- data/lib/rgss3_default_scripts/Game_Actors.rb +22 -0
- data/lib/rgss3_default_scripts/Game_BaseItem.rb +51 -0
- data/lib/rgss3_default_scripts/Game_Battler.rb +824 -0
- data/lib/rgss3_default_scripts/Game_BattlerBase.rb +731 -0
- data/lib/rgss3_default_scripts/Game_Character.rb +396 -0
- data/lib/rgss3_default_scripts/Game_CharacterBase.rb +443 -0
- data/lib/rgss3_default_scripts/Game_CommonEvent.rb +41 -0
- data/lib/rgss3_default_scripts/Game_Enemy.rb +264 -0
- data/lib/rgss3_default_scripts/Game_Event.rb +308 -0
- data/lib/rgss3_default_scripts/Game_Follower.rb +74 -0
- data/lib/rgss3_default_scripts/Game_Followers.rb +112 -0
- data/lib/rgss3_default_scripts/Game_Interpreter.rb +1413 -0
- data/lib/rgss3_default_scripts/Game_Map.rb +704 -0
- data/lib/rgss3_default_scripts/Game_Message.rb +101 -0
- data/lib/rgss3_default_scripts/Game_Party.rb +418 -0
- data/lib/rgss3_default_scripts/Game_Picture.rb +161 -0
- data/lib/rgss3_default_scripts/Game_Pictures.rb +28 -0
- data/lib/rgss3_default_scripts/Game_Player.rb +488 -0
- data/lib/rgss3_default_scripts/Game_Screen.rb +234 -0
- data/lib/rgss3_default_scripts/Game_SelfSwitches.rb +35 -0
- data/lib/rgss3_default_scripts/Game_Switches.rb +35 -0
- data/lib/rgss3_default_scripts/Game_System.rb +122 -0
- data/lib/rgss3_default_scripts/Game_Temp.rb +45 -0
- data/lib/rgss3_default_scripts/Game_Timer.rb +56 -0
- data/lib/rgss3_default_scripts/Game_Troop.rb +205 -0
- data/lib/rgss3_default_scripts/Game_Unit.rb +131 -0
- data/lib/rgss3_default_scripts/Game_Variables.rb +34 -0
- data/lib/rgss3_default_scripts/Game_Vehicle.rb +193 -0
- data/lib/rgss3_default_scripts/SceneManager.rb +94 -0
- data/lib/rgss3_default_scripts/Scene_Base.rb +132 -0
- data/lib/rgss3_default_scripts/Scene_Battle.rb +693 -0
- data/lib/rgss3_default_scripts/Scene_Debug.rb +87 -0
- data/lib/rgss3_default_scripts/Scene_End.rb +61 -0
- data/lib/rgss3_default_scripts/Scene_Equip.rb +144 -0
- data/lib/rgss3_default_scripts/Scene_File.rb +203 -0
- data/lib/rgss3_default_scripts/Scene_Gameover.rb +85 -0
- data/lib/rgss3_default_scripts/Scene_Item.rb +75 -0
- data/lib/rgss3_default_scripts/Scene_ItemBase.rb +147 -0
- data/lib/rgss3_default_scripts/Scene_Load.rb +40 -0
- data/lib/rgss3_default_scripts/Scene_Map.rb +276 -0
- data/lib/rgss3_default_scripts/Scene_Menu.rb +127 -0
- data/lib/rgss3_default_scripts/Scene_MenuBase.rb +63 -0
- data/lib/rgss3_default_scripts/Scene_Name.rb +32 -0
- data/lib/rgss3_default_scripts/Scene_Save.rb +38 -0
- data/lib/rgss3_default_scripts/Scene_Shop.rb +299 -0
- data/lib/rgss3_default_scripts/Scene_Skill.rb +108 -0
- data/lib/rgss3_default_scripts/Scene_Status.rb +25 -0
- data/lib/rgss3_default_scripts/Scene_Title.rb +137 -0
- data/lib/rgss3_default_scripts/Sound.rb +135 -0
- data/lib/rgss3_default_scripts/Sprite_Base.rb +232 -0
- data/lib/rgss3_default_scripts/Sprite_Battler.rb +231 -0
- data/lib/rgss3_default_scripts/Sprite_Character.rb +226 -0
- data/lib/rgss3_default_scripts/Sprite_Picture.rb +82 -0
- data/lib/rgss3_default_scripts/Sprite_Timer.rb +77 -0
- data/lib/rgss3_default_scripts/Spriteset_Battle.rb +389 -0
- data/lib/rgss3_default_scripts/Spriteset_Map.rb +273 -0
- data/lib/rgss3_default_scripts/Spriteset_Weather.rb +184 -0
- data/lib/rgss3_default_scripts/Vocab.rb +145 -0
- data/lib/rgss3_default_scripts/Window_ActorCommand.rb +78 -0
- data/lib/rgss3_default_scripts/Window_Base.rb +571 -0
- data/lib/rgss3_default_scripts/Window_BattleActor.rb +38 -0
- data/lib/rgss3_default_scripts/Window_BattleEnemy.rb +70 -0
- data/lib/rgss3_default_scripts/Window_BattleItem.rb +40 -0
- data/lib/rgss3_default_scripts/Window_BattleLog.rb +425 -0
- data/lib/rgss3_default_scripts/Window_BattleSkill.rb +34 -0
- data/lib/rgss3_default_scripts/Window_BattleStatus.rb +111 -0
- data/lib/rgss3_default_scripts/Window_ChoiceList.rb +88 -0
- data/lib/rgss3_default_scripts/Window_Command.rb +152 -0
- data/lib/rgss3_default_scripts/Window_DebugLeft.rb +104 -0
- data/lib/rgss3_default_scripts/Window_DebugRight.rb +119 -0
- data/lib/rgss3_default_scripts/Window_EquipCommand.rb +36 -0
- data/lib/rgss3_default_scripts/Window_EquipItem.rb +78 -0
- data/lib/rgss3_default_scripts/Window_EquipSlot.rb +111 -0
- data/lib/rgss3_default_scripts/Window_EquipStatus.rb +97 -0
- data/lib/rgss3_default_scripts/Window_GameEnd.rb +38 -0
- data/lib/rgss3_default_scripts/Window_Gold.rb +47 -0
- data/lib/rgss3_default_scripts/Window_Help.rb +43 -0
- data/lib/rgss3_default_scripts/Window_HorzCommand.rb +106 -0
- data/lib/rgss3_default_scripts/Window_ItemCategory.rb +54 -0
- data/lib/rgss3_default_scripts/Window_ItemList.rb +117 -0
- data/lib/rgss3_default_scripts/Window_KeyItem.rb +55 -0
- data/lib/rgss3_default_scripts/Window_MapName.rb +96 -0
- data/lib/rgss3_default_scripts/Window_MenuActor.rb +43 -0
- data/lib/rgss3_default_scripts/Window_MenuCommand.rb +106 -0
- data/lib/rgss3_default_scripts/Window_MenuStatus.rb +85 -0
- data/lib/rgss3_default_scripts/Window_Message.rb +397 -0
- data/lib/rgss3_default_scripts/Window_NameEdit.rb +129 -0
- data/lib/rgss3_default_scripts/Window_NameInput.rb +253 -0
- data/lib/rgss3_default_scripts/Window_NumberInput.rb +148 -0
- data/lib/rgss3_default_scripts/Window_PartyCommand.rb +47 -0
- data/lib/rgss3_default_scripts/Window_SaveFile.rb +69 -0
- data/lib/rgss3_default_scripts/Window_ScrollText.rb +90 -0
- data/lib/rgss3_default_scripts/Window_Selectable.rb +442 -0
- data/lib/rgss3_default_scripts/Window_ShopBuy.rb +115 -0
- data/lib/rgss3_default_scripts/Window_ShopCommand.rb +36 -0
- data/lib/rgss3_default_scripts/Window_ShopNumber.rb +137 -0
- data/lib/rgss3_default_scripts/Window_ShopSell.rb +27 -0
- data/lib/rgss3_default_scripts/Window_ShopStatus.rb +124 -0
- data/lib/rgss3_default_scripts/Window_SkillCommand.rb +76 -0
- data/lib/rgss3_default_scripts/Window_SkillList.rb +121 -0
- data/lib/rgss3_default_scripts/Window_SkillStatus.rb +38 -0
- data/lib/rgss3_default_scripts/Window_Status.rb +125 -0
- data/lib/rgss3_default_scripts/Window_TitleCommand.rb +45 -0
- data/rgss3_default_scripts.gemspec +23 -0
- 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
|