Grimrukh / soulstruct

Python tools for inspecting and modifying FromSoft games (mainly Dark Souls 1).
145 stars 16 forks source link

EVSError: Cannot yet support `not` keyword with test functions. #23

Open LukeLavan opened 1 year ago

LukeLavan commented 1 year ago

See relevant line in evs.py

The TODO comment aboves gives some hint that the EMEDF_TESTS dict should contain a 'negate' key - I'm assuming keyed with the negated test's node.id and valued with the corresponding instruction (ie, if node.id is 'PlayerHasWeapon' and negate is true, then do tests = tests['negate'] which returns {'if': 'IfPlayerDoesNotHaveWeapon'}). If the 'negate' key doesn't exist, throw NoNegateError which would then be resolved with a temporary condition by the caller here (ie, if node.id is 'PlayerInCovenant' and negate is true, then throw NoNegateError since there's no corresponding negated instruction).

Is my understanding correct and am I missing something? This is a feature that was working before so it'd be helpful to have working again. I'll try the above approach and report back the results