From eabf1beb02d5e07e17327c8e9bbc40d7812c4cf9 Mon Sep 17 00:00:00 2001 From: Mazo Date: Wed, 15 Jul 2020 23:44:36 +0100 Subject: [PATCH] Disable airpad / ground silo repairing functionality on vehicles that have been damaged within the last 5 seconds --- .../scala/net/psforever/objects/equipment/EffectTarget.scala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/common/src/main/scala/net/psforever/objects/equipment/EffectTarget.scala b/common/src/main/scala/net/psforever/objects/equipment/EffectTarget.scala index a63269f2..d69ee638 100644 --- a/common/src/main/scala/net/psforever/objects/equipment/EffectTarget.scala +++ b/common/src/main/scala/net/psforever/objects/equipment/EffectTarget.scala @@ -4,6 +4,7 @@ package net.psforever.objects.equipment import net.psforever.objects._ import net.psforever.objects.ce.DeployableCategory import net.psforever.objects.serverobject.turret.FacilityTurret +import net.psforever.objects.vital.DamagingActivity final case class TargetValidation(category: EffectTarget.Category.Value, test: EffectTarget.Validation.Value) @@ -41,7 +42,7 @@ object EffectTarget { def RepairSilo(target: PlanetSideGameObject): Boolean = target match { case v: Vehicle => - !GlobalDefinitions.isFlightVehicle(v.Definition) && v.Health > 0 && v.Health < v.MaxHealth + !GlobalDefinitions.isFlightVehicle(v.Definition) && v.Health > 0 && v.Health < v.MaxHealth && v.History.find(x => x.isInstanceOf[DamagingActivity] && x.t >= (System.nanoTime - 5000000000L)).isEmpty case _ => false } @@ -49,7 +50,7 @@ object EffectTarget { def PadLanding(target: PlanetSideGameObject): Boolean = target match { case v: Vehicle => - GlobalDefinitions.isFlightVehicle(v.Definition) && v.Health > 0 && v.Health < v.MaxHealth + GlobalDefinitions.isFlightVehicle(v.Definition) && v.Health > 0 && v.Health < v.MaxHealth && v.History.find(x => x.isInstanceOf[DamagingActivity] && x.t >= (System.nanoTime - 5000000000L)).isEmpty case _ => false }