ar nearest_enemy, nearest_cover, nearest_bullet, safe_x, safe_y, sped, dir, bb;

if instance_exists(argument0) && instance_exists(argument1) {

nearest_enemy=instance_nearest(x,y,argument0)

nearest_cover=instance_nearest(x,y,argument1)

nearest_bullet=instance_nearest(x,y,argument2)

dir=point_direction(x,y,nearest_cover.x,nearest_cover.y)

safe_x=nearest_cover.x+lengthdir_x(distance_to_object(nearest_cover)+64,dir)

safe_y=nearest_cover.y+lengthdir_y(distance_to_object(nearest_cover)+64,dir)

sped=(argument4+argument5/(1+(1+distance_to_object(nearest_enemy)/70)))+(distance_to_point(safe_x,safe_y)/70)

can_shoot-=1

if speed>argument5 speed=argument5

if collision_line(x,y,nearest_enemy.x,nearest_enemy.y,argument1,1,1)

mode=1

if !collision_line(x,y,nearest_enemy.x,nearest_enemy.y,argument1,1,1) && distance_to_object(nearest_cover)>10

mode=0

if mode=1{

if argument7=1

point_direction(x,y,nearest_enemy.x,nearest_enemy.y)

if collision_line(x,y,nearest_enemy.x,nearest_enemy.y,argument1,1,1){

if point_distance(nearest_enemy.x,nearest_enemy.y,shootx,shooty)>90

or (x!=sx && y!=sy)

mp_potential_step(nearest_enemy.x,nearest_enemy.y,argument4,0)

if distance_to_object(nearest_cover)>10

mp_potential_step(nearest_cover.x,nearest_cover.y,(argument4/2),0)}

else{

shootx=nearest_enemy.x

shooty=nearest_enemy.y

sx=x

sy=y

speed=0

}

if distance_to_object(nearest_bullet) <> if !collision_line(x,y,nearest_bullet.x,nearest_bullet.y,argument1,1,1)

mp_potential_step(nearest_bullet.x+45,nearest_bullet.y+45,-8,0)}

if can_shoot<1

{if x=sx && y=sy{

bb=instance_create(x,y,argument3)

bb.direction=point_direction(x,y,(shootx-((speed+4)*10)+random((((speed+4*2))*10))),shooty)}

if !collision_line(x,y,nearest_enemy.x,nearest_enemy.y,argument1,1,1)

can_shoot=argument6

else

can_shoot=(argument6*3)}}

if mode=0{

if !collision_line(x,y,nearest_enemy.x,nearest_enemy.y,argument1,1,1)

mp_potential_step(safe_x,safe_y,sped,0)

else

speed=0

if distance_to_object(nearest_enemy)<100{

if can_shoot<1

{if !collision_line(x,y,nearest_enemy.x,nearest_enemy.y,argument1,1,1){{

bb=instance_create(x,y,argument3)

bb.direction=point_direction(x,y,(nearest_enemy.x-(speed*20)+random((speed*40))),nearest_enemy.y)}

if argument7=1

point_direction(x,y,nearest_enemy.x,nearest_enemy.y)}

can_shoot=argument6}

}

else{if argument7=1

point_direction(x,y,safe_x,safe_y)

}}

}

the language is fairly easy but its complicated to put it all together with working objects in some srtrange way. it sounds a bit geeky but its fun until i get bored, then i lay off for a month, then i resume creating games.

Quote of today: Teehee -The sherrrrrifff