Validate teams with power links
This commit is contained in:
@@ -792,6 +792,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
|
||||
|
||||
for(Building other : proximity){
|
||||
if(other != null && other.power != null
|
||||
&& other.team == team
|
||||
&& !(block.consumesPower && other.block.consumesPower && !block.outputsPower && !other.block.outputsPower)
|
||||
&& conductsTo(other) && other.conductsTo(self()) && !power.links.contains(other.pos())){
|
||||
out.add(other);
|
||||
@@ -800,7 +801,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
|
||||
|
||||
for(int i = 0; i < power.links.size; i++){
|
||||
Tile link = world.tile(power.links.get(i));
|
||||
if(link != null && link.build != null && link.build.power != null) out.add(link.build);
|
||||
if(link != null && link.build != null && link.build.power != null && link.build.team == team) out.add(link.build);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ public class TractorBeamTurret extends BaseTurret{
|
||||
any = false;
|
||||
|
||||
//look at target
|
||||
if(target != null && target.within(this, range) && target.team() != team && target.checkTarget(targetAir, targetGround) && efficiency() > 0.02f){
|
||||
if(target != null && target.within(this, range + target.hitSize/2f) && target.team() != team && target.checkTarget(targetAir, targetGround) && efficiency() > 0.02f){
|
||||
if(!headless){
|
||||
control.sound.loop(shootSound, this, shootSoundVolume);
|
||||
}
|
||||
|
||||
@@ -95,7 +95,7 @@ public class RepairPoint extends Block{
|
||||
@Override
|
||||
public void updateTile(){
|
||||
boolean targetIsBeingRepaired = false;
|
||||
if(target != null && (target.dead() || target.dst(tile) > repairRadius || target.health() >= target.maxHealth())){
|
||||
if(target != null && (target.dead() || target.dst(tile) - target.hitSize/2f > repairRadius || target.health() >= target.maxHealth())){
|
||||
target = null;
|
||||
}else if(target != null && consValid()){
|
||||
target.heal(repairSpeed * Time.delta * strength * efficiency());
|
||||
|
||||
Reference in New Issue
Block a user