mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-07-13 15:34:42 +00:00
comments and tests
This commit is contained in:
parent
91a429506f
commit
a3d8d891a1
2 changed files with 41 additions and 3 deletions
|
|
@ -6,12 +6,27 @@ import scodec.Codec
|
||||||
import scodec.codecs._
|
import scodec.codecs._
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* na
|
* Causes the avatar to be prepped for drop pod use.<br>
|
||||||
|
* <br>
|
||||||
|
* This packet is dispatched from the server to all occupants of the HART shuttle when it has completed its take-off animation.
|
||||||
|
* When received by the client, that player's avatar is "removed from the world" and the Interstellar Map is displayed for them.
|
||||||
|
* The "Launch Drop Pod" button window is also made visible.
|
||||||
|
* Selecting individual continental maps for viewing and clicking on the landmasses has the expected behavior for drop pods implementation.<br>
|
||||||
|
* <br>
|
||||||
|
* Being seated on the HART shuttle at the time, a player's avatar does not physically exist when the packet is received.
|
||||||
|
* If the packet is received while the player is outside of the HART shuttle, the state of their avatar is not known to them.
|
||||||
|
* "Removed from the world" merely implies that one can not leave the Interstellar Map once it has been displayed.
|
||||||
|
* According to packet capture, their avatar is not explicitly deconstructed until the dropped-into map is loaded.<br>
|
||||||
|
* <br>
|
||||||
|
* When the packet is received on one's client, but is addressed to another player, nothing seems to happen to that player.
|
||||||
|
* If that player's model is outside of the HART, it will not deconstruct.
|
||||||
|
* Only the client's avatar can be affected by this packet.
|
||||||
* @param player_guid the player
|
* @param player_guid the player
|
||||||
* @param stasis whether or not the player is held in stasis
|
* @param stasis `true` by default;
|
||||||
|
* nothing when `false` (?)
|
||||||
*/
|
*/
|
||||||
final case class PlayerStasisMessage(player_guid : PlanetSideGUID,
|
final case class PlayerStasisMessage(player_guid : PlanetSideGUID,
|
||||||
stasis : Boolean)
|
stasis : Boolean = true)
|
||||||
extends PlanetSideGamePacket {
|
extends PlanetSideGamePacket {
|
||||||
type Packet = PlayerStasisMessage
|
type Packet = PlayerStasisMessage
|
||||||
def opcode = GamePacketOpcode.PlayerStasisMessage
|
def opcode = GamePacketOpcode.PlayerStasisMessage
|
||||||
|
|
|
||||||
|
|
@ -1325,6 +1325,29 @@ class GamePacketTest extends Specification {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
"PlayerStasisMessage" should {
|
||||||
|
val string = hex"8A 4B 00 80"
|
||||||
|
|
||||||
|
"decode" in {
|
||||||
|
PacketCoding.DecodePacket(string).require match {
|
||||||
|
case PlayerStasisMessage(player_guid, stasis) =>
|
||||||
|
player_guid mustEqual PlanetSideGUID(75)
|
||||||
|
stasis mustEqual true
|
||||||
|
case default =>
|
||||||
|
ko
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"encode" in {
|
||||||
|
"encode" in {
|
||||||
|
val msg = PlayerStasisMessage(PlanetSideGUID(75))
|
||||||
|
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||||
|
|
||||||
|
pkt mustEqual string
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
"ContinentalLockUpdateMessage" should {
|
"ContinentalLockUpdateMessage" should {
|
||||||
val string = hex"A8 16 00 40"
|
val string = hex"A8 16 00 40"
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue