Advertisement
Dekita

PSSv1.1 Standalone Version

Aug 13th, 2012
2,808
0
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. #===============================================================================#
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement