Unit artillery fix
This commit is contained in:
@@ -2261,7 +2261,7 @@ public class UnitTypes{
|
|||||||
bullet = new EmpBulletType(){{
|
bullet = new EmpBulletType(){{
|
||||||
float rad = 100f;
|
float rad = 100f;
|
||||||
|
|
||||||
scaleVelocity = true;
|
scaleLife = true;
|
||||||
lightOpacity = 0.7f;
|
lightOpacity = 0.7f;
|
||||||
unitDamageScl = 0.8f;
|
unitDamageScl = 0.8f;
|
||||||
healPercent = 20f;
|
healPercent = 20f;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public class ArtilleryBulletType extends BasicBulletType{
|
|||||||
collidesTiles = false;
|
collidesTiles = false;
|
||||||
collides = false;
|
collides = false;
|
||||||
collidesAir = false;
|
collidesAir = false;
|
||||||
scaleVelocity = true;
|
scaleLife = true;
|
||||||
hitShake = 1f;
|
hitShake = 1f;
|
||||||
hitSound = Sounds.explosion;
|
hitSound = Sounds.explosion;
|
||||||
hitEffect = Fx.flakExplosion;
|
hitEffect = Fx.flakExplosion;
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ public class BulletType extends Content implements Cloneable{
|
|||||||
/** Whether velocity is inherited from the shooter. */
|
/** Whether velocity is inherited from the shooter. */
|
||||||
public boolean keepVelocity = true;
|
public boolean keepVelocity = true;
|
||||||
/** Whether to scale lifetime (not actually velocity!) to disappear at the target position. Used for artillery. */
|
/** Whether to scale lifetime (not actually velocity!) to disappear at the target position. Used for artillery. */
|
||||||
public boolean scaleVelocity;
|
public boolean scaleLife;
|
||||||
/** Whether this bullet can be hit by point defense. */
|
/** Whether this bullet can be hit by point defense. */
|
||||||
public boolean hittable = true;
|
public boolean hittable = true;
|
||||||
/** Whether this bullet can be reflected. */
|
/** Whether this bullet can be reflected. */
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public class PointBulletType extends BulletType{
|
|||||||
public float trailSpacing = 10f;
|
public float trailSpacing = 10f;
|
||||||
|
|
||||||
public PointBulletType(){
|
public PointBulletType(){
|
||||||
scaleVelocity = true;
|
scaleLife = true;
|
||||||
lifetime = 100f;
|
lifetime = 100f;
|
||||||
collides = false;
|
collides = false;
|
||||||
keepVelocity = false;
|
keepVelocity = false;
|
||||||
|
|||||||
@@ -399,7 +399,7 @@ public class Weapon implements Cloneable{
|
|||||||
bulletX = mountX + Angles.trnsx(weaponRotation, this.shootX + xOffset, this.shootY + yOffset),
|
bulletX = mountX + Angles.trnsx(weaponRotation, this.shootX + xOffset, this.shootY + yOffset),
|
||||||
bulletY = mountY + Angles.trnsy(weaponRotation, this.shootX + xOffset, this.shootY + yOffset),
|
bulletY = mountY + Angles.trnsy(weaponRotation, this.shootX + xOffset, this.shootY + yOffset),
|
||||||
shootAngle = bulletRotation(unit, mount, bulletX, bulletY) + angleOffset,
|
shootAngle = bulletRotation(unit, mount, bulletX, bulletY) + angleOffset,
|
||||||
lifeScl = bullet.scaleVelocity ? Mathf.clamp(Mathf.dst(shootX, shootY, mount.aimX, mount.aimY) / bullet.range) : 1f,
|
lifeScl = bullet.scaleLife ? Mathf.clamp(Mathf.dst(bulletX, bulletY, mount.aimX, mount.aimY) / bullet.range) : 1f,
|
||||||
angle = angleOffset + shootAngle + Mathf.range(inaccuracy);
|
angle = angleOffset + shootAngle + Mathf.range(inaccuracy);
|
||||||
|
|
||||||
mount.bullet = bullet.create(unit, unit.team, bulletX, bulletY, angle, -1f, (1f - velocityRnd) + Mathf.random(velocityRnd), lifeScl, null, mover, mount.aimX, mount.aimY);
|
mount.bullet = bullet.create(unit, unit.team, bulletX, bulletY, angle, -1f, (1f - velocityRnd) + Mathf.random(velocityRnd), lifeScl, null, mover, mount.aimX, mount.aimY);
|
||||||
|
|||||||
@@ -500,7 +500,7 @@ public class Turret extends ReloadTurret{
|
|||||||
bulletY = y + Angles.trnsy(rotation - 90, shootX + xOffset, shootY + yOffset),
|
bulletY = y + Angles.trnsy(rotation - 90, shootX + xOffset, shootY + yOffset),
|
||||||
shootAngle = rotation + angleOffset + Mathf.range(inaccuracy);
|
shootAngle = rotation + angleOffset + Mathf.range(inaccuracy);
|
||||||
|
|
||||||
float lifeScl = type.scaleVelocity ? Mathf.clamp(Mathf.dst(bulletX, bulletY, targetPos.x, targetPos.y) / type.range, minRange / type.range, range() / type.range) : 1f;
|
float lifeScl = type.scaleLife ? Mathf.clamp(Mathf.dst(bulletX, bulletY, targetPos.x, targetPos.y) / type.range, minRange / type.range, range() / type.range) : 1f;
|
||||||
|
|
||||||
//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);
|
||||||
|
|||||||
Reference in New Issue
Block a user