Scene Shop ReDux
Last Update: 2009.06.08
By: Yanfly Engine ReDux
Introduction
The shop scene was more or less fine by itself aside from a few efficiency issues. This script patches up those efficiency problems in and displays more data given for buyable items. Before, we received nothing but a blank number input window only to show us how much of the item is being bought. The script makes use of that empty space to give a little more detail on what is being purchased. The status window also more or less compares only one stat. This script will increase that to the four ADSA stats. For games with more than 4 party members, you may have experienced that the status window didn't have enough room to show. Imported from KGC is the ability to scroll that window to allow for a more comfortable and informative shop scene.
Screenshots
(https://rmrk.net/proxy.php?request=http%3A%2F%2Fwww.pockethouse.com%2Frpgvx%2Fshopredux%2Fshop_title.jpg&hash=885977536b065636b829f2f39951d29dbff9de05)
Script
Click here to view the main script. (http://www.pockethouse.com/rpgvx/scripts/sceneshopredux.txt)
Instructions
There's a few things to go through so I'll post some screenshots.
---------
(https://rmrk.net/proxy.php?request=http%3A%2F%2Fwww.pockethouse.com%2Frpgvx%2Fshopredux%2Fshop_howto1.jpg&hash=dd995bb509489a18494554e0ea262cb00125ddab)
Of the things that prompted me actually do this makeover script is the fact that very little information is shown about the items you've bought from the shop. The only thing that can even remotely suggest what you were buying before was the help window at the top of the screen. Even then, it wasn't too helpful (despite being a help window). Now, once you've decided to make a purchase on the item, at the amount number window, you'll see nearly all the item information placed on there (that I can fit).
To change the text displayed, just scroll down (in the script) to the module and edit what you see there. You may change the icons representative of the effects there as well.
---------
(https://rmrk.net/proxy.php?request=http%3A%2F%2Fwww.pockethouse.com%2Frpgvx%2Fshopredux%2Fshop_howto2.jpg&hash=3c8672ab872a95b324ea0437be748b3911e3c642)
When choosing equipment to buy rather than usable items, a different set of information appears. Any stat boosts will be shown in the window as well as the weapon elements and status effects applied by the weapons. Note that an extra effects such as dual attack, half MP cost, etc. will not show. This is mostly due to room limitations. That's no biggie however since players generally only look at stats when buying equipment anyway.
---------
(https://rmrk.net/proxy.php?request=http%3A%2F%2Fwww.pockethouse.com%2Frpgvx%2Fshopredux%2Fshop_howto3.jpg&hash=b3f913ca7ab9a395a2dd25ade0e506bbaa58d12c)
And finally, for those who have more than 4 party members at a time, you may scroll the status window upward and downward by holding Input::X (or on the keyboard, the A button). This was a feature implemented by KGC's help-extension, but non-help-extension users should also receive this benefit (and so here it is in this very script!).
---------
IF YOU ARE HAVING PROBLEMS WITH THESE SCRIPTS, REVIEW THE TROUBLESHOOTING PAGE FIRST! (http://pockethouse.wordpress.com/vx/toubleshooting/)
Compatibility
- I'm pretty sure it'll be compatible with anything that doesn't affect shops.
Please report any compatibility issues and I'll try my best to fix them.
Terms and Conditions
Just give credit where due.
Credits and Thanks
- Credits to KGC for the status window scrolling method.
Originally Found Here: Here (http://pockethouse.wordpress.com/vx/scene-shop-redux/)
The link is broken. Same with the scene status redux link.
Quote from: wnhero on June 09, 2010, 01:19:33 AM
The link is broken. Same with the scene status redux link.
Yanfly Engine ReDux is obsolete compared to her new engine. You can find what you want here: http://wiki.pockethouse.com/index.php?title=Main_Page
The link is broken because Yanfly dumped the ReDux version and password protected the blog.
So, MA, or any of the other mods, could you close this? No reason for it being open any longer
It's worth noting they can't be downloaded anywhere anymore. Trust me, I've searched everywhere.
Maybe this thread bump will get it locked...
There's no reason to lock it, since it gives people a place where they can ask about the script. If it were locked and they wanted this script, they'd have to create a new thread.
As far as I know, all of the YERD scripts are contained in the KGC & YanflyPLUS demo (http://www.rpgmakervx.net/index.php?showtopic=19726)
Here is the SceneShop script from that demo. It may rely on some other scripts as well; I don't know. If that is the case, then just download the KGCYanfly Demo:
#===============================================================================
#
# Yanfly Engine RD - Scene Shop ReDux
# Last Date Updated: 2009.06.08
# Level: Normal
#
# The shop scene was more or less fine by itself aside from a few efficiency
# issues. This script patches up those efficiency problems in and displays more
# data given for buyable items. Before, we received nothing but a blank number
# input window only to show us how much of the item is being bought. The script
# makes use of that empty space to give a little more detail on what is being
# purchased. The status window also more or less compares only one stat. This
# script will increase that to the four ADSA stats. For games with more than 4
# party members, you may have experienced that the status window didn't have
# enough room to show. Imported from KGC is the ability to scroll that window
# to allow for a more comfortable and informative shop scene.
#
#===============================================================================
# Updates:
# ----------------------------------------------------------------------------
# o 2009.06.08 - Finished script.
# o 2009.06.07 - Started script.
#===============================================================================
# Instructions
#===============================================================================
#
# For the most part, this script is plug and play. Scroll down and change the
# various settings under the module.
#
#===============================================================================
#
# Compatibility
# - Works With: KGC's Equip Extension
# - Works With: Yanfly's Extra Equipment Options
# - Overwrites: Scene_Shop: update
# - Overwrites: Window_ShopNumber: refresh
# - Overwrites: Window_ShopStatus: refresh
#
#===============================================================================
# Credits:
# KGC for shop status scrolling method.
#===============================================================================
$imported = {} if $imported == nil
$imported["SceneShopReDux"] = true
module YE
module REDUX
module SHOP
#------------------------------------------------------------------------
# STATUS WINDOW OPTIONS
#------------------------------------------------------------------------
# This adjusts the text for the status window over on the right.
POSSESSION = "Possession" # How many items in possession of party.
EQUIPPED = "Equipped" # Appears if actor has item equipped.
# This button is used to scroll the status window if it is too short.
# This has been made mostly for games with more than 4 party members.
SCROLL_KEY = Input::X
# The following adjusts the icons used for stat increases and decreases.
# Just refer them to ATK, DEF, SPI, and AGI in that order.
STAT_INCREASE = [120, 121, 122, 123]
STAT_DECREASE = [124, 125, 126, 127]
#------------------------------------------------------------------------
# PURCHASE WINDOW OPTIONS
#------------------------------------------------------------------------
# The following determines the text displayed at the amount selection
# screen. Change the information here accordingly.
PURCHASE = "Purchase" # Title of purchasing information.
COST_ICN = 205 # Icon of total cost.
COST_TXT = "Total Cost" # Text for total cost.
ITEMSTAT = "Item Info" # Text for item data.
WPN_STAT = "Weapon Info" # Text for weapon data.
ARM_STAT = "Armour Info" # Text for armour data.
NOEFFECT = "----------" # Text if no data is revealed.
FONTSIZE = 16 # Font size used for data text.
# The following adjusts extra increment increases for pressing L or R
# while the number window is open.
LR_INCREMENT = 100
# 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.
# These are the general icons and text used for various aspects of new
# shop windows. Used for items and equips alike.
ICON_HP = 99 # Icon for MAXHP
TEXT_HP = "MaxHP" # Text for MAXHP
ICON_MP = 100 # Icon for MAXMP
TEXT_MP = "MaxMP" # Text for MAXMP
ICON_ATK = 2 # Icon for ATK
TEXT_ATK = "ATK" # Text for ATK
ICON_DEF = 52 # Icon for DEF
TEXT_DEF = "DEF" # Text for DEF
ICON_SPI = 21 # Icon for SPI
TEXT_SPI = "SPI" # Text for SPI
ICON_AGI = 48 # Icon for AGI
TEXT_AGI = "AGI" # Text for AGI
ICON_HIT = 135 # Icon for HIT
TEXT_HIT = "HIT" # Text for HIT
ICON_EVA = 158 # Icon for EVA
TEXT_EVA = "EVA" # Text for EVA
ICON_CRI = 119 # Icon for CRI
TEXT_CRI = "CRI" # Text for CRI
SHOW_CRI = true # Display CRI?
ICON_ODDS = 137 # Icon for ODDS
TEXT_ODDS = "LUK" # Text for ODDS
SHOW_ODDS = true # Display ODDS?
ICON_BASEDMG = 119 # Used for base damage.
ICON_BASEHEAL = 128 # Used for base healing.
# The following determines which elements can be shown in the elements
# list. If an element is not included here, it is ignored.
SHOWN_ELEMENTS ={
# ElID => IconID
2 => 10,
3 => 4,
4 => 14,
5 => 16,
6 => 12,
9 => 104,
10 => 105,
11 => 106,
12 => 107,
13 => 108,
14 => 109,
15 => 110,
16 => 111,
} # Do not remove this.
end # SHOP
end # REDUX
end # YE
#===============================================================================
# Editting anything past this point may potentially result in causing computer
# damage, incontinence, explosion of user's head, coma, death, and/or halitosis.
# Therefore, edit at your own risk.
#===============================================================================
#===============================================================================
# Scene_Shop
#===============================================================================
class Scene_Shop < Scene_Base
#--------------------------------------------------------------------------
# overwrite update
#--------------------------------------------------------------------------
def update
super
update_menu_background
if @command_window.active
@command_window.update
@dummy_window.update
update_command_selection
elsif @status_window.visible and Input.press?(YE::REDUX::SHOP::SCROLL_KEY)
update_scroll_status
elsif @buy_window.active
@gold_window.update
@help_window.update
@buy_window.update
@status_window.cursor_rect.empty
@status_window.update
update_buy_selection
elsif @sell_window.active
@gold_window.update
@help_window.update
@sell_window.update
update_sell_selection
elsif @number_window.active
@number_window.update
@status_window.cursor_rect.empty
@status_window.update
update_number_input
end
end
#--------------------------------------------------------------------------
# update_scroll_status
#--------------------------------------------------------------------------
def update_scroll_status
@status_window.cursor_rect.width = @status_window.contents.width
@status_window.cursor_rect.height = @status_window.height - 32
@status_window.update
if Input.press?(Input::UP)
@status_window.oy = [@status_window.oy - 4, 0].max
elsif Input.press?(Input::DOWN)
max_pos = [@status_window.contents.height -
(@status_window.height - 32), 0].max
@status_window.oy = [@status_window.oy + 4, max_pos].min
end
end
end # Scene_Shop
#===============================================================================
# Window_ShopNumber
#===============================================================================
class Window_ShopNumber < Window_Base
#--------------------------------------------------------------------------
# overwrite refresh
#--------------------------------------------------------------------------
def refresh
dy = 0
sw = self.width - 32
self.contents.clear
self.contents.font.color = system_color
self.contents.font.size = Font.default_size
self.contents.draw_text(0, dy, sw, WLH, YE::REDUX::SHOP::PURCHASE, 1)
dy += WLH
self.contents.font.color = normal_color
draw_item_name(@item, 0, dy)
self.contents.draw_text(212, dy, 20, WLH, "×")
self.contents.draw_text(218, dy, 50, WLH, @number, 2)
self.cursor_rect.set(207, dy, 64, WLH)
dy += WLH
draw_icon(YE::REDUX::SHOP::COST_ICN, 0, dy)
self.contents.draw_text(24, dy, sw-24, WLH, YE::REDUX::SHOP::COST_TXT)
draw_currency_value(@price * @number, 4, dy, 264)
dy += WLH
if @item.is_a?(RPG::Item)
draw_item_stats(dy, sw)
else
draw_equip_stats(dy, sw)
end
end
#--------------------------------------------------------------------------
# overwrite update
#--------------------------------------------------------------------------
def update
super
if self.active
last_number = @number
if Input.repeat?(Input::RIGHT) and @number < @max
@number += 1
end
if Input.repeat?(Input::LEFT) and @number > 1
@number -= 1
end
if Input.repeat?(Input::UP) and @number < @max
@number = [@number + 10, @max].min
end
if Input.repeat?(Input::DOWN) and @number > 1
@number = [@number - 10, 1].max
end
if Input.repeat?(Input::L) and @number > 1
@number = [@number - YE::REDUX::SHOP::LR_INCREMENT, 1].max
end
if Input.repeat?(Input::R) and @number < @max
@number = [@number + YE::REDUX::SHOP::LR_INCREMENT, @max].min
end
if @number != last_number
Sound.play_cursor
refresh
end
end
end
#--------------------------------------------------------------------------
# draw_item_stats
#--------------------------------------------------------------------------
def draw_item_stats(dy, sw)
start_dy = dy
self.contents.font.color = system_color
self.contents.draw_text(0, dy, sw, WLH, YE::REDUX::SHOP::ITEMSTAT, 1)
self.contents.font.size = YE::REDUX::SHOP::FONTSIZE
#-----
if @item.base_damage != 0
dy += WLH
if @item.base_damage > 0
icon = YE::REDUX::SHOP::ICON_BASEDMG
result = sprintf(YE::REDUX::SHOP::SPELL_DAMAGE, @item.base_damage)
else
icon = YE::REDUX::SHOP::ICON_BASEHEAL
result = sprintf(YE::REDUX::SHOP::SPELL_HEAL, -@item.base_damage)
end
if @item.element_set != []
for ele_id in @item.element_set
next unless YE::REDUX::SHOP::SHOWN_ELEMENTS.include?(ele_id)
icon = YE::REDUX::SHOP::SHOWN_ELEMENTS[ele_id]
break
end
end
text = YE::REDUX::SHOP::SPELL_EFFECT
draw_icon(icon, 0, dy)
self.contents.draw_text(24, dy, sw/2-24, WLH, text, 0)
self.contents.font.color = normal_color
self.contents.draw_text(sw/2, dy, sw/2, WLH, result, 2)
end
#-----
if @item.hp_recovery != 0 or @item.hp_recovery_rate != 0
self.contents.font.color = system_color
dy += WLH
draw_icon(YE::REDUX::SHOP::HP_HEAL_ICON, 0, dy)
text = YE::REDUX::SHOP::HP_HEAL_TEXT
self.contents.draw_text(24, dy, sw/2-24, WLH, text, 0)
self.contents.font.color = normal_color
if @item.hp_recovery_rate != 0 and @item.hp_recovery != 0
text = sprintf("%+d%% %s", @item.hp_recovery_rate, Vocab::hp)
self.contents.draw_text(sw/2, dy, sw/4, WLH, text, 2)
text = sprintf("%+d %s", @item.hp_recovery, Vocab::hp)
self.contents.draw_text(sw*3/4, dy, sw/4, WLH, text, 2)
elsif @item.hp_recovery_rate != 0
text = sprintf("%+d%% %s", @item.hp_recovery_rate, Vocab::hp)
self.contents.draw_text(sw*3/4, dy, sw/4, WLH, text, 2)
else
text = sprintf("%+d %s", @item.hp_recovery, Vocab::hp)
self.contents.draw_text(sw*3/4, dy, sw/4, WLH, text, 2)
end
end
#-----
if @item.mp_recovery != 0 or @item.mp_recovery_rate != 0
self.contents.font.color = system_color
dy += WLH
draw_icon(YE::REDUX::SHOP::MP_HEAL_ICON, 0, dy)
text = YE::REDUX::SHOP::MP_HEAL_TEXT
self.contents.draw_text(24, dy, sw/2-24, WLH, text, 0)
self.contents.font.color = normal_color
if @item.mp_recovery_rate != 0 and @item.mp_recovery != 0
text = sprintf("%+d%% %s", @item.mp_recovery_rate, Vocab::mp)
self.contents.draw_text(sw/2, dy, sw/4, WLH, text, 2)
text = sprintf("%+d %s", @item.mp_recovery, Vocab::mp)
self.contents.draw_text(sw*3/4, dy, sw/4, WLH, text, 2)
elsif @item.mp_recovery_rate != 0
text = sprintf("%+d%% %s", @item.mp_recovery_rate, Vocab::mp)
self.contents.draw_text(sw*3/4, dy, sw/4, WLH, text, 2)
else
text = sprintf("%+d %s", @item.mp_recovery, Vocab::mp)
self.contents.draw_text(sw*3/4, dy, sw/4, WLH, text, 2)
end
end
#-----
if @item.plus_state_set != []
self.contents.font.color = system_color
dy += WLH
self.contents.draw_text(0, dy, sw, WLH, YE::REDUX::SHOP::APPLY_STATE, 1)
dx = (sw - (@item.plus_state_set.size * 24)) / 2
dy += WLH
for state_id in @item.plus_state_set
state = $data_states[state_id]
next if state == nil
next if state.icon_index == 0
draw_icon(state.icon_index, dx, dy)
dx += 24
end
end
if @item.minus_state_set != []
self.contents.font.color = system_color
dy += WLH
self.contents.draw_text(0, dy, sw, WLH, YE::REDUX::SHOP::ERASE_STATE, 1)
dx = (sw - (@item.minus_state_set.size * 24)) / 2
dy += WLH
for state_id in @item.minus_state_set
state = $data_states[state_id]
next if state == nil
next if state.icon_index == 0
draw_icon(state.icon_index, dx, dy)
dx += 24
end
end
#-----
if @item.parameter_type != 0
self.contents.font.color = system_color
dy += WLH
case @item.parameter_type
when 1
icon = YE::REDUX::SHOP::ICON_HP
text = YE::REDUX::SHOP::TEXT_HP
when 2
icon = YE::REDUX::SHOP::ICON_MP
text = YE::REDUX::SHOP::TEXT_MP
when 3
icon = YE::REDUX::SHOP::ICON_ATK
text = YE::REDUX::SHOP::TEXT_ATK
when 4
icon = YE::REDUX::SHOP::ICON_DEF
text = YE::REDUX::SHOP::TEXT_DEF
when 5
icon = YE::REDUX::SHOP::ICON_SPI
text = YE::REDUX::SHOP::TEXT_SPI
when 6
icon = YE::REDUX::SHOP::ICON_AGI
text = YE::REDUX::SHOP::TEXT_AGI
end
draw_icon(icon, 0, dy)
boost = sprintf(YE::REDUX::SHOP::PARAM_BOOST, text)
self.contents.draw_text(24, dy, sw/2-24, WLH, boost, 0)
self.contents.font.color = normal_color
param = sprintf("%+d %s", @item.parameter_points, text)
self.contents.draw_text(sw/2, dy, sw/2, WLH, param, 2)
end
#-----
if start_dy == dy
dy += WLH
self.contents.font.color = normal_color
self.contents.draw_text(0, dy, sw, WLH, YE::REDUX::SHOP::NOEFFECT, 1)
end
end
#--------------------------------------------------------------------------
# draw_equip_stats
#--------------------------------------------------------------------------
def draw_equip_stats(dy, sw)
self.contents.font.color = system_color
if @item.is_a?(RPG::Weapon)
self.contents.draw_text(0, dy, sw, WLH, YE::REDUX::SHOP::WPN_STAT, 1)
else
self.contents.draw_text(0, dy, sw, WLH, YE::REDUX::SHOP::ARM_STAT, 1)
end
self.contents.font.size = YE::REDUX::SHOP::FONTSIZE
dy += 24
if $imported["ExtraEquipmentOptions"]
#---MaxHP---
if @item.bonus_paramp[:maxhp] != 100
text = sprintf("%+d%%", @item.bonus_paramp[:maxhp] - 100)
enabled = true
elsif @item.bonus_param[:maxhp] != 0
text = sprintf("%+d", @item.bonus_param[:maxhp])
enabled = true
else
text = YE::REDUX::SHOP::NO_EQ_STAT
enabled = false
end
self.contents.font.color = system_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_HP)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
draw_icon(YE::REDUX::SHOP::ICON_HP, 0, dy, enabled)
self.contents.draw_text(sw*1/4, dy, sw/5, WLH, text, 2)
#---MaxMP---
if @item.bonus_paramp[:maxmp] != 100
text = sprintf("%+d%%", @item.bonus_paramp[:maxmp] - 100)
enabled = true
elsif @item.bonus_param[:maxmp] != 0
text = sprintf("%+d", @item.bonus_param[:maxmp])
enabled = true
else
text = YE::REDUX::SHOP::NO_EQ_STAT
enabled = false
end
self.contents.font.color = system_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(sw/2+24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_MP)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
draw_icon(YE::REDUX::SHOP::ICON_MP, sw/2, dy, enabled)
self.contents.draw_text(sw*3/4, dy, sw/5, WLH, text, 2)
#------
dy += 24
#------
end
#---ATK---
if $imported["ExtraEquipmentOptions"] and @item.bonus_paramp[:atk] != 100
text = sprintf("%+d%%", @item.bonus_paramp[:atk] - 100)
enabled = true
elsif $imported["ExtraEquipmentOptions"] and @item.bonus_param[:atk] != 0
text = sprintf("%+d", @item.bonus_param[:atk] + @item.atk)
enabled = true
elsif @item.atk != 0
text = sprintf("%+d", @item.atk)
enabled = true
else
text = YE::REDUX::SHOP::NO_EQ_STAT
enabled = false
end
self.contents.font.color = system_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_ATK)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
draw_icon(YE::REDUX::SHOP::ICON_ATK, 0, dy, enabled)
self.contents.draw_text(sw*1/4, dy, sw/5, WLH, text, 2)
#---DEF---
if $imported["ExtraEquipmentOptions"] and @item.bonus_paramp[:def] != 100
text = sprintf("%+d%%", @item.bonus_paramp[:def] - 100)
enabled = true
elsif $imported["ExtraEquipmentOptions"] and @item.bonus_param[:def] != 0
text = sprintf("%+d", @item.bonus_param[:def] + @item.def)
enabled = true
elsif @item.def != 0
text = sprintf("%+d", @item.def)
enabled = true
else
text = YE::REDUX::SHOP::NO_EQ_STAT
enabled = false
end
self.contents.font.color = system_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(sw/2+24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_DEF)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
draw_icon(YE::REDUX::SHOP::ICON_DEF, sw/2, dy, enabled)
self.contents.draw_text(sw*3/4, dy, sw/5, WLH, text, 2)
#------
dy += 24
#---SPI---
if $imported["ExtraEquipmentOptions"] and @item.bonus_paramp[:spi] != 100
text = sprintf("%+d%%", @item.bonus_paramp[:spi] - 100)
enabled = true
elsif $imported["ExtraEquipmentOptions"] and @item.bonus_param[:spi] != 0
text = sprintf("%+d", @item.bonus_param[:spi] + @item.spi)
enabled = true
elsif @item.spi != 0
text = sprintf("%+d", @item.spi)
enabled = true
else
text = YE::REDUX::SHOP::NO_EQ_STAT
enabled = false
end
self.contents.font.color = system_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_SPI)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
draw_icon(YE::REDUX::SHOP::ICON_SPI, 0, dy, enabled)
self.contents.draw_text(sw*1/4, dy, sw/5, WLH, text, 2)
#---AGI---
if $imported["ExtraEquipmentOptions"] and @item.bonus_paramp[:agi] != 100
text = sprintf("%+d%%", @item.bonus_paramp[:agi] - 100)
enabled = true
elsif $imported["ExtraEquipmentOptions"] and @item.bonus_param[:agi] != 0
text = sprintf("%+d", @item.bonus_param[:agi] + @item.agi)
enabled = true
elsif @item.agi != 0
text = sprintf("%+d", @item.agi)
enabled = true
else
text = YE::REDUX::SHOP::NO_EQ_STAT
enabled = false
end
self.contents.font.color = system_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(sw/2+24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_AGI)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
draw_icon(YE::REDUX::SHOP::ICON_AGI, sw/2, dy, enabled)
self.contents.draw_text(sw*3/4, dy, sw/5, WLH, text, 2)
#------
dy += 24
#---HIT---
if $imported["ExtraEquipmentOptions"] and @item.bonus_paramp[:hit] != 100
text = sprintf("%+d%%", @item.bonus_paramp[:hit] - 100)
enabled = true
elsif $imported["ExtraEquipmentOptions"] and @item.bonus_param[:hit] != 0
value = @item.bonus_param[:hit]
value += @item.hit if @item.is_a?(RPG::Weapon)
text = sprintf("%+d%%", value)
enabled = true
elsif @item.is_a?(RPG::Weapon) and @item.hit != 0
text = sprintf("%+d%%", @item.hit)
enabled = true
else
text = YE::REDUX::SHOP::NO_EQ_STAT
enabled = false
end
self.contents.font.color = system_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_HIT)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
draw_icon(YE::REDUX::SHOP::ICON_HIT, 0, dy, enabled)
self.contents.draw_text(sw*1/4, dy, sw/5, WLH, text, 2)
#---EVA---
if $imported["ExtraEquipmentOptions"] and @item.bonus_paramp[:eva] != 100
text = sprintf("%+d%%", @item.bonus_paramp[:eva] - 100)
enabled = true
elsif $imported["ExtraEquipmentOptions"] and @item.bonus_param[:eva] != 0
text = sprintf("%+d%%", @item.bonus_param[:eva] + @item.eva)
enabled = true
elsif @item.is_a?(RPG::Armor) and @item.eva != 0
text = sprintf("%+d%%", @item.eva)
enabled = true
else
text = YE::REDUX::SHOP::NO_EQ_STAT
enabled = false
end
self.contents.font.color = system_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(sw/2+24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_EVA)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
draw_icon(YE::REDUX::SHOP::ICON_EVA, sw/2, dy, enabled)
self.contents.draw_text(sw*3/4, dy, sw/5, WLH, text, 2)
#------
dy += 24
#------
if $imported["ExtraEquipmentOptions"] and YE::REDUX::SHOP::SHOW_CRI
#---CRI---
if @item.bonus_paramp[:cri] != 100
text = sprintf("%+d%%", @item.bonus_paramp[:cri] - 100)
enabled = true
elsif @item.bonus_param[:cri] != 0
text = sprintf("%+d%%", @item.bonus_param[:cri])
enabled = true
else
text = YE::REDUX::SHOP::NO_EQ_STAT
enabled = false
end
self.contents.font.color = system_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_CRI)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
draw_icon(YE::REDUX::SHOP::ICON_CRI, 0, dy, enabled)
self.contents.draw_text(sw*1/4, dy, sw/5, WLH, text, 2)
end
if $imported["ExtraEquipmentOptions"] and YE::REDUX::SHOP::SHOW_ODDS
#---ODDS---
if @item.bonus_paramp[:odds] != 100
text = sprintf("%+d%%", @item.bonus_paramp[:odds] - 100)
enabled = true
elsif @item.bonus_param[:odds] != 0
text = sprintf("%+d", @item.bonus_param[:odds])
enabled = true
else
text = YE::REDUX::SHOP::NO_EQ_STAT
enabled = false
end
self.contents.font.color = system_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(sw/2+24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_ODDS)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
draw_icon(YE::REDUX::SHOP::ICON_ODDS, sw/2, dy, enabled)
self.contents.draw_text(sw*3/4, dy, sw/5, WLH, text, 2)
#------
end
return if (dy + 48) >= (self.height - 32)
#------ELEMENTS------
drawn_elements = []
for ele_id in YE::REDUX::SHOP::SHOWN_ELEMENTS
break if @item.element_set == []
if @item.element_set.include?(ele_id[0])
drawn_elements.push(ele_id[0])
end
end
if drawn_elements != [] # Draw Elements
drawn_elements = drawn_elements.sort!
dy += WLH
if @item.is_a?(RPG::Weapon)
text = YE::REDUX::SHOP::EQ_ELEMENT_W
else
text = YE::REDUX::SHOP::EQ_ELEMENT_A
end
self.contents.font.color = system_color
self.contents.draw_text(0, dy, sw/2, WLH, text)
dx = sw - (drawn_elements.size * 24)
for ele_id in drawn_elements
draw_icon(YE::REDUX::SHOP::SHOWN_ELEMENTS[ele_id], dx, dy)
dx += 24
end
end
return if (dy + 48) >= (self.height - 32)
#------STATUS EFFECTS------
drawn_states = []
for state_id in @item.state_set
state = $data_states[state_id]
next if state == nil
next if state.icon_index == 0
drawn_states.push(state.icon_index)
end
if drawn_states != [] # Draw Elements
dy += WLH
if @item.is_a?(RPG::Weapon)
text = YE::REDUX::SHOP::EQ_STATUS_W
else
text = YE::REDUX::SHOP::EQ_STATUS_A
end
self.contents.font.color = system_color
self.contents.draw_text(0, dy, sw/2, WLH, text)
dx = sw - (drawn_states.size * 24)
for icon in drawn_states
draw_icon(icon, dx, dy)
dx += 24
end
end
end
end # Window_ShopNumber
#===============================================================================
# Window_ShopStatus
#===============================================================================
class Window_ShopStatus < Window_Base
#--------------------------------------------------------------------------
# overwrite refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.size = Font.default_size
return if @item == nil
number = $game_party.item_number(@item)
self.contents.font.color = system_color
self.contents.draw_text(4, 0, 200, WLH, YE::REDUX::SHOP::POSSESSION)
self.contents.font.color = normal_color
self.contents.draw_text(4, 0, 200, WLH, number, 2)
return if @item.is_a?(RPG::Item)
for actor in $game_party.members
dx = 4
dy = WLH * (2 + actor.index * 2)
draw_actor_parameter_change(actor, dx, dy)
end
end
#--------------------------------------------------------------------------
# overwrite draw_actor_parameter_change
#--------------------------------------------------------------------------
def draw_actor_parameter_change(actor, x, y)
enabled = actor.equippable?(@item)
sw = self.width - 32
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.font.size = YE::REDUX::SHOP::FONTSIZE
cx = contents.text_size(YE::REDUX::SHOP::EQUIPPED).width
self.contents.font.size = Font.default_size
self.contents.draw_text(x, y, sw-cx-4, WLH, actor.name)
self.contents.font.size = YE::REDUX::SHOP::FONTSIZE
if @item.is_a?(RPG::Weapon)
item1 = weaker_weapon(actor)
elsif actor.two_swords_style and @item.kind == 0
item1 = nil
else
if $imported["EquipExtension"]
index = actor.equip_type.index(@item.kind)
item1 = (index != nil ? actor.equips[1 + index] : nil)
else
item1 = actor.equips[1 + @item.kind]
end
end
if item1 == @item
self.contents.draw_text(x, y, sw-4, WLH, YE::REDUX::SHOP::EQUIPPED, 2)
draw_item_name(item1, x, y + WLH, enabled)
return
end
#-----
if enabled
dx = 0
dy = y + WLH
for i in 0..3
case i
when 0
atk1 = item1 == nil ? 0 : item1.atk
atk2 = @item == nil ? 0 : @item.atk
change = atk2 - atk1
when 1
def1 = item1 == nil ? 0 : item1.def
def2 = @item == nil ? 0 : @item.def
change = def2 - def1
when 2
spi1 = item1 == nil ? 0 : item1.spi
spi2 = @item == nil ? 0 : @item.spi
change = spi2 - spi1
when 3
agi1 = item1 == nil ? 0 : item1.agi
agi2 = @item == nil ? 0 : @item.agi
change = agi2 - agi1
end
if change > 0
draw_icon(YE::REDUX::SHOP::STAT_INCREASE[i], dx, dy)
elsif change < 0
draw_icon(YE::REDUX::SHOP::STAT_DECREASE[i], dx, dy)
end
if change != 0
text = sprintf("%+d", change)
self.contents.draw_text(dx+24, dy, sw/4-24, WLH, text, 0)
end
dx += sw/4
end
end
#-----
end
end # Window_ShopStatus
#===============================================================================
#
# END OF FILE
#
#===============================================================================
Tanfly rewrote most of them as Yanfly Engine Melody (http://wiki.pockethouse.com/index.php?title=Main_Page)
as for why YERD was dropped, I don't know. I think there was some talk of harassment of some sort.
Yanfly said it was because Yanfly doesn't want any one to use 'subpar' scripts when I asked. I am not sure if that is the true reason however.
"Subpar" being scripts that are not as good as they could be.
Yanfly probably had an epiphany on how to code things more concisely or organize the scripts better or something. So Yanfly also no longer follows the same logic used in the older scripts, so it's no longer as easy to update them to work with everything he's doing now without a complete rewrite first.
So as a secondary reason, it's to keep people from bugging him about errors found while using the older scripts most likely. Also, Yanfly has not posted Melody anywhere like he posted ReDux. Frankly I think it makes his scripts that much more impressive for having a good following of people who will refer people to the one location all the new scripts are. I think it's pretty impressive anyway.