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