Advertisement
MrTrivel

MrTS_Conjure_Weapons

Jun 14th, 2014
617
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 5.98 KB | None | 0 0
  1. # )-----------------------------------------------------(
  2. # )--     Author:     Mr Trivel                       --(
  3. # )--     Name:       Conjure Weapons                 --(
  4. # )--     Created:    2014-06-14                      --(
  5. # )--     Version:    1.0b                            --(
  6. # )-----------------------------------------------------(
  7. # )--     Requires:   None                            --(
  8. # )-----------------------------------------------------(
  9. # )--             Description                         --(
  10. # )--  Spells now allow you to equip magical weapons. --(
  11. # )-----------------------------------------------------(
  12. # )--             Instructions                        --(
  13. # )--  Use the following Note tag on a skill:         --(
  14. # )--  <Wequip: X, Y> or <Wequip: X>                  --(
  15. # )--  X - Weapon ID in the database, Y - duration.   --(
  16. # )--  If duration is not specified, the weapon will  --(
  17. # )--  last whole battle.                             --(
  18. # )-----------------------------------------------------(
  19. # )--             LICENSE INFO                        --(
  20. # )-- http://mrtrivelvx.wordpress.com/terms-of-use/   --(
  21. # )-----------------------------------------------------(
  22.  
  23. # )-------------------------(
  24. # )--  Class: RPG::Skill  --(
  25. # )-------------------------(
  26. class RPG::Skill < RPG::UsableItem
  27.   # )-------------------------------(
  28.   # )--  New Method: spell_equip  --(
  29.   # )-------------------------------(
  30.   def spell_equip
  31.     return nil unless note[/<wequip:\s*(\d*),*\s*(\d*)>/i]
  32.     return [$1.to_i] if $2.to_i == 0
  33.     return [$1.to_i, $2.to_i+1]
  34.   end
  35. end
  36.  
  37.  
  38. $imported = {} if $imported.nil?
  39. $imported["MrTS_Conjured_Weapons"] = true
  40.  
  41. # )-------------------------(
  42. # )--  Class: RPG::Skill  --(
  43. # )-------------------------(
  44. class Game_Actor < Game_Battler
  45.  
  46.   attr_reader   :original_weapon
  47.   attr_reader   :conjured_weapon_timer
  48.  
  49.   # )----------------------------------(
  50.   # )--  Alias to: item_user_effect  --(
  51.   # )----------------------------------(
  52.   alias mrts_item_user_effect item_user_effect
  53.   def item_user_effect(user, item)
  54.     mrts_item_user_effect(user, item)
  55.     w_data = item.spell_equip if item.is_a?(RPG::Skill)
  56.     unless !w_data
  57.       t_wep = $data_weapons[w_data[0]]
  58.       @conjured_weapon_timer = nil
  59.       @original_weapon = user.weapons[0] unless @original_weapon
  60.       @conjured_weapon_timer = w_data[1] if w_data[1]
  61.       user.force_change_equip(0, t_wep)
  62.       @result.conjured = true
  63.     end
  64.   end
  65.  
  66.   # )-------------------------------(
  67.   # )--  Alias to: on_battle_end  --(
  68.   # )-------------------------------(
  69.   alias mrts_on_battle_end on_battle_end
  70.   def on_battle_end
  71.     if @original_weapon
  72.       force_change_equip(0, @original_weapon)
  73.       @original_weapon = nil
  74.     end
  75.     mrts_on_battle_end
  76.   end
  77.  
  78.   # )-----------------------------(
  79.   # )--  Alias to: on_turn_end  --(
  80.   # )-----------------------------(
  81.   alias mrts_on_turn_end on_turn_end
  82.   def on_turn_end
  83.     mrts_on_turn_end
  84.     @conjured_weapon_timer -= 1 if @conjured_weapon_timer
  85.     if @conjured_weapon_timer && @conjured_weapon_timer <= 0 && @original_weapon
  86.       force_change_equip(0, @original_weapon)
  87.       @original_weapon = nil
  88.       @conjured_weapon_timer = nil
  89.       @result.conjure_end = true
  90.     end
  91.   end
  92.  
  93.   def release_unequippable_items(item_gain = true)
  94.     loop do
  95.       last_equips = equips.dup
  96.       @equips.each_with_index do |item, i|
  97.         if (!equippable?(item.object) || item.object.etype_id != equip_slots[i]) && !(item.object.is_a?(RPG::Weapon) && original_weapon)
  98.           trade_item_with_party(nil, item.object) if item_gain
  99.           item.object = nil
  100.         end
  101.       end
  102.       return if equips == last_equips
  103.     end
  104.   end
  105. end
  106.  
  107. # )-------------------------------(
  108. # )--  Class: Window_BattleLog  --(
  109. # )-------------------------------(
  110. class Window_BattleLog < Window_Selectable
  111.  
  112.   # )-----------------------------------------(
  113.   # )--  Overwrite Method: display_failure  --(
  114.   # )-----------------------------------------(
  115.   def display_failure(target, item)
  116.     if target.result.hit? && !target.result.success && !target.result.conjured
  117.       add_text(sprintf(Vocab::ActionFailure, target.name))
  118.       wait
  119.     end
  120.   end
  121. end
  122.  
  123. # )--------------------------------(
  124. # )--  Class: Game_ActionResult  --(
  125. # )--------------------------------(
  126. class Game_ActionResult
  127.   #--------------------------------------------------------------------------
  128.   # * Public Instance Variables
  129.   #--------------------------------------------------------------------------
  130.   attr_accessor :conjured                     # conjured flag
  131.   attr_accessor :conjure_end
  132.  
  133.   # )--------------------------------(
  134.   # )--  Overwrite Method:  clear  --(
  135.   # )--------------------------------(
  136.   alias mrts_clear clear
  137.   def clear
  138.     mrts_clear
  139.     @conjured = false
  140.   end
  141.  
  142.   # )-------------------------------------(
  143.   # )--  New Method: clear_conjuration  --(
  144.   # )-------------------------------------(
  145.   def clear_conjuration
  146.     @conjure_end = false
  147.   end
  148. end
  149.  
  150. # )---------------------------(
  151. # )--  Class: Scene_Battle  --(
  152. # )---------------------------(
  153. class Scene_Battle < Scene_Base
  154.  
  155.   # )------------------------------(
  156.   # )--  Alias Method: turn_end  --(
  157.   # )------------------------------(
  158.   alias mrts_sb_cw_turn_end turn_end
  159.   def turn_end
  160.     mrts_sb_cw_turn_end
  161.     all_battle_members.each do |battler|
  162.       battler.result.clear_conjuration
  163.     end
  164.   end
  165. end
  166.  
  167. # )-------------------------------(
  168. # )--  Class: Window_BattleLog  --(
  169. # )-------------------------------(
  170. class Window_BattleLog < Window_Selectable
  171.   # )-----------------------------------------------(
  172.   # )--  New Method: display_conjure_effect_loss  --(
  173.   # )-----------------------------------------------(
  174.     def display_conjure_effect_loss(subject)
  175.     if subject.result.conjure_end
  176.       add_text("Conjured weapon of " + subject.name + " has ended.")
  177.       wait
  178.     end
  179.   end
  180. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement