Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_zapper_laser_manager_Create_0

(view raw script w/o annotations or w/e)
1
top = (obj_growtangle.y - (obj_growtangle.sprite_height / 2)) + 4;
2
bound = (obj_growtangle.y + (obj_growtangle.sprite_height / 2)) - 4;
3
diff = 0;
4
reflect_angle = 0;
5
segment_max = 12;
6
segment = segment_max;
7
scale_goal = 1;
8
sameattacker = 0;
9
sameattack = 1;
10
skipme = false;
11
nuisance = false;
12
alarm[0]
 = 30;
gml_Object_obj_zapper_laser_manager_Alarm_0.gml

if (segment == segment_max) { choice = ds_list_create(); if ((y + 22) > top) ds_list_add(choice, -1); if ((y + 22) < bound) ds_list_add(choice, 1); ds_list_shuffle(choice); direct = ds_list_find_value(choice, 0); ds_list_destroy(choice); var inter; if (direct == 1) inter = bound; else inter = top; if (i_ex(obj_heart)) { diff = inter - (obj_heart.y + 10); reflect_angle = point_direction(x + 68, y + 22, obj_heart.x + 10, inter + diff); } var force_aim = 0; if (i_ex(obj_zapper_laser_linedraw)) force_aim = obj_zapper_laser_linedraw.force_aim_counter; aim_true = false; if (!(random(99) < (force_aim * 25)) && abs(180 - reflect_angle) < 65) { if (!irandom(3)) reflect_angle += irandom_range(-8, 8); var intersection =
scr_lines_intersect(x + 68, y + 22, x + 68 + lengthdir_x(480, reflect_angle), y + 22 + lengthdir_y(480, reflect_angle), obj_growtangle.x - 165, inter, obj_growtangle.x + 165, inter, true);
if (intersection <= 0 || intersection > 1) { if (direct == 1) inter = top; else inter = bound; if (i_ex(obj_heart)) { diff = inter - (obj_heart.y + 10); reflect_angle = point_direction(x + 68, y + 22, obj_heart.x + 10, inter + diff); } } if (abs(180 - reflect_angle) < 65) { with (obj_zapper_laser_linedraw) force_aim_counter++; } else { aim_true = true; } } else { aim_true = true; } if (aim_true) { reflect_angle =
scr_at_player(x + 68, y + 22);
with (obj_zapper_laser_linedraw) force_aim_counter = 0; if (irandom(2)) { var imprecision = random_range(-22.5, 22.5); for (angl = 3; angl > 0; angl--) { var imprecision_offset = imprecision * (angl / 3); var imprecise_angle = reflect_angle + imprecision_offset; if (collision_line(x + 68, y + 22, x + 68 + lengthdir_x(480, imprecise_angle), y + 22 + lengthdir_y(480, imprecise_angle), obj_growtangle, false, true)) { if (abs(180 - imprecise_angle) > 65) { } else { reflect_angle = imprecise_angle; break; } } } } } if (nuisance) reflect_angle = clamp(reflect_angle, 125, 235); snd_play_x(snd_heartshot_dr_b, 1.4, 0.5); } with (
scr_fire_bullet(x + 68, y + 22, obj_bullet_zapper_laser, reflect_angle, 11 - (1 * nuisance * sameattack) - (1 * sameattack), spr_zapper_laser))
{ damage = other.damage; target = other.target; depth = (depth - 4) + other.creator; image_angle = direction; image_yscale_goal = other.scale_goal; if (other.segment == other.segment_max) first = true; if ((other.segment % 2) == 0 && other.segment > 3) do_bounce_image = true; if (i_ex(obj_volumeup)) { image_yscale *= 1.5; image_yscale_goal *= 1.5; grazepoints += 1; ...
13
alarm[1]
 = 14;
gml_Object_obj_zapper_laser_manager_Alarm_1.gml

with (instance_create_depth(x + 72, y + 20, depth - 1, obj_regularbullet)) { active = false; sprite_index = spr_lens_flash; image_speed = 0.5; damage = other.damage;
scr_script_delayed(instance_destroy, 16);
var flash = snd_play(snd_spell_cure_slight_smaller); audio_sound_pitch(flash, 1.25); }
14
image_speed = 0;
15
image_xscale = 2;
16
image_yscale = 2;
17
xoff = -18;
18
yoff = -28;
19
choice = 0;
20
direct = 0;