mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-07-14 16:04:41 +00:00
slight file modifications; added tests
This commit is contained in:
parent
51b0b6905d
commit
e6c5f54647
3 changed files with 36 additions and 19 deletions
|
|
@ -1,30 +1,24 @@
|
||||||
// Copyright (c) 2016 PSForever.net to present
|
// Copyright (c) 2016 PSForever.net to present
|
||||||
package net.psforever.packet.game
|
package net.psforever.packet.game
|
||||||
|
|
||||||
import net.psforever.packet.{GamePacketOpcode, Marshallable, PacketHelpers, PlanetSideGamePacket}
|
import net.psforever.packet.{GamePacketOpcode, Marshallable, PlanetSideGamePacket}
|
||||||
import scodec.Codec
|
import scodec.Codec
|
||||||
import scodec.codecs._
|
import scodec.codecs._
|
||||||
|
|
||||||
object GrenadeState extends Enumeration {
|
|
||||||
type Type = Value
|
|
||||||
val unk0,
|
|
||||||
PRIMED,
|
|
||||||
THROWN,
|
|
||||||
unk3
|
|
||||||
= Value
|
|
||||||
|
|
||||||
implicit val codec = PacketHelpers.createEnumerationCodec(this, uintL(1))
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* na
|
* Report the state of the "grenade throw" animation for this player.<br>
|
||||||
|
* <br>
|
||||||
|
* States:<br>
|
||||||
|
* 1 - prepare for throwing (grenade held back over shoulder)<br>
|
||||||
|
* 2 - throwing (grenade released overhand)<br>
|
||||||
|
* <br>
|
||||||
|
* Exploration:<br>
|
||||||
|
* How many grenade states are possible?
|
||||||
* @param player_guid the player
|
* @param player_guid the player
|
||||||
* @param count the state
|
* @param state the animation state
|
||||||
*/
|
*/
|
||||||
//case msg @ AvatarGrenadeStateMessage(player_guid, state) =>
|
|
||||||
//log.info("AvatarGrenadeStateMessage: " + msg)
|
|
||||||
final case class AvatarGrenadeStateMessage(player_guid : PlanetSideGUID,
|
final case class AvatarGrenadeStateMessage(player_guid : PlanetSideGUID,
|
||||||
count : GrenadeState.Value)
|
state : Int)
|
||||||
extends PlanetSideGamePacket {
|
extends PlanetSideGamePacket {
|
||||||
type Packet = AvatarGrenadeStateMessage
|
type Packet = AvatarGrenadeStateMessage
|
||||||
def opcode = GamePacketOpcode.AvatarGrenadeStateMessage
|
def opcode = GamePacketOpcode.AvatarGrenadeStateMessage
|
||||||
|
|
@ -34,7 +28,6 @@ final case class AvatarGrenadeStateMessage(player_guid : PlanetSideGUID,
|
||||||
object AvatarGrenadeStateMessage extends Marshallable[AvatarGrenadeStateMessage] {
|
object AvatarGrenadeStateMessage extends Marshallable[AvatarGrenadeStateMessage] {
|
||||||
implicit val codec : Codec[AvatarGrenadeStateMessage] = (
|
implicit val codec : Codec[AvatarGrenadeStateMessage] = (
|
||||||
("player_guid" | PlanetSideGUID.codec) ::
|
("player_guid" | PlanetSideGUID.codec) ::
|
||||||
("state" | GrenadeState.codec)
|
("state" | uint8L)
|
||||||
).as[AvatarGrenadeStateMessage]
|
).as[AvatarGrenadeStateMessage]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -681,6 +681,27 @@ class GamePacketTest extends Specification {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
"AvatarGrenadeStateMessage" should {
|
||||||
|
val string = hex"A9 DA11 01"
|
||||||
|
|
||||||
|
"decode" in {
|
||||||
|
PacketCoding.DecodePacket(string).require match {
|
||||||
|
case AvatarGrenadeStateMessage(player_guid, state) =>
|
||||||
|
player_guid mustEqual PlanetSideGUID(4570)
|
||||||
|
state mustEqual 1
|
||||||
|
case default =>
|
||||||
|
ko
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"encode" in {
|
||||||
|
val msg = AvatarGrenadeStateMessage(PlanetSideGUID(4570), 1)
|
||||||
|
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||||
|
|
||||||
|
pkt mustEqual string
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
"BroadcastWarpgateUpdateMessage" should {
|
"BroadcastWarpgateUpdateMessage" should {
|
||||||
val string = hex"D9 0D 00 01 00 20"
|
val string = hex"D9 0D 00 01 00 20"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,9 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
||||||
case msg @ AvatarFirstTimeEventMessage(avatar_guid, object_guid, unk1, event_name) =>
|
case msg @ AvatarFirstTimeEventMessage(avatar_guid, object_guid, unk1, event_name) =>
|
||||||
log.info("AvatarFirstTimeEvent: " + msg)
|
log.info("AvatarFirstTimeEvent: " + msg)
|
||||||
|
|
||||||
|
case msg @ AvatarGrenadeStateMessage(player_guid, state) =>
|
||||||
|
log.info("AvatarGrenadeStateMessage: " + msg)
|
||||||
|
|
||||||
case default => log.debug(s"Unhandled GamePacket ${pkt}")
|
case default => log.debug(s"Unhandled GamePacket ${pkt}")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue