oicw little buddy proxy damage carrier class did not project sidedness to the server side damage protocol, skipping sidedness check altogether

This commit is contained in:
Fate-JH 2026-05-05 12:47:07 -04:00
parent fadd735b9f
commit 77292d2ee3
2 changed files with 19 additions and 6 deletions

View file

@ -4,6 +4,7 @@ package net.psforever.objects
import net.psforever.objects.ballistics.Projectile
import net.psforever.objects.definition.{ObjectDefinition, ProjectileDefinition}
import net.psforever.objects.serverobject.affinity.FactionAffinity
import net.psforever.objects.serverobject.interior.{InteriorAware, Sidedness}
import net.psforever.objects.vital.resolution.{DamageAndResistance, DamageResistanceModel}
import net.psforever.objects.vital.{Vitality, VitalityDefinition}
import net.psforever.types.{PlanetSideEmpire, PlanetSideGUID, Vector3}
@ -14,7 +15,10 @@ class DummyExplodingEntity(
)
extends PlanetSideGameObject
with FactionAffinity
with Vitality {
with Vitality
with InteriorAware {
lazy private val vdefin: DefinitionWrappedInVitality = new DefinitionWrappedInVitality(obj)
override def GUID: PlanetSideGUID = obj.GUID
override def Position: Vector3 = {
@ -37,13 +41,22 @@ class DummyExplodingEntity(
super.Velocity.orElse(obj.Velocity)
}
def WhichSide_=(thisSide: Sidedness): Sidedness = WhichSide
def WhichSide: Sidedness = {
obj match {
case awareSource: InteriorAware =>
awareSource.WhichSide
case _ =>
Sidedness.StrictlyBetweenSides
}
}
def Faction: PlanetSideEmpire.Value = faction
def DamageModel: DamageAndResistance = DummyExplodingEntity.DefaultDamageResistanceModel
def Definition: ObjectDefinition with VitalityDefinition = {
new DefinitionWrappedInVitality(obj)
}
def Definition: ObjectDefinition with VitalityDefinition = vdefin
}
private class DefinitionWrappedInVitality(private val entity: PlanetSideGameObject)

View file

@ -586,7 +586,7 @@ class Zone(val id: String, val map: ZoneMap, zoneNumber: Int) {
elapsedTime % 86400
}
def SetTimeOfDay(requestedTime: Float) = {
def SetTimeOfDay(requestedTime: Float): Unit = {
val now = System.currentTimeMillis()
val requestedTimeDiff = requestedTime / timeOfDaySpeed
@ -598,7 +598,7 @@ class Zone(val id: String, val map: ZoneMap, zoneNumber: Int) {
timeOfDaySpeed
}
def SetTimeOfDaySpeed(requestedSpeed: Float) = {
def SetTimeOfDaySpeed(requestedSpeed: Float): Unit = {
// store current time
val timeOfDay = GetTimeOfDay()