Packet: WeaponDelayFireMessage (#39)

* Add WeaponDelayFireMessage packet

* Add WeaponDelayFireMessage test

* Add WeaponDelayFireMessage handler stub
This commit is contained in:
tfarley 2016-07-25 23:43:16 -07:00 committed by pschord
parent 7b444ac6aa
commit c77928b915
4 changed files with 50 additions and 1 deletions

View file

@ -481,7 +481,7 @@ object GamePacketOpcode extends Enumeration {
case OffshoreVehicleMessage => noDecoder(opcode)
case ObjectDeployedMessage => noDecoder(opcode)
case ObjectDeployedCountMessage => noDecoder(opcode)
case WeaponDelayFireMessage => noDecoder(opcode)
case WeaponDelayFireMessage => game.WeaponDelayFireMessage.decode
case BugReportMessage => noDecoder(opcode)
case PlayerStasisMessage => noDecoder(opcode)
case UnknownMessage139 => noDecoder(opcode)

View file

@ -0,0 +1,25 @@
// Copyright (c) 2016 PSForever.net to present
package net.psforever.packet.game
import net.psforever.packet.{GamePacketOpcode, Marshallable, PacketHelpers, PlanetSideGamePacket}
import scodec.Codec
import scodec.codecs._
/** WeaponDelayFireMessage seems to be sent when a weapon has a delayed projectile after firing, such as the knife.
*
* See [[PlayerStateMessageUpstream]] for explanation of seq_time.
*/
final case class WeaponDelayFireMessage(seq_time : Int,
weapon_guid : PlanetSideGUID)
extends PlanetSideGamePacket {
type Packet = WeaponDelayFireMessage
def opcode = GamePacketOpcode.WeaponDelayFireMessage
def encode = WeaponDelayFireMessage.encode(this)
}
object WeaponDelayFireMessage extends Marshallable[WeaponDelayFireMessage] {
implicit val codec : Codec[WeaponDelayFireMessage] = (
("seq_time" | uintL(10)) ::
("weapon_guid" | PlanetSideGUID.codec)
).as[WeaponDelayFireMessage]
}