Interkarma / daggerfall-unity

Open source recreation of Daggerfall in the Unity engine
http://www.dfworkshop.net
MIT License
2.74k stars 332 forks source link

Handle being silenced during casting animation #2686

Open petchema opened 3 months ago

petchema commented 3 months ago

If player is silenced, only readySpell is reset by SilenceCheck(): https://github.com/Interkarma/daggerfall-unity/blob/master/Assets/Scripts/Game/MagicAndEffects/EntityEffectManager.cs#L1941

If this happens during spellcasting animation, castInProgress is true, and stays at true after the animation is finished because the first thing PlayerSpellCasting_OnReleaseFrame() checks is whether readySpell is not null: https://github.com/Interkarma/daggerfall-unity/blob/master/Assets/Scripts/Game/MagicAndEffects/EntityEffectManager.cs#L2101

Consequently, player cannot cast spells until (s)he reload a game.

This PR resets castInProgress unconditionally at the beginning of PlayerSpellCasting_OnReleaseFrame(), which is consistent with the animation being over.

Forums: https://forums.dfworkshop.net/viewtopic.php?t=6763