diff --git a/common/src/main/scala/net/psforever/packet/game/OxygenStateMessage.scala b/common/src/main/scala/net/psforever/packet/game/OxygenStateMessage.scala
index 16ed7b87..54da0ab0 100644
--- a/common/src/main/scala/net/psforever/packet/game/OxygenStateMessage.scala
+++ b/common/src/main/scala/net/psforever/packet/game/OxygenStateMessage.scala
@@ -9,15 +9,16 @@ import shapeless.{::, HNil}
/**
* Alert the condition of a vehicle the player is using when going too far underwater.
- * The player must be mounted to this vehicle at start time for this countdown to display.
+ * The player must be mounted in/on this vehicle at start time for this countdown to display.
* @param vehicle_guid the player's mounted vehicle
- * @param time the countdown's time, in seconds
+ * @param progress the remaining countdown;
+ * for vehicle waterlog condition, the progress per second rate is very high
* @param active show a new countdown if `true` (resets any active countdown);
* clear any active countdowns if `false`;
* defaults to `true`
*/
final case class WaterloggedVehicleState(vehicle_guid : PlanetSideGUID,
- time : Float,
+ progress : Float,
active : Boolean = true)
/**
@@ -32,22 +33,23 @@ final case class WaterloggedVehicleState(vehicle_guid : PlanetSideGUID,
* When it reaches zero, the vehicle will become disabled.
* All players in the vehicle's seats will be kicked and they will not be allowed back in.
*
- * Normally, the countdowns should be set to begin at 100.0s.
+ * Normally, the countdowns should be set to begin at 100 (100.0).
* This is the earliest the drowning GUI will appear for either blue or red indicators.
- * Passing greater intervals - up to 204.8s - will start the countdown silently but the GUI will be hidden until 100.0s.
- * (The progress indicators will actually appear to start counting from 98%.)
- * Managing the secondary vehicle countdown independent of the primary player countdown requires updating with the correct times.
+ * Passing greater intervals - up to 204.8 - will start the countdown silently but the GUI will be hidden until 100.0.
+ * (The progress indicators will actually appear to start counting from 98.)
+ * Managing the secondary vehicle countdown independent of the primary player countdown requires updating with the correct levels.
* The countdown can be cancelled by instructing it to be `active = false`.
*
* Except for updating the indicators, all other functionality of "drowning" is automated by the server.
* @param player_guid the player
- * @param time the countdown's time, in seconds
+ * @param progress the remaining countdown;
+ * for character oxygen, the progress per second rate is about 1
* @param active show a new countdown if `true` (resets any active countdown);
* clear any active countdowns if `false`
* @param vehicle_state optional state of the vehicle the player is driving
*/
final case class OxygenStateMessage(player_guid : PlanetSideGUID,
- time : Float,
+ progress : Float,
active : Boolean,
vehicle_state : Option[WaterloggedVehicleState] = None)
extends PlanetSideGamePacket {
@@ -60,13 +62,13 @@ object OxygenStateMessage extends Marshallable[OxygenStateMessage] {
/**
* Overloaded constructor that removes the optional state of the `WaterloggedVehicleState` parameter.
* @param player_guid the player
- * @param time the countdown's time upon start
+ * @param progress the remaining countdown
* @param active show or clear the countdown
* @param vehicle_state state of the vehicle the player is driving
* @return
*/
- def apply(player_guid : PlanetSideGUID, time : Float, active : Boolean, vehicle_state : WaterloggedVehicleState) : OxygenStateMessage =
- OxygenStateMessage(player_guid, time, active, Some(vehicle_state))
+ def apply(player_guid : PlanetSideGUID, progress : Float, active : Boolean, vehicle_state : WaterloggedVehicleState) : OxygenStateMessage =
+ OxygenStateMessage(player_guid, progress, active, Some(vehicle_state))
/**
* A simple pattern that expands the datatypes of the packet's basic `Codec`.
diff --git a/common/src/test/scala/game/OxygenStateMessageTest.scala b/common/src/test/scala/game/OxygenStateMessageTest.scala
index 65830e55..034be18e 100644
--- a/common/src/test/scala/game/OxygenStateMessageTest.scala
+++ b/common/src/test/scala/game/OxygenStateMessageTest.scala
@@ -12,9 +12,9 @@ class OxygenStateMessageTest extends Specification {
"decode (self)" in {
PacketCoding.DecodePacket(string_self).require match {
- case OxygenStateMessage(guid, time, active, veh_state) =>
+ case OxygenStateMessage(guid, progress, active, veh_state) =>
guid mustEqual PlanetSideGUID(75)
- time mustEqual 50.0
+ progress mustEqual 50.0
active mustEqual true
veh_state.isDefined mustEqual false
case _ =>
@@ -24,13 +24,13 @@ class OxygenStateMessageTest extends Specification {
"decode (vehicle)" in {
PacketCoding.DecodePacket(string_vehicle).require match {
- case OxygenStateMessage(guid, time, active, veh_state) =>
+ case OxygenStateMessage(guid, progress, active, veh_state) =>
guid mustEqual PlanetSideGUID(75)
- time mustEqual 50.0f
+ progress mustEqual 50.0f
active mustEqual true
veh_state.isDefined mustEqual true
veh_state.get.vehicle_guid mustEqual PlanetSideGUID(1546)
- veh_state.get.time mustEqual 50.0f
+ veh_state.get.progress mustEqual 50.0f
veh_state.get.active mustEqual true
case _ =>
ko