From 800a47f6b53cae9b76ba58689591891b955d91be Mon Sep 17 00:00:00 2001 From: SethDGamre Date: Sat, 11 Jan 2025 15:20:28 -0600 Subject: [PATCH 1/5] Add new target category, add it to auto trajectory units --- gamedata/alldefs_post.lua | 3 ++- units/ArmBuildings/LandDefenceOffence/armamb.lua | 6 +++--- units/ArmBuildings/LandDefenceOffence/armguard.lua | 3 ++- units/ArmGantry/armvang.lua | 6 +++--- units/CorBuildings/LandDefenceOffence/corpun.lua | 5 +++-- units/CorBuildings/LandDefenceOffence/cortoast.lua | 6 +++--- units/Legion/Defenses/legacluster.lua | 5 +++-- units/Legion/Defenses/legcluster.lua | 5 +++-- 8 files changed, 22 insertions(+), 17 deletions(-) diff --git a/gamedata/alldefs_post.lua b/gamedata/alldefs_post.lua index eeb49196e9c..8397e3d12a8 100644 --- a/gamedata/alldefs_post.lua +++ b/gamedata/alldefs_post.lua @@ -813,11 +813,12 @@ function UnitDef_Post(name, uDef) categories["ALL"] = function() return true end categories["MOBILE"] = function(uDef) return uDef.speed and uDef.speed > 0 end + categories["FASTSURFACE"] = function(uDef) return uDef.speed and uDef.speed > 78 end --78 is the speed of rezbots categories["NOTMOBILE"] = function(uDef) return not categories.MOBILE(uDef) end categories["WEAPON"] = function(uDef) return uDef.weapondefs ~= nil end categories["NOWEAPON"] = function(uDef) return not categories.WEAPON(uDef) end categories["VTOL"] = function(uDef) return uDef.canfly == true end - categories["NOTAIR"] = function(uDef) return not categories.VTOL(uDef) end + categories["NOTAIR"] = function(uDef) return not categories.VTOL(uDef) end categories["HOVER"] = function(uDef) return hoverList[uDef.movementclass] and (uDef.maxwaterdepth == nil or uDef.maxwaterdepth < 1) end -- convertible tank/boats have maxwaterdepth categories["NOTHOVER"] = function(uDef) return not categories.HOVER(uDef) end categories["SHIP"] = function(uDef) return shipList[uDef.movementclass] or (hoverList[uDef.movementclass] and uDef.maxwaterdepth and uDef.maxwaterdepth >=1) end diff --git a/units/ArmBuildings/LandDefenceOffence/armamb.lua b/units/ArmBuildings/LandDefenceOffence/armamb.lua index 5e389b01b57..5da72175d3c 100644 --- a/units/ArmBuildings/LandDefenceOffence/armamb.lua +++ b/units/ArmBuildings/LandDefenceOffence/armamb.lua @@ -208,19 +208,19 @@ return { }, weapons = { [1] = { - badtargetcategory = "VTOL GROUNDSCOUT", + badtargetcategory = "FASTSURFACE", def = "ARMAMB_GUN", maindir = "0 1 0", maxangledif = 230, onlytargetcategory = "SURFACE", }, [2] = { - badtargetcategory = "VTOL GROUNDSCOUT", + badtargetcategory = "FASTSURFACE", def = "ARMAMB_GUN_HIGH", onlytargetcategory = "SURFACE", }, [3] = { - badtargetcategory = "VTOL GROUNDSCOUT", + badtargetcategory = "FASTSURFACE", def = "smart_trajectory_dummy", maindir = "0 1 0", maxangledif = 230, diff --git a/units/ArmBuildings/LandDefenceOffence/armguard.lua b/units/ArmBuildings/LandDefenceOffence/armguard.lua index 7f57c560366..128f6a3bfc4 100644 --- a/units/ArmBuildings/LandDefenceOffence/armguard.lua +++ b/units/ArmBuildings/LandDefenceOffence/armguard.lua @@ -200,13 +200,14 @@ return { }, weapons = { [1] = { - badtargetcategory = "VTOL", + badtargetcategory = "FASTSURFACE", def = "PLASMA", maindir = "0 1 0", maxangledif = 230, onlytargetcategory = "SURFACE", }, [2] = { + badtargetcategory = "FASTSURFACE", def = "PLASMA_HIGH", onlytargetcategory = "SURFACE", }, diff --git a/units/ArmGantry/armvang.lua b/units/ArmGantry/armvang.lua index 9ea3862bf75..5c57b8bf361 100644 --- a/units/ArmGantry/armvang.lua +++ b/units/ArmGantry/armvang.lua @@ -220,17 +220,17 @@ return { }, weapons = { [1] = { - badtargetcategory = "VTOL GROUNDSCOUT", + badtargetcategory = "FASTSURFACE", def = "SHOCKER_LOW", onlytargetcategory = "SURFACE", }, [2] = { - badtargetcategory = "VTOL GROUNDSCOUT", + badtargetcategory = "FASTSURFACE", def = "SHOCKER_HIGH", onlytargetcategory = "SURFACE", }, [3] = { - badtargetcategory = "VTOL GROUNDSCOUT", + badtargetcategory = "FASTSURFACE", def = "smart_trajectory_dummy", onlytargetcategory = "SURFACE", }, diff --git a/units/CorBuildings/LandDefenceOffence/corpun.lua b/units/CorBuildings/LandDefenceOffence/corpun.lua index 6b38f120786..a16ea675883 100644 --- a/units/CorBuildings/LandDefenceOffence/corpun.lua +++ b/units/CorBuildings/LandDefenceOffence/corpun.lua @@ -202,18 +202,19 @@ return { }, weapons = { [1] = { - badtargetcategory = "VTOL", + badtargetcategory = "FASTSURFACE", def = "PLASMA", maindir = "0 1 0", maxangledif = 230, onlytargetcategory = "SURFACE", }, [2] = { + badtargetcategory = "FASTSURFACE", def = "PLASMA_HIGH", onlytargetcategory = "SURFACE", }, [3] = { - badtargetcategory = "VTOL", + badtargetcategory = "FASTSURFACE", def = "smart_trajectory_dummy", maindir = "0 1 0", maxangledif = 230, diff --git a/units/CorBuildings/LandDefenceOffence/cortoast.lua b/units/CorBuildings/LandDefenceOffence/cortoast.lua index 688d1fd402e..ca54eae2213 100644 --- a/units/CorBuildings/LandDefenceOffence/cortoast.lua +++ b/units/CorBuildings/LandDefenceOffence/cortoast.lua @@ -209,19 +209,19 @@ return { }, weapons = { [1] = { - badtargetcategory = "VTOL GROUNDSCOUT", + badtargetcategory = "FASTSURFACE", def = "CORTOAST_GUN", maindir = "0 1 0", maxangledif = 230, onlytargetcategory = "SURFACE", }, [2] = { - badtargetcategory = "VTOL GROUNDSCOUT", + badtargetcategory = "FASTSURFACE", def = "CORTOAST_GUN_HIGH", onlytargetcategory = "SURFACE", }, [3] = { - badtargetcategory = "VTOL GROUNDSCOUT", + badtargetcategory = "FASTSURFACE", def = "smart_trajectory_dummy", maindir = "0 1 0", maxangledif = 230, diff --git a/units/Legion/Defenses/legacluster.lua b/units/Legion/Defenses/legacluster.lua index 50b95426612..29a67b79685 100644 --- a/units/Legion/Defenses/legacluster.lua +++ b/units/Legion/Defenses/legacluster.lua @@ -249,18 +249,19 @@ return { }, weapons = { [1] = { - badtargetcategory = "VTOL", + badtargetcategory = "FASTSURFACE", def = "PLASMA", maindir = "0 1 0", maxangledif = 230, onlytargetcategory = "SURFACE", }, [2] = { + badtargetcategory = "FASTSURFACE", def = "PLASMA_HIGH", onlytargetcategory = "SURFACE", }, [3] = { - badtargetcategory = "VTOL", + badtargetcategory = "FASTSURFACE", def = "smart_trajectory_dummy", maindir = "0 1 0", maxangledif = 230, diff --git a/units/Legion/Defenses/legcluster.lua b/units/Legion/Defenses/legcluster.lua index 8f13cd05599..5e878f2d18a 100644 --- a/units/Legion/Defenses/legcluster.lua +++ b/units/Legion/Defenses/legcluster.lua @@ -236,18 +236,19 @@ return { }, weapons = { [1] = { - badtargetcategory = "VTOL", + badtargetcategory = "FASTSURFACE", def = "PLASMA", maindir = "0 1 0", maxangledif = 230, onlytargetcategory = "SURFACE", }, [2] = { + badtargetcategory = "FASTSURFACE", def = "PLASMA_HIGH", onlytargetcategory = "SURFACE", }, [3] = { - badtargetcategory = "VTOL", + badtargetcategory = "FASTSURFACE", def = "smart_trajectory_dummy", maindir = "0 1 0", maxangledif = 230, From 0ca2014340a1a9114508f6af7332b9219d187dcb Mon Sep 17 00:00:00 2001 From: SethDGamre Date: Thu, 23 Jan 2025 18:53:38 -0600 Subject: [PATCH 2/5] Update alldefs_post.lua --- gamedata/alldefs_post.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gamedata/alldefs_post.lua b/gamedata/alldefs_post.lua index 304d0b7ddf7..d87f29d41b0 100644 --- a/gamedata/alldefs_post.lua +++ b/gamedata/alldefs_post.lua @@ -796,7 +796,7 @@ function UnitDef_Post(name, uDef) categories["ALL"] = function() return true end categories["MOBILE"] = function(uDef) return uDef.speed and uDef.speed > 0 end - categories["FASTSURFACE"] = function(uDef) return uDef.speed and uDef.speed > 78 end --78 is the speed of rezbots + categories["FASTSURFACE"] = function(uDef) return uDef.speed and uDef.speed > 78 and not (categories.UNDERWATER(uDef) and categories.MOBILE(uDef)) and not categories.VTOL(uDef) end --78 is the speed of rezbots, the fastest intentional exclusion. categories["NOTMOBILE"] = function(uDef) return not categories.MOBILE(uDef) end categories["WEAPON"] = function(uDef) return uDef.weapondefs ~= nil end categories["NOWEAPON"] = function(uDef) return not categories.WEAPON(uDef) end From 3182062e9ac7f5801bb56aca59f74c0d0dcbe41a Mon Sep 17 00:00:00 2001 From: SethDGamre Date: Thu, 23 Jan 2025 19:00:55 -0600 Subject: [PATCH 3/5] Update alldefs_post.lua --- gamedata/alldefs_post.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gamedata/alldefs_post.lua b/gamedata/alldefs_post.lua index d87f29d41b0..dfc431b827b 100644 --- a/gamedata/alldefs_post.lua +++ b/gamedata/alldefs_post.lua @@ -801,7 +801,7 @@ function UnitDef_Post(name, uDef) categories["WEAPON"] = function(uDef) return uDef.weapondefs ~= nil end categories["NOWEAPON"] = function(uDef) return not categories.WEAPON(uDef) end categories["VTOL"] = function(uDef) return uDef.canfly == true end - categories["NOTAIR"] = function(uDef) return not categories.VTOL(uDef) end + categories["NOTAIR"] = function(uDef) return not categories.VTOL(uDef) end categories["HOVER"] = function(uDef) return hoverList[uDef.movementclass] and (uDef.maxwaterdepth == nil or uDef.maxwaterdepth < 1) end -- convertible tank/boats have maxwaterdepth categories["NOTHOVER"] = function(uDef) return not categories.HOVER(uDef) end categories["SHIP"] = function(uDef) return shipList[uDef.movementclass] or (hoverList[uDef.movementclass] and uDef.maxwaterdepth and uDef.maxwaterdepth >=1) end From dab41b8c307ee83f9a8d1e28c2629d448aefece7 Mon Sep 17 00:00:00 2001 From: SethDGamre Date: Thu, 23 Jan 2025 20:47:17 -0600 Subject: [PATCH 4/5] move until after the other categories --- gamedata/alldefs_post.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gamedata/alldefs_post.lua b/gamedata/alldefs_post.lua index dfc431b827b..ad1b3fa6da5 100644 --- a/gamedata/alldefs_post.lua +++ b/gamedata/alldefs_post.lua @@ -796,7 +796,6 @@ function UnitDef_Post(name, uDef) categories["ALL"] = function() return true end categories["MOBILE"] = function(uDef) return uDef.speed and uDef.speed > 0 end - categories["FASTSURFACE"] = function(uDef) return uDef.speed and uDef.speed > 78 and not (categories.UNDERWATER(uDef) and categories.MOBILE(uDef)) and not categories.VTOL(uDef) end --78 is the speed of rezbots, the fastest intentional exclusion. categories["NOTMOBILE"] = function(uDef) return not categories.MOBILE(uDef) end categories["WEAPON"] = function(uDef) return uDef.weapondefs ~= nil end categories["NOWEAPON"] = function(uDef) return not categories.WEAPON(uDef) end @@ -813,6 +812,7 @@ function UnitDef_Post(name, uDef) categories["MINE"] = function(uDef) return uDef.weapondefs and uDef.weapondefs.minerange end categories["COMMANDER"] = function(uDef) return commanderList[uDef.movementclass] end categories["EMPABLE"] = function(uDef) return categories.SURFACE(uDef) and uDef.customparams and uDef.customparams.paralyzemultiplier ~= 0 end + categories["FASTSURFACE"] = function(uDef) return uDef.speed and uDef.speed > 78 and not (categories.UNDERWATER(uDef) and categories.MOBILE(uDef)) and not categories.VTOL(uDef) end --78 is the speed of rezbots, the fastest intentional exclusion. uDef.category = uDef.category or "" if not string.find(uDef.category, "OBJECT") then -- objects should not be targetable and therefore are not assigned any other category From f390d3d64131f343fa71a2206477cb38e7bbc130 Mon Sep 17 00:00:00 2001 From: SethDGamre Date: Thu, 6 Feb 2025 14:28:32 -0600 Subject: [PATCH 5/5] did as zecrus suggested --- gamedata/alldefs_post.lua | 2 +- units/ArmBuildings/LandDefenceOffence/armamb.lua | 4 +--- units/ArmBuildings/LandDefenceOffence/armguard.lua | 4 +--- units/ArmGantry/armvang.lua | 4 +--- units/CorBuildings/LandDefenceOffence/corpun.lua | 4 +--- units/CorBuildings/LandDefenceOffence/cortoast.lua | 4 +--- units/Legion/Defenses/legacluster.lua | 4 +--- units/Legion/Defenses/legcluster.lua | 4 +--- 8 files changed, 8 insertions(+), 22 deletions(-) diff --git a/gamedata/alldefs_post.lua b/gamedata/alldefs_post.lua index ad1b3fa6da5..568bed47177 100644 --- a/gamedata/alldefs_post.lua +++ b/gamedata/alldefs_post.lua @@ -812,7 +812,7 @@ function UnitDef_Post(name, uDef) categories["MINE"] = function(uDef) return uDef.weapondefs and uDef.weapondefs.minerange end categories["COMMANDER"] = function(uDef) return commanderList[uDef.movementclass] end categories["EMPABLE"] = function(uDef) return categories.SURFACE(uDef) and uDef.customparams and uDef.customparams.paralyzemultiplier ~= 0 end - categories["FASTSURFACE"] = function(uDef) return uDef.speed and uDef.speed > 78 and not (categories.UNDERWATER(uDef) and categories.MOBILE(uDef)) and not categories.VTOL(uDef) end --78 is the speed of rezbots, the fastest intentional exclusion. + categories["SURFACERAIDER"] = function(uDef) return not uDef.workertime and uDef.speed and uDef.speed > 70 and not (categories.UNDERWATER(uDef) and categories.MOBILE(uDef)) and not categories.VTOL(uDef) end --78 is the speed of rezbots, the fastest intentional exclusion. uDef.category = uDef.category or "" if not string.find(uDef.category, "OBJECT") then -- objects should not be targetable and therefore are not assigned any other category diff --git a/units/ArmBuildings/LandDefenceOffence/armamb.lua b/units/ArmBuildings/LandDefenceOffence/armamb.lua index 5da72175d3c..13edeb3b3dd 100644 --- a/units/ArmBuildings/LandDefenceOffence/armamb.lua +++ b/units/ArmBuildings/LandDefenceOffence/armamb.lua @@ -208,19 +208,17 @@ return { }, weapons = { [1] = { - badtargetcategory = "FASTSURFACE", def = "ARMAMB_GUN", maindir = "0 1 0", maxangledif = 230, onlytargetcategory = "SURFACE", }, [2] = { - badtargetcategory = "FASTSURFACE", + badtargetcategory = "SURFACERAIDER", def = "ARMAMB_GUN_HIGH", onlytargetcategory = "SURFACE", }, [3] = { - badtargetcategory = "FASTSURFACE", def = "smart_trajectory_dummy", maindir = "0 1 0", maxangledif = 230, diff --git a/units/ArmBuildings/LandDefenceOffence/armguard.lua b/units/ArmBuildings/LandDefenceOffence/armguard.lua index 128f6a3bfc4..cb20d7064ad 100644 --- a/units/ArmBuildings/LandDefenceOffence/armguard.lua +++ b/units/ArmBuildings/LandDefenceOffence/armguard.lua @@ -200,19 +200,17 @@ return { }, weapons = { [1] = { - badtargetcategory = "FASTSURFACE", def = "PLASMA", maindir = "0 1 0", maxangledif = 230, onlytargetcategory = "SURFACE", }, [2] = { - badtargetcategory = "FASTSURFACE", + badtargetcategory = "SURFACERAIDER", def = "PLASMA_HIGH", onlytargetcategory = "SURFACE", }, [3] = { - badtargetcategory = "VTOL", def = "smart_trajectory_dummy", maindir = "0 1 0", maxangledif = 230, diff --git a/units/ArmGantry/armvang.lua b/units/ArmGantry/armvang.lua index 5c57b8bf361..7674f3c1eec 100644 --- a/units/ArmGantry/armvang.lua +++ b/units/ArmGantry/armvang.lua @@ -220,17 +220,15 @@ return { }, weapons = { [1] = { - badtargetcategory = "FASTSURFACE", def = "SHOCKER_LOW", onlytargetcategory = "SURFACE", }, [2] = { - badtargetcategory = "FASTSURFACE", + badtargetcategory = "SURFACERAIDER", def = "SHOCKER_HIGH", onlytargetcategory = "SURFACE", }, [3] = { - badtargetcategory = "FASTSURFACE", def = "smart_trajectory_dummy", onlytargetcategory = "SURFACE", }, diff --git a/units/CorBuildings/LandDefenceOffence/corpun.lua b/units/CorBuildings/LandDefenceOffence/corpun.lua index a16ea675883..3a06f042fe1 100644 --- a/units/CorBuildings/LandDefenceOffence/corpun.lua +++ b/units/CorBuildings/LandDefenceOffence/corpun.lua @@ -202,19 +202,17 @@ return { }, weapons = { [1] = { - badtargetcategory = "FASTSURFACE", def = "PLASMA", maindir = "0 1 0", maxangledif = 230, onlytargetcategory = "SURFACE", }, [2] = { - badtargetcategory = "FASTSURFACE", + badtargetcategory = "SURFACERAIDER", def = "PLASMA_HIGH", onlytargetcategory = "SURFACE", }, [3] = { - badtargetcategory = "FASTSURFACE", def = "smart_trajectory_dummy", maindir = "0 1 0", maxangledif = 230, diff --git a/units/CorBuildings/LandDefenceOffence/cortoast.lua b/units/CorBuildings/LandDefenceOffence/cortoast.lua index ca54eae2213..6fff62adabd 100644 --- a/units/CorBuildings/LandDefenceOffence/cortoast.lua +++ b/units/CorBuildings/LandDefenceOffence/cortoast.lua @@ -209,19 +209,17 @@ return { }, weapons = { [1] = { - badtargetcategory = "FASTSURFACE", def = "CORTOAST_GUN", maindir = "0 1 0", maxangledif = 230, onlytargetcategory = "SURFACE", }, [2] = { - badtargetcategory = "FASTSURFACE", + badtargetcategory = "SURFACERAIDER", def = "CORTOAST_GUN_HIGH", onlytargetcategory = "SURFACE", }, [3] = { - badtargetcategory = "FASTSURFACE", def = "smart_trajectory_dummy", maindir = "0 1 0", maxangledif = 230, diff --git a/units/Legion/Defenses/legacluster.lua b/units/Legion/Defenses/legacluster.lua index cb154a1071f..56ce294e618 100644 --- a/units/Legion/Defenses/legacluster.lua +++ b/units/Legion/Defenses/legacluster.lua @@ -247,19 +247,17 @@ return { }, weapons = { [1] = { - badtargetcategory = "FASTSURFACE", def = "PLASMA", maindir = "0 1 0", maxangledif = 230, onlytargetcategory = "SURFACE", }, [2] = { - badtargetcategory = "FASTSURFACE", + badtargetcategory = "SURFACERAIDER", def = "PLASMA_HIGH", onlytargetcategory = "SURFACE", }, [3] = { - badtargetcategory = "FASTSURFACE", def = "smart_trajectory_dummy", maindir = "0 1 0", maxangledif = 230, diff --git a/units/Legion/Defenses/legcluster.lua b/units/Legion/Defenses/legcluster.lua index d9487057584..128d54aa14a 100644 --- a/units/Legion/Defenses/legcluster.lua +++ b/units/Legion/Defenses/legcluster.lua @@ -234,19 +234,17 @@ return { }, weapons = { [1] = { - badtargetcategory = "FASTSURFACE", def = "PLASMA", maindir = "0 1 0", maxangledif = 230, onlytargetcategory = "SURFACE", }, [2] = { - badtargetcategory = "FASTSURFACE", + badtargetcategory = "SURFACERAIDER", def = "PLASMA_HIGH", onlytargetcategory = "SURFACE", }, [3] = { - badtargetcategory = "FASTSURFACE", def = "smart_trajectory_dummy", maindir = "0 1 0", maxangledif = 230,