I’ve been thinking lately about implementing large “mirriors” - walls that show a reflection instead of just darkness behind them. They’d be found in bars, dance studios, labs, etc. and so on. They act just like you are looking through a window, zombies will track to walk/smash their way through them to get to you if they see your reflection, and you can mouse over zombie reflections as normal to see descriptions and stuff, and even target them for gunfire! (I’m imagining a carnival mirrior house here, where it’s hard to tell what’s really a zombie and what’s a reflection!)
Obviously, the gunfire will hit and potentially damage the mirror instead (damaged mirrors will be immediately visible and as a "cracked’ square) unless you are using a laser weapon, which will work just fine. Coincidentally, you can also target and shoot yourself.
Neat idea. Also consider spawning vanities in bedrooms and bathrooms.
What happens if worldgen or a player places a mirror facing a mirror? What happens if the player switches between circular and rectangular distances? What happens if the player points a directed lightsource (headlights) at the mirror?
High perception and/or intelligence might let the player correctly identify the things in the mirror as “reflected X” rather than “X” on the UI. Maybe an on-viewport display, too: for instance, a color background, like with Friendly monsters.
Honestly, less for any practical reason and more because I like making myself a fancy base. Maybe it could allow you to check on your appearance when you look into it? I’d like more craftable vanity furniture in general, like sofas and fancy statues.
I think the carnival-funhouse aspect of this is pretty cheesy and doesn’t really do a whole lot for gameplay, but I do like the idea of using them to enhance the character’s LoS like with vehicle mirrors. At my work, there are lots of long hallways that form H style patterns, with convex mirrors at the edges of the horizontal hallways so people don’t run into each other. If the layouts of labs were changed to use winding hallways instead of a series of closets, it could provide some interesting gameplay if you could use them to scope out and possibly avoid hot areas. Representing it in-game would be interesting, as it is essentially furniture that goes in the same place as a wall. A new “hanging” or “wallmounted” tag would probably be necessary to denote what can go on a wall or not.
Making it strictly project FOV/LOS arround corners is some decent work but not too hard. Making it draw an actual “mirror image” behind the mirror would require doing horrific things to the rendering code, and for little benefit. (Remember the mirrors in Duke Nukem 3D? yea, that’s about what we’d get out of it. Except this would be harder to implement than that.)
I think I can see where you’re coming from, but what you’re proposing isn’t the same as what has been proposed in the past. Having a mirror reveal more of the map is what has been proposed previously, and is fairly straightforward. Projecting the contents of the map “mirrored” is actually pretty complicated, and has to override the map rendering code.
Also the two effects interact badly. The one kind of mirror can reveal terrain around a corner, but stays consistent because it just shows what is actually there. The other kind of mirror displays a false image, but maintains consistency because it only projects this false image into an area that it blocks. If you combine the two you cause a situation where you can see around a corner with mirror type 1 into an area that mirror type 2 is using to project a false image.
Funsizeninja: do ?1 and scroll down to Peek, I don’ recall what it’s mapped to. When you peek, you can shift your point of view to a square next to the one you’re actually on, so shift around a corner to check for monsters without exposing yourself.
Perhaps a single space (room) with enough punch to the suprise effect; a 20x20 can have so much mirrors, only it should have a dubious value for real, very tough opponents. Icey cavern and a zombear or a few. Press Spacebar.