WEBVTT

00:06.890 --> 00:08.120
Welcome back.

00:08.270 --> 00:16.100
Now that we have so many attributes and it's harder for us to see all of their values when we use show

00:16.100 --> 00:24.920
debug ability system, the console command, we need a way to easily see all of our attributes and this

00:24.920 --> 00:27.950
is something that the player needs to be able to see as well.

00:27.950 --> 00:34.570
So this is perfect for some sort of menu that we can use to see all of these values.

00:34.580 --> 00:36.950
We'll call this the attribute menu.

00:37.100 --> 00:41.270
Now the attribute menu for this course is going to look like this.

00:41.570 --> 00:49.460
We're going to have a number of values shown with buttons next to some attributes and no button next

00:49.460 --> 00:50.320
to the others.

00:50.330 --> 00:56.840
The primary attributes are going to get a button next to them and the secondary attributes will not.

00:56.840 --> 01:03.770
And the reason for this is I'd like to be able to gain attribute points when the player levels up.

01:03.860 --> 01:11.910
That will be a reward for gaining progress and those points can be spent on primary attributes.

01:12.000 --> 01:18.930
Now the reason I don't want to be able to spend them on secondary attributes is because these are derived

01:18.930 --> 01:20.730
from other attributes.

01:20.880 --> 01:27.300
So if other attributes that back these secondary attributes change, the secondary attributes adjust

01:27.300 --> 01:28.300
accordingly.

01:28.320 --> 01:34.470
So it's really the primary attributes that drive all the other attributes in some way.

01:34.470 --> 01:40.380
So increasing one of these four is going to increase the others that depend on them.

01:40.530 --> 01:43.890
So this is the design that I'm going for.

01:43.890 --> 01:50.190
I have a health and mana section down there at the bottom just to show the vital attributes as well.

01:50.250 --> 01:56.250
And this is going to require a little bit of thinking when it comes to design.

01:56.550 --> 02:05.970
For one notice we have values shown with a nice little frame, so this should probably be its own widget

02:06.000 --> 02:14.310
that we can reuse and then we can have some easy function that can set the value of the numerical data

02:14.310 --> 02:16.740
represented by this widget.

02:16.860 --> 02:24.120
Now notice that we have rows that have text as well as a framed value.

02:24.300 --> 02:32.790
These are for each of the attributes, so this should be its own widget that has text as well as one

02:32.790 --> 02:35.760
of these framed values that we can reuse.

02:35.760 --> 02:42.270
And then we see that the primary attributes are similar and that they have text and a framed value,

02:42.270 --> 02:44.070
but they also have a button.

02:44.070 --> 02:51.030
And this is basically the same as the regular secondary attribute row.

02:51.060 --> 02:54.870
The only difference is it has an additional widget in there, it has a button.

02:54.870 --> 03:02.840
So we're going to want to make sure that we can reuse any work that we can from the attribute row.

03:02.850 --> 03:08.430
Now, once we've created all this, of course we need to make one big widget for the attribute menu

03:08.430 --> 03:14.670
itself and we'll need to give some thought into how to construct this in the best way.

03:14.700 --> 03:18.840
Notice the secondary attributes are not all shown right here.

03:18.840 --> 03:26.550
We're only seeing about 4 or 5 of them and there's a scroll bar that we can click and scroll down to

03:26.550 --> 03:29.190
see all the rest of the secondary attributes.

03:29.190 --> 03:35.880
And so that's a pretty common feature that you're going to want to see in an attribute menu that has

03:35.880 --> 03:37.440
lots of attributes in it.

03:37.620 --> 03:41.700
So there's a few things to consider while creating this attribute menu.

03:41.910 --> 03:46.740
So from what we see here, it looks like we need a few different widgets.

03:46.740 --> 03:53.460
We're going to want a widget for that framed value, and I'd like to call that WB framed value.

03:53.460 --> 04:00.510
And then we can create a text value row, basically a row that has text and a framed value in it.

04:00.510 --> 04:08.430
And then we can create a text value button row that basically is the same as the text value row, except

04:08.430 --> 04:10.020
that it also has a button.

04:10.020 --> 04:17.700
And once we have these building block widgets, we can create our overall attribute menu widget blueprint

04:17.700 --> 04:20.220
and put all the rest of these in there.

04:20.220 --> 04:24.390
Now of course, health and mana, those should probably be their own widgets.

04:24.390 --> 04:27.090
Those can be progress bars.

04:27.090 --> 04:30.750
So we'll think about those when we get to the end there.

04:30.750 --> 04:36.060
And of course we'd like our attribute menu to have a button to close it down.

04:36.060 --> 04:38.960
So we have that red button with the X on there.

04:38.970 --> 04:42.960
So there are a few additional details to take care of as well.

04:43.140 --> 04:50.910
So we have a game plan and our next steps involve first creating that framed value widget.

04:50.910 --> 04:58.020
That's going to be a pretty simple step and then we'll make our text value row widget, after which

04:58.020 --> 05:04.380
we can make text value button row, which will be basically a text value row with an added button.

05:04.380 --> 05:06.090
And finally we can make the.

05:06.220 --> 05:11.970
Attribute menu widget and put this all together and flesh out the attribute menu.

05:11.980 --> 05:17.920
So we've got a few steps, but we have a game plan and we're going to start with step one in the next

05:17.920 --> 05:18.690
video.

05:18.700 --> 05:19.960
I'll see you soon.
