Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package src.data.scripts.weapons;
- import com.fs.starfarer.api.Global;
- import com.fs.starfarer.api.combat.CollisionClass;
- import com.fs.starfarer.api.combat.CombatEngineAPI;
- import com.fs.starfarer.api.combat.CombatEntityAPI;
- import com.fs.starfarer.api.combat.CombatUIAPI;
- import com.fs.starfarer.api.combat.EveryFrameWeaponEffectPlugin;
- import com.fs.starfarer.api.combat.FighterWingAPI;
- import com.fs.starfarer.api.combat.MutableShipStatsAPI;
- import com.fs.starfarer.api.combat.ShipAPI;
- import com.fs.starfarer.api.combat.ShipVariantAPI;
- import com.fs.starfarer.api.combat.WeaponAPI;
- import com.fs.starfarer.api.loading.WeaponSlotAPI;
- import com.fs.starfarer.api.util.IntervalUtil;
- import java.awt.Color;
- import java.util.List;
- public class omm_weapondrone implements EveryFrameWeaponEffectPlugin {
- private boolean runOnce = false;
- private boolean isWeaponSwapped1 = false;
- private ShipAPI SHIP;
- private ShipAPI FIGHTER;
- public IntervalUtil timer = new IntervalUtil(3F, 20F);
- @Override
- public void advance(float amount, CombatEngineAPI engine, WeaponAPI weapon) {
- this.SHIP = weapon.getShip();
- if (engine.isPaused()) {
- return;
- }
- List<WeaponAPI> list = this.SHIP.getAllWeapons();
- if (this.SHIP.getOriginalOwner() == 0 || this.SHIP.getOriginalOwner() == 1) {
- for (WeaponAPI weaponAPI : list) {
- if (weaponAPI.getId().equals("omm_weaponpoddeco")) {
- weaponAPI.getSprite().setColor(new Color(255, 255, 255, 0));
- }
- if (weaponAPI.getSlot().getId().equals("droneslot")) {
- weaponAPI.disable(true);
- weaponAPI.getSprite().setColor(new Color(255, 255, 255, 0));
- }
- if (weaponAPI.getBarrelSpriteAPI() != null) {
- weaponAPI.getBarrelSpriteAPI().setColor(new Color(255, 255, 255, 0));
- }
- }
- }
- this.timer.randomize();
- this.timer.advance(amount);
- if (!this.timer.intervalElapsed()) {
- return;
- }
- if (isWeaponSwapped1) {
- return;
- }
- if (!isWeaponSwapped1) {
- if (this.SHIP != null) {
- List<FighterWingAPI> list1 = this.SHIP.getAllWings();
- for (FighterWingAPI fighterWingAPI : list1) {
- if (!fighterWingAPI.getWingId().equals("omm_weaponpod_wing")) {
- continue;
- }
- {
- this.FIGHTER = fighterWingAPI.getLeader();
- MutableShipStatsAPI mutableShipStatsAPI = this.FIGHTER.getMutableStats();
- ShipVariantAPI shipVariantAPI = mutableShipStatsAPI.getVariant().clone();
- mutableShipStatsAPI.getVariant().setOriginalVariant(null);
- this.FIGHTER.getFleetMember().setVariant(shipVariantAPI, false, true);
- mutableShipStatsAPI.getVariant().clearSlot("droneslot");
- if (this.SHIP.getVariant().getWeaponSpec("droneslot") != null) {
- mutableShipStatsAPI.getVariant().addWeapon("droneslot", this.SHIP.getVariant().getWeaponId("droneslot"));
- mutableShipStatsAPI.getVariant().getWeaponSpec("droneslot").addTag("FIRE_WHEN_INEFFICIENT");
- fighterWingAPI.orderReturn(this.FIGHTER);
- {
- this.isWeaponSwapped1 = true;
- }
- }
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement