overdrivable meltdown (#9234)

This commit is contained in:
Ilya246 2023-11-04 18:56:24 +04:00 committed by GitHub
parent e02bb988c6
commit b4f01742cc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 1 deletions

View File

@ -3968,6 +3968,7 @@ public class Blocks{
hitColor = Pal.meltdownHit;
status = StatusEffects.melting;
drawSize = 420f;
timescaleDamage = true;
incendChance = 0.4f;
incendSpread = 5f;

View File

@ -11,6 +11,8 @@ public class ContinuousBulletType extends BulletType{
public float damageInterval = 5f;
public boolean largeHit = false;
public boolean continuous = true;
/** If a building fired this, whether to multiply damage by its timescale. */
public boolean timescaleDamage = false;
{
removeAfterPierce = false;
@ -79,7 +81,12 @@ public class ContinuousBulletType extends BulletType{
}
public void applyDamage(Bullet b){
float damage = b.damage;
if(timescaleDamage && b.owner instanceof Building build){
b.damage *= build.timeScale();
}
Damage.collideLine(b, b.team, hitEffect, b.x, b.y, b.rotation(), currentLength(b), largeHit, laserAbsorb, pierceCap);
b.damage = damage;
}
public float currentLength(Bullet b){

View File

@ -78,7 +78,7 @@ public class LaserTurret extends PowerTurret{
entry.bullet.set(bulletX, bulletY);
entry.bullet.time = entry.bullet.type.lifetime * entry.bullet.type.optimalLifeFract;
entry.bullet.keepAlive = true;
entry.life -= Time.delta / Math.max(efficiency, 0.00001f);
entry.life -= Time.delta * timeScale / Math.max(efficiency, 0.00001f);
}
wasShooting = true;