Proper shield arc velocity nullification
This commit is contained in:
@@ -92,11 +92,13 @@ public class ShieldArcAbility extends Ability{
|
|||||||
}else if(paramField.pushUnits && !(!unit.isFlying() && paramUnit.isFlying())){
|
}else if(paramField.pushUnits && !(!unit.isFlying() && paramUnit.isFlying())){
|
||||||
|
|
||||||
float reach = paramField.radius + paramField.width;
|
float reach = paramField.radius + paramField.width;
|
||||||
float overlapDst = reach - unit.dst(paramPos.x,paramPos.y);
|
float overlapDst = reach - unit.dst(paramPos.x, paramPos.y);
|
||||||
|
|
||||||
if(overlapDst > 0){
|
if(overlapDst > 0){
|
||||||
//stop
|
//only nullify velocity if it's heading towards the shield
|
||||||
unit.vel.setZero();
|
if(Angles.angleDist(unit.angleTo(paramPos), unit.vel.angle()) < 90f){
|
||||||
|
unit.vel.setZero();
|
||||||
|
}
|
||||||
// get out
|
// get out
|
||||||
unit.move(Tmp.v1.set(unit).sub(paramUnit).setLength(overlapDst + 0.01f));
|
unit.move(Tmp.v1.set(unit).sub(paramUnit).setLength(overlapDst + 0.01f));
|
||||||
|
|
||||||
|
|||||||
@@ -26,4 +26,4 @@ org.gradle.caching=true
|
|||||||
org.gradle.internal.http.socketTimeout=100000
|
org.gradle.internal.http.socketTimeout=100000
|
||||||
org.gradle.internal.http.connectionTimeout=100000
|
org.gradle.internal.http.connectionTimeout=100000
|
||||||
android.enableR8.fullMode=false
|
android.enableR8.fullMode=false
|
||||||
archash=181f842e5c
|
archash=acf486b6f6
|
||||||
|
|||||||
Reference in New Issue
Block a user