//Room creation code
{
instance_create(mouse_x,mouse_y,obj_mouse)
global.money = 0
global.SPD = 0
}
//Script scr_findpath
{
target = argument0
if instance_exists(target)
t = mp_grid_path(my_grid,path,x,y,target.x,target.y,1)
if t && path_get_number(path) > 2
for (n = 1;n < path_get_number(path);n += 1)
{
x1 = path_get_point_x(path,n - 1)
y1 = path_get_point_y(path,n - 1)
x2 = path_get_point_x(path,n)
y2 = path_get_point_y(path,n)
x3 = path_get_point_x(path,n + 1)
y3 = path_get_point_y(path,n + 1)
if (x2 - x1) * (y3 - y2) = (x3 - x2) * (y2 - y1)
{
path_delete_point(path,n)
n -= 1
}
}
node = 1
}
//obj_blueant
//Create event
{
selected = 0
mx = x
my = y
direction = random(360)
my_col = make_color_rgb(255,157,0)
}
//Step Event
{
image_angle = direction
motion_set(point_direction(x,y,mx,my),point_distance(x,y,mx,my) / 5)
if speed > 8 + global.SPD
speed = 8 + global.SPD
}
//Collision with obj_blueant Event
{
x = xprevious
y = yprevious
motion_set(direction,0)
mx = x
my = y
}
//Left Mouse Event
{
if position_meeting(mouse_x,mouse_y,self)
selected = 1
else
selected = 0
}
//Right Mouse Event
{
if selected = 1
{
mx = mouse_x
my = mouse_y
instance_create(mx,my,obj_movetarget)
}
}
//Draw Event
{
draw_set_blend_mode(bm_normal)
draw_sprite_ext(sprite_index,0,x,y,image_xscale,image_yscale,image_angle,c_white,1)
draw_sprite_ext(sprite_index,1,x,y,image_xscale,image_yscale,image_angle,my_col,1)
if selected = 1
{
draw_set_color(c_white)
draw_circle(x,y,34,1)
}
}
//obj_finderant
//Create Event
{
direction = random(360)
image_xscale = .8
image_yscale = .8
my_col = c_blue
Gcell = 34
my_grid = mp_grid_create(0,0,(room_width / Gcell) + 1,(room_height / Gcell) + 1,Gcell,Gcell)
mp_grid_add_instances(my_grid,obj_wall,1)
path = path_add()
np = instance_nearest(instance_nearest(x,y,obj_buildstation).x,instance_nearest(x,y,obj_buildstation).y,obj_food)
scr_findpath(np)
food = 0
}
//Step Event
{
image_angle = direction
if collision_line(x,y,path_get_point_x(path,node),path_get_point_y(path,node),obj_wall,0,1)
scr_findpath(np)
if path_get_number(path) > node + 1 && !collision_line(x,y,path_get_point_x(path,node + 1),path_get_point_y(path,node + 1),obj_wall,0,1)
node += 1
mp_potential_step(path_get_point_x(path,node),path_get_point_y(path,node),8 + global.SPD,0)
if point_distance(x,y,path_get_point_x(path,path_get_number(path) - 1),path_get_point_y(path,path_get_number(path) - 1)) < 16
scr_findpath(np)
if collision_circle(x,y,23,obj_buildstation,1,1)
{
if food = 1 && instance_exists(obj_food)
{
np = instance_nearest(instance_nearest(x,y,obj_buildstation).x,instance_nearest(x,y,obj_buildstation).y,obj_food)
food = 0
scr_findpath(np)
global.money += 100
}
}
}
//Collision with obj_food Event
{
if food = 0 && instance_exists(obj_buildstation)
{
np = instance_nearest(x,y,obj_buildstation)
food = 1
other.image_xscale -= .1
other.image_yscale -= .1
scr_findpath(np)
}
}
//Draw Event
{
draw_set_blend_mode(bm_normal)
draw_sprite_ext(sprite_index,0,x,y,image_xscale,image_yscale,image_angle,c_white,1)
draw_sprite_ext(sprite_index,1,x,y,image_xscale,image_yscale,image_angle,my_col,1)
if keyboard_check(vk_space)
{
mp_grid_draw(my_grid)
draw_set_color(c_blue)
draw_path(path,0,0,1)
draw_sprite_ext(sprite_index,0,x,y,image_xscale,image_yscale,image_angle,c_white,1)
draw_sprite_ext(sprite_index,1,x,y,image_xscale,image_yscale,image_angle,my_col,1)
}
}
//obj_buildstation
//Create Event
{
buiant = -1
USPD = -1
posiant = 90
working = 0
image_single = image_number - 1
selected = 0
}
//Step Event
{
if USPD != -1
USPD += 1
if USPD = 800
{
USPD = -1
global.SPD += 2
working = 0
}
if buiant != -1
buiant += 10
if buiant = 1200
{
buiant = -1
alarm[0] = 1
working = 0
}
}
//Alarm 0 Event
{
repeat(8)
{
if place_empty(x + lengthdir_x(100,posiant),y + lengthdir_y(100,posiant))
{
instance_create(x + lengthdir_x(100,posiant),y + lengthdir_y(100,posiant),obj_blueant)
posiant = 90
exit
}
else
posiant += 45
}
}
//Left Mouse Event
{
if position_meeting(mouse_x,mouse_y,self)
{
selected = 1
if working = 0
{
if global.SPD < 6 && obj_buildstation.USPD = -1
instance_create(x - 48,y + 55,obj_upgspd)
instance_create(x,y + 55,obj_Bant)
instance_create(x + 48,y + 55,obj_Bstation)
}
}
else
{
if selected = 1
{
with(obj_upgspd) instance_destroy()
with(obj_Bant) instance_destroy()
with(obj_Bstation) instance_destroy()
selected = 0
}
}
}
//Draw Event
{
draw_sprite(sprite_index,image_index,x,y)
if buiant != -1
{
draw_set_color(c_white)
draw_set_font(Arial_12B)
draw_set_halign(fa_center)
draw_text(x,y + 40,'Building ant :' + string(floor(buiant / 12)) + string('%:'))
}
if USPD != -1
{
draw_set_color(c_white)
draw_set_font(Arial_12B)
draw_set_halign(fa_center)
draw_text(x,y + 40,'Upgrading speed :' + string(floor(USPD / 8)) + string('%:'))
}
}
//obj_buildstationUC
//Create Event
{
UC = 0
image_single = 0
}
//Step Event
{
UC += 10
image_single = floor((UC / 40) / 8)
if UC = 2000
{
instance_destroy()
instance_create(x,y,obj_buildstation)
}
}
//Draw Event
{
draw_set_font(Arial_12B)
draw_set_color(c_white)
draw_set_halign(fa_center)
draw_text(x,y + 40,'Constructing :' + string(round(UC / 20)) + string('%:'))
draw_sprite_ext(sprite_index,image_index,x,y,1,1,0,c_white,1)
}
//obj_upgspd
//Left Mouse Event
{
with(all)
{
if selected = 1 && object_index = obj_buildstation
{
USPD = 0
working = 1
}
}
}
//obj_Bant
//Left Mouse Event
{
with(all)
{
if object_index = obj_buildstation
{
if selected = 1
{
buiant = 0
working = 1
}
}
}
}
//Draw Event
{
draw_sprite(sprite_index,image_index,x,y)
if position_meeting(mouse_x,mouse_y,self)
{
draw_set_color(c_white)
draw_set_halign(fa_center)
draw_set_font(Arial_12B)
draw_text(x,y + 24,'Build Finder Ant')
if global.money < 300
draw_set_color(c_red)
draw_text(x,y + 40,'$300')
}
}
//obj_buildstation
//Left Mouse Event
{
instance_create(mouse_x,mouse_y,obj_buildready)
}
//obj_mouse
//Step Event
{
x = mouse_x
y = mouse_y
}
//Draw Event
{
draw_sprite(sprite_index,image_index,x,y)
draw_set_blend_mode(bm_add)
draw_sprite(spr_mouseglow,1,x,y)
draw_set_blend_mode(bm_normal)
draw_set_color(c_black)
draw_set_font(Arial_12B)
draw_set_halign(fa_left)
draw_text(view_xview[0] + 5,view_yview[0] + 5,'Money: ' + string(global.money))
}
//obj_movetarget
//Create Event
{
image_xscale = 0.7
image_yscale = 0.7
phase = 1
}
//Step Event
{
if phase = 1
{
image_xscale += 0.05
image_yscale += 0.05
}
if image_xscale = 1
phase = 2
if phase = 2
{
image_xscale -= 0.08
image_yscale -= 0.08
image_alpha -= 0.08
image_angle += 15
}
if image_alpha <= 0
instance_destroy()
}
//obj_blockbuild
//Create Event
{
solid = 1
}
//obj_buildready
//Create Event
{
image_single = 1
}
//Step Event
{
if mouse_x > 40 && mouse_x < room_width - 40
x = mouse_x
if mouse_y > 40 && mouse_y < room_height - 40
y = mouse_y
move_snap(34,34)
if collision_rectangle(x - 50,y - 50,x + 50,y + 50,obj_blockbuild,1,0)
image_single = 1
else
image_single = 0
}
//Left Mouse Event
{
if image_single = 0
{
instance_create(x,y,obj_buildstationUC)
instance_destroy()
}
}
//Right Mouse Event
{
instance_destroy()
}
//Draw Event
{
draw_sprite(sprite_index,image_index,x,y)
draw_set_color(c_white)
draw_rectangle(x - 50,y - 50,x + 50,y + 50,1)
}
//obj_wall
//Create Event
{
solid = 1
}
//obj_food
//Step Event
{
if image_xscale <= .5
instance_destroy()
}