From 9ed39c6e2fe90573cbccf4cc60d52010875c7034 Mon Sep 17 00:00:00 2001 From: Fate-JH Date: Sat, 2 Mar 2024 23:09:15 -0500 Subject: [PATCH] driver as the killer, not the vehicle (#1171) --- src/main/scala/net/psforever/objects/SpecialEmp.scala | 4 ++-- .../objects/vehicles/control/VehicleCapacitance.scala | 4 ++-- .../net/psforever/objects/vital/etc/EmpReason.scala | 10 +++++++--- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/scala/net/psforever/objects/SpecialEmp.scala b/src/main/scala/net/psforever/objects/SpecialEmp.scala index 17da3b464..5578690af 100644 --- a/src/main/scala/net/psforever/objects/SpecialEmp.scala +++ b/src/main/scala/net/psforever/objects/SpecialEmp.scala @@ -118,8 +118,8 @@ object SpecialEmp { case _ => OwnerGuid_=(Some(owner.GUID)) } Position = position - def Faction = faction - def Definition = proxy_definition + def Faction: PlanetSideEmpire.Value = faction + def Definition: ObjectDefinition with VitalityDefinition = proxy_definition }) } diff --git a/src/main/scala/net/psforever/objects/vehicles/control/VehicleCapacitance.scala b/src/main/scala/net/psforever/objects/vehicles/control/VehicleCapacitance.scala index bb2ca9374..2b84932a9 100644 --- a/src/main/scala/net/psforever/objects/vehicles/control/VehicleCapacitance.scala +++ b/src/main/scala/net/psforever/objects/vehicles/control/VehicleCapacitance.scala @@ -1,7 +1,7 @@ // Copyright (c) 2021 PSForever package net.psforever.objects.vehicles.control -import akka.actor.Actor +import akka.actor.{Actor, Cancellable} import net.psforever.objects._ import net.psforever.services.Service import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage} @@ -16,7 +16,7 @@ trait VehicleCapacitance { _: Actor => def CapacitanceObject: Vehicle - protected var capacitor = Default.Cancellable + protected var capacitor: Cancellable = Default.Cancellable startCapacitorTimer() diff --git a/src/main/scala/net/psforever/objects/vital/etc/EmpReason.scala b/src/main/scala/net/psforever/objects/vital/etc/EmpReason.scala index 7269fab5d..f62b5a135 100644 --- a/src/main/scala/net/psforever/objects/vital/etc/EmpReason.scala +++ b/src/main/scala/net/psforever/objects/vital/etc/EmpReason.scala @@ -1,9 +1,9 @@ // Copyright (c) 2021 PSForever package net.psforever.objects.vital.etc -import net.psforever.objects.PlanetSideGameObject +import net.psforever.objects.{PlanetSideGameObject, Vehicle} import net.psforever.objects.serverobject.affinity.FactionAffinity -import net.psforever.objects.sourcing.SourceEntry +import net.psforever.objects.sourcing.{SourceEntry, VehicleSource} import net.psforever.objects.vital.Vitality import net.psforever.objects.vital.base.{DamageReason, DamageResolution} import net.psforever.objects.vital.prop.DamageWithPosition @@ -41,6 +41,10 @@ object EmpReason { source: DamageWithPosition, target: PlanetSideGameObject with Vitality ): EmpReason = { - EmpReason(SourceEntry(owner), source, target.DamageModel, owner.Definition.ObjectId) + val ownerSource = owner match { + case v: Vehicle => VehicleSource(v).occupants.head + case _ => SourceEntry(owner) + } + EmpReason(ownerSource, source, target.DamageModel, owner.Definition.ObjectId) } }