diff --git a/common/src/main/scala/net/psforever/packet/game/AggravatedDamageMessage.scala b/common/src/main/scala/net/psforever/packet/game/AggravatedDamageMessage.scala new file mode 100644 index 000000000..faa485287 --- /dev/null +++ b/common/src/main/scala/net/psforever/packet/game/AggravatedDamageMessage.scala @@ -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] +} diff --git a/common/src/test/scala/game/AggravatedDamageMessageTest.scala b/common/src/test/scala/game/AggravatedDamageMessageTest.scala new file mode 100644 index 000000000..61529e56d --- /dev/null +++ b/common/src/test/scala/game/AggravatedDamageMessageTest.scala @@ -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 + } +}