Dekita

PSSv1.1 Standalone Version

Aug 13th, 2012
501
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #Dekita's=======================================================================
  2. #☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  3. #===============================================================================
  4. #                                                                       v1.1-sa
  5. #                          ★ Perfect Status Screen ★
  6. #                               ☆ STAND-ALONE ☆  
  7. #
  8. #===============================================================================
  9. #☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  10. #===============================================================================
  11. #
  12. # -- Last updated: 11/08/2012 <-(D/M/Y)
  13. #
  14. # -- Difficulty: Plug'n'play - (Easy)
  15. #
  16. # -- Customisation: Better than a kick in the nuts! - (Medium)
  17. #
  18. # -- Requires: N/A
  19. #
  20. # -- Recommended: N/A
  21. #
  22. # -- Compatable:  RPG Maker VX Ace ONLY!
  23. #                 Yanfly Skills Cost Manager v1.03+
  24. #                 Yanfly Engine Ace - Skill Restrictions v1.02+
  25. #                
  26. #===============================================================================
  27. #☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  28. #===============================================================================
  29. #===============================================================================
  30. # ☆ Script Information:
  31. #=======================
  32. # This script will Display information regarding an actors stats,
  33. # parameters, elemental/state resistances and attack values.
  34. # Equipment information will not be visable.
  35. #
  36. #===============================================================================
  37.  
  38. #===============================================================================
  39. # ☆ TERMS OF USE:
  40. #===============================================================================
  41. #
  42. # 1. You must give credit to Dekita.
  43. #
  44. # 2. This script is for NON-Commercial use ONLY!*
  45. #
  46. # 3. You CANNOT give credit to yourself for Re-posting this script
  47. #    or Posting a modified version.*
  48. #
  49. # 4. Do not Re-Distribute this script.
  50. #
  51. # 5. You are NOT allowed to convert this script to any other engine,
  52. #    E.G converting it from RGSS3 into RGSS2.*
  53. #
  54. # 6. ENJOY!
  55. #
  56. #-------------------------------------------------------------------------------
  57. # * = Unless permissions are given by Dekita. < e-mail DekitaRPG@gmail.com
  58. #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  59. #===============================================================================
  60.  
  61. #===============================================================================
  62. # ☆ History:
  63. #============
  64. # D - M - Y
  65. # 13/08/2o12 - released Script. (v1.1-sa)
  66. # 11/08/2o12 - Turned into seperate stand-alone version.
  67. #            - Spiced up some shit
  68. #            - Added "Page Three" (outbound element and status info)
  69. # 08/08/2o12 - Released Script. (v1.0)
  70. # 07/08/2o12 - started script.
  71. #-------------------------------------------------------------------------------
  72. #===============================================================================
  73. # ☆ Thanks to :
  74. #===============
  75. # N/A
  76. #
  77. #===============================================================================
  78.  
  79. #===============================================================================
  80. # ☆ Foresight Into The Future:
  81. #==============================
  82. # Nothing planned.
  83. #
  84. # If you have any ideas e-mail me at DekitaRPG@gmail.com
  85. #
  86. #===============================================================================
  87.  
  88. #===============================================================================
  89. # ☆ Known Bugs:
  90. #=================
  91. # N/A
  92. #
  93. #===============================================================================
  94.  
  95. #===============================================================================
  96. # ☆ INSTRUCTIONS:
  97. #=================
  98. # Place this script UNDER "▼ Materials" and ABOVE "▼ Main" in your script editor.
  99. #
  100. #===============================================================================
  101. =begin
  102. #===============================================================================
  103. # ☆ Script Calls:
  104. #=================
  105. # Dont see why you would want to but you can use this script call to
  106. # call the status screen.
  107.  
  108. SceneManager.call(Scene_Status)
  109.  
  110. #
  111. #===============================================================================
  112. =end
  113.  
  114. #===============================================================================
  115. # ☆ Import:
  116. #===========
  117. $imported = {} if $imported.nil?
  118. $imported["DPB-PSS-SA"] = true
  119. #
  120. #===============================================================================
  121.  
  122. #===============================================================================
  123. # ☆ Perfect Status Screen Begin:
  124. #================================
  125. module DPB
  126.   module PSS_SA
  127.    
  128.     COMMANDS =[
  129.     [:pageone,   "I"],
  130.     [:pagetwo,   "II"],
  131.     [:pagethree, "III"],
  132.     ]#DO NOT REMOVE
  133.  
  134. #===============================================================================#
  135. #☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#
  136. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆#
  137. #                                                                               #
  138. #                                   PSS_SA                                      #
  139. #                           (Perfect Status Screen)                             #
  140. #                           - CUSTOMISATION BEGIN -                             #
  141. #                                                                               #
  142. #                                                                               #
  143. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆#
  144. #☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#
  145. #===============================================================================#    
  146. #===============================================================================
  147. # ☆ Customisation = Tah-Dah
  148. #===========================
  149. # I have added as much customisation as i thought was needed.
  150. #
  151. # It is advised you take a moment to look through the cusomisation options
  152. # to see if any apply to your current project.
  153. #===============================================================================    
  154.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  155.     # ☆ Elements Row 1
  156.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  157.     # You can control from here which elements are viewable in row 1
  158.     # along with their icons.
  159.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  160.  
  161.     ELEMENT_VOCAB = "Elements: (defend)" # for incomming elemental damage
  162.    
  163.     ATK_ELE_VOCAB = "Elements: (attack)" # for outgoing elemental damage
  164.    
  165.     ELEMENTS_ROW1  = [3..10]  # Elements shown. Maximum of 8 can be shown per row.
  166.  
  167.     ELEMENT_ICONS_ROW1   ={         # Contains element icon information.
  168.     # Element ID => Icon,
  169.                3 =>  96, # Fire
  170.                4 =>  97, # Ice
  171.                5 =>  98, # Thunder
  172.                6 =>  99, # Water
  173.                7 => 100, # Earth
  174.                8 => 101, # Wind
  175.                9 => 102, # Holy
  176.               10 => 103, # Dark
  177.     } # Do not remove this.
  178.  
  179.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  180.     # ☆  Elements Row 2
  181.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  182.     # You can control from here whether you want to display a second row of
  183.     # elemental data along with their icons.
  184.     # Just set "SHOW_ELE_ROW_2" to "true" and change the Element ID and Icon
  185.     # to suit your needs.
  186.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  187.    
  188.     SHOW_ELE_ROW_2 = false # made for those who want more elements in their game :D
  189.    
  190.     ELEMENTS_ROW2  = [10, 9, 8, 7, 6, 5, 4, 3]  # Elements shown. Maximum of 8 can be shown per row.
  191.        
  192.     ELEMENT_ICONS_ROW2   ={         # Contains element icon information.
  193.     # Element ID => Icon,
  194.                3 =>  96, # Fire
  195.                4 =>  97, # Ice
  196.                5 =>  98, # Thunder
  197.                6 =>  99, # Water
  198.                7 => 100, # Earth
  199.                8 => 101, # Wind
  200.                9 => 102, # Holy
  201.               10 => 103, # Dark
  202.     } # Do not remove this.
  203.    
  204.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  205.     # ☆  States Row 1
  206.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  207.     # You can control from here what states are shown in row 1.
  208.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  209.    
  210.     STATUS_VOCAB = "Status: (defend)" # for imcomming status effects
  211.  
  212.     ATK_STATUS_VOCAB = "Status: (attack)"  # for outgoing status effects
  213.    
  214.     STATES_ROW_1 = [1..8]     # States shown. Maximum of 8 can be shown.
  215.    
  216.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  217.     # ☆  States Row 2
  218.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  219.     # You can control from here what states are shown in row 2.
  220.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  221.  
  222.     STATES_ROW_2 = [12,13,14,15,16,17,18,19]     # States shown. Maximum of 8 can be shown.
  223.    
  224.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  225.     # ☆ Font Settings
  226.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  227.    
  228.     PROPFONTSIZE = 16 # For Displayed Properties
  229.        
  230.     PARAMFONTSIZE = 20 # For Parameters in point selection window and JP if
  231.                        # Yanfly JP Manager is installed
  232.  
  233.     FONTSIZE = 24 # For Almost Everything Else.
  234.    
  235.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  236.     # ☆ Parameters Gauge Settings
  237.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  238.     # Set this to "true" if you wish to have Gauges for params e.g
  239.     # MaxHP, MaxMP, Atk, Def, Mat, Mdf, Agi, Luk
  240.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  241.    
  242.     DRAW_PARAM_GAUGES = true
  243.    
  244.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  245.     # ☆ Parameters Colour Settings
  246.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  247.     # These settings adjust the way the parameters window visually appears.
  248.     # Each of the stats have a non-window colour. Adjust them as you see fit.
  249.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  250.    
  251.     PARAM_COLOUR ={
  252.     # ParamID => [:stat,       Colour1,                   Colour2          ],
  253.             2 => [ :atk, Color.new(225, 100, 100), Color.new(240, 150, 150)],
  254.             3 => [ :def, Color.new(250, 150,  30), Color.new(250, 180, 100)],
  255.             4 => [ :mat, Color.new( 70, 140, 200), Color.new(135, 180, 230)],
  256.             5 => [ :mdf, Color.new(135, 130, 190), Color.new(170, 160, 220)],
  257.             6 => [ :agi, Color.new( 60, 180,  80), Color.new(120, 200, 120)],
  258.             7 => [ :luk, Color.new(255, 240, 100), Color.new(255, 250, 200)],
  259.     } # Do not remove this.
  260.    
  261.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  262.     # ☆ Draw Actor Graphic ?
  263.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=    
  264.        
  265.     DRAW_ACTOR_GRAPHIC = true
  266.     DAG_X = 332
  267.     DAG_Y = 90
  268.    
  269.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  270.     # ☆ Draw Actor Information Location
  271.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=    
  272.    
  273.     DRAW_INFO_IN_MIDDLE = false
  274.     # This option is to change the location of Actor's Name, Class, Lvl ect
  275.     # true = middle / false = left side of the screen.
  276.  
  277. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  278. # ☆ Properties Window Settings
  279. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  280. # These settings adjust the way the properties window visually appears.
  281. # The properties have abbreviations, but leaving them as such makes things
  282. # confusing (as it's sometimes hard to figure out what the abbreviations
  283. # mean). Change the way the appear, whether or not they appear, and what
  284. # order they will appear in.
  285. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  286.    
  287.     #---------------------------------------------------------------------------
  288.     # ☆ Just for the hell of it:
  289.     #----------------------------
  290.     # This option is for those people who like to have large number values for
  291.     # their stats,
  292.     # e.g
  293.     # accuracy = 17,982.
  294.     # attack = 6021.
  295.     #
  296.     # Simply set "PROPERTIES_BIGGER_NUMBERS" to "true" to activate this option.
  297.     #
  298.     # NOTE:
  299.     # This doesnt acctually increase your stats to ridiculous values
  300.     # It just makes it appear that way :)
  301.     # your still not gonna be hitting monsters for 6,932,123,21.5 :D
  302.     #
  303.     # This is also very usefull if you want your game to have a more
  304.     # unique looking stat progression system
  305.     # e.g
  306.     # People cant calculate the stats as easy
  307.     #---------------------------------------------------------------------------
  308.     PROPERTIES_BIGGER_NUMBERS = false
  309.    
  310.     # This option is how much the parameters value will be multiplied by
  311.     # IF PROPERTIES_BIGGER_NUMBERS = true
  312.     # VISUAL PURPOSES ONLY!
  313.     PARAMS_BIGGER_NUMBER_VALUE = 8.5
  314.  
  315.     # This option is how much the properties value will be multiplied by
  316.     # IF PROPERTIES_BIGGER_NUMBERS = true
  317.     # VISUAL PURPOSES ONLY!  
  318.     # ONLY AFFECTS NON-% STATS e.g stats such as MP Cost Rate will remain a %.
  319.     PROPERTIES_BIGGER_NUMBER_VALUE = 850
  320.    
  321.     # These are the parameters that appear in column 1.
  322.     # This column's settings are only relevant if DRAW_PARAM_GAUGES = false (above)
  323.     PROPERTIES_PARAMCOLUMN =[
  324.       [:mhp, "Max HP"],       #-------------------------------------------------
  325.       [:mmp, "Max MP"],       # <- Rename these to whatever you want your
  326.       [:atk, "Attack"],       # <- origional parameters to be called :)
  327.       [:def, "Defence"],      # <-
  328.       [:mat, "M Attack"],     # <-
  329.       [:mdf, "M Defence"],    # <-
  330.       [:agi, "Speed"],        # <-
  331.       [:luk, "Luck"],         #-------------------------------------------------
  332.     ] # Do not remove this.
  333.  
  334.     # These are the properties that appear in column 2.
  335.     PROPERTIES_COLUMN1 =[
  336.       [:hit, "Hit Rate"],
  337.       [:eva, "Evasion"],
  338.       [:cri, "Critical Hit"],
  339.       [:cev, "Critical Evade"],
  340.       [:mev, "Magic Evasion"],
  341.       [:mrf, "Magic Reflect"],
  342.       [:cnt, "Counter Rate"],
  343.       [:tgr, "Target Rate"],
  344.     ] # Do not remove this.
  345.    
  346.     # These are the properties that appear in column 3.
  347.     PROPERTIES_COLUMN2 =[
  348.       [:hrg, "HP Regen"],
  349.       [:mrg, "MP Regen"],
  350.       [:trg, "TP Regen"],
  351.       [:rec, "Recovery"],
  352.       [:grd, "Guard Rate"],
  353.       [:pha, "Item Boost"],
  354.       [:exr, "EXP Rate"],
  355.       [:tcr, "TP Charge"],
  356.     ] # Do not remove this.
  357.    
  358.     # These are the properties that appear in column 4.
  359.     PROPERTIES_COLUMN3 =[
  360.       [:hcr, "HP Cost Rate"],    # Requires YEA - Skill Cost Manager
  361.       [:mcr, "MP Cost Rate"],
  362.       [:tcr_y, "TP Cost Rate"],    # Requires YEA - Skill Cost Manager
  363.       [:cdr, "Cooldown Rate"],   # Requires YEA - Skill Restrictions
  364.       [:wur, "Warmup Rate"],     # Requires YEA - Skill Restrictions
  365.       [:pdr, "Physical Damage"],
  366.       [:mdr, "Magical Damage"],
  367.       [:fdr, "Floor Damage"],
  368.     ] # Do not remove this.
  369.  
  370.     DRAW_ALL_COLUMNS = false # This option is for those who do not want all 4 columns
  371.                             # Simply set this to false to only draw 3 columns
  372.                             # e.g the param column, column1 and column2.
  373.                
  374. #===============================================================================#
  375. #☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#
  376. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆#
  377. #                                                                               #
  378. #                                   PSS_SA                                      #
  379. #                           (Perfect Status Screen)                             #
  380. #                            - CUSTOMISATION END -                              #
  381. #                                                                               #
  382. #                                                                               #
  383. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆#
  384. #☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#
  385. #===============================================================================#
  386. #                           - DekitaRPG@gmail.com -                             #
  387. #===============================================================================#
  388. #☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#
  389. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆#
  390. #                                                                               #
  391. #                                   PSS_SA                                      #
  392. #                           (Perfect Status Screen)                             #
  393. #                               - SCRIPT BEGIN -                                #
  394. #                                                                               #
  395. #                                                                               #
  396. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆#
  397. #☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#
  398. #===============================================================================#
  399.  
  400. #===============================================================================#
  401. # ARE YOU MODIFYING BEYOND THIS POINT? \.\.                                     #
  402. # YES?\.\.                                                                      #
  403. # OMG, REALLY?                                                                  #
  404. # WELL SLAP MY FACE AND CALL ME A DRAGON.\..\..                                 #
  405. # I REALLY DIDN'T THINK YOU HAD IT IN YOU.\..\..                                #
  406. #===============================================================================#
  407.  
  408. module_function
  409.     #--------------------------------------------------------------------------
  410.     # convert_integer_array
  411.     #--------------------------------------------------------------------------
  412.     def convert_integer_array(array)
  413.       result = []
  414.       array.each { |i|
  415.         case i
  416.         when Range; result |= i.to_a
  417.         when Integer; result |= [i]
  418.         end }
  419.       return result
  420.     end
  421.     #--------------------------------------------------------------------------
  422.     # converted_contants
  423.     #--------------------------------------------------------------------------
  424.     ELEMENTS_ROW1 = convert_integer_array(ELEMENTS_ROW1)
  425.     ELEMENTS_ROW2 = convert_integer_array(ELEMENTS_ROW2)
  426.     STATES_ROW_1 = convert_integer_array(STATES_ROW_1)
  427.     STATES_ROW_2 = convert_integer_array(STATES_ROW_2)    
  428.   end # PSS_SA
  429. end #DPB
  430. #==============================================================================
  431. # Icon
  432. #==============================================================================
  433. module Icon
  434.   #--------------------------------------------------------------------------
  435.   # self.element
  436.   #--------------------------------------------------------------------------
  437.   def self.element(id)
  438.     return 0 unless DPB::PSS_SA::ELEMENT_ICONS_ROW1.include?(id)
  439.     return DPB::PSS_SA::ELEMENT_ICONS_ROW1[id]
  440.   end    
  441. end # Icon
  442.  
  443. #==============================================================================
  444. # Game_BattlerBase
  445. #==============================================================================
  446. class Game_BattlerBase
  447.   #--------------------------------------------------------------------------
  448.   # new method: Get Attack Element Rate
  449.   #--------------------------------------------------------------------------
  450.   def atk_element_rate(element_id)
  451.     features_sum(FEATURE_ATK_ELEMENT, element_id)
  452.   end  
  453. end # Game_BattlerBase
  454.  
  455. #==============================================================================
  456. # Game_Temp
  457. #==============================================================================
  458. class Game_Temp
  459.   #--------------------------------------------------------------------------
  460.   # public instance variables
  461.   #--------------------------------------------------------------------------
  462.   attr_accessor :scene_status_index
  463.   attr_accessor :scene_status_oy
  464. end # Game_Temp
  465.  
  466. #==============================================================================
  467. # Window_StatusCommand
  468. #==============================================================================
  469. class Window_StatusCommand < Window_Command
  470.   #--------------------------------------------------------------------------
  471.   # public instance variables
  472.   #--------------------------------------------------------------------------
  473.   attr_accessor :item_window
  474.   #--------------------------------------------------------------------------
  475.   # initialize
  476.   #--------------------------------------------------------------------------
  477.   def initialize(dx, dy)
  478.     super(dx, dy)
  479.     @actor = nil
  480.         self.opacity = 0
  481.   end
  482.   #--------------------------------------------------------------------------
  483.   # window_width
  484.   #--------------------------------------------------------------------------
  485.   def window_width; return 0; end
  486.   #--------------------------------------------------------------------------
  487.   # actor=
  488.   #--------------------------------------------------------------------------
  489.   def actor=(actor)
  490.     return if @actor == actor
  491.     @actor = actor
  492.     refresh
  493.   end
  494.   #--------------------------------------------------------------------------
  495.   # visible_line_number
  496.   #--------------------------------------------------------------------------
  497.   def visible_line_number; return 4; end
  498.   #--------------------------------------------------------------------------
  499.   # ok_enabled?
  500.   #--------------------------------------------------------------------------
  501.   def ok_enabled?
  502.     return handle?(current_symbol)
  503.   end
  504.   #--------------------------------------------------------------------------
  505.   # make_command_list
  506.   #--------------------------------------------------------------------------
  507.   def make_command_list
  508.     return unless @actor
  509.     for command in DPB::PSS_SA::COMMANDS
  510.       case command[0]
  511.       #--- Default ---
  512.       when :pageone, :pagetwo, :pagethree
  513.         add_command(command[1], command[0])
  514.       else
  515.         end
  516.     end
  517.     if !$game_temp.scene_status_index.nil?
  518.       select($game_temp.scene_status_index)
  519.       self.oy = $game_temp.scene_status_oy
  520.     end
  521.     $game_temp.scene_status_index = nil
  522.     $game_temp.scene_status_oy = nil
  523.   end
  524.   #--------------------------------------------------------------------------
  525.   # process_ok
  526.   #--------------------------------------------------------------------------
  527.   def process_ok
  528.     $game_temp.scene_status_index = index
  529.     $game_temp.scene_status_oy = self.oy
  530.     super
  531.   end
  532.   #--------------------------------------------------------------------------
  533.   # update
  534.   #--------------------------------------------------------------------------
  535.   def update
  536.     super
  537.     update_item_window
  538.   end
  539.   #--------------------------------------------------------------------------
  540.   # update_item_window
  541.   #--------------------------------------------------------------------------
  542.   def update_item_window
  543.     return if @item_window.nil?
  544.     return if @current_index == current_symbol
  545.     @current_index = current_symbol
  546.     @item_window.refresh
  547.   end
  548.   #--------------------------------------------------------------------------
  549.   # item_window=
  550.   #--------------------------------------------------------------------------
  551.   def item_window=(window)
  552.     @item_window = window
  553.     update
  554.   end
  555.   #--------------------------------------------------------------------------
  556.   # update_help
  557.   #--------------------------------------------------------------------------
  558.   def update_help
  559.     return if @actor.nil?
  560.     @help_window.set_text(@actor.actor.description)
  561.   end
  562. end # Window_StatusCommand
  563.  
  564. #==============================================================================
  565. # Window_StatusItem
  566. #==============================================================================
  567. class Window_StatusItem < Window_Base
  568.   #--------------------------------------------------------------------------
  569.   # initialize
  570.   #--------------------------------------------------------------------------
  571.   def initialize(dx, dy, command_window)
  572.     super(dx, dy, Graphics.width, Graphics.height - dy)
  573.     @command_window = command_window
  574.     @actor = nil
  575.     refresh
  576.   end
  577.   #--------------------------------------------------------------------------
  578.   # actor=
  579.   #--------------------------------------------------------------------------
  580.   def actor=(actor)
  581.     return if @actor == actor
  582.     @actor = actor
  583.     refresh
  584.   end
  585.   #--------------------------------------------------------------------------
  586.   # refresh
  587.   #--------------------------------------------------------------------------
  588.   def refresh
  589.     contents.clear
  590.     reset_font_settings
  591.     return unless @actor
  592.     draw_window_contents
  593.   end
  594.   #--------------------------------------------------------------------------
  595.   # draw_window_contents
  596.   #--------------------------------------------------------------------------
  597.   def draw_window_contents
  598.     case @command_window.current_symbol
  599.     when :pageone
  600.         draw_block1(line_height * 1)
  601.         draw_block2(line_height * 1)
  602.         draw_block4(line_height * 14)        
  603.         draw_page_one(0, 0)
  604.     when :pagetwo
  605.         draw_block1(line_height * 1)
  606.         draw_block2(line_height * 1)
  607.         draw_block4(line_height * 14)        
  608.         draw_page_two(0, 0)
  609.     when :pagethree
  610.         draw_block1(line_height * 1)
  611.         draw_block2(line_height * 1)
  612.         draw_block4(line_height * 14)        
  613. #        draw_block3(line_height * 1)
  614.         draw_page_three(0, 0)
  615.     else
  616.       end
  617.     end
  618.   #--------------------------------------------------------------------------
  619.   # * Draw Block 1
  620.   #--------------------------------------------------------------------------
  621.   def draw_block1(y)
  622.         draw_actor_face(@actor, (window_width - 24) / 2.5, 0)
  623.         contents.font.size = DPB::PSS_SA::FONTSIZE
  624.      if DPB::PSS_SA::DRAW_INFO_IN_MIDDLE
  625.         draw_actor_name(@actor,(window_width + 24) / 2, line_height * 0)
  626.         draw_actor_class(@actor, (window_width + 24) / 2, line_height * 2)      
  627.         draw_actor_level(@actor, (window_width + 24) / 2, line_height * 1)
  628.         draw_actor_nickname(@actor, (window_width + 24) / 2, line_height * 3)
  629.       else  
  630.         draw_actor_name(@actor,5 , line_height * 0)
  631.         draw_actor_class(@actor,5 , line_height * 2)
  632.         draw_actor_level(@actor,5 , line_height * 1)
  633.         draw_actor_nickname(@actor,5 , line_height * 3)
  634.       end
  635.       if DPB::PSS_SA::DRAW_ACTOR_GRAPHIC
  636.     draw_actor_graphic(@actor, DPB::PSS_SA::DAG_X, DPB::PSS_SA::DAG_Y)#, 50)
  637.   else
  638.   end
  639. end
  640.   #--------------------------------------------------------------------------
  641.   # * Draw Block 2
  642.   #--------------------------------------------------------------------------
  643.   def draw_block2(y)
  644.     draw_basic_info(136, y)
  645.     draw_exp_info(4, y+line_height * 7)
  646.   end
  647.   #--------------------------------------------------------------------------
  648.   # * Draw Block 3
  649.   #--------------------------------------------------------------------------
  650.   def draw_block3(y)
  651. #        draw_properties_paramcolumn
  652.     draw_equipments(288, y)
  653.   end
  654.   #--------------------------------------------------------------------------
  655.   # * Draw Block 4
  656.   #--------------------------------------------------------------------------
  657.   def draw_block4(y)
  658.     draw_description(4, y)
  659.   end
  660.   #--------------------------------------------------------------------------
  661.   # * Draw Horizontal Line
  662.   #--------------------------------------------------------------------------
  663.   def draw_horz_line(y)
  664.     line_y = y + line_height / 2 - 1
  665.     contents.fill_rect(0, line_y, contents_width, 2, line_color)
  666.   end
  667.   #--------------------------------------------------------------------------
  668.   # * Get Color of Horizontal Line
  669.   #--------------------------------------------------------------------------
  670.   def line_color
  671.     color = normal_color
  672.     color.alpha = 48
  673.     color
  674.   end
  675.   #--------------------------------------------------------------------------
  676.   # * Draw Basic Information
  677.   #--------------------------------------------------------------------------
  678.   def draw_basic_info(x, y)
  679.         draw_actor_icons(@actor, (window_width - 24) / 2.5, y + line_height * 3)
  680.         contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  681.         if $imported["YEA-JPManager"]
  682.           contents.font.size = DPB::PSS_SA::PARAMFONTSIZE
  683.         draw_actor_jp(@actor, (window_width + 24) / 3, line_height * 3.33)
  684.          contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  685.       else
  686.      end
  687.    end  
  688.   #--------------------------------------------------------------------------
  689.   # * Draw Page One
  690.   #--------------------------------------------------------------------------
  691.   def draw_page_one(x, y)
  692.         contents.font.size = DPB::PSS_SA::FONTSIZE          
  693.       if DPB::PSS_SA::DRAW_PARAM_GAUGES
  694.         draw_parameter_graph
  695.       if DPB::PSS_SA::DRAW_ALL_COLUMNS
  696.         draw_actor_hp(@actor, 5, y+106 + line_height * 1,(window_width - 24) / 4 - 12)
  697.         draw_actor_mp(@actor, 5, y+106 + line_height * 2,(window_width - 24) / 4 - 12)
  698.         else  
  699.         draw_actor_hp(@actor, 5, y+106 + line_height * 1,(window_width - 24) / 3 - 24)
  700.         draw_actor_mp(@actor, 5, y+106 + line_height * 2,(window_width - 24) / 3 - 24)
  701.         end
  702.       else
  703.         draw_properties_paramcolumn
  704.       end
  705.         contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  706.         draw_horz_line(line_height * 4)
  707.         draw_horz_line(Graphics.height - line_height * 4)
  708.         draw_properties_column1
  709.         draw_properties_column2
  710.         if DPB::PSS_SA::DRAW_ALL_COLUMNS
  711.         draw_properties_column3
  712.       else
  713.       end
  714.         reset_font_settings        
  715.     end
  716.   #--------------------------------------------------------------------------
  717.   # * Draw Page two
  718.   #--------------------------------------------------------------------------
  719.   def draw_page_two(x, y)
  720.         contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  721.         draw_horz_line(line_height * 4)
  722.         draw_elements
  723.       if DPB::PSS_SA::SHOW_ELE_ROW_2
  724.         draw_elements_row2
  725.       else
  726.         end
  727.       draw_states
  728.       draw_states_row_2
  729.       draw_horz_line(Graphics.height - line_height * 4)
  730.       reset_font_settings        
  731.     end
  732.   #--------------------------------------------------------------------------
  733.   # * Draw Page three
  734.   #--------------------------------------------------------------------------
  735.   def draw_page_three(x, y)
  736.         contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  737.         draw_horz_line(line_height * 4)
  738.         draw_atk_elements
  739.       if DPB::PSS_SA::SHOW_ELE_ROW_2
  740.         draw_atk_elements_row2
  741.       else
  742.         end
  743.       draw_atk_states
  744.       draw_atk_states_row_2
  745.         draw_horz_line(Graphics.height - line_height * 4)
  746.         reset_font_settings        
  747.     end
  748.   #--------------------------------------------------------------------------
  749.   # * Draw Parameters
  750.   #--------------------------------------------------------------------------
  751.   def draw_parameters(x, y)
  752.     6.times {|i| draw_actor_param(@actor, x, y + line_height * i, i + 2) }
  753.   end
  754.   #--------------------------------------------------------------------------
  755.   # * Draw Experience Information
  756.   #--------------------------------------------------------------------------
  757.   def draw_exp_info(x, y)
  758.         contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  759.         s1 = @actor.max_level? ? "----" : @actor.exp
  760.         s2 = @actor.max_level? ? "----" : @actor.next_level_exp - @actor.exp
  761.         s_next = sprintf(Vocab::ExpNext, Vocab::level)
  762.         change_color(system_color)
  763.         draw_text((window_width - 24) / 4 * 3, y-140, 180, line_height, "Next Level")
  764.         draw_text((window_width - 24) / 4 * 3, y-170, 180, line_height, "TOTAL Exp")
  765.         change_color(normal_color)
  766.         draw_text((window_width - 24) / 1.7, y-155, 180, line_height, s1, 2)
  767.         draw_text((window_width - 24) / 1.7, y-120, 180, line_height, s2, 2)
  768.       end
  769.   #--------------------------------------------------------------------------
  770.   # * Draw Equipment
  771.   #--------------------------------------------------------------------------
  772.   def draw_equipments(x, y)
  773.     @actor.equips.each_with_index do |item, i|
  774.       draw_item_name(item, x, y + line_height * i)
  775.     end
  776.   end
  777.   #--------------------------------------------------------------------------
  778.   # * Draw Description
  779.   #--------------------------------------------------------------------------
  780.   def draw_description(x, y)
  781.     draw_text_ex(x, y, @actor.description)
  782.   end
  783.  
  784.   if DPB::PSS_SA::SHOW_ELE_ROW_2
  785.   #--------------------------------------------------------------------------
  786.   # draw_elements
  787.   #--------------------------------------------------------------------------
  788.   def draw_elements
  789.     dx = 0; dy = 130
  790.     contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  791.     for ele_id in DPB::PSS_SA::ELEMENTS_ROW1
  792.       draw_element_info(ele_id, 12, dy)
  793.       dx = dx == 1 ? contents.width / 4 : 0
  794.       dy += dx == 0 ? line_height : 0
  795.     end
  796.   end
  797.   #--------------------------------------------------------------------------
  798.   # draw_elements_row2
  799.   #--------------------------------------------------------------------------
  800.   def draw_elements_row2
  801.     dx = 0; dy = 130
  802.     contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  803.     for ele_id in DPB::PSS_SA::ELEMENTS_ROW2
  804.       draw_element_info(ele_id, (window_width - 0) / 4 * 1, dy)
  805.       dx = dx == 1 ? contents.width / 4 : 0
  806.       dy += dx == 0 ? line_height : 0
  807.     end
  808.   end
  809.   #--------------------------------------------------------------------------
  810.   # draw_atk_elements
  811.   #--------------------------------------------------------------------------
  812.   def draw_atk_elements
  813.     dx = 0; dy = 130
  814.     contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  815.     for ele_id in DPB::PSS_SA::ELEMENTS_ROW1
  816.       draw_atk_element_info(ele_id, 12, dy)
  817.       dx = dx == 1 ? contents.width / 4 : 0
  818.       dy += dx == 0 ? line_height : 0
  819.     end
  820.   end
  821.   #--------------------------------------------------------------------------
  822.   # draw_atk_elements_row2
  823.   #--------------------------------------------------------------------------
  824.   def draw_atk_elements_row2
  825.     dx = 0; dy = 130
  826.     contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  827.     for ele_id in DPB::PSS_SA::ELEMENTS_ROW2
  828.       draw_atk_element_info(ele_id, (window_width - 0) / 4 * 1, dy)
  829.       dx = dx == 1 ? contents.width / 4 : 0
  830.       dy += dx == 0 ? line_height : 0
  831.     end
  832.   end
  833.   #--------------------------------------------------------------------------
  834.   # draw_states
  835.   #--------------------------------------------------------------------------
  836.   def draw_states
  837.     dx = 0; dy = 130
  838.     contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  839.     draw_text((window_width - 24) / 3 * 0 + 12, line_height * 4.6, contents.width, line_height, DPB::PSS_SA::ELEMENT_VOCAB)
  840.     draw_text((window_width - 24) / 4 * 2 + 12, line_height * 4.6, contents.width, line_height, DPB::PSS_SA::STATUS_VOCAB)
  841.     for state_id in DPB::PSS_SA::STATES_ROW_1
  842.       draw_state_info(state_id, (window_width - 0) / 4 * 2, dy)
  843.       dx = dx == 1 ? contents.width / 4 : 0
  844.       dy += dx == 0 ? line_height : 0
  845.     end
  846.   end
  847.   #--------------------------------------------------------------------------
  848.   # draw_states_row_2
  849.   #--------------------------------------------------------------------------
  850.   def draw_states_row_2
  851.     dx = 0; dy = 130
  852.     contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  853.     for state_id in DPB::PSS_SA::STATES_ROW_2
  854.       draw_state_info(state_id, (window_width - 12) / 4 * 3, dy)
  855.       dx = dx == 1 ? contents.width / 4 : 0
  856.       dy += dx == 0 ? line_height : 0
  857.     end
  858.   end
  859.   #--------------------------------------------------------------------------
  860.   # draw_atk_states
  861.   #--------------------------------------------------------------------------
  862.   def draw_atk_states
  863.     dx = 0; dy = 130
  864.     contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  865.     draw_text((window_width - 24) / 3 * 0 + 12, line_height * 4.6, contents.width, line_height, DPB::PSS_SA::ATK_ELE_VOCAB)
  866.     draw_text((window_width - 24) / 4 * 2 + 12, line_height * 4.6, contents.width, line_height, DPB::PSS_SA::ATK_STATUS_VOCAB)
  867.     for state_id in DPB::PSS_SA::STATES_ROW_1
  868.       draw_atk_state_info(state_id, (window_width - 0) / 4 * 2, dy)
  869.       dx = dx == 1 ? contents.width / 4 : 0
  870.       dy += dx == 0 ? line_height : 0
  871.     end
  872.   end
  873.   #--------------------------------------------------------------------------
  874.   # draw_atk_states_row_2
  875.   #--------------------------------------------------------------------------
  876.   def draw_atk_states_row_2
  877.     dx = 0; dy = 130
  878.     contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  879.     for state_id in DPB::PSS_SA::STATES_ROW_2
  880.       draw_atk_state_info(state_id, (window_width - 12) / 4 * 3, dy)
  881.       dx = dx == 1 ? contents.width / 4 : 0
  882.       dy += dx == 0 ? line_height : 0
  883.     end
  884.   end
  885.   #--------------------------------------------------------------------------
  886.   # draw_element_info
  887.   #--------------------------------------------------------------------------
  888.   def draw_element_info(ele_id, dx, dy)
  889.     dw = (contents.width - 24) / 4.2
  890.     colour = Color.new(0, 0, 0, translucent_alpha/2)
  891.     rect = Rect.new(dx+1, dy+1, dw - 2, line_height - 2)
  892.     contents.fill_rect(rect, colour)
  893.     draw_icon(Icon.element(ele_id), dx, dy)
  894.     change_color(system_color)
  895.     draw_text(dx+24, dy, dw-24, line_height, $data_system.elements[ele_id] + "")
  896.     change_color(normal_color)
  897.     text = sprintf("%d%%", (@actor.element_rate(ele_id) * 100).to_i)
  898.     draw_text(dx+4, dy, dw-8, line_height, text, 2)
  899.   end
  900.   #--------------------------------------------------------------------------
  901.   # draw_atk_element_info
  902.   #--------------------------------------------------------------------------
  903.   def draw_atk_element_info(ele_id, dx, dy)
  904.     dw = (contents.width - 24) / 4.2
  905.     colour = Color.new(0, 0, 0, translucent_alpha/2)
  906.     rect = Rect.new(dx+1, dy+1, dw - 2, line_height - 2)
  907.     contents.fill_rect(rect, colour)
  908.     draw_icon(Icon.element(ele_id), dx, dy)
  909.     change_color(system_color)
  910.     draw_text(dx+24, dy, dw-24, line_height, $data_system.elements[ele_id] + "")
  911.     change_color(normal_color)
  912.     text = sprintf("%d%%", (@actor.atk_element_rate(ele_id) * 100).to_i)
  913.     draw_text(dx+4, dy, dw-8, line_height, text, 2)
  914.   end
  915.   #--------------------------------------------------------------------------
  916.   # draw_state_info
  917.   #--------------------------------------------------------------------------
  918.   def draw_state_info(state_id, dx, dy)
  919.     dw = (contents.width - 24) / 4.2
  920.     colour = Color.new(0, 0, 0, translucent_alpha/2)
  921.     rect = Rect.new(dx+1, dy+1, dw - 2, line_height - 2)
  922.     contents.fill_rect(rect, colour)
  923.     draw_icon($data_states[state_id].icon_index, dx, dy)
  924.     change_color(system_color)
  925.     draw_text(dx+24, dy, dw-24, line_height, $data_states[state_id].name + "")
  926.     change_color(normal_color)
  927.     text = sprintf("%d%%", (@actor.state_rate(state_id) * 100).to_i)
  928.     draw_text(dx+4, dy, dw-8, line_height, text, 2)
  929.   end
  930.   #--------------------------------------------------------------------------
  931.   # draw_atk_state_info
  932.   #--------------------------------------------------------------------------
  933.   def draw_atk_state_info(state_id, dx, dy)
  934.     dw = (contents.width - 24) / 4.2
  935.     colour = Color.new(0, 0, 0, translucent_alpha/2)
  936.     rect = Rect.new(dx+1, dy+1, dw - 2, line_height - 2)
  937.     contents.fill_rect(rect, colour)
  938.     draw_icon($data_states[state_id].icon_index, dx, dy)
  939.     change_color(system_color)
  940.     draw_text(dx+24, dy, dw-24, line_height, $data_states[state_id].name + "")
  941.     change_color(normal_color)
  942.     text = sprintf("%d%%", (@actor.atk_states_rate(state_id) * 100).to_i)
  943.     draw_text(dx+4, dy, dw-8, line_height, text, 2)
  944.   end
  945.  
  946. else
  947.   #--------------------------------------------------------------------------
  948.   # draw_elements
  949.   #--------------------------------------------------------------------------
  950.   def draw_elements
  951.     dx = 0; dy = 130
  952.     contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  953.     for ele_id in DPB::PSS_SA::ELEMENTS_ROW1
  954.       draw_element_info(ele_id, 12, dy)
  955.       dx = dx == 1 ? contents.width / 3 : 0
  956.       dy += dx == 0 ? line_height : 0
  957.     end
  958.   end
  959.   #--------------------------------------------------------------------------
  960.   # draw_atk_elements
  961.   #--------------------------------------------------------------------------
  962.   def draw_atk_elements
  963.     dx = 0; dy = 130
  964.     contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  965.     for ele_id in DPB::PSS_SA::ELEMENTS_ROW1
  966.       draw_atk_element_info(ele_id, 12, dy)
  967.       dx = dx == 1 ? contents.width / 3 : 0
  968.       dy += dx == 0 ? line_height : 0
  969.     end
  970.   end
  971.   #--------------------------------------------------------------------------
  972.   # draw_states
  973.   #--------------------------------------------------------------------------
  974.   def draw_states
  975.     dx = 0; dy = 130
  976.     contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  977.     draw_text((window_width - 24) / 3 * 0 + 12, line_height * 4.6, contents.width, line_height, DPB::PSS_SA::ELEMENT_VOCAB)
  978.     draw_text((window_width - 24) / 3 * 1 + 8, line_height * 4.6, contents.width, line_height, DPB::PSS_SA::STATUS_VOCAB)
  979.     contents.font.size = 16
  980.     for state_id in DPB::PSS_SA::STATES_ROW_1
  981.       draw_state_info(state_id, (window_width - 0) / 3 * 1, dy)
  982.       dx = dx == 1 ? contents.width / 3 : 0
  983.       dy += dx == 0 ? line_height : 0
  984.     end
  985.   end
  986.   #--------------------------------------------------------------------------
  987.   # draw_states_row_2
  988.   #--------------------------------------------------------------------------
  989.   def draw_states_row_2
  990.     dx = 0; dy = 130
  991.     contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  992.     for state_id in DPB::PSS_SA::STATES_ROW_2
  993.       draw_state_info(state_id, (window_width - 12) / 3 * 2, dy)
  994.       dx = dx == 1 ? contents.width / 3 : 0
  995.       dy += dx == 0 ? line_height : 0
  996.     end
  997.   end
  998.   #--------------------------------------------------------------------------
  999.   # draw_atk_states
  1000.   #--------------------------------------------------------------------------
  1001.   def draw_atk_states
  1002.     dx = 0; dy = 130
  1003.     contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  1004.     draw_text((window_width - 24) / 3 * 0 + 12, line_height * 4.6, contents.width, line_height, DPB::PSS_SA::ATK_ELE_VOCAB)
  1005.     draw_text((window_width - 24) / 3 * 1 + 8, line_height * 4.6, contents.width, line_height, DPB::PSS_SA::ATK_STATUS_VOCAB)
  1006.     contents.font.size = 16
  1007.     for state_id in DPB::PSS_SA::STATES_ROW_1
  1008.       draw_atk_state_info(state_id, (window_width - 0) / 3 * 1, dy)
  1009.       dx = dx == 1 ? contents.width / 3 : 0
  1010.       dy += dx == 0 ? line_height : 0
  1011.     end
  1012.   end
  1013.   #--------------------------------------------------------------------------
  1014.   # draw_atk_states_row_2
  1015.   #--------------------------------------------------------------------------
  1016.   def draw_atk_states_row_2
  1017.     dx = 0; dy = 130
  1018.     contents.font.size = DPB::PSS_SA::PROPFONTSIZE
  1019.     for state_id in DPB::PSS_SA::STATES_ROW_2
  1020.       draw_atk_state_info(state_id, (window_width - 12) / 3 * 2, dy)
  1021.       dx = dx == 1 ? contents.width / 3 : 0
  1022.       dy += dx == 0 ? line_height : 0
  1023.     end
  1024.   end
  1025.   #--------------------------------------------------------------------------
  1026.   # draw_element_info
  1027.   #--------------------------------------------------------------------------
  1028.   def draw_element_info(ele_id, dx, dy)
  1029.     dw = (contents.width - 24) / 3.2
  1030.     colour = Color.new(0, 0, 0, translucent_alpha/2)
  1031.     rect = Rect.new(dx+1, dy+1, dw - 2, line_height - 2)
  1032.     contents.fill_rect(rect, colour)
  1033.     draw_icon(Icon.element(ele_id), dx, dy)
  1034.     change_color(system_color)
  1035.     draw_text(dx+24, dy, dw-24, line_height, $data_system.elements[ele_id] + "")
  1036.     change_color(normal_color)
  1037.     text = sprintf("%d%%", (@actor.element_rate(ele_id) * 100).to_i)
  1038.     draw_text(dx+4, dy, dw-8, line_height, text, 2)
  1039.   end
  1040.   #--------------------------------------------------------------------------
  1041.   # draw_atk_element_info
  1042.   #--------------------------------------------------------------------------
  1043.   def draw_atk_element_info(ele_id, dx, dy)
  1044.     dw = (contents.width - 24) / 3.2
  1045.     colour = Color.new(0, 0, 0, translucent_alpha/2)
  1046.     rect = Rect.new(dx+1, dy+1, dw - 2, line_height - 2)
  1047.     contents.fill_rect(rect, colour)
  1048.     draw_icon(Icon.element(ele_id), dx, dy)
  1049.     change_color(system_color)
  1050.     draw_text(dx+24, dy, dw-24, line_height, $data_system.elements[ele_id] + "")
  1051.     change_color(normal_color)
  1052.     text = sprintf("%d%%", (@actor.atk_element_rate(ele_id) * 100).to_i)
  1053.     draw_text(dx+4, dy, dw-8, line_height, text, 2)
  1054.   end
  1055.   #--------------------------------------------------------------------------
  1056.   # draw_state_info
  1057.   #--------------------------------------------------------------------------
  1058.   def draw_state_info(state_id, dx, dy)
  1059.     dw = (contents.width - 24) / 3.2
  1060.     colour = Color.new(0, 0, 0, translucent_alpha/2)
  1061.     rect = Rect.new(dx+1, dy+1, dw - 2, line_height - 2)
  1062.     contents.fill_rect(rect, colour)
  1063.     draw_icon($data_states[state_id].icon_index, dx, dy)
  1064.     change_color(system_color)
  1065.     draw_text(dx+24, dy, dw-24, line_height, $data_states[state_id].name + "")
  1066.     change_color(normal_color)
  1067.     text = sprintf("%d%%", (@actor.state_rate(state_id) * 100).to_i)
  1068.     draw_text(dx+4, dy, dw-8, line_height, text, 2)
  1069.   end
  1070.   #--------------------------------------------------------------------------
  1071.   # draw_atk_state_info
  1072.   #--------------------------------------------------------------------------
  1073.   def draw_atk_state_info(state_id, dx, dy)
  1074.     dw = (contents.width - 24) / 3.2
  1075.     colour = Color.new(0, 0, 0, translucent_alpha/2)
  1076.     rect = Rect.new(dx+1, dy+1, dw - 2, line_height - 2)
  1077.     contents.fill_rect(rect, colour)
  1078.     draw_icon($data_states[state_id].icon_index, dx, dy)
  1079.     change_color(system_color)
  1080.     draw_text(dx+24, dy, dw-24, line_height, $data_states[state_id].name + "")
  1081.     change_color(normal_color)
  1082.     text = sprintf("%d%%", (@actor.atk_states_rate(state_id) * 100).to_i)
  1083.     draw_text(dx+4, dy, dw-8, line_height, text, 2)
  1084.   end
  1085. end
  1086.  
  1087.   #--------------------------------------------------------------------------
  1088.   # * Draw Parameters
  1089.   #--------------------------------------------------------------------------
  1090.   def draw_parameters(x, y)
  1091.         6.times {|i| draw_actor_param(@actor, x, y + 7 + line_height * i, i + 2) }
  1092.       end  
  1093. if DPB::PSS_SA::DRAW_ALL_COLUMNS      
  1094.   #--------------------------------------------------------------------------
  1095.   # draw_parameter_graph
  1096.   #--------------------------------------------------------------------------
  1097.   def draw_parameter_graph
  1098.     dy = line_height * 3/2
  1099.     maximum = 1
  1100.     minimum = @actor.param_max(2)
  1101.     for i in 2..7
  1102.       maximum = [@actor.param(i), maximum].max
  1103.       minimum = [@actor.param(i), minimum].min
  1104.     end
  1105.     maximum += minimum * 0.33 unless maximum == minimum
  1106.     for i in 2..7
  1107.       rate = calculate_rate(maximum, minimum, i)
  1108.       dy = line_height * i - line_height/2
  1109.       draw_param_gauge(i, dy, rate)
  1110.       self.contents.font.size = DPB::PSS_SA::PARAMFONTSIZE
  1111.       change_color(system_color)
  1112.       draw_text(5, dy + 140, contents.width - 56, line_height, Vocab::param(i))
  1113.       dw = (contents.width - 48) * rate - 8
  1114.       change_color(normal_color)
  1115.       draw_text((window_width - 24) / 4 - 24, dy + 140, dw-8, line_height, @actor.param(i))#.group, 2)
  1116.     end
  1117.   end
  1118. else
  1119.   #--------------------------------------------------------------------------
  1120.   # draw_parameter_graph
  1121.   #--------------------------------------------------------------------------
  1122.   def draw_parameter_graph
  1123.     dy = line_height * 3/2
  1124.     maximum = 1
  1125.     minimum = @actor.param_max(2)
  1126.     for i in 2..7
  1127.       maximum = [@actor.param(i), maximum].max
  1128.       minimum = [@actor.param(i), minimum].min
  1129.     end
  1130.     maximum += minimum * 0.33 unless maximum == minimum
  1131.     for i in 2..7
  1132.       rate = calculate_rate(maximum, minimum, i)
  1133.       dy = line_height * i - line_height/2
  1134.       draw_param_gauge(i, dy, rate)
  1135.       self.contents.font.size = DPB::PSS_SA::PARAMFONTSIZE
  1136.       change_color(system_color)
  1137.       draw_text(5, dy + 140, contents.width - 56, line_height, Vocab::param(i))
  1138.       dw = (contents.width - 48) * rate - 8
  1139.       change_color(normal_color)
  1140.       draw_text((window_width - 60) / 3 - 24, dy + 140, dw-8, line_height, @actor.param(i))#.group, 2)
  1141.     end
  1142.   end
  1143. end
  1144.   #--------------------------------------------------------------------------
  1145.   # calculate_rate
  1146.   #--------------------------------------------------------------------------
  1147.   def calculate_rate(maximum, minimum, param_id)
  1148.     return 1.0 if maximum == minimum
  1149.     rate = (@actor.param(param_id).to_f - minimum) / (maximum - minimum).to_f
  1150.     rate *= 0.67
  1151.     rate += 0.33
  1152.     return rate
  1153.   end
  1154.  
  1155.   if DPB::PSS_SA::DRAW_ALL_COLUMNS
  1156.   #--------------------------------------------------------------------------
  1157.   # draw_param_gauge
  1158.   #--------------------------------------------------------------------------
  1159.   def draw_param_gauge(param_id, dy, rate)
  1160.     dw = (window_width - 24) / 4 - 12
  1161.     colour1 = param_gauge1(param_id)
  1162.     colour2 = param_gauge2(param_id)
  1163.     draw_gauge(5, dy + 140, dw, rate, colour1, colour2)
  1164.   end
  1165. else
  1166.   #--------------------------------------------------------------------------
  1167.   # draw_param_gauge
  1168.   #--------------------------------------------------------------------------
  1169.   def draw_param_gauge(param_id, dy, rate)
  1170.     dw = (window_width - 24) / 3 - 24
  1171.     colour1 = param_gauge1(param_id)
  1172.     colour2 = param_gauge2(param_id)
  1173.     draw_gauge(5, dy + 140, dw, rate, colour1, colour2)
  1174.   end
  1175. end
  1176.   #--------------------------------------------------------------------------
  1177.   # param_gauge1
  1178.   #--------------------------------------------------------------------------
  1179.   def param_gauge1(param_id)
  1180.     return DPB::PSS_SA::PARAM_COLOUR[param_id][1]
  1181.   end
  1182.   #--------------------------------------------------------------------------
  1183.   # param_gauge2
  1184.   #--------------------------------------------------------------------------
  1185.   def param_gauge2(param_id)
  1186.     return DPB::PSS_SA::PARAM_COLOUR[param_id][2]
  1187.   end
  1188.  
  1189.     if DPB::PSS_SA::DRAW_ALL_COLUMNS
  1190.   #--------------------------------------------------------------------------
  1191.   # draw_properties_column1
  1192.   #--------------------------------------------------------------------------
  1193.   def draw_properties_column1
  1194.     dx = 5 + (window_width - 24) / 4
  1195.     dw = (window_width - 24) / 3.6 - 24
  1196.     dy = 130
  1197.     for property in DPB::PSS_SA::PROPERTIES_COLUMN1
  1198.       dy = draw_property(property, dx, dy, dw)
  1199.     end
  1200.   end
  1201.   #--------------------------------------------------------------------------
  1202.   # draw_properties_column2
  1203.   #--------------------------------------------------------------------------
  1204.   def draw_properties_column2
  1205.     dx = 5 + (window_width - 24) / 2
  1206.     dw = (window_width - 24) / 3.6 - 24
  1207.     dy = 130
  1208.     for property in DPB::PSS_SA::PROPERTIES_COLUMN2
  1209.       dy = draw_property(property, dx, dy, dw)
  1210.     end
  1211.   end
  1212.  
  1213.   #--------------------------------------------------------------------------
  1214.   # draw_properties_column3
  1215.   #--------------------------------------------------------------------------
  1216.   def draw_properties_column3
  1217.     dx = 5 + (window_width - 24) / 2 + (window_width / 4.15)    
  1218.     dw = (window_width - 24) / 3.6 - 24
  1219.     dy = 130
  1220.     for property in DPB::PSS_SA::PROPERTIES_COLUMN3
  1221.       dy = draw_property(property, dx, dy, dw)
  1222.     end
  1223.   end
  1224.   #--------------------------------------------------------------------------
  1225.   # draw_properties_column4
  1226.   #--------------------------------------------------------------------------
  1227.   def draw_properties_paramcolumn
  1228.     dx = 5
  1229.     dw = (window_width - 24) / 3.6 - 24
  1230.     dy = 130
  1231.     for property in DPB::PSS_SA::PROPERTIES_PARAMCOLUMN
  1232.       dy = draw_property(property, dx, dy, dw)
  1233.     end
  1234.   end
  1235. else
  1236.  
  1237.   #--------------------------------------------------------------------------
  1238.   # draw_properties_column1
  1239.   #--------------------------------------------------------------------------
  1240.   def draw_properties_column1
  1241.     dx = 5 + (window_width - 24) / 3
  1242.     dw = (window_width - 24) / 3 - 12
  1243.     dy = 130
  1244.     for property in DPB::PSS_SA::PROPERTIES_COLUMN1
  1245.       dy = draw_property(property, dx, dy, dw)
  1246.     end
  1247.   end
  1248.  
  1249.   #--------------------------------------------------------------------------
  1250.   # draw_properties_column2
  1251.   #--------------------------------------------------------------------------
  1252.   def draw_properties_column2
  1253.     dx = 5 + (window_width - 24) / 3 * 2
  1254.     dw = (window_width - 24) / 3 - 12
  1255.     dy = 130
  1256.     for property in DPB::PSS_SA::PROPERTIES_COLUMN2
  1257.       dy = draw_property(property, dx, dy, dw)
  1258.     end
  1259.   end
  1260.  
  1261.   #--------------------------------------------------------------------------
  1262.   # draw_properties_column4
  1263.   #--------------------------------------------------------------------------
  1264.   def draw_properties_paramcolumn
  1265.     dx = 5
  1266.     dw = (window_width - 24) / 3 - 12
  1267.     dy = 130
  1268.     for property in DPB::PSS_SA::PROPERTIES_PARAMCOLUMN
  1269.       dy = draw_property(property, dx, dy, dw)
  1270.     end
  1271.   end
  1272. end
  1273.  
  1274.   if DPB::PSS_SA::PROPERTIES_BIGGER_NUMBERS
  1275.   #--------------------------------------------------------------------------
  1276.   # draw_property
  1277.   #--------------------------------------------------------------------------
  1278.   def draw_property(property, dx, dy, dw)
  1279.     fmt = "%1.2f%%"
  1280.     dpb = "%1.0f"
  1281.     case property[0]
  1282.     #---
  1283.     when :mhp
  1284.        value = sprintf(dpb, @actor.mhp)
  1285.     when :mmp
  1286.        value = sprintf(dpb, @actor.mmp)
  1287.     when :atk
  1288.        value = sprintf(dpb, @actor.atk * DPB::PSS_SA::PARAMS_BIGGER_NUMBER_VALUE)  
  1289.     when :def
  1290.        value = sprintf(dpb, @actor.def * DPB::PSS_SA::PARAMS_BIGGER_NUMBER_VALUE)
  1291.     when :mat
  1292.        value = sprintf(dpb, @actor.mat * DPB::PSS_SA::PARAMS_BIGGER_NUMBER_VALUE)
  1293.     when :mdf
  1294.        value = sprintf(dpb, @actor.mdf * DPB::PSS_SA::PARAMS_BIGGER_NUMBER_VALUE)
  1295.     when :agi
  1296.        value = sprintf(dpb, @actor.agi * DPB::PSS_SA::PARAMS_BIGGER_NUMBER_VALUE)
  1297.     when :luk
  1298.        value = sprintf(dpb, @actor.luk * DPB::PSS_SA::PARAMS_BIGGER_NUMBER_VALUE)
  1299.     when :vit_pts
  1300.       value = sprintf(dpb, @actor.vit_pts)
  1301.     when :str_pts
  1302.       value = sprintf(dpb, @actor.str_pts)
  1303.     when :dex_pts
  1304.       value = sprintf(dpb, @actor.dex_pts)
  1305.     when :mag_pts
  1306.       value = sprintf(dpb, @actor.mag_pts)
  1307.     when :hit
  1308.       value = sprintf(dpb, @actor.hit * DPB::PSS_SA::PROPERTIES_BIGGER_NUMBER_VALUE)    
  1309.     when :eva
  1310.       value = sprintf(dpb, @actor.eva * DPB::PSS_SA::PROPERTIES_BIGGER_NUMBER_VALUE)
  1311.     when :cri
  1312.       value = sprintf(fmt, @actor.cri * 100)
  1313.     when :cev
  1314.       value = sprintf(dpb, @actor.cev * DPB::PSS_SA::PROPERTIES_BIGGER_NUMBER_VALUE)
  1315.     when :mev
  1316.       value = sprintf(dpb, @actor.mev * DPB::PSS_SA::PROPERTIES_BIGGER_NUMBER_VALUE)
  1317.     when :mrf
  1318.       value = sprintf(fmt, @actor.mrf * 100)
  1319.     when :cnt
  1320.       value = sprintf(fmt, @actor.cnt * 100)
  1321.     when :hrg
  1322.       value = sprintf(fmt, @actor.hrg * 100)
  1323.     when :mrg
  1324.       value = sprintf(fmt, @actor.mrg * 100)
  1325.     when :trg
  1326.       value = sprintf(fmt, @actor.trg * 100)
  1327.     when :tgr
  1328.       value = sprintf(fmt, @actor.tgr * 100)
  1329.     when :grd
  1330.       value = sprintf(fmt, @actor.grd * 100)
  1331.     when :rec
  1332.       value = sprintf(fmt, @actor.rec * 100)
  1333.     when :pha
  1334.       value = sprintf(fmt, @actor.pha * 100)
  1335.     when :mcr
  1336.       value = sprintf(fmt, @actor.mcr * 100)
  1337.     when :tcr
  1338.       value = sprintf(fmt, @actor.tcr * 100)
  1339.     when :pdr
  1340.       value = sprintf(fmt, @actor.pdr * 100)
  1341.     when :mdr
  1342.       value = sprintf(fmt, @actor.mdr * 100)
  1343.     when :fdr
  1344.       value = sprintf(fmt, @actor.fdr * 100)
  1345.     when :exr
  1346.       value = sprintf(fmt, @actor.exr * 100)
  1347.     when :hcr
  1348.       return dy unless $imported["YEA-SkillCostManager"]
  1349.       value = sprintf(fmt, @actor.hcr * 100)
  1350.     when :tcr_y
  1351.       return dy unless $imported["YEA-SkillCostManager"]
  1352.       value = sprintf(fmt, @actor.tcr_y * 100)
  1353.     when :gcr
  1354.       return dy unless $imported["YEA-SkillCostManager"]
  1355.       value = sprintf(fmt, @actor.gcr * 100)
  1356.     when :cdr
  1357.       return dy unless $imported["YEA-SkillRestrictions"]
  1358.       value = sprintf(fmt, @actor.cdr * 100)
  1359.     when :wur
  1360.       return dy unless $imported["YEA-SkillRestrictions"]
  1361.       value = sprintf(fmt, @actor.wur * 100)
  1362.     #---
  1363.     else; return dy
  1364.     end
  1365.     colour = Color.new(0, 0, 0, translucent_alpha/2)
  1366.     rect = Rect.new(dx+1, dy+1, dw-2, line_height-2)
  1367.     contents.fill_rect(rect, colour)
  1368.     change_color(system_color)
  1369.     draw_text(dx+4, dy, dw-8, line_height, property[1], 0)
  1370.     change_color(normal_color)
  1371.     draw_text(dx+4, dy, dw-8, line_height, value, 2)
  1372.     return dy + line_height
  1373.   end
  1374. else
  1375.   #--------------------------------------------------------------------------
  1376.   # draw_property
  1377.   #--------------------------------------------------------------------------
  1378.   def draw_property(property, dx, dy, dw)
  1379.     fmt = "%1.2f%%"
  1380.     dpb = "%1.0f"
  1381.     case property[0]
  1382.     #---
  1383.     when :mhp
  1384.        value = sprintf(dpb, @actor.mhp)
  1385.     when :mmp
  1386.        value = sprintf(dpb, @actor.mmp)
  1387.     when :atk
  1388.        value = sprintf(dpb, @actor.atk)  
  1389.     when :def
  1390.        value = sprintf(dpb, @actor.def)
  1391.     when :mat
  1392.        value = sprintf(dpb, @actor.mat)
  1393.     when :mdf
  1394.        value = sprintf(dpb, @actor.mdf)
  1395.     when :agi
  1396.        value = sprintf(dpb, @actor.agi)
  1397.     when :luk
  1398.        value = sprintf(dpb, @actor.luk)
  1399.     when :vit_pts
  1400.       value = sprintf(dpb, @actor.vit_pts)
  1401.     when :str_pts
  1402.       value = sprintf(dpb, @actor.str_pts)
  1403.     when :dex_pts
  1404.       value = sprintf(dpb, @actor.dex_pts)
  1405.     when :mag_pts
  1406.       value = sprintf(dpb, @actor.mag_pts)      
  1407.     when :hit
  1408.       value = sprintf(fmt, @actor.hit * 100)
  1409.     when :eva
  1410.       value = sprintf(fmt, @actor.eva * 100)
  1411.     when :cri
  1412.       value = sprintf(fmt, @actor.cri * 100)
  1413.     when :cev
  1414.       value = sprintf(fmt, @actor.cev * 100)
  1415.     when :mev
  1416.       value = sprintf(fmt, @actor.mev * 100)
  1417.     when :mrf
  1418.       value = sprintf(fmt, @actor.mrf * 100)
  1419.     when :cnt
  1420.       value = sprintf(fmt, @actor.cnt * 100)
  1421.     when :hrg
  1422.       value = sprintf(fmt, @actor.hrg * 100)
  1423.     when :mrg
  1424.       value = sprintf(fmt, @actor.mrg * 100)
  1425.     when :trg
  1426.       value = sprintf(fmt, @actor.trg * 100)
  1427.     when :tgr
  1428.       value = sprintf(fmt, @actor.tgr * 100)
  1429.     when :grd
  1430.       value = sprintf(fmt, @actor.grd * 100)
  1431.     when :rec
  1432.       value = sprintf(fmt, @actor.rec * 100)
  1433.     when :pha
  1434.       value = sprintf(fmt, @actor.pha * 100)
  1435.     when :mcr
  1436.       value = sprintf(fmt, @actor.mcr * 100)
  1437.     when :tcr
  1438.       value = sprintf(fmt, @actor.tcr * 100)
  1439.     when :pdr
  1440.       value = sprintf(fmt, @actor.pdr * 100)
  1441.     when :mdr
  1442.       value = sprintf(fmt, @actor.mdr * 100)
  1443.     when :fdr
  1444.       value = sprintf(fmt, @actor.fdr * 100)
  1445.     when :exr
  1446.       value = sprintf(fmt, @actor.exr * 100)
  1447.     when :hcr
  1448.       return dy unless $imported["YEA-SkillCostManager"]
  1449.       value = sprintf(fmt, @actor.hcr * 100)
  1450.     when :tcr_y
  1451.       return dy unless $imported["YEA-SkillCostManager"]
  1452.       value = sprintf(fmt, @actor.tcr_y * 100)
  1453.     when :gcr
  1454.       return dy unless $imported["YEA-SkillCostManager"]
  1455.       value = sprintf(fmt, @actor.gcr * 100)
  1456.     when :cdr
  1457.       return dy unless $imported["YEA-SkillRestrictions"]
  1458.       value = sprintf(fmt, @actor.cdr * 100)
  1459.     when :wur
  1460.       return dy unless $imported["YEA-SkillRestrictions"]
  1461.       value = sprintf(fmt, @actor.wur * 100)
  1462.     #---
  1463.     else; return dy
  1464.     end
  1465.     colour = Color.new(0, 0, 0, translucent_alpha/2)
  1466.     rect = Rect.new(dx+1, dy+1, dw-2, line_height-2)
  1467.     contents.fill_rect(rect, colour)
  1468.     change_color(system_color)
  1469.     draw_text(dx+4, dy, dw-8, line_height, property[1], 0)
  1470.     change_color(normal_color)
  1471.     draw_text(dx+4, dy, dw-8, line_height, value, 2)
  1472.     return dy + line_height
  1473.   end
  1474. end
  1475.   #--------------------------------------------------------------------------
  1476.   # window width
  1477.   #--------------------------------------------------------------------------
  1478. def window_width
  1479.   Graphics.width - 0
  1480.  end
  1481.   #--------------------------------------------------------------------------
  1482.   # window height
  1483.   #--------------------------------------------------------------------------
  1484. def window_height
  1485.   Graphics.height - 0
  1486.  end
  1487. end #WindowStatusItem
  1488.  
  1489. #==============================================================================
  1490. # ** Scene_Status
  1491. #------------------------------------------------------------------------------
  1492. #  This class performs the status screen processing.
  1493. #==============================================================================
  1494. class Scene_Status < Scene_MenuBase
  1495.   #--------------------------------------------------------------------------
  1496.   # start
  1497.   #--------------------------------------------------------------------------
  1498.   def start
  1499.     super
  1500.     create_status_window
  1501.     create_command_window
  1502.     create_item_window
  1503.   end
  1504.   #--------------------------------------------------------------------------
  1505.   # create_command_window
  1506.   #--------------------------------------------------------------------------
  1507.   def create_command_window
  1508.     wy = 0
  1509.     @command_window = Window_StatusCommand.new(0, wy)
  1510.     @command_window.viewport = @viewport
  1511.     @command_window.actor = @actor
  1512.     @command_window.help_window = @help_window
  1513.     @command_window.set_handler(:cancel,   method(:return_scene))
  1514.     @command_window.set_handler(:pagedown, method(:next_actor))
  1515.     @command_window.set_handler(:pageup,   method(:prev_actor))
  1516.   end
  1517.   #--------------------------------------------------------------------------
  1518.   # create_status_window
  1519.   #--------------------------------------------------------------------------
  1520.   def create_status_window
  1521.     wy = 0
  1522.   end
  1523.   #--------------------------------------------------------------------------
  1524.   # create_item_window
  1525.   #--------------------------------------------------------------------------
  1526.   def create_item_window
  1527.     dy = 0
  1528.     @item_window = Window_StatusItem.new(0, dy, @command_window)
  1529.     @item_window.viewport = @viewport
  1530.     @item_window.actor = @actor
  1531.     @command_window.item_window = @item_window
  1532.   end
  1533.   #--------------------------------------------------------------------------
  1534.   # on_actor_change
  1535.   #--------------------------------------------------------------------------
  1536.   def on_actor_change
  1537.     @command_window.actor = @actor
  1538.     @item_window.actor = @actor
  1539.     @command_window.activate
  1540.   end  
  1541. end # Scene_Status
  1542. #===============================================================================#
  1543. #☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#
  1544. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆#
  1545. #                                                                               #
  1546. #                                   PSS_SA                                      #
  1547. #                           (Perfect Status Screen)                             #
  1548. #                                - SCRIPT END -                                 #
  1549. #                                                                               #
  1550. #                                                                               #
  1551. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆#
  1552. #☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#
  1553. #===============================================================================#
  1554. #                           - DekitaRPG@gmail.com -                             #
  1555. #===============================================================================#
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×