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.
- 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
|