Undertale script viewer

← back to main script listing

gml_Script_scr_damagestandard

(view raw script w/o annotations or w/e)
1
if (argument0 != 3)
2
{
3
    check = 1;
4
    if (argument0 == 1)
5
    {
6
        check = 0;
7
        if (abs(obj_heart.xprevious - obj_heart.x) > 0.01 || abs(obj_heart.yprevious - obj_heart.y) > 0.01)
8
            check = 1;
9
    }
10
    if (argument0 == 2)
11
    {
12
        check = 0;
13
        if (abs(obj_heart.xprevious - obj_heart.x) < 0.01 && abs(obj_heart.yprevious - obj_heart.y) < 0.01)
14
            check = 1;
15
    }
16
}
17
puredmg = dmg;
18
if (global.hp > 20)
19
    dmg += 1;
20
if (global.hp >= 30)
21
    dmg += 1;
22
if (global.hp >= 40)
23
    dmg += 1;
24
if (global.hp >= 50)
25
    dmg += 1;
26
if (global.hp >= 60)
27
    dmg += 1;
28
if (global.hp >= 70)
29
    dmg += 1;
30
if (global.hp >= 80)
31
    dmg += 1;
32
if (global.hp >= 90)
33
    dmg += 1;
34
if (global.invc < 1 && check == 1)
35
{
36
    dmgamt = round(dmg - ((global.df + global.adef) / 5));
37
    if (dmgamt < argument1)
38
        dmgamt = argument1;
39
    if (argument2 > 0 && dmgamt > argument2)
40
        dmgamt = argument2;
41
    if (argument3 > 0)
42
        dmgamt = argument3;
43
    if (dmgamt < 1)
44
        dmgamt = 1;
45
    global.hp -= dmgamt;
46
    if (global.hp < 0)
47
        global.hp = 0;
48
    snd_play(snd_hurt1);
49
    global.hshake = 2;
50
    global.shakespeed = 2;
51
    global.vshake = 2;
52
    instance_create(0, 0, obj_shaker);
53
    global.invc = global.inv;
54
    if (argument4 > 0)
55
        global.invc = (argument4 / 20) * global.inv;
56
    if (global.battlegroup == 22)
57
    {
58
        if (global.hp < 1)
59
            obj_torielboss.sprite_index = spr_torielboss_mouthcover;
60
    }
61
}
62
dmg = puredmg;