Destructible grey blocks / Content cleanup / Wave fixes / Impact balance
This commit is contained in:
@@ -20,7 +20,7 @@ import io.anuke.mindustry.world.blocks.production.*;
|
||||
import io.anuke.mindustry.world.blocks.sandbox.*;
|
||||
import io.anuke.mindustry.world.blocks.storage.CoreBlock;
|
||||
import io.anuke.mindustry.world.blocks.storage.LaunchPad;
|
||||
import io.anuke.mindustry.world.blocks.storage.SortedUnloader;
|
||||
import io.anuke.mindustry.world.blocks.storage.Unloader;
|
||||
import io.anuke.mindustry.world.blocks.storage.Vault;
|
||||
import io.anuke.mindustry.world.blocks.units.MechPad;
|
||||
import io.anuke.mindustry.world.blocks.units.RepairPoint;
|
||||
@@ -88,6 +88,7 @@ public class Blocks implements ContentList{
|
||||
public void draw(Tile tile){}
|
||||
public void load(){}
|
||||
public void init(){}
|
||||
public boolean isHidden(){ return true; }
|
||||
public TextureRegion[] variantRegions(){
|
||||
if(variantRegions == null){
|
||||
variantRegions = new TextureRegion[]{Core.atlas.find("clear")};
|
||||
@@ -883,13 +884,14 @@ public class Blocks implements ContentList{
|
||||
}};
|
||||
|
||||
impactReactor = new ImpactReactor("impact-reactor"){{
|
||||
requirements(Category.power, ItemStack.with(Items.lead, 1000, Items.silicon, 600, Items.graphite, 600, Items.thorium, 200, Items.surgealloy, 400, Items.metaglass, 200));
|
||||
requirements(Category.power, ItemStack.with(Items.lead, 1000, Items.silicon, 600, Items.graphite, 800, Items.thorium, 200, Items.surgealloy, 500, Items.metaglass, 500));
|
||||
size = 4;
|
||||
health = 900;
|
||||
powerProduction = 70f;
|
||||
powerProduction = 80f;
|
||||
useTime = 40f;
|
||||
consumes.power(23f);
|
||||
consumes.item(Items.blastCompound);
|
||||
consumes.liquid(Liquids.water, 0.3f);
|
||||
consumes.liquid(Liquids.water, 0.4f);
|
||||
}};
|
||||
|
||||
//endregion power
|
||||
@@ -1005,7 +1007,7 @@ public class Blocks implements ContentList{
|
||||
itemCapacity = 300;
|
||||
}};
|
||||
|
||||
unloader = new SortedUnloader("unloader"){{
|
||||
unloader = new Unloader("unloader"){{
|
||||
requirements(Category.distribution, ItemStack.with(Items.titanium, 50, Items.silicon, 60));
|
||||
speed = 7f;
|
||||
}};
|
||||
|
||||
@@ -34,7 +34,7 @@ public class Fx implements ContentList{
|
||||
bigShockwave, nuclearShockwave, explosion, blockExplosion, blockExplosionSmoke, shootSmall, shootHeal, shootSmallSmoke, shootBig, shootBig2, shootBigSmoke,
|
||||
shootBigSmoke2, shootSmallFlame, shootLiquid, shellEjectSmall, shellEjectMedium,
|
||||
shellEjectBig, lancerLaserShoot, lancerLaserShootSmoke, lancerLaserCharge, lancerLaserChargeBegin, lightningCharge, lightningShoot,
|
||||
launchFull, unitSpawn, spawnShockwave, magmasmoke;
|
||||
launchFull, unitSpawn, spawnShockwave, magmasmoke, impactShockwave, impactcloud, impactsmoke;
|
||||
|
||||
@Override
|
||||
public void load(){
|
||||
@@ -567,6 +567,13 @@ public class Fx implements ContentList{
|
||||
Draw.reset();
|
||||
});
|
||||
|
||||
impactShockwave = new Effect(13f, 300f, e -> {
|
||||
Draw.color(Pal.lighterOrange, Color.LIGHT_GRAY, e.fin());
|
||||
Lines.stroke(e.fout() * 4f + 0.2f);
|
||||
Lines.poly(e.x, e.y, 60, e.fin() * 200f);
|
||||
Draw.reset();
|
||||
});
|
||||
|
||||
spawnShockwave = new Effect(20f, 400f, e -> {
|
||||
Draw.color(Color.WHITE, Color.LIGHT_GRAY, e.fin());
|
||||
Lines.stroke(e.fout() * 3f + 0.5f);
|
||||
@@ -860,6 +867,22 @@ public class Fx implements ContentList{
|
||||
Draw.reset();
|
||||
});
|
||||
});
|
||||
impactsmoke = new Effect(60, e -> {
|
||||
Angles.randLenVectors(e.id, 7, e.fin() * 20f, (x, y) -> {
|
||||
float size = e.fslope() * 4f;
|
||||
Draw.color(Color.LIGHT_GRAY, Color.GRAY, e.fin());
|
||||
Draw.rect("circle", e.x + x, e.y + y, size, size);
|
||||
Draw.reset();
|
||||
});
|
||||
});
|
||||
impactcloud = new Effect(140, 400f, e -> {
|
||||
Angles.randLenVectors(e.id, 20, e.finpow() * 160f, (x, y) -> {
|
||||
float size = e.fout() * 15f;
|
||||
Draw.color(Pal.lighterOrange, Color.LIGHT_GRAY, e.fin());
|
||||
Draw.rect("circle", e.x + x, e.y + y, size, size);
|
||||
Draw.reset();
|
||||
});
|
||||
});
|
||||
redgeneratespark = new Effect(18, e -> {
|
||||
Angles.randLenVectors(e.id, 5, e.fin() * 8f, (x, y) -> {
|
||||
float len = e.fout() * 4f;
|
||||
|
||||
@@ -228,6 +228,20 @@ public class Zones implements ContentList{
|
||||
spacing = 2;
|
||||
unitScaling = 2;
|
||||
unitAmount = 2;
|
||||
}},
|
||||
|
||||
new SpawnGroup(UnitTypes.dagger){{
|
||||
begin = 12;
|
||||
spacing = 2;
|
||||
unitScaling = 2;
|
||||
unitAmount = 2;
|
||||
}},
|
||||
|
||||
new SpawnGroup(UnitTypes.crawler){{
|
||||
begin = 12;
|
||||
spacing = 3;
|
||||
unitScaling = 3;
|
||||
unitAmount = 2;
|
||||
}}
|
||||
);
|
||||
}};
|
||||
@@ -346,6 +360,12 @@ public class Zones implements ContentList{
|
||||
end = 10;
|
||||
}},
|
||||
|
||||
new SpawnGroup(UnitTypes.dagger){{
|
||||
begin = 1;
|
||||
unitScaling = 1;
|
||||
spacing = 2;
|
||||
}},
|
||||
|
||||
new SpawnGroup(UnitTypes.dagger){{
|
||||
begin = 2;
|
||||
unitScaling = 1;
|
||||
@@ -418,6 +438,12 @@ public class Zones implements ContentList{
|
||||
end = 10;
|
||||
}},
|
||||
|
||||
new SpawnGroup(UnitTypes.titan){{
|
||||
begin = 1;
|
||||
unitScaling = 3;
|
||||
spacing = 2;
|
||||
}},
|
||||
|
||||
new SpawnGroup(UnitTypes.dagger){{
|
||||
begin = 2;
|
||||
spacing = 2;
|
||||
@@ -508,59 +534,72 @@ public class Zones implements ContentList{
|
||||
waveSpacing = 60 * 60 * 2;
|
||||
|
||||
spawns = Array.with(
|
||||
new SpawnGroup(UnitTypes.titan){{
|
||||
unitScaling = 2;
|
||||
spacing = 2;
|
||||
end = 10;
|
||||
}},
|
||||
new SpawnGroup(UnitTypes.titan){{
|
||||
unitScaling = 2;
|
||||
spacing = 2;
|
||||
end = 10;
|
||||
}},
|
||||
|
||||
new SpawnGroup(UnitTypes.dagger){{
|
||||
begin = 2;
|
||||
unitScaling = 1;
|
||||
spacing = 2;
|
||||
}},
|
||||
new SpawnGroup(UnitTypes.crawler){{
|
||||
begin = 1;
|
||||
unitScaling = 2;
|
||||
spacing = 2;
|
||||
unitAmount = 3;
|
||||
}},
|
||||
|
||||
new SpawnGroup(UnitTypes.dagger){{
|
||||
begin = 10;
|
||||
spacing = 2;
|
||||
unitScaling = 2;
|
||||
unitAmount = 2;
|
||||
}},
|
||||
new SpawnGroup(UnitTypes.dagger){{
|
||||
begin = 2;
|
||||
unitScaling = 1;
|
||||
spacing = 2;
|
||||
}},
|
||||
|
||||
new SpawnGroup(UnitTypes.ghoul){{
|
||||
begin = 5;
|
||||
unitScaling = 0.5f;
|
||||
unitAmount = 1;
|
||||
spacing = 5;
|
||||
}},
|
||||
new SpawnGroup(UnitTypes.dagger){{
|
||||
begin = 10;
|
||||
spacing = 2;
|
||||
unitScaling = 2;
|
||||
unitAmount = 2;
|
||||
}},
|
||||
|
||||
new SpawnGroup(UnitTypes.wraith){{
|
||||
begin = 10;
|
||||
unitScaling = 1f;
|
||||
unitAmount = 1;
|
||||
spacing = 5;
|
||||
}},
|
||||
new SpawnGroup(UnitTypes.ghoul){{
|
||||
begin = 5;
|
||||
unitScaling = 0.5f;
|
||||
unitAmount = 1;
|
||||
spacing = 5;
|
||||
}},
|
||||
|
||||
new SpawnGroup(UnitTypes.dagger){{
|
||||
begin = 2;
|
||||
unitScaling = 1;
|
||||
spacing = 2;
|
||||
}},
|
||||
new SpawnGroup(UnitTypes.fortress){{
|
||||
begin = 13;
|
||||
unitScaling = 2;
|
||||
spacing = 3;
|
||||
}},
|
||||
|
||||
new SpawnGroup(UnitTypes.wraith){{
|
||||
begin = 23;
|
||||
unitScaling = 1f;
|
||||
unitAmount = 1;
|
||||
spacing = 2;
|
||||
}},
|
||||
new SpawnGroup(UnitTypes.wraith){{
|
||||
begin = 10;
|
||||
unitScaling = 1f;
|
||||
unitAmount = 1;
|
||||
spacing = 5;
|
||||
}},
|
||||
|
||||
new SpawnGroup(UnitTypes.crawler){{
|
||||
begin = 20;
|
||||
unitScaling = 1;
|
||||
spacing = 10;
|
||||
unitScaling = 0.5f;
|
||||
unitAmount = 10;
|
||||
}}
|
||||
new SpawnGroup(UnitTypes.dagger){{
|
||||
begin = 2;
|
||||
unitScaling = 1;
|
||||
spacing = 2;
|
||||
}},
|
||||
|
||||
new SpawnGroup(UnitTypes.wraith){{
|
||||
begin = 23;
|
||||
unitScaling = 1f;
|
||||
unitAmount = 1;
|
||||
spacing = 2;
|
||||
}},
|
||||
|
||||
new SpawnGroup(UnitTypes.crawler){{
|
||||
begin = 20;
|
||||
unitScaling = 1;
|
||||
spacing = 10;
|
||||
unitScaling = 0.5f;
|
||||
unitAmount = 10;
|
||||
}}
|
||||
);
|
||||
}};
|
||||
}};
|
||||
|
||||
Reference in New Issue
Block a user