initial work on ExperienceAddedMessage and tests

This commit is contained in:
FateJH 2017-01-28 00:38:11 -05:00
parent 774079c6a7
commit da62978ed1
3 changed files with 57 additions and 1 deletions

View file

@ -537,7 +537,7 @@ object GamePacketOpcode extends Enumeration {
case 0xb6 => game.ZonePopulationUpdateMessage.decode
case 0xb7 => game.DisconnectMessage.decode
// 0xb8
case 0xb8 => noDecoder(ExperienceAddedMessage)
case 0xb8 => game.ExperienceAddedMessage.decode
case 0xb9 => game.OrbitalStrikeWaypointMessage.decode
case 0xba => game.KeepAliveMessage.decode
case 0xbb => noDecoder(MapObjectStateBlockMessage)

View file

@ -0,0 +1,35 @@
// Copyright (c) 2016 PSForever.net to present
package net.psforever.packet.game
import net.psforever.packet.{GamePacketOpcode, Marshallable, PlanetSideGamePacket}
import scodec.Codec
import scodec.codecs._
/**
* Displays a message about being awarded experience points in the events chat.<br>
* <br>
* This packet does not actually award any experience points.
* It merely generates the message:<br>
* `"You have been awarded x experience points."`<br>
* ... where `x` is the number of experience points that have been promised.
* If the `Boolean` parameter is `true`, `x` will be equal to the number provided followed by the word "Command."
* If the `Boolean` parameter is `false`, `x` will be represented as an obvious blank space character.
* (Yes, it prints to the events chat like that.)
* @param exp the number of (Command) experience points earned
* @param unk defaults to `true` for effect;
* if `false`, the number of experience points in the message will be blanked
*/
final case class ExperienceAddedMessage(exp : Int,
unk : Boolean = true)
extends PlanetSideGamePacket {
type Packet = ExperienceAddedMessage
def opcode = GamePacketOpcode.ExperienceAddedMessage
def encode = ExperienceAddedMessage.encode(this)
}
object ExperienceAddedMessage extends Marshallable[ExperienceAddedMessage] {
implicit val codec : Codec[ExperienceAddedMessage] = (
("cep" | uintL(15)) ::
("unk" | bool)
).as[ExperienceAddedMessage]
}