Welcome back.
Now we have a few offensive abilities, and by a few I mean three.
And we're going to make one more because with these first three I think we have a pretty good example
of three very different abilities.
But I'd like to do at least one more.
It's going to be one of the fire abilities.
And this will give us at least one more example of how to make a gameplay ability that's different than
the others, as we have several sort of categories, right?
We have the launching a projectile category, we have the beam type spell, and we have something that's
really completely different and uses a whole bunch of target points that we can use to spawn a bunch
of different particles, as well as the ability to have a decal, a magic circle that we can use to
aim.
So that's quite a bit different than our other ability types.
But I'd like to make one more, and this one is going to be right here.
The next fire spell up and I'm going to call it fire Blast.
So we can go ahead and get started.
It's going to be an aura damage gameplay ability, and I'm going to go ahead and add a new C plus plus
class for it.
In abilities, I'm going to find Aura Damage gameplay ability.
I'm going to create a C plus plus class based on it.
And I'm going to call this aura Fireblast.
Let's go ahead and create this class.
And we'll open it up here.
Here's the cpp file and here's the header file.
Okay.
So where do we get started and what is this ability going to do.
Well I think a good place to get started would be the description because that's where we can decide
what it does.
And at the same time implement that spell description for our spell menu.
And we can kill two birds with one stone.
Now again with the descriptions, I'm going to turn to one of my other spells.
I'm going to turn to Aura Firebolt.
And we're going to use the Aura Firebolt as an example.
So I'm going to copy get description and get next level description as well.
And we'll override these.
I'll need a public section.
And we have these two functions and we can generate definitions for them.
Okay so clearing these out I'm going to go into Aura Firebolt and just copy the contents of Getdescription
here.
And we'll paste them into our fireblast.
Now, the first thing I'm going to do is change the title.
This is going to be Fireblast.
And I'd like to show the spell level, the mana cost, and the cooldown, and let's decide what it's
going to do.
I'd like Aura Fireblast to spawn some fireballs, kind of like Firebolt, but I'd like these fireballs
to fly out in all directions.
So we're really going to spawn a whole bunch of fireballs all at once.
And for that we're going to need a number of fireballs.
Now for Firebolt, we're going to call them fire bolts, and for Fireblast, I'm going to call them
fireballs, just to have a distinction between the two.
So we know they're different.
So I'm going to make a protected section and I'm going to add an int32 called NUM Fireballs.
And I'm going to do a bunch of them.
I'm going to set this to 12.
But we'll make this, of course, a uproperty that we can change from within our blueprint.
We'll put it in edit defaults only in the category of Fire Blast.
Okay.
So we have a num fireballs as well.
So right here for our description I'm just going to say launches space.
And then I'm going to close this off.
Like this and get rid of this line.
And we're going to say how many of these we're going to launch.
So right here after launches we're going to have percent D.
And I'm going to add a comment here that says number of fireballs.
And just after cool down, I need to add that it's going to be numb.
Fireballs.
So we're going to say launches numb fireballs.
And I'm going to copy this line here.
And for the text after the num fireballs.
I'll just put the space right there.
I'm going to say fireballs.
I don't need this to be capital fireballs in all directions, each coming back and and it's time for
a new line at this point.
I'll put a space after and and we'll say exploding upon return, causing space.
And then we have damage down here.
Fire damage with a chance to burn.
And actually I'm going to say radial fire damage with a chance to burn.
So we can use radial damage with a falloff here so we can cause radial fire damage.
Now, I personally am making the decision to just launch 12 fireballs.
I mean, of course we could change this from 12, but I don't want to scale that by my level.
I just want it to always be 12 and we'll just scale the damage up with our curve table.
So my description doesn't need an else case.
And we also don't need to check if the level is one.
I'm just going to return this definition.
Regardless of the level.
So I'm going to remove that if statement there.
Now for our next level description we can paste it in here.
This can now say next level.
And it's going to be the same thing.
So really we could just call get description.
And return that so we can just return, get description and pass in level.
We could do that because I don't really plan on it being any different.
So I'm just going to be efficient not lazy efficient and do that.
Okay.
So we have an aura fire blast.
In addition to this I'm going to need a function to spawn those fireballs.
However we're going to need a fireball class to spawn, so we'll do that next.
But before we go into all that, let's just compile and test out things.
Let's get everything tied together in our system and make sure that we can see this spell description
in our menu.
Okay, so we're back in the editor.
We're going to make a blueprint based on our new gameplay ability.
So we're going to go into blueprints ability system, aura abilities and fire.
And we're going to need a new folder in fire aren't we.
We're going to call this one Fire Blast.
Now let's open Fire Blast and let's make a new blueprint.
And we're going to search for Aura Fire Blast.
Here it is.
I'm going to select it and call this GA Fire Blast.
And we can open it up.
Now, the first thing we need at least the first thing I think of is an ability tag, which we could
have made while we were in C plus plus, but we can go back and make it.
Now I'm just going to close the editor and open aura gameplay tags for that.
So here's or a gameplay tags and I'm going to make my new ability tag just under Arcane shards.
It's going to be called Abilities Fire fire Blast.
And why not?
Let's put this just under Firebolt.
So the fire abilities are together and we can go ahead and make the gameplay tag.
Here's Firebolt.
We can copy that.
We can paste it and make.
Aurora.
Fire.
Blast.
And all we need to change is Firebolt now becomes fireblast and we have the tag and we can compile and
we can launch again.
Okay.
So I'm going to get my ability back, open.
Open the full blueprint editor and add my ability tag here.
So it's going to be abilities fire fire blast.
And there we go.
And here we see our num fireballs and we have a damage effect class.
We could go ahead and set that to GE damage.
That's totally fine.
But we're going to set the other parameters soon.
But I just want to tie things together to make sure that we can see this in our spell menu, because
right now we can't.
Right.
So we're going to need to do that.
So let's do it.
That means we need to go into blueprints ability system data and open ability info and add a new element
to our array here for our new ability, so we can set its ability tag first.
That's going to be abilities fire fire blast.
We don't have a cooldown tag yet.
We have an ability type, though.
We know it's offensive, and if we open the icon we can search for fire and look at this.
We have a fire blast and we can go to it and see that this is what it looks like.
So there's our Fire blast icon.
And I'm going to use the same background material as Firebolt.
In other words, I'm going to search for my fire and here's fire skill BG, and I'll just use that same
background material for all fire spells.
I'm going to set the level requirement to two and the ability to gar fire blast.
And for now, that's all we have.
I'm going to go ahead and minimize index five and keep this one open and save ability info.
And with that we have fire blast.
So that's the first thing we need to do.
The next thing we need to do is go into our content blueprints UI and open spell menu and get our offensive
spell tree and decide which of these icons needs our ability tag.
I'm going to set it to this one here.
I'm going to search for ability Tag and set this one to Fire Blast.
So with that, this spell has fireblast assigned to it.
And if we go ahead and click on it, we'll see the spell is locked until level two because it now has
a valid spell, whereas the others are just empty because there's nothing there.
Now we can level up.
I'm going to go ahead and just gain some experience.
And open up.
And here we see Fireblast and there's our spell description, and we see that it causes zero damage
because we haven't set that.
It has a mana cost of zero and a cooldown of zero.
We haven't set those either, but everything else works.
And if we spend a point on it, here's what it looks like.
We can equip it as well.
There's what it looks like there and we can activate it, but it doesn't do anything yet.
We just have an empty ability.
But this is a good start.
And in the next video, we'll go ahead and set up some of the things that a basic spell needs, like
manacost, cooldown and things like that.
And then we can move on to actually implementing our fire blast effect.
And before we wrap up, I'm actually noticing that being lazy and reusing my description for the next
level description actually doesn't quite work, because this needs to be next level here.
As the others say, next level in that bottom menu and the scroll box.
Now you could pass that string in as an input parameter if you want it to be more efficient.
But all I'm going to do is go back to Fire Blast and just do what I was initially going to do copy the
contents of Get description, paste them into git next level description and change the title here to
Next Level.
Like so and next time we compile, that change will be there.
Okay.
Great job and I'll see you in the next video.