Turret progress

This commit is contained in:
Anuken
2022-06-16 15:34:22 -04:00
parent 52b5ed57bf
commit 2109a25e3e
5 changed files with 43 additions and 31 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -2006,6 +2006,7 @@ block.breach.name = Breach
block.sublimate.name = Sublimate block.sublimate.name = Sublimate
block.titan.name = Titan block.titan.name = Titan
block.disperse.name = Disperse block.disperse.name = Disperse
block.afflict.name = Afflict
block.fabricator.name = Fabricator block.fabricator.name = Fabricator
block.tank-refabricator.name = Tank Refabricator block.tank-refabricator.name = Tank Refabricator
block.mech-refabricator.name = Mech Refabricator block.mech-refabricator.name = Mech Refabricator

View File

@@ -4079,6 +4079,8 @@ public class Blocks{
trailEffect = Fx.missileTrail; trailEffect = Fx.missileTrail;
trailInterval = 3f; trailInterval = 3f;
trailParam = 4f; trailParam = 4f;
pierceCap = 2;
fragOnHit = false;
speed = 5f; speed = 5f;
damage = 150f; damage = 150f;
lifetime = 80f; lifetime = 80f;
@@ -4097,36 +4099,37 @@ public class Blocks{
waveRad = 40f; waveRad = 40f;
}}; }};
intervalBullet = new LightningBulletType(){{ fragBullet = intervalBullet = new BasicBulletType(3f, 20){{
damage = 18; width = 9f;
collidesAir = false; hitSize = 5f;
ammoMultiplier = 1f; height = 15f;
lightningColor = Pal.surge; pierce = true;
lightningLength = 5; lifetime = 30f;
lightningLengthRand = 8; pierceBuilding = true;
hitColor = backColor = trailColor = Pal.surge;
//for visual stats only. frontColor = Color.white;
buildingDamageMultiplier = 0.25f; trailWidth = 2.1f;
trailLength = 5;
lightningType = new BulletType(0.0001f, 0f){{ hitEffect = despawnEffect = new WaveEffect(){{
lifetime = Fx.lightning.lifetime; colorFrom = colorTo = Pal.surge;
hitEffect = Fx.hitLancer; sizeTo = 4f;
despawnEffect = Fx.none; strokeFrom = 4f;
status = StatusEffects.shocked; lifetime = 10f;
statusDuration = 10f;
hittable = false;
lightColor = Color.white;
buildingDamageMultiplier = 0.25f;
}}; }};
buildingDamageMultiplier = 0.3f;
homingPower = 0.2f;
}}; }};
bulletInterval = 3f; bulletInterval = 3f;
intervalRandomSpread = 20f;
intervalBullets = 2;
intervalAngle = 180f;
intervalSpread = 280f;
lightningColor = Pal.surge; fragBullets = 20;
lightningDamage = 25; fragVelocityMin = 0.5f;
lightning = 8; fragVelocityMax = 1.5f;
lightningLength = 5; fragLifeMin = 0.5f;
lightningLengthRand = 8;
}}; }};
drawer = new DrawTurret("reinforced-"){{ drawer = new DrawTurret("reinforced-"){{
@@ -4153,7 +4156,7 @@ public class Blocks{
}}; }};
consumePower(2f); consumePower(2f);
heatRequirement = 8f; heatRequirement = 10f;
maxHeatEfficiency = 2f; maxHeatEfficiency = 2f;
inaccuracy = 1f; inaccuracy = 1f;
@@ -4162,11 +4165,11 @@ public class Blocks{
outlineColor = Pal.darkOutline; outlineColor = Pal.darkOutline;
size = 4; size = 4;
envEnabled |= Env.space; envEnabled |= Env.space;
reload = 80f; reload = 110f;
cooldownTime = reload; cooldownTime = reload;
recoil = 3f; recoil = 3f;
range = 290; range = 340;
shootCone = 15f; shootCone = 20f;
scaledHealth = 180; scaledHealth = 180;
rotateSpeed = 1.5f; rotateSpeed = 1.5f;
researchCostMultiplier = 0.05f; researchCostMultiplier = 0.05f;

View File

@@ -258,9 +258,10 @@ public class ErekirTechTree{
node(diffuse, Seq.with(new OnSector(two)), () -> { node(diffuse, Seq.with(new OnSector(two)), () -> {
node(sublimate, () -> { node(sublimate, () -> {
//TODO implement
node(titan, Seq.with(new OnSector(four)), () -> { node(titan, Seq.with(new OnSector(four)), () -> {
node(afflict, Seq.with(new OnSector(four)), () -> {
});
}); });
node(disperse, Seq.with(new OnSector(four)), () -> { node(disperse, Seq.with(new OnSector(four)), () -> {

View File

@@ -167,6 +167,12 @@ public class BulletType extends Content implements Cloneable{
public float bulletInterval = 20f; public float bulletInterval = 20f;
/** Number of bullet spawned per interval. */ /** Number of bullet spawned per interval. */
public int intervalBullets = 1; public int intervalBullets = 1;
/** Random spread of interval bullets. */
public float intervalRandomSpread = 360f;
/** Angle spread between individual interval bullets. */
public float intervalSpread = 0f;
/** Angle offset for interval bullets. */
public float intervalAngle = 0f;
/** Color used for hit/despawn effects. */ /** Color used for hit/despawn effects. */
public Color hitColor = Color.white; public Color hitColor = Color.white;
@@ -496,8 +502,9 @@ public class BulletType extends Content implements Cloneable{
public void updateBulletInterval(Bullet b){ public void updateBulletInterval(Bullet b){
if(intervalBullet != null && b.timer.get(2, bulletInterval)){ if(intervalBullet != null && b.timer.get(2, bulletInterval)){
float ang = b.rotation();
for(int i = 0; i < intervalBullets; i++){ for(int i = 0; i < intervalBullets; i++){
intervalBullet.create(b, b.x, b.y, Mathf.random(360f)); intervalBullet.create(b, b.x, b.y, ang + Mathf.range(intervalRandomSpread) + intervalAngle + ((i - (intervalBullets - 1f)/2f) * intervalSpread));
} }
} }
} }