p4535992 / conditional-visibility

a FoundryVTT module to hide tokens from some players, but not from others
MIT License
5 stars 8 forks source link

How to use True Sight to reveal true forms #39

Closed ctbritt closed 2 years ago

ctbritt commented 2 years ago

this module is coming along really nicely! Question for you: How would I handle True Sight revealing an actor's true form? I've watched the video you posted in Discord, but can't seem to quite figure it out.

I have a doppelgänger who's disguised as an elderly human. I want his true form to be revealed if someone casts True Sight on themselves. How would I do that?

Thanks! Chris

p4535992 commented 2 years ago

This should work.

Source Token ATCV effect "True Sight (CV)" here the active effec changes: ATCV.truesight = 30 ATCV.conditionType = 'sense'

Target Token ATCV effect "Dopplenganger (CV)" here the active effect changes: ATCV.doppleganger = 25 ATCV.conditionType = 'condition' ATCV.conditionSourceImage = 'path to image' ATCV.conditionSources=truesight

Warning there are already some backward compatibility issues so do some testing in a test world

ctbritt commented 2 years ago

Hm. That's not working. It just hides the token from someone without True Sight. Here is my setup:

player token:

Screen Shot 2022-05-30 at 2 53 50 PM

doppelgänger token:

Screen Shot 2022-05-30 at 2 54 39 PM

I've. tried this with all modules except CV and its dependencies turned off. No good. Doppelganger's token image is a human figure. the ConditionSourceImage is the actual true form image. Is that right?

p4535992 commented 2 years ago

The configuration seem right, enable module 'debug' settings and pass me the logs of the browser.

ctbritt commented 2 years ago

OK. So, Miabella has truesight to 30 feet. Itilda does not. (Normal vision). Xerephon is the doppel ganger with the Doppelgänger (CV) effect

When clicking Itilda, debug report (Xerephon token vanishes):

DEBUG | conditional-visibility | (3.6) 'Itilda' with sourceVisionLevels = [] 
lib.js:89 DEBUG | conditional-visibility | (3.7) 'Xerophon' with targetVisionLevels = [
    {
        "visionName": "Doppelganger (CV)",
        "visionIcon": "",
        "visionId": "doppelganger",
        "visionLevelValue": 1,
        "visionType": "condition",
        "visionSources": [
            "truesight"
        ],
        "visionSourceImage": "s3/tokens/forgotten%20adventures/Creatures/Monstrosity/Doppelganger_Medium_Monstrosity_05.webp",
        "visionIsDisabled": false
    }
] 
lib.js:89 DEBUG | conditional-visibility | FINAL => 'Itilda' can't see 'Xerophon' 
lib.js:89 DEBUG | conditional-visibility | (3.6) 'Itilda' with sourceVisionLevels = [] 
lib.js:89 DEBUG | conditional-visibility | (3.7) 'Miabella' with targetVisionLevels = [] 
lib.js:89 DEBUG | conditional-visibility | (4.3) Is true, 'Itilda' can see 'Miabella' 

When clicking Miabella, debug report:

lib.js:89 DEBUG | conditional-visibility | (3.6) 'Miabella' with sourceVisionLevels = [
    {
        "visionName": "True Sight (CV)",
        "visionIcon": "modules/conditional-visibility/icons/ae/emerald_11.jpg",
        "visionId": "truesight",
        "visionLevelValue": 30,
        "visionType": "sense",
        "visionIsDisabled": false,
        "visionPath": "data.attributes.senses.truesight",
        "visionElevation": false,
        "visionTargets": [],
        "visionSources": [],
        "visionBlinded": false,
        "visionBlindedOverride": false
    }
] 
lib.js:89 DEBUG | conditional-visibility | (3.7) 'Xerophon' with targetVisionLevels = [
    {
        "visionName": "Doppelganger (CV)",
        "visionIcon": "",
        "visionId": "doppelganger",
        "visionLevelValue": 1,
        "visionType": "condition",
        "visionSources": [
            "truesight"
        ],
        "visionSourceImage": "s3/tokens/forgotten%20adventures/Creatures/Monstrosity/Doppelganger_Medium_Monstrosity_05.webp",
        "visionIsDisabled": false
    }
] 
lib.js:89 DEBUG | conditional-visibility | [truesight][doppelganger](9.4) Is true, 'Miabella' can see 'Xerophon' 
lib.js:89 DEBUG | conditional-visibility | [truesight](12.3) Is true, 'Miabella' can see 'Xerophon' 
lib.js:89 DEBUG | conditional-visibility | FINAL => 'Miabella' can see 'Xerophon' 
lib.js:89 DEBUG | conditional-visibility | (3.6) 'Miabella' with sourceVisionLevels = [
    {
        "visionName": "True Sight (CV)",
        "visionIcon": "modules/conditional-visibility/icons/ae/emerald_11.jpg",
        "visionId": "truesight",
        "visionLevelValue": 30,
        "visionType": "sense",
        "visionIsDisabled": false,
        "visionPath": "data.attributes.senses.truesight",
        "visionElevation": false,
        "visionTargets": [],
        "visionSources": [],
        "visionBlinded": false,
        "visionBlindedOverride": false
    }
] 
lib.js:89 DEBUG | conditional-visibility | (3.7) 'Itilda' with targetVisionLevels = [] 
lib.js:89 DEBUG | conditional-visibility | (4.3) Is true, 'Miabella' can see 'Itilda' 

She can see the Xerephon's token, but it doesn't change to the doppelgänger image. It remains human, but visible.

p4535992 commented 2 years ago

The module setting "[EXPERIMENTAL] Enable draw CV Handler" is enabled ?

ctbritt commented 2 years ago

Nope.

p4535992 commented 2 years ago

@ctbritt now is work like expected ? can i close the ticket ?