rgss3_default_scripts 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/Gemfile +4 -0
  4. data/README.md +9 -0
  5. data/Rakefile +2 -0
  6. data/lib/rgss3_default_scripts.rb +109 -0
  7. data/lib/rgss3_default_scripts/BattleManager.rb +392 -0
  8. data/lib/rgss3_default_scripts/Cache.rb +134 -0
  9. data/lib/rgss3_default_scripts/DataManager.rb +267 -0
  10. data/lib/rgss3_default_scripts/Game_Action.rb +262 -0
  11. data/lib/rgss3_default_scripts/Game_ActionResult.rb +159 -0
  12. data/lib/rgss3_default_scripts/Game_Actor.rb +696 -0
  13. data/lib/rgss3_default_scripts/Game_Actors.rb +22 -0
  14. data/lib/rgss3_default_scripts/Game_BaseItem.rb +51 -0
  15. data/lib/rgss3_default_scripts/Game_Battler.rb +824 -0
  16. data/lib/rgss3_default_scripts/Game_BattlerBase.rb +731 -0
  17. data/lib/rgss3_default_scripts/Game_Character.rb +396 -0
  18. data/lib/rgss3_default_scripts/Game_CharacterBase.rb +443 -0
  19. data/lib/rgss3_default_scripts/Game_CommonEvent.rb +41 -0
  20. data/lib/rgss3_default_scripts/Game_Enemy.rb +264 -0
  21. data/lib/rgss3_default_scripts/Game_Event.rb +308 -0
  22. data/lib/rgss3_default_scripts/Game_Follower.rb +74 -0
  23. data/lib/rgss3_default_scripts/Game_Followers.rb +112 -0
  24. data/lib/rgss3_default_scripts/Game_Interpreter.rb +1413 -0
  25. data/lib/rgss3_default_scripts/Game_Map.rb +704 -0
  26. data/lib/rgss3_default_scripts/Game_Message.rb +101 -0
  27. data/lib/rgss3_default_scripts/Game_Party.rb +418 -0
  28. data/lib/rgss3_default_scripts/Game_Picture.rb +161 -0
  29. data/lib/rgss3_default_scripts/Game_Pictures.rb +28 -0
  30. data/lib/rgss3_default_scripts/Game_Player.rb +488 -0
  31. data/lib/rgss3_default_scripts/Game_Screen.rb +234 -0
  32. data/lib/rgss3_default_scripts/Game_SelfSwitches.rb +35 -0
  33. data/lib/rgss3_default_scripts/Game_Switches.rb +35 -0
  34. data/lib/rgss3_default_scripts/Game_System.rb +122 -0
  35. data/lib/rgss3_default_scripts/Game_Temp.rb +45 -0
  36. data/lib/rgss3_default_scripts/Game_Timer.rb +56 -0
  37. data/lib/rgss3_default_scripts/Game_Troop.rb +205 -0
  38. data/lib/rgss3_default_scripts/Game_Unit.rb +131 -0
  39. data/lib/rgss3_default_scripts/Game_Variables.rb +34 -0
  40. data/lib/rgss3_default_scripts/Game_Vehicle.rb +193 -0
  41. data/lib/rgss3_default_scripts/SceneManager.rb +94 -0
  42. data/lib/rgss3_default_scripts/Scene_Base.rb +132 -0
  43. data/lib/rgss3_default_scripts/Scene_Battle.rb +693 -0
  44. data/lib/rgss3_default_scripts/Scene_Debug.rb +87 -0
  45. data/lib/rgss3_default_scripts/Scene_End.rb +61 -0
  46. data/lib/rgss3_default_scripts/Scene_Equip.rb +144 -0
  47. data/lib/rgss3_default_scripts/Scene_File.rb +203 -0
  48. data/lib/rgss3_default_scripts/Scene_Gameover.rb +85 -0
  49. data/lib/rgss3_default_scripts/Scene_Item.rb +75 -0
  50. data/lib/rgss3_default_scripts/Scene_ItemBase.rb +147 -0
  51. data/lib/rgss3_default_scripts/Scene_Load.rb +40 -0
  52. data/lib/rgss3_default_scripts/Scene_Map.rb +276 -0
  53. data/lib/rgss3_default_scripts/Scene_Menu.rb +127 -0
  54. data/lib/rgss3_default_scripts/Scene_MenuBase.rb +63 -0
  55. data/lib/rgss3_default_scripts/Scene_Name.rb +32 -0
  56. data/lib/rgss3_default_scripts/Scene_Save.rb +38 -0
  57. data/lib/rgss3_default_scripts/Scene_Shop.rb +299 -0
  58. data/lib/rgss3_default_scripts/Scene_Skill.rb +108 -0
  59. data/lib/rgss3_default_scripts/Scene_Status.rb +25 -0
  60. data/lib/rgss3_default_scripts/Scene_Title.rb +137 -0
  61. data/lib/rgss3_default_scripts/Sound.rb +135 -0
  62. data/lib/rgss3_default_scripts/Sprite_Base.rb +232 -0
  63. data/lib/rgss3_default_scripts/Sprite_Battler.rb +231 -0
  64. data/lib/rgss3_default_scripts/Sprite_Character.rb +226 -0
  65. data/lib/rgss3_default_scripts/Sprite_Picture.rb +82 -0
  66. data/lib/rgss3_default_scripts/Sprite_Timer.rb +77 -0
  67. data/lib/rgss3_default_scripts/Spriteset_Battle.rb +389 -0
  68. data/lib/rgss3_default_scripts/Spriteset_Map.rb +273 -0
  69. data/lib/rgss3_default_scripts/Spriteset_Weather.rb +184 -0
  70. data/lib/rgss3_default_scripts/Vocab.rb +145 -0
  71. data/lib/rgss3_default_scripts/Window_ActorCommand.rb +78 -0
  72. data/lib/rgss3_default_scripts/Window_Base.rb +571 -0
  73. data/lib/rgss3_default_scripts/Window_BattleActor.rb +38 -0
  74. data/lib/rgss3_default_scripts/Window_BattleEnemy.rb +70 -0
  75. data/lib/rgss3_default_scripts/Window_BattleItem.rb +40 -0
  76. data/lib/rgss3_default_scripts/Window_BattleLog.rb +425 -0
  77. data/lib/rgss3_default_scripts/Window_BattleSkill.rb +34 -0
  78. data/lib/rgss3_default_scripts/Window_BattleStatus.rb +111 -0
  79. data/lib/rgss3_default_scripts/Window_ChoiceList.rb +88 -0
  80. data/lib/rgss3_default_scripts/Window_Command.rb +152 -0
  81. data/lib/rgss3_default_scripts/Window_DebugLeft.rb +104 -0
  82. data/lib/rgss3_default_scripts/Window_DebugRight.rb +119 -0
  83. data/lib/rgss3_default_scripts/Window_EquipCommand.rb +36 -0
  84. data/lib/rgss3_default_scripts/Window_EquipItem.rb +78 -0
  85. data/lib/rgss3_default_scripts/Window_EquipSlot.rb +111 -0
  86. data/lib/rgss3_default_scripts/Window_EquipStatus.rb +97 -0
  87. data/lib/rgss3_default_scripts/Window_GameEnd.rb +38 -0
  88. data/lib/rgss3_default_scripts/Window_Gold.rb +47 -0
  89. data/lib/rgss3_default_scripts/Window_Help.rb +43 -0
  90. data/lib/rgss3_default_scripts/Window_HorzCommand.rb +106 -0
  91. data/lib/rgss3_default_scripts/Window_ItemCategory.rb +54 -0
  92. data/lib/rgss3_default_scripts/Window_ItemList.rb +117 -0
  93. data/lib/rgss3_default_scripts/Window_KeyItem.rb +55 -0
  94. data/lib/rgss3_default_scripts/Window_MapName.rb +96 -0
  95. data/lib/rgss3_default_scripts/Window_MenuActor.rb +43 -0
  96. data/lib/rgss3_default_scripts/Window_MenuCommand.rb +106 -0
  97. data/lib/rgss3_default_scripts/Window_MenuStatus.rb +85 -0
  98. data/lib/rgss3_default_scripts/Window_Message.rb +397 -0
  99. data/lib/rgss3_default_scripts/Window_NameEdit.rb +129 -0
  100. data/lib/rgss3_default_scripts/Window_NameInput.rb +253 -0
  101. data/lib/rgss3_default_scripts/Window_NumberInput.rb +148 -0
  102. data/lib/rgss3_default_scripts/Window_PartyCommand.rb +47 -0
  103. data/lib/rgss3_default_scripts/Window_SaveFile.rb +69 -0
  104. data/lib/rgss3_default_scripts/Window_ScrollText.rb +90 -0
  105. data/lib/rgss3_default_scripts/Window_Selectable.rb +442 -0
  106. data/lib/rgss3_default_scripts/Window_ShopBuy.rb +115 -0
  107. data/lib/rgss3_default_scripts/Window_ShopCommand.rb +36 -0
  108. data/lib/rgss3_default_scripts/Window_ShopNumber.rb +137 -0
  109. data/lib/rgss3_default_scripts/Window_ShopSell.rb +27 -0
  110. data/lib/rgss3_default_scripts/Window_ShopStatus.rb +124 -0
  111. data/lib/rgss3_default_scripts/Window_SkillCommand.rb +76 -0
  112. data/lib/rgss3_default_scripts/Window_SkillList.rb +121 -0
  113. data/lib/rgss3_default_scripts/Window_SkillStatus.rb +38 -0
  114. data/lib/rgss3_default_scripts/Window_Status.rb +125 -0
  115. data/lib/rgss3_default_scripts/Window_TitleCommand.rb +45 -0
  116. data/rgss3_default_scripts.gemspec +23 -0
  117. metadata +186 -0
@@ -0,0 +1,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