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}