Quality of life for mixed tech (#10590)

* Quality of life for mixed tech

* Revert timescaleDamage

* Revert ShockwaveTower control
This commit is contained in:
Ovulam5480
2025-04-06 10:57:57 +08:00
committed by GitHub
parent e845dc47a5
commit 3e302c5325
8 changed files with 24 additions and 5 deletions

View File

@@ -13,6 +13,7 @@ import mindustry.entities.*;
import mindustry.game.EventType.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.logic.LAccess;
import mindustry.world.*;
import mindustry.world.meta.*;
@@ -103,6 +104,14 @@ public class ShockwaveTower extends Block{
heat = Mathf.clamp(heat - Time.delta / reload * cooldownMultiplier);
}
@Override
public double sense(LAccess sensor) {
if(sensor == LAccess.progress) return reloadCounter / reload;
return super.sense(sensor);
}
@Override
public float warmup(){
return heat;

View File

@@ -117,7 +117,7 @@ public class ContinuousTurret extends Turret{
entry.bullet.aimX = Tmp.v1.x;
entry.bullet.aimY = Tmp.v1.y;
if(scaleDamageEfficiency){
entry.bullet.damage = entry.bullet.type.damage * Math.min(efficiency, 1f) * entry.bullet.damageMultiplier();
entry.bullet.damage = entry.bullet.type.damage * Math.min(efficiency, 1f) * timeScale * entry.bullet.damageMultiplier();
}
if(isShooting() && hasAmmo()){

View File

@@ -117,7 +117,7 @@ public class TractorBeamTurret extends BaseTurret{
//shoot when possible
if(Angles.within(rotation, dest, shootCone)){
if(damage > 0){
target.damageContinuous(damage * eff * state.rules.blockDamage(team));
target.damageContinuous(damage * eff * timeScale * state.rules.blockDamage(team));
}
if(status != StatusEffects.none){

View File

@@ -7,6 +7,7 @@ import arc.math.geom.*;
import arc.util.*;
import arc.util.io.*;
import mindustry.annotations.Annotations.*;
import mindustry.ctype.Content;
import mindustry.entities.*;
import mindustry.gen.*;
import mindustry.graphics.*;
@@ -285,6 +286,13 @@ public class PayloadConveyor extends Block{
updatePayload();
}
@Override
public double sense(Content content){
if(item instanceof UnitPayload up && up.unit.type == content) return 1;
if(item instanceof BuildPayload bp && bp.build.block == content) return 1;
return super.sense(content);
}
@Override
public void onRemoved(){
super.onRemoved();

View File

@@ -210,7 +210,7 @@ public class WallCrafter extends Block{
lastEfficiency = eff * timeScale * efficiency;
if(cons && (time += edelta() * eff) >= drillTime){
items.add(output, 1);
offload(output);
time %= drillTime;
}