Starsector API
Loading...
Searching...
No Matches
ChargerGhost.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.ghosts.types;
2
3import java.util.Random;
4
5import com.fs.starfarer.api.Global;
6import com.fs.starfarer.api.campaign.CampaignFleetAPI;
7import com.fs.starfarer.api.impl.campaign.abilities.EmergencyBurnAbility;
8import com.fs.starfarer.api.impl.campaign.ghosts.BaseSensorGhost;
9import com.fs.starfarer.api.impl.campaign.ghosts.GBIPlaySound;
10import com.fs.starfarer.api.impl.campaign.ghosts.GBIntercept;
11import com.fs.starfarer.api.impl.campaign.ghosts.SensorGhostManager;
12import com.fs.starfarer.api.impl.campaign.ids.Abilities;
13import com.fs.starfarer.api.loading.AbilitySpecAPI;
14import com.fs.starfarer.api.util.Misc;
15
16public class ChargerGhost extends BaseSensorGhost {
17
18 public ChargerGhost(SensorGhostManager manager, CampaignFleetAPI fleet) {
19 super(manager, 0);
20
21 Random random = manager.getRandom();
22 float r = random.nextFloat();
23 int maxBurn;
24 if (r < 0.25f) {
26 maxBurn = 9 + random.nextInt(3);
27 } else if (r < 0.6f) {
29 maxBurn = 8 + random.nextInt(3);
30 } else {
32 maxBurn = 7 + random.nextInt(3);
33 }
34
35
36 if (!placeNearPlayer()) {
38 return;
39 }
41
42 String soundId = null;
43 AbilitySpecAPI spec = Global.getSettings().getAbilitySpec(Abilities.EMERGENCY_BURN);
44 if (spec != null) {
45 soundId = spec.getWorldOn();
46 }
47
48 float speed = Misc.getSpeedForBurnLevel(maxBurn);
49 float accelMult = speed / Misc.getSpeedForBurnLevel(20f);
50 if (accelMult < 0.1f) accelMult = 0.1f;
52
53 float eBurnRange = 800f + random.nextFloat() * 200f;
54 addBehavior(new GBIntercept(fleet, 5f + random.nextFloat() * 2f, maxBurn, eBurnRange, true));
55 addBehavior(new GBIntercept(fleet, 3f + random.nextFloat() * 2f,
56 maxBurn + (int)Math.round(EmergencyBurnAbility.MAX_BURN_MOD),
57 0f, true));
58 if (soundId != null) {
59 addInterrupt(new GBIPlaySound(0f, soundId, 1f, 1f));
60 }
61
62 }
63
64}
65
66
67
static SettingsAPI getSettings()
Definition Global.java:51
void addInterrupt(GhostBehaviorInterrupt interrupt)
ChargerGhost(SensorGhostManager manager, CampaignFleetAPI fleet)
AbilitySpecAPI getAbilitySpec(String abilityId)