overdrivable meltdown (#9234)
This commit is contained in:
@@ -3968,6 +3968,7 @@ public class Blocks{
|
|||||||
hitColor = Pal.meltdownHit;
|
hitColor = Pal.meltdownHit;
|
||||||
status = StatusEffects.melting;
|
status = StatusEffects.melting;
|
||||||
drawSize = 420f;
|
drawSize = 420f;
|
||||||
|
timescaleDamage = true;
|
||||||
|
|
||||||
incendChance = 0.4f;
|
incendChance = 0.4f;
|
||||||
incendSpread = 5f;
|
incendSpread = 5f;
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ public class ContinuousBulletType extends BulletType{
|
|||||||
public float damageInterval = 5f;
|
public float damageInterval = 5f;
|
||||||
public boolean largeHit = false;
|
public boolean largeHit = false;
|
||||||
public boolean continuous = true;
|
public boolean continuous = true;
|
||||||
|
/** If a building fired this, whether to multiply damage by its timescale. */
|
||||||
|
public boolean timescaleDamage = false;
|
||||||
|
|
||||||
{
|
{
|
||||||
removeAfterPierce = false;
|
removeAfterPierce = false;
|
||||||
@@ -79,7 +81,12 @@ public class ContinuousBulletType extends BulletType{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void applyDamage(Bullet b){
|
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);
|
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){
|
public float currentLength(Bullet b){
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ public class LaserTurret extends PowerTurret{
|
|||||||
entry.bullet.set(bulletX, bulletY);
|
entry.bullet.set(bulletX, bulletY);
|
||||||
entry.bullet.time = entry.bullet.type.lifetime * entry.bullet.type.optimalLifeFract;
|
entry.bullet.time = entry.bullet.type.lifetime * entry.bullet.type.optimalLifeFract;
|
||||||
entry.bullet.keepAlive = true;
|
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;
|
wasShooting = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user