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