TheoAllen

Armor upgrade fix

Aug 19th, 2013
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 21.32 KB | None | 0 0
  1. # =============================================================================
  2. # Smithing -- Simply Upgrade Your Weapon
  3. # By : TheoAllen feat richter_h
  4. # -----------------------------------------------------------------------------
  5. # Version : 1.1
  6. # Contact : www.rpgmakerid.com (or) http://theolized.blogspot.com
  7. # (English Documentation)
  8. # =============================================================================
  9. ($imported ||= {})[:Miri_Tailoring] = true
  10. # =============================================================================
  11. # CHANGE LOGS:
  12. # -----------------------------------------------------------------------------
  13. # 2013.08.18 - Raise compatibility among various script
  14. # 2013.08.16 - Finished script
  15. # 2013.08.15 - Started script
  16. # =============================================================================
  17. =begin
  18.   # --------------------------------------------------------------------------
  19.   Prelude :
  20.   I heard you guys are really obsessed with richter_h's upgrade weapon script
  21.   for RMVX / RGSS2. One of you are desperately bumping the thread request in a
  22.   countless time. Well, I hope with this script may solve your life problems :P
  23.  
  24.   # --------------------------------------------------------------------------
  25.   Introduction :
  26.   This script allow you to upgrade your equipped weapon just like suikoden.
  27.   Well, at least my friend, richter_h said so. I never played suikoden actually
  28.  
  29.   # --------------------------------------------------------------------------
  30.   What are inside this script?
  31.   - Add basic parameter for every weapon in each level. You may change ATK,
  32.     DEF, or even MHP.
  33.   - Change your weapon's name from a simple "Short sword" into "Shorter Sword",
  34.     "Bodycleaver", "Excalibur", or even "Super Awesome Sword"? your choice.
  35.   - Different name means that it also need a different icon and description,
  36.     isn't it? Who knows if a wooden sword suddenly turned into a great hammer
  37.     after upgrade it?
  38.   - Highly customizable vocab. You may change every quotes to your language
  39.   - Customizable color composition.
  40.   - Customizable price formula
  41.  
  42.   # --------------------------------------------------------------------------
  43.   How to use?
  44.   Put this script below material but above main
  45.   To call the smithing menu, write down this following line to script call
  46.   SceneManager.call(Scene_Tailor)
  47.  
  48.   Don't forget to edit the extra configurations.
  49.  
  50.   # --------------------------------------------------------------------------
  51.   Terms of use :
  52.   Credit me, TheoAllen. Because rewrite this script for RGSS3 is not that
  53.   simple if you know. And don't forget to credit richter_h as well. He provides
  54.   the basic workflows, so I can rewrite this script for RGSS3.
  55.  
  56.   # --------------------------------------------------------------------------
  57.   Questions :
  58.   Q : Can I add some features for the next upgraded weapon?
  59.   A : No, you can't. I just have no idea how to make user-friendly
  60.       configuration for that feature
  61.   Q : Where's the socket?
  62.   A : After my friend's, richter_h made them for his RGSS2 script, I'll also
  63.       update my script as well.
  64.   Q : Where's the SEs configuration?
  65.   A : Personally, I don't like those SEs when the upgrading is in progress. So
  66.       I remove them. Add by yourself if you dare :v
  67.  
  68. =end
  69. # =============================================================================
  70. # Extra Configurations. Brace yourself, there're a lot of works to do
  71. # =============================================================================
  72. module MIRI
  73.   module Tailor
  74.   # =========================================================================
  75.   # General settings
  76.   # -------------------------------------------------------------------------
  77.     MenuActor_Size    = 125   # Menu actor width
  78.     GoldWindow_Size   = 125   # Gold window width
  79.     Confirm_Width     = 80    # Yes/No confirmation width
  80.     NotifShowDuration = 200   # Duration for showing notification
  81.   # =========================================================================
  82.    
  83.   # =========================================================================
  84.   # Price Settings
  85.   # -------------------------------------------------------------------------
  86.   # These settings are for price. You may use your custom formula to optimize
  87.   # your upgraded weapon price.
  88.   #
  89.   # The price formula divided by two.
  90.   # - PriceUpgrade = The cost requirement for upgrading the weapon
  91.   # - PriceTrade = The cost formula for shop processing
  92.   #
  93.   # These are provided variables
  94.   # - item_price = the original item price in database
  95.   # - base_price = same as PriceBase
  96.   # - level = The upgraded weapon level
  97.   #
  98.   # Beware, the false formula may causes an error
  99.   # -------------------------------------------------------------------------
  100.     PriceBase     = 10
  101.     PriceUpgrade  = "item_price/2 + (base_price * level)"
  102.     PriceTrade    = "item_price + ((item_price/2) * level)"
  103.   # =========================================================================
  104.  
  105.   # =========================================================================
  106.   # Color Settings :
  107.   # These are for color setting. The color code is same as \C[n] in message
  108.   # -------------------------------------------------------------------------
  109.     module Colour
  110.       Level       = 6   # Level color
  111.       Maxout      = 21  # Maxout color
  112.       Upgradable  = 24  # Upgradable color
  113.     end
  114.   # =========================================================================
  115.   # Smithing Vocabs list :
  116.   # Wanna translate to your languange? Do not hesitate to change these
  117.   # settings.
  118.   # -------------------------------------------------------------------------
  119.     module PVocab
  120.       Cost        = "Cost: "
  121.       Level       = "Lv.%d"
  122.       Upgradable  = "Upgradable"
  123.       Maxout      = "Maxed Out"
  124.       Yes_Confirm = "Yes"
  125.       No_Confirm  = "No"
  126.      
  127.       Select_Armor   = "Whose armor will be upgraded?"
  128.       Decide_Armor   = "Upgrade this armor?"
  129.       Upgraded_Quote  = "Upgrade complete"
  130.      
  131.       NotifNameChange = "Armor changed to %s"
  132.       NotifNormal     = "Armor Improved"
  133.     end
  134.   # ==========================================================================
  135.   # Weapon Upgrade Table (Main Configuration)
  136.   # This is the main course for this script. You may called this an
  137.   # "Upgrade Tree" or "Weapon tree".
  138.   #
  139.   # You must follow the instruction to make sure the script will work.
  140.   # --------------------------------------------------------------------------
  141.    
  142.     A_Upgrade_Table = { # <-- Do not touch this at all cost!
  143.    
  144.     # ------------------------------------------------------------------------
  145.     # Upgrade tree format.
  146.     # ------------------------------------------------------------------------
  147.     # ID => [ <-- opening
  148.     #
  149.     #       [{:symbol => num}, icon_index, name, description],  # Level 2
  150.     #       [{:symbol => num}, icon_index, name, description],  # Level 3
  151.     #       [ <add more here for the next level> ],             # Level 4
  152.     #
  153.     #       ], <-- ending (do not forget to add comma!)
  154.     # ------------------------------------------------------------------------
  155.     # Just a quick guide won't kill yourself :)
  156.     # ------------------------------------------------------------------------
  157.     # ID                = Weapon ID in database.
  158.     #
  159.     # {:symbol => num } = Once you've upgrade your weapon, the parameter will
  160.     #                     change whether it's up or down. Use the symbol to
  161.     #                     represent the status. Here's the list:
  162.     #                     ---------------------------------------------------
  163.     #                     :atk = attack     || :def = defense
  164.     #                     :mat = magic atk  || :mdf = magic defense
  165.     #                     :agi = agility    || :luk = luck
  166.     #                     :mhp = Max HP     || :mmp = Max MP
  167.     #                     ---------------------------------------------------
  168.     #                     And "num" is a number represent to parameter change
  169.     #
  170.     # icon_index        = Represent as icon index. You may look the icon
  171.     #                     index when you open the icon window dialog box and
  172.     #                     see to the bottom left of that window. Use -1 if you
  173.     #                     don't want to change weapon's icon once upgraded.
  174.     #
  175.     # name              = The new name of upgraded weapon. Leave it blank ("")
  176.     #                     if you wanna keep the original name
  177.     #
  178.     # description       = The new description of upgraded weapon. Leave it
  179.     #                     blank ("") if you wanna keep the original description
  180.     #
  181.     # Here's the example :
  182.     # ------------------------------------------------------------------------
  183.       1  => [
  184.             [{:def => 1},-1,"",""], # dont forget comma
  185.             [{:def => 1},-1,"",""],
  186.             [{:def => 1},-1,"Common Clothes","I be a talented Tailor."],
  187.             [{:def => 1},-1,"",""],
  188.             [{:def => 1},-1,"",""],
  189.             [{:def => 1},-1,"Beautiful Clothes","A better looking clothes."],
  190.             [{:def => 1},-1,"",""],
  191.             [{:def => 1},-1,"",""],
  192.             [{:def => 1},-1,"",""],
  193.             [{:def => 1},-1,"Luxery Clothes","These are my luxery clothes"],
  194.             ], # dont forget comma
  195.            
  196.      7  => [
  197.             [{:def => 2},-1,"",""],
  198.             [{:def => 2},-1,"",""],
  199.             ],
  200.            
  201.      19  => [
  202.             [{:atk => 1, :agi => 3},-1,"Shorter Sword","The shorter version of short sword"],
  203.             [{:atk => 2, :agi => 10},150,"Dagger",""],
  204.             ],
  205.            
  206.     # add more here if it's necessary
  207.    
  208.     # ------------------------------------------------------------------------
  209.     } # <-- Do not touch this at all cost!
  210. # ============================================================================
  211. # Do not ever touch anything pass this line or the risk is yours
  212. # ============================================================================
  213.     Key = {
  214.       :mhp => 0,
  215.       :mmp => 1,
  216.       :atk => 2,
  217.       :def => 3,
  218.       :mat => 4,
  219.       :mdf => 5,
  220.       :agi => 6,
  221.       :luk => 7,
  222.     }
  223.   end
  224. end
  225.  
  226. class RPG::Armor < RPG::EquipItem
  227.   attr_accessor :level
  228.  
  229.   alias miri_tailor_upgrade_init initialize
  230.   def initialize
  231.     miri_tailor_upgrade_init
  232.     @level = 1
  233.   end
  234.  
  235.   def clone_data
  236.     original = self
  237.     cloned = RPG::UpgradedArmor.new
  238.     self.instance_variables.each do |varsym|
  239.       ivar_name = varsym.to_s.gsub(/@/) {""}
  240.       eval("
  241.      if cloned.respond_to?(\"#{ivar_name}\")
  242.        begin
  243.          cloned.#{ivar_name} = original.#{ivar_name}.clone
  244.        rescue
  245.          cloned.#{ivar_name} = original.#{ivar_name}
  246.        end
  247.      end")
  248.     end
  249.     return cloned
  250.   end
  251.  
  252.   def next_armor
  253.     next_armor_exist? ? $upgraded_armors[upgrade_key] : nil
  254.   end
  255.  
  256.   def next_armor_exist?
  257.     !$upgraded_armors[upgrade_key].nil?
  258.   end
  259.  
  260.  
  261.   def upgrade_key
  262.     self.id * 100 + (level+1)
  263.   end
  264.  
  265.   def level
  266.     @level ||= 1
  267.   end
  268.  
  269. end
  270.  
  271. class RPG::UpgradedArmor < RPG::Armor
  272.   attr_accessor :ori_id
  273.   attr_accessor :upgrade_price
  274.  
  275.   def upgrade_key
  276.     self.ori_id * 100 + (level+1)
  277.   end
  278.  
  279.   def make_price
  280.     item_price = @price
  281.     base_price = MIRI::Tailor::PriceBase
  282.     @upgrade_price = eval(MIRI::Tailor::PriceUpgrade)
  283.     @price = eval(MIRI::Tailor::PriceTrade)
  284.   end
  285.  
  286. end
  287.  
  288. class << DataManager
  289.  
  290.   alias miri_upgrade_tailor_game_obj create_game_objects
  291.   def create_game_objects
  292.     miri_upgrade_tailor_game_obj
  293.     init_upgraded_armors
  294.   end
  295.  
  296.   def init_upgraded_armors
  297.     $upgraded_armors = {}
  298.     MIRI::Tailor::A_Upgrade_Table.each do |id, table|
  299.       table.each_with_index do |data,level|
  300.         gen_id = (id*100) + (level+1) # Generated ID
  301.         armor_check = $upgraded_armors[gen_id]
  302.         result = nil
  303.         if (level + 1) != 1 && !armor_check.nil?
  304.           result = armor_check.clone_data
  305.         else
  306.           result = $data_armors[id].clone_data
  307.         end
  308.         result.level = level+2
  309.         data[0].each do |param,value|
  310.           param_id = MIRI::Tailor::Key[param]
  311.           result.params[param_id] += value
  312.         end
  313.         if data[1] > -1
  314.           result.icon_index = data[1]
  315.         end
  316.         result.name = data[2].empty? ? result.name : data[2]
  317.         result.description = data[3].empty? ? result.description : data[3]
  318.         result.ori_id = id
  319.         result.make_price
  320.         gen_id = (id*100) + (level+2)
  321.         result.id = gen_id # Generated ID
  322.         $upgraded_armors[gen_id] = result
  323.       end
  324.     end
  325.   end
  326.  
  327. end
  328.  
  329. class Game_BaseItem
  330.  
  331.   def upgraded_armor?
  332.     @class == RPG::UpgradedArmor
  333.   end
  334.  
  335.   alias miri_tlr_upgrade_object object
  336.   def object
  337.     return $upgraded_armors[@item_id] if upgraded_armor?
  338.     return miri_tlr_upgrade_object
  339.   end
  340.  
  341. end
  342.  
  343. class Game_Party < Game_Unit
  344.  
  345.   alias miri_tailor_init_item init_all_items
  346.   def init_all_items
  347.     miri_tailor_init_item
  348.     @upgraded_armors = {}
  349.   end
  350.  
  351.   alias miri_tailor_item_container item_container
  352.   def item_container(item_class)
  353.     return @upgraded_armors if item_class == RPG::UpgradedArmor
  354.     return miri_tailor_item_container(item_class)
  355.   end
  356.  
  357.   alias miri_tailor_armor armors
  358.   def armors
  359.     miri_tailor_armor + upgraded_armors
  360.   end
  361.  
  362.   def upgraded_armors
  363.     @upgraded_armors.keys.sort.collect {|id| $upgraded_armors[id]}
  364.   end
  365.  
  366. end
  367.  
  368. class Window_Base < Window
  369.   SText_Format = "\\C[16]%s\\C[0] : %d → \\C[24]%d\\C[0]"
  370.   def obtain_params_change
  371.     result = []
  372.     @armor.params.each_with_index do |param,id|
  373.       next_param = @armor.next_armor.params[id]
  374.       next if param == next_param
  375.       text = sprintf(SText_Format,Vocab.param(id),param,next_param)
  376.       result.push(text)
  377.     end if @armor
  378.     return result
  379.   end
  380. end
  381.  
  382. class Window_TailorGold < Window_Gold
  383.   def window_width
  384.     return MIRI::Tailor::GoldWindow_Size
  385.   end
  386. end
  387.  
  388. class Window_TailorMenu < Window_Selectable
  389.   attr_reader :armor_slot
  390.  
  391.   def initialize(x,y)
  392.     super(x,y,window_width,window_height)
  393.     @armor_slot = 3
  394.     refresh
  395.   end
  396.  
  397.   def update
  398.     super
  399.     puts @armor_slot
  400.     return unless active
  401.     if Input.trigger?(:RIGHT) && @armor_slot < 4
  402.       @armor_slot += 1
  403.       update_help
  404.       refresh
  405.     elsif Input.trigger?(:LEFT) && @armor_slot > 2
  406.       @armor_slot -= 1
  407.       update_help
  408.       refresh
  409.     end
  410.   end
  411.  
  412.   def window_width
  413.     MIRI::Tailor::MenuActor_Size
  414.   end
  415.  
  416.   def window_height
  417.     fitting_height(item_max)
  418.   end
  419.  
  420.   def item_max
  421.     $game_party.members.size
  422.   end
  423.  
  424.   def draw_item(index)
  425.     actor = $game_party.members[index]
  426.     color = normal_color
  427.     color.alpha = enable?(index) ? 255 : translucent_alpha
  428.     change_color(color)
  429.     draw_text(item_rect(index),actor.name,alignment)
  430.   end
  431.  
  432.   def alignment
  433.     return 0
  434.   end
  435.  
  436.   def armor
  437.     $game_party.members[index].equips[@armor_slot]
  438.   end
  439.  
  440.   def update_help
  441.     @help_window.refresh(armor)
  442.   end
  443.  
  444.   def enable?(index)
  445.     actor = $game_party.members[index]
  446.     return false if actor.equips[armor_slot].nil?
  447.     return actor.equips[armor_slot].next_armor_exist? &&
  448.       $game_party.gold >= actor.equips[armor_slot].next_armor.upgrade_price
  449.   end
  450.  
  451.   def current_item_enabled?
  452.     enable?(index)
  453.   end
  454.  
  455. end
  456.  
  457.  
  458. class Window_TailorResult < Window_Base
  459.   include MIRI::Tailor
  460.  
  461.   def next_armor
  462.     @armor.next_armor
  463.   end
  464.  
  465.   def refresh(armor)
  466.     contents.clear
  467.     @armor = armor
  468.     return unless @armor
  469.     reset_font_settings
  470.     draw_armor_name
  471.     if @armor.next_armor_exist?
  472.       draw_next_armor
  473.     else
  474.       draw_maxed_out
  475.     end
  476.   end
  477.  
  478.   def draw_armor_name
  479.     draw_item_name(@armor,0,0)
  480.     level = sprintf(PVocab::Level,@armor.level)
  481.     change_color(text_color(Colour::Level))
  482.     draw_text(0,0,contents.width,line_height,level,2)
  483.     contents.fill_rect(0,24,contents.width,2,Color.new(255,255,255,128))
  484.   end
  485.  
  486.   def draw_next_armor
  487.     ypos = 28
  488.     rect = Rect.new(0,ypos,contents.width,line_height)
  489.     contents.font.size -= 4
  490.     change_color(text_color(Colour::Upgradable))
  491.     draw_text(rect,PVocab::Upgradable,2)
  492.     change_color(system_color)
  493.     draw_text(rect,PVocab::Cost)
  494.     rect.x += text_size(PVocab::Cost).width
  495.     change_color(normal_color)
  496.     draw_text(rect,@armor.next_armor.upgrade_price)
  497.     texts = obtain_params_change
  498.     ypos += line_height
  499.     texts.each do |txt|
  500.       draw_text_ex(0,ypos,txt)
  501.       ypos += line_height
  502.     end
  503.   end
  504.  
  505.   def draw_maxed_out
  506.     ypos = 28
  507.     rect = Rect.new(0,ypos,contents.width,line_height)
  508.     contents.font.size -= 4
  509.     change_color(text_color(Colour::Maxout))
  510.     draw_text(rect,PVocab::Maxout,2)
  511.   end
  512.  
  513. end
  514.  
  515. class Window_TailorNotif < Window_Base
  516.  
  517.   def initialize(width,menu_actor,help_window)
  518.     super(0,0,width,0)
  519.     self.openness = 0
  520.     update_placement
  521.     @show_count = -1
  522.     @menu_actor = menu_actor
  523.     @help_window = help_window
  524.   end
  525.  
  526.   def update_placement
  527.     self.x = Graphics.width/2 - self.width/2
  528.     self.y = Graphics.height/2 - self.height/2
  529.   end
  530.  
  531.   def height=(height)
  532.     super
  533.     update_placement
  534.     create_contents
  535.   end
  536.  
  537.   def show_armor(armor)
  538.     @armor = armor
  539.     @texts = obtain_params_change
  540.     update_height
  541.     refresh
  542.     @show_count = MIRI::Tailor::NotifShowDuration
  543.   end
  544.  
  545.   def update_height
  546.     self.height = fitting_height(@texts.size + 1)
  547.   end
  548.  
  549.   def refresh
  550.     contents.clear
  551.     rect = Rect.new(0,0,contents.width,line_height)
  552.     next_name = @armor.next_armor.name
  553.     if next_name != @armor.name
  554.       text = sprintf(MIRI::Tailor::PVocab::NotifNameChange,next_name)
  555.       draw_text(rect,text)
  556.     else
  557.       text = MIRI::Tailor::PVocab::NotifNormal
  558.       draw_text(rect,text)
  559.     end
  560.     ypos = line_height
  561.     contents.fill_rect(0,ypos-1,contents.width,2,Color.new(255,255,255,128))
  562.     @texts.each do |txt|
  563.       draw_text_ex(0,ypos,txt)
  564.       ypos += line_height
  565.     end
  566.   end
  567.  
  568.   def update
  569.     super
  570.     update_close_input
  571.     if @show_count > 0
  572.       open
  573.     elsif @show_count == 0
  574.       close
  575.     end
  576.   end
  577.  
  578.   def update_close_input
  579.     @show_count -= 1
  580.     @show_count = 0 if Input.trigger?(:C)
  581.   end
  582.  
  583.   def open
  584.     super
  585.     @menu_actor.deactivate
  586.     @help_window.set_text(MIRI::Tailor::PVocab::Upgraded_Quote)
  587.   end
  588.  
  589.   def close
  590.     super
  591.     @menu_actor.activate
  592.     @help_window.set_text(MIRI::Tailor::PVocab::Select_Armor)
  593.   end
  594.  
  595. end
  596.  
  597. class Window_TailorConfirm < Window_Command
  598.  
  599.   def initialize
  600.     super(0,0)
  601.     self.openness = 0
  602.   end
  603.  
  604.   def make_command_list
  605.     vocab = MIRI::Tailor::PVocab
  606.     add_command(vocab::Yes_Confirm, :yes)
  607.     add_command(vocab::No_Confirm, :no)
  608.   end
  609.  
  610.   def window_width
  611.     return MIRI::Tailor::Confirm_Width
  612.   end
  613.  
  614. end
  615.  
  616. class Scene_Tailor < Scene_MenuBase
  617.   include MIRI::Tailor::PVocab
  618.  
  619.   def start
  620.     super
  621.     create_help_window
  622.     create_actor_menu
  623.     create_gold_window
  624.     create_tailor_result
  625.     create_notif_tailor
  626.     create_confirm_window
  627.   end
  628.  
  629.   def create_help_window
  630.     @help_window = Window_Help.new(1)
  631.     @help_window.set_text(Select_Armor)
  632.   end
  633.  
  634.   def create_actor_menu
  635.     y = @help_window.height
  636.     @menu_actor = Window_TailorMenu.new(0,y)
  637.     @menu_actor.set_handler(:cancel, method(:return_scene))
  638.     @menu_actor.set_handler(:ok, method(:on_actor_ok))
  639.     @menu_actor.activate
  640.     @menu_actor.select(0)
  641.   end
  642.  
  643.   def create_tailor_result
  644.     x = @menu_actor.width
  645.     y = @help_window.height
  646.     w = Graphics.width - @menu_actor.width - @gold_window.width
  647.     h = 24 * 9 + 4
  648.     @tailor_result = Window_TailorResult.new(x,y,w,h)
  649.     @menu_actor.help_window = @tailor_result
  650.   end
  651.  
  652.   def create_gold_window
  653.     @gold_window = Window_TailorGold.new
  654.     @gold_window.x = Graphics.width - @gold_window.width
  655.     @gold_window.y = @help_window.height
  656.   end
  657.  
  658.   def create_notif_tailor
  659.     @notif_tailor = Window_TailorNotif.new(300,@menu_actor,@help_window)
  660.   end
  661.  
  662.   def create_confirm_window
  663.     @confirm =  Window_TailorConfirm.new
  664.     @confirm.set_handler(:yes, method(:craft_armor))
  665.     @confirm.set_handler(:no, method(:confirm_no))
  666.     @confirm.set_handler(:cancel, method(:confirm_no))
  667.     @confirm.x = @tailor_result.x + @tailor_result.width - @confirm.width
  668.     @confirm.y = @tailor_result.y + @tailor_result.height - @confirm.height
  669.   end
  670.  
  671.   def on_actor_ok
  672.     @confirm.open
  673.     @confirm.activate
  674.     @help_window.set_text(Decide_Armor)
  675.   end
  676.  
  677.   def confirm_no
  678.     @confirm.close
  679.     @menu_actor.activate
  680.     @help_window.set_text(Select_Armor)
  681.   end
  682.  
  683.   def craft_armor
  684.     @confirm.close
  685.     @confirm.deactivate
  686.     $game_party.gain_item(next_armor,1)
  687.     $game_party.lose_gold(next_armor.upgrade_price)
  688.     last_equip = item_to_lose
  689.     @notif_tailor.show_armor(last_equip)
  690.     actor.change_equip(1,next_armor)
  691.     $game_party.lose_item(last_equip,1)
  692.     @menu_actor.update_help
  693.     @menu_actor.activate
  694.     @menu_actor.refresh
  695.     @gold_window.refresh
  696.   end
  697.  
  698.   def next_armor
  699.     @tailor_result.next_armor
  700.   end
  701.  
  702.   def actor
  703.     $game_party.members[@menu_actor.index]
  704.   end
  705.  
  706.   def item_to_lose
  707.     actor.equips[@menu_actor.armor_slot]
  708.   end
  709.  
  710. end
Advertisement
Add Comment
Please, Sign In to add comment