Tips & Tricks – Holy Prism (World of WarCraft) – RPG Maker MV

Yanfly Engine Plugins is a plugin library made for RPG Maker MV, a wonderful piece of software to help you make that role playing game of your dreams. You can find out more about RPG Maker MV here.

Holy Prism is a spell from the World of WarCraft that has a different effect depending on who your target is. If the target is a foe, the target takes concentrated damage and healing is reflected to the user’s allied party. If the target is an ally, the ally will receive concentrated healing while damage is reflected to the user’s enemy party! Here’s how you can recreate this effect in RPG Maker MV!

You can grab the copy/paste code here: 

Place these notetags inside of your skill’s notebox. Change the values in red to fit the settings of your game.

// Allows the player to pick an enemy or an ally.
<Enemy or Actor Select>

<Damage Formula>
// Check if the user and target are enemies.
if (a.isActor() !== b.isActor()) {
  // If they are, this is the amount of damage dealt.
  value = a.mat * 4;
// If they are allies...
} else {
  // This is the amount of HP healed.
  value = a.mat * 6;
}
</Damage Formula>

<Pre-Damage Eval>
// If the user and the target are enemies...
if (a.isActor() !== b.isActor()) {
  // Get half of the damage dealt.
  var hp = Math.floor(value / 2);
  // Get the alive members of the user's party.
  var members = user.friendsUnit().aliveMembers();
  // Loop through each member.
  for (var i = 0; i < members.length; ++i) {
    // Get the current member.
    var member = members[i];
    // If the member exists...
    if (member) {
      // ...then the member recovers HP.
      member.gainHp(hp);
      // Start the damage popup.
      member.startDamagePopup();
      // Clear the results.
      member.clearResult();
      // Start an animation.
      member.startAnimation(41);
    }
  }
// If the user and the target are allies...
} else {
  // Then get half of the value healed.
  var hp = Math.floor(value / 2);
  // Turn it into damage.
  value *= -1;
  // Get the user's opponent party's living members.
  var members = user.opponentsUnit().aliveMembers();
  // Loop through those members.
  for (var i = 0; i < members.length; ++i) {
    // Get the current member.
    var member = members[i];
    // If the member exists...
    if (member) {
      // Modify the damage received relative to the Holy element.
      var dmg = -hp * member.elementRate(13);
      // Make the member take damage.
      member.gainHp(dmg);
      // Start the damage popup.
      member.startDamagePopup();
      // Clear the results.
      member.clearResult();
      // Start an animation.
      member.startAnimation(97);
      // Check if the member is dead.
      if (member.isDead()) {
        // If it is, make it collapse.
        member.performCollapse();
      }
    }
  }
}
</Pre-Damage Eval>

Happy reflecting!

Please wait while you are redirected...or Click Here if you do not want to wait.