001package com.fs.starfarer.api.loading;
002
003import java.awt.Color;
004
005import org.json.JSONObject;
006
007import com.fs.starfarer.api.combat.CollisionClass;
008import com.fs.starfarer.api.combat.DamageAPI;
009import com.fs.starfarer.api.combat.OnFireEffectPlugin;
010import com.fs.starfarer.api.combat.OnHitEffectPlugin;
011import com.fs.starfarer.api.combat.ShipHullSpecAPI;
012
013public interface MissileSpecAPI {
014
015        String getOnHitClassName();
016        void setOnHitClassName(String effectClassName);
017        OnHitEffectPlugin getOnHitEffect();
018        float getArmingTime();
019        void setArmingTime(float armingTime);
020        float getFlameoutTime();
021        void setFlameoutTime(float flameoutTime);
022        float getNoEngineGlowTime();
023        void setNoEngineGlowTime(float noEngineGlowTime);
024        float getFadeTime();
025        void setFadeTime(float fadeTime);
026        CollisionClass getAfterFlameoutCollisionClass();
027        void setAfterFlameoutCollisionClass(CollisionClass afterFlameoutCollisionClass);
028        Color getExplosionColor();
029        float getGlowRadius();
030        void setGlowRadius(float glowRadius);
031        void setExplosionColor(Color explosionColor);
032        float getExplosionRadius();
033        void setExplosionRadius(float explosionRadius);
034        Color getGlowColor();
035        void setGlowColor(Color glowColor);
036        String getGlowSpriteName();
037        void setGlowSpriteName(String glowSpriteName);
038        void setMaxFlightTime(float maxFlightTime);
039        float getMaxFlightTime();
040        ShipHullSpecAPI getHullSpec();
041        DamageAPI getDamage();
042        float getLaunchSpeed();
043        void setLaunchSpeed(float launchSpeed);
044        float getImpactStrength();
045        void setImpactStrength(float impactStrength);
046        DamagingExplosionSpec getExplosionSpec();
047        void setExplosionSpec(DamagingExplosionSpec explosionSpec);
048        String getSpeedDisplayName();
049        String getManeuverabilityDisplayName();
050        JSONObject getBehaviorJSON();
051        String getOnFireClassName();
052        void setOnFireClassName(String onFireClassName);
053        OnFireEffectPlugin getOnFireEffect();
054        float getDudProbabilityOnFlameout();
055        void setDudProbabilityOnFlameout(float dudProbabilityOnFlameout);
056        boolean isUseHitGlowWhenDestroyed();
057        void setUseHitGlowWhenDestroyed(boolean useHitGlowWhenDestroyed);
058        boolean isFizzleOnReachingWeaponRange();
059        void setFizzleOnReachingWeaponRange(boolean fizzleOnReachingWeaponRange);
060        boolean isUseHitGlowWhenDealingDamage();
061        void setUseHitGlowWhenDealingDamage(boolean useHitGlowWhenDealingDamage);
062        boolean isNoCollisionWhileFading();
063        void setNoCollisionWhileFading(boolean noCollisionWhileFading);
064        boolean isReduceDamageWhileFading();
065        void setReduceDamageWhileFading(boolean reduceDamageWhileFading);
066        boolean isAlwaysAccelerate();
067        void setAlwaysAccelerate(boolean alwaysAccelerate);
068        boolean isUseProjectileRangeCalculation();
069        void setUseProjectileRangeCalculation(boolean useProjectileRangeCalculation);
070        boolean isRenderTargetIndicator();
071        void setRenderTargetIndicator(boolean renderTargetIndicator);
072        boolean isNoDebrisWhenDestroyed();
073        void setNoDebrisWhenDestroyed(boolean noDebrisWhenDestroyed);
074        Color getDestroyedExplosionColor();
075        void setDestroyedExplosionColor(Color destroyedExplosionColor);
076        boolean isDefaultDestroyedExplosionColor();
077        boolean isPassThroughMissiles();
078        void setPassThroughMissiles(boolean passThroughMissiles);
079        boolean isPassThroughFighters();
080        void setPassThroughFighters(boolean passThroughFighters);
081        boolean isApplyOnHitEffectWhenPassThrough();
082        void setApplyOnHitEffectWhenPassThrough(boolean applyOnHitEffectWhenPassThrough);
083        boolean isPassThroughFightersOnlyWhenDestroyed();
084        void setPassThroughFightersOnlyWhenDestroyed(boolean passThroughFightersOnlyWhenDestroyed);
085        String getTypeString();
086        ShotBehaviorSpecAPI getBehaviorSpec();
087
088}