Compare commits
44 Commits
fvtt-hero-
...
master
Author | SHA1 | Date | |
---|---|---|---|
a5c6ae8fcb | |||
5e42cfbab1 | |||
86a9889359 | |||
7375fa39c5 | |||
ab587740d8 | |||
0f4fe253e0 | |||
3b13a44d9d | |||
0ebe0c3734 | |||
6a00dd8583 | |||
5064b83f2b | |||
58275c32e6 | |||
c22b950f7c | |||
893ca4cfa5 | |||
94065a3755 | |||
1d4d3054c3 | |||
e5c6d3f42f | |||
f914b9838e | |||
8a543068d2 | |||
379b8358ee | |||
40ee7c3c40 | |||
a07f367b0c | |||
09bb7fb692 | |||
92dc81af24 | |||
d2430ee482 | |||
86780ce8ae | |||
b383481915 | |||
dca78fd4b6 | |||
f381269acf | |||
686ea4cea6 | |||
c915b85a7b | |||
5026e120c1 | |||
9cefc6f816 | |||
11d7c7d1c0 | |||
3abf9a9f8f | |||
f5c0faffd3 | |||
3f0e0a41b8 | |||
20c49eb48c | |||
6275319164 | |||
19fb872824 | |||
002d6f4fbd | |||
43a3a2ccfa | |||
356f0fee5f | |||
58bcfc07a3 | |||
3dcb60e7a9 |
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
packs/* filter=lfs diff=lfs merge=lfs -text
|
12
README.md
12
README.md
@ -2,8 +2,18 @@ This is the official Hero System 6th Edition game system for FoundryVTT, based o
|
|||||||
|
|
||||||
The Hero System game system is not usable standalone. To play this game you need a copy of the core rulebook.
|
The Hero System game system is not usable standalone. To play this game you need a copy of the core rulebook.
|
||||||
|
|
||||||
|
It features :
|
||||||
|
|
||||||
|
- PC/NPC sheets
|
||||||
|
- Roll management and associated helpers
|
||||||
|
- Segment and Turn management in the combat tracker
|
||||||
|
- Official compendiums
|
||||||
|
|
||||||
|
![Snapshot](https://www.lahiette.com/leratierbretonnien/wp-content/uploads/2023/08/hero6_snapshot_02.webp "Snapshot")
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
Manifest URL: https://github.com/Legendsmiths-LLC/
|
Manifest URL: https://www.uberwald.me/gitea/uberwald/fvtt-hero-system-6/raw/branch/master/system.json
|
||||||
|
Project page : https://www.uberwald.me/gitea/uberwald/fvtt-hero-system-6
|
||||||
|
|
||||||
For manual installation, use the provided manifest URL in the "Install System" popup window while managing game systems.
|
For manual installation, use the provided manifest URL in the "Install System" popup window while managing game systems.
|
||||||
|
|
||||||
|
47
changelog.md
Normal file
47
changelog.md
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
v11.0.23
|
||||||
|
|
||||||
|
- Proper display of BODY/STUN bars on tokens
|
||||||
|
|
||||||
|
v11.0.22
|
||||||
|
|
||||||
|
- Fix actor sheet (powers, characteristics)
|
||||||
|
- Fix weapons roll
|
||||||
|
|
||||||
|
v11.0.21
|
||||||
|
|
||||||
|
- Fix grid default distance in system.json
|
||||||
|
- Fix powers roll again (#29)
|
||||||
|
|
||||||
|
v11.0.20
|
||||||
|
|
||||||
|
- Enhance chat message output (cf #25)
|
||||||
|
- Enhance roll window
|
||||||
|
- Code simplification
|
||||||
|
|
||||||
|
v11.0.19
|
||||||
|
|
||||||
|
- Fix killing damage computation (again)
|
||||||
|
|
||||||
|
v11.0.18
|
||||||
|
|
||||||
|
- Fix killing damage computation
|
||||||
|
|
||||||
|
v11.0.17
|
||||||
|
|
||||||
|
- Fix tickets 1, 2, 3, 7, 8, 9, 10
|
||||||
|
- Implements effects tagging (#11)
|
||||||
|
|
||||||
|
v11.0.16
|
||||||
|
|
||||||
|
- Fix mental maneuvers rolls
|
||||||
|
- Renamed title
|
||||||
|
|
||||||
|
v11.0.15
|
||||||
|
|
||||||
|
- Fix target rolls for power
|
||||||
|
- Add maneuvers roll in the maneuver tab
|
||||||
|
- Renamed title
|
||||||
|
|
||||||
|
v11.0.14
|
||||||
|
|
||||||
|
- Initial public release
|
31
lang/en.json
31
lang/en.json
@ -1,19 +1,22 @@
|
|||||||
{
|
{
|
||||||
"ACTOR": {
|
"TYPES": {
|
||||||
"TypeCharacter": "Character"
|
"Actor": {
|
||||||
|
"character": "Character",
|
||||||
|
"minion": "Minion"
|
||||||
},
|
},
|
||||||
"ITEM": {
|
"Item": {
|
||||||
"TypeSkill": "Skill",
|
"skill": "Skill",
|
||||||
"TypePerk": "Perk",
|
"perk": "Perk",
|
||||||
"TypePower": "Power",
|
"power": "Power",
|
||||||
"TypeTalent": "Talent",
|
"talent": "Talent",
|
||||||
"TypeAdvantage": "Advantage",
|
"advantage": "Advantage",
|
||||||
"TypeMartialart": "Martial art",
|
"martialart": "Martial art",
|
||||||
"TypeLimitation": "Limitation",
|
"limitation": "Limitation",
|
||||||
"TypeComplication": "Complication",
|
"complication": "Complication",
|
||||||
"TypeEquipment": "Equipment",
|
"equipment": "Equipment",
|
||||||
"TypeCurrency": "Currency",
|
"currency": "Currency",
|
||||||
"TypeManeuver": "Maneuver"
|
"maneuver": "Maneuver"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"COMBAT": {
|
"COMBAT": {
|
||||||
"TurnPrev": "Previous initiative",
|
"TurnPrev": "Previous initiative",
|
||||||
|
@ -46,10 +46,12 @@ export class Hero6ActorSheet extends ActorSheet {
|
|||||||
complications: this.actor.getComplications( ),
|
complications: this.actor.getComplications( ),
|
||||||
maneuvers: this.actor.getManeuvers( ),
|
maneuvers: this.actor.getManeuvers( ),
|
||||||
nonstockmaneuvers: this.actor.getNonStockManeuvers(),
|
nonstockmaneuvers: this.actor.getNonStockManeuvers(),
|
||||||
|
allmaneuvers: this.actor.getAllManeuvers(),
|
||||||
weapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getWeapons()) ),
|
weapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getWeapons()) ),
|
||||||
armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())),
|
armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())),
|
||||||
shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())),
|
shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())),
|
||||||
equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsMoneys()) ),
|
moneys: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getMoneys())),
|
||||||
|
equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipments()) ),
|
||||||
subActors: duplicate(this.actor.getSubActors()),
|
subActors: duplicate(this.actor.getSubActors()),
|
||||||
race: duplicate(this.actor.getRace()),
|
race: duplicate(this.actor.getRace()),
|
||||||
encCapacity: this.actor.getEncumbranceCapacity(),
|
encCapacity: this.actor.getEncumbranceCapacity(),
|
||||||
@ -74,7 +76,9 @@ export class Hero6ActorSheet extends ActorSheet {
|
|||||||
editScore: this.options.editScore,
|
editScore: this.options.editScore,
|
||||||
isGM: game.user.isGM
|
isGM: game.user.isGM
|
||||||
}
|
}
|
||||||
|
|
||||||
this.formData = formData;
|
this.formData = formData;
|
||||||
|
this.stockManeuverDisplayed = false
|
||||||
|
|
||||||
console.log("PC : ", formData, this.object);
|
console.log("PC : ", formData, this.object);
|
||||||
return formData;
|
return formData;
|
||||||
@ -89,9 +93,9 @@ export class Hero6ActorSheet extends ActorSheet {
|
|||||||
// Everything below here is only needed if the sheet is editable
|
// Everything below here is only needed if the sheet is editable
|
||||||
if (!this.options.editable) return;
|
if (!this.options.editable) return;
|
||||||
|
|
||||||
html.bind("keydown", function(e) { // Ignore Enter in actores sheet
|
/*html.bind("keydown", function(e) { // Ignore Enter in actores sheet
|
||||||
if (e.keyCode === 13) return false;
|
if (e.keyCode === 13) return false;
|
||||||
});
|
});*/
|
||||||
|
|
||||||
// Update Inventory Item
|
// Update Inventory Item
|
||||||
html.find('.item-edit').click(ev => {
|
html.find('.item-edit').click(ev => {
|
||||||
@ -158,13 +162,19 @@ export class Hero6ActorSheet extends ActorSheet {
|
|||||||
html.find('.roll-perception').click((event) => {
|
html.find('.roll-perception').click((event) => {
|
||||||
this.actor.rollPerception("int");
|
this.actor.rollPerception("int");
|
||||||
});
|
});
|
||||||
|
html.find('.roll-weapon').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item")
|
||||||
|
this.actor.rollWeapon(li.data("item-id"));
|
||||||
|
});
|
||||||
|
html.find('.roll-power-attack').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item")
|
||||||
|
this.actor.rollPowerAttack(li.data("item-id"));
|
||||||
|
});
|
||||||
html.find('.roll-direct').click((event) => {
|
html.find('.roll-direct').click((event) => {
|
||||||
const rollFormula = $(event.currentTarget).data("roll-formula")
|
const rollFormula = $(event.currentTarget).data("roll-formula")
|
||||||
const rollSource = $(event.currentTarget).data("roll-source")
|
const rollSource = $(event.currentTarget).data("roll-source")
|
||||||
Hero6Utility.processDirectRoll( { actorId: this.actor.id, rollFormula: rollFormula, rollSource: rollSource, mode:"directroll"} )
|
Hero6Utility.processDirectRoll( { actorId: this.actor.id, rollFormula: rollFormula, rollSource: rollSource, mode:"directroll"} )
|
||||||
});
|
});
|
||||||
|
|
||||||
html.find('.roll-item').click((event) => {
|
html.find('.roll-item').click((event) => {
|
||||||
const li = $(event.currentTarget).parents(".item");
|
const li = $(event.currentTarget).parents(".item");
|
||||||
let itemId = li.data("item-id")
|
let itemId = li.data("item-id")
|
||||||
@ -181,12 +191,6 @@ export class Hero6ActorSheet extends ActorSheet {
|
|||||||
this.actor.rollLiftDice(itemId);
|
this.actor.rollLiftDice(itemId);
|
||||||
});
|
});
|
||||||
|
|
||||||
html.find('.roll-weapon').click((event) => {
|
|
||||||
const li = $(event.currentTarget).parents(".item");
|
|
||||||
const skillId = li.data("item-id")
|
|
||||||
this.actor.rollWeapon(skillId)
|
|
||||||
});
|
|
||||||
|
|
||||||
html.find('.hold-action').click((event) => {
|
html.find('.hold-action').click((event) => {
|
||||||
this.actor.holdAction()
|
this.actor.holdAction()
|
||||||
});
|
});
|
||||||
@ -194,6 +198,16 @@ export class Hero6ActorSheet extends ActorSheet {
|
|||||||
this.actor.abortAction()
|
this.actor.abortAction()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
html.find(".show-stock-maneuver").click((event) => {
|
||||||
|
if ( !this.stockManeuverDisplayed) {
|
||||||
|
$('div .maneuver-list').removeClass('maneuver-is-stock');
|
||||||
|
this.stockManeuverDisplayed = true
|
||||||
|
} else {
|
||||||
|
$('div .maneuver-list').addClass('maneuver-is-stock');
|
||||||
|
this.stockManeuverDisplayed = false
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
html.find('.lock-unlock-sheet').click((event) => {
|
html.find('.lock-unlock-sheet').click((event) => {
|
||||||
this.options.editScore = !this.options.editScore;
|
this.options.editScore = !this.options.editScore;
|
||||||
this.render(true);
|
this.render(true);
|
||||||
|
@ -40,13 +40,11 @@ export class Hero6Actor extends Actor {
|
|||||||
return actor;
|
return actor;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.type == 'character') {
|
if (data.type == 'character' || data.type == 'minion') {
|
||||||
const maneuvers = await Hero6Utility.loadCompendium("fvtt-hero-system-6.maneuvers")
|
const maneuvers = await Hero6Utility.loadCompendium("fvtt-hero-system-6.maneuvers")
|
||||||
let maneuversObj = maneuvers.map(i => i.toObject())
|
let maneuversObj = maneuvers.map(i => i.toObject())
|
||||||
data.items = maneuversObj.filter(m => m.system.isstock)
|
data.items = maneuversObj.filter(m => m.system.isstock)
|
||||||
}
|
}
|
||||||
if (data.type == 'npc') {
|
|
||||||
}
|
|
||||||
|
|
||||||
return super.create(data, options);
|
return super.create(data, options);
|
||||||
}
|
}
|
||||||
@ -62,14 +60,19 @@ export class Hero6Actor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
computeDerivatedData() {
|
computeDerivatedData() {
|
||||||
if (this.type == "character") {
|
|
||||||
let newSTREND = this.computeSTREND()
|
let newSTREND = this.computeSTREND()
|
||||||
if (newSTREND != this.system.characteristics.str.strend) {
|
if (newSTREND != this.system.characteristics.str.strend) {
|
||||||
this.update({ 'system.characteristics.str.strend': newSTREND })
|
this.update({ 'system.characteristics.str.strend': newSTREND })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
performMigration() {
|
||||||
|
// Fix OCV/OMCV rollable
|
||||||
|
if (!this.system.characteristics.ocv.hasroll) {
|
||||||
|
this.update({ 'system.characteristics.ocv.hasroll': true, 'system.characteristics.omcv.hasroll': true })
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
computeDicesValue() {
|
computeDicesValue() {
|
||||||
this.system.biodata.presenceattack = Hero6Utility.getDerivatedDiceFormulas(this.system.characteristics.pre.value)
|
this.system.biodata.presenceattack = Hero6Utility.getDerivatedDiceFormulas(this.system.characteristics.pre.value)
|
||||||
this.system.characteristics.str.strdice = Hero6LiftDice.getLiftDice(this.system.characteristics.str.value)
|
this.system.characteristics.str.strdice = Hero6LiftDice.getLiftDice(this.system.characteristics.str.value)
|
||||||
@ -164,6 +167,19 @@ export class Hero6Actor extends Actor {
|
|||||||
}
|
}
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async _preCreate(data, options, user) {
|
||||||
|
await super._preCreate(data, options, user);
|
||||||
|
|
||||||
|
// Configure prototype token settings
|
||||||
|
const prototypeToken = {};
|
||||||
|
if (this.type === "character") Object.assign(prototypeToken, {
|
||||||
|
sight: { enabled: true }, actorLink: true, disposition: CONST.TOKEN_DISPOSITIONS.FRIENDLY
|
||||||
|
});
|
||||||
|
this.updateSource({ prototypeToken });
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
prepareSkill(skill) {
|
prepareSkill(skill) {
|
||||||
skill.roll = 0
|
skill.roll = 0
|
||||||
@ -200,12 +216,34 @@ export class Hero6Actor extends Actor {
|
|||||||
skill.roll = charac.roll
|
skill.roll = charac.roll
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log("SILL", skill)
|
|
||||||
if (skill.system.levels > 0) {
|
if (skill.system.levels > 0) {
|
||||||
skill.roll += skill.system.levels
|
skill.roll += skill.system.levels
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
prepareManeuver(maneuver) {
|
||||||
|
let subMode = "normal"
|
||||||
|
if (maneuver.system.maneuvertype == "mental") {
|
||||||
|
maneuver.roll = 11 + (Number(this.system.characteristics.omcv.value) || 0)
|
||||||
|
subMode = "omcv"
|
||||||
|
if (Number(maneuver.system.omcv)) {
|
||||||
|
maneuver.roll += (Number(maneuver.system.omcv) || 0)
|
||||||
|
} else {
|
||||||
|
maneuver.noOMCV = true
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
maneuver.roll = 11 + (Number(this.system.characteristics.ocv.value) || 0)
|
||||||
|
subMode = "ocv"
|
||||||
|
if (Number(maneuver.system.ocv)) {
|
||||||
|
maneuver.roll += (Number(maneuver.system.ocv) || 0)
|
||||||
|
} else {
|
||||||
|
maneuver.noOCV = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return subMode
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getSkills() {
|
getSkills() {
|
||||||
let comp = duplicate(this.items.filter(item => item.type == 'skill') || [])
|
let comp = duplicate(this.items.filter(item => item.type == 'skill') || [])
|
||||||
@ -277,11 +315,18 @@ export class Hero6Actor extends Actor {
|
|||||||
let maneuvers = {
|
let maneuvers = {
|
||||||
general: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "general"),
|
general: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "general"),
|
||||||
offensive: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "offensive"),
|
offensive: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "offensive"),
|
||||||
defensive: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "defensive")
|
defensive: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "defensive"),
|
||||||
|
mental: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "mental")
|
||||||
}
|
}
|
||||||
Hero6Utility.sortArrayObjectsByName(maneuvers.general)
|
Hero6Utility.sortArrayObjectsByName(maneuvers.general)
|
||||||
Hero6Utility.sortArrayObjectsByName(maneuvers.offensive)
|
Hero6Utility.sortArrayObjectsByName(maneuvers.offensive)
|
||||||
Hero6Utility.sortArrayObjectsByName(maneuvers.defensive)
|
Hero6Utility.sortArrayObjectsByName(maneuvers.defensive)
|
||||||
|
Hero6Utility.sortArrayObjectsByName(maneuvers.mental)
|
||||||
|
return maneuvers
|
||||||
|
}
|
||||||
|
getAllManeuvers() {
|
||||||
|
let maneuvers = this.items.filter(item => item.type == "maneuver")
|
||||||
|
Hero6Utility.sortArrayObjectsByName(maneuvers)
|
||||||
return maneuvers
|
return maneuvers
|
||||||
}
|
}
|
||||||
getNonStockManeuvers() {
|
getNonStockManeuvers() {
|
||||||
@ -294,6 +339,11 @@ export class Hero6Actor extends Actor {
|
|||||||
Hero6Utility.sortArrayObjectsByName(list)
|
Hero6Utility.sortArrayObjectsByName(list)
|
||||||
return list
|
return list
|
||||||
}
|
}
|
||||||
|
getMoneys() {
|
||||||
|
let list = this.items.filter(item => item.type == "equipment" && item.system.subtype == "money");
|
||||||
|
Hero6Utility.sortArrayObjectsByName(list)
|
||||||
|
return list
|
||||||
|
}
|
||||||
getWeapons() {
|
getWeapons() {
|
||||||
let list = this.items.filter(item => item.type == "equipment" && item.system.subtype == "weapon");
|
let list = this.items.filter(item => item.type == "equipment" && item.system.subtype == "weapon");
|
||||||
Hero6Utility.sortArrayObjectsByName(list)
|
Hero6Utility.sortArrayObjectsByName(list)
|
||||||
@ -464,7 +514,7 @@ export class Hero6Actor extends Actor {
|
|||||||
getBaseInit(turn) {
|
getBaseInit(turn) {
|
||||||
if (turn != this.turn) {
|
if (turn != this.turn) {
|
||||||
let r = new Roll("1d6").roll({ async: false })
|
let r = new Roll("1d6").roll({ async: false })
|
||||||
this.currentInit = this.system.characteristics.dex.initiative + (r.total / 10)
|
this.currentInit = Number(this.system.characteristics.dex.initiative) + Number(((r.total / 10).toFixed(2)))
|
||||||
this.turn = turn
|
this.turn = turn
|
||||||
}
|
}
|
||||||
return this.currentInit
|
return this.currentInit
|
||||||
@ -497,9 +547,14 @@ export class Hero6Actor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
prepareCharacValues(charac) {
|
prepareCharacValues(charac) {
|
||||||
|
if (charac.label == "OCV" || charac.label == "OMCV" ) {
|
||||||
|
charac.total = charac.value
|
||||||
|
charac.roll = 11 + charac.value
|
||||||
|
} else {
|
||||||
charac.total = charac.value
|
charac.total = charac.value
|
||||||
charac.roll = 9 + Math.round((charac.value) / 5)
|
charac.roll = 9 + Math.round((charac.value) / 5)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
prepareCharac() {
|
prepareCharac() {
|
||||||
let characs = duplicate(this.system.characteristics)
|
let characs = duplicate(this.system.characteristics)
|
||||||
for (let key in characs) {
|
for (let key in characs) {
|
||||||
@ -586,6 +641,9 @@ export class Hero6Actor extends Actor {
|
|||||||
rollData.actorImg = this.img
|
rollData.actorImg = this.img
|
||||||
rollData.actorId = this.id
|
rollData.actorId = this.id
|
||||||
rollData.img = this.img
|
rollData.img = this.img
|
||||||
|
rollData.title = this.name
|
||||||
|
rollData.subMode = "normal"
|
||||||
|
rollData.characteristics = duplicate(this.system.characteristics)
|
||||||
if (chKey) {
|
if (chKey) {
|
||||||
rollData.charac = duplicate(this.system.characteristics[chKey])
|
rollData.charac = duplicate(this.system.characteristics[chKey])
|
||||||
this.prepareCharacValues(rollData.charac)
|
this.prepareCharacValues(rollData.charac)
|
||||||
@ -604,12 +662,10 @@ export class Hero6Actor extends Actor {
|
|||||||
const ray = new Ray(token.object?.center || token.center, defenderToken.center)
|
const ray = new Ray(token.object?.center || token.center, defenderToken.center)
|
||||||
rollData.tokensDistance = canvas.grid.measureDistances([{ ray }], { gridSpaces: false })[0] / canvas.grid.grid.options.dimensions.distance
|
rollData.tokensDistance = canvas.grid.measureDistances([{ ray }], { gridSpaces: false })[0] / canvas.grid.grid.options.dimensions.distance
|
||||||
} else {
|
} else {
|
||||||
ui.notifications.info("No token connected to this actor, unable to compute distance.")
|
//ui.notifications.info("No token connected to this actor, unable to compute distance.")
|
||||||
return
|
//return
|
||||||
}
|
}
|
||||||
if (defender) {
|
if (defender) {
|
||||||
rollData.forceAdvantage = defender.isAttackerAdvantage()
|
|
||||||
rollData.advantageFromTarget = true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log("ROLLDATA", rollData)
|
console.log("ROLLDATA", rollData)
|
||||||
@ -620,6 +676,7 @@ export class Hero6Actor extends Actor {
|
|||||||
rollPerception() {
|
rollPerception() {
|
||||||
let rollData = this.getCommonRollData("int")
|
let rollData = this.getCommonRollData("int")
|
||||||
rollData.isPerception = true
|
rollData.isPerception = true
|
||||||
|
rollData.title = "Perception roll"
|
||||||
rollData.charac.roll = Number(rollData.charac.perceptionroll)
|
rollData.charac.roll = Number(rollData.charac.perceptionroll)
|
||||||
rollData.mode = "perception"
|
rollData.mode = "perception"
|
||||||
if (rollData.target) {
|
if (rollData.target) {
|
||||||
@ -633,6 +690,7 @@ export class Hero6Actor extends Actor {
|
|||||||
rollCharac(chKey) {
|
rollCharac(chKey) {
|
||||||
let rollData = this.getCommonRollData(chKey)
|
let rollData = this.getCommonRollData(chKey)
|
||||||
rollData.mode = "charac"
|
rollData.mode = "charac"
|
||||||
|
rollData.title = "Characteristic roll"
|
||||||
if (rollData.target) {
|
if (rollData.target) {
|
||||||
ui.notifications.warn("You are targetting a token with a skill : please use a Weapon instead.")
|
ui.notifications.warn("You are targetting a token with a skill : please use a Weapon instead.")
|
||||||
return
|
return
|
||||||
@ -644,10 +702,14 @@ export class Hero6Actor extends Actor {
|
|||||||
let item = this.items.get(itemId)
|
let item = this.items.get(itemId)
|
||||||
let rollData = this.getCommonRollData()
|
let rollData = this.getCommonRollData()
|
||||||
rollData.mode = "item"
|
rollData.mode = "item"
|
||||||
|
rollData.title = Hero6Utility.upperFirst(item.type) + " - " + item.name
|
||||||
rollData.item = duplicate(item)
|
rollData.item = duplicate(item)
|
||||||
if (item.type == "skill") {
|
if (item.type == "skill") {
|
||||||
this.prepareSkill(rollData.item)
|
this.prepareSkill(rollData.item)
|
||||||
}
|
}
|
||||||
|
if (item.type == "maneuver") {
|
||||||
|
rollData.subMode = this.prepareManeuver(rollData.item)
|
||||||
|
}
|
||||||
this.startRoll(rollData)
|
this.startRoll(rollData)
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -659,18 +721,32 @@ export class Hero6Actor extends Actor {
|
|||||||
rollData.title = item.name
|
rollData.title = item.name
|
||||||
rollData.diceFormula = Hero6Utility.convertRollHeroSyntax(item.system.damage)
|
rollData.diceFormula = Hero6Utility.convertRollHeroSyntax(item.system.damage)
|
||||||
let myRoll = new Roll(rollData.diceFormula).roll({ async: false })
|
let myRoll = new Roll(rollData.diceFormula).roll({ async: false })
|
||||||
await Hero6Utility.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
//await Hero6Utility.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
||||||
|
|
||||||
rollData.roll = myRoll
|
rollData.roll = myRoll
|
||||||
rollData.result = myRoll.total
|
rollData.result = myRoll.total
|
||||||
rollData.bodyValue = Hero6Utility.computeBodyValue(myRoll)
|
rollData.bodyValue = Hero6Utility.computeBodyValue(myRoll)
|
||||||
|
|
||||||
|
let mult
|
||||||
|
if (item.system.damageeffect == "killing") { // As per issue #11
|
||||||
|
mult = new Roll("1d3").roll({ async: false })
|
||||||
|
rollData.killingMultiplier = mult.total
|
||||||
|
rollData.stunValue = Number(myRoll.total) * (Number(mult.total) + (Number(item.system.stunx) || 0))
|
||||||
|
} else {
|
||||||
|
rollData.stunValue = myRoll.total
|
||||||
|
}
|
||||||
|
|
||||||
let msgFlavor = await renderTemplate(`systems/fvtt-hero-system-6/templates/chat/chat-damage-result.hbs`, rollData)
|
let msgFlavor = await renderTemplate(`systems/fvtt-hero-system-6/templates/chat/chat-damage-result.hbs`, rollData)
|
||||||
let msg = await rollData.roll.toMessage({
|
let msg = await rollData.roll.toMessage({
|
||||||
user: game.user.id,
|
user: game.user.id,
|
||||||
rollMode: game.settings.get("core", "rollMode"),
|
rollMode: game.settings.get("core", "rollMode"),
|
||||||
flavor: msgFlavor
|
flavor: msgFlavor
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (mult) {
|
||||||
|
await Hero6Utility.showDiceSoNice(mult, game.settings.get("core", "rollMode"))
|
||||||
|
}
|
||||||
|
|
||||||
rollData.roll = duplicate(rollData.roll) // Convert to object
|
rollData.roll = duplicate(rollData.roll) // Convert to object
|
||||||
msg.setFlag("world", "rolldata", rollData)
|
msg.setFlag("world", "rolldata", rollData)
|
||||||
console.log("Rolldata result", rollData)
|
console.log("Rolldata result", rollData)
|
||||||
@ -697,7 +773,6 @@ export class Hero6Actor extends Actor {
|
|||||||
msg.setFlag("world", "rolldata", rollData)
|
msg.setFlag("world", "rolldata", rollData)
|
||||||
console.log("Rolldata result", rollData)
|
console.log("Rolldata result", rollData)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
rollSkill(skillId) {
|
rollSkill(skillId) {
|
||||||
let skill = this.items.get(skillId)
|
let skill = this.items.get(skillId)
|
||||||
@ -722,34 +797,58 @@ export class Hero6Actor extends Actor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
rollWeapon(weaponId) {
|
async rollWeapon(weaponId) {
|
||||||
let weapon = this.items.get(weaponId)
|
let weapon = this.items.get(weaponId)
|
||||||
if (weapon) {
|
if (weapon) {
|
||||||
weapon = duplicate(weapon)
|
weapon = duplicate(weapon)
|
||||||
let skill = this.items.find(item => item.name.toLowerCase() == weapon.system.skill.toLowerCase())
|
let rollData = this.getCommonRollData()
|
||||||
if (skill) {
|
rollData.subMode = "ocv"
|
||||||
skill = duplicate(skill)
|
|
||||||
Hero6Utility.updateSkill(skill)
|
|
||||||
let abilityKey = skill.system.ability
|
|
||||||
let rollData = this.getCommonRollData(abilityKey)
|
|
||||||
rollData.mode = "weapon"
|
rollData.mode = "weapon"
|
||||||
rollData.skill = skill
|
rollData.item = weapon
|
||||||
rollData.weapon = weapon
|
rollData.item.roll = 11 + (Number(this.system.characteristics.ocv.value) || 0) + (Number(weapon.system.ocv) || 0)
|
||||||
rollData.img = weapon.img
|
rollData.img = weapon.img
|
||||||
if (!rollData.forceDisadvantage) { // This is an attack, check if disadvantaged
|
|
||||||
rollData.forceDisadvantage = this.isAttackDisadvantage()
|
|
||||||
}
|
|
||||||
/*if (rollData.weapon.system.isranged && rollData.tokensDistance > Hero6Utility.getWeaponMaxRange(rollData.weapon) ) {
|
|
||||||
ui.notifications.warn(`Your target is out of range of your weapon (max: ${Hero6Utility.getWeaponMaxRange(rollData.weapon)} - current : ${rollData.tokensDistance})` )
|
|
||||||
return
|
|
||||||
}*/
|
|
||||||
this.startRoll(rollData)
|
this.startRoll(rollData)
|
||||||
} else {
|
} else {
|
||||||
ui.notifications.warn("Unable to find the relevant skill for weapon " + weapon.name)
|
ui.notifications.warn("Unable to find the weapon " + weapon.name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
rollMentalManeuver(maneuverId) {
|
||||||
|
let maneuver = this.items.get(maneuverId)
|
||||||
|
if (maneuver) {
|
||||||
|
maneuver = duplicate(maneuver)
|
||||||
|
let rollData = this.getCommonRollData()
|
||||||
|
rollData.roll = 11 + (Number(this.system.characteristics.omcv.value) || 0) + (Number(maneuver.system.omcv) || 0)
|
||||||
|
rollData.mode = "mentalmaneuver"
|
||||||
|
rollData.item = maneuver
|
||||||
|
rollData.img = maneuver.img
|
||||||
|
this.startRoll(rollData)
|
||||||
|
} else {
|
||||||
|
ui.notifications.warn("Unable to find the maneuver " + maneuver.name)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
rollPowerAttack(powerId ) {
|
||||||
|
let power = this.items.get(powerId)
|
||||||
|
if (power) {
|
||||||
|
power = duplicate(power)
|
||||||
|
let rollData = this.getCommonRollData()
|
||||||
|
rollData.mode = "powerattack"
|
||||||
|
rollData.item = power
|
||||||
|
rollData.img = power.img
|
||||||
|
|
||||||
|
if (power.system.attackvalue == "ocv") {
|
||||||
|
rollData.item.roll = 11 + (Number(this.system.characteristics.ocv.value) || 0) + (Number(power.system.ocv) || 0)
|
||||||
|
rollData.subMode = "ocv"
|
||||||
|
} else {
|
||||||
|
rollData.item.roll = 11 + (Number(this.system.characteristics.omcv.value) || 0) + (Number(power.system.omcv) || 0)
|
||||||
|
rollData.subMode = "omcv"
|
||||||
|
}
|
||||||
|
this.startRoll(rollData)
|
||||||
|
} else {
|
||||||
|
ui.notifications.warn("Unable to find power " + power.name)
|
||||||
|
}
|
||||||
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async startRoll(rollData) {
|
async startRoll(rollData) {
|
||||||
let rollDialog = await Hero6RollDialog.create(this, rollData)
|
let rollDialog = await Hero6RollDialog.create(this, rollData)
|
||||||
|
@ -54,6 +54,9 @@ export class Hero6Combat extends Combat {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
constructor(data, context) {
|
constructor(data, context) {
|
||||||
|
|
||||||
|
data.flags = { world: { turnData: { turnNumber: 0, segmentNumber: 12} } }
|
||||||
|
|
||||||
super(data, context);
|
super(data, context);
|
||||||
|
|
||||||
this.turnNumber = 0;
|
this.turnNumber = 0;
|
||||||
@ -77,19 +80,28 @@ export class Hero6Combat extends Combat {
|
|||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
forceHold(actor, isHold) {
|
forceHold(actor, isHold) {
|
||||||
|
if (game.user.isGM) {
|
||||||
let updList = []
|
let updList = []
|
||||||
let c = this.combatants.find(c => c.actor._id == actor.id)
|
let c = this.combatants.find(c => c.actor._id == actor.id)
|
||||||
let name = actor.name + ((isHold) ? " (H)" : "")
|
let name = actor.name + ((isHold) ? " (H)" : "")
|
||||||
|
console.log("ForceHold!!", c, actor)
|
||||||
updList.push({ _id: c.id || c._id, name: name, initiative: actor.getBaseInit(this.segmentNumber) })
|
updList.push({ _id: c.id || c._id, name: name, initiative: actor.getBaseInit(this.segmentNumber) })
|
||||||
this.updateEmbeddedDocuments("Combatant", updList)
|
this.updateEmbeddedDocuments("Combatant", updList)
|
||||||
|
} else {
|
||||||
|
game.socket.emit("system.fvtt-hero-system-6", { name: "msg_force_hold", data: { actorId: actor.id, isHold: isHold } });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
forceAbort(actor, isAbort) {
|
forceAbort(actor, isAbort) {
|
||||||
|
if (game.user.isGM) {
|
||||||
let updList = []
|
let updList = []
|
||||||
let c = this.combatants.find(c => c.actor._id == actor.id)
|
let c = this.combatants.find(c => c.actor._id == actor.id)
|
||||||
let name = actor.name + ((isAbort) ? " (A)" : "")
|
let name = actor.name + ((isAbort) ? " (A)" : "")
|
||||||
updList.push({ _id: c.id || c._id, name: name, initiative: actor.getBaseInit(this.segmentNumber) })
|
updList.push({ _id: c.id || c._id, name: name, initiative: actor.getBaseInit(this.segmentNumber) })
|
||||||
this.updateEmbeddedDocuments("Combatant", updList)
|
this.updateEmbeddedDocuments("Combatant", updList)
|
||||||
|
} else {
|
||||||
|
game.socket.emit("system.fvtt-hero-system-6", { name: "msg_force_abort", data: { actorId: actor.id, isAbort: isAbort } });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -166,13 +178,63 @@ export class Hero6Combat extends Combat {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async previousRound() {
|
||||||
|
let hasCombatants = false
|
||||||
|
let nextRound = this.round
|
||||||
|
let advanceTime = 0
|
||||||
|
let turn = this.turn === null ? null : 0; // Preserve the fact that it's no-one's turn currently.
|
||||||
|
let turnData = this.getFlag("world", "turnData")
|
||||||
|
|
||||||
|
//console.log("Next round called....", nextRound, turnData)
|
||||||
|
while (!hasCombatants) {
|
||||||
|
if (this.settings.skipDefeated && (turn !== null)) {
|
||||||
|
turn = this.turns.findIndex(t => !t.isDefeated);
|
||||||
|
if (turn === -1) {
|
||||||
|
ui.notifications.warn("COMBAT.NoneRemaining", { localize: true });
|
||||||
|
turn = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
advanceTime = -1 * (Math.max(this.turns.length - this.turn, 0) * CONFIG.time.turnTime);
|
||||||
|
advanceTime -= CONFIG.time.roundTime;
|
||||||
|
nextRound = nextRound -1
|
||||||
|
//console.log("Next round called....2", nextRound, turnData)
|
||||||
|
turnData = this.getFlag("world", "turnData")
|
||||||
|
if (!turnData) {
|
||||||
|
turnData = { turnNumber: 0, segmentNumber: 12 }
|
||||||
|
this.setFlag("world", "turnData", turnData)
|
||||||
|
}
|
||||||
|
turnData = duplicate(turnData)
|
||||||
|
turnData.segmentNumber -= 1
|
||||||
|
if (turnData.segmentNumber <= 0) {
|
||||||
|
turnData.segmentNumber = 12
|
||||||
|
turnData.turnNumber--
|
||||||
|
}
|
||||||
|
await this.setFlag("world", "turnData", turnData)
|
||||||
|
this.turnNumber = turnData.turnNumber;
|
||||||
|
this.segmentNumber = turnData.segmentNumber;
|
||||||
|
//console.log("Next round called....3", nextRound, turnData)
|
||||||
|
|
||||||
|
// Re-compute init of actors
|
||||||
|
hasCombatants = await this.rebuildInitiative()
|
||||||
|
//console.log("Going round....", nextRound, hasCombatants)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update the document, passing data through a hook first
|
||||||
|
const updateData = { round: nextRound, turn };
|
||||||
|
const updateOptions = { advanceTime, direction: -1 };
|
||||||
|
Hooks.callAll("combatRound", this, updateData, updateOptions);
|
||||||
|
console.log(this)
|
||||||
|
return this.update(updateData, updateOptions);
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async nextRound() {
|
async nextRound() {
|
||||||
let hasCombatants = false
|
let hasCombatants = false
|
||||||
let nextRound = this.round
|
let nextRound = this.round
|
||||||
let advanceTime = 0
|
let advanceTime = 0
|
||||||
let turn = this.turn === null ? null : 0; // Preserve the fact that it's no-one's turn currently.
|
let turn = this.turn === null ? null : 0; // Preserve the fact that it's no-one's turn currently.
|
||||||
let turnData = this.getFlag("world", "hero6-turn-data")
|
let turnData = this.getFlag("world", "turnData")
|
||||||
|
|
||||||
//console.log("Next round called....", nextRound, turnData)
|
//console.log("Next round called....", nextRound, turnData)
|
||||||
while (!hasCombatants) {
|
while (!hasCombatants) {
|
||||||
@ -187,18 +249,21 @@ export class Hero6Combat extends Combat {
|
|||||||
advanceTime += CONFIG.time.roundTime;
|
advanceTime += CONFIG.time.roundTime;
|
||||||
nextRound = nextRound + 1;
|
nextRound = nextRound + 1;
|
||||||
//console.log("Next round called....2", nextRound, turnData)
|
//console.log("Next round called....2", nextRound, turnData)
|
||||||
turnData = this.getFlag("world", "hero6-turn-data")
|
turnData = this.getFlag("world", "turnData")
|
||||||
if (!turnData) {
|
if (!turnData) {
|
||||||
turnData = { turnNumber: 0, segmentNumber: 12 }
|
turnData = { turnNumber: 0, segmentNumber: 12 }
|
||||||
this.setFlag("world", "hero6-turn-data", turnData)
|
this.setFlag("world", "turnData", turnData)
|
||||||
}
|
}
|
||||||
turnData = duplicate(turnData)
|
turnData = duplicate(turnData)
|
||||||
turnData.segmentNumber += 1
|
turnData.segmentNumber += 1
|
||||||
if (turnData.segmentNumber > 12) {
|
if (turnData.segmentNumber > 12) {
|
||||||
turnData.segmentNumber = 1
|
turnData.segmentNumber = 1
|
||||||
turnData.turnNumber++
|
turnData.turnNumber++
|
||||||
|
ChatMessage.create({
|
||||||
|
content: "Complete Post-Segment 12 Recoveries."
|
||||||
|
})
|
||||||
}
|
}
|
||||||
await this.setFlag("world", "hero6-turn-data", turnData)
|
await this.setFlag("world", "turnData", turnData)
|
||||||
this.turnNumber = turnData.turnNumber;
|
this.turnNumber = turnData.turnNumber;
|
||||||
this.segmentNumber = turnData.segmentNumber;
|
this.segmentNumber = turnData.segmentNumber;
|
||||||
//console.log("Next round called....3", nextRound, turnData)
|
//console.log("Next round called....3", nextRound, turnData)
|
||||||
@ -209,20 +274,22 @@ export class Hero6Combat extends Combat {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Update the document, passing data through a hook first
|
// Update the document, passing data through a hook first
|
||||||
const updateData = { round: nextRound, turn: turn, segmentNumber: turnData.segmentNumber, turnNumber: turnData.turnNumber };
|
const updateData = { round: nextRound, turn };
|
||||||
const updateOptions = { advanceTime, direction: 1 };
|
const updateOptions = { advanceTime, direction: 1 };
|
||||||
Hooks.callAll("combatRound", this, updateData, updateOptions);
|
Hooks.callAll("combatRound", this, updateData, updateOptions);
|
||||||
|
console.log(this)
|
||||||
return this.update(updateData, updateOptions);
|
return this.update(updateData, updateOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async _onCreateEmbeddedDocuments(type, documents, result, options, userId) {
|
async _onCreateDescendantDocuments(type, documents, result, options, userId) {
|
||||||
//console.log("Added...")
|
//console.log("Added...")
|
||||||
|
if (game.user.isGM) {
|
||||||
await super._onCreateEmbeddedDocuments(type, documents, result, options, userId)
|
await super._onCreateEmbeddedDocuments(type, documents, result, options, userId)
|
||||||
await this.rebuildInitiative()
|
await this.rebuildInitiative()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
/* --------------------------------------------
|
/* --------------------------------------------
|
||||||
_onUpdate(changed, options, userId) {
|
_onUpdate(changed, options, userId) {
|
||||||
}*/
|
}*/
|
||||||
|
@ -10,7 +10,8 @@ export const Hero6_CONFIG = {
|
|||||||
maneuverTypes: {
|
maneuverTypes: {
|
||||||
"general": "General",
|
"general": "General",
|
||||||
"offensive": "Offensive",
|
"offensive": "Offensive",
|
||||||
"defensive": "Defensive"
|
"defensive": "Defensive",
|
||||||
|
"mental": "Mental"
|
||||||
},
|
},
|
||||||
rollCharac : {
|
rollCharac : {
|
||||||
"str": "Strength",
|
"str": "Strength",
|
||||||
@ -21,6 +22,13 @@ export const Hero6_CONFIG = {
|
|||||||
"pre": "Presence",
|
"pre": "Presence",
|
||||||
"manual": "Manual",
|
"manual": "Manual",
|
||||||
},
|
},
|
||||||
|
damageEffect: {
|
||||||
|
"normal": "Normal",
|
||||||
|
"killing": "Killing",
|
||||||
|
"stunonly": "Stun Only",
|
||||||
|
"bodyonly": "Body Only",
|
||||||
|
"effect": "Effect"
|
||||||
|
},
|
||||||
skillType: {
|
skillType: {
|
||||||
"agility": "Agility",
|
"agility": "Agility",
|
||||||
"interaction": "Interaction",
|
"interaction": "Interaction",
|
||||||
@ -29,6 +37,10 @@ export const Hero6_CONFIG = {
|
|||||||
"combat": "Combat" ,
|
"combat": "Combat" ,
|
||||||
"custom": "Custom"
|
"custom": "Custom"
|
||||||
},
|
},
|
||||||
|
attackTypes: {
|
||||||
|
"ocv": "OCV",
|
||||||
|
"omcv": "OMCV"
|
||||||
|
},
|
||||||
powerEquipmentType: {
|
powerEquipmentType: {
|
||||||
"adjustment": "Adjustment",
|
"adjustment": "Adjustment",
|
||||||
"mental": "Mental",
|
"mental": "Mental",
|
||||||
@ -53,6 +65,5 @@ export const Hero6_CONFIG = {
|
|||||||
"standard": "Standard",
|
"standard": "Standard",
|
||||||
"normal": "Normal",
|
"normal": "Normal",
|
||||||
"killing": "Killing",
|
"killing": "Killing",
|
||||||
"countbody": "Killing (Count BODY)"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -147,13 +147,13 @@ export class Hero6ItemSheet extends ItemSheet {
|
|||||||
});
|
});
|
||||||
|
|
||||||
html.find('.item-skill-profiency').click(ev => {
|
html.find('.item-skill-profiency').click(ev => {
|
||||||
this.object.update( {'system.levels': 12, 'system.cost': 2} )
|
this.object.update( {'system.skillfamiliarity': false, 'system.cost': 2} )
|
||||||
} )
|
} )
|
||||||
html.find('.item-skill-familiarity').click(ev => {
|
html.find('.item-skill-familiarity').click(ev => {
|
||||||
this.object.update( {'system.levels': 10, 'system.cost': 1} )
|
this.object.update( {'system.skillprofiency': false, 'system.cost': 1} )
|
||||||
} )
|
} )
|
||||||
html.find('.item-skill-everyman').click(ev => {
|
html.find('.item-skill-everyman').click(ev => {
|
||||||
this.object.update( {'system.levels': 8, 'system.cost': 0} )
|
this.object.update( {'system.cost': 0} )
|
||||||
} )
|
} )
|
||||||
|
|
||||||
html.find('.view-subitem').click(ev => {
|
html.find('.view-subitem').click(ev => {
|
||||||
|
@ -41,7 +41,7 @@ Hooks.once("init", async function () {
|
|||||||
// Set an initiative formula for the system
|
// Set an initiative formula for the system
|
||||||
CONFIG.Combat.initiative = {
|
CONFIG.Combat.initiative = {
|
||||||
formula: "1d6",
|
formula: "1d6",
|
||||||
decimals: 3
|
decimals: 2
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------- ------------- */
|
/* ------------------------------- ------------- */
|
||||||
@ -61,7 +61,7 @@ Hooks.once("init", async function () {
|
|||||||
// Register sheet application classes
|
// Register sheet application classes
|
||||||
Actors.unregisterSheet("core", ActorSheet);
|
Actors.unregisterSheet("core", ActorSheet);
|
||||||
Actors.registerSheet("fvtt-hero-system-6", Hero6ActorSheet, { types: ["character"], makeDefault: true });
|
Actors.registerSheet("fvtt-hero-system-6", Hero6ActorSheet, { types: ["character"], makeDefault: true });
|
||||||
Actors.registerSheet("fvtt-hero-system-6", Hero6NPCSheet, { types: ["npc"], makeDefault: false });
|
Actors.registerSheet("fvtt-hero-system-6", Hero6ActorSheet, { types: ["minion"], makeDefault: false });
|
||||||
|
|
||||||
Items.unregisterSheet("core", ItemSheet);
|
Items.unregisterSheet("core", ItemSheet);
|
||||||
Items.registerSheet("fvtt-hero-system-6", Hero6ItemSheet, { makeDefault: true });
|
Items.registerSheet("fvtt-hero-system-6", Hero6ItemSheet, { makeDefault: true });
|
||||||
|
@ -5,7 +5,7 @@ export class Hero6RollDialog extends Dialog {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async create(actor, rollData) {
|
static async create(actor, rollData) {
|
||||||
|
|
||||||
let options = { classes: ["Hero6Dialog"], width: 460, height: 'fit-content', 'z-index': 99999 };
|
let options = { classes: ["Hero6Dialog"], width: 320, height: 'fit-content', 'z-index': 99999 };
|
||||||
let html = await renderTemplate('systems/fvtt-hero-system-6/templates/apps/roll-dialog-generic.hbs', rollData);
|
let html = await renderTemplate('systems/fvtt-hero-system-6/templates/apps/roll-dialog-generic.hbs', rollData);
|
||||||
|
|
||||||
return new Hero6RollDialog(actor, rollData, html, options);
|
return new Hero6RollDialog(actor, rollData, html, options);
|
||||||
@ -14,7 +14,7 @@ export class Hero6RollDialog extends Dialog {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
constructor(actor, rollData, html, options, close = undefined) {
|
constructor(actor, rollData, html, options, close = undefined) {
|
||||||
let conf = {
|
let conf = {
|
||||||
title: (rollData.mode == "skill") ? "Skill" : "Attribute",
|
title: "Roll window",
|
||||||
content: html,
|
content: html,
|
||||||
buttons: {
|
buttons: {
|
||||||
roll: {
|
roll: {
|
||||||
|
@ -43,6 +43,9 @@ export class Hero6Utility {
|
|||||||
Handlebars.registerHelper('mul', function (a, b) {
|
Handlebars.registerHelper('mul', function (a, b) {
|
||||||
return Number(a) * Number(b);
|
return Number(a) * Number(b);
|
||||||
})
|
})
|
||||||
|
Handlebars.registerHelper('add', function (a, b) {
|
||||||
|
return (Number(a) || 0) + (Number(b) || 0);
|
||||||
|
})
|
||||||
Handlebars.registerHelper('locationLabel', function (key) {
|
Handlebars.registerHelper('locationLabel', function (key) {
|
||||||
return __locationNames[key]
|
return __locationNames[key]
|
||||||
})
|
})
|
||||||
@ -52,6 +55,9 @@ export class Hero6Utility {
|
|||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
})
|
})
|
||||||
|
Handlebars.registerHelper('fixNum', function (value) {
|
||||||
|
return Number(value) || 0
|
||||||
|
})
|
||||||
Handlebars.registerHelper('checkInit', function (value) {
|
Handlebars.registerHelper('checkInit', function (value) {
|
||||||
let myValue = Number(value) || 0
|
let myValue = Number(value) || 0
|
||||||
return myValue > 0
|
return myValue > 0
|
||||||
@ -124,6 +130,10 @@ export class Hero6Utility {
|
|||||||
const rollTables = await Hero6Utility.loadCompendium("fvtt-hero-system-6.rolltables")
|
const rollTables = await Hero6Utility.loadCompendium("fvtt-hero-system-6.rolltables")
|
||||||
this.rollTables = rollTables.map(i => i.toObject())
|
this.rollTables = rollTables.map(i => i.toObject())
|
||||||
|
|
||||||
|
for (let actor of game.actors) {
|
||||||
|
actor.performMigration()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -159,6 +169,7 @@ export class Hero6Utility {
|
|||||||
'systems/fvtt-hero-system-6/templates/partials/partial-options-abilities.hbs',
|
'systems/fvtt-hero-system-6/templates/partials/partial-options-abilities.hbs',
|
||||||
'systems/fvtt-hero-system-6/templates/partials/partial-item-nav.hbs',
|
'systems/fvtt-hero-system-6/templates/partials/partial-item-nav.hbs',
|
||||||
'systems/fvtt-hero-system-6/templates/partials/partial-item-description.hbs',
|
'systems/fvtt-hero-system-6/templates/partials/partial-item-description.hbs',
|
||||||
|
'systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs',
|
||||||
'systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment.hbs',
|
'systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment.hbs',
|
||||||
'systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs',
|
'systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs',
|
||||||
'systems/fvtt-hero-system-6/templates/partials/partial-power-equipment-cost.hbs',
|
'systems/fvtt-hero-system-6/templates/partials/partial-power-equipment-cost.hbs',
|
||||||
@ -230,12 +241,21 @@ export class Hero6Utility {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async onSocketMesssage(msg) {
|
static async onSocketMesssage(msg) {
|
||||||
console.log("SOCKET MESSAGE", msg.name)
|
console.log("SOCKET MESSAGE", msg.name, msg)
|
||||||
if (msg.name == "msg_update_roll") {
|
if (msg.name == "msg_update_roll") {
|
||||||
this.updateRollData(msg.data)
|
this.updateRollData(msg.data)
|
||||||
}
|
}
|
||||||
if (msg.name == "msg_gm_process_attack_defense") {
|
if (msg.name == "msg_force_hold") {
|
||||||
this.processSuccessResult(msg.data)
|
if (game.user.isGM) {
|
||||||
|
let actor = game.actors.get(msg.data.actorId)
|
||||||
|
game.combat.forceHold(actor, msg.data.isHold)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (msg.name == "msg_force_abort") {
|
||||||
|
if (game.user.isGM) {
|
||||||
|
let actor = game.actors.get(msg.data.actorId)
|
||||||
|
game.combat.forceAbort(actor, msg.data.isAbort)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (msg.name == "msg_gm_item_drop" && game.user.isGM) {
|
if (msg.name == "msg_gm_item_drop" && game.user.isGM) {
|
||||||
let actor = game.actors.get(msg.data.actorId)
|
let actor = game.actors.get(msg.data.actorId)
|
||||||
@ -329,6 +349,7 @@ export class Hero6Utility {
|
|||||||
// ability/save/size => 0
|
// ability/save/size => 0
|
||||||
let diceFormula = "3d6"
|
let diceFormula = "3d6"
|
||||||
let target = 10
|
let target = 10
|
||||||
|
|
||||||
if (rollData.charac) {
|
if (rollData.charac) {
|
||||||
target = rollData.charac.roll
|
target = rollData.charac.roll
|
||||||
}
|
}
|
||||||
@ -338,11 +359,11 @@ export class Hero6Utility {
|
|||||||
target += rollData.bonusMalus
|
target += rollData.bonusMalus
|
||||||
|
|
||||||
// Performs roll
|
// Performs roll
|
||||||
console.log("Roll formula", diceFormula)
|
//console.log("Roll formula", diceFormula)
|
||||||
let myRoll = rollData.roll
|
let myRoll = rollData.roll
|
||||||
if (!myRoll) { // New rolls only of no rerolls
|
if (!myRoll) { // New rolls only of no rerolls
|
||||||
myRoll = new Roll(diceFormula).roll({ async: false })
|
myRoll = new Roll(diceFormula).roll({ async: false })
|
||||||
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
//await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
||||||
}
|
}
|
||||||
|
|
||||||
rollData.roll = myRoll
|
rollData.roll = myRoll
|
||||||
@ -353,6 +374,7 @@ export class Hero6Utility {
|
|||||||
if (rollData.result <= target) {
|
if (rollData.result <= target) {
|
||||||
rollData.isSuccess = true
|
rollData.isSuccess = true
|
||||||
}
|
}
|
||||||
|
//console.log("Roll result", rollData)
|
||||||
if (myRoll.terms[0].total == 3) { // Always a success
|
if (myRoll.terms[0].total == 3) { // Always a success
|
||||||
rollData.isSuccess = true
|
rollData.isSuccess = true
|
||||||
}
|
}
|
||||||
|
@ -1 +1 @@
|
|||||||
MANIFEST-000022
|
MANIFEST-000188
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/08/03-22:32:11.523171 7f01523fc6c0 Recovering log #20
|
2023/10/04-21:41:44.140558 7f16d7fff6c0 Recovering log #186
|
||||||
2023/08/03-22:32:11.540084 7f01523fc6c0 Delete type=3 #18
|
2023/10/04-21:41:44.150660 7f16d7fff6c0 Delete type=3 #184
|
||||||
2023/08/03-22:32:11.540129 7f01523fc6c0 Delete type=0 #20
|
2023/10/04-21:41:44.150712 7f16d7fff6c0 Delete type=0 #186
|
||||||
2023/08/03-22:32:17.500527 7f0151bfb6c0 Level-0 table #25: started
|
2023/10/04-21:47:02.531984 7f14567ef6c0 Level-0 table #191: started
|
||||||
2023/08/03-22:32:17.500588 7f0151bfb6c0 Level-0 table #25: 0 bytes OK
|
2023/10/04-21:47:02.532010 7f14567ef6c0 Level-0 table #191: 0 bytes OK
|
||||||
2023/08/03-22:32:17.506820 7f0151bfb6c0 Delete type=0 #23
|
2023/10/04-21:47:02.538823 7f14567ef6c0 Delete type=0 #189
|
||||||
2023/08/03-22:32:17.520955 7f0151bfb6c0 Manual compaction at level-0 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
|
2023/10/04-21:47:02.545067 7f14567ef6c0 Manual compaction at level-0 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
|
||||||
2023/08/03-22:32:17.521030 7f0151bfb6c0 Manual compaction at level-1 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
|
2023/10/04-21:47:02.545092 7f14567ef6c0 Manual compaction at level-1 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/08/03-22:31:33.868131 7f01533fe6c0 Recovering log #16
|
2023/10/04-21:35:01.811691 7f16d6ffd6c0 Recovering log #182
|
||||||
2023/08/03-22:31:33.979394 7f01533fe6c0 Delete type=3 #14
|
2023/10/04-21:35:01.822017 7f16d6ffd6c0 Delete type=3 #180
|
||||||
2023/08/03-22:31:33.979434 7f01533fe6c0 Delete type=0 #16
|
2023/10/04-21:35:01.822072 7f16d6ffd6c0 Delete type=0 #182
|
||||||
2023/08/03-22:31:52.457027 7f0151bfb6c0 Level-0 table #21: started
|
2023/10/04-21:41:38.795066 7f14567ef6c0 Level-0 table #187: started
|
||||||
2023/08/03-22:31:52.457052 7f0151bfb6c0 Level-0 table #21: 0 bytes OK
|
2023/10/04-21:41:38.795089 7f14567ef6c0 Level-0 table #187: 0 bytes OK
|
||||||
2023/08/03-22:31:52.463153 7f0151bfb6c0 Delete type=0 #19
|
2023/10/04-21:41:38.801689 7f14567ef6c0 Delete type=0 #185
|
||||||
2023/08/03-22:31:52.482011 7f0151bfb6c0 Manual compaction at level-0 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
|
2023/10/04-21:41:38.808479 7f14567ef6c0 Manual compaction at level-0 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
|
||||||
2023/08/03-22:31:52.482068 7f0151bfb6c0 Manual compaction at level-1 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
|
2023/10/04-21:41:38.808530 7f14567ef6c0 Manual compaction at level-1 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
|
||||||
|
Binary file not shown.
BIN
packs/complications/MANIFEST-000188
Normal file
BIN
packs/complications/MANIFEST-000188
Normal file
Binary file not shown.
BIN
packs/equipment/000099.ldb
Normal file
BIN
packs/equipment/000099.ldb
Normal file
Binary file not shown.
@ -1 +1 @@
|
|||||||
MANIFEST-000022
|
MANIFEST-000190
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
2023/08/03-22:32:11.490520 7f0153bff6c0 Recovering log #20
|
2023/10/04-21:41:44.100507 7f16d6ffd6c0 Recovering log #188
|
||||||
2023/08/03-22:32:11.500170 7f0153bff6c0 Delete type=3 #18
|
2023/10/04-21:41:44.111147 7f16d6ffd6c0 Delete type=3 #186
|
||||||
2023/08/03-22:32:11.500230 7f0153bff6c0 Delete type=0 #20
|
2023/10/04-21:41:44.111281 7f16d6ffd6c0 Delete type=0 #188
|
||||||
2023/08/03-22:32:17.438731 7f0151bfb6c0 Level-0 table #25: started
|
2023/10/04-21:47:02.509785 7f14567ef6c0 Level-0 table #193: started
|
||||||
2023/08/03-22:32:17.438765 7f0151bfb6c0 Level-0 table #25: 0 bytes OK
|
2023/10/04-21:47:02.509815 7f14567ef6c0 Level-0 table #193: 0 bytes OK
|
||||||
2023/08/03-22:32:17.445239 7f0151bfb6c0 Delete type=0 #23
|
2023/10/04-21:47:02.518200 7f14567ef6c0 Delete type=0 #191
|
||||||
2023/08/03-22:32:17.461466 7f0151bfb6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
2023/10/04-21:47:02.518694 7f14567ef6c0 Manual compaction at level-0 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)
|
||||||
|
2023/10/04-21:47:02.518773 7f14567ef6c0 Manual compaction at level-1 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
2023/08/03-22:31:33.672919 7f01533fe6c0 Recovering log #16
|
2023/10/04-21:35:01.768747 7f16d7fff6c0 Recovering log #184
|
||||||
2023/08/03-22:31:33.764300 7f01533fe6c0 Delete type=3 #14
|
2023/10/04-21:35:01.779863 7f16d7fff6c0 Delete type=3 #182
|
||||||
2023/08/03-22:31:33.764606 7f01533fe6c0 Delete type=0 #16
|
2023/10/04-21:35:01.779921 7f16d7fff6c0 Delete type=0 #184
|
||||||
2023/08/03-22:31:52.363681 7f0151bfb6c0 Level-0 table #21: started
|
2023/10/04-21:41:38.760705 7f14567ef6c0 Level-0 table #189: started
|
||||||
2023/08/03-22:31:52.363732 7f0151bfb6c0 Level-0 table #21: 0 bytes OK
|
2023/10/04-21:41:38.760752 7f14567ef6c0 Level-0 table #189: 0 bytes OK
|
||||||
2023/08/03-22:31:52.374669 7f0151bfb6c0 Delete type=0 #19
|
2023/10/04-21:41:38.767288 7f14567ef6c0 Delete type=0 #187
|
||||||
2023/08/03-22:31:52.411785 7f0151bfb6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
2023/10/04-21:41:38.774856 7f14567ef6c0 Manual compaction at level-0 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)
|
||||||
|
2023/10/04-21:41:38.781126 7f14567ef6c0 Manual compaction at level-1 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)
|
||||||
|
Binary file not shown.
BIN
packs/equipment/MANIFEST-000190
Normal file
BIN
packs/equipment/MANIFEST-000190
Normal file
Binary file not shown.
Binary file not shown.
@ -1 +1 @@
|
|||||||
MANIFEST-000014
|
MANIFEST-000182
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/08/03-22:32:11.526034 7f0152bfd6c0 Recovering log #12
|
2023/10/04-21:41:44.152237 7f16d6ffd6c0 Recovering log #180
|
||||||
2023/08/03-22:32:11.543863 7f0152bfd6c0 Delete type=3 #10
|
2023/10/04-21:41:44.162524 7f16d6ffd6c0 Delete type=3 #178
|
||||||
2023/08/03-22:32:11.543924 7f0152bfd6c0 Delete type=0 #12
|
2023/10/04-21:41:44.162593 7f16d6ffd6c0 Delete type=0 #180
|
||||||
2023/08/03-22:32:17.513990 7f0151bfb6c0 Level-0 table #17: started
|
2023/10/04-21:47:02.538933 7f14567ef6c0 Level-0 table #185: started
|
||||||
2023/08/03-22:32:17.514015 7f0151bfb6c0 Level-0 table #17: 0 bytes OK
|
2023/10/04-21:47:02.538963 7f14567ef6c0 Level-0 table #185: 0 bytes OK
|
||||||
2023/08/03-22:32:17.520642 7f0151bfb6c0 Delete type=0 #15
|
2023/10/04-21:47:02.544945 7f14567ef6c0 Delete type=0 #183
|
||||||
2023/08/03-22:32:17.521009 7f0151bfb6c0 Manual compaction at level-0 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
|
2023/10/04-21:47:02.545085 7f14567ef6c0 Manual compaction at level-0 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
|
||||||
2023/08/03-22:32:17.521478 7f0151bfb6c0 Manual compaction at level-1 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
|
2023/10/04-21:47:02.545108 7f14567ef6c0 Manual compaction at level-1 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/08/03-22:31:33.887886 7f0152bfd6c0 Recovering log #8
|
2023/10/04-21:35:01.823989 7f16d7fff6c0 Recovering log #176
|
||||||
2023/08/03-22:31:33.994036 7f0152bfd6c0 Delete type=3 #6
|
2023/10/04-21:35:01.834386 7f16d7fff6c0 Delete type=3 #174
|
||||||
2023/08/03-22:31:33.994083 7f0152bfd6c0 Delete type=0 #8
|
2023/10/04-21:35:01.834682 7f16d7fff6c0 Delete type=0 #176
|
||||||
2023/08/03-22:31:52.449237 7f0151bfb6c0 Level-0 table #13: started
|
2023/10/04-21:41:38.788643 7f14567ef6c0 Level-0 table #181: started
|
||||||
2023/08/03-22:31:52.449263 7f0151bfb6c0 Level-0 table #13: 0 bytes OK
|
2023/10/04-21:41:38.788676 7f14567ef6c0 Level-0 table #181: 0 bytes OK
|
||||||
2023/08/03-22:31:52.456923 7f0151bfb6c0 Delete type=0 #11
|
2023/10/04-21:41:38.794955 7f14567ef6c0 Delete type=0 #179
|
||||||
2023/08/03-22:31:52.481990 7f0151bfb6c0 Manual compaction at level-0 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
|
2023/10/04-21:41:38.808465 7f14567ef6c0 Manual compaction at level-0 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
|
||||||
2023/08/03-22:31:52.482059 7f0151bfb6c0 Manual compaction at level-1 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
|
2023/10/04-21:41:38.808513 7f14567ef6c0 Manual compaction at level-1 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
|
||||||
|
Binary file not shown.
BIN
packs/maneuvers/MANIFEST-000182
Normal file
BIN
packs/maneuvers/MANIFEST-000182
Normal file
Binary file not shown.
@ -1 +1 @@
|
|||||||
MANIFEST-000022
|
MANIFEST-000188
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/08/03-22:32:11.542387 7f01523fc6c0 Recovering log #20
|
2023/10/04-21:41:44.164948 7f16ecffa6c0 Recovering log #186
|
||||||
2023/08/03-22:32:11.560297 7f01523fc6c0 Delete type=3 #18
|
2023/10/04-21:41:44.175548 7f16ecffa6c0 Delete type=3 #184
|
||||||
2023/08/03-22:32:11.560512 7f01523fc6c0 Delete type=0 #20
|
2023/10/04-21:41:44.175604 7f16ecffa6c0 Delete type=0 #186
|
||||||
2023/08/03-22:32:17.493642 7f0151bfb6c0 Level-0 table #25: started
|
2023/10/04-21:47:02.552360 7f14567ef6c0 Level-0 table #191: started
|
||||||
2023/08/03-22:32:17.493688 7f0151bfb6c0 Level-0 table #25: 0 bytes OK
|
2023/10/04-21:47:02.552386 7f14567ef6c0 Level-0 table #191: 0 bytes OK
|
||||||
2023/08/03-22:32:17.500316 7f0151bfb6c0 Delete type=0 #23
|
2023/10/04-21:47:02.560501 7f14567ef6c0 Delete type=0 #189
|
||||||
2023/08/03-22:32:17.520920 7f0151bfb6c0 Manual compaction at level-0 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
|
2023/10/04-21:47:02.560629 7f14567ef6c0 Manual compaction at level-0 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
|
||||||
2023/08/03-22:32:17.521020 7f0151bfb6c0 Manual compaction at level-1 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
|
2023/10/04-21:47:02.560655 7f14567ef6c0 Manual compaction at level-1 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/08/03-22:31:33.981151 7f01533fe6c0 Recovering log #16
|
2023/10/04-21:35:01.836873 7f16ecffa6c0 Recovering log #182
|
||||||
2023/08/03-22:31:34.061585 7f01533fe6c0 Delete type=3 #14
|
2023/10/04-21:35:01.847899 7f16ecffa6c0 Delete type=3 #180
|
||||||
2023/08/03-22:31:34.061736 7f01533fe6c0 Delete type=0 #16
|
2023/10/04-21:35:01.847965 7f16ecffa6c0 Delete type=0 #182
|
||||||
2023/08/03-22:31:52.463277 7f0151bfb6c0 Level-0 table #21: started
|
2023/10/04-21:41:38.781263 7f14567ef6c0 Level-0 table #187: started
|
||||||
2023/08/03-22:31:52.463307 7f0151bfb6c0 Level-0 table #21: 0 bytes OK
|
2023/10/04-21:41:38.781303 7f14567ef6c0 Level-0 table #187: 0 bytes OK
|
||||||
2023/08/03-22:31:52.470250 7f0151bfb6c0 Delete type=0 #19
|
2023/10/04-21:41:38.788512 7f14567ef6c0 Delete type=0 #185
|
||||||
2023/08/03-22:31:52.482031 7f0151bfb6c0 Manual compaction at level-0 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
|
2023/10/04-21:41:38.808450 7f14567ef6c0 Manual compaction at level-0 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
|
||||||
2023/08/03-22:31:52.482410 7f0151bfb6c0 Manual compaction at level-1 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
|
2023/10/04-21:41:38.808503 7f14567ef6c0 Manual compaction at level-1 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
|
||||||
|
Binary file not shown.
BIN
packs/perks/MANIFEST-000188
Normal file
BIN
packs/perks/MANIFEST-000188
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs/powers/000165.ldb
Normal file
BIN
packs/powers/000165.ldb
Normal file
Binary file not shown.
@ -1 +1 @@
|
|||||||
MANIFEST-000022
|
MANIFEST-000190
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/08/03-22:32:11.504542 7f01523fc6c0 Recovering log #20
|
2023/10/04-21:41:44.127784 7f16d77fe6c0 Recovering log #188
|
||||||
2023/08/03-22:32:11.521105 7f01523fc6c0 Delete type=3 #18
|
2023/10/04-21:41:44.137990 7f16d77fe6c0 Delete type=3 #186
|
||||||
2023/08/03-22:32:11.521156 7f01523fc6c0 Delete type=0 #20
|
2023/10/04-21:41:44.138069 7f16d77fe6c0 Delete type=0 #188
|
||||||
2023/08/03-22:32:17.471567 7f0151bfb6c0 Level-0 table #25: started
|
2023/10/04-21:47:02.518821 7f14567ef6c0 Level-0 table #193: started
|
||||||
2023/08/03-22:32:17.471602 7f0151bfb6c0 Level-0 table #25: 0 bytes OK
|
2023/10/04-21:47:02.518901 7f14567ef6c0 Level-0 table #193: 0 bytes OK
|
||||||
2023/08/03-22:32:17.480333 7f0151bfb6c0 Delete type=0 #23
|
2023/10/04-21:47:02.525324 7f14567ef6c0 Delete type=0 #191
|
||||||
2023/08/03-22:32:17.493507 7f0151bfb6c0 Manual compaction at level-0 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
|
2023/10/04-21:47:02.545045 7f14567ef6c0 Manual compaction at level-0 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
|
||||||
2023/08/03-22:32:17.493543 7f0151bfb6c0 Manual compaction at level-1 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
|
2023/10/04-21:47:02.545077 7f14567ef6c0 Manual compaction at level-1 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/08/03-22:31:33.790889 7f0152bfd6c0 Recovering log #16
|
2023/10/04-21:35:01.795955 7f16d77fe6c0 Recovering log #184
|
||||||
2023/08/03-22:31:33.884940 7f0152bfd6c0 Delete type=3 #14
|
2023/10/04-21:35:01.806044 7f16d77fe6c0 Delete type=3 #182
|
||||||
2023/08/03-22:31:33.885064 7f0152bfd6c0 Delete type=0 #16
|
2023/10/04-21:35:01.806101 7f16d77fe6c0 Delete type=0 #184
|
||||||
2023/08/03-22:31:52.438338 7f0151bfb6c0 Level-0 table #21: started
|
2023/10/04-21:41:38.774865 7f14567ef6c0 Level-0 table #189: started
|
||||||
2023/08/03-22:31:52.438374 7f0151bfb6c0 Level-0 table #21: 0 bytes OK
|
2023/10/04-21:41:38.774887 7f14567ef6c0 Level-0 table #189: 0 bytes OK
|
||||||
2023/08/03-22:31:52.448881 7f0151bfb6c0 Delete type=0 #19
|
2023/10/04-21:41:38.780982 7f14567ef6c0 Delete type=0 #187
|
||||||
2023/08/03-22:31:52.449118 7f0151bfb6c0 Manual compaction at level-0 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
|
2023/10/04-21:41:38.781151 7f14567ef6c0 Manual compaction at level-0 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
|
||||||
2023/08/03-22:31:52.449158 7f0151bfb6c0 Manual compaction at level-1 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
|
2023/10/04-21:41:38.781172 7f14567ef6c0 Manual compaction at level-1 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
|
||||||
|
Binary file not shown.
BIN
packs/powers/MANIFEST-000190
Normal file
BIN
packs/powers/MANIFEST-000190
Normal file
Binary file not shown.
@ -1 +1 @@
|
|||||||
MANIFEST-000022
|
MANIFEST-000190
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/08/03-22:32:11.504608 7f0152bfd6c0 Recovering log #20
|
2023/10/04-21:41:44.114622 7f16ecffa6c0 Recovering log #188
|
||||||
2023/08/03-22:32:11.524096 7f0152bfd6c0 Delete type=3 #18
|
2023/10/04-21:41:44.125734 7f16ecffa6c0 Delete type=3 #186
|
||||||
2023/08/03-22:32:11.524332 7f0152bfd6c0 Delete type=0 #20
|
2023/10/04-21:41:44.125812 7f16ecffa6c0 Delete type=0 #188
|
||||||
2023/08/03-22:32:17.487194 7f0151bfb6c0 Level-0 table #25: started
|
2023/10/04-21:47:02.525443 7f14567ef6c0 Level-0 table #193: started
|
||||||
2023/08/03-22:32:17.487218 7f0151bfb6c0 Level-0 table #25: 0 bytes OK
|
2023/10/04-21:47:02.525470 7f14567ef6c0 Level-0 table #193: 0 bytes OK
|
||||||
2023/08/03-22:32:17.493333 7f0151bfb6c0 Delete type=0 #23
|
2023/10/04-21:47:02.531866 7f14567ef6c0 Delete type=0 #191
|
||||||
2023/08/03-22:32:17.493535 7f0151bfb6c0 Manual compaction at level-0 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
|
2023/10/04-21:47:02.545057 7f14567ef6c0 Manual compaction at level-0 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
|
||||||
2023/08/03-22:32:17.493560 7f0151bfb6c0 Manual compaction at level-1 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
|
2023/10/04-21:47:02.545100 7f14567ef6c0 Manual compaction at level-1 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/08/03-22:31:33.766904 7f01533fe6c0 Recovering log #16
|
2023/10/04-21:35:01.783254 7f16ecffa6c0 Recovering log #184
|
||||||
2023/08/03-22:31:33.865983 7f01533fe6c0 Delete type=3 #14
|
2023/10/04-21:35:01.792970 7f16ecffa6c0 Delete type=3 #182
|
||||||
2023/08/03-22:31:33.866041 7f01533fe6c0 Delete type=0 #16
|
2023/10/04-21:35:01.793080 7f16ecffa6c0 Delete type=0 #184
|
||||||
2023/08/03-22:31:52.424062 7f0151bfb6c0 Level-0 table #21: started
|
2023/10/04-21:41:38.767422 7f14567ef6c0 Level-0 table #189: started
|
||||||
2023/08/03-22:31:52.424265 7f0151bfb6c0 Level-0 table #21: 0 bytes OK
|
2023/10/04-21:41:38.767446 7f14567ef6c0 Level-0 table #189: 0 bytes OK
|
||||||
2023/08/03-22:31:52.430673 7f0151bfb6c0 Delete type=0 #19
|
2023/10/04-21:41:38.774734 7f14567ef6c0 Delete type=0 #187
|
||||||
2023/08/03-22:31:52.449080 7f0151bfb6c0 Manual compaction at level-0 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
|
2023/10/04-21:41:38.781109 7f14567ef6c0 Manual compaction at level-0 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
|
||||||
2023/08/03-22:31:52.449141 7f0151bfb6c0 Manual compaction at level-1 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
|
2023/10/04-21:41:38.781182 7f14567ef6c0 Manual compaction at level-1 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
|
||||||
|
Binary file not shown.
BIN
packs/skills/MANIFEST-000190
Normal file
BIN
packs/skills/MANIFEST-000190
Normal file
Binary file not shown.
@ -1 +1 @@
|
|||||||
MANIFEST-000022
|
MANIFEST-000188
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/08/03-22:32:11.546170 7f0152bfd6c0 Recovering log #20
|
2023/10/04-21:41:44.177511 7f16d77fe6c0 Recovering log #186
|
||||||
2023/08/03-22:32:11.563632 7f0152bfd6c0 Delete type=3 #18
|
2023/10/04-21:41:44.187706 7f16d77fe6c0 Delete type=3 #184
|
||||||
2023/08/03-22:32:11.563697 7f0152bfd6c0 Delete type=0 #20
|
2023/10/04-21:41:44.187791 7f16d77fe6c0 Delete type=0 #186
|
||||||
2023/08/03-22:32:17.506983 7f0151bfb6c0 Level-0 table #25: started
|
2023/10/04-21:47:02.545189 7f14567ef6c0 Level-0 table #191: started
|
||||||
2023/08/03-22:32:17.507022 7f0151bfb6c0 Level-0 table #25: 0 bytes OK
|
2023/10/04-21:47:02.545213 7f14567ef6c0 Level-0 table #191: 0 bytes OK
|
||||||
2023/08/03-22:32:17.513835 7f0151bfb6c0 Delete type=0 #23
|
2023/10/04-21:47:02.552254 7f14567ef6c0 Delete type=0 #189
|
||||||
2023/08/03-22:32:17.520991 7f0151bfb6c0 Manual compaction at level-0 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
|
2023/10/04-21:47:02.560616 7f14567ef6c0 Manual compaction at level-0 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
|
||||||
2023/08/03-22:32:17.521446 7f0151bfb6c0 Manual compaction at level-1 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
|
2023/10/04-21:47:02.560646 7f14567ef6c0 Manual compaction at level-1 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/08/03-22:31:33.996672 7f0152bfd6c0 Recovering log #16
|
2023/10/04-21:35:01.850710 7f16d77fe6c0 Recovering log #182
|
||||||
2023/08/03-22:31:34.114315 7f0152bfd6c0 Delete type=3 #14
|
2023/10/04-21:35:01.861789 7f16d77fe6c0 Delete type=3 #180
|
||||||
2023/08/03-22:31:34.114356 7f0152bfd6c0 Delete type=0 #16
|
2023/10/04-21:35:01.861973 7f16d77fe6c0 Delete type=0 #182
|
||||||
2023/08/03-22:31:52.470365 7f0151bfb6c0 Level-0 table #21: started
|
2023/10/04-21:41:38.801785 7f14567ef6c0 Level-0 table #187: started
|
||||||
2023/08/03-22:31:52.470387 7f0151bfb6c0 Level-0 table #21: 0 bytes OK
|
2023/10/04-21:41:38.801808 7f14567ef6c0 Level-0 table #187: 0 bytes OK
|
||||||
2023/08/03-22:31:52.481758 7f0151bfb6c0 Delete type=0 #19
|
2023/10/04-21:41:38.808336 7f14567ef6c0 Delete type=0 #185
|
||||||
2023/08/03-22:31:52.482045 7f0151bfb6c0 Manual compaction at level-0 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
|
2023/10/04-21:41:38.808493 7f14567ef6c0 Manual compaction at level-0 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
|
||||||
2023/08/03-22:31:52.482076 7f0151bfb6c0 Manual compaction at level-1 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
|
2023/10/04-21:41:38.808522 7f14567ef6c0 Manual compaction at level-1 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
|
||||||
|
Binary file not shown.
BIN
packs/talents/MANIFEST-000188
Normal file
BIN
packs/talents/MANIFEST-000188
Normal file
Binary file not shown.
@ -1 +1 @@
|
|||||||
MANIFEST-000022
|
MANIFEST-000086
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
2023/08/03-22:32:11.490520 7f01523fc6c0 Recovering log #20
|
2023/08/24-15:57:43.392826 7fab4affd6c0 Recovering log #84
|
||||||
2023/08/03-22:32:11.500170 7f01523fc6c0 Delete type=3 #18
|
2023/08/24-15:57:43.403060 7fab4affd6c0 Delete type=3 #82
|
||||||
2023/08/03-22:32:11.500333 7f01523fc6c0 Delete type=0 #20
|
2023/08/24-15:57:43.403157 7fab4affd6c0 Delete type=0 #84
|
||||||
2023/08/03-22:32:17.480474 7f0151bfb6c0 Level-0 table #25: started
|
2023/08/24-15:59:11.995583 7fab497fa6c0 Level-0 table #89: started
|
||||||
2023/08/03-22:32:17.480502 7f0151bfb6c0 Level-0 table #25: 0 bytes OK
|
2023/08/24-15:59:11.995614 7fab497fa6c0 Level-0 table #89: 0 bytes OK
|
||||||
2023/08/03-22:32:17.487051 7f0151bfb6c0 Delete type=0 #23
|
2023/08/24-15:59:12.004480 7fab497fa6c0 Delete type=0 #87
|
||||||
2023/08/03-22:32:17.493518 7f0151bfb6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
2023/08/24-15:59:12.025495 7fab497fa6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
2023/08/03-22:31:33.673016 7f0152bfd6c0 Recovering log #16
|
2023/08/24-15:09:37.452353 7fab4b7fe6c0 Recovering log #80
|
||||||
2023/08/03-22:31:33.788078 7f0152bfd6c0 Delete type=3 #14
|
2023/08/24-15:09:37.462595 7fab4b7fe6c0 Delete type=3 #78
|
||||||
2023/08/03-22:31:33.788135 7f0152bfd6c0 Delete type=0 #16
|
2023/08/24-15:09:37.462673 7fab4b7fe6c0 Delete type=0 #80
|
||||||
2023/08/03-22:31:52.430865 7f0151bfb6c0 Level-0 table #21: started
|
2023/08/24-15:56:20.976153 7fab497fa6c0 Level-0 table #85: started
|
||||||
2023/08/03-22:31:52.430915 7f0151bfb6c0 Level-0 table #21: 0 bytes OK
|
2023/08/24-15:56:20.976179 7fab497fa6c0 Level-0 table #85: 0 bytes OK
|
||||||
2023/08/03-22:31:52.438188 7f0151bfb6c0 Delete type=0 #19
|
2023/08/24-15:56:20.984268 7fab497fa6c0 Delete type=0 #83
|
||||||
2023/08/03-22:31:52.449100 7f0151bfb6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
2023/08/24-15:56:20.984458 7fab497fa6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||||
|
Binary file not shown.
BIN
packs/weapons/MANIFEST-000086
Normal file
BIN
packs/weapons/MANIFEST-000086
Normal file
Binary file not shown.
@ -74,7 +74,7 @@
|
|||||||
color: rgba(224, 208, 197, 0.9);
|
color: rgba(224, 208, 197, 0.9);
|
||||||
}
|
}
|
||||||
.dialog-content, .dialog-buttons, .form-fields {
|
.dialog-content, .dialog-buttons, .form-fields {
|
||||||
color: rgba(224, 208, 197, 0.9);
|
color: rgba(4, 44, 44, 0.98);
|
||||||
}
|
}
|
||||||
.dialog-buttons {
|
.dialog-buttons {
|
||||||
color: rgba(224, 208, 197, 0.9);
|
color: rgba(224, 208, 197, 0.9);
|
||||||
@ -649,6 +649,11 @@ ul, li {
|
|||||||
align-content: center;
|
align-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.content-center {
|
||||||
|
align-content: center;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
.attribut-value,
|
.attribut-value,
|
||||||
.carac-value {
|
.carac-value {
|
||||||
flex-grow: 0;
|
flex-grow: 0;
|
||||||
@ -816,10 +821,13 @@ ul, li {
|
|||||||
.roll-dialog-header {
|
.roll-dialog-header {
|
||||||
height: 52px;
|
height: 52px;
|
||||||
}
|
}
|
||||||
|
.dialog-roll-title {
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
.actor-icon {
|
.actor-icon {
|
||||||
float: left;
|
float: left;
|
||||||
width: 48px;
|
width: 48px;
|
||||||
|
max-width: 48px;
|
||||||
height: 48px;
|
height: 48px;
|
||||||
padding: 2px 6px 2px 2px;
|
padding: 2px 6px 2px 2px;
|
||||||
}
|
}
|
||||||
@ -1147,8 +1155,8 @@ ul, li {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#logo {
|
#logo {
|
||||||
content : url(../images/ui/crucible_game_logo.png);
|
content : url(../images/ui/logo_hex_yellow_01.webp);
|
||||||
width: 100px;
|
width: 60px;
|
||||||
height: 60px;
|
height: 60px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1360,6 +1368,7 @@ Focus FOC: #ff0084
|
|||||||
flex-grow:1;
|
flex-grow:1;
|
||||||
max-width: 8rem;
|
max-width: 8rem;
|
||||||
min-width: 8rem;
|
min-width: 8rem;
|
||||||
|
text-align: start;
|
||||||
}
|
}
|
||||||
.item-field-text-long {
|
.item-field-text-long {
|
||||||
flex-grow:1;
|
flex-grow:1;
|
||||||
@ -1389,6 +1398,9 @@ Focus FOC: #ff0084
|
|||||||
.item-control-end {
|
.item-control-end {
|
||||||
align-self: flex-end;
|
align-self: flex-end;
|
||||||
}
|
}
|
||||||
|
.margin-space-4 {
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
.margin-item-list {
|
.margin-item-list {
|
||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
}
|
}
|
||||||
@ -1410,7 +1422,12 @@ Focus FOC: #ff0084
|
|||||||
}
|
}
|
||||||
.item-controls-fixed {
|
.item-controls-fixed {
|
||||||
min-width:2rem;
|
min-width:2rem;
|
||||||
max-width: 2rem;
|
/*max-width: 2rem;*/
|
||||||
|
}
|
||||||
|
.item-controls-fixed-small {
|
||||||
|
min-width:1rem;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
/*max-width: 2rem;*/
|
||||||
}
|
}
|
||||||
.biodata-portrait {
|
.biodata-portrait {
|
||||||
min-height: 512px;
|
min-height: 512px;
|
||||||
@ -1426,3 +1443,10 @@ Focus FOC: #ff0084
|
|||||||
.margin-left-8 {
|
.margin-left-8 {
|
||||||
margin-left: 8px;
|
margin-left: 8px;
|
||||||
}
|
}
|
||||||
|
.maneuver-is-stock {
|
||||||
|
display: none;
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
.compendium .directory-list .directory-item .folder-header h3 {
|
||||||
|
color:#000
|
||||||
|
}
|
||||||
|
29
system.json
29
system.json
@ -5,11 +5,11 @@
|
|||||||
"flags": {}
|
"flags": {}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "Hero System v6 for FoundryVTT (Official)",
|
"description": "Hero System 6E for FoundryVTT (Official)",
|
||||||
"esmodules": [
|
"esmodules": [
|
||||||
"modules/hero6-main.js"
|
"modules/hero6-main.js"
|
||||||
],
|
],
|
||||||
"gridDistance": 5,
|
"gridDistance": 2,
|
||||||
"gridUnits": "m",
|
"gridUnits": "m",
|
||||||
"languages": [
|
"languages": [
|
||||||
{
|
{
|
||||||
@ -30,15 +30,6 @@
|
|||||||
"private": false,
|
"private": false,
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "Item",
|
|
||||||
"label": "Weapons",
|
|
||||||
"name": "weapons",
|
|
||||||
"path": "packs/weapons.db",
|
|
||||||
"system": "fvtt-hero-system-6",
|
|
||||||
"private": false,
|
|
||||||
"flags": {}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"label": "Skills",
|
"label": "Skills",
|
||||||
@ -94,21 +85,21 @@
|
|||||||
"flags": {}
|
"flags": {}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"primaryTokenAttribute": "secondary.hp",
|
"primaryTokenAttribute": "characteristics.body",
|
||||||
"secondaryTokenAttribute": "secondary.effort",
|
"secondaryTokenAttribute": "characteristics.end",
|
||||||
"socket": true,
|
"socket": true,
|
||||||
"styles": [
|
"styles": [
|
||||||
"styles/simple.css"
|
"styles/simple.css"
|
||||||
],
|
],
|
||||||
"version": "11.0.0",
|
"version": "11.0.23",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "10",
|
"minimum": "11",
|
||||||
"verified": "11"
|
"verified": "11"
|
||||||
},
|
},
|
||||||
"title": "Hero System v6 for FoundrtVTT (Official)",
|
"title": "Hero System 6E Basic (Official)",
|
||||||
"manifest": "https://www.uberwald.me/gitea/uberwald/fvtt-hero-system-6/raw/branch/main/system.json",
|
"manifest": "https://www.uberwald.me/gitea/public/fvtt-hero-system-6/raw/branch/master/system.json",
|
||||||
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-hero-system-6/archive/fvtt-hero-system-6-v11.0.0.zip",
|
"download": "https://www.uberwald.me/gitea/public/fvtt-hero-system-6/archive/fvtt-hero-system-6-v11.0.23.zip",
|
||||||
"url": "https://www.uberwald.me/gitea/uberwald/",
|
"url": "https://www.uberwald.me/public/uberwald/",
|
||||||
"background": "systems/fvtt-hero-system-6/images/ui/hero_foundry_cover.webp",
|
"background": "systems/fvtt-hero-system-6/images/ui/hero_foundry_cover.webp",
|
||||||
"id": "fvtt-hero-system-6"
|
"id": "fvtt-hero-system-6"
|
||||||
}
|
}
|
@ -1,7 +1,8 @@
|
|||||||
{
|
{
|
||||||
"Actor": {
|
"Actor": {
|
||||||
"types": [
|
"types": [
|
||||||
"character"
|
"character",
|
||||||
|
"minion"
|
||||||
],
|
],
|
||||||
"templates": {
|
"templates": {
|
||||||
"biodata": {
|
"biodata": {
|
||||||
@ -72,7 +73,7 @@
|
|||||||
"category": "main",
|
"category": "main",
|
||||||
"value": 10,
|
"value": 10,
|
||||||
"base": 10,
|
"base": 10,
|
||||||
"perceptionroll": 10
|
"perceptionroll": 11
|
||||||
},
|
},
|
||||||
"ego": {
|
"ego": {
|
||||||
"label": "EGO",
|
"label": "EGO",
|
||||||
@ -90,7 +91,7 @@
|
|||||||
},
|
},
|
||||||
"ocv": {
|
"ocv": {
|
||||||
"label": "OCV",
|
"label": "OCV",
|
||||||
"hasroll": false,
|
"hasroll": true,
|
||||||
"base": 3,
|
"base": 3,
|
||||||
"autoMod": "0",
|
"autoMod": "0",
|
||||||
"userMod": "0",
|
"userMod": "0",
|
||||||
@ -108,7 +109,7 @@
|
|||||||
},
|
},
|
||||||
"omcv": {
|
"omcv": {
|
||||||
"label": "OMCV",
|
"label": "OMCV",
|
||||||
"hasroll": false,
|
"hasroll": true,
|
||||||
"base": 3,
|
"base": 3,
|
||||||
"autoMod": "0",
|
"autoMod": "0",
|
||||||
"userMod": "0",
|
"userMod": "0",
|
||||||
@ -205,6 +206,7 @@
|
|||||||
"ismovement": true,
|
"ismovement": true,
|
||||||
"hasroll": false,
|
"hasroll": false,
|
||||||
"value": 12,
|
"value": 12,
|
||||||
|
"ncvalue": 24,
|
||||||
"base": 12
|
"base": 12
|
||||||
},
|
},
|
||||||
"swimming": {
|
"swimming": {
|
||||||
@ -212,6 +214,7 @@
|
|||||||
"ismovement": true,
|
"ismovement": true,
|
||||||
"hasroll": false,
|
"hasroll": false,
|
||||||
"value": 4,
|
"value": 4,
|
||||||
|
"ncvalue": 8,
|
||||||
"base": 4
|
"base": 4
|
||||||
},
|
},
|
||||||
"leaping": {
|
"leaping": {
|
||||||
@ -219,6 +222,7 @@
|
|||||||
"ismovement": true,
|
"ismovement": true,
|
||||||
"hasroll": false,
|
"hasroll": false,
|
||||||
"value": 4,
|
"value": 4,
|
||||||
|
"ncvalue": 8,
|
||||||
"base": 4,
|
"base": 4,
|
||||||
"leaping_horizontal_base": 0,
|
"leaping_horizontal_base": 0,
|
||||||
"leaping_horizontal_total": 0,
|
"leaping_horizontal_total": 0,
|
||||||
@ -231,25 +235,31 @@
|
|||||||
"movements": {
|
"movements": {
|
||||||
"fly": {
|
"fly": {
|
||||||
"label": "Fly",
|
"label": "Fly",
|
||||||
"value": 0
|
"value": 0,
|
||||||
|
"ncvalue": 0
|
||||||
|
|
||||||
},
|
},
|
||||||
"teleport": {
|
"teleport": {
|
||||||
"label": "Teleport",
|
"label": "Teleport",
|
||||||
"value": 0
|
"value": 0,
|
||||||
|
"ncvalue": 0
|
||||||
},
|
},
|
||||||
"tunnel": {
|
"tunnel": {
|
||||||
"label": "Tunnel",
|
"label": "Tunnel",
|
||||||
"value": 0
|
"value": 0,
|
||||||
|
"ncvalue": 0
|
||||||
},
|
},
|
||||||
"move1": {
|
"move1": {
|
||||||
"label": "N/A",
|
"label": "N/A",
|
||||||
"iseditable": true,
|
"iseditable": true,
|
||||||
"value": 0
|
"value": 0,
|
||||||
|
"ncvalue": 0
|
||||||
},
|
},
|
||||||
"move2": {
|
"move2": {
|
||||||
"label": "N/A",
|
"label": "N/A",
|
||||||
"iseditable": true,
|
"iseditable": true,
|
||||||
"value": 0
|
"value": 0,
|
||||||
|
"ncvalue": 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -300,6 +310,15 @@
|
|||||||
"movements"
|
"movements"
|
||||||
],
|
],
|
||||||
"subactors": []
|
"subactors": []
|
||||||
|
},
|
||||||
|
"minion": {
|
||||||
|
"templates": [
|
||||||
|
"biodata",
|
||||||
|
"characteristics",
|
||||||
|
"defenses",
|
||||||
|
"movements"
|
||||||
|
],
|
||||||
|
"subactors": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Item": {
|
"Item": {
|
||||||
@ -335,14 +354,19 @@
|
|||||||
"levels": 0,
|
"levels": 0,
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"range": "",
|
"range": "",
|
||||||
|
"damageeffect": "normal",
|
||||||
"damage": "",
|
"damage": "",
|
||||||
|
"stunx": 0,
|
||||||
"endurance": 0,
|
"endurance": 0,
|
||||||
"hasroll": false,
|
"hasroll": false,
|
||||||
|
"attackvalue": "ocv",
|
||||||
"roll": 0,
|
"roll": 0,
|
||||||
"computebody": false,
|
"computebody": false,
|
||||||
"haseffectroll": false,
|
"haseffectroll": false,
|
||||||
"effectroll": "standard",
|
"effectroll": "standard",
|
||||||
"effectrollformula": "",
|
"effectrollformula": "",
|
||||||
|
"hascharges": false,
|
||||||
|
"nbcharges": 0,
|
||||||
"items": {}
|
"items": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -354,6 +378,8 @@
|
|||||||
"pha": "",
|
"pha": "",
|
||||||
"ocv": "",
|
"ocv": "",
|
||||||
"dcv" : "",
|
"dcv" : "",
|
||||||
|
"omcv": "",
|
||||||
|
"dmcv" : "",
|
||||||
"isstock": false,
|
"isstock": false,
|
||||||
"active": false
|
"active": false
|
||||||
},
|
},
|
||||||
@ -395,7 +421,19 @@
|
|||||||
"subtype": "equipment",
|
"subtype": "equipment",
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"weight": 0,
|
"weight": 0,
|
||||||
"moneycost": 0
|
"moneycost": 0,
|
||||||
|
"ocv": 0,
|
||||||
|
"omcv": 0,
|
||||||
|
"dmcv": 0,
|
||||||
|
"rmod": 0,
|
||||||
|
"pd": 0,
|
||||||
|
"ed": 0,
|
||||||
|
"rpd": 0,
|
||||||
|
"red": 0,
|
||||||
|
"mentaldefense": 0,
|
||||||
|
"powerdefense": 0,
|
||||||
|
"flashdefense": 0,
|
||||||
|
"otherdefense": 0
|
||||||
},
|
},
|
||||||
"attack": {
|
"attack": {
|
||||||
"templates": [
|
"templates": [
|
||||||
|
@ -18,8 +18,8 @@
|
|||||||
<ul class="item-list alternate-list">
|
<ul class="item-list alternate-list">
|
||||||
<li class="item flexrow">
|
<li class="item flexrow">
|
||||||
<label class="item-field-label-medium">Alternate IDs</label>
|
<label class="item-field-label-medium">Alternate IDs</label>
|
||||||
<input type="text" class="item-field-label-long4" name="system.biodata.alternateids" value="{{system.biodata.origin}}"
|
<input type="text" class="item-field-label-long4" name="system.biodata.alternateids"
|
||||||
data-dtype="String" />
|
value="{{system.biodata.origin}}" data-dtype="String" />
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@ -29,21 +29,23 @@
|
|||||||
<ul class="item-list alternate-list">
|
<ul class="item-list alternate-list">
|
||||||
<li class="flexrow item">
|
<li class="flexrow item">
|
||||||
<label class="item-field-label-medium">Campaign</label>
|
<label class="item-field-label-medium">Campaign</label>
|
||||||
<input type="text" class="item-field-label-long3" name="system.biodata.campaign" value="{{system.biodata.campaign}}" data-dtype="String" />
|
<input type="text" class="item-field-label-long3" name="system.biodata.campaign"
|
||||||
|
value="{{system.biodata.campaign}}" data-dtype="String" />
|
||||||
</li>
|
</li>
|
||||||
<li class="flexrow item">
|
<li class="flexrow item">
|
||||||
<label class="item-field-label-medium">Player</label>
|
<label class="item-field-label-medium">Player</label>
|
||||||
<input type="text" class="item-field-label-long3" name="system.biodata.player" value="{{system.biodata.player}}"
|
<input type="text" class="item-field-label-long3" name="system.biodata.player"
|
||||||
data-dtype="String" />
|
value="{{system.biodata.player}}" data-dtype="String" />
|
||||||
</li>
|
</li>
|
||||||
<li class="flexrow item">
|
<li class="flexrow item">
|
||||||
<label class="item-field-label-medium">GM</label>
|
<label class="item-field-label-medium">GM</label>
|
||||||
<input type="text" class="item-field-label-long3" name="system.biodata.gm" value="{{system.biodata.gm}}"
|
<input type="text" class="item-field-label-long3" name="system.biodata.gm"
|
||||||
data-dtype="String" />
|
value="{{system.biodata.gm}}" data-dtype="String" />
|
||||||
</li>
|
</li>
|
||||||
<li class="item flexrow">
|
<li class="item flexrow">
|
||||||
<label class="item-field-label-medium">Hair</label>
|
<label class="item-field-label-medium">Hair</label>
|
||||||
<input type="text" class="item-field-label-long3" name="system.biodata.hair" value="{{system.biodata.hair}}" data-dtype="String" />
|
<input type="text" class="item-field-label-long3" name="system.biodata.hair"
|
||||||
|
value="{{system.biodata.hair}}" data-dtype="String" />
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@ -51,19 +53,23 @@
|
|||||||
<ul class="item-list alternate-list">
|
<ul class="item-list alternate-list">
|
||||||
<li class="flexrow item">
|
<li class="flexrow item">
|
||||||
<label class="item-field-label-medium">Gender</label>
|
<label class="item-field-label-medium">Gender</label>
|
||||||
<input type="text" class="item-field-label-medium" name="system.biodata.gender" value="{{system.biodata.gender}}" data-dtype="String" />
|
<input type="text" class="item-field-label-medium" name="system.biodata.gender"
|
||||||
|
value="{{system.biodata.gender}}" data-dtype="String" />
|
||||||
</li>
|
</li>
|
||||||
<li class="item flexrow">
|
<li class="item flexrow">
|
||||||
<label class="item-field-label-medium">Height</label>
|
<label class="item-field-label-medium">Height</label>
|
||||||
<input type="text" class="item-field-label-medium" name="system.biodata.height" value="{{system.biodata.height}}" data-dtype="String" />
|
<input type="text" class="item-field-label-medium" name="system.biodata.height"
|
||||||
|
value="{{system.biodata.height}}" data-dtype="String" />
|
||||||
</li>
|
</li>
|
||||||
<li class="item flexrow">
|
<li class="item flexrow">
|
||||||
<label class="item-field-label-medium">Mass</label>
|
<label class="item-field-label-medium">Mass</label>
|
||||||
<input type="text" class="item-field-label-medium" name="system.biodata.mass" value="{{system.biodata.mass}}" data-dtype="String" />
|
<input type="text" class="item-field-label-medium" name="system.biodata.mass"
|
||||||
|
value="{{system.biodata.mass}}" data-dtype="String" />
|
||||||
</li>
|
</li>
|
||||||
<li class="item flexrow">
|
<li class="item flexrow">
|
||||||
<label class="item-field-label-medium">Eyes</label>
|
<label class="item-field-label-medium">Eyes</label>
|
||||||
<input type="text" class="item-field-label-medium" name="system.biodata.eyes" value="{{system.biodata.eyes}}" data-dtype="String" />
|
<input type="text" class="item-field-label-medium" name="system.biodata.eyes"
|
||||||
|
value="{{system.biodata.eyes}}" data-dtype="String" />
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@ -73,19 +79,23 @@
|
|||||||
<ul class="item-list alternate-list">
|
<ul class="item-list alternate-list">
|
||||||
<li class="item flexrow">
|
<li class="item flexrow">
|
||||||
<label class="item-field-label-medium">Points</label>
|
<label class="item-field-label-medium">Points</label>
|
||||||
<input type="text" class="item-field-label-short" name="system.biodata.points" value="{{system.biodata.origin}}" data-dtype="Number" />
|
<input type="text" class="item-field-label-short" name="system.biodata.points"
|
||||||
|
value="{{system.biodata.origin}}" data-dtype="Number" />
|
||||||
<label class=""> </label>
|
<label class=""> </label>
|
||||||
|
|
||||||
<label class="item-field-label-medium">Complications</label>
|
<label class="item-field-label-medium">Complications</label>
|
||||||
<input type="text" class="item-field-label-short" name="system.biodata.complications" value="{{system.biodata.complications}}" data-dtype="Number" />
|
<input type="text" class="item-field-label-short" name="system.biodata.complications"
|
||||||
|
value="{{system.biodata.complications}}" data-dtype="Number" />
|
||||||
<label class=""> </label>
|
<label class=""> </label>
|
||||||
|
|
||||||
<label class="item-field-label-medium">XP Earned</label>
|
<label class="item-field-label-medium">XP Earned</label>
|
||||||
<input type="text" class="item-field-label-short" name="system.biodata.xpearned" value="{{system.biodata.xpearned}}" data-dtype="Number" />
|
<input type="text" class="item-field-label-short" name="system.biodata.xpearned"
|
||||||
|
value="{{system.biodata.xpearned}}" data-dtype="Number" />
|
||||||
<label class=""> </label>
|
<label class=""> </label>
|
||||||
|
|
||||||
<label class="item-field-label-medium">XP Spent</label>
|
<label class="item-field-label-medium">XP Spent</label>
|
||||||
<input type="text" class="item-field-label-short" name="system.biodata.xpspent" value="{{system.biodata.xpspent}}" data-dtype="Number" />
|
<input type="text" class="item-field-label-short" name="system.biodata.xpspent"
|
||||||
|
value="{{system.biodata.xpspent}}" data-dtype="Number" />
|
||||||
<label class=""> </label>
|
<label class=""> </label>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -127,29 +137,44 @@
|
|||||||
<label class="item-field-label-short"> </label>
|
<label class="item-field-label-short"> </label>
|
||||||
|
|
||||||
<label class="item-field-label-medium">Lift</label>
|
<label class="item-field-label-medium">Lift</label>
|
||||||
<input type="text" class="item-field-label-short update-field" disabled data-field-name="system.characteristics.str.lift" value="{{characteristics.str.lift}}" data-dtype="String" />
|
<input type="text" class="item-field-label-short update-field" disabled
|
||||||
|
data-field-name="system.characteristics.str.lift" value="{{characteristics.str.lift}}"
|
||||||
|
data-dtype="String" />
|
||||||
<label class="item-field-label-short"> </label>
|
<label class="item-field-label-short"> </label>
|
||||||
<label class="item-field-label-medium">STR END</label>
|
<label class="item-field-label-medium">STR END</label>
|
||||||
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.str.strend" disabled value="{{characteristics.str.strend}}" data-dtype="Number" />
|
<input type="text" class="item-field-label-short update-field"
|
||||||
|
data-field-name="system.characteristics.str.strend" disabled value="{{characteristics.str.strend}}"
|
||||||
|
data-dtype="Number" />
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
{{#each maneuvers as |mlist key|}}
|
{{#each maneuvers as |mlist mtype|}}
|
||||||
<ul class="stat-list alternate-list">
|
<ul class="stat-list alternate-list">
|
||||||
<li class="item flexrow list-item items-title-bg">
|
<li class="item flexrow list-item items-title-bg">
|
||||||
<span class="item-field-label-long-img">
|
<span class="item-field-label-long-img">
|
||||||
<label class="">{{upperFirst key}} Maneuver</label>
|
<label class="">{{upperFirst mtype}} Maneuver</label>
|
||||||
</span>
|
</span>
|
||||||
<span class="item-field-label-very-short">
|
<span class="item-field-label-very-short">
|
||||||
<label class="short-label">PHA</label>
|
<label class="short-label">PHA</label>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
|
{{#if (eq mtype "mental")}}
|
||||||
|
<span class="item-field-label-very-short">
|
||||||
|
<label class="short-label">OMCV</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-very-short">
|
||||||
|
<label class="short-label">DMCV</label>
|
||||||
|
</span>
|
||||||
|
{{else}}
|
||||||
<span class="item-field-label-very-short">
|
<span class="item-field-label-very-short">
|
||||||
<label class="short-label">OCV</label>
|
<label class="short-label">OCV</label>
|
||||||
</span>
|
</span>
|
||||||
<span class="item-field-label-very-short">
|
<span class="item-field-label-very-short">
|
||||||
<label class="short-label">DCV</label>
|
<label class="short-label">DCV</label>
|
||||||
</span>
|
</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
<span class="item-field-text-long">
|
<span class="item-field-text-long">
|
||||||
<label class="short-label">Effects</label>
|
<label class="short-label">Effects</label>
|
||||||
</span>
|
</span>
|
||||||
@ -157,19 +182,31 @@
|
|||||||
{{#each mlist as |maneuver key|}}
|
{{#each mlist as |maneuver key|}}
|
||||||
<li class="item flexrow list-item list-item-shadow " data-item-id="{{maneuver._id}}">
|
<li class="item flexrow list-item list-item-shadow " data-item-id="{{maneuver._id}}">
|
||||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||||
src="{{maneuver.img}}" /></a>
|
src="{{maneuver.img}}" />
|
||||||
<span class="item-field-label-long">{{maneuver.name}}</span>
|
</a>
|
||||||
|
<span class="item-field-label-long">
|
||||||
|
<a class="roll-item"><i class="fas fa-dice"></i></a>
|
||||||
|
{{maneuver.name}}
|
||||||
|
</span>
|
||||||
|
|
||||||
<span class="item-field-label-very-short">{{maneuver.system.pha}}</span>
|
<span class="item-field-label-very-short content-center">{{maneuver.system.pha}}</span>
|
||||||
<span class="item-field-label-very-short">{{maneuver.system.ocv}}</span>
|
{{#if (eq ../mtype "mental")}}
|
||||||
<span class="item-field-label-very-short">{{maneuver.system.dcv}}</span>
|
<span class="item-field-label-very-short content-center">{{maneuver.system.omcv}}</span>
|
||||||
|
<span class="item-field-label-very-short content-center">{{maneuver.system.dmcv}}</span>
|
||||||
|
{{else}}
|
||||||
|
<span class="item-field-label-very-short content-center">{{maneuver.system.ocv}}</span>
|
||||||
|
<span class="item-field-label-very-short content-center">{{maneuver.system.dcv}}</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
<span class="item-field-text-long">{{maneuver.system.effects}}</span>
|
<span class="item-field-text-long">{{maneuver.system.effects}}
|
||||||
|
{{#if maneuver.system.haseffectroll}}
|
||||||
|
<a class="roll-direct" data-roll-source="Maneuver {{maneuver.name}}"
|
||||||
|
data-roll-formula="{{maneuver.system.effectrollformula}}">
|
||||||
|
<i class="fas fa-dice"></i>{{maneuver.system.effectrollformula}}
|
||||||
|
</a>
|
||||||
|
{{/if}}
|
||||||
|
</span>
|
||||||
|
|
||||||
<span class=""> </span>
|
|
||||||
<div class="item-controls item-controls-fixed">
|
|
||||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
|
||||||
</div>
|
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
@ -181,16 +218,23 @@
|
|||||||
<li class="flexrow item">
|
<li class="flexrow item">
|
||||||
|
|
||||||
<label class="item-packed">Initiative</label>
|
<label class="item-packed">Initiative</label>
|
||||||
<input type="text" class="margin-left-4item-packed item-field-label-very-short update-field" data-field-name="system.characteristics.dex.initiative" value="{{characteristics.dex.initiative}}" data-dtype="Number" />
|
<input type="text" class="margin-left-4item-packed item-field-label-very-short update-field"
|
||||||
|
data-field-name="system.characteristics.dex.initiative" value="{{characteristics.dex.initiative}}"
|
||||||
|
data-dtype="Number" />
|
||||||
|
|
||||||
<label class="items-title-text item-packed margin-left-8">SPD</label>
|
<label class="items-title-text item-packed margin-left-8">SPD</label>
|
||||||
<input type="text" class="item-field-label-very-short margin-left-4 update-field item-packed" data-field-name="system.characteristics.spd.value" value="{{characteristics.spd.value}}" data-dtype="Number" />
|
<input type="text" class="item-field-label-very-short margin-left-4 update-field item-packed"
|
||||||
|
data-field-name="system.characteristics.spd.value" value="{{characteristics.spd.value}}"
|
||||||
|
data-dtype="Number" />
|
||||||
|
|
||||||
<button class="chat-card-small-button item-field-label-short margin-left-8 hold-action item-packed">{{#if isHold}}Unhold{{else}}Hold{{/if}}</button>
|
<button class="chat-card-small-button item-field-label-short margin-left-8 hold-action item-packed">{{#if
|
||||||
<button class="chat-card-small-button item-field-label-short margin-left-4 abort-action item-packed">{{#if isAbort}}Unabort{{else}}Abort{{/if}}</button>
|
isHold}}Unhold{{else}}Hold{{/if}}</button>
|
||||||
|
<button class="chat-card-small-button item-field-label-short margin-left-4 abort-action item-packed">{{#if
|
||||||
|
isAbort}}Unabort{{else}}Abort{{/if}}</button>
|
||||||
|
|
||||||
<label class="items-title-text margin-left-8">Presence attack</label>
|
<label class="items-title-text margin-left-8">Presence attack</label>
|
||||||
<a class="roll-direct" data-roll-source="Presence attack" data-roll-formula="{{system.biodata.presenceattack.rollFormula}}">
|
<a class="roll-direct" data-roll-source="Presence attack"
|
||||||
|
data-roll-formula="{{system.biodata.presenceattack.rollFormula}}">
|
||||||
<i class="fas fa-dice"></i>{{system.biodata.presenceattack.displayFormula}}
|
<i class="fas fa-dice"></i>{{system.biodata.presenceattack.displayFormula}}
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
@ -215,8 +259,10 @@
|
|||||||
{{#if char.isvital}}
|
{{#if char.isvital}}
|
||||||
<li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}">
|
<li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}">
|
||||||
<span class="item-field-label-long">{{char.label}}</span>
|
<span class="item-field-label-long">{{char.label}}</span>
|
||||||
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.{{key}}.value" value="{{char.value}}" data-dtype="Number" />
|
<input type="text" class="item-field-label-short update-field"
|
||||||
<input type="text" class="item-field-label-short" name="system.characteristics.{{key}}.damage" value="{{char.damage}}" data-dtype="Number" />
|
data-field-name="system.characteristics.{{key}}.max" value="{{char.max}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.{{key}}.value"
|
||||||
|
value="{{char.value}}" data-dtype="Number" />
|
||||||
</li>
|
</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
@ -242,43 +288,59 @@
|
|||||||
{{#if char.isdefense}}
|
{{#if char.isdefense}}
|
||||||
<li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}">
|
<li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}">
|
||||||
<span class="item-field-label-long">{{char.label}}</span>
|
<span class="item-field-label-long">{{char.label}}</span>
|
||||||
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.{{key}}.value" value="{{char.value}}" data-dtype="Number" />
|
<input type="text" class="item-field-label-short update-field"
|
||||||
<input type="text" class="item-field-label-short" name="system.characteristics.{{key}}.resistant" value="{{char.resistant}}" data-dtype="Number" />
|
data-field-name="system.characteristics.{{key}}.value" value="{{char.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.characteristics.{{key}}.resistant"
|
||||||
|
value="{{char.resistant}}" data-dtype="Number" />
|
||||||
</li>
|
</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
{{#each defenses as |def key|}}
|
{{#each defenses as |def key|}}
|
||||||
<li class="item flexrow list-item list-item-shadow" data-defense-key="{{key}}">
|
<li class="item flexrow list-item list-item-shadow" data-defense-key="{{key}}">
|
||||||
{{#if def.iseditable}}
|
{{#if def.iseditable}}
|
||||||
<input type="text" class="item-field-label-long update-field" data-field-name="system.defenses.{{key}}.label" value="{{def.label}}" data-dtype="String" />
|
<input type="text" class="item-field-label-long update-field"
|
||||||
|
data-field-name="system.defenses.{{key}}.label" value="{{def.label}}" data-dtype="String" />
|
||||||
{{else}}
|
{{else}}
|
||||||
<span class="item-field-label-long">{{def.label}}</span>
|
<span class="item-field-label-long">{{def.label}}</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<input type="text" class="item-field-label-short update-field" data-field-name="system.defenses.{{key}}.value" value="{{def.value}}" data-dtype="Number" />
|
<input type="text" class="item-field-label-short update-field"
|
||||||
<input type="text" class="item-field-label-short" name="system.defenses.{{key}}.resistant" value="{{def.resistant}}" data-dtype="Number" />
|
data-field-name="system.defenses.{{key}}.value" value="{{def.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.defenses.{{key}}.resistant"
|
||||||
|
value="{{def.resistant}}" data-dtype="Number" />
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<label class="item-field-label-short">OCV</label>
|
<label class="item-field-label-short">
|
||||||
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.ocv.value" value="{{characteristics.ocv.value}}" data-dtype="Number" />
|
<a class="roll-charac" data-charac-key="ocv"><i class="fas fa-dice"></i>OCV</a>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<input type="text" class="item-field-label-short update-field"
|
||||||
|
data-field-name="system.characteristics.ocv.value" value="{{characteristics.ocv.value}}"
|
||||||
|
data-dtype="Number" />
|
||||||
<label class="item-field-label-short"> </label>
|
<label class="item-field-label-short"> </label>
|
||||||
|
|
||||||
<label class="item-field-label-short">DCV</label>
|
<label class="item-field-label-short">DCV</label>
|
||||||
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.dcv.value" value="{{characteristics.dcv.value}}" data-dtype="Number" />
|
<input type="text" class="item-field-label-short update-field"
|
||||||
|
data-field-name="system.characteristics.dcv.value" value="{{characteristics.dcv.value}}"
|
||||||
|
data-dtype="Number" />
|
||||||
<label class="item-field-label-short"> </label>
|
<label class="item-field-label-short"> </label>
|
||||||
|
|
||||||
<label class="item-field-label-short">OMCV</label>
|
<label class="item-field-label-short">
|
||||||
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.omcv.value" value="{{characteristics.omcv.value}}" data-dtype="Number" />
|
<a class="roll-charac" data-charac-key="omcv"><i class="fas fa-dice"></i>OMCV</a>
|
||||||
|
</label>
|
||||||
|
<input type="text" class="item-field-label-short update-field"
|
||||||
|
data-field-name="system.characteristics.omcv.value" value="{{characteristics.omcv.value}}"
|
||||||
|
data-dtype="Number" />
|
||||||
<label class="item-field-label-short"> </label>
|
<label class="item-field-label-short"> </label>
|
||||||
|
|
||||||
<label class="item-field-label-short">DMCV</label>
|
<label class="item-field-label-short">DMCV</label>
|
||||||
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.dmcv.value" value="{{characteristics.dmcv.value}}" data-dtype="Number" />
|
<input type="text" class="item-field-label-short update-field"
|
||||||
|
data-field-name="system.characteristics.dmcv.value" value="{{characteristics.dmcv.value}}"
|
||||||
|
data-dtype="Number" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
@ -301,10 +363,13 @@
|
|||||||
<span class="item-field-label-long">
|
<span class="item-field-label-long">
|
||||||
<a class="roll-perception"><i class="fas fa-dice"></i>Perception Roll</a>
|
<a class="roll-perception"><i class="fas fa-dice"></i>Perception Roll</a>
|
||||||
</span>
|
</span>
|
||||||
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.int.perceptionroll" value="{{characteristics.int.perceptionroll}}" data-dtype="Number" />
|
<input type="text" class="item-field-label-short update-field"
|
||||||
|
data-field-name="system.characteristics.int.perceptionroll"
|
||||||
|
value="{{characteristics.int.perceptionroll}}" data-dtype="Number" />
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<textarea type="text" class="textarea-full-height padd-right" name="system.biodata.combatnotes1" data-dtype="String">{{system.biodata.combatnotes1}}</textarea>
|
<textarea rows="20" type="text" class="textarea-full-height padd-right" name="system.biodata.combatnotes1"
|
||||||
|
data-dtype="String">{{system.biodata.combatnotes1}}</textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
@ -314,7 +379,7 @@
|
|||||||
<label class="">Movement</label>
|
<label class="">Movement</label>
|
||||||
</span>
|
</span>
|
||||||
<span class="item-field-label-short">
|
<span class="item-field-label-short">
|
||||||
<label class="short-label">C</label>
|
<label class="short-label">Combat</label>
|
||||||
</span>
|
</span>
|
||||||
<span class="item-field-label-short">
|
<span class="item-field-label-short">
|
||||||
<label class="short-label">NC</label>
|
<label class="short-label">NC</label>
|
||||||
@ -324,20 +389,26 @@
|
|||||||
{{#if char.ismovement}}
|
{{#if char.ismovement}}
|
||||||
<li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}">
|
<li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}">
|
||||||
<span class="item-field-label-long">{{char.label}}</span>
|
<span class="item-field-label-long">{{char.label}}</span>
|
||||||
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.{{key}}.value" value="{{char.value}}" data-dtype="Number" />
|
<input type="text" class="item-field-label-short update-field"
|
||||||
<input type="text" class="item-field-label-short" value="{{mul char.value 2}}" disabled data-dtype="Number" />
|
data-field-name="system.characteristics.{{key}}.value" value="{{char.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short update-field"
|
||||||
|
data-field-name="system.characteristics.{{key}}.ncvalue" value="{{char.ncvalue}}"
|
||||||
|
data-dtype="Number" />
|
||||||
</li>
|
</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
{{#each movements as |move key|}}
|
{{#each movements as |move key|}}
|
||||||
<li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}">
|
<li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}">
|
||||||
{{#if move.iseditable}}
|
{{#if move.iseditable}}
|
||||||
<input type="text" class="item-field-label-long update-field" data-field-name="system.movements.{{key}}.label" value="{{move.label}}" data-dtype="String" />
|
<input type="text" class="item-field-label-long update-field"
|
||||||
|
data-field-name="system.movements.{{key}}.label" value="{{move.label}}" data-dtype="String" />
|
||||||
{{else}}
|
{{else}}
|
||||||
<span class="item-field-label-long">{{move.label}}</span>
|
<span class="item-field-label-long">{{move.label}}</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<input type="text" class="item-field-label-short update-field" data-field-name="system.movements.{{key}}.value" value="{{move.value}}" data-dtype="Number" />
|
<input type="text" class="item-field-label-short update-field"
|
||||||
<input type="text" class="item-field-label-short" value="{{mul move.value 2}}" disabled data-dtype="Number" />
|
data-field-name="system.movements.{{key}}.value" value="{{move.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" value="{{mul move.value 2}}" disabled
|
||||||
|
data-dtype="Number" />
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
@ -355,7 +426,7 @@
|
|||||||
<div class="charac-item">
|
<div class="charac-item">
|
||||||
<ul>
|
<ul>
|
||||||
<li class="item flexrow list-item items-title-bg">
|
<li class="item flexrow list-item items-title-bg">
|
||||||
<span class="item-field-label-medium">
|
<span class="item-field-label-short">
|
||||||
<label class="">Value</label>
|
<label class="">Value</label>
|
||||||
</span>
|
</span>
|
||||||
<span class="item-field-label-medium">
|
<span class="item-field-label-medium">
|
||||||
@ -403,7 +474,8 @@
|
|||||||
src="{{skill.img}}" /></a>
|
src="{{skill.img}}" /></a>
|
||||||
<span class="item-field-label-long">{{skill.name}}</span>
|
<span class="item-field-label-long">{{skill.name}}</span>
|
||||||
<span class="item-field-label-medium">{{upper skill.charac}}</span>
|
<span class="item-field-label-medium">{{upper skill.charac}}</span>
|
||||||
<span class="item-field-label-short"><a class="roll-item" data-type="skill"><i class="fas fa-dice"></i>{{skill.roll}}-</a></span>
|
<span class="item-field-label-short"><a class="roll-item" data-type="skill"><i
|
||||||
|
class="fas fa-dice"></i>{{skill.roll}}-</a></span>
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
@ -431,7 +503,8 @@
|
|||||||
src="{{perk.img}}" /></a>
|
src="{{perk.img}}" /></a>
|
||||||
<span class="item-name-label">{{perk.name}}</span>
|
<span class="item-name-label">{{perk.name}}</span>
|
||||||
{{#if perk.system.hasroll}}
|
{{#if perk.system.hasroll}}
|
||||||
<span class="item-field-label-short"><a class="roll-item" data-type="perk"><i class="fas fa-dice"></i>{{perk.system.roll}}-</a></span>
|
<span class="item-field-label-short"><a class="roll-item" data-type="perk"><i
|
||||||
|
class="fas fa-dice"></i>{{perk.system.roll}}-</a></span>
|
||||||
{{else}}
|
{{else}}
|
||||||
<span class="item-field-label-short"> </span>
|
<span class="item-field-label-short"> </span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
@ -462,7 +535,8 @@
|
|||||||
src="{{talent.img}}" /></a>
|
src="{{talent.img}}" /></a>
|
||||||
<span class="item-name-label">{{talent.name}}</span>
|
<span class="item-name-label">{{talent.name}}</span>
|
||||||
{{#if talent.system.hasroll}}
|
{{#if talent.system.hasroll}}
|
||||||
<span class="item-field-label-short"><a class="roll-item" data-type="perk"><i class="fas fa-dice"></i>{{talent.system.roll}}-</a></span>
|
<span class="item-field-label-short"><a class="roll-item" data-type="perk"><i
|
||||||
|
class="fas fa-dice"></i>{{talent.system.roll}}-</a></span>
|
||||||
{{else}}
|
{{else}}
|
||||||
<span class="item-field-label-short"> </span>
|
<span class="item-field-label-short"> </span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
@ -478,6 +552,10 @@
|
|||||||
{{!-- Maneuvers Tab --}}
|
{{!-- Maneuvers Tab --}}
|
||||||
<div class="tab maneuver" data-group="primary" data-tab="maneuver">
|
<div class="tab maneuver" data-group="primary" data-tab="maneuver">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<button class="show-stock-maneuver">Show/Hide stock maneuvers</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<ul class="stat-list alternate-list item-list">
|
<ul class="stat-list alternate-list item-list">
|
||||||
<li class="item flexrow list-item items-title-bg">
|
<li class="item flexrow list-item items-title-bg">
|
||||||
<span class="item-field-label-long-img">
|
<span class="item-field-label-long-img">
|
||||||
@ -492,29 +570,80 @@
|
|||||||
<span class="item-field-label-short">
|
<span class="item-field-label-short">
|
||||||
<label class="short-label">DCV</label>
|
<label class="short-label">DCV</label>
|
||||||
</span>
|
</span>
|
||||||
<span class="item-field-label-long">
|
<span class="item-field-label-long3">
|
||||||
<label class="short-label">Effects</label>
|
<label class="short-label">Effects</label>
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
{{#each nonstockmaneuvers as |maneuver key|}}
|
{{#each allmaneuvers as |maneuver key|}}
|
||||||
|
{{#if (ne maneuver.system.maneuvertype "mental")}}
|
||||||
|
<div class="{{#if maneuver.system.isstock}}maneuver-list maneuver-is-stock{{/if}}">
|
||||||
<li class="item stat flexrow list-item list-item-shadow " data-item-id="{{maneuver._id}}">
|
<li class="item stat flexrow list-item list-item-shadow " data-item-id="{{maneuver._id}}">
|
||||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||||
src="{{maneuver.img}}" /></a>
|
src="{{maneuver.img}}" /></a>
|
||||||
<span class="item-field-label-long">{{maneuver.name}}</span>
|
<span class="item-field-label-long"><a class="roll-item"><i class="fas fa-dice"></i>{{maneuver.name}}</a></span>
|
||||||
|
|
||||||
<span class="item-field-label-short">{{maneuver.system.pha}}</span>
|
<span class="item-field-label-short">{{maneuver.system.pha}}</span>
|
||||||
<span class="item-field-label-short">{{maneuver.system.ocv}}</span>
|
<span class="item-field-label-short">{{maneuver.system.ocv}}</span>
|
||||||
<span class="item-field-label-short">{{maneuver.system.dcv}}</span>
|
<span class="item-field-label-short">{{maneuver.system.dcv}}</span>
|
||||||
|
|
||||||
<span class="item-field-label-long">{{maneuver.system.effects}}</span>
|
<span class="item-field-label-long3">{{maneuver.system.effects}}</span>
|
||||||
|
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<ul class="stat-list alternate-list item-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-field-label-long-img">
|
||||||
|
<label class="">Mental Maneuvers</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">PHA</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">OMCV</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">DMCV</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-long3">
|
||||||
|
<label class="short-label">Effects</label>
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
{{#each allmaneuvers as |maneuver key|}}
|
||||||
|
{{#if (eq maneuver.system.maneuvertype "mental")}}
|
||||||
|
<div class="">
|
||||||
|
<li class="item stat flexrow list-item list-item-shadow " data-item-id="{{maneuver._id}}">
|
||||||
|
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||||
|
src="{{maneuver.img}}" /></a>
|
||||||
|
<span class="item-field-label-long">
|
||||||
|
<a class="roll-item"><i class="fas fa-dice"></i>
|
||||||
|
{{maneuver.name}}
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="item-field-label-short content-center">{{maneuver.system.pha}}</span>
|
||||||
|
<span class="item-field-label-short content-center">{{maneuver.system.omcv}}</span>
|
||||||
|
<span class="item-field-label-short content-center">{{maneuver.system.dmcv}}</span>
|
||||||
|
|
||||||
|
<span class="item-field-label-long3">{{maneuver.system.effects}}</span>
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{!-- Powers Tab --}}
|
{{!-- Powers Tab --}}
|
||||||
@ -540,8 +669,8 @@
|
|||||||
<span class="item-field-label-short">
|
<span class="item-field-label-short">
|
||||||
<label class="item-field-label-short">Roll</label>
|
<label class="item-field-label-short">Roll</label>
|
||||||
</span>
|
</span>
|
||||||
<span class="item-field-label-medium">
|
<span class="item-field-label-short">
|
||||||
<label class="item-field-label-medium">END</label>
|
<label class="item-field-label-short">END</label>
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
{{#each powers as |power key|}}
|
{{#each powers as |power key|}}
|
||||||
@ -549,15 +678,26 @@
|
|||||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||||
src="{{power.img}}" /></a>
|
src="{{power.img}}" /></a>
|
||||||
<span class="item-field-label-short">{{power.system.cost}}</span>
|
<span class="item-field-label-short">{{power.system.cost}}</span>
|
||||||
|
{{#if (eq system.typemodifier "attack")}}
|
||||||
|
<span class="item-field-label-long3">
|
||||||
|
<a class="roll-power-attack">
|
||||||
|
<i class="fas fa-dice"></i>
|
||||||
|
{{power.name}}
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
{{else}}
|
||||||
<span class="item-field-label-long3">{{power.name}}</span>
|
<span class="item-field-label-long3">{{power.name}}</span>
|
||||||
|
{{/if}}
|
||||||
<span class="item-field-label-long2">{{power.system.displayname}}</span>
|
<span class="item-field-label-long2">{{power.system.displayname}}</span>
|
||||||
<span class="item-field-label-medium"><a class="roll-damage" data-type="power"><i class="fas fa-dice"></i>{{power.system.damage}}</a></span>
|
<span class="item-field-label-medium"><a class="roll-damage" data-type="power"><i
|
||||||
|
class="fas fa-dice"></i>{{power.system.damage}}</a></span>
|
||||||
{{#if power.system.hasroll}}
|
{{#if power.system.hasroll}}
|
||||||
<span class="item-field-label-short"><a class="roll-item" data-type="power"><i class="fas fa-dice"></i>{{power.system.roll}}-</a></span>
|
<span class="item-field-label-short"><a class="roll-item" data-type="power"><i
|
||||||
|
class="fas fa-dice"></i>{{power.system.roll}}-</a></span>
|
||||||
{{else}}
|
{{else}}
|
||||||
<span class="item-field-label-short"> </span>
|
<span class="item-field-label-short"> </span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<span class="item-field-label-medium">{{power.system.endurance}}</span>
|
<span class="item-field-label-short">{{power.system.endurance}}</span>
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
@ -585,7 +725,8 @@
|
|||||||
src="{{comp.img}}" /></a>
|
src="{{comp.img}}" /></a>
|
||||||
<span class="item-name-label">{{comp.name}}</span>
|
<span class="item-name-label">{{comp.name}}</span>
|
||||||
{{#if comp.system.hasroll}}
|
{{#if comp.system.hasroll}}
|
||||||
<span class="item-field-label-short"><a class="roll-item" data-type="perk"><i class="fas fa-dice"></i>{{comp.system.roll}}-</a></span>
|
<span class="item-field-label-short"><a class="roll-item" data-type="perk"><i
|
||||||
|
class="fas fa-dice"></i>{{comp.system.roll}}-</a></span>
|
||||||
{{else}}
|
{{else}}
|
||||||
<span class="item-field-label-short"> </span>
|
<span class="item-field-label-short"> </span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
@ -608,13 +749,19 @@
|
|||||||
<span class="small-label">Total value : {{totalValue}}</span>
|
<span class="small-label">Total value : {{totalValue}}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Weapons" items=weapons}}
|
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Money"
|
||||||
|
items=moneys}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Weapons"
|
||||||
|
items=weapons}}
|
||||||
|
|
||||||
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Armor" items=armors}}
|
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Armor" items=armors}}
|
||||||
|
|
||||||
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Shields" items=shields}}
|
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Shields"
|
||||||
|
items=shields}}
|
||||||
|
|
||||||
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Equipment" items=equipments}}
|
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Equipment"
|
||||||
|
items=equipments}}
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
|
@ -34,7 +34,8 @@
|
|||||||
|
|
||||||
{{#if combatCount}}
|
{{#if combatCount}}
|
||||||
{{#if combat.round}}
|
{{#if combat.round}}
|
||||||
<h3 class="encounter-title noborder">Turn {{combat.turnNumber}} Segment {{combat.segmentNumber}}</h3>
|
<!--<h3 class="encounter-title noborder">Turn {{combat.turnNumber}} Segment {{combat.segmentNumber}}</h3>-->
|
||||||
|
<h3 class="encounter-title noborder">Turn {{combat.flags.world.turnData.turnNumber}} Segment {{combat.flags.world.turnData.segmentNumber}}</h3>
|
||||||
{{else}}
|
{{else}}
|
||||||
<h3 class="encounter-title noborder">{{localize 'COMBAT.NotStarted'}}</h3>
|
<h3 class="encounter-title noborder">{{localize 'COMBAT.NotStarted'}}</h3>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
<form class="skill-roll-dialog">
|
<form class="skill-roll-dialog">
|
||||||
<header class="roll-dialog-header">
|
<header class="roll-dialog-header">
|
||||||
|
<div class="flexrow">
|
||||||
{{#if img}}
|
{{#if img}}
|
||||||
<img class="actor-icon" src="{{img}}" data-edit="img" title="{{name}}" />
|
<img class="actor-icon" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<h1 class="dialog-roll-title roll-dialog-header">{{title}}</h1>
|
<h2 class="dialog-roll-title roll-dialog-header">{{title}}</h2>
|
||||||
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div class="flexcol">
|
<div class="flexcol">
|
||||||
@ -15,6 +17,28 @@
|
|||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if (eq subMode "ocv")}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="item-field-label-long margin-item-list">OCV : </span>
|
||||||
|
<span class="item-field-label-medium margin-item-list">{{characteristics.ocv.value}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="item-field-label-long margin-item-list">{{upperFirst item.type}} OCV : </span>
|
||||||
|
<span class="item-field-label-medium margin-item-list">{{fixNum item.system.ocv}}</span>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if (eq subMode "omcv")}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="item-field-label-long margin-item-list">OMCV : </span>
|
||||||
|
<span class="item-field-label-medium margin-item-list">{{characteristics.omcv.value}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="item-field-label-long margin-item-list">{{upperFirst item.type}} OMCV : </span>
|
||||||
|
<span class="item-field-label-medium margin-item-list">{{fixNum item.system.omcv}}</span>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{#if item}}
|
{{#if item}}
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="item-field-label-long margin-item-list">{{upperFirst item.type}} - {{upperFirst item.name}}</span>
|
<span class="item-field-label-long margin-item-list">{{upperFirst item.type}} - {{upperFirst item.name}}</span>
|
||||||
|
@ -7,12 +7,6 @@
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
{{#if img}}
|
|
||||||
<div >
|
|
||||||
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div class="flexcol">
|
<div class="flexcol">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -7,21 +7,34 @@
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
{{#if img}}
|
|
||||||
<div >
|
|
||||||
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div class="flexcol">
|
<div class="flexcol">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Name : {{title}}</li>
|
<li>Name : {{title}}</li>
|
||||||
|
<li>Damage Effect: {{upperFirst item.system.damageeffect}}</li>
|
||||||
<li>Damage formula : {{diceFormula}}</li>
|
<li>Damage formula : {{diceFormula}}</li>
|
||||||
<li><strong>TOTAL : {{result}}</strong></li>
|
<li><strong>Total formula : {{result}}</strong></li>
|
||||||
|
|
||||||
|
{{#if (eq item.system.damageeffect "normal")}}
|
||||||
<li><strong>BODY : {{bodyValue}}</strong></li>
|
<li><strong>BODY : {{bodyValue}}</strong></li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if (eq item.system.damageeffect "killing")}}
|
||||||
|
<li><strong>1d3 result + STUNx : {{killingMultiplier}} + {{item.system.stunx}} = {{add killingMultiplier item.system.stunx}}</strong></li>
|
||||||
|
<li><strong>STUN : {{stunValue}}</strong></li>
|
||||||
|
<li><strong>BODY : {{result}}</strong></li>
|
||||||
|
<li><strong>Penetrating BODY : {{bodyValue}}</strong></li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if (eq item.system.damageeffect "stunonly")}}
|
||||||
|
<li><strong>STUN : {{stunValue}}</strong></li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if (eq item.system.damageeffect "bodyonly")}}
|
||||||
|
<li><strong>BODY : {{bodyValue}}</strong></li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -7,12 +7,6 @@
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
{{#if img}}
|
|
||||||
<div >
|
|
||||||
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div class="flexcol">
|
<div class="flexcol">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -23,6 +17,21 @@
|
|||||||
</li>
|
</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if weapon}}
|
||||||
|
<li>Weapon : {{weapon.name}}
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if maneuver}}
|
||||||
|
<li>Maneuver : {{maneuver.name}}
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if power}}
|
||||||
|
<li>Power : {{power.name}}
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{#if rollSource}}
|
{{#if rollSource}}
|
||||||
<li>Roll : {{rollSource}}</li>
|
<li>Roll : {{rollSource}}</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
@ -33,6 +42,12 @@
|
|||||||
|
|
||||||
{{#if item}}
|
{{#if item}}
|
||||||
<li>{{item.name}} ({{upperFirst item.type}})</li>
|
<li>{{item.name}} ({{upperFirst item.type}})</li>
|
||||||
|
{{#if (eq item.type "maneuver")}}
|
||||||
|
<li>{{item.system.effects}}</li>
|
||||||
|
{{#if item.system.haseffectroll}}
|
||||||
|
<li>{{item.system.effectrollformula}}</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if (exists bonusMalus)}}
|
{{#if (exists bonusMalus)}}
|
||||||
@ -42,7 +57,7 @@
|
|||||||
|
|
||||||
<li><strong>TOTAL : {{result}}</strong>
|
<li><strong>TOTAL : {{result}}</strong>
|
||||||
{{#if (exists margin)}}
|
{{#if (exists margin)}}
|
||||||
({{#if isSuccess}}Success!!{{else}}Failure!{{/if}})
|
(<strong>{{#if isSuccess}}Success!!{{else}}Failure!{{/if}}</strong>)
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
@ -51,8 +66,16 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if (exists margin)}}
|
{{#if (exists margin)}}
|
||||||
|
{{#if (eq subMode "normal")}}
|
||||||
<li><strong>Margin : {{margin}}</strong>
|
<li><strong>Margin : {{margin}}</strong>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
{{#if (eq subMode "ocv")}}
|
||||||
|
<li><strong>Margin (DCV Hit): {{margin}}</strong>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (eq subMode "omcv")}}
|
||||||
|
<li><strong>Margin (DMCV Hit): {{margin}}</strong>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -7,12 +7,6 @@
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
{{#if img}}
|
|
||||||
<div >
|
|
||||||
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div class="flexcol">
|
<div class="flexcol">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -21,5 +21,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
</form>
|
</form>
|
||||||
|
@ -67,5 +67,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
</form>
|
</form>
|
||||||
|
@ -21,5 +21,8 @@
|
|||||||
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs}}
|
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs}}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
</form>
|
</form>
|
||||||
|
@ -24,5 +24,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
</form>
|
</form>
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user