impact drill progress
This commit is contained in:
@@ -6,6 +6,7 @@ import arc.struct.*;
|
||||
import mindustry.*;
|
||||
import mindustry.ctype.*;
|
||||
import mindustry.entities.bullet.*;
|
||||
import mindustry.entities.effect.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.graphics.*;
|
||||
import mindustry.type.*;
|
||||
@@ -1602,13 +1603,13 @@ public class Blocks implements ContentList{
|
||||
//TODO should be crusher or something
|
||||
impactDrill = new BurstDrill("impact-drill"){{
|
||||
requirements(Category.production, with(Items.silicon, 60, Items.beryllium, 90, Items.graphite, 50));
|
||||
drillTime = 60f * 10f;
|
||||
drillTime = 60f * 12f;
|
||||
size = 4;
|
||||
drawRim = false;
|
||||
hasPower = true;
|
||||
tier = 6;
|
||||
drillEffect = Fx.mineHuge;
|
||||
itemCapacity = 30;
|
||||
drillEffect = new MultiEffect(Fx.mineImpact, Fx.drillSteam);
|
||||
shake = 4f;
|
||||
itemCapacity = 40;
|
||||
|
||||
consumes.power(3f);
|
||||
consumes.liquid(Liquids.water, 0.2f);
|
||||
|
||||
@@ -952,6 +952,22 @@ public class Fx{
|
||||
}
|
||||
}),
|
||||
|
||||
drillSteam = new Effect(220f, e -> {
|
||||
|
||||
float length = 3f + e.finpow() * 20f;
|
||||
rand.setSeed(e.id);
|
||||
for(int i = 0; i < 13; i++){
|
||||
v.trns(rand.random(360f), rand.random(length));
|
||||
float sizer = rand.random(1.3f, 3.7f);
|
||||
|
||||
e.scaled(e.lifetime * rand.random(0.5f, 1f), b -> {
|
||||
color(Color.gray, b.fslope() * 0.93f);
|
||||
|
||||
Fill.circle(e.x + v.x, e.y + v.y, sizer + b.fslope() * 1.2f);
|
||||
});
|
||||
}
|
||||
}).startDelay(30f),
|
||||
|
||||
vapor = new Effect(110f, e -> {
|
||||
color(e.color);
|
||||
alpha(e.fout());
|
||||
@@ -1840,6 +1856,29 @@ public class Fx{
|
||||
});
|
||||
}),
|
||||
|
||||
mineImpact = new Effect(90, e -> {
|
||||
color(e.color, Color.lightGray, e.fin());
|
||||
randLenVectors(e.id, 12, 5f + e.finpow() * 22f, (x, y) -> {
|
||||
Fill.square(e.x + x, e.y + y, e.fout() * 2.5f + 0.5f, 45);
|
||||
});
|
||||
|
||||
color(Pal.redLight);
|
||||
|
||||
e.scaled(50f, b -> {
|
||||
stroke(b.fout() * 1.5f);
|
||||
|
||||
randLenVectors(e.id, 12, 4f + b.finpow() * 40f, (x, y) -> {
|
||||
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), b.fout() * 5 + 1f);
|
||||
});
|
||||
});
|
||||
|
||||
e.scaled(30f, b -> {
|
||||
Lines.stroke(5f * b.fout());
|
||||
Lines.circle(e.x, e.y, b.finpow() * 28f);
|
||||
});
|
||||
|
||||
}),
|
||||
|
||||
payloadReceive = new Effect(30, e -> {
|
||||
color(Color.white, Pal.accent, e.fin());
|
||||
randLenVectors(e.id, 12, 7f + e.fin() * 13f, (x, y) -> {
|
||||
|
||||
Reference in New Issue
Block a user