Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e85fd1c41f | ||
|
|
d9e7152b4d | ||
|
|
9e7d81f413 | ||
|
|
8dd29e8da5 |
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "foundry-system-midgard5",
|
"name": "foundry-system-midgard5",
|
||||||
"version": "1.2.1",
|
"version": "1.2.2",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
"build:watch:target": "gulp watchTarget",
|
"build:watch:target": "gulp watchTarget",
|
||||||
"clean": "gulp clean && gulp link --clean"
|
"clean": "gulp clean && gulp link --clean"
|
||||||
},
|
},
|
||||||
"author": "Simon Gustavs",
|
"author": "Byroks",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.15.0",
|
"@babel/core": "^7.15.0",
|
||||||
|
|||||||
+64
-57
@@ -1,98 +1,105 @@
|
|||||||
import Logger from "./utils/Logger"
|
import Logger from "./utils/Logger";
|
||||||
import M5CharacterSheet from "./module/sheets/M5CharacterSheet"
|
import M5CharacterSheet from "./module/sheets/M5CharacterSheet";
|
||||||
import preloadTemplates from "./PreloadTemplates"
|
import preloadTemplates from "./PreloadTemplates";
|
||||||
import { M5Character } from "./module/actors/M5Character"
|
import { M5Character } from "./module/actors/M5Character";
|
||||||
import { M5Skill } from "./module/M5Base"
|
import { M5Skill } from "./module/M5Base";
|
||||||
import { M5ItemSheet } from "./module/sheets/M5ItemSheet"
|
import { M5ItemSheet } from "./module/sheets/M5ItemSheet";
|
||||||
import { M5Item } from "./module/items/M5Item"
|
import { M5Item } from "./module/items/M5Item";
|
||||||
|
|
||||||
Hooks.once("init", async () => {
|
Hooks.once("init", async () => {
|
||||||
Logger.log("M5 | Initialisierung Midgard 5")
|
Logger.log("M5 | Initialisierung Midgard 5");
|
||||||
|
|
||||||
Handlebars.registerHelper("times", (n: number, block) => {
|
Handlebars.registerHelper("times", (n: number, block) => {
|
||||||
var accum = ""
|
var accum = "";
|
||||||
for(let i = 0; i < n; ++i)
|
for (let i = 0; i < n; ++i) accum += block.fn(i);
|
||||||
accum += block.fn(i)
|
return accum;
|
||||||
return accum
|
});
|
||||||
})
|
|
||||||
|
|
||||||
Handlebars.registerHelper("array", (arr: any[], index: number) => {
|
Handlebars.registerHelper("array", (arr: any[], index: number) => {
|
||||||
return arr[index]
|
return arr[index];
|
||||||
})
|
});
|
||||||
|
|
||||||
Handlebars.registerHelper("m5concat", (...values) => {
|
Handlebars.registerHelper("m5concat", (...values) => {
|
||||||
const options = values.pop();
|
const options = values.pop();
|
||||||
const join = options.hash?.join || "";
|
const join = options.hash?.join || "";
|
||||||
//return new Handlebars.SafeString(values.join(join));
|
//return new Handlebars.SafeString(values.join(join));
|
||||||
return values.map(val => val.toString()).join(join)
|
return values.map((val) => val.toString()).join(join);
|
||||||
})
|
});
|
||||||
|
|
||||||
Handlebars.registerHelper("add", (...values) => {
|
Handlebars.registerHelper("add", (...values) => {
|
||||||
const options = values.pop();
|
const options = values.pop();
|
||||||
return values.reduce((prev, cur) => prev + cur)
|
return values.reduce((prev, cur) => prev + cur);
|
||||||
})
|
});
|
||||||
|
|
||||||
Handlebars.registerHelper("localizeMidgard", (str: string) => {
|
Handlebars.registerHelper("localizeMidgard", (str: string) => {
|
||||||
const template = Handlebars.compile("{{localize value}}")
|
const template = Handlebars.compile("{{localize value}}");
|
||||||
return template({
|
return template({
|
||||||
value: "midgard5." + str
|
value: "midgard5." + str,
|
||||||
})
|
});
|
||||||
})
|
});
|
||||||
|
|
||||||
Handlebars.registerHelper("skillBonus", (actorId: string, skill: M5Skill) => {
|
Handlebars.registerHelper("skillBonus", (actorId: string, skill: M5Skill) => {
|
||||||
const actor = (game as Game).actors.get(actorId) as M5Character
|
const actor = (game as Game).actors.get(actorId) as M5Character;
|
||||||
return actor.skillBonus(skill).toString()
|
return actor.skillBonus(skill).toString();
|
||||||
})
|
});
|
||||||
|
|
||||||
Handlebars.registerHelper("skillEw", (actorId: string, skill: M5Skill) => {
|
Handlebars.registerHelper("skillEw", (actorId: string, skill: M5Skill) => {
|
||||||
const actor = (game as Game).actors.get(actorId) as M5Character
|
const actor = (game as Game).actors.get(actorId) as M5Character;
|
||||||
return actor.skillEw(skill).toString()
|
return actor.skillEw(skill).toString();
|
||||||
})
|
});
|
||||||
|
|
||||||
Handlebars.registerHelper("skill", (skillId: string) => {
|
Handlebars.registerHelper("skill", (skillId: string) => {
|
||||||
return (game as Game).items.get(skillId)
|
return (game as Game).items.get(skillId);
|
||||||
})
|
});
|
||||||
|
|
||||||
Handlebars.registerHelper("itemValue", (id: string, path: string) => {
|
Handlebars.registerHelper("itemValue", (id: string, path: string) => {
|
||||||
let obj = (game as Game).items.get(id)
|
let obj = (game as Game).items.get(id);
|
||||||
path.split(".").forEach(p => obj = obj[p])
|
path.split(".").forEach((p) => (obj = obj[p]));
|
||||||
return `${obj}`
|
return `${obj}`;
|
||||||
})
|
});
|
||||||
|
|
||||||
Handlebars.registerHelper("actorItemValue", (actorId: any, itemId: string, path: string) => {
|
Handlebars.registerHelper("actorItemValue", (actorId: any, itemId: string, path: string) => {
|
||||||
//console.log("actorItemValue", actorId, itemId, path)
|
//console.log("actorItemValue", actorId, itemId, path)
|
||||||
const actor = (game as Game).actors.get(actorId)
|
const actor = (game as Game).actors.get(actorId);
|
||||||
let obj = actor.items.get(itemId).system
|
let obj = actor.items.get(itemId).system;
|
||||||
path.split(".").forEach(p => {
|
path.split(".").forEach((p) => {
|
||||||
if (obj)
|
if (obj) obj = obj[p];
|
||||||
obj = obj[p]
|
});
|
||||||
})
|
return `${obj}`;
|
||||||
return `${obj}`
|
});
|
||||||
})
|
|
||||||
|
|
||||||
Handlebars.registerHelper("icon", (relpath: string) => {
|
Handlebars.registerHelper("icon", (relpath: string) => {
|
||||||
return `systems/midgard5/assets/icons/${relpath}`
|
return `systems/midgard5/assets/icons/${relpath}`;
|
||||||
})
|
});
|
||||||
|
|
||||||
|
Handlebars.registerHelper("isSkillInList", (skillName: string, list: any) => {
|
||||||
|
for (let key in list) {
|
||||||
|
if (list[key]?.label?.toLowerCase() === skillName?.toLowerCase()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
// Default Sheet für Items definieren und das Standardsheet deaktivieren
|
// Default Sheet für Items definieren und das Standardsheet deaktivieren
|
||||||
Items.unregisterSheet("core", ItemSheet)
|
Items.unregisterSheet("core", ItemSheet);
|
||||||
Items.registerSheet("midgard5", M5ItemSheet, { makeDefault: true })
|
Items.registerSheet("midgard5", M5ItemSheet, { makeDefault: true });
|
||||||
|
|
||||||
// Default Sheet für Actors definieren und das Standardsheet deaktivieren
|
// Default Sheet für Actors definieren und das Standardsheet deaktivieren
|
||||||
Actors.unregisterSheet("core", ActorSheet)
|
Actors.unregisterSheet("core", ActorSheet);
|
||||||
Actors.registerSheet("midgard5", M5CharacterSheet, { makeDefault: true })
|
Actors.registerSheet("midgard5", M5CharacterSheet, { makeDefault: true });
|
||||||
|
|
||||||
CONFIG.Actor.documentClass = M5Character
|
CONFIG.Actor.documentClass = M5Character;
|
||||||
CONFIG.Item.documentClass = M5Item
|
CONFIG.Item.documentClass = M5Item;
|
||||||
|
|
||||||
//RegisterSettings();
|
//RegisterSettings();
|
||||||
await preloadTemplates()
|
await preloadTemplates();
|
||||||
})
|
});
|
||||||
|
|
||||||
Hooks.once("setup", () => {
|
Hooks.once("setup", () => {
|
||||||
Logger.log("Template module is being setup.")
|
Logger.log("Template module is being setup.");
|
||||||
})
|
});
|
||||||
|
|
||||||
Hooks.once("ready", () => {
|
Hooks.once("ready", () => {
|
||||||
Logger.ok("Template module is now ready.")
|
Logger.ok("Template module is now ready.");
|
||||||
})
|
});
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ export class M5Item extends Item {
|
|||||||
if (actor) {
|
if (actor) {
|
||||||
const actorCalc = character.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true });
|
const actorCalc = character.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true });
|
||||||
if (actorCalc) {
|
if (actorCalc) {
|
||||||
calc.ew += actorCalc.stats.spellCasting.value;
|
calc.ew = actorCalc.stats.spellCasting.value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (itemType === "item") {
|
} else if (itemType === "item") {
|
||||||
|
|||||||
+3
-3
@@ -2,7 +2,7 @@
|
|||||||
"id": "midgard5",
|
"id": "midgard5",
|
||||||
"title": "Midgard 5. Edition",
|
"title": "Midgard 5. Edition",
|
||||||
"description": "The German RPG Midgard 5. Edition",
|
"description": "The German RPG Midgard 5. Edition",
|
||||||
"version": "1.2.1",
|
"version": "1.2.2",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "10",
|
"minimum": "10",
|
||||||
"verified": "10"
|
"verified": "10"
|
||||||
@@ -66,8 +66,8 @@
|
|||||||
"primaryTokenAttribute": "lp",
|
"primaryTokenAttribute": "lp",
|
||||||
"secondaryTokenAttribute": "ap",
|
"secondaryTokenAttribute": "ap",
|
||||||
"url": "https://github.com/Byroks/foundry-vtt-system-midgard5",
|
"url": "https://github.com/Byroks/foundry-vtt-system-midgard5",
|
||||||
"manifest": "https://github.com/Byroks/foundry-vtt-system-midgard5/releases/download/v1.2.1/system.json",
|
"manifest": "https://github.com/Byroks/foundry-vtt-system-midgard5/releases/download/v1.2.2/system.json",
|
||||||
"download": "https://github.com/Byroks/foundry-vtt-system-midgard5/releases/download/v1.2.1/midgard5-v1.2.1.zip",
|
"download": "https://github.com/Byroks/foundry-vtt-system-midgard5/releases/download/v1.2.2/midgard5-v1.2.2.zip",
|
||||||
"initiative": "@calc.attributes.gw.value",
|
"initiative": "@calc.attributes.gw.value",
|
||||||
"license": "LICENSE.txt"
|
"license": "LICENSE.txt"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -119,16 +119,18 @@
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{{#each data.skills.general as |skill key|}}
|
{{#each data.skills.general as |skill key|}}
|
||||||
<tr data-skill="{{key}}">
|
{{#unless (isSkillInList (localizeMidgard key) ../actor.system.calc.skills.general) }}
|
||||||
<td><button class="learn-button">{{localize "midgard5.learn"}}</button></td>
|
<tr data-skill="{{key}}">
|
||||||
<td class="padding">{{localizeMidgard key}}</td>
|
<td><button class="learn-button">{{localize "midgard5.learn"}}</button></td>
|
||||||
<td class="fixed-value">{{skill.fw}}</td>
|
<td class="padding">{{localizeMidgard key}}</td>
|
||||||
<td class="fixed-value">{{skillBonus ../actor._id skill}}</td>
|
<td class="fixed-value">{{skill.fw}}</td>
|
||||||
<td class="fixed-value">{{skillEw ../actor._id skill}}</td>
|
<td class="fixed-value">{{skillBonus ../actor._id skill}}</td>
|
||||||
<td class="fixed-value"><input name="data.skills.general.{{key}}.pp" type="text" value="{{skill.pp}}" data-dtype="Number" /></td>
|
<td class="fixed-value">{{skillEw ../actor._id skill}}</td>
|
||||||
<td class="fixed-value"><button class="roll-button roll-general-button"></button></td>
|
<td class="fixed-value"><input name="data.skills.general.{{key}}.pp" type="text" value="{{skill.pp}}" data-dtype="Number" /></td>
|
||||||
<td class="fixed-value"></td>
|
<td class="fixed-value"><button class="roll-button roll-general-button"></button></td>
|
||||||
</tr>
|
<td class="fixed-value"></td>
|
||||||
|
</tr>
|
||||||
|
{{/unless}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
Reference in New Issue
Block a user