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.
Files changed (117) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/Gemfile +4 -0
  4. data/README.md +9 -0
  5. data/Rakefile +2 -0
  6. data/lib/rgss3_default_scripts.rb +109 -0
  7. data/lib/rgss3_default_scripts/BattleManager.rb +392 -0
  8. data/lib/rgss3_default_scripts/Cache.rb +134 -0
  9. data/lib/rgss3_default_scripts/DataManager.rb +267 -0
  10. data/lib/rgss3_default_scripts/Game_Action.rb +262 -0
  11. data/lib/rgss3_default_scripts/Game_ActionResult.rb +159 -0
  12. data/lib/rgss3_default_scripts/Game_Actor.rb +696 -0
  13. data/lib/rgss3_default_scripts/Game_Actors.rb +22 -0
  14. data/lib/rgss3_default_scripts/Game_BaseItem.rb +51 -0
  15. data/lib/rgss3_default_scripts/Game_Battler.rb +824 -0
  16. data/lib/rgss3_default_scripts/Game_BattlerBase.rb +731 -0
  17. data/lib/rgss3_default_scripts/Game_Character.rb +396 -0
  18. data/lib/rgss3_default_scripts/Game_CharacterBase.rb +443 -0
  19. data/lib/rgss3_default_scripts/Game_CommonEvent.rb +41 -0
  20. data/lib/rgss3_default_scripts/Game_Enemy.rb +264 -0
  21. data/lib/rgss3_default_scripts/Game_Event.rb +308 -0
  22. data/lib/rgss3_default_scripts/Game_Follower.rb +74 -0
  23. data/lib/rgss3_default_scripts/Game_Followers.rb +112 -0
  24. data/lib/rgss3_default_scripts/Game_Interpreter.rb +1413 -0
  25. data/lib/rgss3_default_scripts/Game_Map.rb +704 -0
  26. data/lib/rgss3_default_scripts/Game_Message.rb +101 -0
  27. data/lib/rgss3_default_scripts/Game_Party.rb +418 -0
  28. data/lib/rgss3_default_scripts/Game_Picture.rb +161 -0
  29. data/lib/rgss3_default_scripts/Game_Pictures.rb +28 -0
  30. data/lib/rgss3_default_scripts/Game_Player.rb +488 -0
  31. data/lib/rgss3_default_scripts/Game_Screen.rb +234 -0
  32. data/lib/rgss3_default_scripts/Game_SelfSwitches.rb +35 -0
  33. data/lib/rgss3_default_scripts/Game_Switches.rb +35 -0
  34. data/lib/rgss3_default_scripts/Game_System.rb +122 -0
  35. data/lib/rgss3_default_scripts/Game_Temp.rb +45 -0
  36. data/lib/rgss3_default_scripts/Game_Timer.rb +56 -0
  37. data/lib/rgss3_default_scripts/Game_Troop.rb +205 -0
  38. data/lib/rgss3_default_scripts/Game_Unit.rb +131 -0
  39. data/lib/rgss3_default_scripts/Game_Variables.rb +34 -0
  40. data/lib/rgss3_default_scripts/Game_Vehicle.rb +193 -0
  41. data/lib/rgss3_default_scripts/SceneManager.rb +94 -0
  42. data/lib/rgss3_default_scripts/Scene_Base.rb +132 -0
  43. data/lib/rgss3_default_scripts/Scene_Battle.rb +693 -0
  44. data/lib/rgss3_default_scripts/Scene_Debug.rb +87 -0
  45. data/lib/rgss3_default_scripts/Scene_End.rb +61 -0
  46. data/lib/rgss3_default_scripts/Scene_Equip.rb +144 -0
  47. data/lib/rgss3_default_scripts/Scene_File.rb +203 -0
  48. data/lib/rgss3_default_scripts/Scene_Gameover.rb +85 -0
  49. data/lib/rgss3_default_scripts/Scene_Item.rb +75 -0
  50. data/lib/rgss3_default_scripts/Scene_ItemBase.rb +147 -0
  51. data/lib/rgss3_default_scripts/Scene_Load.rb +40 -0
  52. data/lib/rgss3_default_scripts/Scene_Map.rb +276 -0
  53. data/lib/rgss3_default_scripts/Scene_Menu.rb +127 -0
  54. data/lib/rgss3_default_scripts/Scene_MenuBase.rb +63 -0
  55. data/lib/rgss3_default_scripts/Scene_Name.rb +32 -0
  56. data/lib/rgss3_default_scripts/Scene_Save.rb +38 -0
  57. data/lib/rgss3_default_scripts/Scene_Shop.rb +299 -0
  58. data/lib/rgss3_default_scripts/Scene_Skill.rb +108 -0
  59. data/lib/rgss3_default_scripts/Scene_Status.rb +25 -0
  60. data/lib/rgss3_default_scripts/Scene_Title.rb +137 -0
  61. data/lib/rgss3_default_scripts/Sound.rb +135 -0
  62. data/lib/rgss3_default_scripts/Sprite_Base.rb +232 -0
  63. data/lib/rgss3_default_scripts/Sprite_Battler.rb +231 -0
  64. data/lib/rgss3_default_scripts/Sprite_Character.rb +226 -0
  65. data/lib/rgss3_default_scripts/Sprite_Picture.rb +82 -0
  66. data/lib/rgss3_default_scripts/Sprite_Timer.rb +77 -0
  67. data/lib/rgss3_default_scripts/Spriteset_Battle.rb +389 -0
  68. data/lib/rgss3_default_scripts/Spriteset_Map.rb +273 -0
  69. data/lib/rgss3_default_scripts/Spriteset_Weather.rb +184 -0
  70. data/lib/rgss3_default_scripts/Vocab.rb +145 -0
  71. data/lib/rgss3_default_scripts/Window_ActorCommand.rb +78 -0
  72. data/lib/rgss3_default_scripts/Window_Base.rb +571 -0
  73. data/lib/rgss3_default_scripts/Window_BattleActor.rb +38 -0
  74. data/lib/rgss3_default_scripts/Window_BattleEnemy.rb +70 -0
  75. data/lib/rgss3_default_scripts/Window_BattleItem.rb +40 -0
  76. data/lib/rgss3_default_scripts/Window_BattleLog.rb +425 -0
  77. data/lib/rgss3_default_scripts/Window_BattleSkill.rb +34 -0
  78. data/lib/rgss3_default_scripts/Window_BattleStatus.rb +111 -0
  79. data/lib/rgss3_default_scripts/Window_ChoiceList.rb +88 -0
  80. data/lib/rgss3_default_scripts/Window_Command.rb +152 -0
  81. data/lib/rgss3_default_scripts/Window_DebugLeft.rb +104 -0
  82. data/lib/rgss3_default_scripts/Window_DebugRight.rb +119 -0
  83. data/lib/rgss3_default_scripts/Window_EquipCommand.rb +36 -0
  84. data/lib/rgss3_default_scripts/Window_EquipItem.rb +78 -0
  85. data/lib/rgss3_default_scripts/Window_EquipSlot.rb +111 -0
  86. data/lib/rgss3_default_scripts/Window_EquipStatus.rb +97 -0
  87. data/lib/rgss3_default_scripts/Window_GameEnd.rb +38 -0
  88. data/lib/rgss3_default_scripts/Window_Gold.rb +47 -0
  89. data/lib/rgss3_default_scripts/Window_Help.rb +43 -0
  90. data/lib/rgss3_default_scripts/Window_HorzCommand.rb +106 -0
  91. data/lib/rgss3_default_scripts/Window_ItemCategory.rb +54 -0
  92. data/lib/rgss3_default_scripts/Window_ItemList.rb +117 -0
  93. data/lib/rgss3_default_scripts/Window_KeyItem.rb +55 -0
  94. data/lib/rgss3_default_scripts/Window_MapName.rb +96 -0
  95. data/lib/rgss3_default_scripts/Window_MenuActor.rb +43 -0
  96. data/lib/rgss3_default_scripts/Window_MenuCommand.rb +106 -0
  97. data/lib/rgss3_default_scripts/Window_MenuStatus.rb +85 -0
  98. data/lib/rgss3_default_scripts/Window_Message.rb +397 -0
  99. data/lib/rgss3_default_scripts/Window_NameEdit.rb +129 -0
  100. data/lib/rgss3_default_scripts/Window_NameInput.rb +253 -0
  101. data/lib/rgss3_default_scripts/Window_NumberInput.rb +148 -0
  102. data/lib/rgss3_default_scripts/Window_PartyCommand.rb +47 -0
  103. data/lib/rgss3_default_scripts/Window_SaveFile.rb +69 -0
  104. data/lib/rgss3_default_scripts/Window_ScrollText.rb +90 -0
  105. data/lib/rgss3_default_scripts/Window_Selectable.rb +442 -0
  106. data/lib/rgss3_default_scripts/Window_ShopBuy.rb +115 -0
  107. data/lib/rgss3_default_scripts/Window_ShopCommand.rb +36 -0
  108. data/lib/rgss3_default_scripts/Window_ShopNumber.rb +137 -0
  109. data/lib/rgss3_default_scripts/Window_ShopSell.rb +27 -0
  110. data/lib/rgss3_default_scripts/Window_ShopStatus.rb +124 -0
  111. data/lib/rgss3_default_scripts/Window_SkillCommand.rb +76 -0
  112. data/lib/rgss3_default_scripts/Window_SkillList.rb +121 -0
  113. data/lib/rgss3_default_scripts/Window_SkillStatus.rb +38 -0
  114. data/lib/rgss3_default_scripts/Window_Status.rb +125 -0
  115. data/lib/rgss3_default_scripts/Window_TitleCommand.rb +45 -0
  116. data/rgss3_default_scripts.gemspec +23 -0
  117. metadata +186 -0
@@ -0,0 +1,129 @@
1
+ #==============================================================================
2
+ # ** Window_NameEdit
3
+ #------------------------------------------------------------------------------
4
+ # This window is used to edit an actor's name on the name input screen.
5
+ #==============================================================================
6
+
7
+ class Window_NameEdit < Window_Base
8
+ #--------------------------------------------------------------------------
9
+ # * Public Instance Variables
10
+ #--------------------------------------------------------------------------
11
+ attr_reader :name # name
12
+ attr_reader :index # cursor position
13
+ attr_reader :max_char # maximum number of characters
14
+ #--------------------------------------------------------------------------
15
+ # * Object Initialization
16
+ #--------------------------------------------------------------------------
17
+ def initialize(actor, max_char)
18
+ x = (Graphics.width - 360) / 2
19
+ y = (Graphics.height - (fitting_height(4) + fitting_height(9) + 8)) / 2
20
+ super(x, y, 360, fitting_height(4))
21
+ @actor = actor
22
+ @max_char = max_char
23
+ @default_name = @name = actor.name[0, @max_char]
24
+ @index = @name.size
25
+ deactivate
26
+ refresh
27
+ end
28
+ #--------------------------------------------------------------------------
29
+ # * Revert to Default Name
30
+ #--------------------------------------------------------------------------
31
+ def restore_default
32
+ @name = @default_name
33
+ @index = @name.size
34
+ refresh
35
+ return !@name.empty?
36
+ end
37
+ #--------------------------------------------------------------------------
38
+ # * Add Text Character
39
+ # ch : character to add
40
+ #--------------------------------------------------------------------------
41
+ def add(ch)
42
+ return false if @index >= @max_char
43
+ @name += ch
44
+ @index += 1
45
+ refresh
46
+ return true
47
+ end
48
+ #--------------------------------------------------------------------------
49
+ # * Go Back One Character
50
+ #--------------------------------------------------------------------------
51
+ def back
52
+ return false if @index == 0
53
+ @index -= 1
54
+ @name = @name[0, @index]
55
+ refresh
56
+ return true
57
+ end
58
+ #--------------------------------------------------------------------------
59
+ # * Get Width of Face Graphic
60
+ #--------------------------------------------------------------------------
61
+ def face_width
62
+ return 96
63
+ end
64
+ #--------------------------------------------------------------------------
65
+ # * Get Character Width
66
+ #--------------------------------------------------------------------------
67
+ def char_width
68
+ text_size($game_system.japanese? ? "あ" : "A").width
69
+ end
70
+ #--------------------------------------------------------------------------
71
+ # * Get Coordinates of Left Side for Drawing Name
72
+ #--------------------------------------------------------------------------
73
+ def left
74
+ name_center = (contents_width + face_width) / 2
75
+ name_width = (@max_char + 1) * char_width
76
+ return [name_center - name_width / 2, contents_width - name_width].min
77
+ end
78
+ #--------------------------------------------------------------------------
79
+ # * Get Rectangle for Displaying Item
80
+ #--------------------------------------------------------------------------
81
+ def item_rect(index)
82
+ Rect.new(left + index * char_width, 36, char_width, line_height)
83
+ end
84
+ #--------------------------------------------------------------------------
85
+ # * Get Underline Rectangle
86
+ #--------------------------------------------------------------------------
87
+ def underline_rect(index)
88
+ rect = item_rect(index)
89
+ rect.x += 1
90
+ rect.y += rect.height - 4
91
+ rect.width -= 2
92
+ rect.height = 2
93
+ rect
94
+ end
95
+ #--------------------------------------------------------------------------
96
+ # * Get Underline Color
97
+ #--------------------------------------------------------------------------
98
+ def underline_color
99
+ color = normal_color
100
+ color.alpha = 48
101
+ color
102
+ end
103
+ #--------------------------------------------------------------------------
104
+ # * Draw Underline
105
+ #--------------------------------------------------------------------------
106
+ def draw_underline(index)
107
+ contents.fill_rect(underline_rect(index), underline_color)
108
+ end
109
+ #--------------------------------------------------------------------------
110
+ # * Draw Text
111
+ #--------------------------------------------------------------------------
112
+ def draw_char(index)
113
+ rect = item_rect(index)
114
+ rect.x -= 1
115
+ rect.width += 4
116
+ change_color(normal_color)
117
+ draw_text(rect, @name[index] || "")
118
+ end
119
+ #--------------------------------------------------------------------------
120
+ # * Refresh
121
+ #--------------------------------------------------------------------------
122
+ def refresh
123
+ contents.clear
124
+ draw_actor_face(@actor, 0, 0)
125
+ @max_char.times {|i| draw_underline(i) }
126
+ @name.size.times {|i| draw_char(i) }
127
+ cursor_rect.set(item_rect(@index))
128
+ end
129
+ end
@@ -0,0 +1,253 @@
1
+ #==============================================================================
2
+ # ** Window_NameInput
3
+ #------------------------------------------------------------------------------
4
+ # This window is used to select text characters on the name input screen.
5
+ #==============================================================================
6
+
7
+ class Window_NameInput < Window_Selectable
8
+ #--------------------------------------------------------------------------
9
+ # * Character Tables (Latin)
10
+ #--------------------------------------------------------------------------
11
+ LATIN1 = [ 'A','B','C','D','E', 'a','b','c','d','e',
12
+ 'F','G','H','I','J', 'f','g','h','i','j',
13
+ 'K','L','M','N','O', 'k','l','m','n','o',
14
+ 'P','Q','R','S','T', 'p','q','r','s','t',
15
+ 'U','V','W','X','Y', 'u','v','w','x','y',
16
+ 'Z','[',']','^','_', 'z','{','}','|','~',
17
+ '0','1','2','3','4', '!','#','$','%','&',
18
+ '5','6','7','8','9', '(',')','*','+','-',
19
+ '/','=','@','<','>', ':',';',' ','Page','OK']
20
+ LATIN2 = [ 'Á','É','Í','Ó','Ú', 'á','é','í','ó','ú',
21
+ 'À','È','Ì','Ò','Ù', 'à','è','ì','ò','ù',
22
+ 'Â','Ê','Î','Ô','Û', 'â','ê','î','ô','û',
23
+ 'Ä','Ë','Ï','Ö','Ü', 'ä','ë','ï','ö','ü',
24
+ 'Ā','Ē','Ī','Ō','Ū', 'ā','ē','ī','ō','ū',
25
+ 'Ã','Å','Æ','Ç','Ð', 'ã','å','æ','ç','ð',
26
+ 'Ñ','Õ','Ø','Š','Ŵ', 'ñ','õ','ø','š','ŵ',
27
+ 'Ý','Ŷ','Ÿ','Ž','Þ', 'ý','ÿ','ŷ','ž','þ',
28
+ 'IJ','Œ','ij','œ','ß', '«','»',' ','Page','OK']
29
+ #--------------------------------------------------------------------------
30
+ # * Character Tables (Japanese)
31
+ #--------------------------------------------------------------------------
32
+ JAPAN1 = [ 'あ','い','う','え','お', 'が','ぎ','ぐ','げ','ご',
33
+ 'か','き','く','け','こ', 'ざ','じ','ず','ぜ','ぞ',
34
+ 'さ','し','す','せ','そ', 'だ','ぢ','づ','で','ど',
35
+ 'た','ち','つ','て','と', 'ば','び','ぶ','べ','ぼ',
36
+ 'な','に','ぬ','ね','の', 'ぱ','ぴ','ぷ','ぺ','ぽ',
37
+ 'は','ひ','ふ','へ','ほ', 'ぁ','ぃ','ぅ','ぇ','ぉ',
38
+ 'ま','み','む','め','も', 'っ','ゃ','ゅ','ょ','ゎ',
39
+ 'や','ゆ','よ','わ','ん', 'ー','~','・','=','☆',
40
+ 'ら','り','る','れ','ろ', 'ゔ','を',' ','カナ','決定']
41
+ JAPAN2 = [ 'ア','イ','ウ','エ','オ', 'ガ','ギ','グ','ゲ','ゴ',
42
+ 'カ','キ','ク','ケ','コ', 'ザ','ジ','ズ','ゼ','ゾ',
43
+ 'サ','シ','ス','セ','ソ', 'ダ','ヂ','ヅ','デ','ド',
44
+ 'タ','チ','ツ','テ','ト', 'バ','ビ','ブ','ベ','ボ',
45
+ 'ナ','ニ','ヌ','ネ','ノ', 'パ','ピ','プ','ペ','ポ',
46
+ 'ハ','ヒ','フ','ヘ','ホ', 'ァ','ィ','ゥ','ェ','ォ',
47
+ 'マ','ミ','ム','メ','モ', 'ッ','ャ','ュ','ョ','ヮ',
48
+ 'ヤ','ユ','ヨ','ワ','ン', 'ー','~','・','=','☆',
49
+ 'ラ','リ','ル','レ','ロ', 'ヴ','ヲ',' ','英数','決定']
50
+ JAPAN3 = [ 'A','B','C','D','E', 'a','b','c','d','e',
51
+ 'F','G','H','I','J', 'f','g','h','i','j',
52
+ 'K','L','M','N','O', 'k','l','m','n','o',
53
+ 'P','Q','R','S','T', 'p','q','r','s','t',
54
+ 'U','V','W','X','Y', 'u','v','w','x','y',
55
+ 'Z','[',']','^','_', 'z','{','}','|','~',
56
+ '0','1','2','3','4', '!','#','$','%','&',
57
+ '5','6','7','8','9', '(',')','*','+','-',
58
+ '/','=','@','<','>', ':',';',' ','かな','決定']
59
+ #--------------------------------------------------------------------------
60
+ # * Object Initialization
61
+ #--------------------------------------------------------------------------
62
+ def initialize(edit_window)
63
+ super(edit_window.x, edit_window.y + edit_window.height + 8,
64
+ edit_window.width, fitting_height(9))
65
+ @edit_window = edit_window
66
+ @page = 0
67
+ @index = 0
68
+ refresh
69
+ update_cursor
70
+ activate
71
+ end
72
+ #--------------------------------------------------------------------------
73
+ # * Get Text Table
74
+ #--------------------------------------------------------------------------
75
+ def table
76
+ return [JAPAN1, JAPAN2, JAPAN3] if $game_system.japanese?
77
+ return [LATIN1, LATIN2]
78
+ end
79
+ #--------------------------------------------------------------------------
80
+ # * Get Text Character
81
+ #--------------------------------------------------------------------------
82
+ def character
83
+ @index < 88 ? table[@page][@index] : ""
84
+ end
85
+ #--------------------------------------------------------------------------
86
+ # * Determining if Page Changed and Cursor Location
87
+ #--------------------------------------------------------------------------
88
+ def is_page_change?
89
+ @index == 88
90
+ end
91
+ #--------------------------------------------------------------------------
92
+ # * Determine Cursor Location: Confirmation
93
+ #--------------------------------------------------------------------------
94
+ def is_ok?
95
+ @index == 89
96
+ end
97
+ #--------------------------------------------------------------------------
98
+ # * Get Rectangle for Displaying Item
99
+ #--------------------------------------------------------------------------
100
+ def item_rect(index)
101
+ rect = Rect.new
102
+ rect.x = index % 10 * 32 + index % 10 / 5 * 16
103
+ rect.y = index / 10 * line_height
104
+ rect.width = 32
105
+ rect.height = line_height
106
+ rect
107
+ end
108
+ #--------------------------------------------------------------------------
109
+ # * Refresh
110
+ #--------------------------------------------------------------------------
111
+ def refresh
112
+ contents.clear
113
+ change_color(normal_color)
114
+ 90.times {|i| draw_text(item_rect(i), table[@page][i], 1) }
115
+ end
116
+ #--------------------------------------------------------------------------
117
+ # * Update Cursor
118
+ #--------------------------------------------------------------------------
119
+ def update_cursor
120
+ cursor_rect.set(item_rect(@index))
121
+ end
122
+ #--------------------------------------------------------------------------
123
+ # * Determine if Cursor is Moveable
124
+ #--------------------------------------------------------------------------
125
+ def cursor_movable?
126
+ active
127
+ end
128
+ #--------------------------------------------------------------------------
129
+ # * Move Cursor Down
130
+ # wrap : Wraparound allowed
131
+ #--------------------------------------------------------------------------
132
+ def cursor_down(wrap)
133
+ if @index < 80 or wrap
134
+ @index = (index + 10) % 90
135
+ end
136
+ end
137
+ #--------------------------------------------------------------------------
138
+ # * Move Cursor Up
139
+ # wrap : Wraparound allowed
140
+ #--------------------------------------------------------------------------
141
+ def cursor_up(wrap)
142
+ if @index >= 10 or wrap
143
+ @index = (index + 80) % 90
144
+ end
145
+ end
146
+ #--------------------------------------------------------------------------
147
+ # * Move Cursor Right
148
+ # wrap : Wraparound allowed
149
+ #--------------------------------------------------------------------------
150
+ def cursor_right(wrap)
151
+ if @index % 10 < 9
152
+ @index += 1
153
+ elsif wrap
154
+ @index -= 9
155
+ end
156
+ end
157
+ #--------------------------------------------------------------------------
158
+ # * Move Cursor Left
159
+ # wrap : Wraparound allowed
160
+ #--------------------------------------------------------------------------
161
+ def cursor_left(wrap)
162
+ if @index % 10 > 0
163
+ @index -= 1
164
+ elsif wrap
165
+ @index += 9
166
+ end
167
+ end
168
+ #--------------------------------------------------------------------------
169
+ # * Move to Next Page
170
+ #--------------------------------------------------------------------------
171
+ def cursor_pagedown
172
+ @page = (@page + 1) % table.size
173
+ refresh
174
+ end
175
+ #--------------------------------------------------------------------------
176
+ # * Move to Previous Page
177
+ #--------------------------------------------------------------------------
178
+ def cursor_pageup
179
+ @page = (@page + table.size - 1) % table.size
180
+ refresh
181
+ end
182
+ #--------------------------------------------------------------------------
183
+ # * Cursor Movement Processing
184
+ #--------------------------------------------------------------------------
185
+ def process_cursor_move
186
+ last_page = @page
187
+ super
188
+ update_cursor
189
+ Sound.play_cursor if @page != last_page
190
+ end
191
+ #--------------------------------------------------------------------------
192
+ # * Handling Processing for OK and Cancel Etc.
193
+ #--------------------------------------------------------------------------
194
+ def process_handling
195
+ return unless open? && active
196
+ process_jump if Input.trigger?(:A)
197
+ process_back if Input.repeat?(:B)
198
+ process_ok if Input.trigger?(:C)
199
+ end
200
+ #--------------------------------------------------------------------------
201
+ # * Jump to OK
202
+ #--------------------------------------------------------------------------
203
+ def process_jump
204
+ if @index != 89
205
+ @index = 89
206
+ Sound.play_cursor
207
+ end
208
+ end
209
+ #--------------------------------------------------------------------------
210
+ # * Go Back One Character
211
+ #--------------------------------------------------------------------------
212
+ def process_back
213
+ Sound.play_cancel if @edit_window.back
214
+ end
215
+ #--------------------------------------------------------------------------
216
+ # * Processing When OK Button Is Pressed
217
+ #--------------------------------------------------------------------------
218
+ def process_ok
219
+ if !character.empty?
220
+ on_name_add
221
+ elsif is_page_change?
222
+ Sound.play_ok
223
+ cursor_pagedown
224
+ elsif is_ok?
225
+ on_name_ok
226
+ end
227
+ end
228
+ #--------------------------------------------------------------------------
229
+ # * Add Text to Name
230
+ #--------------------------------------------------------------------------
231
+ def on_name_add
232
+ if @edit_window.add(character)
233
+ Sound.play_ok
234
+ else
235
+ Sound.play_buzzer
236
+ end
237
+ end
238
+ #--------------------------------------------------------------------------
239
+ # * Decide Name
240
+ #--------------------------------------------------------------------------
241
+ def on_name_ok
242
+ if @edit_window.name.empty?
243
+ if @edit_window.restore_default
244
+ Sound.play_ok
245
+ else
246
+ Sound.play_buzzer
247
+ end
248
+ else
249
+ Sound.play_ok
250
+ call_ok_handler
251
+ end
252
+ end
253
+ end
@@ -0,0 +1,148 @@
1
+ #==============================================================================
2
+ # ** Window_NumberInput
3
+ #------------------------------------------------------------------------------
4
+ # This window is used for the event command [Input Number].
5
+ #==============================================================================
6
+
7
+ class Window_NumberInput < Window_Base
8
+ #--------------------------------------------------------------------------
9
+ # * Object Initialization
10
+ #--------------------------------------------------------------------------
11
+ def initialize(message_window)
12
+ @message_window = message_window
13
+ super(0, 0, 0, 0)
14
+ @number = 0
15
+ @digits_max = 1
16
+ @index = 0
17
+ self.openness = 0
18
+ deactivate
19
+ end
20
+ #--------------------------------------------------------------------------
21
+ # * Start Input Processing
22
+ #--------------------------------------------------------------------------
23
+ def start
24
+ @digits_max = $game_message.num_input_digits_max
25
+ @number = $game_variables[$game_message.num_input_variable_id]
26
+ @number = [[@number, 0].max, 10 ** @digits_max - 1].min
27
+ @index = 0
28
+ update_placement
29
+ create_contents
30
+ refresh
31
+ open
32
+ activate
33
+ end
34
+ #--------------------------------------------------------------------------
35
+ # * Update Window Position
36
+ #--------------------------------------------------------------------------
37
+ def update_placement
38
+ self.width = @digits_max * 20 + padding * 2
39
+ self.height = fitting_height(1)
40
+ self.x = (Graphics.width - width) / 2
41
+ if @message_window.y >= Graphics.height / 2
42
+ self.y = @message_window.y - height - 8
43
+ else
44
+ self.y = @message_window.y + @message_window.height + 8
45
+ end
46
+ end
47
+ #--------------------------------------------------------------------------
48
+ # * Move Cursor Right
49
+ # wrap : Wraparound allowed
50
+ #--------------------------------------------------------------------------
51
+ def cursor_right(wrap)
52
+ if @index < @digits_max - 1 || wrap
53
+ @index = (@index + 1) % @digits_max
54
+ end
55
+ end
56
+ #--------------------------------------------------------------------------
57
+ # * Move Cursor Left
58
+ # wrap : Wraparound allowed
59
+ #--------------------------------------------------------------------------
60
+ def cursor_left(wrap)
61
+ if @index > 0 || wrap
62
+ @index = (@index + @digits_max - 1) % @digits_max
63
+ end
64
+ end
65
+ #--------------------------------------------------------------------------
66
+ # * Frame Update
67
+ #--------------------------------------------------------------------------
68
+ def update
69
+ super
70
+ process_cursor_move
71
+ process_digit_change
72
+ process_handling
73
+ update_cursor
74
+ end
75
+ #--------------------------------------------------------------------------
76
+ # * Cursor Movement Processing
77
+ #--------------------------------------------------------------------------
78
+ def process_cursor_move
79
+ return unless active
80
+ last_index = @index
81
+ cursor_right(Input.trigger?(:RIGHT)) if Input.repeat?(:RIGHT)
82
+ cursor_left (Input.trigger?(:LEFT)) if Input.repeat?(:LEFT)
83
+ Sound.play_cursor if @index != last_index
84
+ end
85
+ #--------------------------------------------------------------------------
86
+ # * Change Processing for Digits
87
+ #--------------------------------------------------------------------------
88
+ def process_digit_change
89
+ return unless active
90
+ if Input.repeat?(:UP) || Input.repeat?(:DOWN)
91
+ Sound.play_cursor
92
+ place = 10 ** (@digits_max - 1 - @index)
93
+ n = @number / place % 10
94
+ @number -= n * place
95
+ n = (n + 1) % 10 if Input.repeat?(:UP)
96
+ n = (n + 9) % 10 if Input.repeat?(:DOWN)
97
+ @number += n * place
98
+ refresh
99
+ end
100
+ end
101
+ #--------------------------------------------------------------------------
102
+ # * Handling Processing for OK and Cancel
103
+ #--------------------------------------------------------------------------
104
+ def process_handling
105
+ return unless active
106
+ return process_ok if Input.trigger?(:C)
107
+ return process_cancel if Input.trigger?(:B)
108
+ end
109
+ #--------------------------------------------------------------------------
110
+ # * Processing When OK Button Is Pressed
111
+ #--------------------------------------------------------------------------
112
+ def process_ok
113
+ Sound.play_ok
114
+ $game_variables[$game_message.num_input_variable_id] = @number
115
+ deactivate
116
+ close
117
+ end
118
+ #--------------------------------------------------------------------------
119
+ # * Processing When Cancel Button Is Pressed
120
+ #--------------------------------------------------------------------------
121
+ def process_cancel
122
+ end
123
+ #--------------------------------------------------------------------------
124
+ # * Get Rectangle for Displaying Item
125
+ #--------------------------------------------------------------------------
126
+ def item_rect(index)
127
+ Rect.new(index * 20, 0, 20, line_height)
128
+ end
129
+ #--------------------------------------------------------------------------
130
+ # * Refresh
131
+ #--------------------------------------------------------------------------
132
+ def refresh
133
+ contents.clear
134
+ change_color(normal_color)
135
+ s = sprintf("%0*d", @digits_max, @number)
136
+ @digits_max.times do |i|
137
+ rect = item_rect(i)
138
+ rect.x += 1
139
+ draw_text(rect, s[i,1], 1)
140
+ end
141
+ end
142
+ #--------------------------------------------------------------------------
143
+ # * Update Cursor
144
+ #--------------------------------------------------------------------------
145
+ def update_cursor
146
+ cursor_rect.set(item_rect(@index))
147
+ end
148
+ end