Does 'cures' ability work for all adjacent units?

Both the in-game help and this wiki page say only:

A curer can cure a unit of poison, although that unit receive no additional healing on the turn it is cured of the poison.

Basing on the exact wording (a curer can cure a unit) it would seem that it works only on one unit, but corresponding text for "heals" abilities also uses singular form (a unit cared for by this healer) and they work for all adjacent units.


This is sort of annoying to test, so I took to the source instead. According to heal.cpp, curing and healing are actually the same ability (distinguished by a flag), so they work the same way. In particular, the loop starting at line 110 actually loops over all "heals" abilities provided by neighbors of the victim (that's not what it looks like because of a poor naming scheme, but that's what patient.get_abilities("heals") does) and looks for whichever neighbor has the strongest "poison" property on their "heals" ability. This property represents how good they are at curing poison: whether they can cure it, or only slow it down (which prevents it from dealing damage but doesn't fix it), or can't affect poisoned patients at all. There's no limit to how many patients a particular ability can cure; it's never checked, and it wouldn't really be fun to play that way, because there's no way for the player to choose which one he wants.

This poison_progress() function is called at line 323, which is the main entry point for the entire healing subsystem. There's also a comment on line 291 supporting the theory that a healer (or curer) can have any number of patients.