event_inherited(); var _mainscale = 1.5; switch (phase) { case 0: pattern_time++; var _timebeforeturn = 11; var _timetolaunch = 32; if (pattern_time < (_timebeforeturn + 11)) { image_xscale = _mainscale - lengthdir_x(max(0, (_mainscale / 2) - ((life_time * _mainscale) / 24)), (life_time * 66) % 360); image_yscale = image_xscale; } else if (pattern_time >= (_timetolaunch - 7)) { switch (pattern_time - (_timetolaunch - 7)) { case 0: image_xscale = _mainscale * 1.2; break; case 1: image_xscale = _mainscale * 1.3; break; case 2: image_xscale = _mainscale * 1.38; break; case 3: image_xscale = _mainscale * 1.42; break; default: image_xscale = _mainscale * 1.45; } image_yscale = _mainscale + (_mainscale - image_xscale); } if (pattern_time >= _timebeforeturn) { speed = min(speed, 0.25); if (instance_exists(obj_heart)) { var _dir = image_angle - 90; var _dest = point_direction(x, y, obj_heart.x, obj_heart.y); if (_dir < (_dest - 180)) _dir += 360; if (_dir > (_dest + 180)) _dir -= 360; if (_dir < _dest) _dir = min(_dir + 2, _dest); else if (_dir > _dest) _dir = max(_dest, _dir - 2); _dir = (_dir * 0.8) + (_dest * 0.2); image_angle = _dir + 90; } } if (pattern_time == (_timetolaunch - 1)) { var _trail = instance_create_depth(x, y, 0, obj_pinktrail); _trail.visible = 1; _trail.sprite_index = sprite_index; _trail.image_angle = image_angle; _trail.image_xscale = _mainscale * 0.875; _trail.image_yscale = _mainscale * 1.125; _trail.direction = image_angle - 90; _trail.speed = 5; } if (pattern_time >= _timetolaunch) { direction = image_angle - 90; pattern_time = 0; phase++; } break; case 1: pattern_time++; if (pattern_time == 10) { snd_stop(snd_heartshot_dr_b); snd_play_x(snd_heartshot_dr_b, 0.5, 0.5); } speed += (0.25 + (pattern_time / 32)); switch (pattern_time) { case 1: image_xscale = _mainscale * 1.42; break; case 2: image_xscale = _mainscale * 1.24; break; case 3: image_xscale = _mainscale * 1.16; break; case 4: image_xscale = _mainscale * 1.08; break; case 5: image_xscale = _mainscale * 1.04; break; case 6: image_xscale = _mainscale * 1.01; break; default: image_xscale *= 0.98; } image_yscale = _mainscale + (_mainscale - image_xscale); if ((pattern_time % 2) == 0) { var _trail = instance_create_depth(x, y, 0, obj_pinktrail); _trail.visible = 1; _trail.sprite_index = sprite_index; _trail.image_angle = image_angle; _trail.image_xscale = image_xscale; _trail.image_yscale = image_yscale; } break; } life_time++;