CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.68k stars 4.19k forks source link

[Xedra Evolved] Stealing ruach from Dinos/Megafauna causes the game to crash. #78069

Open Cddasurvivor opened 4 days ago

Cddasurvivor commented 4 days ago

Describe the bug

If you attempt to steal ruach from a dino it causes a stacktrace crash saying bad function call.

test _2024-11-21T20-52-27

Attach save file

Boogeraids-trimmed.tar.gz

Steps to reproduce

1)Make a Lilit character. 2)Cast Enervating Touch on a dinosaur. 3)Stack Trace Error.

Expected behavior

The game shouldn't crash and you gain ruach.

Screenshots

n/a

Versions and configuration

Additional context

Apparently dinosaurs have no soul.

Cddasurvivor commented 4 days ago

Noticed it crashes to when I try to steal ruach from anything using megafauna mod as well

Standing-Storm commented 4 days ago

/confirmed

That's definitely odd. The only failstate it should have is to do nothing and give you a message to that effect (checked that with a nearby zombie and it works)

crash.log

Standing-Storm commented 3 days ago

Further testing--it happens on a normal animal as well, not just a dinosaur. Dinomod is not necessary to cause the crash.

Relevant part of the EoC is here (and lines following): https://github.com/CleverRaven/Cataclysm-DDA/blob/d42cfd9adae589f98d6a4041b038f1caa62f94b4/data/mods/Xedra_Evolved/spells/lilin_spell_eocs.json#L108

Standing-Storm commented 14 hours ago

Okay, went through each stage of the EoC

NPCs: works Ferals/renfields/humans/changelings: works Migo/triffids: crashes Nether: crashes Arvore/Ierde/etc/Vampire: crashes Animal: Crashes Insect/Spider: Crashes Fallback at the end for anything else: crashes. Which is pretty odd because you can see I checked it three days ago and it worked then.

Edit: I thought the problem might be #77883 splitting the drain EoC into two stages (to prevent lilin from draining ruach in owl or strix form) but recombining them does not fix the crash

Standing-Storm commented 14 hours ago

Further testing--if I delete everything in the EoC except the plant/migo condition and try to drain a triffid, it works, so it's something about the way the if conditions are being handled. Everything after the first else is broken