더 직관적인 논리식

This commit is contained in:
Sharlotte
2022-09-21 16:33:26 +09:00
parent 99bce1165c
commit b3cea2c27d

View File

@@ -44,8 +44,8 @@ public class RangeDraw extends OverDraw {
boolean includeBlock = settings.getBool("blockRange"), boolean includeBlock = settings.getBool("blockRange"),
includeUnit = settings.getBool("unitRange"), includeUnit = settings.getBool("unitRange"),
includeAir = settings.getBool("airRange"), includeAir = settings.getBool("airRange"), isAir = target == null || target.isFlying(),
includeGround = settings.getBool("groundRange"), includeGround = settings.getBool("groundRange"), isGround = target == null || !target.isFlying(),
includeAlice = settings.getBool("aliceRange"), includeAlice = settings.getBool("aliceRange"),
shader = settings.getBool("RangeShader"); shader = settings.getBool("RangeShader");
@@ -62,15 +62,18 @@ public class RangeDraw extends OverDraw {
&& building instanceof BaseTurret.BaseTurretBuild turret && isInCamera(building.x, building.y, turret.range()))) continue; && building instanceof BaseTurret.BaseTurretBuild turret && isInCamera(building.x, building.y, turret.range()))) continue;
boolean valid = false; boolean valid = false;
if (target == null) valid = true; if (building instanceof Turret.TurretBuild turretBuild) {
else if (building instanceof Turret.TurretBuild turretBuild) {
Turret block = (Turret) turretBuild.block; Turret block = (Turret) turretBuild.block;
if(block.targetAir && !includeAir || block.targetGround && !includeGround) continue; if ((building.team == player.team()
if((target.isFlying() ? block.targetAir : block.targetGround) && turretBuild.hasAmmo() && turretBuild.canConsume()) valid = true; || (block.targetAir && isAir && includeAir)
|| (block.targetGround && isGround && includeGround))
&& turretBuild.hasAmmo() && turretBuild.canConsume()) valid = true;
} else if (building instanceof TractorBeamTurret.TractorBeamBuild tractorBeamBuild) { } else if (building instanceof TractorBeamTurret.TractorBeamBuild tractorBeamBuild) {
TractorBeamTurret block = (TractorBeamTurret) tractorBeamBuild.block; TractorBeamTurret block = (TractorBeamTurret) tractorBeamBuild.block;
if(block.targetAir && !includeAir || block.targetGround && !includeGround) continue; if ((building.team == player.team()
if((target.isFlying() ? block.targetAir : block.targetGround) && tractorBeamBuild.canConsume()) valid = true; || (block.targetAir && isAir && includeAir)
|| (block.targetGround && isGround && includeGround))
&& tractorBeamBuild.canConsume()) valid = true;
} }
//non-base teams are considered as crux //non-base teams are considered as crux
@@ -90,10 +93,10 @@ public class RangeDraw extends OverDraw {
boolean valid = false; boolean valid = false;
if (target == null) valid = true; if (target == null) valid = true;
else if (!(unit.type.targetAir && !includeAir || unit.type.targetGround && !includeGround) else if ((unit.team == player.team()
&& (target.isFlying() ?unit.type.targetAir : unit.type.targetGround) || (unit.type.targetAir && isAir && includeAir)
&& unit.canShoot() || (unit.type.targetGround && isGround && includeGround))
) valid = true; && unit.canShoot()) valid = true;
//non-base teams are considered as crux //non-base teams are considered as crux
int index = valid ? unit.team.id > 5 ? 2 : unit.team.id : 0; int index = valid ? unit.team.id > 5 ? 2 : unit.team.id : 0;