mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-04-27 07:15:26 +00:00
Hart (#723)
* initial OrbitalShuttleTimeMsg packet and tests; new objects to support HART shuttle transport system * master was stale * grouped scheduling for timing orbital shuttle activity * door lock controls for HART shuttle lifecycle, and specifically for the doors that lead into the shuttle boarding hallway * separation of the door from the door unlocking logic, which now has to be provided if performed by an outside source; a door that is locked either by bolt, HART routine, or other reason, can now be shut immediately; message when HART is not docked with a corresponding entry hallway door * better degree of door logic control; all shuttle-related messages have been moved to LocalService; careful managing of 'original state' for the shuttle's cycle * modification of seat mounting and cargo mounting support entities to expand functionality * absolutely very little to do with the feature of this branch and a lot to do with yak-shaving; long story short, class inheritance is greatly modified and mountable seats can now accept multiple players if initialized properly * a lot has changed: distribution of MountableBehavior, mount point information is more complex, vehicles convert differently, the routine of the shuttle timer is initialized differently; you can now successfully utilize the HART shuttle to drop into a zone * swap of shutle from pad to pad control; tests and comments * eject players from HART gantry hallway as if passengers dismounting from seat when not boarding through the use of environmental geometry; HART system uses duration from config settings to set scheduler * rebase to curious master; repairs to vector rotation calculations; regression of mountable changes involving seats with occupancy greater than 1; orbital shuttle as a unique vehicle and amenity; corrected dismount offsets and offset calculations; weird angle of nc hart a building has been properly accommodated; hart events have prerequisite animation states * rebase with master; looks like rebase with merged_master, which is also a commit * lots of tests (though not nearly enough); checking the permission group of a shuttle seat no longer creates that seat * fixing explosions * fixed the persistence monitor service potentially using non-printable unicode in actor names * can not use a droppod to gain access to one's own sanctuary * removed hart facility update that causing open bay doors and beeping * PR review changes * fix for aggravation issues
This commit is contained in:
parent
e3de497be3
commit
71ab35ecab
127 changed files with 4672 additions and 1870 deletions
|
|
@ -631,8 +631,8 @@ class DamageableMountableDamageTest extends ActorTest {
|
|||
Vector3(1, 0, 0)
|
||||
)
|
||||
val applyDamageTo = resolved.calculate()
|
||||
mech.Seats(0).Occupant = player2 //seat the player
|
||||
player2.VehicleSeated = Some(mech.GUID) //seat the player
|
||||
mech.Seats(0).mount(player2) //mount the player
|
||||
player2.VehicleSeated = Some(mech.GUID) //mount the player
|
||||
expectNoMessage(200 milliseconds)
|
||||
//we're not testing that the math is correct
|
||||
|
||||
|
|
@ -728,8 +728,8 @@ class DamageableMountableDestroyTest extends ActorTest {
|
|||
Vector3(1, 0, 0)
|
||||
)
|
||||
val applyDamageTo = resolved.calculate()
|
||||
mech.Seats(0).Occupant = player2 //seat the player
|
||||
player2.VehicleSeated = Some(mech.GUID) //seat the player
|
||||
mech.Seats(0).mount(player2) //mount the player
|
||||
player2.VehicleSeated = Some(mech.GUID) //mount the player
|
||||
expectNoMessage(200 milliseconds)
|
||||
//we're not testing that the math is correct
|
||||
|
||||
|
|
@ -797,7 +797,7 @@ class DamageableWeaponTurretDamageTest extends ActorTest {
|
|||
guid.register(turret, 2)
|
||||
guid.register(player1, 3)
|
||||
guid.register(player2, 4)
|
||||
turret.Seats(0).Occupant = player2
|
||||
turret.Seats(0).mount(player2)
|
||||
player2.VehicleSeated = turret.GUID
|
||||
|
||||
val weapon = Tool(GlobalDefinitions.suppressor)
|
||||
|
|
@ -898,7 +898,7 @@ class DamageableWeaponTurretJammerTest extends ActorTest {
|
|||
guid.register(player2, 4)
|
||||
guid.register(turretWeapon, 5)
|
||||
guid.register(turretWeapon.AmmoSlot.Box, 6)
|
||||
turret.Seats(0).Occupant = player2
|
||||
turret.Seats(0).mount(player2)
|
||||
player2.VehicleSeated = turret.GUID
|
||||
|
||||
val weapon = Tool(GlobalDefinitions.jammer_grenade)
|
||||
|
|
@ -999,7 +999,7 @@ class DamageableWeaponTurretDestructionTest extends ActorTest {
|
|||
guid.register(player2, 4)
|
||||
guid.register(turretWeapon, 5)
|
||||
guid.register(turretWeapon.AmmoSlot.Box, 6)
|
||||
turret.Seats(0).Occupant = player2
|
||||
turret.Seats(0).mount(player2)
|
||||
player2.VehicleSeated = turret.GUID
|
||||
building.Position = Vector3(1, 0, 0)
|
||||
building.Zone = zone
|
||||
|
|
@ -1060,7 +1060,7 @@ class DamageableWeaponTurretDestructionTest extends ActorTest {
|
|||
assert(!turret.Destroyed)
|
||||
|
||||
turret.Actor ! Vitality.Damage(applyDamageToA) //also test destruction while jammered
|
||||
vehicleProbe.receiveN(2, 500 milliseconds) //flush jammered messages (see above)
|
||||
vehicleProbe.receiveN(2, 1000 milliseconds) //flush jammered messages (see above)
|
||||
assert(turret.Health > turret.Definition.DamageDestroysAt)
|
||||
assert(turret.Jammed)
|
||||
assert(!turret.Destroyed)
|
||||
|
|
@ -1148,7 +1148,7 @@ class DamageableVehicleDamageTest extends ActorTest {
|
|||
guid.register(player1, 2)
|
||||
guid.register(player2, 3)
|
||||
atv.Zone = zone
|
||||
atv.Seats(0).Occupant = player2
|
||||
atv.Seats(0).mount(player2)
|
||||
player2.VehicleSeated = atv.GUID
|
||||
|
||||
val weapon = Tool(GlobalDefinitions.suppressor)
|
||||
|
|
@ -1273,12 +1273,12 @@ class DamageableVehicleDamageMountedTest extends ActorTest {
|
|||
//the lodestar control actor needs to load after the utilities have guid's assigned
|
||||
lodestar.Actor = system.actorOf(Props(classOf[VehicleControl], lodestar), "lodestar-control")
|
||||
lodestar.Zone = zone
|
||||
lodestar.Seats(0).Occupant = player2
|
||||
lodestar.Seats(0).mount(player2)
|
||||
player2.VehicleSeated = lodestar.GUID
|
||||
atv.Zone = zone
|
||||
atv.Seats(0).Occupant = player3
|
||||
atv.Seats(0).mount(player3)
|
||||
player3.VehicleSeated = atv.GUID
|
||||
lodestar.CargoHolds(1).Occupant = atv
|
||||
lodestar.CargoHolds(1).mount(atv)
|
||||
atv.MountedIn = lodestar.GUID
|
||||
|
||||
val weapon = Tool(GlobalDefinitions.phoenix) //decimator
|
||||
|
|
@ -1420,11 +1420,11 @@ class DamageableVehicleJammeringMountedTest extends ActorTest {
|
|||
lodestar.Actor = system.actorOf(Props(classOf[VehicleControl], lodestar), "lodestar-control")
|
||||
atv.Zone = zone
|
||||
lodestar.Zone = zone
|
||||
atv.Seats(0).Occupant = player2
|
||||
atv.Seats(0).mount(player2)
|
||||
player2.VehicleSeated = atv.GUID
|
||||
lodestar.Seats(0).Occupant = player3
|
||||
lodestar.Seats(0).mount(player3)
|
||||
player3.VehicleSeated = lodestar.GUID
|
||||
lodestar.CargoHolds(1).Occupant = atv
|
||||
lodestar.CargoHolds(1).mount(atv)
|
||||
atv.MountedIn = lodestar.GUID
|
||||
|
||||
val vehicleSource = SourceEntry(lodestar)
|
||||
|
|
@ -1516,7 +1516,7 @@ class DamageableVehicleDestroyTest extends ActorTest {
|
|||
guid.register(atvWeapon, 4)
|
||||
guid.register(atvWeapon.AmmoSlot.Box, 5)
|
||||
atv.Zone = zone
|
||||
atv.Seats(0).Occupant = player2
|
||||
atv.Seats(0).mount(player2)
|
||||
player2.VehicleSeated = atv.GUID
|
||||
|
||||
val weapon = Tool(GlobalDefinitions.suppressor)
|
||||
|
|
@ -1642,11 +1642,11 @@ class DamageableVehicleDestroyMountedTest extends ActorTest {
|
|||
lodestar.Actor = system.actorOf(Props(classOf[VehicleControl], lodestar), "lodestar-control")
|
||||
atv.Zone = zone
|
||||
lodestar.Zone = zone
|
||||
atv.Seats(0).Occupant = player2
|
||||
atv.Seats(0).mount(player2)
|
||||
player2.VehicleSeated = atv.GUID
|
||||
lodestar.Seats(0).Occupant = player3
|
||||
lodestar.Seats(0).mount(player3)
|
||||
player3.VehicleSeated = lodestar.GUID
|
||||
lodestar.CargoHolds(1).Occupant = atv
|
||||
lodestar.CargoHolds(1).mount(atv)
|
||||
atv.MountedIn = lodestar.GUID
|
||||
|
||||
val vehicleSource = SourceEntry(lodestar)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue