Disabled spawnpoints during ongoing attack maps
This commit is contained in:
Binary file not shown.
@@ -49,7 +49,7 @@ public class WaveSpawner{
|
|||||||
|
|
||||||
/** @return true if the player is near a ground spawn point. */
|
/** @return true if the player is near a ground spawn point. */
|
||||||
public boolean playerNear(){
|
public boolean playerNear(){
|
||||||
return state.rules.waves && !player.dead() && spawns.contains(g -> Mathf.dst(g.x * tilesize, g.y * tilesize, player.x, player.y) < state.rules.dropZoneRadius && player.team() != state.rules.waveTeam);
|
return state.hasSpawns() && !player.dead() && spawns.contains(g -> Mathf.dst(g.x * tilesize, g.y * tilesize, player.x, player.y) < state.rules.dropZoneRadius && player.team() != state.rules.waveTeam);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void spawnEnemies(){
|
public void spawnEnemies(){
|
||||||
@@ -105,8 +105,10 @@ public class WaveSpawner{
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void eachGroundSpawn(SpawnConsumer cons){
|
private void eachGroundSpawn(SpawnConsumer cons){
|
||||||
for(Tile spawn : spawns){
|
if(state.hasSpawns()){
|
||||||
cons.accept(spawn.worldx(), spawn.worldy(), true);
|
for(Tile spawn : spawns){
|
||||||
|
cons.accept(spawn.worldx(), spawn.worldy(), true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(state.rules.attackMode && state.teams.isActive(state.rules.waveTeam) && !state.teams.playerCores().isEmpty()){
|
if(state.rules.attackMode && state.teams.isActive(state.rules.waveTeam) && !state.teams.playerCores().isEmpty()){
|
||||||
|
|||||||
@@ -48,6 +48,10 @@ public class GameState{
|
|||||||
state = astate;
|
state = astate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean hasSpawns(){
|
||||||
|
return rules.waves && !(isCampaign() && rules.attackMode);
|
||||||
|
}
|
||||||
|
|
||||||
/** Note that being in a campaign does not necessarily mean having a sector. */
|
/** Note that being in a campaign does not necessarily mean having a sector. */
|
||||||
public boolean isCampaign(){
|
public boolean isCampaign(){
|
||||||
return rules.sector != null;
|
return rules.sector != null;
|
||||||
|
|||||||
@@ -277,7 +277,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
|
|||||||
drag = type.drag * (isGrounded() ? (floorOn().dragMultiplier) : 1f);
|
drag = type.drag * (isGrounded() ? (floorOn().dragMultiplier) : 1f);
|
||||||
|
|
||||||
//apply knockback based on spawns
|
//apply knockback based on spawns
|
||||||
if(team != state.rules.waveTeam && state.rules.waves){
|
if(team != state.rules.waveTeam && state.hasSpawns()){
|
||||||
float relativeSize = state.rules.dropZoneRadius + hitSize/2f + 1f;
|
float relativeSize = state.rules.dropZoneRadius + hitSize/2f + 1f;
|
||||||
for(Tile spawn : spawner.getSpawns()){
|
for(Tile spawn : spawner.getSpawns()){
|
||||||
if(within(spawn.worldx(), spawn.worldy(), relativeSize)){
|
if(within(spawn.worldx(), spawn.worldy(), relativeSize)){
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ public class OverlayRenderer{
|
|||||||
Lines.stroke(2f);
|
Lines.stroke(2f);
|
||||||
Draw.color(Color.gray, Color.lightGray, Mathf.absin(Time.time(), 8f, 1f));
|
Draw.color(Color.gray, Color.lightGray, Mathf.absin(Time.time(), 8f, 1f));
|
||||||
|
|
||||||
if(state.rules.waves){
|
if(state.hasSpawns()){
|
||||||
for(Tile tile : spawner.getSpawns()){
|
for(Tile tile : spawner.getSpawns()){
|
||||||
if(tile.within(player.x, player.y, state.rules.dropZoneRadius + spawnerMargin)){
|
if(tile.within(player.x, player.y, state.rules.dropZoneRadius + spawnerMargin)){
|
||||||
Draw.alpha(Mathf.clamp(1f - (player.dst(tile) - state.rules.dropZoneRadius) / spawnerMargin));
|
Draw.alpha(Mathf.clamp(1f - (player.dst(tile) - state.rules.dropZoneRadius) / spawnerMargin));
|
||||||
|
|||||||
@@ -303,7 +303,8 @@ public class SectorDamage{
|
|||||||
|
|
||||||
//enemy units like to aim for a lot of non-essential things, so increase resulting health slightly
|
//enemy units like to aim for a lot of non-essential things, so increase resulting health slightly
|
||||||
info.sumHealth = sumHealth * 1.2f;
|
info.sumHealth = sumHealth * 1.2f;
|
||||||
info.sumDps = sumDps;
|
//players tend to have longer range units/turrets, so assume DPS is higher
|
||||||
|
info.sumDps = sumDps * 1.2f;
|
||||||
info.sumRps = sumRps;
|
info.sumRps = sumRps;
|
||||||
|
|
||||||
//finally, find an equation to put it all together and produce a 0-1 number
|
//finally, find an equation to put it all together and produce a 0-1 number
|
||||||
|
|||||||
Reference in New Issue
Block a user