001package com.fs.starfarer.api.loading;
002
003import com.fs.starfarer.api.combat.MutableShipStatsAPI;
004import com.fs.starfarer.api.combat.WeaponAPI;
005
006public interface ProjectileWeaponSpecAPI extends WeaponSpecAPI {
007
008        float getEnergyPerShot();
009        void setEnergyPerShot(float energyPerShot);
010        float getRefireDelay();
011        void setRefireDelay(float refireDelay);
012        int getBurstSize();
013        void setBurstSize(int burstSize);
014        boolean isInterruptibleBurst();
015        void setInterruptibleBurst(boolean interruptibleBurst);
016        float getBurstDelay();
017        void setBurstDelay(float burstDelay);
018        float getMinSpread();
019        void setMinSpread(float minSpread);
020        float getMaxSpread();
021        void setMaxSpread(float maxSpread);
022        float getSpreadDecayRate();
023        void setSpreadDecayRate(float spreadDecayRate);
024        float getSpreadBuildup();
025        void setSpreadBuildup(float spreadBuildup);
026        boolean isAutoCharge();
027        void setAutoCharge(boolean autoCharge);
028        float getEnergyPerSecond();
029        void setEnergyPerSecond(float energyPerSecond);
030        boolean isRequiresFullCharge();
031        void setRequiresFullCharge(boolean requiresFullCharge);
032        float getProjectileSpeed(MutableShipStatsAPI shipStats, WeaponAPI weapon);
033        void setProjectileSpeed(float projectileSpeed);
034        void setSeparateRecoilForLinkedBarrels(boolean individualLinkedRecoil);
035        boolean isSeparateRecoilForLinkedBarrels();
036        Object getProjectileSpec();
037        float getChargeTime();
038        void setChargeTime(float chargeTime);
039        String getHardpointGunSpriteName();
040        void setHardpointGunSpriteName(String hardpointGunSpriteName);
041        String getTurretGunSpriteName();
042        void setTurretGunSpriteName(String turretGunSpriteName);
043        String getHardpointGlowSpriteName();
044        void setTurretGlowSpriteName(String turretGlowSpriteName);
045        String getTurretGlowSpriteName();
046        void setHardpointGlowSpriteName(String hardpointGlowSpriteName);
047        float getVisualRecoil();
048        void setVisualRecoil(float visualRecoil);
049        String getAccuracyDisplayName();
050        MuzzleFlashSpec getMuzzleFlashSpec();
051
052}