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,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
|