1use crate::ai_interface::callback::unit_def::{kind::base::UnitDefKind, UnitDef};
2
3#[derive(Copy, Clone, Debug, Ord, PartialOrd, Eq, PartialEq)]
4pub enum Any {
5 Commander,
7 WindTurbine,
8 Solar,
9 MetalStorage,
10 EnergyStorage,
11 MetalExtractor,
12 EnergyConverter,
13 BotLab,
14 VehiclePlant,
15 AirPlant,
16 HovercraftPlatform,
17 Camera,
18 Radar,
19 Teeth,
20 LightLaserTower,
21 LightAntiAir,
22 FloatingLightAntiAir,
23 TorpedoLauncher,
24 UnderwaterMetalStorage,
25 UnderwaterEnergyStorage,
26 NavalEnergyConverter,
27 Shipyard,
28 TidalGenerator,
29 FloatingTeeth,
30 FloatingRadar,
31 FloatingHovercraftPlatform,
32 OffshoreTorpedoLauncher,
33 T1AirConstructor,
35 T1AirScout,
36 T1Fighter,
37 T1Bomber,
38 LightParalyzerDrone,
39 T1AirTransport,
40 AdvancedSolar,
42 GeothermalPowerplant,
43 ArmedMetalExtractor,
44 AircraftRepairPad,
45 UnderwaterAdvancedGeothermalPowerplant,
46 AdvancedAircraftPlant,
47 ConstructionTurret,
48 AreaControlLaserTower,
49 ElementalTurret,
50 LaserTower,
51 Artillery,
52 AntiAirMissle,
53 RadarJammer,
54 AntiRadar,
55 T2AirConstructor,
57 RadarSonarAircraft,
58 StealthFighter,
59 Gunship,
60 StrategicBomber,
61 TorpedoBomber,
62 HeavyTransport,
63 FusionReactor,
65 AdvancedFusionReactor,
66 AdvancedGeothermalPowerplant,
67 GeothermalWeapon,
68 Unknown0,
69 AdvancedMetalExtractor,
70 AdvancedArmoredMetalExtractor,
71 WaterAircraftRepairPad,
72 HardenedEnergyStorage,
73 HardenedMetalStorage,
74 AdvancedRadar,
75 LongRangeJammer,
76 FortificationWall,
77 AdvancedEnergyConverter,
78 IntrusionDetector,
79 PlasmaDeflector,
80 EnergyWeapon,
81 RadarTargeting,
82 PopUpBattery,
83 PopUpPlasmaArtillery,
84 AntiAirFlak,
85 LongRangeAntiAir,
86 SeaplanePlatform,
87 TacticalMissileLauncher,
88 NuclearSilo,
89 AntiNukeLauncher,
90 LongRangePlasmaCannon,
91 RapidFireLongRangePlasmaCannon,
92 ExperimentalGantry,
93 T1BotConstructor,
95 T1RessurectionBot,
96 FastInfantryBot,
97 RocketBot,
98 LightPlasmaBot,
99 AmphibiousAntiAirBot,
100 AdvancedBotLab,
102 T2BotConstructor,
104 FastAssaultBot,
105 AmphibiousBot,
106 HeavilyArmoredAssaultBot,
107 ArmoredAssaultBot,
108 SpiderBot,
109 MortarBot,
110 CrawlingBomb,
111 HeavyRocketBot,
112 AdvancedCrawlingBomb,
113 DecoyCommander,
114 RadarBot,
115 SpyBot,
116 StealthBot,
117 CombatEngineer,
118 JammerBot,
119 HeavyAntiAir,
120 Unknown1,
122 T1VehicleConstructor,
125 AmphibiousConstructor,
126 Minelayer,
127 LightScoutVehicle,
128 LightTank,
129 LightAmphibiousTank,
130 MediumAssaultTank,
131 LightMobileArtillery,
132 MissileTruck,
133 AntiSwarmTank,
134 LightMine,
136 MediumMine,
137 HeavyMine,
138 AdvancedVehiclePlant,
140 T2VehicleConstructor,
142 RadarJammerVehicle,
143 HeavyAssaultTank,
144 StealthyRocketLauncher,
145 HeavyMissileTank,
146 MobileArtilleryTank,
147 HeavyArtilleryTank,
148 VeryHeavyAssaultTank,
149 MediumAmphibiousTank,
150 HeavyAmphibiousTank,
151 VeryHeavyAmphibiousTank,
152 AntiAirFlakTank,
153 AntiNukeTank,
154 RadarVehicle,
155 MobileHeavyTurretExperimental,
157 AllTerrainAssaultExperimental,
158 AssaultBotExperimental,
159 AmphibiousSiegeExperimental,
160 HeavyRocketExperimental,
161 HeavyLaserHovertankExperimental,
162 T1HovercraftConstructor,
164 FastAttackHovertank,
165 Hovertank,
166 AssaultHovertank,
167 RocketHovertank,
168 AntiAirHovertank,
169 NavalConstructionTurret,
171 AmphibiousComplex,
172 FloatingHeavyLaserTower,
173 AdvancedShipyard,
174 UnderwaterGeothermalPowerplant,
175 PopUpTorpedoLauncher,
177 T1ShipConstructor,
179 RessurectionSub,
180 LightGunBoat,
181 MissileCorvette,
182 AssaultFrigate,
183 Destroyer,
184 Sub,
185 T2ShipConstructor,
188 NavalEngineer,
189 Cruiser,
190 FastAssaultSubmarine,
191 LongRangeBattleSubmarine,
192 AntiAirShip,
193 RadarJammerShip,
194 AircraftCarrier,
195 Battleship,
196 CruiseMissileShip,
197 Flagship,
198 FloatingHeavyMine,
200 UnderwaterExperimentalGantry,
202 UnderwaterFusionReactor,
203 UnderwaterMetalConverter,
204 UnderwaterEnergyConverter,
205 AdvancedSonar,
206 NavalAdvancedRadarTargeting,
207 AdvancedTorpedoLauncher,
208 NavalAntiAirGun,
209 FloatingMultiweaponPlatform,
210 SeaplaneConstructor,
212 SeaplaneGunship,
213 SeaplaneBomber,
214 SeaplaneTorpedoGunship,
215 SeaplaneFighter,
216 SeaplaneRadarSonar,
217 Unknown,
219}
220
221impl PartialEq<Any> for UnitDef {
222 fn eq(&self, other: &Any) -> bool {
223 *other == self.kind().unwrap_or(UnitDefKind::Unknown)
224 }
225}
226
227impl PartialEq<UnitDef> for Any {
228 fn eq(&self, other: &UnitDef) -> bool {
229 other.kind().unwrap_or(UnitDefKind::Unknown) == *self
230 }
231}
232
233impl PartialEq<Any> for UnitDefKind {
234 fn eq(&self, other: &Any) -> bool {
235 other == self
236 }
237}
238
239impl PartialEq<UnitDefKind> for Any {
240 fn eq(&self, other: &UnitDefKind) -> bool {
241 match other {
242 UnitDefKind::CoreCommander | UnitDefKind::ArmCommander => *self == Self::Commander,
243 UnitDefKind::CoreWindTurbine | UnitDefKind::ArmWindTurbine => {
244 *self == Self::WindTurbine
245 }
246 UnitDefKind::CoreSolar | UnitDefKind::ArmSolar => *self == Self::Solar,
247 UnitDefKind::CoreMetalStorage | UnitDefKind::ArmMetalStorage => {
248 *self == Self::MetalStorage
249 }
250 UnitDefKind::CoreEnergyStorage | UnitDefKind::ArmEnergyStorage => {
251 *self == Self::EnergyStorage
252 }
253 UnitDefKind::CoreMetalExtractor | UnitDefKind::ArmMetalExtractor => {
254 *self == Self::MetalExtractor
255 }
256 UnitDefKind::CoreEnergyConverter | UnitDefKind::ArmEnergyConverter => {
257 *self == Self::EnergyConverter
258 }
259 UnitDefKind::CoreBotLab | UnitDefKind::ArmBotLab => *self == Self::BotLab,
260 UnitDefKind::CoreVehiclePlant | UnitDefKind::ArmVehiclePlant => {
261 *self == Self::VehiclePlant
262 }
263 UnitDefKind::CoreAirPlant | UnitDefKind::ArmAirPlant => *self == Self::AirPlant,
264 UnitDefKind::CoreHovercraftPlatform | UnitDefKind::ArmHovercraftPlatform => {
265 *self == Self::HovercraftPlatform
266 }
267 UnitDefKind::CoreCamera | UnitDefKind::ArmCamera => *self == Self::Camera,
268 UnitDefKind::CoreRadar | UnitDefKind::ArmRadar => *self == Self::Radar,
269 UnitDefKind::CoreTeeth | UnitDefKind::ArmTeeth => *self == Self::Teeth,
270 UnitDefKind::CoreLightLaserTower | UnitDefKind::ArmLightLaserTower => {
271 *self == Self::LightLaserTower
272 }
273 UnitDefKind::CoreLightAntiAir | UnitDefKind::ArmLightAntiAir => {
274 *self == Self::LightAntiAir
275 }
276 UnitDefKind::CoreFloatingLightAntiAir | UnitDefKind::ArmFloatingLightAntiAir => {
277 *self == Self::FloatingLightAntiAir
278 }
279 UnitDefKind::CoreTorpedoLauncher | UnitDefKind::ArmTorpedoLauncher => {
280 *self == Self::TorpedoLauncher
281 }
282 UnitDefKind::CoreUnderwaterMetalStorage | UnitDefKind::ArmUnderwaterMetalStorage => {
283 *self == Self::UnderwaterMetalStorage
284 }
285 UnitDefKind::CoreUnderwaterEnergyStorage | UnitDefKind::ArmUnderwaterEnergyStorage => {
286 *self == Self::UnderwaterEnergyStorage
287 }
288 UnitDefKind::CoreNavalEnergyConverter | UnitDefKind::ArmNavalEnergyConverter => {
289 *self == Self::NavalEnergyConverter
290 }
291 UnitDefKind::CoreShipyard | UnitDefKind::ArmShipyard => *self == Self::Shipyard,
292 UnitDefKind::CoreTidalGenerator | UnitDefKind::ArmTidalGenerator => {
293 *self == Self::TidalGenerator
294 }
295 UnitDefKind::CoreFloatingTeeth | UnitDefKind::ArmFloatingTeeth => {
296 *self == Self::FloatingTeeth
297 }
298 UnitDefKind::CoreFloatingRadar | UnitDefKind::ArmFloatingRadar => {
299 *self == Self::FloatingRadar
300 }
301 UnitDefKind::CoreFloatingHovercraftPlatform
302 | UnitDefKind::ArmFloatingHovercraftPlatform => {
303 *self == Self::FloatingHovercraftPlatform
304 }
305 UnitDefKind::CoreOffshoreTorpedoLauncher | UnitDefKind::ArmOffshoreTorpedoLauncher => {
306 *self == Self::OffshoreTorpedoLauncher
307 }
308 UnitDefKind::CoreT1AirConstructor | UnitDefKind::ArmT1AirConstructor => {
309 *self == Self::T1AirConstructor
310 }
311 UnitDefKind::CoreT1AirScout | UnitDefKind::ArmT1AirScout => *self == Self::T1AirScout,
312 UnitDefKind::CoreT1Fighter | UnitDefKind::ArmT1Fighter => *self == Self::T1Fighter,
313 UnitDefKind::CoreT1Bomber | UnitDefKind::ArmT1Bomber => *self == Self::T1Bomber,
314 UnitDefKind::CoreLightParalyzerDrone | UnitDefKind::ArmLightParalyzerDrone => {
315 *self == Self::LightParalyzerDrone
316 }
317 UnitDefKind::CoreT1AirTransport | UnitDefKind::ArmT1AirTransport => {
318 *self == Self::T1AirTransport
319 }
320 UnitDefKind::CoreAdvancedSolar | UnitDefKind::ArmAdvancedSolar => {
321 *self == Self::AdvancedSolar
322 }
323 UnitDefKind::CoreGeothermalPowerplant | UnitDefKind::ArmGeothermalPowerplant => {
324 *self == Self::GeothermalPowerplant
325 }
326 UnitDefKind::CoreArmedMetalExtractor | UnitDefKind::ArmArmedMetalExtractor => {
327 *self == Self::ArmedMetalExtractor
328 }
329 UnitDefKind::CoreAircraftRepairPad | UnitDefKind::ArmAircraftRepairPad => {
330 *self == Self::AircraftRepairPad
331 }
332 UnitDefKind::CoreUnderwaterAdvancedGeothermalPowerplant
333 | UnitDefKind::ArmUnderwaterAdvancedGeothermalPowerplant => {
334 *self == Self::UnderwaterAdvancedGeothermalPowerplant
335 }
336 UnitDefKind::CoreAdvancedAircraftPlant | UnitDefKind::ArmAdvancedAircraftPlant => {
337 *self == Self::AdvancedAircraftPlant
338 }
339 UnitDefKind::CoreConstructionTurret | UnitDefKind::ArmConstructionTurret => {
340 *self == Self::ConstructionTurret
341 }
342 UnitDefKind::CoreAreaControlLaserTower | UnitDefKind::ArmAreaControlLaserTower => {
343 *self == Self::AreaControlLaserTower
344 }
345 UnitDefKind::CoreFlamethrowerTurret | UnitDefKind::ArmLightningTurret => {
346 *self == Self::ElementalTurret
347 }
348 UnitDefKind::CoreAntiSwarmLaserTower | UnitDefKind::ArmLaserTurret => {
349 *self == Self::LaserTower
350 }
351 UnitDefKind::CoreArtillery | UnitDefKind::ArmAreaControlPlasmaArtillery => {
352 *self == Self::Artillery
353 }
354 UnitDefKind::CoreAntiAirMissle | UnitDefKind::ArmPopUpAntiAirMissileBattery => {
355 *self == Self::AntiAirMissle
356 }
357 UnitDefKind::CoreRadarJammer | UnitDefKind::ArmRadarJammer => {
358 *self == Self::RadarJammer
359 }
360 UnitDefKind::CoreAntiRadar | UnitDefKind::ArmAntiRadar => *self == Self::AntiRadar,
361 UnitDefKind::CoreT2AirConstructor | UnitDefKind::ArmT2AirConstructor => {
362 *self == Self::T2AirConstructor
363 }
364 UnitDefKind::CoreRadarSonarAircraft | UnitDefKind::ArmRadarSonarAircraft => {
365 *self == Self::RadarSonarAircraft
366 }
367 UnitDefKind::CoreStealthFighter | UnitDefKind::ArmStealthFighter => {
368 *self == Self::StealthFighter
369 }
370 UnitDefKind::CoreGunship | UnitDefKind::ArmGunship => *self == Self::Gunship,
371 UnitDefKind::CoreStrategicBomber | UnitDefKind::ArmStrategicBomber => {
372 *self == Self::StrategicBomber
373 }
374 UnitDefKind::CoreTorpedoBomber | UnitDefKind::ArmTorpedoBomber => {
375 *self == Self::TorpedoBomber
376 }
377 UnitDefKind::CoreHeavyTransport | UnitDefKind::ArmHeavyTransport => {
378 *self == Self::HeavyTransport
379 }
380 UnitDefKind::CoreFusionReactor | UnitDefKind::ArmFusionReactor => {
381 *self == Self::FusionReactor
382 }
383 UnitDefKind::CoreAdvancedFusionReactor | UnitDefKind::ArmAdvancedFusionReactor => {
384 *self == Self::AdvancedFusionReactor
385 }
386 UnitDefKind::CoreAdvancedGeothermalPowerplant
387 | UnitDefKind::ArmAdvancedGeothermalPowerplant => {
388 *self == Self::AdvancedGeothermalPowerplant
389 }
390 UnitDefKind::CoreGeothermalWeapon | UnitDefKind::ArmGeothermalWeapon => {
391 *self == Self::GeothermalWeapon
392 }
393 UnitDefKind::CoreAdvancedMetalExtractor | UnitDefKind::ArmAdvancedMetalExtractor => {
394 *self == Self::AdvancedMetalExtractor
395 }
396 UnitDefKind::CoreAdvancedArmoredMetalExtractor
397 | UnitDefKind::ArmAdvancedArmoredMetalExtractor => {
398 *self == Self::AdvancedArmoredMetalExtractor
399 }
400 UnitDefKind::CoreWaterAircraftRepairPad | UnitDefKind::ArmWaterAircraftRepairPad => {
401 *self == Self::WaterAircraftRepairPad
402 }
403 UnitDefKind::CoreHardenedEnergyStorage | UnitDefKind::ArmHardenedEnergyStorage => {
404 *self == Self::HardenedEnergyStorage
405 }
406 UnitDefKind::CoreHardenedMetalStorage | UnitDefKind::ArmHardenedMetalStorage => {
407 *self == Self::HardenedMetalStorage
408 }
409 UnitDefKind::CoreAdvancedRadar | UnitDefKind::ArmAdvancedRadar => {
410 *self == Self::AdvancedRadar
411 }
412 UnitDefKind::CoreLongRangeJammer | UnitDefKind::ArmLongRangeJammer => {
413 *self == Self::LongRangeJammer
414 }
415 UnitDefKind::CoreFortificationWall | UnitDefKind::ArmFortificationWall => {
416 *self == Self::FortificationWall
417 }
418 UnitDefKind::CoreAdvancedEnergyConverter | UnitDefKind::ArmAdvancedEnergyConverter => {
419 *self == Self::AdvancedEnergyConverter
420 }
421 UnitDefKind::CoreIntrusionDetector | UnitDefKind::ArmIntrusionDetector => {
422 *self == Self::IntrusionDetector
423 }
424 UnitDefKind::CorePlasmaDeflector | UnitDefKind::ArmPlasmaDeflector => {
425 *self == Self::PlasmaDeflector
426 }
427 UnitDefKind::CoreEnergyWeapon | UnitDefKind::ArmEnergyWeapon => {
428 *self == Self::EnergyWeapon
429 }
430 UnitDefKind::CoreRadarTargeting | UnitDefKind::ArmRadarTargeting => {
431 *self == Self::RadarTargeting
432 }
433 UnitDefKind::CorePopUpBattery | UnitDefKind::ArmPopUpBattery => {
434 *self == Self::PopUpBattery
435 }
436 UnitDefKind::CorePopUpPlasmaArtillery | UnitDefKind::ArmPopUpPlasmaArtillery => {
437 *self == Self::PopUpPlasmaArtillery
438 }
439 UnitDefKind::CoreAntiAirFlak | UnitDefKind::ArmAntiAirFlak => {
440 *self == Self::AntiAirFlak
441 }
442 UnitDefKind::CoreLongRangeAntiAir | UnitDefKind::ArmLongRangeAntiAir => {
443 *self == Self::LongRangeAntiAir
444 }
445 UnitDefKind::CoreSeaplanePlatform | UnitDefKind::ArmSeaplanePlatform => {
446 *self == Self::SeaplanePlatform
447 }
448 UnitDefKind::CoreTacticalMissileLauncher | UnitDefKind::ArmTacticalMissileLauncher => {
449 *self == Self::TacticalMissileLauncher
450 }
451 UnitDefKind::CoreNuclearSilo | UnitDefKind::ArmNuclearSilo => {
452 *self == Self::NuclearSilo
453 }
454 UnitDefKind::CoreAntiNukeLauncher | UnitDefKind::ArmAntiNukeLauncher => {
455 *self == Self::AntiNukeLauncher
456 }
457 UnitDefKind::CoreLongRangePlasmaCannon | UnitDefKind::ArmLongRangePlasmaCannon => {
458 *self == Self::LongRangePlasmaCannon
459 }
460 UnitDefKind::CoreRapidFireLongRangePlasmaCannon
461 | UnitDefKind::ArmRapidFireLongRangePlasmaCannon => {
462 *self == Self::RapidFireLongRangePlasmaCannon
463 }
464 UnitDefKind::CoreExperimentalGantry | UnitDefKind::ArmExperimentalGantry => {
465 *self == Self::ExperimentalGantry
466 }
467 UnitDefKind::CoreT1BotConstructor | UnitDefKind::ArmT1BotConstructor => {
468 *self == Self::T1BotConstructor
469 }
470 UnitDefKind::CoreT1RessurectionBot | UnitDefKind::ArmT1RessurectionBot => {
471 *self == Self::T1RessurectionBot
472 }
473 UnitDefKind::CoreFastInfantryBot | UnitDefKind::ArmFastInfantryBot => {
474 *self == Self::FastInfantryBot
475 }
476 UnitDefKind::CoreRocketBot | UnitDefKind::ArmRocketBot => *self == Self::RocketBot,
477 UnitDefKind::CoreLightPlasmaBot | UnitDefKind::ArmLightPlasmaBot => {
478 *self == Self::LightPlasmaBot
479 }
480 UnitDefKind::CoreAmphibiousAntiAirBot | UnitDefKind::ArmAmphibiousAntiAirBot => {
481 *self == Self::AmphibiousAntiAirBot
482 }
483 UnitDefKind::CoreAdvancedBotLab | UnitDefKind::ArmAdvancedBotLab => {
484 *self == Self::AdvancedBotLab
485 }
486 UnitDefKind::CoreT2BotConstructor | UnitDefKind::ArmT2BotConstructor => {
487 *self == Self::T2BotConstructor
488 }
489 UnitDefKind::CoreFastAssaultBot | UnitDefKind::ArmFastAssaultBot => {
490 *self == Self::FastAssaultBot
491 }
492 UnitDefKind::CoreAmphibiousBot | UnitDefKind::ArmAmphibiousBot => {
493 *self == Self::AmphibiousBot
494 }
495 UnitDefKind::CoreHeavilyArmoredAssaultBot
496 | UnitDefKind::ArmHeavilyArmoredAssaultBot => *self == Self::HeavilyArmoredAssaultBot,
497 UnitDefKind::CoreArmoredAssaultBot | UnitDefKind::ArmArmoredAssaultBot => {
498 *self == Self::MetalStorage
499 }
500 UnitDefKind::CoreSpiderBot | UnitDefKind::ArmSpiderBot => *self == Self::SpiderBot,
501 UnitDefKind::CoreMortarBot | UnitDefKind::ArmMortarBot => *self == Self::MortarBot,
502 UnitDefKind::CoreCrawlingBomb | UnitDefKind::ArmCrawlingBomb => {
503 *self == Self::CrawlingBomb
504 }
505 UnitDefKind::CoreHeavyRocketBot | UnitDefKind::ArmHeavyRocketBot => {
506 *self == Self::HeavyRocketBot
507 }
508 UnitDefKind::CoreAdvancedCrawlingBomb | UnitDefKind::ArmAdvancedCrawlingBomb => {
509 *self == Self::AdvancedCrawlingBomb
510 }
511 UnitDefKind::CoreDecoyCommander | UnitDefKind::ArmDecoyCommander => {
512 *self == Self::DecoyCommander
513 }
514 UnitDefKind::CoreRadarBot | UnitDefKind::ArmRadarBot => *self == Self::RadarBot,
515 UnitDefKind::CoreSpyBot | UnitDefKind::ArmSpyBot => *self == Self::SpyBot,
516 UnitDefKind::CoreStealthBot | UnitDefKind::ArmStealthBot => *self == Self::StealthBot,
517 UnitDefKind::CoreCombatEngineer | UnitDefKind::ArmCombatEngineer => {
518 *self == Self::CombatEngineer
519 }
520 UnitDefKind::CoreJammerBot | UnitDefKind::ArmJammerBot => *self == Self::JammerBot,
521 UnitDefKind::CoreHeavyAntiAir | UnitDefKind::ArmHeavyAntiAir => {
522 *self == Self::HeavyAntiAir
523 }
524 UnitDefKind::CoreT1VehicleConstructor | UnitDefKind::ArmT1VehicleConstructor => {
525 *self == Self::T1VehicleConstructor
526 }
527 UnitDefKind::CoreAmphibiousConstructor | UnitDefKind::ArmAmphibiousConstructor => {
528 *self == Self::AmphibiousConstructor
529 }
530 UnitDefKind::CoreMinelayer | UnitDefKind::ArmMinelayer => *self == Self::Minelayer,
531 UnitDefKind::CoreLightScoutVehicle | UnitDefKind::ArmLightScoutVehicle => {
532 *self == Self::LightScoutVehicle
533 }
534 UnitDefKind::CoreLightTank | UnitDefKind::ArmLightTank => *self == Self::LightTank,
535 UnitDefKind::CoreLightAmphibiousTank | UnitDefKind::ArmLightAmphibiousTank => {
536 *self == Self::LightAmphibiousTank
537 }
538 UnitDefKind::CoreMediumAssaultTank | UnitDefKind::ArmMediumAssaultTank => {
539 *self == Self::MediumAssaultTank
540 }
541 UnitDefKind::CoreLightMobileArtillery | UnitDefKind::ArmLightMobileArtillery => {
542 *self == Self::LightMobileArtillery
543 }
544 UnitDefKind::CoreMissileTruck | UnitDefKind::ArmMissileTruck => {
545 *self == Self::MissileTruck
546 }
547 UnitDefKind::CoreAntiSwarmTank | UnitDefKind::ArmAntiSwarmTank => {
548 *self == Self::AntiSwarmTank
549 }
550 UnitDefKind::CoreLightMine | UnitDefKind::ArmLightMine => *self == Self::LightMine,
551 UnitDefKind::CoreMediumMine | UnitDefKind::ArmMediumMine => *self == Self::MediumMine,
552 UnitDefKind::CoreHeavyMine | UnitDefKind::ArmHeavyMine => *self == Self::HeavyMine,
553 UnitDefKind::CoreAdvancedVehiclePlant | UnitDefKind::ArmAdvancedVehiclePlant => {
554 *self == Self::AdvancedVehiclePlant
555 }
556 UnitDefKind::CoreT2VehicleConstructor | UnitDefKind::ArmT2VehicleConstructor => {
557 *self == Self::MetalStorage
558 }
559 UnitDefKind::CoreRadarJammerVehicle | UnitDefKind::ArmRadarJammerVehicle => {
560 *self == Self::RadarJammerVehicle
561 }
562 UnitDefKind::CoreHeavyAssaultTank | UnitDefKind::ArmHeavyAssaultTank => {
563 *self == Self::HeavyAssaultTank
564 }
565 UnitDefKind::CoreStealthyRocketLauncher | UnitDefKind::ArmStealthyRocketLauncher => {
566 *self == Self::StealthyRocketLauncher
567 }
568 UnitDefKind::CoreHeavyMissileTank | UnitDefKind::ArmHeavyMissileTank => {
569 *self == Self::HeavyMissileTank
570 }
571 UnitDefKind::CoreMobileArtilleryTank | UnitDefKind::ArmMobileArtilleryTank => {
572 *self == Self::MobileArtilleryTank
573 }
574 UnitDefKind::CoreHeavyArtilleryTank | UnitDefKind::ArmHeavyArtilleryTank => {
575 *self == Self::HeavyArtilleryTank
576 }
577 UnitDefKind::CoreVeryHeavyAssaultTank | UnitDefKind::ArmVeryHeavyAssaultTank => {
578 *self == Self::VeryHeavyAssaultTank
579 }
580 UnitDefKind::CoreMediumAmphibiousTank | UnitDefKind::ArmMediumAmphibiousTank => {
581 *self == Self::MediumAmphibiousTank
582 }
583 UnitDefKind::ArmHeavyAmphibiousTank => {
584 *self == Self::HeavyAmphibiousTank
585 }
586 UnitDefKind::CoreVeryHeavyAmphibiousTank | UnitDefKind::ArmVeryHeavyAmphibiousTank => {
587 *self == Self::VeryHeavyAmphibiousTank
588 }
589 UnitDefKind::CoreAntiAirFlakTank | UnitDefKind::ArmAntiAirFlakTank => {
590 *self == Self::AntiAirFlakTank
591 }
592 UnitDefKind::CoreAntiNukeTank | UnitDefKind::ArmAntiNukeTank => {
593 *self == Self::AntiNukeTank
594 }
595 UnitDefKind::CoreRadarVehicle | UnitDefKind::ArmRadarVehicle => {
596 *self == Self::RadarVehicle
597 }
598 UnitDefKind::CoreMobileHeavyTurretExperimental
599 | UnitDefKind::ArmMobileHeavyTurretExperimental => {
600 *self == Self::MobileHeavyTurretExperimental
601 }
602 UnitDefKind::CoreAllTerrainAssaultExperimental
603 | UnitDefKind::ArmAllTerrainAssaultExperimental => {
604 *self == Self::AllTerrainAssaultExperimental
605 }
606 UnitDefKind::CoreAssaultBotExperimental | UnitDefKind::ArmAssaultBotExperimental => {
607 *self == Self::AssaultBotExperimental
608 }
609 UnitDefKind::CoreAmphibiousSiegeExperimental
610 | UnitDefKind::ArmAmphibiousSiegeExperimental => {
611 *self == Self::AmphibiousSiegeExperimental
612 }
613 UnitDefKind::CoreHeavyRocketExperimental | UnitDefKind::ArmHeavyRocketExperimental => {
614 *self == Self::HeavyRocketExperimental
615 }
616 UnitDefKind::CoreHeavyLaserHovertankExperimental
617 | UnitDefKind::ArmHeavyLaserHovertankExperimental => {
618 *self == Self::HeavyLaserHovertankExperimental
619 }
620 UnitDefKind::CoreT1HovercraftConstructor | UnitDefKind::ArmT1HovercraftConstructor => {
621 *self == Self::T1HovercraftConstructor
622 }
623 UnitDefKind::CoreFastAttackHovertank | UnitDefKind::ArmFastAttackHovertank => {
624 *self == Self::FastAttackHovertank
625 }
626 UnitDefKind::CoreHovertank | UnitDefKind::ArmHovertank => *self == Self::Hovertank,
627 UnitDefKind::CoreAssaultHovertank | UnitDefKind::ArmAssaultHovertank => {
628 *self == Self::AssaultHovertank
629 }
630 UnitDefKind::CoreRocketHovertank | UnitDefKind::ArmRocketHovertank => {
631 *self == Self::RocketHovertank
632 }
633 UnitDefKind::CoreAntiAirHovertank | UnitDefKind::ArmAntiAirHovertank => {
634 *self == Self::AntiAirHovertank
635 }
636 UnitDefKind::CoreNavalConstructionTurret | UnitDefKind::ArmNavalConstructionTurret => {
637 *self == Self::NavalConstructionTurret
638 }
639 UnitDefKind::CoreAmphibiousComplex | UnitDefKind::ArmAmphibiousComplex => {
640 *self == Self::AmphibiousComplex
641 }
642 UnitDefKind::CoreFloatingHeavyLaserTower | UnitDefKind::ArmFloatingHeavyLaserTower => {
643 *self == Self::FloatingHeavyLaserTower
644 }
645 UnitDefKind::CoreAdvancedShipyard | UnitDefKind::ArmAdvancedShipyard => {
646 *self == Self::AdvancedShipyard
647 }
648 UnitDefKind::CoreUnderwaterGeothermalPowerplant
649 | UnitDefKind::ArmUnderwaterGeothermalPowerplant => {
650 *self == Self::UnderwaterGeothermalPowerplant
651 }
652 UnitDefKind::CorePopUpTorpedoLauncher | UnitDefKind::ArmPopUpTorpedoLauncher => {
653 *self == Self::PopUpTorpedoLauncher
654 }
655 UnitDefKind::CoreT1ShipConstructor | UnitDefKind::ArmT1ShipConstructor => {
656 *self == Self::T1ShipConstructor
657 }
658 UnitDefKind::CoreRessurectionSub | UnitDefKind::ArmRessurectionSub => {
659 *self == Self::RessurectionSub
660 }
661 UnitDefKind::CoreLightGunBoat | UnitDefKind::ArmLightGunBoat => {
662 *self == Self::LightGunBoat
663 }
664 UnitDefKind::CoreMissileCorvette | UnitDefKind::ArmMissileCorvette => {
665 *self == Self::MissileCorvette
666 }
667 UnitDefKind::CoreAssaultFrigate | UnitDefKind::ArmAssaultFrigate => {
668 *self == Self::AssaultFrigate
669 }
670 UnitDefKind::CoreDestroyer | UnitDefKind::ArmDestroyer => *self == Self::Destroyer,
671 UnitDefKind::CoreSub | UnitDefKind::ArmSub => *self == Self::Sub,
672 UnitDefKind::CoreT2ShipConstructor | UnitDefKind::ArmT2ShipConstructor => {
673 *self == Self::T2ShipConstructor
674 }
675 UnitDefKind::CoreNavalEngineer | UnitDefKind::ArmNavalEngineer => {
676 *self == Self::NavalEngineer
677 }
678 UnitDefKind::CoreCruiser | UnitDefKind::ArmCruiser => *self == Self::Cruiser,
679 UnitDefKind::CoreFastAssaultSubmarine | UnitDefKind::ArmFastAssaultSubmarine => {
680 *self == Self::FastAssaultSubmarine
681 }
682 UnitDefKind::CoreLongRangeBattleSubmarine
683 | UnitDefKind::ArmLongRangeBattleSubmarine => *self == Self::LongRangeBattleSubmarine,
684 UnitDefKind::CoreAntiAirShip | UnitDefKind::ArmAntiAirShip => {
685 *self == Self::AntiAirShip
686 }
687 UnitDefKind::CoreRadarJammerShip | UnitDefKind::ArmRadarJammerShip => {
688 *self == Self::RadarJammerShip
689 }
690 UnitDefKind::CoreAircraftCarrier | UnitDefKind::ArmAircraftCarrier => {
691 *self == Self::AircraftCarrier
692 }
693 UnitDefKind::CoreBattleship | UnitDefKind::ArmBattleship => *self == Self::Battleship,
694 UnitDefKind::CoreCruiseMissileShip | UnitDefKind::ArmCruiseMissileShip => {
695 *self == Self::CruiseMissileShip
696 }
697 UnitDefKind::CoreFlagship | UnitDefKind::ArmFlagship => *self == Self::Flagship,
698 UnitDefKind::CoreFloatingHeavyMine | UnitDefKind::ArmFloatingHeavyMine => {
699 *self == Self::FloatingHeavyMine
700 }
701 UnitDefKind::CoreUnderwaterExperimentalGantry
702 | UnitDefKind::ArmUnderwaterExperimentalGantry => {
703 *self == Self::UnderwaterExperimentalGantry
704 }
705 UnitDefKind::CoreUnderwaterFusionReactor | UnitDefKind::ArmUnderwaterFusionReactor => {
706 *self == Self::MetalStorage
707 }
708 UnitDefKind::CoreUnderwaterMetalConverter
709 | UnitDefKind::ArmUnderwaterMetalConverter => *self == Self::UnderwaterMetalConverter,
710 UnitDefKind::CoreUnderwaterEnergyConverter
711 | UnitDefKind::ArmUnderwaterEnergyConverter => *self == Self::UnderwaterEnergyConverter,
712 UnitDefKind::CoreAdvancedSonar | UnitDefKind::ArmAdvancedSonar => {
713 *self == Self::AdvancedSonar
714 }
715 UnitDefKind::CoreNavalAdvancedRadarTargeting
716 | UnitDefKind::ArmNavalAdvancedRadarTargeting => {
717 *self == Self::NavalAdvancedRadarTargeting
718 }
719 UnitDefKind::CoreAdvancedTorpedoLauncher | UnitDefKind::ArmAdvancedTorpedoLauncher => {
720 *self == Self::AdvancedTorpedoLauncher
721 }
722 UnitDefKind::CoreNavalAntiAirGun | UnitDefKind::ArmNavalAntiAirGun => {
723 *self == Self::NavalAntiAirGun
724 }
725 UnitDefKind::CoreFloatingMultiweaponPlatform
726 | UnitDefKind::ArmFloatingMultiweaponPlatform => {
727 *self == Self::FloatingMultiweaponPlatform
728 }
729 UnitDefKind::CoreSeaplaneConstructor | UnitDefKind::ArmSeaplaneConstructor => {
730 *self == Self::SeaplaneConstructor
731 }
732 UnitDefKind::CoreSeaplaneGunship | UnitDefKind::ArmSeaplaneGunship => {
733 *self == Self::SeaplaneGunship
734 }
735 UnitDefKind::CoreSeaplaneBomber | UnitDefKind::ArmSeaplaneBomber => {
736 *self == Self::SeaplaneBomber
737 }
738 UnitDefKind::CoreSeaplaneTorpedoGunship | UnitDefKind::ArmSeaplaneTorpedoGunship => {
739 *self == Self::SeaplaneTorpedoGunship
740 }
741 UnitDefKind::CoreSeaplaneFighter | UnitDefKind::ArmSeaplaneFighter => {
742 *self == Self::SeaplaneFighter
743 }
744 UnitDefKind::CoreSeaplaneRadarSonar | UnitDefKind::ArmSeaplaneRadarSonar => {
745 *self == Self::SeaplaneRadarSonar
746 }
747 UnitDefKind::CoreFlyingFortress
748 | UnitDefKind::ArmEMPBomber
749 | UnitDefKind::ArmAtomicBomber
750 | UnitDefKind::ArmRapidAssaultGunship
751 | UnitDefKind::ArmMediumRangeAntiAir
752 | UnitDefKind::ArmCloakedFusionReactor
753 | UnitDefKind::ArmTachyonAccelerator
754 | UnitDefKind::ArmEMPMissileLauncher
755 | UnitDefKind::ArmDecoyFusionReactor
756 | UnitDefKind::Unknown
757 | UnitDefKind::UnknownCurrent
758 | UnitDefKind::ArmAssaultCorvette
759 | UnitDefKind::ArmT2SupportShip => *self == Self::Unknown,
760 }
761 }
762}