luciensadi / AwakeMUD

The Community Edition fork of the 'Awakened Worlds' Shadowrun 3 MUD codebase.
Other
55 stars 30 forks source link

If you can't see ch, you don't see their movement #734

Closed jdevnull closed 4 months ago

jdevnull commented 4 months ago

Previously, should_tch_see_chs_movement_message didn't check for invisibility. This meant that guards could become alerted even though they couldn't see/attack the character. The character would also see messaging as if the guard did see through their invis. This PR adds a can_see_through_invis check to should_tch_see_chs_movement_message.

This addresses: https://discord.com/channels/564618629467996170/788953927269613608/1211114620618805313

Alternatively, if we want guards to be able to become alerted through contextual clues despite not being able to see the char ("hey, did somebody just come through that door/bump the trash can/kick a pebble"), we might want to fix the messaging, and also make it a roll instead of being automatic.

luciensadi commented 4 months ago

I'm not sure a blanket immunity to being spotted is the right move here. Someone who isn't sneaking will make noise on entry, and someone who is sneaking should still have the potential to be heard during movement, just at a max visibility TN.

jdevnull commented 4 months ago

What should the mechanics of this look like? If they have a stealth spell active, would that be enough? If they don't have a stealth spell active and are not sneaking, then what percentage odds should we aim for?

jdevnull commented 4 months ago

Max visibility TN modifier is +8. Assuming no other contributions and rolling int as normal for perception checks, we're looking at 45% chance at 4 dice, 70% chance at 8 dice. I believe elite guards have 8 dice.

jdevnull commented 4 months ago

Revised should_tch_see_chs_movement_message so that there is now always a check, regardless of sneaking or invis. Specifically, invis without sneaking will no longer be an automatic detection, and invis + sneaking will no longer be an automatic non-detection. In addition, conditions (darkness spell, wound penalties, etc) can now make noticing movement non-trivial even when the moving character is neither invisible nor sneaking.

Also improved messaging in send_npc_newly_alarmed_message for the case where tch has noticed ch but can't actually see ch.

A concern is that there's a lot of movement that happens in the mud, so this could be a significant increase in processing. Added an escape case should both tch and ch be NPCs, though there's a question as to whether this case should result in always TRUE or FALSE.

jdevnull commented 4 months ago

Added spirit concealment power and fixed how I was handling invis vs other penalties.