Balancing, tweaks and bugfixes
This commit is contained in:
@@ -377,7 +377,7 @@ blocks.ammo = Ammo
|
|||||||
|
|
||||||
bar.drillspeed = Drill Speed: {0}/s
|
bar.drillspeed = Drill Speed: {0}/s
|
||||||
bar.efficiency = Efficiency: {0}%
|
bar.efficiency = Efficiency: {0}%
|
||||||
bar.powerbalance = Power: {0}
|
bar.powerbalance = Power: {0}/s
|
||||||
bar.poweroutput = Power Output: {0}
|
bar.poweroutput = Power Output: {0}
|
||||||
bar.items = Items: {0}
|
bar.items = Items: {0}
|
||||||
bar.liquid = Liquid
|
bar.liquid = Liquid
|
||||||
|
|||||||
@@ -447,7 +447,7 @@ public class Blocks implements ContentList{
|
|||||||
int topRegion = reg("-top");
|
int topRegion = reg("-top");
|
||||||
|
|
||||||
drawer = tile -> {
|
drawer = tile -> {
|
||||||
super.draw(tile);
|
Draw.rect(region, tile.drawx(), tile.drawy());
|
||||||
|
|
||||||
GenericCrafterEntity entity = tile.entity();
|
GenericCrafterEntity entity = tile.entity();
|
||||||
|
|
||||||
@@ -810,7 +810,7 @@ public class Blocks implements ContentList{
|
|||||||
|
|
||||||
mender = new MendProjector("mender"){{
|
mender = new MendProjector("mender"){{
|
||||||
requirements(Category.effect, ItemStack.with(Items.lead, 60, Items.copper, 50));
|
requirements(Category.effect, ItemStack.with(Items.lead, 60, Items.copper, 50));
|
||||||
consumes.power(0.7f);
|
consumes.power(0.3f);
|
||||||
size = 1;
|
size = 1;
|
||||||
reload = 200f;
|
reload = 200f;
|
||||||
range = 40f;
|
range = 40f;
|
||||||
@@ -823,7 +823,7 @@ public class Blocks implements ContentList{
|
|||||||
|
|
||||||
mendProjector = new MendProjector("mend-projector"){{
|
mendProjector = new MendProjector("mend-projector"){{
|
||||||
requirements(Category.effect, ItemStack.with(Items.lead, 200, Items.titanium, 50, Items.silicon, 80));
|
requirements(Category.effect, ItemStack.with(Items.lead, 200, Items.titanium, 50, Items.silicon, 80));
|
||||||
consumes.power(1.8f);
|
consumes.power(1.5f);
|
||||||
size = 2;
|
size = 2;
|
||||||
reload = 250f;
|
reload = 250f;
|
||||||
range = 85f;
|
range = 85f;
|
||||||
@@ -1009,20 +1009,20 @@ public class Blocks implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
battery = new Battery("battery"){{
|
battery = new Battery("battery"){{
|
||||||
requirements(Category.power, ItemStack.with(Items.copper, 8, Items.lead, 30, Items.silicon, 4));
|
requirements(Category.power, ItemStack.with(Items.copper, 8, Items.lead, 40));
|
||||||
consumes.powerBuffered(3200f, 1f);
|
consumes.powerBuffered(4000f, 1f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
batteryLarge = new Battery("battery-large"){{
|
batteryLarge = new Battery("battery-large"){{
|
||||||
requirements(Category.power, ItemStack.with(Items.titanium, 40, Items.lead, 80, Items.silicon, 30));
|
requirements(Category.power, ItemStack.with(Items.titanium, 40, Items.lead, 80, Items.silicon, 40));
|
||||||
size = 3;
|
size = 3;
|
||||||
consumes.powerBuffered(37440f, 1f);
|
consumes.powerBuffered(50000f, 1f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
combustionGenerator = new BurnerGenerator("combustion-generator"){{
|
combustionGenerator = new BurnerGenerator("combustion-generator"){{
|
||||||
requirements(Category.power, ItemStack.with(Items.copper, 50, Items.lead, 30));
|
requirements(Category.power, ItemStack.with(Items.copper, 50, Items.lead, 30));
|
||||||
powerProduction = 1f;
|
powerProduction = 1f;
|
||||||
itemDuration = 40f;
|
itemDuration = 60f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
thermalGenerator = new ThermalGenerator("thermal-generator"){{
|
thermalGenerator = new ThermalGenerator("thermal-generator"){{
|
||||||
@@ -1035,7 +1035,7 @@ public class Blocks implements ContentList{
|
|||||||
turbineGenerator = new BurnerGenerator("turbine-generator"){{
|
turbineGenerator = new BurnerGenerator("turbine-generator"){{
|
||||||
requirements(Category.power, ItemStack.with(Items.copper, 70, Items.graphite, 50, Items.lead, 80, Items.silicon, 60));
|
requirements(Category.power, ItemStack.with(Items.copper, 70, Items.graphite, 50, Items.lead, 80, Items.silicon, 60));
|
||||||
powerProduction = 6f;
|
powerProduction = 6f;
|
||||||
itemDuration = 30f;
|
itemDuration = 40f;
|
||||||
consumes.liquid(Liquids.water, 0.05f);
|
consumes.liquid(Liquids.water, 0.05f);
|
||||||
hasLiquids = true;
|
hasLiquids = true;
|
||||||
size = 2;
|
size = 2;
|
||||||
@@ -1260,7 +1260,7 @@ public class Blocks implements ContentList{
|
|||||||
Items.scrap, Bullets.flakScrap,
|
Items.scrap, Bullets.flakScrap,
|
||||||
Items.lead, Bullets.flakLead
|
Items.lead, Bullets.flakLead
|
||||||
);
|
);
|
||||||
reload = 20f;
|
reload = 15f;
|
||||||
range = 180f;
|
range = 180f;
|
||||||
size = 2;
|
size = 2;
|
||||||
burstSpacing = 5f;
|
burstSpacing = 5f;
|
||||||
|
|||||||
@@ -273,7 +273,7 @@ public class Bullets implements ContentList{
|
|||||||
keepVelocity = false;
|
keepVelocity = false;
|
||||||
splashDamageRadius = 25f;
|
splashDamageRadius = 25f;
|
||||||
splashDamage = 10f;
|
splashDamage = 10f;
|
||||||
lifetime = 80f;
|
lifetime = 50f;
|
||||||
trailColor = Pal.unitBack;
|
trailColor = Pal.unitBack;
|
||||||
backColor = Pal.unitBack;
|
backColor = Pal.unitBack;
|
||||||
frontColor = Pal.unitFront;
|
frontColor = Pal.unitFront;
|
||||||
|
|||||||
@@ -199,12 +199,14 @@ public class TechTree implements ContentList{
|
|||||||
node(combustionGenerator, () -> {
|
node(combustionGenerator, () -> {
|
||||||
node(powerNode, () -> {
|
node(powerNode, () -> {
|
||||||
node(powerNodeLarge, () -> {
|
node(powerNodeLarge, () -> {
|
||||||
node(battery, () -> {
|
node(surgeTower, () -> {
|
||||||
node(batteryLarge, () -> {
|
|
||||||
node(surgeTower, () -> {
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
node(battery, () -> {
|
||||||
|
node(batteryLarge, () -> {
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -243,11 +245,12 @@ public class TechTree implements ContentList{
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
node(spiritFactory, () -> {
|
||||||
|
node(phantomFactory);
|
||||||
|
});
|
||||||
|
|
||||||
node(alphaDartPad, () -> {
|
node(alphaDartPad, () -> {
|
||||||
node(deltaPad, () -> {
|
node(deltaPad, () -> {
|
||||||
node(spiritFactory, () -> {
|
|
||||||
node(phantomFactory);
|
|
||||||
});
|
|
||||||
|
|
||||||
node(javelinPad, () -> {
|
node(javelinPad, () -> {
|
||||||
node(tridentPad, () -> {
|
node(tridentPad, () -> {
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public class Zones implements ContentList{
|
|||||||
rules = () -> new Rules(){{
|
rules = () -> new Rules(){{
|
||||||
waves = true;
|
waves = true;
|
||||||
waveTimer = true;
|
waveTimer = true;
|
||||||
waveSpacing = 60 * 60 * 1f;
|
waveSpacing = 60 * 60 * 1.5f;
|
||||||
}};
|
}};
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
|||||||
@@ -231,9 +231,7 @@ public class Renderer implements ApplicationListener{
|
|||||||
|
|
||||||
overlays.drawTop();
|
overlays.drawTop();
|
||||||
|
|
||||||
EntityDraw.setClip(false);
|
|
||||||
drawAndInterpolate(playerGroup, p -> !p.isDead() && !p.isLocal, Player::drawName);
|
drawAndInterpolate(playerGroup, p -> !p.isDead() && !p.isLocal, Player::drawName);
|
||||||
EntityDraw.setClip(true);
|
|
||||||
|
|
||||||
Draw.color();
|
Draw.color();
|
||||||
Draw.flush();
|
Draw.flush();
|
||||||
|
|||||||
@@ -278,6 +278,7 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removed(){
|
public void removed(){
|
||||||
|
super.removed();
|
||||||
Tile tile = world.tile(spawner);
|
Tile tile = world.tile(spawner);
|
||||||
if(tile != null){
|
if(tile != null){
|
||||||
tile.block().unitRemoved(tile, this);
|
tile.block().unitRemoved(tile, this);
|
||||||
|
|||||||
@@ -142,10 +142,17 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removed(){
|
public void removed(){
|
||||||
Tile tile = world.tile(lastWeightTile);
|
if(lastWeightTile != Pos.invalid){
|
||||||
|
Tile tile = world.tile(lastWeightTile);
|
||||||
|
|
||||||
if(tile != null){
|
if(tile != null){
|
||||||
tile.weight -= Math.max(lastWeightDelta, tile.weight);
|
int dec = Math.min(lastWeightDelta, wasFlying ? tile.airWeight : tile.weight);
|
||||||
|
if(!wasFlying){
|
||||||
|
tile.weight -= dec;
|
||||||
|
}else{
|
||||||
|
tile.airWeight -= dec;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ public enum RulePreset{
|
|||||||
infiniteResources = true;
|
infiniteResources = true;
|
||||||
waves = true;
|
waves = true;
|
||||||
waveTimer = false;
|
waveTimer = false;
|
||||||
|
respawnTime = 0f;
|
||||||
spawns = DefaultWaves.get();
|
spawns = DefaultWaves.get();
|
||||||
}}),
|
}}),
|
||||||
attack(() -> new Rules(){{
|
attack(() -> new Rules(){{
|
||||||
|
|||||||
@@ -5,9 +5,11 @@ import io.anuke.arc.graphics.Blending;
|
|||||||
import io.anuke.arc.graphics.g2d.Draw;
|
import io.anuke.arc.graphics.g2d.Draw;
|
||||||
import io.anuke.arc.graphics.glutils.FrameBuffer;
|
import io.anuke.arc.graphics.glutils.FrameBuffer;
|
||||||
import io.anuke.arc.util.Disposable;
|
import io.anuke.arc.util.Disposable;
|
||||||
|
import io.anuke.mindustry.entities.type.Player;
|
||||||
|
|
||||||
import static io.anuke.arc.Core.camera;
|
import static io.anuke.arc.Core.camera;
|
||||||
import static io.anuke.arc.Core.graphics;
|
import static io.anuke.arc.Core.graphics;
|
||||||
|
import static io.anuke.mindustry.Vars.playerGroup;
|
||||||
import static io.anuke.mindustry.Vars.renderer;
|
import static io.anuke.mindustry.Vars.renderer;
|
||||||
|
|
||||||
public class Pixelator implements Disposable{
|
public class Pixelator implements Disposable{
|
||||||
@@ -41,6 +43,8 @@ public class Pixelator implements Disposable{
|
|||||||
Draw.rect(Draw.wrap(buffer.getTexture()), Core.camera.position.x, Core.camera.position.y, Core.camera.width, -Core.camera.height);
|
Draw.rect(Draw.wrap(buffer.getTexture()), Core.camera.position.x, Core.camera.position.y, Core.camera.width, -Core.camera.height);
|
||||||
Draw.blend();
|
Draw.blend();
|
||||||
|
|
||||||
|
renderer.drawAndInterpolate(playerGroup, p -> !p.isDead() && !p.isLocal, Player::drawName);
|
||||||
|
|
||||||
Core.camera.position.set(px, py);
|
Core.camera.position.set(px, py);
|
||||||
Core.settings.put("animatedwater", hadWater);
|
Core.settings.put("animatedwater", hadWater);
|
||||||
Core.settings.put("animatedshields", hadShields);
|
Core.settings.put("animatedshields", hadShields);
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ public class Item extends UnlockableContent implements Comparable<Item>{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TextureRegion getContentIcon(){
|
public TextureRegion getContentIcon(){
|
||||||
return icon(Icon.large);
|
return icon(Icon.xlarge);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -267,6 +267,7 @@ public class HudFragment extends Fragment{
|
|||||||
testb[0] = button;
|
testb[0] = button;
|
||||||
|
|
||||||
button.getStyle().disabledFontColor = Color.WHITE;
|
button.getStyle().disabledFontColor = Color.WHITE;
|
||||||
|
button.margin(16f);
|
||||||
button.visible(() ->
|
button.visible(() ->
|
||||||
world.isZone() &&
|
world.isZone() &&
|
||||||
world.getZone().metCondition() &&
|
world.getZone().metCondition() &&
|
||||||
@@ -282,8 +283,8 @@ public class HudFragment extends Fragment{
|
|||||||
button.setText(state.enemies() > 0 ? Core.bundle.format("launch.unable", state.enemies()) : Core.bundle.get("launch") + "\n" +
|
button.setText(state.enemies() > 0 ? Core.bundle.format("launch.unable", state.enemies()) : Core.bundle.get("launch") + "\n" +
|
||||||
Core.bundle.format("launch.next", state.wave + world.getZone().launchPeriod));
|
Core.bundle.format("launch.next", state.wave + world.getZone().launchPeriod));
|
||||||
|
|
||||||
button.getLabel().setColor(Tmp.c1.set(Color.WHITE).lerp(state.enemies() > 0 ? Color.WHITE : Pal.accent,
|
button.getLabel().setColor(Tmp.c1.set(Color.WHITE).lerp(state.enemies() > 0 ? Color.WHITE : Color.SCARLET,
|
||||||
Mathf.absin(Time.time(), 7f, 1f)));
|
Mathf.absin(Time.time(), 2f, 1f)));
|
||||||
});
|
});
|
||||||
|
|
||||||
button.setDisabled(() -> state.enemies() > 0);
|
button.setDisabled(() -> state.enemies() > 0);
|
||||||
|
|||||||
@@ -210,6 +210,8 @@ public class Block extends BlockStorage{
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void drawPlaceText(String text, int x, int y, boolean valid){
|
protected void drawPlaceText(String text, int x, int y, boolean valid){
|
||||||
|
if(renderer.pixelator.enabled()) return;
|
||||||
|
|
||||||
Color color = valid ? Pal.accent : Pal.remove;
|
Color color = valid ? Pal.accent : Pal.remove;
|
||||||
BitmapFont font = Core.scene.skin.getFont("default-font");
|
BitmapFont font = Core.scene.skin.getFont("default-font");
|
||||||
GlyphLayout layout = Pools.obtain(GlyphLayout.class, GlyphLayout::new);
|
GlyphLayout layout = Pools.obtain(GlyphLayout.class, GlyphLayout::new);
|
||||||
@@ -290,7 +292,7 @@ public class Block extends BlockStorage{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TextureRegion getContentIcon(){
|
public TextureRegion getContentIcon(){
|
||||||
return icon(Icon.medium);
|
return icon(Icon.large);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import io.anuke.arc.util.Time;
|
|||||||
import io.anuke.arc.util.Tmp;
|
import io.anuke.arc.util.Tmp;
|
||||||
import io.anuke.mindustry.content.Fx;
|
import io.anuke.mindustry.content.Fx;
|
||||||
import io.anuke.mindustry.entities.type.TileEntity;
|
import io.anuke.mindustry.entities.type.TileEntity;
|
||||||
|
import io.anuke.mindustry.graphics.Pal;
|
||||||
import io.anuke.mindustry.world.Block;
|
import io.anuke.mindustry.world.Block;
|
||||||
import io.anuke.mindustry.world.Tile;
|
import io.anuke.mindustry.world.Tile;
|
||||||
import io.anuke.mindustry.world.meta.BlockStat;
|
import io.anuke.mindustry.world.meta.BlockStat;
|
||||||
@@ -103,6 +104,13 @@ public class MendProjector extends Block{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void drawPlace(int x, int y, int rotation, boolean valid){
|
||||||
|
Draw.color(Pal.accent);
|
||||||
|
Lines.dashCircle(x * tilesize, y * tilesize, range);
|
||||||
|
Draw.color();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drawSelect(Tile tile){
|
public void drawSelect(Tile tile){
|
||||||
MendEntity entity = tile.entity();
|
MendEntity entity = tile.entity();
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import io.anuke.arc.graphics.g2d.TextureRegion;
|
|||||||
import io.anuke.arc.math.Mathf;
|
import io.anuke.arc.math.Mathf;
|
||||||
import io.anuke.arc.util.Time;
|
import io.anuke.arc.util.Time;
|
||||||
import io.anuke.mindustry.entities.type.TileEntity;
|
import io.anuke.mindustry.entities.type.TileEntity;
|
||||||
|
import io.anuke.mindustry.graphics.Pal;
|
||||||
import io.anuke.mindustry.world.Block;
|
import io.anuke.mindustry.world.Block;
|
||||||
import io.anuke.mindustry.world.Tile;
|
import io.anuke.mindustry.world.Tile;
|
||||||
import io.anuke.mindustry.world.meta.BlockStat;
|
import io.anuke.mindustry.world.meta.BlockStat;
|
||||||
@@ -52,6 +53,13 @@ public class OverdriveProjector extends Block{
|
|||||||
topRegion = Core.atlas.find(name + "-top");
|
topRegion = Core.atlas.find(name + "-top");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void drawPlace(int x, int y, int rotation, boolean valid){
|
||||||
|
Draw.color(Pal.accent);
|
||||||
|
Lines.dashCircle(x * tilesize, y * tilesize, range);
|
||||||
|
Draw.color();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setStats(){
|
public void setStats(){
|
||||||
super.setStats();
|
super.setStats();
|
||||||
|
|||||||
Reference in New Issue
Block a user