If an infected player (or a player with infected pets) comes inside a guild storage room or inside an apartment that has a buildable floor, then the disease will potentially stay there forever. This is especially annoying for leprosy, because players cannot become immune to that disease and it does not disappear on its own.
Unfortunately, the invisible archetypes used for the diseases will prevent anything from being built there because the code checks that there is nothing on top of the buildable floor before allowing the player to build walls, gates and other items.
I can think of three ways to solve this problem:
1) Change server/build_map.c so that diseases are ignored (and maybe even removed automatically) when one tries to build something.
2) Change server/disease.c so that diseases will never propagate on top of any object that has FLAG_IS_BUILDABLE and FLAG_IS_FLOOR.
3) Add a new skill or prayer/spell that allows diseases to be removed from the floor (e.g., "disinfect"). A skill would be better than a spell so that it can also work in areas that block magic (like in guilds).
I think that the best solution is (2). This would ensure that storage rooms and apartments are safe from permanent diseases. This could also be used in cities like Scorn and Navar to prevent infection of low-level players by having two floor tiles on top of each other: a buildable one at the bottom (to block diseases) and a dungeon_magic tile on top (to block spells and building). However, as I mentioned on IRC, there is a risk that such a feature could be abused by "evil map makers". See also the comments in bug #1992235.
Logged In: YES
user_id=8913
Originator: YES
To clarify what I meant about "evil map makers" abusing "no disease" tiles: it could be tempting for some map designers to create areas that block disease (besides Scorn and Navar as suggested above). However, there are two problems with that:
- As we can already see with many maps abusing the dungeon_magic tiles, it is likely that there would not be any visual clues or other hints in the map indicating where and why diseases are blocked. This could take the player by surprise and lead to a frustrating game experience. Considering the large number of maps that block spells and/or prayers without hinting or warning the player in advance, I doubt that any "no disease" tiles would be used in a better way.
- Maps should not be impossible to complete for some race or class or player, and should not discriminate against any cult. Maps that block diseases (and other spells/prayers) would be unplayable by priests and spell casters because they would require the usage of melee or missile weapons.
Implementing "no disease" floor tiles as suggested in (2) above with FLAG_IS_FLOOR + FLAG_IS_BUILDABLE would only block the propagation of diseases via the floor. It would still allow direct infection by the "cause NNN" prayers (unless they are blocked) or by contact with an infected host.
Logged In: YES
user_id=1604414
Originator: NO
Personally I would probably go with number 3. Make it a spell, and add a dust or potion that will cast it. Then it will work in the null-magic zones too, and anybody can buy one at the store and use it.