We already used ScannedBotEvent, HitByBulletEvent, and HitWallEvent. Here’s a short guide to the rest, each with a tiny tactic.
HitBotEvent
When you bump into another bot.
Key methods
getVictimId()getEnergy()isRammed()
@Override
public void onHitBot(HitBotEvent e) {
if (e.isRammed()) back(20);
turnRight(30);
}BotDeathEvent
Another bot has died.
Key methods
getVictimId()
@Override
public void onBotDeath(BotDeathEvent e) {
System.out.println("Bot " + e.getVictimId() + " is out!");
}DeathEvent
Your bot has been destroyed.
@Override
public void onDeath(DeathEvent e) {
System.out.println("We lost the battle.");
}WonRoundEvent
You win the round.
@Override
public void onWonRound(WonRoundEvent e) {
System.out.println("Round victory!");
}BulletFiredEvent
Your bot fires a bullet.
Key methods
getBullet()
@Override
public void onBulletFired(BulletFiredEvent e) {
System.out.println("Fired bullet " + e.getBullet().getBulletId());
}BulletHitBotEvent
Your bullet hits another bot.
Key methods
getVictimId()getDamage()getEnergy()
@Override
public void onBulletHitBot(BulletHitBotEvent e) {
System.out.println("Damaged bot " + e.getVictimId() + " for " + e.getDamage());
}BulletHitBulletEvent
Your bullet collides with another bullet.
Key methods
getBullet()getHitBullet()
@Override
public void onBulletHitBullet(BulletHitBulletEvent e) {
System.out.println("Bullet collision! Boom!");
}BulletHitWallEvent
Your bullet smacks a wall.
Key methods
getBullet()
@Override
public void onBulletHitWall(BulletHitWallEvent e) {
System.out.println("Bullet " + e.getBullet().getBulletId() + " hit a wall");
}TickEvent
Runs every turn.
Key methods
getBotState()getBulletStates()getEvents()
@Override
public void onTick(TickEvent e) {
BotState me = e.getBotState();
System.out.println("x=" + me.getX() + " y=" + me.getY());
for (BotEvent ev : e.getEvents()) handle(ev);
}RoundStartedEvent
A new round begins.
Key methods
getRoundNumber()
@Override
public void onRoundStarted(RoundStartedEvent e) {
System.out.println("Round " + e.getRoundNumber() + " start!");
}RoundEndedEvent
A round wraps up.
Key methods
getRoundNumber()getTurnNumber()getResults()
@Override
public void onRoundEnded(RoundEndedEvent e) {
System.out.println("Round " + e.getRoundNumber() + " score: " + e.getResults().getTotalScore());
}GameStartedEvent
The game starts.
Key methods
getMyId()getInitialPosition()getGameSetup()
@Override
public void onGameStarted(GameStartedEvent e) {
System.out.println("My id is " + e.getMyId());
}GameEndedEvent
The game is over.
Key methods
getNumberOfRounds()getResults()
@Override
public void onGameEnded(GameEndedEvent e) {
System.out.println("Final score: " + e.getResults().getTotalScore());
}SkippedTurnEvent
Your bot was too slow and missed a turn.
@Override
public void onSkippedTurn(SkippedTurnEvent e) {
System.out.println("Skipped turn " + e.getTurnNumber());
}Use these events as you grow your bot’s brain!