roninator2 257 Posted February 24, 2021 Shop Stats v1.00 - VX Ace by Roninator2 Introduction A script made to recreate the Yanfly Ace shop Redux for VX. Features - Choose what values to display stats for the item selected for purchase - Specify how many lines to have/use for the window. Should be dependent on how many stats you have in the item and want to show the player. - Works for items and weapons and armour and key items - My testing shows it to be compatible with Yanfly Shop Options for VX Ace - Change icons as you see fit for your project How to Use Put below ▼ Materials and any shop scripts Images Spoiler Script Spoiler # ╔═════════════════════════════════════╦════════════════════╗ # ║ Title: Shop Scene Detail Stats ║ Version: 1.00 ║ # ║ Author: Roninator2 ║ ║ # ╠═════════════════════════════════════╬════════════════════╣ # ║ Function: ║ Date Created ║ # ║ Adjusts number window to show ╠════════════════════╣ # ║ equipment stats on two pages ║ 12 Feb 2021 ║ # ╚═════════════════════════════════════╩════════════════════╝ # ╔══════════════════════════════════════════════════════════╗ # ║ Requires: nil ║ # ╚══════════════════════════════════════════════════════════╝ # ╔══════════════════════════════════════════════════════════╗ # ║ Script provides the ability to see equipment stats, ║ # ║ for the item selected to purchase, before accepting. ║ # ║ Made to have two screens, can be adjusted to have only ║ # ║ one. Simply change the rows value. ║ # ║ Default resolution allows 11 rows per screen ║ # ║ So if you want to display lots of stats on your ║ # ║ equipmnent, you can use 33 to get three pages. ║ # ║ However all equipment will have three pages. ║ # ╚══════════════════════════════════════════════════════════╝ # ╔══════════════════════════════════════════════════════════╗ # ║ Updates: ║ # ║ 1.00 - 12 Feb 2021 - Script finished ║ # ║ 0.00 - 09 Feb 2021 - Script started ║ # ╚══════════════════════════════════════════════════════════╝ # ╔══════════════════════════════════════════════════════════╗ # ║ Terms of use: ║ # ║ Free for all RPG Maker uses ║ # ╚══════════════════════════════════════════════════════════╝ module R2_SHOP_STATS # Determine the number of lines the number window will have # Default of 22 provides two pages at default resolution # Instruct players to press L or R ( Q & W ) to switch pages ITEM_ROWS = 22 # adjust for data shown ITEMS_PER_PAGE = 11 # used to control the cursor # specify how many rows are on a page. Only controls the cursor # count how many rows show up. #------------------------------------------------------------------------ # PURCHASE WINDOW OPTIONS #------------------------------------------------------------------------ # The following determines the text displayed at the amount selection # screen. Change the information here accordingly. PURCHASE = "L < Page Purchase Page > R" # Title of purchasing information. COST_ICN = 361 # Icon of total cost. COST_TXT = "Total Cost" # Text for total cost. ITEM_STAT = "Item Info" # Text for item data. WPN_STAT = "Weapon Info" # Text for weapon data. ARM_STAT = "Armour Info" # Text for armour data. FONTSIZE = 20 # Use 18 or 20 # Font size used for data text. USE_SPACES = false # Attempt to separate section # Draw stats for items? ITEM_STATES = true # Show item states applied ITEM_BUFFS = true # Show item buffs added/removed ITEM_STATS = true # Show item stat additions ITEM_SKILL = true # Show skills learned from the item ITEM_STAT_HP_DAM = "HP Damage" # Text for item stats ITEM_STAT_MP_DAM = "MP Damage" # Text for item stats ITEM_STAT_HP_REC = "HP Recover" # Text for item stats ITEM_STAT_MP_REC = "MP Recover" # Text for item stats ITEM_STAT_HP_DRN = "HP Drain" # Text for item stats ITEM_STAT_MP_DRN = "MP Drain" # Text for item stats ITEM_DAM_TYPE = "Damage Type" # Text for item stats ITEM_ADD_BUFF = "Add Buff" # Text for item buffs ITEM_ADD_DEBUFF = "Add Debuff" # Text for item buffs ITEM_RM_BUFF = "Remove Buff" # Text for item buffs ITEM_RM_DEBUFF = "Remove Debuff" # Text for item buffs # text for when an item had effects that change the base stats R2_SHOP_STATS::ITEM_STAT_TEXT = "Change Base Stats" # text for when an item adds skills to the player R2_SHOP_STATS::ITEM_SKILL_ADD = "Skill(s) Learned" # text for when an equipment adds skills to the player R2_SHOP_STATS::EQUIP_SKILL_ADD = "Skill(s) Learned" TEXT_ADD_STATES = "States Added" # States added text TEXT_RM_STATES = "States Removed" # States removed text TEXT_SEAL_STATES = "Skill(s) Sealed" # States sealed text # This part defines the data used for item/equipment properties. HP_HEAL_TEXT = "HP Effect" # Text used for HP recovery. HP_HEAL_ICON = 128 # Icon used for HP recovery. MP_HEAL_TEXT = "MP Effect" # Text used for MP recovery. MP_HEAL_ICON = 202 # Icon used for MP recovery. ERASE_STATE = "Removes Status" # Text used for removing states. APPLY_STATE = "Applies Status" # Text used for applying states. PARAM_BOOST = "Raises %s" # Text used for parameter raising. SPELL_EFFECT = "Spell Effect" # Text used for spell effect items. SPELL_DAMAGE = "%d Base Dmg" # Text used for spell damage. SPELL_HEAL = "%d Base Heal" # Text used for spell healing. NO_EQ_STAT = "---" # Text used when no equip EQ_ELEMENT_W = "Apply Element" # Text used to represent equip elements. EQ_ELEMENT_A = "Guard Element" # Text used to represent equip elements. EQ_STATUS_W = "Apply Status" # Text used to represent equip states. EQ_STATUS_A = "Guard Status" # Text used to represent equip states. STATE_RESIST = "State Resist" # Text used to represent resist states. STATS_TEXT = "Item Parameters" # These are the general icons and text used for various aspects of new # shop windows. Used for items and equips alike. ICON_HP = 32 # Icon for MAXHP ICON_MP = 33 # Icon for MAXMP ICON_ATK = 34 # Icon for ATK ICON_DEF = 35 # Icon for DEF ICON_MAT = 36 # Icon for SPI ICON_MDF = 37 # Icon for AGI ICON_AGI = 38 # Icon for HIT ICON_LUK = 39 # Icon for EVA TEXT_HP = "HP" # Text for HP TEXT_MP = "MP" # Text for MP TEXT_TP = "TP" # Text for TP ICON_TP = 33 # Icon for TP # set to true to show ex paramaters in number window SHOW_EX_PARAM = true EXSTATS_TEXT = "Extra Parameters" SHOW_EXTEXT = true ICON_HIT = 184 # TEXT_HIT = "HIT" # ICON_EVA = 185 # TEXT_EVA = "EVA" # ICON_CRI = 186 # TEXT_CRI = "CRI" # ICON_CEV = 187 # TEXT_CEV = "CEV" # ICON_MEV = 188 # TEXT_MEV = "MEV" # ICON_MRF = 189 # TEXT_MRF = "MRF" # ICON_CNT = 190 # TEXT_CNT = "CNT" # ICON_HRG = 191 # TEXT_HRG = "HRG" # ICON_MRG = 192 # TEXT_MRG = "MRG" # ICON_TRG = 193 # TEXT_TRG = "TRG" # # set to true to show sp paramaters in number window SHOW_SP_PARAM = true SPSTATS_TEXT = "Special Parameters" SHOW_SPTEXT = true ICON_TGR = 368 # TEXT_TGR = "TGR" # ICON_GRD = 369 # TEXT_GRD = "GRD" # ICON_REC = 370 # TEXT_REC = "REC" # ICON_PHA = 371 # TEXT_PHA = "PHA" # ICON_MCR = 372 # TEXT_MCR = "MCR" # ICON_TCR = 373 # TEXT_TCR = "TCR" # ICON_PDR = 374 # TEXT_PDR = "PDR" # ICON_MDR = 375 # TEXT_MDR = "MDR" # ICON_FDR = 376 # TEXT_FDR = "FDR" # ICON_EXR = 377 # TEXT_EXR = "EXR" # # The following determines which elements can be shown in the elements # list. If an element is not included here, it is ignored. DRAW_ELEMENTS = true SHOWN_ELEMENTS ={ # Element ID => Icon ID 1 => 11, 2 => 16, 3 => 96, 4 => 97, 5 => 98, 6 => 99, 7 => 100, 8 => 101, 9 => 102, 10 => 103, } # Do not remove this. DRAW_STATES = true # Draw states applied to the weapon or armour EQUIP_SKILL = true # Show skills learned from weapon or armour EQUIP_SKILL_SEAL = true # Show skills sealed from weapon or armour EQUIP_DEBUFF = true # Show Debuff Rates # Text for stating a debuff rate is applied EQUIP_DEBUFF_TEXT = "Debuff Rate" EQUIP_ATTACK_STATE = true # Show attack states # Text for stating attack states are applied # Be sure no not have more than 3, otherwise the script will need changing EQUIP_ATTACK_STATE_TEXT = "Attack state(s)" EQUIP_ATTACK_SPEED = true # Show attack speed for item # Text for showing attack speed EQUIP_ATTACK_SPEED_TEXT = "Attack Speed" EQUIP_ATTACK_TIMES = true # Show attack times for item # Text for showing attack times value EQUIP_ATTACK_TIMES_TEXT = "Attack Times" EQUIP_ACTION_TIMES = true # Show action times for item # Text for showing action times EQUIP_ACTION_TIMES_TEXT = "Action Times" EQUIP_PARTY_ABILITY = true # Show if party gains an ability from item end class Scene_Shop < Scene_MenuBase alias r2_on_number_cancel_number_stats on_number_cancel def on_number_cancel @number_window.num_reset @number_window.cursor_pageup r2_on_number_cancel_number_stats end end #=============================================================================== # Window_ShopNumber #=============================================================================== class Window_ShopNumber < Window_Selectable alias r2_shop_number_stat_init initialize def initialize(x, y, height) @num_page = 0 r2_shop_number_stat_init(x, y, height) end #-------------------------------------------------------------------------- # overwrite refresh #-------------------------------------------------------------------------- def refresh dy = 0 sw = self.width - 32 contents.clear change_color(system_color) contents.font.size = Font.default_size draw_text(-10, dy, 300, 24, R2_SHOP_STATS::PURCHASE, 1) dy += 24 change_color(normal_color) draw_item_name(@item, 0, dy) draw_text(212, dy, 20, 24, "×") draw_text(218, dy, 50, 24, @number, 2) cursor_rect.set(207, dy, 64, 24) dy += 24 draw_icon(R2_SHOP_STATS::COST_ICN, 0, dy) draw_text(24, dy, sw-24, 24, R2_SHOP_STATS::COST_TXT) draw_currency_value(@price * @number, @currency_unit, 4, dy, 264) dy += 24 if @item.is_a?(RPG::Item) draw_text(0, dy, sw-24, 24, R2_SHOP_STATS::ITEM_STAT, 1) draw_item_stats(dy, sw) elsif @item.is_a?(RPG::Weapon) draw_text(0, dy, sw-24, 24, R2_SHOP_STATS::WPN_STAT, 1) draw_equip_stats(dy, sw) else draw_text(0, dy, sw-24, 24, R2_SHOP_STATS::ARM_STAT, 1) draw_equip_stats(dy, sw) end end def num_reset @num_page = 0 end #-------------------------------------------------------------------------- # overwrite cursor rect - set to size of purchase number #-------------------------------------------------------------------------- def update_cursor cursor_rect.set(207, 24, 64, 24) end #-------------------------------------------------------------------------- # overwrite item row - change in module above #-------------------------------------------------------------------------- def item_max return R2_SHOP_STATS::ITEM_ROWS end #-------------------------------------------------------------------------- # * Alias Cursor One Page Down - hides cursor #-------------------------------------------------------------------------- alias r2_cursor_pagedown_hide cursor_pagedown def cursor_pagedown r2_cursor_pagedown_hide @num_page = @num_page + 1 if @num_page > (R2_SHOP_STATS::ITEM_ROWS / R2_SHOP_STATS::ITEMS_PER_PAGE) - 1 @num_page = (R2_SHOP_STATS::ITEM_ROWS / R2_SHOP_STATS::ITEMS_PER_PAGE) - 1 end cursor_rect.set(0, 0, 0, 0) end #-------------------------------------------------------------------------- # * Alias Cursor One Page Up - shows cursor #-------------------------------------------------------------------------- def cursor_pageup @num_page = @num_page - 1 if top_row > 0 self.top_row -= page_row_max select([@index - page_item_max, 0].max) if @num_page == 0 end @num_page = 0 if @num_page < 0 update_cursor if @num_page == 0 end ########################################################################## #-------------------------------------------------------------------------- # draw_item_stats #-------------------------------------------------------------------------- ########################################################################## def draw_item_stats(dy, sw) dy += 24 if @item.damage.type != 0 case @item.damage.type when 1 text = R2_SHOP_STATS::ITEM_STAT_HP_DAM when 2 text = R2_SHOP_STATS::ITEM_STAT_MP_DAM when 3 text = R2_SHOP_STATS::ITEM_STAT_HP_REC when 4 text = R2_SHOP_STATS::ITEM_STAT_MP_REC when 5 text = R2_SHOP_STATS::ITEM_STAT_HP_DRN when 6 text = R2_SHOP_STATS::ITEM_STAT_MP_REC end change_color(system_color) draw_text(0, dy, sw-24, 24, R2_SHOP_STATS::ITEM_DAM_TYPE, 0) contents.font.size = R2_SHOP_STATS::FONTSIZE change_color(normal_color) draw_text(130, dy + 2, sw/2-24, 24, text, 0) if @item.damage.element_id != 0 if @item.damage.element_id != -1 draw_icon(R2_SHOP_STATS::SHOWN_ELEMENTS[@item.damage.element_id], 250, dy, 2) end end dy += 24 if R2_SHOP_STATS::USE_SPACES end count = 0 dy += 24 if R2_SHOP_STATS::USE_SPACES @item.effects.each do |set| case set.code when 11 #---HP--- count += 1 word = R2_SHOP_STATS::TEXT_HP icon = R2_SHOP_STATS::ICON_HP when 12 #---MP--- count += 1 word = R2_SHOP_STATS::TEXT_MP icon = R2_SHOP_STATS::ICON_MP when 13 #---TP--- count += 1 word = R2_SHOP_STATS::TEXT_TP icon = R2_SHOP_STATS::ICON_TP else next end num1 = 0 num2 = 0 if set.value1 != 0 num1 = set.value1 num1 = (num1 * 100).to_i end if set.value2 != 0 num2 = set.value2.to_i end if num1 != 0 && num2 != 0 text1 = sprintf("%d", num1) text2 = sprintf("%d", num2) text = "+" + text2 + " & " + text1 + "%" elsif num1 != 0 && set.code == 13 text = sprintf("%d", num1) text = "+" + text elsif num1 != 0 && set.code != 13 text = sprintf("%d", num1) text = text + "%" elsif num2 != 0 text = sprintf("%d", num2) text = "+" + text end if count.odd? change_color(system_color) draw_text(29, dy, sw/2-24, 24, word) change_color(normal_color) draw_icon(icon, 0, dy, icon != 0) if (text.size * 8) > (sw / 5) draw_text(sw*1/6-50, dy, sw/2, 24, text, 2) else draw_text(sw*1/4, dy, sw/5, 24, text, 2) end else change_color(system_color) draw_text(sw/2+29, dy, sw/2-24, 24, word) change_color(normal_color) draw_icon(icon, sw/2, dy, icon != 0) if (text.size * 8) > (sw / 5) draw_text(sw*3/6, dy, sw/2, 24, text, 2) else draw_text(sw*3/4, dy, sw/5, 24, text, 2) end end if count % 2 == 0 dy += 24 end end ########################################################################## if R2_SHOP_STATS::ITEM_STATES add_states = [] remove_states = [] @item.effects.each do |set| next if set.code == 0 if set.code == 21 add_states.push(set.data_id) elsif set.code == 22 remove_states.push(set.data_id) end end if add_states != [] # Draw Add States dy += 24 text = R2_SHOP_STATS::TEXT_ADD_STATES change_color(system_color) draw_text(0, dy, sw/2, 24, text) dx = sw - (add_states.size * 24) for i in add_states icon = $data_states[i].icon_index draw_icon(icon, dx, dy) dx += 24 end end if remove_states != [] # Draw Remove States dy += 24 text = R2_SHOP_STATS::TEXT_RM_STATES change_color(system_color) draw_text(0, dy, sw/2, 24, text) dx = sw - (remove_states.size * 24) for i in remove_states icon = $data_states[i].icon_index draw_icon(icon, dx, dy) dx += 24 end end dy += 24 if R2_SHOP_STATS::USE_SPACES end ########################################################################## if R2_SHOP_STATS::ITEM_BUFFS @item.effects.each do |set| case set.code when 31 #---ADD BUFF--- buff = R2_SHOP_STATS::ITEM_ADD_BUFF when 32 #---ADD DEBUFF--- buff = R2_SHOP_STATS::ITEM_ADD_DEBUFF when 33 #---REMOVE BUFF--- buff = R2_SHOP_STATS::ITEM_RM_BUFF when 34 #---REMOVE DEBUFF--- buff = R2_SHOP_STATS::ITEM_RM_DEBUFF else next end case set.data_id when 0 #---HP--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_HP when 1 #---MP--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_MP when 2 #---ATK--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_ATK when 3 #---DEF--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_DEF when 4 #---MAT--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_MAT when 5 #---MDF--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_MDF when 6 #---AGI--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_AGI when 7 #---LUK--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_LUK end num = 0 if set.value1 != 0 num = set.value1.to_i end if num != 0 && set.code == 31 text = sprintf("%d", num) text = "+" + text + " turns" elsif num != 0 && set.code == 32 text = sprintf("%d", num) text = "+" + text + " turns" end dy += 24 change_color(system_color) draw_text(0, dy, sw/2, 24, buff) draw_text(90, dy, sw/2-24, 24, word) change_color(normal_color) draw_icon(icon, 120, dy, icon != 0) draw_text(150, dy, sw/3, 24, text, 2) dy += 24 if R2_SHOP_STATS::USE_SPACES end end ########################################################################## if R2_SHOP_STATS::ITEM_STATS @item.effects.each do |set| case set.code when 42 #---Grow Stat--- buff = R2_SHOP_STATS::ITEM_STAT_TEXT else next end case set.data_id when 0 #---HP--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_HP when 1 #---MP--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_MP when 2 #---ATK--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_ATK when 3 #---DEF--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_DEF when 4 #---MAT--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_MAT when 5 #---MDF--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_MDF when 6 #---AGI--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_AGI when 7 #---LUK--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_LUK end num = 0 if set.value1 != 0 num = set.value1.to_i end if num != 0 && set.code == 42 text = sprintf("%d", num) if num >= 1 text = "+" + text else text = "-" + text end end dy += 24 change_color(system_color) draw_text(0, dy, sw/2, 24, buff) draw_text(140, dy, sw/2-24, 24, word) change_color(normal_color) draw_icon(icon, 170, dy, icon != 0) draw_text(200, dy, sw/5, 24, text, 2) dy += 24 if R2_SHOP_STATS::USE_SPACES end end ########################################################################## if R2_SHOP_STATS::ITEM_SKILL skills_add = [] text = R2_SHOP_STATS::ITEM_SKILL_ADD @item.effects.each do |set| case set.code when 43 #---Grow Stat--- skills_add.push(set.data_id) else next end end if skills_add != [] # Draw States dy += 24 change_color(system_color) draw_text(0, dy, sw/2, 24, text) dx = sw - (skills_add.size * 24) for i in skills_add icon = $data_skills[i].icon_index draw_icon(icon, dx, dy) dx += 24 end end end end # end draw_item_stats ########################################################################## #-------------------------------------------------------------------------- # draw_equip_stats #-------------------------------------------------------------------------- ########################################################################## def draw_equip_stats(dy, sw) contents.font.size = R2_SHOP_STATS::FONTSIZE change_color(normal_color) dy += 24 draw_text(0, dy, sw-24, 24, R2_SHOP_STATS::STATS_TEXT, 1) dy += 24 count = 0 i = 0 @item.params.each do |param| if param != 0 text = sprintf("%d", param) case i when 0 #---HP--- count += 1 word = Vocab::param(i) icon = R2_SHOP_STATS::ICON_HP when 1 #---MP--- count += 1 word = Vocab::param(i) icon = R2_SHOP_STATS::ICON_MP when 2 #---ATK--- count += 1 word = Vocab::param(i) icon = R2_SHOP_STATS::ICON_ATK when 3 #---DEF--- count += 1 word = Vocab::param(i) icon = R2_SHOP_STATS::ICON_DEF when 4 #---MAT--- count += 1 word = Vocab::param(i) icon = R2_SHOP_STATS::ICON_MAT when 5 #---MDF--- count += 1 word = Vocab::param(i) icon = R2_SHOP_STATS::ICON_MDF when 6 #---AGI--- count += 1 word = Vocab::param(i) icon = R2_SHOP_STATS::ICON_AGI when 7 #---LUK--- count += 1 word = Vocab::param(i) icon = R2_SHOP_STATS::ICON_LUK else next end if count.odd? change_color(system_color) draw_text(29, dy, sw/2-24, 24, word) change_color(normal_color) draw_icon(icon, 0, dy, icon != 0) draw_text(sw*1/4, dy, sw/5, 24, text, 2) else change_color(system_color) draw_text(sw/2+29, dy, sw/2-24, 24, word) change_color(normal_color) draw_icon(icon, sw/2, dy, icon != 0) draw_text(sw*3/4, dy, sw/5, 24, text, 2) end if count % 2 == 0 dy += 24 end end i += 1 end dy += 24 if count.odd? dy += 24 if R2_SHOP_STATS::USE_SPACES && count > 0 ########################################################################## if R2_SHOP_STATS::SHOW_EX_PARAM #------Ex Parameters------ count = 0 @item.features.each do |set| next unless set.code == 22 change_color(normal_color) draw_text(0, dy, sw-24, 24, R2_SHOP_STATS::EXSTATS_TEXT, 1) if R2_SHOP_STATS::SHOW_EXTEXT dy += 24 if R2_SHOP_STATS::SHOW_EXTEXT num = (set.value * 100).to_i text = sprintf("%d", num) case set.data_id when 0 #---HIT--- count += 1 word = R2_SHOP_STATS::TEXT_HIT icon = R2_SHOP_STATS::ICON_HIT when 1 #---EVA--- count += 1 word = R2_SHOP_STATS::TEXT_EVA icon = R2_SHOP_STATS::ICON_EVA when 2 #---CRI--- count += 1 word = R2_SHOP_STATS::TEXT_CRI icon = R2_SHOP_STATS::ICON_CRI when 3 #---CEV--- count += 1 word = R2_SHOP_STATS::TEXT_CEV icon = R2_SHOP_STATS::ICON_CEV when 4 #---MEV--- count += 1 word = R2_SHOP_STATS::TEXT_MEV icon = R2_SHOP_STATS::ICON_MEV when 5 #---MRF--- count += 1 word = R2_SHOP_STATS::TEXT_MRF icon = R2_SHOP_STATS::ICON_MRF when 6 #---CNT--- count += 1 word = R2_SHOP_STATS::TEXT_CNT icon = R2_SHOP_STATS::ICON_CNT when 7 #---HRG--- count += 1 word = R2_SHOP_STATS::TEXT_HRG icon = R2_SHOP_STATS::ICON_HRG when 8 #---MRG--- count += 1 word = R2_SHOP_STATS::TEXT_MRG icon = R2_SHOP_STATS::ICON_MRG when 9 #---TRG--- count += 1 word = R2_SHOP_STATS::TEXT_TRG icon = R2_SHOP_STATS::ICON_TRG else next end if count.odd? change_color(system_color) draw_text(29, dy, sw/2-24, 24, word) change_color(normal_color) draw_icon(icon, 0, dy, icon != 0) draw_text(sw*1/4, dy, sw/5, 24, text + "%", 2) else change_color(system_color) draw_text(sw/2+29, dy, sw/2-24, 24, word) change_color(normal_color) draw_icon(icon, sw/2, dy, icon != 0) draw_text(sw*3/4, dy, sw/5, 24, text + "%", 2) end if count % 2 == 0 dy += 24 end end dy += 24 if count.odd? dy += 24 if R2_SHOP_STATS::USE_SPACES && count > 2 end ########################################################################## if R2_SHOP_STATS::SHOW_SP_PARAM #------SP Parameters------ count = 0 @item.features.each do |set| next unless set.code == 23 num = (set.value * 100).to_i text = sprintf("%d", num) change_color(normal_color) draw_text(0, dy, sw-24, 24, R2_SHOP_STATS::SPSTATS_TEXT, 1) if R2_SHOP_STATS::SHOW_SPTEXT dy += 24 if R2_SHOP_STATS::SHOW_SPTEXT case set.data_id when 0 #---TGR--- count += 1 word = R2_SHOP_STATS::TEXT_TGR icon = R2_SHOP_STATS::ICON_TGR when 1 #---GRD--- count += 1 word = R2_SHOP_STATS::TEXT_GRD icon = R2_SHOP_STATS::ICON_GRD when 2 #---REC--- count += 1 word = R2_SHOP_STATS::TEXT_REC icon = R2_SHOP_STATS::ICON_REC when 3 #---PHA--- count += 1 word = R2_SHOP_STATS::TEXT_PHA icon = R2_SHOP_STATS::ICON_PHA when 4 #---MCR--- count += 1 word = R2_SHOP_STATS::TEXT_MCR icon = R2_SHOP_STATS::ICON_MCR when 5 #---TCR--- count += 1 word = R2_SHOP_STATS::TEXT_TCR icon = R2_SHOP_STATS::ICON_TCR when 6 #---PDR--- count += 1 word = R2_SHOP_STATS::TEXT_PDR icon = R2_SHOP_STATS::ICON_PDR when 7 #---MDR--- count += 1 word = R2_SHOP_STATS::TEXT_MDR icon = R2_SHOP_STATS::ICON_MDR when 8 #---FDR--- count += 1 word = R2_SHOP_STATS::TEXT_FDR icon = R2_SHOP_STATS::ICON_FDR when 9 #---EXR--- count += 1 word = R2_SHOP_STATS::TEXT_EXR icon = R2_SHOP_STATS::ICON_EXR else next end if count.odd? change_color(system_color) draw_text(29, dy, sw/2-24, 24, word) change_color(normal_color) draw_icon(icon, 0, dy, icon != 0) draw_text(sw*1/4, dy, sw/5, 24, text + "%", 2) else change_color(system_color) contents.draw_text(sw/2+29, dy, sw/2-24, 24, word) change_color(normal_color) draw_icon(icon, sw/2, dy, icon != 0) draw_text(sw*3/4, dy, sw/5, 24, text + "%", 2) end if count % 2 == 0 dy += 24 end end dy += 24 if R2_SHOP_STATS::USE_SPACES && count > 0 end ########################################################################## if R2_SHOP_STATS::DRAW_ELEMENTS #------ELEMENTS------ drawn_elements = [] elem = false @item.features.each do |set| next if set.data_id == 0 case set.code when 31 # weapon drawn_elements.push(set.data_id) elem = true when 11 # armour drawn_elements.push(set.data_id) elem = true else next end end if drawn_elements != [] # Draw Elements drawn_elements = drawn_elements.sort! dy += 24 if @item.is_a?(RPG::Weapon) text = R2_SHOP_STATS::EQ_ELEMENT_W else text = R2_SHOP_STATS::EQ_ELEMENT_A end change_color(system_color) draw_text(0, dy, sw/2, 24, text) dx = sw - (drawn_elements.size * 24) for ele_id in drawn_elements draw_icon(R2_SHOP_STATS::SHOWN_ELEMENTS[ele_id], dx, dy) dx += 24 end end dy += 24 if R2_SHOP_STATS::USE_SPACES && elem == true end ########################################################################## if R2_SHOP_STATS::DRAW_STATES #------STATES------ drawn_states = [] resist_states = [] @item.features.each do |set| next if set.data_id == 0 case set.code when 32 # weapons drawn_states.push(set.data_id) when 13 # armour drawn_states.push(set.data_id) when 14 # armour resist states resist_states.push(set.data_id) else next end end if drawn_states != [] # Draw States dy += 24 if @item.is_a?(RPG::Weapon) text = R2_SHOP_STATS::EQ_STATUS_W else text = R2_SHOP_STATS::EQ_STATUS_A end change_color(system_color) draw_text(0, dy, sw/2, 24, text) dx = sw - (drawn_states.size * 24) for icon in drawn_states draw_icon(icon, dx, dy) dx += 24 end end if resist_states != [] # Draw Resist States (Armour) dy += 24 text = R2_SHOP_STATS::STATE_RESIST change_color(system_color) draw_text(0, dy, sw/2, 24, text) dx = sw - (resist_states.size * 24) for icon in resist_states draw_icon(icon, dx, dy) dx += 24 end end dy += 24 if R2_SHOP_STATS::USE_SPACES && ((drawn_states != []) || (resist_states != [])) end ########################################################################## if R2_SHOP_STATS::EQUIP_SKILL skills_add = [] text = R2_SHOP_STATS::EQUIP_SKILL_ADD @item.features.each do |set| case set.code when 43 #---Grow Stat--- skills_add.push(set.data_id) else next end end if skills_add != [] # Draw States dy += 24 change_color(system_color) draw_text(0, dy, sw/2, 24, text) dx = sw - (skills_add.size * 24) for i in skills_add icon = $data_skills[i].icon_index draw_icon(icon, dx, dy) dx += 24 end end dy += 24 if R2_SHOP_STATS::USE_SPACES end ########################################################################## if R2_SHOP_STATS::EQUIP_SKILL_SEAL skills_seal = [] text = R2_SHOP_STATS::TEXT_SEAL_STATES @item.features.each do |set| case set.code when 44 #---Grow Stat--- skills_seal.push(set.data_id) else next end end if skills_seal != [] # Draw States dy += 24 change_color(system_color) draw_text(0, dy, sw/2, 24, text) dx = sw - (skills_seal.size * 24) for i in skills_seal icon = $data_skills[i].icon_index draw_icon(icon, dx, dy) dx += 24 end end end ########################################################################## if R2_SHOP_STATS::EQUIP_DEBUFF @item.features.each do |set| case set.code when 12 #---DEBUFF RATE--- debuff = R2_SHOP_STATS::EQUIP_DEBUFF_TEXT else next end case set.data_id when 0 #---HP--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_HP when 1 #---MP--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_MP when 2 #---ATK--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_ATK when 3 #---DEF--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_DEF when 4 #---MAT--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_MAT when 5 #---MDF--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_MDF when 6 #---AGI--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_AGI when 7 #---LUK--- word = Vocab::param(set.data_id) icon = R2_SHOP_STATS::ICON_LUK end num = 0 if set.value != 0 num = set.value.to_f num = (num * 100).to_i text = sprintf("%d", num) text = "+" + text + "%" end dy += 24 if R2_SHOP_STATS::USE_SPACES dy += 24 change_color(system_color) draw_text(0, dy, sw/2, 24, debuff) draw_text(110, dy, sw/2-24, 24, word) change_color(normal_color) draw_icon(icon, 140, dy, icon != 0) draw_text(150, dy, sw/3, 24, text, 2) end end ########################################################################## if R2_SHOP_STATS::EQUIP_ATTACK_STATE attack_state = [] attack_numb = [] text = R2_SHOP_STATS::EQUIP_ATTACK_STATE_TEXT @item.features.each do |set| case set.code when 32 #---DEBUFF RATE--- attack_state.push(set.data_id) value = (set.value * 100).round strng = value.to_s + "%" attack_numb.push(strng) else next end end if attack_state != [] # Draw States dy += 24 if R2_SHOP_STATS::USE_SPACES dy += 24 change_color(system_color) draw_text(0, dy, sw/2, 24, text) dx = sw - (attack_state.size * 48) change_color(normal_color) n = 0 for i in attack_state icon = $data_states[i].icon_index numb = attack_numb[n] draw_icon(icon, dx, dy) draw_text(dx+24, dy, 24, 24, numb) dx += 48 n += 1 end end end ########################################################################## if R2_SHOP_STATS::EQUIP_ATTACK_SPEED speed_value = 0 text = R2_SHOP_STATS::EQUIP_ATTACK_SPEED_TEXT @item.features.each do |set| case set.code when 33 #---Attack speed--- speed_value = set.value.to_i else next end end if speed_value != 0 dy += 24 if R2_SHOP_STATS::USE_SPACES dy += 24 change_color(system_color) draw_text(0, dy, sw/2, 24, text) change_color(normal_color) dx = text.size * 10 draw_text(dx + 20, dy, sw/3, 24, speed_value) end end ########################################################################## if R2_SHOP_STATS::EQUIP_ATTACK_TIMES text = R2_SHOP_STATS::EQUIP_ATTACK_TIMES_TEXT times_value = 0 @item.features.each do |set| case set.code when 34 #---Attack Times--- num = set.value.to_i times_value = "+" + num.to_s else next end end if times_value != 0 dy += 24 if R2_SHOP_STATS::USE_SPACES dy += 24 change_color(system_color) draw_text(0, dy, sw/2, 24, text) change_color(normal_color) dx = text.size * 10 draw_text(dx + 20, dy, sw/3, 24, times_value) end end ########################################################################## if R2_SHOP_STATS::EQUIP_ACTION_TIMES text = R2_SHOP_STATS::EQUIP_ACTION_TIMES_TEXT action_value = 0 @item.features.each do |set| case set.code when 61 #---Action times--- num = (set.value * 100).to_i action_value = num.to_s + "%" else next end end if action_value != 0 dy += 24 if R2_SHOP_STATS::USE_SPACES dy += 24 change_color(system_color) draw_text(0, dy, sw/2, 24, text) change_color(normal_color) dx = text.size * 10 draw_text(dx + 20, dy, sw/3, 24, action_value) end end ########################################################################## if R2_SHOP_STATS::EQUIP_PARTY_ABILITY @item.features.each do |set| if set.code == 64 # Party Ability case set.data_id when 0 #---TGR--- ability = "Encounter Half" when 1 #---GRD--- ability = "Encounter None" when 2 #---REC--- ability = "Cancel Surprise" when 3 #---PHA--- ability = "Raise Preemptive" when 4 #---MCR--- ability = "Double Gold" when 5 #---TCR--- ability = "Double Item Drop" else next end dy += 24 if R2_SHOP_STATS::USE_SPACES dy += 24 change_color(system_color) draw_text(0, dy, sw/2, 24, ability) change_color(normal_color) end end end end end # Window_ShopNumber Credit and Thanks - Roninator2 Terms of use Free for all RPG Maker VX Ace uses 2 Share this post Link to post Share on other sites
Chuck 9 Posted March 15, 2021 Thanks for this. Will try to incorporate this in my project. Share this post Link to post Share on other sites