Jump to content

Either whale carcasses aren't supposed to be advanceable by explosions, or


Faintly Macabre
  • Version: PC/MAC/Linux Pending

The bloating stages of a whale carcass can be advanced by things the game considers explosives, which includes the boat cannon and dragoon eggs from volcano eruptions. This has been fairly well-known for a long while and was assumed to be a feature, but while investigating a related issue I reviewed the relevant code and I'm not sure it was. The reason this happens is because carcasses have the workable component (though they're not actually workable until the final bloating stage) and explosives do their "damage" to things without HP (mostly structures) by "working" them; the workfinishedcallback function for whale carcasses tells the code to do DoGrowth. The code uses this to advance to the exploding state when the player hacks it in the "final" stage of bloating, but since explosives technically "work" objects, this just advances them to the next bloating stage regardless of which one it's in.

IF this is intended behavior, then the issue becomes that once you use an explosive to advance the bloating stage of a whale carcass, it's no longer possible to work it anymore by any means, because its WorkLeft is now 0. WorkLeft is only set when the object is created and isn't reset as the stages advance (which is why I don't think this was intended behavior). Because of this, even if the carcass advances to the stage where a player should be able to hack it with the machete, they won't be able to, and will be forced to wait for the carcass to explode on its own; the only way around this is to save, quit, and reload the game, which will cause the carcass's WorkLeft to be reset since it isn't saved to file. If somehow both the explosive advance and inability to work the carcass further ARE intended, then the problem becomes that saving and quitting becomes an exploit to get around the latter.


Steps to Reproduce
Find a whale in its second stage and fire the boat cannon at it.



User Feedback


The explosion was "working" the whale carcass even though the workable component was not set to be working. I added that check into the explosion code, so now you won't be able to use explosions to advance the carcass until it's in the workable state, where it will explode when hit by the explosion.

Share this comment


Link to comment
Share on other sites


×
  • Create New...