Skip to content

Commit

Permalink
Move classes of UEF projectiles to separate files (#5658)
Browse files Browse the repository at this point in the history
Continuation of #5652

---------

Co-authored-by: Josh <[email protected]>
  • Loading branch information
Garanas and MrRowey authored Jun 19, 2024
1 parent 7d74ea4 commit 81328f0
Show file tree
Hide file tree
Showing 30 changed files with 1,118 additions and 616 deletions.
34 changes: 34 additions & 0 deletions lua/sim/projectiles/uef/TAAGinsuRapidPulseBeamProjectile.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
--**********************************************************************************
--** 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,
}
35 changes: 35 additions & 0 deletions lua/sim/projectiles/uef/TAALightFragmentationProjectile.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
--**********************************************************************************
--** 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,
}
35 changes: 35 additions & 0 deletions lua/sim/projectiles/uef/TAntiNukeInterceptorProjectile.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
--**********************************************************************************
--** 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,
}
36 changes: 36 additions & 0 deletions lua/sim/projectiles/uef/TArtilleryAntiMatterProjectile.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
--**********************************************************************************
--** 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,
}
33 changes: 33 additions & 0 deletions lua/sim/projectiles/uef/TArtilleryAntiMatterProjectile02.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
--**********************************************************************************
--** 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,
}
31 changes: 31 additions & 0 deletions lua/sim/projectiles/uef/TArtilleryAntiMatterSmallProjectile.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
--**********************************************************************************
--** 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,
}
34 changes: 34 additions & 0 deletions lua/sim/projectiles/uef/TArtilleryProjectile.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
--**********************************************************************************
--** 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,
}
32 changes: 32 additions & 0 deletions lua/sim/projectiles/uef/TArtilleryProjectilePolytrail.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
--**********************************************************************************
--** 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,
}
29 changes: 29 additions & 0 deletions lua/sim/projectiles/uef/TCannonSeaProjectile.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
--**********************************************************************************
--** 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',
}
29 changes: 29 additions & 0 deletions lua/sim/projectiles/uef/TCannonTankProjectile.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
--**********************************************************************************
--** 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',
}
Loading

0 comments on commit 81328f0

Please sign in to comment.