implemented optionalBoostIntensity in BurstDrill
This commit is contained in:
@@ -11,6 +11,11 @@ import mindustry.entities.*;
|
|||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
import mindustry.graphics.*;
|
import mindustry.graphics.*;
|
||||||
import mindustry.type.*;
|
import mindustry.type.*;
|
||||||
|
import mindustry.world.blocks.environment.*;
|
||||||
|
import mindustry.world.consumers.*;
|
||||||
|
import mindustry.world.meta.*;
|
||||||
|
|
||||||
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
public class BurstDrill extends Drill{
|
public class BurstDrill extends Drill{
|
||||||
public float shake = 2f;
|
public float shake = 2f;
|
||||||
@@ -22,6 +27,8 @@ public class BurstDrill extends Drill{
|
|||||||
public @Load("@-arrow-blur") TextureRegion arrowBlurRegion;
|
public @Load("@-arrow-blur") TextureRegion arrowBlurRegion;
|
||||||
|
|
||||||
public float invertedTime = 200f;
|
public float invertedTime = 200f;
|
||||||
|
/** How many times faster the drill will progress when boosted by an optional consumer. */
|
||||||
|
public float optionalBoostIntensity = 1.5f;
|
||||||
public float arrowSpacing = 4f, arrowOffset = 0f;
|
public float arrowSpacing = 4f, arrowOffset = 0f;
|
||||||
public int arrows = 3;
|
public int arrows = 3;
|
||||||
public Color arrowColor = Color.valueOf("feb380"), baseArrowColor = Color.valueOf("6e7080");
|
public Color arrowColor = Color.valueOf("feb380"), baseArrowColor = Color.valueOf("6e7080");
|
||||||
@@ -53,6 +60,23 @@ public class BurstDrill extends Drill{
|
|||||||
return drillTime / drillMultipliers.get(item, 1f);
|
return drillTime / drillMultipliers.get(item, 1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setStats(){
|
||||||
|
stats.add(Stat.drillTier, StatValues.drillables(drillTime, hardnessDrillMultiplier, size * size, drillMultipliers, b -> b instanceof Floor f && !f.wallOre && f.itemDrop != null &&
|
||||||
|
f.itemDrop.hardness <= tier && f.itemDrop != blockedItem && (indexer.isBlockPresent(f) || state.isMenu())));
|
||||||
|
|
||||||
|
stats.add(Stat.drillSpeed, 60f / drillTime * size * size, StatUnit.itemsSecond);
|
||||||
|
|
||||||
|
if(optionalBoostIntensity != 1 && findConsumer(f -> f instanceof ConsumeLiquidBase && f.booster) instanceof ConsumeLiquidBase consBase){
|
||||||
|
stats.remove(Stat.booster);
|
||||||
|
stats.add(Stat.booster,
|
||||||
|
StatValues.speedBoosters("{0}" + StatUnit.timesSpeed.localized(),
|
||||||
|
consBase.amount, optionalBoostIntensity, false,
|
||||||
|
l -> (consumesLiquid(l) && (findConsumer(f -> f instanceof ConsumeLiquid).booster || ((ConsumeLiquid)findConsumer(f -> f instanceof ConsumeLiquid)).liquid != l)))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class BurstDrillBuild extends DrillBuild{
|
public class BurstDrillBuild extends DrillBuild{
|
||||||
//used so the lights don't fade out immediately
|
//used so the lights don't fade out immediately
|
||||||
public float smoothProgress = 0f;
|
public float smoothProgress = 0f;
|
||||||
@@ -70,7 +94,8 @@ public class BurstDrill extends Drill{
|
|||||||
dump(items.has(dominantItem) ? dominantItem : null);
|
dump(items.has(dominantItem) ? dominantItem : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
float drillTime = getDrillTime(dominantItem);
|
float multiplier = Mathf.lerp(1f, optionalBoostIntensity, optionalEfficiency);
|
||||||
|
float drillTime = getDrillTime(dominantItem) / multiplier;
|
||||||
|
|
||||||
smoothProgress = Mathf.lerpDelta(smoothProgress, progress / (drillTime - 20f), 0.1f);
|
smoothProgress = Mathf.lerpDelta(smoothProgress, progress / (drillTime - 20f), 0.1f);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user