use super::{HelperReadWrite, PacketReadWrite};
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(default))]
#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
#[Id(0x1B, 0x00)]
pub struct PseStartPacket {
pub pse_id: u32,
pub level: u32,
pub unk1: u32,
pub unk2: u32,
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(default))]
#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
#[Id(0x1B, 0x01)]
pub struct PseEndPacket {
pub pse_id: u32,
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(default))]
#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
#[Id(0x1B, 0x04)]
pub struct SetPseLevelPacket {
pub pse_id: u32,
pub level: u32,
pub pse_burst_timer: f32,
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(default))]
#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
#[Id(0x1B, 0x05)]
pub struct PseBurstActionPacket {
pub action: PSEBurstAction,
pub pse_id: u32,
pub unk3: u32,
pub timer: f32,
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[repr(u32)]
#[derive(Debug, Default, Clone, Copy, PartialEq, HelperReadWrite)]
pub enum PSEBurstAction {
Start,
AddTime,
StartCrossburst,
OneMore,
#[default]
#[Read_default]
Unknown = 0xFFFF_FFFF,
}