Implant initialization fixes

This commit is contained in:
Jakob Gillich 2021-04-16 21:37:20 +02:00
parent cfeff70c6b
commit 92a0b1dfaa
2 changed files with 368 additions and 337 deletions

View file

@ -207,6 +207,8 @@ object AvatarActor {
private case class SetStamina(stamina: Int) extends Command private case class SetStamina(stamina: Int) extends Command
private case class SetImplantInitialized(implantType: ImplantType) extends Command
final case class AvatarResponse(avatar: Avatar) final case class AvatarResponse(avatar: Avatar)
final case class AvatarLoginResponse(avatar: Avatar) final case class AvatarLoginResponse(avatar: Avatar)
@ -486,14 +488,14 @@ class AvatarActor(
) )
} else { } else {
var requiredByCert: Set[Certification] = Set(certification) var requiredByCert: Set[Certification] = Set(certification)
var removeThese: Set[Certification] = Set(certification) var removeThese: Set[Certification] = Set(certification)
val allCerts: Set[Certification] = Certification.values.toSet val allCerts: Set[Certification] = Certification.values.toSet
do { do {
removeThese = allCerts.filter { testingCert => removeThese = allCerts.filter { testingCert =>
testingCert.requires.intersect(removeThese).nonEmpty testingCert.requires.intersect(removeThese).nonEmpty
} }
requiredByCert = requiredByCert ++ removeThese requiredByCert = requiredByCert ++ removeThese
} while(removeThese.nonEmpty) } while (removeThese.nonEmpty)
Future Future
.sequence( .sequence(
@ -777,10 +779,9 @@ class AvatarActor(
Behaviors.same Behaviors.same
case ActivateImplant(implantType) => case ActivateImplant(implantType) =>
val res = avatar.implants.zipWithIndex.collectFirst { avatar.implants.zipWithIndex.collectFirst {
case (Some(implant), index) if implant.definition.implantType == implantType => (implant, index) case (Some(implant), index) if implant.definition.implantType == implantType => (implant, index)
} } match {
res match {
case Some((implant, slot)) => case Some((implant, slot)) =>
if (!implant.initialized) { if (!implant.initialized) {
log.error(s"requested activation of uninitialized implant $implant") log.error(s"requested activation of uninitialized implant $implant")
@ -831,6 +832,31 @@ class AvatarActor(
} }
Behaviors.same Behaviors.same
case SetImplantInitialized(implantType) =>
avatar.implants.zipWithIndex.collectFirst {
case (Some(implant), index) if implant.definition.implantType == implantType => index
} match {
case Some(index) =>
sessionActor ! SessionActor.SendResponse(
AvatarImplantMessage(session.get.player.GUID, ImplantAction.Initialization, index, 1)
)
avatar = avatar.copy(implants = avatar.implants.map {
case Some(implant) if implant.definition.implantType == implantType =>
Some(implant.copy(initialized = true))
case other => other
})
// automatic targeting implant activation is a client side feature
// For some reason it doesn't always work with 100% reliability, so we're also activating it server side
// Must be delayed by a bit or the client will toggle it off again
if (implantType == ImplantType.Targeting) {
context.scheduleOnce(2.seconds, context.self, ActivateImplant(implantType))
}
case None => log.error(s"set initialized called for unknown implant $implantType")
}
Behaviors.same
case DeactivateImplant(implantType) => case DeactivateImplant(implantType) =>
deactivateImplant(implantType) deactivateImplant(implantType)
Behaviors.same Behaviors.same
@ -1054,17 +1080,10 @@ class AvatarActor(
) )
implantTimers.get(slot).foreach(_.cancel()) implantTimers.get(slot).foreach(_.cancel())
implantTimers(slot) = context.system.scheduler.scheduleOnce( implantTimers(slot) = context.scheduleOnce(
implant.definition.InitializationDuration.seconds, implant.definition.InitializationDuration.seconds,
() => { context.self,
avatar = avatar.copy(implants = avatar.implants.map { SetImplantInitialized(implant.definition.implantType)
case Some(implant) => Some(implant.copy(initialized = true))
case None => None
})
sessionActor ! SessionActor.SendResponse(
AvatarImplantMessage(session.get.player.GUID, ImplantAction.Initialization, slot, 1)
)
}
) )
case (None, _) => ; case (None, _) => ;

View file

@ -20,7 +20,12 @@ import net.psforever.objects.serverobject.painbox.PainboxDefinition
import net.psforever.objects.serverobject.terminals._ import net.psforever.objects.serverobject.terminals._
import net.psforever.objects.serverobject.tube.SpawnTubeDefinition import net.psforever.objects.serverobject.tube.SpawnTubeDefinition
import net.psforever.objects.serverobject.resourcesilo.ResourceSiloDefinition import net.psforever.objects.serverobject.resourcesilo.ResourceSiloDefinition
import net.psforever.objects.serverobject.structures.{AmenityDefinition, AutoRepairStats, BuildingDefinition, WarpGateDefinition} import net.psforever.objects.serverobject.structures.{
AmenityDefinition,
AutoRepairStats,
BuildingDefinition,
WarpGateDefinition
}
import net.psforever.objects.serverobject.terminals.capture.CaptureTerminalDefinition import net.psforever.objects.serverobject.terminals.capture.CaptureTerminalDefinition
import net.psforever.objects.serverobject.terminals.implant.{ImplantTerminalDefinition, ImplantTerminalMechDefinition} import net.psforever.objects.serverobject.terminals.implant.{ImplantTerminalDefinition, ImplantTerminalMechDefinition}
import net.psforever.objects.serverobject.turret.{FacilityTurretDefinition, TurretUpgrade} import net.psforever.objects.serverobject.turret.{FacilityTurretDefinition, TurretUpgrade}
@ -1105,7 +1110,7 @@ object GlobalDefinitions {
val generator = new GeneratorDefinition(351) val generator = new GeneratorDefinition(351)
val obbasemesh = new AmenityDefinition(598) { } val obbasemesh = new AmenityDefinition(598) {}
initMiscellaneous() initMiscellaneous()
/* /*
@ -3742,7 +3747,7 @@ object GlobalDefinitions {
ProjectileDefinition.CalculateDerivedFields(quasar_projectile) ProjectileDefinition.CalculateDerivedFields(quasar_projectile)
radiator_grenade_projectile.Name = "radiator_grenade_projectile" // Todo : Radiator damages ? radiator_grenade_projectile.Name = "radiator_grenade_projectile" // Todo : Radiator damages ?
radiator_grenade_projectile.GrenadeProjectile = true //not really, but technically yes radiator_grenade_projectile.GrenadeProjectile = true //not really, but technically yes
radiator_grenade_projectile.ProjectileDamageType = DamageType.Direct radiator_grenade_projectile.ProjectileDamageType = DamageType.Direct
radiator_grenade_projectile.InitialVelocity = 30 radiator_grenade_projectile.InitialVelocity = 30
radiator_grenade_projectile.Lifespan = 3f radiator_grenade_projectile.Lifespan = 3f
@ -4751,7 +4756,7 @@ object GlobalDefinitions {
pellet_gun.FireModes.head.AmmoTypeIndices += 0 pellet_gun.FireModes.head.AmmoTypeIndices += 0
pellet_gun.FireModes.head.AmmoSlotIndex = 0 pellet_gun.FireModes.head.AmmoSlotIndex = 0
pellet_gun.FireModes.head.Magazine = 1 //what is this? pellet_gun.FireModes.head.Magazine = 1 //what is this?
pellet_gun.FireModes.head.Chamber = 8 //1 shell * 8 pellets = 8 pellet_gun.FireModes.head.Chamber = 8 //1 shell * 8 pellets = 8
pellet_gun.Tile = InventoryTile.Tile63 pellet_gun.Tile = InventoryTile.Tile63
six_shooter.Name = "six_shooter" six_shooter.Name = "six_shooter"
@ -5619,9 +5624,9 @@ object GlobalDefinitions {
* Initialize `VehicleDefinition` globals. * Initialize `VehicleDefinition` globals.
*/ */
private def init_vehicles(): Unit = { private def init_vehicles(): Unit = {
val atvForm = GeometryForm.representByCylinder(radius = 1.1797f, height = 1.1875f) _ val atvForm = GeometryForm.representByCylinder(radius = 1.1797f, height = 1.1875f) _
val delivererForm = GeometryForm.representByCylinder(radius = 2.46095f, height = 2.40626f) _ //TODO hexahedron val delivererForm = GeometryForm.representByCylinder(radius = 2.46095f, height = 2.40626f) _ //TODO hexahedron
val apcForm = GeometryForm.representByCylinder(radius = 4.6211f, height = 3.90626f) _ //TODO hexahedron val apcForm = GeometryForm.representByCylinder(radius = 4.6211f, height = 3.90626f) _ //TODO hexahedron
val liberatorForm = GeometryForm.representByCylinder(radius = 3.74615f, height = 2.51563f) _ val liberatorForm = GeometryForm.representByCylinder(radius = 3.74615f, height = 2.51563f) _
val bailableSeat = new SeatDefinition() { val bailableSeat = new SeatDefinition() {
@ -5637,11 +5642,11 @@ object GlobalDefinitions {
fury.Repairable = true fury.Repairable = true
fury.RepairIfDestroyed = false fury.RepairIfDestroyed = false
fury.MaxShields = 130 fury.MaxShields = 130
fury.Seats += 0 -> bailableSeat fury.Seats += 0 -> bailableSeat
fury.controlledWeapons += 0 -> 1 fury.controlledWeapons += 0 -> 1
fury.Weapons += 1 -> fury_weapon_systema fury.Weapons += 1 -> fury_weapon_systema
fury.MountPoints += 1 -> MountInfo(0) fury.MountPoints += 1 -> MountInfo(0)
fury.MountPoints += 2 -> MountInfo(0) fury.MountPoints += 2 -> MountInfo(0)
fury.TrunkSize = InventoryTile.Tile1111 fury.TrunkSize = InventoryTile.Tile1111
fury.TrunkOffset = 30 fury.TrunkOffset = 30
fury.TrunkLocation = Vector3(-1.71f, 0f, 0f) fury.TrunkLocation = Vector3(-1.71f, 0f, 0f)
@ -5668,11 +5673,11 @@ object GlobalDefinitions {
quadassault.Repairable = true quadassault.Repairable = true
quadassault.RepairIfDestroyed = false quadassault.RepairIfDestroyed = false
quadassault.MaxShields = 130 quadassault.MaxShields = 130
quadassault.Seats += 0 -> bailableSeat quadassault.Seats += 0 -> bailableSeat
quadassault.controlledWeapons += 0 -> 1 quadassault.controlledWeapons += 0 -> 1
quadassault.Weapons += 1 -> quadassault_weapon_system quadassault.Weapons += 1 -> quadassault_weapon_system
quadassault.MountPoints += 1 -> MountInfo(0) quadassault.MountPoints += 1 -> MountInfo(0)
quadassault.MountPoints += 2 -> MountInfo(0) quadassault.MountPoints += 2 -> MountInfo(0)
quadassault.TrunkSize = InventoryTile.Tile1111 quadassault.TrunkSize = InventoryTile.Tile1111
quadassault.TrunkOffset = 30 quadassault.TrunkOffset = 30
quadassault.TrunkLocation = Vector3(-1.71f, 0f, 0f) quadassault.TrunkLocation = Vector3(-1.71f, 0f, 0f)
@ -5730,12 +5735,12 @@ object GlobalDefinitions {
two_man_assault_buggy.Repairable = true two_man_assault_buggy.Repairable = true
two_man_assault_buggy.RepairIfDestroyed = false two_man_assault_buggy.RepairIfDestroyed = false
two_man_assault_buggy.MaxShields = 250 two_man_assault_buggy.MaxShields = 250
two_man_assault_buggy.Seats += 0 -> bailableSeat two_man_assault_buggy.Seats += 0 -> bailableSeat
two_man_assault_buggy.Seats += 1 -> bailableSeat two_man_assault_buggy.Seats += 1 -> bailableSeat
two_man_assault_buggy.controlledWeapons += 1 -> 2 two_man_assault_buggy.controlledWeapons += 1 -> 2
two_man_assault_buggy.Weapons += 2 -> chaingun_p two_man_assault_buggy.Weapons += 2 -> chaingun_p
two_man_assault_buggy.MountPoints += 1 -> MountInfo(0) two_man_assault_buggy.MountPoints += 1 -> MountInfo(0)
two_man_assault_buggy.MountPoints += 2 -> MountInfo(1) two_man_assault_buggy.MountPoints += 2 -> MountInfo(1)
two_man_assault_buggy.TrunkSize = InventoryTile.Tile1511 two_man_assault_buggy.TrunkSize = InventoryTile.Tile1511
two_man_assault_buggy.TrunkOffset = 30 two_man_assault_buggy.TrunkOffset = 30
two_man_assault_buggy.TrunkLocation = Vector3(-2.5f, 0f, 0f) two_man_assault_buggy.TrunkLocation = Vector3(-2.5f, 0f, 0f)
@ -5762,13 +5767,13 @@ object GlobalDefinitions {
skyguard.Repairable = true skyguard.Repairable = true
skyguard.RepairIfDestroyed = false skyguard.RepairIfDestroyed = false
skyguard.MaxShields = 200 skyguard.MaxShields = 200
skyguard.Seats += 0 -> bailableSeat skyguard.Seats += 0 -> bailableSeat
skyguard.Seats += 1 -> bailableSeat skyguard.Seats += 1 -> bailableSeat
skyguard.controlledWeapons += 1 -> 2 skyguard.controlledWeapons += 1 -> 2
skyguard.Weapons += 2 -> skyguard_weapon_system skyguard.Weapons += 2 -> skyguard_weapon_system
skyguard.MountPoints += 1 -> MountInfo(0) skyguard.MountPoints += 1 -> MountInfo(0)
skyguard.MountPoints += 2 -> MountInfo(0) skyguard.MountPoints += 2 -> MountInfo(0)
skyguard.MountPoints += 3 -> MountInfo(1) skyguard.MountPoints += 3 -> MountInfo(1)
skyguard.TrunkSize = InventoryTile.Tile1511 skyguard.TrunkSize = InventoryTile.Tile1511
skyguard.TrunkOffset = 30 skyguard.TrunkOffset = 30
skyguard.TrunkLocation = Vector3(2.5f, 0f, 0f) skyguard.TrunkLocation = Vector3(2.5f, 0f, 0f)
@ -5795,16 +5800,16 @@ object GlobalDefinitions {
threemanheavybuggy.Repairable = true threemanheavybuggy.Repairable = true
threemanheavybuggy.RepairIfDestroyed = false threemanheavybuggy.RepairIfDestroyed = false
threemanheavybuggy.MaxShields = 340 threemanheavybuggy.MaxShields = 340
threemanheavybuggy.Seats += 0 -> bailableSeat threemanheavybuggy.Seats += 0 -> bailableSeat
threemanheavybuggy.Seats += 1 -> bailableSeat threemanheavybuggy.Seats += 1 -> bailableSeat
threemanheavybuggy.Seats += 2 -> bailableSeat threemanheavybuggy.Seats += 2 -> bailableSeat
threemanheavybuggy.controlledWeapons += 1 -> 3 threemanheavybuggy.controlledWeapons += 1 -> 3
threemanheavybuggy.controlledWeapons += 2 -> 4 threemanheavybuggy.controlledWeapons += 2 -> 4
threemanheavybuggy.Weapons += 3 -> chaingun_p threemanheavybuggy.Weapons += 3 -> chaingun_p
threemanheavybuggy.Weapons += 4 -> grenade_launcher_marauder threemanheavybuggy.Weapons += 4 -> grenade_launcher_marauder
threemanheavybuggy.MountPoints += 1 -> MountInfo(0) threemanheavybuggy.MountPoints += 1 -> MountInfo(0)
threemanheavybuggy.MountPoints += 2 -> MountInfo(1) threemanheavybuggy.MountPoints += 2 -> MountInfo(1)
threemanheavybuggy.MountPoints += 3 -> MountInfo(2) threemanheavybuggy.MountPoints += 3 -> MountInfo(2)
threemanheavybuggy.TrunkSize = InventoryTile.Tile1511 threemanheavybuggy.TrunkSize = InventoryTile.Tile1511
threemanheavybuggy.TrunkOffset = 30 threemanheavybuggy.TrunkOffset = 30
threemanheavybuggy.TrunkLocation = Vector3(3.01f, 0f, 0f) threemanheavybuggy.TrunkLocation = Vector3(3.01f, 0f, 0f)
@ -5832,12 +5837,12 @@ object GlobalDefinitions {
twomanheavybuggy.Repairable = true twomanheavybuggy.Repairable = true
twomanheavybuggy.RepairIfDestroyed = false twomanheavybuggy.RepairIfDestroyed = false
twomanheavybuggy.MaxShields = 360 twomanheavybuggy.MaxShields = 360
twomanheavybuggy.Seats += 0 -> bailableSeat twomanheavybuggy.Seats += 0 -> bailableSeat
twomanheavybuggy.Seats += 1 -> bailableSeat twomanheavybuggy.Seats += 1 -> bailableSeat
twomanheavybuggy.controlledWeapons += 1 -> 2 twomanheavybuggy.controlledWeapons += 1 -> 2
twomanheavybuggy.Weapons += 2 -> advanced_missile_launcher_t twomanheavybuggy.Weapons += 2 -> advanced_missile_launcher_t
twomanheavybuggy.MountPoints += 1 -> MountInfo(0) twomanheavybuggy.MountPoints += 1 -> MountInfo(0)
twomanheavybuggy.MountPoints += 2 -> MountInfo(1) twomanheavybuggy.MountPoints += 2 -> MountInfo(1)
twomanheavybuggy.TrunkSize = InventoryTile.Tile1511 twomanheavybuggy.TrunkSize = InventoryTile.Tile1511
twomanheavybuggy.TrunkOffset = 30 twomanheavybuggy.TrunkOffset = 30
twomanheavybuggy.TrunkLocation = Vector3(-0.23f, -2.05f, 0f) twomanheavybuggy.TrunkLocation = Vector3(-0.23f, -2.05f, 0f)
@ -5865,12 +5870,12 @@ object GlobalDefinitions {
twomanhoverbuggy.Repairable = true twomanhoverbuggy.Repairable = true
twomanhoverbuggy.RepairIfDestroyed = false twomanhoverbuggy.RepairIfDestroyed = false
twomanhoverbuggy.MaxShields = 320 twomanhoverbuggy.MaxShields = 320
twomanhoverbuggy.Seats += 0 -> bailableSeat twomanhoverbuggy.Seats += 0 -> bailableSeat
twomanhoverbuggy.Seats += 1 -> bailableSeat twomanhoverbuggy.Seats += 1 -> bailableSeat
twomanhoverbuggy.controlledWeapons += 1 -> 2 twomanhoverbuggy.controlledWeapons += 1 -> 2
twomanhoverbuggy.Weapons += 2 -> flux_cannon_thresher twomanhoverbuggy.Weapons += 2 -> flux_cannon_thresher
twomanhoverbuggy.MountPoints += 1 -> MountInfo(0) twomanhoverbuggy.MountPoints += 1 -> MountInfo(0)
twomanhoverbuggy.MountPoints += 2 -> MountInfo(1) twomanhoverbuggy.MountPoints += 2 -> MountInfo(1)
twomanhoverbuggy.TrunkSize = InventoryTile.Tile1511 twomanhoverbuggy.TrunkSize = InventoryTile.Tile1511
twomanhoverbuggy.TrunkOffset = 30 twomanhoverbuggy.TrunkOffset = 30
twomanhoverbuggy.TrunkLocation = Vector3(-3.39f, 0f, 0f) twomanhoverbuggy.TrunkLocation = Vector3(-3.39f, 0f, 0f)
@ -5888,7 +5893,10 @@ object GlobalDefinitions {
Modifiers = ExplodingRadialDegrade Modifiers = ExplodingRadialDegrade
} }
twomanhoverbuggy.DrownAtMaxDepth = true twomanhoverbuggy.DrownAtMaxDepth = true
twomanhoverbuggy.UnderwaterLifespan(suffocation = 45000L, recovery = 5000L) //but the thresher hovers over water, so ...? twomanhoverbuggy.UnderwaterLifespan(
suffocation = 45000L,
recovery = 5000L
) //but the thresher hovers over water, so ...?
twomanhoverbuggy.Geometry = GeometryForm.representByCylinder(radius = 2.1875f, height = 2.01563f) twomanhoverbuggy.Geometry = GeometryForm.representByCylinder(radius = 2.1875f, height = 2.01563f)
mediumtransport.Name = "mediumtransport" // Deliverer mediumtransport.Name = "mediumtransport" // Deliverer
@ -5900,19 +5908,19 @@ object GlobalDefinitions {
mediumtransport.Seats += 0 -> new SeatDefinition() { mediumtransport.Seats += 0 -> new SeatDefinition() {
restriction = NoReinforcedOrMax restriction = NoReinforcedOrMax
} }
mediumtransport.Seats += 1 -> new SeatDefinition() mediumtransport.Seats += 1 -> new SeatDefinition()
mediumtransport.Seats += 2 -> new SeatDefinition() mediumtransport.Seats += 2 -> new SeatDefinition()
mediumtransport.Seats += 3 -> new SeatDefinition() mediumtransport.Seats += 3 -> new SeatDefinition()
mediumtransport.Seats += 4 -> new SeatDefinition() mediumtransport.Seats += 4 -> new SeatDefinition()
mediumtransport.controlledWeapons += 1 -> 5 mediumtransport.controlledWeapons += 1 -> 5
mediumtransport.controlledWeapons += 2 -> 6 mediumtransport.controlledWeapons += 2 -> 6
mediumtransport.Weapons += 5 -> mediumtransport_weapon_systemA mediumtransport.Weapons += 5 -> mediumtransport_weapon_systemA
mediumtransport.Weapons += 6 -> mediumtransport_weapon_systemB mediumtransport.Weapons += 6 -> mediumtransport_weapon_systemB
mediumtransport.MountPoints += 1 -> MountInfo(0) mediumtransport.MountPoints += 1 -> MountInfo(0)
mediumtransport.MountPoints += 2 -> MountInfo(1) mediumtransport.MountPoints += 2 -> MountInfo(1)
mediumtransport.MountPoints += 3 -> MountInfo(2) mediumtransport.MountPoints += 3 -> MountInfo(2)
mediumtransport.MountPoints += 4 -> MountInfo(3) mediumtransport.MountPoints += 4 -> MountInfo(3)
mediumtransport.MountPoints += 5 -> MountInfo(4) mediumtransport.MountPoints += 5 -> MountInfo(4)
mediumtransport.TrunkSize = InventoryTile.Tile1515 mediumtransport.TrunkSize = InventoryTile.Tile1515
mediumtransport.TrunkOffset = 30 mediumtransport.TrunkOffset = 30
mediumtransport.TrunkLocation = Vector3(-3.46f, 0f, 0f) mediumtransport.TrunkLocation = Vector3(-3.46f, 0f, 0f)
@ -5943,23 +5951,23 @@ object GlobalDefinitions {
battlewagon.Seats += 0 -> new SeatDefinition() { battlewagon.Seats += 0 -> new SeatDefinition() {
restriction = NoReinforcedOrMax restriction = NoReinforcedOrMax
} }
battlewagon.Seats += 1 -> new SeatDefinition() battlewagon.Seats += 1 -> new SeatDefinition()
battlewagon.Seats += 2 -> new SeatDefinition() battlewagon.Seats += 2 -> new SeatDefinition()
battlewagon.Seats += 3 -> new SeatDefinition() battlewagon.Seats += 3 -> new SeatDefinition()
battlewagon.Seats += 4 -> new SeatDefinition() battlewagon.Seats += 4 -> new SeatDefinition()
battlewagon.controlledWeapons += 1 -> 5 battlewagon.controlledWeapons += 1 -> 5
battlewagon.controlledWeapons += 2 -> 6 battlewagon.controlledWeapons += 2 -> 6
battlewagon.controlledWeapons += 3 -> 7 battlewagon.controlledWeapons += 3 -> 7
battlewagon.controlledWeapons += 4 -> 8 battlewagon.controlledWeapons += 4 -> 8
battlewagon.Weapons += 5 -> battlewagon_weapon_systema battlewagon.Weapons += 5 -> battlewagon_weapon_systema
battlewagon.Weapons += 6 -> battlewagon_weapon_systemb battlewagon.Weapons += 6 -> battlewagon_weapon_systemb
battlewagon.Weapons += 7 -> battlewagon_weapon_systemc battlewagon.Weapons += 7 -> battlewagon_weapon_systemc
battlewagon.Weapons += 8 -> battlewagon_weapon_systemd battlewagon.Weapons += 8 -> battlewagon_weapon_systemd
battlewagon.MountPoints += 1 -> MountInfo(0) battlewagon.MountPoints += 1 -> MountInfo(0)
battlewagon.MountPoints += 2 -> MountInfo(1) battlewagon.MountPoints += 2 -> MountInfo(1)
battlewagon.MountPoints += 3 -> MountInfo(2) battlewagon.MountPoints += 3 -> MountInfo(2)
battlewagon.MountPoints += 4 -> MountInfo(3) battlewagon.MountPoints += 4 -> MountInfo(3)
battlewagon.MountPoints += 5 -> MountInfo(4) battlewagon.MountPoints += 5 -> MountInfo(4)
battlewagon.TrunkSize = InventoryTile.Tile1515 battlewagon.TrunkSize = InventoryTile.Tile1515
battlewagon.TrunkOffset = 30 battlewagon.TrunkOffset = 30
battlewagon.TrunkLocation = Vector3(-3.46f, 0f, 0f) battlewagon.TrunkLocation = Vector3(-3.46f, 0f, 0f)
@ -5989,19 +5997,19 @@ object GlobalDefinitions {
thunderer.Seats += 0 -> new SeatDefinition() { thunderer.Seats += 0 -> new SeatDefinition() {
restriction = NoReinforcedOrMax restriction = NoReinforcedOrMax
} }
thunderer.Seats += 1 -> new SeatDefinition() thunderer.Seats += 1 -> new SeatDefinition()
thunderer.Seats += 2 -> new SeatDefinition() thunderer.Seats += 2 -> new SeatDefinition()
thunderer.Seats += 3 -> new SeatDefinition() thunderer.Seats += 3 -> new SeatDefinition()
thunderer.Seats += 4 -> new SeatDefinition() thunderer.Seats += 4 -> new SeatDefinition()
thunderer.Weapons += 5 -> thunderer_weapon_systema thunderer.Weapons += 5 -> thunderer_weapon_systema
thunderer.Weapons += 6 -> thunderer_weapon_systemb thunderer.Weapons += 6 -> thunderer_weapon_systemb
thunderer.controlledWeapons += 1 -> 5 thunderer.controlledWeapons += 1 -> 5
thunderer.controlledWeapons += 2 -> 6 thunderer.controlledWeapons += 2 -> 6
thunderer.MountPoints += 1 -> MountInfo(0) thunderer.MountPoints += 1 -> MountInfo(0)
thunderer.MountPoints += 2 -> MountInfo(1) thunderer.MountPoints += 2 -> MountInfo(1)
thunderer.MountPoints += 3 -> MountInfo(2) thunderer.MountPoints += 3 -> MountInfo(2)
thunderer.MountPoints += 4 -> MountInfo(3) thunderer.MountPoints += 4 -> MountInfo(3)
thunderer.MountPoints += 5 -> MountInfo(4) thunderer.MountPoints += 5 -> MountInfo(4)
thunderer.TrunkSize = InventoryTile.Tile1515 thunderer.TrunkSize = InventoryTile.Tile1515
thunderer.TrunkOffset = 30 thunderer.TrunkOffset = 30
thunderer.TrunkLocation = Vector3(-3.46f, 0f, 0f) thunderer.TrunkLocation = Vector3(-3.46f, 0f, 0f)
@ -6032,19 +6040,19 @@ object GlobalDefinitions {
aurora.Seats += 0 -> new SeatDefinition() { aurora.Seats += 0 -> new SeatDefinition() {
restriction = NoReinforcedOrMax restriction = NoReinforcedOrMax
} }
aurora.Seats += 1 -> new SeatDefinition() aurora.Seats += 1 -> new SeatDefinition()
aurora.Seats += 2 -> new SeatDefinition() aurora.Seats += 2 -> new SeatDefinition()
aurora.Seats += 3 -> new SeatDefinition() aurora.Seats += 3 -> new SeatDefinition()
aurora.Seats += 4 -> new SeatDefinition() aurora.Seats += 4 -> new SeatDefinition()
aurora.controlledWeapons += 1 -> 5 aurora.controlledWeapons += 1 -> 5
aurora.controlledWeapons += 2 -> 6 aurora.controlledWeapons += 2 -> 6
aurora.Weapons += 5 -> aurora_weapon_systema aurora.Weapons += 5 -> aurora_weapon_systema
aurora.Weapons += 6 -> aurora_weapon_systemb aurora.Weapons += 6 -> aurora_weapon_systemb
aurora.MountPoints += 1 -> MountInfo(0) aurora.MountPoints += 1 -> MountInfo(0)
aurora.MountPoints += 2 -> MountInfo(1) aurora.MountPoints += 2 -> MountInfo(1)
aurora.MountPoints += 3 -> MountInfo(2) aurora.MountPoints += 3 -> MountInfo(2)
aurora.MountPoints += 4 -> MountInfo(3) aurora.MountPoints += 4 -> MountInfo(3)
aurora.MountPoints += 5 -> MountInfo(4) aurora.MountPoints += 5 -> MountInfo(4)
aurora.TrunkSize = InventoryTile.Tile1515 aurora.TrunkSize = InventoryTile.Tile1515
aurora.TrunkOffset = 30 aurora.TrunkOffset = 30
aurora.TrunkLocation = Vector3(-3.46f, 0f, 0f) aurora.TrunkLocation = Vector3(-3.46f, 0f, 0f)
@ -6072,41 +6080,41 @@ object GlobalDefinitions {
apc_tr.Repairable = true apc_tr.Repairable = true
apc_tr.RepairIfDestroyed = false apc_tr.RepairIfDestroyed = false
apc_tr.MaxShields = 1200 apc_tr.MaxShields = 1200
apc_tr.Seats += 0 -> new SeatDefinition() apc_tr.Seats += 0 -> new SeatDefinition()
apc_tr.Seats += 1 -> new SeatDefinition() apc_tr.Seats += 1 -> new SeatDefinition()
apc_tr.Seats += 2 -> new SeatDefinition() apc_tr.Seats += 2 -> new SeatDefinition()
apc_tr.Seats += 3 -> new SeatDefinition() apc_tr.Seats += 3 -> new SeatDefinition()
apc_tr.Seats += 4 -> new SeatDefinition() apc_tr.Seats += 4 -> new SeatDefinition()
apc_tr.Seats += 5 -> new SeatDefinition() apc_tr.Seats += 5 -> new SeatDefinition()
apc_tr.Seats += 6 -> new SeatDefinition() apc_tr.Seats += 6 -> new SeatDefinition()
apc_tr.Seats += 7 -> new SeatDefinition() apc_tr.Seats += 7 -> new SeatDefinition()
apc_tr.Seats += 8 -> new SeatDefinition() apc_tr.Seats += 8 -> new SeatDefinition()
apc_tr.Seats += 9 -> maxOnlySeat apc_tr.Seats += 9 -> maxOnlySeat
apc_tr.Seats += 10 -> maxOnlySeat apc_tr.Seats += 10 -> maxOnlySeat
apc_tr.controlledWeapons += 1 -> 11 apc_tr.controlledWeapons += 1 -> 11
apc_tr.controlledWeapons += 2 -> 12 apc_tr.controlledWeapons += 2 -> 12
apc_tr.controlledWeapons += 5 -> 15 apc_tr.controlledWeapons += 5 -> 15
apc_tr.controlledWeapons += 6 -> 16 apc_tr.controlledWeapons += 6 -> 16
apc_tr.controlledWeapons += 7 -> 13 apc_tr.controlledWeapons += 7 -> 13
apc_tr.controlledWeapons += 8 -> 14 apc_tr.controlledWeapons += 8 -> 14
apc_tr.Weapons += 11 -> apc_weapon_systemc_tr apc_tr.Weapons += 11 -> apc_weapon_systemc_tr
apc_tr.Weapons += 12 -> apc_weapon_systemb apc_tr.Weapons += 12 -> apc_weapon_systemb
apc_tr.Weapons += 13 -> apc_weapon_systema apc_tr.Weapons += 13 -> apc_weapon_systema
apc_tr.Weapons += 14 -> apc_weapon_systemd_tr apc_tr.Weapons += 14 -> apc_weapon_systemd_tr
apc_tr.Weapons += 15 -> apc_ballgun_r apc_tr.Weapons += 15 -> apc_ballgun_r
apc_tr.Weapons += 16 -> apc_ballgun_l apc_tr.Weapons += 16 -> apc_ballgun_l
apc_tr.MountPoints += 1 -> MountInfo(0) apc_tr.MountPoints += 1 -> MountInfo(0)
apc_tr.MountPoints += 2 -> MountInfo(0) apc_tr.MountPoints += 2 -> MountInfo(0)
apc_tr.MountPoints += 3 -> MountInfo(1) apc_tr.MountPoints += 3 -> MountInfo(1)
apc_tr.MountPoints += 4 -> MountInfo(2) apc_tr.MountPoints += 4 -> MountInfo(2)
apc_tr.MountPoints += 5 -> MountInfo(3) apc_tr.MountPoints += 5 -> MountInfo(3)
apc_tr.MountPoints += 6 -> MountInfo(4) apc_tr.MountPoints += 6 -> MountInfo(4)
apc_tr.MountPoints += 7 -> MountInfo(5) apc_tr.MountPoints += 7 -> MountInfo(5)
apc_tr.MountPoints += 8 -> MountInfo(6) apc_tr.MountPoints += 8 -> MountInfo(6)
apc_tr.MountPoints += 9 -> MountInfo(7) apc_tr.MountPoints += 9 -> MountInfo(7)
apc_tr.MountPoints += 10 -> MountInfo(8) apc_tr.MountPoints += 10 -> MountInfo(8)
apc_tr.MountPoints += 11 -> MountInfo(9) apc_tr.MountPoints += 11 -> MountInfo(9)
apc_tr.MountPoints += 12 -> MountInfo(10) apc_tr.MountPoints += 12 -> MountInfo(10)
apc_tr.TrunkSize = InventoryTile.Tile2016 apc_tr.TrunkSize = InventoryTile.Tile2016
apc_tr.TrunkOffset = 30 apc_tr.TrunkOffset = 30
apc_tr.TrunkLocation = Vector3(-5.82f, 0f, 0f) apc_tr.TrunkLocation = Vector3(-5.82f, 0f, 0f)
@ -6134,41 +6142,41 @@ object GlobalDefinitions {
apc_nc.Repairable = true apc_nc.Repairable = true
apc_nc.RepairIfDestroyed = false apc_nc.RepairIfDestroyed = false
apc_nc.MaxShields = 1200 apc_nc.MaxShields = 1200
apc_nc.Seats += 0 -> new SeatDefinition() apc_nc.Seats += 0 -> new SeatDefinition()
apc_nc.Seats += 1 -> new SeatDefinition() apc_nc.Seats += 1 -> new SeatDefinition()
apc_nc.Seats += 2 -> new SeatDefinition() apc_nc.Seats += 2 -> new SeatDefinition()
apc_nc.Seats += 3 -> new SeatDefinition() apc_nc.Seats += 3 -> new SeatDefinition()
apc_nc.Seats += 4 -> new SeatDefinition() apc_nc.Seats += 4 -> new SeatDefinition()
apc_nc.Seats += 5 -> new SeatDefinition() apc_nc.Seats += 5 -> new SeatDefinition()
apc_nc.Seats += 6 -> new SeatDefinition() apc_nc.Seats += 6 -> new SeatDefinition()
apc_nc.Seats += 7 -> new SeatDefinition() apc_nc.Seats += 7 -> new SeatDefinition()
apc_nc.Seats += 8 -> new SeatDefinition() apc_nc.Seats += 8 -> new SeatDefinition()
apc_nc.Seats += 9 -> maxOnlySeat apc_nc.Seats += 9 -> maxOnlySeat
apc_nc.Seats += 10 -> maxOnlySeat apc_nc.Seats += 10 -> maxOnlySeat
apc_nc.controlledWeapons += 1 -> 11 apc_nc.controlledWeapons += 1 -> 11
apc_nc.controlledWeapons += 2 -> 12 apc_nc.controlledWeapons += 2 -> 12
apc_nc.controlledWeapons += 5 -> 15 apc_nc.controlledWeapons += 5 -> 15
apc_nc.controlledWeapons += 6 -> 16 apc_nc.controlledWeapons += 6 -> 16
apc_nc.controlledWeapons += 7 -> 13 apc_nc.controlledWeapons += 7 -> 13
apc_nc.controlledWeapons += 8 -> 14 apc_nc.controlledWeapons += 8 -> 14
apc_nc.Weapons += 11 -> apc_weapon_systemc_nc apc_nc.Weapons += 11 -> apc_weapon_systemc_nc
apc_nc.Weapons += 12 -> apc_weapon_systemb apc_nc.Weapons += 12 -> apc_weapon_systemb
apc_nc.Weapons += 13 -> apc_weapon_systema apc_nc.Weapons += 13 -> apc_weapon_systema
apc_nc.Weapons += 14 -> apc_weapon_systemd_nc apc_nc.Weapons += 14 -> apc_weapon_systemd_nc
apc_nc.Weapons += 15 -> apc_ballgun_r apc_nc.Weapons += 15 -> apc_ballgun_r
apc_nc.Weapons += 16 -> apc_ballgun_l apc_nc.Weapons += 16 -> apc_ballgun_l
apc_nc.MountPoints += 1 -> MountInfo(0) apc_nc.MountPoints += 1 -> MountInfo(0)
apc_nc.MountPoints += 2 -> MountInfo(0) apc_nc.MountPoints += 2 -> MountInfo(0)
apc_nc.MountPoints += 3 -> MountInfo(1) apc_nc.MountPoints += 3 -> MountInfo(1)
apc_nc.MountPoints += 4 -> MountInfo(2) apc_nc.MountPoints += 4 -> MountInfo(2)
apc_nc.MountPoints += 5 -> MountInfo(3) apc_nc.MountPoints += 5 -> MountInfo(3)
apc_nc.MountPoints += 6 -> MountInfo(4) apc_nc.MountPoints += 6 -> MountInfo(4)
apc_nc.MountPoints += 7 -> MountInfo(5) apc_nc.MountPoints += 7 -> MountInfo(5)
apc_nc.MountPoints += 8 -> MountInfo(6) apc_nc.MountPoints += 8 -> MountInfo(6)
apc_nc.MountPoints += 9 -> MountInfo(7) apc_nc.MountPoints += 9 -> MountInfo(7)
apc_nc.MountPoints += 10 -> MountInfo(8) apc_nc.MountPoints += 10 -> MountInfo(8)
apc_nc.MountPoints += 11 -> MountInfo(9) apc_nc.MountPoints += 11 -> MountInfo(9)
apc_nc.MountPoints += 12 -> MountInfo(10) apc_nc.MountPoints += 12 -> MountInfo(10)
apc_nc.TrunkSize = InventoryTile.Tile2016 apc_nc.TrunkSize = InventoryTile.Tile2016
apc_nc.TrunkOffset = 30 apc_nc.TrunkOffset = 30
apc_nc.TrunkLocation = Vector3(-5.82f, 0f, 0f) apc_nc.TrunkLocation = Vector3(-5.82f, 0f, 0f)
@ -6196,41 +6204,41 @@ object GlobalDefinitions {
apc_vs.Repairable = true apc_vs.Repairable = true
apc_vs.RepairIfDestroyed = false apc_vs.RepairIfDestroyed = false
apc_vs.MaxShields = 1200 apc_vs.MaxShields = 1200
apc_vs.Seats += 0 -> new SeatDefinition() apc_vs.Seats += 0 -> new SeatDefinition()
apc_vs.Seats += 1 -> new SeatDefinition() apc_vs.Seats += 1 -> new SeatDefinition()
apc_vs.Seats += 2 -> new SeatDefinition() apc_vs.Seats += 2 -> new SeatDefinition()
apc_vs.Seats += 3 -> new SeatDefinition() apc_vs.Seats += 3 -> new SeatDefinition()
apc_vs.Seats += 4 -> new SeatDefinition() apc_vs.Seats += 4 -> new SeatDefinition()
apc_vs.Seats += 5 -> new SeatDefinition() apc_vs.Seats += 5 -> new SeatDefinition()
apc_vs.Seats += 6 -> new SeatDefinition() apc_vs.Seats += 6 -> new SeatDefinition()
apc_vs.Seats += 7 -> new SeatDefinition() apc_vs.Seats += 7 -> new SeatDefinition()
apc_vs.Seats += 8 -> new SeatDefinition() apc_vs.Seats += 8 -> new SeatDefinition()
apc_vs.Seats += 9 -> maxOnlySeat apc_vs.Seats += 9 -> maxOnlySeat
apc_vs.Seats += 10 -> maxOnlySeat apc_vs.Seats += 10 -> maxOnlySeat
apc_vs.controlledWeapons += 1 -> 11 apc_vs.controlledWeapons += 1 -> 11
apc_vs.controlledWeapons += 2 -> 12 apc_vs.controlledWeapons += 2 -> 12
apc_vs.controlledWeapons += 5 -> 15 apc_vs.controlledWeapons += 5 -> 15
apc_vs.controlledWeapons += 6 -> 16 apc_vs.controlledWeapons += 6 -> 16
apc_vs.controlledWeapons += 7 -> 13 apc_vs.controlledWeapons += 7 -> 13
apc_vs.controlledWeapons += 8 -> 14 apc_vs.controlledWeapons += 8 -> 14
apc_vs.Weapons += 11 -> apc_weapon_systemc_vs apc_vs.Weapons += 11 -> apc_weapon_systemc_vs
apc_vs.Weapons += 12 -> apc_weapon_systemb apc_vs.Weapons += 12 -> apc_weapon_systemb
apc_vs.Weapons += 13 -> apc_weapon_systema apc_vs.Weapons += 13 -> apc_weapon_systema
apc_vs.Weapons += 14 -> apc_weapon_systemd_vs apc_vs.Weapons += 14 -> apc_weapon_systemd_vs
apc_vs.Weapons += 15 -> apc_ballgun_r apc_vs.Weapons += 15 -> apc_ballgun_r
apc_vs.Weapons += 16 -> apc_ballgun_l apc_vs.Weapons += 16 -> apc_ballgun_l
apc_vs.MountPoints += 1 -> MountInfo(0) apc_vs.MountPoints += 1 -> MountInfo(0)
apc_vs.MountPoints += 2 -> MountInfo(0) apc_vs.MountPoints += 2 -> MountInfo(0)
apc_vs.MountPoints += 3 -> MountInfo(1) apc_vs.MountPoints += 3 -> MountInfo(1)
apc_vs.MountPoints += 4 -> MountInfo(2) apc_vs.MountPoints += 4 -> MountInfo(2)
apc_vs.MountPoints += 5 -> MountInfo(3) apc_vs.MountPoints += 5 -> MountInfo(3)
apc_vs.MountPoints += 6 -> MountInfo(4) apc_vs.MountPoints += 6 -> MountInfo(4)
apc_vs.MountPoints += 7 -> MountInfo(5) apc_vs.MountPoints += 7 -> MountInfo(5)
apc_vs.MountPoints += 8 -> MountInfo(6) apc_vs.MountPoints += 8 -> MountInfo(6)
apc_vs.MountPoints += 9 -> MountInfo(7) apc_vs.MountPoints += 9 -> MountInfo(7)
apc_vs.MountPoints += 10 -> MountInfo(8) apc_vs.MountPoints += 10 -> MountInfo(8)
apc_vs.MountPoints += 11 -> MountInfo(9) apc_vs.MountPoints += 11 -> MountInfo(9)
apc_vs.MountPoints += 12 -> MountInfo(10) apc_vs.MountPoints += 12 -> MountInfo(10)
apc_vs.TrunkSize = InventoryTile.Tile2016 apc_vs.TrunkSize = InventoryTile.Tile2016
apc_vs.TrunkOffset = 30 apc_vs.TrunkOffset = 30
apc_vs.TrunkLocation = Vector3(-5.82f, 0f, 0f) apc_vs.TrunkLocation = Vector3(-5.82f, 0f, 0f)
@ -6262,9 +6270,9 @@ object GlobalDefinitions {
restriction = NoReinforcedOrMax restriction = NoReinforcedOrMax
} }
lightning.controlledWeapons += 0 -> 1 lightning.controlledWeapons += 0 -> 1
lightning.Weapons += 1 -> lightning_weapon_system lightning.Weapons += 1 -> lightning_weapon_system
lightning.MountPoints += 1 -> MountInfo(0) lightning.MountPoints += 1 -> MountInfo(0)
lightning.MountPoints += 2 -> MountInfo(0) lightning.MountPoints += 2 -> MountInfo(0)
lightning.TrunkSize = InventoryTile.Tile1511 lightning.TrunkSize = InventoryTile.Tile1511
lightning.TrunkOffset = 30 lightning.TrunkOffset = 30
lightning.TrunkLocation = Vector3(-3f, 0f, 0f) lightning.TrunkLocation = Vector3(-3f, 0f, 0f)
@ -6295,15 +6303,15 @@ object GlobalDefinitions {
prowler.Seats += 0 -> new SeatDefinition() { prowler.Seats += 0 -> new SeatDefinition() {
restriction = NoReinforcedOrMax restriction = NoReinforcedOrMax
} }
prowler.Seats += 1 -> new SeatDefinition() prowler.Seats += 1 -> new SeatDefinition()
prowler.Seats += 2 -> new SeatDefinition() prowler.Seats += 2 -> new SeatDefinition()
prowler.controlledWeapons += 1 -> 3 prowler.controlledWeapons += 1 -> 3
prowler.controlledWeapons += 2 -> 4 prowler.controlledWeapons += 2 -> 4
prowler.Weapons += 3 -> prowler_weapon_systemA prowler.Weapons += 3 -> prowler_weapon_systemA
prowler.Weapons += 4 -> prowler_weapon_systemB prowler.Weapons += 4 -> prowler_weapon_systemB
prowler.MountPoints += 1 -> MountInfo(0) prowler.MountPoints += 1 -> MountInfo(0)
prowler.MountPoints += 2 -> MountInfo(1) prowler.MountPoints += 2 -> MountInfo(1)
prowler.MountPoints += 3 -> MountInfo(2) prowler.MountPoints += 3 -> MountInfo(2)
prowler.TrunkSize = InventoryTile.Tile1511 prowler.TrunkSize = InventoryTile.Tile1511
prowler.TrunkOffset = 30 prowler.TrunkOffset = 30
prowler.TrunkLocation = Vector3(-4.71f, 0f, 0f) prowler.TrunkLocation = Vector3(-4.71f, 0f, 0f)
@ -6334,11 +6342,11 @@ object GlobalDefinitions {
vanguard.Seats += 0 -> new SeatDefinition() { vanguard.Seats += 0 -> new SeatDefinition() {
restriction = NoReinforcedOrMax restriction = NoReinforcedOrMax
} }
vanguard.Seats += 1 -> new SeatDefinition() vanguard.Seats += 1 -> new SeatDefinition()
vanguard.controlledWeapons += 1 -> 2 vanguard.controlledWeapons += 1 -> 2
vanguard.Weapons += 2 -> vanguard_weapon_system vanguard.Weapons += 2 -> vanguard_weapon_system
vanguard.MountPoints += 1 -> MountInfo(0) vanguard.MountPoints += 1 -> MountInfo(0)
vanguard.MountPoints += 2 -> MountInfo(1) vanguard.MountPoints += 2 -> MountInfo(1)
vanguard.TrunkSize = InventoryTile.Tile1511 vanguard.TrunkSize = InventoryTile.Tile1511
vanguard.TrunkOffset = 30 vanguard.TrunkOffset = 30
vanguard.TrunkLocation = Vector3(-4.84f, 0f, 0f) vanguard.TrunkLocation = Vector3(-4.84f, 0f, 0f)
@ -6369,13 +6377,13 @@ object GlobalDefinitions {
magrider.Seats += 0 -> new SeatDefinition() { magrider.Seats += 0 -> new SeatDefinition() {
restriction = NoReinforcedOrMax restriction = NoReinforcedOrMax
} }
magrider.Seats += 1 -> new SeatDefinition() magrider.Seats += 1 -> new SeatDefinition()
magrider.controlledWeapons += 0 -> 2 magrider.controlledWeapons += 0 -> 2
magrider.controlledWeapons += 1 -> 3 magrider.controlledWeapons += 1 -> 3
magrider.Weapons += 2 -> particle_beam_magrider magrider.Weapons += 2 -> particle_beam_magrider
magrider.Weapons += 3 -> heavy_rail_beam_magrider magrider.Weapons += 3 -> heavy_rail_beam_magrider
magrider.MountPoints += 1 -> MountInfo(0) magrider.MountPoints += 1 -> MountInfo(0)
magrider.MountPoints += 2 -> MountInfo(1) magrider.MountPoints += 2 -> MountInfo(1)
magrider.TrunkSize = InventoryTile.Tile1511 magrider.TrunkSize = InventoryTile.Tile1511
magrider.TrunkOffset = 30 magrider.TrunkOffset = 30
magrider.TrunkLocation = Vector3(5.06f, 0f, 0f) magrider.TrunkLocation = Vector3(5.06f, 0f, 0f)
@ -6504,7 +6512,7 @@ object GlobalDefinitions {
} }
router.DrownAtMaxDepth = true router.DrownAtMaxDepth = true
router.MaxDepth = 2 router.MaxDepth = 2
router.UnderwaterLifespan(suffocation = 45000L, recovery = 5000L) //but the router hovers over water, so ...? router.UnderwaterLifespan(suffocation = 45000L, recovery = 5000L) //but the router hovers over water, so ...?
router.Geometry = GeometryForm.representByCylinder(radius = 3.64845f, height = 3.51563f) //TODO hexahedron router.Geometry = GeometryForm.representByCylinder(radius = 3.64845f, height = 3.51563f) //TODO hexahedron
switchblade.Name = "switchblade" switchblade.Name = "switchblade"
@ -6513,11 +6521,11 @@ object GlobalDefinitions {
switchblade.Repairable = true switchblade.Repairable = true
switchblade.RepairIfDestroyed = false switchblade.RepairIfDestroyed = false
switchblade.MaxShields = 350 switchblade.MaxShields = 350
switchblade.Seats += 0 -> new SeatDefinition() switchblade.Seats += 0 -> new SeatDefinition()
switchblade.controlledWeapons += 0 -> 1 switchblade.controlledWeapons += 0 -> 1
switchblade.Weapons += 1 -> scythe switchblade.Weapons += 1 -> scythe
switchblade.MountPoints += 1 -> MountInfo(0) switchblade.MountPoints += 1 -> MountInfo(0)
switchblade.MountPoints += 2 -> MountInfo(0) switchblade.MountPoints += 2 -> MountInfo(0)
switchblade.TrunkSize = InventoryTile.Tile1511 switchblade.TrunkSize = InventoryTile.Tile1511
switchblade.TrunkOffset = 30 switchblade.TrunkOffset = 30
switchblade.TrunkLocation = Vector3(-2.5f, 0f, 0f) switchblade.TrunkLocation = Vector3(-2.5f, 0f, 0f)
@ -6541,7 +6549,10 @@ object GlobalDefinitions {
} }
switchblade.DrownAtMaxDepth = true switchblade.DrownAtMaxDepth = true
switchblade.MaxDepth = 2 switchblade.MaxDepth = 2
switchblade.UnderwaterLifespan(suffocation = 45000L, recovery = 5000L) //but the switchblade hovers over water, so ...? switchblade.UnderwaterLifespan(
suffocation = 45000L,
recovery = 5000L
) //but the switchblade hovers over water, so ...?
switchblade.Geometry = GeometryForm.representByCylinder(radius = 2.4335f, height = 2.73438f) switchblade.Geometry = GeometryForm.representByCylinder(radius = 2.4335f, height = 2.73438f)
flail.Name = "flail" flail.Name = "flail"
@ -6550,10 +6561,10 @@ object GlobalDefinitions {
flail.Repairable = true flail.Repairable = true
flail.RepairIfDestroyed = false flail.RepairIfDestroyed = false
flail.MaxShields = 480 flail.MaxShields = 480
flail.Seats += 0 -> new SeatDefinition() flail.Seats += 0 -> new SeatDefinition()
flail.controlledWeapons += 0 -> 1 flail.controlledWeapons += 0 -> 1
flail.Weapons += 1 -> flail_weapon flail.Weapons += 1 -> flail_weapon
flail.MountPoints += 1 -> MountInfo(0) flail.MountPoints += 1 -> MountInfo(0)
flail.TrunkSize = InventoryTile.Tile1511 flail.TrunkSize = InventoryTile.Tile1511
flail.TrunkOffset = 30 flail.TrunkOffset = 30
flail.TrunkLocation = Vector3(-3.75f, 0f, 0f) flail.TrunkLocation = Vector3(-3.75f, 0f, 0f)
@ -6586,11 +6597,11 @@ object GlobalDefinitions {
mosquito.RepairIfDestroyed = false mosquito.RepairIfDestroyed = false
mosquito.MaxShields = 133 mosquito.MaxShields = 133
mosquito.CanFly = true mosquito.CanFly = true
mosquito.Seats += 0 -> bailableSeat mosquito.Seats += 0 -> bailableSeat
mosquito.controlledWeapons += 0 -> 1 mosquito.controlledWeapons += 0 -> 1
mosquito.Weapons += 1 -> rotarychaingun_mosquito mosquito.Weapons += 1 -> rotarychaingun_mosquito
mosquito.MountPoints += 1 -> MountInfo(0) mosquito.MountPoints += 1 -> MountInfo(0)
mosquito.MountPoints += 2 -> MountInfo(0) mosquito.MountPoints += 2 -> MountInfo(0)
mosquito.TrunkSize = InventoryTile.Tile1111 mosquito.TrunkSize = InventoryTile.Tile1111
mosquito.TrunkOffset = 30 mosquito.TrunkOffset = 30
mosquito.TrunkLocation = Vector3(-4.6f, 0f, 0f) mosquito.TrunkLocation = Vector3(-4.6f, 0f, 0f)
@ -6619,11 +6630,11 @@ object GlobalDefinitions {
lightgunship.RepairIfDestroyed = false lightgunship.RepairIfDestroyed = false
lightgunship.MaxShields = 200 lightgunship.MaxShields = 200
lightgunship.CanFly = true lightgunship.CanFly = true
lightgunship.Seats += 0 -> bailableSeat lightgunship.Seats += 0 -> bailableSeat
lightgunship.controlledWeapons += 0 -> 1 lightgunship.controlledWeapons += 0 -> 1
lightgunship.Weapons += 1 -> lightgunship_weapon_system lightgunship.Weapons += 1 -> lightgunship_weapon_system
lightgunship.MountPoints += 1 -> MountInfo(0) lightgunship.MountPoints += 1 -> MountInfo(0)
lightgunship.MountPoints += 2 -> MountInfo(0) lightgunship.MountPoints += 2 -> MountInfo(0)
lightgunship.TrunkSize = InventoryTile.Tile1511 lightgunship.TrunkSize = InventoryTile.Tile1511
lightgunship.TrunkOffset = 30 lightgunship.TrunkOffset = 30
lightgunship.TrunkLocation = Vector3(-5.61f, 0f, 0f) lightgunship.TrunkLocation = Vector3(-5.61f, 0f, 0f)
@ -6653,11 +6664,11 @@ object GlobalDefinitions {
wasp.RepairIfDestroyed = false wasp.RepairIfDestroyed = false
wasp.MaxShields = 103 wasp.MaxShields = 103
wasp.CanFly = true wasp.CanFly = true
wasp.Seats += 0 -> bailableSeat wasp.Seats += 0 -> bailableSeat
wasp.controlledWeapons += 0 -> 1 wasp.controlledWeapons += 0 -> 1
wasp.Weapons += 1 -> wasp_weapon_system wasp.Weapons += 1 -> wasp_weapon_system
wasp.MountPoints += 1 -> MountInfo(0) wasp.MountPoints += 1 -> MountInfo(0)
wasp.MountPoints += 2 -> MountInfo(0) wasp.MountPoints += 2 -> MountInfo(0)
wasp.TrunkSize = InventoryTile.Tile1111 wasp.TrunkSize = InventoryTile.Tile1111
wasp.TrunkOffset = 30 wasp.TrunkOffset = 30
wasp.TrunkLocation = Vector3(-4.6f, 0f, 0f) wasp.TrunkLocation = Vector3(-4.6f, 0f, 0f)
@ -6686,19 +6697,19 @@ object GlobalDefinitions {
liberator.RepairIfDestroyed = false liberator.RepairIfDestroyed = false
liberator.MaxShields = 500 liberator.MaxShields = 500
liberator.CanFly = true liberator.CanFly = true
liberator.Seats += 0 -> new SeatDefinition() liberator.Seats += 0 -> new SeatDefinition()
liberator.Seats += 1 -> bailableSeat liberator.Seats += 1 -> bailableSeat
liberator.Seats += 2 -> bailableSeat liberator.Seats += 2 -> bailableSeat
liberator.controlledWeapons += 0 -> 3 liberator.controlledWeapons += 0 -> 3
liberator.controlledWeapons += 1 -> 4 liberator.controlledWeapons += 1 -> 4
liberator.controlledWeapons += 2 -> 5 liberator.controlledWeapons += 2 -> 5
liberator.Weapons += 3 -> liberator_weapon_system liberator.Weapons += 3 -> liberator_weapon_system
liberator.Weapons += 4 -> liberator_bomb_bay liberator.Weapons += 4 -> liberator_bomb_bay
liberator.Weapons += 5 -> liberator_25mm_cannon liberator.Weapons += 5 -> liberator_25mm_cannon
liberator.MountPoints += 1 -> MountInfo(0) liberator.MountPoints += 1 -> MountInfo(0)
liberator.MountPoints += 2 -> MountInfo(1) liberator.MountPoints += 2 -> MountInfo(1)
liberator.MountPoints += 3 -> MountInfo(1) liberator.MountPoints += 3 -> MountInfo(1)
liberator.MountPoints += 4 -> MountInfo(2) liberator.MountPoints += 4 -> MountInfo(2)
liberator.TrunkSize = InventoryTile.Tile1515 liberator.TrunkSize = InventoryTile.Tile1515
liberator.TrunkOffset = 30 liberator.TrunkOffset = 30
liberator.TrunkLocation = Vector3(-0.76f, -1.88f, 0f) liberator.TrunkLocation = Vector3(-0.76f, -1.88f, 0f)
@ -6728,19 +6739,19 @@ object GlobalDefinitions {
vulture.RepairIfDestroyed = false vulture.RepairIfDestroyed = false
vulture.MaxShields = 500 vulture.MaxShields = 500
vulture.CanFly = true vulture.CanFly = true
vulture.Seats += 0 -> new SeatDefinition() vulture.Seats += 0 -> new SeatDefinition()
vulture.Seats += 1 -> bailableSeat vulture.Seats += 1 -> bailableSeat
vulture.Seats += 2 -> bailableSeat vulture.Seats += 2 -> bailableSeat
vulture.controlledWeapons += 0 -> 3 vulture.controlledWeapons += 0 -> 3
vulture.controlledWeapons += 1 -> 4 vulture.controlledWeapons += 1 -> 4
vulture.controlledWeapons += 2 -> 5 vulture.controlledWeapons += 2 -> 5
vulture.Weapons += 3 -> vulture_nose_weapon_system vulture.Weapons += 3 -> vulture_nose_weapon_system
vulture.Weapons += 4 -> vulture_bomb_bay vulture.Weapons += 4 -> vulture_bomb_bay
vulture.Weapons += 5 -> vulture_tail_cannon vulture.Weapons += 5 -> vulture_tail_cannon
vulture.MountPoints += 1 -> MountInfo(0) vulture.MountPoints += 1 -> MountInfo(0)
vulture.MountPoints += 2 -> MountInfo(1) vulture.MountPoints += 2 -> MountInfo(1)
vulture.MountPoints += 3 -> MountInfo(1) vulture.MountPoints += 3 -> MountInfo(1)
vulture.MountPoints += 4 -> MountInfo(2) vulture.MountPoints += 4 -> MountInfo(2)
vulture.TrunkSize = InventoryTile.Tile1611 vulture.TrunkSize = InventoryTile.Tile1611
vulture.TrunkOffset = 30 vulture.TrunkOffset = 30
vulture.TrunkLocation = Vector3(-0.76f, -1.88f, 0f) vulture.TrunkLocation = Vector3(-0.76f, -1.88f, 0f)
@ -6790,25 +6801,25 @@ object GlobalDefinitions {
bailable = true bailable = true
restriction = MaxOnly restriction = MaxOnly
} }
dropship.Seats += 11 -> bailableSeat dropship.Seats += 11 -> bailableSeat
dropship.controlledWeapons += 1 -> 12 dropship.controlledWeapons += 1 -> 12
dropship.controlledWeapons += 2 -> 13 dropship.controlledWeapons += 2 -> 13
dropship.controlledWeapons += 11 -> 14 dropship.controlledWeapons += 11 -> 14
dropship.Weapons += 12 -> cannon_dropship_20mm dropship.Weapons += 12 -> cannon_dropship_20mm
dropship.Weapons += 13 -> cannon_dropship_20mm dropship.Weapons += 13 -> cannon_dropship_20mm
dropship.Weapons += 14 -> dropship_rear_turret dropship.Weapons += 14 -> dropship_rear_turret
dropship.Cargo += 15 -> new CargoDefinition() { dropship.Cargo += 15 -> new CargoDefinition() {
restriction = SmallCargo restriction = SmallCargo
} }
dropship.MountPoints += 1 -> MountInfo(0) dropship.MountPoints += 1 -> MountInfo(0)
dropship.MountPoints += 2 -> MountInfo(11) dropship.MountPoints += 2 -> MountInfo(11)
dropship.MountPoints += 3 -> MountInfo(1) dropship.MountPoints += 3 -> MountInfo(1)
dropship.MountPoints += 4 -> MountInfo(2) dropship.MountPoints += 4 -> MountInfo(2)
dropship.MountPoints += 5 -> MountInfo(3) dropship.MountPoints += 5 -> MountInfo(3)
dropship.MountPoints += 6 -> MountInfo(4) dropship.MountPoints += 6 -> MountInfo(4)
dropship.MountPoints += 7 -> MountInfo(5) dropship.MountPoints += 7 -> MountInfo(5)
dropship.MountPoints += 8 -> MountInfo(6) dropship.MountPoints += 8 -> MountInfo(6)
dropship.MountPoints += 9 -> MountInfo(7) dropship.MountPoints += 9 -> MountInfo(7)
dropship.MountPoints += 10 -> MountInfo(8) dropship.MountPoints += 10 -> MountInfo(8)
dropship.MountPoints += 11 -> MountInfo(9) dropship.MountPoints += 11 -> MountInfo(9)
dropship.MountPoints += 12 -> MountInfo(10) dropship.MountPoints += 12 -> MountInfo(10)
@ -6843,28 +6854,28 @@ object GlobalDefinitions {
galaxy_gunship.RepairIfDestroyed = false galaxy_gunship.RepairIfDestroyed = false
galaxy_gunship.MaxShields = 1200 galaxy_gunship.MaxShields = 1200
galaxy_gunship.CanFly = true galaxy_gunship.CanFly = true
galaxy_gunship.Seats += 0 -> new SeatDefinition() galaxy_gunship.Seats += 0 -> new SeatDefinition()
galaxy_gunship.Seats += 1 -> bailableSeat galaxy_gunship.Seats += 1 -> bailableSeat
galaxy_gunship.Seats += 2 -> bailableSeat galaxy_gunship.Seats += 2 -> bailableSeat
galaxy_gunship.Seats += 3 -> bailableSeat galaxy_gunship.Seats += 3 -> bailableSeat
galaxy_gunship.Seats += 4 -> bailableSeat galaxy_gunship.Seats += 4 -> bailableSeat
galaxy_gunship.Seats += 5 -> bailableSeat galaxy_gunship.Seats += 5 -> bailableSeat
galaxy_gunship.controlledWeapons += 1 -> 6 galaxy_gunship.controlledWeapons += 1 -> 6
galaxy_gunship.controlledWeapons += 2 -> 7 galaxy_gunship.controlledWeapons += 2 -> 7
galaxy_gunship.controlledWeapons += 3 -> 8 galaxy_gunship.controlledWeapons += 3 -> 8
galaxy_gunship.controlledWeapons += 4 -> 9 galaxy_gunship.controlledWeapons += 4 -> 9
galaxy_gunship.controlledWeapons += 5 -> 10 galaxy_gunship.controlledWeapons += 5 -> 10
galaxy_gunship.Weapons += 6 -> galaxy_gunship_cannon galaxy_gunship.Weapons += 6 -> galaxy_gunship_cannon
galaxy_gunship.Weapons += 7 -> galaxy_gunship_cannon galaxy_gunship.Weapons += 7 -> galaxy_gunship_cannon
galaxy_gunship.Weapons += 8 -> galaxy_gunship_tailgun galaxy_gunship.Weapons += 8 -> galaxy_gunship_tailgun
galaxy_gunship.Weapons += 9 -> galaxy_gunship_gun galaxy_gunship.Weapons += 9 -> galaxy_gunship_gun
galaxy_gunship.Weapons += 10 -> galaxy_gunship_gun galaxy_gunship.Weapons += 10 -> galaxy_gunship_gun
galaxy_gunship.MountPoints += 1 -> MountInfo(0) galaxy_gunship.MountPoints += 1 -> MountInfo(0)
galaxy_gunship.MountPoints += 2 -> MountInfo(3) galaxy_gunship.MountPoints += 2 -> MountInfo(3)
galaxy_gunship.MountPoints += 3 -> MountInfo(1) galaxy_gunship.MountPoints += 3 -> MountInfo(1)
galaxy_gunship.MountPoints += 4 -> MountInfo(2) galaxy_gunship.MountPoints += 4 -> MountInfo(2)
galaxy_gunship.MountPoints += 5 -> MountInfo(4) galaxy_gunship.MountPoints += 5 -> MountInfo(4)
galaxy_gunship.MountPoints += 6 -> MountInfo(5) galaxy_gunship.MountPoints += 6 -> MountInfo(5)
galaxy_gunship.TrunkSize = InventoryTile.Tile1816 galaxy_gunship.TrunkSize = InventoryTile.Tile1816
galaxy_gunship.TrunkOffset = 30 galaxy_gunship.TrunkOffset = 30
galaxy_gunship.TrunkLocation = Vector3(-9.85f, 0f, 0f) galaxy_gunship.TrunkLocation = Vector3(-9.85f, 0f, 0f)
@ -6898,8 +6909,8 @@ object GlobalDefinitions {
lodestar.MaxShields = 1000 lodestar.MaxShields = 1000
lodestar.CanFly = true lodestar.CanFly = true
lodestar.Seats += 0 -> new SeatDefinition() lodestar.Seats += 0 -> new SeatDefinition()
lodestar.MountPoints += 1 -> MountInfo(0) lodestar.MountPoints += 1 -> MountInfo(0)
lodestar.MountPoints += 2 -> MountInfo(1) lodestar.MountPoints += 2 -> MountInfo(1)
lodestar.Cargo += 1 -> new CargoDefinition() lodestar.Cargo += 1 -> new CargoDefinition()
lodestar.Utilities += 2 -> UtilityType.lodestar_repair_terminal lodestar.Utilities += 2 -> UtilityType.lodestar_repair_terminal
lodestar.UtilityOffset += 2 -> Vector3(0, 20, 0) lodestar.UtilityOffset += 2 -> Vector3(0, 20, 0)
@ -6939,11 +6950,11 @@ object GlobalDefinitions {
phantasm.MaxShields = 500 phantasm.MaxShields = 500
phantasm.CanCloak = true phantasm.CanCloak = true
phantasm.CanFly = true phantasm.CanFly = true
phantasm.Seats += 0 -> new SeatDefinition() phantasm.Seats += 0 -> new SeatDefinition()
phantasm.Seats += 1 -> bailableSeat phantasm.Seats += 1 -> bailableSeat
phantasm.Seats += 2 -> bailableSeat phantasm.Seats += 2 -> bailableSeat
phantasm.Seats += 3 -> bailableSeat phantasm.Seats += 3 -> bailableSeat
phantasm.Seats += 4 -> bailableSeat phantasm.Seats += 4 -> bailableSeat
phantasm.MountPoints += 1 -> MountInfo(0) phantasm.MountPoints += 1 -> MountInfo(0)
phantasm.MountPoints += 2 -> MountInfo(1) phantasm.MountPoints += 2 -> MountInfo(1)
phantasm.MountPoints += 3 -> MountInfo(2) phantasm.MountPoints += 3 -> MountInfo(2)
@ -7002,15 +7013,15 @@ object GlobalDefinitions {
physically, they correlate to positions in the HART building rather than with the shuttle model by itself; physically, they correlate to positions in the HART building rather than with the shuttle model by itself;
set the shuttle pad based on the zonemap extraction values then position the shuttle relative to that pad; set the shuttle pad based on the zonemap extraction values then position the shuttle relative to that pad;
rotation based on the shuttle should place these offsets in the HART lobby whose gantry hall corresponds to that mount index rotation based on the shuttle should place these offsets in the HART lobby whose gantry hall corresponds to that mount index
*/ */
orbital_shuttle.MountPoints += 1 -> MountInfo(0, Vector3(-62, 4, -28.2f)) orbital_shuttle.MountPoints += 1 -> MountInfo(0, Vector3(-62, 4, -28.2f))
orbital_shuttle.MountPoints += 2 -> MountInfo(0, Vector3(-62, 28, -28.2f)) orbital_shuttle.MountPoints += 2 -> MountInfo(0, Vector3(-62, 28, -28.2f))
orbital_shuttle.MountPoints += 3 -> MountInfo(0, Vector3(-62, 4, -18.2f)) orbital_shuttle.MountPoints += 3 -> MountInfo(0, Vector3(-62, 4, -18.2f))
orbital_shuttle.MountPoints += 4 -> MountInfo(0, Vector3(-62, 28, -18.2f)) orbital_shuttle.MountPoints += 4 -> MountInfo(0, Vector3(-62, 28, -18.2f))
orbital_shuttle.MountPoints += 5 -> MountInfo(0, Vector3( 62, 4, -28.2f)) orbital_shuttle.MountPoints += 5 -> MountInfo(0, Vector3(62, 4, -28.2f))
orbital_shuttle.MountPoints += 6 -> MountInfo(0, Vector3( 62, 28, -28.2f)) orbital_shuttle.MountPoints += 6 -> MountInfo(0, Vector3(62, 28, -28.2f))
orbital_shuttle.MountPoints += 7 -> MountInfo(0, Vector3( 62, 4, -18.2f)) orbital_shuttle.MountPoints += 7 -> MountInfo(0, Vector3(62, 4, -18.2f))
orbital_shuttle.MountPoints += 8 -> MountInfo(0, Vector3( 62, 28, -18.2f)) orbital_shuttle.MountPoints += 8 -> MountInfo(0, Vector3(62, 28, -18.2f))
orbital_shuttle.TrunkSize = InventoryTile.None orbital_shuttle.TrunkSize = InventoryTile.None
orbital_shuttle.Packet = new OrbitalShuttleConverter orbital_shuttle.Packet = new OrbitalShuttleConverter
orbital_shuttle.DeconstructionTime = None orbital_shuttle.DeconstructionTime = None
@ -7023,9 +7034,9 @@ object GlobalDefinitions {
* Initialize `Deployable` globals. * Initialize `Deployable` globals.
*/ */
private def init_deployables(): Unit = { private def init_deployables(): Unit = {
val mine = GeometryForm.representByCylinder(radius = 0.1914f, height = 0.0957f) _ val mine = GeometryForm.representByCylinder(radius = 0.1914f, height = 0.0957f) _
val smallTurret = GeometryForm.representByCylinder(radius = 0.48435f, height = 1.23438f) _ val smallTurret = GeometryForm.representByCylinder(radius = 0.48435f, height = 1.23438f) _
val sensor = GeometryForm.representByCylinder(radius = 0.1914f, height = 1.21875f) _ val sensor = GeometryForm.representByCylinder(radius = 0.1914f, height = 1.21875f) _
val largeTurret = GeometryForm.representByCylinder(radius = 0.8437f, height = 2.29687f) _ val largeTurret = GeometryForm.representByCylinder(radius = 0.8437f, height = 2.29687f) _
boomer.Name = "boomer" boomer.Name = "boomer"
@ -7197,11 +7208,11 @@ object GlobalDefinitions {
portable_manned_turret.Damageable = true portable_manned_turret.Damageable = true
portable_manned_turret.Repairable = true portable_manned_turret.Repairable = true
portable_manned_turret.RepairIfDestroyed = false portable_manned_turret.RepairIfDestroyed = false
portable_manned_turret.controlledWeapons += 0 -> 1 portable_manned_turret.controlledWeapons += 0 -> 1
portable_manned_turret.WeaponPaths += 1 -> new mutable.HashMap() portable_manned_turret.WeaponPaths += 1 -> new mutable.HashMap()
portable_manned_turret.WeaponPaths(1) += TurretUpgrade.None -> energy_gun portable_manned_turret.WeaponPaths(1) += TurretUpgrade.None -> energy_gun
portable_manned_turret.MountPoints += 1 -> MountInfo(0) portable_manned_turret.MountPoints += 1 -> MountInfo(0)
portable_manned_turret.MountPoints += 2 -> MountInfo(0) portable_manned_turret.MountPoints += 2 -> MountInfo(0)
portable_manned_turret.ReserveAmmunition = true portable_manned_turret.ReserveAmmunition = true
portable_manned_turret.FactionLocked = true portable_manned_turret.FactionLocked = true
portable_manned_turret.Packet = fieldTurretConverter portable_manned_turret.Packet = fieldTurretConverter
@ -7227,9 +7238,9 @@ object GlobalDefinitions {
portable_manned_turret_nc.RepairIfDestroyed = false portable_manned_turret_nc.RepairIfDestroyed = false
portable_manned_turret_nc.WeaponPaths += 1 -> new mutable.HashMap() portable_manned_turret_nc.WeaponPaths += 1 -> new mutable.HashMap()
portable_manned_turret_nc.WeaponPaths(1) += TurretUpgrade.None -> energy_gun_nc portable_manned_turret_nc.WeaponPaths(1) += TurretUpgrade.None -> energy_gun_nc
portable_manned_turret_nc.controlledWeapons += 0 -> 1 portable_manned_turret_nc.controlledWeapons += 0 -> 1
portable_manned_turret_nc.MountPoints += 1 -> MountInfo(0) portable_manned_turret_nc.MountPoints += 1 -> MountInfo(0)
portable_manned_turret_nc.MountPoints += 2 -> MountInfo(0) portable_manned_turret_nc.MountPoints += 2 -> MountInfo(0)
portable_manned_turret_nc.ReserveAmmunition = true portable_manned_turret_nc.ReserveAmmunition = true
portable_manned_turret_nc.FactionLocked = true portable_manned_turret_nc.FactionLocked = true
portable_manned_turret_nc.Packet = fieldTurretConverter portable_manned_turret_nc.Packet = fieldTurretConverter
@ -7255,9 +7266,9 @@ object GlobalDefinitions {
portable_manned_turret_tr.RepairIfDestroyed = false portable_manned_turret_tr.RepairIfDestroyed = false
portable_manned_turret_tr.WeaponPaths += 1 -> new mutable.HashMap() portable_manned_turret_tr.WeaponPaths += 1 -> new mutable.HashMap()
portable_manned_turret_tr.WeaponPaths(1) += TurretUpgrade.None -> energy_gun_tr portable_manned_turret_tr.WeaponPaths(1) += TurretUpgrade.None -> energy_gun_tr
portable_manned_turret_tr.controlledWeapons += 0 -> 1 portable_manned_turret_tr.controlledWeapons += 0 -> 1
portable_manned_turret_tr.MountPoints += 1 -> MountInfo(0) portable_manned_turret_tr.MountPoints += 1 -> MountInfo(0)
portable_manned_turret_tr.MountPoints += 2 -> MountInfo(0) portable_manned_turret_tr.MountPoints += 2 -> MountInfo(0)
portable_manned_turret_tr.ReserveAmmunition = true portable_manned_turret_tr.ReserveAmmunition = true
portable_manned_turret_tr.FactionLocked = true portable_manned_turret_tr.FactionLocked = true
portable_manned_turret_tr.Packet = fieldTurretConverter portable_manned_turret_tr.Packet = fieldTurretConverter
@ -7283,9 +7294,9 @@ object GlobalDefinitions {
portable_manned_turret_vs.RepairIfDestroyed = false portable_manned_turret_vs.RepairIfDestroyed = false
portable_manned_turret_vs.WeaponPaths += 1 -> new mutable.HashMap() portable_manned_turret_vs.WeaponPaths += 1 -> new mutable.HashMap()
portable_manned_turret_vs.WeaponPaths(1) += TurretUpgrade.None -> energy_gun_vs portable_manned_turret_vs.WeaponPaths(1) += TurretUpgrade.None -> energy_gun_vs
portable_manned_turret_vs.controlledWeapons += 0 -> 1 portable_manned_turret_vs.controlledWeapons += 0 -> 1
portable_manned_turret_vs.MountPoints += 1 -> MountInfo(0) portable_manned_turret_vs.MountPoints += 1 -> MountInfo(0)
portable_manned_turret_vs.MountPoints += 2 -> MountInfo(0) portable_manned_turret_vs.MountPoints += 2 -> MountInfo(0)
portable_manned_turret_vs.ReserveAmmunition = true portable_manned_turret_vs.ReserveAmmunition = true
portable_manned_turret_vs.FactionLocked = true portable_manned_turret_vs.FactionLocked = true
portable_manned_turret_vs.Packet = fieldTurretConverter portable_manned_turret_vs.Packet = fieldTurretConverter
@ -7477,7 +7488,8 @@ object GlobalDefinitions {
implant_terminal_interface.MaxHealth = 500 implant_terminal_interface.MaxHealth = 500
implant_terminal_interface.Damageable = false //TODO true implant_terminal_interface.Damageable = false //TODO true
implant_terminal_interface.Repairable = true implant_terminal_interface.Repairable = true
implant_terminal_interface.autoRepair = AutoRepairStats(1, 5000, 200, 1) //TODO amount and drain are default? undefined? implant_terminal_interface.autoRepair =
AutoRepairStats(1, 5000, 200, 1) //TODO amount and drain are default? undefined?
implant_terminal_interface.RepairIfDestroyed = true implant_terminal_interface.RepairIfDestroyed = true
//TODO will need geometry when Damageable = true //TODO will need geometry when Damageable = true
@ -7791,8 +7803,8 @@ object GlobalDefinitions {
manned_turret.WeaponPaths(1) += TurretUpgrade.None -> phalanx_sgl_hevgatcan manned_turret.WeaponPaths(1) += TurretUpgrade.None -> phalanx_sgl_hevgatcan
manned_turret.WeaponPaths(1) += TurretUpgrade.AVCombo -> phalanx_avcombo manned_turret.WeaponPaths(1) += TurretUpgrade.AVCombo -> phalanx_avcombo
manned_turret.WeaponPaths(1) += TurretUpgrade.FlakCombo -> phalanx_flakcombo manned_turret.WeaponPaths(1) += TurretUpgrade.FlakCombo -> phalanx_flakcombo
manned_turret.controlledWeapons += 0 -> 1 manned_turret.controlledWeapons += 0 -> 1
manned_turret.MountPoints += 1 -> MountInfo(0) manned_turret.MountPoints += 1 -> MountInfo(0)
manned_turret.FactionLocked = true manned_turret.FactionLocked = true
manned_turret.ReserveAmmunition = false manned_turret.ReserveAmmunition = false
manned_turret.explodes = true manned_turret.explodes = true
@ -7815,9 +7827,9 @@ object GlobalDefinitions {
vanu_sentry_turret.RepairIfDestroyed = true vanu_sentry_turret.RepairIfDestroyed = true
vanu_sentry_turret.WeaponPaths += 1 -> new mutable.HashMap() vanu_sentry_turret.WeaponPaths += 1 -> new mutable.HashMap()
vanu_sentry_turret.WeaponPaths(1) += TurretUpgrade.None -> vanu_sentry_turret_weapon vanu_sentry_turret.WeaponPaths(1) += TurretUpgrade.None -> vanu_sentry_turret_weapon
vanu_sentry_turret.controlledWeapons += 0 -> 1 vanu_sentry_turret.controlledWeapons += 0 -> 1
vanu_sentry_turret.MountPoints += 1 -> MountInfo(0) vanu_sentry_turret.MountPoints += 1 -> MountInfo(0)
vanu_sentry_turret.MountPoints += 2 -> MountInfo(0) vanu_sentry_turret.MountPoints += 2 -> MountInfo(0)
vanu_sentry_turret.FactionLocked = false vanu_sentry_turret.FactionLocked = false
vanu_sentry_turret.ReserveAmmunition = false vanu_sentry_turret.ReserveAmmunition = false
vanu_sentry_turret.Geometry = GeometryForm.representByCylinder(radius = 1.76311f, height = 3.984375f) vanu_sentry_turret.Geometry = GeometryForm.representByCylinder(radius = 1.76311f, height = 3.984375f)