Guest User

Untitled

a guest
Dec 14th, 2016
37
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #==============================================================================
  2. # Vampyr Equipment Plus
  3. #==============================================================================
  4.  
  5. # Add on notes of the weapons: Kind = X, where X = one of the new kinds below:
  6. # To default armors, DON'T USE this feature.
  7.  
  8. # You only can create more 5 SLOTS.
  9. # Defaults: 0 => Weapon, 1 => Shield, 2 => Helm, 3 => Armor, 4 => Acce
  10. PlusEquips = { 5=>"Gloves", 6=>"Boots", 7=>"Pendant", 8=>"Cape" }
  11.  
  12. #------------------------------------------------------------------------------
  13. module RPG
  14.  
  15. class Armor
  16. def kind
  17. a = self.note.read("Kind", 0).to_i
  18. b = @kind
  19. return (a.to_i > 0 ? (a-1) : b)
  20. end
  21. end
  22.  
  23. end
  24.  
  25. #------------------------------------------------------------------------------
  26. class Game_Actor < Game_Battler
  27.  
  28. attr_accessor :armor5_id
  29. attr_accessor :armor6_id
  30. attr_accessor :armor7_id
  31. attr_accessor :armor8_id
  32. attr_accessor :armor9_id
  33. attr_accessor :armor10_id
  34.  
  35. alias vep_gactor_setup setup
  36.  
  37. def setup(actor_id)
  38. vep_gactor_setup(actor_id)
  39. @armor5_id = 0
  40. @armor6_id = 0
  41. @armor7_id = 0
  42. @armor8_id = 0
  43. @armor9_id = 0
  44. @armor10_id = 0
  45. end
  46.  
  47. def armors
  48. result = []
  49. unless two_swords_style
  50. result.push($data_armors[@armor1_id])
  51. end
  52. result.push($data_armors[@armor2_id])
  53. result.push($data_armors[@armor3_id])
  54. result.push($data_armors[@armor4_id])
  55. result.push($data_armors[@armor5_id])
  56. result.push($data_armors[@armor6_id])
  57. result.push($data_armors[@armor7_id])
  58. result.push($data_armors[@armor8_id])
  59. result.push($data_armors[@armor9_id])
  60. result.push($data_armors[@armor10_id])
  61. return result
  62. end
  63.  
  64. def change_equip(equip_type, item, test = false)
  65. last_item = equips[equip_type]
  66. unless test
  67. return if $game_party.item_number(item) == 0 if item != nil
  68. $game_party.gain_item(last_item, 1)
  69. $game_party.lose_item(item, 1)
  70. end
  71. item_id = item == nil ? 0 : item.id
  72. case equip_type
  73. when 0
  74. @weapon_id = item_id
  75. unless two_hands_legal?
  76. change_equip(1, nil, test)
  77. end
  78. when 1
  79. @armor1_id = item_id
  80. unless two_hands_legal?
  81. change_equip(0, nil, test)
  82. end
  83. when 2; @armor2_id = item_id
  84. when 3; @armor3_id = item_id
  85. when 4; @armor4_id = item_id
  86. when 5; @armor5_id = item_id
  87. when 6; @armor6_id = item_id
  88. when 7; @armor7_id = item_id
  89. when 8; @armor8_id = item_id
  90. when 9; @armor9_id = item_id
  91. when 10; @armor10_id = item_id
  92. end
  93. end
  94.  
  95. def discard_equip(item)
  96. if item.is_a?(RPG::Weapon)
  97. if @weapon_id == item.id
  98. @weapon_id = 0
  99. elsif two_swords_style and @armor1_id == item.id
  100. @armor1_id = 0
  101. end
  102. elsif item.is_a?(RPG::Armor)
  103. if not two_swords_style and @armor1_id == item.id
  104. @armor1_id = 0
  105. elsif @armor2_id == item.id; @armor2_id = 0
  106. elsif @armor3_id == item.id; @armor3_id = 0
  107. elsif @armor4_id == item.id; @armor4_id = 0
  108. elsif @armor5_id == item.id; @armor5_id = 0
  109. elsif @armor6_id == item.id; @armor6_id = 0
  110. elsif @armor7_id == item.id; @armor7_id = 0
  111. elsif @armor8_id == item.id; @armor8_id = 0
  112. elsif @armor9_id == item.id; @armor9_id = 0
  113. elsif @armor10_id == item.id; @armor10_id = 0
  114. end
  115. end
  116. end
  117.  
  118. end
  119.  
  120. #------------------------------------------------------------------------------
  121. class Window_Status < Window_Base
  122.  
  123. def refresh
  124. self.contents.clear
  125. draw_actor_name(@actor, 4, 0)
  126. draw_actor_class(@actor, 128, 0)
  127. draw_actor_face(@actor, 8, 32)
  128. draw_basic_info(128, 32)
  129. draw_parameters(32, 160)
  130. draw_exp_info(288, 32)
  131. draw_equipments(288, 128)
  132. end
  133.  
  134. def draw_equipments(x, y)
  135. self.contents.font.color = system_color
  136. self.contents.draw_text(x, y, 120, WLH, Vocab::equip)
  137. for i in 0..(5+PlusEquips.size)
  138. draw_item_name(@actor.equips[i], x + 16, y + WLH * (i + 1))
  139. end
  140. end
  141.  
  142. end
  143.  
  144. #------------------------------------------------------------------------------
  145. class Window_Equip < Window_Selectable
  146.  
  147. def initialize(x, y, actor)
  148. super(x, y, 336, WLH * 8 + 32)
  149. @actor = actor
  150. @item_max = (5+PlusEquips.size)
  151. refresh
  152. self.index = 0
  153. end
  154.  
  155. def refresh
  156. self.contents.clear
  157. @data = []
  158. for item in @actor.equips do @data.push(item) end
  159. @item_max = (5+PlusEquips.size)
  160. create_contents
  161. self.contents.font.color = system_color
  162. if @actor.two_swords_style
  163. self.contents.draw_text(4, WLH * 0, 92, WLH, Vocab::weapon1)
  164. self.contents.draw_text(4, WLH * 1, 92, WLH, Vocab::weapon2)
  165. else
  166. self.contents.draw_text(4, WLH * 0, 92, WLH, Vocab::weapon)
  167. self.contents.draw_text(4, WLH * 1, 92, WLH, Vocab::armor1)
  168. end
  169. self.contents.draw_text(4, WLH * 2, 92, WLH, Vocab::armor2)
  170. self.contents.draw_text(4, WLH * 3, 92, WLH, Vocab::armor3)
  171. self.contents.draw_text(4, WLH * 4, 92, WLH, Vocab::armor4)
  172. PlusEquips.each { |k, v| self.contents.draw_text(4, WLH * k, 92, WLH, v) }
  173. for i in 0...@data.size
  174. draw_item_name(@data[i], 92, WLH * i)
  175. end
  176. end
  177.  
  178. end
  179.  
  180. #------------------------------------------------------------------------------
  181. class Window_EquipStatus < Window_Base
  182.  
  183. alias vpe_wequipstatus_refresh refresh
  184.  
  185. def initialize(x, y, actor)
  186. super(x, y, 208, WLH * 8 + 32)
  187. @actor = actor
  188. refresh
  189. end
  190.  
  191. def refresh
  192. vpe_wequipstatus_refresh
  193. draw_parameter(0, WLH * 5, 4)
  194. draw_parameter(0, WLH * 6, 5)
  195. draw_parameter(0, WLH * 7, 8)
  196. end
  197.  
  198. def set_new_parameters(new_atk, new_def, new_spi, new_agi, new_hit, new_eva, new_cri)
  199. if @new_atk != new_atk or @new_def != new_def or @new_spi != new_spi or
  200. @new_agi != new_agi or @new_hit != new_hit or @new_eva != new_eva or
  201. @new_cri != new_cri
  202. @new_atk = new_atk
  203. @new_def = new_def
  204. @new_spi = new_spi
  205. @new_agi = new_agi
  206. @new_hit = new_hit
  207. @new_eva = new_eva
  208. @new_cri = new_cri
  209. refresh
  210. end
  211. end
  212.  
  213. def draw_parameter(x, y, type)
  214. case type
  215. when 0
  216. name = Vocab::atk
  217. value = @actor.atk
  218. new_value = @new_atk
  219. when 1
  220. name = Vocab::def
  221. value = @actor.def
  222. new_value = @new_def
  223. when 2
  224. name = Vocab::spi
  225. value = @actor.spi
  226. new_value = @new_spi
  227. when 3
  228. name = Vocab::agi
  229. value = @actor.agi
  230. new_value = @new_agi
  231. when 4
  232. name = "Hit"
  233. value = @actor.hit
  234. new_value = @new_hit
  235. when 5
  236. name = "Evasion"
  237. value = @actor.eva
  238. new_value = @new_eva
  239. when 6
  240. name = "Critical"
  241. value = @actor.cri
  242. new_value = @new_cri
  243. end
  244. self.contents.font.color = system_color
  245. self.contents.draw_text(x + 4, y, 80, WLH, name)
  246. self.contents.font.color = normal_color
  247. self.contents.draw_text(x + 90, y, 30, WLH, value, 2)
  248. self.contents.font.color = system_color
  249. self.contents.draw_text(x + 122, y, 20, WLH, ">", 1)
  250. if new_value != nil
  251. self.contents.font.color = new_parameter_color(value, new_value)
  252. self.contents.draw_text(x + 142, y, 30, WLH, new_value, 2)
  253. end
  254. end
  255.  
  256. end
  257.  
  258. #------------------------------------------------------------------------------
  259. class Scene_Equip < Scene_Base
  260.  
  261. def create_item_windows
  262. @item_windows = []
  263. for i in 0...(EQUIP_TYPE_MAX+PlusEquips.size)
  264. @item_windows[i] = Window_EquipItem.new(0, 280, 544, 136, @actor, i)
  265. @item_windows[i].help_window = @help_window
  266. @item_windows[i].visible = (@equip_index == i)
  267. @item_windows[i].active = false
  268. @item_windows[i].index = -1
  269. end
  270. end
  271.  
  272. def update_item_windows
  273. for i in 0...(EQUIP_TYPE_MAX+PlusEquips.size)
  274. @item_windows[i].visible = (@equip_window.index == i)
  275. @item_windows[i].update
  276. end
  277. @item_window = @item_windows[@equip_window.index]
  278. end
  279.  
  280. def update_status_window
  281. if @equip_window.active
  282. @status_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil)
  283. elsif @item_window.active
  284. temp_actor = @actor.clone
  285. temp_actor.change_equip(@equip_window.index, @item_window.item, true)
  286. new_atk = temp_actor.atk
  287. new_def = temp_actor.def
  288. new_spi = temp_actor.spi
  289. new_agi = temp_actor.agi
  290. new_hit = temp_actor.hit
  291. new_eva = temp_actor.eva
  292. new_cri = temp_actor.cri
  293. @status_window.set_new_parameters(new_atk, new_def, new_spi, new_agi, new_hit, new_eva, new_cri)
  294. end
  295. @status_window.update
  296. end
  297.  
  298. end
RAW Paste Data