Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_board_enemy_yellowflower_Step_0

(view raw script w/o annotations or w/e)
1
scr_board_enemy_step_init
scr_board_enemy_step_init

function
scr_board_enemy_step_init()
{ if (state == "init") state = "move"; }
();
2
scr_board_enemy_sword_collision
scr_board_enemy_sword_collision

function
scr_board_enemy_sword_collision()
{ var deer_following = false; if (object_index == obj_board_enemy_deer && follow == true) deer_following = true; if (place_meeting(x, y, obj_board_swordhitbox) && hurttimer == 0 && obj_board_controller.kris_object.swordlv >= sword_immunity_lv && deer_following == false) { var hitbox = instance_place(x, y, obj_board_swordhitbox); if (hitbox.detectiononly == true) { with (obj_mainchara_board) { if (swordbuffer <= 0) { swordbuffer = 8; canfreemove = 0; snd_play(choose(snd_board_sword1, snd_board_sword2, snd_board_sword3)); } } } else if ((object_index == obj_board_enemy_monster && image_blend == c_gray) || (object_index == obj_board_enemy_bluebird && room == room_board_dungeon_2)) { snd_stop(snd_board_sword_metal); snd_play(snd_board_sword_metal); hitdir = -1; hurttimer = 10; } else { path_end(); hurttimer = 10; snd_stop(snd_board_damage); snd_play(snd_board_damage); active_hitbox = false; hitdir = obj_board_controller.kris_object.facing; if (hp != 999) hp--; } } if (place_meeting(x, y, obj_board_enemy_deer_ice_spell) && object_index != obj_board_enemy_deer) { snd_stop(snd_board_splash); snd_play(snd_board_splash); if (object_index != obj_board_enemy_bluefish && object_index != obj_board_enemy_yellowflower) { block = instance_create(x, y, obj_pushableblock_board); block.sprite_index = spr_board_pushableblock_ice; block.custom_sprite = spr_board_pushableblock_ice; block.image_xscale = 1; block.image_yscale = 1; var x_cell = floor(block.x / global.cell_size); var y_cell = floor((block.y + 18) / global.cell_size); var position_x = (x_cell * global.cell_size) + (global.cell_size / 2); var position_y = (y_cell * global.cell_size) + (global.cell_size / 2); block.x = position_x - 16; block.y = position_y - 16; var count = 6; for (var i = 0; i < count; i++) { var fx =
scr_board_marker((block.x + 16) - 2, (block.y + 16) - 2, spr_board_snowflake, 0.3, 100000, 2);
fx.direction = ((360 / count) * i) + 45; fx.speed = 8; fx.friction = 0.6;
scr_doom(fx, 10);
fx =
scr_board_marker((block.x + 16) - 2, (block.y + 16) - 2, spr_board_snowflake, 0.3, 100000, 2);
fx.direction = (360 / count) * i; fx.speed = 4; fx.friction = 0.3;
scr_doom(fx, 10);
} } else { var count = 6; for (var i = 0; i < count; i++) { var fx =
scr_board_marker((x + 16) - 2, (y + 16) - 2, spr_board_snowflake, 0.3, 100000, 2);
fx.direction = ((360 / count) * i) + 45; fx.speed = 8; fx.friction = 0.6;
scr_doom(fx, 10);
fx =
scr_board_marker((x + 16) - 2, (y + 16) - 2, spr_board_snowflake, 0.3, 100000, 2);
fx.direction = (360 / count) * i; fx.speed = 4; fx.friction = 0.3;
scr_doom(fx, 10);
} } instance_destroy(); if (spawnerid != -1 && i_ex(spawnerid)) { if (object_index != obj_board_enemy_yellowflower && object_index != obj_board_enemy_bluefish) spawnerid.image_index = 20; else safe_delete(spawnerid); } } if (place_meeting(x, y, obj_board_swordhitbox) && hurttimer == 0 && obj_board_controller.kris_object.swordlv < sword_immunity_lv && deer_following == false) { snd_stop(snd_board_sword_metal); snd_play(snd_board_sword_metal); ...
();
3
scr_depth_board
scr_depth_board

function
scr_depth_board()
{ depth = 1000000 - ((y * 10) + ((sprite_height - sprite_yoffset) * 10)); } function scr_board_depth() {
scr_depth_board();
}
();
4
scr_board_enemy_hurt_state
scr_board_enemy_hurt_state

function
scr_board_enemy_hurt_state()
{ if (hurttimer > 0) { hurttimer--; active_hitbox = false; if (hurttimer == 0 && hp != maxhp) active_hitbox = true; if (hurttimer == 9 && hp <= 0) { splash = instance_create_depth(centerx(), centery(), depth - 2, obj_board_enemydefeatsplash); splash.depth = depth - 1; global.flag[1255 sword_route_kills]++; obj_board_controller.kris_object.xp += xp_given; instance_destroy(); var a = true; if (object_index == obj_board_enemy_monster && hp == 999) a = false; if (spawnerid != -1 && i_ex(spawnerid) && a == true) { with (spawnerid) instance_destroy(); } if (drop_candy == true) { var drop_rate = 5; if (obj_board_controller.kris_object.myhealth < 8) drop_rate += 20; if (obj_board_controller.kris_object.myhealth < 3) drop_rate += 30; if (obj_board_controller.kris_object.myhealth == obj_board_controller.kris_object.maxhealth) drop_rate = 0; if (irandom(100) < drop_rate || (obj_board_controller.kris_object.monstersdefeated >= 6 && drop_rate > 0) || (obj_board_controller.kris_object.monstersdefeated >= 3 && obj_board_controller.kris_object.myhealth < 3 && drop_rate > 0)) { splash.drop_candy = true; obj_board_controller.kris_object.monstersdefeated = 0; } else { obj_board_controller.kris_object.monstersdefeated++; } } } var dontmove = false; if (object_index == obj_board_enemy_lizard && movecon == 3) dontmove = true; if (hurttimer > 6 && dontmove == false) { if (hitdir == 0) { repeat (20) { if (!place_meeting(x, y + 1, obj_board_solid)) y += 1; else break; } } if (hitdir == 1) { repeat (20) { if (!place_meeting(x + 1, y, obj_board_solid)) x += 1; else break; } } if (hitdir == 2) { repeat (20) { if (!place_meeting(x, y - 1, obj_board_solid)) y -= 1; else break; } } if (hitdir == 3) { repeat (20) { if (!place_meeting(x - 1, y, obj_board_solid)) x -= 1; else break; } } } } if (object_index == obj_board_enemy_lizard && movecon == 3) { if (x < 160) x = 160; if (x > 448) x = 448; if (y < 0) y = 0; if (y > 256) y = 256; } ...
();
5
if ((room == room_board_1_sword && obj_mainchara_board.swordlv > 1) || room != room_board_1_sword)
6
{
7
    if (sprite_index == spr_board_flower_alt_closed)
8
        sprite_index = spr_board_flower_alt;
9
    if (sprite_index == spr_board_flower_telegraph)
10
        image_index += (1/3);
11
    else if (sprite_index == spr_board_flower_telegraph_alt)
12
        image_index += (1/3);
13
    else
14
        image_index += (irandom(3) / 20);
15
    image_speed = 0.05;
16
}
17
else
18
{
19
    image_speed = 0;
20
}
21
if (room == room_board_2_sword)
22
{
23
    sword_immunity_lv = 0;
24
    if (obj_mainchara_board.sword == false)
25
        active_hitbox = false;
26
    if (active_hitbox == false)
27
    {
28
        if (obj_mainchara_board.sword == true)
29
        {
30
            active_hitbox = true;
31
            aggressive = true;
32
        }
33
    }
34
}
35
else if (obj_mainchara_board.swordlv == 1)
36
{
37
    active_hitbox = false;
38
}
39
else
40
{
41
    active_hitbox = true;
42
    aggressive = true;
43
}
44
if (obj_board_controller.kris_object.leftdoorway == true && aggressive)
45
{
46
    bubbletimer++;
47
    if (bubbletimer == 16 && (sprite_index == spr_board_flower || sprite_index == spr_board_flower_alt))
48
    {
49
        sprite_index = spr_board_flower_telegraph;
50
        if (room == room_board_1_sword)
51
            sprite_index = spr_board_flower_telegraph_alt;
52
    }
53
    if (bubbletimer == 30 && (sprite_index == spr_board_flower_telegraph || sprite_index == spr_board_flower_telegraph_alt))
54
    {
55
        sprite_index = spr_board_flower;
56
        if (room == room_board_1_sword)
57
            sprite_index = spr_board_flower_alt;
58
    }
59
    if (aggressive == true && hurttimer == 0)
60
    {
61
        if (bubbletimer >= 30 || (sprite_index == spr_board_flower_aqua && bubbletimer >= -10))
62
        {
63
            bubbletimer = choose(-30, -16, -60);
64
            if (sprite_index == spr_board_flower_aqua)
65
                bubbletimer = choose(-30, -20, -40);
66
            if (slow == true)
67
                bubbletimer = choose(-100, -125, -110);
68
            with (instance_create(x + 16, y + 16, obj_board_enemy_pellet))
69
            {
70
                depth = other.depth - 1;
71
                if (other.alt)
72
                    depth = 100000;
73
            }
74
        }
75
    }
76
}