Jragyn

[VXa] J Revamp-Status v1.0

Aug 18th, 2015
72
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. =begin
  2.                               J-Revamp-Status
  3.                           A configuration story.
  4.                         Currently [1.0.0] version.
  5.                       Kudos to KK20 for being awesome.
  6.  
  7. Version History:
  8. 1.0.0: Created script.
  9.  
  10. INSTRUCTIONS:
  11. This needs to be placed above all scripts you use that are written by me so that
  12. the proper configuration can take place before the script executes.
  13.  
  14. Also, I will make constant references to b/s/x parameters:
  15. b = base =          MHP/ATK/MDF/etc.
  16. s = secondary(?) =  TGR/PHA/MDR/etc.
  17. x = extra(?) =      HIT/CEV/HRG/etc.
  18.  
  19. Normally, S and X parameters are not visible to the player in-game, but they
  20. seriously should be since they can be pretty impactful! Thus the point of this
  21. whole entire script.
  22.  
  23. In addition to displaying normally-invisible parameters, I also wanted to design
  24. a status screen that was less empty, and fit better to a 16:9 resolution. That
  25. resolution of choice was 640x360. Horizontally, that is the highest you can
  26. achieve with no additional scripts/modifications, but vertically that is
  27. actually shorter than the default. Because of the way this script was designed,
  28. The resolution for this to be used can be NO SMALLER THAN 640x360.
  29.  
  30. Below you will find a series of modules that contain all the setup details for
  31. the J-Revamp-Status script, including:
  32.  > resolution changing
  33.  > new Vocab for all parameters
  34.  > help text for all parameters
  35.  > and icon assignment for all parameters
  36. This is all setup to work right out of the box, but feel free to tinker with it
  37. if you want to tailor it to your game.
  38.  
  39. NOTE:
  40. With this script primarily being designed around the resolution of 640x360,
  41. the Description of an actor has been omitted. However, if the reoslution is
  42. increased in the first module from 360 to 480, The actor description will
  43. show up between the parameters and their corresponding help text.
  44.  
  45. =end
  46. $imported = {} if $imported.nil?
  47. $imported["J-Revamp-Status"] = true
  48.  
  49. #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  50. # This tiny module handles the resolution resizing for the game window.
  51. # The default max is 640x480(WxH), this script requires at LEAST 640x360.
  52.  
  53. module J
  54. module Resize
  55.   W = 640 # Max 640 w/o specialized .dll file+script.
  56.   H = 360 # Max 480 w/o specialized .dll file+script.
  57. end#Resize
  58. end#module J
  59. #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  60. # The below is a re-defining of the vocabulary for b/s/x parameters.
  61. # Feel free to replace the quotes with whatever you want these parameters to be.
  62. # NOTE: This overwrites by default whatever is in the database.
  63.  
  64. module Vocab
  65.   # B-Parameters
  66. def self.bparam(bparam_id) #0-7
  67.   case bparam_id
  68.     when 0; return "Life";  # MHP  Max HP
  69.     when 1; return "Magi";  # MMP  Max MP
  70.     when 2; return "Power"; # ATK  Phys Attack
  71.     when 3; return "Endure";# DEF  Phys Defense
  72.     when 4; return "Force"; # MAT  Magic Attack
  73.     when 5; return "Resist";# MDF  Magic Defense
  74.     when 6; return "Speed"; # AGI  Agility
  75.     when 7; return "Luck";  # LUK  Luck
  76.   end
  77. end#def
  78.  
  79.   # S-Parameters
  80. def self.sparam(sparam_id) #0-9
  81.   case sparam_id
  82.     when 0; return "Targeting"; # TGR  TarGet Rate
  83.     when 1; return "Guardblock";# GRD  GuaRD effect rate
  84.     when 2; return "Recovery";  # REC  RECovery effect rate
  85.     when 3; return "Item Amp";  # PHA  PHArmacology
  86.     when 4; return "MP Reduce"; # MCR  Mp Cost Rate
  87.     when 5; return "TP Charge"; # TCR  Tp Charge Rate
  88.     when 6; return "PhysDMG%";  # PDR  Physical Damage Rate
  89.     when 7; return "MagiDMG%";  # MDR  Magical Damage Rate
  90.     when 8; return "FloorDMG%"; # FDR  Floor Damage Rate
  91.     when 9; return "EXPboost%"; # EXR  EXperience Rate
  92.   end
  93. end#def
  94.  
  95.   # X-Parameters
  96. def self.xparam(xparam_id) #0-9
  97.   case xparam_id
  98.     when 0; return "Hit%";        # HIT  HIT rate
  99.     when 1; return "Evade% ";     # EVA  EVAsion rate
  100.     when 2; return "Critical% ";  # CRI  CRItical rate
  101.     when 3; return "Crit Evade";  # CEV  Critical EVasion rate
  102.     when 4; return "M-Evade% ";   # MEV  Magic EVasion rate
  103.     when 5; return "M-Reflect% "; # MRF  Magic ReFlection rate
  104.     when 6; return "Counter% ";   # CNT  CouNTer attack rate
  105.     when 7; return "HP Regen%";   # HRG  Hp ReGeneration rate
  106.     when 8; return "MP Regen%";   # MRG  Mp ReGeneration rate
  107.     when 9; return "TP Regen%";   # TRG  Tp ReGeneration rate
  108.   end
  109. end#def
  110. #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  111. # This is a case id setup of index vs param_id, for stat descriptions.
  112. # Feel free to replace the quotes with whatever you want the help text to say.
  113. # NOTE: It is scripted to be two lines tall as seen below.
  114.  
  115. def self.paramInfo(param_id)
  116. case param_id
  117.  
  118. #  The help descriptions for the bparams.
  119. when 0; return "The maximum endurance of a character.          
  120. More HP makes it more difficult for this character to die.";    # MaxHP
  121. when 3; return "The mental fortitude of a character.
  122. Higher MP allows for more skills to be cast.";                  # MaxMP
  123. when 6; return "The raw physical power of this character.
  124. Factors into basic attacks and physical skills.";               # ATK
  125. when 9; return "The physical toughness of a character.
  126. This reduces physical damage, raising effective health.";       # DEF
  127. when 12; return "The magical prowess of a character.
  128. Greater amounts of this increases overall magical potency.";    # MAT
  129. when 15; return "The pure magical tolerance of a character.
  130. This reduces magical damage, raising effective health.";        # MDF
  131. when 18; return "The agility of a character.
  132. Enables more and/or faster actions while in battle.";           # AGI
  133. when 21; return "The absolute luck of a character.
  134. Having more luck can affect many things in and out of battle!"; # LUK
  135. # when 24; return "THIS IS AN UNUSED INDEX"; # -blank-
  136. # when 27; return "THIS IS AN UNUSED INDEX"; # -blank-
  137.  
  138. # The help descriptions for the sparams.                                     |
  139. when 1; return "The character's target rate.
  140. More of this makes them more likely to be targeted in battle.";   # TGR
  141. when 4; return "The guarding rate.
  142. Higher guard rate makes your \"Defend\" command more defensive."; # GRD
  143. when 7; return "The recovery ratio.
  144. This multiplies all incoming healing from skills by this%.";      # REC
  145. when 10; return "The pharmaceutical ratio.
  146. This amplifies effects of all items used by this character.";     # PHA
  147. when 13; return "The magical cost reduction.
  148. All skills with Magi(MP) costs will be reduced by this%.";        # MCR
  149. when 16; return "The technique cost reduction.
  150. All skills with Tech(TP) costs will be reduced by this%.";        # TCR
  151. when 19; return "The physical damage reduction.
  152. All physical damage will be reduced by this% off the top.";       # PDR
  153. when 22; return "The magical damage reduction.
  154. All magical damage will be reduced by this% off the top.";        # MDR
  155. when 25; return "The floor damage reduction.
  156. All floor/environment damage will be reduced by this%.";          # FDR
  157. when 28; return "The experience ratio.
  158. All earned experience from battle is increased by this%.";        # EXR
  159.  
  160. # The help descriptions for the xparams.
  161. when 2; return "The total combined accuracy.
  162. Effectively, you hit this% of the time lesser enemy evasion.";  # HIT
  163. when 5; return "The total evasion of this character.
  164. The greater this is, the less effective enemy hit% is.";        # EVA
  165. when 8; return "The chance of landing a mortal blow.
  166. More of this increases chances of landing said mortal blow.";   # CRI
  167. when 11; return "The total critical evasion of this character.
  168. The greater this is, the less effective enemy crit% is.";       # CEV
  169. when 14; return "The total magic evasion of this character.
  170. The greater this is, the more likely spells will be dodged.";   # MEV
  171. when 17; return "The native magic reflection rate.
  172. This grants a chance of reflecting magic back to the caster.";  # MRF
  173. when 20; return "The native counter-attack chance.
  174. This grants achance to strike back at attacking foes.";         # CNT
  175. when 23; return "The natural health regeneration rate.
  176. This% of max health will be restored each turn.";               # HRG
  177. when 26; return "The natural magic regeneration rate.
  178. This% of max magic will be restored each turn.";                # MRG
  179. when 29; return "The natural tech regeneration rate.
  180. This% of max tech will be restored each turn.";                 # TRG
  181. else
  182.   return "Catch-fail help description; you should never see this."
  183. end#case
  184. end#def
  185.  
  186. end#Vocab
  187.  
  188. #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  189. # This is a hash used for assigning words to icons, specifically parameters.
  190. # The only thing that requires changing here is the icon number.
  191. # This can be found by using the database > weapons > choose icon.
  192. module J
  193. module StatIcons
  194.   ICONS ={
  195.  
  196.   # bParameters
  197.   Vocab::bparam(0) => 3453, #Max HP
  198.   Vocab::bparam(1) => 3452, #Max MP
  199.   Vocab::bparam(2) => 3448, #Attack
  200.   Vocab::bparam(3) => 3451, #Defense
  201.   Vocab::bparam(4) => 3450, #M-Attack
  202.   Vocab::bparam(5) => 3454, #M-Defense
  203.   Vocab::bparam(6) => 3449, #Speed
  204.   Vocab::bparam(7) => 3455, #Luck
  205.  
  206.   # sParameters
  207.   Vocab::sparam(0) => 3114, #TarGet Rate
  208.   Vocab::sparam(1) => 3094, #GuaRD rate
  209.   Vocab::sparam(2) => 3100, #RECovery rate
  210.   Vocab::sparam(3) => 3092, #PHArmacy (item boost rate)
  211.   Vocab::sparam(4) => 3089, #Magic Cost Reduction
  212.   Vocab::sparam(5) => 3088, #Technique Cost Reduction
  213.   Vocab::sparam(6) => 3091, #Physical Damage Reduction
  214.   Vocab::sparam(7) => 3113, #Magic Damage Reduction
  215.   Vocab::sparam(8) => 3105, #Floor Damage Reduction
  216.   Vocab::sparam(9) => 3111, #EXperience Rate
  217.  
  218.   # xParameters
  219.   Vocab::xparam(0) => 3090, #Hit rate
  220.   Vocab::xparam(1) => 3099, #Evasion rate
  221.   Vocab::xparam(2) => 3097, #Crit chance
  222.   Vocab::xparam(3) => 3101, #Critical evasion
  223.   Vocab::xparam(4) => 3102, #Magic Evasion
  224.   Vocab::xparam(5) => 3110, #Magic ReFlection rate
  225.   Vocab::xparam(6) => 3096, #CouNTer-attack Rate
  226.   Vocab::xparam(7) => 3109, #Health ReGeneration
  227.   Vocab::xparam(8) => 3098, #Magic ReGeneration
  228.   Vocab::xparam(9) => 3108, #Tech ReGeneration
  229.  
  230.   }#
  231. end#StatIcons
  232. end#J
  233.  
  234. #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  235. # Processes the new Graphics Resolution based on input resolution above.
  236. # Catches it so there isn't a double-resize going on from Yanfly's stuff.
  237. if $imported["YEA-CoreEngine"]
  238. else
  239.   Graphics.resize_screen(J::Resize::W, J::Resize::H)
  240. end#$YEA-CoreEngine
  241.  
  242. class Window_Base < Window
  243. #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  244. # NEW! Function(s): draw_actor_bparam, draw_actor_sparam, draw_actor_xparam
  245. # Overwrites: make_font_bigger, make_font_smaller, draw_actor_hp, draw_actor_mp
  246. #   : Identical to drawing normal parameters, but for s/x params as well.
  247. #   : Also draws icons when available for the various stats.
  248. #   : Also enables fixed digit count for drawing parameters.
  249.  
  250. # \\ Draws the base parameters for the given actor.
  251.   def draw_actor_bparam(actor, x, y, param_id)
  252.     name = Vocab::bparam(param_id)
  253.     if J::StatIcons::ICONS.include?(name)
  254.       draw_icon(J::StatIcons::ICONS[name], x-32, y)
  255.     end
  256.     value = sprintf("%04d", actor.param(param_id).to_s)
  257.     change_color(system_color)
  258.     draw_text(x-10, y, 120, line_height, name)
  259.     change_color(normal_color)
  260.     draw_text(x + 50, y, 48, line_height, value, 2)
  261.   end#def
  262.  
  263. # \\ Draws the s-parameters for the given actor.
  264.   def draw_actor_sparam(actor, x, y, sparam_id)
  265.     name = Vocab::sparam(sparam_id)
  266.     if J::StatIcons::ICONS.include?(name)
  267.       draw_icon(J::StatIcons::ICONS[name], x-32, y)
  268.     end
  269.     value = ((actor.sparam(sparam_id)*100) - 100).to_i
  270.     change_color(system_color)
  271.     draw_text(x - 10, y, 120, line_height, name)
  272.     change_color(normal_color)
  273.     draw_text(x + 50, y, 48, line_height, value, 2)
  274.   end#def
  275.  
  276. # \\ Draws the x-parameters for the given actor.
  277.   def draw_actor_xparam(actor, x, y, xparam_id)
  278.     name = Vocab::xparam(xparam_id)
  279.     if J::StatIcons::ICONS.include?(name)
  280.       draw_icon(J::StatIcons::ICONS[name], x-32, y)
  281.     end
  282.     change_color(system_color)
  283.     draw_text(x - 10, y, 120, line_height, name)
  284.     change_color(normal_color)
  285.     draw_text(x + 50, y, 48, line_height, (actor.xparam(xparam_id)*100).to_i, 2)
  286.   end#def
  287.  
  288. # \\ Modified to allow for custom input of size increase.
  289.   def make_font_bigger(size = 8)
  290.     contents.font.size += size if contents.font.size <= 64
  291.   end#def
  292.  
  293. # \\ Modified to allow for custom input of size decrease.
  294.   def make_font_smaller(size = 8)
  295.     contents.font.size -= size if contents.font.size >= 16
  296.   end#def
  297.  
  298. # \\ Modifies to draw HP with a fixed number of digits(4).
  299. # \\ Because issues with def group, created a catch for YEA-CoreEngine.
  300.   alias j_catch_yea_draw_actor_hp draw_actor_hp
  301.   def draw_actor_hp(actor, x, y, width = 124)
  302.     if $imported["YEA-CoreEngine"]
  303.     j_catch_yea_draw_actor_hp(actor, x, y)
  304.     else
  305.     c_hp = sprintf("%04d", actor.hp); m_hp = sprintf("%04d", actor.mhp)
  306.     draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
  307.     change_color(system_color)
  308.     draw_text(x, y, 30, line_height, Vocab::hp_a)
  309.     draw_current_and_max_values(x, y, width, c_hp, m_hp,
  310.       hp_color(actor), normal_color)
  311.     end#catch
  312.   end#def
  313.  
  314. # \\ Modifies to draw MP with a fixed number of digits(4).
  315. # \\ Because issues with def group, created a catch for YEA-CoreEngine.
  316.   alias j_catch_yea_draw_actor_mp draw_actor_mp
  317.   def draw_actor_mp(actor, x, y, width = 124)
  318.     if $imported["YEA-CoreEngine"]
  319.     j_catch_yea_draw_actor_mp(actor, x, y)
  320.     else
  321.     c_mp = sprintf("%04d", actor.mp); m_mp = sprintf("%04d", actor.mmp)
  322.     draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
  323.     change_color(system_color)
  324.     draw_text(x, y, 30, line_height, Vocab::mp_a)
  325.     draw_current_and_max_values(x, y, width, c_mp, m_mp,
  326.       mp_color(actor), normal_color)
  327.     end#catch
  328.   end#def
  329.    
  330. end#Window_Base
  331.  
  332. class Window_Status < Window_Selectable
  333. #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  334. # Overwrites: Entire status menu.
  335. #   : WARNING! Do not use with other scripts that modify the status menu.
  336.  
  337. # \\ Changes the line_height to be 20 instead of 24, to fit all params.
  338.   def item_height; 20; end
  339.  
  340. # \\ Draws all the contents of visible text on the status screen.
  341.   def refresh
  342.     contents.clear
  343.     draw_block_header     (line_height * 0)
  344.     draw_block_allparams  (line_height * 4)
  345.     draw_block_explife    (line_height * 0)
  346.     draw_cond_desc        (line_height * 14)
  347.   end#def
  348.  
  349. # \\ draws the three rows of parameters: base/secondary/xtra, and equips.
  350.   def draw_block_allparams(y = 0)
  351.     draw_b_parameters( 28, y)
  352.     draw_s_parameters(178, y)
  353.     draw_x_parameters(328, y)
  354.     draw_equipments(440, y)
  355.   end#def
  356.  
  357. # \\ draws the top section for face/name/class/nickname details.
  358.   def draw_block_header(y)
  359.     draw_actor_face(@actor, 0, y)
  360.     make_font_bigger(4)
  361.     draw_actor_name(@actor, 100, y + line_height * 0)
  362.     make_font_smaller(8)
  363.     draw_actor_class(@actor, 100, y + line_height * 1)
  364.     draw_actor_nickname(@actor, 100, y + line_height * 2)
  365.     make_font_bigger(4)
  366.     draw_actor_level(@actor, 100, y + line_height * 3)
  367.   end#def
  368.  
  369. # \\ draws the status-icons/hp-mp/experience details.
  370.   def draw_block_explife(y)
  371.     draw_actor_hp(@actor, 240, y + line_height * 0, 80)
  372.     draw_actor_mp(@actor, 240, y + line_height * 1, 80)
  373.     draw_actor_icons(@actor, 240, y + line_height * 2)
  374.     draw_exp_info(370, y)
  375.   end#def
  376.  
  377.   def draw_cond_desc(x=12,y)
  378.     if Graphics.height >= 480
  379.       draw_horz_line(y - line_height)
  380.       draw_description(x,y)
  381.       draw_horz_line(y + line_height * 2)
  382.     end#if
  383.   end
  384.  
  385. # \\ draws the equipments, may possibly modify in future.
  386. =begin
  387.    def draw_equipments(x, y)
  388.      @actor.equips.each_with_index do |item, i|
  389.        draw_item_name(item, x, y + line_height * i)
  390.      end#each
  391.    end#def
  392. =end
  393.  
  394. # \\ Overwrites experience drawing to re-adjust and write it cleaner.
  395.   def draw_exp_info(x, y)
  396.     if @actor.max_level?
  397.       s1 = sprintf("%010d", @actor.exp); s2 = "----------";
  398.     else
  399.       s1 = sprintf("%010d", @actor.exp)
  400.       s2 = sprintf("%010d", (@actor.next_level_exp - @actor.exp))
  401.     end
  402.     s_e = sprintf("Exp.: ")#(Vocab::ExpNext, Vocab::level)
  403.     s_n = sprintf("Next: ")#(Vocab::ExpNext, Vocab::ExpTotal)
  404.     change_color(system_color)
  405.     draw_text(x + 0, y + line_height * 0, 180, line_height, s_e)
  406.     draw_text(x + 0, y + line_height * 1, 180, line_height, s_n)
  407.     change_color(normal_color)
  408.     draw_text(x + 64, y + line_height * 0, 180, line_height, s1)
  409.     draw_text(x + 64, y + line_height * 1, 180, line_height, s2)
  410.   end#def
  411.  
  412. # \\ Draws a 2px vertical line at the given location.
  413.   def draw_vert_line(x, y)
  414.     # (origin x, origin y, line_width, how tall, color)
  415.     contents.fill_rect(x, y, 2, 200, line_color)
  416.   end#def
  417.  
  418. # \\ Draws the base parameters that the database normally modifies.
  419.   def draw_b_parameters(x, y)
  420.     lh = line_height - 4
  421.     make_font_smaller(4)
  422.     8.times {|i| draw_actor_bparam(@actor, x, y + lh * i, i) }
  423.     make_font_bigger(4)
  424.   end#def
  425.  
  426. # \\ Draws the secondary parameters like MCR/PDR/EXR.
  427.   def draw_s_parameters(x, y)
  428.     lh = line_height - 4
  429.     make_font_smaller(4)
  430.     10.times {|i| draw_actor_sparam(@actor, x, y + lh * i, i) }
  431.     make_font_bigger(4)
  432.   end#def
  433.  
  434. # \\ Draws the extra parameters like Hit/crit/evade.
  435.   def draw_x_parameters(x, y)
  436.     lh = line_height - 4
  437.     make_font_smaller(4)
  438.     10.times {|i| draw_actor_xparam(@actor, x, y + lh * i, i) }
  439.     make_font_bigger(4)
  440.   end#def
  441.  
  442. end#Window_Status
  443.  
  444. class Window_Parameter_Choice < Window_Selectable
  445. #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  446. # NEW! class used explicity with this script.
  447. #   : Draws the cursor that overlays the 3 columns of parameters.
  448. #   : This grid is what defines what help text is visible in the help window.
  449.  
  450. # \\ Handles initialization of the cursor grid for parameters.
  451.   def initialize(x, y)
  452.     super(x, y, 460, 240)
  453.   end#def
  454.  
  455. # \\ Defines the grid to be a 30 total cells.
  456.   def item_max; return 30; end
  457.  
  458. # \\ Defines the grid to have 3 columns, resulting in 3x10.
  459.   def col_max; return 3; end
  460.  
  461. # \\ Defines the height of the cells to be fixed at 20.
  462.   def item_height; 20; end#
  463.  
  464. # \\ Draws the rectangles within the grid.
  465. # \\ Rectangles are fixed at 150 width instead of being dynamically sized.
  466.   def item_rect(index)
  467.     rect = Rect.new
  468.     rect.width = item_width
  469.     rect.height = item_height - 2
  470.     rect.x = index % col_max * 150
  471.     rect.y = index / col_max * item_height + 2
  472.     rect
  473.   end#def
  474.  
  475. # \\ Redefines this to prevent scrolling down into the blank space.
  476.   def cursor_down(wrap = false)
  477.     if index == 21
  478.       return
  479.     else
  480.       super(wrap)
  481.     end
  482.   end#def
  483.  
  484. # \\ Redefines this to prevent scrolling right into the blank space.
  485.   def cursor_right(wrap = false)
  486.     if index == 26 || index == 23
  487.       select(index == 23 ? 25 : 28)
  488.     else
  489.       super(wrap)
  490.     end
  491.   end#def
  492.  
  493. # \\ Redefines this to prevent scrolling left into the blank space.
  494.   def cursor_left(wrap = false)
  495.     if index == 28 || index == 25
  496.       select(index == 25 ? 23 : 26)
  497.     else
  498.       super(wrap)
  499.     end
  500.   end#def
  501.  
  502. # \\ Redefines this to assign help text based on the index of the selection.
  503.   def select(index)
  504.     super(index)
  505.     @help_window.set_text(Vocab.paramInfo(@index))
  506.   end#def
  507.  
  508. end#Window_Parameter_Choice
  509.  
  510. class Scene_Status < Scene_MenuBase
  511. #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  512. # Overwrites: Scene_Status
  513. #   : Modified to handle the new window and methods created/modified above.
  514. #   : Modified to allow for parameter help descriptions.
  515.  
  516. # \\ Handles the startup of the status screen when loaded.
  517.   def start
  518.     super
  519.     create_status_window
  520.     create_help_window
  521.     create_select_window
  522.   end#def
  523.  
  524. # \\ Handles the handling of input.
  525.   def create_status_window
  526.     @status_window = Window_Status.new(@actor)
  527.     @status_window.actor = @actor
  528.     @status_window.set_handler(:cancel,   method(:return_scene))
  529.     @status_window.set_handler(:pagedown, method(:next_actor))
  530.     @status_window.set_handler(:pageup,   method(:prev_actor))
  531.   end#def
  532.  
  533. # \\ Handles the help window and its contents.
  534.   def create_help_window
  535.     @help_window = Window_Help.new
  536.     @help_window.viewport = @viewport
  537.     @help_window.opacity = 0
  538.     if Graphics.height >= 480
  539.       @help_window.y = Graphics.height - 70
  540.     else
  541.       @help_window.y = Graphics.height - 65
  542.     end#if
  543.   end#def
  544.  
  545. # \\ Generates the new window that handles the cursor movement.
  546. # \\ The cursor index is what defines the help text viewed beneath params.
  547.   def create_select_window
  548.     @select_window = Window_Parameter_Choice.new(0, 96)
  549.     @select_window.opacity = 0
  550.     @select_window.active = true
  551.     @select_window.help_window = @help_window
  552.     @select_window.select(0) # Put cursor to MaxHP and draw help text for it
  553.   end#def
  554.  
  555. # \\ Adds in the refresh for the help window text.
  556.   def on_actor_change
  557.     @status_window.actor = @actor
  558.     @status_window.activate
  559.     @help_window.refresh
  560.   end#def
  561.  
  562. end#Scene_Status
RAW Paste Data