Loads of bugfixes, gameplay tweaks

This commit is contained in:
Anuken
2018-06-22 19:14:50 -04:00
parent 57d5628750
commit 74878b5cb1
38 changed files with 748 additions and 568 deletions
@@ -8,9 +8,9 @@ import io.anuke.mindustry.type.AmmoType;
import io.anuke.mindustry.type.ContentList;
public class AmmoTypes implements ContentList {
public static AmmoType bulletIron, bulletLead, bulletSteel, bulletThorium, bulletSilicon, bulletThermite,
public static AmmoType bulletTungsten, bulletLead, bulletCarbide, bulletThorium, bulletSilicon, bulletThermite,
flakLead, flakExplosive, flakPlastic, flakSurge, missileExplosive, missileIncindiary, missileSurge,
artilleryLead, artilleryThorium, artilleryPlastic, artilleryHoming, artilleryIncindiary,
artilleryCarbide, artilleryThorium, artilleryPlastic, artilleryHoming, artilleryIncindiary,
basicFlame, lancerLaser, lightning, spectreLaser, meltdownLaser, fuseShotgun, oil, water, lava, cryofluid;
@Override
@@ -18,27 +18,31 @@ public class AmmoTypes implements ContentList {
//bullets
bulletIron = new AmmoType(Items.tungsten, StandardBullets.iron, 3) {{
bulletLead = new AmmoType(Items.lead, StandardBullets.lead, 5) {{
shootEffect = ShootFx.shootSmall;
smokeEffect = ShootFx.shootSmallSmoke;
reloadMultiplier = 1.6f;
inaccuracy = 5f;
}};
bulletTungsten = new AmmoType(Items.tungsten, StandardBullets.tungsten, 2) {{
shootEffect = ShootFx.shootSmall;
smokeEffect = ShootFx.shootSmallSmoke;
reloadMultiplier = 0.8f;
}};
bulletCarbide = new AmmoType(Items.carbide, StandardBullets.carbide, 2) {{
shootEffect = ShootFx.shootSmall;
smokeEffect = ShootFx.shootSmallSmoke;
reloadMultiplier = 0.6f;
}};
bulletThorium = new AmmoType(Items.thorium, StandardBullets.thorium, 2) {{
shootEffect = ShootFx.shootSmall;
smokeEffect = ShootFx.shootSmallSmoke;
}};
bulletLead = new AmmoType(Items.lead, StandardBullets.lead, 3) {{
shootEffect = ShootFx.shootSmall;
smokeEffect = ShootFx.shootSmallSmoke;
}};
bulletSteel = new AmmoType(Items.carbide, StandardBullets.steel, 3) {{
shootEffect = ShootFx.shootSmall;
smokeEffect = ShootFx.shootSmallSmoke;
}};
bulletThorium = new AmmoType(Items.thorium, StandardBullets.thorium, 3) {{
shootEffect = ShootFx.shootSmall;
smokeEffect = ShootFx.shootSmallSmoke;
}};
bulletSilicon = new AmmoType(Items.silicon, StandardBullets.homing, 3) {{
bulletSilicon = new AmmoType(Items.silicon, StandardBullets.homing, 4) {{
shootEffect = ShootFx.shootSmall;
smokeEffect = ShootFx.shootSmallSmoke;
}};
@@ -46,6 +50,7 @@ public class AmmoTypes implements ContentList {
bulletThermite = new AmmoType(Items.thermite, StandardBullets.tracer, 3) {{
shootEffect = ShootFx.shootSmall;
smokeEffect = ShootFx.shootSmallSmoke;
inaccuracy = 3f;
}};
//flak
@@ -89,7 +94,7 @@ public class AmmoTypes implements ContentList {
//artillery
artilleryLead = new AmmoType(Items.lead, ArtilleryBullets.lead, 1) {{
artilleryCarbide = new AmmoType(Items.carbide, ArtilleryBullets.carbide, 1) {{
shootEffect = ShootFx.shootBig2;
smokeEffect = ShootFx.shootBigSmoke2;
}};
@@ -17,13 +17,16 @@ public class Recipes implements ContentList{
new Recipe(defense, DefenseBlocks.tungstenWall, new ItemStack(Items.tungsten, 12));
new Recipe(defense, DefenseBlocks.tungstenWallLarge, new ItemStack(Items.tungsten, 12*4));
//TURRETS
new Recipe(weapon, WeaponBlocks.duo, new ItemStack(Items.tungsten, 20));
new Recipe(weapon, WeaponBlocks.scorch, new ItemStack(Items.tungsten, 25), new ItemStack(Items.carbide, 20));
new Recipe(weapon, WeaponBlocks.hail, new ItemStack(Items.tungsten, 25), new ItemStack(Items.carbide, 25));
new Recipe(defense, DefenseBlocks.carbideWall, new ItemStack(Items.carbide, 12));
new Recipe(defense, DefenseBlocks.carbideWallLarge, new ItemStack(Items.carbide, 12*4));
new Recipe(weapon, WeaponBlocks.lancer, new ItemStack(Items.tungsten, 25), new ItemStack(Items.lead, 25), new ItemStack(Items.silicon, 25));
new Recipe(weapon, WeaponBlocks.arc, new ItemStack(Items.tungsten, 25), new ItemStack(Items.lead, 30), new ItemStack(Items.silicon, 30));
//TURRETS
new Recipe(weapon, TurretBlocks.duo, new ItemStack(Items.tungsten, 20));
new Recipe(weapon, TurretBlocks.scorch, new ItemStack(Items.tungsten, 25), new ItemStack(Items.carbide, 20));
new Recipe(weapon, TurretBlocks.hail, new ItemStack(Items.tungsten, 25), new ItemStack(Items.carbide, 25));
new Recipe(weapon, TurretBlocks.lancer, new ItemStack(Items.tungsten, 25), new ItemStack(Items.lead, 25), new ItemStack(Items.silicon, 25));
new Recipe(weapon, TurretBlocks.arc, new ItemStack(Items.tungsten, 25), new ItemStack(Items.lead, 30), new ItemStack(Items.silicon, 30));
//DISTRIBUTION
new Recipe(distribution, DistributionBlocks.conveyor, new ItemStack(Items.lead, 1));
@@ -42,11 +45,20 @@ public class Recipes implements ContentList{
new Recipe(distribution, DistributionBlocks.bridgeconveyor, new ItemStack(Items.carbide, 8), new ItemStack(Items.tungsten, 8));
//CRAFTING
new Recipe(crafting, CraftingBlocks.smelter, new ItemStack(Items.tungsten, 40));
new Recipe(crafting, CraftingBlocks.siliconsmelter, new ItemStack(Items.tungsten, 60), new ItemStack(Items.lead, 50));
new Recipe(crafting, CraftingBlocks.arcsmelter, new ItemStack(Items.tungsten, 60), new ItemStack(Items.carbide, 60), new ItemStack(Items.lead, 50));
new Recipe(crafting, CraftingBlocks.pulverizer, new ItemStack(Items.tungsten, 50), new ItemStack(Items.lead, 50));
//smelting
new Recipe(crafting, CraftingBlocks.smelter, new ItemStack(Items.tungsten, 40));
new Recipe(crafting, CraftingBlocks.arcsmelter, new ItemStack(Items.tungsten, 60), new ItemStack(Items.carbide, 60), new ItemStack(Items.lead, 50));
new Recipe(crafting, CraftingBlocks.siliconsmelter, new ItemStack(Items.tungsten, 60), new ItemStack(Items.lead, 50));
//misc
new Recipe(crafting, CraftingBlocks.pulverizer, new ItemStack(Items.tungsten, 60), new ItemStack(Items.lead, 50));
new Recipe(crafting, CraftingBlocks.thermiteMixer, new ItemStack(Items.tungsten, 100), new ItemStack(Items.lead, 50));
new Recipe(crafting, CraftingBlocks.blastMixer, new ItemStack(Items.tungsten, 60), new ItemStack(Items.lead, 60), new ItemStack(Items.carbide, 40));
//processing
new Recipe(crafting, CraftingBlocks.separator, new ItemStack(Items.tungsten, 60), new ItemStack(Items.carbide, 50));
new Recipe(crafting, CraftingBlocks.centrifuge, new ItemStack(Items.tungsten, 130), new ItemStack(Items.carbide, 130), new ItemStack(Items.silicon, 30), new ItemStack(Items.titanium, 40));
//POWER
new Recipe(power, PowerBlocks.powernode, new ItemStack(Items.tungsten, 2), new ItemStack(Items.lead, 6));
@@ -65,6 +77,7 @@ public class Recipes implements ContentList{
new Recipe(production, ProductionBlocks.carbideDrill, new ItemStack(Items.tungsten, 40), new ItemStack(Items.carbide, 40));
new Recipe(production, ProductionBlocks.waterextractor, new ItemStack(Items.tungsten, 50), new ItemStack(Items.carbide, 50), new ItemStack(Items.lead, 40));
new Recipe(production, ProductionBlocks.cultivator, new ItemStack(Items.tungsten, 20), new ItemStack(Items.lead, 50), new ItemStack(Items.silicon, 20));
//UNITS
new Recipe(units, UnitBlocks.droneFactory, new ItemStack(Items.tungsten, 30), new ItemStack(Items.lead, 50), new ItemStack(Items.silicon, 30));
@@ -81,7 +94,7 @@ public class Recipes implements ContentList{
new Recipe(liquid, LiquidBlocks.bridgeconduit, new ItemStack(Items.carbide, 8), new ItemStack(Items.lead, 8));
//new Recipe(liquid, LiquidBlocks.laserconduit, new ItemStack(Items.titanium, 2), new ItemStack(Items.lead, 2), new ItemStack(Items.phasematter, 10));
new Recipe(liquid, LiquidBlocks.mechanicalPump, new ItemStack(Items.tungsten, 10), new ItemStack(Items.lead, 10), new ItemStack(Items.silicon, 10));
new Recipe(liquid, LiquidBlocks.mechanicalPump, new ItemStack(Items.tungsten, 30), new ItemStack(Items.lead, 20));
//new Recipe(liquid, LiquidBlocks.rotaryPump, new ItemStack(Items.carbide, 10), new ItemStack(Items.surgealloy, 5));
//new Recipe(liquid, LiquidBlocks.thermalPump, new ItemStack(Items.carbide, 10), new ItemStack(Items.surgealloy, 5));
@@ -114,16 +127,16 @@ public class Recipes implements ContentList{
new Recipe(defense, DefenseBlocks.phasewall, new ItemStack(Items.titanium, 1));
new Recipe(defense, DefenseBlocks.phasewalllarge, new ItemStack(Items.titanium, 1));
new Recipe(weapon, WeaponBlocks.wave, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, WeaponBlocks.lancer, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, WeaponBlocks.arc, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, WeaponBlocks.swarmer, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, WeaponBlocks.ripple, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, WeaponBlocks.fuse, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, WeaponBlocks.ripple, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, WeaponBlocks.cyclone, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, WeaponBlocks.spectre, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, WeaponBlocks.meltdown, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, TurretBlocks.wave, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, TurretBlocks.lancer, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, TurretBlocks.arc, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, TurretBlocks.swarmer, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, TurretBlocks.ripple, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, TurretBlocks.fuse, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, TurretBlocks.ripple, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, TurretBlocks.cyclone, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, TurretBlocks.spectre, new ItemStack(Items.tungsten, 1));
new Recipe(weapon, TurretBlocks.meltdown, new ItemStack(Items.tungsten, 1));
new Recipe(crafting, CraftingBlocks.alloysmelter, new ItemStack(Items.titanium, 50), new ItemStack(Items.carbide, 50));
new Recipe(crafting, CraftingBlocks.alloyfuser, new ItemStack(Items.carbide, 30), new ItemStack(Items.tungsten, 30));
@@ -28,7 +28,7 @@ public class UnitTypes implements ContentList {
speed = 0.2f;
drag = 0.4f;
range = 40f;
setAmmo(AmmoTypes.bulletIron);
setAmmo(AmmoTypes.bulletLead);
}};
vtol = new UnitType("vtol", team -> new Vtol(vtol, team)){{
@@ -37,7 +37,7 @@ public class UnitTypes implements ContentList {
drag = 0.01f;
isFlying = true;
reload = 7;
setAmmo(AmmoTypes.bulletIron);
setAmmo(AmmoTypes.bulletLead);
}};
}
@@ -18,7 +18,7 @@ public class Weapons implements ContentList {
reload = 15f;
roundrobin = true;
ejectEffect = ShootFx.shellEjectSmall;
setAmmo(AmmoTypes.bulletIron);
setAmmo(AmmoTypes.bulletLead);
}};
blaster2 = new Weapon("clustergun") {{
@@ -34,7 +34,7 @@ public class Weapons implements ContentList {
reload = 12f;
roundrobin = true;
ejectEffect = ShootFx.shellEjectSmall;
setAmmo(AmmoTypes.bulletSteel);
setAmmo(AmmoTypes.bulletCarbide);
}};
blaster4 = new Weapon("vulcan") {{
@@ -133,7 +133,9 @@ public class Blocks extends BlockList implements ContentList{
snow = new Floor("snow");
grass = new Floor("grass");
grass = new Floor("grass"){{
hasOres = true;
}};
shrub = new Rock("shrub");
@@ -11,7 +11,9 @@ import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.blocks.production.*;
public class CraftingBlocks extends BlockList implements ContentList {
public static Block smelter, arcsmelter, siliconsmelter, plasteelcompressor, phaseweaver, alloysmelter, alloyfuser, cryofluidmixer, melter, separator, centrifuge, biomatterCompressor, pulverizer, oilRefinery, stoneFormer, incinerator;
public static Block smelter, arcsmelter, siliconsmelter, plasteelcompressor, phaseweaver, alloysmelter, alloyfuser,
thermiteMixer, blastMixer,
cryofluidmixer, melter, separator, centrifuge, biomatterCompressor, pulverizer, oilRefinery, stoneFormer, incinerator;
@Override
public void load() {
@@ -112,6 +114,30 @@ public class CraftingBlocks extends BlockList implements ContentList {
size = 2;
}};
blastMixer = new GenericCrafter("blast-mixer") {{
itemCapacity = 20;
hasItems = true;
hasPower = true;
inputLiquid = Liquids.oil;
liquidUse = 0.05f;
inputItem = new ItemStack(Items.thermite, 1);
output = Items.blastCompound;
powerUse = 0.04f;
size = 2;
}};
thermiteMixer = new PowerSmelter("thermite-mixer") {{
itemCapacity = 20;
hasItems = true;
hasPower = true;
inputs = new ItemStack[]{new ItemStack(Items.coal, 1), new ItemStack(Items.lead, 2), new ItemStack(Items.sand, 2)};
result = Items.thermite;
powerUse = 0.02f;
size = 2;
}};
melter = new PowerCrafter("melter") {{
health = 200;
outputLiquid = Liquids.lava;
@@ -12,15 +12,16 @@ import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Strings;
public class WeaponBlocks extends BlockList implements ContentList {
public class TurretBlocks extends BlockList implements ContentList {
public static Block duo, /*scatter,*/ scorch, hail, wave, lancer, arc, swarmer, salvo, fuse, ripple, cyclone, spectre, meltdown;
@Override
public void load() {
duo = new DoubleTurret("duo") {{
ammoTypes = new AmmoType[]{AmmoTypes.bulletIron, AmmoTypes.bulletLead, AmmoTypes.bulletSteel, AmmoTypes.bulletThermite};
ammoTypes = new AmmoType[]{AmmoTypes.bulletTungsten, AmmoTypes.bulletLead, AmmoTypes.bulletCarbide, AmmoTypes.bulletThermite};
reload = 25f;
restitution = 0.03f;
range = 80f;
ammoUseEffect = ShootFx.shellEjectSmall;
}};
/*
@@ -37,8 +38,9 @@ public class WeaponBlocks extends BlockList implements ContentList {
}};*/
hail = new ItemTurret("hail") {{
ammoTypes = new AmmoType[]{AmmoTypes.artilleryLead, AmmoTypes.artilleryHoming, AmmoTypes.artilleryIncindiary};
ammoTypes = new AmmoType[]{AmmoTypes.artilleryCarbide, AmmoTypes.artilleryHoming, AmmoTypes.artilleryIncindiary};
reload = 40f;
range = 200f;
}};
scorch = new LiquidTurret("scorch") {{
@@ -111,7 +113,7 @@ public class WeaponBlocks extends BlockList implements ContentList {
salvo = new ItemTurret("salvo") {{
size = 2;
range = 100f;
ammoTypes = new AmmoType[]{AmmoTypes.bulletIron, AmmoTypes.bulletLead, AmmoTypes.bulletSteel, AmmoTypes.bulletThermite, AmmoTypes.bulletThorium, AmmoTypes.bulletSilicon};
ammoTypes = new AmmoType[]{AmmoTypes.bulletTungsten, AmmoTypes.bulletLead, AmmoTypes.bulletCarbide, AmmoTypes.bulletThermite, AmmoTypes.bulletThorium, AmmoTypes.bulletSilicon};
reload = 70f;
restitution = 0.03f;
ammoEjectBack = 3f;
@@ -135,7 +137,7 @@ public class WeaponBlocks extends BlockList implements ContentList {
}};
ripple = new ItemTurret("ripple") {{
ammoTypes = new AmmoType[]{AmmoTypes.artilleryLead, AmmoTypes.artilleryHoming, AmmoTypes.artilleryIncindiary, AmmoTypes.artilleryPlastic, AmmoTypes.artilleryThorium};
ammoTypes = new AmmoType[]{AmmoTypes.artilleryCarbide, AmmoTypes.artilleryHoming, AmmoTypes.artilleryIncindiary, AmmoTypes.artilleryPlastic, AmmoTypes.artilleryThorium};
size = 3;
}};
@@ -151,7 +153,7 @@ public class WeaponBlocks extends BlockList implements ContentList {
}};
spectre = new ItemTurret("eraser") {{
ammoTypes = new AmmoType[]{AmmoTypes.bulletIron, AmmoTypes.bulletLead, AmmoTypes.bulletSteel, AmmoTypes.bulletThermite, AmmoTypes.bulletThorium, AmmoTypes.bulletSilicon};
ammoTypes = new AmmoType[]{AmmoTypes.bulletTungsten, AmmoTypes.bulletLead, AmmoTypes.bulletCarbide, AmmoTypes.bulletThermite, AmmoTypes.bulletThorium, AmmoTypes.bulletSilicon};
reload = 25f;
restitution = 0.03f;
ammoUseEffect = ShootFx.shellEjectSmall;
@@ -6,12 +6,12 @@ import io.anuke.mindustry.entities.bullet.BulletType;
import io.anuke.mindustry.type.ContentList;
public class ArtilleryBullets extends BulletList implements ContentList{
public static BulletType lead, thorium, plastic, homing, incindiary, surge;
public static BulletType carbide, thorium, plastic, homing, incindiary, surge;
@Override
public void load() {
lead = new BasicBulletType(3f, 0, "shell") {
carbide = new BasicBulletType(3f, 0, "shell") {
{
hiteffect = BulletFx.flakExplosion;
knockback = 0.8f;
@@ -5,36 +5,38 @@ import io.anuke.mindustry.entities.bullet.BulletType;
import io.anuke.mindustry.type.ContentList;
public class StandardBullets extends BulletList implements ContentList {
public static BulletType iron, lead, steel, thorium, homing, tracer;
public static BulletType tungsten, lead, carbide, thorium, homing, tracer;
@Override
public void load() {
iron = new BasicBulletType(3f, 5, "bullet") {
tungsten = new BasicBulletType(3.2f, 10, "bullet") {
{
bulletWidth = 9f;
bulletHeight = 11f;
}
};
lead = new BasicBulletType(2.5f, 5, "bullet") {
{
bulletWidth = 7f;
bulletHeight = 9f;
}
};
lead = new BasicBulletType(3f, 5, "bullet") {
carbide = new BasicBulletType(3.5f, 18, "bullet") {
{
bulletWidth = 7f;
bulletHeight = 9f;
bulletWidth = 9f;
bulletHeight = 12f;
armorPierce = 0.2f;
}
};
steel = new BasicBulletType(3f, 5, "bullet") {
thorium = new BasicBulletType(4f, 25, "bullet") {
{
bulletWidth = 7f;
bulletHeight = 9f;
}
};
thorium = new BasicBulletType(3f, 5, "bullet") {
{
bulletWidth = 7f;
bulletHeight = 9f;
bulletWidth = 10f;
bulletHeight = 13f;
armorPierce = 0.5f;
}
};
@@ -11,7 +11,7 @@ import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.Mathf;
public class UnitFx extends FxList implements ContentList {
public static Effect vtolHover, unitDrop, unitPickup;
public static Effect vtolHover, unitDrop, unitPickup, pickup;
@Override
public void load() {
@@ -38,5 +38,12 @@ public class UnitFx extends FxList implements ContentList {
Lines.poly(e.x, e.y, 4, 13f * e.fout());
Draw.reset();
});
pickup = new Effect(18, e -> {
Draw.color(Palette.lightishGray);
Lines.stroke(e.fout() * 2f);
Lines.spikes(e.x, e.y, 1f + e.fin() * 6f, e.fout() * 4f, 6);
Draw.reset();
});
}
}