Weapon refactor / New units with edgy names / Spritesheet cleanup

This commit is contained in:
Anuken
2019-02-03 21:11:26 -05:00
parent 62d8cb0b25
commit a8c645f00d
50 changed files with 1969 additions and 2504 deletions

View File

@@ -806,7 +806,7 @@ public class Blocks implements ContentList{
}};
surgeTower = new PowerNode("surge-tower"){{
requirements(Category.power, ItemStack.with(Items.titanium, 15, Items.lead, 20, Items.silicon, 30, Items.surgealloy, 10));
requirements(Category.power, ItemStack.with(Items.titanium, 15, Items.lead, 20, Items.silicon, 30, Items.surgealloy, 30));
size = 2;
maxNodes = 2;
laserRange = 30f;
@@ -1101,7 +1101,7 @@ public class Blocks implements ContentList{
lancer = new ChargeTurret("lancer"){{
requirements(Category.turret, ItemStack.with(Items.copper, 50, Items.lead, 100, Items.silicon, 90));
range = 90f;
range = 120f;
chargeTime = 60f;
chargeMaxDelay = 30f;
chargeEffects = 7;

View File

@@ -33,7 +33,7 @@ public class Bullets implements ContentList{
flakPlastic, flakExplosive, flakSurge,
//missiles
missileExplosive, missileIncendiary, missileSurge, missileJavelin, missileSwarm,
missileExplosive, missileIncendiary, missileSurge, missileJavelin, missileSwarm, missileRevenant,
//standard
standardCopper, standardDense, standardThorium, standardHoming, standardIncendiary, standardMechSmall,
@@ -238,6 +238,25 @@ public class Bullets implements ContentList{
weaveMag = 2f;
}};
missileRevenant = new MissileBulletType(2.7f, 12, "missile"){{
bulletWidth = 8f;
bulletHeight = 8f;
bulletShrink = 0f;
drag = -0.003f;
homingRange = 60f;
keepVelocity = false;
splashDamageRadius = 25f;
splashDamage = 10f;
lifetime = 80f;
trailColor = Palette.unitBack;
backColor = Palette.unitBack;
frontColor = Palette.unitFront;
hitEffect = Fx.blastExplosion;
despawnEffect = Fx.blastExplosion;
weaveScale = 6f;
weaveMag = 1f;
}};
standardCopper = new BasicBulletType(2.5f, 7, "bullet"){{
bulletWidth = 7f;
bulletHeight = 9f;
@@ -304,12 +323,14 @@ public class Bullets implements ContentList{
bulletWidth = 15f;
bulletHeight = 21f;
armorPierce = 0.2f;
shootEffect = Fx.shootBig;
}};
standardThoriumBig = new BasicBulletType(8f, 65, "bullet"){{
bulletWidth = 16f;
bulletHeight = 23f;
armorPierce = 0.5f;
shootEffect = Fx.shootBig;
}};
standardIncendiaryBig = new BasicBulletType(7f, 38, "bullet"){{
@@ -320,6 +341,7 @@ public class Bullets implements ContentList{
incendSpread = 3f;
incendAmount = 2;
incendChance = 0.3f;
shootEffect = Fx.shootBig;
}};
damageLightning = new BulletType(0.0001f, 0f){{
@@ -440,6 +462,11 @@ public class Bullets implements ContentList{
pierce = true;
}
@Override
public float range(){
return length;
}
@Override
public void init(Bullet b){
Damage.collideLine(b, b.getTeam(), hitEffect, b.x, b.y, b.rot(), length);

View File

@@ -1,7 +1,6 @@
package io.anuke.mindustry.content;
import io.anuke.arc.Core;
import io.anuke.mindustry.entities.Effects;
import io.anuke.arc.graphics.Blending;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.graphics.g2d.Draw;
@@ -9,13 +8,15 @@ import io.anuke.arc.graphics.g2d.TextureRegion;
import io.anuke.arc.math.Mathf;
import io.anuke.arc.math.geom.Rectangle;
import io.anuke.arc.util.Time;
import io.anuke.mindustry.entities.type.Player;
import io.anuke.mindustry.entities.Effects;
import io.anuke.mindustry.entities.Units;
import io.anuke.mindustry.entities.effect.Lightning;
import io.anuke.mindustry.entities.type.Player;
import io.anuke.mindustry.game.ContentList;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.graphics.Shaders;
import io.anuke.mindustry.type.Mech;
import io.anuke.mindustry.type.Weapon;
public class Mechs implements ContentList{
public static Mech alpha, delta, tau, omega, dart, javelin, trident, glaive;
@@ -34,9 +35,16 @@ public class Mechs implements ContentList{
mass = 1.2f;
speed = 0.5f;
boostSpeed = 0.85f;
weapon = Weapons.blaster;
trailColorTo = Color.valueOf("ffd37f");
health = 250f;
weapon = new Weapon("blaster"){{
length = 1.5f;
reload = 14f;
roundrobin = true;
ejectEffect = Fx.shellEjectSmall;
bullet = Bullets.standardMechSmall;
}};
}
@Override
@@ -57,8 +65,18 @@ public class Mechs implements ContentList{
health = 220f;
weaponOffsetX = -1;
weaponOffsetY = -1;
weapon = Weapons.shockgun;
trailColorTo = Color.valueOf("d3ddff");
weapon = new Weapon("shockgun"){{
length = 1f;
reload = 40f;
roundrobin = true;
shots = 1;
inaccuracy = 0f;
velocityRnd = 0.2f;
ejectEffect = Fx.none;
bullet = Bullets.lightning;
}};
}
@Override
@@ -91,9 +109,17 @@ public class Mechs implements ContentList{
drag = 0.35f;
boostSpeed = 0.8f;
canHeal = true;
weapon = Weapons.healBlaster;
health = 200f;
trailColorTo = Palette.heal;
weapon = new Weapon("heal-blaster"){{
length = 1.5f;
reload = 24f;
roundrobin = false;
ejectEffect = Fx.none;
recoil = 2f;
bullet = Bullets.healBullet;
}};
}
@Override
@@ -133,9 +159,20 @@ public class Mechs implements ContentList{
shake = 4f;
weaponOffsetX = 1;
weaponOffsetY = 0;
weapon = Weapons.swarmer;
trailColorTo = Color.valueOf("feb380");
health = 300f;
weapon = new Weapon("swarmer"){{
length = 1.5f;
recoil = 4f;
reload = 60f;
shots = 4;
spacing = 8f;
inaccuracy = 8f;
roundrobin = true;
ejectEffect = Fx.none;
shake = 3f;
bullet = Bullets.missileSwarm;
}};
}
@Override
@@ -189,11 +226,17 @@ public class Mechs implements ContentList{
speed = 0.4f;
drag = 0.1f;
health = 180f;
weapon = Weapons.blasterSmall;
weaponOffsetX = -1;
weaponOffsetY = -1;
trailColor = Palette.lightTrail;
cellTrnsY = 1f;
weapon = new Weapon("blaster"){{
length = 1.5f;
reload = 20f;
roundrobin = true;
ejectEffect = Fx.shellEjectSmall;
bullet = Bullets.standardCopper;
}};
}
@Override
@@ -212,9 +255,19 @@ public class Mechs implements ContentList{
drag = 0.01f;
mass = 2f;
health = 170f;
weapon = Weapons.missiles;
trailColor = Color.valueOf("d3ddff");
cellTrnsY = 1f;
weapon = new Weapon("missiles"){{
length = 1.5f;
reload = 70f;
shots = 4;
inaccuracy = 2f;
roundrobin = true;
ejectEffect = Fx.none;
velocityRnd = 0.2f;
spacing = 1f;
bullet = Bullets.missileJavelin;
}};
}
@Override
@@ -269,8 +322,19 @@ public class Mechs implements ContentList{
health = 220f;
itemCapacity = 30;
trailColor = Color.valueOf("84f491");
weapon = Weapons.bomberTrident;
cellTrnsY = 1f;
weapon = new Weapon("bomber"){{
length = 0f;
width = 2f;
reload = 8f;
shots = 2;
roundrobin = true;
ejectEffect = Fx.none;
velocityRnd = 1f;
inaccuracy = 40f;
ignoreRotation = true;
bullet = Bullets.bombExplosive;
}};
}
@Override
@@ -281,7 +345,6 @@ public class Mechs implements ContentList{
glaive = new Mech("glaive-ship", true){
{
weapon = Weapons.glaiveBlaster;
drillPower = 4;
mineSpeed = 1.3f;
speed = 0.32f;
@@ -291,6 +354,14 @@ public class Mechs implements ContentList{
itemCapacity = 60;
trailColor = Color.valueOf("feb380");
cellTrnsY = 1f;
weapon = new Weapon("bomber"){{
length = 1.5f;
reload = 13f;
roundrobin = true;
ejectEffect = Fx.shellEjectSmall;
bullet = Bullets.standardGlaive;
}};
}
};

View File

@@ -4,23 +4,34 @@ import io.anuke.arc.collection.ObjectSet;
import io.anuke.mindustry.entities.type.base.*;
import io.anuke.mindustry.game.ContentList;
import io.anuke.mindustry.type.UnitType;
import io.anuke.mindustry.type.Weapon;
public class UnitTypes implements ContentList{
public static UnitType
spirit, phantom,
wraith, ghoul, revenant,
dagger, crawler, titan, fortress, eruptor;
wraith, ghoul, revenant, lich, reaper,
dagger, crawler, titan, fortress, eruptor, chaosArray, eradicator;
@Override
public void load(){
spirit = new UnitType("spirit", Spirit.class, Spirit::new){{
weapon = Weapons.healBlasterDrone;
isFlying = true;
drag = 0.01f;
speed = 0.2f;
maxVelocity = 0.8f;
range = 50f;
health = 60;
engineSize = 1.8f;
engineOffset = 5.7f;
weapon = new Weapon("heal-blaster"){{
length = 1.5f;
reload = 40f;
width = 0.5f;
roundrobin = true;
ejectEffect = Fx.none;
recoil = 2f;
bullet = Bullets.healBullet;
}};
}};
dagger = new UnitType("dagger", Dagger.class, Dagger::new){{
@@ -29,8 +40,14 @@ public class UnitTypes implements ContentList{
drag = 0.4f;
hitsize = 8f;
mass = 1.75f;
weapon = Weapons.chainBlaster;
health = 130;
weapon = new Weapon("chain-blaster"){{
length = 1.5f;
reload = 28f;
roundrobin = true;
ejectEffect = Fx.shellEjectSmall;
bullet = Bullets.standardCopper;
}};
}};
crawler = new UnitType("crawler", Crawler.class, Crawler::new){{
@@ -39,8 +56,12 @@ public class UnitTypes implements ContentList{
drag = 0.4f;
hitsize = 8f;
mass = 1.75f;
weapon = Weapons.suicideBomb;
health = 100;
weapon = new Weapon("bomber"){{
reload = 12f;
ejectEffect = Fx.none;
bullet = Bullets.explode;
}};
}};
titan = new UnitType("titan", Titan.class, Titan::new){{
@@ -50,9 +71,16 @@ public class UnitTypes implements ContentList{
mass = 3.5f;
hitsize = 9f;
rotatespeed = 0.1f;
weapon = Weapons.flamethrower;
health = 440;
immunities.add(StatusEffects.burning);
weapon = new Weapon("flamethrower"){{
length = 1f;
reload = 14f;
roundrobin = true;
recoil = 1f;
ejectEffect = Fx.none;
bullet = Bullets.basicFlame;
}};
}};
fortress = new UnitType("fortress", Fortress.class, Fortress::new){{
@@ -62,10 +90,17 @@ public class UnitTypes implements ContentList{
mass = 5f;
hitsize = 10f;
rotatespeed = 0.06f;
weaponOffsetX = 1;
targetAir = false;
weapon = Weapons.artillery;
health = 800;
weapon = new Weapon("artillery"){{
length = 1f;
reload = 60f;
roundrobin = true;
recoil = 5f;
shake = 2f;
ejectEffect = Fx.shellEjectMedium;
bullet = Bullets.artilleryUnit;
}};
}};
eruptor = new UnitType("eruptor", Eruptor.class, Eruptor::new){{
@@ -75,11 +110,18 @@ public class UnitTypes implements ContentList{
mass = 5f;
hitsize = 9f;
rotatespeed = 0.05f;
weaponOffsetX = 3;
targetAir = false;
weapon = Weapons.eruption;
health = 600;
immunities = ObjectSet.with(StatusEffects.burning, StatusEffects.melting);
weapon = new Weapon("eruption"){{
length = 3f;
reload = 10f;
roundrobin = true;
ejectEffect = Fx.none;
bullet = Bullets.eruptorShot;
recoil = 1f;
width = 9f;
}};
}};
wraith = new UnitType("wraith", Wraith.class, Wraith::new){{
@@ -87,9 +129,16 @@ public class UnitTypes implements ContentList{
maxVelocity = 1.9f;
drag = 0.01f;
mass = 1.5f;
weapon = Weapons.chainBlaster;
isFlying = true;
health = 70;
engineOffset = 5.5f;
weapon = new Weapon("chain-blaster"){{
length = 1.5f;
reload = 28f;
roundrobin = true;
ejectEffect = Fx.shellEjectSmall;
bullet = Bullets.standardCopper;
}};
}};
ghoul = new UnitType("ghoul", Ghoul.class, Ghoul::new){{
@@ -100,23 +149,21 @@ public class UnitTypes implements ContentList{
drag = 0.01f;
isFlying = true;
targetAir = false;
weapon = Weapons.bomber;
}};
revenant = new UnitType("revenant", Revenant.class, Revenant::new){{
health = 250;
mass = 5f;
hitsize = 12f;
speed = 0.14f;
maxVelocity = 1.3f;
drag = 0.01f;
range = 80f;
isFlying = true;
weapon = Weapons.laserBurster;
engineOffset = 7.8f;
weapon = new Weapon("bomber"){{
length = 0f;
width = 2f;
reload = 12f;
roundrobin = true;
ejectEffect = Fx.none;
velocityRnd = 1f;
inaccuracy = 40f;
ignoreRotation = true;
bullet = Bullets.bombExplosive;
}};
}};
phantom = new UnitType("phantom", Phantom.class, Phantom::new){{
weapon = Weapons.healBlasterDrone2;
isFlying = true;
drag = 0.01f;
mass = 2f;
@@ -127,7 +174,108 @@ public class UnitTypes implements ContentList{
health = 220;
buildPower = 0.9f;
minePower = 1.1f;
engineOffset = 6.5f;
toMine = ObjectSet.with(Items.lead, Items.copper, Items.titanium);
weapon = new Weapon("heal-blaster"){{
length = 1.5f;
reload = 20f;
width = 0.5f;
roundrobin = true;
ejectEffect = Fx.none;
recoil = 2f;
bullet = Bullets.healBullet;
}};
}};
revenant = new UnitType("revenant", Revenant.class, Revenant::new){{
health = 400;
mass = 5f;
hitsize = 20f;
speed = 0.1f;
maxVelocity = 1f;
drag = 0.01f;
range = 80f;
shootCone = 40f;
isFlying = true;
rotateWeapon = true;
engineOffset = 12f;
engineSize = 3f;
rotatespeed = 0.01f;
attackLength = 90f;
baseRotateSpeed = 0.06f;
weapon = new Weapon("revenant-missiles"){{
length = 3f;
reload = 70f;
width = 10f;
shots = 2;
inaccuracy = 2f;
roundrobin = true;
ejectEffect = Fx.none;
velocityRnd = 0.2f;
spacing = 1f;
bullet = Bullets.missileRevenant;
}};
}};
lich = new UnitType("lich", Revenant.class, Revenant::new){{
health = 1500;
mass = 20f;
hitsize = 40f;
speed = 0.01f;
maxVelocity = 0.6f;
drag = 0.02f;
range = 80f;
shootCone = 20f;
isFlying = true;
rotateWeapon = true;
engineOffset = 22;
engineSize = 4f;
rotatespeed = 0.01f;
attackLength = 90f;
baseRotateSpeed = 0.04f;
weapon = new Weapon("lich-missiles"){{
length = 4f;
reload = 180f;
width = 22f;
shots = 20;
shotDelay = 2;
inaccuracy = 10f;
roundrobin = true;
ejectEffect = Fx.none;
velocityRnd = 0.2f;
spacing = 1f;
bullet = Bullets.missileRevenant;
}};
}};
reaper = new UnitType("reaper", Revenant.class, Revenant::new){{
health = 3000;
mass = 30f;
hitsize = 56f;
speed = 0.01f;
maxVelocity = 0.6f;
drag = 0.02f;
range = 80f;
shootCone = 30f;
isFlying = true;
rotateWeapon = true;
engineOffset = 40;
engineSize = 6f;
rotatespeed = 0.01f;
baseRotateSpeed = 0.04f;
weapon = new Weapon("reaper-gun"){{
length = 3f;
reload = 10f;
width = 32f;
shots = 1;
shake = 1f;
inaccuracy = 3f;
roundrobin = true;
ejectEffect = Fx.none;
bullet = Bullets.standardDenseBig;
}};
}};
}
}

View File

@@ -1,198 +0,0 @@
package io.anuke.mindustry.content;
import io.anuke.mindustry.game.ContentList;
import io.anuke.mindustry.type.Weapon;
public class Weapons implements ContentList{
public static Weapon blaster, blasterSmall, glaiveBlaster, droneBlaster, healBlaster, healBlasterDrone, chainBlaster, shockgun,
swarmer, bomber, bomberTrident, flakgun, flamethrower, missiles, artillery, laserBurster, healBlasterDrone2, suicideBomb,
eruption;
@Override
public void load(){
eruption = new Weapon("eruption"){{
length = 3f;
reload = 10f;
roundrobin = true;
ejectEffect = Fx.none;
ammo = Bullets.eruptorShot;
recoil = 1f;
width = 9f;
}};
blaster = new Weapon("blaster"){{
length = 1.5f;
reload = 14f;
roundrobin = true;
ejectEffect = Fx.shellEjectSmall;
ammo = Bullets.standardMechSmall;
}};
blasterSmall = new Weapon("blaster"){{
length = 1.5f;
reload = 20f;
roundrobin = true;
ejectEffect = Fx.shellEjectSmall;
ammo = Bullets.standardCopper;
}};
glaiveBlaster = new Weapon("bomber"){{
length = 1.5f;
reload = 13f;
roundrobin = true;
ejectEffect = Fx.shellEjectSmall;
ammo = Bullets.standardGlaive;
}};
droneBlaster = new Weapon("blaster"){{
length = 2f;
reload = 25f;
width = 1f;
roundrobin = true;
ejectEffect = Fx.shellEjectSmall;
ammo = Bullets.standardCopper;
}};
healBlaster = new Weapon("heal-blaster"){{
length = 1.5f;
reload = 24f;
roundrobin = false;
ejectEffect = Fx.none;
recoil = 2f;
ammo = Bullets.healBullet;
}};
missiles = new Weapon("missiles"){{
length = 1.5f;
reload = 70f;
shots = 4;
inaccuracy = 2f;
roundrobin = true;
ejectEffect = Fx.none;
velocityRnd = 0.2f;
spacing = 1f;
ammo = Bullets.missileJavelin;
}};
swarmer = new Weapon("swarmer"){{
length = 1.5f;
recoil = 4f;
reload = 60f;
shots = 4;
spacing = 8f;
inaccuracy = 8f;
roundrobin = true;
ejectEffect = Fx.none;
shake = 3f;
ammo = Bullets.missileSwarm;
}};
chainBlaster = new Weapon("chain-blaster"){{
length = 1.5f;
reload = 28f;
roundrobin = true;
ejectEffect = Fx.shellEjectSmall;
ammo = Bullets.standardCopper;
}};
shockgun = new Weapon("shockgun"){{
length = 1f;
reload = 40f;
roundrobin = true;
shots = 1;
inaccuracy = 0f;
velocityRnd = 0.2f;
ejectEffect = Fx.none;
ammo = Bullets.lightning;
}};
flakgun = new Weapon("flakgun"){{
length = 1f;
reload = 70f;
roundrobin = true;
shots = 1;
inaccuracy = 3f;
recoil = 3f;
velocityRnd = 0.1f;
ejectEffect = Fx.shellEjectMedium;
ammo = Bullets.artilleryDense;
}};
flamethrower = new Weapon("flamethrower"){{
length = 1f;
reload = 14f;
roundrobin = true;
recoil = 1f;
ejectEffect = Fx.none;
ammo = Bullets.basicFlame;
}};
artillery = new Weapon("artillery"){{
length = 1f;
reload = 60f;
roundrobin = true;
recoil = 5f;
shake = 2f;
ejectEffect = Fx.shellEjectMedium;
ammo = Bullets.artilleryUnit;
}};
suicideBomb = new Weapon("bomber"){{
reload = 12f;
ejectEffect = Fx.none;
ammo = Bullets.explode;
}};
bomber = new Weapon("bomber"){{
length = 0f;
width = 2f;
reload = 12f;
roundrobin = true;
ejectEffect = Fx.none;
velocityRnd = 1f;
inaccuracy = 40f;
ammo = Bullets.bombExplosive;
}};
bomberTrident = new Weapon("bomber"){{
length = 0f;
width = 2f;
reload = 8f;
shots = 2;
roundrobin = true;
ejectEffect = Fx.none;
velocityRnd = 1f;
inaccuracy = 40f;
ammo = Bullets.bombExplosive;
}};
laserBurster = new Weapon("bomber"){{
reload = 80f;
shake = 3f;
width = 0f;
roundrobin = true;
ejectEffect = Fx.none;
ammo = Bullets.lancerLaser;
}};
healBlasterDrone = new Weapon("heal-blaster"){{
length = 1.5f;
reload = 40f;
width = 0.5f;
roundrobin = true;
ejectEffect = Fx.none;
recoil = 2f;
ammo = Bullets.healBullet;
}};
healBlasterDrone2 = new Weapon("heal-blaster"){{
length = 1.5f;
reload = 20f;
width = 0.5f;
roundrobin = true;
ejectEffect = Fx.none;
recoil = 2f;
ammo = Bullets.healBullet;
}};
}
}