Perfect Parries - Souls-Like Parrying
Adds a souls/RPG precision combat mechanic where if you block at the instant where you are supposed to take damage (perfect parry), you don't lose stamina, deflect some damage, and eventually stun the attacker upon exhausting their stamina.

Perfect Parries rewards precise timing and transforms simple blocking from a passive mitigation tool into a potential counter-attack

It introduces official support for custom bosses (tested with FireMobs), and any new modded boss that gets created can easily become compatible with this mod's entity stamina system to allow for seamless stunning.
Current Features:
If you time your block at the moment the enemy's attack is landing, you deal some damage in return, don't lose extra stamina, and gain some signature energy
Compatible with custom entities and weapons; can easily add stamina system for custom bosses
Spamming block to parry will not be rewarded
/parrymod to check current settings
A successful parry will knock the opponent back a bit and have a chance to stagger them for a few seconds
VFX will play upon perfect parries, counterattacks, staggers, and stuns
Custom animation upon stunning and waking entities in fights involving parrying
Custom/special SFX will play upon perfect parries, counterattacks, staggers, and stuns
Custom parrying animations for every non-modded weapon that can block
After a successful parry, if you recieve an attack in the next 50ms it will automatically chain the parry
Counterattack: attacking right after a perfect parry deals extra damage and triggers a special hit VFX
When parrying another player, you deal a set amount of stamina damage and the time it takes for the stamina to start regenerating can also be set via the config file
Officially supports PvP with PvP specific settings and more to come based on users' requests
Entity Stamina System:
All entities will have a configurable stamina system where they get stunned (special stun and wake animation) if stamina reaches 0
A stun allows for a critical attack window (default = 2.5x damage) or rest (heal, eat, reposition, etc.)
Each parry and attack will do a different/configurable amount of stamina per mob
Config:
…modsPerfect_Parriesparry_config.json (main config for general parrying settings)
…modsPerfect_Parriespvp_config.json (config to adjust pvp settings regarding parrying)
…modsPerfect_Parriesentity_stamina.json (stamina config for vanilla entities)
…modsPerfect_Parriescustom_entity_stamina.json (stamina config for custom entities/bosses)
"parryWindowMs": 100 // the window of time you can trigger a perfect parry
"reflectDamagePercent": 0.05 // the amount of damage that is reflected upon parrying
"parryStaminaDrainMultiplier": 0.0 // the amount of stamina preserved from parrying compared to blocking normally (-1 = gain stamina from parry ; 1 = lose stamina from parry)
"knockbackX": 75.0 // the amount of horizontal knockback dealt to the parried entity
"knockbackY": 2.0 // the amount of vertical knockback dealt to the parried entity
"parriesToFullSignatureEnergy": 5 // the number of parries to reach full signature energy
"counterattackWindowMs": 400 // the window of time after a perfect parry that will trigger a counter attack
"counterattackDamageMultiplier": 1.25 // the multipler for counter attack damage
"staggerDurationSeconds": 1.5 // the amount of time an entity gets staggered (entities have a 50% chance of getting staggered upon a successful parry)
"enableEntityStamina": true // true = use Entity Stamina System
"stunDurationSeconds": 5.0 // the amount of time an entity gets staggered once stamina reaches 0 ; automatically disabled if enableEntityStamina = false
"stunnedDamageMultiplier": 2.0 // the multipler for damage towards a stunned enemy