Using new invisibiliy types to simulate other senses

WilliamOfOrange

Emperor
Joined
Jul 17, 2003
Messages
1,014
Location
Lincolnshire, UK
I have been working on a modmod of Orbis, the modmod of FfH but will post the question here as I feel it will develop into a nice little discussion thread. If the moderators think it should be moved, then please move it.

What I would like to do is use invisibility types to simulate sense such as smell, hearing and perhaps others such as psychic abilities for fantasy mods or radar, electric impulses, etc. for sci-fi mods. Using the wonderful editor developed by Kael and expanded upon by Ahwaric in his Orbis modmod, I was hoping to add abilities to "see" units other than by increasing their visibility range. I was also hoping to have varying degrees to which a unit will "hear", "smell", or sense another unit.

That's what I want and here's a simple example what I figure is possible right now and what I hope we can implement:

The Idea
Spoiler :

1. Give all units a baseline promotion with the following invisibilities: INVISIBLE_VISION, INVISIBLE_HEARING. We'll just use these the two for now.

2. In addition to that same baseline promotion, give all units the ability to see the INVISIBLE_VISION using another promotion. Let's call it Vision Sense (:rolleyes: lame, I know, but it's just a rough example)

3. Now, for any unit, such as a tracker, hunter, etc. use the spell system to buff the caster with a promotion that block the promotion Vision Sense and add the promotion Listening, which allows the unit to "see" INVISIBLE_HEARING.

4. The promotion Listening only lasts the duration of that turn and degrades to the original baseline promotion, the effect being that while the unit has it, it will only be able to "see" units that it can "hear". After that turn, INVISIBLE_HEARING units cannot be seen and INVISIBLE_VISION units are visible again. The reason for this set up is that it will allow a unit with better hearing than vision to have a larger vision range while sensing the INVISIBLE_HEARING units. Without that, the tracking unit with a larger visibility range could see other units not meant to be only seen with the "hearing" ability.


I hope that makes sense. There are some problems I have with how this would work:

The Problem
Spoiler :

1. The problem that I see is that this becomes an active thing, which must be done each turn. I think spells can be set to be cast each turn, however I really would like this to be a more passive thing.

2. I realize that you could add to the buff spell the ability to "smell" or detect units other ways simultaneously, but I would like the unit to be able to detect visibly invisible units that make noise or give off a scent and if that unit has say, keen hearing and smell senses, then it could detect either one or both at the same time with out explicitly having the visibility ranges for the hearing and smelling to be the same range. As it is now, the spells would either be separate and (for what I want to do) would need to be numerous to cover the various combinations of sensitivities.

3. This seems to be the only way to have differing ranges for sensing different stimuli, such as vision, hearing, smell, etc. Ultimately, I would like to have this extend to radio or a communication feature so that units cannot see other tiles on the map occupied by their own team unless they are linked by a unit with radio capabilities by being within the radio range. This could extend to several frequencies!



Here are the ideas I propose for solving the problem.

Theories for Improvement
Spoiler :

1. Add the option to have a range prereq for those promotions which are automatically gained when promotions are present. As it is now, they have to be on the same tile or within borders or not. If we could make it so that is a unit with the "noisy" promotion reveals it self to another unit if it is within the other unit's "hearing" range, but not within the visibility range, that would be more accurate. Even if the unit was not revealed explicitly, but shown as an icon denoting the activity noticed by the tracking unit or gave the unit a promotion when in the presence of another unit.

Or

2. We add different visibility types which are independent of the visibility range and basic units. I would also like to add to the promotions the ability to change the LineOfSight boolean.

OR

3. We implement a new feature separate from vision but allows units to track scents, sounds, energy fields, etc.



I am not sure what sounds best and what is possible so I am asking for everyone's input and ideas. Hopefully I have explained the desired effect well enough, but if I haven't then please ask. Thanks.
 
If you modify the DLL as well, this is pretty simple. Since you reference the editor Kael made and Ahwaric expanded on, that seems to imply the XML editor, and thus being uncomfortable with even XML modification though.


The way that invis works now (note for other readers, this is specific to Fall Further and those who imported my work) is that you can list multiple invisibility types per unit, and any unit can see them only if they can see through EVERY invisibility type on that unit.

For your purposes, you need that to be exactly reversed.

What you would do, is grant all units who have hidden their scent INVISIBLE_SCENT, units who don't reflect light would be INVISIBLE_SIGHT, units who make no noise INVISIBLE_SOUND, units who leave no tracks INVISIBLE_TRACKS and so on.

Then you would need to modify the DLL (pretty simple modification actually) to reverse the logic and only require that you see through ONE of a unit's invisible types to actually detect them. The more complicated issue though would be making sure that if the unit LACKS any specific invisibility type that other units are still able to detect them.

Another complication would be that promotions can add as many invisibility or see invisibility types as you desire, but they cannot REMOVE either of them (except by being lost of course).



What would be a bit easier probably would be to add a completely new element to visibility which works opposite of invisibility, making units more sensitive to certain "sense types" and allowing units to better mask various sense types. Then you can set up unique vision ranges for each sense type (longer/shorter than sight range) and make it so that unless a unit is masking in a given sense type, it is revealed when within range of someone who possesses said enhanced sense.

This approach would do exactly what you say you desire, but not actually link to invisibility at all, and require semi-hefty DLL work.
 
It's interesting that you say the one with the heavy DLL work would be easier. :lol:

I am very comfortable with XML editing; I was just saying the editor is wonderful because of the time it saves. In fact, I edit the VB so I can add my own items to the print out.

If one could direct me to the files needed for flipping the Boolean invisibility logic, then it might be worth a try.
 
Back
Top Bottom