Patch name:
Check_before_applying_effect.patch
Purpose:
Adds the ability for any effect implementation to determine if it is valid to add it to the target. Because you can no longer guarantee that an effect will be successfully added, it changes the contract of applying an effect.
All code that calls CreateEffect has been refactored to use TryCreateEffect (following the .NET paradigm for actions that may fail), although CreateEffect has been retained for any developers that still wish to use it.
----
Feel free to rip the patch to shreds. I don't mind a friendly argument!
Nos.