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