Rule for extra core no-build radius per-team
This commit is contained in:
@@ -243,6 +243,10 @@ public class Rules{
|
||||
return (this.env & env) != 0;
|
||||
}
|
||||
|
||||
public float buildRadius(Team team){
|
||||
return enemyCoreBuildRadius + teams.get(team).extraCoreBuildRadius;
|
||||
}
|
||||
|
||||
public float unitBuildSpeed(Team team){
|
||||
return unitBuildSpeedMultiplier * teams.get(team).unitBuildSpeedMultiplier;
|
||||
}
|
||||
@@ -330,6 +334,9 @@ public class Rules{
|
||||
public float blockDamageMultiplier = 1f;
|
||||
/** Multiplier for building speed. */
|
||||
public float buildSpeedMultiplier = 1f;
|
||||
/** Extra spacing added to the no-build zone around the core. */
|
||||
public float extraCoreBuildRadius = 0f;
|
||||
|
||||
|
||||
//build cost disabled due to technical complexity
|
||||
}
|
||||
|
||||
@@ -56,6 +56,19 @@ public class Teams{
|
||||
return Geometry.findClosest(x, y, get(team).cores);
|
||||
}
|
||||
|
||||
public boolean anyEnemyCoresWithinBuildRadius(Team team, float x, float y){
|
||||
for(TeamData data : active){
|
||||
if(team != data.team){
|
||||
for(CoreBuild tile : data.cores){
|
||||
if(tile.within(x, y, state.rules.buildRadius(tile.team) + tilesize)){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean anyEnemyCoresWithin(Team team, float x, float y, float radius){
|
||||
for(TeamData data : active){
|
||||
if(team != data.team){
|
||||
|
||||
Reference in New Issue
Block a user