use num_enum::TryFromPrimitive;
use serde::{Deserialize, Serialize};
#[derive(Copy, Clone, PartialEq, Eq, Debug, Serialize, Deserialize, TryFromPrimitive)]
#[repr(u8)]
pub enum PlayerCondition {
Aiming = 0,
Zoomed = 1,
Disguising = 2,
Disguised = 3,
Stealthed = 4,
Invulnerable = 5,
Teleported = 6,
Taunting = 7,
InvulnerableWearingOff = 8,
StealthedBlink = 9,
SelectedToTeleport = 10,
CritBoosted = 11,
TmpDamageBonus = 12,
FeignDeath = 13,
Phase = 14,
Stunned = 15,
OffensiveBuff = 16,
ShieldCharge = 17,
DemoBuff = 18,
EnergyBuff = 19,
RadiusHeal = 20,
HealthBuff = 21,
Burning = 22,
HealthOverHealed = 23,
Urine = 24,
Bleeding = 25,
DefensiveBuff = 26,
MadMilk = 27,
MegaHeal = 28,
RegenOnDamageBuff = 29,
MarkedForDeath = 30,
NoHealingDamageBuff = 31,
SpeedBoost = 32,
CritBoostedPumpkin = 33,
CritBoostedUserBuff = 34,
CritBoostedDemoCharge = 35,
SodaPopperHype = 36,
CritBoostedFirstBlood = 37,
CritBoostedBonusTime = 38,
CritBoostedCtfCapture = 39,
CritBoostedOnKill = 40,
CannotSwitchFromMelee = 41,
DefenseBuffNoCritBlock = 42,
Reprogrammed = 43,
CritBoostedRageBuff = 44,
DefenseBuffHigh = 45,
SniperChargeRageBuff = 46,
DisguiseWearingOff = 47,
MarkedForDeathSilent = 48,
DisguisedAsDispenser = 49,
Sapped = 50,
InvulnerableHideUnlessDamaged = 51,
InvulnerableUserBuff = 52,
HalloweenBombHead = 53,
HalloweenThriller = 54,
RadiusHealOnDamage = 55,
CritBoostedCardEffect = 56,
InvulnerableCardEffect = 57,
MedigunUberBulletResist = 58,
MedigunUberBlastResist = 59,
MedigunUberFireResist = 60,
MedigunSmallBulletResist = 61,
MedigunSmallBlastResist = 62,
MedigunSmallFireResist = 63,
StealthedUserBuff = 64,
MedigunDebuff = 65,
StealthedUserBuffFading = 66,
BulletImmune = 67,
BlastImmune = 68,
FireImmune = 69,
PreventDeath = 70,
MvmBotStunRadiowave = 71,
HalloweenSpeedBoost = 72,
HalloweenQuickHeal = 73,
HalloweenGiant = 74,
HalloweenTiny = 75,
HalloweenInHell = 76,
HalloweenGhostMode = 77,
MiniCritBoostedOnKill = 78,
ObscuredSmoke = 79,
ParachuteActive = 80,
BlastJumping = 81,
HalloweenKart = 82,
HalloweenKartDash = 83,
BalloonHead = 84,
MeleeOnly = 85,
SwimmingCurse = 86,
FreezeInput = 87,
HalloweenKartCage = 88,
RuneStrength = 90,
RuneHaste = 91,
RuneRegen = 92,
RuneResist = 93,
RuneVampire = 94,
RuneReflect = 95,
RunePrecision = 96,
RuneAgility = 97,
GrapplingHook = 98,
GrapplingHookSafeFall = 99,
GrapplingHookLatched = 100,
GrapplingHookBleeding = 101,
AfterburnImmune = 102,
RuneKnockout = 103,
RuneImbalance = 104,
CritBoostedRuneTemp = 105,
PasstimeInterception = 106,
SwimmingNoEffects = 107,
PURGATORY = 108,
RuneKing = 109,
RunePlague = 110,
RuneSupernova = 111,
PLAGUE = 112,
KingBuffed = 113,
TeamGlows = 114,
KnockedIntoAir = 115,
CompetitiveWinner = 116,
CompetitiveLoser = 117,
HealingDebuff = 118,
PasstimePenaltyDebuff = 119,
GrappledToPlayer = 120,
GrappledByPlayer = 121,
ParachuteDeployed = 122,
GAS = 123,
BurningPyro = 124,
RocketPack = 125,
LostFooting = 126,
AirCurrent = 127,
HalloweenHellHeal = 128,
PowerUpModeDominant = 129,
ImmuneToPushback = 130,
}
impl PlayerCondition {
pub const MAX: PlayerCondition = PlayerCondition::ImmuneToPushback;
}