Omega mech implementation

This commit is contained in:
Anuken
2018-08-21 22:40:39 -04:00
parent 3bf72a1af6
commit e1f7c7b03d
21 changed files with 650 additions and 591 deletions
@@ -11,7 +11,7 @@ import io.anuke.mindustry.type.ContentList;
public class AmmoTypes implements ContentList{
public static AmmoType bulletCopper, bulletDense, bulletThorium, bulletSilicon, bulletPyratite,
shotgunTungsten, bombExplosive, bombIncendiary, bombOil, shellCarbide, flamerThermite, weaponMissile, bulletMech,
shotgunTungsten, bombExplosive, bombIncendiary, bombOil, shellCarbide, flamerThermite, weaponMissile, weaponMissileSwarm, bulletMech,
flakLead, flakExplosive, flakPlastic, flakSurge, missileExplosive, missileIncindiary, missileSurge,
artilleryDense, artilleryPlastic, artilleryHoming, artilleryIncindiary, artilleryExplosive,
basicFlame, lancerLaser, lightning, spectreLaser, meltdownLaser, fuseShotgun, oil, water, lava, cryofluid;
@@ -64,6 +64,12 @@ public class AmmoTypes implements ContentList{
reloadMultiplier = 1.2f;
}};
weaponMissileSwarm = new AmmoType(MissileBullets.swarm){{
shootEffect = BulletFx.hitBulletSmall;
smokeEffect = ShootFx.shootSmallSmoke;
reloadMultiplier = 1.2f;
}};
//bullets
bulletCopper = new AmmoType(Items.copper, StandardBullets.copper, 5){{
+22 -11
View File
@@ -11,9 +11,7 @@ import io.anuke.mindustry.type.Upgrade;
public class Mechs implements ContentList{
public static Mech alpha, delta, tau, omega, dart, javelin, trident, halberd;
/**
* These are not new mechs, just re-assignments for convenience.
*/
/**These are not new mechs, just re-assignments for convenience.*/
public static Mech starterDesktop, starterMobile;
@Override
@@ -25,7 +23,6 @@ public class Mechs implements ContentList{
speed = 0.5f;
boostSpeed = 0.85f;
weapon = Weapons.blaster;
trailColor = Palette.lightTrail;
maxSpeed = 4f;
}};
@@ -36,23 +33,37 @@ public class Mechs implements ContentList{
itemCapacity = 15;
armor = 30f;
weaponOffsetX = -1;
itemCapacity = 15;
weaponOffsetY = -1;
weapon = Weapons.shockgun;
ammoCapacity = 50;
trailColor = Color.valueOf("d3ddff");
trailColorTo = Color.valueOf("d3ddff");
maxSpeed = 5f;
}};
tau = new Mech("tau-mech", false){{
drillPower = 2;
speed = 0.5f;
drillPower = 3;
mineSpeed = 3f;
itemCapacity = 70;
speed = 0.44f;
drag = 0.35f;
boostSpeed = 0.8f;
weapon = Weapons.blaster;
maxSpeed = 5f;
armor = 30f;
}};
omega = new Mech("omega-mech", false){{
drillPower = 1;
speed = 0.4f;
maxSpeed = 3f;
drillPower = 2;
mineSpeed = 1.5f;
itemCapacity = 50;
speed = 0.36f;
boostSpeed = 0.6f;
shake = 4f;
weaponOffsetX = 1;
weaponOffsetY = 0;
weapon = Weapons.swarmer;
maxSpeed = 3.5f;
armor = 70f;
}};
dart = new Mech("dart-ship", true){{
@@ -128,6 +128,7 @@ public class Recipes implements ContentList{
new Recipe(units, UpgradeBlocks.dartFactory, new ItemStack(Items.lead, 150), new ItemStack(Items.silicon, 200), new ItemStack(Items.titanium, 240)).setDesktop(); //dart is desktop only, because it's the starter mobile ship
new Recipe(units, UpgradeBlocks.javelinFactory, new ItemStack(Items.lead, 200), new ItemStack(Items.silicon, 250), new ItemStack(Items.titanium, 300), new ItemStack(Items.plastanium, 200));
new Recipe(units, UpgradeBlocks.deltaFactory, new ItemStack(Items.densealloy, 160), new ItemStack(Items.silicon, 220), new ItemStack(Items.titanium, 250)).setDesktop();
new Recipe(units, UpgradeBlocks.omegaFactory, new ItemStack(Items.densealloy, 160), new ItemStack(Items.silicon, 220), new ItemStack(Items.titanium, 250)).setDesktop();
//new Recipe(units, UpgradeBlocks.deltaFactory, new ItemStack(Items.copper, 30), new ItemStack(Items.lead, 50), new ItemStack(Items.silicon, 30));
@@ -33,6 +33,19 @@ public class Weapons implements ContentList{
ammo = AmmoTypes.weaponMissile;
}};
swarmer = new Weapon("swarmer"){{
length = 1.5f;
recoil = 4f;
reload = 60f;
shots = 4;
inaccuracy = 8f;
roundrobin = false;
roundrobin = true;
ejectEffect = Fx.none;
shake = 3f;
ammo = AmmoTypes.weaponMissileSwarm;
}};
chainBlaster = new Weapon("chain-blaster"){{
length = 1.5f;
reload = 28f;
@@ -82,14 +95,6 @@ public class Weapons implements ContentList{
ammo = AmmoTypes.bulletDense;
}};
swarmer = new Weapon("swarmer"){{
length = 1.5f;
reload = 10f;
roundrobin = true;
ejectEffect = ShootFx.shellEjectSmall;
ammo = AmmoTypes.bulletPyratite;
}};
bomber = new Weapon("bomber"){{
length = 0f;
width = 2f;
@@ -1,5 +1,6 @@
package io.anuke.mindustry.content.bullets;
import com.badlogic.gdx.graphics.Color;
import io.anuke.mindustry.content.fx.BulletFx;
import io.anuke.mindustry.entities.bullet.BulletType;
import io.anuke.mindustry.entities.bullet.MissileBulletType;
@@ -7,7 +8,7 @@ import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.type.ContentList;
public class MissileBullets extends BulletList implements ContentList{
public static BulletType explosive, incindiary, surge, javelin;
public static BulletType explosive, incindiary, surge, javelin, swarm;
@Override
public void load(){
@@ -65,5 +66,23 @@ public class MissileBullets extends BulletList implements ContentList{
despawneffect = BulletFx.blastExplosion;
}
};
swarm = new MissileBulletType(2.7f, 10, "missile"){
{
bulletWidth = 8f;
bulletHeight = 8f;
bulletShrink = 0f;
drag = -0.003f;
keepVelocity = false;
splashDamageRadius = 25f;
splashDamage = 15f;
lifetime = 120f;
trailColor = Color.GRAY;
backColor = Palette.bulletYellowBack;
frontColor = Palette.bulletYellow;
hiteffect = BulletFx.blastExplosion;
despawneffect = BulletFx.blastExplosion;
}
};
}
}
@@ -179,7 +179,7 @@ public class BulletFx extends FxList implements ContentList{
});
missileTrail = new Effect(50, e -> {
Draw.color(Palette.missileYellowBack);
Draw.color(e.color);
Fill.circle(e.x, e.y, e.rotation * e.fout());
Draw.reset();
});