mirror of
https://github.com/Retera/WarsmashModEngine.git
synced 2022-07-31 17:38:59 +02:00
Disable auto attack for workers, fix NPE in return resources
This commit is contained in:
parent
2d8b3e7cae
commit
cacdf7f266
@ -342,7 +342,8 @@ public class CUnit extends CWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean autoAcquireAttackTargets(final CSimulation game, final boolean disableMove) {
|
public boolean autoAcquireAttackTargets(final CSimulation game, final boolean disableMove) {
|
||||||
if (!this.unitType.getAttacks().isEmpty()) {
|
if (!this.unitType.getAttacks().isEmpty()
|
||||||
|
&& !this.unitType.getClassifications().contains(CUnitClassification.PEON)) {
|
||||||
if (this.collisionRectangle != null) {
|
if (this.collisionRectangle != null) {
|
||||||
tempRect.set(this.collisionRectangle);
|
tempRect.set(this.collisionRectangle);
|
||||||
}
|
}
|
||||||
|
@ -47,10 +47,8 @@ public class CBehaviorAttack extends CAbstractRangedBehavior {
|
|||||||
if (simulation.getGameTurnTick() < this.unit.getCooldownEndTime()) {
|
if (simulation.getGameTurnTick() < this.unit.getCooldownEndTime()) {
|
||||||
range += this.unitAttack.getRangeMotionBuffer();
|
range += this.unitAttack.getRangeMotionBuffer();
|
||||||
}
|
}
|
||||||
final double rangeCheckDistance = this.unit.distance(this.target);
|
|
||||||
System.out.println("rangeCheckDistance=" + rangeCheckDistance);
|
|
||||||
return this.unit.canReach(this.target, range)
|
return this.unit.canReach(this.target, range)
|
||||||
&& (rangeCheckDistance >= this.unit.getUnitType().getMinimumAttackRange());
|
&& (this.unit.distance(this.target) >= this.unit.getUnitType().getMinimumAttackRange());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -26,8 +26,13 @@ public class CBehaviorReturnResources extends CAbstractRangedBehavior implements
|
|||||||
this.abilityHarvest = abilityHarvest;
|
this.abilityHarvest = abilityHarvest;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CBehaviorReturnResources reset(final CSimulation simulation) {
|
public CBehavior reset(final CSimulation simulation) {
|
||||||
innerReset(findNearestDropoffPoint(simulation));
|
final CUnit nearestDropoffPoint = findNearestDropoffPoint(simulation);
|
||||||
|
if (nearestDropoffPoint == null) {
|
||||||
|
// TODO it is unconventional not to return self here
|
||||||
|
return this.unit.pollNextOrderBehavior(simulation);
|
||||||
|
}
|
||||||
|
innerReset(nearestDropoffPoint);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,7 +133,6 @@ public class CUnitAttackMissileSplash extends CUnitAttackMissile {
|
|||||||
public boolean call(final CUnit enumUnit) {
|
public boolean call(final CUnit enumUnit) {
|
||||||
if (enumUnit.canBeTargetedBy(this.simulation, this.source, this.attack.areaOfEffectTargets)) {
|
if (enumUnit.canBeTargetedBy(this.simulation, this.source, this.attack.areaOfEffectTargets)) {
|
||||||
final double distance = enumUnit.distance(this.x, this.y);
|
final double distance = enumUnit.distance(this.x, this.y);
|
||||||
System.out.println("enum distance=" + distance);
|
|
||||||
if (distance <= (this.attack.areaOfEffectFullDamage)) {
|
if (distance <= (this.attack.areaOfEffectFullDamage)) {
|
||||||
enumUnit.damage(this.simulation, this.source, this.attack.getAttackType(),
|
enumUnit.damage(this.simulation, this.source, this.attack.getAttackType(),
|
||||||
this.attack.getWeaponSound(), this.damage);
|
this.attack.getWeaponSound(), this.damage);
|
||||||
|
Loading…
Reference in New Issue
Block a user