WEBVTT

00:07.080 --> 00:08.190
Welcome back.

00:08.190 --> 00:12.480
Now we have a few offensive abilities, and by a few I mean three.

00:12.480 --> 00:18.330
And we're going to make one more because with these first three I think we have a pretty good example

00:18.330 --> 00:20.940
of three very different abilities.

00:20.940 --> 00:22.770
But I'd like to do at least one more.

00:22.770 --> 00:24.900
It's going to be one of the fire abilities.

00:24.900 --> 00:31.080
And this will give us at least one more example of how to make a gameplay ability that's different than

00:31.080 --> 00:35.490
the others, as we have several sort of categories, right?

00:35.490 --> 00:43.530
We have the launching a projectile category, we have the beam type spell, and we have something that's

00:43.530 --> 00:50.700
really completely different and uses a whole bunch of target points that we can use to spawn a bunch

00:50.700 --> 00:58.080
of different particles, as well as the ability to have a decal, a magic circle that we can use to

00:58.080 --> 00:58.500
aim.

00:58.500 --> 01:02.280
So that's quite a bit different than our other ability types.

01:02.280 --> 01:07.530
But I'd like to make one more, and this one is going to be right here.

01:07.530 --> 01:12.000
The next fire spell up and I'm going to call it fire Blast.

01:13.540 --> 01:15.820
So we can go ahead and get started.

01:15.820 --> 01:22.960
It's going to be an aura damage gameplay ability, and I'm going to go ahead and add a new C plus plus

01:22.960 --> 01:23.710
class for it.

01:23.710 --> 01:27.760
In abilities, I'm going to find Aura Damage gameplay ability.

01:30.110 --> 01:33.110
I'm going to create a C plus plus class based on it.

01:33.110 --> 01:37.190
And I'm going to call this aura Fireblast.

01:37.550 --> 01:39.620
Let's go ahead and create this class.

01:40.980 --> 01:42.870
And we'll open it up here.

01:45.400 --> 01:48.940
Here's the cpp file and here's the header file.

01:49.390 --> 01:49.720
Okay.

01:49.720 --> 01:53.320
So where do we get started and what is this ability going to do.

01:53.350 --> 01:58.690
Well I think a good place to get started would be the description because that's where we can decide

01:58.690 --> 01:59.620
what it does.

01:59.620 --> 02:04.570
And at the same time implement that spell description for our spell menu.

02:04.570 --> 02:07.030
And we can kill two birds with one stone.

02:07.300 --> 02:13.300
Now again with the descriptions, I'm going to turn to one of my other spells.

02:13.300 --> 02:16.720
I'm going to turn to Aura Firebolt.

02:16.840 --> 02:20.170
And we're going to use the Aura Firebolt as an example.

02:20.170 --> 02:26.080
So I'm going to copy get description and get next level description as well.

02:27.320 --> 02:29.390
And we'll override these.

02:29.390 --> 02:31.160
I'll need a public section.

02:33.280 --> 02:36.880
And we have these two functions and we can generate definitions for them.

02:42.730 --> 02:50.230
Okay so clearing these out I'm going to go into Aura Firebolt and just copy the contents of Getdescription

02:50.230 --> 02:50.770
here.

02:53.550 --> 02:56.370
And we'll paste them into our fireblast.

02:56.790 --> 02:59.640
Now, the first thing I'm going to do is change the title.

02:59.640 --> 03:02.160
This is going to be Fireblast.

03:02.850 --> 03:08.670
And I'd like to show the spell level, the mana cost, and the cooldown, and let's decide what it's

03:08.670 --> 03:09.750
going to do.

03:09.750 --> 03:17.970
I'd like Aura Fireblast to spawn some fireballs, kind of like Firebolt, but I'd like these fireballs

03:17.970 --> 03:19.890
to fly out in all directions.

03:19.890 --> 03:24.300
So we're really going to spawn a whole bunch of fireballs all at once.

03:24.600 --> 03:27.450
And for that we're going to need a number of fireballs.

03:27.450 --> 03:32.280
Now for Firebolt, we're going to call them fire bolts, and for Fireblast, I'm going to call them

03:32.280 --> 03:35.970
fireballs, just to have a distinction between the two.

03:35.970 --> 03:37.230
So we know they're different.

03:37.440 --> 03:43.440
So I'm going to make a protected section and I'm going to add an int32 called NUM Fireballs.

03:43.440 --> 03:44.820
And I'm going to do a bunch of them.

03:44.820 --> 03:46.320
I'm going to set this to 12.

03:46.320 --> 03:52.290
But we'll make this, of course, a uproperty that we can change from within our blueprint.

03:52.290 --> 03:58.320
We'll put it in edit defaults only in the category of Fire Blast.

03:58.680 --> 03:59.160
Okay.

03:59.160 --> 04:01.170
So we have a num fireballs as well.

04:01.170 --> 04:08.040
So right here for our description I'm just going to say launches space.

04:08.040 --> 04:10.500
And then I'm going to close this off.

04:11.900 --> 04:14.870
Like this and get rid of this line.

04:15.850 --> 04:19.930
And we're going to say how many of these we're going to launch.

04:19.960 --> 04:23.500
So right here after launches we're going to have percent D.

04:23.590 --> 04:30.490
And I'm going to add a comment here that says number of fireballs.

04:31.310 --> 04:35.630
And just after cool down, I need to add that it's going to be numb.

04:37.040 --> 04:38.270
Fireballs.

04:39.190 --> 04:42.580
So we're going to say launches numb fireballs.

04:42.580 --> 04:44.770
And I'm going to copy this line here.

04:45.500 --> 04:49.610
And for the text after the num fireballs.

04:49.610 --> 04:51.500
I'll just put the space right there.

04:51.530 --> 04:54.650
I'm going to say fireballs.

04:54.710 --> 05:03.740
I don't need this to be capital fireballs in all directions, each coming back and and it's time for

05:03.740 --> 05:05.480
a new line at this point.

05:07.820 --> 05:18.110
I'll put a space after and and we'll say exploding upon return, causing space.

05:18.110 --> 05:20.060
And then we have damage down here.

05:20.060 --> 05:23.150
Fire damage with a chance to burn.

05:23.150 --> 05:28.430
And actually I'm going to say radial fire damage with a chance to burn.

05:28.430 --> 05:33.950
So we can use radial damage with a falloff here so we can cause radial fire damage.

05:33.950 --> 05:40.820
Now, I personally am making the decision to just launch 12 fireballs.

05:40.820 --> 05:45.710
I mean, of course we could change this from 12, but I don't want to scale that by my level.

05:45.710 --> 05:51.170
I just want it to always be 12 and we'll just scale the damage up with our curve table.

05:51.170 --> 05:54.020
So my description doesn't need an else case.

05:56.210 --> 05:59.180
And we also don't need to check if the level is one.

05:59.180 --> 06:01.700
I'm just going to return this definition.

06:02.630 --> 06:04.010
Regardless of the level.

06:04.010 --> 06:06.920
So I'm going to remove that if statement there.

06:07.130 --> 06:11.330
Now for our next level description we can paste it in here.

06:11.330 --> 06:13.700
This can now say next level.

06:16.060 --> 06:18.040
And it's going to be the same thing.

06:18.040 --> 06:23.080
So really we could just call get description.

06:24.320 --> 06:29.900
And return that so we can just return, get description and pass in level.

06:29.900 --> 06:33.290
We could do that because I don't really plan on it being any different.

06:33.290 --> 06:38.750
So I'm just going to be efficient not lazy efficient and do that.

06:39.230 --> 06:39.710
Okay.

06:39.710 --> 06:41.780
So we have an aura fire blast.

06:41.780 --> 06:46.850
In addition to this I'm going to need a function to spawn those fireballs.

06:47.330 --> 06:52.430
However we're going to need a fireball class to spawn, so we'll do that next.

06:52.430 --> 06:57.500
But before we go into all that, let's just compile and test out things.

06:57.500 --> 07:03.140
Let's get everything tied together in our system and make sure that we can see this spell description

07:03.140 --> 07:04.130
in our menu.

07:05.350 --> 07:07.210
Okay, so we're back in the editor.

07:07.210 --> 07:10.480
We're going to make a blueprint based on our new gameplay ability.

07:10.480 --> 07:15.610
So we're going to go into blueprints ability system, aura abilities and fire.

07:15.610 --> 07:18.640
And we're going to need a new folder in fire aren't we.

07:18.640 --> 07:21.340
We're going to call this one Fire Blast.

07:21.910 --> 07:24.940
Now let's open Fire Blast and let's make a new blueprint.

07:24.940 --> 07:29.110
And we're going to search for Aura Fire Blast.

07:29.620 --> 07:30.520
Here it is.

07:30.520 --> 07:34.750
I'm going to select it and call this GA Fire Blast.

07:35.790 --> 07:37.260
And we can open it up.

07:37.680 --> 07:43.110
Now, the first thing we need at least the first thing I think of is an ability tag, which we could

07:43.110 --> 07:46.680
have made while we were in C plus plus, but we can go back and make it.

07:46.680 --> 07:51.420
Now I'm just going to close the editor and open aura gameplay tags for that.

07:53.250 --> 08:01.230
So here's or a gameplay tags and I'm going to make my new ability tag just under Arcane shards.

08:01.230 --> 08:07.500
It's going to be called Abilities Fire fire Blast.

08:07.500 --> 08:08.730
And why not?

08:08.730 --> 08:10.890
Let's put this just under Firebolt.

08:10.890 --> 08:16.650
So the fire abilities are together and we can go ahead and make the gameplay tag.

08:17.330 --> 08:18.740
Here's Firebolt.

08:18.740 --> 08:20.360
We can copy that.

08:20.810 --> 08:22.880
We can paste it and make.

08:22.910 --> 08:23.180
Aurora.

08:23.180 --> 08:23.810
Fire.

08:23.810 --> 08:24.380
Fire.

08:24.380 --> 08:25.400
Blast.

08:28.450 --> 08:35.830
And all we need to change is Firebolt now becomes fireblast and we have the tag and we can compile and

08:35.830 --> 08:36.940
we can launch again.

08:38.140 --> 08:38.590
Okay.

08:38.590 --> 08:40.540
So I'm going to get my ability back, open.

08:40.540 --> 08:44.320
Open the full blueprint editor and add my ability tag here.

08:44.320 --> 08:47.740
So it's going to be abilities fire fire blast.

08:47.740 --> 08:48.910
And there we go.

08:49.270 --> 08:53.320
And here we see our num fireballs and we have a damage effect class.

08:53.320 --> 08:56.110
We could go ahead and set that to GE damage.

08:56.110 --> 08:57.400
That's totally fine.

08:57.400 --> 09:00.490
But we're going to set the other parameters soon.

09:00.490 --> 09:07.150
But I just want to tie things together to make sure that we can see this in our spell menu, because

09:07.150 --> 09:08.260
right now we can't.

09:08.260 --> 09:08.740
Right.

09:08.740 --> 09:10.810
So we're going to need to do that.

09:11.080 --> 09:12.670
So let's do it.

09:12.670 --> 09:21.040
That means we need to go into blueprints ability system data and open ability info and add a new element

09:21.040 --> 09:26.260
to our array here for our new ability, so we can set its ability tag first.

09:26.260 --> 09:30.040
That's going to be abilities fire fire blast.

09:30.040 --> 09:32.320
We don't have a cooldown tag yet.

09:32.320 --> 09:33.940
We have an ability type, though.

09:33.940 --> 09:39.790
We know it's offensive, and if we open the icon we can search for fire and look at this.

09:39.790 --> 09:44.410
We have a fire blast and we can go to it and see that this is what it looks like.

09:44.620 --> 09:47.020
So there's our Fire blast icon.

09:48.280 --> 09:51.910
And I'm going to use the same background material as Firebolt.

09:51.910 --> 09:58.840
In other words, I'm going to search for my fire and here's fire skill BG, and I'll just use that same

09:58.840 --> 10:01.240
background material for all fire spells.

10:01.240 --> 10:06.580
I'm going to set the level requirement to two and the ability to gar fire blast.

10:06.580 --> 10:08.650
And for now, that's all we have.

10:08.650 --> 10:15.550
I'm going to go ahead and minimize index five and keep this one open and save ability info.

10:15.550 --> 10:18.700
And with that we have fire blast.

10:18.850 --> 10:21.070
So that's the first thing we need to do.

10:21.130 --> 10:29.650
The next thing we need to do is go into our content blueprints UI and open spell menu and get our offensive

10:29.650 --> 10:34.960
spell tree and decide which of these icons needs our ability tag.

10:34.960 --> 10:37.060
I'm going to set it to this one here.

10:37.060 --> 10:41.560
I'm going to search for ability Tag and set this one to Fire Blast.

10:42.440 --> 10:47.630
So with that, this spell has fireblast assigned to it.

10:47.630 --> 10:52.880
And if we go ahead and click on it, we'll see the spell is locked until level two because it now has

10:52.880 --> 10:56.900
a valid spell, whereas the others are just empty because there's nothing there.

10:57.920 --> 10:59.510
Now we can level up.

10:59.510 --> 11:02.810
I'm going to go ahead and just gain some experience.

11:03.390 --> 11:04.740
And open up.

11:04.740 --> 11:12.720
And here we see Fireblast and there's our spell description, and we see that it causes zero damage

11:12.720 --> 11:14.010
because we haven't set that.

11:14.010 --> 11:16.710
It has a mana cost of zero and a cooldown of zero.

11:16.710 --> 11:19.800
We haven't set those either, but everything else works.

11:20.420 --> 11:23.570
And if we spend a point on it, here's what it looks like.

11:23.570 --> 11:25.100
We can equip it as well.

11:25.750 --> 11:31.360
There's what it looks like there and we can activate it, but it doesn't do anything yet.

11:31.360 --> 11:34.030
We just have an empty ability.

11:34.030 --> 11:35.890
But this is a good start.

11:35.890 --> 11:42.790
And in the next video, we'll go ahead and set up some of the things that a basic spell needs, like

11:42.790 --> 11:45.100
manacost, cooldown and things like that.

11:45.100 --> 11:50.860
And then we can move on to actually implementing our fire blast effect.

11:51.040 --> 11:56.950
And before we wrap up, I'm actually noticing that being lazy and reusing my description for the next

11:56.950 --> 12:02.140
level description actually doesn't quite work, because this needs to be next level here.

12:02.140 --> 12:07.270
As the others say, next level in that bottom menu and the scroll box.

12:07.270 --> 12:12.100
Now you could pass that string in as an input parameter if you want it to be more efficient.

12:12.100 --> 12:19.630
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

12:19.630 --> 12:26.050
contents of Get description, paste them into git next level description and change the title here to

12:26.050 --> 12:27.580
Next Level.

12:28.370 --> 12:32.840
Like so and next time we compile, that change will be there.

12:32.870 --> 12:33.500
Okay.

12:33.500 --> 12:36.230
Great job and I'll see you in the next video.
