1package com.fs.starfarer.api.impl.campaign.terrain;
5import org.lwjgl.util.vector.Vector2f;
7import com.fs.starfarer.api.EveryFrameScript;
8import com.fs.starfarer.api.Global;
9import com.fs.starfarer.api.campaign.AsteroidAPI;
10import com.fs.starfarer.api.campaign.CampaignFleetAPI;
11import com.fs.starfarer.api.fleet.FleetMemberAPI;
12import com.fs.starfarer.api.util.Misc;
13import com.fs.starfarer.api.util.WeightedRandomPicker;
25 protected Vector2f
dV;
34 float speed = v.length();
40 float arc = 120f - 60f * mult;
42 angle += (float) Math.random() * arc - arc/2f;
54 switch (member.getHullSpec().getHullSize()) {
55 case CAPITAL_SHIP: w = 20f;
break;
56 case CRUISER: w = 10f;
break;
57 case DESTROYER: w = 5f;
break;
58 case FRIGATE: w = 1f;
break;
60 targets.
add(member, w);
66 if (damageMult < 1) damageMult = 1;
67 Misc.
applyDamage(member,
null, damageMult,
true,
"asteroid_impact",
"Asteroid impact",
68 true,
null, member.
getShipName() +
" suffers damage from an asteroid impact");
84 float volumeMult = 0.75f;
85 volumeMult *= 0.5f + 0.5f * mult;
127 float size = 10f + (float) Math.random() * 6f;
130 asteroid.
setFacing((
float) Math.random() * 360f);
132 av.scale(
fleet.
getVelocity().length() + (20f + 20f * (
float) Math.random()) * mult);
141 asteroid.
setRotation(sign * (50f + 50f * (
float) Math.random()));
147 iv =
new Vector2f(iv);
149 float glowSize = 100f + 100f * mult + 50f * (float) Math.random();
150 Color color =
new Color(255, 165, 100, 255);
156 float impact = speed * 1f * (0.5f + mult * 0.5f);
static SoundPlayerAPI getSoundPlayer()
static SectorAPI getSector()
static float DURATION_SECONDS
void advance(float amount)
AsteroidImpact(CampaignFleetAPI fleet, boolean dealDamage)
static float STORM_STRIKE_SOUND_RANGE
static Vector2f getUnitVectorAtDegreeAngle(float degrees)
static Color getNegativeHighlightColor()
static void fadeInOutAndExpire(final SectorEntityToken entity, final float in, final float dur, final float out)
static int getGoSlowBurnLevel(CampaignFleetAPI fleet)
static final Vector2f ZERO
static void addHitGlow(LocationAPI location, Vector2f loc, Vector2f vel, float size, Color color)
static float getDistance(SectorEntityToken from, SectorEntityToken to)
static void applyDamage(FleetMemberAPI member, Random random, FleetMemberDamageLevel level, boolean withCRDamage, String crDamageId, String crDamageReason, boolean withMessage, TextPanelAPI textPanel, String messageText)
static float getFleetRadiusTerrainEffectMult(CampaignFleetAPI fleet)
static boolean isSlowMoving(CampaignFleetAPI fleet)
static float getAngleInDegrees(Vector2f v)
SoundAPI playSound(String id, float pitch, float volume, Vector2f loc, Vector2f vel)
void setRotation(float rotation)
LocationAPI getContainingLocation()
void setVelocity(float x, float y)
FleetDataAPI getFleetData()
boolean isInCurrentLocation()
void addMessage(String text)
List< FleetMemberAPI > getMembersListCopy()
AsteroidAPI addAsteroid(float radius)
CampaignFleetAPI getPlayerFleet()
CampaignUIAPI getCampaignUI()
void setLocation(float x, float y)
void setFacing(float facing)
void setOrbit(OrbitAPI orbit)