I have finally integrated the ability to share the location of enemies to other workers. Did I mention I also made Convergent into an antbot? The only problem I have is that they still want to hang around wherever they found the food.
def ex 55
def ey 54
def circle 53
def qx 56
def qy 57
def queen 50
def worker 51
def queenset 58
def goinghome 59
def nrgratio 100
cond
*.queen 1 =
start
10 dup *.nrgratio sub sgn abs .nrgratio mult store
100 .strbody *.nrg *.body 10 div *.nrgratio ++ mult sub sgn 0 floor mult store
100 .fdbody *.body 10 div *.nrgratio mult *.nrg sub sgn 0 floor mult *.body 100 sub sgn 0 floor mult store
stop
'/*****proper reproduction 1
cond
*.nrg
20000
>
start
50
.repro
store
cond
*.robage 50 >=
*.nrg 1000 >=
*.worker 0 =
start
2 .repro store
1 .queen store
1 .out6 store
1 .fixpos store
stop
cond
*.eye5 50 >
*.in6 1 =
start
1 .queenset store
1 .worker store
*.refxpos .qx store
*.refypos .qy store
1 .out7 store
stop
cond
*.in6 1 =
*.robage 20 >
*.goinghome 0 =
start
1 .dn store
0 .fixpos store
stop
cond
*.goinghome 1 =
*.in7 1 =
start
0 .fixpos store
1 .dx store
stop
cond
*.kills 0 >
*.queenset 1 =
*.worker 1 =
start
1 .goinghome store
0 .circle store
stop
cond
*.goinghome 1 =
*.worker 1 =
start
*.qx *.qy angle .setaim store
1 .up store
stop
cond
*.robage 20 >=
*.circle 0 =
start
*.xpos .ex store
*.ypos .ey store
stop
cond
*.goinghome 1 =
*.robage 15 mod 0 =
*.worker 1 =
*.in6 1 =
start
1 .fixpos store
stop
cond
*.goinghome 1 =
*.refeye *.myeye =
*.in6 1 =
*.worker 1 =
*.hit 1 =
start
-2 .shoot store
stop
cond
*.goinghome 1 =
*.robage 20 mod 0 =
*.worker 1 =
*.in6 1 =
start
0 .fixpos store
stop
cond
*.eye5 50 >
*.refeye *.myeye !=
start
*.refxpos .ex store
*.refypos .ey store
*.refxpos .out1 store
*.refypos .out2 store
1 .out5 store
1 .circle store
stop
cond
*.circle 1 =
*.ex 0 !=
*.ey 0 !=
start
1 .up store
*.ex *.ey angle .setaim store
else
1 .up store
stop
cond
*.queen 1 =
*.circle 1 =
start
0 .circle store
stop
cond
*.eye5 50 >
*.refeye *.myeye =
*.in5 1 =
*.in1 0 !=
*.in2 0 !=
*.worker 1 =
start
*.in1 .ex store
*.in2 .ey store
*.ex .out1 store
*.ey .out2 store
1 .out5 store
1 .circle store
stop
cond
*.eye5 0 =
*.circle 0 =
start
314 rnd .aimdx store
stop
cond
*.eye5 50 >
*.refeye *.myeye !=
start
-1 .shoot store
stop
cond
*.circle 1 =
*.refeye *.myeye =
*.hit 1 =
*.goinghome 0 =
start
628 .aimdx store
stop
cond
*.in6 1 =
*.worker 1 =
start
*.refxpos .qx store
*.refypos .qy store
stop