Merge branch 'master' of https://github.com/Anuken/Mindustry into 7.0-features
Conflicts: core/assets/icons/icons.properties core/assets/logicids.dat core/src/mindustry/ui/dialogs/PlanetDialog.java core/src/mindustry/world/blocks/distribution/ItemBridge.java core/src/mindustry/world/blocks/liquid/LiquidExtendingBridge.java core/src/mindustry/world/blocks/storage/StorageBlock.java gradle.properties
This commit is contained in:
@@ -93,7 +93,7 @@ public class Blocks implements ContentList{
|
||||
commandCenter,
|
||||
groundFactory, airFactory, navalFactory,
|
||||
additiveReconstructor, multiplicativeReconstructor, exponentialReconstructor, tetrativeReconstructor,
|
||||
repairPoint, repairTurret, resupplyPoint,
|
||||
repairPoint, repairTurret,
|
||||
|
||||
//payloads
|
||||
payloadConveyor, payloadRouter, payloadPropulsionTower, deconstructor, constructor, largeConstructor, payloadLoader, payloadUnloader,
|
||||
@@ -131,7 +131,7 @@ public class Blocks implements ContentList{
|
||||
new ConstructBlock(i);
|
||||
}
|
||||
|
||||
deepwater = new Floor("deepwater"){{
|
||||
deepwater = new Floor("deep-water"){{
|
||||
speedMultiplier = 0.2f;
|
||||
variants = 0;
|
||||
liquidDrop = Liquids.water;
|
||||
@@ -144,7 +144,7 @@ public class Blocks implements ContentList{
|
||||
albedo = 0.5f;
|
||||
}};
|
||||
|
||||
water = new Floor("water"){{
|
||||
water = new Floor("shallow-water"){{
|
||||
speedMultiplier = 0.5f;
|
||||
variants = 0;
|
||||
status = StatusEffects.wet;
|
||||
@@ -198,7 +198,7 @@ public class Blocks implements ContentList{
|
||||
cacheLayer = CacheLayer.tar;
|
||||
}};
|
||||
|
||||
slag = new Floor("slag"){{
|
||||
slag = new Floor("molten-slag"){{
|
||||
drownTime = 150f;
|
||||
status = StatusEffects.melting;
|
||||
statusDuration = 240f;
|
||||
@@ -223,7 +223,7 @@ public class Blocks implements ContentList{
|
||||
|
||||
stone = new Floor("stone");
|
||||
|
||||
craters = new Floor("craters"){{
|
||||
craters = new Floor("crater-stone"){{
|
||||
variants = 3;
|
||||
blendGroup = stone;
|
||||
}};
|
||||
@@ -806,8 +806,8 @@ public class Blocks implements ContentList{
|
||||
craftTime = 35f;
|
||||
size = 2;
|
||||
|
||||
consumes.power(1f);
|
||||
consumes.liquid(Liquids.slag, 0.07f);
|
||||
consumes.power(1.1f);
|
||||
consumes.liquid(Liquids.slag, 4f / 60f);
|
||||
}};
|
||||
|
||||
disassembler = new Separator("disassembler"){{
|
||||
@@ -851,7 +851,9 @@ public class Blocks implements ContentList{
|
||||
craftTime = 40f;
|
||||
updateEffect = Fx.pulverizeSmall;
|
||||
hasItems = hasPower = true;
|
||||
drawer = new DrawRotator();
|
||||
drawer = new DrawRotator(){{
|
||||
drawSpinSprite = true;
|
||||
}};
|
||||
ambientSound = Sounds.grinding;
|
||||
ambientSoundVolume = 0.025f;
|
||||
|
||||
@@ -1142,15 +1144,20 @@ public class Blocks implements ContentList{
|
||||
|
||||
itemBridge = new BufferedItemBridge("bridge-conveyor"){{
|
||||
requirements(Category.distribution, with(Items.lead, 6, Items.copper, 6));
|
||||
fadeIn = moveArrows = false;
|
||||
range = 4;
|
||||
speed = 74f;
|
||||
arrowSpacing = 6f;
|
||||
bufferCapacity = 14;
|
||||
}};
|
||||
|
||||
phaseConveyor = new ItemBridge("phase-conveyor"){{
|
||||
requirements(Category.distribution, with(Items.phaseFabric, 5, Items.silicon, 7, Items.lead, 10, Items.graphite, 10));
|
||||
range = 12;
|
||||
arrowPeriod = 0.9f;
|
||||
arrowTimeScl = 2.75f;
|
||||
hasPower = true;
|
||||
pulse = true;
|
||||
consumes.power(0.30f);
|
||||
}};
|
||||
|
||||
@@ -1217,7 +1224,7 @@ public class Blocks implements ContentList{
|
||||
|
||||
mechanicalPump = new Pump("mechanical-pump"){{
|
||||
requirements(Category.liquid, with(Items.copper, 15, Items.metaglass, 10));
|
||||
pumpAmount = 0.11f;
|
||||
pumpAmount = 7f / 60f;
|
||||
}};
|
||||
|
||||
rotaryPump = new Pump("rotary-pump"){{
|
||||
@@ -1273,8 +1280,10 @@ public class Blocks implements ContentList{
|
||||
requirements(Category.liquid, with(Items.graphite, 2, Items.metaglass, 2));
|
||||
}};
|
||||
|
||||
bridgeConduit = new LiquidExtendingBridge("bridge-conduit"){{
|
||||
bridgeConduit = new LiquidBridge("bridge-conduit"){{
|
||||
requirements(Category.liquid, with(Items.graphite, 4, Items.metaglass, 8));
|
||||
fadeIn = moveArrows = false;
|
||||
arrowSpacing = 6f;
|
||||
range = 4;
|
||||
hasPower = false;
|
||||
}};
|
||||
@@ -1282,8 +1291,11 @@ public class Blocks implements ContentList{
|
||||
phaseConduit = new LiquidBridge("phase-conduit"){{
|
||||
requirements(Category.liquid, with(Items.phaseFabric, 5, Items.silicon, 7, Items.metaglass, 20, Items.titanium, 10));
|
||||
range = 12;
|
||||
arrowPeriod = 0.9f;
|
||||
arrowTimeScl = 2.75f;
|
||||
hasPower = true;
|
||||
canOverdrive = false;
|
||||
pulse = true;
|
||||
consumes.power(0.30f);
|
||||
}};
|
||||
|
||||
@@ -1463,6 +1475,7 @@ public class Blocks implements ContentList{
|
||||
drillEffect = Fx.mineHuge;
|
||||
rotateSpeed = 6f;
|
||||
warmupSpeed = 0.01f;
|
||||
itemCapacity = 20;
|
||||
|
||||
//more than the laser drill
|
||||
liquidBoostIntensity = 1.8f;
|
||||
@@ -1502,14 +1515,13 @@ public class Blocks implements ContentList{
|
||||
maxBoost = 2f;
|
||||
|
||||
consumes.power(80f / 60f);
|
||||
consumes.liquid(Liquids.water, 20f / 60f);
|
||||
consumes.liquid(Liquids.water, 18f / 60f);
|
||||
}};
|
||||
|
||||
oilExtractor = new Fracker("oil-extractor"){{
|
||||
requirements(Category.production, with(Items.copper, 150, Items.graphite, 175, Items.lead, 115, Items.thorium, 115, Items.silicon, 75));
|
||||
result = Liquids.oil;
|
||||
updateEffect = Fx.pulverize;
|
||||
liquidCapacity = 50f;
|
||||
updateEffectChance = 0.05f;
|
||||
pumpAmount = 0.25f;
|
||||
size = 3;
|
||||
@@ -1563,6 +1575,7 @@ public class Blocks implements ContentList{
|
||||
health = 3500;
|
||||
itemCapacity = 9000;
|
||||
size = 4;
|
||||
thrusterLength = 34/4f;
|
||||
|
||||
unitCapModifier = 16;
|
||||
researchCostMultiplier = 0.07f;
|
||||
@@ -1575,6 +1588,7 @@ public class Blocks implements ContentList{
|
||||
health = 6000;
|
||||
itemCapacity = 13000;
|
||||
size = 5;
|
||||
thrusterLength = 40/4f;
|
||||
|
||||
unitCapModifier = 24;
|
||||
researchCostMultiplier = 0.11f;
|
||||
@@ -1584,14 +1598,14 @@ public class Blocks implements ContentList{
|
||||
requirements(Category.effect, with(Items.titanium, 250, Items.thorium, 125));
|
||||
size = 3;
|
||||
itemCapacity = 1000;
|
||||
health = size * size * 60;
|
||||
health = size * size * 55;
|
||||
}};
|
||||
|
||||
container = new StorageBlock("container"){{
|
||||
requirements(Category.effect, with(Items.titanium, 100));
|
||||
size = 2;
|
||||
itemCapacity = 300;
|
||||
health = size * size * 60;
|
||||
health = size * size * 55;
|
||||
}};
|
||||
|
||||
unloader = new Unloader("unloader"){{
|
||||
@@ -1788,7 +1802,7 @@ public class Blocks implements ContentList{
|
||||
shots = 4;
|
||||
burstSpacing = 5;
|
||||
inaccuracy = 10f;
|
||||
range = 215f;
|
||||
range = 235f;
|
||||
xRand = 6f;
|
||||
size = 2;
|
||||
health = 300 * size * size;
|
||||
@@ -2029,13 +2043,13 @@ public class Blocks implements ContentList{
|
||||
range = 195f;
|
||||
reloadTime = 90f;
|
||||
firingMoveFract = 0.5f;
|
||||
shootDuration = 220f;
|
||||
shootDuration = 230f;
|
||||
powerUse = 17f;
|
||||
shootSound = Sounds.laserbig;
|
||||
loopSound = Sounds.beam;
|
||||
loopSoundVolume = 2f;
|
||||
|
||||
shootType = new ContinuousLaserBulletType(70){{
|
||||
shootType = new ContinuousLaserBulletType(75){{
|
||||
length = 200f;
|
||||
hitEffect = Fx.hitMeltdown;
|
||||
hitColor = Pal.meltdownHit;
|
||||
@@ -2200,17 +2214,6 @@ public class Blocks implements ContentList{
|
||||
acceptCoolant = true;
|
||||
}};
|
||||
|
||||
resupplyPoint = new ResupplyPoint("resupply-point"){{
|
||||
requirements(Category.units, BuildVisibility.ammoOnly, with(Items.lead, 20, Items.copper, 15, Items.silicon, 15));
|
||||
|
||||
size = 2;
|
||||
range = 80f;
|
||||
itemCapacity = 20;
|
||||
ammoAmount = 5;
|
||||
|
||||
consumes.item(Items.copper, 1);
|
||||
}};
|
||||
|
||||
//endregion
|
||||
//region payloads
|
||||
|
||||
@@ -2229,7 +2232,7 @@ public class Blocks implements ContentList{
|
||||
size = 5;
|
||||
reloadTime = 140f;
|
||||
chargeTime = 100f;
|
||||
range = 500f;
|
||||
range = 600f;
|
||||
maxPayloadSize = 3.5f;
|
||||
consumes.power(6f);
|
||||
}};
|
||||
|
||||
@@ -1,17 +1,9 @@
|
||||
package mindustry.content;
|
||||
|
||||
import arc.graphics.*;
|
||||
import arc.graphics.g2d.*;
|
||||
import arc.math.*;
|
||||
import arc.util.*;
|
||||
import mindustry.ctype.*;
|
||||
import mindustry.entities.*;
|
||||
import mindustry.entities.bullet.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.graphics.*;
|
||||
import mindustry.world.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
public class Bullets implements ContentList{
|
||||
public static BulletType
|
||||
@@ -113,6 +105,7 @@ public class Bullets implements ContentList{
|
||||
splashDamageRadius = 25f * 0.75f;
|
||||
splashDamage = 35f;
|
||||
status = StatusEffects.burning;
|
||||
statusDuration = 60f * 12f;
|
||||
frontColor = Pal.lightishOrange;
|
||||
backColor = Pal.lightOrange;
|
||||
makeFire = true;
|
||||
@@ -132,7 +125,6 @@ public class Bullets implements ContentList{
|
||||
frontColor = Pal.missileYellow;
|
||||
|
||||
status = StatusEffects.blasted;
|
||||
statusDuration = 60f;
|
||||
}};
|
||||
|
||||
flakGlassFrag = new BasicBulletType(3f, 5, "bullet"){{
|
||||
@@ -177,7 +169,7 @@ public class Bullets implements ContentList{
|
||||
width = 6f;
|
||||
height = 8f;
|
||||
hitEffect = Fx.flakExplosion;
|
||||
splashDamage = 22f * 1.5f;
|
||||
splashDamage = 25f * 1.5f;
|
||||
splashDamageRadius = 20f;
|
||||
fragBullet = flakGlassFrag;
|
||||
fragBullets = 6;
|
||||
@@ -342,11 +334,14 @@ public class Bullets implements ContentList{
|
||||
lifetime = 60f;
|
||||
}};
|
||||
|
||||
standardDenseBig = new BasicBulletType(7f, 55, "bullet"){{
|
||||
hitSize = 5;
|
||||
standardDenseBig = new BasicBulletType(7.5f, 50, "bullet"){{
|
||||
hitSize = 4.8f;
|
||||
width = 15f;
|
||||
height = 21f;
|
||||
shootEffect = Fx.shootBig;
|
||||
ammoMultiplier = 4;
|
||||
reloadMultiplier = 1.7f;
|
||||
knockback = 0.3f;
|
||||
}};
|
||||
|
||||
standardThoriumBig = new BasicBulletType(8f, 80, "bullet"){{
|
||||
@@ -359,7 +354,7 @@ public class Bullets implements ContentList{
|
||||
knockback = 0.7f;
|
||||
}};
|
||||
|
||||
standardIncendiaryBig = new BasicBulletType(7f, 60, "bullet"){{
|
||||
standardIncendiaryBig = new BasicBulletType(7f, 70, "bullet"){{
|
||||
hitSize = 5;
|
||||
width = 16f;
|
||||
height = 21f;
|
||||
@@ -370,50 +365,13 @@ public class Bullets implements ContentList{
|
||||
makeFire = true;
|
||||
pierceCap = 2;
|
||||
pierceBuilding = true;
|
||||
knockback = 0.7f;
|
||||
knockback = 0.7f;
|
||||
ammoMultiplier = 3;
|
||||
}};
|
||||
|
||||
fireball = new BulletType(1f, 4){
|
||||
{
|
||||
pierce = true;
|
||||
collidesTiles = false;
|
||||
collides = false;
|
||||
drag = 0.03f;
|
||||
hitEffect = despawnEffect = Fx.none;
|
||||
}
|
||||
fireball = new FireBulletType(1f, 4);
|
||||
|
||||
@Override
|
||||
public void init(Bullet b){
|
||||
b.vel.setLength(0.6f + Mathf.random(2f));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void draw(Bullet b){
|
||||
Draw.color(Pal.lightFlame, Pal.darkFlame, Color.gray, b.fin());
|
||||
Fill.circle(b.x, b.y, 3f * b.fout());
|
||||
Draw.reset();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(Bullet b){
|
||||
if(Mathf.chance(0.04 * Time.delta)){
|
||||
Tile tile = world.tileWorld(b.x, b.y);
|
||||
if(tile != null){
|
||||
Fires.create(tile);
|
||||
}
|
||||
}
|
||||
|
||||
if(Mathf.chance(0.1 * Time.delta)){
|
||||
Fx.fireballsmoke.at(b.x, b.y);
|
||||
}
|
||||
|
||||
if(Mathf.chance(0.1 * Time.delta)){
|
||||
Fx.ballfire.at(b.x, b.y);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
basicFlame = new BulletType(3.35f, 16f){{
|
||||
basicFlame = new BulletType(3.35f, 17f){{
|
||||
ammoMultiplier = 3f;
|
||||
hitSize = 7f;
|
||||
lifetime = 18f;
|
||||
@@ -428,13 +386,13 @@ public class Bullets implements ContentList{
|
||||
hittable = false;
|
||||
}};
|
||||
|
||||
pyraFlame = new BulletType(3.35f, 25f){{
|
||||
ammoMultiplier = 4f;
|
||||
pyraFlame = new BulletType(4f, 50f){{
|
||||
ammoMultiplier = 6f;
|
||||
hitSize = 7f;
|
||||
lifetime = 18f;
|
||||
pierce = true;
|
||||
collidesAir = false;
|
||||
statusDuration = 60f * 6;
|
||||
statusDuration = 60f * 10;
|
||||
shootEffect = Fx.shootPyraFlame;
|
||||
hitEffect = Fx.hitFlameSmall;
|
||||
despawnEffect = Fx.none;
|
||||
|
||||
@@ -130,7 +130,7 @@ public class Fx{
|
||||
Fill.circle(x, y, e.fslope() * 1.5f * size);
|
||||
}),
|
||||
|
||||
pointBeam = new Effect(25f, e -> {
|
||||
pointBeam = new Effect(25f, 300f, e -> {
|
||||
if(!(e.data instanceof Position)) return;
|
||||
|
||||
Position pos = e.data();
|
||||
@@ -184,6 +184,16 @@ public class Fx{
|
||||
Lines.square(e.x, e.y, tilesize / 2f * e.rotation + e.fin() * 3f);
|
||||
}),
|
||||
|
||||
coreLaunchConstruct = new Effect(35, e -> {
|
||||
color(Pal.accent);
|
||||
stroke(4f - e.fin() * 3f);
|
||||
Lines.square(e.x, e.y, tilesize / 2f * e.rotation * 1.2f + e.fin() * 5f);
|
||||
|
||||
randLenVectors(e.id, 5 + (int)(e.rotation * 5), e.rotation * 3f + (tilesize * e.rotation) * e.finpow() * 1.5f, (x, y) -> {
|
||||
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * (4f + e.rotation));
|
||||
});
|
||||
}),
|
||||
|
||||
tapBlock = new Effect(12, e -> {
|
||||
color(Pal.accent);
|
||||
stroke(3f - e.fin() * 2f);
|
||||
@@ -1628,7 +1638,7 @@ public class Fx{
|
||||
coalSmeltsmoke = new Effect(40f, e -> {
|
||||
randLenVectors(e.id, 0.2f + e.fin(), 4, 6.3f, (x, y, fin, out) -> {
|
||||
color(Color.darkGray, Pal.coalBlack, e.finpowdown());
|
||||
Fill.circle(e.x + x, e.y + y, out * 2f + 0.25f);
|
||||
Fill.circle(e.x + x, e.y + y, out * 2f + 0.35f);
|
||||
});
|
||||
}),
|
||||
|
||||
@@ -1869,6 +1879,13 @@ public class Fx{
|
||||
Lines.poly(e.x, e.y, 6, e.rotation + e.fin());
|
||||
}),
|
||||
|
||||
coreLandDust = new Effect(100f, e -> {
|
||||
color(e.color, e.fout(0.1f));
|
||||
rand.setSeed(e.id);
|
||||
Tmp.v1.trns(e.rotation, e.finpow() * 90f * rand.random(0.2f, 1f));
|
||||
Fill.circle(e.x + Tmp.v1.x, e.y + Tmp.v1.y, 8f * rand.random(0.6f, 1f) * e.fout(0.2f));
|
||||
}).layer(Layer.block + 1f),
|
||||
|
||||
unitShieldBreak = new Effect(35, e -> {
|
||||
if(!(e.data instanceof Unitc)) return;
|
||||
|
||||
@@ -1962,8 +1979,5 @@ public class Fx{
|
||||
}
|
||||
|
||||
Lines.endLine();
|
||||
}).followParent(false),
|
||||
|
||||
coreLand = new Effect(120f, e -> {
|
||||
});
|
||||
}).followParent(false);
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import arc.math.geom.*;
|
||||
import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import mindustry.ctype.*;
|
||||
import mindustry.graphics.*;
|
||||
import mindustry.graphics.g3d.*;
|
||||
import mindustry.graphics.g3d.PlanetGrid.*;
|
||||
import mindustry.maps.planet.*;
|
||||
@@ -85,6 +86,7 @@ public class Planets implements ContentList{
|
||||
atmosphereRadOut = 0.3f;
|
||||
startSector = 15;
|
||||
alwaysUnlocked = true;
|
||||
landCloudColor = Pal.spore.cpy().a(0.5f);
|
||||
}};
|
||||
|
||||
makeAsteroid("verlius", sun, Blocks.stoneWall, Blocks.iceWall, 0.5f, 12, 2f, gen -> {
|
||||
|
||||
@@ -69,12 +69,12 @@ public class StatusEffects implements ContentList{
|
||||
transitionDamage = 14;
|
||||
|
||||
init(() -> {
|
||||
affinity(shocked, ((unit, result, time) -> {
|
||||
affinity(shocked, (unit, result, time) -> {
|
||||
unit.damagePierce(transitionDamage);
|
||||
if(unit.team == state.rules.waveTeam){
|
||||
Events.fire(Trigger.shock);
|
||||
}
|
||||
}));
|
||||
});
|
||||
opposite(burning, melting);
|
||||
});
|
||||
}};
|
||||
@@ -96,11 +96,11 @@ public class StatusEffects implements ContentList{
|
||||
|
||||
init(() -> {
|
||||
opposite(wet, freezing);
|
||||
affinity(tarred, ((unit, result, time) -> {
|
||||
affinity(tarred, (unit, result, time) -> {
|
||||
unit.damagePierce(8f);
|
||||
Fx.burning.at(unit.x + Mathf.range(unit.bounds() / 2f), unit.y + Mathf.range(unit.bounds() / 2f));
|
||||
result.set(melting, Math.min(time + result.time, 200f));
|
||||
}));
|
||||
});
|
||||
});
|
||||
}};
|
||||
|
||||
@@ -133,8 +133,8 @@ public class StatusEffects implements ContentList{
|
||||
effect = Fx.oily;
|
||||
|
||||
init(() -> {
|
||||
affinity(melting, ((unit, result, time) -> result.set(melting, result.time + time)));
|
||||
affinity(burning, ((unit, result, time) -> result.set(burning, result.time + time)));
|
||||
affinity(melting, (unit, result, time) -> result.set(melting, result.time + time));
|
||||
affinity(burning, (unit, result, time) -> result.set(burning, result.time + time));
|
||||
});
|
||||
}};
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ import mindustry.entities.effect.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.graphics.*;
|
||||
import mindustry.type.*;
|
||||
import mindustry.type.ammo.*;
|
||||
import mindustry.type.weapons.*;
|
||||
import mindustry.world.meta.*;
|
||||
|
||||
@@ -52,8 +53,8 @@ public class UnitTypes implements ContentList{
|
||||
//air + payload, legacy
|
||||
public static @EntityDef(value = {Unitc.class, Payloadc.class}, legacy = true) UnitType quad;
|
||||
|
||||
//air + payload + ammo distribution
|
||||
public static @EntityDef({Unitc.class, Payloadc.class, AmmoDistributec.class}) UnitType oct;
|
||||
//air + payload + legacy (different branch)
|
||||
public static @EntityDef(value = {Unitc.class, Payloadc.class}, legacy = true) UnitType oct;
|
||||
|
||||
//air, legacy
|
||||
public static @EntityDef(value = {Unitc.class}, legacy = true) UnitType alpha, beta, gamma;
|
||||
@@ -89,6 +90,7 @@ public class UnitTypes implements ContentList{
|
||||
hitSize = 10f;
|
||||
health = 540;
|
||||
armor = 4f;
|
||||
ammoType = new ItemAmmoType(Items.coal);
|
||||
|
||||
immunities.add(StatusEffects.burning);
|
||||
|
||||
@@ -99,10 +101,10 @@ public class UnitTypes implements ContentList{
|
||||
reload = 11f;
|
||||
recoil = 1f;
|
||||
ejectEffect = Fx.none;
|
||||
bullet = new BulletType(4.1f, 32f){{
|
||||
bullet = new BulletType(4.1f, 35f){{
|
||||
ammoMultiplier = 3f;
|
||||
hitSize = 7f;
|
||||
lifetime = 12f;
|
||||
lifetime = 13f;
|
||||
pierce = true;
|
||||
statusDuration = 60f * 4;
|
||||
shootEffect = Fx.shootSmallFlame;
|
||||
@@ -123,6 +125,7 @@ public class UnitTypes implements ContentList{
|
||||
health = 900;
|
||||
armor = 9f;
|
||||
mechFrontSway = 0.55f;
|
||||
ammoType = new ItemAmmoType(Items.graphite);
|
||||
|
||||
weapons.add(new Weapon("artillery"){{
|
||||
top = false;
|
||||
@@ -156,6 +159,7 @@ public class UnitTypes implements ContentList{
|
||||
armor = 10f;
|
||||
canDrown = false;
|
||||
mechFrontSway = 1f;
|
||||
ammoType = new ItemAmmoType(Items.thorium);
|
||||
|
||||
mechStepParticles = true;
|
||||
mechStepShake = 0.15f;
|
||||
@@ -220,6 +224,7 @@ public class UnitTypes implements ContentList{
|
||||
canDrown = false;
|
||||
mechFrontSway = 1.9f;
|
||||
mechSideSway = 0.6f;
|
||||
ammoType = new ItemAmmoType(Items.thorium);
|
||||
|
||||
weapons.add(
|
||||
new Weapon("reign-weapon"){{
|
||||
@@ -282,7 +287,7 @@ public class UnitTypes implements ContentList{
|
||||
commandLimit = 8;
|
||||
|
||||
abilities.add(new RepairFieldAbility(10f, 60f * 4, 60f));
|
||||
ammoType = AmmoTypes.power;
|
||||
ammoType = new PowerAmmoType(1000);
|
||||
|
||||
weapons.add(new Weapon("heal-weapon"){{
|
||||
top = false;
|
||||
@@ -319,7 +324,7 @@ public class UnitTypes implements ContentList{
|
||||
commandLimit = 9;
|
||||
|
||||
abilities.add(new ShieldRegenFieldAbility(20f, 40f, 60f * 5, 60f));
|
||||
ammoType = AmmoTypes.power;
|
||||
ammoType = new PowerAmmoType(1300);
|
||||
|
||||
weapons.add(new Weapon("heal-shotgun-weapon"){{
|
||||
top = false;
|
||||
@@ -339,7 +344,7 @@ public class UnitTypes implements ContentList{
|
||||
|
||||
bullet = new LightningBulletType(){{
|
||||
lightningColor = hitColor = Pal.heal;
|
||||
damage = 12f;
|
||||
damage = 14f;
|
||||
lightningLength = 7;
|
||||
lightningLengthRand = 7;
|
||||
shootEffect = Fx.shootHeal;
|
||||
@@ -372,7 +377,7 @@ public class UnitTypes implements ContentList{
|
||||
|
||||
commandLimit = 10;
|
||||
mechFrontSway = 0.55f;
|
||||
ammoType = AmmoTypes.power;
|
||||
ammoType = new PowerAmmoType(1500);
|
||||
|
||||
speed = 0.4f;
|
||||
hitSize = 13f;
|
||||
@@ -408,23 +413,23 @@ public class UnitTypes implements ContentList{
|
||||
vela = new UnitType("vela"){{
|
||||
hitSize = 24f;
|
||||
|
||||
rotateSpeed = 1.6f;
|
||||
rotateSpeed = 1.7f;
|
||||
canDrown = false;
|
||||
mechFrontSway = 1f;
|
||||
buildSpeed = 3f;
|
||||
|
||||
mechStepParticles = true;
|
||||
mechStepShake = 0.15f;
|
||||
ammoType = AmmoTypes.powerHigh;
|
||||
ammoType = new PowerAmmoType(2500);
|
||||
|
||||
speed = 0.39f;
|
||||
speed = 0.44f;
|
||||
boostMultiplier = 2.2f;
|
||||
engineOffset = 12f;
|
||||
engineSize = 6f;
|
||||
lowAltitude = true;
|
||||
riseSpeed = 0.02f;
|
||||
|
||||
health = 7500f;
|
||||
health = 8200f;
|
||||
armor = 9f;
|
||||
canBoost = true;
|
||||
landShake = 4f;
|
||||
@@ -449,8 +454,8 @@ public class UnitTypes implements ContentList{
|
||||
cooldownTime = 200f;
|
||||
|
||||
bullet = new ContinuousLaserBulletType(){{
|
||||
damage = 30f;
|
||||
length = 175f;
|
||||
damage = 35f;
|
||||
length = 180f;
|
||||
hitEffect = Fx.hitMeltHeal;
|
||||
drawSize = 420f;
|
||||
lifetime = 160f;
|
||||
@@ -493,7 +498,7 @@ public class UnitTypes implements ContentList{
|
||||
hovering = true;
|
||||
visualElevation = 0.2f;
|
||||
allowLegStep = true;
|
||||
ammoType = AmmoTypes.powerHigh;
|
||||
ammoType = new PowerAmmoType(4000);
|
||||
groundLayer = Layer.legUnit;
|
||||
|
||||
speed = 0.3f;
|
||||
@@ -558,6 +563,7 @@ public class UnitTypes implements ContentList{
|
||||
health = 200;
|
||||
mechSideSway = 0.25f;
|
||||
range = 40f;
|
||||
ammoType = new ItemAmmoType(Items.coal);
|
||||
|
||||
weapons.add(new Weapon(){{
|
||||
reload = 24f;
|
||||
@@ -595,6 +601,7 @@ public class UnitTypes implements ContentList{
|
||||
legMoveSpace = 1.4f;
|
||||
hovering = true;
|
||||
armor = 3f;
|
||||
ammoType = new ItemAmmoType(Items.coal);
|
||||
|
||||
allowLegStep = true;
|
||||
visualElevation = 0.2f;
|
||||
@@ -634,7 +641,7 @@ public class UnitTypes implements ContentList{
|
||||
legBaseOffset = 2f;
|
||||
hovering = true;
|
||||
armor = 5f;
|
||||
ammoType = AmmoTypes.power;
|
||||
ammoType = new PowerAmmoType(1000);
|
||||
|
||||
buildSpeed = 0.75f;
|
||||
|
||||
@@ -706,7 +713,7 @@ public class UnitTypes implements ContentList{
|
||||
legLengthScl = 0.96f;
|
||||
rippleScale = 2f;
|
||||
legSpeed = 0.2f;
|
||||
ammoType = AmmoTypes.power;
|
||||
ammoType = new PowerAmmoType(2000);
|
||||
buildSpeed = 1f;
|
||||
|
||||
legSplashDamage = 32;
|
||||
@@ -810,7 +817,7 @@ public class UnitTypes implements ContentList{
|
||||
legLengthScl = 0.93f;
|
||||
rippleScale = 3f;
|
||||
legSpeed = 0.19f;
|
||||
ammoType = AmmoTypes.powerHigh;
|
||||
ammoType = new ItemAmmoType(Items.graphite, 8);
|
||||
buildSpeed = 1f;
|
||||
|
||||
legSplashDamage = 80;
|
||||
@@ -928,6 +935,9 @@ public class UnitTypes implements ContentList{
|
||||
engineOffset = 5.5f;
|
||||
range = 140f;
|
||||
targetAir = false;
|
||||
//as default AI, flares are not very useful in core rushes, they attack nothing in the way
|
||||
playerTargetFlags = new BlockFlag[]{null};
|
||||
targetFlags = new BlockFlag[]{BlockFlag.generator, null};
|
||||
commandLimit = 4;
|
||||
circleTarget = true;
|
||||
hitSize = 7;
|
||||
@@ -961,9 +971,12 @@ public class UnitTypes implements ContentList{
|
||||
range = 140f;
|
||||
faceTarget = false;
|
||||
armor = 3f;
|
||||
targetFlag = BlockFlag.factory;
|
||||
//do not rush core, attack closest
|
||||
playerTargetFlags = new BlockFlag[]{null};
|
||||
targetFlags = new BlockFlag[]{BlockFlag.factory, null};
|
||||
commandLimit = 5;
|
||||
circleTarget = true;
|
||||
ammoType = new ItemAmmoType(Items.graphite);
|
||||
|
||||
weapons.add(new Weapon(){{
|
||||
minShootVelocity = 0.75f;
|
||||
@@ -997,10 +1010,13 @@ public class UnitTypes implements ContentList{
|
||||
range = 140f;
|
||||
hitSize = 20f;
|
||||
lowAltitude = true;
|
||||
forceMultiTarget = true;
|
||||
armor = 5f;
|
||||
|
||||
targetFlags = new BlockFlag[]{BlockFlag.launchPad, BlockFlag.storage, BlockFlag.battery, null};
|
||||
engineOffset = 12f;
|
||||
engineSize = 3f;
|
||||
ammoType = new ItemAmmoType(Items.graphite);
|
||||
|
||||
weapons.add(new Weapon("zenith-missiles"){{
|
||||
reload = 40f;
|
||||
@@ -1045,7 +1061,8 @@ public class UnitTypes implements ContentList{
|
||||
engineOffset = 21;
|
||||
engineSize = 5.3f;
|
||||
hitSize = 46f;
|
||||
targetFlag = BlockFlag.battery;
|
||||
targetFlags = new BlockFlag[]{BlockFlag.generator, BlockFlag.core, null};
|
||||
ammoType = new ItemAmmoType(Items.thorium);
|
||||
|
||||
BulletType missiles = new MissileBulletType(2.7f, 14){{
|
||||
width = 8f;
|
||||
@@ -1120,7 +1137,8 @@ public class UnitTypes implements ContentList{
|
||||
hitSize = 58f;
|
||||
destructibleWreck = false;
|
||||
armor = 13f;
|
||||
targetFlag = BlockFlag.reactor;
|
||||
targetFlags = new BlockFlag[]{BlockFlag.reactor, BlockFlag.core, null};
|
||||
ammoType = new ItemAmmoType(Items.thorium);
|
||||
|
||||
BulletType fragBullet = new FlakBulletType(4f, 5){{
|
||||
shootEffect = Fx.shootBig;
|
||||
@@ -1200,7 +1218,7 @@ public class UnitTypes implements ContentList{
|
||||
range = 50f;
|
||||
isCounted = false;
|
||||
|
||||
ammoType = AmmoTypes.powerLow;
|
||||
ammoType = new PowerAmmoType(500);
|
||||
|
||||
mineTier = 1;
|
||||
mineSpeed = 2.5f;
|
||||
@@ -1221,7 +1239,7 @@ public class UnitTypes implements ContentList{
|
||||
hitSize = 9f;
|
||||
lowAltitude = true;
|
||||
|
||||
ammoType = AmmoTypes.power;
|
||||
ammoType = new PowerAmmoType(900);
|
||||
|
||||
mineTier = 2;
|
||||
mineSpeed = 3.5f;
|
||||
@@ -1281,7 +1299,7 @@ public class UnitTypes implements ContentList{
|
||||
buildSpeed = 2.6f;
|
||||
isCounted = false;
|
||||
|
||||
ammoType = AmmoTypes.power;
|
||||
ammoType = new PowerAmmoType(1100);
|
||||
|
||||
weapons.add(
|
||||
new Weapon("heal-weapon-mount"){{
|
||||
@@ -1317,7 +1335,7 @@ public class UnitTypes implements ContentList{
|
||||
quad = new UnitType("quad"){{
|
||||
armor = 8f;
|
||||
health = 6000;
|
||||
speed = 1.4f;
|
||||
speed = 1.3f;
|
||||
rotateSpeed = 2f;
|
||||
accel = 0.05f;
|
||||
drag = 0.017f;
|
||||
@@ -1333,9 +1351,9 @@ public class UnitTypes implements ContentList{
|
||||
buildBeamOffset = 23;
|
||||
range = 140f;
|
||||
targetAir = false;
|
||||
targetFlag = BlockFlag.battery;
|
||||
targetFlags = new BlockFlag[]{BlockFlag.battery, BlockFlag.factory, null};
|
||||
|
||||
ammoType = AmmoTypes.powerHigh;
|
||||
ammoType = new PowerAmmoType(3000);
|
||||
|
||||
weapons.add(
|
||||
new Weapon(){{
|
||||
@@ -1405,9 +1423,7 @@ public class UnitTypes implements ContentList{
|
||||
commandLimit = 6;
|
||||
lowAltitude = true;
|
||||
buildBeamOffset = 43;
|
||||
|
||||
ammoCapacity = 1300;
|
||||
ammoResupplyAmount = 20;
|
||||
ammoCapacity = 1;
|
||||
|
||||
abilities.add(new ForceFieldAbility(140f, 4f, 7000f, 60f * 8), new RepairFieldAbility(130f, 60f * 2, 140f));
|
||||
}};
|
||||
@@ -1475,6 +1491,7 @@ public class UnitTypes implements ContentList{
|
||||
accel = 0.3f;
|
||||
rotateSpeed = 2.6f;
|
||||
rotateShooting = false;
|
||||
ammoType = new ItemAmmoType(Items.graphite);
|
||||
|
||||
trailLength = 20;
|
||||
trailX = 5.5f;
|
||||
@@ -1518,6 +1535,7 @@ public class UnitTypes implements ContentList{
|
||||
hitSize = 20f;
|
||||
armor = 7f;
|
||||
rotateShooting = false;
|
||||
ammoType = new ItemAmmoType(Items.graphite);
|
||||
|
||||
trailLength = 22;
|
||||
trailX = 7f;
|
||||
@@ -1581,6 +1599,7 @@ public class UnitTypes implements ContentList{
|
||||
inaccuracy = 5f;
|
||||
velocityRnd = 0.1f;
|
||||
shootSound = Sounds.missile;
|
||||
ammoType = new ItemAmmoType(Items.thorium);
|
||||
|
||||
ejectEffect = Fx.none;
|
||||
bullet = new MissileBulletType(2.7f, 12){{
|
||||
@@ -1614,6 +1633,7 @@ public class UnitTypes implements ContentList{
|
||||
accel = 0.2f;
|
||||
rotateSpeed = 1.3f;
|
||||
rotateShooting = false;
|
||||
ammoType = new ItemAmmoType(Items.thorium);
|
||||
|
||||
trailLength = 50;
|
||||
trailX = 18f;
|
||||
@@ -1699,6 +1719,7 @@ public class UnitTypes implements ContentList{
|
||||
accel = 0.19f;
|
||||
rotateSpeed = 0.9f;
|
||||
rotateShooting = false;
|
||||
ammoType = new PowerAmmoType(4000);
|
||||
|
||||
float spawnTime = 60f * 15f;
|
||||
|
||||
@@ -1756,6 +1777,7 @@ public class UnitTypes implements ContentList{
|
||||
trailScl = 1.3f;
|
||||
rotateShooting = false;
|
||||
range = 100f;
|
||||
ammoType = new PowerAmmoType(900);
|
||||
|
||||
armor = 3f;
|
||||
|
||||
@@ -1833,6 +1855,7 @@ public class UnitTypes implements ContentList{
|
||||
trailX = 5.5f;
|
||||
trailY = -4f;
|
||||
trailScl = 1.9f;
|
||||
ammoType = new ItemAmmoType(Items.coal);
|
||||
|
||||
buildSpeed = 2f;
|
||||
|
||||
@@ -1901,6 +1924,7 @@ public class UnitTypes implements ContentList{
|
||||
hitSize = 20f;
|
||||
armor = 6f;
|
||||
rotateShooting = false;
|
||||
ammoType = new ItemAmmoType(Items.graphite);
|
||||
|
||||
trailLength = 23;
|
||||
trailX = 9f;
|
||||
@@ -2036,6 +2060,8 @@ public class UnitTypes implements ContentList{
|
||||
accel = 0.2f;
|
||||
rotateSpeed = 1.4f;
|
||||
rotateShooting = false;
|
||||
ammoType = new PowerAmmoType(3500);
|
||||
ammoCapacity = 40;
|
||||
|
||||
//clip size is massive due to energy field
|
||||
clipSize = 250f;
|
||||
@@ -2079,6 +2105,7 @@ public class UnitTypes implements ContentList{
|
||||
accel = 0.2f;
|
||||
rotateSpeed = 1.1f;
|
||||
rotateShooting = false;
|
||||
ammoType = new PowerAmmoType(4500);
|
||||
|
||||
trailLength = 70;
|
||||
trailX = 23f;
|
||||
|
||||
Reference in New Issue
Block a user