It seems to get confused a lot... tryed no fluid, thing fluid and transitory...
Seems thin fluids are best, but it seems like the base should save it's position and move back if it's pushed too far away...
If you want it to beat spinner you should probably start with v1.1 or 1.0, since the newest version uses ties rather agressively... so you would need some good tie defences and counter moves if you want it to beat the new ones.
I'm not sure if you want it to be an F2 bot, seems that way... but I think it would perform a lot better if it used tie feeding.
The trick is that your small bots are so small they can't drain the alge effectively... but you can make the alge feed you instead :
'Conspec, just so it's all there
def mykey 50
cond
*.robage 0 =
start
123 .mykey store
.mykey .tmemloc store
stop
'Eating alge
cond
*.tmemval *.mykey !=
*.numties 0 >
start
'The usual stuff :
*.trefxpos *.trefypos angle .setaim store
20 .up store
*.tiepres .tienum store
99 .sharenrg store
'The actual trick.
'Push a positive value into the alge's tieval
.tieval .tieloc store
1000 .tieval store
'Shoot -1 or -6 into the alge's tieloc
.tieloc .shoot store
-1 .shootval store
*.trefnrg 1000 <
-6 .shootval store
stop
'Feeding the base
cond
*.tmemval *.mykey =
*.trefbody 1000 >
*.numties 0 >
start
*.tiepres .tienum store
-1 .tieloc store
1000 .tieval store
stop
Or something like that anyway...
It still needs to avoid confusion among the drones though...
And the conspec can be tricked :
cond
*.robage 0 =
start
.tmemloc .tmemloc store
stop
cond
*.tmemloc .tmemloc !=
start
*.tmemval *.tmemloc store
.tmemloc .tmemloc store
stop
cond
*.numties 0 >
*.tmemloc .tmemloc =
*.tmemval 0 >
*.tmemval .tmemloc !=
start
*.tmemval .tmemloc store
stop
And ofcourse you can prevent this by saving you key in several places and checking a random one, so if a bot hasstolen a conspec it will still be visible to most bots... or you can add robage to your key every X cycles, and check to see if *.trefage *.key add is withing the right range (x)... this way a stolen key will expire after x cycles... or you can combine the 2...
The same works for .memloc/.memval ofcourse...