Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_spotlightlaser_Step_0

(view raw script w/o annotations or w/e)
1
if (change_sides)
2
{
3
    if (i_ex(obj_susiezilla_player))
4
    {
5
        if (obj_susiezilla_player.myxcenter < x)
6
            facing = 0;
7
        else
8
            facing = 1;
9
    }
10
}
11
var lx = 0;
12
var rx = 1280;
13
with (obj_susiezilla_gamecontroller)
14
{
15
    lx = xorig;
16
    rx = xorig + width;
17
}
18
if (friendly)
19
    exit;
20
with (obj_susiezilla_gamecontroller)
21
{
22
    if (gameover)
23
        exit;
24
}
25
myxcenter = x;
26
myycenter = y;
27
var _hit = instance_place(x, y, obj_susiezilla_player);
28
if (i_ex(_hit) && con == 1)
29
{
30
    var hitx = mean(x, _hit.x + 32);
31
    var hity = mean(y, _hit.y + 40);
32
    var hitdir = point_direction(x, y, _hit.x + 32, _hit.y + 40);
33
    if (_hit.canmove)
34
    {
35
        if (_hit.hitactive && !unstoppable)
36
        {
37
            friendly = true;
38
            snd_stop(snd_rudebuster_hit);
39
            snd_play_x(snd_rudebuster_hit, 0.5, 1);
40
            speed = 16;
41
            with (instance_create_depth(x, y, depth - 100, obj_susiezilla_parry_effect))
42
                image_angle = hitdir + 90;
43
            direction = point_direction(_hit.oldxcenter, _hit.oldycenter, xprevious, yprevious);
44
        }
45
        else if (!_hit.invuln)
46
        {
47
            mask_index = -1;
48
            if (instance_place(x, y, obj_susiezilla_player))
49
            {
50
                snd_stop(snd_punchmed);
51
                snd_play_pitch(snd_punchmed, 0.75);
52
                
scr_susiezilla_hiteffect
scr_susiezilla_hiteffect

function
scr_susiezilla_hiteffect(arg0)
{ var _hit = arg0; var _hitmarker =
scr_dark_marker(round((_hit.myxcenter + myxcenter) / 2), round((_hit.myycenter + myycenter) / 2), spr_dogcar_hit);
scr_doom(_hitmarker, 4);
var hitscale = myhitscale; if (_hit.myhitscale > hitscale) hitscale = _hit.myhitscale;
scr_scale(hitscale, _hitmarker);
scr_lerpvar_instance(_hitmarker, "image_xscale", hitscale, 1, 4);
scr_lerpvar_instance(_hitmarker, "image_yscale", hitscale, 1, 4);
_hitmarker.depth = depth - 100; return _hitmarker; }
(_hit);
53
                if (unstoppable)
54
                {
55
                    _hit.take_hit_unblockable(facing, damage, knockback);
56
                }
57
                else
58
                {
59
                    _hit.take_hit(sign(_hit.oldxcenter - x), damage, knockback);
60
                    if (destroy_onhit && !friendly)
61
                    {
62
                        bounce_off_dir = -sign(_hit.oldxcenter - x);
63
                        bounce_off();
64
                        instance_destroy();
65
                    }
66
                }
67
            }
68
        }
69
    }
70
}