WEBVTT

00:00.140 --> 00:00.590
Hello guys.

00:00.590 --> 00:01.580
Welcome to the video.

00:01.580 --> 00:04.940
So in this one I want to show you another example of Polish.

00:04.940 --> 00:06.920
I just want to improve this game a little bit more.

00:06.920 --> 00:11.030
And I want to make player drop the fruits when he gets damaged.

00:11.030 --> 00:16.070
Not on the counter only, but also there are going to be a fruit created in the game and it's going

00:16.070 --> 00:17.660
to blink and fly away.

00:17.660 --> 00:21.980
And once it stopped blinking, it means player can pick up the fruit again.

00:21.980 --> 00:26.540
So if he is fast enough, he can catch up the fruits that he lost because of some damage.

00:26.540 --> 00:30.290
That's what we're going to do to make it easier to test.

00:30.290 --> 00:32.390
I'm going to maybe change the scene.

00:32.390 --> 00:33.350
Let me see.

00:33.350 --> 00:35.180
What can we use here?

00:37.420 --> 00:40.090
Well, this scene should work.

00:40.090 --> 00:43.840
I only want to make it maybe a bit prettier by placing something over here.

00:44.230 --> 00:45.520
Just, you know.

00:46.750 --> 00:47.980
Some things.

00:49.100 --> 00:50.630
Uh, some things like that.

00:52.220 --> 00:55.370
Okay, now let me find the fruit.

00:56.340 --> 00:59.970
I want to take this fruit and this is going to be our test subject.

01:00.000 --> 01:00.840
Okay.

01:00.840 --> 01:05.760
So for this fruit we're going to need a boolean that will say can you pick up fruit or not.

01:05.760 --> 01:11.310
Because if we create fruit at the position of a player, he will enter the trigger immediately and he'll

01:11.310 --> 01:12.990
pick up the very same fruit.

01:12.990 --> 01:18.120
So first let's make a prefab and let's make another script that will inherit from the fruit.

01:18.480 --> 01:19.920
I'm going to go to scripts.

01:21.760 --> 01:27.640
I'm going to make script fruit and the name will be a little bit ugly, but I think we can accept it

01:27.640 --> 01:29.830
because it's going to have lots of meaning in it.

01:29.830 --> 01:33.070
Fruit dropped by player.

01:34.260 --> 01:36.690
Okay, let's open the script.

01:39.330 --> 01:40.740
It is over here.

01:43.580 --> 01:50.270
And before we go any further, let's do close all but this and let's go and find fruit script.

01:50.510 --> 01:54.860
And over here I want to make animator available for child script.

01:54.860 --> 01:56.690
So I'm going to do protected.

01:56.690 --> 02:00.710
And also we're going to need reference to sprite renderer SR.

02:00.710 --> 02:05.300
Because if we need to make object transparent, we just need to change alpha of the color which is on

02:05.300 --> 02:06.410
sprite renderer.

02:06.410 --> 02:10.430
Let's go to start now awake and over here I'm going to do.

02:11.580 --> 02:14.100
SR getcomponent in children.

02:14.100 --> 02:14.760
Nice.

02:14.760 --> 02:19.380
We're going to need to override start because we want to start a coroutine later on in the start.

02:19.380 --> 02:21.420
So I'm going to do protected virtual.

02:22.790 --> 02:24.080
Virtual void.

02:24.080 --> 02:27.140
And we're going to need to override on trigger enter.

02:27.140 --> 02:31.070
So I'm going to do protected virtual void here.

02:33.170 --> 02:33.890
Very nice.

02:33.890 --> 02:35.300
Now let's save this.

02:35.300 --> 02:39.290
Let's go back and we're going to inherit from the fruit.

02:40.940 --> 02:44.900
And we're going to need a boolean private bool can pick up.

02:45.440 --> 02:48.440
And then we're going to override on trigger enter.

02:48.440 --> 02:52.310
And if can pick up is false then we're going to return.

02:52.880 --> 02:57.020
So this fruit is not picked uppable until you change the boolean.

02:57.050 --> 02:57.980
Nice.

02:57.980 --> 02:58.940
Very nice.

03:00.240 --> 03:02.310
Now, let's not do anything else for now.

03:02.310 --> 03:06.540
Let's go ahead and make player drop these fruits on damage.

03:07.230 --> 03:09.510
And for that I want to use Object Creator.

03:09.510 --> 03:15.330
Since we have the functionality here, I don't see the point of repeating the code in the player as

03:15.330 --> 03:15.930
well.

03:15.930 --> 03:22.350
The only thing I want to do is to add optional, um, destroy part of the object.

03:23.710 --> 03:25.450
So we're going to pass a boolean here.

03:25.450 --> 03:28.450
Bool should be destroyed.

03:28.840 --> 03:38.560
Then over here we're going to do check if should be destroyed then destroy new object after let's say

03:38.560 --> 03:39.640
15 seconds.

03:39.640 --> 03:40.870
It's pretty enough time.

03:40.870 --> 03:46.030
And if fruit will fly off the level it will be destroyed after some time and it will not clutter up

03:46.030 --> 03:46.720
the game.

03:47.860 --> 03:53.350
Although I don't think it's important for this type of game because levels are very short.

03:53.350 --> 03:59.290
And even if you create 1000 of fruits during your gameplay, it will not overload your system.

03:59.290 --> 04:02.830
But it's a good practice in general to keep an eye on this.

04:04.530 --> 04:07.050
Now let's parse this boolean over here.

04:08.320 --> 04:12.640
Bull should be destroyed and I'm going to make it false by default.

04:12.640 --> 04:16.630
So if you want to destroy the object, you need to pass a true over here.

04:16.630 --> 04:17.770
It should be destroyed.

04:17.800 --> 04:18.790
Nice.

04:18.790 --> 04:21.130
Now let's go to player itself.

04:22.270 --> 04:25.960
Somewhere above, I'll just make a reference to the game object.

04:26.840 --> 04:27.080
Uh.

04:27.080 --> 04:28.100
Sterilized field.

04:28.100 --> 04:29.540
Private game object.

04:29.600 --> 04:29.840
Um.

04:30.560 --> 04:31.070
Player.

04:31.070 --> 04:31.820
Fruit.

04:33.470 --> 04:34.310
Or fruit drop.

04:34.310 --> 04:34.820
Yeah.

04:35.270 --> 04:36.470
Fruit drop.

04:36.470 --> 04:37.340
Nice.

04:38.370 --> 04:43.530
And if you want to make this functionality for enemies, you can do that in a very simple way.

04:43.560 --> 04:47.400
You just do it as I'm doing it with the player, but call it in a different place.

04:47.400 --> 04:53.190
For example, here we're going to make a fruit when player getting damage, but for the enemies, you

04:53.190 --> 04:56.430
can drop a fruit when you like when enemies die.

04:56.430 --> 04:57.720
So it's not that difficult to do.

04:57.720 --> 04:59.220
I guess you can manage.

05:00.470 --> 05:05.570
So over here, when we're getting damage and if we have fruits, we're going to do object creator dot

05:05.570 --> 05:06.650
instance.

05:07.500 --> 05:10.470
Read object over root drop.

05:13.080 --> 05:14.580
A transform of the player.

05:14.580 --> 05:17.640
We don't need any delay, but we want it to be destroyed.

05:17.640 --> 05:19.560
So I'm going to pass true over here.

05:22.520 --> 05:23.210
Okay.

05:23.210 --> 05:29.780
If you don't want to pass zero over here, you can go back to, uh, Object Creator and you can place

05:29.780 --> 05:32.870
this boolean before the.

05:33.960 --> 05:35.730
Delay like that.

05:35.730 --> 05:39.750
You don't need to change anything else unless you want it to be pretty, and I want it to be pretty,

05:39.750 --> 05:40.830
so I'm going to do that.

05:45.050 --> 05:47.210
I'll just do it like that.

05:47.210 --> 05:48.020
Okay?

05:48.230 --> 05:53.510
Now we can go back to player and only pass true, because that will be zero by default.

05:53.510 --> 05:56.030
But if you want to have delay, just type it in here.

05:56.030 --> 05:59.180
Although that may create an error in other place.

05:59.180 --> 06:00.170
Are we going to see it.

06:01.490 --> 06:05.840
Anyway, this now supposed to create a fruit when we get in damage?

06:08.290 --> 06:10.000
Let's go back to the game.

06:10.900 --> 06:11.230
Okay.

06:11.230 --> 06:12.400
There is an error.

06:12.430 --> 06:13.540
Let me just.

06:14.530 --> 06:15.610
Uh, pass.

06:16.330 --> 06:17.890
Pulse and cool down.

06:18.710 --> 06:19.550
All right.

06:19.550 --> 06:20.810
This is how it's going to be.

06:22.490 --> 06:23.690
Uh, let's go back.

06:24.110 --> 06:26.540
Let's rename this to fruit.

06:26.990 --> 06:28.850
I'm going to do prefab unpack.

06:30.050 --> 06:35.330
Completely, then route dropped by player.

06:35.840 --> 06:38.600
Then we're going to remove this component over here.

06:38.600 --> 06:41.120
And we're going to add fruit drop by player.

06:41.150 --> 06:41.750
Okay.

06:42.050 --> 06:46.640
Now let's assign pick up a fix over here prefab.

06:47.270 --> 06:48.530
And we fix.

06:49.850 --> 06:50.930
Pick up a fix.

06:50.930 --> 06:51.680
Okay.

06:52.260 --> 06:53.820
Now we can go to prefabs.

06:53.820 --> 06:55.530
Let's make it as a prefab.

06:55.530 --> 06:59.640
Let's find player and give it to this field over here.

06:59.790 --> 07:05.700
Now I'm going to apply overrides and I want to go to managers find difficulty manager and make difficulty

07:05.700 --> 07:06.900
normal by default.

07:09.550 --> 07:12.700
Because, uh, game manager will create difficulty manager for me.

07:12.700 --> 07:15.550
And I need normal difficulty to be there by default.

07:17.070 --> 07:19.470
Okay, so difficulty is normal.

07:19.470 --> 07:22.140
I'm supposed to get damage and I'm supposed to drop a fruit.

07:22.140 --> 07:23.070
Let's try.

07:23.790 --> 07:24.840
Oh, I had zero.

07:24.840 --> 07:26.220
Okay, let me pick up some.

07:27.190 --> 07:28.180
I have five.

07:28.630 --> 07:29.740
And.

07:30.490 --> 07:32.800
I don't see an object created.

07:32.800 --> 07:33.790
Why not?

07:35.190 --> 07:37.110
Player has it here.

07:37.410 --> 07:38.820
This is the one.

07:39.860 --> 07:42.260
Why do we not create an object?

07:46.160 --> 07:48.620
Okay, maybe there is a different difficulty on.

07:48.740 --> 07:51.380
No, wait, we deducted the value, right?

07:52.740 --> 07:53.070
Huh?

07:57.830 --> 07:58.190
Hello.

08:04.950 --> 08:06.270
Oh, okay.

08:06.270 --> 08:08.070
No reason to be confused.

08:10.440 --> 08:12.150
Is just me being dumb.

08:12.180 --> 08:15.450
Let's go to player and we remove fruit over here.

08:15.450 --> 08:20.160
So we supposed to create an object over here?

08:20.190 --> 08:24.300
Okay, let's save this and let's go now.

08:30.140 --> 08:31.010
Gonna pick up some.

08:31.010 --> 08:35.150
And then you and we're creating a fruit when we get in damage.

08:35.240 --> 08:36.080
Perfect.

08:36.080 --> 08:38.660
Now our goal is to make it pick uppable.

08:38.660 --> 08:41.090
And also our goal is to make it blink.

08:43.200 --> 08:45.960
There's going to be pretty easy to do on the fruit over here.

08:45.960 --> 08:51.690
We have this color and we can change transparency with a delay like that.

08:51.690 --> 08:52.890
And it's going to blink.

08:53.660 --> 08:56.840
Now let's go to the script and I'm going to explain what we're going to do here.

08:58.000 --> 09:03.880
Uh, we want to have a bunch of values for the delay, because I want blinking to be fast.

09:03.880 --> 09:04.840
Fast and slower.

09:04.840 --> 09:05.680
Slower and slow.

09:05.680 --> 09:06.160
Slow.

09:06.160 --> 09:07.210
That's what I want to do.

09:07.210 --> 09:10.330
If that's the case, then we need to have a set of different values.

09:10.330 --> 09:12.070
But I'm going to do serialize field.

09:12.070 --> 09:14.290
Private float array.

09:15.110 --> 09:16.100
Wait.

09:16.100 --> 09:17.270
Uh, time.

09:17.270 --> 09:18.230
Okay.

09:18.230 --> 09:20.930
And this array will have different values.

09:20.930 --> 09:23.210
Then we're going to make a coroutine.

09:23.210 --> 09:24.830
Private enumerator.

09:27.880 --> 09:29.500
A numerator.

09:30.610 --> 09:33.250
Um, blink routine.

09:37.380 --> 09:41.280
And in here, we just need to make something very simple.

09:41.280 --> 09:46.560
We need to stop the animator because we don't want to play animation of the fruit, and we don't want

09:46.560 --> 09:48.720
to disable the animator or change the animation.

09:48.720 --> 09:53.010
We can just do anim speed equals to zero and this will pause the animation.

09:53.010 --> 09:54.420
Once we start the coroutine.

09:54.420 --> 09:58.410
I mean it will not pause it, it will play it, but it will have speed over zero.

09:58.410 --> 09:59.940
And technically it will not be paused.

09:59.940 --> 10:03.090
But still, because of the zero speed, it will not be played.

10:03.120 --> 10:04.380
I hope you're getting me here.

10:04.380 --> 10:04.890
Yeah.

10:04.890 --> 10:08.790
Now let's go and make for each loop.

10:08.850 --> 10:10.500
And we're going to have.

10:11.250 --> 10:16.050
For each float seconds in weight time.

10:16.840 --> 10:19.990
And here we're going to need a method.

10:21.160 --> 10:24.370
Private void toggle color.

10:25.910 --> 10:29.120
And we're going to pass color over here color color.

10:29.120 --> 10:32.450
And then SR dot color equals to color.

10:34.840 --> 10:37.180
Okay, now how it's going to work.

10:38.480 --> 10:42.200
We're going to use for each loop, for each value in the array of floats.

10:42.500 --> 10:44.600
And over here we're going to do toggle color.

10:44.870 --> 10:46.850
We're going to make it transparent.

10:47.240 --> 10:49.280
And we don't have value for transparent color.

10:49.280 --> 10:50.690
Let's make it serialize field.

10:50.690 --> 10:51.920
Private color.

10:52.070 --> 10:53.810
Transparent color.

10:55.520 --> 10:57.770
So we pass in a transparent color.

10:58.130 --> 11:04.040
Then we ask it to wait for seconds that we currently using in the for each cycle.

11:04.040 --> 11:09.770
So it's going to be yield return new wait for seconds of seconds.

11:09.770 --> 11:14.210
Then we're going to toggle color to color dot white.

11:16.020 --> 11:19.680
And this will basically make it visible and not transparent.

11:19.680 --> 11:26.310
Then we're going to wait again for a seconds and then once for each loop is over, we're going to do

11:26.310 --> 11:30.630
anim dot speed equals to one and can pick up equals to true.

11:31.080 --> 11:32.880
Now what it does how it works.

11:32.880 --> 11:33.900
Let me explain.

11:34.200 --> 11:39.000
We have for each loop that will do action for each value that we have in the array.

11:39.000 --> 11:42.120
And let's say first value is 0.1 second.

11:42.800 --> 11:44.330
We start for each loop.

11:45.260 --> 11:48.770
And this value will be passed here and here.

11:48.770 --> 11:50.390
And we do toggle color.

11:50.390 --> 11:52.970
Then you know that coroutine exposes the functionality.

11:52.970 --> 11:58.910
So we will post functionality of this coroutine as well as a for each loop we'll wait for 0.1.

11:58.910 --> 11:59.900
Then we make it white.

11:59.900 --> 12:02.990
Then we make it 0.1 and then it will enter.

12:04.330 --> 12:09.070
Uh, like the second circle of the circle, it will take second value in the array.

12:09.100 --> 12:11.080
Do the same for another delay.

12:11.080 --> 12:14.950
And because we're using coroutine again, we can pause the, um.

12:16.020 --> 12:22.440
Method, and that will make it work like a blinking effect with a delay, because every time we enter

12:22.440 --> 12:25.050
the cycle, we use a new value from the array.

12:25.050 --> 12:27.240
And that's it.

12:27.240 --> 12:27.780
Basically.

12:27.780 --> 12:28.230
Yeah.

12:28.920 --> 12:30.450
So it's like simple for each.

12:30.450 --> 12:34.770
But because we're using yield return new, wait for seconds, it's going to wait before the next step.

12:34.770 --> 12:39.600
And thanks to that it's going to look like we doing something with a delay or with a cooldown.

12:40.230 --> 12:41.010
All right.

12:41.770 --> 12:43.300
Let's go to start method.

12:43.750 --> 12:45.640
Actually we need to override start.

12:45.640 --> 12:46.810
Override start.

12:46.840 --> 12:48.550
Oh, I'm so sorry.

12:50.730 --> 12:52.740
Override start and then start.

12:52.740 --> 12:54.270
Coroutine of a blink.

12:54.270 --> 12:55.380
Coroutine.

12:56.120 --> 12:56.780
Nice.

12:58.210 --> 12:59.410
Now let's go ahead.

13:01.000 --> 13:02.590
Sorry, I'm a bit worried.

13:02.590 --> 13:05.800
This can be confusing, so I'll explain once again.

13:06.990 --> 13:10.260
This will work for each element and it will take them one by one.

13:10.260 --> 13:11.760
So, uh.

13:12.720 --> 13:14.760
Uh, let's go here and let's.

13:16.600 --> 13:18.280
Make a couple of values here.

13:19.010 --> 13:20.510
So wait time.

13:22.360 --> 13:26.620
Let's say it's 0.1. 15.2.

13:28.460 --> 13:30.620
And let's go back and.

13:34.540 --> 13:40.480
And this for each loop will do everything for each element in this array, and it will take the first

13:40.480 --> 13:42.430
element point one.

13:42.430 --> 13:46.570
It will be applied here until the functionality is done.

13:46.570 --> 13:51.760
It will not enter the second loop for second element, and functionality will not be done until we wait

13:51.760 --> 13:57.940
for seconds, because this is a coroutine and we can pause it once, it will do two steps with a delay.

13:57.940 --> 14:04.180
It will go and enter cycle for the second element, and again the second element will be applied here

14:04.180 --> 14:04.930
with the delay.

14:04.930 --> 14:06.640
Then it will apply delay again.

14:06.640 --> 14:08.560
Then it will go for the third cycle.

14:08.560 --> 14:11.530
And until we have values in this array.

14:12.200 --> 14:15.770
So that's how for each loop works in a coroutine.

14:15.770 --> 14:19.790
And now let's go here we need to decide what's the transparency.

14:19.790 --> 14:21.050
Color will be here.

14:21.050 --> 14:23.570
It should be white so we can see it.

14:24.050 --> 14:26.960
But the transparency we need to decide.

14:26.960 --> 14:31.970
Now let's go to animator open color and see the transparency we want to have.

14:32.420 --> 14:35.240
Probably something like 75 will do.

14:36.890 --> 14:39.620
Yeah, so we can make it fully visible.

14:39.620 --> 14:47.570
Then let's go to fruit Drop by player and let's make transparency I mean alpha 75 here like that.

14:47.570 --> 14:52.940
So this will be used for the transparent color in a for loop I'm going to add a couple of more values

14:52.940 --> 14:56.900
maybe 25 and point three in total.

14:56.900 --> 14:58.580
It should be something like one second.

14:58.580 --> 14:59.360
Let me check.

15:01.250 --> 15:05.600
Point, 3.5. 6.85 and then one.

15:05.600 --> 15:07.550
So in total it is one second.

15:07.760 --> 15:09.320
Okay, should be enough.

15:10.850 --> 15:11.600
And let's go.

15:11.600 --> 15:15.620
Now let's pick up some fruits and then let's get damage.

15:19.510 --> 15:20.050
Okay.

15:20.050 --> 15:23.170
It is picked up immediately for some reason.

15:23.170 --> 15:24.970
So let me check the script.

15:26.140 --> 15:27.670
This one happened here.

15:28.000 --> 15:34.090
We have a prefab that we drop on the player, and this prefab has wait time zero in the array.

15:34.090 --> 15:37.720
Because of that, this coroutine does not wait for anything.

15:37.720 --> 15:40.630
It just makes can pick up true immediately.

15:40.630 --> 15:44.740
Because float time is empty and.

15:45.910 --> 15:46.930
And we do not wait.

15:46.930 --> 15:48.340
So that's the problem.

15:48.370 --> 15:51.760
Let's go here and let's apply overrides.

15:51.790 --> 15:54.220
Now it's going to be on the prefab as well.

15:54.220 --> 15:55.330
And it's going to work.

15:55.330 --> 15:58.780
And we do need to make this visible anymore.

16:00.350 --> 16:01.070
Okay.

16:01.070 --> 16:02.750
And I don't need this debug.

16:03.980 --> 16:05.420
Wow, this was interesting.

16:07.180 --> 16:09.460
All right, let's go to play mode.

16:14.290 --> 16:19.390
They are the fruits and there is a fruit blinking, and then it is ready to be picked up.

16:20.250 --> 16:21.720
Okay, I like it.

16:21.750 --> 16:25.350
Now let's make it move up while it is blinking.

16:25.380 --> 16:26.460
This is what we're going to do.

16:26.490 --> 16:27.750
We're going to make.

16:29.080 --> 16:30.040
A surplus field.

16:30.040 --> 16:32.410
Private vector two velocity.

16:32.560 --> 16:34.330
And I know it's not going to be big.

16:34.330 --> 16:36.370
It's going to be just one and one maybe.

16:36.370 --> 16:39.940
But I want to have a variable because maybe you want to adjust the speed.

16:40.000 --> 16:43.000
Then I'm going to make update in which we're going to do.

16:45.160 --> 16:46.000
And transform.

16:46.000 --> 16:49.720
Position plus equals new vector three.

16:49.810 --> 16:54.460
And over here we're going to give it velocity dot x.

16:55.300 --> 16:58.240
And velocity dot y like that.

16:58.240 --> 17:02.050
We don't need to pass the Z because it's going to be zero by default.

17:02.050 --> 17:04.270
And let's just multiply it by time dot delta time.

17:04.270 --> 17:06.250
So it is frame rate independent.

17:06.250 --> 17:12.010
And we want to not only send it up, but also we want to toggle speed over here.

17:12.010 --> 17:14.380
So I'm going to do toggle speed.

17:15.180 --> 17:17.010
And color.

17:17.010 --> 17:23.340
And inside of this method we're going to do velocity dot x equals to velocity dot x multiplied by minus

17:23.340 --> 17:23.820
one.

17:24.000 --> 17:27.450
Because of that, it's going to move left and right while it's flying away.

17:27.450 --> 17:29.310
And it's going to look really nice telling you.

17:29.310 --> 17:34.680
And also once we're done with the coroutine I want to make velocity dot x equals to zero.

17:34.680 --> 17:36.810
So it will not move left and right anymore.

17:38.260 --> 17:39.220
Yes.

17:39.220 --> 17:39.730
Okay.

17:39.730 --> 17:40.540
Let's go.

17:40.540 --> 17:41.740
Let's go now.

17:44.080 --> 17:45.340
Uh, let's take it.

17:45.340 --> 17:47.410
Let's make one and one.

17:47.410 --> 17:50.920
Don't set value too big on the way because it will fly very fast.

17:50.920 --> 17:52.090
Maybe make it slower a bit.

17:52.090 --> 17:54.340
But before that, let's see how it works.

17:54.340 --> 17:58.270
Let's apply overrides and let's go to game mode now.

18:02.590 --> 18:04.900
People are playing nicely, so I've got the damage.

18:04.900 --> 18:08.560
There is my fruit and I need to catch it before it flies away.

18:10.560 --> 18:11.580
Yes.

18:11.730 --> 18:12.840
Isn't it amazing?

18:12.840 --> 18:15.060
I think it's super amazing, I love it.

18:16.170 --> 18:16.890
Uh, no.

18:21.290 --> 18:22.850
Wait to do.

18:23.000 --> 18:23.930
Got it.

18:24.350 --> 18:25.640
So that's the idea.

18:25.790 --> 18:27.470
I like how it works.

18:27.500 --> 18:29.000
Now let me go back.

18:29.000 --> 18:31.250
Let me delete this from the scene.

18:31.520 --> 18:33.260
And let me try this on different level.

18:33.260 --> 18:34.340
Supposed to work.

18:34.340 --> 18:36.950
We only want to take player and override or we don't need to.

18:36.950 --> 18:38.840
Okay, let's go to scene.

18:38.840 --> 18:40.490
Uh, level three.

18:42.150 --> 18:43.440
There is no fruits on it.

18:44.760 --> 18:46.140
Uh, level four.

18:47.440 --> 18:47.830
Yeah.

18:47.830 --> 18:48.910
There are fruits.

18:51.050 --> 18:52.610
So let's say.

18:53.880 --> 18:55.290
Going to take some fruits.

18:55.560 --> 19:01.200
And if I drop there, there is my fruit and I have a chance of catching it.

19:02.300 --> 19:03.530
I just need to wait.

19:05.630 --> 19:06.230
Cool.

19:06.980 --> 19:08.150
I love the idea.

19:08.150 --> 19:10.100
Well, that's it for this video.

19:10.130 --> 19:11.240
This was great.

19:11.240 --> 19:14.270
Thank you so much for paying attention and I'll see you in the next one.
