Package robocode

# Class Bullet

java.lang.Object
robocode.Bullet

All 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), Flemming N. Larsen (contributor)
See Also:
  - `Robot.fireBullet(double)`
  - `AdvancedRobot.setFireBullet(double)`
  - `BulletHitEvent`
  - `BulletMissedEvent`
  - `BulletHitBulletEvent`
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`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

Modifier and Type
Method
Description
`boolean`
`equals(Object obj)`
`double`
`getHeading()`
Returns the direction the bullet is/was heading, in degrees (0 <= getHeading() < 360).
`double`
`getHeadingRadians()`
Returns the direction the bullet is/was heading, in radians (0 <= getHeadingRadians() < 2 * 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.
`int`
`hashCode()`
`boolean`
`isActive()`
Checks if this bullet is still active on the battlefield.

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

## 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 the bullet.
  `isActive` - `true` if the bullet still moves; `false` otherwise.
  `bulletId` - unique id of bullet for owner robot.

## Method Details

### equals

public boolean equals(Object obj)

Overrides:
  `equals` in class `Object`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`

### getHeading

public double getHeading()
Returns the direction the bullet is/was heading, in degrees (0 <= getHeading() < 360). 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() < 2 * 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