sumghai / MedPod

Advanced regenerative medical beds for RimWorld
Other
14 stars 15 forks source link

Blacklisted addiction hediff causes pawn to be stuck getting treated #30

Closed MarsM0nd closed 3 years ago

MarsM0nd commented 3 years ago

If you want to patch an addiction hediff, or any other hediff that will make ShouldPawnSeekMedPod return true, that will cause the pawn to be stuck in a treatment loop. They will enter for any reason, get healed, medpod see the blacklisted hediff and ignores it, after the treatment is finished, the pawn won't get up from the pod, as they belive they still have a treatable hediff, and it loops. Can be easily reproduced with just this mod and one that patches a vanilla addiction into the blacklist.

sumghai commented 3 years ago

Bug confirmed - I reproduced this issue by blacklisting AlcoholAddiction as an example.

I'll have to investigate this a bit further - looks like the diagnosis logic is wonky yet again.

sumghai commented 3 years ago

@MarsM0nd - Please test the following development build to see if it fixes your issue:

https://github.com/sumghai/MedPod/archive/3b9cb8ad5292b5ed3ea035e19a2ed825c35d7724.zip

MarsM0nd commented 3 years ago

That fixes the issue i had, yes. It's still possible to get this stuck behaviour by blacklisting MissingBodyPart, but that would be another issue, and probably more of a feature request.

sumghai commented 3 years ago

That fixes the issue i had, yes.

Excellent!

It's still possible to get this stuck behaviour by blacklisting MissingBodyPart, but that would be another issue, and probably more of a feature request.

A cursory glance of ShouldPawnSeekMedPod() suggests this could be fixed there as well, so I'm going to consider it as part of the same issue.

sumghai commented 3 years ago

Okay @MarsM0nd, now try this dev build, with and without blacklisting the MissingBodyPart hediff in your patches:

https://github.com/sumghai/MedPod/archive/518bc687522fb87b6e92c64797af032a9de6cd10.zip

sumghai commented 3 years ago

@MarsM0nd did not respond in a timely manner, so I only have my own testing to confirm that this issue has been fixed.