Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- # ** Custom Shop Window By Black Mage
- #==============================================================================
- #==============================================================================
- # ** Window_ShopBuy
- #------------------------------------------------------------------------------
- # This window displays buyable goods on the shop screen.
- #==============================================================================
- class Window_ShopBuy < Window_Selectable
- #--------------------------------------------------------------------------
- # * Object Initialization
- # shop_goods : goods
- #--------------------------------------------------------------------------
- def initialize(shop_goods)
- super(0, 128, 640, 132)
- @shop_goods = shop_goods
- refresh
- self.index = 0
- end
- #--------------------------------------------------------------------------
- # * Item Acquisition
- #--------------------------------------------------------------------------
- def item
- return @data[self.index]
- end
- #--------------------------------------------------------------------------
- # * Refresh
- #--------------------------------------------------------------------------
- def refresh
- if self.contents != nil
- self.contents.dispose
- self.contents = nil
- end
- @data = []
- for goods_item in @shop_goods
- case goods_item[0]
- when 0
- item = $data_items[goods_item[1]]
- number = $game_party.item_number(@item.id)
- when 1
- item = $data_weapons[goods_item[1]]
- number = $game_party.weapon_number(@item.id)
- when 2
- item = $data_armors[goods_item[1]]
- number = $game_party.armor_number(@item.id)
- end
- if item != nil
- @data.push(item)
- end
- end
- # If item count is not 0, make a bit map and draw all items
- @item_max = @data.size
- if @item_max > 0
- self.contents = Bitmap.new(width - 32, row_max * 32)
- for i in 0...@item_max
- draw_item(i)
- end
- end
- end
- #--------------------------------------------------------------------------
- # * Draw Item
- # index : item number
- #--------------------------------------------------------------------------
- def draw_item(index)
- item = @data[index]
- # Get items in possession
- case item
- when RPG::Item
- number = $game_party.item_number(item.id)
- when RPG::Weapon
- number = $game_party.weapon_number(item.id)
- when RPG::Armor
- number = $game_party.armor_number(item.id)
- end
- # If price is less than money in possession, and amount in possession is
- # not 99, then set to normal text color. Otherwise set to disabled color
- if item.price <= $game_party.gold and number < 99
- self.contents.font.color = normal_color
- else
- self.contents.font.color = disabled_color
- end
- x = 4
- y = index * 32
- rect = Rect.new(x, y, self.width - 32, 32)
- self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
- bitmap = RPG::Cache.icon(item.icon_name)
- opacity = self.contents.font.color == normal_color ? 255 : 128
- self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
- self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
- self.contents.draw_text(x + 260, y, 88, 32, "Price :")
- self.contents.draw_text(x + 300, y, 88, 32, item.price.to_s, 2)
- self.contents.draw_text(x + 470, y, 88, 32, "Owned :")
- self.contents.draw_text(x + 550, y, 32, 32, number.to_s, 2)
- end
- #--------------------------------------------------------------------------
- # * Help Text Update
- #--------------------------------------------------------------------------
- def update_help
- @help_window.set_text(self.item == nil ? "" : self.item.description)
- end
- end
- #==============================================================================
- # ** Window_ShopStatus
- #------------------------------------------------------------------------------
- # This window displays number of items in possession and the actor's equipment
- # on the shop screen.
- #==============================================================================
- class Window_ShopStatus < Window_Base
- #--------------------------------------------------------------------------
- # * Object Initialization
- #--------------------------------------------------------------------------
- def initialize
- super(0, 260, 640, 220)
- self.contents = Bitmap.new(width - 32, height - 32)
- @item = nil
- refresh
- end
- #--------------------------------------------------------------------------
- # * Refresh
- #--------------------------------------------------------------------------
- def refresh
- self.contents.clear
- if @item == nil
- return
- end
- case @item
- when RPG::Item
- number = $game_party.item_number(@item.id)
- when RPG::Weapon
- number = $game_party.weapon_number(@item.id)
- when RPG::Armor
- number = $game_party.armor_number(@item.id)
- end
- if @item.is_a?(RPG::Item)
- return
- end
- # Equipment adding information
- for i in 0...$game_party.actors.size
- # Get actor
- actor = $game_party.actors[i]
- # If equippable, then set to normal text color. If not, set to
- # invalid text color.
- if actor.equippable?(@item)
- self.contents.font.color = normal_color
- disabler = false
- else
- self.contents.font.color = Color.new(255, 255, 255, 128)
- disabler = true
- end
- # Get current equipment
- if @item.is_a?(RPG::Weapon)
- check = $data_weapons[actor.weapon_id]
- if check ==nil
- oldwpnstr = 0
- oldwpndex = 0
- oldwpnint = 0
- oldwpnagi = 0
- oldwpnpdf = 0
- oldwpnmdf = 0
- atkwpn = 0
- else
- oldwpnstr = $data_weapons[actor.weapon_id].str_plus
- oldwpndex = $data_weapons[actor.weapon_id].dex_plus
- oldwpnint = $data_weapons[actor.weapon_id].int_plus
- oldwpnagi = $data_weapons[actor.weapon_id].agi_plus
- oldwpnpdf = $data_weapons[actor.weapon_id].pdef
- oldwpnmdf = $data_weapons[actor.weapon_id].mdef
- atkwpn = @item.atk
- end
- elsif @item.kind == 0
- check = $data_armors[actor.armor1_id]
- if check ==nil
- oldwpnstr = 0
- oldwpndex = 0
- oldwpnint = 0
- oldwpnagi = 0
- oldwpnpdf = 0
- oldwpnmdf = 0
- atkwpn = 0
- else
- oldwpnstr = $data_armors[actor.armor1_id].str_plus
- oldwpndex = $data_armors[actor.armor1_id].dex_plus
- oldwpnint = $data_armors[actor.armor1_id].int_plus
- oldwpnagi = $data_armors[actor.armor1_id].agi_plus
- oldwpnpdf = $data_armors[actor.armor1_id].pdef
- oldwpnmdf = $data_armors[actor.armor1_id].mdef
- atkwpn = 0
- end
- elsif @item.kind == 1
- check = $data_armors[actor.armor2_id]
- if check ==nil
- oldwpnstr = 0
- oldwpndex = 0
- oldwpnint = 0
- oldwpnagi = 0
- oldwpnpdf = 0
- oldwpnmdf = 0
- atkwpn = 0
- else
- oldwpnstr = $data_armors[actor.armor2_id].str_plus
- oldwpndex = $data_armors[actor.armor2_id].dex_plus
- oldwpnint = $data_armors[actor.armor2_id].int_plus
- oldwpnagi = $data_armors[actor.armor2_id].agi_plus
- oldwpnpdf = $data_armors[actor.armor2_id].pdef
- oldwpnmdf = $data_armors[actor.armor2_id].mdef
- atkwpn = 0
- end
- elsif @item.kind == 2
- check = $data_armors[actor.armor3_id]
- if check ==nil
- oldwpnstr = 0
- oldwpndex = 0
- oldwpnint = 0
- oldwpnagi = 0
- oldwpnpdf = 0
- oldwpnmdf = 0
- atkwpn = 0
- else
- oldwpnstr = $data_armors[actor.armor3_id].str_plus
- oldwpndex = $data_armors[actor.armor3_id].dex_plus
- oldwpnint = $data_armors[actor.armor3_id].int_plus
- oldwpnagi = $data_armors[actor.armor3_id].agi_plus
- oldwpnpdf = $data_armors[actor.armor3_id].pdef
- oldwpnmdf = $data_armors[actor.armor3_id].mdef
- atkwpn = 0
- end
- else
- check = $data_armors[actor.armor4_id]
- if check ==nil
- oldwpnstr = 0
- oldwpndex = 0
- oldwpnint = 0
- oldwpnagi = 0
- oldwpnpdf = 0
- oldwpnmdf = 0
- atkwpn = 0
- else
- oldwpnstr = $data_armors[actor.armor4_id].str_plus
- oldwpndex = $data_armors[actor.armor4_id].dex_plus
- oldwpnint = $data_armors[actor.armor4_id].int_plus
- oldwpnagi = $data_armors[actor.armor4_id].agi_plus
- oldwpnpdf = $data_armors[actor.armor4_id].pdef
- oldwpnmdf = $data_armors[actor.armor4_id].mdef
- atkwpn = 0
- end
- end
- # Draw item
- x = 4 + 152*i
- y = 24
- # Draw actor's name
- self.contents.draw_text(4 + 152*i, -8, 120, 32, actor.name)
- opacity = self.contents.font.color == normal_color ? 255 : 128
- if disabler == false
- self.contents.font.color = system_color
- end
- self.contents.draw_text(x, y-2, 212, 32, "STR")
- self.contents.draw_text(x, y+19, 212, 32, "DEX")
- self.contents.draw_text(x, y+40, 212, 32, "INT")
- self.contents.draw_text(x, y+61, 212, 32, "AGI")
- self.contents.draw_text(x, y+82, 212, 32, "ATK")
- self.contents.draw_text(x, y+103, 212, 32, "PDEF")
- self.contents.draw_text(x, y+124, 212, 32, "MDEF")
- if disabler == false
- self.contents.font.color = normal_color
- end
- # Draw STR
- act = actor.str
- wpn = @item.str_plus - oldwpnstr
- self.contents.draw_text(64 + 152*i, y-2, 112, 32, act.to_s(10))
- if disabler == false
- if wpn > 0
- self.contents.font.color = Color.new(0, 100, 255, 255)
- elsif wpn < 0
- self.contents.font.color = Color.new(100, 0, 0, 255)
- else
- self.contents.font.color = normal_color
- end
- self.contents.draw_text(32 + 152*i, y-2, 112, 32, sprintf("%+d", wpn), 2)
- end
- # Draw DEX
- act = actor.dex
- wpn = @item.dex_plus - oldwpndex
- if disabler == false
- self.contents.font.color = normal_color
- end
- self.contents.draw_text(64 + 152*i, y+19, 112, 32, act.to_s(10))
- if disabler == false
- if wpn > 0
- self.contents.font.color = Color.new(0, 100, 255, 255)
- elsif wpn < 0
- self.contents.font.color = Color.new(100, 0, 0, 255)
- else
- self.contents.font.color = normal_color
- end
- self.contents.draw_text(32 + 152*i, y+19, 112, 32, sprintf("%+d", wpn), 2)
- end
- # Draw INT
- act = actor.int
- wpn = @item.int_plus - oldwpnint
- if disabler == false
- self.contents.font.color = normal_color
- end
- self.contents.draw_text(64 + 152*i, y+40, 112, 32, act.to_s(10))
- if disabler == false
- if wpn > 0
- self.contents.font.color = Color.new(0, 100, 255, 255)
- elsif wpn < 0
- self.contents.font.color = Color.new(100, 0, 0, 255)
- else
- self.contents.font.color = normal_color
- end
- self.contents.draw_text(32 + 152*i, y+40, 112, 32, sprintf("%+d", wpn), 2)
- end
- # Draw AGI
- act = actor.agi
- wpn = @item.agi_plus - oldwpnagi
- if disabler == false
- self.contents.font.color = normal_color
- end
- self.contents.draw_text(64 + 152*i, y+61, 112, 32, act.to_s(10))
- if disabler == false
- if wpn > 0
- self.contents.font.color = Color.new(0, 100, 255, 255)
- elsif wpn < 0
- self.contents.font.color = Color.new(100, 0, 0, 255)
- else
- self.contents.font.color = normal_color
- end
- self.contents.draw_text(32 + 152*i, y+61, 112, 32, sprintf("%+d", wpn), 2)
- end
- # Draw ATK
- act = actor.atk
- if disabler == false
- self.contents.font.color = normal_color
- end
- self.contents.draw_text(64 + 152*i, y+82, 112, 32, act.to_s(10))
- if disabler == false
- if atkwpn > 0
- self.contents.font.color = Color.new(0, 100, 255, 255)
- elsif atkwpn < 0
- self.contents.font.color = Color.new(100, 0, 0, 255)
- else
- self.contents.font.color = normal_color
- end
- self.contents.draw_text(32 + 152*i, y+82, 112, 32, sprintf("%+d", atkwpn), 2)
- end
- # Draw PDEF
- act = actor.pdef
- wpn = @item.pdef - oldwpnpdf
- if disabler == false
- self.contents.font.color = normal_color
- end
- self.contents.draw_text(64 + 152*i, y+103, 112, 32, act.to_s(10))
- if disabler == false
- if wpn > 0
- self.contents.font.color = Color.new(0, 100, 255, 255)
- elsif wpn < 0
- self.contents.font.color = Color.new(100, 0, 0, 255)
- else
- self.contents.font.color = normal_color
- end
- self.contents.draw_text(32 + 152*i, y+103, 112, 32, sprintf("%+d", wpn), 2)
- end
- # Draw MDEF
- act = actor.mdef
- wpn = @item.mdef - oldwpnmdf
- if disabler == false
- self.contents.font.color = normal_color
- end
- self.contents.draw_text(64 + 152*i, y+124, 112, 32, act.to_s(10))
- if disabler == false
- if wpn > 0
- self.contents.font.color = Color.new(0, 100, 255, 255)
- elsif wpn < 0
- self.contents.font.color = Color.new(100, 0, 0, 255)
- else
- self.contents.font.color = normal_color
- end
- self.contents.draw_text(32 + 152*i, y+124, 112, 32, sprintf("%+d", wpn), 2)
- end
- end
- end
- #--------------------------------------------------------------------------
- # * Set Item
- # item : new item
- #--------------------------------------------------------------------------
- def item=(item)
- if @item != item
- @item = item
- refresh
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement