001package com.fs.starfarer.api.combat; 002 003 004public interface DamageAPI { 005 006 /** 007 * Emp damage. 008 * @param amount seconds, used when damage is dps. 009 * @return 010 */ 011 float computeFluxDealt(float amount); 012 013 /** 014 * @param amount seconds, used when damage is dps. 015 * @return 016 */ 017 float computeDamageDealt(float amount); 018 019 boolean isMissile(); 020 void setMissile(boolean isMissile); 021 void setStats(MutableShipStatsAPI stats); 022 MutableShipStatsAPI getStats(); 023 float getDamage(); 024 void setDamage(float amount); 025 boolean isDps(); 026 float getMultiplier(); 027 void setMultiplier(float multiplier); 028 DamageType getType(); 029 void setType(DamageType type); 030 float getFluxComponent(); 031 void setFluxComponent(float fluxComponent); 032 033 boolean isSoftFlux(); 034 /** 035 * Only useful for making non-beam weapons deal hard flux damage. For making 036 * beam weapons deal hard flux, use setForceHardFlux(true). 037 * @param isSoftFlux 038 */ 039 void setSoftFlux(boolean isSoftFlux); 040 041 float getDpsDuration(); 042 void setDpsDuration(float dpsDuration); 043 044 DamageAPI clone(); 045 046 MutableStat getModifier(); 047 048 boolean isForceHardFlux(); 049 /** 050 * Useful to make beam weapons deal hard flux. 051 * @param forceHardFlux 052 */ 053 void setForceHardFlux(boolean forceHardFlux); 054 055 float getBaseDamage(); 056}