Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_queenshield_enemy_old_Draw_0

(view raw script w/o annotations or w/e)
1
shieldsiner++;
2
if (shieldhurt != 2)
3
    shieldalpha = 0.7 + (sin(shieldsiner / 7) * 0.05);
4
draw_set_alpha(shieldalpha * 0.8);
5
if (image_yscale >= 0.1)
6
{
7
    draw_set_color(c_lime);
8
    if (appearcon == 2 && sprite_index == spr_queenshield_center_origin)
9
    {
10
        draw_triangle(queenhandx, queenhandy, x + 46, (y + 3) - (shieldheight * (image_yscale / 4)), x + 45, (y - 3) + (shieldheight * (image_yscale / 3)), true);
11
        draw_triangle_colour(queenhandx, queenhandy, x + 46, (y + 3) - (shieldheight * (image_yscale / 4)), x + 45, (y - 3) + (shieldheight * (image_yscale / 3)), c_black, 65280, 65280, false);
12
    }
13
    else if (appearcon == 2)
14
    {
15
        draw_triangle(queenhandx, queenhandy, x + 81, y + 63, x + 81, (y - 14 - 3) + (shieldheight * image_yscale), true);
16
        draw_triangle_colour(queenhandx, queenhandy, x + 81, y + 63, x + 81, (y - 14 - 3) + (shieldheight * image_yscale), c_black, 65280, 65280, false);
17
    }
18
    else if (sprite_index != spr_queenshield)
19
    {
20
        draw_triangle(queenhandx, queenhandy, x + 46, (y + 3) - (shieldheight * (image_yscale / 3)), x + 45, (y - 3) + (shieldheight * (image_yscale / 2)), true);
21
        draw_triangle_colour(queenhandx, queenhandy, x + 46, (y + 3) - (shieldheight * (image_yscale / 3)), x + 45, (y - 3) + (shieldheight * (image_yscale / 2)), c_black, 65280, 65280, false);
22
    }
23
    else
24
    {
25
        draw_triangle(queenhandx, queenhandy, x + 79, y + 49, x + 79, (y - 3) + (shieldheight * image_yscale), true);
26
        draw_triangle_colour(queenhandx, queenhandy, x + 79, y + 49, x + 79, (y - 3) + (shieldheight * image_yscale), c_black, 65280, 65280, false);
27
    }
28
    draw_set_alpha(1);
29
}
30
y += (sin(shieldsiner / 6) * 0.5);
31
var shieldindex = 0;
32
var hptype = 0;
33
var wineheight;
34
if ((obj_queen_enemy.shieldhp / obj_queen_enemy.shieldmaxhp) <= (obj_queen_enemy.shieldacthp / obj_queen_enemy.shieldactmaxhp))
35
{
36
    hptype = 0;
37
    repeat (10)
38
    {
39
        if (obj_queen_enemy.shieldhp < shieldhpgradual)
40
            shieldhpgradual -= 1;
41
    }
42
    repeat (obj_queen_enemy.phase - 1)
43
    {
44
        repeat (10)
45
        {
46
            if (obj_queen_enemy.shieldhp > shieldhpgradual)
47
                shieldhpgradual += 1;
48
        }
49
    }
50
    wineheight = lerp(shieldheight, 0, shieldhpgradual / obj_queen_enemy.shieldmaxhp);
51
}
52
else
53
{
54
    hptype = 1;
55
    if (shieldhpgradual > obj_queen_enemy.shieldactmaxhp)
56
        shieldhpgradual = obj_queen_enemy.shieldactmaxhp;
57
    repeat (10)
58
    {
59
        if (obj_queen_enemy.shieldacthp < shieldhpgradual)
60
            shieldhpgradual -= 0.01;
61
    }
62
    repeat (obj_queen_enemy.phase - 1)
63
    {
64
        repeat (10)
65
        {
66
            if (obj_queen_enemy.shieldacthp > shieldhpgradual)
67
                shieldhpgradual += 0.01;
68
        }
69
    }
70
    wineheight = lerp(shieldheight, 0, shieldhpgradual / obj_queen_enemy.shieldactmaxhp);
71
}
72
if (appearcon == 1)
73
{
74
    image_xscale = 4;
75
    image_yscale = 0;
76
    appearcon = 1.1;
77
    shieldhpgradual = obj_queen_enemy.shieldhp;
78
    if (sprite_index != spr_queenshield_center_origin)
79
    {
80
        x += 34;
81
        y += 140;
82
        sprite_index = spr_queenshield_center_origin;
83
    }
84
}
85
if (appearcon == 1.1)
86
{
87
    if (image_yscale < 2)
88
    {
89
        appeartimer++;
90
        image_yscale = lerp(0, 2, appeartimer / 10);
91
        image_xscale = lerp(4, 2, appeartimer / 10);
92
    }
93
    else
94
    {
95
        appearcon = 0;
96
        appeartimer = 0;
97
        shieldhpgradual = obj_queen_enemy.shieldmaxhp;
98
        if (sprite_index != spr_queenshield)
99
        {
100
            x -= 34;
101
            y -= 140;
102
            sprite_index = spr_queenshield;
103
        }
104
    }
105
}
106
if (appearcon == 2)
107
{
108
    if (image_yscale > 0)
109
    {
110
        appeartimer++;
111
        image_yscale = lerp(2, 0, appeartimer / 10);
112
        image_xscale = lerp(2, 4, appeartimer / 10);
113
        if (sprite_index != spr_queenshield_center_origin)
114
        {
115
            x += 34;
116
            y += 140;
117
            sprite_index = spr_queenshield_center_origin;
118
        }
119
    }
120
    else
121
    {
122
        image_xscale = 0;
123
        image_yscale = 0;
124
        appearcon = 0;
125
        appeartimer = 0;
126
    }
127
}
128
if (shaketimer > 0)
129
{
130
    x = (xstart - shaketimer) + (shaketimer * 2);
131
    y = (ystart - shaketimer) + (shaketimer * 2);
132
    shaketimer--;
133
}
134
if (shieldhurt == 1)
135
{
136
    shieldindex = 2;
137
    shieldx = (random(shieldhurttimer) - random(shieldhurttimer)) * 2;
138
    shieldhurttimer--;
139
    if (shieldhurttimer <= 0)
140
        shieldhurt = 0;
141
}
142
if (shieldhurt == 2)
143
{
144
    event_user(1);
145
    instance_destroy();
146
}
147
if (appearcon != 0)
148
{
149
    draw_sprite_ext(sprite_index, 1, x + 7, y + 3, image_xscale, image_yscale, 0, c_white, shieldalpha);
150
}
151
else
152
{
153
    draw_sprite_part_ext(sprite_index, shieldindex, 0, wineheight, sprite_width, shieldheight - wineheight, x + shieldx, y + (wineheight * image_yscale), image_xscale, image_yscale, c_white, shieldalpha);
154
    draw_sprite_part_ext(sprite_index, shieldindex + 1, 0, 0, sprite_width, wineheight, x + shieldx, y, image_xscale, image_yscale, c_white, shieldalpha);
155
    if ((shieldhpgradual <= 5 && hptype == 0) || (shieldhpgradual < 1 && hptype == 1))
156
    {
157
        imabouttobreak_siner += 0.5;
158
        imabouttobreak_alpha = 0.1 + (sin(imabouttobreak_siner) / 6);
159
        d3d_set_fog(true, c_white, 0, 1);
160
        draw_sprite_part_ext(sprite_index, shieldindex, 0, wineheight, sprite_width, shieldheight - wineheight, x + shieldx, y + (wineheight * image_yscale), image_xscale, image_yscale, c_white, imabouttobreak_alpha);
161
        draw_sprite_part_ext(sprite_index, shieldindex + 1, 0, 0, sprite_width, wineheight, x + shieldx, y, image_xscale, image_yscale, c_white, imabouttobreak_alpha);
162
        d3d_set_fog(false, c_black, 0, 0);
163
    }
164
}