Skip to content
This repository has been archived by the owner on Nov 13, 2024. It is now read-only.

Commit

Permalink
version 0.5.8
Browse files Browse the repository at this point in the history
  • Loading branch information
p4535992 committed Mar 25, 2022
1 parent bbd2f26 commit 108187d
Show file tree
Hide file tree
Showing 7 changed files with 116 additions and 129 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
### 0.5.7
### 0.5.7-8

- Apply integration with `data.attributes.sense` for dnd5 systerm
- Some bug fix
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"name": "conditional-visibility",
"title": "Conditional Visibility",
"description": "Hide tokens from some players, but not others, based on the senses the players have. Uses unknown, newspaper, and foggy icons made by <a href=\"https://www.flaticon.com/authors/freepik\" title=\"Freepik\">Freepik</a>, from <a href=\"https://www.flaticon.com/\" title=\"Flaticon\"> www.flaticon.com</a>. Moon icon made by <a href=\"https://www.flaticon.com/authors/iconixar\" title=\"iconixar\">iconixar</a> from <a href=\"https://www.flaticon.com/\" title=\"Flaticon\"> www.flaticon.com</a>",
"version": "0.5.7",
"version": "0.5.8",
"scripts": {
"package": "gulp package",
"build": "gulp build && gulp link",
Expand Down
3 changes: 2 additions & 1 deletion src/conditional-visibility.ts
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,8 @@ Hooks.once('libChangelogsReady', function () {
libChangelogs.register(
CONSTANTS.MODULE_NAME,
`
- Remove all forEach for performance
- Apply integration with 'data.attributes.sense' for dnd5 systerm
- Some bug fix
`,
'minor',
);
Expand Down
8 changes: 4 additions & 4 deletions src/module.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "conditional-visibility",
"title": "Conditional Visibility",
"description": "Hide tokens from some players, but not others, based on the senses the players have. Uses unknown, newspaper, and foggy icons made by <a href=\"https://www.flaticon.com/authors/freepik\" title=\"Freepik\">Freepik</a>, from <a href=\"https://www.flaticon.com/\" title=\"Flaticon\"> www.flaticon.com</a>. Moon icon made by <a href=\"https://www.flaticon.com/authors/iconixar\" title=\"iconixar\">iconixar</a> from <a href=\"https://www.flaticon.com/\" title=\"Flaticon\"> www.flaticon.com</a>",
"version": "0.5.7",
"version": "0.5.8",
"author": "Greg Ludington, p4535992, Szefo09, Teshynil",
"type": "module",
"socket": true,
Expand Down Expand Up @@ -61,9 +61,9 @@
"manifestPlusVersion": "1.2.0",
"url": "https://github.com/p4535992/conditional-visibility",
"manifest": "https://github.com/p4535992/conditional-visibility/releases/latest/download/module.json",
"download": "https://github.com/p4535992/conditional-visibility/releases/download/v0.5.7/module.zip",
"readme": "https://github.com/p4535992/conditional-visibility/blob/v0.5.7/README.md",
"changelog": "https://github.com/p4535992/conditional-visibility/blob/v0.5.7/changelog.md",
"download": "https://github.com/p4535992/conditional-visibility/releases/download/v0.5.8/module.zip",
"readme": "https://github.com/p4535992/conditional-visibility/blob/v0.5.8/README.md",
"changelog": "https://github.com/p4535992/conditional-visibility/blob/v0.5.8/changelog.md",
"bugs": "https://github.com/p4535992/conditional-visibility/issues",
"allowBugReporter": true,
"dependencies": [
Expand Down
76 changes: 36 additions & 40 deletions src/module/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -726,16 +726,18 @@ const API = {
}
},

async setCondition(token: Token, conditionId: string, disabled: boolean): Promise<AtcvEffect | undefined> {
const allSensesAndConditionsData: SenseData[] = [];
allSensesAndConditionsData.push(...API.SENSES);
allSensesAndConditionsData.push(...API.CONDITIONS);
const senseDataEffect = allSensesAndConditionsData.find((senseData) => {
return isStringEquals(senseData.id, conditionId);
});
if (senseDataEffect) {
const atcvEffect = AtcvEffect.fromSenseData(senseDataEffect, 1);
return (this as typeof API).addEffectConditionalVisibilityOnToken(token.id, atcvEffect, disabled);
async setCondition(tokens: Token[], conditionId: string, disabled: boolean): Promise<AtcvEffect | undefined> {
for (const token of tokens) {
const allSensesAndConditionsData: SenseData[] = [];
allSensesAndConditionsData.push(...API.SENSES);
allSensesAndConditionsData.push(...API.CONDITIONS);
const senseDataEffect = allSensesAndConditionsData.find((senseData) => {
return isStringEquals(senseData.id, conditionId);
});
if (senseDataEffect) {
const atcvEffect = AtcvEffect.fromSenseData(senseDataEffect, 1);
return (this as typeof API).addEffectConditionalVisibilityOnToken(token.id, atcvEffect, disabled);
}
}
},

Expand Down Expand Up @@ -807,16 +809,14 @@ const API = {
dfredEffect.atcvChanges = [];
}
changesTmp = EffectSupport._handleIntegrations(dfredEffect);
changesTmp = changesTmp.filter((c) => !c.key.startsWith(`data.`))
if(senseDataEffect.visionDistanceValue && senseDataEffect.visionDistanceValue > 0){
changesTmp.push(
{
key: 'ATCV.conditionDistance',
mode: CONST.ACTIVE_EFFECT_MODES.CUSTOM,
value: `${senseDataEffect.visionDistanceValue}`,
priority: 5,
}
);
changesTmp = changesTmp.filter((c) => !c.key.startsWith(`data.`));
if (senseDataEffect.visionDistanceValue && senseDataEffect.visionDistanceValue > 0) {
changesTmp.push({
key: 'ATCV.conditionDistance',
mode: CONST.ACTIVE_EFFECT_MODES.CUSTOM,
value: `${senseDataEffect.visionDistanceValue}`,
priority: 5,
});
}
for (const obj of changesTmp) {
if (obj.key === 'ATCV.' + senseDataEffect.visionId && obj.value != String(senseDataEffect.visionLevelValue)) {
Expand Down Expand Up @@ -882,16 +882,14 @@ const API = {
priority: 5,
},
];
changesTmp = changesTmp.filter((c) => !c.key.startsWith(`data.`))
if(senseDataEffect.visionDistanceValue && senseDataEffect.visionDistanceValue > 0){
changesTmp.push(
{
key: 'ATCV.conditionDistance',
mode: CONST.ACTIVE_EFFECT_MODES.CUSTOM,
value: `${senseDataEffect.visionDistanceValue}`,
priority: 5,
}
);
changesTmp = changesTmp.filter((c) => !c.key.startsWith(`data.`));
if (senseDataEffect.visionDistanceValue && senseDataEffect.visionDistanceValue > 0) {
changesTmp.push({
key: 'ATCV.conditionDistance',
mode: CONST.ACTIVE_EFFECT_MODES.CUSTOM,
value: `${senseDataEffect.visionDistanceValue}`,
priority: 5,
});
}
effect = EffectSupport.buildDefault(
senseOrCondition.visionId,
Expand All @@ -912,16 +910,14 @@ const API = {
priority: 5,
},
];
changesTmp = changesTmp.filter((c) => !c.key.startsWith(`data.`))
if(senseDataEffect.visionDistanceValue && senseDataEffect.visionDistanceValue > 0){
changesTmp.push(
{
key: 'ATCV.conditionDistance',
mode: CONST.ACTIVE_EFFECT_MODES.CUSTOM,
value: `${senseDataEffect.visionDistanceValue}`,
priority: 5,
}
);
changesTmp = changesTmp.filter((c) => !c.key.startsWith(`data.`));
if (senseDataEffect.visionDistanceValue && senseDataEffect.visionDistanceValue > 0) {
changesTmp.push({
key: 'ATCV.conditionDistance',
mode: CONST.ACTIVE_EFFECT_MODES.CUSTOM,
value: `${senseDataEffect.visionDistanceValue}`,
priority: 5,
});
}
effect = EffectSupport.buildDefault(
senseDataEffect.visionId,
Expand Down
132 changes: 60 additions & 72 deletions src/module/lib/lib.ts
Original file line number Diff line number Diff line change
Expand Up @@ -948,45 +948,39 @@ export async function prepareActiveEffectForConditionalVisibility(
activeEffectFounded.data?.changes || [],
);
// if (sense.visionLevelValue != actve) {
//@ts-ignore
const data = <ActiveEffectData>duplicateExtended(activeEffectFounded.data);
for (const aee of data?.changes) {
if (aee.key.startsWith('ATCV.')){
if (!aee.key.startsWith('ATCV.condition') && sense.visionLevelValue) {
aee.value = String(sense.visionLevelValue);
}
else if(aee.key.startsWith('ATCV.conditionElevation') && sense.visionElevation){
aee.value = String(sense.visionElevation);
}
else if(aee.key.startsWith('ATCV.conditionDistance') && sense.visionDistanceValue){
aee.value = String(sense.visionDistanceValue);
}
else if(aee.key.startsWith('ATCV.conditionTargets') && sense.visionTargets){
aee.value = sense.visionTargets.join(',');
}
else if(aee.key.startsWith('ATCV.conditionSources') && sense.visionSources){
aee.value = sense.visionSources.join(',');
}
else if(aee.key.startsWith('ATCV.conditionTargetImage') && sense.visionTargetImage){
aee.value = sense.visionTargetImage;
}
else if(aee.key.startsWith('ATCV.conditionType') && sense.visionType){
aee.value = sense.visionType;
}
//@ts-ignore
const data = <ActiveEffectData>duplicateExtended(activeEffectFounded.data);
for (const aee of data?.changes) {
if (aee.key.startsWith('ATCV.')) {
if (!aee.key.startsWith('ATCV.condition') && sense.visionLevelValue) {
aee.value = String(sense.visionLevelValue);
} else if (aee.key.startsWith('ATCV.conditionElevation') && sense.visionElevation) {
aee.value = String(sense.visionElevation);
} else if (aee.key.startsWith('ATCV.conditionDistance') && sense.visionDistanceValue) {
aee.value = String(sense.visionDistanceValue);
} else if (aee.key.startsWith('ATCV.conditionTargets') && sense.visionTargets) {
aee.value = sense.visionTargets.join(',');
} else if (aee.key.startsWith('ATCV.conditionSources') && sense.visionSources) {
aee.value = sense.visionSources.join(',');
} else if (aee.key.startsWith('ATCV.conditionTargetImage') && sense.visionTargetImage) {
aee.value = sense.visionTargetImage;
} else if (aee.key.startsWith('ATCV.conditionType') && sense.visionType) {
aee.value = sense.visionType;
}
}
if (data?.changes.length > 0) {
await API.updateActiveEffectFromIdOnToken(
<string>sourceToken.id,
<string>activeEffectFounded.id,
undefined,
undefined,
data,
);
if (sense) {
mapToUpdate.set(sense.visionId, sense);
}
}
if (data?.changes.length > 0) {
await API.updateActiveEffectFromIdOnToken(
<string>sourceToken.id,
<string>activeEffectFounded.id,
undefined,
undefined,
data,
);
if (sense) {
mapToUpdate.set(sense.visionId, sense);
}
}
// }
} else {
const atcvEffcet = await API.addEffectConditionalVisibilityOnToken(<string>sourceToken.id, sense, false);
Expand Down Expand Up @@ -1027,45 +1021,39 @@ export async function prepareActiveEffectForConditionalVisibility(
activeEffectFounded.data?.changes || [],
);
// if (condition.visionLevelValue != actve) {
//@ts-ignore
const data = <ActiveEffectData>duplicateExtended(activeEffectFounded.data);
for (const aee of data?.changes) {
if (aee.key.startsWith('ATCV.')){
if (!aee.key.startsWith('ATCV.condition') && condition.visionLevelValue) {
aee.value = String(condition.visionLevelValue);
}
else if(aee.key.startsWith('ATCV.conditionElevation') && condition.visionElevation){
aee.value = String(condition.visionElevation);
}
else if(aee.key.startsWith('ATCV.conditionDistance') && condition.visionDistanceValue){
aee.value = String(condition.visionDistanceValue);
}
else if(aee.key.startsWith('ATCV.conditionTargets') && condition.visionTargets){
aee.value = condition.visionTargets.join(',');
}
else if(aee.key.startsWith('ATCV.conditionSources') && condition.visionSources){
aee.value = condition.visionSources.join(',');
}
else if(aee.key.startsWith('ATCV.conditionTargetImage') && condition.visionTargetImage){
aee.value = condition.visionTargetImage;
}
else if(aee.key.startsWith('ATCV.conditionType') && condition.visionType){
aee.value = condition.visionType;
}
//@ts-ignore
const data = <ActiveEffectData>duplicateExtended(activeEffectFounded.data);
for (const aee of data?.changes) {
if (aee.key.startsWith('ATCV.')) {
if (!aee.key.startsWith('ATCV.condition') && condition.visionLevelValue) {
aee.value = String(condition.visionLevelValue);
} else if (aee.key.startsWith('ATCV.conditionElevation') && condition.visionElevation) {
aee.value = String(condition.visionElevation);
} else if (aee.key.startsWith('ATCV.conditionDistance') && condition.visionDistanceValue) {
aee.value = String(condition.visionDistanceValue);
} else if (aee.key.startsWith('ATCV.conditionTargets') && condition.visionTargets) {
aee.value = condition.visionTargets.join(',');
} else if (aee.key.startsWith('ATCV.conditionSources') && condition.visionSources) {
aee.value = condition.visionSources.join(',');
} else if (aee.key.startsWith('ATCV.conditionTargetImage') && condition.visionTargetImage) {
aee.value = condition.visionTargetImage;
} else if (aee.key.startsWith('ATCV.conditionType') && condition.visionType) {
aee.value = condition.visionType;
}
}
if (data?.changes.length > 0) {
await API.updateActiveEffectFromIdOnToken(
<string>sourceToken.id,
<string>activeEffectFounded.id,
undefined,
undefined,
data,
);
if (condition) {
mapToUpdate.set(condition.visionId, condition);
}
}
if (data?.changes.length > 0) {
await API.updateActiveEffectFromIdOnToken(
<string>sourceToken.id,
<string>activeEffectFounded.id,
undefined,
undefined,
data,
);
if (condition) {
mapToUpdate.set(condition.visionId, condition);
}
}
// }
} else {
const atcvEffcet = await API.addEffectConditionalVisibilityOnToken(
Expand Down
22 changes: 12 additions & 10 deletions src/module/module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -204,9 +204,9 @@ const module = {
warn(`Can't find a senseData for the sense '${senseOrConditionIdKey}'`, true);
} else {
// const effects = ConditionalVisibilityEffectDefinitions.all(senseOrConditionValue, atcvEffectFlagData.visionLevelValue);
if(senseOrConditionValue && <number>senseOrConditionValue > 0){
if (senseOrConditionValue && <number>senseOrConditionValue > 0) {
atcvEffectFlagData.visionDistanceValue = senseOrConditionValue;
if(!atcvEffectFlagData.visionLevelValue || atcvEffectFlagData.visionLevelValue === 0){
if (!atcvEffectFlagData.visionLevelValue || atcvEffectFlagData.visionLevelValue === 0) {
atcvEffectFlagData.visionLevelValue = 1;
}
await sourceToken?.document.setFlag(CONSTANTS.MODULE_NAME, senseOrConditionIdKey, atcvEffectFlagData);
Expand All @@ -232,14 +232,16 @@ const module = {
if (senseOrConditionIdKey.includes('-=')) {
return;
}
if(!senseOrConditionValue.visionLevelValue
|| isNaN(senseOrConditionValue.visionLevelValue)
|| senseOrConditionValue.visionLevelValue === undefined
|| senseOrConditionValue.visionLevelValue === null){
const currentValueOfFlag = Number(
(<AtcvEffect>document.getFlag(CONSTANTS.MODULE_NAME, senseOrConditionIdKey))?.visionLevelValue || 1,
);
senseOrConditionValue.visionLevelValue = currentValueOfFlag;
if (
!senseOrConditionValue.visionLevelValue ||
isNaN(senseOrConditionValue.visionLevelValue) ||
senseOrConditionValue.visionLevelValue === undefined ||
senseOrConditionValue.visionLevelValue === null
) {
const currentValueOfFlag = Number(
(<AtcvEffect>document.getFlag(CONSTANTS.MODULE_NAME, senseOrConditionIdKey))?.visionLevelValue || 1,
);
senseOrConditionValue.visionLevelValue = currentValueOfFlag;
}
const senseOrConditionId = senseOrConditionIdKey; //senseOrConditionIdKey.replace('-=', '');
if (
Expand Down

0 comments on commit 108187d

Please sign in to comment.