# Description
This PR un-hardcodes the JukeSystem timer, such that individual NPC HTN
Blackboards can directly state how often, and how far they wish to juke.
The effect of this is that NPCs are no longer completely impossible to
hit with left-clicks in melee combat, while also allowing for more
"Elite" enemies that juke more aggressively and more often to be
created.
Additionally, by introducing an exit condition based on this new "Juke
Cooldown", I have made the Juke Operator run a metric shitload of
expensive calculations 5000 times less often.
<details><summary><h1>Media</h1></summary>
<p>
Melee enemy with the new default juke settings, 0.5 second juke
duration, with 5 second juke Cooldown. The reagent slime will attempt to
close to melee with its enemy, but will now only attempt to evade melee
attacks once per 5 seconds. They will otherwise attempt to stay within
melee range.
https://github.com/user-attachments/assets/653e2064-e404-4be6-a958-da43096de502
</p>
</details>
# Changelog
🆑
- tweak: JukeOperator now allows for JukeDuration and JukeCooldown
arguments. JukeCooldown is a new feature where enemies must wait an
amount of time in seconds equal to the JukeCooldown, before they are
allowed to attempt to dodge a melee attack.
- tweak: By default, NPCs will only attempt to dodge attacks once every
5 seconds.
- fix: JukeOperator now performs extremely expensive math 5000 times
less often. EXIT CONDITIONS PEOPLE!
* NPC steering blending
Significantly more stable than using LastSteerDirection and also AntiStuck never got tripped locally when I was running around. I also left future notes for me to cleanup the pathfinder in future.
* Remove index
(cherry picked from commit f819404f6d1757ae4c541f5e856dfc1fc5d9895b)
Also includes some (non critical) changes to the solution file to re-organize the Roslyn components.
(cherry picked from commit e00f74505c62310bd15aeaba8d6530f648397074)
* Psionics
It's a ton of stuff relating to the basic Psionics system and all the powers.
I'm saving this as a bit of a sanity check before moving forward.
Left to do:
1. Implementing the Psionic faction so that the chat works as intended.
2. Adding the start-state cooldown timers to the actions.
* Cleaned up everything with the word 'Psionic' on it.
Got the psionic chat working. Got some other stuff working
* Some final psionic cleanup.
The last batch of content.
* Update RobustToolbox
* rebased
* Revert "Update RobustToolbox"
This reverts commit c0cf35d03f828f6ccfeb05fcffd91cf074818fc9.
* Update RobustToolbox
* Revert "Update RobustToolbox"
This reverts commit c4dc828df7912e063ea856b2a83a790bc88d1e09.
* Update RobustToolbox
* Psionics
It's a ton of stuff relating to the basic Psionics system and all the powers.
I'm saving this as a bit of a sanity check before moving forward.
Left to do:
1. Implementing the Psionic faction so that the chat works as intended.
2. Adding the start-state cooldown timers to the actions.
* Cleaned up everything with the word 'Psionic' on it.
Got the psionic chat working. Got some other stuff working
* Some final psionic cleanup.
The last batch of content.
* rebased
* Cleaned up everything with the word 'Psionic' on it.
Got the psionic chat working. Got some other stuff working
* Broken Commit
With these changes in place, the unit does not work. Recording them so i don't lose my work.
* Brings it All Together.
Dawn of the final Commit. Rebase completed.
* Update RobustToolbox
* Changed 'Station Events' to 'StationEvents' and cleaned up the Delta-V Events.yml file of duplicate events.
* Delete ghost_roles.yml
Duplicate.
* Update familiars.yml
* Update familiars.yml
* Update GlimmerReactiveSystem.cs
* Makes tinfoil hats craftable.
* Decided I'm not dealing with adding fugitives or Glimmer Wisps right now.
* Psionic invisibility won't work now that Eye component exists. Or at least, the integrator test won't psas.
* Update special.yml
* Added #nyanotrasen code or //Nyanotrasen code to many, many files.
* Properly fixes comments.
---------
Signed-off-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
Signed-off-by: PHCodes <47927305+PHCodes@users.noreply.github.com>
Co-authored-by: Debug <sidneymaatman@gmail.com>
Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
* Xeno spitter fixes
- Require hands for pickup compounds
- Ranged combat can force movement to ignore LOS checks if ranged wants better LOS.
* Also spirates
IDK how this worked before but TryGetGun shouldn't care about combatmode.
* 1 more
* petting fish to make him nice to you
* fix fishe, refactor a bit
* fishe
* pro
* feedback, for now
* refactor
* pro
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
- Bump the collision avoidance range, seemed okay compared to last time I tried. Means they shouldn't get caught by thindows
- Removed the steer frequency because I'm pretty sure that lead to dancing in some instances.