diasurgical / devilutionX

Diablo build for modern operating systems
Other
8.01k stars 786 forks source link

Fix Wall Spells on objects #7364

Closed kphoenix137 closed 3 weeks ago

kphoenix137 commented 1 month ago

Fixes: https://github.com/diasurgical/devilutionX/issues/7323

@NiteKat enjoy

Completely removes the check for objects when attempting to find a valid position for Fire Wall/Lightning Wall. Seems rather absurd that objects force walls to move to another position, but the wall will happily grow over objects.

NiteKat commented 1 month ago

How does this behave with casting on closed doors/shrines/other solid objects that are not destructible? Does it feel weird the way it behaves in those cases?

kphoenix137 commented 1 month ago

How does this behave with casting on closed doors/shrines/other solid objects that are not destructible? Does it feel weird the way it behaves in those cases?

@NiteKat

Original logic:

Wall casting logic:

Wall growing logic:

Revised logic:

Wall casting logic:

Wall growing logic:

Expanding upon this explanation, a closed door counts as a solid tile, so a wall cannot grow or be casted on these no matter what. I'm sure in the original logic, an open doorway counts as a non-solid tile, however that tile is occupied by an object which would prevent casting a wall on its location, however with my fix you can.