Boss Fights – vs Memory Sword

Merry Christmas, everyone! 😀

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.

“Harold” returns with yet another boss fight, but this time, he’s feeling extra confident! For what reason is he so confident and what kind of tricks does he have to play against our heroes?

You can grab the copy/paste code for the new Memory Shield Redux and the Memory Sword here: 


The plugins needed for this effect are the Battle Engine Core, Action Sequence Pack 1, Action Sequence Pack 2, Action Sequence Pack 3, Buffs & States Core, Skill Core, and Skill Cooldowns.


For the Memory Shield Redux:

<Custom Apply Effect>
// Clear all of the stored memory skills.
$gameTemp._memorySkills = [];
// Set the state counter to display how many memory skills are stored.
user.setStateCounter(stateId, $gameTemp._memorySkills.length);
</Custom Apply Effect>

<Custom Select Effect>
// Check if this is a skill that targets an opponent and isn't a basic attack
if (this.isSkill() && !this.isAttack() && this.isForOpponent()) {
  // Create a list of bypassed skills.
  var bypassedSkills = [];
  // Insert the ID's of the skills that will bypass this effect.
  bypassedSkills.push(1, 2, 3, 4, 5, 6, 7);
  // Get the current action's skill ID
  var skillId = this.item().id;
  // Check if the skill isn't bypassed
  if (!bypassedSkills.contains(this.item().id)) {
     // Add the skill to the memory skill list
     $gameTemp._memorySkills.push(skillId);
     // Update the counter
     target.setStateCounter(stateId, $gameTemp._memorySkills.length);
     // Get the skill data
     var skill = $dataSkills[skillId];
     // Create a text showing the skill has been added to the memory list
     var text = '<CENTER>\\c[4]\\i[' + skill.iconIndex + ']' + skill.name + '\\c[0] added to \\c[4]Memory Shield\\c[0]!';
     // Set the wait time
     var wait = 60;
     // Display the text
     BattleManager.addText(text, wait);
  }
}
</Custom Select Effect>

<Custom Deselect Effect>
// Check if the effect hasn't occurred yet and that the user and target are on different teams
if (!this._warpingShield && user.isActor() !== target.isActor()) {
  // Create a list of bypassed skills
  var bypassedSkills = [];
  // Insert the skill ID's that would bypass this effect
  bypassedSkills.push(1, 2, 3, 4, 5, 6, 7);
  // Check if this effect is a skill, not a basic attack, and that the bypassed skills list do not have this skill
  if (this.isSkill() && !this.isAttack() && !bypassedSkills.contains(this.item().id)) {
    // Mark the effect as having happened
    this._warpingShield = true;
    // This is the number of turns to apply onto the effect's cooldown list
    var turns = 5;
    // Get this skill's ID
    var id = this.item().id;
    // Add that many turns to the skill's cooldown for the attacker
    user.addCooldown(id, turns);
  }
}
</Custom Deselect Effect>

For the Memory Sword

<After Eval>
// Get the skill list for the memory skills
var skills = $gameTemp._memorySkills || [];
// Check if the skill list length is greater than 0
if (skills.length > 0) {
  // Get the first skill in the list
  var skillId = skills.shift();
// Otherwise
} else {
  // Default the skill to skill #1
  var skillId = 1;
}
// Set this action to this skill
this.setSkill(skillId);
// Get the user's ally list
var group = user.friendsUnit().aliveMembers();
// Get the Memory Shield Redux's state ID
var stateId = 316;
// Loop through each of the allies
for (var i = 0; i < group.length; ++i) {
  // Get the currently looped member
  var member = group[i];
  // See if the member exists and is affected by the Memory Shield Redux
  if (member && member.isStateAffected(stateId)) {
    // If it is, update the state counter for the memory skills
    member.setStateCounter(stateId, $gameTemp._memorySkills.length);
  }
}
</After Eval>

// This is the setup action list for the effect
<Setup Action>
clear battle log
display action
immortal: targets, true
perform start
wait for movement
cast animation
wait for animation
action effect
clear battle log
display action
</Setup Action>

// Clear the whole actions
<Whole Action>
</Whole Action>

// Clear the target actions
<Target Action>
</Target Action>

And that’s it! That’s how you can create the Memory Shield Redux and the Memory Sword!