rgss3_default_scripts 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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