rgss3_default_scripts 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/Gemfile +4 -0
  4. data/README.md +9 -0
  5. data/Rakefile +2 -0
  6. data/lib/rgss3_default_scripts.rb +109 -0
  7. data/lib/rgss3_default_scripts/BattleManager.rb +392 -0
  8. data/lib/rgss3_default_scripts/Cache.rb +134 -0
  9. data/lib/rgss3_default_scripts/DataManager.rb +267 -0
  10. data/lib/rgss3_default_scripts/Game_Action.rb +262 -0
  11. data/lib/rgss3_default_scripts/Game_ActionResult.rb +159 -0
  12. data/lib/rgss3_default_scripts/Game_Actor.rb +696 -0
  13. data/lib/rgss3_default_scripts/Game_Actors.rb +22 -0
  14. data/lib/rgss3_default_scripts/Game_BaseItem.rb +51 -0
  15. data/lib/rgss3_default_scripts/Game_Battler.rb +824 -0
  16. data/lib/rgss3_default_scripts/Game_BattlerBase.rb +731 -0
  17. data/lib/rgss3_default_scripts/Game_Character.rb +396 -0
  18. data/lib/rgss3_default_scripts/Game_CharacterBase.rb +443 -0
  19. data/lib/rgss3_default_scripts/Game_CommonEvent.rb +41 -0
  20. data/lib/rgss3_default_scripts/Game_Enemy.rb +264 -0
  21. data/lib/rgss3_default_scripts/Game_Event.rb +308 -0
  22. data/lib/rgss3_default_scripts/Game_Follower.rb +74 -0
  23. data/lib/rgss3_default_scripts/Game_Followers.rb +112 -0
  24. data/lib/rgss3_default_scripts/Game_Interpreter.rb +1413 -0
  25. data/lib/rgss3_default_scripts/Game_Map.rb +704 -0
  26. data/lib/rgss3_default_scripts/Game_Message.rb +101 -0
  27. data/lib/rgss3_default_scripts/Game_Party.rb +418 -0
  28. data/lib/rgss3_default_scripts/Game_Picture.rb +161 -0
  29. data/lib/rgss3_default_scripts/Game_Pictures.rb +28 -0
  30. data/lib/rgss3_default_scripts/Game_Player.rb +488 -0
  31. data/lib/rgss3_default_scripts/Game_Screen.rb +234 -0
  32. data/lib/rgss3_default_scripts/Game_SelfSwitches.rb +35 -0
  33. data/lib/rgss3_default_scripts/Game_Switches.rb +35 -0
  34. data/lib/rgss3_default_scripts/Game_System.rb +122 -0
  35. data/lib/rgss3_default_scripts/Game_Temp.rb +45 -0
  36. data/lib/rgss3_default_scripts/Game_Timer.rb +56 -0
  37. data/lib/rgss3_default_scripts/Game_Troop.rb +205 -0
  38. data/lib/rgss3_default_scripts/Game_Unit.rb +131 -0
  39. data/lib/rgss3_default_scripts/Game_Variables.rb +34 -0
  40. data/lib/rgss3_default_scripts/Game_Vehicle.rb +193 -0
  41. data/lib/rgss3_default_scripts/SceneManager.rb +94 -0
  42. data/lib/rgss3_default_scripts/Scene_Base.rb +132 -0
  43. data/lib/rgss3_default_scripts/Scene_Battle.rb +693 -0
  44. data/lib/rgss3_default_scripts/Scene_Debug.rb +87 -0
  45. data/lib/rgss3_default_scripts/Scene_End.rb +61 -0
  46. data/lib/rgss3_default_scripts/Scene_Equip.rb +144 -0
  47. data/lib/rgss3_default_scripts/Scene_File.rb +203 -0
  48. data/lib/rgss3_default_scripts/Scene_Gameover.rb +85 -0
  49. data/lib/rgss3_default_scripts/Scene_Item.rb +75 -0
  50. data/lib/rgss3_default_scripts/Scene_ItemBase.rb +147 -0
  51. data/lib/rgss3_default_scripts/Scene_Load.rb +40 -0
  52. data/lib/rgss3_default_scripts/Scene_Map.rb +276 -0
  53. data/lib/rgss3_default_scripts/Scene_Menu.rb +127 -0
  54. data/lib/rgss3_default_scripts/Scene_MenuBase.rb +63 -0
  55. data/lib/rgss3_default_scripts/Scene_Name.rb +32 -0
  56. data/lib/rgss3_default_scripts/Scene_Save.rb +38 -0
  57. data/lib/rgss3_default_scripts/Scene_Shop.rb +299 -0
  58. data/lib/rgss3_default_scripts/Scene_Skill.rb +108 -0
  59. data/lib/rgss3_default_scripts/Scene_Status.rb +25 -0
  60. data/lib/rgss3_default_scripts/Scene_Title.rb +137 -0
  61. data/lib/rgss3_default_scripts/Sound.rb +135 -0
  62. data/lib/rgss3_default_scripts/Sprite_Base.rb +232 -0
  63. data/lib/rgss3_default_scripts/Sprite_Battler.rb +231 -0
  64. data/lib/rgss3_default_scripts/Sprite_Character.rb +226 -0
  65. data/lib/rgss3_default_scripts/Sprite_Picture.rb +82 -0
  66. data/lib/rgss3_default_scripts/Sprite_Timer.rb +77 -0
  67. data/lib/rgss3_default_scripts/Spriteset_Battle.rb +389 -0
  68. data/lib/rgss3_default_scripts/Spriteset_Map.rb +273 -0
  69. data/lib/rgss3_default_scripts/Spriteset_Weather.rb +184 -0
  70. data/lib/rgss3_default_scripts/Vocab.rb +145 -0
  71. data/lib/rgss3_default_scripts/Window_ActorCommand.rb +78 -0
  72. data/lib/rgss3_default_scripts/Window_Base.rb +571 -0
  73. data/lib/rgss3_default_scripts/Window_BattleActor.rb +38 -0
  74. data/lib/rgss3_default_scripts/Window_BattleEnemy.rb +70 -0
  75. data/lib/rgss3_default_scripts/Window_BattleItem.rb +40 -0
  76. data/lib/rgss3_default_scripts/Window_BattleLog.rb +425 -0
  77. data/lib/rgss3_default_scripts/Window_BattleSkill.rb +34 -0
  78. data/lib/rgss3_default_scripts/Window_BattleStatus.rb +111 -0
  79. data/lib/rgss3_default_scripts/Window_ChoiceList.rb +88 -0
  80. data/lib/rgss3_default_scripts/Window_Command.rb +152 -0
  81. data/lib/rgss3_default_scripts/Window_DebugLeft.rb +104 -0
  82. data/lib/rgss3_default_scripts/Window_DebugRight.rb +119 -0
  83. data/lib/rgss3_default_scripts/Window_EquipCommand.rb +36 -0
  84. data/lib/rgss3_default_scripts/Window_EquipItem.rb +78 -0
  85. data/lib/rgss3_default_scripts/Window_EquipSlot.rb +111 -0
  86. data/lib/rgss3_default_scripts/Window_EquipStatus.rb +97 -0
  87. data/lib/rgss3_default_scripts/Window_GameEnd.rb +38 -0
  88. data/lib/rgss3_default_scripts/Window_Gold.rb +47 -0
  89. data/lib/rgss3_default_scripts/Window_Help.rb +43 -0
  90. data/lib/rgss3_default_scripts/Window_HorzCommand.rb +106 -0
  91. data/lib/rgss3_default_scripts/Window_ItemCategory.rb +54 -0
  92. data/lib/rgss3_default_scripts/Window_ItemList.rb +117 -0
  93. data/lib/rgss3_default_scripts/Window_KeyItem.rb +55 -0
  94. data/lib/rgss3_default_scripts/Window_MapName.rb +96 -0
  95. data/lib/rgss3_default_scripts/Window_MenuActor.rb +43 -0
  96. data/lib/rgss3_default_scripts/Window_MenuCommand.rb +106 -0
  97. data/lib/rgss3_default_scripts/Window_MenuStatus.rb +85 -0
  98. data/lib/rgss3_default_scripts/Window_Message.rb +397 -0
  99. data/lib/rgss3_default_scripts/Window_NameEdit.rb +129 -0
  100. data/lib/rgss3_default_scripts/Window_NameInput.rb +253 -0
  101. data/lib/rgss3_default_scripts/Window_NumberInput.rb +148 -0
  102. data/lib/rgss3_default_scripts/Window_PartyCommand.rb +47 -0
  103. data/lib/rgss3_default_scripts/Window_SaveFile.rb +69 -0
  104. data/lib/rgss3_default_scripts/Window_ScrollText.rb +90 -0
  105. data/lib/rgss3_default_scripts/Window_Selectable.rb +442 -0
  106. data/lib/rgss3_default_scripts/Window_ShopBuy.rb +115 -0
  107. data/lib/rgss3_default_scripts/Window_ShopCommand.rb +36 -0
  108. data/lib/rgss3_default_scripts/Window_ShopNumber.rb +137 -0
  109. data/lib/rgss3_default_scripts/Window_ShopSell.rb +27 -0
  110. data/lib/rgss3_default_scripts/Window_ShopStatus.rb +124 -0
  111. data/lib/rgss3_default_scripts/Window_SkillCommand.rb +76 -0
  112. data/lib/rgss3_default_scripts/Window_SkillList.rb +121 -0
  113. data/lib/rgss3_default_scripts/Window_SkillStatus.rb +38 -0
  114. data/lib/rgss3_default_scripts/Window_Status.rb +125 -0
  115. data/lib/rgss3_default_scripts/Window_TitleCommand.rb +45 -0
  116. data/rgss3_default_scripts.gemspec +23 -0
  117. metadata +186 -0
@@ -0,0 +1,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