mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-03-12 08:50:57 +00:00
EmpireBenefitsMessage packet
This commit is contained in:
parent
a799aa5639
commit
958427dc8f
3 changed files with 98 additions and 1 deletions
|
|
@ -557,7 +557,7 @@ object GamePacketOpcode extends Enumeration {
|
|||
case 0xd4 => game.GenericObjectActionAtPositionMessage.decode
|
||||
case 0xd5 => game.PropertyOverrideMessage.decode
|
||||
case 0xd6 => game.WarpgateLinkOverrideMessage.decode
|
||||
case 0xd7 => noDecoder(EmpireBenefitsMessage)
|
||||
case 0xd7 => game.EmpireBenefitsMessage.decode
|
||||
// 0xd8
|
||||
case 0xd8 => noDecoder(ForceEmpireMessage)
|
||||
case 0xd9 => game.BroadcastWarpgateUpdateMessage.decode
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
// Copyright (c) 2025 PSForever
|
||||
package net.psforever.packet.game
|
||||
|
||||
import net.psforever.packet.game.EmpireBenefitsMessage.{ZoneLocks, ZoneBenefits}
|
||||
import net.psforever.packet.{GamePacketOpcode, Marshallable, PacketHelpers, PlanetSideGamePacket}
|
||||
import scodec.Codec
|
||||
import scodec.codecs._
|
||||
|
||||
final case class EmpireBenefitsMessage(
|
||||
entriesA: Vector[ZoneLocks],
|
||||
entriesB: Vector[ZoneBenefits]
|
||||
) extends PlanetSideGamePacket {
|
||||
type Packet = EmpireBenefitsMessage
|
||||
def opcode = GamePacketOpcode.EmpireBenefitsMessage
|
||||
def encode = EmpireBenefitsMessage.encode(this)
|
||||
}
|
||||
|
||||
object EmpireBenefitsMessage extends Marshallable[EmpireBenefitsMessage] {
|
||||
|
||||
final case class ZoneLocks(
|
||||
empire: Int,
|
||||
zone: String
|
||||
)
|
||||
|
||||
final case class ZoneBenefits(
|
||||
empire: Int,
|
||||
value: Int
|
||||
)
|
||||
|
||||
private implicit val entryACodec: Codec[ZoneLocks] = (
|
||||
("empire" | uint(2)) ::
|
||||
("zone" | PacketHelpers.encodedStringAligned(6))
|
||||
).as[ZoneLocks]
|
||||
|
||||
private implicit val entryBCodec: Codec[ZoneBenefits] = (
|
||||
("empire" | uint(2)) ::
|
||||
("benefit" | uint16L)
|
||||
).as[ZoneBenefits]
|
||||
|
||||
implicit val codec: Codec[EmpireBenefitsMessage] = (
|
||||
("entriesA" | vectorOfN(uint32L.xmap(_.toInt, _.toLong), entryACodec)) ::
|
||||
("entriesB" | vectorOfN(uint32L.xmap(_.toInt, _.toLong), entryBCodec))
|
||||
).as[EmpireBenefitsMessage]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue