Skip to content

Commit

Permalink
Merge branch 'release/v3.0.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
Wigsinator committed Jun 3, 2021
2 parents 2bfd237 + c6e6f22 commit d3ba28c
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 32 deletions.
8 changes: 4 additions & 4 deletions src/module.json
Expand Up @@ -4,9 +4,9 @@
"description": "Creates Functionality for curses",
"author": "Wigsinator",
"authors":[ { "name": "Wigsinator", "discord": "Wigsinator#2306", "url": "https://github.com/Wigsinator" } ],
"version": "2.3.0",
"minimumCoreVersion": "0.7.3",
"compatibleCoreVersion":"0.7.9",
"version": "3.0.0",
"minimumCoreVersion": "0.8.6",
"compatibleCoreVersion":"0.8.6",
"system": "dnd5e",
"esmodules": [
"betterCurses.js"
Expand All @@ -29,7 +29,7 @@
],
"url":"https://github.com/Wigsinator/betterCurses",
"manifest":"https://raw.githubusercontent.com/Wigsinator/betterCurses/master/src/module.json",
"download":"https://github.com/Wigsinator/betterCurses/releases/download/v2.3.0/betterCurses-wigsinator.zip",
"download":"https://github.com/Wigsinator/betterCurses/releases/download/v3.0.0/betterCurses-wigsinator.zip",
"readme":"https://github.com/Wigsinator/betterCurses/blob/master/README.md",
"bugs":"https://github.com/Wigsinator/betterCurses/issues",
"allowBugReporter": true
Expand Down
21 changes: 12 additions & 9 deletions src/scripts/applyEffects.js
Expand Up @@ -2,25 +2,28 @@ import { log } from "./helpers.js"

export function applyEffects(actor, target){
const types = ["mwak","rwak","msak","rsak"];
for (var item of actor.items.entries) {
const effectData = {
label: "betterCurses",
changes: []
}
for (var item of actor.items) {
log(`Scanning item ${item.data.name}`);
if (item.getFlag("betterCurses", "isCurse")) {
log(`Handling curse ${item.getFlag("betterCurses", "curseName")}`);
var targets = actor.getFlag('betterCurses', item.getFlag("betterCurses", "curseName"));
if (targets && targets.includes(target.id)) {
const effectData = {
label: "betterCurses",
changes: []
}

for (var type of types) {
if (item.getFlag("betterCurses", type)) {
effectData.changes.push({key: `data.bonuses.${type}.damage`, value: `+${item.getFlag("betterCurses","formula")}`, mode: ACTIVE_EFFECT_MODES.ADD});
effectData.changes.push({key: `data.bonuses.${type}.damage`, value: `+${item.getFlag("betterCurses","formula")}`, mode: CONST.ACTIVE_EFFECT_MODES.ADD});
}
}
log(`Applying Effect`)
log(effectData)
actor.createEmbeddedEntity("ActiveEffect", effectData);
log(`Applying Effect`);
log(effectData);
}
}
}
if (effectData.changes.length > 0){
actor.createEmbeddedDocuments("ActiveEffect", [effectData]);
}
}
13 changes: 2 additions & 11 deletions src/scripts/clearEffects.js
@@ -1,15 +1,6 @@
import { log } from "./helpers.js"

export async function clearEffects(actor){
var filtered = actor.effects.filter(x => x.data.label === "betterCurses");
var promiseList = [];
for (var effect of filtered) {
log(`Clearing Effect ${effect.id}`);
promiseList.push(actor.deleteEmbeddedEntity("ActiveEffect", effect.id));
}
if (promiseList) {
log("Promise List:")
log(promiseList);
await Promise.all(promiseList);
}
var filteredIds = actor.effects.filter(x => x.data.label === "betterCurses").map(x => x.id);
await actor.deleteEmbeddedDocuments("ActiveEffect", filteredIds);
}
2 changes: 1 addition & 1 deletion src/scripts/curse.js
Expand Up @@ -10,7 +10,7 @@ export async function curse(curse){
for (let target of user.targets){
await setFlag(target.id, selectedId, curse)
}
if (user.targets.length === 1){
if (user.targets.size === 1){
await clearEffects(canvas.tokens.get(selectedId).actor);
applyEffects(canvas.tokens.get(selectedId).actor, canvas.tokens.get(user.targets.ids[0]).actor);
}
Expand Down
2 changes: 1 addition & 1 deletion src/scripts/helpers.js
Expand Up @@ -6,7 +6,7 @@ export function log(data, force = false) {
}

export function GetAllFlags(entity, scope) {
const scopes = SetupConfiguration.getPackageScopes();
const scopes = game.getPackageScopes();
if (!scopes.includes(scope)) return;
return getProperty(entity.data.flags, scope);
}
12 changes: 6 additions & 6 deletions src/scripts/setupHooks.js
Expand Up @@ -6,9 +6,9 @@ export function setupControlHook(){
return Hooks.on("controlToken", (controlledToken, selected) => {
if (GetAllFlags(controlledToken, 'multilevel-tokens')) return;
clearEffects(controlledToken.actor).then(() => {
let targets = game.user.targets.ids;
if (selected && targets.length == 1) {
applyEffects(controlledToken.actor, canvas.tokens.get(targets[0]).actor);
let targetIds = Array.from(game.user.targets, t=> t.id);
if (selected && targetIds.length == 1) {
applyEffects(controlledToken.actor, canvas.tokens.get(targetIds[0]).actor);
}
});
})
Expand All @@ -17,13 +17,13 @@ export function setupControlHook(){
export function setupTargetHook(){
return Hooks.on("targetToken", handleTarget => {
log(`Token Target changed`)
let targets = game.user.targets.ids;
let targetIds = Array.from(game.user.targets, t=> t.id);
let controlledTokens = canvas.tokens.controlled;
log(controlledTokens);
if (targets.length == 1){
if (targetIds.length == 1){
for (var controlledToken of controlledTokens){
if (GetAllFlags(controlledToken, 'multilevel-tokens')) continue;
applyEffects(controlledToken.actor, canvas.tokens.get(targets[0]).actor);
applyEffects(controlledToken.actor, canvas.tokens.get(targetIds[0]).actor);
}
} else {
for (var controlledToken of controlledTokens){
Expand Down

0 comments on commit d3ba28c

Please sign in to comment.