eolib-cpp 0.1.0-beta.7
Core C++ library for writing Endless Online applications
Loading...
Searching...
No Matches
eolib::protocol::net::server::EffectSpecServerPacket Class Referencefinal

Taking spike or tp drain damage. More...

#include <eolib/protocol/net/server/packets.hpp>

Inherits eolib::protocol::net::Packet.

Classes

class  MapDamageTypeDataTpDrain
 Data associated with map_damage_type value TpDrain. More...
class  MapDamageTypeDataSpikes
 Data associated with map_damage_type value Spikes. More...

Public Types

using MapDamageTypeData = std::variant<std::monostate, MapDamageTypeDataTpDrain, MapDamageTypeDataSpikes>
 Data associated with different values of the map_damage_type field.

Public Member Functions

const MapDamageTypeDataTpDrain * AsTpDrain () const noexcept
 Gets the data associated with map_damage_type value TpDrain.
MapDamageTypeDataTpDrain * AsTpDrain () noexcept
 Gets the data associated with map_damage_type value TpDrain.
const MapDamageTypeDataSpikes * AsSpikes () const noexcept
 Gets the data associated with map_damage_type value Spikes.
MapDamageTypeDataSpikes * AsSpikes () noexcept
 Gets the data associated with map_damage_type value Spikes.
PacketFamily Family () const noexcept override
 Gets the packet family associated with this packet.
PacketAction Action () const noexcept override
 Gets the packet action associated with this packet.
int ByteSize () const noexcept override
 Gets the size of the data that this object was deserialized from.
void Serialize (data::EoWriter &writer) const override
 Serializes this object to the provided writer.
void Deserialize (data::EoReader &reader) override
 Deserializes this object from the provided reader, replacing its current data.
std::string ToString () const override
 Gets a human-readable representation of this object, for debugging purposes.
bool operator== (const EffectSpecServerPacket &other) const
 Compares this object with another for equality.
bool operator!= (const EffectSpecServerPacket &other) const
 Compares this object with another for inequality.
Public Member Functions inherited from eolib::protocol::Serializable
virtual ~Serializable ()=default

Static Public Member Functions

static EffectSpecServerPacket ForTpDrain (MapDamageTypeDataTpDrain data)
 Creates a new EffectSpecServerPacket with map_damage_type set to TpDrain.
static EffectSpecServerPacket ForSpikes (MapDamageTypeDataSpikes data)
 Creates a new EffectSpecServerPacket with map_damage_type set to Spikes.

Public Attributes

MapDamageType map_damage_type {}
MapDamageTypeData map_damage_type_data {}
 Data associated with the map_damage_type field.

Static Public Attributes

static constexpr PacketFamily FAMILY = PacketFamily::Effect
 The packet family associated with this packet.
static constexpr PacketAction ACTION = PacketAction::Spec
 The packet action associated with this packet.

Additional Inherited Members

Protected Member Functions inherited from eolib::protocol::Serializable
 Serializable ()=default
 Serializable (const Serializable &)=default
 Serializable (Serializable &&)=default
Serializable & operator= (const Serializable &)=default
Serializable & operator= (Serializable &&)=default

Detailed Description

Taking spike or tp drain damage.

Member Typedef Documentation

◆ MapDamageTypeData

Data associated with different values of the map_damage_type field.

Member Function Documentation

◆ AsTpDrain() [1/2]

const MapDamageTypeDataTpDrain * eolib::protocol::net::server::EffectSpecServerPacket::AsTpDrain ( ) const
inlinenoexcept

Gets the data associated with map_damage_type value TpDrain.

Returns
the data, or nullptr if map_damage_type_data holds the data for a different value.

◆ AsTpDrain() [2/2]

MapDamageTypeDataTpDrain * eolib::protocol::net::server::EffectSpecServerPacket::AsTpDrain ( )
inlinenoexcept

Gets the data associated with map_damage_type value TpDrain.

Returns
the data, or nullptr if map_damage_type_data holds the data for a different value.

◆ AsSpikes() [1/2]

const MapDamageTypeDataSpikes * eolib::protocol::net::server::EffectSpecServerPacket::AsSpikes ( ) const
inlinenoexcept

Gets the data associated with map_damage_type value Spikes.

Returns
the data, or nullptr if map_damage_type_data holds the data for a different value.

◆ AsSpikes() [2/2]

MapDamageTypeDataSpikes * eolib::protocol::net::server::EffectSpecServerPacket::AsSpikes ( )
inlinenoexcept

Gets the data associated with map_damage_type value Spikes.

Returns
the data, or nullptr if map_damage_type_data holds the data for a different value.

◆ ForTpDrain()

EffectSpecServerPacket eolib::protocol::net::server::EffectSpecServerPacket::ForTpDrain ( MapDamageTypeDataTpDrain data)
static

Creates a new EffectSpecServerPacket with map_damage_type set to TpDrain.

Parameters
datathe data associated with map_damage_type TpDrain.
Returns
the created object.

◆ ForSpikes()

EffectSpecServerPacket eolib::protocol::net::server::EffectSpecServerPacket::ForSpikes ( MapDamageTypeDataSpikes data)
static

Creates a new EffectSpecServerPacket with map_damage_type set to Spikes.

Parameters
datathe data associated with map_damage_type Spikes.
Returns
the created object.

◆ Family()

PacketFamily eolib::protocol::net::server::EffectSpecServerPacket::Family ( ) const
inlineoverridevirtualnoexcept

Gets the packet family associated with this packet.

Returns
the packet family.

Implements eolib::protocol::net::Packet.

◆ Action()

PacketAction eolib::protocol::net::server::EffectSpecServerPacket::Action ( ) const
inlineoverridevirtualnoexcept

Gets the packet action associated with this packet.

Returns
the packet action.

Implements eolib::protocol::net::Packet.

◆ ByteSize()

int eolib::protocol::net::server::EffectSpecServerPacket::ByteSize ( ) const
overridevirtualnoexcept

Gets the size of the data that this object was deserialized from.

Returns
the deserialized size in bytes, or 0 for an object that was not deserialized.

Implements eolib::protocol::Serializable.

◆ Serialize()

void eolib::protocol::net::server::EffectSpecServerPacket::Serialize ( data::EoWriter & writer) const
overridevirtual

Serializes this object to the provided writer.

Parameters
writerthe writer that the data will be written to.
Exceptions
SerializationErrorif the object's data is invalid for serialization.

Implements eolib::protocol::Serializable.

◆ Deserialize()

void eolib::protocol::net::server::EffectSpecServerPacket::Deserialize ( data::EoReader & reader)
overridevirtual

Deserializes this object from the provided reader, replacing its current data.

Parameters
readerthe reader that the data will be read from.

Implements eolib::protocol::Serializable.

◆ ToString()

std::string eolib::protocol::net::server::EffectSpecServerPacket::ToString ( ) const
overridevirtual

Gets a human-readable representation of this object, for debugging purposes.

Returns
the object's fields and values, as a string.

Implements eolib::protocol::Serializable.

◆ operator==()

bool eolib::protocol::net::server::EffectSpecServerPacket::operator== ( const EffectSpecServerPacket & other) const

Compares this object with another for equality.

The deserialized byte size is not compared.

Parameters
otherthe object to compare with.
Returns
true if all fields are equal, otherwise false.

◆ operator!=()

bool eolib::protocol::net::server::EffectSpecServerPacket::operator!= ( const EffectSpecServerPacket & other) const

Compares this object with another for inequality.

The deserialized byte size is not compared.

Parameters
otherthe object to compare with.
Returns
true if any field differs, otherwise false.

Member Data Documentation

◆ FAMILY

PacketFamily eolib::protocol::net::server::EffectSpecServerPacket::FAMILY = PacketFamily::Effect
staticconstexpr

The packet family associated with this packet.

◆ ACTION

PacketAction eolib::protocol::net::server::EffectSpecServerPacket::ACTION = PacketAction::Spec
staticconstexpr

The packet action associated with this packet.

◆ map_damage_type

MapDamageType eolib::protocol::net::server::EffectSpecServerPacket::map_damage_type {}

◆ map_damage_type_data

MapDamageTypeData eolib::protocol::net::server::EffectSpecServerPacket::map_damage_type_data {}

Data associated with the map_damage_type field.