This commit is contained in:
Anuken
2022-06-29 17:38:10 -04:00
5 changed files with 21 additions and 4 deletions

View File

@@ -184,6 +184,12 @@ public class BulletType extends Content implements Cloneable{
public Seq<BulletType> spawnBullets = new Seq<>();
/** Unit spawned _instead of_ this bullet. Useful for missiles. */
public @Nullable UnitType spawnUnit;
/** Unit spawned when this bullet hits something or despawns due to it hitting the end of its lifetime. */
public @Nullable UnitType despawnUnit;
/** Amount of units spawned when this bullet despawns. */
public int despawnUnitCount = 1;
/** Random offset distance from the original bullet despawn/hit coordinate. */
public float despawnUnitRadius = 0.1f;
/** Color of trail behind bullet. */
public Color trailColor = Pal.missileYellowBack;
@@ -373,6 +379,7 @@ public class BulletType extends Content implements Cloneable{
}
createPuddles(b, x, y);
createIncend(b, x, y);
createUnits(b, x, y);
if(suppressionRange > 0){
//bullets are pooled, require separate Vec2 instance
@@ -432,17 +439,26 @@ public class BulletType extends Content implements Cloneable{
}
}
public void createUnits(Bullet b, float x, float y){
if(despawnUnit != null){
for(int i = 0; i < despawnUnitCount; i++){
despawnUnit.spawn(b.team, x + Mathf.range(despawnUnitRadius), y + Mathf.range(despawnUnitRadius));
}
}
}
/** Called when the bullet reaches the end of its lifetime or is destroyed by something external. */
public void despawned(Bullet b){
if(despawnHit){
hit(b);
}else{
createUnits(b, b.x, b.y);
}
if(!fragOnHit){
createFrags(b, b.x, b.y);
}
despawnEffect.at(b.x, b.y, b.rotation(), hitColor);
despawnSound.at(b);

View File

@@ -94,7 +94,7 @@ public class Rules{
public float dropZoneRadius = 300f;
/** Time between waves in ticks. */
public float waveSpacing = 2 * Time.toMinutes;
/** Starting wave spacing; if <0, uses waveSpacing * 2. */
/** Starting wave spacing; if <=0, uses waveSpacing * 2. */
public float initialWaveSpacing = 0f;
/** Wave after which the player 'wins'. Used in sectors. Use a value <= 0 to disable. */
public int winWave = 0;

View File

@@ -20,7 +20,7 @@ public class ShieldBreaker extends Block{
@Override
public boolean canBreak(Tile tile){
return false;
return Vars.state.isEditor();
}
public class ShieldBreakerBuild extends Building{

View File

@@ -115,7 +115,7 @@ public class CoreBlock extends StorageBlock{
@Override
public boolean canBreak(Tile tile){
return false;
return state.isEditor();
}
@Override