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,161 @@
1
+ #==============================================================================
2
+ # ** Game_Picture
3
+ #------------------------------------------------------------------------------
4
+ # This class handles pictures. It is created only when a picture of a specific
5
+ # number is required internally for the Game_Pictures class.
6
+ #==============================================================================
7
+
8
+ class Game_Picture
9
+ #--------------------------------------------------------------------------
10
+ # * Public Instance Variables
11
+ #--------------------------------------------------------------------------
12
+ attr_reader :number # picture index
13
+ attr_reader :name # filename
14
+ attr_reader :origin # starting point
15
+ attr_reader :x # x-coordinate
16
+ attr_reader :y # y-coordinate
17
+ attr_reader :zoom_x # x directional zoom rate
18
+ attr_reader :zoom_y # y directional zoom rate
19
+ attr_reader :opacity # opacity level
20
+ attr_reader :blend_type # blend method
21
+ attr_reader :tone # color tone
22
+ attr_reader :angle # rotation angle
23
+ #--------------------------------------------------------------------------
24
+ # * Object Initialization
25
+ #--------------------------------------------------------------------------
26
+ def initialize(number)
27
+ @number = number
28
+ init_basic
29
+ init_target
30
+ init_tone
31
+ init_rotate
32
+ end
33
+ #--------------------------------------------------------------------------
34
+ # * Initialize Basic Variable
35
+ #--------------------------------------------------------------------------
36
+ def init_basic
37
+ @name = ""
38
+ @origin = @x = @y = 0
39
+ @zoom_x = @zoom_y = 100.0
40
+ @opacity = 255.0
41
+ @blend_type = 1
42
+ end
43
+ #--------------------------------------------------------------------------
44
+ # * Initialize Movement Target
45
+ #--------------------------------------------------------------------------
46
+ def init_target
47
+ @target_x = @x
48
+ @target_y = @y
49
+ @target_zoom_x = @zoom_x
50
+ @target_zoom_y = @zoom_y
51
+ @target_opacity = @opacity
52
+ @duration = 0
53
+ end
54
+ #--------------------------------------------------------------------------
55
+ # * Initialize Color Tone
56
+ #--------------------------------------------------------------------------
57
+ def init_tone
58
+ @tone = Tone.new
59
+ @tone_target = Tone.new
60
+ @tone_duration = 0
61
+ end
62
+ #--------------------------------------------------------------------------
63
+ # * Initialize Rotation
64
+ #--------------------------------------------------------------------------
65
+ def init_rotate
66
+ @angle = 0
67
+ @rotate_speed = 0
68
+ end
69
+ #--------------------------------------------------------------------------
70
+ # * Show Picture
71
+ #--------------------------------------------------------------------------
72
+ def show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
73
+ @name = name
74
+ @origin = origin
75
+ @x = x.to_f
76
+ @y = y.to_f
77
+ @zoom_x = zoom_x.to_f
78
+ @zoom_y = zoom_y.to_f
79
+ @opacity = opacity.to_f
80
+ @blend_type = blend_type
81
+ init_target
82
+ init_tone
83
+ init_rotate
84
+ end
85
+ #--------------------------------------------------------------------------
86
+ # * Move Picture
87
+ #--------------------------------------------------------------------------
88
+ def move(origin, x, y, zoom_x, zoom_y, opacity, blend_type, duration)
89
+ @origin = origin
90
+ @target_x = x.to_f
91
+ @target_y = y.to_f
92
+ @target_zoom_x = zoom_x.to_f
93
+ @target_zoom_y = zoom_y.to_f
94
+ @target_opacity = opacity.to_f
95
+ @blend_type = blend_type
96
+ @duration = duration
97
+ end
98
+ #--------------------------------------------------------------------------
99
+ # * Change Rotation Speed
100
+ #--------------------------------------------------------------------------
101
+ def rotate(speed)
102
+ @rotate_speed = speed
103
+ end
104
+ #--------------------------------------------------------------------------
105
+ # * Start Changing Color Tone
106
+ #--------------------------------------------------------------------------
107
+ def start_tone_change(tone, duration)
108
+ @tone_target = tone.clone
109
+ @tone_duration = duration
110
+ @tone = @tone_target.clone if @tone_duration == 0
111
+ end
112
+ #--------------------------------------------------------------------------
113
+ # * Erase Picture
114
+ #--------------------------------------------------------------------------
115
+ def erase
116
+ @name = ""
117
+ @origin = 0
118
+ end
119
+ #--------------------------------------------------------------------------
120
+ # * Frame Update
121
+ #--------------------------------------------------------------------------
122
+ def update
123
+ update_move
124
+ update_tone_change
125
+ update_rotate
126
+ end
127
+ #--------------------------------------------------------------------------
128
+ # * Update Picture Move
129
+ #--------------------------------------------------------------------------
130
+ def update_move
131
+ return if @duration == 0
132
+ d = @duration
133
+ @x = (@x * (d - 1) + @target_x) / d
134
+ @y = (@y * (d - 1) + @target_y) / d
135
+ @zoom_x = (@zoom_x * (d - 1) + @target_zoom_x) / d
136
+ @zoom_y = (@zoom_y * (d - 1) + @target_zoom_y) / d
137
+ @opacity = (@opacity * (d - 1) + @target_opacity) / d
138
+ @duration -= 1
139
+ end
140
+ #--------------------------------------------------------------------------
141
+ # * Update Color Tone Change
142
+ #--------------------------------------------------------------------------
143
+ def update_tone_change
144
+ return if @tone_duration == 0
145
+ d = @tone_duration
146
+ @tone.red = (@tone.red * (d - 1) + @tone_target.red) / d
147
+ @tone.green = (@tone.green * (d - 1) + @tone_target.green) / d
148
+ @tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d
149
+ @tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d
150
+ @tone_duration -= 1
151
+ end
152
+ #--------------------------------------------------------------------------
153
+ # * Update Rotation
154
+ #--------------------------------------------------------------------------
155
+ def update_rotate
156
+ return if @rotate_speed == 0
157
+ @angle += @rotate_speed / 2.0
158
+ @angle += 360 while @angle < 0
159
+ @angle %= 360
160
+ end
161
+ end
@@ -0,0 +1,28 @@
1
+ #==============================================================================
2
+ # ** Game_Pictures
3
+ #------------------------------------------------------------------------------
4
+ # This is a wrapper for a picture array. This class is used within the
5
+ # Game_Screen class. Map screen pictures and battle screen pictures are
6
+ # handled separately.
7
+ #==============================================================================
8
+
9
+ class Game_Pictures
10
+ #--------------------------------------------------------------------------
11
+ # * Object Initialization
12
+ #--------------------------------------------------------------------------
13
+ def initialize
14
+ @data = []
15
+ end
16
+ #--------------------------------------------------------------------------
17
+ # * Get Picture
18
+ #--------------------------------------------------------------------------
19
+ def [](number)
20
+ @data[number] ||= Game_Picture.new(number)
21
+ end
22
+ #--------------------------------------------------------------------------
23
+ # * Iterator
24
+ #--------------------------------------------------------------------------
25
+ def each
26
+ @data.compact.each {|picture| yield picture } if block_given?
27
+ end
28
+ end
@@ -0,0 +1,488 @@
1
+ #==============================================================================
2
+ # ** Game_Player
3
+ #------------------------------------------------------------------------------
4
+ # This class handles the player. It includes event starting determinants and
5
+ # map scrolling functions. The instance of this class is referenced by
6
+ # $game_player.
7
+ #==============================================================================
8
+
9
+ class Game_Player < Game_Character
10
+ #--------------------------------------------------------------------------
11
+ # * Public Instance Variables
12
+ #--------------------------------------------------------------------------
13
+ attr_reader :followers # Followers (party members)
14
+ #--------------------------------------------------------------------------
15
+ # * Object Initialization
16
+ #--------------------------------------------------------------------------
17
+ def initialize
18
+ super
19
+ @vehicle_type = :walk # Type of vehicle currently being ridden
20
+ @vehicle_getting_on = false # Boarding vehicle flag
21
+ @vehicle_getting_off = false # Getting off vehicle flag
22
+ @followers = Game_Followers.new(self)
23
+ @transparent = $data_system.opt_transparent
24
+ clear_transfer_info
25
+ end
26
+ #--------------------------------------------------------------------------
27
+ # * Clear Transfer Player Information
28
+ #--------------------------------------------------------------------------
29
+ def clear_transfer_info
30
+ @transferring = false # Player transfer flag
31
+ @new_map_id = 0 # Destination map ID
32
+ @new_x = 0 # Destination X coordinate
33
+ @new_y = 0 # Destination Y coordinate
34
+ @new_direction = 0 # Post-movement direction
35
+ end
36
+ #--------------------------------------------------------------------------
37
+ # * Refresh
38
+ #--------------------------------------------------------------------------
39
+ def refresh
40
+ @character_name = actor ? actor.character_name : ""
41
+ @character_index = actor ? actor.character_index : 0
42
+ @followers.refresh
43
+ end
44
+ #--------------------------------------------------------------------------
45
+ # * Get Corresponding Actor
46
+ #--------------------------------------------------------------------------
47
+ def actor
48
+ $game_party.battle_members[0]
49
+ end
50
+ #--------------------------------------------------------------------------
51
+ # * Determine if Stopping
52
+ #--------------------------------------------------------------------------
53
+ def stopping?
54
+ return false if @vehicle_getting_on || @vehicle_getting_off
55
+ return super
56
+ end
57
+ #--------------------------------------------------------------------------
58
+ # * Player Transfer Reservation
59
+ # d: Post move direction (2,4,6,8)
60
+ #--------------------------------------------------------------------------
61
+ def reserve_transfer(map_id, x, y, d = 2)
62
+ @transferring = true
63
+ @new_map_id = map_id
64
+ @new_x = x
65
+ @new_y = y
66
+ @new_direction = d
67
+ end
68
+ #--------------------------------------------------------------------------
69
+ # * Determine if Player Transfer is Reserved
70
+ #--------------------------------------------------------------------------
71
+ def transfer?
72
+ @transferring
73
+ end
74
+ #--------------------------------------------------------------------------
75
+ # * Execute Player Transfer
76
+ #--------------------------------------------------------------------------
77
+ def perform_transfer
78
+ if transfer?
79
+ set_direction(@new_direction)
80
+ if @new_map_id != $game_map.map_id
81
+ $game_map.setup(@new_map_id)
82
+ $game_map.autoplay
83
+ end
84
+ moveto(@new_x, @new_y)
85
+ clear_transfer_info
86
+ end
87
+ end
88
+ #--------------------------------------------------------------------------
89
+ # * Determine if Map is Passable
90
+ # d: Direction (2,4,6,8)
91
+ #--------------------------------------------------------------------------
92
+ def map_passable?(x, y, d)
93
+ case @vehicle_type
94
+ when :boat
95
+ $game_map.boat_passable?(x, y)
96
+ when :ship
97
+ $game_map.ship_passable?(x, y)
98
+ when :airship
99
+ true
100
+ else
101
+ super
102
+ end
103
+ end
104
+ #--------------------------------------------------------------------------
105
+ # * Get Vehicle Currently Being Ridden
106
+ #--------------------------------------------------------------------------
107
+ def vehicle
108
+ $game_map.vehicle(@vehicle_type)
109
+ end
110
+ #--------------------------------------------------------------------------
111
+ # * Determine if on Boat
112
+ #--------------------------------------------------------------------------
113
+ def in_boat?
114
+ @vehicle_type == :boat
115
+ end
116
+ #--------------------------------------------------------------------------
117
+ # * Determine if on Ship
118
+ #--------------------------------------------------------------------------
119
+ def in_ship?
120
+ @vehicle_type == :ship
121
+ end
122
+ #--------------------------------------------------------------------------
123
+ # * Determine if Riding in Airship
124
+ #--------------------------------------------------------------------------
125
+ def in_airship?
126
+ @vehicle_type == :airship
127
+ end
128
+ #--------------------------------------------------------------------------
129
+ # * Determine if Walking Normally
130
+ #--------------------------------------------------------------------------
131
+ def normal_walk?
132
+ @vehicle_type == :walk && !@move_route_forcing
133
+ end
134
+ #--------------------------------------------------------------------------
135
+ # * Determine if Dashing
136
+ #--------------------------------------------------------------------------
137
+ def dash?
138
+ return false if @move_route_forcing
139
+ return false if $game_map.disable_dash?
140
+ return false if vehicle
141
+ return Input.press?(:A)
142
+ end
143
+ #--------------------------------------------------------------------------
144
+ # * Determine if Debug Pass-through State
145
+ #--------------------------------------------------------------------------
146
+ def debug_through?
147
+ $TEST && Input.press?(:CTRL)
148
+ end
149
+ #--------------------------------------------------------------------------
150
+ # * Detect Collision (Including Followers)
151
+ #--------------------------------------------------------------------------
152
+ def collide?(x, y)
153
+ !@through && (pos?(x, y) || followers.collide?(x, y))
154
+ end
155
+ #--------------------------------------------------------------------------
156
+ # * X Coordinate of Screen Center
157
+ #--------------------------------------------------------------------------
158
+ def center_x
159
+ (Graphics.width / 32 - 1) / 2.0
160
+ end
161
+ #--------------------------------------------------------------------------
162
+ # * Y Coordinate of Screen Center
163
+ #--------------------------------------------------------------------------
164
+ def center_y
165
+ (Graphics.height / 32 - 1) / 2.0
166
+ end
167
+ #--------------------------------------------------------------------------
168
+ # * Set Map Display Position to Center of Screen
169
+ #--------------------------------------------------------------------------
170
+ def center(x, y)
171
+ $game_map.set_display_pos(x - center_x, y - center_y)
172
+ end
173
+ #--------------------------------------------------------------------------
174
+ # * Move to Designated Position
175
+ #--------------------------------------------------------------------------
176
+ def moveto(x, y)
177
+ super
178
+ center(x, y)
179
+ make_encounter_count
180
+ vehicle.refresh if vehicle
181
+ @followers.synchronize(x, y, direction)
182
+ end
183
+ #--------------------------------------------------------------------------
184
+ # * Increase Steps
185
+ #--------------------------------------------------------------------------
186
+ def increase_steps
187
+ super
188
+ $game_party.increase_steps if normal_walk?
189
+ end
190
+ #--------------------------------------------------------------------------
191
+ # * Create Encounter Count
192
+ #--------------------------------------------------------------------------
193
+ def make_encounter_count
194
+ n = $game_map.encounter_step
195
+ @encounter_count = rand(n) + rand(n) + 1
196
+ end
197
+ #--------------------------------------------------------------------------
198
+ # * Create Group ID for Troop Encountered
199
+ #--------------------------------------------------------------------------
200
+ def make_encounter_troop_id
201
+ encounter_list = []
202
+ weight_sum = 0
203
+ $game_map.encounter_list.each do |encounter|
204
+ next unless encounter_ok?(encounter)
205
+ encounter_list.push(encounter)
206
+ weight_sum += encounter.weight
207
+ end
208
+ if weight_sum > 0
209
+ value = rand(weight_sum)
210
+ encounter_list.each do |encounter|
211
+ value -= encounter.weight
212
+ return encounter.troop_id if value < 0
213
+ end
214
+ end
215
+ return 0
216
+ end
217
+ #--------------------------------------------------------------------------
218
+ # * Determine Usability of Encounter Item
219
+ #--------------------------------------------------------------------------
220
+ def encounter_ok?(encounter)
221
+ return true if encounter.region_set.empty?
222
+ return true if encounter.region_set.include?(region_id)
223
+ return false
224
+ end
225
+ #--------------------------------------------------------------------------
226
+ # * Execute Encounter Processing
227
+ #--------------------------------------------------------------------------
228
+ def encounter
229
+ return false if $game_map.interpreter.running?
230
+ return false if $game_system.encounter_disabled
231
+ return false if @encounter_count > 0
232
+ make_encounter_count
233
+ troop_id = make_encounter_troop_id
234
+ return false unless $data_troops[troop_id]
235
+ BattleManager.setup(troop_id)
236
+ BattleManager.on_encounter
237
+ return true
238
+ end
239
+ #--------------------------------------------------------------------------
240
+ # * Trigger Map Event
241
+ # triggers : Trigger array
242
+ # normal : Is priority set to [Same as Characters] ?
243
+ #--------------------------------------------------------------------------
244
+ def start_map_event(x, y, triggers, normal)
245
+ return if $game_map.interpreter.running?
246
+ $game_map.events_xy(x, y).each do |event|
247
+ if event.trigger_in?(triggers) && event.normal_priority? == normal
248
+ event.start
249
+ end
250
+ end
251
+ end
252
+ #--------------------------------------------------------------------------
253
+ # * Determine if Same Position Event is Triggered
254
+ #--------------------------------------------------------------------------
255
+ def check_event_trigger_here(triggers)
256
+ start_map_event(@x, @y, triggers, false)
257
+ end
258
+ #--------------------------------------------------------------------------
259
+ # * Determine if Front Event is Triggered
260
+ #--------------------------------------------------------------------------
261
+ def check_event_trigger_there(triggers)
262
+ x2 = $game_map.round_x_with_direction(@x, @direction)
263
+ y2 = $game_map.round_y_with_direction(@y, @direction)
264
+ start_map_event(x2, y2, triggers, true)
265
+ return if $game_map.any_event_starting?
266
+ return unless $game_map.counter?(x2, y2)
267
+ x3 = $game_map.round_x_with_direction(x2, @direction)
268
+ y3 = $game_map.round_y_with_direction(y2, @direction)
269
+ start_map_event(x3, y3, triggers, true)
270
+ end
271
+ #--------------------------------------------------------------------------
272
+ # * Determine if Touch Event is Triggered
273
+ #--------------------------------------------------------------------------
274
+ def check_event_trigger_touch(x, y)
275
+ start_map_event(x, y, [1,2], true)
276
+ end
277
+ #--------------------------------------------------------------------------
278
+ # * Processing of Movement via Input from Directional Buttons
279
+ #--------------------------------------------------------------------------
280
+ def move_by_input
281
+ return if !movable? || $game_map.interpreter.running?
282
+ move_straight(Input.dir4) if Input.dir4 > 0
283
+ end
284
+ #--------------------------------------------------------------------------
285
+ # * Determine if Movement is Possible
286
+ #--------------------------------------------------------------------------
287
+ def movable?
288
+ return false if moving?
289
+ return false if @move_route_forcing || @followers.gathering?
290
+ return false if @vehicle_getting_on || @vehicle_getting_off
291
+ return false if $game_message.busy? || $game_message.visible
292
+ return false if vehicle && !vehicle.movable?
293
+ return true
294
+ end
295
+ #--------------------------------------------------------------------------
296
+ # * Frame Update
297
+ #--------------------------------------------------------------------------
298
+ def update
299
+ last_real_x = @real_x
300
+ last_real_y = @real_y
301
+ last_moving = moving?
302
+ move_by_input
303
+ super
304
+ update_scroll(last_real_x, last_real_y)
305
+ update_vehicle
306
+ update_nonmoving(last_moving) unless moving?
307
+ @followers.update
308
+ end
309
+ #--------------------------------------------------------------------------
310
+ # * Scroll Processing
311
+ #--------------------------------------------------------------------------
312
+ def update_scroll(last_real_x, last_real_y)
313
+ ax1 = $game_map.adjust_x(last_real_x)
314
+ ay1 = $game_map.adjust_y(last_real_y)
315
+ ax2 = $game_map.adjust_x(@real_x)
316
+ ay2 = $game_map.adjust_y(@real_y)
317
+ $game_map.scroll_down (ay2 - ay1) if ay2 > ay1 && ay2 > center_y
318
+ $game_map.scroll_left (ax1 - ax2) if ax2 < ax1 && ax2 < center_x
319
+ $game_map.scroll_right(ax2 - ax1) if ax2 > ax1 && ax2 > center_x
320
+ $game_map.scroll_up (ay1 - ay2) if ay2 < ay1 && ay2 < center_y
321
+ end
322
+ #--------------------------------------------------------------------------
323
+ # * Vehicle Processing
324
+ #--------------------------------------------------------------------------
325
+ def update_vehicle
326
+ return if @followers.gathering?
327
+ return unless vehicle
328
+ if @vehicle_getting_on
329
+ update_vehicle_get_on
330
+ elsif @vehicle_getting_off
331
+ update_vehicle_get_off
332
+ else
333
+ vehicle.sync_with_player
334
+ end
335
+ end
336
+ #--------------------------------------------------------------------------
337
+ # * Update Boarding onto Vehicle
338
+ #--------------------------------------------------------------------------
339
+ def update_vehicle_get_on
340
+ if !@followers.gathering? && !moving?
341
+ @direction = vehicle.direction
342
+ @move_speed = vehicle.speed
343
+ @vehicle_getting_on = false
344
+ @transparent = true
345
+ @through = true if in_airship?
346
+ vehicle.get_on
347
+ end
348
+ end
349
+ #--------------------------------------------------------------------------
350
+ # * Update Disembarking from Vehicle
351
+ #--------------------------------------------------------------------------
352
+ def update_vehicle_get_off
353
+ if !@followers.gathering? && vehicle.altitude == 0
354
+ @vehicle_getting_off = false
355
+ @vehicle_type = :walk
356
+ @transparent = false
357
+ end
358
+ end
359
+ #--------------------------------------------------------------------------
360
+ # * Processing When Not Moving
361
+ # last_moving : Was it moving previously?
362
+ #--------------------------------------------------------------------------
363
+ def update_nonmoving(last_moving)
364
+ return if $game_map.interpreter.running?
365
+ if last_moving
366
+ $game_party.on_player_walk
367
+ return if check_touch_event
368
+ end
369
+ if movable? && Input.trigger?(:C)
370
+ return if get_on_off_vehicle
371
+ return if check_action_event
372
+ end
373
+ update_encounter if last_moving
374
+ end
375
+ #--------------------------------------------------------------------------
376
+ # * Update Encounter
377
+ #--------------------------------------------------------------------------
378
+ def update_encounter
379
+ return if $TEST && Input.press?(:CTRL)
380
+ return if $game_party.encounter_none?
381
+ return if in_airship?
382
+ return if @move_route_forcing
383
+ @encounter_count -= encounter_progress_value
384
+ end
385
+ #--------------------------------------------------------------------------
386
+ # * Get Encounter Progress Value
387
+ #--------------------------------------------------------------------------
388
+ def encounter_progress_value
389
+ value = $game_map.bush?(@x, @y) ? 2 : 1
390
+ value *= 0.5 if $game_party.encounter_half?
391
+ value *= 0.5 if in_ship?
392
+ value
393
+ end
394
+ #--------------------------------------------------------------------------
395
+ # * Determine if Event Start Caused by Touch (Overlap)
396
+ #--------------------------------------------------------------------------
397
+ def check_touch_event
398
+ return false if in_airship?
399
+ check_event_trigger_here([1,2])
400
+ $game_map.setup_starting_event
401
+ end
402
+ #--------------------------------------------------------------------------
403
+ # * Determine if Event Start Caused by [OK] Button
404
+ #--------------------------------------------------------------------------
405
+ def check_action_event
406
+ return false if in_airship?
407
+ check_event_trigger_here([0])
408
+ return true if $game_map.setup_starting_event
409
+ check_event_trigger_there([0,1,2])
410
+ $game_map.setup_starting_event
411
+ end
412
+ #--------------------------------------------------------------------------
413
+ # * Getting On and Off Vehicles
414
+ #--------------------------------------------------------------------------
415
+ def get_on_off_vehicle
416
+ if vehicle
417
+ get_off_vehicle
418
+ else
419
+ get_on_vehicle
420
+ end
421
+ end
422
+ #--------------------------------------------------------------------------
423
+ # * Board Vehicle
424
+ # Assumes that the player is not currently in a vehicle.
425
+ #--------------------------------------------------------------------------
426
+ def get_on_vehicle
427
+ front_x = $game_map.round_x_with_direction(@x, @direction)
428
+ front_y = $game_map.round_y_with_direction(@y, @direction)
429
+ @vehicle_type = :boat if $game_map.boat.pos?(front_x, front_y)
430
+ @vehicle_type = :ship if $game_map.ship.pos?(front_x, front_y)
431
+ @vehicle_type = :airship if $game_map.airship.pos?(@x, @y)
432
+ if vehicle
433
+ @vehicle_getting_on = true
434
+ force_move_forward unless in_airship?
435
+ @followers.gather
436
+ end
437
+ @vehicle_getting_on
438
+ end
439
+ #--------------------------------------------------------------------------
440
+ # * Get Off Vehicle
441
+ # Assumes that the player is currently riding in a vehicle.
442
+ #--------------------------------------------------------------------------
443
+ def get_off_vehicle
444
+ if vehicle.land_ok?(@x, @y, @direction)
445
+ set_direction(2) if in_airship?
446
+ @followers.synchronize(@x, @y, @direction)
447
+ vehicle.get_off
448
+ unless in_airship?
449
+ force_move_forward
450
+ @transparent = false
451
+ end
452
+ @vehicle_getting_off = true
453
+ @move_speed = 4
454
+ @through = false
455
+ make_encounter_count
456
+ @followers.gather
457
+ end
458
+ @vehicle_getting_off
459
+ end
460
+ #--------------------------------------------------------------------------
461
+ # * Force One Step Forward
462
+ #--------------------------------------------------------------------------
463
+ def force_move_forward
464
+ @through = true
465
+ move_forward
466
+ @through = false
467
+ end
468
+ #--------------------------------------------------------------------------
469
+ # * Determine if Damage Floor
470
+ #--------------------------------------------------------------------------
471
+ def on_damage_floor?
472
+ $game_map.damage_floor?(@x, @y) && !in_airship?
473
+ end
474
+ #--------------------------------------------------------------------------
475
+ # * Move Straight
476
+ #--------------------------------------------------------------------------
477
+ def move_straight(d, turn_ok = true)
478
+ @followers.move if passable?(@x, @y, d)
479
+ super
480
+ end
481
+ #--------------------------------------------------------------------------
482
+ # * Move Diagonally
483
+ #--------------------------------------------------------------------------
484
+ def move_diagonal(horz, vert)
485
+ @followers.move if diagonal_passable?(@x, @y, horz, vert)
486
+ super
487
+ end
488
+ end