use time::Duration;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum Buff {
ObsidianSkin = 1,
Regeneration = 2,
Swiftness = 3,
Gills = 4,
Ironskin = 5,
ManaRegeneration = 6,
MagicPower = 7,
Featherfall = 8,
Spelunker = 9,
Invisibility = 10,
Shine = 11,
NightOwl = 12,
Battle = 13,
Thorns = 14,
WaterWalking = 15,
Archery = 16,
Hunter = 17,
Gravitation = 18,
ShadowOrb = 19,
Poisoned = 20,
PotionSickness = 21,
Darkness = 22,
Cursed = 23,
OnFire = 24,
Tipsy = 25,
WellFed = 26,
FairyBlue = 27,
Werewolf = 28,
Clairvoyance = 29,
Bleeding = 30,
Confused = 31,
Slow = 32,
Weak = 33,
Merfolk = 34,
Silenced = 35,
BrokenArmor = 36,
Horrified = 37,
TheTongue = 38,
CursedInferno = 39,
PetBunny = 40,
BabyPenguin = 41,
PetTurtle = 42,
PaladinsShield = 43,
Frostburn = 44,
BabyEater = 45,
Chilled = 46,
Frozen = 47,
Honey = 48,
Pygmies = 49,
BabySkeletronHead = 50,
BabyHornet = 51,
TikiSpirit = 52,
PetLizard = 53,
PetParrot = 54,
BabyTruffle = 55,
PetSapling = 56,
Wisp = 57,
RapidHealing = 58,
ShadowDodge = 59,
LeafCrystal = 60,
BabyDinosaur = 61,
IceBarrier = 62,
Panic = 63,
BabySlime = 64,
EyeballSpring = 65,
BabySnowman = 66,
Burning = 67,
Suffocation = 68,
Ichor = 69,
Venom = 70,
WeaponImbueVenom = 71,
Midas = 72,
WeaponImbueCursedFlames = 73,
WeaponImbueFire = 74,
WeaponImbueGold = 75,
WeaponImbueIchor = 76,
WeaponImbueNanites = 77,
WeaponImbueConfetti = 78,
WeaponImbuePoison = 79,
Blackout = 80,
PetSpider = 81,
Squashling = 82,
Ravens = 83,
BlackCat = 84,
CursedSapling = 85,
WaterCandle = 86,
Campfire = 87,
ChaosState = 88,
HeartLamp = 89,
Rudolph = 90,
Puppy = 91,
BabyGrinch = 92,
AmmoBox = 93,
ManaSickness = 94,
BeetleEndurance1 = 95,
BeetleEndurance2 = 96,
BeetleEndurance3 = 97,
BeetleMight1 = 98,
BeetleMight2 = 99,
BeetleMight3 = 100,
FairyRed = 101,
FairyGreen = 102,
Wet = 103,
Mining = 104,
Heartreach = 105,
Calm = 106,
Builder = 107,
Titan = 108,
Flipper = 109,
Summoning = 110,
Dangersense = 111,
AmmoReservation = 112,
Lifeforce = 113,
Endurance = 114,
Rage = 115,
Inferno = 116,
Wrath = 117,
MinecartLeft = 118,
Lovestruck = 119,
Stinky = 120,
Fishing = 121,
Sonar = 122,
Crate = 123,
Warmth = 124,
HornetMinion = 125,
ImpMinion = 126,
ZephyrFish = 127,
BunnyMount = 128,
PigronMount = 129,
SlimeMount = 130,
TurtleMount = 131,
BeeMount = 132,
SpiderMinion = 133,
TwinEyesMinion = 134,
PirateMinion = 135,
MiniMinotaur = 136,
Slimed = 137,
MinecartRight = 138,
SharknadoMinion = 139,
UFOMinion = 140,
UFOMount = 141,
DrillMount = 142,
ScutlixMount = 143,
Electrified = 144,
MoonLeech = 145,
Sunflower = 146,
MonsterBanner = 147,
Rabies = 148,
Webbed = 149,
Bewitched = 150,
SoulDrain = 151,
MagicLantern = 152,
ShadowFlame = 153,
BabyFaceMonster = 154,
CrimsonHeart = 155,
Stoned = 156,
PeaceCandle = 157,
StarInBottle = 158,
Sharpened = 159,
Dazed = 160,
DeadlySphere = 161,
UnicornMount = 162,
Obstructed = 163,
VortexDebuff = 164,
DryadsWard = 165,
MinecartRightMech = 166,
MinecartLeftMech = 167,
CuteFishronMount = 168,
BoneJavelin = 169,
SolarShield1 = 170,
SolarShield2 = 171,
SolarShield3 = 172,
NebulaUpLife1 = 173,
NebulaUpLife2 = 174,
NebulaUpLife3 = 175,
NebulaUpMana1 = 176,
NebulaUpMana2 = 177,
NebulaUpMana3 = 178,
NebulaUpDmg1 = 179,
NebulaUpDmg2 = 180,
NebulaUpDmg3 = 181,
StardustMinion = 182,
StardustMinionBleed = 183,
MinecartLeftWood = 184,
MinecartRightWood = 185,
DryadsWardDebuff = 186,
StardustGuardianMinion = 187,
StardustDragonMinion = 188,
Daybreak = 189,
SuspiciousTentacle = 190,
CompanionCube = 191,
SugarRush = 192,
BasiliskMount = 193,
WindPushed = 194,
WitheredArmor = 195,
WitheredWeapon = 196,
OgreSpit = 197,
ParryDamage = 198,
NoBuilding = 199,
PetDD2Gato = 200,
PetDD2Ghost = 201,
PetDD2Dragon = 202,
BetsysCurse = 203,
Oiled = 204,
BallistaPanic = 205,
PlentySatisfied = 206,
ExquisitelyStuffed = 207,
DesertMinecartRight = 208,
DesertMinecartLeft = 209,
FishMinecartRight = 210,
FishMinecartLeft = 211,
GolfCartMount = 212,
BatOfLight = 213,
VampireFrog = 214,
CatBast = 215,
BabyBird = 216,
UpbeatStar = 217,
SugarGlider = 218,
SharkPup = 219,
BeeMinecartRight = 220,
BeeMinecartLeft = 221,
LadybugMinecartRight = 222,
LadybugMinecartLeft = 223,
PigronMinecartRight = 224,
PigronMinecartLeft = 225,
SunflowerMinecartRight = 226,
SunflowerMinecartLeft = 227,
HellMinecartRight = 228,
HellMinecartLeft = 229,
WitchBroom = 230,
ShroomMinecartRight = 231,
ShroomMinecartLeft = 232,
AmethystMinecartRight = 233,
AmethystMinecartLeft = 234,
TopazMinecartRight = 235,
TopazMinecartLeft = 236,
SapphireMinecartRight = 237,
SapphireMinecartLeft = 238,
EmeraldMinecartRight = 239,
EmeraldMinecartLeft = 240,
RubyMinecartRight = 241,
RubyMinecartLeft = 242,
DiamondMinecartRight = 243,
DiamondMinecartLeft = 244,
AmberMinecartRight = 245,
AmberMinecartLeft = 246,
BeetleMinecartRight = 247,
BeetleMinecartLeft = 248,
MeowmereMinecartRight = 249,
MeowmereMinecartLeft = 250,
PartyMinecartRight = 251,
PartyMinecartLeft = 252,
PirateMinecartRight = 253,
PirateMinecartLeft = 254,
SteampunkMinecartRight = 255,
SteampunkMinecartLeft = 256,
Lucky = 257,
LilHarpy = 258,
FennecFox = 259,
GlitteryButterfly = 260,
BabyImp = 261,
BabyRedPanda = 262,
StormTiger = 263,
Plantero = 264,
Flamingo = 265,
DynamiteKitten = 266,
BabyWerewolf = 267,
ShadowMimic = 268,
CoffinMinecartRight = 269,
CoffinMinecartLeft = 270,
Smolstar = 271,
DiggingMoleMinecartRight = 272,
DiggingMoleMinecartLeft = 273,
VoltBunny = 274,
PaintedHorseMount = 275,
MajesticHorseMount = 276,
DarkHorseMount = 277,
PogoStickMount = 278,
PirateShipMount = 279,
SpookyWoodMount = 280,
SantankMount = 281,
WallOfFleshGoatMount = 282,
DarkMageBookMount = 283,
KingSlimePet = 284,
EyeOfCthulhuPet = 285,
EaterOfWorldsPet = 286,
BrainOfCthulhuPet = 287,
SkeletronPet = 288,
QueenBeePet = 289,
DestroyerPet = 290,
TwinsPet = 291,
SkeletronPrimePet = 292,
PlanteraPet = 293,
GolemPet = 294,
DukeFishronPet = 295,
LunaticCultistPet = 296,
MoonLordPet = 297,
FairyQueenPet = 298,
PumpkingPet = 299,
EverscreamPet = 300,
IceQueenPet = 301,
MartianPet = 302,
DD2OgrePet = 303,
DD2BetsyPet = 304,
LavaSharkMount = 305,
TitaniumStorm = 306,
BlandWhipEnemyDebuff = 307,
SwordWhipPlayer = 308,
SwordWhipNPCDebuff = 309,
ScytheWhipEnemyDebuff = 310,
ScytheWhipPlayer = 311,
CoolWhipPlayer = 312,
FlameWhipEnemyDebuff = 313,
ThornWhipPlayer = 314,
ThornWhipNPCDebuff = 315,
RainbowWhipNPCDebuff = 316,
QueenSlimePet = 317,
QueenSlimeMount = 318,
MaceWhipNPCDebuff = 319,
GelBalloon = 320,
BrainOfConfusion = 321,
EmpressBlade = 322,
Hellfire = 323,
Frostbite = 324,
FlinxMinion = 325,
BoneWhipNPCDebuff = 326,
BerniePet = 327,
GlommerPet = 328,
DeerclopsPet = 329,
PigPet = 330,
ChesterPet = 331,
NeutralHunger = 332,
Hunger = 333,
Starving = 334,
AbigailMinion = 335,
HeartyMeal = 336,
TentacleSpike = 337,
FartMinecartRight = 338,
FartMinecartLeft = 339,
CoolWhipNPCDebuff = 340,
DualSlimePet = 341,
WolfMount = 342,
BiomeSight = 343,
BloodButcherer = 344,
JunimoPet = 345,
TerraFartMinecartRight = 346,
TerraFartMinecartLeft = 347,
WarTable = 348,
BlueChickenPet = 349,
ShadowCandle = 350,
Spiffo = 351,
CavelingGardener = 352,
Shimmer = 353,
DirtiestBlock = 354,
}
impl Buff {
pub fn to_id(self) -> i32 {
self as i32
}
pub fn from_id(id: i32) -> Option<Self> {
Some(match id {
1 => Buff::ObsidianSkin,
2 => Buff::Regeneration,
3 => Buff::Swiftness,
4 => Buff::Gills,
5 => Buff::Ironskin,
6 => Buff::ManaRegeneration,
7 => Buff::MagicPower,
8 => Buff::Featherfall,
9 => Buff::Spelunker,
10 => Buff::Invisibility,
11 => Buff::Shine,
12 => Buff::NightOwl,
13 => Buff::Battle,
14 => Buff::Thorns,
15 => Buff::WaterWalking,
16 => Buff::Archery,
17 => Buff::Hunter,
18 => Buff::Gravitation,
19 => Buff::ShadowOrb,
20 => Buff::Poisoned,
21 => Buff::PotionSickness,
22 => Buff::Darkness,
23 => Buff::Cursed,
24 => Buff::OnFire,
25 => Buff::Tipsy,
26 => Buff::WellFed,
27 => Buff::FairyBlue,
28 => Buff::Werewolf,
29 => Buff::Clairvoyance,
30 => Buff::Bleeding,
31 => Buff::Confused,
32 => Buff::Slow,
33 => Buff::Weak,
34 => Buff::Merfolk,
35 => Buff::Silenced,
36 => Buff::BrokenArmor,
37 => Buff::Horrified,
38 => Buff::TheTongue,
39 => Buff::CursedInferno,
40 => Buff::PetBunny,
41 => Buff::BabyPenguin,
42 => Buff::PetTurtle,
43 => Buff::PaladinsShield,
44 => Buff::Frostburn,
45 => Buff::BabyEater,
46 => Buff::Chilled,
47 => Buff::Frozen,
48 => Buff::Honey,
49 => Buff::Pygmies,
50 => Buff::BabySkeletronHead,
51 => Buff::BabyHornet,
52 => Buff::TikiSpirit,
53 => Buff::PetLizard,
54 => Buff::PetParrot,
55 => Buff::BabyTruffle,
56 => Buff::PetSapling,
57 => Buff::Wisp,
58 => Buff::RapidHealing,
59 => Buff::ShadowDodge,
60 => Buff::LeafCrystal,
61 => Buff::BabyDinosaur,
62 => Buff::IceBarrier,
63 => Buff::Panic,
64 => Buff::BabySlime,
65 => Buff::EyeballSpring,
66 => Buff::BabySnowman,
67 => Buff::Burning,
68 => Buff::Suffocation,
69 => Buff::Ichor,
70 => Buff::Venom,
71 => Buff::WeaponImbueVenom,
72 => Buff::Midas,
73 => Buff::WeaponImbueCursedFlames,
74 => Buff::WeaponImbueFire,
75 => Buff::WeaponImbueGold,
76 => Buff::WeaponImbueIchor,
77 => Buff::WeaponImbueNanites,
78 => Buff::WeaponImbueConfetti,
79 => Buff::WeaponImbuePoison,
80 => Buff::Blackout,
81 => Buff::PetSpider,
82 => Buff::Squashling,
83 => Buff::Ravens,
84 => Buff::BlackCat,
85 => Buff::CursedSapling,
86 => Buff::WaterCandle,
87 => Buff::Campfire,
88 => Buff::ChaosState,
89 => Buff::HeartLamp,
90 => Buff::Rudolph,
91 => Buff::Puppy,
92 => Buff::BabyGrinch,
93 => Buff::AmmoBox,
94 => Buff::ManaSickness,
95 => Buff::BeetleEndurance1,
96 => Buff::BeetleEndurance2,
97 => Buff::BeetleEndurance3,
98 => Buff::BeetleMight1,
99 => Buff::BeetleMight2,
100 => Buff::BeetleMight3,
101 => Buff::FairyRed,
102 => Buff::FairyGreen,
103 => Buff::Wet,
104 => Buff::Mining,
105 => Buff::Heartreach,
106 => Buff::Calm,
107 => Buff::Builder,
108 => Buff::Titan,
109 => Buff::Flipper,
110 => Buff::Summoning,
111 => Buff::Dangersense,
112 => Buff::AmmoReservation,
113 => Buff::Lifeforce,
114 => Buff::Endurance,
115 => Buff::Rage,
116 => Buff::Inferno,
117 => Buff::Wrath,
118 => Buff::MinecartLeft,
119 => Buff::Lovestruck,
120 => Buff::Stinky,
121 => Buff::Fishing,
122 => Buff::Sonar,
123 => Buff::Crate,
124 => Buff::Warmth,
125 => Buff::HornetMinion,
126 => Buff::ImpMinion,
127 => Buff::ZephyrFish,
128 => Buff::BunnyMount,
129 => Buff::PigronMount,
130 => Buff::SlimeMount,
131 => Buff::TurtleMount,
132 => Buff::BeeMount,
133 => Buff::SpiderMinion,
134 => Buff::TwinEyesMinion,
135 => Buff::PirateMinion,
136 => Buff::MiniMinotaur,
137 => Buff::Slimed,
138 => Buff::MinecartRight,
139 => Buff::SharknadoMinion,
140 => Buff::UFOMinion,
141 => Buff::UFOMount,
142 => Buff::DrillMount,
143 => Buff::ScutlixMount,
144 => Buff::Electrified,
145 => Buff::MoonLeech,
146 => Buff::Sunflower,
147 => Buff::MonsterBanner,
148 => Buff::Rabies,
149 => Buff::Webbed,
150 => Buff::Bewitched,
151 => Buff::SoulDrain,
152 => Buff::MagicLantern,
153 => Buff::ShadowFlame,
154 => Buff::BabyFaceMonster,
155 => Buff::CrimsonHeart,
156 => Buff::Stoned,
157 => Buff::PeaceCandle,
158 => Buff::StarInBottle,
159 => Buff::Sharpened,
160 => Buff::Dazed,
161 => Buff::DeadlySphere,
162 => Buff::UnicornMount,
163 => Buff::Obstructed,
164 => Buff::VortexDebuff,
165 => Buff::DryadsWard,
166 => Buff::MinecartRightMech,
167 => Buff::MinecartLeftMech,
168 => Buff::CuteFishronMount,
169 => Buff::BoneJavelin,
170 => Buff::SolarShield1,
171 => Buff::SolarShield2,
172 => Buff::SolarShield3,
173 => Buff::NebulaUpLife1,
174 => Buff::NebulaUpLife2,
175 => Buff::NebulaUpLife3,
176 => Buff::NebulaUpMana1,
177 => Buff::NebulaUpMana2,
178 => Buff::NebulaUpMana3,
179 => Buff::NebulaUpDmg1,
180 => Buff::NebulaUpDmg2,
181 => Buff::NebulaUpDmg3,
182 => Buff::StardustMinion,
183 => Buff::StardustMinionBleed,
184 => Buff::MinecartLeftWood,
185 => Buff::MinecartRightWood,
186 => Buff::DryadsWardDebuff,
187 => Buff::StardustGuardianMinion,
188 => Buff::StardustDragonMinion,
189 => Buff::Daybreak,
190 => Buff::SuspiciousTentacle,
191 => Buff::CompanionCube,
192 => Buff::SugarRush,
193 => Buff::BasiliskMount,
194 => Buff::WindPushed,
195 => Buff::WitheredArmor,
196 => Buff::WitheredWeapon,
197 => Buff::OgreSpit,
198 => Buff::ParryDamage,
199 => Buff::NoBuilding,
200 => Buff::PetDD2Gato,
201 => Buff::PetDD2Ghost,
202 => Buff::PetDD2Dragon,
203 => Buff::BetsysCurse,
204 => Buff::Oiled,
205 => Buff::BallistaPanic,
206 => Buff::PlentySatisfied,
207 => Buff::ExquisitelyStuffed,
208 => Buff::DesertMinecartRight,
209 => Buff::DesertMinecartLeft,
210 => Buff::FishMinecartRight,
211 => Buff::FishMinecartLeft,
212 => Buff::GolfCartMount,
213 => Buff::BatOfLight,
214 => Buff::VampireFrog,
215 => Buff::CatBast,
216 => Buff::BabyBird,
217 => Buff::UpbeatStar,
218 => Buff::SugarGlider,
219 => Buff::SharkPup,
220 => Buff::BeeMinecartRight,
221 => Buff::BeeMinecartLeft,
222 => Buff::LadybugMinecartRight,
223 => Buff::LadybugMinecartLeft,
224 => Buff::PigronMinecartRight,
225 => Buff::PigronMinecartLeft,
226 => Buff::SunflowerMinecartRight,
227 => Buff::SunflowerMinecartLeft,
228 => Buff::HellMinecartRight,
229 => Buff::HellMinecartLeft,
230 => Buff::WitchBroom,
231 => Buff::ShroomMinecartRight,
232 => Buff::ShroomMinecartLeft,
233 => Buff::AmethystMinecartRight,
234 => Buff::AmethystMinecartLeft,
235 => Buff::TopazMinecartRight,
236 => Buff::TopazMinecartLeft,
237 => Buff::SapphireMinecartRight,
238 => Buff::SapphireMinecartLeft,
239 => Buff::EmeraldMinecartRight,
240 => Buff::EmeraldMinecartLeft,
241 => Buff::RubyMinecartRight,
242 => Buff::RubyMinecartLeft,
243 => Buff::DiamondMinecartRight,
244 => Buff::DiamondMinecartLeft,
245 => Buff::AmberMinecartRight,
246 => Buff::AmberMinecartLeft,
247 => Buff::BeetleMinecartRight,
248 => Buff::BeetleMinecartLeft,
249 => Buff::MeowmereMinecartRight,
250 => Buff::MeowmereMinecartLeft,
251 => Buff::PartyMinecartRight,
252 => Buff::PartyMinecartLeft,
253 => Buff::PirateMinecartRight,
254 => Buff::PirateMinecartLeft,
255 => Buff::SteampunkMinecartRight,
256 => Buff::SteampunkMinecartLeft,
257 => Buff::Lucky,
258 => Buff::LilHarpy,
259 => Buff::FennecFox,
260 => Buff::GlitteryButterfly,
261 => Buff::BabyImp,
262 => Buff::BabyRedPanda,
263 => Buff::StormTiger,
264 => Buff::Plantero,
265 => Buff::Flamingo,
266 => Buff::DynamiteKitten,
267 => Buff::BabyWerewolf,
268 => Buff::ShadowMimic,
269 => Buff::CoffinMinecartRight,
270 => Buff::CoffinMinecartLeft,
271 => Buff::Smolstar,
272 => Buff::DiggingMoleMinecartRight,
273 => Buff::DiggingMoleMinecartLeft,
274 => Buff::VoltBunny,
275 => Buff::PaintedHorseMount,
276 => Buff::MajesticHorseMount,
277 => Buff::DarkHorseMount,
278 => Buff::PogoStickMount,
279 => Buff::PirateShipMount,
280 => Buff::SpookyWoodMount,
281 => Buff::SantankMount,
282 => Buff::WallOfFleshGoatMount,
283 => Buff::DarkMageBookMount,
284 => Buff::KingSlimePet,
285 => Buff::EyeOfCthulhuPet,
286 => Buff::EaterOfWorldsPet,
287 => Buff::BrainOfCthulhuPet,
288 => Buff::SkeletronPet,
289 => Buff::QueenBeePet,
290 => Buff::DestroyerPet,
291 => Buff::TwinsPet,
292 => Buff::SkeletronPrimePet,
293 => Buff::PlanteraPet,
294 => Buff::GolemPet,
295 => Buff::DukeFishronPet,
296 => Buff::LunaticCultistPet,
297 => Buff::MoonLordPet,
298 => Buff::FairyQueenPet,
299 => Buff::PumpkingPet,
300 => Buff::EverscreamPet,
301 => Buff::IceQueenPet,
302 => Buff::MartianPet,
303 => Buff::DD2OgrePet,
304 => Buff::DD2BetsyPet,
305 => Buff::LavaSharkMount,
306 => Buff::TitaniumStorm,
307 => Buff::BlandWhipEnemyDebuff,
308 => Buff::SwordWhipPlayer,
309 => Buff::SwordWhipNPCDebuff,
310 => Buff::ScytheWhipEnemyDebuff,
311 => Buff::ScytheWhipPlayer,
312 => Buff::CoolWhipPlayer,
313 => Buff::FlameWhipEnemyDebuff,
314 => Buff::ThornWhipPlayer,
315 => Buff::ThornWhipNPCDebuff,
316 => Buff::RainbowWhipNPCDebuff,
317 => Buff::QueenSlimePet,
318 => Buff::QueenSlimeMount,
319 => Buff::MaceWhipNPCDebuff,
320 => Buff::GelBalloon,
321 => Buff::BrainOfConfusion,
322 => Buff::EmpressBlade,
323 => Buff::Hellfire,
324 => Buff::Frostbite,
325 => Buff::FlinxMinion,
326 => Buff::BoneWhipNPCDebuff,
327 => Buff::BerniePet,
328 => Buff::GlommerPet,
329 => Buff::DeerclopsPet,
330 => Buff::PigPet,
331 => Buff::ChesterPet,
332 => Buff::NeutralHunger,
333 => Buff::Hunger,
334 => Buff::Starving,
335 => Buff::AbigailMinion,
336 => Buff::HeartyMeal,
337 => Buff::TentacleSpike,
338 => Buff::FartMinecartRight,
339 => Buff::FartMinecartLeft,
340 => Buff::CoolWhipNPCDebuff,
341 => Buff::DualSlimePet,
342 => Buff::WolfMount,
343 => Buff::BiomeSight,
344 => Buff::BloodButcherer,
345 => Buff::JunimoPet,
346 => Buff::TerraFartMinecartRight,
347 => Buff::TerraFartMinecartLeft,
348 => Buff::WarTable,
349 => Buff::BlueChickenPet,
350 => Buff::ShadowCandle,
351 => Buff::Spiffo,
352 => Buff::CavelingGardener,
353 => Buff::Shimmer,
354 => Buff::DirtiestBlock,
_ => return None,
})
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct BuffEffect {
pub buff: Buff,
pub time: Duration,
}