mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-04-29 15:55:23 +00:00
Packet: RepairMessage and tests (#118)
This commit is contained in:
parent
06004b0af0
commit
039f0e55a0
3 changed files with 56 additions and 1 deletions
|
|
@ -409,7 +409,7 @@ object GamePacketOpcode extends Enumeration {
|
||||||
case 0x4a => noDecoder(SpawnRequestMessage)
|
case 0x4a => noDecoder(SpawnRequestMessage)
|
||||||
case 0x4b => noDecoder(DeployRequestMessage)
|
case 0x4b => noDecoder(DeployRequestMessage)
|
||||||
case 0x4c => noDecoder(UnknownMessage76)
|
case 0x4c => noDecoder(UnknownMessage76)
|
||||||
case 0x4d => noDecoder(RepairMessage)
|
case 0x4d => game.RepairMessage.decode
|
||||||
case 0x4e => noDecoder(ServerVehicleOverrideMsg)
|
case 0x4e => noDecoder(ServerVehicleOverrideMsg)
|
||||||
case 0x4f => noDecoder(LashMessage)
|
case 0x4f => noDecoder(LashMessage)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
// Copyright (c) 2017 PSForever
|
||||||
|
package net.psforever.packet.game
|
||||||
|
|
||||||
|
import net.psforever.packet.{GamePacketOpcode, Marshallable, PlanetSideGamePacket}
|
||||||
|
import scodec.Codec
|
||||||
|
import scodec.codecs._
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dispatched to the client to report the amount of repair that is performed upon a target item.
|
||||||
|
* The item could be a player or a vehicle or a stationary game object, e.g., a terminal.
|
||||||
|
* @param item_guid an item
|
||||||
|
* @param repair_value how much the item has been repaired for
|
||||||
|
*/
|
||||||
|
final case class RepairMessage(item_guid : PlanetSideGUID,
|
||||||
|
repair_value : Long)
|
||||||
|
extends PlanetSideGamePacket {
|
||||||
|
type Packet = RepairMessage
|
||||||
|
def opcode = GamePacketOpcode.RepairMessage
|
||||||
|
def encode = RepairMessage.encode(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
object RepairMessage extends Marshallable[RepairMessage] {
|
||||||
|
implicit val codec : Codec[RepairMessage] = (
|
||||||
|
("item_guid" | PlanetSideGUID.codec) ::
|
||||||
|
("repair_value" | uint32L)
|
||||||
|
).as[RepairMessage]
|
||||||
|
}
|
||||||
28
common/src/test/scala/game/RepairMessageTest.scala
Normal file
28
common/src/test/scala/game/RepairMessageTest.scala
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
// Copyright (c) 2017 PSForever
|
||||||
|
package game
|
||||||
|
|
||||||
|
import org.specs2.mutable._
|
||||||
|
import net.psforever.packet._
|
||||||
|
import net.psforever.packet.game._
|
||||||
|
import scodec.bits._
|
||||||
|
|
||||||
|
class RepairMessageTest extends Specification {
|
||||||
|
val string = hex"4D 2709 5C000000"
|
||||||
|
|
||||||
|
"decode" in {
|
||||||
|
PacketCoding.DecodePacket(string).require match {
|
||||||
|
case RepairMessage(item_guid, repair_value) =>
|
||||||
|
item_guid mustEqual PlanetSideGUID(2343)
|
||||||
|
repair_value mustEqual 92
|
||||||
|
case _ =>
|
||||||
|
ko
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"encode" in {
|
||||||
|
val msg = RepairMessage(PlanetSideGUID(2343), 92)
|
||||||
|
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||||
|
|
||||||
|
pkt mustEqual string
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue