| #============================================================================== | |
| # Currency Generator! | |
| # ---------------------------------------------------------------------------- | |
| # Version: 1.0.2 | |
| # Author: Kalacious (AKA: VindictivePersonality) | |
| # License: GPL 3.0 | |
| # | |
| # Changes 1.0.1 | |
| # ---------------------------------------------------------------------------- | |
| # ---> Fixed issue with windows. | |
| # ---> Now a default part of the menu as the last option. | |
| # (see bottom of header for more info.) | |
| # | |
| # Changes 1.0.2 | |
| # ---------------------------------------------------------------------------- | |
| # ---> Aligned text in the description window. | |
| # ---> You can now have a bit more of a discription. | |
| # | |
| # Compatibillity Issues | |
| # ---------------------------------------------------------------------------- | |
| # | |
| # There should be NO compatibillity issues what so ever. How ever if there are, | |
| # Please let me know. | |
| # | |
| # TOS | |
| # ---------------------------------------------------------------------------- | |
| # If you know the GPL version 3, you know the answer, but this still applies: | |
| # | |
| # Script for RGSS 3 ONLY adds abillity to generate currencies. | |
| # Copyright (C) 2013 Kalacious (AKA VindictivePersonality) | |
| # | |
| # This program is free software: you can redistribute it and/or modify | |
| # it under the terms of the GNU General Public License as published by | |
| # the Free Software Foundation, either version 3 of the License, or | |
| # (at your option) any later version. | |
| # | |
| # This program is distributed in the hope that it will be useful, | |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| # GNU General Public License for more details. | |
| # | |
| # You should have received a copy of the GNU General Public License | |
| # along with this program. If not, see <http://www.gnu.org/licenses/> | |
| # | |
| # | |
| #============================================================================== | |
| # | |
| # How to Use? | |
| # ----------- | |
| # | |
| # You have one main object for messing with currencies: $kc_currency, We will | |
| # get into what this object does and how to efectivly use it. | |
| # Lets talk about the module CURR and what thats all about: | |
| # | |
| # CURR::CURR_HASH | |
| # --------------- | |
| # | |
| # This hash will contain a key=>value{key=>value} type of hash (associative). | |
| # The top level key is the vocab, this is also called the currency symbol, | |
| # much like Gold's symbol is G, any key here should be the currency symbol. | |
| # | |
| # The value, contains specific keys with custom values. | |
| # That is each key inside the core value tells you more about the currency. | |
| # | |
| # Lets look at this as a high level over view: | |
| # | |
| # 'Currency Symbol' => { | |
| # :full_name => 'Whats the Full name?', | |
| # :icon => 0, #Icon index is? | |
| # :max => 9999, #Max value is what? | |
| # :description => 'Describe your currency in few words.', | |
| # #Example: Used for Legendary Mats. | |
| # :obtained => 'How is this obtained, few words.', | |
| # #Example: Guild Battles. | |
| # }, #Don't forget the comma :D | |
| # | |
| # | |
| # The next set of options you have are color options, these should be | |
| # pretty obvious as to what they do. | |
| # | |
| # So lets learn what we have to use, in terms of manipulating the currencies. | |
| # This is where the $kc_currency object is going to come in handy. When this object | |
| # is created we take the hash you created below and compact it into an array | |
| # of class objects that can then be picked apart. Lets do that now: | |
| # | |
| # $kc_currency Object | |
| # --------------- | |
| # | |
| # $kc_currency.create ---> Dont call me, or try not to, | |
| # why create the array of class | |
| # objects again and again? | |
| # | |
| # $kc_currency.currencies ---> Returns that array of currency | |
| # objects. | |
| # | |
| # $kc_currency.exists?(curr_vocab) ---> Does this currency exist? | |
| # | |
| # | |
| # $kc_currency.currency(curr_vocab) ---> Get ONE currency object out of | |
| # the array of curencies. | |
| # | |
| # $kc_currency.increase(curr_vocab, value) ---> Increase the value of ONE currency. | |
| # | |
| # $kc_currency.decrease(curr_vocab, value) ---> Decrease the value of ONE currency. | |
| # | |
| # $kc_currency.set(curr_vocab, value) ---> Be careful! This will OVERIDE any | |
| # value already set and set it with | |
| # this new one. | |
| # | |
| # $kc_currency.value(curr_vocab) ---> Get the value of this particular | |
| # currency. | |
| # | |
| # $kc_currency.delete(curr_vocab) ---> Delete this currency from the | |
| # array of currencies based on the | |
| # name. | |
| # | |
| # | |
| # So we have managed to create some currencies and manipulate individaul | |
| # currencies based on the the methods we have. But what about the actuall | |
| # object? The class object that contains the values of that array? what if I | |
| # want to print the name of a specific currency? | |
| # | |
| # Create_CurrencyObject | |
| # --------------------- | |
| # | |
| # There isn't anything in this class you would touch, accpet the abillity | |
| # to get information on a particular object: | |
| # | |
| # curr_sym ---> The currency symbol. | |
| # | |
| # full_name ---> The actual full name. | |
| # | |
| # icon ---> The icon index. | |
| # | |
| # max ---> The maximum value this currency can be. | |
| # | |
| # description --> The SHORT description of the currency. | |
| # | |
| # obtained ---> The SHORT description of how it's obtained. | |
| # | |
| # So now that we have this, what if we want GC's (from the example below) | |
| # full name? Well that's easy: | |
| # | |
| # $kc_currency.currency('GC').full_name #puts: Guild Currency | |
| # | |
| # Now that we have created the currencies, manipulate them and pulled | |
| # individual pieces of information from the objects, based on the name | |
| # lets call the window, lets open it. How do we do that? | |
| # | |
| # Opening! | |
| # -------- | |
| # | |
| # There are a couple of ways to do this, one is to call: call_currencies. | |
| # How ever by default what we did was enable this in the menu. This will | |
| # Display as the very LAST option in the menu. | |
| # | |
| # If you are using scripts that alter or change the menu you have the added | |
| # bonus of the new method call: add_currency_command which will allow you | |
| # to place the command in the menu list. | |
| # | |
| # In order for the second part to work you need to set: CURR::SHOW_IN_MENU | |
| # to false, this wills top the currency option from showing in the menu. | |
| # | |
| #============================================================================== | |
| # ** CURR | |
| #------------------------------------------------------------------------------ | |
| # This is your customization module where you give your new currency a name | |
| # and set it's max value. | |
| # ---------------------------------------------------------------------------- | |
| #============================================================================== | |
| module CURR | |
| #-------------------------------------------------------------------------- | |
| # * Currency hash object created. The vocab here is the key, where | |
| # as the value is a hash of key=>value that defines the currency. | |
| #-------------------------------------------------------------------------- | |
| CURR_HASH = { | |
| 'GC' => { | |
| :full_name => 'Guild Coin', | |
| :icon => 330, | |
| :max => 9999, | |
| :description => 'Used for Ascended.', | |
| :obtained => 'Guild Battles' | |
| }, | |
| 'RT' => { | |
| :full_name => 'Resource Token', | |
| :icon => 278, | |
| :max => 9999, | |
| :description => 'Used for crafting.', | |
| :obtained => 'Jobs' | |
| }, | |
| 'CC' => { | |
| :full_name => 'Celestial Coin', | |
| :icon => 526, | |
| :max => 9999, | |
| :description => 'Used for Celestial gear.', | |
| :obtained => 'Celestial Rips' | |
| }, | |
| } | |
| COLOR_CURRENCY_NAME = 5 | |
| COLOR_CURRENCY_SYM = 5 | |
| COLOR_CURRENCY_OBTAINED = 2 | |
| COLOR_CURRENCY_DESCRIPT = 2 | |
| SHOW_IN_MENU = false | |
| end | |
| #============================================================================== | |
| # ** Game_Interpreter | |
| #------------------------------------------------------------------------------ | |
| # An interpreter for executing event commands. This class is used within the | |
| # Game_Map, Game_Troop, and Game_Event classes. | |
| #============================================================================== | |
| class Game_Interpreter | |
| #-------------------------------------------------------------------------- | |
| # * Call the currencies window. | |
| #-------------------------------------------------------------------------- | |
| def call_currencies | |
| SceneManager.call(Scene_Currencies) | |
| end | |
| end | |
| #============================================================================== | |
| # ** DataManager | |
| #------------------------------------------------------------------------------ | |
| # This module manages the database and game objects. Almost all of the | |
| # global variables used by the game are initialized by this module. | |
| #============================================================================== | |
| class << DataManager | |
| #-------------------------------------------------------------------------- | |
| # * Create Game Objects. | |
| #-------------------------------------------------------------------------- | |
| alias kalacious_currency_game_objects create_game_objects | |
| def create_game_objects | |
| kalacious_currency_game_objects | |
| $kc_currency = Game_Currency.new | |
| end | |
| end | |
| #============================================================================== | |
| # ** Crate_CurrencyObject | |
| #------------------------------------------------------------------------------ | |
| # Creates a new currency object based on the information passed in. | |
| #============================================================================== | |
| class Create_CurrencyObject | |
| attr_reader :curr_sym | |
| attr_reader :full_name | |
| attr_reader :icon | |
| attr_reader :max | |
| attr_reader :description | |
| attr_reader :obtained | |
| attr_accessor :value | |
| #-------------------------------------------------------------------------- | |
| # * Create the object. | |
| #-------------------------------------------------------------------------- | |
| def initialize(curr_sym, full_name, icon, max, description, | |
| obtained, value = 0) | |
| @curr_sym = curr_sym | |
| @full_name = full_name | |
| @icon = icon | |
| @max = max | |
| @description = description | |
| @obtained = obtained | |
| @value = value | |
| end | |
| end | |
| #============================================================================== | |
| # ** Game_Currency | |
| #------------------------------------------------------------------------------ | |
| # This class is designed to manipulate the currency object based on the | |
| # current currency that your looking to manipulate. | |
| #============================================================================== | |
| class Game_Currency | |
| attr_reader :currency | |
| #-------------------------------------------------------------------------- | |
| # * Create the currency object for manipulation. | |
| #-------------------------------------------------------------------------- | |
| def initialize | |
| @currencies = [] | |
| create | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Create the actuall currency object. | |
| #-------------------------------------------------------------------------- | |
| def create | |
| CURR::CURR_HASH.each do |key, value| | |
| currency = Create_CurrencyObject.new(key, value[:full_name], value[:icon], | |
| value[:max], value[:description], value[:obtained], 0) | |
| @currencies.push(currency) | |
| end | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Return the array of currencies. | |
| #-------------------------------------------------------------------------- | |
| def currencies | |
| @currencies | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Grab one currency object based on the vocab passed in. | |
| #-------------------------------------------------------------------------- | |
| def currency(curr_vocab) | |
| if @currencies.any? | |
| @currencies.each do |currency| | |
| if currency.curr_sym == curr_vocab | |
| return currency | |
| end | |
| end | |
| end | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Does said currency exist? | |
| #-------------------------------------------------------------------------- | |
| def exists?(curr_vocab) | |
| if @currencies.any? | |
| @currencies.each do |currency| | |
| if currency.curr_sym == curr_vocab | |
| return true | |
| end | |
| end | |
| end | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Increase one particular currency in the list of currencies by a | |
| # value. | |
| #-------------------------------------------------------------------------- | |
| def increase(curr_vocab, value) | |
| if @currencies.any? | |
| @currencies.each do |currency| | |
| if currency.curr_sym == curr_vocab | |
| currency.value = [[currency.value + value, 0].max, currency.max].min | |
| end | |
| end | |
| end | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Decrease one particular currency in the list of currencies by a | |
| # value. | |
| #-------------------------------------------------------------------------- | |
| def decrease(curr_vocab, value) | |
| if @currencies.any? | |
| @currencies.each do |currency| | |
| if currency.curr_sym == curr_vocab | |
| increase(curr_vocab, -value) | |
| end | |
| end | |
| end | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Set on particular currency to a specific value. | |
| #-------------------------------------------------------------------------- | |
| def set(curr_vocab, value) | |
| if @currencies.any? | |
| @currencies.each do |currency| | |
| if currency.curr_sym == curr_vocab | |
| currency.value = [[value, 0].max, currency.max].min | |
| end | |
| end | |
| end | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Get the value of curreny passed in. | |
| #-------------------------------------------------------------------------- | |
| def value(curr_vocab) | |
| if @currencies.any? | |
| @currencies.each do |currency| | |
| if currency.curr_sym == curr_vocab | |
| return currency.value | |
| end | |
| end | |
| end | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Delete a currency based on the name. | |
| #-------------------------------------------------------------------------- | |
| def delete(curr_vocab) | |
| @currencies.delete_if {|x, *_| x == curr_vocab } | |
| end | |
| end | |
| #============================================================================== | |
| # ** List_Currencies_Window | |
| #------------------------------------------------------------------------------ | |
| # Creates the currencies list window. | |
| #============================================================================== | |
| class List_Currencies_Window < Window_Selectable | |
| #-------------------------------------------------------------------------- | |
| # * Create the currencies window and associated data. | |
| #-------------------------------------------------------------------------- | |
| def initialize(x, y, width, height) | |
| super | |
| @data = [] | |
| activate | |
| refresh | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Max columns. | |
| #-------------------------------------------------------------------------- | |
| def col_max | |
| return 1 | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Item max. | |
| #-------------------------------------------------------------------------- | |
| def item_max | |
| @data ? @data.size : 1 | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Set the enabled state to true. | |
| #-------------------------------------------------------------------------- | |
| def enable?(item) | |
| true | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Return the item. | |
| #-------------------------------------------------------------------------- | |
| def item | |
| @data && index >= 0 ? @data[index] : nil | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Draw the item based on the index passed in. | |
| #-------------------------------------------------------------------------- | |
| def draw_item(index) | |
| currency = @data[index] | |
| if currency | |
| rect = item_rect_for_text(index) | |
| draw_icon(currency.icon, rect.x + 40, rect.y, enable?(currency)) | |
| rect.x += 24 | |
| rect.width -= 24 | |
| draw_text(rect, currency.value.to_s) | |
| end | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Grab all currencies to populate the data object. | |
| #-------------------------------------------------------------------------- | |
| def make_item_list | |
| @data = $kc_currency.currencies | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Baseic Refresh. | |
| #-------------------------------------------------------------------------- | |
| def refresh | |
| make_item_list | |
| create_contents | |
| draw_all_items | |
| end | |
| end | |
| #============================================================================== | |
| # ** Currency_Description_Window | |
| #------------------------------------------------------------------------------ | |
| # Creates the currencies list window. | |
| #============================================================================== | |
| class Currency_Description_Window < Window_Base | |
| def initialize(x, y, width, height) | |
| super | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Create the window. | |
| #-------------------------------------------------------------------------- | |
| def data=(index) | |
| return if @content == index | |
| @content = index | |
| refresh | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Create new draw_text method. | |
| #-------------------------------------------------------------------------- | |
| def draw_text(x, y, text_width, text_height, text, alignment = 0) | |
| contents.draw_text(x, y, text_width, text_height, text, alignment = 0) | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Allow text to be both sized and colored. | |
| #-------------------------------------------------------------------------- | |
| def size(x, y, text_width, text_height, text, size, color = 0, alignment = 0) | |
| currentsize = self.contents.font.dup | |
| contents.font.size = size | |
| contents.font.color.set(text_color(color)) | |
| draw_text(x, y, text_width, text_height, text, alignment = 0) | |
| self.contents.font = currentsize | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Allow text to have its color changed. | |
| #-------------------------------------------------------------------------- | |
| def color(x, y, tw, th, text, color, alignement = 0) | |
| currentcolor = self.contents.font.dup | |
| contents.font.color.set(text_color(color)) | |
| draw_text(x, y, tw, th, text, alignment = 0) | |
| self.contents.font = currentcolor | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Call this method directorly when creating the window. Will draw | |
| # all the contents in the widnow based on the @content object. | |
| #-------------------------------------------------------------------------- | |
| def draw_contents | |
| refresh | |
| draw_main_title | |
| draw_currency_title | |
| draw_currency_name | |
| draw_currency_sym_title | |
| draw_currency_sym | |
| draw_obtained_title | |
| draw_obtained | |
| draw_icon_title | |
| draw_currency_icon | |
| draw_currency_description_title | |
| draw_currency_description | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Draw the main title. | |
| #-------------------------------------------------------------------------- | |
| def draw_main_title | |
| size(width/2 - 110, 0, 220, 50, "Currency Description", 40, ) | |
| size(width/2 - 130, 30, 275, 50, "Pick a currency to view information.", | |
| 18, 3) | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Draw the currency title. | |
| #-------------------------------------------------------------------------- | |
| def draw_currency_title | |
| text = "Currency: " | |
| draw_text(20, 60, text.length + 275, 50, text) | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Draw the currency name. | |
| #-------------------------------------------------------------------------- | |
| def draw_currency_name | |
| text = @content.full_name | |
| color(175, 60, text.length + 200, 50, text, CURR::COLOR_CURRENCY_NAME) | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Draw currency symbol title. | |
| #-------------------------------------------------------------------------- | |
| def draw_currency_sym_title | |
| text = "Currency Symbol: " | |
| draw_text(20, 90, text.length + 275, 50, text) | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Draw the currency symbol. | |
| #-------------------------------------------------------------------------- | |
| def draw_currency_sym | |
| text = @content.curr_sym | |
| color(175, 90, text.length + 200, 50, text, CURR::COLOR_CURRENCY_SYM) | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Draw the icon title. | |
| #-------------------------------------------------------------------------- | |
| def draw_icon_title | |
| text = "Universial Symbol: " | |
| draw_text(20, 120, text.length + 250, 50, text) | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Draw the actual icon. | |
| #-------------------------------------------------------------------------- | |
| def draw_currency_icon | |
| draw_icon(@content.icon, 175, 134) | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Draw the obtained title. | |
| #-------------------------------------------------------------------------- | |
| def draw_obtained_title | |
| text = "Obtained?: " | |
| draw_text(20, 150, text.length + 275, 50, text) | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Draw the obtained. | |
| #-------------------------------------------------------------------------- | |
| def draw_obtained | |
| text = @content.obtained | |
| color(175, 150, text.length + 200, 50, text, CURR::COLOR_CURRENCY_OBTAINED) | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Draw the currency description title. | |
| #-------------------------------------------------------------------------- | |
| def draw_currency_description_title | |
| text = "Currency Description: " | |
| draw_text(20, 180, text.length + 375, 50, text) | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Draw the currency description. | |
| #-------------------------------------------------------------------------- | |
| def draw_currency_description | |
| text = @content.description | |
| color(40, 220, text.length + 400, 50, text, CURR::COLOR_CURRENCY_DESCRIPT) | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Typical refresh. | |
| #-------------------------------------------------------------------------- | |
| def refresh | |
| contents.clear | |
| create_contents | |
| return if @content | |
| end | |
| end | |
| #============================================================================== | |
| # ** Window_Command | |
| #------------------------------------------------------------------------------ | |
| # This window deals with general command choices. | |
| #============================================================================== | |
| class Window_MenuCommand < Window_Command | |
| #-------------------------------------------------------------------------- | |
| # ● Add the command | |
| #-------------------------------------------------------------------------- | |
| alias make_kc_command_window_list make_command_list | |
| def make_command_list | |
| make_kc_command_window_list | |
| if CURR::SHOW_IN_MENU | |
| add_currency_command | |
| end | |
| end | |
| #-------------------------------------------------------------------------- | |
| # ○ Add said command | |
| #-------------------------------------------------------------------------- | |
| def add_currency_command | |
| add_command("Currency", :currency_command, true) | |
| end | |
| end | |
| #============================================================================== | |
| # ** Scene_Menu | |
| #------------------------------------------------------------------------------ | |
| # This class performs the menu screen processing. | |
| #============================================================================== | |
| class Scene_Menu < Scene_MenuBase | |
| #-------------------------------------------------------------------------- | |
| # ● Suppose to create the currency command. | |
| #-------------------------------------------------------------------------- | |
| alias kc_create_currency_command create_command_window | |
| def create_command_window | |
| kc_create_currency_command | |
| @command_window.set_handler(:currency_command, method(:command_personal)) | |
| end | |
| #-------------------------------------------------------------------------- | |
| # ○ Suppoose to call the currency scene. | |
| #-------------------------------------------------------------------------- | |
| def command_call_currency_window | |
| SceneManager.call(Scene_Currencies) | |
| end | |
| #-------------------------------------------------------------------------- | |
| # ● Suppose to do something when you select and hit enter. | |
| #-------------------------------------------------------------------------- | |
| alias kc_on_personal_ok_currencies on_personal_ok | |
| def on_personal_ok | |
| kc_on_personal_ok_currencies | |
| if @command_window.current_symbol == :currency_command | |
| command_call_currency_window | |
| end | |
| end | |
| end | |
| #============================================================================== | |
| # ** Scene_Currencies | |
| #------------------------------------------------------------------------------ | |
| # Creates a new scene that is then called via the script call. | |
| #============================================================================== | |
| class Scene_Currencies < Scene_MenuBase | |
| #-------------------------------------------------------------------------- | |
| # * Start the scene. | |
| #-------------------------------------------------------------------------- | |
| def start | |
| super | |
| create_currencies_window | |
| create_description_window | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Create the currencies window. | |
| #-------------------------------------------------------------------------- | |
| def create_currencies_window | |
| width = 100 | |
| height = Graphics.height - 100 | |
| @currency_list = List_Currencies_Window.new(60, 50, width, height) | |
| @currency_list.select(0) | |
| @currency_list.viewport = @viewport | |
| @currency_list.set_handler(:ok, method(:on_item_ok)) | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Create the desciption window. | |
| #-------------------------------------------------------------------------- | |
| def create_description_window | |
| @currency_description = Currency_Description_Window.new(@currency_list.width + 60, | |
| 50, Graphics.width - @currency_list.width - 100, Graphics.height - 100) | |
| @currency_description.draw_main_title | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * When you select a currencie we will pass the object from the currency | |
| # list over to the currency window. | |
| #-------------------------------------------------------------------------- | |
| def on_item_ok | |
| @currency_description.data = @currency_list.item | |
| @currency_description.draw_contents | |
| @currency_list.activate | |
| end | |
| #-------------------------------------------------------------------------- | |
| # * Do something when we hit esc. | |
| #-------------------------------------------------------------------------- | |
| def update | |
| super | |
| if Input.trigger?(:B) | |
| SceneManager.return | |
| end | |
| end | |
| end |