RPG Maker Forums

This is a high capability Mana Shield / Blood Magic script. It has high capability because it doesn't overwrite anything.


Simply just add <MANA SHIELD> in the state's notebox for mana shield and <BLOOD MAGIC> in the state's notebox for blood magic.


Update: The tags now works on class, enemy, and actor noteboxes.

#----------------------------------------------------------------------------
#  [ADVT] Mana Shield and Blood Magic
#
#  Compatibility: High
#  Difficulty: Easy
#
#  Description: 
#  Mana Shield is a state that causes damage to be subtracted from 
#  MP instead of HP. However, if you do not have enough MP, the remaining damage
#  will be subtracted from HP.
#
#  Blood Magic is a state that causes you to pay HP to use skills instead of MP.
#  However, if you do not have enough HP to use the skill, the skill can not be used.
#
#  Notetags: 
#  Add <MANA SHIELD> in the notebox of the state you want to be mana shield.
#  Add <BLOOD MAGIC> in the notebox of the state you want to be blood magic.
#


# Update:


# The tags now also works on classes, enemies, and actors.


#
#  Alias - Game_ActionResult > make_damage
#  New Method - Game_BattlerBase > bloodmagic?
#  Alias - Game_BattlerBase > skill_mp_cost
#  Alias - Game_BattlerBase > skill_cost_payable?
#  Alias - Game_BattlerBase > pay_skill_cost
#


#  For maximum compatibility, place this script below all other scripts.


#
#  Credit not required.
#  Credit "Adventurer_inc" if you want.
#
#----------------------------------------------------------------------------
class Game_ActionResult
  #--------------------------------------------------------------------------
  # * Alias: Calculate Damage
  #--------------------------------------------------------------------------
  alias advt_make_damage make_damage
  def make_damage(value, item)
    advt_make_damage(value, item)
    manashielded = false
    @battler.states.each{|state| manashielded = true if state.note.include?("<MANA SHIELD>")}


    manashielded = true if @battler.note.include?("<MANA SHIELD>") || @battler.class.note.include?("<MANA SHIELD>") 
    if manashielded && @battler.mp > 0
      overdamage = @hp_damage - @battler.mp
      @mp_damage += @hp_damage
      @hp_damage = (overdamage > 0 ? overdamage : 0)
    end
    @success = false unless item.damage.to_hp? || @mp_damage != 0
  end
end
  #--------------------------------------------------------------------------
  # END- class Game_ActionResult
  #--------------------------------------------------------------------------


class Game_BattlerBase
  #--------------------------------------------------------------------------
  # * New Method: bloodmagic?: for simplicity
  #-------------------------------------------------------------------------- 
  def bloodmagic?
    return false if self == nil
    bloodmagic = false
    self.states.each{|state| bloodmagic = true if state.note.include?("<BLOOD MAGIC>")}
    bloodmagic = true if self.note.include?("<BLOOD MAGIC>") || self.class.note.include?("<BLOOD MAGIC>")
    return bloodmagic
  end
  #--------------------------------------------------------------------------
  # * Alias: Calculate Skill's MP Cost
  #--------------------------------------------------------------------------  
  alias advt_skill_mp_cost skill_mp_cost
  def skill_mp_cost(skill)
    bloodmagic? ? 0 : advt_skill_mp_cost(skill)
  end
  #--------------------------------------------------------------------------
  # * Alias: Determine if Cost of Using Skill Can Be Paid
  #--------------------------------------------------------------------------
  alias advt_skill_cost_payable? skill_cost_payable?
  def skill_cost_payable?(skill)
    return false if bloodmagic? && hp < (skill.mp_cost * mcr).to_i 
    advt_skill_cost_payable?(skill)
  end
  #--------------------------------------------------------------------------
  # * Alias: Pay Cost of Using Skill
  #--------------------------------------------------------------------------
  alias advt_pay_skill_cost pay_skill_cost
  def pay_skill_cost(skill) 
    self.hp -= (skill.mp_cost * mcr).to_i if bloodmagic?
    advt_pay_skill_cost(skill)
  end   
end
  #--------------------------------------------------------------------------
  # END- class Game_BattlerBase
  #--------------------------------------------------------------------------

Latest Threads

Latest Profile Posts

Our latest feature is an interview with... me?!

People4_2 (Capelet off and on) added!

Just beat the last of us 2 last night and starting jedi: fallen order right now, both use unreal engine & when I say i knew 80% of jedi's buttons right away because they were the same buttons as TLOU2 its ridiculous, even the same narrow hallway crawl and barely-made-it jump they do. Unreal Engine is just big budget RPG Maker the way they make games nearly identical at its core lol.
Can someone recommend some fun story-heavy RPGs to me? Coming up with good gameplay is a nightmare! I was thinking of making some gameplay platforming-based, but that doesn't work well in RPG form*. I also was thinking of removing battles, but that would be too much like OneShot. I don't even know how to make good puzzles!
one bad plugin combo later and one of my followers is moonwalking off the screen on his own... I didn't even more yet on the new map lol.

Forum statistics

Threads
106,035
Messages
1,018,450
Members
137,820
Latest member
georg09byron
Top