Rules changes after Early Bird Showdown

The new rules, should you choose to implement them, are as follows:

Introducing the new Agent worm!
Every team has one agent worm amongst their ranks. The Agent worm has a couple of bananas up his sleeve. He can lob these bananas over any blocks for a limited range around him. When a banana hits the target block, it splits open and explodes, dealing damage to an area around where it landed. And when he runs out he can always rely on his trusty side-arm.

Also introducing the Select command!
This is to help your worms out of some tough spots, you have the ability to override the currently selected worm. Use this wisely since you can only use this a limited amount of times.

We will be balancing the config values with the new rules included over the coming week and will announce the final config values for the next tournament Friday 14 June 2019. Please help us out by letting us know if you find any bugs or overpowered abilities. You wouldn’t want your opponent to use these abilities against you now, would you?

Good luck on improving your bots and we hope you enjoy these additions.

See the new starter pack here


Banana bomb seems balanced, I was worried for a bit as an infinite barrage of these things would have been an extremely OP strategy, especially in any 1 V 1 setting… I would have been forced to rewrite everything… I feel 3 is fair…

As for the selection tokens, That’s a neat addition. Already know when I’m using those…

I feel the additions are well balanced. will require some thought too. If I do find anything , I will post here…

1 Like

Looking at game-config.json I notice that the friendlyFire field has been removed. Is that on purpose?

I also notice that the attack score was reduced from 20 to 2. Looking at the replays it seems that attacking isn’t that prevalent and this change would make attacking happen even less. I would suggest leaving it at 20.

I see the banana bomb count is not given for the opponent in state.json. Is that on purpose?

The rules state that the banana bomb does some splash damage but the exact amount is not specified in the rules or config files. How is the splash damage calculated? How is the score calculated given a specific amount of splash damage?

1 Like

Hi @Leon

Yes, the score.friendlyFire field has been removed in favor of using the negative value of the attack field.
Looking at the readme you will find that:


  • Damaging any worm’s health to zero or less gives 40 points
  • Damaging any worm gives points equal to damage dealt multiplied by 2
  • Any of the above will reduce your points if they have been done to your own worm

So attacking score is now based upon the amount of damage dealt, multiplied by the score.attack field.

Not showing the banana bomb count for the opponent is merely consistent with how the rest of the weapons have been handled.

The exact splash damage on worms can be found in the game-engine source code line 89

val specialDamageRadius = damageRadius + 1
val damageTier = damage * ((specialDamageRadius - distance) / specialDamageRadius)
val damageToTarget = damageTier.roundToInt()

The splash damage value simply follows a linear gradient, that is extended by +1 cells so that the max range cells have a non-zero damage value.

A representation of this would currently look like this:



Suppose I have all three of my worms and it’s currently worm 1 to play. If I select worm 3, will the next worm be worm 2?

Hi @mo_x90_oly

From the game rules:

in the next round your selected worm index will start cycling from this selected worm

So if you select worm 3 in the current round, the active worm in the next round will be worm 1 again.

1 Like

Hi @Edwin

In both the develop and master branches, it seems that the banana command isn’t implemented yet. Is this correct?

‘Unknown command banana’

I don’t see the banana command support:

return when (splitCommand[0].toLowerCase()) {
“move” -> teleportCommand(splitCommand)
“dig” -> digCommand(splitCommand)
“shoot” -> shootCommand(splitCommand)
“select” -> selectCommand(splitCommand)
“nothing” -> DoNothingCommand(config)
else -> InvalidCommand(“Unknown command ${splitCommand[0]}”)


Hi @marvijo

The command parsing that is missing for the banana command is definitely an oversight on our side. We are working on it.

Hi @marvijo

I opened a pull request to fix this and it should be sorted out soon

Thanks for informing us of this :blush:


This has been fixed :blush:


Thank you team for the fix!


Hi @pierre.roux,
I’ve been playing around with the banana command and from my side, it seem as if both players are sharing the bomb count? When my bot fired a bomb the bomb count decreased for the reference bot too. Is this the desired behavior?


I also noticed that if a command has a “select” statement but the “RemainingWormSelections” is zero, the action part of the command is then carried out by the original current worm instead of being registered as an invalid command i.e. if worm one is the current worm and the command given is “Select 2;shoot E”, worm one shoots east.

Yes if the select part of a command fails, the command will continue on whichever worm was selected by default.

As for the bomb count, no that is not expected. Each Agent worm has their own independent inventory. We will investigate that and supply a fix soon

1 Like

Hi @Theomatikalli

We have pinned the banana issue down and the fix is currently in review. Thank you for the report! :slight_smile:


Nice, thanks for the feedback :yum:


The description for Agent work is: When a banana hits the target block, it splits open and explodes, dealing damage to an area around where it landed. And when he runs out he can always rely on his trusty side-arm.

But from the demo, it can shoot even before throwing it’s last banana bomb.

This topic was automatically closed after 29 hours. New replies are no longer allowed.