### robocode

# Class BattleRules

- `java.lang.Object`
- - `robocode.BattleRules`

Implemented Interfaces:
  Serializable

`public final class BattleRules`
`extends Object`
`implements Serializable`

Contains the battle rules returned by `BattleStartedEvent.getBattleRules()` when a battle is started and `BattleCompletedEvent.getBattleRules()` when a battle is completed.

Author:
  Pavel Savara (original)

Since:
  1.6.2

See Also:
  `BattleStartedEvent`, `BattleCompletedEvent`, Serialized Form

  ## Constructor Summary

  `BattleRules(robocode.battle.BattleProperties battleProperties)`
    Do not call this constructor! This constructor is intended for the game alone.

  ## Method Summary

  `int`

  `getBattlefieldHeight()`
    Returns the battlefield height.

  `int`

  `getBattlefieldWidth()`
    Returns the battlefield width.

  `double`

  `getGunCoolingRate()`
    Returns the rate at which the gun will cool down, i.e.

  `long`

  `getInactivityTime()`
    Returns the allowed inactivity time, where the robot is not taking any action, before will begin to be zapped.

  `int`

  `getNumRounds()`
    Returns the number of rounds.

## Constructor Details

### BattleRules

    public BattleRules(robocode.battle.BattleProperties battleProperties)

> Do not call this constructor! This constructor is intended for the game alone.

> Creates a new BattleRules based on a BattleProperties instance.
> Parameters:
>   `battleProperties` - the battle properties that this object will copy from.

## Method Details

### getBattlefieldHeight

    public int getBattlefieldHeight()

> Returns the battlefield height.
> Returns:
>   the battlefield height.

### getBattlefieldWidth

    public int getBattlefieldWidth()

> Returns the battlefield width.
> Returns:
>   the battlefield width.

### getGunCoolingRate

    public double getGunCoolingRate()

> Returns the rate at which the gun will cool down, i.e. the amount of heat the gun heat will drop per turn.

> The gun cooling rate is default 0.1 per turn, but can be changed by the battle setup. So don't count on the cooling rate being 0.1!
> Returns:
>   the gun cooling rate.
> See Also:
>   `Robot.getGunHeat()`, `Robot.fire(double)`, `Robot.fireBullet(double)`

### getInactivityTime

    public long getInactivityTime()

> Returns the allowed inactivity time, where the robot is not taking any action, before will begin to be zapped. The inactivity time is measured in turns, and is the allowed time that a robot is allowed to omit taking action before being punished by the game by zapping.

> When a robot is zapped by the game, it will loose 0.1 energy points per turn. Eventually the robot will be killed by zapping until the robot takes action. When the robot takes action, the inactivity time counter is reset.

> The allowed inactivity time is per default 450 turns, but can be changed by the battle setup. So don't count on the inactivity time being 450 turns!
> Returns:
>   the allowed inactivity time.
> See Also:
>   `Robot.doNothing()`, `AdvancedRobot.execute()`

### getNumRounds

    public int getNumRounds()

> Returns the number of rounds.
> Returns:
>   the number of rounds.