Advertisement
MrTrivel

MrTS_Stat_Points

Jun 17th, 2014
2,653
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 9.18 KB | None | 0 0
  1. # )----------------------------------------------------------------------------(
  2. # )--     AUTHOR:     Mr Trivel                                              --(
  3. # )--     NAME:       Stat Points                                            --(
  4. # )--     CREATED:    2014-06-17                                             --(
  5. # )--     VERSION:    1.0                                                    --(
  6. # )----------------------------------------------------------------------------(
  7. # )--                          DESCRIPTION                                   --(
  8. # )--  Adds Stat Points to actors which are gained on level up. And can be   --(
  9. # )--  spent in Status screen.                                               --(
  10. # )----------------------------------------------------------------------------(
  11. # )--                          INSTRUCTIONS                                  --(
  12. # )--               Customize below to your needs.                           --(
  13. # )----------------------------------------------------------------------------(
  14. # )--                          LICENSE INFO                                  --(
  15. # )--    http://mrtrivelvx.wordpress.com/terms-of-use/                       --(
  16. # )----------------------------------------------------------------------------(
  17.  
  18. module MrTS
  19.   module Stat_Points
  20.     # )----------------------------------------------------(
  21.     # )--  Stat points each actor gets at the beginning  --(
  22.     # )----------------------------------------------------(
  23.     Default = 15
  24.    
  25.     # )----------------------------------------------------(
  26.     # )--  How many stat points actor gets on level up.  --(
  27.     # )----------------------------------------------------(
  28.     PointsOnLevelUp = 5
  29.    
  30.     # )---------------------------------------------------(
  31.     # )--  By how much your stats grow per stat point.  --(
  32.     # )---------------------------------------------------(
  33.     StatsPerIncrease = 2
  34.   end
  35. end
  36.  
  37.  
  38. # )----------------------------------------------------------------------------(
  39. # )--  Class: Scene_Status                                                   --(
  40. # )----------------------------------------------------------------------------(
  41. class Scene_Status < Scene_MenuBase
  42.   # )--------------------------------------------------------------------------(
  43.   # )--  Overwrite Method: start                                             --(
  44.   # )--------------------------------------------------------------------------(
  45.   def start
  46.     super
  47.     @status_window = Window_Status.new(@actor)
  48.     @status_window.set_handler(:cancel,   method(:return_scene))
  49.     @status_window.set_handler(:pagedown, method(:next_actor))
  50.     @status_window.set_handler(:pageup,   method(:prev_actor))
  51.     create_stat_command_window
  52.   end
  53.   # )--------------------------------------------------------------------------(
  54.   # )--  New Method: create_stat_command_window                              --(
  55.   # )--------------------------------------------------------------------------(
  56.   def create_stat_command_window
  57.     @command_window = MrTS_Stat_Command.new(22, (24*7)+12)
  58.     @command_window.set_handler(:ok, method(:increase_stat))
  59.   end
  60.   # )--------------------------------------------------------------------------(
  61.   # )--  New Method: increase_stat                                           --(
  62.   # )--------------------------------------------------------------------------(
  63.   def increase_stat
  64.     @actor.spend_stat_point(@command_window.index)
  65.     @status_window.refresh
  66.     @command_window.activate
  67.   end
  68. end
  69.  
  70.  
  71. # )----------------------------------------------------------------------------(
  72. # )--  Class: MrTS_Stat_Command                                              --(
  73. # )----------------------------------------------------------------------------(
  74. class MrTS_Stat_Command < Window_Command
  75.   # )--------------------------------------------------------------------------(
  76.   # )--  Method: initialize                                                  --(
  77.   # )--------------------------------------------------------------------------(
  78.   def initialize(x, y)
  79.     super(x,y)
  80.     self.opacity = 0
  81.   end
  82.   # )--------------------------------------------------------------------------(
  83.   # )--  Method: window_width                                                --(
  84.   # )--------------------------------------------------------------------------(
  85.   def window_width
  86.     return 196
  87.   end
  88.   # )--------------------------------------------------------------------------(
  89.   # )--  Method: make_command_list                                           --(
  90.   # )--------------------------------------------------------------------------(
  91.   def make_command_list
  92.     6.times do
  93.       add_command("", :ok)
  94.     end
  95.   end
  96.   # )--------------------------------------------------------------------------(
  97.   # )--  Method: process_ok                                                  --(
  98.   # )--------------------------------------------------------------------------(
  99.   def process_ok
  100.     if current_item_enabled?
  101.       Input.update
  102.       deactivate
  103.       call_ok_handler
  104.     end
  105.   end
  106. end
  107.  
  108. # )----------------------------------------------------------------------------(
  109. # )--  Class: Window_Status                                                  --(
  110. # )----------------------------------------------------------------------------(
  111. class Window_Status < Window_Selectable
  112.   # )--------------------------------------------------------------------------(
  113.   # )--  Overwrite Method: draw_block3                                       --(
  114.   # )--------------------------------------------------------------------------(
  115.   def draw_block3(y)
  116.     draw_statpoints(32, y-line_height/2)
  117.     draw_parameters(32, y+line_height/2)
  118.     draw_equipments(288, y)
  119.   end
  120.  
  121.   # )--------------------------------------------------------------------------(
  122.   # )--  New Method: draw_statpoints                                         --(
  123.   # )--------------------------------------------------------------------------(
  124.   def draw_statpoints(x, y)
  125.     change_color(system_color)
  126.     draw_text(x, y, 140, line_height, "Stat Points: ")
  127.     change_color(@actor.stat_point > 0 ? power_up_color : normal_color)
  128.     draw_text(x+120, y, 36, line_height, @actor.stat_point.to_s,2)
  129.   end
  130. end
  131.  
  132.  
  133. # )----------------------------------------------------------------------------(
  134. # )--  Class: Game_Actor                                                     --(
  135. # )----------------------------------------------------------------------------(
  136. class Game_Actor < Game_Battler
  137.  
  138.   # )--------------------------------------------------------------------------(
  139.   # )--  Public Instance Variables                                           --(
  140.   # )--------------------------------------------------------------------------(
  141.   attr_reader   :stat_point
  142.   attr_reader   :stat_points_spent
  143.  
  144.   # )--------------------------------------------------------------------------(
  145.   # )--  Alias to: setup                                                     --(
  146.   # )--------------------------------------------------------------------------(
  147.   alias mrts_sp_setup setup
  148.   def setup(actor_id)
  149.     mrts_sp_setup(actor_id)
  150.     initialize_stat_points
  151.   end
  152.  
  153.  
  154.   # )--------------------------------------------------------------------------(
  155.   # )--  New Method: initialize_stat_points                                  --(
  156.   # )--------------------------------------------------------------------------(
  157.   def initialize_stat_points
  158.     @stat_point = MrTS::Stat_Points::Default
  159.     @stat_points_spent.size.times do |i|
  160.       add_param(i+2, -@stat_points_spent[i])
  161.     end if @stat_points_spent
  162.     @stat_points_spent = [0,0,0,0,0,0]
  163.   end
  164.  
  165.   # )--------------------------------------------------------------------------(
  166.   # )--  New Method: spend_stat_point                                        --(
  167.   # )--------------------------------------------------------------------------(
  168.   def spend_stat_point(stat_id)
  169.     unless @stat_point > 0 && param(stat_id+2) < param_max(stat_id+2)
  170.       Sound.play_buzzer
  171.       return
  172.     end
  173.     inc_by = MrTS::Stat_Points::StatsPerIncrease
  174.     add_param(stat_id+2, inc_by)
  175.     @stat_point -= 1
  176.     @stat_points_spent[stat_id] += inc_by
  177.     Sound.play_ok
  178.   end
  179.  
  180.   # )--------------------------------------------------------------------------(
  181.   # )--  Alias To: change_class                                              --(
  182.   # )--------------------------------------------------------------------------(
  183.   alias mrts_sp_change_class change_class
  184.   def change_class(class_id, keep_exp = false)
  185.     initialize_stat_points unless keep_exp
  186.     mrts_sp_change_class(class_id, keep_exp = false)
  187.     @stat_point = MrTS::Stat_Points::Default + ( (level-1) * MrTS::Stat_Points::PointsOnLevelUp)
  188.   end
  189.  
  190.   # )--------------------------------------------------------------------------(
  191.   # )--  Alias to: level_up                                                  --(
  192.   # )--------------------------------------------------------------------------(
  193.   alias mrts_sp_level_up level_up
  194.   def level_up
  195.     mrts_sp_level_up
  196.     @stat_point += MrTS::Stat_Points::PointsOnLevelUp
  197.   end
  198. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement