Walker in tech tree
This commit is contained in:
@@ -2002,7 +2002,7 @@ block.small-deconstructor.name = Small Deconstructor
|
|||||||
block.canvas.name = Canvas
|
block.canvas.name = Canvas
|
||||||
block.world-processor.name = World Processor
|
block.world-processor.name = World Processor
|
||||||
block.world-cell.name = World Cell
|
block.world-cell.name = World Cell
|
||||||
block.shield-breaker.name = Shield Breaker
|
block.shield-breaker.name = Shield Breaker (temp name/sprite)
|
||||||
block.tank-fabricator.name = Tank Fabricator
|
block.tank-fabricator.name = Tank Fabricator
|
||||||
block.mech-fabricator.name = Mech Fabricator
|
block.mech-fabricator.name = Mech Fabricator
|
||||||
block.ship-fabricator.name = Ship Fabricator
|
block.ship-fabricator.name = Ship Fabricator
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ public class PhysicsProcess implements AsyncProcess{
|
|||||||
PhysicRef ref = entity.physref;
|
PhysicRef ref = entity.physref;
|
||||||
|
|
||||||
ref.body.layer =
|
ref.body.layer =
|
||||||
entity.type.allowLegStep ? layerLegs :
|
entity.type.allowLegStep && entity.type.legPhysicsLayer ? layerLegs :
|
||||||
entity.isGrounded() ? layerGround : layerFlying;
|
entity.isGrounded() ? layerGround : layerFlying;
|
||||||
ref.x = entity.x;
|
ref.x = entity.x;
|
||||||
ref.y = entity.y;
|
ref.y = entity.y;
|
||||||
|
|||||||
@@ -3761,39 +3761,34 @@ public class Blocks{
|
|||||||
diffuse = new ItemTurret("diffuse"){{
|
diffuse = new ItemTurret("diffuse"){{
|
||||||
requirements(Category.turret, with(Items.beryllium, 150, Items.silicon, 150, Items.graphite, 250));
|
requirements(Category.turret, with(Items.beryllium, 150, Items.silicon, 150, Items.graphite, 250));
|
||||||
|
|
||||||
Effect sfe = new MultiEffect(Fx.shootBigColor, Fx.colorSparkBig);
|
|
||||||
|
|
||||||
ammo(
|
ammo(
|
||||||
Items.graphite, new BasicBulletType(8f, 30){{
|
Items.graphite, new BasicBulletType(8f, 30){{
|
||||||
knockback = 5f;
|
knockback = 5f;
|
||||||
width = 25f;
|
width = 25f;
|
||||||
hitSize = 7f;
|
hitSize = 7f;
|
||||||
height = 20f;
|
height = 20f;
|
||||||
lifetime = 20f;
|
shootEffect = Fx.shootTitan;
|
||||||
shootEffect = sfe;
|
|
||||||
smokeEffect = Fx.shootBigSmoke;
|
smokeEffect = Fx.shootBigSmoke;
|
||||||
ammoMultiplier = 1;
|
ammoMultiplier = 4;
|
||||||
pierceCap = 2;
|
hitColor = backColor = trailColor = Color.valueOf("ea8878");
|
||||||
pierce = true;
|
|
||||||
pierceBuilding = true;
|
|
||||||
hitColor = backColor = trailColor = Pal.berylShot;
|
|
||||||
frontColor = Color.white;
|
frontColor = Color.white;
|
||||||
trailWidth = 5f;
|
trailWidth = 6f;
|
||||||
trailLength = 4;
|
trailLength = 3;
|
||||||
hitEffect = despawnEffect = Fx.hitBulletColor;
|
hitEffect = despawnEffect = Fx.hitBulletColor;
|
||||||
buildingDamageMultiplier = 0.3f;
|
buildingDamageMultiplier = 0.2f;
|
||||||
}}
|
}}
|
||||||
);
|
);
|
||||||
|
|
||||||
shoot = new ShootSpread(){{
|
shoot = new ShootSpread(){{
|
||||||
shots = 14;
|
shots = 15;
|
||||||
spread = 3f;
|
spread = 4f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
coolantMultiplier = 6f;
|
coolantMultiplier = 6f;
|
||||||
|
|
||||||
shootShake = 1f;
|
shootShake = 1f;
|
||||||
ammoPerShot = 1;
|
ammoPerShot = 1;
|
||||||
|
maxAmmo = 50;
|
||||||
drawer = new DrawTurret("reinforced-");
|
drawer = new DrawTurret("reinforced-");
|
||||||
shootY = 5f;
|
shootY = 5f;
|
||||||
outlineColor = Pal.darkOutline;
|
outlineColor = Pal.darkOutline;
|
||||||
@@ -3802,7 +3797,7 @@ public class Blocks{
|
|||||||
reload = 30f;
|
reload = 30f;
|
||||||
recoilAmount = 2f;
|
recoilAmount = 2f;
|
||||||
restitution = 0.03f;
|
restitution = 0.03f;
|
||||||
range = 190;
|
range = 100;
|
||||||
shootCone = 3f;
|
shootCone = 3f;
|
||||||
scaledHealth = 180;
|
scaledHealth = 180;
|
||||||
rotateSpeed = 2f;
|
rotateSpeed = 2f;
|
||||||
|
|||||||
@@ -281,34 +281,45 @@ public class ErekirTechTree{
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
node(basicReconstructor, Seq.with(new OnSector(three)), () -> {
|
node(mechFabricator, Seq.with(new OnSector(two)), () -> {
|
||||||
node(UnitTypes.latum);
|
node(UnitTypes.merui, () -> {
|
||||||
node(UnitTypes.avert);
|
|
||||||
node(UnitTypes.locus);
|
|
||||||
|
|
||||||
node(tankAssembler, Seq.with(new OnSector(three), new Research(constructor), new Research(atmosphericConcentrator)), () -> {
|
});
|
||||||
node(UnitTypes.vanquish, () -> {
|
|
||||||
node(UnitTypes.conquer, Seq.with(tmpNever), () -> {
|
node(shipFabricator, Seq.with(new OnSector(three)), () -> {
|
||||||
|
node(UnitTypes.osc, () -> {
|
||||||
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
node(shipAssembler, Seq.with(new OnSector(five)), () -> {
|
node(basicReconstructor, Seq.with(new OnSector(three)), () -> {
|
||||||
node(UnitTypes.quell, () -> {
|
node(UnitTypes.latum);
|
||||||
node(UnitTypes.disrupt, Seq.with(tmpNever), () -> {
|
node(UnitTypes.avert);
|
||||||
|
node(UnitTypes.locus);
|
||||||
|
|
||||||
|
node(tankAssembler, Seq.with(new OnSector(three), new Research(constructor), new Research(atmosphericConcentrator)), () -> {
|
||||||
|
node(UnitTypes.vanquish, () -> {
|
||||||
|
node(UnitTypes.conquer, Seq.with(tmpNever), () -> {
|
||||||
|
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
node(mechAssembler, Seq.with(tmpNever), () -> {
|
node(shipAssembler, Seq.with(new OnSector(five)), () -> {
|
||||||
node(UnitTypes.bulwark, () -> {
|
node(UnitTypes.quell, () -> {
|
||||||
node(UnitTypes.krepost, Seq.with(tmpNever), () -> {
|
node(UnitTypes.disrupt, Seq.with(tmpNever), () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
node(mechAssembler, Seq.with(tmpNever), () -> {
|
||||||
|
node(UnitTypes.bulwark, () -> {
|
||||||
|
node(UnitTypes.krepost, Seq.with(tmpNever), () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -2921,7 +2921,8 @@ public class UnitTypes{
|
|||||||
rippleScale = 0.2f;
|
rippleScale = 0.2f;
|
||||||
|
|
||||||
legMoveSpace = 1f;
|
legMoveSpace = 1f;
|
||||||
hovering = true;
|
allowLegStep = true;
|
||||||
|
legPhysicsLayer = false;
|
||||||
|
|
||||||
shadowElevation = 0.1f;
|
shadowElevation = 0.1f;
|
||||||
groundLayer = Layer.legUnit - 1f;
|
groundLayer = Layer.legUnit - 1f;
|
||||||
|
|||||||
@@ -178,6 +178,8 @@ public class UnitType extends UnlockableContent{
|
|||||||
rotateToBuilding = true,
|
rotateToBuilding = true,
|
||||||
/** if true and this is a legged unit, this unit can walk over blocks. */
|
/** if true and this is a legged unit, this unit can walk over blocks. */
|
||||||
allowLegStep = false,
|
allowLegStep = false,
|
||||||
|
/** for legged units, setting this to false forces it to be on the ground physics layer. */
|
||||||
|
legPhysicsLayer = true,
|
||||||
/** if true, this unit cannot drown, and will not be affected by the floor under it. */
|
/** if true, this unit cannot drown, and will not be affected by the floor under it. */
|
||||||
hovering = false,
|
hovering = false,
|
||||||
/** if true, this unit can move in any direction regardless of rotation. if false, this unit can only move in the direction it is facing. */
|
/** if true, this unit can move in any direction regardless of rotation. if false, this unit can only move in the direction it is facing. */
|
||||||
|
|||||||
@@ -505,8 +505,8 @@ public class Turret extends ReloadTurret{
|
|||||||
//TODO aimX / aimY for multi shot turrets?
|
//TODO aimX / aimY for multi shot turrets?
|
||||||
handleBullet(type.create(this, team, bulletX, bulletY, shootAngle, -1f, 1f + Mathf.range(velocityInaccuracy), lifeScl, null, mover, targetPos.x, targetPos.y), xOffset, yOffset, angleOffset);
|
handleBullet(type.create(this, team, bulletX, bulletY, shootAngle, -1f, 1f + Mathf.range(velocityInaccuracy), lifeScl, null, mover, targetPos.x, targetPos.y), xOffset, yOffset, angleOffset);
|
||||||
|
|
||||||
(shootEffect == Fx.none ? type.shootEffect : shootEffect).at(bulletX, bulletY, rotation, type.hitColor);
|
(shootEffect == Fx.none ? type.shootEffect : shootEffect).at(bulletX, bulletY, rotation + angleOffset, type.hitColor);
|
||||||
(smokeEffect == Fx.none ? type.smokeEffect : smokeEffect).at(bulletX, bulletY, rotation, type.hitColor);
|
(smokeEffect == Fx.none ? type.smokeEffect : smokeEffect).at(bulletX, bulletY, rotation + angleOffset, type.hitColor);
|
||||||
shootSound.at(bulletX, bulletY, Mathf.random(soundPitchMin, soundPitchMax));
|
shootSound.at(bulletX, bulletY, Mathf.random(soundPitchMin, soundPitchMax));
|
||||||
|
|
||||||
ammoUseEffect.at(
|
ammoUseEffect.at(
|
||||||
|
|||||||
Reference in New Issue
Block a user