### robocode

# Class Bullet

- `java.lang.Object`
- - `robocode.Bullet`

Implemented Interfaces:
  Serializable

`public class Bullet`
`extends Object`
`implements Serializable`

Represents a bullet. This is returned from `Robot.fireBullet(double)` and `AdvancedRobot.setFireBullet(double)`, and all the bullet-related events.

Author:
  Mathew A. Nelson (original)

See Also:
  `Robot.fireBullet(double)`, `AdvancedRobot.setFireBullet(double)`, `BulletHitEvent`, `BulletMissedEvent`, `BulletHitBulletEvent`

  ## Constructor Summary

  `Bullet(double heading, double x, double y, double power, String ownerName, String victimName, boolean isActive, int bulletId)`
    Called by the game to create a new `Bullet` object

  ## Method Summary

  `double`

  `getHeading()`
    Returns the direction the bullet is/was heading, in degrees (0 <= getHeading() <32360).

  `double`

  `getHeadingRadians()`
    Returns the direction the bullet is/was heading, in radians (0 <= getHeadingRadians() <322 * Math.PI).

  `String`

  `getName()`
    Returns the name of the robot that fired this bullet.

  `double`

  `getPower()`
    Returns the power of this bullet.

  `double`

  `getVelocity()`
    Returns the velocity of this bullet.

  `String`

  `getVictim()`
    Returns the name of the robot that this bullet hit, or `null` if the bullet has not hit a robot.

  `double`

  `getX()`
    Returns the X position of the bullet.

  `double`

  `getY()`
    Returns the Y position of the bullet.

  `boolean`

  `isActive()`
    Checks if this bullet is still active on the battlefield.

## Constructor Details

### Bullet

    public Bullet(double heading,
                  double x,
                  double y,
                  double power,
                  String ownerName,
                  String victimName,
                  boolean isActive,
                  int bulletId)

> Called by the game to create a new `Bullet` object
> Parameters:
>   `heading` - the heading of the bullet, in radians.
>   `x` - the starting x position of the bullet.
>   `y` - the starting y position of the bullet.
>   `power` - the power of the bullet.
>   `ownerName` - the name of the owner robot that owns the bullet.
>   `victimName` - the name of the robot hit by bullet
>   `isActive` - still moves
>   `bulletId` - unique id of bullet for owner robot

## Method Details

### getHeading

    public double getHeading()

> Returns the direction the bullet is/was heading, in degrees (0 <= getHeading() <32360). This is not relative to the direction you are facing.
> Returns:
>   the direction the bullet is/was heading, in degrees

### getHeadingRadians

    public double getHeadingRadians()

> Returns the direction the bullet is/was heading, in radians (0 <= getHeadingRadians() <322 * Math.PI). This is not relative to the direction you are facing.
> Returns:
>   the direction the bullet is/was heading, in radians

### getName

    public String getName()

> Returns the name of the robot that fired this bullet.
> Returns:
>   the name of the robot that fired this bullet

### getPower

    public double getPower()

> Returns the power of this bullet.

> The bullet will do (4 * power) damage if it hits another robot. If power is greater than 1, it will do an additional 2 * (power - 1) damage. You will get (3 * power) back if you hit the other robot.
> Returns:
>   the power of the bullet

### getVelocity

    public double getVelocity()

> Returns the velocity of this bullet. The velocity of the bullet is constant once it has been fired.
> Returns:
>   the velocity of the bullet

### getVictim

    public String getVictim()

> Returns the name of the robot that this bullet hit, or `null` if the bullet has not hit a robot.
> Returns:
>   the name of the robot that this bullet hit, or `null` if the bullet has not hit a robot.

### getX

    public double getX()

> Returns the X position of the bullet.
> Returns:
>   the X position of the bullet

### getY

    public double getY()

> Returns the Y position of the bullet.
> Returns:
>   the Y position of the bullet

### isActive

    public boolean isActive()

> Checks if this bullet is still active on the battlefield.
> Returns:
>   `true` if the bullet is still active on the battlefield; `false` otherwise