Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_floradinn_enemy_Draw_0

related scripts: Alarm_4Create_0Draw_0 Other_22Step_0

(view raw script w/o annotations or w/e)
1
var _idlesprite = 4140;
2
var _hurtsprite = 5203;
3
var _sparesprite = 3737;
4
var _disappointed = 4079;
5
var _flipped = 5131;
6
var _weaponraise = 6811;
7
if (global.mercymod[myself] >= global.mercymax[myself])
8
{
9
    _idlesprite = 3737;
10
    _sparesprite = 3737;
11
    _hurtsprite = 460;
12
    _disappointed = 7795;
13
    _flipped = 3414;
14
    _weaponraise = 8011;
15
}
16
if (flattened)
17
{
18
    _idlesprite = 7806;
19
    _hurtsprite = 6785;
20
    _disappointed = 8288;
21
    _flipped = 1348;
22
    _weaponraise = 7289;
23
    if (global.mercymod[myself] >= global.mercymax[myself])
24
    {
25
        _idlesprite = 3381;
26
        _sparesprite = 3381;
27
        _hurtsprite = 6440;
28
        _disappointed = 3906;
29
        _flipped = 7994;
30
        _weaponraise = 7373;
31
    }
32
}
33
idlesprite = _idlesprite;
34
hurtsprite = _hurtsprite;
35
sparedsprite = _sparesprite;
36
if (maneanimcon == 1)
37
{
38
    maneanimtimer++;
39
    headlen = 20;
40
    if (
scr_monsterpop
scr_monsterpop

function
scr_monsterpop()
{ return global.monster[0] + global.monster[1] + global.monster[2]; }
() == 1)
41
    {
42
        headdir = lerp(headdir, -180, maneanimtimer / 20);
43
        headx = lengthdir_x(headlen, headdir);
44
        heady = lengthdir_y(headlen, headdir);
45
        if (maneanimtimer == 9)
46
            hidespikes = true;
47
        if (maneanimtimer == 20)
48
        {
49
            maneanimtimer = 0;
50
            maneanimcon = 2;
51
        }
52
    }
53
    else
54
    {
55
        headdir = lerp(headdir, -180, maneanimtimer / 30);
56
        headx = lengthdir_x(headlen, headdir);
57
        heady = lengthdir_y(headlen, headdir);
58
        if (maneanimtimer == 10)
59
            hidespikes = true;
60
        if (maneanimtimer == 30)
61
        {
62
            maneanimtimer = 0;
63
            maneanimcon = 2;
64
        }
65
    }
66
}
67
if (maneanimcon == 2)
68
{
69
    maneanimtimer++;
70
    if (maneanimtimer == 1)
71
    {
72
        maneanimtimer = 0;
73
        maneanimcon = 0;
74
        heady = 0;
75
        headdir = 0;
76
        headlen = 0;
77
        state = 1;
78
    }
79
}
80
if (bookcon == 1)
81
{
82
    booktimer++;
83
    if (booktimer <= 20)
84
    {
85
        book_x = lerp(book_x, -40, booktimer / 20);
86
        draw_sprite_ext(spr_floradin_big_book, 0, xstart + book_x, y - 20, 2, 2, 0, c_white, 1);
87
        var _flat_xscale = image_xscale;
88
        if (flattened)
89
            _flat_xscale = flat_xscale;
90
        if (global.mercymod[myself] < global.mercymax[myself])
91
            draw_sprite_ext(idlesprite, siner, x, y, _flat_xscale, image_yscale, 0, image_blend, image_alpha);
92
        else
93
            draw_sprite_ext(sparedsprite, siner, x, y, _flat_xscale, image_yscale, 0, image_blend, image_alpha);
94
    }
95
    if (booktimer == 20)
96
    {
97
        snd_play(snd_impact);
98
        instance_create(x, y, obj_shake);
99
    }
100
    if (booktimer == 24)
101
        
scr_mercyadd
scr_mercyadd

function
scr_mercyadd(arg0, arg1)
{ global.mercymod[arg0] += arg1; if (global.mercymod[arg0] < 0) global.mercymod[arg0] = 0; if (global.mercymod[arg0] >= 100) global.mercymod[arg0] = 100; var _playsound = 1; if (arg1 <= 0) _playsound = 0; with (obj_dmgwriter) { if (type == 5 && mercytimer < 8) _playsound = 0; } if (_playsound) { var _pitch = 0.8; if (arg1 < 99) _pitch = 1; if (arg1 <= 50) _pitch = 1.2; if (arg1 <= 25) _pitch = 1.4; snd_play_x(snd_mercyadd, 0.8, _pitch); } __mercydmgwriter = instance_create(global.monsterx[arg0], (global.monstery[arg0] + 20) - (global.hittarget[arg0] * 20), obj_dmgwriter); __mercydmgwriter.damage = arg1; __mercydmgwriter.type = 5; global.hittarget[arg0]++; return __mercydmgwriter; }
(myself, 60);
102
    if (booktimer > 20 && booktimer < 24)
103
        draw_sprite_ext(spr_floradin_big_book, 1, xstart + book_x, y - 20, 2, 2, 0, c_white, 1);
104
    if (booktimer >= 24)
105
        draw_sprite_ext(spr_floradin_big_book, 2, xstart + book_x, y - 20, 2, 2, 0, c_white, 1);
106
    if (booktimer >= 30 && !i_ex(obj_writer))
107
    {
108
        book_x = -180;
109
        booktimer = 0;
110
        bookcon = 0;
111
        flattened = true;
112
        if (flat_xscale < 3)
113
            flat_xscale += 0.2;
114
    }
115
    exit;
116
}
117
if (state == 0)
118
{
119
    if (flash == 1)
120
        fsiner++;
121
    siner += 0.14285714285714285;
122
    var _flat_xscale = image_xscale;
123
    if (flattened)
124
        _flat_xscale = flat_xscale;
125
    if (idlesprite == spr_enemy_floradin && !flattened && global.mercymod[myself] < global.mercymax[myself])
126
    {
127
        if (weaponraise)
128
        {
129
            draw_sprite_ext(_weaponraise, siner, x, y, _flat_xscale, image_yscale, 0, image_blend, image_alpha);
130
        }
131
        else if (disappointed)
132
        {
133
            draw_sprite_ext(_disappointed, siner, x, y, _flat_xscale, image_yscale, 0, image_blend, image_alpha);
134
        }
135
        else
136
        {
137
            draw_monster_body_part(spr_enemy_floradin_body, siner, x, y);
138
            if (!hidespikes)
139
                draw_monster_body_part(spr_enemy_floradin_spikes, siner, x + headx, y + heady);
140
            draw_monster_body_part(spr_enemy_floradin_head, siner, x + headx, y + heady);
141
        }
142
    }
143
    else if (weaponraise)
144
    {
145
        draw_sprite_ext(_weaponraise, siner, x, y, _flat_xscale, image_yscale, 0, image_blend, image_alpha);
146
    }
147
    else if (disappointed)
148
    {
149
        draw_sprite_ext(_disappointed, siner, x, y, _flat_xscale, image_yscale, 0, image_blend, image_alpha);
150
    }
151
    else if (flipped)
152
    {
153
        draw_sprite_ext(_flipped, siner, x, y, _flat_xscale, image_yscale, 0, image_blend, image_alpha);
154
    }
155
    else if (global.mercymod[myself] >= global.mercymax[myself])
156
    {
157
        draw_sprite_ext(sparedsprite, siner, x, y, _flat_xscale, image_yscale, 0, image_blend, image_alpha);
158
        if (flash == 1)
159
            draw_sprite_ext(sparedsprite, siner, x, y, _flat_xscale, image_yscale, 0, image_blend, image_alpha);
160
    }
161
    else
162
    {
163
        draw_sprite_ext(idlesprite, siner, x, y, _flat_xscale, image_yscale, 0, image_blend, image_alpha);
164
        if (flash == 1)
165
            draw_sprite_ext_flash(idlesprite, siner, x, y, _flat_xscale, image_yscale, 0, image_blend, (-cos(fsiner / 5) * 0.4) + 0.6);
166
    }
167
}
168
if (state == 1)
169
{
170
    draw_monster_body_part(spr_enemy_floradin_body, 0, x, y);
171
    draw_monster_body_part(spr_enemy_floradin_spikes_return, spikegrowtimer / 4, x + headx, y + heady);
172
    draw_monster_body_part(spr_enemy_floradin_head, 0, x + headx, y + heady);
173
    spikegrowtimer++;
174
    if (spikegrowtimer < 3)
175
        headx = lerp(headx, 0, spikegrowtimer / 2);
176
    if (spikegrowtimer == 16)
177
    {
178
        state = 0;
179
        spikegrowtimer = 0;
180
        hidespikes = false;
181
    }
182
}
183
if (state == 3 && hurttimer >= 0)
184
{
185
    var _flat_xscale = image_xscale;
186
    if (flattened)
187
        _flat_xscale = flat_xscale;
188
    draw_sprite_ext(hurtsprite, 0, x + shakex + hurtspriteoffx, y + hurtspriteoffy, _flat_xscale, 2, 0, image_blend, 1);
189
}
190
if (becomeflash == 0)
191
    flash = 0;
192
becomeflash = 0;