RimWorld

RimWorld

93 ratings
Turrets Shoot Hunting Predators
   
Award
Favorite
Favorited
Unfavorite
Mod, 1.4, 1.5, 1.6
File Size
Posted
Updated
450.866 KB
13 Apr, 2024 @ 3:04pm
8 Sep @ 12:15pm
6 Change Notes ( view )

Subscribe to download
Turrets Shoot Hunting Predators

Description


Something that I feel should always have been vanilla behavior. Turrets now target predators hunting your pawns.

As of 1.6, Hugslib is NO LONGER required.
For versions below 1.6, Hugslib is still required!!!

How it works:

The mod now directly uses a harmony postfix patch to change the TryFindNewTarget method for turrets, adding an operation at the very end of the line if there is already not a valid target, in order to maximize compatibility with other mods.

After that, it gets animal pawns that pass basic checks when turrets are looking for targets and checks if they have the predator hunt job, then checks for a few more things such as visibility, fog, etc before giving the go ahead.

This mod ALSO fixes the error of a turret firing at an animal causing an ideology instigation error, a vanilla problem.

Incompatibility List

Animals Logic (Has logic to handle this already, but I felt it didn't work at times, which is why I made this patch.)
Their function to shoot hunting predators can be disabled in their mod options, so you can still use all the logic from it alongside this as long as you disable that.
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=1098354593

Combat Extended Drastically changes targeting checks. As this hooks into vanilla checks to do what it does, this mod ceases to function.
https://gtm.steamproxy.vip/workshop/filedetails/?id=2890901044

Any mod that replaces the vanilla turret TryFindNewTarget functions entirely instead of patching them



Credits: Baal Evan from Turret Auto Hunt for idea and code snippet I started developing this on.
24 Comments
Archie  [author] 8 Sep @ 12:26pm 
I ran quite a few dev quicktests on maps with a lot of animals and a lot of turrets and the performance hit is seemingly completely negligible (used Dubs' analyzer for profiling) so this new method should be fine!
Let me know if anything goes wrong and I can revert to the previous method.
Archie  [author] 8 Sep @ 12:24pm 
Hugslib requirement REMOVED for 1.6.
Versions below 1.6 still require Hugslib.
Pheace 13 Jul @ 8:34am 
Thanks for trying anyway. Agreed performance is a crucial thing here.
Archie  [author] 13 Jul @ 8:31am 
I tried, but unfortunately I need to hook into a function that hugslib has that is called whenever a map is loaded. That's when the cache of predators that are manhunting gets repopulated. I could simply do away with the cache approach but the performance impact would be heavier, I feel.

And given how turrets already cause a decent performance impact by default if you have too many of them, I'm worried doing this could be a problem.
Pheace 13 Jul @ 8:00am 
Thanks for the update. Any chance hugslib requirement could be removed?
Archie  [author] 11 Jul @ 10:08am 
Update out. Either wait for the official hugslib to be updated or use the community fork that is already updated for 1.6. Happy hunting!
Archie  [author] 4 Jul @ 5:25pm 
When 1.6 comes out. :bfengineer:
thorman123456789 4 Jul @ 12:40pm 
1.6 please?
Archie  [author] 14 Dec, 2024 @ 8:16pm 
Also I do not remember what adds those walls but they were reinforced walls.
Archie  [author] 14 Dec, 2024 @ 8:16pm 
I unfortunately don't think I can. CE has its own patches that replace the TryFindNewTarger function and depends on its own functionality, sorry chief.