// Copyright (c) 2017 PSForever
package net.psforever.objects.ballistics

/**
  * An `Enumeration` of all the projectile types in the game, paired with their object id as the `Value`.
  */
object Projectiles extends Enumeration {
  object Types extends Enumeration {
    final val no_projectile = Value(0)

    final val bullet_105mm_projectile                   = Value(1)
    final val bullet_12mm_projectile                    = Value(4)
    final val bullet_12mm_projectileb                   = Value(5)
    final val bullet_150mm_projectile                   = Value(7)
    final val bullet_15mm_apc_projectile                = Value(10)
    final val bullet_15mm_projectile                    = Value(11)
    final val bullet_20mm_apc_projectile                = Value(17)
    final val bullet_20mm_projectile                    = Value(18)
    final val bullet_25mm_projectile                    = Value(20)
    final val bullet_35mm_projectile                    = Value(22)
    final val bullet_75mm_apc_projectile                = Value(26)
    final val bullet_75mm_projectile                    = Value(27)
    final val bullet_9mm_AP_projectile                  = Value(30)
    final val bullet_9mm_projectile                     = Value(31)
    final val anniversary_projectilea                   = Value(58)
    final val anniversary_projectileb                   = Value(59)
    final val aphelion_immolation_cannon_projectile     = Value(87)
    final val aphelion_laser_projectile                 = Value(91)
    final val aphelion_plasma_cloud                     = Value(96) //radiation cloud
    final val aphelion_plasma_rocket_projectile         = Value(99)
    final val aphelion_ppa_projectile                   = Value(103)
    final val aphelion_starfire_projectile              = Value(108)
    final val bolt_projectile                           = Value(147)
    final val burster_projectile                        = Value(155)
    final val chainblade_projectile                     = Value(176)
    final val colossus_100mm_projectile                 = Value(181)
    final val colossus_burster_projectile               = Value(188)
    final val colossus_chaingun_projectile              = Value(193)
    final val colossus_cluster_bomb_projectile          = Value(197)
    final val colossus_tank_cannon_projectile           = Value(207)
    final val comet_projectile                          = Value(210)
    final val dualcycler_projectile                     = Value(266)
    final val dynomite_projectile                       = Value(268)
    final val energy_cell_projectile                    = Value(273)
    final val energy_gun_nc_projectile                  = Value(277)
    final val energy_gun_tr_projectile                  = Value(279)
    final val energy_gun_vs_projectile                  = Value(281)
    final val enhanced_energy_cell_projectile           = Value(282)
    final val enhanced_quasar_projectile                = Value(283)
    final val falcon_projectile                         = Value(286)
    final val firebird_missile_projectile               = Value(288)
    final val flail_projectile                          = Value(296)
    final val flamethrower_fire_cloud                   = Value(301)
    final val flamethrower_fireball                     = Value(302)
    final val flamethrower_projectile                   = Value(303)
    final val flux_cannon_apc_projectile                = Value(305)
    final val flux_cannon_thresher_projectile           = Value(308)
    final val fluxpod_projectile                        = Value(311)
    final val forceblade_projectile                     = Value(325)
    final val frag_cartridge_projectile                 = Value(328)
    final val frag_cartridge_projectile_b               = Value(329)
    final val frag_grenade_projectile                   = Value(332)
    final val frag_grenade_projectile_enh               = Value(333)
    final val galaxy_gunship_gun_projectile             = Value(341)
    final val gauss_cannon_projectile                   = Value(348)
    final val grenade_projectile                        = Value(372)
    final val heavy_grenade_projectile                  = Value(392)
    final val heavy_rail_beam_projectile                = Value(395)
    final val heavy_sniper_projectile                   = Value(397)
    final val hellfire_projectile                       = Value(400)
    final val hunter_seeker_missile_dumbfire            = Value(404)
    final val hunter_seeker_missile_projectile          = Value(405)
    final val jammer_cartridge_projectile               = Value(414)
    final val jammer_cartridge_projectile_b             = Value(415)
    final val jammer_grenade_projectile                 = Value(418)
    final val jammer_grenade_projectile_enh             = Value(419)
    final val katana_projectile                         = Value(422)
    final val katana_projectileb                        = Value(423)
    final val lancer_projectile                         = Value(427)
    final val lasher_projectile                         = Value(430)
    final val lasher_projectile_ap                      = Value(431)
    final val liberator_bomb_cluster_bomblet_projectile = Value(436)
    final val liberator_bomb_cluster_projectile         = Value(437)
    final val liberator_bomb_projectile                 = Value(438)
    final val maelstrom_grenade_damager                 = Value(464)
    final val maelstrom_grenade_projectile              = Value(465)
    final val maelstrom_grenade_projectile_contact      = Value(466)
    final val maelstrom_stream_projectile               = Value(467)
    final val magcutter_projectile                      = Value(469)
    final val melee_ammo_projectile                     = Value(541)
    final val meteor_common                             = Value(543)
    final val meteor_projectile_b_large                 = Value(544)
    final val meteor_projectile_b_medium                = Value(545)
    final val meteor_projectile_b_small                 = Value(546)
    final val meteor_projectile_large                   = Value(547)
    final val meteor_projectile_medium                  = Value(548)
    final val meteor_projectile_small                   = Value(549)
    final val mine_projectile                           = Value(551)
    final val mine_sweeper_projectile                   = Value(554)
    final val mine_sweeper_projectile_enh               = Value(555)
    final val ntu_siphon_emp                            = Value(596)
    final val oicw_little_buddy                         = Value(601)
    final val oicw_projectile                           = Value(602)
    final val pellet_gun_projectile                     = Value(631)
    final val peregrine_dual_machine_gun_projectile     = Value(639)
    final val peregrine_mechhammer_projectile           = Value(647)
    final val peregrine_particle_cannon_projectile      = Value(654)
    final val peregrine_particle_cannon_radiation_cloud = Value(655) //radiation cloud
    final val peregrine_rocket_pod_projectile           = Value(657)
    final val peregrine_sparrow_projectile              = Value(661)
    final val phalanx_av_projectile                     = Value(665)
    final val phalanx_flak_projectile                   = Value(667)
    final val phalanx_projectile                        = Value(669)
    final val phoenix_missile_guided_projectile         = Value(675)
    final val phoenix_missile_projectile                = Value(676)
    final val plasma_cartridge_projectile               = Value(678)
    final val plasma_cartridge_projectile_b             = Value(679)
    final val plasma_grenade_projectile                 = Value(682)
    final val plasma_grenade_projectile_B               = Value(683)
    final val pounder_projectile                        = Value(694)
    final val pounder_projectile_enh                    = Value(695)
    final val ppa_projectile                            = Value(696)
    final val pulsar_ap_projectile                      = Value(702)
    final val pulsar_projectile                         = Value(703)
    final val quasar_projectile                         = Value(713)
    final val radiator_cloud                            = Value(717) //radiation cloud
    final val radiator_grenade_projectile               = Value(718)
    final val radiator_sticky_projectile                = Value(719)
    final val reaver_rocket_projectile                  = Value(723)
    final val rocket_projectile                         = Value(735)
    final val rocklet_flak_projectile                   = Value(738)
    final val rocklet_jammer_projectile                 = Value(739)
    final val scattercannon_projectile                  = Value(746)
    final val scythe_projectile                         = Value(748)
    final val scythe_projectile_slave                   = Value(749)
    final val shotgun_shell_AP_projectile               = Value(757)
    final val shotgun_shell_projectile                  = Value(758)
    final val six_shooter_projectile                    = Value(763)
    final val skyguard_flak_cannon_projectile           = Value(787)
    final val sparrow_projectile                        = Value(792)
    final val sparrow_secondary_projectile              = Value(793)
    final val spiker_projectile                         = Value(818)
    final val spitfire_aa_ammo_projectile               = Value(821)
    final val spitfire_ammo_projectile                  = Value(824)
    final val starfire_projectile                       = Value(831)
    final val striker_missile_projectile                = Value(840)
    final val striker_missile_targeting_projectile      = Value(841)
    final val trek_projectile                           = Value(878)
    final val vanu_sentry_turret_projectile             = Value(944)
    final val vulture_bomb_projectile                   = Value(988)
    final val vulture_nose_bullet_projectile            = Value(989)
    final val vulture_tail_bullet_projectile            = Value(991)
    final val wasp_gun_projectile                       = Value(999)
    final val wasp_rocket_projectile                    = Value(1001)
    final val winchester_projectile                     = Value(1005)
  }
}
