-
Notifications
You must be signed in to change notification settings - Fork 272
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(balance): allow reading at penalty with full night vision, other visual/detection improvements #4172
feat(balance): allow reading at penalty with full night vision, other visual/detection improvements #4172
Conversation
…, other visual/detection improvements
I'm kinda iffy on FNV allowing you to read books. How would that even works, magic blob causes your eyes to magnify photons like night vision goggles do? |
Sounds about right to be honest: "description": "You can see in pitch blackness as if you were wearing night-vision goggles. Activate to toggle NV-visible areas on or off.", There likely is some degree of light-amplification or possibly near-infrared involved, especially for Elfa-A and Trog mutants that get it. As noted, it's still the absolute bare minimum bonus to be able to read at all, which means it's slower than reading in proper lighting. |
Would be nice to have it spelled out in the description if that's the case. |
Co-Authored-By: joveeater <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
code duplication pain
Purpose of change
This assembles together an assortment of minor vision/detection-related tweaks and improvements I'd written down on my todo list. Of note is finally allowing Full Night Vision to enable reading (slowly) in the dark. :3
Describe the solution
C++ changes:
avatar_action::move
so that the "bump into walls while blind" thing also depends on if you have clairvoyance. Since clairvoyance of any strength shows you nearby walls, bumping into walls with it seems a tad pointless.Character::sees
to extend the range of detection with antennae from 3 to a more potentially useful 5. Additionally, set it so non-flying enemies are detected within this distance if you have the sonar CBM active (separate from the effect ofcan_see_with_specials
in that it allows sonar CBM to sense any monster that's on the ground if you're close enough, as opposed to getting a thermal ping from any distance). This also means that monsters detected by sonar are also indentified when you get close enough.Character::sees_with_specials
so it will show thermal blips for enemies detected by antennae and non-flying enemies close enough to a sonar user. This fixes an issue I noticed where the antennae detection only shows a detected monster on your compass (not even showing direction since it's TECHNICALLY on screen), this way enemies detected by either are properly called out visually if they're nearby in darkness.fine_detail_vision_mod
so that having Full Night Vision just barely allows you to read in complete darkness. Bonus is get such that it's zero if night vision bonus is too low, but once high enough is set to an amount that just barely enables reading in complete darkness.game::print_items_info
so that the "there's stuff here but you can't see it" messages to not display if you're able to see that tile due to clairvoyance. Again an improvement for blindness+clairvoyance, since tile-wise it shows you item sprites there just fine.game::place_player
to care if the player can see things just fine due to clairvoyance.JSON changes:
Doc updates:
night_vision_range
does in json_info.mdDescribe alternatives you've considered
Axing any of these should the potential performance impact feel too spicy.
Testing
Interesting note though: it doesn't actually show the detected monster's tile when antennae or ground sonar lets you "see" a nearby enemy, instead it just shows them on the enemy compass (not even showing direction, since it's almost always going to be an on-screen enemy at that distance). Hence having it also add a thermal marker now.
Additional context
Checklist