From 001fbf78b5bd5aa95604e53f19831392a22670b2 Mon Sep 17 00:00:00 2001 From: "(Jip) Willem Wijnia" Date: Fri, 21 Jun 2024 20:21:55 +0200 Subject: [PATCH] Revert "Move classes of UEF projectiles to separate files (#5658)" This reverts commit 81328f0cd6d07191edf71de3902e646cf0390b10. --- .../uef/TAAGinsuRapidPulseBeamProjectile.lua | 34 - .../uef/TAALightFragmentationProjectile.lua | 35 - .../uef/TAntiNukeInterceptorProjectile.lua | 35 - .../uef/TArtilleryAntiMatterProjectile.lua | 36 - .../uef/TArtilleryAntiMatterProjectile02.lua | 33 - .../TArtilleryAntiMatterSmallProjectile.lua | 31 - .../projectiles/uef/TArtilleryProjectile.lua | 34 - .../uef/TArtilleryProjectilePolytrail.lua | 32 - .../projectiles/uef/TCannonSeaProjectile.lua | 29 - .../projectiles/uef/TCannonTankProjectile.lua | 29 - .../uef/TDFBigLandGaussCannonProjectile.lua | 33 - .../uef/TDFBigShipGaussCannonProjectile.lua | 42 -- .../uef/TDFGaussCannonProjectile.lua | 34 - .../uef/TDFGeneralGaussCannonProjectile.lua | 32 - .../TDFMediumLandGaussCannonProjectile.lua | 33 - .../TDFMediumShipGaussCannonProjectile.lua | 33 - .../uef/TDepthChargeProjectile.lua | 53 -- .../uef/TFragmentationGrenadeProjectile.lua | 34 - .../uef/THeavyPlasmaCannonProjectile.lua | 37 - .../uef/TIFMissileNukeProjectile.lua | 29 - .../TIFSmallYieldNuclearBombProjectile.lua | 37 - .../uef/TIFTacticalNukeProjectile.lua | 25 - .../projectiles/uef/TLaserBotProjectile.lua | 36 - lua/sim/projectiles/uef/TLaserProjectile.lua | 33 - .../projectiles/uef/TMachineGunProjectile.lua | 42 -- .../projectiles/uef/TMissileAAProjectile.lua | 40 -- .../uef/TMissileCruiseProjectile.lua | 36 - .../uef/TMissileCruiseProjectile02.lua | 36 - .../projectiles/uef/TMissileProjectile.lua | 101 --- lua/terranprojectiles.lua | 660 ++++++++++++++++-- 30 files changed, 616 insertions(+), 1118 deletions(-) delete mode 100644 lua/sim/projectiles/uef/TAAGinsuRapidPulseBeamProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TAALightFragmentationProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TAntiNukeInterceptorProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TArtilleryAntiMatterProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TArtilleryAntiMatterProjectile02.lua delete mode 100644 lua/sim/projectiles/uef/TArtilleryAntiMatterSmallProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TArtilleryProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TArtilleryProjectilePolytrail.lua delete mode 100644 lua/sim/projectiles/uef/TCannonSeaProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TCannonTankProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TDFBigLandGaussCannonProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TDFBigShipGaussCannonProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TDFGaussCannonProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TDFGeneralGaussCannonProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TDFMediumLandGaussCannonProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TDFMediumShipGaussCannonProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TDepthChargeProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TFragmentationGrenadeProjectile.lua delete mode 100644 lua/sim/projectiles/uef/THeavyPlasmaCannonProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TIFMissileNukeProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TIFSmallYieldNuclearBombProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TIFTacticalNukeProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TLaserBotProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TLaserProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TMachineGunProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TMissileAAProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TMissileCruiseProjectile.lua delete mode 100644 lua/sim/projectiles/uef/TMissileCruiseProjectile02.lua delete mode 100644 lua/sim/projectiles/uef/TMissileProjectile.lua diff --git a/lua/sim/projectiles/uef/TAAGinsuRapidPulseBeamProjectile.lua b/lua/sim/projectiles/uef/TAAGinsuRapidPulseBeamProjectile.lua deleted file mode 100644 index b99d192d93..0000000000 --- a/lua/sim/projectiles/uef/TAAGinsuRapidPulseBeamProjectile.lua +++ /dev/null @@ -1,34 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local SingleBeamProjectile = import("/lua/sim/defaultprojectiles.lua").SingleBeamProjectile - ---- UEF GINSU RAPID PULSE BEAM PROJECTILE ----@class TAAGinsuRapidPulseBeamProjectile : SingleBeamProjectile -TAAGinsuRapidPulseBeamProjectile = ClassProjectile(SingleBeamProjectile) { - BeamName = '/effects/emitters/laserturret_munition_beam_03_emit.bp', - FxImpactUnit = EffectTemplate.TAAGinsuHitUnit, - FxImpactProp = EffectTemplate.TAAGinsuHitUnit, - FxImpactAirUnit = EffectTemplate.TAAGinsuHitUnit, - FxImpactLand = EffectTemplate.TAAGinsuHitLand, -} diff --git a/lua/sim/projectiles/uef/TAALightFragmentationProjectile.lua b/lua/sim/projectiles/uef/TAALightFragmentationProjectile.lua deleted file mode 100644 index f91775a8fb..0000000000 --- a/lua/sim/projectiles/uef/TAALightFragmentationProjectile.lua +++ /dev/null @@ -1,35 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local SingleCompositeEmitterProjectile = import("/lua/sim/defaultprojectiles.lua").SingleCompositeEmitterProjectile - ---- TERRAN AA PROJECTILES ----@class TAALightFragmentationProjectile : SingleCompositeEmitterProjectile -TAALightFragmentationProjectile = ClassProjectile(SingleCompositeEmitterProjectile) { - BeamName = '/effects/emitters/antiair_munition_beam_01_emit.bp', - PolyTrail = '/effects/emitters/default_polytrail_01_emit.bp', - PolyTrailOffset = 0, - FxTrails = { '/effects/emitters/terran_flack_fxtrail_01_emit.bp' }, - FxImpactAirUnit = EffectTemplate.TFragmentationShell01, - FxImpactNone = EffectTemplate.TFragmentationShell01, -} diff --git a/lua/sim/projectiles/uef/TAntiNukeInterceptorProjectile.lua b/lua/sim/projectiles/uef/TAntiNukeInterceptorProjectile.lua deleted file mode 100644 index 32e2a67404..0000000000 --- a/lua/sim/projectiles/uef/TAntiNukeInterceptorProjectile.lua +++ /dev/null @@ -1,35 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local SingleBeamProjectile = import("/lua/sim/defaultprojectiles.lua").SingleBeamProjectile - ----@class TAntiNukeInterceptorProjectile : SingleBeamProjectile -TAntiNukeInterceptorProjectile = ClassProjectile(SingleBeamProjectile) { - BeamName = '/effects/emitters/missile_exhaust_fire_beam_02_emit.bp', - FxTrails = EffectTemplate.TMissileExhaust03, - FxImpactUnit = EffectTemplate.TMissileHit01, - FxImpactProp = EffectTemplate.TMissileHit01, - FxImpactLand = EffectTemplate.TMissileHit01, - FxImpactProjectile = EffectTemplate.TMissileHit01, - FxProjectileHitScale = 5, -} diff --git a/lua/sim/projectiles/uef/TArtilleryAntiMatterProjectile.lua b/lua/sim/projectiles/uef/TArtilleryAntiMatterProjectile.lua deleted file mode 100644 index 513b4f430a..0000000000 --- a/lua/sim/projectiles/uef/TArtilleryAntiMatterProjectile.lua +++ /dev/null @@ -1,36 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local SinglePolyTrailProjectile = import("/lua/sim/defaultprojectiles.lua").SinglePolyTrailProjectile - ---- TERRAN ANTIMATTER ARTILLERY PROJECTILES ----@class TArtilleryAntiMatterProjectile : SinglePolyTrailProjectile -TArtilleryAntiMatterProjectile = ClassProjectile(SinglePolyTrailProjectile) { - FxImpactTrajectoryAligned = false, - PolyTrail = '/effects/emitters/antimatter_polytrail_01_emit.bp', - PolyTrailOffset = 0, - FxImpactUnit = EffectTemplate.TAntiMatterShellHit01, - FxImpactProp = EffectTemplate.TAntiMatterShellHit01, - FxImpactLand = EffectTemplate.TAntiMatterShellHit01, - FxLandHitScale = 1, -} diff --git a/lua/sim/projectiles/uef/TArtilleryAntiMatterProjectile02.lua b/lua/sim/projectiles/uef/TArtilleryAntiMatterProjectile02.lua deleted file mode 100644 index 6e4f292c03..0000000000 --- a/lua/sim/projectiles/uef/TArtilleryAntiMatterProjectile02.lua +++ /dev/null @@ -1,33 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local TArtilleryAntiMatterProjectile = import("/lua/sim/projectiles/uef/TArtilleryAntiMatterProjectile.lua").TArtilleryAntiMatterProjectile - ---- TERRAN ANTIMATTER ARTILLERY PROJECTILES ----@class TArtilleryAntiMatterProjectile02 : TArtilleryAntiMatterProjectile -TArtilleryAntiMatterProjectile02 = ClassProjectile(TArtilleryAntiMatterProjectile) { - PolyTrail = '/effects/emitters/default_polytrail_07_emit.bp', - FxImpactUnit = EffectTemplate.TAntiMatterShellHit02, - FxImpactProp = EffectTemplate.TAntiMatterShellHit02, - FxImpactLand = EffectTemplate.TAntiMatterShellHit02, -} diff --git a/lua/sim/projectiles/uef/TArtilleryAntiMatterSmallProjectile.lua b/lua/sim/projectiles/uef/TArtilleryAntiMatterSmallProjectile.lua deleted file mode 100644 index 018f942b03..0000000000 --- a/lua/sim/projectiles/uef/TArtilleryAntiMatterSmallProjectile.lua +++ /dev/null @@ -1,31 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local TArtilleryAntiMatterProjectile02 = import("/lua/sim/projectiles/uef/TArtilleryAntiMatterProjectile02.lua").TArtilleryAntiMatterProjectile02 - ---- TERRAN ANTIMATTER ARTILLERY PROJECTILES ----@class TArtilleryAntiMatterSmallProjectile : TArtilleryAntiMatterProjectile02 -TArtilleryAntiMatterSmallProjectile = ClassProjectile(TArtilleryAntiMatterProjectile02) { - FxLandHitScale = 0.5, - FxUnitHitScale = 0.5, - FxSplatScale = 6, -} diff --git a/lua/sim/projectiles/uef/TArtilleryProjectile.lua b/lua/sim/projectiles/uef/TArtilleryProjectile.lua deleted file mode 100644 index 615c18a93b..0000000000 --- a/lua/sim/projectiles/uef/TArtilleryProjectile.lua +++ /dev/null @@ -1,34 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local EmitterProjectile = import("/lua/sim/defaultprojectiles.lua").EmitterProjectile - ---- TERRAN ARTILLERY PROJECTILES ----@class TArtilleryProjectile : EmitterProjectile -TArtilleryProjectile = ClassProjectile(EmitterProjectile) { - FxImpactTrajectoryAligned = false, - FxTrails = { '/effects/emitters/mortar_munition_01_emit.bp', }, - FxImpactUnit = EffectTemplate.TPlasmaCannonHeavyHitUnit01, - FxImpactProp = EffectTemplate.TPlasmaCannonHeavyHitUnit01, - FxImpactLand = EffectTemplate.TPlasmaCannonHeavyHit01, -} diff --git a/lua/sim/projectiles/uef/TArtilleryProjectilePolytrail.lua b/lua/sim/projectiles/uef/TArtilleryProjectilePolytrail.lua deleted file mode 100644 index 2929c45b8c..0000000000 --- a/lua/sim/projectiles/uef/TArtilleryProjectilePolytrail.lua +++ /dev/null @@ -1,32 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local SinglePolyTrailProjectile = import("/lua/sim/defaultprojectiles.lua").SinglePolyTrailProjectile - ---- TERRAN ARTILLERY PROJECTILES ----@class TArtilleryProjectilePolytrail : SinglePolyTrailProjectile -TArtilleryProjectilePolytrail = ClassProjectile(SinglePolyTrailProjectile) { - FxImpactUnit = EffectTemplate.TPlasmaCannonHeavyHitUnit01, - FxImpactProp = EffectTemplate.TPlasmaCannonHeavyHitUnit01, - FxImpactLand = EffectTemplate.TPlasmaCannonHeavyHit01, -} diff --git a/lua/sim/projectiles/uef/TCannonSeaProjectile.lua b/lua/sim/projectiles/uef/TCannonSeaProjectile.lua deleted file mode 100644 index 782d71e62e..0000000000 --- a/lua/sim/projectiles/uef/TCannonSeaProjectile.lua +++ /dev/null @@ -1,29 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local SingleBeamProjectile = import("/lua/sim/defaultprojectiles.lua").SingleBeamProjectile - ---- TERRAN SHIP CANNON PROJECTILES ----@class TCannonSeaProjectile : SingleBeamProjectile -TCannonSeaProjectile = ClassProjectile(SingleBeamProjectile) { - BeamName = '/effects/emitters/cannon_munition_ship_beam_01_emit.bp', -} diff --git a/lua/sim/projectiles/uef/TCannonTankProjectile.lua b/lua/sim/projectiles/uef/TCannonTankProjectile.lua deleted file mode 100644 index 111c414404..0000000000 --- a/lua/sim/projectiles/uef/TCannonTankProjectile.lua +++ /dev/null @@ -1,29 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local SingleBeamProjectile = import("/lua/sim/defaultprojectiles.lua").SingleBeamProjectile - ---- TERRAN TANK CANNON PROJECTILES ----@class TCannonTankProjectile : SingleBeamProjectile -TCannonTankProjectile = ClassProjectile(SingleBeamProjectile) { - BeamName = '/effects/emitters/cannon_munition_tank_beam_01_emit.bp', -} diff --git a/lua/sim/projectiles/uef/TDFBigLandGaussCannonProjectile.lua b/lua/sim/projectiles/uef/TDFBigLandGaussCannonProjectile.lua deleted file mode 100644 index b52ddf6d53..0000000000 --- a/lua/sim/projectiles/uef/TDFBigLandGaussCannonProjectile.lua +++ /dev/null @@ -1,33 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local TDFGeneralGaussCannonProjectile = import("/lua/sim/projectiles/uef/TDFGeneralGaussCannonProjectile.lua").TDFGeneralGaussCannonProjectile - ---- Fatboy ----@class TDFBigLandGaussCannonProjectile : TDFGeneralGaussCannonProjectile -TDFBigLandGaussCannonProjectile = ClassProjectile(TDFGeneralGaussCannonProjectile) { - FxImpactTrajectoryAligned = false, - FxImpactUnit = EffectTemplate.TBigLandGaussCannonHitUnit01, - FxImpactProp = EffectTemplate.TBigLandGaussCannonHit01, - FxImpactLand = EffectTemplate.TBigLandGaussCannonHit01, -} diff --git a/lua/sim/projectiles/uef/TDFBigShipGaussCannonProjectile.lua b/lua/sim/projectiles/uef/TDFBigShipGaussCannonProjectile.lua deleted file mode 100644 index 73182087d7..0000000000 --- a/lua/sim/projectiles/uef/TDFBigShipGaussCannonProjectile.lua +++ /dev/null @@ -1,42 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local TDFGeneralGaussCannonProjectile = import("/lua/sim/projectiles/uef/TDFGeneralGaussCannonProjectile.lua").TDFGeneralGaussCannonProjectile -local TDFGeneralGaussCannonProjectileOnImpact = TDFGeneralGaussCannonProjectile.OnImpact - ---- UES0302 (UEF Battleship) ----@class TDFBigShipGaussCannonProjectile : TDFGeneralGaussCannonProjectile -TDFBigShipGaussCannonProjectile = ClassProjectile(TDFGeneralGaussCannonProjectile) { - FxImpactTrajectoryAligned = false, - FxImpactUnit = EffectTemplate.TShipGaussCannonHitUnit01, - FxImpactProp = EffectTemplate.TShipGaussCannonHit01, - FxImpactLand = EffectTemplate.TShipGaussCannonHit01, - - ---@param self TDFBigShipGaussCannonProjectile - ---@param targetType string - ---@param targetEntity Unit | Prop - OnImpact = function(self, targetType, targetEntity) - TDFGeneralGaussCannonProjectileOnImpact(self, targetType, targetEntity) - self:ShakeCamera(20, 1, 0, 1) - end, -} \ No newline at end of file diff --git a/lua/sim/projectiles/uef/TDFGaussCannonProjectile.lua b/lua/sim/projectiles/uef/TDFGaussCannonProjectile.lua deleted file mode 100644 index bac77faee7..0000000000 --- a/lua/sim/projectiles/uef/TDFGaussCannonProjectile.lua +++ /dev/null @@ -1,34 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local TDFGeneralGaussCannonProjectile = import("/lua/sim/projectiles/uef/TDFGeneralGaussCannonProjectile.lua").TDFGeneralGaussCannonProjectile - ---- (UEB2301) UEF Triad and (UES0103) UEF Frigate and (UES0202) UEF Cruiser and (UEl0201) UEF Striker and (UEL0202) UEF Pillar ----@class TDFGaussCannonProjectile : TDFGeneralGaussCannonProjectile -TDFGaussCannonProjectile = ClassProjectile(TDFGeneralGaussCannonProjectile) { - FxImpactUnit = EffectTemplate.TGaussCannonHitUnit01, - FxImpactProp = EffectTemplate.TGaussCannonHitUnit01, - FxImpactLand = EffectTemplate.TGaussCannonHitLand01, - FxImpactWater = EffectTemplate.TGaussWaterSplash01, - FxWaterHitScale = 0.75, -} diff --git a/lua/sim/projectiles/uef/TDFGeneralGaussCannonProjectile.lua b/lua/sim/projectiles/uef/TDFGeneralGaussCannonProjectile.lua deleted file mode 100644 index 1e77b630d4..0000000000 --- a/lua/sim/projectiles/uef/TDFGeneralGaussCannonProjectile.lua +++ /dev/null @@ -1,32 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local MultiPolyTrailProjectile = import("/lua/sim/defaultprojectiles.lua").MultiPolyTrailProjectile - ---- TERRAN GAUSS CANNON PROJECTILES ----@class TDFGeneralGaussCannonProjectile : MultiPolyTrailProjectile -TDFGeneralGaussCannonProjectile = ClassProjectile(MultiPolyTrailProjectile) { - PolyTrails = EffectTemplate.TGaussCannonPolyTrail, - PolyTrailOffset = { 0, 0 }, - FxTrailOffset = 0, -} diff --git a/lua/sim/projectiles/uef/TDFMediumLandGaussCannonProjectile.lua b/lua/sim/projectiles/uef/TDFMediumLandGaussCannonProjectile.lua deleted file mode 100644 index 687bd13296..0000000000 --- a/lua/sim/projectiles/uef/TDFMediumLandGaussCannonProjectile.lua +++ /dev/null @@ -1,33 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local TDFGeneralGaussCannonProjectile = import("/lua/sim/projectiles/uef/TDFGeneralGaussCannonProjectile.lua").TDFGeneralGaussCannonProjectile - ---- Triad (T2 PD) ----@class TDFMediumLandGaussCannonProjectile : TDFGeneralGaussCannonProjectile -TDFMediumLandGaussCannonProjectile = ClassProjectile(TDFGeneralGaussCannonProjectile) { - FxImpactTrajectoryAligned = false, - FxImpactUnit = EffectTemplate.TMediumLandGaussCannonHitUnit01, - FxImpactProp = EffectTemplate.TMediumLandGaussCannonHit01, - FxImpactLand = EffectTemplate.TMediumLandGaussCannonHit01, -} diff --git a/lua/sim/projectiles/uef/TDFMediumShipGaussCannonProjectile.lua b/lua/sim/projectiles/uef/TDFMediumShipGaussCannonProjectile.lua deleted file mode 100644 index 7ff021d7b7..0000000000 --- a/lua/sim/projectiles/uef/TDFMediumShipGaussCannonProjectile.lua +++ /dev/null @@ -1,33 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local TDFGeneralGaussCannonProjectile = import("/lua/sim/projectiles/uef/TDFGeneralGaussCannonProjectile.lua").TDFGeneralGaussCannonProjectile - ---- (UES0201) UEF Destroyer ----@class TDFMediumShipGaussCannonProjectile : TDFGeneralGaussCannonProjectile -TDFMediumShipGaussCannonProjectile = ClassProjectile(TDFGeneralGaussCannonProjectile) { - FxImpactTrajectoryAligned = false, - FxImpactUnit = EffectTemplate.TMediumShipGaussCannonHitUnit01, - FxImpactProp = EffectTemplate.TMediumShipGaussCannonHit01, - FxImpactLand = EffectTemplate.TMediumShipGaussCannonHit01, -} diff --git a/lua/sim/projectiles/uef/TDepthChargeProjectile.lua b/lua/sim/projectiles/uef/TDepthChargeProjectile.lua deleted file mode 100644 index a1b8ee0f76..0000000000 --- a/lua/sim/projectiles/uef/TDepthChargeProjectile.lua +++ /dev/null @@ -1,53 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local OnWaterEntryEmitterProjectile = import("/lua/sim/defaultprojectiles.lua").OnWaterEntryEmitterProjectile -local OnWaterEntryEmitterProjectileOnCreate = OnWaterEntryEmitterProjectile.OnCreate -local OnWaterEntryEmitterProjectileOnEnterWater = OnWaterEntryEmitterProjectile.OnEnterWater - ---- TERRAN DEPTH CHARGE PROJECTILES ----@class TDepthChargeProjectile : OnWaterEntryEmitterProjectile -TDepthChargeProjectile = ClassProjectile(OnWaterEntryEmitterProjectile) { - FxTrails = { '/effects/emitters/torpedo_underwater_wake_01_emit.bp', }, - TrailDelay = 0, - FxUnitHitScale = 1.25, - FxImpactUnit = EffectTemplate.TTorpedoHitUnit01, - FxImpactProp = EffectTemplate.TTorpedoHitUnit01, - FxImpactUnderWater = EffectTemplate.TTorpedoHitUnit01, - FxImpactProjectile = EffectTemplate.TTorpedoHitUnit01, - FxEnterWater = EffectTemplate.WaterSplash01, - - ---@param self TDepthChargeProjectile - ---@param inWater? boolean - OnCreate = function(self, inWater) - OnWaterEntryEmitterProjectileOnCreate(self) - self:TrackTarget(false) - end, - - ---@param self TDepthChargeProjectile - OnEnterWater = function(self) - OnWaterEntryEmitterProjectileOnEnterWater(self) - self:TrackTarget(false) - self:StayUnderwater(true) - end, -} diff --git a/lua/sim/projectiles/uef/TFragmentationGrenadeProjectile.lua b/lua/sim/projectiles/uef/TFragmentationGrenadeProjectile.lua deleted file mode 100644 index aa8c275f93..0000000000 --- a/lua/sim/projectiles/uef/TFragmentationGrenadeProjectile.lua +++ /dev/null @@ -1,34 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local EmitterProjectile = import("/lua/sim/defaultprojectiles.lua").EmitterProjectile - ----@class TFragmentationGrenade : EmitterProjectile -TFragmentationGrenade = ClassProjectile(EmitterProjectile) { - FxImpactUnit = EffectTemplate.THeavyFragmentationGrenadeUnitHit, - FxImpactLand = EffectTemplate.THeavyFragmentationGrenadeHit, - FxImpactWater = EffectTemplate.THeavyFragmentationGrenadeHit, - FxImpactNone = EffectTemplate.THeavyFragmentationGrenadeHit, - FxImpactProp = EffectTemplate.THeavyFragmentationGrenadeUnitHit, - FxTrails = EffectTemplate.THeavyFragmentationGrenadeFxTrails, -} diff --git a/lua/sim/projectiles/uef/THeavyPlasmaCannonProjectile.lua b/lua/sim/projectiles/uef/THeavyPlasmaCannonProjectile.lua deleted file mode 100644 index 1b7b928f25..0000000000 --- a/lua/sim/projectiles/uef/THeavyPlasmaCannonProjectile.lua +++ /dev/null @@ -1,37 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local MultiPolyTrailProjectile = import("/lua/sim/defaultprojectiles.lua").MultiPolyTrailProjectile - ---- TERRAN HEAVY PLASMA CANNON PROJECTILES ---- SACU, titan, T3 gunship and T3 transport ----@class THeavyPlasmaCannonProjectile : MultiPolyTrailProjectile -THeavyPlasmaCannonProjectile = ClassProjectile(MultiPolyTrailProjectile) { - FxTrails = EffectTemplate.TPlasmaCannonHeavyMunition, - RandomPolyTrails = 1, - PolyTrailOffset = { 0, 0, 0 }, - PolyTrails = EffectTemplate.TPlasmaCannonHeavyPolyTrails, - FxImpactUnit = EffectTemplate.TPlasmaCannonHeavyHitUnit01, - FxImpactProp = EffectTemplate.TPlasmaCannonHeavyHitUnit01, - FxImpactLand = EffectTemplate.TPlasmaCannonHeavyHit01, -} diff --git a/lua/sim/projectiles/uef/TIFMissileNukeProjectile.lua b/lua/sim/projectiles/uef/TIFMissileNukeProjectile.lua deleted file mode 100644 index 931ed5827c..0000000000 --- a/lua/sim/projectiles/uef/TIFMissileNukeProjectile.lua +++ /dev/null @@ -1,29 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local SingleBeamProjectile = import("/lua/sim/defaultprojectiles.lua").SingleBeamProjectile -local NukeProjectile = import("/lua/sim/defaultprojectiles.lua").NukeProjectile - ----@class TIFMissileNuke : NukeProjectile, SingleBeamProjectile -TIFMissileNuke = ClassProjectile(NukeProjectile, SingleBeamProjectile) { - BeamName = '/effects/emitters/missile_exhaust_fire_beam_01_emit.bp', -} diff --git a/lua/sim/projectiles/uef/TIFSmallYieldNuclearBombProjectile.lua b/lua/sim/projectiles/uef/TIFSmallYieldNuclearBombProjectile.lua deleted file mode 100644 index 5a4e627350..0000000000 --- a/lua/sim/projectiles/uef/TIFSmallYieldNuclearBombProjectile.lua +++ /dev/null @@ -1,37 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local EmitterProjectile = import("/lua/sim/defaultprojectiles.lua").EmitterProjectile - ---- UEF SMALL YIELD NUCLEAR BOMB ---- strategic bomber ----@class TIFSmallYieldNuclearBombProjectile : EmitterProjectile -TIFSmallYieldNuclearBombProjectile = ClassProjectile(EmitterProjectile) { - FxImpactTrajectoryAligned = false, - PolyTrail = '/effects/emitters/antimatter_polytrail_01_emit.bp', - PolyTrailOffset = 0, - FxImpactUnit = EffectTemplate.TAntiMatterShellHit01, - FxImpactProp = EffectTemplate.TAntiMatterShellHit01, - FxImpactLand = EffectTemplate.TAntiMatterShellHit01, - FxLandHitScale = 1, -} diff --git a/lua/sim/projectiles/uef/TIFTacticalNukeProjectile.lua b/lua/sim/projectiles/uef/TIFTacticalNukeProjectile.lua deleted file mode 100644 index 95edf0864f..0000000000 --- a/lua/sim/projectiles/uef/TIFTacticalNukeProjectile.lua +++ /dev/null @@ -1,25 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EmitterProjectile = import("/lua/sim/defaultprojectiles.lua").EmitterProjectile - -TIFTacticalNuke = ClassProjectile(EmitterProjectile) {} diff --git a/lua/sim/projectiles/uef/TLaserBotProjectile.lua b/lua/sim/projectiles/uef/TLaserBotProjectile.lua deleted file mode 100644 index edfb5a1ffb..0000000000 --- a/lua/sim/projectiles/uef/TLaserBotProjectile.lua +++ /dev/null @@ -1,36 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local MultiPolyTrailProjectile = import("/lua/sim/defaultprojectiles.lua").MultiPolyTrailProjectile - ---- TERRAN BOT LASER PROJECTILES ---- ACU ----@class TLaserBotProjectile : MultiPolyTrailProjectile -TLaserBotProjectile = ClassProjectile(MultiPolyTrailProjectile) { - PolyTrails = EffectTemplate.TLaserPolytrail01, - PolyTrailOffset = { 0, 0, 0 }, - FxTrails = EffectTemplate.TLaserFxtrail01, - FxImpactUnit = EffectTemplate.TLaserHitUnit02, - FxImpactProp = EffectTemplate.TLaserHitUnit02, - FxImpactLand = EffectTemplate.TLaserHitLand02, -} diff --git a/lua/sim/projectiles/uef/TLaserProjectile.lua b/lua/sim/projectiles/uef/TLaserProjectile.lua deleted file mode 100644 index 42ad71fe1f..0000000000 --- a/lua/sim/projectiles/uef/TLaserProjectile.lua +++ /dev/null @@ -1,33 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local SingleBeamProjectile = import("/lua/sim/defaultprojectiles.lua").SingleBeamProjectile - ---- TERRAN LASER PROJECTILES ----@class TLaserProjectile : SingleBeamProjectile -TLaserProjectile = ClassProjectile(SingleBeamProjectile) { - BeamName = '/effects/emitters/laserturret_munition_beam_02_emit.bp', - FxImpactUnit = EffectTemplate.TLaserHitUnit01, - FxImpactProp = EffectTemplate.TLaserHitUnit01, - FxImpactLand = EffectTemplate.TLaserHitLand01, -} diff --git a/lua/sim/projectiles/uef/TMachineGunProjectile.lua b/lua/sim/projectiles/uef/TMachineGunProjectile.lua deleted file mode 100644 index bce54fdfca..0000000000 --- a/lua/sim/projectiles/uef/TMachineGunProjectile.lua +++ /dev/null @@ -1,42 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local SinglePolyTrailProjectile = import("/lua/sim/defaultprojectiles.lua").SinglePolyTrailProjectile - ---- TERRAN MACHINE GUN SHELLS ----@class TMachineGunProjectile : SinglePolyTrailProjectile -TMachineGunProjectile = ClassProjectile(SinglePolyTrailProjectile) { - PolyTrail = EffectTemplate.TMachineGunPolyTrail, - FxImpactUnit = { - '/effects/emitters/gauss_cannon_muzzle_flash_01_emit.bp', - '/effects/emitters/flash_05_emit.bp', - }, - FxImpactProp = { - '/effects/emitters/gauss_cannon_muzzle_flash_01_emit.bp', - '/effects/emitters/flash_05_emit.bp', - }, - FxImpactLand = { - '/effects/emitters/gauss_cannon_muzzle_flash_01_emit.bp', - '/effects/emitters/flash_05_flat_emit.bp', - }, -} diff --git a/lua/sim/projectiles/uef/TMissileAAProjectile.lua b/lua/sim/projectiles/uef/TMissileAAProjectile.lua deleted file mode 100644 index 41e7dde65f..0000000000 --- a/lua/sim/projectiles/uef/TMissileAAProjectile.lua +++ /dev/null @@ -1,40 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local EmitterProjectile = import("/lua/sim/defaultprojectiles.lua").EmitterProjectile - ---- TERRAN AA MISSILE PROJECTILES - Air Targets ----@class TMissileAAProjectile : EmitterProjectile -TMissileAAProjectile = ClassProjectile(EmitterProjectile) { - TrailDelay = 1, - FxTrails = { '/effects/emitters/missile_sam_munition_trail_01_emit.bp', }, - FxTrailOffset = -0.5, - FxAirUnitHitScale = 0.4, - FxLandHitScale = 0.4, - FxUnitHitScale = 0.4, - FxPropHitScale = 0.4, - FxImpactUnit = EffectTemplate.TMissileHit02, - FxImpactAirUnit = EffectTemplate.TMissileHit02, - FxImpactProp = EffectTemplate.TMissileHit02, - FxImpactLand = EffectTemplate.TMissileHit02, -} diff --git a/lua/sim/projectiles/uef/TMissileCruiseProjectile.lua b/lua/sim/projectiles/uef/TMissileCruiseProjectile.lua deleted file mode 100644 index 4dec2d6583..0000000000 --- a/lua/sim/projectiles/uef/TMissileCruiseProjectile.lua +++ /dev/null @@ -1,36 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local TMissileProjectile = import("/lua/sim/projectiles/uef/TMissileProjectile.lua").TMissileProjectile - ---- TERRAN CRUISE MISSILE PROJECTILES - Surface Targets ----@class TMissileCruiseProjectile : TMissileProjectile -TMissileCruiseProjectile = ClassProjectile(TMissileProjectile) { - DestroyOnImpact = false, - FxTrails = EffectTemplate.TMissileExhaust02, - FxTrailOffset = -1, - BeamName = '/effects/emitters/missile_munition_exhaust_beam_01_emit.bp', - FxImpactUnit = EffectTemplate.TMissileHit01, - FxImpactLand = EffectTemplate.TMissileHit01, - FxImpactProp = EffectTemplate.TMissileHit01, -} diff --git a/lua/sim/projectiles/uef/TMissileCruiseProjectile02.lua b/lua/sim/projectiles/uef/TMissileCruiseProjectile02.lua deleted file mode 100644 index e52b4aeb6a..0000000000 --- a/lua/sim/projectiles/uef/TMissileCruiseProjectile02.lua +++ /dev/null @@ -1,36 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local TMissileProjectile = import("/lua/sim/projectiles/uef/TMissileProjectile.lua").TMissileProjectile - ----@class TMissileCruiseProjectile02 : TMissileProjectile -TMissileCruiseProjectile02 = ClassProjectile(TMissileProjectile) { - FxImpactTrajectoryAligned = false, - DestroyOnImpact = false, - FxTrails = EffectTemplate.TMissileExhaust02, - FxTrailOffset = -1, - BeamName = '/effects/emitters/missile_munition_exhaust_beam_01_emit.bp', - FxImpactUnit = EffectTemplate.TShipGaussCannonHitUnit02, - FxImpactProp = EffectTemplate.TShipGaussCannonHit02, - FxImpactLand = EffectTemplate.TShipGaussCannonHit02, -} diff --git a/lua/sim/projectiles/uef/TMissileProjectile.lua b/lua/sim/projectiles/uef/TMissileProjectile.lua deleted file mode 100644 index d17b2bc7a0..0000000000 --- a/lua/sim/projectiles/uef/TMissileProjectile.lua +++ /dev/null @@ -1,101 +0,0 @@ ---********************************************************************************** ---** Copyright (c) 2023 FAForever ---** ---** Permission is hereby granted, free of charge, to any person obtaining a copy ---** of this software and associated documentation files (the "Software"), to deal ---** in the Software without restriction, including without limitation the rights ---** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ---** copies of the Software, and to permit persons to whom the Software is ---** furnished to do so, subject to the following conditions: ---** ---** The above copyright notice and this permission notice shall be included in all ---** copies or substantial portions of the Software. ---** ---** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ---** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ---** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ---** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ---** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ---** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ---** SOFTWARE. ---********************************************************************************** - -local EffectTemplate = import("/lua/effecttemplates.lua") -local DebrisComponent = import('/lua/sim/projectiles/components/DebrisComponent.lua').DebrisComponent -local TacticalMissileComponent = import('/lua/sim/defaultprojectiles.lua').TacticalMissileComponent - -local SingleBeamProjectile = import("/lua/sim/defaultprojectiles.lua").SingleBeamProjectile -local SingleBeamProjectileOnCreate = SingleBeamProjectile.OnCreate -local SingleBeamProjectileOnKilled = SingleBeamProjectile.OnKilled -local SingleBeamProjectileOnImpact = SingleBeamProjectile.OnImpact - -local CreateLightParticle = CreateLightParticle - ---- TERRAN MISSILE PROJECTILES - General Purpose ----@class TMissileProjectile : SingleBeamProjectile, TacticalMissileComponent, DebrisComponent -TMissileProjectile = ClassProjectile(SingleBeamProjectile, TacticalMissileComponent, DebrisComponent) { - DestroyOnImpact = false, - FxTrails = EffectTemplate.TMissileExhaust02, - FxTrailOffset = -1, - BeamName = '/effects/emitters/missile_munition_exhaust_beam_01_emit.bp', - FxImpactUnit = EffectTemplate.TMissileHit01, - FxImpactLand = EffectTemplate.TMissileHit01, - FxImpactProp = EffectTemplate.TMissileHit01, - - FxOnKilled = EffectTemplate.TMissileKilled01, - FxOnKilledScale = 0.7, - - FxImpactNone = EffectTemplate.TMissileKilled01, - FxNoneHitScale = 0.7, - - LaunchTicks = 12, - LaunchTicksRange = 2, - - LaunchTurnRate = 6, - LaunchTurnRateRange = 2, - - HeightDistanceFactor = 5.5, - HeightDistanceFactorRange = 0.5, - - MinHeight = 10, - MinHeightRange = 1, - - FinalBoostAngle = 50, - FinalBoostAngleRange = 5, - - DebrisBlueprints = { - '/effects/Entities/TacticalDebris01/TacticalDebris01_proj.bp', - '/effects/Entities/TacticalDebris01/TacticalDebris01_proj.bp', - '/effects/Entities/TacticalDebris02/TacticalDebris02_proj.bp', - }, - - OnCreate = function(self) - SingleBeamProjectileOnCreate(self) - local blueprintPhysics = self.Blueprint.Physics - local radius = 0.105 * (blueprintPhysics.MaxSpeed + blueprintPhysics.MaxSpeedRange) - self:SetCollisionShape('Sphere', 0, 0, 0, radius) - end, - - ---@param self TMissileProjectile - ---@param instigator Unit - ---@param type string - ---@param overkillRatio number - OnKilled = function(self, instigator, type, overkillRatio) - SingleBeamProjectileOnKilled(self, instigator, type, overkillRatio) - - self:CreateDebris() - CreateLightParticle(self, -1, self.Army, 3, 6, 'flare_lens_add_02', 'ramp_fire_13') - end, - - ---@param self TMissileProjectile - ---@param targetType string - ---@param targetEntity Prop|Unit - OnImpact = function(self, targetType, targetEntity) - SingleBeamProjectileOnImpact(self, targetType, targetEntity) - if targetType == 'None' or targetType == 'Air' then - self:CreateDebris() - end - - CreateLightParticle(self, -1, self.Army, 4, 4, 'flare_lens_add_02', 'ramp_fire_13') - end, -} diff --git a/lua/terranprojectiles.lua b/lua/terranprojectiles.lua index fcef372b5f..b9b7eda53d 100644 --- a/lua/terranprojectiles.lua +++ b/lua/terranprojectiles.lua @@ -3,51 +3,623 @@ -- Author(s): John Comes, Gordon Duclos, Matt Vainio -- Copyright © 2005 Gas Powered Games, Inc. All rights reserved. ------------------------------------------------------------ -TFragmentationGrenade = import("/lua/sim/projectiles/uef/TFragmentationGrenadeProjectile.lua").TFragmentationGrenade -TIFMissileNuke = import("/lua/sim/projectiles/uef/TIFMissileNukeProjectile.lua").TIFMissileNuke -TIFTacticalNuke = import("/lua/sim/projectiles/uef/TIFTacticalNukeProjectile.lua").TIFTacticalNuke -TAAGinsuRapidPulseBeamProjectile = import("/lua/sim/projectiles/uef/TAAGinsuRapidPulseBeamProjectile.lua").TAAGinsuRapidPulseBeamProjectile -TAALightFragmentationProjectile = import("/lua/sim/projectiles/uef/TAALightFragmentationProjectile.lua").TAALightFragmentationProjectile -TArtilleryAntiMatterProjectile = import("/lua/sim/projectiles/uef/TArtilleryAntiMatterProjectile.lua").TArtilleryAntiMatterProjectile -TArtilleryAntiMatterProjectile02 = import("/lua/sim/projectiles/uef/TArtilleryAntiMatterProjectile02.lua").TArtilleryAntiMatterProjectile02 -TArtilleryAntiMatterSmallProjectile = import("/lua/sim/projectiles/uef/TArtilleryAntiMatterSmallProjectile.lua").TArtilleryAntiMatterSmallProjectile -TArtilleryProjectile = import("/lua/sim/projectiles/uef/TArtilleryProjectile.lua").TArtilleryProjectile -TArtilleryProjectilePolytrail = import("/lua/sim/projectiles/uef/TArtilleryProjectilePolytrail.lua").TArtilleryProjectilePolytrail -TCannonSeaProjectile = import("/lua/sim/projectiles/uef/TCannonSeaProjectile.lua").TCannonSeaProjectile -TCannonTankProjectile = import("/lua/sim/projectiles/uef/TCannonTankProjectile.lua").TCannonTankProjectile -TDepthChargeProjectile = import("/lua/sim/projectiles/uef/TDepthChargeProjectile.lua").TDepthChargeProjectile -TDFGeneralGaussCannonProjectile = import("/lua/sim/projectiles/uef/TDFGeneralGaussCannonProjectile.lua").TDFGeneralGaussCannonProjectile -TDFGaussCannonProjectile = import("/lua/sim/projectiles/uef/TDFGaussCannonProjectile.lua").TDFGaussCannonProjectile -TDFMediumShipGaussCannonProjectile = import("/lua/sim/projectiles/uef/TDFMediumShipGaussCannonProjectile.lua").TDFMediumShipGaussCannonProjectile -TDFBigShipGaussCannonProjectile = import("/lua/sim/projectiles/uef/TDFBigShipGaussCannonProjectile.lua").TDFBigShipGaussCannonProjectile -TDFMediumLandGaussCannonProjectile = import("/lua/sim/projectiles/uef/TDFMediumLandGaussCannonProjectile.lua").TDFMediumLandGaussCannonProjectile -TDFBigLandGaussCannonProjectile = import("/lua/sim/projectiles/uef/TDFBigLandGaussCannonProjectile.lua").TDFBigLandGaussCannonProjectile -THeavyPlasmaCannonProjectile = import("/lua/sim/projectiles/uef/THeavyPlasmaCannonProjectile.lua").THeavyPlasmaCannonProjectile -TIFSmallYieldNuclearBombProjectile = import("/lua/sim/projectiles/uef/TIFSmallYieldNuclearBombProjectile.lua").TIFSmallYieldNuclearBombProjectile -TLaserBotProjectile = import("/lua/sim/projectiles/uef/TLaserBotProjectile.lua").TLaserBotProjectile -TLaserProjectile = import("/lua/sim/projectiles/uef/TLaserProjectile.lua").TLaserProjectile -TMachineGunProjectile = import("/lua/sim/projectiles/uef/TMachineGunProjectile.lua").TMachineGunProjectile -TMissileAAProjectile = import("/lua/sim/projectiles/uef/TMissileAAProjectile.lua").TMissileAAProjectile -TAntiNukeInterceptorProjectile = import("/lua/sim/projectiles/uef/TAntiNukeInterceptorProjectile.lua").TAntiNukeInterceptorProjectile -TMissileProjectile = import("/lua/sim/projectiles/uef/TMissileProjectile.lua").TMissileProjectile -TMissileCruiseProjectile = import("/lua/sim/projectiles/uef/TMissileCruiseProjectile.lua").TMissileCruiseProjectile -TMissileCruiseProjectile02 = import("/lua/sim/projectiles/uef/TMissileCruiseProjectile02.lua").TMissileCruiseProjectile02 - ---#region Mod Compatibility -local RandomFloat = import('/lua/utilities.lua').GetRandomFloat -local util = import('utilities.lua') -local Explosion = import('defaultexplosions.lua') -local Projectile = import('/lua/sim/projectile.lua').Projectile local DefaultProjectileFile = import("/lua/sim/defaultprojectiles.lua") -local EmitterProjectile = import("/lua/sim/defaultprojectiles.lua").EmitterProjectile -local OnWaterEntryEmitterProjectile = import("/lua/sim/defaultprojectiles.lua").OnWaterEntryEmitterProjectile -local SingleBeamProjectile = import("/lua/sim/defaultprojectiles.lua").SingleBeamProjectile -local SinglePolyTrailProjectile = import("/lua/sim/defaultprojectiles.lua").SinglePolyTrailProjectile -local MultiPolyTrailProjectile = import("/lua/sim/defaultprojectiles.lua").MultiPolyTrailProjectile -local SingleCompositeEmitterProjectile = import("/lua/sim/defaultprojectiles.lua").SingleCompositeEmitterProjectile +local EmitterProjectile = DefaultProjectileFile.EmitterProjectile +local OnWaterEntryEmitterProjectile = DefaultProjectileFile.OnWaterEntryEmitterProjectile +local SingleBeamProjectile = DefaultProjectileFile.SingleBeamProjectile +local SinglePolyTrailProjectile = DefaultProjectileFile.SinglePolyTrailProjectile +local MultiPolyTrailProjectile = DefaultProjectileFile.MultiPolyTrailProjectile +local SingleCompositeEmitterProjectile = DefaultProjectileFile.SingleCompositeEmitterProjectile local EffectTemplate = import("/lua/effecttemplates.lua") local DepthCharge = import("/lua/defaultantiprojectile.lua").DepthCharge -local NukeProjectile = import("/lua/sim/defaultprojectiles.lua").NukeProjectile +local NukeProjectile = DefaultProjectileFile.NukeProjectile + local DebrisComponent = import('/lua/sim/projectiles/components/DebrisComponent.lua').DebrisComponent -local TacticalMissileComponent = import('/lua/sim/defaultprojectiles.lua').TacticalMissileComponent ---#endregion \ No newline at end of file +local TacticalMissileComponent = import("/lua/sim/projectiles/components/tacticalmissilecomponent.lua").TacticalMissileComponent + +---@class TFragmentationGrenade : EmitterProjectile +TFragmentationGrenade = ClassProjectile(EmitterProjectile) { + FxImpactUnit = EffectTemplate.THeavyFragmentationGrenadeUnitHit, + FxImpactLand = EffectTemplate.THeavyFragmentationGrenadeHit, + FxImpactWater = EffectTemplate.THeavyFragmentationGrenadeHit, + FxImpactNone = EffectTemplate.THeavyFragmentationGrenadeHit, + FxImpactProp = EffectTemplate.THeavyFragmentationGrenadeUnitHit, + FxTrails = EffectTemplate.THeavyFragmentationGrenadeFxTrails, +} + +---@class TIFMissileNuke : NukeProjectile, SingleBeamProjectile +TIFMissileNuke = ClassProjectile(NukeProjectile, SingleBeamProjectile) { + BeamName = '/effects/emitters/missile_exhaust_fire_beam_01_emit.bp', +} + +---@class TIFTacticalNuke : NukeProjectile, TacticalMissileComponent, DebrisComponent +TIFTacticalNuke = ClassProjectile(NukeProjectile, TacticalMissileComponent, DebrisComponent) { + MovementThread = TacticalMissileComponent.MovementThread -- Resolve conflict from base classes +} + +--- UEF GINSU RAPID PULSE BEAM PROJECTILE +---@class TAAGinsuRapidPulseBeamProjectile : SingleBeamProjectile +TAAGinsuRapidPulseBeamProjectile = ClassProjectile(SingleBeamProjectile) { + BeamName = '/effects/emitters/laserturret_munition_beam_03_emit.bp', + FxImpactUnit = EffectTemplate.TAAGinsuHitUnit, + FxImpactProp = EffectTemplate.TAAGinsuHitUnit, + FxImpactAirUnit = EffectTemplate.TAAGinsuHitUnit, + FxImpactLand = EffectTemplate.TAAGinsuHitLand, +} + +--- TERRAN AA PROJECTILES +---@class TAALightFragmentationProjectile : SingleCompositeEmitterProjectile +TAALightFragmentationProjectile = ClassProjectile(SingleCompositeEmitterProjectile) { + BeamName = '/effects/emitters/antiair_munition_beam_01_emit.bp', + PolyTrail = '/effects/emitters/default_polytrail_01_emit.bp', + PolyTrailOffset = 0, + FxTrails = { '/effects/emitters/terran_flack_fxtrail_01_emit.bp' }, + FxImpactAirUnit = EffectTemplate.TFragmentationShell01, + FxImpactNone = EffectTemplate.TFragmentationShell01, +} + +--- TERRAN ANTIMATTER ARTILLERY PROJECTILES +---@class TArtilleryAntiMatterProjectile : SinglePolyTrailProjectile +TArtilleryAntiMatterProjectile = ClassProjectile(SinglePolyTrailProjectile) { + FxImpactTrajectoryAligned = false, + PolyTrail = '/effects/emitters/antimatter_polytrail_01_emit.bp', + PolyTrailOffset = 0, + FxImpactUnit = EffectTemplate.TAntiMatterShellHit01, + FxImpactProp = EffectTemplate.TAntiMatterShellHit01, + FxImpactLand = EffectTemplate.TAntiMatterShellHit01, + FxLandHitScale = 1, +} + +--- TERRAN ANTIMATTER ARTILLERY PROJECTILES +---@class TArtilleryAntiMatterProjectile02 : TArtilleryAntiMatterProjectile +TArtilleryAntiMatterProjectile02 = ClassProjectile(TArtilleryAntiMatterProjectile) { + PolyTrail = '/effects/emitters/default_polytrail_07_emit.bp', + FxImpactUnit = EffectTemplate.TAntiMatterShellHit02, + FxImpactProp = EffectTemplate.TAntiMatterShellHit02, + FxImpactLand = EffectTemplate.TAntiMatterShellHit02, +} + +--- TERRAN ANTIMATTER ARTILLERY PROJECTILES +---@class TArtilleryAntiMatterSmallProjectile : TArtilleryAntiMatterProjectile02 +TArtilleryAntiMatterSmallProjectile = ClassProjectile(TArtilleryAntiMatterProjectile02) { + FxLandHitScale = 0.5, + FxUnitHitScale = 0.5, + FxSplatScale = 6, +} + +--- TERRAN ARTILLERY PROJECTILES +---@class TArtilleryProjectile : EmitterProjectile +TArtilleryProjectile = ClassProjectile(EmitterProjectile) { + FxImpactTrajectoryAligned = false, + FxTrails = { '/effects/emitters/mortar_munition_01_emit.bp', }, + FxImpactUnit = EffectTemplate.TPlasmaCannonHeavyHitUnit01, + FxImpactProp = EffectTemplate.TPlasmaCannonHeavyHitUnit01, + FxImpactLand = EffectTemplate.TPlasmaCannonHeavyHit01, +} + +--- TERRAN ARTILLERY PROJECTILES +---@class TArtilleryProjectilePolytrail : SinglePolyTrailProjectile +TArtilleryProjectilePolytrail = ClassProjectile(SinglePolyTrailProjectile) { + FxImpactUnit = EffectTemplate.TPlasmaCannonHeavyHitUnit01, + FxImpactProp = EffectTemplate.TPlasmaCannonHeavyHitUnit01, + FxImpactLand = EffectTemplate.TPlasmaCannonHeavyHit01, +} + +--- TERRAN SHIP CANNON PROJECTILES +---@class TCannonSeaProjectile : SingleBeamProjectile +TCannonSeaProjectile = ClassProjectile(SingleBeamProjectile) { + BeamName = '/effects/emitters/cannon_munition_ship_beam_01_emit.bp', +} + +--- TERRAN TANK CANNON PROJECTILES +---@class TCannonTankProjectile : SingleBeamProjectile +TCannonTankProjectile = ClassProjectile(SingleBeamProjectile) { + BeamName = '/effects/emitters/cannon_munition_tank_beam_01_emit.bp', +} + +--- TERRAN DEPTH CHARGE PROJECTILES +---@class TDepthChargeProjectile : OnWaterEntryEmitterProjectile +TDepthChargeProjectile = ClassProjectile(OnWaterEntryEmitterProjectile) { + FxTrails = { '/effects/emitters/torpedo_underwater_wake_01_emit.bp', }, + TrailDelay = 0, + FxUnitHitScale = 1.25, + FxImpactUnit = EffectTemplate.TTorpedoHitUnit01, + FxImpactProp = EffectTemplate.TTorpedoHitUnit01, + FxImpactUnderWater = EffectTemplate.TTorpedoHitUnit01, + FxImpactProjectile = EffectTemplate.TTorpedoHitUnit01, + FxEnterWater = EffectTemplate.WaterSplash01, + + ---@param self TDepthChargeProjectile + ---@param inWater? boolean + OnCreate = function(self, inWater) + OnWaterEntryEmitterProjectile.OnCreate(self) + self:TrackTarget(false) + end, + + ---@param self TDepthChargeProjectile + OnEnterWater = function(self) + OnWaterEntryEmitterProjectile.OnEnterWater(self) + self:TrackTarget(false) + self:StayUnderwater(true) + end, +} + +--- TERRAN GAUSS CANNON PROJECTILES +---@class TDFGeneralGaussCannonProjectile : MultiPolyTrailProjectile +TDFGeneralGaussCannonProjectile = ClassProjectile(MultiPolyTrailProjectile) { + PolyTrails = EffectTemplate.TGaussCannonPolyTrail, + PolyTrailOffset = { 0, 0 }, + FxTrailOffset = 0, +} + +--- (UEB2301) UEF Triad and (UES0103) UEF Frigate and (UES0202) UEF Cruiser and (UEl0201) UEF Striker and (UEL0202) UEF Pillar +---@class TDFGaussCannonProjectile : TDFGeneralGaussCannonProjectile +TDFGaussCannonProjectile = ClassProjectile(TDFGeneralGaussCannonProjectile) { + FxImpactUnit = EffectTemplate.TGaussCannonHitUnit01, + FxImpactProp = EffectTemplate.TGaussCannonHitUnit01, + FxImpactLand = EffectTemplate.TGaussCannonHitLand01, + FxImpactWater = EffectTemplate.TGaussWaterSplash01, + FxWaterHitScale = 0.75, +} + +--- (UES0201) UEF Destroyer +---@class TDFMediumShipGaussCannonProjectile : TDFGeneralGaussCannonProjectile +TDFMediumShipGaussCannonProjectile = ClassProjectile(TDFGeneralGaussCannonProjectile) { + FxImpactTrajectoryAligned = false, + FxImpactUnit = EffectTemplate.TMediumShipGaussCannonHitUnit01, + FxImpactProp = EffectTemplate.TMediumShipGaussCannonHit01, + FxImpactLand = EffectTemplate.TMediumShipGaussCannonHit01, +} + +--- UES0302 (UEF Battleship) +---@class TDFBigShipGaussCannonProjectile : TDFGeneralGaussCannonProjectile +TDFBigShipGaussCannonProjectile = ClassProjectile(TDFGeneralGaussCannonProjectile) { + FxImpactTrajectoryAligned = false, + FxImpactUnit = EffectTemplate.TShipGaussCannonHitUnit01, + FxImpactProp = EffectTemplate.TShipGaussCannonHit01, + FxImpactLand = EffectTemplate.TShipGaussCannonHit01, + + ---@param self TDFBigShipGaussCannonProjectile + ---@param targetType string + ---@param targetEntity Unit | Prop + OnImpact = function(self, targetType, targetEntity) + MultiPolyTrailProjectile.OnImpact(self, targetType, targetEntity) + self:ShakeCamera(20, 1, 0, 1) + end, +} + +--- Triad (T2 PD) +---@class TDFMediumLandGaussCannonProjectile : TDFGeneralGaussCannonProjectile +TDFMediumLandGaussCannonProjectile = ClassProjectile(TDFGeneralGaussCannonProjectile) { + FxImpactTrajectoryAligned = false, + FxImpactUnit = EffectTemplate.TMediumLandGaussCannonHitUnit01, + FxImpactProp = EffectTemplate.TMediumLandGaussCannonHit01, + FxImpactLand = EffectTemplate.TMediumLandGaussCannonHit01, +} + +--- Fatboy +---@class TDFBigLandGaussCannonProjectile : TDFGeneralGaussCannonProjectile +TDFBigLandGaussCannonProjectile = ClassProjectile(TDFGeneralGaussCannonProjectile) { + FxImpactTrajectoryAligned = false, + FxImpactUnit = EffectTemplate.TBigLandGaussCannonHitUnit01, + FxImpactProp = EffectTemplate.TBigLandGaussCannonHit01, + FxImpactLand = EffectTemplate.TBigLandGaussCannonHit01, +} + +--- TERRAN HEAVY PLASMA CANNON PROJECTILES +--- SACU, titan, T3 gunship and T3 transport +---@class THeavyPlasmaCannonProjectile : MultiPolyTrailProjectile +THeavyPlasmaCannonProjectile = ClassProjectile(MultiPolyTrailProjectile) { + FxTrails = EffectTemplate.TPlasmaCannonHeavyMunition, + RandomPolyTrails = 1, + PolyTrailOffset = { 0, 0, 0 }, + PolyTrails = EffectTemplate.TPlasmaCannonHeavyPolyTrails, + FxImpactUnit = EffectTemplate.TPlasmaCannonHeavyHitUnit01, + FxImpactProp = EffectTemplate.TPlasmaCannonHeavyHitUnit01, + FxImpactLand = EffectTemplate.TPlasmaCannonHeavyHit01, +} + +--- UEF SMALL YIELD NUCLEAR BOMB +--- strategic bomber +---@class TIFSmallYieldNuclearBombProjectile : EmitterProjectile +TIFSmallYieldNuclearBombProjectile = ClassProjectile(EmitterProjectile) { + FxImpactTrajectoryAligned = false, + PolyTrail = '/effects/emitters/antimatter_polytrail_01_emit.bp', + PolyTrailOffset = 0, + FxImpactUnit = EffectTemplate.TAntiMatterShellHit01, + FxImpactProp = EffectTemplate.TAntiMatterShellHit01, + FxImpactLand = EffectTemplate.TAntiMatterShellHit01, + FxLandHitScale = 1, +} + +--- TERRAN BOT LASER PROJECTILES +--- ACU +---@class TLaserBotProjectile : MultiPolyTrailProjectile +TLaserBotProjectile = ClassProjectile(MultiPolyTrailProjectile) { + PolyTrails = EffectTemplate.TLaserPolytrail01, + PolyTrailOffset = { 0, 0, 0 }, + FxTrails = EffectTemplate.TLaserFxtrail01, + FxImpactUnit = EffectTemplate.TLaserHitUnit02, + FxImpactProp = EffectTemplate.TLaserHitUnit02, + FxImpactLand = EffectTemplate.TLaserHitLand02, +} + +--- TERRAN LASER PROJECTILES +---@class TLaserProjectile : SingleBeamProjectile +TLaserProjectile = ClassProjectile(SingleBeamProjectile) { + BeamName = '/effects/emitters/laserturret_munition_beam_02_emit.bp', + FxImpactUnit = EffectTemplate.TLaserHitUnit01, + FxImpactProp = EffectTemplate.TLaserHitUnit01, + FxImpactLand = EffectTemplate.TLaserHitLand01, +} + +--- TERRAN MACHINE GUN SHELLS +---@class TMachineGunProjectile : SinglePolyTrailProjectile +TMachineGunProjectile = ClassProjectile(SinglePolyTrailProjectile) { + PolyTrail = EffectTemplate.TMachineGunPolyTrail, + FxImpactUnit = { + '/effects/emitters/gauss_cannon_muzzle_flash_01_emit.bp', + '/effects/emitters/flash_05_emit.bp', + }, + FxImpactProp = { + '/effects/emitters/gauss_cannon_muzzle_flash_01_emit.bp', + '/effects/emitters/flash_05_emit.bp', + }, + FxImpactLand = { + '/effects/emitters/gauss_cannon_muzzle_flash_01_emit.bp', + '/effects/emitters/flash_05_flat_emit.bp', + }, +} + +--- TERRAN AA MISSILE PROJECTILES - Air Targets +---@class TMissileAAProjectile : EmitterProjectile +TMissileAAProjectile = ClassProjectile(EmitterProjectile) { + TrailDelay = 1, + FxTrails = { '/effects/emitters/missile_sam_munition_trail_01_emit.bp', }, + FxTrailOffset = -0.5, + FxAirUnitHitScale = 0.4, + FxLandHitScale = 0.4, + FxUnitHitScale = 0.4, + FxPropHitScale = 0.4, + FxImpactUnit = EffectTemplate.TMissileHit02, + FxImpactAirUnit = EffectTemplate.TMissileHit02, + FxImpactProp = EffectTemplate.TMissileHit02, + FxImpactLand = EffectTemplate.TMissileHit02, +} + +---@class TAntiNukeInterceptorProjectile : SingleBeamProjectile +TAntiNukeInterceptorProjectile = ClassProjectile(SingleBeamProjectile) { + BeamName = '/effects/emitters/missile_exhaust_fire_beam_02_emit.bp', + FxTrails = EffectTemplate.TMissileExhaust03, + FxImpactUnit = EffectTemplate.TMissileHit01, + FxImpactProp = EffectTemplate.TMissileHit01, + FxImpactLand = EffectTemplate.TMissileHit01, + FxImpactProjectile = EffectTemplate.TMissileHit01, + FxProjectileHitScale = 5, +} + +--- TERRAN MISSILE PROJECTILES - General Purpose +---@class TMissileProjectile : SingleBeamProjectile, TacticalMissileComponent, DebrisComponent +TMissileProjectile = ClassProjectile(SingleBeamProjectile, TacticalMissileComponent, DebrisComponent) { + DestroyOnImpact = false, + FxTrails = EffectTemplate.TMissileExhaust02, + FxTrailOffset = -1, + BeamName = '/effects/emitters/missile_munition_exhaust_beam_01_emit.bp', + FxImpactUnit = EffectTemplate.TMissileHit01, + FxImpactLand = EffectTemplate.TMissileHit01, + FxImpactProp = EffectTemplate.TMissileHit01, + + FxOnKilled = EffectTemplate.TMissileKilled01, + FxOnKilledScale = 0.7, + + FxImpactNone = EffectTemplate.TMissileKilled01, + FxNoneHitScale = 0.7, + + LaunchTicks = 12, + LaunchTicksRange = 2, + + LaunchTurnRate = 6, + LaunchTurnRateRange = 2, + + HeightDistanceFactor = 5.5, + HeightDistanceFactorRange = 0.5, + + MinHeight = 10, + MinHeightRange = 1, + + FinalBoostAngle = 50, + FinalBoostAngleRange = 5, + + DebrisBlueprints = { + '/effects/Entities/TacticalDebris01/TacticalDebris01_proj.bp', + '/effects/Entities/TacticalDebris01/TacticalDebris01_proj.bp', + '/effects/Entities/TacticalDebris02/TacticalDebris02_proj.bp', + }, + + OnCreate = function(self) + SingleBeamProjectile.OnCreate(self) + local blueprintPhysics = self.Blueprint.Physics + local radius = 0.105 * (blueprintPhysics.MaxSpeed + blueprintPhysics.MaxSpeedRange) + self:SetCollisionShape('Sphere', 0, 0, 0, radius) + + self.MoveThread = self.Trash:Add(ForkThread(self.MovementThread, self)) + end, + + ---@param self TMissileProjectile + ---@param instigator Unit + ---@param type string + ---@param overkillRatio number + OnKilled = function(self, instigator, type, overkillRatio) + SingleBeamProjectile.OnKilled(self, instigator, type, overkillRatio) + + self:CreateDebris() + CreateLightParticle(self, -1, self.Army, 3, 6, 'flare_lens_add_02', 'ramp_fire_13') + end, + + ---@param self TMissileProjectile + ---@param targetType string + ---@param targetEntity Prop|Unit + OnImpact = function(self, targetType, targetEntity) + SingleBeamProjectile.OnImpact(self, targetType, targetEntity) + if targetType == 'None' or targetType == 'Air' then + self:CreateDebris() + end + + CreateLightParticle(self, -1, self.Army, 4, 4, 'flare_lens_add_02', 'ramp_fire_13') + end, +} + +--- TERRAN CRUISE MISSILE PROJECTILES - Surface Targets +---@class TMissileCruiseProjectile : TMissileProjectile +TMissileCruiseProjectile = ClassProjectile(TMissileProjectile) { + DestroyOnImpact = false, + FxTrails = EffectTemplate.TMissileExhaust02, + FxTrailOffset = -1, + BeamName = '/effects/emitters/missile_munition_exhaust_beam_01_emit.bp', + FxImpactUnit = EffectTemplate.TMissileHit01, + FxImpactLand = EffectTemplate.TMissileHit01, + FxImpactProp = EffectTemplate.TMissileHit01, +} + +---@class TMissileCruiseProjectile02 : TMissileProjectile +TMissileCruiseProjectile02 = ClassProjectile(TMissileProjectile) { + FxImpactTrajectoryAligned = false, + DestroyOnImpact = false, + FxTrails = EffectTemplate.TMissileExhaust02, + FxTrailOffset = -1, + BeamName = '/effects/emitters/missile_munition_exhaust_beam_01_emit.bp', + FxImpactUnit = EffectTemplate.TShipGaussCannonHitUnit02, + FxImpactProp = EffectTemplate.TShipGaussCannonHit02, + FxImpactLand = EffectTemplate.TShipGaussCannonHit02, +} + +--- TERRAN SUB-LAUNCHED CRUISE MISSILE PROJECTILES +---@class TMissileCruiseSubProjectile : TMissileProjectile +TMissileCruiseSubProjectile = ClassProjectile(TMissileProjectile) { + FxExitWaterEmitter = EffectTemplate.TIFCruiseMissileLaunchExitWater, + FxTrailOffset = -0.35, + FxTrails = EffectTemplate.TMissileExhaust02, + BeamName = '/effects/emitters/missile_munition_exhaust_beam_01_emit.bp', + FxImpactUnit = EffectTemplate.TMissileHit01, + FxImpactLand = EffectTemplate.TMissileHit01, + FxImpactProp = EffectTemplate.TMissileHit01, +} + +--- TERRAN NAPALM CARPET BOMB +---@class TNapalmCarpetBombProjectile : SinglePolyTrailProjectile +TNapalmCarpetBombProjectile = ClassProjectile(SinglePolyTrailProjectile) { + FxImpactTrajectoryAligned = false, + FxImpactUnit = EffectTemplate.TNapalmCarpetBombHitLand01, + FxImpactProp = EffectTemplate.TNapalmCarpetBombHitLand01, + FxImpactLand = EffectTemplate.TNapalmCarpetBombHitLand01, + FxImpactWater = EffectTemplate.TNapalmHvyCarpetBombHitWater01, + PolyTrail = '/effects/emitters/default_polytrail_01_emit.bp', +} + +--- TERRAN HEAVY NAPALM CARPET BOMB +---@class TNapalmHvyCarpetBombProjectile : SinglePolyTrailProjectile +TNapalmHvyCarpetBombProjectile = ClassProjectile(SinglePolyTrailProjectile) { + FxImpactTrajectoryAligned = false, + FxImpactUnit = EffectTemplate.TNapalmHvyCarpetBombHitLand01, + FxImpactProp = EffectTemplate.TNapalmHvyCarpetBombHitLand01, + FxImpactLand = EffectTemplate.TNapalmHvyCarpetBombHitLand01, + FxImpactWater = EffectTemplate.TNapalmHvyCarpetBombHitLand01, + FxImpactShield = EffectTemplate.TNapalmHvyCarpetBombHitLand01, + PolyTrail = '/effects/emitters/default_polytrail_01_emit.bp', +} + +--- TERRAN PLASMA CANNON PROJECTILES +---@class TPlasmaCannonProjectile : SinglePolyTrailProjectile +TPlasmaCannonProjectile = ClassProjectile(SinglePolyTrailProjectile) { + FxTrails = EffectTemplate.TPlasmaCannonLightMunition, + PolyTrailOffset = 0, + PolyTrail = EffectTemplate.TPlasmaCannonLightPolyTrail, + FxImpactUnit = EffectTemplate.TPlasmaCannonLightHitUnit01, + FxImpactProp = EffectTemplate.TPlasmaCannonLightHitUnit01, + FxImpactLand = EffectTemplate.TPlasmaCannonLightHitLand01, +} + +--- TERRAN RAIL GUN PROJECTILES +---@class TRailGunProjectile : SinglePolyTrailProjectile +TRailGunProjectile = ClassProjectile(SinglePolyTrailProjectile) { + PolyTrail = '/effects/emitters/railgun_polytrail_01_emit.bp', + FxTrailScale = 1, + FxTrailOffset = 0, + FxImpactUnit = EffectTemplate.TRailGunHitGround01, + FxImpactProp = EffectTemplate.TRailGunHitGround01, + FxImpactAirUnit = EffectTemplate.TRailGunHitAir01, +} + +--- TERRAN PHALANX PROJECTILES +---@class TShellPhalanxProjectile : MultiPolyTrailProjectile +TShellPhalanxProjectile = ClassProjectile(MultiPolyTrailProjectile) { + PolyTrails = EffectTemplate.TPhalanxGunPolyTrails, + PolyTrailOffset = EffectTemplate.TPhalanxGunPolyTrailsOffsets, + FxImpactUnit = EffectTemplate.TRiotGunHitUnit01, + FxImpactProp = EffectTemplate.TRiotGunHitUnit01, + FxImpactNone = EffectTemplate.FireCloudSml01, + FxImpactLand = EffectTemplate.TRiotGunHit01, + FxImpactProjectile = EffectTemplate.TMissileHit02, + FxProjectileHitScale = 0.7, +} + +--- TERRAN RIOT PROJECTILES +---@class TShellRiotProjectile : MultiPolyTrailProjectile +TShellRiotProjectile = ClassProjectile(MultiPolyTrailProjectile) { + PolyTrails = EffectTemplate.TRiotGunPolyTrails, + PolyTrailOffset = EffectTemplate.TRiotGunPolyTrailsOffsets, + FxTrails = EffectTemplate.TRiotGunMunition01, + RandomPolyTrails = 1, + FxImpactUnit = EffectTemplate.TRiotGunHitUnit01, + FxImpactProp = EffectTemplate.TRiotGunHitUnit01, + FxImpactLand = EffectTemplate.TRiotGunHit01, +} + +---@class TShellRiotProjectileLand : MultiPolyTrailProjectile +TShellRiotProjectileLand = ClassProjectile(MultiPolyTrailProjectile) { + PolyTrails = EffectTemplate.TRiotGunPolyTrailsTank, + PolyTrailOffset = EffectTemplate.TRiotGunPolyTrailsOffsets, + RandomPolyTrails = 1, + FxImpactUnit = EffectTemplate.TRiotGunHitUnit02, + FxImpactProp = EffectTemplate.TRiotGunHitUnit02, + FxImpactLand = EffectTemplate.TRiotGunHit02, +} + +---@class TShellRiotProjectileLand02 : TShellRiotProjectileLand +TShellRiotProjectileLand02 = ClassProjectile(TShellRiotProjectileLand) { + PolyTrails = EffectTemplate.TRiotGunPolyTrailsEngineer, +} + +--- TERRAN ABOVE WATER LAUNCHED TORPEDO +---@class TTorpedoShipProjectile : OnWaterEntryEmitterProjectile +TTorpedoShipProjectile = ClassProjectile(OnWaterEntryEmitterProjectile) { + FxTrails = { '/effects/emitters/torpedo_underwater_wake_01_emit.bp', }, + TrailDelay = 0, + FxUnitHitScale = 1.25, + FxImpactLand = EffectTemplate.TGaussCannonHit01, + FxImpactUnit = EffectTemplate.TTorpedoHitUnit01, + FxImpactProp = EffectTemplate.TTorpedoHitUnit01, + FxImpactUnderWater = EffectTemplate.TTorpedoHitUnitUnderwater01, + FxEnterWater = EffectTemplate.WaterSplash01, + + ---@param self TTorpedoShipProjectile + ---@param inWater? boolean + OnCreate = function(self, inWater) + OnWaterEntryEmitterProjectile.OnCreate(self) + + -- if we are starting in the water then immediately switch to tracking in water and + -- create underwater trail effects + if inWater == true then + self:SetWaterParameters() + end + end, + + ---@param self TTorpedoShipProjectile + OnEnterWater = function(self) + OnWaterEntryEmitterProjectile.OnEnterWater(self) + self:SetWaterParameters() + end, + + ---@param self TTorpedoShipProjectile + MovementThread = function(self) + end, + + ---@param self TTorpedoShipProjectile + SetWaterParameters = function(self) + self:SetCollisionShape('Sphere', 0, 0, 0, 1.0) + -- self:SetMaxSpeed(20) + -- self:SetAcceleration(5) + -- self:SetTurnRate(140) + -- self:SetVelocity(10) + self.Trash:Add(ForkThread(self.MovementThread, self)) + end, +} + +--- TERRAN SUB LAUNCHED TORPEDO +---@class TTorpedoSubProjectile : EmitterProjectile +TTorpedoSubProjectile = ClassProjectile(EmitterProjectile) { + FxTrails = { '/effects/emitters/torpedo_munition_trail_01_emit.bp', }, + FxUnitHitScale = 1.25, + FxImpactUnit = EffectTemplate.TTorpedoHitUnit01, + FxImpactProp = EffectTemplate.TTorpedoHitUnit01, + FxImpactUnderWater = EffectTemplate.TTorpedoHitUnit01, + + ---@param self TTorpedoSubProjectile + ---@param inWater? boolean unused + OnCreate = function(self, inWater) + EmitterProjectile.OnCreate(self, inWater) + self:SetCollisionShape('Sphere', 0, 0, 0, 1.0) + end, +} + +--- SC1X UEF BASE TEMPRORARY PROJECTILE +---@class TBaseTempProjectile : SinglePolyTrailProjectile +TBaseTempProjectile = ClassProjectile(SinglePolyTrailProjectile) { + FxImpactLand = EffectTemplate.AMissileHit01, + FxImpactNone = EffectTemplate.AMissileHit01, + FxImpactProjectile = EffectTemplate.ASaintImpact01, + FxImpactProp = EffectTemplate.AMissileHit01, + FxImpactUnit = EffectTemplate.AMissileHit01, + FxTrails = { + '/effects/emitters/aeon_laser_fxtrail_01_emit.bp', + '/effects/emitters/aeon_laser_fxtrail_02_emit.bp', + }, + PolyTrail = '/effects/emitters/aeon_laser_trail_01_emit.bp', +} + +--- UEF PLASMA GATLING CANNON PROJECTILE +---@class TGatlingPlasmaCannonProjectile : MultiPolyTrailProjectile +TGatlingPlasmaCannonProjectile = ClassProjectile(MultiPolyTrailProjectile) { + PolyTrailOffset = EffectTemplate.TPlasmaGatlingCannonPolyTrailsOffsets, + FxImpactNone = EffectTemplate.TPlasmaGatlingCannonUnitHit, + FxImpactUnit = EffectTemplate.TPlasmaGatlingCannonUnitHit, + FxImpactProp = EffectTemplate.TPlasmaGatlingCannonUnitHit, + FxImpactLand = EffectTemplate.TPlasmaGatlingCannonHit, + FxImpactWater = EffectTemplate.TPlasmaGatlingCannonHit, + RandomPolyTrails = 1, + PolyTrails = EffectTemplate.TPlasmaGatlingCannonPolyTrails, +} + +--- UEF IONIZED PLASMA GATLING CANNON PROJECTILE +--- percival +---@class TIonizedPlasmaGatlingCannon : SinglePolyTrailProjectile +TIonizedPlasmaGatlingCannon = ClassProjectile(SinglePolyTrailProjectile) { + FxImpactWater = EffectTemplate.TIonizedPlasmaGatlingCannonHit, + FxImpactLand = EffectTemplate.TIonizedPlasmaGatlingCannonHit, + FxImpactNone = EffectTemplate.TIonizedPlasmaGatlingCannonHit, + FxImpactProp = EffectTemplate.TIonizedPlasmaGatlingCannonUnitHit, + FxImpactUnit = EffectTemplate.TIonizedPlasmaGatlingCannonUnitHit, + FxTrails = EffectTemplate.TIonizedPlasmaGatlingCannonFxTrails, + PolyTrail = EffectTemplate.TIonizedPlasmaGatlingCannonPolyTrail, +} + +--- UEF HEAVY PLASMA GATLING CANNON PROJECTILE +--- ravager +---@class THeavyPlasmaGatlingCannon : SinglePolyTrailProjectile +THeavyPlasmaGatlingCannon = ClassProjectile(SinglePolyTrailProjectile) { + FxImpactTrajectoryAligned = false, + FxImpactUnit = EffectTemplate.THeavyPlasmaGatlingCannonHit, + FxImpactProp = EffectTemplate.THeavyPlasmaGatlingCannonHit, + FxImpactWater = EffectTemplate.THeavyPlasmaGatlingCannonHit, + FxImpactLand = EffectTemplate.THeavyPlasmaGatlingCannonHit, + FxTrails = EffectTemplate.THeavyPlasmaGatlingCannonFxTrails, + PolyTrail = EffectTemplate.THeavyPlasmaGatlingCannonPolyTrail, +} + +--- this used to be the tri barelled hiro cannon. +---@class THiroLaser : SinglePolyTrailProjectile +THiroLaser = ClassProjectile(SinglePolyTrailProjectile) { + FxTrailOffset = 0, + FxImpactUnit = EffectTemplate.THiroLaserUnitHit, + FxImpactProp = EffectTemplate.THiroLaserHit, + FxImpactLand = EffectTemplate.THiroLaserLandHit, + FxImpactWater = EffectTemplate.THiroLaserLandHit, + FxTrails = EffectTemplate.THiroLaserFxtrails, + PolyTrail = EffectTemplate.THiroLaserPolytrail, +} + +-- kept for mod backwards compatability +local RandomFloat = import('/lua/utilities.lua').GetRandomFloat +local util = import('utilities.lua') +local Explosion = import('defaultexplosions.lua') +local Projectile = import('/lua/sim/projectile.lua').Projectile