LazyLib

org.lazywizard.lazylib.combat
Class WeaponUtils

Object
  extended by WeaponUtils

public class WeaponUtils
extends Object

Contains methods that deal with weapons and weapon arcs.

Since:
1.0
Author:
LazyWizard

Method Summary
static void aimTowardsPoint(WeaponAPI weapon, Vector2f point, float time)
          Manually adjusts a weapon's aim towards a point.
static float calculateActualDamage(float baseDamage, WeaponAPI weapon)
          Calculates the damage done by a weapon after MutableShipStats are applied.
static float calculateActualDamage(float baseDamage, WeaponAPI weapon, ShipAPI target, DefenseType defense)
          Calculates the damage done by a weapon to a ship after all MutableShipStats on both sides are applied.
static float calculateDamagePerBurst(WeaponAPI weapon)
          Calculates the damage done per burst by a weapon after MutableShipStats are applied.
static float calculateDamagePerBurst(WeaponAPI weapon, ShipAPI target, DefenseType defense)
          Calculates the damage done per burst by a weapon to a ship after all MutableShipStats on both sides are applied.
static float calculateDamagePerSecond(WeaponAPI weapon)
          Calculates the damage done per second by a weapon after MutableShipStats are applied.
static float calculateDamagePerSecond(WeaponAPI weapon, ShipAPI target, DefenseType defense)
          Calculates the damage done per second by a weapon to a ship after all MutableShipStats on both sides are applied.
static float calculateDamagePerShot(WeaponAPI weapon)
          Calculates the damage done per shot by a weapon after MutableShipStats are applied.
static float calculateDamagePerShot(WeaponAPI weapon, ShipAPI target, DefenseType defense)
          Calculates the damage done per shot by a weapon to a ship after all MutableShipStats on both sides are applied.
static List<ShipAPI> getEnemiesInArc(WeaponAPI weapon)
          Finds all enemy ships within range of a WeaponAPI.
static List<ShipAPI> getEnemiesInArc(WeaponAPI weapon, boolean sortByDistance)
          Finds all enemy ships within range of a WeaponAPI.
static List<MissileAPI> getEnemyMissilesInArc(WeaponAPI weapon)
          Finds all enemy missiles within range of a WeaponAPI.
static List<MissileAPI> getEnemyMissilesInArc(WeaponAPI weapon, boolean sortByDistance)
          Finds all enemy missiles within range of a WeaponAPI.
static ShipAPI getNearestEnemyInArc(WeaponAPI weapon)
          Find the closest enemy in range of a WeaponAPI.
static MissileAPI getNearestEnemyMissileInArc(WeaponAPI weapon)
          Find the closest enemy missile in range of a WeaponAPI.
static float getTimeToAim(WeaponAPI weapon, Vector2f aimAt)
          Calculate how long it would take to turn a WeaponAPI to aim at a location.
static boolean isWithinArc(CombatEntityAPI entity, WeaponAPI weapon)
          Checks if a CombatEntityAPI is within the arc and range of a WeaponAPI.
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

calculateActualDamage

public static float calculateActualDamage(float baseDamage,
                                          WeaponAPI weapon)
Calculates the damage done by a weapon after MutableShipStats are applied.

Parameters:
baseDamage - The base damage of this weapon.
weapon - The WeaponAPI to check for bonuses on.
Returns:
The damage done by weapon after bonuses are applied.
Since:
1.0

calculateActualDamage

public static float calculateActualDamage(float baseDamage,
                                          WeaponAPI weapon,
                                          ShipAPI target,
                                          DefenseType defense)
Calculates the damage done by a weapon to a ship after all MutableShipStats on both sides are applied.

Parameters:
baseDamage - The base damage of this weapon.
weapon - The WeaponAPI to check for bonuses on.
target - The ship weapon is aiming at.
defense - The defense of target aimed at (used for calculating penalties).
Returns:
The damage dealt by weapon after all bonuses and penalties are applied.
Since:
1.5

calculateDamagePerShot

public static float calculateDamagePerShot(WeaponAPI weapon)
Calculates the damage done per shot by a weapon after MutableShipStats are applied.

Parameters:
weapon - The weapon to check.
Returns:
The actual damage done by weapon per shot, after bonuses.
Since:
1.0

calculateDamagePerShot

public static float calculateDamagePerShot(WeaponAPI weapon,
                                           ShipAPI target,
                                           DefenseType defense)
Calculates the damage done per shot by a weapon to a ship after all MutableShipStats on both sides are applied.

Parameters:
weapon - The weapon to check.
target - The ship weapon is aiming at.
defense - The defense of target aimed at (used for calculating penalties).
Returns:
The damage dealt by weapon per shot after all bonuses and penalties are applied.
Since:
1.5

calculateDamagePerSecond

public static float calculateDamagePerSecond(WeaponAPI weapon)
Calculates the damage done per second by a weapon after MutableShipStats are applied.

Parameters:
weapon - The weapon to check.
Returns:
The actual damage done by weapon per second, after bonuses.
Since:
1.0

calculateDamagePerSecond

public static float calculateDamagePerSecond(WeaponAPI weapon,
                                             ShipAPI target,
                                             DefenseType defense)
Calculates the damage done per second by a weapon to a ship after all MutableShipStats on both sides are applied.

Parameters:
weapon - The weapon to check.
target - The ship weapon is aiming at.
defense - The defense of target aimed at (used for calculating penalties).
Returns:
The damage dealt by weapon per second after all bonuses and penalties are applied.
Since:
1.5

calculateDamagePerBurst

public static float calculateDamagePerBurst(WeaponAPI weapon)
Calculates the damage done per burst by a weapon after MutableShipStats are applied.

Parameters:
weapon - The weapon to check.
Returns:
The actual damage done by weapon per burst, after bonuses.
Since:
1.0

calculateDamagePerBurst

public static float calculateDamagePerBurst(WeaponAPI weapon,
                                            ShipAPI target,
                                            DefenseType defense)
Calculates the damage done per burst by a weapon to a ship after all MutableShipStats on both sides are applied.

Parameters:
weapon - The weapon to check.
target - The ship weapon is aiming at.
defense - The defense of target aimed at (used for calculating penalties).
Returns:
The damage dealt by weapon per burst after all bonuses and penalties are applied.
Since:
1.5

isWithinArc

public static boolean isWithinArc(CombatEntityAPI entity,
                                  WeaponAPI weapon)
Checks if a CombatEntityAPI is within the arc and range of a WeaponAPI.

Parameters:
entity - The CombatEntityAPI to check if weapon is aimed at.
weapon - The WeaponAPI to test against.
Returns:
true if in arc and in range, false otherwise.
Since:
1.0

getTimeToAim

public static float getTimeToAim(WeaponAPI weapon,
                                 Vector2f aimAt)
Calculate how long it would take to turn a WeaponAPI to aim at a location.

Parameters:
weapon - The WeaponAPI to turn.
aimAt - The Vector2f to aim at.
Returns:
The time in seconds it would take to aim weapon.
Since:
1.0

getNearestEnemyInArc

public static ShipAPI getNearestEnemyInArc(WeaponAPI weapon)
Find the closest enemy in range of a WeaponAPI.

Parameters:
weapon - The WeaponAPI to search around.
Returns:
The enemy ShipAPI closest to weapon, or null if none are in range.
Since:
1.4

getEnemiesInArc

public static List<ShipAPI> getEnemiesInArc(WeaponAPI weapon,
                                            boolean sortByDistance)
Finds all enemy ships within range of a WeaponAPI.

Parameters:
weapon - The weapon to detect enemies in range of.
sortByDistance - Whether to sort the results by distance from weapon.
Returns:
A List containing all enemy ships within range.
Since:
1.4

getEnemiesInArc

public static List<ShipAPI> getEnemiesInArc(WeaponAPI weapon)
Finds all enemy ships within range of a WeaponAPI.

Parameters:
weapon - The weapon to detect enemies in range of.
Returns:
A List containing all enemy ships within range.
Since:
1.4
See Also:
getEnemiesInArc(com.fs.starfarer.api.combat.WeaponAPI, boolean)

getNearestEnemyMissileInArc

public static MissileAPI getNearestEnemyMissileInArc(WeaponAPI weapon)
Find the closest enemy missile in range of a WeaponAPI.

Parameters:
weapon - The WeaponAPI to search around.
Returns:
The enemy MissileAPI closest to weapon, or null if none are in range.
Since:
1.4

getEnemyMissilesInArc

public static List<MissileAPI> getEnemyMissilesInArc(WeaponAPI weapon,
                                                     boolean sortByDistance)
Finds all enemy missiles within range of a WeaponAPI.

Parameters:
weapon - The weapon to detect enemies in range of.
sortByDistance - Whether to sort the results by distance from weapon.
Returns:
A List containing all enemy missiles within range.
Since:
1.4

getEnemyMissilesInArc

public static List<MissileAPI> getEnemyMissilesInArc(WeaponAPI weapon)
Finds all enemy missiles within range of a WeaponAPI.

Parameters:
weapon - The weapon to detect enemies in range of.
Returns:
A List containing all enemy missiles within range.
Since:
1.4
See Also:
getEnemyMissilesInArc(com.fs.starfarer.api.combat.WeaponAPI, boolean)

aimTowardsPoint

public static void aimTowardsPoint(WeaponAPI weapon,
                                   Vector2f point,
                                   float time)
Manually adjusts a weapon's aim towards a point.

Parameters:
weapon - The weapon to aim.
point - The point this weapon should try to aim at.
time - How long since the last frame (for turn rate calculations).
Since:
1.4

LazyLib