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