sumghai / MedPod

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

Unable to arrest the temporary colonists from creepjoiner event if they're holding a weapon #85

Closed ThisIsSP4RTAN closed 2 months ago

ThisIsSP4RTAN commented 2 months ago

Describe the bug:
If you attempt to arrest a temporary colonist from the creepjoiner event that's also holding a weapon, your pawn will fail to arrest them. You are also unable to force the creepjoiner to drop the weapon directly on the ground. You have to make them unload the weapon into storage. If they decide to leave and you no longer have control over them there's nothing you can do.

Expected behavior:
Colonist should arrest creepjoiner and the arrested pawn should drop their weapon

Steps to reproduce:

  1. trigger a creepjoiner event
  2. allow them to join and give them a weapon
  3. attempt to arrest them

Additional information:

https://gist.github.com/HugsLibRecordKeeper/20c11bff9b534fad974ec5a8c34a91f6 New Arrivals1.zip I've set everything up in this devtest save to quickly reproduce the bug. Simply attempt to arrest the pawn "Flesh"

System and Game Configuration

Operating System: Microsoft Windows 11 (64-bit) Physical RAM: 64 GB RimWorld base game version: 1.5.4069 RimWorld DLCs loaded: Biotech, Anomaly MedPod mod version: 1.5.21 MedPod mod downloaded from: Steam Your mod list: Harmony 2.3.1.0, HugsLib 11.0.3, MedPod 1.5.21

Declaration

I hereby verify that:

sumghai commented 2 months ago

Excellent bug report and save file, thanks!

Looks like the fix implemented for #84 is throwing a NullRef - I'll have to poke at this a bit further.

sumghai commented 2 months ago

Turns out I should be using pawn.MapHeld instead of pawn.Map.

Could you please try the following dev build?

https://github.com/sumghai/MedPod/archive/ff69aeae2ba4d47a2c8c4a18fb37c27e499232a8.zip

sumghai commented 2 months ago

I'm getting additional reports that the fix from #84 is causing more problems that it solves, so I'll roll back those changes and do an emergency release, then figure out an alternative solution to #84.