Class: Scene_ItemBase
- Inherits:
-
Scene_MenuBase
- Object
- Scene_Base
- Scene_MenuBase
- Scene_ItemBase
- Defined in:
- lib/rgss3_default_scripts/Scene_ItemBase.rb
Overview
** Scene_ItemBase
This class performs common processing for the item screen and skill screen.
Direct Known Subclasses
Instance Method Summary collapse
-
#activate_item_window ⇒ Object
————————————————————————– * Activate Item Window ————————————————————————–.
-
#check_common_event ⇒ Object
————————————————————————– * Determine if Common Event Is Reserved Transition to the map screen if the event call is reserved.
-
#create_actor_window ⇒ Object
————————————————————————– * Create Actor Window ————————————————————————–.
-
#cursor_left? ⇒ Boolean
————————————————————————– * Determine if Cursor Is in Left Column ————————————————————————–.
-
#determine_item ⇒ Object
————————————————————————– * Confirm Item ————————————————————————–.
-
#hide_sub_window(window) ⇒ Object
————————————————————————– * Hide Subwindow ————————————————————————–.
-
#item ⇒ Object
————————————————————————– * Get Currently Selected Item ————————————————————————–.
-
#item_effects_valid? ⇒ Boolean
————————————————————————– * Determine if Item Is Effective ————————————————————————–.
-
#item_target_actors ⇒ Object
————————————————————————– * Get Array of Actors Targeted by Item Use ————————————————————————–.
-
#item_usable? ⇒ Boolean
————————————————————————– * Determine if Item is Usable ————————————————————————–.
-
#on_actor_cancel ⇒ Object
————————————————————————– * Actor [Cancel] ————————————————————————–.
-
#on_actor_ok ⇒ Object
————————————————————————– * Actor [OK] ————————————————————————–.
-
#show_sub_window(window) ⇒ Object
————————————————————————– * Show Subwindow ————————————————————————–.
-
#start ⇒ Object
————————————————————————– * Start Processing ————————————————————————–.
-
#use_item ⇒ Object
————————————————————————– * Use Item ————————————————————————–.
-
#use_item_to_actors ⇒ Object
————————————————————————– * Use Item on Actor ————————————————————————–.
-
#user ⇒ Object
————————————————————————– * Get Item’s User ————————————————————————–.
Methods inherited from Scene_MenuBase
#create_background, #create_help_window, #dispose_background, #next_actor, #on_actor_change, #prev_actor, #terminate
Methods inherited from Scene_Base
#check_gameover, #create_main_viewport, #dispose_all_windows, #dispose_main_viewport, #fadeout_all, #main, #perform_transition, #post_start, #pre_terminate, #return_scene, #scene_changing?, #terminate, #transition_speed, #update, #update_all_windows, #update_basic
Instance Method Details
#activate_item_window ⇒ Object
-
Activate Item Window
91 92 93 94 |
# File 'lib/rgss3_default_scripts/Scene_ItemBase.rb', line 91 def activate_item_window @item_window.refresh @item_window.activate end |
#check_common_event ⇒ Object
-
Determine if Common Event Is Reserved
Transition to the map screen if the event call is reserved.
144 145 146 |
# File 'lib/rgss3_default_scripts/Scene_ItemBase.rb', line 144 def check_common_event SceneManager.goto(Scene_Map) if $game_temp.common_event_reserved? end |
#create_actor_window ⇒ Object
-
Create Actor Window
18 19 20 21 22 |
# File 'lib/rgss3_default_scripts/Scene_ItemBase.rb', line 18 def create_actor_window @actor_window = Window_MenuActor.new @actor_window.set_handler(:ok, method(:on_actor_ok)) @actor_window.set_handler(:cancel, method(:on_actor_cancel)) end |
#cursor_left? ⇒ Boolean
-
Determine if Cursor Is in Left Column
38 39 40 |
# File 'lib/rgss3_default_scripts/Scene_ItemBase.rb', line 38 def cursor_left? @item_window.index % 2 == 0 end |
#determine_item ⇒ Object
-
Confirm Item
79 80 81 82 83 84 85 86 87 |
# File 'lib/rgss3_default_scripts/Scene_ItemBase.rb', line 79 def determine_item if item.for_friend? show_sub_window(@actor_window) @actor_window.select_for_item(item) else use_item activate_item_window end end |
#hide_sub_window(window) ⇒ Object
-
Hide Subwindow
54 55 56 57 58 59 |
# File 'lib/rgss3_default_scripts/Scene_ItemBase.rb', line 54 def hide_sub_window(window) @viewport.rect.x = @viewport.ox = 0 @viewport.rect.width = Graphics.width window.hide.deactivate activate_item_window end |
#item ⇒ Object
-
Get Currently Selected Item
26 27 28 |
# File 'lib/rgss3_default_scripts/Scene_ItemBase.rb', line 26 def item @item_window.item end |
#item_effects_valid? ⇒ Boolean
-
Determine if Item Is Effective
116 117 118 119 120 |
# File 'lib/rgss3_default_scripts/Scene_ItemBase.rb', line 116 def item_effects_valid? item_target_actors.any? do |target| target.item_test(user, item) end end |
#item_target_actors ⇒ Object
-
Get Array of Actors Targeted by Item Use
98 99 100 101 102 103 104 105 106 |
# File 'lib/rgss3_default_scripts/Scene_ItemBase.rb', line 98 def item_target_actors if !item.for_friend? [] elsif item.for_all? $game_party.members else [$game_party.members[@actor_window.index]] end end |
#item_usable? ⇒ Boolean
-
Determine if Item is Usable
110 111 112 |
# File 'lib/rgss3_default_scripts/Scene_ItemBase.rb', line 110 def item_usable? user.usable?(item) && item_effects_valid? end |
#on_actor_cancel ⇒ Object
-
Actor [Cancel]
73 74 75 |
# File 'lib/rgss3_default_scripts/Scene_ItemBase.rb', line 73 def on_actor_cancel hide_sub_window(@actor_window) end |
#on_actor_ok ⇒ Object
-
Actor [OK]
63 64 65 66 67 68 69 |
# File 'lib/rgss3_default_scripts/Scene_ItemBase.rb', line 63 def on_actor_ok if item_usable? use_item else Sound.play_buzzer end end |
#show_sub_window(window) ⇒ Object
-
Show Subwindow
44 45 46 47 48 49 50 |
# File 'lib/rgss3_default_scripts/Scene_ItemBase.rb', line 44 def show_sub_window(window) width_remain = Graphics.width - window.width window.x = cursor_left? ? width_remain : 0 @viewport.rect.x = @viewport.ox = cursor_left? ? 0 : window.width @viewport.rect.width = width_remain window.show.activate end |
#start ⇒ Object
-
Start Processing
11 12 13 14 |
# File 'lib/rgss3_default_scripts/Scene_ItemBase.rb', line 11 def start super create_actor_window end |
#use_item ⇒ Object
-
Use Item
132 133 134 135 136 137 138 139 |
# File 'lib/rgss3_default_scripts/Scene_ItemBase.rb', line 132 def use_item play_se_for_item user.use_item(item) use_item_to_actors check_common_event check_gameover @actor_window.refresh end |
#use_item_to_actors ⇒ Object
-
Use Item on Actor
124 125 126 127 128 |
# File 'lib/rgss3_default_scripts/Scene_ItemBase.rb', line 124 def use_item_to_actors item_target_actors.each do |target| item.repeats.times { target.item_apply(user, item) } end end |
#user ⇒ Object
-
Get Item’s User
32 33 34 |
# File 'lib/rgss3_default_scripts/Scene_ItemBase.rb', line 32 def user $game_party.movable_members.max_by {|member| member.pha } end |