Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- # Vampyr Equipment Plus
- #==============================================================================
- # Add on notes of the weapons: Kind = X, where X = one of the new kinds below:
- # To default armors, DON'T USE this feature.
- # You only can create more 5 SLOTS.
- # Defaults: 0 => Weapon, 1 => Shield, 2 => Helm, 3 => Armor, 4 => Acce
- PlusEquips = { 5=>"Gloves", 6=>"Boots", 7=>"Pendant", 8=>"Cape" }
- #------------------------------------------------------------------------------
- module RPG
- class Armor
- def kind
- a = self.note.read("Kind", 0).to_i
- b = @kind
- return (a.to_i > 0 ? (a-1) : b)
- end
- end
- end
- #------------------------------------------------------------------------------
- class Game_Actor < Game_Battler
- attr_accessor :armor5_id
- attr_accessor :armor6_id
- attr_accessor :armor7_id
- attr_accessor :armor8_id
- attr_accessor :armor9_id
- attr_accessor :armor10_id
- alias vep_gactor_setup setup
- def setup(actor_id)
- vep_gactor_setup(actor_id)
- @armor5_id = 0
- @armor6_id = 0
- @armor7_id = 0
- @armor8_id = 0
- @armor9_id = 0
- @armor10_id = 0
- end
- def armors
- result = []
- unless two_swords_style
- result.push($data_armors[@armor1_id])
- end
- result.push($data_armors[@armor2_id])
- result.push($data_armors[@armor3_id])
- result.push($data_armors[@armor4_id])
- result.push($data_armors[@armor5_id])
- result.push($data_armors[@armor6_id])
- result.push($data_armors[@armor7_id])
- result.push($data_armors[@armor8_id])
- result.push($data_armors[@armor9_id])
- result.push($data_armors[@armor10_id])
- return result
- end
- def change_equip(equip_type, item, test = false)
- last_item = equips[equip_type]
- unless test
- return if $game_party.item_number(item) == 0 if item != nil
- $game_party.gain_item(last_item, 1)
- $game_party.lose_item(item, 1)
- end
- item_id = item == nil ? 0 : item.id
- case equip_type
- when 0
- @weapon_id = item_id
- unless two_hands_legal?
- change_equip(1, nil, test)
- end
- when 1
- @armor1_id = item_id
- unless two_hands_legal?
- change_equip(0, nil, test)
- end
- when 2; @armor2_id = item_id
- when 3; @armor3_id = item_id
- when 4; @armor4_id = item_id
- when 5; @armor5_id = item_id
- when 6; @armor6_id = item_id
- when 7; @armor7_id = item_id
- when 8; @armor8_id = item_id
- when 9; @armor9_id = item_id
- when 10; @armor10_id = item_id
- end
- end
- def discard_equip(item)
- if item.is_a?(RPG::Weapon)
- if @weapon_id == item.id
- @weapon_id = 0
- elsif two_swords_style and @armor1_id == item.id
- @armor1_id = 0
- end
- elsif item.is_a?(RPG::Armor)
- if not two_swords_style and @armor1_id == item.id
- @armor1_id = 0
- elsif @armor2_id == item.id; @armor2_id = 0
- elsif @armor3_id == item.id; @armor3_id = 0
- elsif @armor4_id == item.id; @armor4_id = 0
- elsif @armor5_id == item.id; @armor5_id = 0
- elsif @armor6_id == item.id; @armor6_id = 0
- elsif @armor7_id == item.id; @armor7_id = 0
- elsif @armor8_id == item.id; @armor8_id = 0
- elsif @armor9_id == item.id; @armor9_id = 0
- elsif @armor10_id == item.id; @armor10_id = 0
- end
- end
- end
- end
- #------------------------------------------------------------------------------
- class Window_Status < Window_Base
- def refresh
- self.contents.clear
- draw_actor_name(@actor, 4, 0)
- draw_actor_class(@actor, 128, 0)
- draw_actor_face(@actor, 8, 32)
- draw_basic_info(128, 32)
- draw_parameters(32, 160)
- draw_exp_info(288, 32)
- draw_equipments(288, 128)
- end
- def draw_equipments(x, y)
- self.contents.font.color = system_color
- self.contents.draw_text(x, y, 120, WLH, Vocab::equip)
- for i in 0..(5+PlusEquips.size)
- draw_item_name(@actor.equips[i], x + 16, y + WLH * (i + 1))
- end
- end
- end
- #------------------------------------------------------------------------------
- class Window_Equip < Window_Selectable
- def initialize(x, y, actor)
- super(x, y, 336, WLH * 8 + 32)
- @actor = actor
- @item_max = (5+PlusEquips.size)
- refresh
- self.index = 0
- end
- def refresh
- self.contents.clear
- @data = []
- for item in @actor.equips do @data.push(item) end
- @item_max = (5+PlusEquips.size)
- create_contents
- self.contents.font.color = system_color
- if @actor.two_swords_style
- self.contents.draw_text(4, WLH * 0, 92, WLH, Vocab::weapon1)
- self.contents.draw_text(4, WLH * 1, 92, WLH, Vocab::weapon2)
- else
- self.contents.draw_text(4, WLH * 0, 92, WLH, Vocab::weapon)
- self.contents.draw_text(4, WLH * 1, 92, WLH, Vocab::armor1)
- end
- self.contents.draw_text(4, WLH * 2, 92, WLH, Vocab::armor2)
- self.contents.draw_text(4, WLH * 3, 92, WLH, Vocab::armor3)
- self.contents.draw_text(4, WLH * 4, 92, WLH, Vocab::armor4)
- PlusEquips.each { |k, v| self.contents.draw_text(4, WLH * k, 92, WLH, v) }
- for i in 0...@data.size
- draw_item_name(@data[i], 92, WLH * i)
- end
- end
- end
- #------------------------------------------------------------------------------
- class Window_EquipStatus < Window_Base
- alias vpe_wequipstatus_refresh refresh
- def initialize(x, y, actor)
- super(x, y, 208, WLH * 8 + 32)
- @actor = actor
- refresh
- end
- def refresh
- vpe_wequipstatus_refresh
- draw_parameter(0, WLH * 5, 4)
- draw_parameter(0, WLH * 6, 5)
- draw_parameter(0, WLH * 7, 8)
- end
- def set_new_parameters(new_atk, new_def, new_spi, new_agi, new_hit, new_eva, new_cri)
- if @new_atk != new_atk or @new_def != new_def or @new_spi != new_spi or
- @new_agi != new_agi or @new_hit != new_hit or @new_eva != new_eva or
- @new_cri != new_cri
- @new_atk = new_atk
- @new_def = new_def
- @new_spi = new_spi
- @new_agi = new_agi
- @new_hit = new_hit
- @new_eva = new_eva
- @new_cri = new_cri
- refresh
- end
- end
- def draw_parameter(x, y, type)
- case type
- when 0
- name = Vocab::atk
- value = @actor.atk
- new_value = @new_atk
- when 1
- name = Vocab::def
- value = @actor.def
- new_value = @new_def
- when 2
- name = Vocab::spi
- value = @actor.spi
- new_value = @new_spi
- when 3
- name = Vocab::agi
- value = @actor.agi
- new_value = @new_agi
- when 4
- name = "Hit"
- value = @actor.hit
- new_value = @new_hit
- when 5
- name = "Evasion"
- value = @actor.eva
- new_value = @new_eva
- when 6
- name = "Critical"
- value = @actor.cri
- new_value = @new_cri
- end
- self.contents.font.color = system_color
- self.contents.draw_text(x + 4, y, 80, WLH, name)
- self.contents.font.color = normal_color
- self.contents.draw_text(x + 90, y, 30, WLH, value, 2)
- self.contents.font.color = system_color
- self.contents.draw_text(x + 122, y, 20, WLH, ">", 1)
- if new_value != nil
- self.contents.font.color = new_parameter_color(value, new_value)
- self.contents.draw_text(x + 142, y, 30, WLH, new_value, 2)
- end
- end
- end
- #------------------------------------------------------------------------------
- class Scene_Equip < Scene_Base
- def create_item_windows
- @item_windows = []
- for i in 0...(EQUIP_TYPE_MAX+PlusEquips.size)
- @item_windows[i] = Window_EquipItem.new(0, 280, 544, 136, @actor, i)
- @item_windows[i].help_window = @help_window
- @item_windows[i].visible = (@equip_index == i)
- @item_windows[i].active = false
- @item_windows[i].index = -1
- end
- end
- def update_item_windows
- for i in 0...(EQUIP_TYPE_MAX+PlusEquips.size)
- @item_windows[i].visible = (@equip_window.index == i)
- @item_windows[i].update
- end
- @item_window = @item_windows[@equip_window.index]
- end
- def update_status_window
- if @equip_window.active
- @status_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil)
- elsif @item_window.active
- temp_actor = @actor.clone
- temp_actor.change_equip(@equip_window.index, @item_window.item, true)
- new_atk = temp_actor.atk
- new_def = temp_actor.def
- new_spi = temp_actor.spi
- new_agi = temp_actor.agi
- new_hit = temp_actor.hit
- new_eva = temp_actor.eva
- new_cri = temp_actor.cri
- @status_window.set_new_parameters(new_atk, new_def, new_spi, new_agi, new_hit, new_eva, new_cri)
- end
- @status_window.update
- end
- end
RAW Paste Data