Fixed missile unit DPS calculation

This commit is contained in:
Anuken
2022-11-06 13:38:38 -05:00
parent dc2a68573b
commit 3a0b1a6cf5
4 changed files with 15 additions and 3 deletions

View File

@@ -3161,6 +3161,8 @@ public class UnitTypes{
rotationLimit = 70f;
rotateSpeed = 2f;
inaccuracy = 20f;
shootStatus = StatusEffects.slow;
alwaysShootWhenMoving = true;
rotate = true;

View File

@@ -314,6 +314,10 @@ public class BulletType extends Content implements Cloneable{
/** @return estimated damage per shot. this can be very inaccurate. */
public float estimateDPS(){
if(spawnUnit != null){
return spawnUnit.estimateDps();
}
float sum = damage + splashDamage*0.75f;
if(fragBullet != null && fragBullet != this){
sum += fragBullet.estimateDPS() * fragBullets / 2f;

View File

@@ -828,6 +828,13 @@ public class UnitType extends UnlockableContent{
ammoCapacity = Math.max(1, (int)(shotsPerSecond * targetSeconds));
}
estimateDps();
//only do this after everything else was initialized
sample = constructor.get();
}
public float estimateDps(){
//calculate estimated DPS for one target based on weapons
if(dpsEstimate < 0){
dpsEstimate = weapons.sumf(Weapon::dps);
@@ -838,9 +845,8 @@ public class UnitType extends UnlockableContent{
dpsEstimate /= 25f;
}
}
//only do this after everything else was initialized
sample = constructor.get();
return dpsEstimate;
}
@CallSuper