1use crate::ai_interface::callback::unit_def::{kind::base::UnitDefKind, UnitDef};
2
3#[derive(Copy, Clone, Debug, Ord, PartialOrd, Eq, PartialEq)]
4pub enum Arm {
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 LightningTurret,
50 MediumRangeAntiAir,
51 LaserTurret,
52 AreaControlPlasmaArtillery,
53 PopUpAntiAirMissileBattery,
54 RadarJammer,
55 AntiRadar,
56 T2AirConstructor,
58 RadarSonarAircraft,
59 StealthFighter,
60 Gunship,
61 AtomicBomber,
62 StrategicBomber,
63 TorpedoBomber,
64 HeavyTransport,
65 RapidAssaultGunship,
66 EMPBomber,
67 FusionReactor,
69 AdvancedFusionReactor,
70 CloakedFusionReactor,
71 AdvancedGeothermalPowerplant,
72 GeothermalWeapon,
73 Unknown0,
74 AdvancedMetalExtractor,
75 AdvancedArmoredMetalExtractor,
76 WaterAircraftRepairPad,
77 HardenedEnergyStorage,
78 HardenedMetalStorage,
79 AdvancedRadar,
80 LongRangeJammer,
81 FortificationWall,
82 AdvancedEnergyConverter,
83 IntrusionDetector,
84 PlasmaDeflector,
85 EnergyWeapon,
86 RadarTargeting,
87 PopUpBattery,
88 PopUpPlasmaArtillery,
89 AntiAirFlak,
90 LongRangeAntiAir,
91 SeaplanePlatform,
92 EMPMissileLauncher,
93 TacticalMissileLauncher,
94 NuclearSilo,
95 AntiNukeLauncher,
96 DecoyFusionReactor,
97 LongRangePlasmaCannon,
98 RapidFireLongRangePlasmaCannon,
99 ExperimentalGantry,
100 TachyonAccelerator,
101 T1BotConstructor,
103 T1RessurectionBot,
104 FastInfantryBot,
105 RocketBot,
106 LightPlasmaBot,
107 AmphibiousAntiAirBot,
108 AdvancedBotLab,
110 T2BotConstructor,
112 FastAssaultBot,
113 AmphibiousBot,
114 HeavilyArmoredAssaultBot,
115 ArmoredAssaultBot,
116 SpiderBot,
117 MortarBot,
118 CrawlingBomb,
119 HeavyRocketBot,
120 AdvancedCrawlingBomb,
121 DecoyCommander,
122 RadarBot,
123 SpyBot,
124 StealthBot,
125 CombatEngineer,
126 JammerBot,
127 HeavyAntiAir,
128 Unknown1,
130 T1VehicleConstructor,
133 AmphibiousConstructor,
134 Minelayer,
135 LightScoutVehicle,
136 LightTank,
137 LightAmphibiousTank,
138 MediumAssaultTank,
139 LightMobileArtillery,
140 MissileTruck,
141 AntiSwarmTank,
142 LightMine,
144 MediumMine,
145 HeavyMine,
146 AdvancedVehiclePlant,
148 T2VehicleConstructor,
150 RadarJammerVehicle,
151 HeavyAssaultTank,
152 StealthyRocketLauncher,
153 HeavyMissileTank,
154 MobileArtilleryTank,
155 HeavyArtilleryTank,
156 VeryHeavyAssaultTank,
157 MediumAmphibiousTank,
158 VeryHeavyAmphibiousTank,
159 AntiAirFlakTank,
160 AntiNukeTank,
161 RadarVehicle,
162 MobileHeavyTurretExperimental,
164 AllTerrainAssaultExperimental,
165 AssaultBotExperimental,
166 AmphibiousSiegeExperimental,
167 HeavyRocketExperimental,
168 HeavyLaserHovertankExperimental,
169 T1HovercraftConstructor,
171 FastAttackHovertank,
172 Hovertank,
173 AssaultHovertank,
174 RocketHovertank,
175 AntiAirHovertank,
176 NavalConstructionTurret,
178 AmphibiousComplex,
179 FloatingHeavyLaserTower,
180 AdvancedShipyard,
181 UnderwaterGeothermalPowerplant,
182 PopUpTorpedoLauncher,
184 T1ShipConstructor,
186 RessurectionSub,
187 LightGunBoat,
188 MissileCorvette,
189 AssaultFrigate,
190 Destroyer,
191 Sub,
192 T2ShipConstructor,
195 NavalEngineer,
196 Cruiser,
197 FastAssaultSubmarine,
198 LongRangeBattleSubmarine,
199 AntiAirShip,
200 RadarJammerShip,
201 AircraftCarrier,
202 Battleship,
203 CruiseMissileShip,
204 Flagship,
205 FloatingHeavyMine,
207 UnderwaterExperimentalGantry,
209 UnderwaterFusionReactor,
210 UnderwaterMetalConverter,
211 UnderwaterEnergyConverter,
212 AdvancedSonar,
213 NavalAdvancedRadarTargeting,
214 AdvancedTorpedoLauncher,
215 NavalAntiAirGun,
216 FloatingMultiweaponPlatform,
217 SeaplaneConstructor,
219 SeaplaneGunship,
220 SeaplaneBomber,
221 SeaplaneTorpedoGunship,
222 SeaplaneFighter,
223 SeaplaneRadarSonar,
224 Unknown,
226}
227
228impl PartialEq<Arm> for UnitDef {
229 fn eq(&self, other: &Arm) -> bool {
230 *other == self.kind().unwrap_or(UnitDefKind::Unknown)
231 }
232}
233
234impl PartialEq<UnitDef> for Arm {
235 fn eq(&self, other: &UnitDef) -> bool {
236 other.kind().unwrap_or(UnitDefKind::Unknown) == *self
237 }
238}
239
240impl PartialEq<Arm> for UnitDefKind {
241 fn eq(&self, other: &Arm) -> bool {
242 other == self
243 }
244}
245
246impl PartialEq<UnitDefKind> for Arm {
247 fn eq(&self, other: &UnitDefKind) -> bool {
248 match other {
249 UnitDefKind::ArmCommander => *self == Self::Commander,
250 UnitDefKind::ArmWindTurbine => *self == Self::WindTurbine,
251 UnitDefKind::ArmSolar => *self == Self::Solar,
252 UnitDefKind::ArmMetalStorage => *self == Self::MetalStorage,
253 UnitDefKind::ArmEnergyStorage => *self == Self::EnergyStorage,
254 UnitDefKind::ArmMetalExtractor => *self == Self::MetalExtractor,
255 UnitDefKind::ArmEnergyConverter => *self == Self::EnergyConverter,
256 UnitDefKind::ArmBotLab => *self == Self::BotLab,
257 UnitDefKind::ArmVehiclePlant => *self == Self::VehiclePlant,
258 UnitDefKind::ArmAirPlant => *self == Self::AirPlant,
259 UnitDefKind::ArmHovercraftPlatform => *self == Self::HovercraftPlatform,
260 UnitDefKind::ArmCamera => *self == Self::Camera,
261 UnitDefKind::ArmRadar => *self == Self::Radar,
262 UnitDefKind::ArmTeeth => *self == Self::Teeth,
263 UnitDefKind::ArmLightLaserTower => *self == Self::LightLaserTower,
264 UnitDefKind::ArmLightAntiAir => *self == Self::LightAntiAir,
265 UnitDefKind::ArmFloatingLightAntiAir => *self == Self::FloatingLightAntiAir,
266 UnitDefKind::ArmTorpedoLauncher => *self == Self::TorpedoLauncher,
267 UnitDefKind::ArmUnderwaterMetalStorage => *self == Self::UnderwaterMetalStorage,
268 UnitDefKind::ArmUnderwaterEnergyStorage => *self == Self::UnderwaterEnergyStorage,
269 UnitDefKind::ArmNavalEnergyConverter => *self == Self::NavalEnergyConverter,
270 UnitDefKind::ArmShipyard => *self == Self::Shipyard,
271 UnitDefKind::ArmTidalGenerator => *self == Self::TidalGenerator,
272 UnitDefKind::ArmFloatingTeeth => *self == Self::FloatingTeeth,
273 UnitDefKind::ArmFloatingRadar => *self == Self::FloatingRadar,
274 UnitDefKind::ArmFloatingHovercraftPlatform => *self == Self::FloatingHovercraftPlatform,
275 UnitDefKind::ArmOffshoreTorpedoLauncher => *self == Self::OffshoreTorpedoLauncher,
276 UnitDefKind::ArmT1AirConstructor => *self == Self::T1AirConstructor,
277 UnitDefKind::ArmT1AirScout => *self == Self::T1AirScout,
278 UnitDefKind::ArmT1Fighter => *self == Self::T1Fighter,
279 UnitDefKind::ArmT1Bomber => *self == Self::T1Bomber,
280 UnitDefKind::ArmLightParalyzerDrone => *self == Self::LightParalyzerDrone,
281 UnitDefKind::ArmT1AirTransport => *self == Self::T1AirTransport,
282 UnitDefKind::ArmAdvancedSolar => *self == Self::AdvancedSolar,
283 UnitDefKind::ArmGeothermalPowerplant => *self == Self::GeothermalPowerplant,
284 UnitDefKind::ArmArmedMetalExtractor => *self == Self::ArmedMetalExtractor,
285 UnitDefKind::ArmAircraftRepairPad => *self == Self::AircraftRepairPad,
286 UnitDefKind::ArmUnderwaterAdvancedGeothermalPowerplant => {
287 *self == Self::UnderwaterAdvancedGeothermalPowerplant
288 }
289 UnitDefKind::ArmAdvancedAircraftPlant => *self == Self::AdvancedAircraftPlant,
290 UnitDefKind::ArmConstructionTurret => *self == Self::ConstructionTurret,
291 UnitDefKind::ArmAreaControlLaserTower => *self == Self::AreaControlLaserTower,
292 UnitDefKind::ArmLightningTurret => *self == Self::LightningTurret,
293 UnitDefKind::ArmMediumRangeAntiAir => *self == Self::MediumRangeAntiAir,
294 UnitDefKind::ArmLaserTurret => *self == Self::LaserTurret,
295 UnitDefKind::ArmAreaControlPlasmaArtillery => *self == Self::AreaControlPlasmaArtillery,
296 UnitDefKind::ArmPopUpAntiAirMissileBattery => *self == Self::PopUpAntiAirMissileBattery,
297 UnitDefKind::ArmRadarJammer => *self == Self::RadarJammer,
298 UnitDefKind::ArmAntiRadar => *self == Self::AntiRadar,
299 UnitDefKind::ArmT2AirConstructor => *self == Self::T2AirConstructor,
300 UnitDefKind::ArmRadarSonarAircraft => *self == Self::RadarSonarAircraft,
301 UnitDefKind::ArmStealthFighter => *self == Self::StealthFighter,
302 UnitDefKind::ArmGunship => *self == Self::Gunship,
303 UnitDefKind::ArmAtomicBomber => *self == Self::AtomicBomber,
304 UnitDefKind::ArmStrategicBomber => *self == Self::StrategicBomber,
305 UnitDefKind::ArmTorpedoBomber => *self == Self::TorpedoBomber,
306 UnitDefKind::ArmRapidAssaultGunship => *self == Self::RapidAssaultGunship,
307 UnitDefKind::ArmEMPBomber => *self == Self::EMPBomber,
308 UnitDefKind::ArmHeavyTransport => *self == Self::HeavyTransport,
309 UnitDefKind::ArmFusionReactor => *self == Self::FusionReactor,
310 UnitDefKind::ArmAdvancedFusionReactor => *self == Self::AdvancedFusionReactor,
311 UnitDefKind::ArmCloakedFusionReactor => *self == Self::CloakedFusionReactor,
312 UnitDefKind::ArmAdvancedGeothermalPowerplant => {
313 *self == Self::AdvancedGeothermalPowerplant
314 }
315 UnitDefKind::ArmGeothermalWeapon => *self == Self::GeothermalWeapon,
316 UnitDefKind::ArmAdvancedMetalExtractor => *self == Self::AdvancedMetalExtractor,
317 UnitDefKind::ArmAdvancedArmoredMetalExtractor => {
318 *self == Self::AdvancedArmoredMetalExtractor
319 }
320 UnitDefKind::ArmWaterAircraftRepairPad => *self == Self::WaterAircraftRepairPad,
321 UnitDefKind::ArmHardenedEnergyStorage => *self == Self::HardenedEnergyStorage,
322 UnitDefKind::ArmHardenedMetalStorage => *self == Self::HardenedMetalStorage,
323 UnitDefKind::ArmAdvancedRadar => *self == Self::AdvancedRadar,
324 UnitDefKind::ArmLongRangeJammer => *self == Self::LongRangeJammer,
325 UnitDefKind::ArmFortificationWall => *self == Self::FortificationWall,
326 UnitDefKind::ArmAdvancedEnergyConverter => *self == Self::AdvancedEnergyConverter,
327 UnitDefKind::ArmIntrusionDetector => *self == Self::IntrusionDetector,
328 UnitDefKind::ArmPlasmaDeflector => *self == Self::PlasmaDeflector,
329 UnitDefKind::ArmEnergyWeapon => *self == Self::EnergyWeapon,
330 UnitDefKind::ArmRadarTargeting => *self == Self::RadarTargeting,
331 UnitDefKind::ArmPopUpBattery => *self == Self::PopUpBattery,
332 UnitDefKind::ArmPopUpPlasmaArtillery => *self == Self::PopUpPlasmaArtillery,
333 UnitDefKind::ArmAntiAirFlak => *self == Self::AntiAirFlak,
334 UnitDefKind::ArmLongRangeAntiAir => *self == Self::LongRangeAntiAir,
335 UnitDefKind::ArmSeaplanePlatform => *self == Self::SeaplanePlatform,
336 UnitDefKind::ArmTacticalMissileLauncher => *self == Self::TacticalMissileLauncher,
337 UnitDefKind::ArmNuclearSilo => *self == Self::NuclearSilo,
338 UnitDefKind::ArmAntiNukeLauncher => *self == Self::AntiNukeLauncher,
339 UnitDefKind::ArmDecoyFusionReactor => *self == Self::DecoyFusionReactor,
340 UnitDefKind::ArmLongRangePlasmaCannon => *self == Self::LongRangePlasmaCannon,
341 UnitDefKind::ArmRapidFireLongRangePlasmaCannon => {
342 *self == Self::RapidFireLongRangePlasmaCannon
343 }
344 UnitDefKind::ArmExperimentalGantry => *self == Self::ExperimentalGantry,
345 UnitDefKind::ArmTachyonAccelerator => *self == Self::TachyonAccelerator,
346 UnitDefKind::ArmEMPMissileLauncher => *self == Self::EMPMissileLauncher,
347 UnitDefKind::ArmT1BotConstructor => *self == Self::T1BotConstructor,
348 UnitDefKind::ArmT1RessurectionBot => *self == Self::T1RessurectionBot,
349 UnitDefKind::ArmFastInfantryBot => *self == Self::FastInfantryBot,
350 UnitDefKind::ArmRocketBot => *self == Self::RocketBot,
351 UnitDefKind::ArmLightPlasmaBot => *self == Self::LightPlasmaBot,
352 UnitDefKind::ArmAmphibiousAntiAirBot => *self == Self::AmphibiousAntiAirBot,
353 UnitDefKind::ArmAdvancedBotLab => *self == Self::AdvancedBotLab,
354 UnitDefKind::ArmT2BotConstructor => *self == Self::T2BotConstructor,
355 UnitDefKind::ArmFastAssaultBot => *self == Self::FastAssaultBot,
356 UnitDefKind::ArmAmphibiousBot => *self == Self::AmphibiousBot,
357 UnitDefKind::ArmHeavilyArmoredAssaultBot => *self == Self::HeavilyArmoredAssaultBot,
358 UnitDefKind::ArmArmoredAssaultBot => *self == Self::ArmoredAssaultBot,
359 UnitDefKind::ArmSpiderBot => *self == Self::SpiderBot,
360 UnitDefKind::ArmMortarBot => *self == Self::MortarBot,
361 UnitDefKind::ArmCrawlingBomb => *self == Self::CrawlingBomb,
362 UnitDefKind::ArmHeavyRocketBot => *self == Self::HeavyRocketBot,
363 UnitDefKind::ArmAdvancedCrawlingBomb => *self == Self::AdvancedCrawlingBomb,
364 UnitDefKind::ArmDecoyCommander => *self == Self::DecoyCommander,
365 UnitDefKind::ArmRadarBot => *self == Self::RadarBot,
366 UnitDefKind::ArmSpyBot => *self == Self::SpyBot,
367 UnitDefKind::ArmStealthBot => *self == Self::StealthBot,
368 UnitDefKind::ArmCombatEngineer => *self == Self::CombatEngineer,
369 UnitDefKind::ArmJammerBot => *self == Self::JammerBot,
370 UnitDefKind::ArmHeavyAntiAir => *self == Self::HeavyAntiAir,
371 UnitDefKind::ArmT1VehicleConstructor => *self == Self::T1VehicleConstructor,
372 UnitDefKind::ArmAmphibiousConstructor => *self == Self::AmphibiousConstructor,
373 UnitDefKind::ArmMinelayer => *self == Self::Minelayer,
374 UnitDefKind::ArmLightScoutVehicle => *self == Self::LightScoutVehicle,
375 UnitDefKind::ArmLightTank => *self == Self::LightTank,
376 UnitDefKind::ArmLightAmphibiousTank => *self == Self::LightAmphibiousTank,
377 UnitDefKind::ArmMediumAssaultTank => *self == Self::MediumAssaultTank,
378 UnitDefKind::ArmLightMobileArtillery => *self == Self::LightMobileArtillery,
379 UnitDefKind::ArmMissileTruck => *self == Self::MissileTruck,
380 UnitDefKind::ArmAntiSwarmTank => *self == Self::AntiSwarmTank,
381 UnitDefKind::ArmLightMine => *self == Self::LightMine,
382 UnitDefKind::ArmMediumMine => *self == Self::MediumMine,
383 UnitDefKind::ArmHeavyMine => *self == Self::HeavyMine,
384 UnitDefKind::ArmAdvancedVehiclePlant => *self == Self::AdvancedVehiclePlant,
385 UnitDefKind::ArmT2VehicleConstructor => *self == Self::T2VehicleConstructor,
386 UnitDefKind::ArmRadarJammerVehicle => *self == Self::RadarJammerVehicle,
387 UnitDefKind::ArmHeavyAssaultTank => *self == Self::HeavyAssaultTank,
388 UnitDefKind::ArmStealthyRocketLauncher => *self == Self::StealthyRocketLauncher,
389 UnitDefKind::ArmHeavyMissileTank => *self == Self::HeavyMissileTank,
390 UnitDefKind::ArmMobileArtilleryTank => *self == Self::MobileArtilleryTank,
391 UnitDefKind::ArmHeavyArtilleryTank => *self == Self::HeavyArtilleryTank,
392 UnitDefKind::ArmVeryHeavyAssaultTank => *self == Self::VeryHeavyAssaultTank,
393 UnitDefKind::ArmMediumAmphibiousTank => *self == Self::MediumAmphibiousTank,
394 UnitDefKind::ArmVeryHeavyAmphibiousTank => *self == Self::VeryHeavyAmphibiousTank,
395 UnitDefKind::ArmAntiAirFlakTank => *self == Self::AntiAirFlakTank,
396 UnitDefKind::ArmAntiNukeTank => *self == Self::AntiNukeTank,
397 UnitDefKind::ArmRadarVehicle => *self == Self::RadarVehicle,
398 UnitDefKind::ArmMobileHeavyTurretExperimental => {
399 *self == Self::MobileHeavyTurretExperimental
400 }
401 UnitDefKind::ArmAllTerrainAssaultExperimental => {
402 *self == Self::AllTerrainAssaultExperimental
403 }
404 UnitDefKind::ArmAssaultBotExperimental => *self == Self::AssaultBotExperimental,
405 UnitDefKind::ArmAmphibiousSiegeExperimental => {
406 *self == Self::AmphibiousSiegeExperimental
407 }
408 UnitDefKind::ArmHeavyRocketExperimental => *self == Self::HeavyRocketExperimental,
409 UnitDefKind::ArmHeavyLaserHovertankExperimental => {
410 *self == Self::HeavyLaserHovertankExperimental
411 }
412 UnitDefKind::ArmT1HovercraftConstructor => *self == Self::T1HovercraftConstructor,
413 UnitDefKind::ArmFastAttackHovertank => *self == Self::FastAttackHovertank,
414 UnitDefKind::ArmHovertank => *self == Self::Hovertank,
415 UnitDefKind::ArmAssaultHovertank => *self == Self::AssaultHovertank,
416 UnitDefKind::ArmRocketHovertank => *self == Self::RocketHovertank,
417 UnitDefKind::ArmAntiAirHovertank => *self == Self::AntiAirHovertank,
418 UnitDefKind::ArmNavalConstructionTurret => *self == Self::NavalConstructionTurret,
419 UnitDefKind::ArmAmphibiousComplex => *self == Self::AmphibiousComplex,
420 UnitDefKind::ArmFloatingHeavyLaserTower => *self == Self::FloatingHeavyLaserTower,
421 UnitDefKind::ArmAdvancedShipyard => *self == Self::AdvancedShipyard,
422 UnitDefKind::ArmUnderwaterGeothermalPowerplant => {
423 *self == Self::UnderwaterGeothermalPowerplant
424 }
425 UnitDefKind::ArmPopUpTorpedoLauncher => *self == Self::PopUpTorpedoLauncher,
426 UnitDefKind::ArmT1ShipConstructor => *self == Self::T1ShipConstructor,
427 UnitDefKind::ArmRessurectionSub => *self == Self::RessurectionSub,
428 UnitDefKind::ArmLightGunBoat => *self == Self::LightGunBoat,
429 UnitDefKind::ArmMissileCorvette => *self == Self::MissileCorvette,
430 UnitDefKind::ArmAssaultFrigate => *self == Self::AssaultFrigate,
431 UnitDefKind::ArmDestroyer => *self == Self::Destroyer,
432 UnitDefKind::ArmSub => *self == Self::Sub,
433 UnitDefKind::ArmT2ShipConstructor => *self == Self::T2ShipConstructor,
434 UnitDefKind::ArmNavalEngineer => *self == Self::NavalEngineer,
435 UnitDefKind::ArmCruiser => *self == Self::Cruiser,
436 UnitDefKind::ArmFastAssaultSubmarine => *self == Self::FastAssaultSubmarine,
437 UnitDefKind::ArmLongRangeBattleSubmarine => *self == Self::LongRangeBattleSubmarine,
438 UnitDefKind::ArmAntiAirShip => *self == Self::AntiAirShip,
439 UnitDefKind::ArmRadarJammerShip => *self == Self::RadarJammerShip,
440 UnitDefKind::ArmAircraftCarrier => *self == Self::AircraftCarrier,
441 UnitDefKind::ArmBattleship => *self == Self::Battleship,
442 UnitDefKind::ArmCruiseMissileShip => *self == Self::CruiseMissileShip,
443 UnitDefKind::ArmFlagship => *self == Self::Flagship,
444 UnitDefKind::ArmFloatingHeavyMine => *self == Self::FloatingHeavyMine,
445 UnitDefKind::ArmUnderwaterExperimentalGantry => {
446 *self == Self::UnderwaterExperimentalGantry
447 }
448 UnitDefKind::ArmUnderwaterFusionReactor => *self == Self::UnderwaterFusionReactor,
449 UnitDefKind::ArmUnderwaterMetalConverter => *self == Self::UnderwaterMetalConverter,
450 UnitDefKind::ArmUnderwaterEnergyConverter => *self == Self::UnderwaterEnergyConverter,
451 UnitDefKind::ArmAdvancedSonar => *self == Self::AdvancedSonar,
452 UnitDefKind::ArmNavalAdvancedRadarTargeting => {
453 *self == Self::NavalAdvancedRadarTargeting
454 }
455 UnitDefKind::ArmAdvancedTorpedoLauncher => *self == Self::AdvancedTorpedoLauncher,
456 UnitDefKind::ArmNavalAntiAirGun => *self == Self::NavalAntiAirGun,
457 UnitDefKind::ArmFloatingMultiweaponPlatform => {
458 *self == Self::FloatingMultiweaponPlatform
459 }
460 UnitDefKind::ArmSeaplaneConstructor => *self == Self::SeaplaneConstructor,
461 UnitDefKind::ArmSeaplaneGunship => *self == Self::SeaplaneGunship,
462 UnitDefKind::ArmSeaplaneBomber => *self == Self::SeaplaneBomber,
463 UnitDefKind::ArmSeaplaneTorpedoGunship => *self == Self::SeaplaneTorpedoGunship,
464 UnitDefKind::ArmSeaplaneFighter => *self == Self::SeaplaneFighter,
465 UnitDefKind::ArmSeaplaneRadarSonar => *self == Self::SeaplaneRadarSonar,
466 UnitDefKind::Unknown => *self == Self::Unknown,
467 _ => false,
468 }
469 }
470}