VisuStella MZ Action Sequence Series: Creating Skill Perks
Agatha
by
Agatha
on
May 26, 2021

VisuStella MZ Action Sequence Series: Creating Skill Perks

VisuStella MZ Action Sequence Series: Creating Skill Perks
by

Agatha

on

May 26, 2021

A series of blog entries focused on showing just what users of Visustella's Battle Core, among other plugins, can do using the Action Sequences functions.

Hello RPG Makers🌻

Continuing on in our explorations of things we can do with Visustella's Battle Core, today we'll be creating 'Skill Perks'. That is to say, giving a character an inert skill that, when learned, will enhance their other skills in various ways that we define.

Many AAA and indie games use this feature to enhance characters' skills and give them more depth over the course of a game's playthrough. Usually in conjunction with a skill learning system of some sort.

Anyway, with that said, our goals for today will be three-fold:

  • Create a perk for Gale Blade.
  • Create a perk for Enflame.
  • Create a perk for Flame Aura.

Our goals are set now, so let's get down to business! First is Gale Blade.

We'll start by creating two new skills. We'll call them 'Swift Step' and 'Dual Blade'. These are inert skills that won't do anything at all. Make sure you turn off all settings such as damage type and scope. And then add a <Hide In Battle> Note tag for extra measure. After all, what's the point in it showing up in battle if it can't be used, right?

This note tag comes from Skill and States Core, by the way.

Now let's head over to Gale Blade's Action Sequence.

Our effects will be two-fold, so we'll need to do some non-negligible reconstruction here. Our new bonus effects for Gale Blade are as follows:

  • +30% Increased damage and critical rate.
  • Base skill is now two hits and four hits when MP is above 50%

RPG Maker does inherently have event functionality for checking if an actor knows a skill. If you want to check if an actor has learned a skill, you can use a conditional branch like so:

In addition to this, you can also use JS. Using the snippet provided below, we can place it into the script box of a conditional branch. 

$gameActors.actor( actor_id ).isLearnedSkill( skill_id );

This is the method that I'll be using throughout the rest of the exercise.

Change actor ID to 1 to correspond to Reid, and change Skill ID to the number of Swift Step. With this, the system will check if a character knows the skill Swift Step before executing its contents. 

Place this conditional before the base action effect and inside of it, put in a Multiplier command like so:

With this, Swift Step is finished. Now let's work on Dual Blade! Remember the ID of the inert skill in the skill tab. We'll be using that in our common event.

Create another conditional branch pointing at Reid and the skill using the code from earlier. This time, make sure Else Branch is checked on.

Now, we're going to do a bunch of moving around here, so get ready. First, select the base action effect all to way down to the MP conditionals. Cut this whole section and paste it into the else branch. That tells the skill that Dual Blade hasn't been learned, so execute the base skill effect as normal.

Now, let's paste it into the If section as well. We'll use it as a base to edit from. First, copy the base action effect, and paste it again, making two hits. Next, we'll edit the MP conditional to calculate for 50% MP instead of 75%. It's as easy as changing the 75 to 50 in the variable command. After that, we're pretty much done.

Now, let's test it out! First, we'll do a test without the perks learned...

Good. Three hits at max HP. The base skill is unaffected. Now, let's go back and give Reid these skills in his Class at Level 1.

Now let's test Gale Blade out again!

Ouch. That definitely worked this time, I'd say. Gale Blade is a much more powerful skill with these two perks under his belt.

Looks like Gale Blade is finished! 


Now let's move on to our next Perk set. Let's go back over to our skills and create a new inert skill. Let's call it 'Ifrit Blessing'. This will be a perk for the Enflame spell that we created previously. For effects, let's say...

- Give Enflame Burn state at base, and 1 extra hit when Flame Aura is active.

That seems reasonable, wouldn't you say?


Okay, first, let's head over to states and create a Burn state. We could just use RPG Maker MZ's default slip damage handling, but let's take this opportunity to use another function of Skill and States Core: Custom Slip Damage. 

We'll make it so that Burn's slip damage will continue to inflict damage over 3 additional turns based on Reid's MATK and some of his ATK as icing on the cake. Like so: 

Now, let's head over to Enflame's action sequence and make our adjustments. 

First, let's make a Conditional Branch and use our skill checking code from earlier. Point it towards Ifrit Blessing, and make sure Else Branch is one. Paste it inside of both the If and Else of the Flame Aura conditional that already exists.

Now, paste the already existing animation and action effect commands into the Else conditions of our skill conditionals like so:

Once that's done, paste the same thing into the If sections of our branches now. After that, add in an Add State action sequence command for our Burn state. Make sure it's pointing to the enemy!

Now, do the same thing for the section in the Flame Aura branch, and make sure the state addition is changed to Alive Opponents. 

On top of that, we'll add a second Action Effect command with a multiplier of 50% damage rate, just to balance it out a little bit.

Once that's done, it should all look like this:

Still with me?

Okay, let's give this bad boy a test. First, without the Perk learned...

And with Flame Aura...

Yes, everything is working at base. Now let's give Reid his new perk and test again!

Excellent. Enflame now gives Burn at base with the Perk learned. Now let's try it with Flame Aura...

Excellent! It works as intended! With this, Enflame is complete.

Now on to our final Perk of this exercise. 

Let's head back over to the skill tab to create a Perk for Flame Aura. Let's call this one... 'Spiritual Focus'. For its effects, let's say...

- Give Flame Aura a 30% heal at base and a 50% heal when under 50% HP.

Now, this one is going to be much easier than the last two. Let's head over to our action sequence.


Using a Conditional Branch with the skill check code, we'll point it at Spiritual Focus. Remember your Else Branch! 


We'll place this Conditional Branch after the HP variable calculations, but before the Skill Condition branch. Now copy the Skill Condition Branch and paste it into the Else case of the branch we just created.


Next, paste it into the If case as well, and edit it to have an Else branch. Make sure the Action Sequence is changed to 0.50%. Now, inside that new Else branch, paste in another HP/MP/TP Action Sequence command and change it to 0.30.  


If done correctly, it should look like this:

...Still with me here? Good. We're done!

Let's test this one out! First without the Perk...

Okay, it acts as normal. And when HP is low...

Sweet. Flame Aura now provides a 30% heal at base. Now let's do it under 50% HP...

That's definitely a lot more healing! Looks like everything is in order.


That's it for today's exercise. Things are starting to get complicated, but I hope you were able to keep up. Does the application of these 'Perks' give you ideas for how you can take your skills even further?

This isn't the only way to do them either. You could use switches or variables as well to accomplish this sort of system, Depending on what you want to do. This is only one example. 


With that, I will see you later!


Recommended Posts