Packet: RepairMessage and tests (#118)

This commit is contained in:
Fate-JH 2017-03-10 21:41:19 -05:00 committed by pschord
parent 06004b0af0
commit 039f0e55a0
3 changed files with 56 additions and 1 deletions

View file

@ -409,7 +409,7 @@ object GamePacketOpcode extends Enumeration {
case 0x4a => noDecoder(SpawnRequestMessage)
case 0x4b => noDecoder(DeployRequestMessage)
case 0x4c => noDecoder(UnknownMessage76)
case 0x4d => noDecoder(RepairMessage)
case 0x4d => game.RepairMessage.decode
case 0x4e => noDecoder(ServerVehicleOverrideMsg)
case 0x4f => noDecoder(LashMessage)

View file

@ -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]
}