Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_shrinktangle_Step_0

(view raw script w/o annotations or w/e)
1
if (playercrush == 1)
2
    exit;
3
if (init == 0)
4
{
5
    depth = obj_growtangle.depth;
6
    obj_growtangle.image_alpha = 0;
7
    obj_battlesolid.image_xscale = 3;
8
    obj_battlesolid.image_yscale = 3;
9
    init = 1;
10
}
11
if (global.turntimer <= 30 && (global.turntimer % 2) >= 1 && instance_exists(obj_sneo_splitbouncer))
12
{
13
    destroytimer--;
14
    if (destroytimer <= 0)
15
    {
16
        var spouncer = instance_find(obj_sneo_splitbouncer, 0);
17
        d = instance_create(spouncer.x, spouncer.y, obj_animation_dx);
18
        d.sprite_index = spr_thrash_missile_explosion;
19
        d.image_xscale = spouncer.size;
20
        d.image_yscale = spouncer.size;
21
        destroytimer = spouncer.size;
22
        instance_destroy(spouncer);
23
    }
24
}
25
if (sizeup > 0)
26
{
27
    top -= 2;
28
    if (top < maxtop)
29
        top = maxtop;
30
    bottom += 2;
31
    if (bottom > maxbottom)
32
        bottom = maxbottom;
33
    left -= 2;
34
    if (left < maxleft)
35
        left = maxleft;
36
    right += 2;
37
    if (right > maxright)
38
        right = maxright;
39
    sizeup -= 2;
40
}
41
if ((bottom - top) < 10 || (right - left) < 10)
42
{
43
    if ((bottom - top) < 10)
44
    {
45
        var centerpoint = (top + bottom) / 2;
46
        top = centerpoint - 2;
47
        bottom = centerpoint + 2;
48
        obj_heart.y = centerpoint - 4;
49
    }
50
    else
51
    {
52
        var centerpoint = (left + right) / 2;
53
        left = centerpoint - 2;
54
        right = centerpoint + 2;
55
        obj_heart.x = centerpoint - 4;
56
    }
57
    playercrush = 1;
58
    damage = 0;
59
    for (i = 0; i < instance_number(obj_sneo_splitbouncer); i++)
60
    {
61
        d = instance_find(obj_sneo_splitbouncer, i);
62
        damage += power(d.size, 3);
63
        dm = instance_create(d.x, d.y, obj_animation_dx);
64
        dm.sprite_index = spr_realisticexplosion;
65
        dm.image_xscale = d.size / 3;
66
        dm.image_yscale = d.size / 3;
67
    }
68
    if (target != 3)
69
    {
70
        scr_damage
scr_damage

function scr_damage() { if (global.inv < 0) { scr_damage_cache(); var __element = 0; if (variable_instance_exists(id, "element")) { if (is_real(element)) __element = element; } if (target < 3) { if (global.hp[global.char[target]] <= 0) { scr_randomtarget_old(); target = mytarget; with (global.charinstance[target]) { image_blend = c_white; darkify = 0; } } } var __remtarget = -1; if (target == 4) { __remtarget = 4; scr_randomtarget_old(); target = mytarget; if ((global.hp[global.char[target]] / global.maxhp[global.char[target]]) < (scr_party_hpaverage() / 2)) { scr_randomtarget_old(); target = mytarget; } if ((global.hp[global.char[target]] / global.maxhp[global.char[target]]) < (scr_party_hpaverage() / 2)) { scr_randomtarget_old(); target = mytarget; } if (target == 0 && (global.hp[global.char[target]] / global.maxhp[global.char[target]]) < 0.35) { scr_randomtarget_old(); target = mytarget; } with (global.charinstance[target]) { image_blend = c_white; darkify = 0; } } chartarget = 3; tdamage = damage; var oldcalculation = 0; if (target < 3) { if (oldcalculation) tdamage = ceil(tdamage - (global.battledf[target] * 3)); else tdamage = scr_damage_calculation(tdamage, target); chartarget = global.char[target]; if (global.charaction[target] == 10) tdamage = ceil((2 * tdamage) / 3); tdamage = ceil(tdamage * scr_element_damage_reduction(__element, global.char[target])); if (tdamage < 1) tdamage = 1; } if (!instance_exists(obj_shake)) instance_create(0, 0, obj_shake); with (global.charinstance[target]) { hurt = 1; hurttimer = 0; } hpdiff = tdamage; with (obj_dmgwriter) { if (delaytimer >= 1) killactive = 1; } doomtype = -1; with (obj_heart) dmgnoise = 1; if (target < 3) { if (global.hp[chartarget] <= 0) { doomtype = 4; global.hp[chartarget] -= round(tdamage / 4); hpdiff = round(tdamage / 4); } else { global.hp[chartarget] -= tdamage; if (global.chapter == 2 && instance_exists(obj_gigaqueen_enemy) && global.hp[chartarget] <= 0) { global.hp[chartarget] = 1; with (o_boxingcontroller) event_user(3); } if (global.hp[chartarget] <= 0) ...
();
71
    }
72
    else if (target == 3)
73
    {
74
        damage = ceil(damage / 3);
75
        scr_damage_all
scr_damage_all

function scr_damage_all() { if (global.inv < 0) { scr_damage_cache(); remdamage = damage; _temptarget = target; for (ti = 0; ti < 3; ti += 1) { global.inv = -1; damage = remdamage; target = ti; if (global.hp[global.char[ti]] > 0 && global.char[ti] != 0) scr_damage(); } global.inv = global.invc * 40; target = _temptarget; scr_damage_check(); } }
();
76
    }
77
    snd_play(snd_badexplosion);
78
    instance_destroy(obj_sneo_splitbouncer);
79
    if (global.turntimer > 30)
80
        global.turntimer = 30;
81
}