ID:1841810
 
So... I wan't to be able to make different mobs have different possible "eyes" that allow them to see things differently, but as far as i can tell, the only possibilities are those hard-coded.



I'm thinking something along the lines of:

Mob-A sees things normally
Mob-B sees things with extremely high saturation and a hue shift.
Mob-C sees things in black and white and in high contrast.



What would be the best way to pull this off?

I'm using a sort of lighting system that holds a nine-digit "wavelength/amplitude" variable for each turf, including "low-freq, microwave, infra-red, red, green, blue, uv, xray, yray" that's intended to hold 16bit color lighting, and some other nonsense, that is interpretted by the mobs "eyes" on an individual basis.

There are a bunch of material datums that hold what the material absorbs, and what it reflects (as well as what it emits). The opacity and color of a material is based on the lighting on the turf, and these two variables. Then the player is intended to see it by interpretting those variables. In regards to a human, it would only be able to interpret the RGB values of the material.

The lighting on a tile is something like max(all-the-materials-emitting) and then the reflect variable uses min(16, material-color*lighting) (This actually varies... Some materials might absorb uv light and store it as energy that is slowly re-emitted in the RGB spectrum. Some of the objects heat is generally emitted in the IR spectrum for example. This allows stuff like materials that glow with radioactivity, or that glow in the dark, or that glow red when hot)
There isn't any support for shaders at present. I think it'd be awesome to support it, but my knowledge on the subject is quite limited.

What I wonder is if you might want, instead, to have different sets of icons and use /image to override the regular appearance of any object for these special views. That'd be hairy for turfs, since you'd want to remove old images out of view and add new ones as the mob moved, but it's the best solution I can think of offhand.
Alright, Thanks for the reply.

I was thinking of just using color blending, but as far as i'm aware that would make the objects color change for ALL viewers, not just viewers with whatever special sight.

The other idea was to give it an overlay that was only visible to certain viewers (using invisibility?) but then you could end up with like 5+ duplicates of every object on the map, just to see it in a different lighting.
An /image with override would let you use a custom color or appearance. The main thing is you'd need to manage those somehow.

One of the better lighting demos I ever saw calculated a lighting value of 0-8 at the corner of each tile, and had a very large (too large, really) icon that contained states for each permutation, overlaying that on the screen. It used areas because at the time that was faster than most alternatives, but since BYOND 505 it might be feasible to do things differently now.
I'd really just like some process that allows me to modify visoutput just before it hits mob.eye or whatever