Implemented new spawnlist

This commit is contained in:
Anuken
2018-06-27 13:54:50 -04:00
parent 5cefecced8
commit 6364b9e06b
17 changed files with 694 additions and 440 deletions
@@ -10,7 +10,7 @@ import io.anuke.mindustry.type.ContentList;
public class AmmoTypes implements ContentList {
public static AmmoType bulletTungsten, bulletLead, bulletCarbide, bulletThorium, bulletSilicon, bulletThermite,
shotgunTungsten, bombExplosive, bombIncendiary,
shotgunTungsten, bombExplosive, bombIncendiary, bombOil, shellCarbide, flamerThermite,
flakLead, flakExplosive, flakPlastic, flakSurge, missileExplosive, missileIncindiary, missileSurge,
artilleryCarbide, artilleryThorium, artilleryPlastic, artilleryHoming, artilleryIncindiary,
basicFlame, lancerLaser, lightning, spectreLaser, meltdownLaser, fuseShotgun, oil, water, lava, cryofluid;
@@ -18,6 +18,38 @@ public class AmmoTypes implements ContentList {
@Override
public void load() {
//weapon specific
shotgunTungsten = new AmmoType(Items.tungsten, WeaponBullets.tungstenShotgun, 2) {{
shootEffect = ShootFx.shootBig;
smokeEffect = ShootFx.shootBigSmoke;
recoil = 1f;
}};
shellCarbide = new AmmoType(Items.carbide, WeaponBullets.shellCarbide, 2) {{
shootEffect = ShootFx.shootBig;
smokeEffect = ShootFx.shootBigSmoke;
}};
bombExplosive = new AmmoType(Items.blastCompound, WeaponBullets.bombExplosive, 3) {{
shootEffect = Fx.none;
smokeEffect = Fx.none;
}};
bombIncendiary = new AmmoType(Items.thermite, WeaponBullets.bombIncendiary, 3) {{
shootEffect = Fx.none;
smokeEffect = Fx.none;
}};
bombOil = new AmmoType(Items.coal, WeaponBullets.bombOil, 3) {{
shootEffect = Fx.none;
smokeEffect = Fx.none;
}};
flamerThermite = new AmmoType(Items.thermite, TurretBullets.basicFlame, 3) {{
shootEffect = ShootFx.shootSmallFlame;
}};
//bullets
bulletLead = new AmmoType(Items.lead, StandardBullets.lead, 5) {{
@@ -56,24 +88,6 @@ public class AmmoTypes implements ContentList {
inaccuracy = 3f;
}};
//shotgun (delta mech)
shotgunTungsten = new AmmoType(Items.tungsten, WeaponBullets.tungstenShotgun, 2) {{
shootEffect = ShootFx.shootBig;
smokeEffect = ShootFx.shootBigSmoke;
recoil = 1f;
}};
bombExplosive = new AmmoType(Items.blastCompound, WeaponBullets.bombExplosive, 3) {{
shootEffect = Fx.none;
smokeEffect = Fx.none;
}};
bombIncendiary = new AmmoType(Items.thermite, WeaponBullets.bombIncendiary, 3) {{
shootEffect = Fx.none;
smokeEffect = Fx.none;
}};
//flak
flakLead = new AmmoType(Items.lead, FlakBullets.lead, 5) {{
@@ -71,6 +71,9 @@ public class Recipes implements ContentList{
new Recipe(crafting, CraftingBlocks.blastMixer, new ItemStack(Items.tungsten, 60), new ItemStack(Items.lead, 60), new ItemStack(Items.carbide, 40));
new Recipe(crafting, CraftingBlocks.cryofluidmixer, new ItemStack(Items.lead, 130), new ItemStack(Items.silicon, 80), new ItemStack(Items.titanium, 90));
new Recipe(crafting, CraftingBlocks.melter, new ItemStack(Items.tungsten, 60), new ItemStack(Items.lead, 70), new ItemStack(Items.carbide, 90));
new Recipe(crafting, CraftingBlocks.incinerator, new ItemStack(Items.carbide, 10), new ItemStack(Items.lead, 30));
//processing
new Recipe(crafting, CraftingBlocks.biomatterCompressor, new ItemStack(Items.lead, 70), new ItemStack(Items.silicon, 60));
new Recipe(crafting, CraftingBlocks.separator, new ItemStack(Items.tungsten, 60), new ItemStack(Items.carbide, 50));
@@ -113,7 +116,7 @@ public class Recipes implements ContentList{
//new Recipe(units, UpgradeBlocks.deltaFactory, new ItemStack(Items.tungsten, 30), new ItemStack(Items.lead, 50), new ItemStack(Items.silicon, 30));
//actual unit related stuff
new Recipe(units, UnitBlocks.droneFactory, new ItemStack(Items.tungsten, 30), new ItemStack(Items.lead, 50), new ItemStack(Items.silicon, 80));
new Recipe(units, UnitBlocks.droneFactory, new ItemStack(Items.tungsten, 50), new ItemStack(Items.lead, 90), new ItemStack(Items.silicon, 130));
new Recipe(units, UnitBlocks.repairPoint, new ItemStack(Items.lead, 30), new ItemStack(Items.tungsten, 30), new ItemStack(Items.silicon, 30));
new Recipe(units, UnitBlocks.resupplyPoint, new ItemStack(Items.lead, 30), new ItemStack(Items.tungsten, 30), new ItemStack(Items.silicon, 30));
@@ -18,6 +18,7 @@ public class UnitTypes implements ContentList {
maxVelocity = 0.8f;
ammoCapacity = 0;
range = 50f;
health = 45;
}};
scout = new UnitType("scout", Scout.class, Scout::new){{
@@ -25,7 +26,8 @@ public class UnitTypes implements ContentList {
speed = 0.2f;
drag = 0.4f;
range = 40f;
weapon = Weapons.blaster;
weapon = Weapons.chainBlaster;
health = 70;
}};
titan = new UnitType("titan", Titan.class, Titan::new){{
@@ -33,7 +35,8 @@ public class UnitTypes implements ContentList {
speed = 0.18f;
drag = 0.4f;
range = 10f;
weapon = Weapons.shockgun;
weapon = Weapons.chainBlaster;
health = 260;
}};
vtol = new UnitType("vtol", Vtol.class, Vtol::new){{
@@ -45,7 +48,7 @@ public class UnitTypes implements ContentList {
}};
monsoon = new UnitType("monsoon", Monsoon.class, Monsoon::new){{
health = 300;
health = 230;
speed = 0.2f;
maxVelocity = 1.5f;
drag = 0.01f;
@@ -9,7 +9,7 @@ import io.anuke.mindustry.type.Upgrade;
import io.anuke.mindustry.type.Weapon;
public class Weapons implements ContentList {
public static Weapon blaster, shockgun, sapper, swarmer, bomber;
public static Weapon blaster, chainBlaster, shockgun, sapper, swarmer, bomber, flakgun, flamethrower;
@Override
public void load() {
@@ -22,6 +22,14 @@ public class Weapons implements ContentList {
setAmmo(AmmoTypes.bulletLead);
}};
chainBlaster = new Weapon("chain-blaster") {{
length = 1.5f;
reload = 20f;
roundrobin = true;
ejectEffect = ShootFx.shellEjectSmall;
setAmmo(AmmoTypes.bulletLead, AmmoTypes.bulletCarbide, AmmoTypes.bulletTungsten, AmmoTypes.bulletSilicon, AmmoTypes.bulletThorium);
}};
shockgun = new Weapon("shockgun") {{
length = 1f;
reload = 50f;
@@ -34,6 +42,27 @@ public class Weapons implements ContentList {
setAmmo(AmmoTypes.shotgunTungsten);
}};
flakgun = new Weapon("flakgun") {{
length = 1f;
reload = 70f;
roundrobin = true;
shots = 1;
inaccuracy = 3f;
recoil = 3f;
velocityRnd = 0.1f;
ejectEffect = ShootFx.shellEjectMedium;
setAmmo(AmmoTypes.shellCarbide);
}};
flamethrower = new Weapon("flamethrower") {{
length = 1f;
reload = 14f;
roundrobin = true;
recoil = 1f;
ejectEffect = Fx.none;
setAmmo(AmmoTypes.flamerThermite);
}};
sapper = new Weapon("sapper") {{
length = 1.5f;
reload = 12f;
@@ -58,7 +87,7 @@ public class Weapons implements ContentList {
ejectEffect = Fx.none;
velocityRnd = 1f;
inaccuracy = 40f;
setAmmo(AmmoTypes.bombExplosive, AmmoTypes.bombIncendiary);
setAmmo(AmmoTypes.bombExplosive, AmmoTypes.bombIncendiary, AmmoTypes.bombOil);
}};
}
@@ -1,11 +1,15 @@
package io.anuke.mindustry.content.bullets;
import com.badlogic.gdx.graphics.Color;
import io.anuke.mindustry.content.Liquids;
import io.anuke.mindustry.content.fx.BlockFx;
import io.anuke.mindustry.content.fx.BulletFx;
import io.anuke.mindustry.entities.bullet.BasicBulletType;
import io.anuke.mindustry.entities.bullet.BombBulletType;
import io.anuke.mindustry.entities.bullet.Bullet;
import io.anuke.mindustry.entities.bullet.BulletType;
import io.anuke.mindustry.entities.effect.Fire;
import io.anuke.mindustry.entities.effect.Puddle;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.util.Mathf;
@@ -13,7 +17,7 @@ import io.anuke.ucore.util.Mathf;
import static io.anuke.mindustry.Vars.world;
public class WeaponBullets extends BulletList {
public static BulletType tungstenShotgun, bombExplosive, bombIncendiary;
public static BulletType tungstenShotgun, bombExplosive, bombIncendiary, bombOil, shellCarbide;
@Override
public void load() {
@@ -58,5 +62,38 @@ public class WeaponBullets extends BulletList {
}
}
};
bombOil = new BombBulletType(3f, 3f, "shell"){
{
bulletWidth = 8f;
bulletHeight = 12f;
hiteffect = BlockFx.pulverize;
backColor = new Color(0x4f4f4fff);
frontColor = Color.GRAY;
}
@Override
public void hit(Bullet b, float x, float y) {
super.hit(b, x, y);
for (int i = 0; i < 3; i++) {
Tile tile = world.tileWorld(x + Mathf.range(8f), y + Mathf.range(8f));
Puddle.deposit(tile, Liquids.oil, 5f);
}
}
};
shellCarbide = new BasicBulletType(3.4f, 20, "bullet") {
{
bulletWidth = 10f;
bulletHeight = 12f;
bulletShrink = 0.4f;
lifetime = 40f;
drag = 0.025f;
fragBullets = 5;
hiteffect = BulletFx.flakExplosion;
fragBullet = tungstenShotgun;
}
};
}
}