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,115 @@
|
|
|
1
|
+
#==============================================================================
|
|
2
|
+
# ** Window_ShopBuy
|
|
3
|
+
#------------------------------------------------------------------------------
|
|
4
|
+
# This window displays a list of buyable goods on the shop screen.
|
|
5
|
+
#==============================================================================
|
|
6
|
+
|
|
7
|
+
class Window_ShopBuy < Window_Selectable
|
|
8
|
+
#--------------------------------------------------------------------------
|
|
9
|
+
# * Public Instance Variables
|
|
10
|
+
#--------------------------------------------------------------------------
|
|
11
|
+
attr_reader :status_window # Status window
|
|
12
|
+
#--------------------------------------------------------------------------
|
|
13
|
+
# * Object Initialization
|
|
14
|
+
#--------------------------------------------------------------------------
|
|
15
|
+
def initialize(x, y, height, shop_goods)
|
|
16
|
+
super(x, y, window_width, height)
|
|
17
|
+
@shop_goods = shop_goods
|
|
18
|
+
@money = 0
|
|
19
|
+
refresh
|
|
20
|
+
select(0)
|
|
21
|
+
end
|
|
22
|
+
#--------------------------------------------------------------------------
|
|
23
|
+
# * Get Window Width
|
|
24
|
+
#--------------------------------------------------------------------------
|
|
25
|
+
def window_width
|
|
26
|
+
return 304
|
|
27
|
+
end
|
|
28
|
+
#--------------------------------------------------------------------------
|
|
29
|
+
# * Get Number of Items
|
|
30
|
+
#--------------------------------------------------------------------------
|
|
31
|
+
def item_max
|
|
32
|
+
@data ? @data.size : 1
|
|
33
|
+
end
|
|
34
|
+
#--------------------------------------------------------------------------
|
|
35
|
+
# * Get Item
|
|
36
|
+
#--------------------------------------------------------------------------
|
|
37
|
+
def item
|
|
38
|
+
@data[index]
|
|
39
|
+
end
|
|
40
|
+
#--------------------------------------------------------------------------
|
|
41
|
+
# * Set Party Gold
|
|
42
|
+
#--------------------------------------------------------------------------
|
|
43
|
+
def money=(money)
|
|
44
|
+
@money = money
|
|
45
|
+
refresh
|
|
46
|
+
end
|
|
47
|
+
#--------------------------------------------------------------------------
|
|
48
|
+
# * Get Activation State of Selection Item
|
|
49
|
+
#--------------------------------------------------------------------------
|
|
50
|
+
def current_item_enabled?
|
|
51
|
+
enable?(@data[index])
|
|
52
|
+
end
|
|
53
|
+
#--------------------------------------------------------------------------
|
|
54
|
+
# * Get Price of Item
|
|
55
|
+
#--------------------------------------------------------------------------
|
|
56
|
+
def price(item)
|
|
57
|
+
@price[item]
|
|
58
|
+
end
|
|
59
|
+
#--------------------------------------------------------------------------
|
|
60
|
+
# * Display in Enabled State?
|
|
61
|
+
#--------------------------------------------------------------------------
|
|
62
|
+
def enable?(item)
|
|
63
|
+
item && price(item) <= @money && !$game_party.item_max?(item)
|
|
64
|
+
end
|
|
65
|
+
#--------------------------------------------------------------------------
|
|
66
|
+
# * Refresh
|
|
67
|
+
#--------------------------------------------------------------------------
|
|
68
|
+
def refresh
|
|
69
|
+
make_item_list
|
|
70
|
+
create_contents
|
|
71
|
+
draw_all_items
|
|
72
|
+
end
|
|
73
|
+
#--------------------------------------------------------------------------
|
|
74
|
+
# * Create Item List
|
|
75
|
+
#--------------------------------------------------------------------------
|
|
76
|
+
def make_item_list
|
|
77
|
+
@data = []
|
|
78
|
+
@price = {}
|
|
79
|
+
@shop_goods.each do |goods|
|
|
80
|
+
case goods[0]
|
|
81
|
+
when 0; item = $data_items[goods[1]]
|
|
82
|
+
when 1; item = $data_weapons[goods[1]]
|
|
83
|
+
when 2; item = $data_armors[goods[1]]
|
|
84
|
+
end
|
|
85
|
+
if item
|
|
86
|
+
@data.push(item)
|
|
87
|
+
@price[item] = goods[2] == 0 ? item.price : goods[3]
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
#--------------------------------------------------------------------------
|
|
92
|
+
# * Draw Item
|
|
93
|
+
#--------------------------------------------------------------------------
|
|
94
|
+
def draw_item(index)
|
|
95
|
+
item = @data[index]
|
|
96
|
+
rect = item_rect(index)
|
|
97
|
+
draw_item_name(item, rect.x, rect.y, enable?(item))
|
|
98
|
+
rect.width -= 4
|
|
99
|
+
draw_text(rect, price(item), 2)
|
|
100
|
+
end
|
|
101
|
+
#--------------------------------------------------------------------------
|
|
102
|
+
# * Set Status Window
|
|
103
|
+
#--------------------------------------------------------------------------
|
|
104
|
+
def status_window=(status_window)
|
|
105
|
+
@status_window = status_window
|
|
106
|
+
call_update_help
|
|
107
|
+
end
|
|
108
|
+
#--------------------------------------------------------------------------
|
|
109
|
+
# * Update Help Text
|
|
110
|
+
#--------------------------------------------------------------------------
|
|
111
|
+
def update_help
|
|
112
|
+
@help_window.set_item(item) if @help_window
|
|
113
|
+
@status_window.item = item if @status_window
|
|
114
|
+
end
|
|
115
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#==============================================================================
|
|
2
|
+
# ** Window_ShopCommand
|
|
3
|
+
#------------------------------------------------------------------------------
|
|
4
|
+
# This window is for selecting buy/sell on the shop screen.
|
|
5
|
+
#==============================================================================
|
|
6
|
+
|
|
7
|
+
class Window_ShopCommand < Window_HorzCommand
|
|
8
|
+
#--------------------------------------------------------------------------
|
|
9
|
+
# * Object Initialization
|
|
10
|
+
#--------------------------------------------------------------------------
|
|
11
|
+
def initialize(window_width, purchase_only)
|
|
12
|
+
@window_width = window_width
|
|
13
|
+
@purchase_only = purchase_only
|
|
14
|
+
super(0, 0)
|
|
15
|
+
end
|
|
16
|
+
#--------------------------------------------------------------------------
|
|
17
|
+
# * Get Window Width
|
|
18
|
+
#--------------------------------------------------------------------------
|
|
19
|
+
def window_width
|
|
20
|
+
@window_width
|
|
21
|
+
end
|
|
22
|
+
#--------------------------------------------------------------------------
|
|
23
|
+
# * Get Digit Count
|
|
24
|
+
#--------------------------------------------------------------------------
|
|
25
|
+
def col_max
|
|
26
|
+
return 3
|
|
27
|
+
end
|
|
28
|
+
#--------------------------------------------------------------------------
|
|
29
|
+
# * Create Command List
|
|
30
|
+
#--------------------------------------------------------------------------
|
|
31
|
+
def make_command_list
|
|
32
|
+
add_command(Vocab::ShopBuy, :buy)
|
|
33
|
+
add_command(Vocab::ShopSell, :sell, !@purchase_only)
|
|
34
|
+
add_command(Vocab::ShopCancel, :cancel)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
#==============================================================================
|
|
2
|
+
# ** Window_ShopNumber
|
|
3
|
+
#------------------------------------------------------------------------------
|
|
4
|
+
# This window is for inputting quantity of items to buy or sell on the shop
|
|
5
|
+
# screen.
|
|
6
|
+
#==============================================================================
|
|
7
|
+
|
|
8
|
+
class Window_ShopNumber < Window_Selectable
|
|
9
|
+
#--------------------------------------------------------------------------
|
|
10
|
+
# * Public Instance Variables
|
|
11
|
+
#--------------------------------------------------------------------------
|
|
12
|
+
attr_reader :number # quantity entered
|
|
13
|
+
#--------------------------------------------------------------------------
|
|
14
|
+
# * Object Initialization
|
|
15
|
+
#--------------------------------------------------------------------------
|
|
16
|
+
def initialize(x, y, height)
|
|
17
|
+
super(x, y, window_width, height)
|
|
18
|
+
@item = nil
|
|
19
|
+
@max = 1
|
|
20
|
+
@price = 0
|
|
21
|
+
@number = 1
|
|
22
|
+
@currency_unit = Vocab::currency_unit
|
|
23
|
+
end
|
|
24
|
+
#--------------------------------------------------------------------------
|
|
25
|
+
# * Get Window Width
|
|
26
|
+
#--------------------------------------------------------------------------
|
|
27
|
+
def window_width
|
|
28
|
+
return 304
|
|
29
|
+
end
|
|
30
|
+
#--------------------------------------------------------------------------
|
|
31
|
+
# * Set Item, Max Quantity, Price, and Currency Unit
|
|
32
|
+
#--------------------------------------------------------------------------
|
|
33
|
+
def set(item, max, price, currency_unit = nil)
|
|
34
|
+
@item = item
|
|
35
|
+
@max = max
|
|
36
|
+
@price = price
|
|
37
|
+
@currency_unit = currency_unit if currency_unit
|
|
38
|
+
@number = 1
|
|
39
|
+
refresh
|
|
40
|
+
end
|
|
41
|
+
#--------------------------------------------------------------------------
|
|
42
|
+
# * Set Currency Unit
|
|
43
|
+
#--------------------------------------------------------------------------
|
|
44
|
+
def currency_unit=(currency_unit)
|
|
45
|
+
@currency_unit = currency_unit
|
|
46
|
+
refresh
|
|
47
|
+
end
|
|
48
|
+
#--------------------------------------------------------------------------
|
|
49
|
+
# * Refresh
|
|
50
|
+
#--------------------------------------------------------------------------
|
|
51
|
+
def refresh
|
|
52
|
+
contents.clear
|
|
53
|
+
draw_item_name(@item, 0, item_y)
|
|
54
|
+
draw_number
|
|
55
|
+
draw_total_price
|
|
56
|
+
end
|
|
57
|
+
#--------------------------------------------------------------------------
|
|
58
|
+
# * Draw Quantity
|
|
59
|
+
#--------------------------------------------------------------------------
|
|
60
|
+
def draw_number
|
|
61
|
+
change_color(normal_color)
|
|
62
|
+
draw_text(cursor_x - 28, item_y, 22, line_height, "×")
|
|
63
|
+
draw_text(cursor_x, item_y, cursor_width - 4, line_height, @number, 2)
|
|
64
|
+
end
|
|
65
|
+
#--------------------------------------------------------------------------
|
|
66
|
+
# * Draw Total Price
|
|
67
|
+
#--------------------------------------------------------------------------
|
|
68
|
+
def draw_total_price
|
|
69
|
+
width = contents_width - 8
|
|
70
|
+
draw_currency_value(@price * @number, @currency_unit, 4, price_y, width)
|
|
71
|
+
end
|
|
72
|
+
#--------------------------------------------------------------------------
|
|
73
|
+
# * Y Coordinate of Item Name Display Line
|
|
74
|
+
#--------------------------------------------------------------------------
|
|
75
|
+
def item_y
|
|
76
|
+
contents_height / 2 - line_height * 3 / 2
|
|
77
|
+
end
|
|
78
|
+
#--------------------------------------------------------------------------
|
|
79
|
+
# * Y Coordinate of Price Display Line
|
|
80
|
+
#--------------------------------------------------------------------------
|
|
81
|
+
def price_y
|
|
82
|
+
contents_height / 2 + line_height / 2
|
|
83
|
+
end
|
|
84
|
+
#--------------------------------------------------------------------------
|
|
85
|
+
# * Get Cursor Width
|
|
86
|
+
#--------------------------------------------------------------------------
|
|
87
|
+
def cursor_width
|
|
88
|
+
figures * 10 + 12
|
|
89
|
+
end
|
|
90
|
+
#--------------------------------------------------------------------------
|
|
91
|
+
# * Get X Coordinate of Cursor
|
|
92
|
+
#--------------------------------------------------------------------------
|
|
93
|
+
def cursor_x
|
|
94
|
+
contents_width - cursor_width - 4
|
|
95
|
+
end
|
|
96
|
+
#--------------------------------------------------------------------------
|
|
97
|
+
# * Get Maximum Number of Digits for Quantity Display
|
|
98
|
+
#--------------------------------------------------------------------------
|
|
99
|
+
def figures
|
|
100
|
+
return 2
|
|
101
|
+
end
|
|
102
|
+
#--------------------------------------------------------------------------
|
|
103
|
+
# * Frame Update
|
|
104
|
+
#--------------------------------------------------------------------------
|
|
105
|
+
def update
|
|
106
|
+
super
|
|
107
|
+
if active
|
|
108
|
+
last_number = @number
|
|
109
|
+
update_number
|
|
110
|
+
if @number != last_number
|
|
111
|
+
Sound.play_cursor
|
|
112
|
+
refresh
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
#--------------------------------------------------------------------------
|
|
117
|
+
# * Update Quantity
|
|
118
|
+
#--------------------------------------------------------------------------
|
|
119
|
+
def update_number
|
|
120
|
+
change_number(1) if Input.repeat?(:RIGHT)
|
|
121
|
+
change_number(-1) if Input.repeat?(:LEFT)
|
|
122
|
+
change_number(10) if Input.repeat?(:UP)
|
|
123
|
+
change_number(-10) if Input.repeat?(:DOWN)
|
|
124
|
+
end
|
|
125
|
+
#--------------------------------------------------------------------------
|
|
126
|
+
# * Change Quantity
|
|
127
|
+
#--------------------------------------------------------------------------
|
|
128
|
+
def change_number(amount)
|
|
129
|
+
@number = [[@number + amount, @max].min, 1].max
|
|
130
|
+
end
|
|
131
|
+
#--------------------------------------------------------------------------
|
|
132
|
+
# * Update Cursor
|
|
133
|
+
#--------------------------------------------------------------------------
|
|
134
|
+
def update_cursor
|
|
135
|
+
cursor_rect.set(cursor_x, item_y, cursor_width, line_height)
|
|
136
|
+
end
|
|
137
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#==============================================================================
|
|
2
|
+
# ** Window_ShopSell
|
|
3
|
+
#------------------------------------------------------------------------------
|
|
4
|
+
# This window displays a list of items in possession for selling on the shop
|
|
5
|
+
# screen.
|
|
6
|
+
#==============================================================================
|
|
7
|
+
|
|
8
|
+
class Window_ShopSell < Window_ItemList
|
|
9
|
+
#--------------------------------------------------------------------------
|
|
10
|
+
# * Object Initialization
|
|
11
|
+
#--------------------------------------------------------------------------
|
|
12
|
+
def initialize(x, y, width, height)
|
|
13
|
+
super(x, y, width, height)
|
|
14
|
+
end
|
|
15
|
+
#--------------------------------------------------------------------------
|
|
16
|
+
# * Get Activation State of Selection Item
|
|
17
|
+
#--------------------------------------------------------------------------
|
|
18
|
+
def current_item_enabled?
|
|
19
|
+
enable?(@data[index])
|
|
20
|
+
end
|
|
21
|
+
#--------------------------------------------------------------------------
|
|
22
|
+
# * Display in Enabled State?
|
|
23
|
+
#--------------------------------------------------------------------------
|
|
24
|
+
def enable?(item)
|
|
25
|
+
item && item.price > 0
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
#==============================================================================
|
|
2
|
+
# ** Window_ShopStatus
|
|
3
|
+
#------------------------------------------------------------------------------
|
|
4
|
+
# This window displays number of items in possession and the actor's
|
|
5
|
+
# equipment on the shop screen.
|
|
6
|
+
#==============================================================================
|
|
7
|
+
|
|
8
|
+
class Window_ShopStatus < Window_Base
|
|
9
|
+
#--------------------------------------------------------------------------
|
|
10
|
+
# * Object Initialization
|
|
11
|
+
#--------------------------------------------------------------------------
|
|
12
|
+
def initialize(x, y, width, height)
|
|
13
|
+
super(x, y, width, height)
|
|
14
|
+
@item = nil
|
|
15
|
+
@page_index = 0
|
|
16
|
+
refresh
|
|
17
|
+
end
|
|
18
|
+
#--------------------------------------------------------------------------
|
|
19
|
+
# * Refresh
|
|
20
|
+
#--------------------------------------------------------------------------
|
|
21
|
+
def refresh
|
|
22
|
+
contents.clear
|
|
23
|
+
draw_possession(4, 0)
|
|
24
|
+
draw_equip_info(4, line_height * 2) if @item.is_a?(RPG::EquipItem)
|
|
25
|
+
end
|
|
26
|
+
#--------------------------------------------------------------------------
|
|
27
|
+
# * Set Item
|
|
28
|
+
#--------------------------------------------------------------------------
|
|
29
|
+
def item=(item)
|
|
30
|
+
@item = item
|
|
31
|
+
refresh
|
|
32
|
+
end
|
|
33
|
+
#--------------------------------------------------------------------------
|
|
34
|
+
# * Draw Quantity Possessed
|
|
35
|
+
#--------------------------------------------------------------------------
|
|
36
|
+
def draw_possession(x, y)
|
|
37
|
+
rect = Rect.new(x, y, contents.width - 4 - x, line_height)
|
|
38
|
+
change_color(system_color)
|
|
39
|
+
draw_text(rect, Vocab::Possession)
|
|
40
|
+
change_color(normal_color)
|
|
41
|
+
draw_text(rect, $game_party.item_number(@item), 2)
|
|
42
|
+
end
|
|
43
|
+
#--------------------------------------------------------------------------
|
|
44
|
+
# * Draw Equipment Information
|
|
45
|
+
#--------------------------------------------------------------------------
|
|
46
|
+
def draw_equip_info(x, y)
|
|
47
|
+
status_members.each_with_index do |actor, i|
|
|
48
|
+
draw_actor_equip_info(x, y + line_height * (i * 2.4), actor)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
#--------------------------------------------------------------------------
|
|
52
|
+
# * Array of Actors for Which to Draw Equipment Information
|
|
53
|
+
#--------------------------------------------------------------------------
|
|
54
|
+
def status_members
|
|
55
|
+
$game_party.members[@page_index * page_size, page_size]
|
|
56
|
+
end
|
|
57
|
+
#--------------------------------------------------------------------------
|
|
58
|
+
# * Number of Actors Displayable at Once
|
|
59
|
+
#--------------------------------------------------------------------------
|
|
60
|
+
def page_size
|
|
61
|
+
return 4
|
|
62
|
+
end
|
|
63
|
+
#--------------------------------------------------------------------------
|
|
64
|
+
# * Get Maximum Number of Pages
|
|
65
|
+
#--------------------------------------------------------------------------
|
|
66
|
+
def page_max
|
|
67
|
+
($game_party.members.size + page_size - 1) / page_size
|
|
68
|
+
end
|
|
69
|
+
#--------------------------------------------------------------------------
|
|
70
|
+
# * Draw Actor Equipment Information
|
|
71
|
+
#--------------------------------------------------------------------------
|
|
72
|
+
def draw_actor_equip_info(x, y, actor)
|
|
73
|
+
enabled = actor.equippable?(@item)
|
|
74
|
+
change_color(normal_color, enabled)
|
|
75
|
+
draw_text(x, y, 112, line_height, actor.name)
|
|
76
|
+
item1 = current_equipped_item(actor, @item.etype_id)
|
|
77
|
+
draw_actor_param_change(x, y, actor, item1) if enabled
|
|
78
|
+
draw_item_name(item1, x, y + line_height, enabled)
|
|
79
|
+
end
|
|
80
|
+
#--------------------------------------------------------------------------
|
|
81
|
+
# * Draw Actor Parameter Change
|
|
82
|
+
#--------------------------------------------------------------------------
|
|
83
|
+
def draw_actor_param_change(x, y, actor, item1)
|
|
84
|
+
rect = Rect.new(x, y, contents.width - 4 - x, line_height)
|
|
85
|
+
change = @item.params[param_id] - (item1 ? item1.params[param_id] : 0)
|
|
86
|
+
change_color(param_change_color(change))
|
|
87
|
+
draw_text(rect, sprintf("%+d", change), 2)
|
|
88
|
+
end
|
|
89
|
+
#--------------------------------------------------------------------------
|
|
90
|
+
# * Get Parameter ID Corresponding to Selected Item
|
|
91
|
+
# By default, ATK if weapon and DEF if armor.
|
|
92
|
+
#--------------------------------------------------------------------------
|
|
93
|
+
def param_id
|
|
94
|
+
@item.is_a?(RPG::Weapon) ? 2 : 3
|
|
95
|
+
end
|
|
96
|
+
#--------------------------------------------------------------------------
|
|
97
|
+
# * Get Current Equipment
|
|
98
|
+
# Returns the weaker equipment if there is more than one of the same type,
|
|
99
|
+
# such as with dual wield.
|
|
100
|
+
#--------------------------------------------------------------------------
|
|
101
|
+
def current_equipped_item(actor, etype_id)
|
|
102
|
+
list = []
|
|
103
|
+
actor.equip_slots.each_with_index do |slot_etype_id, i|
|
|
104
|
+
list.push(actor.equips[i]) if slot_etype_id == etype_id
|
|
105
|
+
end
|
|
106
|
+
list.min_by {|item| item ? item.params[param_id] : 0 }
|
|
107
|
+
end
|
|
108
|
+
#--------------------------------------------------------------------------
|
|
109
|
+
# * Frame Update
|
|
110
|
+
#--------------------------------------------------------------------------
|
|
111
|
+
def update
|
|
112
|
+
super
|
|
113
|
+
update_page
|
|
114
|
+
end
|
|
115
|
+
#--------------------------------------------------------------------------
|
|
116
|
+
# * Update Page
|
|
117
|
+
#--------------------------------------------------------------------------
|
|
118
|
+
def update_page
|
|
119
|
+
if visible && Input.trigger?(:A) && page_max > 1
|
|
120
|
+
@page_index = (@page_index + 1) % page_max
|
|
121
|
+
refresh
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
end
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
#==============================================================================
|
|
2
|
+
# ** Window_SkillCommand
|
|
3
|
+
#------------------------------------------------------------------------------
|
|
4
|
+
# This window is for selecting commands (special attacks, magic, etc.) on the
|
|
5
|
+
# skill screen.
|
|
6
|
+
#==============================================================================
|
|
7
|
+
|
|
8
|
+
class Window_SkillCommand < Window_Command
|
|
9
|
+
#--------------------------------------------------------------------------
|
|
10
|
+
# * Public Instance Variables
|
|
11
|
+
#--------------------------------------------------------------------------
|
|
12
|
+
attr_reader :skill_window
|
|
13
|
+
#--------------------------------------------------------------------------
|
|
14
|
+
# * Object Initialization
|
|
15
|
+
#--------------------------------------------------------------------------
|
|
16
|
+
def initialize(x, y)
|
|
17
|
+
super(x, y)
|
|
18
|
+
@actor = nil
|
|
19
|
+
end
|
|
20
|
+
#--------------------------------------------------------------------------
|
|
21
|
+
# * Get Window Width
|
|
22
|
+
#--------------------------------------------------------------------------
|
|
23
|
+
def window_width
|
|
24
|
+
return 160
|
|
25
|
+
end
|
|
26
|
+
#--------------------------------------------------------------------------
|
|
27
|
+
# * Set Actor
|
|
28
|
+
#--------------------------------------------------------------------------
|
|
29
|
+
def actor=(actor)
|
|
30
|
+
return if @actor == actor
|
|
31
|
+
@actor = actor
|
|
32
|
+
refresh
|
|
33
|
+
select_last
|
|
34
|
+
end
|
|
35
|
+
#--------------------------------------------------------------------------
|
|
36
|
+
# * Get Number of Lines to Show
|
|
37
|
+
#--------------------------------------------------------------------------
|
|
38
|
+
def visible_line_number
|
|
39
|
+
return 4
|
|
40
|
+
end
|
|
41
|
+
#--------------------------------------------------------------------------
|
|
42
|
+
# * Create Command List
|
|
43
|
+
#--------------------------------------------------------------------------
|
|
44
|
+
def make_command_list
|
|
45
|
+
return unless @actor
|
|
46
|
+
@actor.added_skill_types.sort.each do |stype_id|
|
|
47
|
+
name = $data_system.skill_types[stype_id]
|
|
48
|
+
add_command(name, :skill, true, stype_id)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
#--------------------------------------------------------------------------
|
|
52
|
+
# * Frame Update
|
|
53
|
+
#--------------------------------------------------------------------------
|
|
54
|
+
def update
|
|
55
|
+
super
|
|
56
|
+
@skill_window.stype_id = current_ext if @skill_window
|
|
57
|
+
end
|
|
58
|
+
#--------------------------------------------------------------------------
|
|
59
|
+
# * Set Skill Window
|
|
60
|
+
#--------------------------------------------------------------------------
|
|
61
|
+
def skill_window=(skill_window)
|
|
62
|
+
@skill_window = skill_window
|
|
63
|
+
update
|
|
64
|
+
end
|
|
65
|
+
#--------------------------------------------------------------------------
|
|
66
|
+
# * Restore Previous Selection Position
|
|
67
|
+
#--------------------------------------------------------------------------
|
|
68
|
+
def select_last
|
|
69
|
+
skill = @actor.last_skill.object
|
|
70
|
+
if skill
|
|
71
|
+
select_ext(skill.stype_id)
|
|
72
|
+
else
|
|
73
|
+
select(0)
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|