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,43 @@
|
|
1
|
+
#==============================================================================
|
2
|
+
# ** Window_MenuActor
|
3
|
+
#------------------------------------------------------------------------------
|
4
|
+
# This window is for selecting actors that will be the target of item or
|
5
|
+
# skill use.
|
6
|
+
#==============================================================================
|
7
|
+
|
8
|
+
class Window_MenuActor < Window_MenuStatus
|
9
|
+
#--------------------------------------------------------------------------
|
10
|
+
# * Object Initialization
|
11
|
+
#--------------------------------------------------------------------------
|
12
|
+
def initialize
|
13
|
+
super(0, 0)
|
14
|
+
self.visible = false
|
15
|
+
end
|
16
|
+
#--------------------------------------------------------------------------
|
17
|
+
# * Processing When OK Button Is Pressed
|
18
|
+
#--------------------------------------------------------------------------
|
19
|
+
def process_ok
|
20
|
+
$game_party.target_actor = $game_party.members[index] unless @cursor_all
|
21
|
+
call_ok_handler
|
22
|
+
end
|
23
|
+
#--------------------------------------------------------------------------
|
24
|
+
# * Restore Previous Selection Position
|
25
|
+
#--------------------------------------------------------------------------
|
26
|
+
def select_last
|
27
|
+
select($game_party.target_actor.index || 0)
|
28
|
+
end
|
29
|
+
#--------------------------------------------------------------------------
|
30
|
+
# * Set Position of Cursor for Item
|
31
|
+
#--------------------------------------------------------------------------
|
32
|
+
def select_for_item(item)
|
33
|
+
@cursor_fix = item.for_user?
|
34
|
+
@cursor_all = item.for_all?
|
35
|
+
if @cursor_fix
|
36
|
+
select($game_party.menu_actor.index)
|
37
|
+
elsif @cursor_all
|
38
|
+
select(0)
|
39
|
+
else
|
40
|
+
select_last
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,106 @@
|
|
1
|
+
#==============================================================================
|
2
|
+
# ** Window_MenuCommand
|
3
|
+
#------------------------------------------------------------------------------
|
4
|
+
# This command window appears on the menu screen.
|
5
|
+
#==============================================================================
|
6
|
+
|
7
|
+
class Window_MenuCommand < Window_Command
|
8
|
+
#--------------------------------------------------------------------------
|
9
|
+
# * Initialize Command Selection Position (Class Method)
|
10
|
+
#--------------------------------------------------------------------------
|
11
|
+
def self.init_command_position
|
12
|
+
@@last_command_symbol = nil
|
13
|
+
end
|
14
|
+
#--------------------------------------------------------------------------
|
15
|
+
# * Object Initialization
|
16
|
+
#--------------------------------------------------------------------------
|
17
|
+
def initialize
|
18
|
+
super(0, 0)
|
19
|
+
select_last
|
20
|
+
end
|
21
|
+
#--------------------------------------------------------------------------
|
22
|
+
# * Get Window Width
|
23
|
+
#--------------------------------------------------------------------------
|
24
|
+
def window_width
|
25
|
+
return 160
|
26
|
+
end
|
27
|
+
#--------------------------------------------------------------------------
|
28
|
+
# * Get Number of Lines to Show
|
29
|
+
#--------------------------------------------------------------------------
|
30
|
+
def visible_line_number
|
31
|
+
item_max
|
32
|
+
end
|
33
|
+
#--------------------------------------------------------------------------
|
34
|
+
# * Create Command List
|
35
|
+
#--------------------------------------------------------------------------
|
36
|
+
def make_command_list
|
37
|
+
add_main_commands
|
38
|
+
add_formation_command
|
39
|
+
add_original_commands
|
40
|
+
add_save_command
|
41
|
+
add_game_end_command
|
42
|
+
end
|
43
|
+
#--------------------------------------------------------------------------
|
44
|
+
# * Add Main Commands to List
|
45
|
+
#--------------------------------------------------------------------------
|
46
|
+
def add_main_commands
|
47
|
+
add_command(Vocab::item, :item, main_commands_enabled)
|
48
|
+
add_command(Vocab::skill, :skill, main_commands_enabled)
|
49
|
+
add_command(Vocab::equip, :equip, main_commands_enabled)
|
50
|
+
add_command(Vocab::status, :status, main_commands_enabled)
|
51
|
+
end
|
52
|
+
#--------------------------------------------------------------------------
|
53
|
+
# * Add Formation to Command List
|
54
|
+
#--------------------------------------------------------------------------
|
55
|
+
def add_formation_command
|
56
|
+
add_command(Vocab::formation, :formation, formation_enabled)
|
57
|
+
end
|
58
|
+
#--------------------------------------------------------------------------
|
59
|
+
# * For Adding Original Commands
|
60
|
+
#--------------------------------------------------------------------------
|
61
|
+
def add_original_commands
|
62
|
+
end
|
63
|
+
#--------------------------------------------------------------------------
|
64
|
+
# * Add Save to Command List
|
65
|
+
#--------------------------------------------------------------------------
|
66
|
+
def add_save_command
|
67
|
+
add_command(Vocab::save, :save, save_enabled)
|
68
|
+
end
|
69
|
+
#--------------------------------------------------------------------------
|
70
|
+
# * Add Exit Game to Command List
|
71
|
+
#--------------------------------------------------------------------------
|
72
|
+
def add_game_end_command
|
73
|
+
add_command(Vocab::game_end, :game_end)
|
74
|
+
end
|
75
|
+
#--------------------------------------------------------------------------
|
76
|
+
# * Get Activation State of Main Commands
|
77
|
+
#--------------------------------------------------------------------------
|
78
|
+
def main_commands_enabled
|
79
|
+
$game_party.exists
|
80
|
+
end
|
81
|
+
#--------------------------------------------------------------------------
|
82
|
+
# * Get Activation State of Formation
|
83
|
+
#--------------------------------------------------------------------------
|
84
|
+
def formation_enabled
|
85
|
+
$game_party.members.size >= 2 && !$game_system.formation_disabled
|
86
|
+
end
|
87
|
+
#--------------------------------------------------------------------------
|
88
|
+
# * Get Activation State of Save
|
89
|
+
#--------------------------------------------------------------------------
|
90
|
+
def save_enabled
|
91
|
+
!$game_system.save_disabled
|
92
|
+
end
|
93
|
+
#--------------------------------------------------------------------------
|
94
|
+
# * Processing When OK Button Is Pressed
|
95
|
+
#--------------------------------------------------------------------------
|
96
|
+
def process_ok
|
97
|
+
@@last_command_symbol = current_symbol
|
98
|
+
super
|
99
|
+
end
|
100
|
+
#--------------------------------------------------------------------------
|
101
|
+
# * Restore Previous Selection Position
|
102
|
+
#--------------------------------------------------------------------------
|
103
|
+
def select_last
|
104
|
+
select_symbol(@@last_command_symbol)
|
105
|
+
end
|
106
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
#==============================================================================
|
2
|
+
# ** Window_MenuStatus
|
3
|
+
#------------------------------------------------------------------------------
|
4
|
+
# This window displays party member status on the menu screen.
|
5
|
+
#==============================================================================
|
6
|
+
|
7
|
+
class Window_MenuStatus < Window_Selectable
|
8
|
+
#--------------------------------------------------------------------------
|
9
|
+
# * Public Instance Variables
|
10
|
+
#--------------------------------------------------------------------------
|
11
|
+
attr_reader :pending_index # Pending position (for formation)
|
12
|
+
#--------------------------------------------------------------------------
|
13
|
+
# * Object Initialization
|
14
|
+
#--------------------------------------------------------------------------
|
15
|
+
def initialize(x, y)
|
16
|
+
super(x, y, window_width, window_height)
|
17
|
+
@pending_index = -1
|
18
|
+
refresh
|
19
|
+
end
|
20
|
+
#--------------------------------------------------------------------------
|
21
|
+
# * Get Window Width
|
22
|
+
#--------------------------------------------------------------------------
|
23
|
+
def window_width
|
24
|
+
Graphics.width - 160
|
25
|
+
end
|
26
|
+
#--------------------------------------------------------------------------
|
27
|
+
# * Get Window Height
|
28
|
+
#--------------------------------------------------------------------------
|
29
|
+
def window_height
|
30
|
+
Graphics.height
|
31
|
+
end
|
32
|
+
#--------------------------------------------------------------------------
|
33
|
+
# * Get Number of Items
|
34
|
+
#--------------------------------------------------------------------------
|
35
|
+
def item_max
|
36
|
+
$game_party.members.size
|
37
|
+
end
|
38
|
+
#--------------------------------------------------------------------------
|
39
|
+
# * Get Item Height
|
40
|
+
#--------------------------------------------------------------------------
|
41
|
+
def item_height
|
42
|
+
(height - standard_padding * 2) / 4
|
43
|
+
end
|
44
|
+
#--------------------------------------------------------------------------
|
45
|
+
# * Draw Item
|
46
|
+
#--------------------------------------------------------------------------
|
47
|
+
def draw_item(index)
|
48
|
+
actor = $game_party.members[index]
|
49
|
+
enabled = $game_party.battle_members.include?(actor)
|
50
|
+
rect = item_rect(index)
|
51
|
+
draw_item_background(index)
|
52
|
+
draw_actor_face(actor, rect.x + 1, rect.y + 1, enabled)
|
53
|
+
draw_actor_simple_status(actor, rect.x + 108, rect.y + line_height / 2)
|
54
|
+
end
|
55
|
+
#--------------------------------------------------------------------------
|
56
|
+
# * Draw Background for Item
|
57
|
+
#--------------------------------------------------------------------------
|
58
|
+
def draw_item_background(index)
|
59
|
+
if index == @pending_index
|
60
|
+
contents.fill_rect(item_rect(index), pending_color)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
#--------------------------------------------------------------------------
|
64
|
+
# * Processing When OK Button Is Pressed
|
65
|
+
#--------------------------------------------------------------------------
|
66
|
+
def process_ok
|
67
|
+
super
|
68
|
+
$game_party.menu_actor = $game_party.members[index]
|
69
|
+
end
|
70
|
+
#--------------------------------------------------------------------------
|
71
|
+
# * Restore Previous Selection Position
|
72
|
+
#--------------------------------------------------------------------------
|
73
|
+
def select_last
|
74
|
+
select($game_party.menu_actor.index || 0)
|
75
|
+
end
|
76
|
+
#--------------------------------------------------------------------------
|
77
|
+
# * Set Pending Position (for Formation)
|
78
|
+
#--------------------------------------------------------------------------
|
79
|
+
def pending_index=(index)
|
80
|
+
last_pending_index = @pending_index
|
81
|
+
@pending_index = index
|
82
|
+
redraw_item(@pending_index)
|
83
|
+
redraw_item(last_pending_index)
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,397 @@
|
|
1
|
+
#==============================================================================
|
2
|
+
# ** Window_Message
|
3
|
+
#------------------------------------------------------------------------------
|
4
|
+
# This message window is used to display text.
|
5
|
+
#==============================================================================
|
6
|
+
|
7
|
+
class Window_Message < Window_Base
|
8
|
+
#--------------------------------------------------------------------------
|
9
|
+
# * Object Initialization
|
10
|
+
#--------------------------------------------------------------------------
|
11
|
+
def initialize
|
12
|
+
super(0, 0, window_width, window_height)
|
13
|
+
self.z = 200
|
14
|
+
self.openness = 0
|
15
|
+
create_all_windows
|
16
|
+
create_back_bitmap
|
17
|
+
create_back_sprite
|
18
|
+
clear_instance_variables
|
19
|
+
end
|
20
|
+
#--------------------------------------------------------------------------
|
21
|
+
# * Get Window Width
|
22
|
+
#--------------------------------------------------------------------------
|
23
|
+
def window_width
|
24
|
+
Graphics.width
|
25
|
+
end
|
26
|
+
#--------------------------------------------------------------------------
|
27
|
+
# * Get Window Height
|
28
|
+
#--------------------------------------------------------------------------
|
29
|
+
def window_height
|
30
|
+
fitting_height(visible_line_number)
|
31
|
+
end
|
32
|
+
#--------------------------------------------------------------------------
|
33
|
+
# * Clear Instance Variables
|
34
|
+
#--------------------------------------------------------------------------
|
35
|
+
def clear_instance_variables
|
36
|
+
@fiber = nil # Fiber
|
37
|
+
@background = 0 # Background type
|
38
|
+
@position = 2 # Display position
|
39
|
+
clear_flags
|
40
|
+
end
|
41
|
+
#--------------------------------------------------------------------------
|
42
|
+
# * Clear Flag
|
43
|
+
#--------------------------------------------------------------------------
|
44
|
+
def clear_flags
|
45
|
+
@show_fast = false # Fast forward flag
|
46
|
+
@line_show_fast = false # Fast forward by line flag
|
47
|
+
@pause_skip = false # Input standby omission flag
|
48
|
+
end
|
49
|
+
#--------------------------------------------------------------------------
|
50
|
+
# * Get Number of Lines to Show
|
51
|
+
#--------------------------------------------------------------------------
|
52
|
+
def visible_line_number
|
53
|
+
return 4
|
54
|
+
end
|
55
|
+
#--------------------------------------------------------------------------
|
56
|
+
# * Free
|
57
|
+
#--------------------------------------------------------------------------
|
58
|
+
def dispose
|
59
|
+
super
|
60
|
+
dispose_all_windows
|
61
|
+
dispose_back_bitmap
|
62
|
+
dispose_back_sprite
|
63
|
+
end
|
64
|
+
#--------------------------------------------------------------------------
|
65
|
+
# * Frame Update
|
66
|
+
#--------------------------------------------------------------------------
|
67
|
+
def update
|
68
|
+
super
|
69
|
+
update_all_windows
|
70
|
+
update_back_sprite
|
71
|
+
update_fiber
|
72
|
+
end
|
73
|
+
#--------------------------------------------------------------------------
|
74
|
+
# * Update Fiber
|
75
|
+
#--------------------------------------------------------------------------
|
76
|
+
def update_fiber
|
77
|
+
if @fiber
|
78
|
+
@fiber.resume
|
79
|
+
elsif $game_message.busy? && !$game_message.scroll_mode
|
80
|
+
@fiber = Fiber.new { fiber_main }
|
81
|
+
@fiber.resume
|
82
|
+
else
|
83
|
+
$game_message.visible = false
|
84
|
+
end
|
85
|
+
end
|
86
|
+
#--------------------------------------------------------------------------
|
87
|
+
# * Create All Windows
|
88
|
+
#--------------------------------------------------------------------------
|
89
|
+
def create_all_windows
|
90
|
+
@gold_window = Window_Gold.new
|
91
|
+
@gold_window.x = Graphics.width - @gold_window.width
|
92
|
+
@gold_window.y = 0
|
93
|
+
@gold_window.openness = 0
|
94
|
+
@choice_window = Window_ChoiceList.new(self)
|
95
|
+
@number_window = Window_NumberInput.new(self)
|
96
|
+
@item_window = Window_KeyItem.new(self)
|
97
|
+
end
|
98
|
+
#--------------------------------------------------------------------------
|
99
|
+
# * Create Background Bitmap
|
100
|
+
#--------------------------------------------------------------------------
|
101
|
+
def create_back_bitmap
|
102
|
+
@back_bitmap = Bitmap.new(width, height)
|
103
|
+
rect1 = Rect.new(0, 0, width, 12)
|
104
|
+
rect2 = Rect.new(0, 12, width, height - 24)
|
105
|
+
rect3 = Rect.new(0, height - 12, width, 12)
|
106
|
+
@back_bitmap.gradient_fill_rect(rect1, back_color2, back_color1, true)
|
107
|
+
@back_bitmap.fill_rect(rect2, back_color1)
|
108
|
+
@back_bitmap.gradient_fill_rect(rect3, back_color1, back_color2, true)
|
109
|
+
end
|
110
|
+
#--------------------------------------------------------------------------
|
111
|
+
# * Get Background Color 1
|
112
|
+
#--------------------------------------------------------------------------
|
113
|
+
def back_color1
|
114
|
+
Color.new(0, 0, 0, 160)
|
115
|
+
end
|
116
|
+
#--------------------------------------------------------------------------
|
117
|
+
# * Get Background Color 2
|
118
|
+
#--------------------------------------------------------------------------
|
119
|
+
def back_color2
|
120
|
+
Color.new(0, 0, 0, 0)
|
121
|
+
end
|
122
|
+
#--------------------------------------------------------------------------
|
123
|
+
# * Create Background Sprite
|
124
|
+
#--------------------------------------------------------------------------
|
125
|
+
def create_back_sprite
|
126
|
+
@back_sprite = Sprite.new
|
127
|
+
@back_sprite.bitmap = @back_bitmap
|
128
|
+
@back_sprite.visible = false
|
129
|
+
@back_sprite.z = z - 1
|
130
|
+
end
|
131
|
+
#--------------------------------------------------------------------------
|
132
|
+
# * Free All Windows
|
133
|
+
#--------------------------------------------------------------------------
|
134
|
+
def dispose_all_windows
|
135
|
+
@gold_window.dispose
|
136
|
+
@choice_window.dispose
|
137
|
+
@number_window.dispose
|
138
|
+
@item_window.dispose
|
139
|
+
end
|
140
|
+
#--------------------------------------------------------------------------
|
141
|
+
# * Free Background Bitmap
|
142
|
+
#--------------------------------------------------------------------------
|
143
|
+
def dispose_back_bitmap
|
144
|
+
@back_bitmap.dispose
|
145
|
+
end
|
146
|
+
#--------------------------------------------------------------------------
|
147
|
+
# * Free Background Sprite
|
148
|
+
#--------------------------------------------------------------------------
|
149
|
+
def dispose_back_sprite
|
150
|
+
@back_sprite.dispose
|
151
|
+
end
|
152
|
+
#--------------------------------------------------------------------------
|
153
|
+
# * Update All Windows
|
154
|
+
#--------------------------------------------------------------------------
|
155
|
+
def update_all_windows
|
156
|
+
@gold_window.update
|
157
|
+
@choice_window.update
|
158
|
+
@number_window.update
|
159
|
+
@item_window.update
|
160
|
+
end
|
161
|
+
#--------------------------------------------------------------------------
|
162
|
+
# * Update Background Sprite
|
163
|
+
#--------------------------------------------------------------------------
|
164
|
+
def update_back_sprite
|
165
|
+
@back_sprite.visible = (@background == 1)
|
166
|
+
@back_sprite.y = y
|
167
|
+
@back_sprite.opacity = openness
|
168
|
+
@back_sprite.update
|
169
|
+
end
|
170
|
+
#--------------------------------------------------------------------------
|
171
|
+
# * Main Processing of Fiber
|
172
|
+
#--------------------------------------------------------------------------
|
173
|
+
def fiber_main
|
174
|
+
$game_message.visible = true
|
175
|
+
update_background
|
176
|
+
update_placement
|
177
|
+
loop do
|
178
|
+
process_all_text if $game_message.has_text?
|
179
|
+
process_input
|
180
|
+
$game_message.clear
|
181
|
+
@gold_window.close
|
182
|
+
Fiber.yield
|
183
|
+
break unless text_continue?
|
184
|
+
end
|
185
|
+
close_and_wait
|
186
|
+
$game_message.visible = false
|
187
|
+
@fiber = nil
|
188
|
+
end
|
189
|
+
#--------------------------------------------------------------------------
|
190
|
+
# * Update Window Background
|
191
|
+
#--------------------------------------------------------------------------
|
192
|
+
def update_background
|
193
|
+
@background = $game_message.background
|
194
|
+
self.opacity = @background == 0 ? 255 : 0
|
195
|
+
end
|
196
|
+
#--------------------------------------------------------------------------
|
197
|
+
# * Update Window Position
|
198
|
+
#--------------------------------------------------------------------------
|
199
|
+
def update_placement
|
200
|
+
@position = $game_message.position
|
201
|
+
self.y = @position * (Graphics.height - height) / 2
|
202
|
+
@gold_window.y = y > 0 ? 0 : Graphics.height - @gold_window.height
|
203
|
+
end
|
204
|
+
#--------------------------------------------------------------------------
|
205
|
+
# * Process All Text
|
206
|
+
#--------------------------------------------------------------------------
|
207
|
+
def process_all_text
|
208
|
+
open_and_wait
|
209
|
+
text = convert_escape_characters($game_message.all_text)
|
210
|
+
pos = {}
|
211
|
+
new_page(text, pos)
|
212
|
+
process_character(text.slice!(0, 1), text, pos) until text.empty?
|
213
|
+
end
|
214
|
+
#--------------------------------------------------------------------------
|
215
|
+
# * Input Processing
|
216
|
+
#--------------------------------------------------------------------------
|
217
|
+
def process_input
|
218
|
+
if $game_message.choice?
|
219
|
+
input_choice
|
220
|
+
elsif $game_message.num_input?
|
221
|
+
input_number
|
222
|
+
elsif $game_message.item_choice?
|
223
|
+
input_item
|
224
|
+
else
|
225
|
+
input_pause unless @pause_skip
|
226
|
+
end
|
227
|
+
end
|
228
|
+
#--------------------------------------------------------------------------
|
229
|
+
# * Open Window and Wait for It to Fully Open
|
230
|
+
#--------------------------------------------------------------------------
|
231
|
+
def open_and_wait
|
232
|
+
open
|
233
|
+
Fiber.yield until open?
|
234
|
+
end
|
235
|
+
#--------------------------------------------------------------------------
|
236
|
+
# * Close Window and Wait for It to Fully Close
|
237
|
+
#--------------------------------------------------------------------------
|
238
|
+
def close_and_wait
|
239
|
+
close
|
240
|
+
Fiber.yield until all_close?
|
241
|
+
end
|
242
|
+
#--------------------------------------------------------------------------
|
243
|
+
# * Determine if All Windows Are Fully Closed
|
244
|
+
#--------------------------------------------------------------------------
|
245
|
+
def all_close?
|
246
|
+
close? && @choice_window.close? &&
|
247
|
+
@number_window.close? && @item_window.close?
|
248
|
+
end
|
249
|
+
#--------------------------------------------------------------------------
|
250
|
+
# * Determine Whether to Continue Displaying Text
|
251
|
+
#--------------------------------------------------------------------------
|
252
|
+
def text_continue?
|
253
|
+
$game_message.has_text? && !settings_changed?
|
254
|
+
end
|
255
|
+
#--------------------------------------------------------------------------
|
256
|
+
# * Determine if Background and Position Changed
|
257
|
+
#--------------------------------------------------------------------------
|
258
|
+
def settings_changed?
|
259
|
+
@background != $game_message.background ||
|
260
|
+
@position != $game_message.position
|
261
|
+
end
|
262
|
+
#--------------------------------------------------------------------------
|
263
|
+
# * Wait
|
264
|
+
#--------------------------------------------------------------------------
|
265
|
+
def wait(duration)
|
266
|
+
duration.times { Fiber.yield }
|
267
|
+
end
|
268
|
+
#--------------------------------------------------------------------------
|
269
|
+
# * Update Fast Forward Flag
|
270
|
+
#--------------------------------------------------------------------------
|
271
|
+
def update_show_fast
|
272
|
+
@show_fast = true if Input.trigger?(:C)
|
273
|
+
end
|
274
|
+
#--------------------------------------------------------------------------
|
275
|
+
# * Wait After Output of One Character
|
276
|
+
#--------------------------------------------------------------------------
|
277
|
+
def wait_for_one_character
|
278
|
+
update_show_fast
|
279
|
+
Fiber.yield unless @show_fast || @line_show_fast
|
280
|
+
end
|
281
|
+
#--------------------------------------------------------------------------
|
282
|
+
# * New Page
|
283
|
+
#--------------------------------------------------------------------------
|
284
|
+
def new_page(text, pos)
|
285
|
+
contents.clear
|
286
|
+
draw_face($game_message.face_name, $game_message.face_index, 0, 0)
|
287
|
+
reset_font_settings
|
288
|
+
pos[:x] = new_line_x
|
289
|
+
pos[:y] = 0
|
290
|
+
pos[:new_x] = new_line_x
|
291
|
+
pos[:height] = calc_line_height(text)
|
292
|
+
clear_flags
|
293
|
+
end
|
294
|
+
#--------------------------------------------------------------------------
|
295
|
+
# * Get New Line Position
|
296
|
+
#--------------------------------------------------------------------------
|
297
|
+
def new_line_x
|
298
|
+
$game_message.face_name.empty? ? 0 : 112
|
299
|
+
end
|
300
|
+
#--------------------------------------------------------------------------
|
301
|
+
# * Normal Character Processing
|
302
|
+
#--------------------------------------------------------------------------
|
303
|
+
def process_normal_character(c, pos)
|
304
|
+
super
|
305
|
+
wait_for_one_character
|
306
|
+
end
|
307
|
+
#--------------------------------------------------------------------------
|
308
|
+
# * New Line Character Processing
|
309
|
+
#--------------------------------------------------------------------------
|
310
|
+
def process_new_line(text, pos)
|
311
|
+
@line_show_fast = false
|
312
|
+
super
|
313
|
+
if need_new_page?(text, pos)
|
314
|
+
input_pause
|
315
|
+
new_page(text, pos)
|
316
|
+
end
|
317
|
+
end
|
318
|
+
#--------------------------------------------------------------------------
|
319
|
+
# * Determine if New Page Is Needed
|
320
|
+
#--------------------------------------------------------------------------
|
321
|
+
def need_new_page?(text, pos)
|
322
|
+
pos[:y] + pos[:height] > contents.height && !text.empty?
|
323
|
+
end
|
324
|
+
#--------------------------------------------------------------------------
|
325
|
+
# * New Page Character Processing
|
326
|
+
#--------------------------------------------------------------------------
|
327
|
+
def process_new_page(text, pos)
|
328
|
+
text.slice!(/^\n/)
|
329
|
+
input_pause
|
330
|
+
new_page(text, pos)
|
331
|
+
end
|
332
|
+
#--------------------------------------------------------------------------
|
333
|
+
# * Icon Drawing Process by Control Characters
|
334
|
+
#--------------------------------------------------------------------------
|
335
|
+
def process_draw_icon(icon_index, pos)
|
336
|
+
super
|
337
|
+
wait_for_one_character
|
338
|
+
end
|
339
|
+
#--------------------------------------------------------------------------
|
340
|
+
# * Control Character Processing
|
341
|
+
# code : the core of the control character
|
342
|
+
# e.g. "C" in the case of the control character \C[1].
|
343
|
+
# text : character string buffer in drawing processing (destructive)
|
344
|
+
# pos : draw position {:x, :y, :new_x, :height}
|
345
|
+
#--------------------------------------------------------------------------
|
346
|
+
def process_escape_character(code, text, pos)
|
347
|
+
case code.upcase
|
348
|
+
when '$'
|
349
|
+
@gold_window.open
|
350
|
+
when '.'
|
351
|
+
wait(15)
|
352
|
+
when '|'
|
353
|
+
wait(60)
|
354
|
+
when '!'
|
355
|
+
input_pause
|
356
|
+
when '>'
|
357
|
+
@line_show_fast = true
|
358
|
+
when '<'
|
359
|
+
@line_show_fast = false
|
360
|
+
when '^'
|
361
|
+
@pause_skip = true
|
362
|
+
else
|
363
|
+
super
|
364
|
+
end
|
365
|
+
end
|
366
|
+
#--------------------------------------------------------------------------
|
367
|
+
# * Input Pause Processing
|
368
|
+
#--------------------------------------------------------------------------
|
369
|
+
def input_pause
|
370
|
+
self.pause = true
|
371
|
+
wait(10)
|
372
|
+
Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C)
|
373
|
+
Input.update
|
374
|
+
self.pause = false
|
375
|
+
end
|
376
|
+
#--------------------------------------------------------------------------
|
377
|
+
# * Choice Input Processing
|
378
|
+
#--------------------------------------------------------------------------
|
379
|
+
def input_choice
|
380
|
+
@choice_window.start
|
381
|
+
Fiber.yield while @choice_window.active
|
382
|
+
end
|
383
|
+
#--------------------------------------------------------------------------
|
384
|
+
# * Number Input Processing
|
385
|
+
#--------------------------------------------------------------------------
|
386
|
+
def input_number
|
387
|
+
@number_window.start
|
388
|
+
Fiber.yield while @number_window.active
|
389
|
+
end
|
390
|
+
#--------------------------------------------------------------------------
|
391
|
+
# * Item Selection Processing
|
392
|
+
#--------------------------------------------------------------------------
|
393
|
+
def input_item
|
394
|
+
@item_window.start
|
395
|
+
Fiber.yield while @item_window.active
|
396
|
+
end
|
397
|
+
end
|