radiation shielding of some vehicles and mountable entities restored

This commit is contained in:
Fate-JH 2025-12-04 18:03:35 -05:00
parent 0a030bd109
commit 3bf7ef27a4
4 changed files with 17 additions and 4 deletions

View file

@ -1634,6 +1634,7 @@ object GlobalDefinitionsVehicle {
droppod.Packet = new DroppodConverter()
droppod.DeconstructionTime = Some(5 seconds)
droppod.DestroyedModel = None //the adb calls out a droppod; the cyclic nature of this confounds me
droppod.RadiationShielding = 1.0f
droppod.DamageUsing = DamageCalculations.AgainstAircraft
droppod.DrownAtMaxDepth = false
droppod.mass = 2500f
@ -1667,6 +1668,7 @@ object GlobalDefinitionsVehicle {
orbital_shuttle.Packet = new OrbitalShuttleConverter
orbital_shuttle.DeconstructionTime = None
orbital_shuttle.DestroyedModel = None
orbital_shuttle.RadiationShielding = 1.0f
orbital_shuttle.DamageUsing = DamageCalculations.AgainstNothing
orbital_shuttle.DrownAtMaxDepth = false
orbital_shuttle.mass = 25000f

View file

@ -2,9 +2,11 @@
package net.psforever.objects.serverobject.terminals.implant
import net.psforever.objects.serverobject.hackable.Hackable
import net.psforever.objects.serverobject.mount.{Mountable, Seat}
import net.psforever.objects.serverobject.mount.{InteractWithRadiationCloudsSeatedInEntity, Mountable, Seat}
import net.psforever.objects.serverobject.structures.Amenity
import net.psforever.objects.serverobject.terminals.capture.CaptureTerminalAware
import net.psforever.objects.vital.resistance.StandardResistanceProfile
import net.psforever.objects.zones.interaction.InteractsWithZone
import net.psforever.packet.game.TriggeredSound
import net.psforever.types.Vector3
@ -17,7 +19,10 @@ class ImplantTerminalMech(private val idef: ImplantTerminalMechDefinition)
extends Amenity
with Mountable
with Hackable
with StandardResistanceProfile
with InteractsWithZone
with CaptureTerminalAware {
interaction(new InteractWithRadiationCloudsSeatedInEntity(obj = this, range = 50f))
seats = Map(0 -> new Seat(idef.Seats.head._2))
HackSound = TriggeredSound.HackTerminal

View file

@ -3,17 +3,23 @@ package net.psforever.objects.serverobject.turret
import net.psforever.objects.equipment.JammableUnit
import net.psforever.objects.serverobject.interior.Sidedness
import net.psforever.objects.serverobject.mount.InteractWithRadiationCloudsSeatedInEntity
import net.psforever.objects.serverobject.structures.{Amenity, AmenityOwner, Building}
import net.psforever.objects.serverobject.terminals.capture.CaptureTerminalAware
import net.psforever.objects.serverobject.turret.auto.AutomatedTurret
import net.psforever.objects.sourcing.SourceEntry
import net.psforever.objects.vital.resistance.StandardResistanceProfile
import net.psforever.objects.zones.interaction.InteractsWithZone
import net.psforever.types.Vector3
class FacilityTurret(tDef: FacilityTurretDefinition)
extends Amenity
with AutomatedTurret
with StandardResistanceProfile
with JammableUnit
with InteractsWithZone
with CaptureTerminalAware {
interaction(new InteractWithRadiationCloudsSeatedInEntity(obj = this, range = 100f))
WeaponTurret.LoadDefinition(turret = this)
WhichSide = Sidedness.OutsideOf

View file

@ -10,9 +10,9 @@ import net.psforever.objects.vital.damage.DamageProfile
* based on the assumption that the implementing object's `Definition` is the primary `ResistanceProfile`.
*/
trait StandardResistanceProfile extends ResistanceProfile {
this: PlanetSideGameObject =>
_: PlanetSideGameObject =>
//actually check that this will work for this implementing class
assert(Definition.isInstanceOf[ResistanceProfile], s"$this object definition must extend ResistanceProfile")
assert(Definition.isInstanceOf[ResistanceProfile], s"${this.getClass.getSimpleName} object definition must extend ResistanceProfile")
private val resistDef = Definition.asInstanceOf[ResistanceProfile] //cast only once
def Subtract: DamageProfile = resistDef.Subtract
@ -23,5 +23,5 @@ trait StandardResistanceProfile extends ResistanceProfile {
def ResistanceAggravated: Int = resistDef.ResistanceDirectHit
def RadiationShielding: Float = resistDef.ResistanceDirectHit.toFloat
def RadiationShielding: Float = resistDef.RadiationShielding
}