Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_organ_enemy_vertical_pillar_Other_15

(view raw script w/o annotations or w/e)
1
if (green == 1)
2
{
3
    var a = 1;
4
    if (chorus == 1)
5
        a = 3;
6
    if (i_ex(obj_organ_enemy) && obj_organ_enemy.wicabell_tuning)
7
        a = 2;
8
    repeat (a)
9
    {
10
        if (!i_ex(obj_dmgwriter_boogie))
11
        {
12
            with (obj_monsterparent)
13
            {
14
                if (global.mercymod[myself] < 100)
15
                {
16
                    snd_stop(snd_mercyadd);
17
                    snd_play_x(snd_mercyadd, 0.8, 1.4);
18
                    var mercygiven = 0;
19
                    if (other.parentid == id)
20
                        mercygiven = 3;
21
                    else if (object_index == obj_organ_enemy)
22
                        mercygiven = 1;
23
                    else if (object_index == obj_halo_enemy)
24
                        mercygiven = 1;
25
                    else if (object_index == obj_bell_enemy)
26
                        mercygiven = 1;
27
                    if ((global.mercymod[myself] + mercygiven) > 100)
28
                        mercygiven = 100 - global.mercymod[myself];
29
                    __mercydmgwriter = instance_create_depth(global.monsterx[myself], global.monstery[myself] + 40, depth - 99999, obj_dmgwriter_boogie);
30
                    __mercydmgwriter.damage = mercygiven;
31
                    __mercydmgwriter.type = 5;
32
                    global.mercymod[myself] += mercygiven;
33
                    global.hittarget[myself]++;
34
                }
35
            }
36
        }
37
        else
38
        {
39
            with (obj_monsterparent)
40
            {
41
                if (global.mercymod[myself] < 100)
42
                {
43
                    var mercygiven = 0;
44
                    if (other.parentid == id)
45
                        mercygiven = 3;
46
                    else if (object_index == obj_organ_enemy)
47
                        mercygiven = 1;
48
                    else if (object_index == obj_halo_enemy)
49
                        mercygiven = 1;
50
                    else if (object_index == obj_bell_enemy)
51
                        mercygiven = 1;
52
                    if ((global.mercymod[myself] + mercygiven) > 100)
53
                        mercygiven = 100 - global.mercymod[myself];
54
                    __mercydmgwriter.damage += mercygiven;
55
                    __mercydmgwriter.init = 0;
56
                    global.mercymod[myself] += mercygiven;
57
                }
58
            }
59
        }
60
    }
61
    with (obj_organ_enemy)
62
        snd_volume(harmon_sound, 1, 6);
63
    touchingplayer = 2;
64
}
65
else
66
{
67
    with (obj_dmgwriter_boogie)
68
    {
69
        killtimer = 0;
70
        killactive = 0;
71
        kill = 0;
72
    }
73
    if (active == 1)
74
    {
75
        if (target != 3)
76
            
scr_damage
scr_damage

function
scr_damage()
{ if (global.inv < 0) {
scr_damage_cache();
var __element = 0; if (variable_instance_exists(id, "element") && is_real(element)) __element = element; if (global.chapter == 4 && i_ex(obj_hammer_of_justice_enemy)) obj_hammer_of_justice_enemy.gothitlastturn++; if (global.chapter == 4 && i_ex(obj_sound_of_justice_enemy)) obj_sound_of_justice_enemy.gothitlastturn++; if (global.chapter == 4 && i_ex(obj_guei_enemy)) obj_guei_enemy.gothitthisturn = true; if (global.chapter == 4 && global.encounterno == 157 && !i_ex(obj_herosusie) && !i_ex(obj_heroralsei)) damage = round(damage * 0.7); if (global.chapter == 4 && i_ex(obj_jackenstein_enemy) && obj_jackenstein_enemy.scaredycat) damage = round(damage * 1.5); with (obj_mike_minigame_controller) hurt = true; if (target < 3) { var skipthis = false; if (global.chapter == 4) { if (i_ex(obj_climb_kris)) skipthis = true; } if (!skipthis) { 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; var getList = array_length(global.char); 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; if (global.chapter == 4 && i_ex(obj_titan_enemy) && obj_titan_enemy.forcehitralsei) { damage *= 0.5; if (global.hp[3] > 0) target = 2; } if (global.chapter == 4 && i_ex(obj_sound_of_justice_enemy) && obj_sound_of_justice_enemy.phase == 2) { if (global.hp[1] > 0 && global.hp[2] < (global.maxhp[2] * 0.4)) target = 0; } if (i_ex(obj_titan_enemy) || i_ex(obj_titan_spawn_enemy)) { if ((target == 0 && (global.chararmor1[1] == 23 || global.chararmor2[1] == 23)) || (target == 1 && (global.chararmor1[2] == 23 || global.chararmor2[2] == 23)) || (target == 2 && (global.chararmor1[3] == 23 || global.chararmor2[3] == 23))) damage = round(damage * 0.5); } 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]));
debug_message("The element is: " + string(__element)); if (tdamage < 1) ...
();
77
        if (target == 3)
78
            
scr_damage_all
scr_damage_all

function
scr_damage_all(arg0 = 1)
{ if (global.inv < 0) { remdamage = damage; _temptarget = target; for (ti = 0; ti < 3; ti += 1) { global.inv = -1; damage = remdamage; var _inverse_proportion = 1 - arg0; var _damscale = global.hp[global.char[ti]] / global.maxhp[global.char[ti]]; var _dammod = (_damscale * _inverse_proportion) + (1 * arg0); damage *= _dammod; target = ti; if (global.hp[global.char[ti]] > 0 && global.char[ti] != 0)
scr_damage();
} global.inv = global.invc * 40; target = _temptarget; } }
();
79
        if (destroyonhit == 1)
80
            instance_destroy();
81
    }
82
}