allowing scaled back bfr accessibility (#1280)

This commit is contained in:
Fate-JH 2025-07-31 01:12:16 -04:00 committed by GitHub
parent d3a60f1fc3
commit a00a95d152
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 59 additions and 40 deletions

View file

@ -96,12 +96,30 @@ add_property suppressor holstertime 600
add_property trek equiptime 500
add_property trek holstertime 500
add_property vulture requirement_award0 false
add_property aphelion allowed false
add_property aphelion allowed true
add_property aphelion_flight allowed false
add_property aphelion_gunner allowed false
add_property colossus allowed false
add_property aphelion_gunner allowed true
add_property aphelion_armor_siphon allowed false
add_property aphelion_armor_siphon_left allowed false
add_property aphelion_armor_siphon_right allowed false
add_property aphelion_ntu_siphon allowed false
add_property aphelion_ntu_siphon_left allowed false
add_property aphelion_ntu_siphon_right allowed false
add_property colossus allowed true
add_property colossus_flight allowed false
add_property colossus_gunner allowed false
add_property peregrine allowed false
add_property colossus_gunner allowed true
add_property colossus_armor_siphon allowed false
add_property colossus_armor_siphon_left allowed false
add_property colossus_armor_siphon_right allowed false
add_property colossus_ntu_siphon allowed false
add_property colossus_ntu_siphon_left allowed false
add_property colossus_ntu_siphon_right allowed false
add_property peregrine allowed true
add_property peregrine_flight allowed false
add_property peregrine_gunner allowed false
add_property peregrine_gunner allowed true
add_property peregrine_armor_siphon allowed false
add_property peregrine_armor_siphon_left allowed false
add_property peregrine_armor_siphon_right allowed false
add_property peregrine_ntu_siphon allowed false
add_property peregrine_ntu_siphon_left allowed false
add_property peregrine_ntu_siphon_right allowed false

View file

@ -870,7 +870,7 @@ class WeaponAndProjectileOperations(
"BattleframeLeftArm"
} else {
"BattleframeRightArm"
}).get.Enabled
}).exists(_.Enabled)
if (!mountIsEnabled) {
//can't stop the local discharge, but it will not actually shoot anything; assert the magazine
sendResponse(QuantityUpdateMessage(tool.AmmoSlot.Box.GUID, tool.Magazine))

View file

@ -110,6 +110,6 @@ class BattleFrameFlightConverter extends ObjectCreateConverter[Vehicle]() {
}
def showBfrShield(obj: Vehicle): Boolean = {
obj.Subsystems(VehicleSubsystemEntry.BattleframeShieldGenerator).get.Enabled && obj.Shields > 0
obj.Subsystems(VehicleSubsystemEntry.BattleframeShieldGenerator).exists(_.Enabled) && obj.Shields > 0
}
}

View file

@ -110,6 +110,6 @@ class BattleFrameRoboticsConverter extends ObjectCreateConverter[Vehicle]() {
}
def showBfrShield(obj: Vehicle): Boolean = {
obj.Subsystems(VehicleSubsystemEntry.BattleframeShieldGenerator).get.Enabled && obj.Shields > 0
obj.Subsystems(VehicleSubsystemEntry.BattleframeShieldGenerator).exists(_.Enabled) && obj.Shields > 0
}
}

View file

@ -2056,7 +2056,7 @@ object GlobalDefinitionsProjectile {
aphelion_plasma_rocket_projectile.DamageAtEdge = .1f
aphelion_plasma_rocket_projectile.DamageRadius = 3f
aphelion_plasma_rocket_projectile.ProjectileDamageType = DamageType.Splash
aphelion_plasma_rocket_projectile.DamageProxy = 96 //aphelion_plama_cloud
//aphelion_plasma_rocket_projectile.DamageProxy = 96 //aphelion_plama_cloud
aphelion_plasma_rocket_projectile.InitialVelocity = 75
aphelion_plasma_rocket_projectile.Lifespan = 5f
ProjectileDefinition.CalculateDerivedFields(aphelion_plasma_rocket_projectile)
@ -2221,7 +2221,7 @@ object GlobalDefinitionsProjectile {
peregrine_particle_cannon_projectile.DamageAtEdge = 0.1f
peregrine_particle_cannon_projectile.DamageRadius = 3f
peregrine_particle_cannon_projectile.ProjectileDamageType = DamageType.Splash
peregrine_particle_cannon_projectile.DamageProxy = 655 //peregrine_particle_cannon_radiation_cloud
//peregrine_particle_cannon_projectile.DamageProxy = 655 //peregrine_particle_cannon_radiation_cloud
peregrine_particle_cannon_projectile.InitialVelocity = 500
peregrine_particle_cannon_projectile.Lifespan = .6f
ProjectileDefinition.CalculateDerivedFields(peregrine_particle_cannon_projectile)

View file

@ -46,7 +46,7 @@ object GlobalDefinitionsVehicle {
restriction = MaxOnly
}
val controlSubsystem = List(VehicleSubsystemEntry.Controls)
val controlSubsystem: List[VehicleSubsystemEntry] = List(VehicleSubsystemEntry.Controls)
fury.Name = "fury"
fury.MaxHealth = 650
@ -1162,7 +1162,7 @@ object GlobalDefinitionsVehicle {
bailable = true
}
val flightSubsystems = List(VehicleSubsystemEntry.Controls, VehicleSubsystemEntry.Ejection)
val flightSubsystems: List[VehicleSubsystemEntry] = List(VehicleSubsystemEntry.Controls, VehicleSubsystemEntry.Ejection)
val variantConverter = new VariantVehicleConverter
mosquito.Name = "mosquito"
@ -1684,20 +1684,20 @@ object GlobalDefinitionsVehicle {
bailable = true
}
val normalSeat = new SeatDefinition()
val bfrSubsystems = List(
VehicleSubsystemEntry.BattleframeMovementServos,
VehicleSubsystemEntry.BattleframeSensorArray,
VehicleSubsystemEntry.BattleframeShieldGenerator,
VehicleSubsystemEntry.BattleframeTrunk
val bfrSubsystems: List[VehicleSubsystemEntry] = List(
// VehicleSubsystemEntry.BattleframeMovementServos,
// VehicleSubsystemEntry.BattleframeSensorArray,
VehicleSubsystemEntry.BattleframeShieldGenerator//,
// VehicleSubsystemEntry.BattleframeTrunk
)
val bfrGunnerSubsystems = List(
val bfrGunnerSubsystems: List[VehicleSubsystemEntry] = List(
VehicleSubsystemEntry.BattleframeLeftArm,
VehicleSubsystemEntry.BattleframeRightArm,
VehicleSubsystemEntry.BattleframeLeftWeapon,
VehicleSubsystemEntry.BattleframeRightWeapon,
VehicleSubsystemEntry.BattleframeGunnerWeapon
VehicleSubsystemEntry.BattleframeRightArm//,
// VehicleSubsystemEntry.BattleframeLeftWeapon,
// VehicleSubsystemEntry.BattleframeRightWeapon,
// VehicleSubsystemEntry.BattleframeGunnerWeapon
) ++ bfrSubsystems
val bfrFlightSubsystems = List(
val bfrFlightSubsystems: List[VehicleSubsystemEntry] = List(
VehicleSubsystemEntry.BattleframeFlightLeftArm,
VehicleSubsystemEntry.BattleframeFlightRightArm,
VehicleSubsystemEntry.BattleframeFlightLeftWeapon,
@ -1735,7 +1735,7 @@ object GlobalDefinitionsVehicle {
aphelion_gunner.AutoPilotSpeeds = (5, 1)
aphelion_gunner.Packet = battleFrameConverter
aphelion_gunner.DestroyedModel = None
aphelion_gunner.destructionDelay = Some(4000L)
//aphelion_gunner.destructionDelay = Some(4000L)
aphelion_gunner.JackingDuration = Array(0, 62, 60, 30)
aphelion_gunner.RadiationShielding = 0.5f
aphelion_gunner.DamageUsing = DamageCalculations.AgainstBfr
@ -1787,7 +1787,7 @@ object GlobalDefinitionsVehicle {
colossus_gunner.AutoPilotSpeeds = (5, 1)
colossus_gunner.Packet = battleFrameConverter
colossus_gunner.DestroyedModel = None
colossus_gunner.destructionDelay = Some(4000L)
//colossus_gunner.destructionDelay = Some(4000L)
colossus_gunner.JackingDuration = Array(0, 62, 60, 30)
colossus_gunner.RadiationShielding = 0.5f
colossus_gunner.DamageUsing = DamageCalculations.AgainstBfr
@ -1839,7 +1839,7 @@ object GlobalDefinitionsVehicle {
peregrine_gunner.AutoPilotSpeeds = (5, 1)
peregrine_gunner.Packet = battleFrameConverter
peregrine_gunner.DestroyedModel = None
peregrine_gunner.destructionDelay = Some(4000L)
//peregrine_gunner.destructionDelay = Some(4000L)
peregrine_gunner.JackingDuration = Array(0, 62, 60, 30)
peregrine_gunner.RadiationShielding = 0.5f
peregrine_gunner.DamageUsing = DamageCalculations.AgainstBfr

View file

@ -18,7 +18,7 @@ sealed abstract class VehicleSubsystemConditionModifier(
) extends IntEnumEntry
object VehicleSubsystemConditionModifier extends IntEnum[VehicleSubsystemConditionModifier] {
val values = findValues
val values: IndexedSeq[VehicleSubsystemConditionModifier] = findValues
case object Off extends VehicleSubsystemConditionModifier(value = 1065353216, multiplier = 0f, addend = 0)

View file

@ -134,7 +134,7 @@ class BfrControl(vehicle: Vehicle)
item.asInstanceOf[Tool],
dimorph.transform(Handiness.Generic).asInstanceOf[ToolDefinition]
)
case _ => ; //no dimorphic entry; place as-is
case _ => () //no dimorphic entry; place as-is
}
val guid0 = PlanetSideGUID(0)
//if the weapon arm is disabled, enable it for later (makes life easy)
@ -173,7 +173,8 @@ class BfrControl(vehicle: Vehicle)
override def dismountCleanup(seatBeingDismounted: Int, player: Player): Unit = {
super.dismountCleanup(seatBeingDismounted, player)
if (!vehicle.Seats.values.exists(_.isOccupied)) {
vehicle.Subsystems(VehicleSubsystemEntry.BattleframeShieldGenerator) match {
vehicle
.Subsystems(VehicleSubsystemEntry.BattleframeShieldGenerator) match {
case Some(subsys) =>
if (vehicle.Shields > 0) {
vehicleSubsystemMessages(
@ -190,7 +191,7 @@ class BfrControl(vehicle: Vehicle)
}
)
}
case _ => ;
case _ => ()
}
}
}
@ -203,7 +204,7 @@ class BfrControl(vehicle: Vehicle)
if !subsys.Enabled && vehicle.Shields > 0 && subsys.Enabled_=(state = true) =>
//if the shield is damaged, it does not turn on until the damaged is cleared
vehicleSubsystemMessages(subsys.changedMessages(vehicle))
case _ => ;
case _ => ()
}
}
}
@ -425,9 +426,9 @@ class BfrControl(vehicle: Vehicle)
zone.id,
VehicleAction.GenericObjectAction(doNotSendTo, useThisGuid, action)
)
case _ => ;
case _ => ()
}
case _ => ;
case _ => ()
}
}
}
@ -602,7 +603,7 @@ class BfrControl(vehicle: Vehicle)
)
)
}
case _ => ;
case _ => ()
}
}
}

View file

@ -58,20 +58,20 @@ class BfrFlightControl(vehicle: Vehicle)
case Some(drain) if localFlyingValue.isEmpty =>
//shields off
disableShield()
vehicle.Subsystems(VehicleSubsystemEntry.BattleframeShieldGenerator).get.Enabled = false
vehicle.Subsystems(VehicleSubsystemEntry.BattleframeShieldGenerator).map(s => s.Enabled = false)
vehicle.Shields -= drain
showShieldCharge()
case None if localFlyingValue.isEmpty =>
//shields off
disableShield()
vehicle.Subsystems(VehicleSubsystemEntry.BattleframeShieldGenerator).get.Enabled = false
vehicle.Subsystems(VehicleSubsystemEntry.BattleframeShieldGenerator).map(s => s.Enabled = false)
case Some(drain) =>
vehicle.Shields -= drain
showShieldCharge()
case _ => ;
}
}
if (vehicle.Subsystems(VehicleSubsystemEntry.BattleframeFlightPod).get.Jammed) {
if (vehicle.Subsystems(VehicleSubsystemEntry.BattleframeFlightPod).exists(_.Jammed)) {
}
@ -79,7 +79,7 @@ class BfrFlightControl(vehicle: Vehicle)
if (flying.nonEmpty) {
flying = None
vehicle.Flying = None
vehicle.Subsystems(VehicleSubsystemEntry.BattleframeShieldGenerator).get.Enabled = true
vehicle.Subsystems(VehicleSubsystemEntry.BattleframeShieldGenerator).map(s => s.Enabled = true)
if (vehicle.Shields > 0) {
enableShield()
}

View file

@ -354,7 +354,7 @@ object ResolutionCalculations {
{
data.cause.source.DamageToBattleframeOnly ||
data.cause.source.DamageToVehicleOnly ||
!obj.Subsystems(VehicleSubsystemEntry.BattleframeShieldGenerator).get.Enabled ||
!obj.Subsystems(VehicleSubsystemEntry.BattleframeShieldGenerator).exists(_.Enabled) ||
obj.Shields == 0
}
)