Fixed #5887
This commit is contained in:
@@ -465,7 +465,7 @@ public class Damage{
|
|||||||
for(int dx = -trad; dx <= trad; dx++){
|
for(int dx = -trad; dx <= trad; dx++){
|
||||||
for(int dy = -trad; dy <= trad; dy++){
|
for(int dy = -trad; dy <= trad; dy++){
|
||||||
Tile tile = world.tile(Math.round(x / tilesize) + dx, Math.round(y / tilesize) + dy);
|
Tile tile = world.tile(Math.round(x / tilesize) + dx, Math.round(y / tilesize) + dy);
|
||||||
if(tile != null && tile.build != null && (team == null ||team.isEnemy(tile.team())) && Mathf.dst(dx, dy) <= trad){
|
if(tile != null && tile.build != null && (team == null ||team.isEnemy(tile.team())) && dx*dx + dy*dy <= trad){
|
||||||
tile.build.damage(damage);
|
tile.build.damage(damage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -174,9 +174,9 @@ public class PowerGraph{
|
|||||||
return Math.min(excess, capacity);
|
return Math.min(excess, capacity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void distributePower(float needed, float produced){
|
public void distributePower(float needed, float produced, boolean charged){
|
||||||
//distribute even if not needed. this is because some might be requiring power but not using it; it updates consumers
|
//distribute even if not needed. this is because some might be requiring power but not using it; it updates consumers
|
||||||
float coverage = Mathf.zero(needed) && Mathf.zero(produced) ? 0f : Mathf.zero(needed) ? 1f : Math.min(1, produced / needed);
|
float coverage = Mathf.zero(needed) && Mathf.zero(produced) && !charged ? 0f : Mathf.zero(needed) ? 1f : Math.min(1, produced / needed);
|
||||||
for(Building consumer : consumers){
|
for(Building consumer : consumers){
|
||||||
Consumers consumes = consumer.block.consumes;
|
Consumers consumes = consumer.block.consumes;
|
||||||
if(consumes.hasPower()){
|
if(consumes.hasPower()){
|
||||||
@@ -233,6 +233,7 @@ public class PowerGraph{
|
|||||||
energyDelta = 0f;
|
energyDelta = 0f;
|
||||||
|
|
||||||
if(!(consumers.size == 0 && producers.size == 0 && batteries.size == 0)){
|
if(!(consumers.size == 0 && producers.size == 0 && batteries.size == 0)){
|
||||||
|
boolean charged = false;
|
||||||
|
|
||||||
if(!Mathf.equal(powerNeeded, powerProduced)){
|
if(!Mathf.equal(powerNeeded, powerProduced)){
|
||||||
if(powerNeeded > powerProduced){
|
if(powerNeeded > powerProduced){
|
||||||
@@ -240,11 +241,12 @@ public class PowerGraph{
|
|||||||
powerProduced += powerBatteryUsed;
|
powerProduced += powerBatteryUsed;
|
||||||
lastPowerProduced += powerBatteryUsed;
|
lastPowerProduced += powerBatteryUsed;
|
||||||
}else if(powerProduced > powerNeeded){
|
}else if(powerProduced > powerNeeded){
|
||||||
|
charged = true;
|
||||||
powerProduced -= chargeBatteries(powerProduced - powerNeeded);
|
powerProduced -= chargeBatteries(powerProduced - powerNeeded);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
distributePower(powerNeeded, powerProduced);
|
distributePower(powerNeeded, powerProduced, charged);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user