Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_viro_needle_Step_0

(view raw script w/o annotations or w/e)
1
if (wall_destroy == 1)
2
{
3
    if (x < (__view_get(e__VW.XView, 0) - 80))
4
        instance_destroy();
5
    if (x > (__view_get(e__VW.XView, 0) + 760))
6
        instance_destroy();
7
    if (y < (__view_get(e__VW.YView, 0) - 80))
8
        instance_destroy();
9
    if (y > (__view_get(e__VW.YView, 0) + 580))
10
        instance_destroy();
11
}
12
if (updateimageangle == 1)
13
    image_angle = direction;
14
if (countdown > 0)
15
{
16
    if (speed > 0)
17
        speed--;
18
    countdown--;
19
    if (countdown == 0)
20
    {
21
        speed = 0;
22
        active = 0;
23
        spawning = false;
24
        image_speed = 1/3;
25
    }
26
}
27
if (!spawning && spawnVirus == 1)
28
{
29
    virus_timer += image_speed;
30
    if (virus_timer >= 3)
31
    {
32
        spawnVirus = 0;
33
        d = 
scr_childbullet
scr_childbullet

function
scr_childbullet()
{ var __child = instance_create(argument[0], argument[1], argument[2]); var __parent = (argument_count == 4) ? argument[3] : id; if (__parent.damage != -1) __child.damage = __parent.damage; if (__parent.grazepoints != -1) __child.grazepoints = __parent.grazepoints; if (__parent.timepoints != -1) __child.timepoints = __parent.timepoints; if (__parent.inv != -1) __child.inv = __parent.inv; if (__parent.target != -1) __child.target = __parent.target; if (__parent.grazed != -1) __child.grazed = __parent.grazed; if (__parent.grazetimer != -1) __child.grazetimer = __parent.grazetimer; __child.element = __parent.element; return __child; }
(x, y, obj_virovirokun_virus);
34
        d.speed = 0.1;
35
        d.friction = -0.1;
36
        d.direction = point_direction(x, y, obj_heart.x, obj_heart.y);
37
    }
38
}
39
if (!active || image_alpha < 0.8)
40
    exit;
41
infecttarget = collision_rectangle(x - 14, y - 5, x + 14, y + 5, obj_collidebullet, false, true);
42
if (infecttarget != -4)
43
{
44
    if (infecttarget.object_index == obj_omawaroid_vaccine && infecttarget.image_alpha > 0.5)
45
    {
46
        active = 0;
47
        spawnVirus = 0;
48
        sprite_index = spr_virovirokun_needle;
49
        spawning = false;
50
        image_speed = 2/3;
51
        depth--;
52
        speed = 0;
53
        if (infecttarget.topspeed == 0)
54
            infecttarget.topspeed = infecttarget.speed;
55
        infecttarget.speed = 0;
56
    }
57
    else if (infecttarget.object_index == obj_virovirokun_virus)
58
    {
59
        exit;
60
    }
61
    else if (infecttarget.active == true && (infecttarget.object_index != obj_viro_needle || (infecttarget.direction == 0 && direction != 0)))
62
    {
63
        spawning = false;
64
        image_speed = 2/3;
65
        active = 0;
66
        spawnVirus = 1;
67
        image_speed = 2/3;
68
        speed = 0;
69
        infection = 1;
70
        d = instance_create(infecttarget.x, infecttarget.y, obj_animation_dx);
71
        d.sprite_index = spr_viro_poison_effect_big;
72
        d.image_angle = irandom(3) * 90;
73
        d.image_blend = poisoncolor;
74
        d.image_xscale = 1;
75
        d.image_yscale = 1;
76
        d.depth = depth - 1;
77
        if (infecttarget.object_index != obj_viro_needle)
78
        {
79
            targetx = infecttarget.x;
80
            targety = infecttarget.y;
81
            targetsprite = infecttarget.sprite_index;
82
            targetimage = infecttarget.image_index;
83
        }
84
        else
85
        {
86
            targetx = lerp(x, infecttarget.x, 0.5);
87
            targety = lerp(y, infecttarget.y, 0.5);
88
            poisoncolor = c_white;
89
        }
90
        instance_destroy(infecttarget);
91
    }
92
}
93
94
enum e__VW
95
{
96
    XView,
97
    YView,
98
    WView,
99
    HView,
100
    Angle,
101
    HBorder,
102
    VBorder,
103
    HSpeed,
104
    VSpeed,
105
    Object,
106
    Visible,
107
    XPort,
108
    YPort,
109
    WPort,
110
    HPort,
111
    Camera,
112
    SurfaceID
113
}