initial work and tests for AggravatedDamageMessage

This commit is contained in:
FateJH 2020-07-10 19:20:04 -04:00
parent e5d0690c42
commit 5c8331ed9b
2 changed files with 56 additions and 0 deletions

View file

@ -0,0 +1,27 @@
// Copyright (c) 2017 PSForever
package net.psforever.packet.game
import net.psforever.packet.{GamePacketOpcode, Marshallable, PlanetSideGamePacket}
import net.psforever.types.PlanetSideGUID
import scodec.Codec
import scodec.codecs._
/**
* na
* @param guid na
* @param unk na
*/
final case class AggravatedDamageMessage(guid : PlanetSideGUID,
unk : Long)
extends PlanetSideGamePacket {
type Packet = AggravatedDamageMessage
def opcode = GamePacketOpcode.AggravatedDamageMessage
def encode = AggravatedDamageMessage.encode(this)
}
object AggravatedDamageMessage extends Marshallable[AggravatedDamageMessage] {
implicit val codec : Codec[AggravatedDamageMessage] = (
("guid" | PlanetSideGUID.codec) ::
("unk" | uint32L)
).as[AggravatedDamageMessage]
}

View file

@ -0,0 +1,29 @@
// Copyright (c) 2020 PSForever
package game
import org.specs2.mutable._
import net.psforever.packet._
import net.psforever.packet.game._
import net.psforever.types.PlanetSideGUID
import scodec.bits._
class AggravatedDamageMessageTest extends Specification {
val string = hex"6a350a0e000000"
"decode" in {
PacketCoding.DecodePacket(string).require match {
case AggravatedDamageMessage(guid,unk) =>
guid mustEqual PlanetSideGUID(2613)
unk mustEqual 14
case _ =>
ko
}
}
"encode" in {
val msg = AggravatedDamageMessage(PlanetSideGUID(2613), 14)
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
pkt mustEqual string
}
}