Submit Your Article


 
RPG Maker

Welcome Guest ( Log In | Register )


  Games Resources RPG Maker VX RPG Maker XP Scripts Tutorials Downloads

 
Closed TopicStart new topic
> YEM - Enemy Levels V 1.1, Bugfix
Pillanious
post Feb 20 2012, 09:25 PM
Post #1


Level 8
Group Icon

Group: Revolutionary
Posts: 125
Type: Musician
RM Skill: Beginner




In the original script - RES/DEX would not grow with enemy levels, nor would any of the appropriate tags that affected these stats function in any way shape or form. This has been fixed by correcting the method by which the integers are returned.

Updated script below:

CODE
#===============================================================================
#
# Yanfly Engine Melody - New Battle Stats
# Last Date Updated: 2012.02.21
# Level: Normal, Hard
#
# This script offers the functionality to add new battle stats for both actors
# and enemies alike. These stats can be adjusted in the script itself while any
# potential weapons, armours, states, and enemies can have their settings made
# within their respective noteboxes.
#
# - DEX - Dexterity
# Dexterity is a new stat that directly impacts hit rates, evasion rates, and
# critical hit rates. In default VX, there was no growth at all over these three
# stats other than through equipment. Now, actors progressing through the game
# can directly impact the hit rate, evasion rate, and critical hit rate of a
# character upon calculation.
#
# - RES - Resistance
# Resistance is a new stat to provide a magical defense against magical attacks.
# Just like DEF is to ATK, RES is to SPI. In default VX, both magical defense
# and magical attack were found in one stat. Now, they're split across two,
# which frankly makes more sense.
#
#===============================================================================
# Updates
# -----------------------------------------------------------------------------
# o 2012.02.21 - Fixed stat growth for YEM Enemy Levels.
# o 2010.06.20 - Bugfix update for dex= and res=
# o 2010.06.14 - Compatibility Update for Skill Equip System.
# o 2010.05.31 - Compatibility Update for YEM Enemy Levels.
# o 2010.05.19 - Started Script and Finished.
#===============================================================================
# Instructions
# -----------------------------------------------------------------------------
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ▼ Materials but above ▼ Main. Remember to save.
#
# Scroll down and set whichever stats you wish to include in your game. More
# instructions are available in each individual section.
#===============================================================================

$imported = {} if $imported == nil

module YEM
  module STATS
    module DEX
      
      #=========================================================================
      # - DEX - Dexterity
      # -----------------------------------------------------------------------
      # Dexterity is a new stat that directly impacts hit rates, evasion rates,
      # and critical hit rates. In default VX, there was no growth at all over
      # these three stats other than through equipment. Now, actors progressing
      # through the game can directly impact the hit rate, evasion rate, and
      # critical hit rate of a character upon calculation.
      #
      # -----------------------------------------------------------------------
      # Item Tags - For Items only.
      # -----------------------------------------------------------------------
      # <dex growth: +x>  or  <dex growth: -x>
      # This raises or lowers the target's base DEX by x amount.
      #
      # -----------------------------------------------------------------------
      # Equipment Tags - For Weapons and Armours only.
      # -----------------------------------------------------------------------
      # <dex: +x>  or  <dex: -x>
      # <dex: +x%> or  <dex: -x%>
      # This allows the weapon or armour to increase DEX for the actor wearing
      # it by x amount or x%. Using the tag without the percentage will raise
      # the amount by a set value while using the percentage will increase the
      # base DEX of the actor by a percentile value.
      #
      # -----------------------------------------------------------------------
      # State Tags - For Status Effects only.
      # -----------------------------------------------------------------------
      # <dex: x%>  or  <dex: +x>  or  <dex: -x>
      # This adjusts the DEX stat in battle by x percentile or a set x amount.
      # If multiple of these tags are used, it will be calculated based on the
      # order of operations. Stackable.
      #
      # -----------------------------------------------------------------------
      # Enemy Tags - For Enemies only.
      # -----------------------------------------------------------------------
      # <base dex: x>
      # This sets the enemy's base DEX to x. The base dex would be the enemy's
      # unaltered DEX value. If this tag isn't present, the enemy's base DEX
      # will be calculated based on the formula provided by the module.
      #=========================================================================
      
      # This changes whether or not the DEX stat will be used at all. Set it
      # to true if you wish to use the DEX stat. False if otherwise.
      $imported["DEX Stat"] = true
      
      # This is the ingame vocabulary for the DEX stat.
      VOCAB = "DEX"
      
      # This hash allows you to edit each actor's base DEX formula and the rate
      # of growth for DEX as levels progress. Note that actor 0 will be used if
      # the actor's ID does not appear on this list.
      ACTOR_BASE ={
      # ID => Formula
         0 => "actor.parameters[2,@level]/2+actor.parameters[5,@level]/2",
         4 => "@level * 6 + 20",
         1 => "@level * 7 + 35",
         2 => "@level * 2 + 16",
         3 => "@level * 2 + 12",
      } # Do not remove this.
      
      # This is the formula used for the base DEX of an enemy if not specific
      # base DEX has been defined by the <base dex: x> tag.
      ENEMY_BASE = "@atk * 4 + @agi * 4 / 3"
      
      # These are the formulas used to convert DEX bonuses for each of the
      # varying stats. These bonuses are added onto the previously calculated
      # HIT, EVA, and CRI values.
      DEX_TO_HIT = "self.dex * 0.10"
      DEX_TO_EVA = "self.dex * 0.03"
      DEX_TO_CRI = "self.dex * 0.09"
      
    end # DEX
    module RES
      
      #=========================================================================
      # - RES - Resistance
      # -----------------------------------------------------------------------
      # Resistance is a new stat to provide a magical defense against magical
      # attacks. Just like DEF is to ATK, RES is to SPI. In default VX, both
      # magical defense and magical attack were found in one stat. Now, they're
      # split across two, which frankly makes more sense.
      #
      # -----------------------------------------------------------------------
      # Item Tags - For Items only.
      # -----------------------------------------------------------------------
      # <res growth: +x>  or  <res growth: -x>
      # This raises or lowers the target's base RES by x amount.
      #
      # -----------------------------------------------------------------------
      # Equipment Tags - For Weapons and Armours only.
      # -----------------------------------------------------------------------
      # <res: +x>  or  <res: -x>
      # <res: +x%> or  <res: -x%>
      # This allows the weapon or armour to increase RES for the actor wearing
      # it by x amount or x%. Using the tag without the percentage will raise
      # the amount by a set value while using the percentage will increase the
      # base RES of the actor by a percentile value.
      #
      # -----------------------------------------------------------------------
      # State Tags - For Status Effects only.
      # -----------------------------------------------------------------------
      # <res: x%>  or  <res: +x>  or  <res: -x>
      # This adjusts the RES stat in battle by x percentile or a set x amount.
      # If multiple of these tags are used, it will be calculated based on the
      # order of operations. Stackable.
      #
      # -----------------------------------------------------------------------
      # Enemy Tags - For Enemies only.
      # -----------------------------------------------------------------------
      # <base res: x>
      # This sets the enemy's base RES to x. The base res would be the enemy's
      # unaltered RES value. If this tag isn't present, the enemy's base RES
      # will be calculated based on the formula provided by the module.
      #=========================================================================
      
      # This changes whether or not the RES stat will be used at all. Set it
      # to true if you wish to use the RES stat. False if otherwise.
      $imported["RES Stat"] = true
      
      # This is the ingame vocabulary for the RES stat.
      VOCAB = "RES"
      
      # This hash allows you to edit each actor's base RES formula and the rate
      # of growth for RES as levels progress. Note that actor 0 will be used if
      # the actor's ID does not appear on this list.
      ACTOR_BASE ={
      # ID => Formula
         0 => "actor.parameters[3,@level]/2+actor.parameters[4,@level]/2",
         4 => "@level * 4 + 20",
         1 => "@level * 2 + 20",
         2 => "@level * 6 + 30",
         3 => "@level * 7 + 34",
      } # Do not remove this.
      
      # This is the formula used for the base RES of an enemy if not specific
      # base RES has been defined by the <base res: x> tag.
      ENEMY_BASE = "(@def * 4 + @spi * 4) / 2 + 96"
      
    end # RES
  end # STATS
end # YEM

#===============================================================================
# Editting anything past this point may potentially result in causing computer
# damage, incontinence, explosion of user's head, coma, death, and/or halitosis.
# Therefore, edit at your own risk.
#===============================================================================

module YEM
  module REGEXP
  module BASEITEM
    
    STAT_PER  = /<(.*):[ ]*([\+\-]\d+)([%%])>/i
    STAT_SET  = /<(.*):[ ]*([\+\-]\d+)>/i
    
  end # BASEITEM
  module ITEM
    
    STAT_GROW = /<(.*)[ ](?:BOOST|growth):[ ]([\+\-]\d+)>/i
    
  end # ITEM
  module STATE
    
    STAT_PER  = /<(.*):[ ]*(\d+)([%%])>/i
    STAT_SET  = /<(.*):[ ]*([\+\-]\d+)>/i
    
  end # STATE
  module ENEMY
    
    BASE_STAT = /<(?:BASE|basic)[ ](.*):[ ]*(\d+)>/i
    
  end # ENEMY
  end # REGEXP
end # YEM

#===============================================================================
# module Vocab
#===============================================================================

module Vocab
  
  #--------------------------------------------------------------------------
  # self.dex
  #--------------------------------------------------------------------------
  def self.dex; return YEM::STATS::DEX::VOCAB; end
  
  #--------------------------------------------------------------------------
  # self.res
  #--------------------------------------------------------------------------
  def self.res; return YEM::STATS::RES::VOCAB; end
    
end

#===============================================================================
# RPG::BaseItem
#===============================================================================

class RPG::BaseItem
  
  #--------------------------------------------------------------------------
  # public instance variables
  #--------------------------------------------------------------------------
  attr_accessor :dex
  attr_accessor :dex_per
  attr_accessor :res
  attr_accessor :res_per
  
  #--------------------------------------------------------------------------
  # common cache: yem_cache_baseitem_nbs
  #--------------------------------------------------------------------------
  def yem_cache_baseitem_nbs
    return if @cached_state_nbs; @cached_state_nbs = true
    @dex = 0
    @res = 0
    @dex_per = 0
    @res_per = 0
    #---
    self.note.split(/[\r\n]+/).each { |line|
      case line
      #---
      when YEM::REGEXP::BASEITEM::STAT_PER
        case $1.upcase
        when "DEX", "DEXTERITY"
          @dex_per = $2.to_i
        when "RES", "RESISTANCE"
          @res_per = $2.to_i
        end
      #---
      when YEM::REGEXP::BASEITEM::STAT_SET
        case $1.upcase
        when "DEX", "DEXTERITY"
          @dex = $2.to_i
        when "RES", "RESISTANCE"
          @res = $2.to_i
        end
      #---
      end
    } # self.note.split
  end # yem_cache_baseitem_nbs
  
end # RPG::BaseItem

#===============================================================================
# RPG::Item
#===============================================================================

class RPG::Item < RPG::UsableItem
  
  #--------------------------------------------------------------------------
  # public instance variables
  #--------------------------------------------------------------------------
  attr_accessor :stat_growth
  
  #--------------------------------------------------------------------------
  # common cache: yem_cache_item_nbs
  #--------------------------------------------------------------------------
  def yem_cache_item_nbs
    return if @cached_item_nbs; @cached_item_nbs = true
    @stat_growth = {} if @stat_growth == nil
    #---
    self.note.split(/[\r\n]+/).each { |line|
      case line
      #---
      when YEM::REGEXP::ITEM::STAT_GROW
        case $1.upcase
        when "DEX", "DEXTERITY"
          type = :dex
        when "RES", "RESISTANCE"
          type = :res
        else; next
        end
        @stat_growth[type] = $2.to_i
      end
    } # self.note.split
  end # yem_cache_item_nbs
  
end # RPG::Item

#===============================================================================
# RPG::State
#===============================================================================

class RPG::State
  
  #--------------------------------------------------------------------------
  # public instance variables
  #--------------------------------------------------------------------------
  attr_accessor :dex_rate
  attr_accessor :dex_set
  attr_accessor :res_rate
  attr_accessor :res_set
  
  #--------------------------------------------------------------------------
  # common cache: yem_cache_state_nbs
  #--------------------------------------------------------------------------
  def yem_cache_state_nbs
    return if @cached_state_nbs; @cached_state_nbs = true
    @dex_rate = 100
    @res_rate = 100
    @dex_set = 0
    @res_set = 0
    #---
    self.note.split(/[\r\n]+/).each { |line|
      case line
      #---
      when YEM::REGEXP::STATE::STAT_PER
        case $1.upcase
        when "DEX", "DEXTERITY"
          @dex_rate = $2.to_i
        when "RES", "RESISTANCE"
          @res_rate = $2.to_i
        end
      #---
      when YEM::REGEXP::STATE::STAT_SET
        case $1.upcase
        when "DEX", "DEXTERITY"
          @dex_set = $2.to_i
        when "RES", "RESISTANCE"
          @res_set = $2.to_i
        end
      #---
      end
    } # self.note.split
  end # yem_cache_state_nbs
  
end # RPG::State

#===============================================================================
# RPG::Enemy
#===============================================================================

class RPG::Enemy
  
  #--------------------------------------------------------------------------
  # public instance variables
  #--------------------------------------------------------------------------
  attr_accessor :dex
  attr_accessor :res
  
  #--------------------------------------------------------------------------
  # common cache: yem_cache_enemy_nbs
  #--------------------------------------------------------------------------
  def yem_cache_enemy_nbs
    return if @cached_enemy_nbs; @cached_enemy_nbs = true
    @dex = eval(YEM::STATS::DEX::ENEMY_BASE)
    @res = eval(YEM::STATS::RES::ENEMY_BASE)
    #---
    self.note.split(/[\r\n]+/).each { |line|
      case line
      #---
      when YEM::REGEXP::ENEMY::BASE_STAT
        case $1.upcase
        when "DEX", "DEXTERITY"
          @dex = $2.to_i
        when "RES", "RESISTANCE"
          @res = $2.to_i
        end
      #---
      end
    } # self.note.split
  end # yem_cache_state_nbs
  
end # RPG::Enemy

#===============================================================================
# Vocab
#===============================================================================

module Vocab
  
  #--------------------------------------------------------------------------
  # new method: self.dex
  #--------------------------------------------------------------------------
  def self.dex; return YEM::STATS::DEX::VOCAB; end
    
  #--------------------------------------------------------------------------
  # new method: self.res
  #--------------------------------------------------------------------------
  def self.res; return YEM::STATS::RES::VOCAB; end
  
end # Vocab

#===============================================================================
# Scene_Title
#===============================================================================

class Scene_Title < Scene_Base
  
  #--------------------------------------------------------------------------
  # alias method: load_bt_database
  #--------------------------------------------------------------------------
  alias load_bt_database_nbs load_bt_database unless $@
  def load_bt_database
    load_bt_database_nbs
    load_nbs_cache
  end
  
  #--------------------------------------------------------------------------
  # alias method: load_database
  #--------------------------------------------------------------------------
  alias load_database_nbs load_database unless $@
  def load_database
    load_database_nbs
    load_nbs_cache
  end
  
  #--------------------------------------------------------------------------
  # new method: load_nbs_cache
  #--------------------------------------------------------------------------
  def load_nbs_cache
    groups = [$data_skills, $data_items, $data_weapons, $data_armors,
      $data_enemies, $data_states]
    for group in groups
      for obj in group
        next if obj == nil
        obj.yem_cache_baseitem_nbs if obj.is_a?(RPG::BaseItem)
        obj.yem_cache_item_nbs if obj.is_a?(RPG::Item)
        obj.yem_cache_state_nbs if obj.is_a?(RPG::State)
        obj.yem_cache_enemy_nbs if obj.is_a?(RPG::Enemy)
      end
    end
  end
  
end # Scene_Title

#===============================================================================
# Game_Battler
#===============================================================================

class Game_Battler
  
  #--------------------------------------------------------------------------
  # anti-crash method: clear_battle_cache
  #--------------------------------------------------------------------------
  unless method_defined?(:clear_battle_cache)
  def clear_battle_cache; @cache_params = {}; end
  end # method_defined?(:clear_battle_cache)
    
  #--------------------------------------------------------------------------
  # anti-crash method: parameter_limit
  #--------------------------------------------------------------------------
  unless method_defined?(:parameter_limit)
  def parameter_limit; return 999; end
  end # method_defined?(:parameter_limit)
  
  #--------------------------------------------------------------------------
  # anti-crash method: stack
  #--------------------------------------------------------------------------
  unless method_defined?(:stack)
  def stack(state); return 1; end
  end # method_defined?(:stack)
  
  #--------------------------------------------------------------------------
  # alias method: item_growth_effect
  #--------------------------------------------------------------------------
  alias item_growth_effect_nbs item_growth_effect unless $@
  def item_growth_effect(user, item)
    item_growth_effect_nbs(user, item)
    if item.stat_growth != {}
      for key in item.stat_growth
        stat = key[0]; value = key[1]
        case stat
        when :dex
          @boost_dex += value
        when :res
          @boost_res += value
        end
      end
    end
  end
  
  if $imported["DEX Stat"]
  #--------------------------------------------------------------------------
  # new method: dex
  #--------------------------------------------------------------------------
  def dex
    clear_battle_cache if @cache_params == nil
    if $scene.is_a?(Scene_Battle)
      return @cache_params[:dex] if @cache_params[:dex] != nil
    end
    #---
    @dex_plus = 0 if @dex_plus == nil
    n = [base_dex + @dex_plus, 1].max
    for state in states
      stack(state).times do
        n = n * state.dex_rate / 100.0
      end
    end
    for state in states
      next if state.dex_set == 0
      n += state.dex_set * stack(state)
    end
    #---
    @cache_params[:dex] = [[Integer(n), parameter_limit].min, 1].max
    return @cache_params[:dex]
  end
  
  #--------------------------------------------------------------------------
  # new method: dex=
  #--------------------------------------------------------------------------
  def dex=(value)
    @dex_plus = 0 if @dex_plus == nil
    @dex_plus += value - self.dex
    @dex_plus = [[@dex_plus, -parameter_limit].max, parameter_limit].min
    clear_battle_cache
  end
  #--------------------------------------------------------------------------
  end # imported["DEX Stat"]

  if $imported["RES Stat"]
  #--------------------------------------------------------------------------
  # new method: res
  #--------------------------------------------------------------------------
  def res
    clear_battle_cache if @cache_params == nil
    if $scene.is_a?(Scene_Battle)
      return @cache_params[:res] if @cache_params[:res] != nil
    end
    #---
    @res_plus = 0 if @res_plus == nil
    n = [base_res + @res_plus, 1].max
    for state in states
      stack(state).times do
        n = n * state.res_rate / 100.0
      end
    end
    for state in states
      next if state.res_set == 0
      n += state.res_set * stack(state)
    end
    #---
    @cache_params[:res] = [[Integer(n), parameter_limit].min, 1].max
    return @cache_params[:res]
  end
  
  #--------------------------------------------------------------------------
  # new method: res=
  #--------------------------------------------------------------------------
  def res=(value)
    @res_plus = 0 if @res_plus == nil
    @res_plus += value - self.res
    @res_plus = [[@res_plus, -parameter_limit].max, parameter_limit].min
    clear_battle_cache
  end
  
  #--------------------------------------------------------------------------
  # overwrite method: make_obj_damage_value
  #--------------------------------------------------------------------------
  unless $imported["BattleEngineMelody"]
  def make_obj_damage_value(user, obj)
    damage = obj.base_damage
    if damage > 0
      damage += user.atk * 4 * obj.atk_f / 100
      damage += user.spi * 2 * obj.spi_f / 100
      unless obj.ignore_defense
        damage -= self.def * 2 * obj.atk_f / 100
        damage -= self.res * 1 * obj.spi_f / 100
      end
      damage = 0 if damage < 0
    elsif damage < 0
      damage -= user.atk * 4 * obj.atk_f / 100
      damage -= user.spi * 2 * obj.spi_f / 100
    end
    damage *= elements_max_rate(obj.element_set)
    damage /= 100
    damage = apply_variance(damage, obj.variance)
    damage = apply_guard(damage)
    if obj.damage_to_mp
      @mp_damage = damage
    else
      @hp_damage = damage
    end
  end
  end # $imported["BattleEngineMelody"]
  #--------------------------------------------------------------------------
  end # imported["RES Stat"]
  
end # Game_Battler

#===============================================================================
# Game_Actor
#===============================================================================

class Game_Actor < Game_Battler
  
  if $imported["DEX Stat"]
  #--------------------------------------------------------------------------
  # new method: base_dex
  #--------------------------------------------------------------------------
  def base_dex
    if YEM::STATS::DEX::ACTOR_BASE.include?(@actor_id)
      n = eval(YEM::STATS::DEX::ACTOR_BASE[@actor_id])
    else
      n = eval(YEM::STATS::DEX::ACTOR_BASE[0])
    end
    #---
    percent = 100
    for equip in equips.compact
      percent += equip.dex_per
    end
    n *= percent / 100.0
    #---
    for equip in equips.compact
      n += equip.dex
    end
    #---
    n += equip_skill_stat_bonus(:dex) if $imported["SkillEquipSystem"]
    #---
    @boost_dex = 0 if @boost_dex == nil
    n += @boost_dex
    return Integer(n)
  end
  
  #--------------------------------------------------------------------------
  # alias method: hit
  #--------------------------------------------------------------------------
  alias hit_game_actor_nbs hit unless $@
  def hit
    n = hit_game_actor_nbs
    n += eval(YEM::STATS::DEX::DEX_TO_HIT)
    return [Integer(n), 0].max
  end
  
  #--------------------------------------------------------------------------
  # alias method: eva
  #--------------------------------------------------------------------------
  alias eva_game_actor_nbs eva unless $@
  def eva
    n = eva_game_actor_nbs
    n += eval(YEM::STATS::DEX::DEX_TO_EVA)
    return [Integer(n), 0].max
  end
  
  #--------------------------------------------------------------------------
  # alias method: cri
  #--------------------------------------------------------------------------
  alias cri_game_actor_nbs cri unless $@
  def cri
    n = cri_game_actor_nbs
    n += eval(YEM::STATS::DEX::DEX_TO_CRI)
    return [Integer(n), 0].max
  end
  #--------------------------------------------------------------------------
  end # imported["DEX Stat"]
  
  if $imported["RES Stat"]
  #--------------------------------------------------------------------------
  # new method: base_res
  #--------------------------------------------------------------------------
  def base_res
    if YEM::STATS::RES::ACTOR_BASE.include?(@actor_id)
      n = eval(YEM::STATS::RES::ACTOR_BASE[@actor_id])
    else
      n = eval(YEM::STATS::RES::ACTOR_BASE[0])
    end
    #---
    percent = 100
    for equip in equips.compact
      percent += equip.res_per
    end
    n *= percent / 100.0
    #---
    for equip in equips.compact
      n += equip.res
    end
    #---
    n += equip_skill_stat_bonus(:res) if $imported["SkillEquipSystem"]
    #---
    @boost_res = 0 if @boost_res == nil
    n += @boost_res
    return Integer(n)
  end
  #--------------------------------------------------------------------------
  end # imported["RES Stat"]
  
end # Game_Actor

#===============================================================================
# Game_Enemy
#===============================================================================

class Game_Enemy < Game_Battler
  
  if $imported["DEX Stat"]
  #--------------------------------------------------------------------------
  # new method: base_dex
  #--------------------------------------------------------------------------
  def base_dex
    @boost_dex = 0 if @boost_dex == nil
    result = Integer(enemy.dex) + @boost_dex
    if $imported["EnemyLevels"]
      base = result
      per = enemy.growth_per[:dex]
      set = enemy.growth_set[:dex]
      result = Integer(eval(YEM::ENEMY_LEVEL::BASE_FORMULAS[:dex]))
    end
    return Integer(result)
  end
  
  #--------------------------------------------------------------------------
  # alias method: hit
  #--------------------------------------------------------------------------
  alias hit_game_enemy_nbs hit unless $@
  def hit
    n = hit_game_enemy_nbs
    n += eval(YEM::STATS::DEX::DEX_TO_HIT)
    return [Integer(n), 0].max
  end
  
  #--------------------------------------------------------------------------
  # alias method: eva
  #--------------------------------------------------------------------------
  alias eva_game_enemy_nbs eva unless $@
  def eva
    n = eva_game_enemy_nbs
    n += eval(YEM::STATS::DEX::DEX_TO_EVA)
    return [Integer(n), 0].max
  end
  
  #--------------------------------------------------------------------------
  # alias method: cri
  #--------------------------------------------------------------------------
  alias cri_game_enemy_nbs cri unless $@
  def cri
    n = cri_game_enemy_nbs
    n += eval(YEM::STATS::DEX::DEX_TO_CRI)
    return [Integer(n), 0].max
  end
  #--------------------------------------------------------------------------
  end # imported["DEX Stat"]
  
  if $imported["RES Stat"]
  #--------------------------------------------------------------------------
  # new method: base_res
  #--------------------------------------------------------------------------
  def base_res
    @boost_res = 0 if @boost_res == nil
    result = Integer(enemy.res) + @boost_res
    if $imported["EnemyLevels"]
      base = result
      per = enemy.growth_per[:res]
      set = enemy.growth_set[:res]
      result = Integer(eval(YEM::ENEMY_LEVEL::BASE_FORMULAS[:res]))
    end
    return Integer(result)
  end
  #--------------------------------------------------------------------------
  end # imported["RES Stat"]
  
end # Game_Enemy

#===============================================================================
# Window_Base
#===============================================================================

class Window_Base < Window
  
  #--------------------------------------------------------------------------
  # alias method: draw_actor_parameter
  #--------------------------------------------------------------------------
  alias draw_actor_parameter_nbs draw_actor_parameter unless $@
  def draw_actor_parameter(actor, x, y, type)
    case type
    when 4 # RES
      parameter_name = Vocab::res
      parameter_value = actor.res
    when 5 # DEX
      parameter_name = Vocab::dex
      parameter_value = actor.dex
    else
      draw_actor_parameter_nbs(actor, x, y, type)
      return
    end
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 120, WLH, parameter_name)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 120, y, 36, WLH, parameter_value, 2)
  end
  
end # Window_Base

#===============================================================================
# Window_Status
#===============================================================================

class Window_Status < Window_Base
  
  #--------------------------------------------------------------------------
  # alias method: draw_parameters
  #--------------------------------------------------------------------------
  alias draw_parameters_nbs draw_parameters unless $@
  def draw_parameters(x, y)
    draw_parameters_nbs(x, y)
    dy = y+WLH*3
    if $imported["RES Stat"]
      dy += WLH
      draw_actor_parameter(@actor, x, dy, 4)
    end
    if $imported["DEX Stat"]
      dy += WLH
      draw_actor_parameter(@actor, x, dy, 5)
    end
  end
  
end # Window_Status

#===============================================================================
#
# END OF FILE
#
#===============================================================================
Go to the top of the page
 
+Quote Post
   

Closed TopicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Lo-Fi Version Time is now: 24th May 2013 - 04:18 AM
RPG RPG Revolution is an Privacy Policy and Legal
eXTReMe Tracker