Remember that reproducing based on nrg will slowly reduce the size of your bots, esspecialy if you don't increase the body size at any point.
And small bots have weaker shots with a shorter range, so eventualy they'll barely be able to gain enough energy to make up for the cost of the shots.
So for instance this last gene :
cond
*.nrg 1000 >
start
20 .repro store
stop
Would probably be better off with something like this :
cond
*.nrg 1500 >
start
100 .strbody store
*.body 500 >
20 .repro store
stop
With this you increase body when you have enough energy, then inside the gene you have a second condition, so if you're big enough to grow, but your body is also bigger than 500 you'll reproduce aswell. (If your body is below 500 you will only grow)
Inline conditions can be a litle confusing till you know how they work, but they can actualy often make it a lot easyer to get the behavior you want without having many genes with more conditions for each one. (I'll consider writing a guide for inline conditions for the Wiki when I have 2 syndays in a week, or maybe someone else will do it)