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,41 @@
1
+ #==============================================================================
2
+ # ** Game_CommonEvent
3
+ #------------------------------------------------------------------------------
4
+ # This class handles common events. It includes functionality for execution of
5
+ # parallel process events. It's used within the Game_Map class ($game_map).
6
+ #==============================================================================
7
+
8
+ class Game_CommonEvent
9
+ #--------------------------------------------------------------------------
10
+ # * Object Initialization
11
+ #--------------------------------------------------------------------------
12
+ def initialize(common_event_id)
13
+ @event = $data_common_events[common_event_id]
14
+ refresh
15
+ end
16
+ #--------------------------------------------------------------------------
17
+ # * Refresh
18
+ #--------------------------------------------------------------------------
19
+ def refresh
20
+ if active?
21
+ @interpreter ||= Game_Interpreter.new
22
+ else
23
+ @interpreter = nil
24
+ end
25
+ end
26
+ #--------------------------------------------------------------------------
27
+ # * Determine if Active State
28
+ #--------------------------------------------------------------------------
29
+ def active?
30
+ @event.parallel? && $game_switches[@event.switch_id]
31
+ end
32
+ #--------------------------------------------------------------------------
33
+ # * Frame Update
34
+ #--------------------------------------------------------------------------
35
+ def update
36
+ if @interpreter
37
+ @interpreter.setup(@event.list) unless @interpreter.running?
38
+ @interpreter.update
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,264 @@
1
+ #==============================================================================
2
+ # ** Game_Enemy
3
+ #------------------------------------------------------------------------------
4
+ # This class handles enemies. It used within the Game_Troop class
5
+ # ($game_troop).
6
+ #==============================================================================
7
+
8
+ class Game_Enemy < Game_Battler
9
+ #--------------------------------------------------------------------------
10
+ # * Public Instance Variables
11
+ #--------------------------------------------------------------------------
12
+ attr_reader :index # index in troop
13
+ attr_reader :enemy_id # enemy ID
14
+ attr_reader :original_name # original name
15
+ attr_accessor :letter # letters to be attached to the name
16
+ attr_accessor :plural # multiple appearance flag
17
+ attr_accessor :screen_x # battle screen X coordinate
18
+ attr_accessor :screen_y # battle screen Y coordinate
19
+ #--------------------------------------------------------------------------
20
+ # * Object Initialization
21
+ #--------------------------------------------------------------------------
22
+ def initialize(index, enemy_id)
23
+ super()
24
+ @index = index
25
+ @enemy_id = enemy_id
26
+ enemy = $data_enemies[@enemy_id]
27
+ @original_name = enemy.name
28
+ @letter = ""
29
+ @plural = false
30
+ @screen_x = 0
31
+ @screen_y = 0
32
+ @battler_name = enemy.battler_name
33
+ @battler_hue = enemy.battler_hue
34
+ @hp = mhp
35
+ @mp = mmp
36
+ end
37
+ #--------------------------------------------------------------------------
38
+ # * Determine if Enemy
39
+ #--------------------------------------------------------------------------
40
+ def enemy?
41
+ return true
42
+ end
43
+ #--------------------------------------------------------------------------
44
+ # * Get Allied Units
45
+ #--------------------------------------------------------------------------
46
+ def friends_unit
47
+ $game_troop
48
+ end
49
+ #--------------------------------------------------------------------------
50
+ # * Get Enemy Units
51
+ #--------------------------------------------------------------------------
52
+ def opponents_unit
53
+ $game_party
54
+ end
55
+ #--------------------------------------------------------------------------
56
+ # * Get Enemy Object
57
+ #--------------------------------------------------------------------------
58
+ def enemy
59
+ $data_enemies[@enemy_id]
60
+ end
61
+ #--------------------------------------------------------------------------
62
+ # * Get Array of All Objects Retaining Features
63
+ #--------------------------------------------------------------------------
64
+ def feature_objects
65
+ super + [enemy]
66
+ end
67
+ #--------------------------------------------------------------------------
68
+ # * Get Display Name
69
+ #--------------------------------------------------------------------------
70
+ def name
71
+ @original_name + (@plural ? letter : "")
72
+ end
73
+ #--------------------------------------------------------------------------
74
+ # * Get Base Value of Parameter
75
+ #--------------------------------------------------------------------------
76
+ def param_base(param_id)
77
+ enemy.params[param_id]
78
+ end
79
+ #--------------------------------------------------------------------------
80
+ # * Get Experience
81
+ #--------------------------------------------------------------------------
82
+ def exp
83
+ enemy.exp
84
+ end
85
+ #--------------------------------------------------------------------------
86
+ # * Get Gold
87
+ #--------------------------------------------------------------------------
88
+ def gold
89
+ enemy.gold
90
+ end
91
+ #--------------------------------------------------------------------------
92
+ # * Create Array of Dropped Items
93
+ #--------------------------------------------------------------------------
94
+ def make_drop_items
95
+ enemy.drop_items.inject([]) do |r, di|
96
+ if di.kind > 0 && rand * di.denominator < drop_item_rate
97
+ r.push(item_object(di.kind, di.data_id))
98
+ else
99
+ r
100
+ end
101
+ end
102
+ end
103
+ #--------------------------------------------------------------------------
104
+ # * Get Multiplier for Dropped Item Acquisition Probability
105
+ #--------------------------------------------------------------------------
106
+ def drop_item_rate
107
+ $game_party.drop_item_double? ? 2 : 1
108
+ end
109
+ #--------------------------------------------------------------------------
110
+ # * Get Item Object
111
+ #--------------------------------------------------------------------------
112
+ def item_object(kind, data_id)
113
+ return $data_items [data_id] if kind == 1
114
+ return $data_weapons[data_id] if kind == 2
115
+ return $data_armors [data_id] if kind == 3
116
+ return nil
117
+ end
118
+ #--------------------------------------------------------------------------
119
+ # * Use Sprites?
120
+ #--------------------------------------------------------------------------
121
+ def use_sprite?
122
+ return true
123
+ end
124
+ #--------------------------------------------------------------------------
125
+ # * Get Battle Screen Z-Coordinate
126
+ #--------------------------------------------------------------------------
127
+ def screen_z
128
+ return 100
129
+ end
130
+ #--------------------------------------------------------------------------
131
+ # * Execute Damage Effect
132
+ #--------------------------------------------------------------------------
133
+ def perform_damage_effect
134
+ @sprite_effect_type = :blink
135
+ Sound.play_enemy_damage
136
+ end
137
+ #--------------------------------------------------------------------------
138
+ # * Execute Collapse Effect
139
+ #--------------------------------------------------------------------------
140
+ def perform_collapse_effect
141
+ case collapse_type
142
+ when 0
143
+ @sprite_effect_type = :collapse
144
+ Sound.play_enemy_collapse
145
+ when 1
146
+ @sprite_effect_type = :boss_collapse
147
+ Sound.play_boss_collapse1
148
+ when 2
149
+ @sprite_effect_type = :instant_collapse
150
+ end
151
+ end
152
+ #--------------------------------------------------------------------------
153
+ # * Transform
154
+ #--------------------------------------------------------------------------
155
+ def transform(enemy_id)
156
+ @enemy_id = enemy_id
157
+ if enemy.name != @original_name
158
+ @original_name = enemy.name
159
+ @letter = ""
160
+ @plural = false
161
+ end
162
+ @battler_name = enemy.battler_name
163
+ @battler_hue = enemy.battler_hue
164
+ refresh
165
+ make_actions unless @actions.empty?
166
+ end
167
+ #--------------------------------------------------------------------------
168
+ # * Determine if Action Conditions Are Met
169
+ # action : RPG::Enemy::Action
170
+ #--------------------------------------------------------------------------
171
+ def conditions_met?(action)
172
+ method_table = {
173
+ 1 => :conditions_met_turns?,
174
+ 2 => :conditions_met_hp?,
175
+ 3 => :conditions_met_mp?,
176
+ 4 => :conditions_met_state?,
177
+ 5 => :conditions_met_party_level?,
178
+ 6 => :conditions_met_switch?,
179
+ }
180
+ method_name = method_table[action.condition_type]
181
+ if method_name
182
+ send(method_name, action.condition_param1, action.condition_param2)
183
+ else
184
+ true
185
+ end
186
+ end
187
+ #--------------------------------------------------------------------------
188
+ # * Determine if Action Conditions Are Met [Turns]
189
+ #--------------------------------------------------------------------------
190
+ def conditions_met_turns?(param1, param2)
191
+ n = $game_troop.turn_count
192
+ if param2 == 0
193
+ n == param1
194
+ else
195
+ n > 0 && n >= param1 && n % param2 == param1 % param2
196
+ end
197
+ end
198
+ #--------------------------------------------------------------------------
199
+ # * Determine if Action Conditions Are Met [HP]
200
+ #--------------------------------------------------------------------------
201
+ def conditions_met_hp?(param1, param2)
202
+ hp_rate >= param1 && hp_rate <= param2
203
+ end
204
+ #--------------------------------------------------------------------------
205
+ # * Determine if Action Conditions Are Met [MP]
206
+ #--------------------------------------------------------------------------
207
+ def conditions_met_mp?(param1, param2)
208
+ mp_rate >= param1 && mp_rate <= param2
209
+ end
210
+ #--------------------------------------------------------------------------
211
+ # * Determine if Action Conditions Are Met [State]
212
+ #--------------------------------------------------------------------------
213
+ def conditions_met_state?(param1, param2)
214
+ state?(param1)
215
+ end
216
+ #--------------------------------------------------------------------------
217
+ # * Determine if Action Conditions Are Met [Party Level]
218
+ #--------------------------------------------------------------------------
219
+ def conditions_met_party_level?(param1, param2)
220
+ $game_party.highest_level >= param1
221
+ end
222
+ #--------------------------------------------------------------------------
223
+ # * Determine if Action Conditions Are Met [Switch]
224
+ #--------------------------------------------------------------------------
225
+ def conditions_met_switch?(param1, param2)
226
+ $game_switches[param1]
227
+ end
228
+ #--------------------------------------------------------------------------
229
+ # * Determine if Action Is Valid in Current State
230
+ # action : RPG::Enemy::Action
231
+ #--------------------------------------------------------------------------
232
+ def action_valid?(action)
233
+ conditions_met?(action) && usable?($data_skills[action.skill_id])
234
+ end
235
+ #--------------------------------------------------------------------------
236
+ # * Randomly Select Action
237
+ # action_list: RPG::Enemy::Action array
238
+ # rating_zero: Rating value to consider as zero
239
+ #--------------------------------------------------------------------------
240
+ def select_enemy_action(action_list, rating_zero)
241
+ sum = action_list.inject(0) {|r, a| r += a.rating - rating_zero }
242
+ return nil if sum <= 0
243
+ value = rand(sum)
244
+ action_list.each do |action|
245
+ return action if value < action.rating - rating_zero
246
+ value -= action.rating - rating_zero
247
+ end
248
+ end
249
+ #--------------------------------------------------------------------------
250
+ # * Create Battle Action
251
+ #--------------------------------------------------------------------------
252
+ def make_actions
253
+ super
254
+ return if @actions.empty?
255
+ action_list = enemy.actions.select {|a| action_valid?(a) }
256
+ return if action_list.empty?
257
+ rating_max = action_list.collect {|a| a.rating }.max
258
+ rating_zero = rating_max - 3
259
+ action_list.reject! {|a| a.rating <= rating_zero }
260
+ @actions.each do |action|
261
+ action.set_enemy_action(select_enemy_action(action_list, rating_zero))
262
+ end
263
+ end
264
+ end
@@ -0,0 +1,308 @@
1
+ #==============================================================================
2
+ # ** Game_Event
3
+ #------------------------------------------------------------------------------
4
+ # This class handles events. Functions include event page switching via
5
+ # condition determinants and running parallel process events. Used within the
6
+ # Game_Map class.
7
+ #==============================================================================
8
+
9
+ class Game_Event < Game_Character
10
+ #--------------------------------------------------------------------------
11
+ # * Public Instance Variables
12
+ #--------------------------------------------------------------------------
13
+ attr_reader :trigger # trigger
14
+ attr_reader :list # list of event commands
15
+ attr_reader :starting # starting flag
16
+ #--------------------------------------------------------------------------
17
+ # * Object Initialization
18
+ # event: RPG::Event
19
+ #--------------------------------------------------------------------------
20
+ def initialize(map_id, event)
21
+ super()
22
+ @map_id = map_id
23
+ @event = event
24
+ @id = @event.id
25
+ moveto(@event.x, @event.y)
26
+ refresh
27
+ end
28
+ #--------------------------------------------------------------------------
29
+ # * Initialize Public Member Variables
30
+ #--------------------------------------------------------------------------
31
+ def init_public_members
32
+ super
33
+ @trigger = 0
34
+ @list = nil
35
+ @starting = false
36
+ end
37
+ #--------------------------------------------------------------------------
38
+ # * Initialize Private Member Variables
39
+ #--------------------------------------------------------------------------
40
+ def init_private_members
41
+ super
42
+ @move_type = 0 # Movement type
43
+ @erased = false # Temporary erase flag
44
+ @page = nil # Event page
45
+ end
46
+ #--------------------------------------------------------------------------
47
+ # * Detect Collision with Character
48
+ #--------------------------------------------------------------------------
49
+ def collide_with_characters?(x, y)
50
+ super || collide_with_player_characters?(x, y)
51
+ end
52
+ #--------------------------------------------------------------------------
53
+ # * Detect Collision with Player (Including Followers)
54
+ #--------------------------------------------------------------------------
55
+ def collide_with_player_characters?(x, y)
56
+ normal_priority? && $game_player.collide?(x, y)
57
+ end
58
+ #--------------------------------------------------------------------------
59
+ # * Lock (Processing in Which Executing Events Stop)
60
+ #--------------------------------------------------------------------------
61
+ def lock
62
+ unless @locked
63
+ @prelock_direction = @direction
64
+ turn_toward_player
65
+ @locked = true
66
+ end
67
+ end
68
+ #--------------------------------------------------------------------------
69
+ # * Unlock
70
+ #--------------------------------------------------------------------------
71
+ def unlock
72
+ if @locked
73
+ @locked = false
74
+ set_direction(@prelock_direction)
75
+ end
76
+ end
77
+ #--------------------------------------------------------------------------
78
+ # * Update While Stopped
79
+ #--------------------------------------------------------------------------
80
+ def update_stop
81
+ super
82
+ update_self_movement unless @move_route_forcing
83
+ end
84
+ #--------------------------------------------------------------------------
85
+ # * Update During Autonomous Movement
86
+ #--------------------------------------------------------------------------
87
+ def update_self_movement
88
+ if near_the_screen? && @stop_count > stop_count_threshold
89
+ case @move_type
90
+ when 1; move_type_random
91
+ when 2; move_type_toward_player
92
+ when 3; move_type_custom
93
+ end
94
+ end
95
+ end
96
+ #--------------------------------------------------------------------------
97
+ # * Determine if Near Visible Area of Screen
98
+ # dx: A certain number of tiles left/right of screen's center
99
+ # dy: A certain number of tiles above/below screen's center
100
+ #--------------------------------------------------------------------------
101
+ def near_the_screen?(dx = 12, dy = 8)
102
+ ax = $game_map.adjust_x(@real_x) - Graphics.width / 2 / 32
103
+ ay = $game_map.adjust_y(@real_y) - Graphics.height / 2 / 32
104
+ ax >= -dx && ax <= dx && ay >= -dy && ay <= dy
105
+ end
106
+ #--------------------------------------------------------------------------
107
+ # * Calculate Threshold of Counter for Stopping Autonomous Movement Startup
108
+ #--------------------------------------------------------------------------
109
+ def stop_count_threshold
110
+ 30 * (5 - @move_frequency)
111
+ end
112
+ #--------------------------------------------------------------------------
113
+ # * Move Type : Random
114
+ #--------------------------------------------------------------------------
115
+ def move_type_random
116
+ case rand(6)
117
+ when 0..1; move_random
118
+ when 2..4; move_forward
119
+ when 5; @stop_count = 0
120
+ end
121
+ end
122
+ #--------------------------------------------------------------------------
123
+ # * Move Type : Approach
124
+ #--------------------------------------------------------------------------
125
+ def move_type_toward_player
126
+ if near_the_player?
127
+ case rand(6)
128
+ when 0..3; move_toward_player
129
+ when 4; move_random
130
+ when 5; move_forward
131
+ end
132
+ else
133
+ move_random
134
+ end
135
+ end
136
+ #--------------------------------------------------------------------------
137
+ # * Determine if Near Player
138
+ #--------------------------------------------------------------------------
139
+ def near_the_player?
140
+ sx = distance_x_from($game_player.x).abs
141
+ sy = distance_y_from($game_player.y).abs
142
+ sx + sy < 20
143
+ end
144
+ #--------------------------------------------------------------------------
145
+ # * Move Type : Custom
146
+ #--------------------------------------------------------------------------
147
+ def move_type_custom
148
+ update_routine_move
149
+ end
150
+ #--------------------------------------------------------------------------
151
+ # * Clear Starting Flag
152
+ #--------------------------------------------------------------------------
153
+ def clear_starting_flag
154
+ @starting = false
155
+ end
156
+ #--------------------------------------------------------------------------
157
+ # * Determine if Contents Are Empty
158
+ #--------------------------------------------------------------------------
159
+ def empty?
160
+ !@list || @list.size <= 1
161
+ end
162
+ #--------------------------------------------------------------------------
163
+ # * Determine if One of Specified Triggers
164
+ # triggers : Trigger array
165
+ #--------------------------------------------------------------------------
166
+ def trigger_in?(triggers)
167
+ triggers.include?(@trigger)
168
+ end
169
+ #--------------------------------------------------------------------------
170
+ # * Start Event
171
+ #--------------------------------------------------------------------------
172
+ def start
173
+ return if empty?
174
+ @starting = true
175
+ lock if trigger_in?([0,1,2])
176
+ end
177
+ #--------------------------------------------------------------------------
178
+ # * Temporarily Erase
179
+ #--------------------------------------------------------------------------
180
+ def erase
181
+ @erased = true
182
+ refresh
183
+ end
184
+ #--------------------------------------------------------------------------
185
+ # * Refresh
186
+ #--------------------------------------------------------------------------
187
+ def refresh
188
+ new_page = @erased ? nil : find_proper_page
189
+ setup_page(new_page) if !new_page || new_page != @page
190
+ end
191
+ #--------------------------------------------------------------------------
192
+ # * Find Event Page Meeting Conditions
193
+ #--------------------------------------------------------------------------
194
+ def find_proper_page
195
+ @event.pages.reverse.find {|page| conditions_met?(page) }
196
+ end
197
+ #--------------------------------------------------------------------------
198
+ # * Determine if Event Page Conditions Are Met
199
+ #--------------------------------------------------------------------------
200
+ def conditions_met?(page)
201
+ c = page.condition
202
+ if c.switch1_valid
203
+ return false unless $game_switches[c.switch1_id]
204
+ end
205
+ if c.switch2_valid
206
+ return false unless $game_switches[c.switch2_id]
207
+ end
208
+ if c.variable_valid
209
+ return false if $game_variables[c.variable_id] < c.variable_value
210
+ end
211
+ if c.self_switch_valid
212
+ key = [@map_id, @event.id, c.self_switch_ch]
213
+ return false if $game_self_switches[key] != true
214
+ end
215
+ if c.item_valid
216
+ item = $data_items[c.item_id]
217
+ return false unless $game_party.has_item?(item)
218
+ end
219
+ if c.actor_valid
220
+ actor = $game_actors[c.actor_id]
221
+ return false unless $game_party.members.include?(actor)
222
+ end
223
+ return true
224
+ end
225
+ #--------------------------------------------------------------------------
226
+ # * Event Page Setup
227
+ #--------------------------------------------------------------------------
228
+ def setup_page(new_page)
229
+ @page = new_page
230
+ if @page
231
+ setup_page_settings
232
+ else
233
+ clear_page_settings
234
+ end
235
+ update_bush_depth
236
+ clear_starting_flag
237
+ check_event_trigger_auto
238
+ end
239
+ #--------------------------------------------------------------------------
240
+ # * Clear Event Page Settings
241
+ #--------------------------------------------------------------------------
242
+ def clear_page_settings
243
+ @tile_id = 0
244
+ @character_name = ""
245
+ @character_index = 0
246
+ @move_type = 0
247
+ @through = true
248
+ @trigger = nil
249
+ @list = nil
250
+ @interpreter = nil
251
+ end
252
+ #--------------------------------------------------------------------------
253
+ # * Set Up Event Page Settings
254
+ #--------------------------------------------------------------------------
255
+ def setup_page_settings
256
+ @tile_id = @page.graphic.tile_id
257
+ @character_name = @page.graphic.character_name
258
+ @character_index = @page.graphic.character_index
259
+ if @original_direction != @page.graphic.direction
260
+ @direction = @page.graphic.direction
261
+ @original_direction = @direction
262
+ @prelock_direction = 0
263
+ end
264
+ if @original_pattern != @page.graphic.pattern
265
+ @pattern = @page.graphic.pattern
266
+ @original_pattern = @pattern
267
+ end
268
+ @move_type = @page.move_type
269
+ @move_speed = @page.move_speed
270
+ @move_frequency = @page.move_frequency
271
+ @move_route = @page.move_route
272
+ @move_route_index = 0
273
+ @move_route_forcing = false
274
+ @walk_anime = @page.walk_anime
275
+ @step_anime = @page.step_anime
276
+ @direction_fix = @page.direction_fix
277
+ @through = @page.through
278
+ @priority_type = @page.priority_type
279
+ @trigger = @page.trigger
280
+ @list = @page.list
281
+ @interpreter = @trigger == 4 ? Game_Interpreter.new : nil
282
+ end
283
+ #--------------------------------------------------------------------------
284
+ # * Determine if Touch Event is Triggered
285
+ #--------------------------------------------------------------------------
286
+ def check_event_trigger_touch(x, y)
287
+ return if $game_map.interpreter.running?
288
+ if @trigger == 2 && $game_player.pos?(x, y)
289
+ start if !jumping? && normal_priority?
290
+ end
291
+ end
292
+ #--------------------------------------------------------------------------
293
+ # * Determine if Autorun Event is Triggered
294
+ #--------------------------------------------------------------------------
295
+ def check_event_trigger_auto
296
+ start if @trigger == 3
297
+ end
298
+ #--------------------------------------------------------------------------
299
+ # * Frame Update
300
+ #--------------------------------------------------------------------------
301
+ def update
302
+ super
303
+ check_event_trigger_auto
304
+ return unless @interpreter
305
+ @interpreter.setup(@list, @event.id) unless @interpreter.running?
306
+ @interpreter.update
307
+ end
308
+ end