diff --git a/lang/en.json b/lang/en.json
index 077404a..a5d79eb 100644
--- a/lang/en.json
+++ b/lang/en.json
@@ -1,3 +1,20 @@
{
-
+ "TYPES": {
+ "Actor": {
+ "character": "Character"
+ },
+ "Item": {
+ "armor": "Armor",
+ "weapon": "Weapon",
+ "equipment": "Equipment",
+ "skill": "Skill",
+ "perk": "Perk",
+ "ability": "Ability",
+ "cumulativetask": "Cumulative Task",
+ "genetic": "Genetic",
+ "money": "Money",
+ "cyber": "Cyber",
+ "ammo": "Ammo"
+ }
+ }
}
\ No newline at end of file
diff --git a/modules/dark-stars-actor-sheet.js b/modules/dark-stars-actor-sheet.js
index 8e68264..bcb292f 100644
--- a/modules/dark-stars-actor-sheet.js
+++ b/modules/dark-stars-actor-sheet.js
@@ -11,7 +11,7 @@ export class DarkStarsActorSheet extends ActorSheet {
/** @override */
static get defaultOptions() {
- return mergeObject(super.defaultOptions, {
+ return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-dark-stars", "sheet", "actor"],
template: "systems/fvtt-dark-stars/templates/actors/actor-sheet.hbs",
width: 960,
@@ -25,7 +25,7 @@ export class DarkStarsActorSheet extends ActorSheet {
/* -------------------------------------------- */
async getData() {
const objectData = this.object.system
- let actorData = duplicate(objectData)
+ let actorData = foundry.utils.duplicate(objectData)
let formData = {
title: this.title,
@@ -39,21 +39,23 @@ export class DarkStarsActorSheet extends ActorSheet {
limited: this.object.limited,
skills: this.actor.getSkills( ),
perks: this.actor.getPerks( ),
- weapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getWeapons()) ),
- ammos: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getAmmos()) ),
- spells: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getSpells()) ),
- powers: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getPowers()) ),
- armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())),
- shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())),
- equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ),
- equippedWeapons: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquippedWeapons()) ),
- cybers: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getCybers()) ),
- genetics: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getGenetics()) ),
+ weapons: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getWeapons()) ),
+ ammos: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getAmmos()) ),
+ spells: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getSpells()) ),
+ powers: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getPowers()) ),
+ armors: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getArmors())),
+ shields: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getShields())),
+ equipments: this.actor.checkAndPrepareEquipments(foundry.utils.duplicate(this.actor.getEquipmentsOnly()) ),
+ equippedWeapons: this.actor.checkAndPrepareEquipments(foundry.utils.duplicate(this.actor.getEquippedWeapons()) ),
+ cybers: this.actor.checkAndPrepareEquipments(foundry.utils.duplicate(this.actor.getCybers()) ),
+ genetics: this.actor.checkAndPrepareEquipments(foundry.utils.duplicate(this.actor.getGenetics()) ),
equippedArmor: this.actor.getEquippedArmor(),
equippedShield: this.actor.getEquippedShield(),
- subActors: duplicate(this.actor.getSubActors()),
+ subActors: foundry.utils.duplicate(this.actor.getSubActors()),
encCapacity: this.actor.getEncumbranceCapacity(),
conditions: this.actor.getConditions(),
+ tasks: this.actor.getCumulativeTasks(),
+ config: game.system.darkstars.config,
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
notes: await TextEditor.enrichHTML(this.object.system.biodata.notes, {async: true}),
containersTree: this.actor.containersTree,
@@ -145,7 +147,16 @@ export class DarkStarsActorSheet extends ActorSheet {
const skillId = li.data("item-id")
this.actor.rollSkill(skillId)
});
-
+ html.find('.roll-attribute').click((event) => {
+ const attrKey = $(event.currentTarget).data("attr-key")
+ this.actor.rollAttribute(attrKey)
+ })
+ html.find('.start-cumulative-task').click((event) => {
+ const li = $(event.currentTarget).parents(".item")
+ const skillId = li.data("item-id")
+ this.actor.rollSkill(skillId, true)
+ })
+
html.find('.roll-weapon').click((event) => {
const li = $(event.currentTarget).parents(".item");
const skillId = li.data("item-id")
diff --git a/modules/dark-stars-actor.js b/modules/dark-stars-actor.js
index 8019bfa..ed5b2cc 100644
--- a/modules/dark-stars-actor.js
+++ b/modules/dark-stars-actor.js
@@ -43,8 +43,6 @@ export class DarkStarsActor extends Actor {
}
if (data.type == 'character') {
- const skills = await DarkStarsUtility.loadCompendium("fvtt-dark-stars.skills");
- data.items = skills.map(i => i.toObject())
}
if (data.type == 'npc') {
}
@@ -120,54 +118,59 @@ export class DarkStarsActor extends Actor {
}
getEquippedWeapons() {
- let comp = duplicate(this.items.filter(item => item.type == 'weapon' && item.system.equipped) || []);
+ let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'weapon' && item.system.equipped) || []);
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp;
}
/* -------------------------------------------- */
getArmors() {
- let comp = duplicate(this.items.filter(item => item.type == 'armor') || []);
+ let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'armor') || []);
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp;
}
getSpells() {
- let comp = duplicate(this.items.filter(item => item.type == 'spell') || []);
+ let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'spell') || []);
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp;
}
getPowers() {
- let comp = duplicate(this.items.filter(item => item.type == 'psychic') || []);
+ let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'psychic') || []);
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp;
}
+ getCumulativeTasks() {
+ let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'cumulativetask') || []);
+ DarkStarsUtility.sortArrayObjectsByName(comp)
+ return comp;
+ }
getEquippedArmor() {
let comp = this.items.find(item => item.type == 'armor' && item.system.equipped)
if (comp) {
- return duplicate(comp)
+ return foundry.utils.duplicate(comp)
}
return undefined
}
/* -------------------------------------------- */
getCybers() {
- let comp = duplicate(this.items.filter(item => item.type == 'cyber') || []);
+ let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'cyber') || []);
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp;
}
getGenetics() {
- let comp = duplicate(this.items.filter(item => item.type == 'genetic') || []);
+ let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'genetic') || []);
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp;
}
/* -------------------------------------------- */
getShields() {
- let comp = duplicate(this.items.filter(item => item.type == 'shield') || []);
+ let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'shield') || []);
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp;
}
getEquippedShield() {
let comp = this.items.find(item => item.type == 'shield' && item.system.equipped)
if (comp) {
- return duplicate(comp)
+ return foundry.utils.duplicate(comp)
}
return undefined
}
@@ -177,7 +180,7 @@ export class DarkStarsActor extends Actor {
if (item.type == "weapon" && item.system.needammo) {
let ammo = this.items.find(ammo => ammo.type == "ammo" && item.system.ammoid == ammo.id)
if (ammo) {
- item.ammo = duplicate(ammo)
+ item.ammo = foundry.utils.duplicate(ammo)
}
}
}
@@ -192,29 +195,34 @@ export class DarkStarsActor extends Actor {
/* -------------------------------------------- */
getConditions() {
- let comp = duplicate(this.items.filter(item => item.type == 'condition') || []);
+ let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'condition') || []);
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp;
}
/* -------------------------------------------- */
getWeapons() {
- let comp = duplicate(this.items.filter(item => item.type == 'weapon') || []);
+ let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'weapon') || []);
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp;
}
/* -------------------------------------------- */
getAmmos() {
- let comp = duplicate(this.items.filter(item => item.type == 'ammo') || []);
+ let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'ammo') || []);
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp;
}
/* -------------------------------------------- */
- getItemById(id) {
- let item = this.items.find(item => item.id == id);
- if (item) {
- item = duplicate(item)
+ getItemById(id, duplicate = true) {
+ let item = this.items.find(it => it.id == id)
+ if (item && duplicate) {
+ item = foundry.utils.duplicate(item)
}
- return item;
+ return item
+ }
+ /* -------------------------------------------- */
+ getItem(id) {
+ let item = this.items.get(id)
+ return item
}
/* -------------------------------------------- */
setWeaponAmmo(weaponId, ammoId) {
@@ -233,14 +241,14 @@ export class DarkStarsActor extends Actor {
/* -------------------------------------------- */
updateSkill(skill) {
- skill.derivated = duplicate(this.system.derivated[skill.system.base])
+ skill.derivated = foundry.utils.duplicate(this.system.derivated[skill.system.base])
skill.total = skill.system.value + skill.derivated.value + skill.system.bonus
}
/* -------------------------------------------- */
getSkills() {
this.computeDerivated()
- let comp = duplicate(this.items.filter(item => item.type == 'skill') || [])
+ let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'skill') || [])
for (let skill of comp) {
this.updateSkill(skill)
}
@@ -250,7 +258,7 @@ export class DarkStarsActor extends Actor {
/* -------------------------------------------- */
getPerks() {
- let comp = duplicate(this.items.filter(item => item.type == 'perk') || [])
+ let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'perk') || [])
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp
}
@@ -295,7 +303,7 @@ export class DarkStarsActor extends Actor {
}
/* ------------------------------------------- */
getEquipmentsOnly() {
- return duplicate(this.items.filter(item => item.type == "equipment") || [])
+ return foundry.utils.duplicate(this.items.filter(item => item.type == "equipment") || [])
}
/* ------------------------------------------- */
@@ -321,7 +329,7 @@ export class DarkStarsActor extends Actor {
/* ------------------------------------------- */
async buildContainerTree() {
- let equipments = duplicate(this.items.filter(item => item.type == "equipment") || [])
+ let equipments = foundry.utils.duplicate(this.items.filter(item => item.type == "equipment") || [])
for (let equip1 of equipments) {
if (equip1.system.iscontainer) {
equip1.system.contents = []
@@ -375,7 +383,7 @@ export class DarkStarsActor extends Actor {
async incDecHP(formula) {
let dmgRoll = new Roll(formula + "[dark-starsorange]").roll({ async: false })
await DarkStarsUtility.showDiceSoNice(dmgRoll, game.settings.get("core", "rollMode"))
- let hp = duplicate(this.system.secondary.hp)
+ let hp = foundry.utils.duplicate(this.system.secondary.hp)
hp.value = Number(hp.value) + Number(dmgRoll.total)
this.update({ 'system.secondary.hp': hp })
return Number(dmgRoll.total)
@@ -429,9 +437,10 @@ export class DarkStarsActor extends Actor {
return this.items.find(i => i.type == "perk" && i.name.toLowerCase() === "last word")
}
/* -------------------------------------------- */
- getInitiativeScore() {
+ async getInitiativeScore() {
let initFormula = (this.system.derivated.si.value + this.system.derivated.si.bonus) + "d6"
- let initRoll = new Roll(initFormula).roll({ async: false })
+ let initRoll = await new Roll(initFormula).roll()
+ await DarkStarsUtility.showDiceSoNice(initRoll, game.settings.get("core", "rollMode"))
return initRoll.total
}
@@ -439,13 +448,13 @@ export class DarkStarsActor extends Actor {
getSubActors() {
let subActors = [];
for (let id of this.system.subactors) {
- subActors.push(duplicate(game.actors.get(id)))
+ subActors.push(foundry.utils.duplicate(game.actors.get(id)))
}
return subActors;
}
/* -------------------------------------------- */
async addSubActor(subActorId) {
- let subActors = duplicate(this.system.subactors);
+ let subActors = foundry.utils.duplicate(this.system.subactors);
subActors.push(subActorId);
await this.update({ 'system.subactors': subActors });
}
@@ -464,7 +473,7 @@ export class DarkStarsActor extends Actor {
getOneSkill(skillId) {
let skill = this.items.find(item => item.type == 'skill' && item.id == skillId)
if (skill) {
- skill = duplicate(skill);
+ skill = foundry.utils.duplicate(skill);
}
return skill;
}
@@ -560,7 +569,7 @@ export class DarkStarsActor extends Actor {
/* -------------------------------------------- */
modifyRerolls( value) {
- let rerolls = duplicate(this.system.various.rerolls)
+ let rerolls = foundry.utils.duplicate(this.system.various.rerolls)
rerolls.value += value
this.update({ 'system.various.rerolls': rerolls })
}
@@ -576,7 +585,9 @@ export class DarkStarsActor extends Actor {
let rollData = DarkStarsUtility.getBasicRollData()
rollData.alias = this.name
rollData.actorImg = this.img
- rollData.actorId = this.id
+ console.log("Prepare common roll data for actor", this)
+ rollData.tokenId = this.token?.id
+ rollData.actorId = this.id
rollData.img = this.img
rollData.armors = this.getArmors()
rollData.conditions = this.getConditions()
@@ -616,24 +627,23 @@ export class DarkStarsActor extends Actor {
}
/* -------------------------------------------- */
- rollAbility(abilityKey) {
- let rollData = this.getCommonRollData(abilityKey)
- rollData.mode = "ability"
- if (rollData.target) {
- ui.notifications.warn("You are targetting a token with a skill : please use a Weapon instead.")
- return
- }
- DarkStarsUtility.rollDarkStars(rollData)
+ rollAttribute(attrKey) {
+ let rollData = this.getCommonRollData()
+ rollData.attr = foundry.utils.duplicate(this.system.attributes[attrKey])
+ rollData.mode = "attribute"
+ rollData.title = "Attribute " + rollData.attr.label
+ this.startRoll(rollData)
}
/* -------------------------------------------- */
- rollSkill(skillId) {
+ async rollSkill(skillId, isCumulative = false, taskId = undefined) {
let skill = this.items.get(skillId)
if (skill) {
- skill = duplicate(skill)
+ skill = foundry.utils.duplicate(skill)
this.updateSkill(skill)
let rollData = this.getCommonRollData()
rollData.mode = "skill"
+ rollData.isCumulative = isCumulative
rollData.title = "Skill " + skill.name
rollData.skill = skill
rollData.img = skill.img
@@ -641,6 +651,17 @@ export class DarkStarsActor extends Actor {
ui.notifications.warn("You are targetting a token with a skill : please use a Weapon instead.")
return
}
+ if (isCumulative) {
+ rollData.title = "Cumulative Task " + skill.name
+ if (!taskId) {
+ let cumulativeTask = await this.createEmbeddedDocuments("Item", [{name: "Cumulative task " + skill.name, type: "cumulativetask",
+ 'system.skill': skill.name}])
+ //console.log("Task", cumulativeTask)
+ rollData.taskId = cumulativeTask[0].id
+ }else {
+ rollData.taskId = cumulativeTask[0].id
+ }
+ }
this.startRoll(rollData)
}
}
@@ -649,10 +670,10 @@ export class DarkStarsActor extends Actor {
rollWeapon(weaponId) {
let weapon = this.items.get(weaponId)
if (weapon) {
- weapon = duplicate(weapon)
+ weapon = foundry.utils.duplicate(weapon)
let skill = this.items.find(item => item.name.toLowerCase() == weapon.system.skill.toLowerCase())
if (skill) {
- skill = duplicate(skill)
+ skill = foundry.utils.duplicate(skill)
this.updateSkill(skill)
let rollData = this.getCommonRollData()
rollData.mode = "weapon"
diff --git a/modules/dark-stars-combat.js b/modules/dark-stars-combat.js
index dd521d5..b237cf8 100644
--- a/modules/dark-stars-combat.js
+++ b/modules/dark-stars-combat.js
@@ -21,7 +21,7 @@ export class DarkStarsCombat extends Combat {
for (let cId of ids) {
const c = this.combatants.get(cId);
let id = c._id || c.id;
- let initScore = c.actor ? c.actor.getInitiativeScore(this.id, id) : -1;
+ let initScore = c.actor ? await c.actor.getInitiativeScore(this.id, id) : -1;
await this.updateEmbeddedDocuments("Combatant", [{ _id: id, initiative: initScore }]);
setTimeout(() => this.processOtherTurns(c, initScore), 400)
}
diff --git a/modules/dark-stars-config.js b/modules/dark-stars-config.js
index c8cf150..629eaef 100644
--- a/modules/dark-stars-config.js
+++ b/modules/dark-stars-config.js
@@ -1,6 +1,72 @@
export const DARKSTARS_CONFIG = {
+ sizeOptions: {
+ "1": "Tiny",
+ "2": "Small",
+ "3": "Medium",
+ "4": "Large",
+ "5": "Huge",
+ "6": "Gargantuan"
+ },
+ classNPC: {
+ "none": "None",
+ "chaplain": "Chaplain",
+ "magus": "Magus",
+ "martial": "Martial",
+ "skalawag": "Skalawag",
+ "warden": "Warden"
+ },
+ synergyBonus: {
+ "0": "0",
+ "5": "+5%",
+ "+6": "+6%",
+ "+7": "+7%",
+ "+8": "+8%",
+ "+9": "+9%",
+ "+10": "+10%"
+ },
+ attributeModifier: [
+ {value: "0", label: "None"},
+ {value: "-1", label: "Difficult (-1)"},
+ {value: "-3", label: "Hard (-3)"},
+ {value: "-6", label: "Very Hard (-6)"},
+ {value: "-9", label: "Impossible (-9)"}
+ ],
+ weaponAiming: {
+ "none": "None",
+ " arm": "Arm (-50)",
+ "head": "Head (-50)",
+ "torso": "Torso(-30)",
+ "leg": "Leg (-30)",
+ "hand": "Hand/Weapon (-70)"
+ },
+ rollModifiers: [
+ { "value": "-80", "label": "-80%" },
+ { "value": "-70", "label": "-70%" },
+ { "value": "-60", "label": "-60%" },
+ { "value": "-50", "label": "-50%" },
+ { "value": "-40", "label": "-40%" },
+ { "value": "-30", "label": "-30%" },
+ { "value": "-20", "label": "-20%" },
+ { "value": "-10", "label": "-10%" },
+ { "value": "0", "label": "0%" },
+ { "value": "+10", "label": "+10%" },
+ { "value": "+20", "label": "+20%" },
+ { "value": "+30", "label": "+30%" },
+ { "value": "+40", "label": "+40%" }
+ ],
+ abilityValues: {
+ "0": "0",
+ "1": "1",
+ "2": "2",
+ "3": "3",
+ "4": "4",
+ "5": "5",
+ "6": "6",
+ "7": "7",
+ "8": "8"
+ },
basebonus : {
"csb": "CSB",
"ssb": "SSB",
diff --git a/modules/dark-stars-item-sheet.js b/modules/dark-stars-item-sheet.js
index 3e9f126..c2e91e3 100644
--- a/modules/dark-stars-item-sheet.js
+++ b/modules/dark-stars-item-sheet.js
@@ -9,7 +9,7 @@ export class DarkStarsItemSheet extends ItemSheet {
/** @override */
static get defaultOptions() {
- return mergeObject(super.defaultOptions, {
+ return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-dark-stars", "sheet", "item"],
template: "systems/fvtt-dark-stars/templates/items/item-sheet.hbs",
dragDrop: [{ dragSelector: null, dropSelector: null }],
@@ -49,7 +49,7 @@ export class DarkStarsItemSheet extends ItemSheet {
/* -------------------------------------------- */
async getData() {
- let objectData = duplicate(this.object.system)
+ let objectData = foundry.utils.duplicate(this.object.system)
let formData = {
title: this.title,
@@ -87,7 +87,7 @@ export class DarkStarsItemSheet extends ItemSheet {
/* -------------------------------------------- */
postItem() {
- let chatData = duplicate(DarkStarsUtility.data(this.item));
+ let chatData = foundry.utils.duplicate(DarkStarsUtility.data(this.item));
if (this.actor) {
chatData.actor = { id: this.actor.id };
}
diff --git a/modules/dark-stars-npc-sheet.js b/modules/dark-stars-npc-sheet.js
index d810013..f616957 100644
--- a/modules/dark-stars-npc-sheet.js
+++ b/modules/dark-stars-npc-sheet.js
@@ -11,7 +11,7 @@ export class DarkStarsNPCSheet extends ActorSheet {
/** @override */
static get defaultOptions() {
- return mergeObject(super.defaultOptions, {
+ return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["dark-stars-rpg", "sheet", "actor"],
template: "systems/fvtt-dark-stars/templates/npc-sheet.hbs",
width: 640,
@@ -25,7 +25,7 @@ export class DarkStarsNPCSheet extends ActorSheet {
/* -------------------------------------------- */
async getData() {
const objectData = this.object.system
- let actorData = duplicate(objectData)
+ let actorData = foundry.utils.duplicate(objectData)
let formData = {
title: this.title,
@@ -38,21 +38,22 @@ export class DarkStarsNPCSheet extends ActorSheet {
data: actorData,
limited: this.object.limited,
skills: this.actor.getSkills( ),
- weapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getWeapons()) ),
- armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())),
- shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())),
- spells: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getLore())),
- equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ),
- equippedWeapons: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquippedWeapons()) ),
+ weapons: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getWeapons()) ),
+ armors: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getArmors())),
+ shields: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getShields())),
+ spells: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getLore())),
+ equipments: this.actor.checkAndPrepareEquipments(foundry.utils.duplicate(this.actor.getEquipmentsOnly()) ),
+ equippedWeapons: this.actor.checkAndPrepareEquipments(foundry.utils.duplicate(this.actor.getEquippedWeapons()) ),
equippedArmor: this.actor.getEquippedArmor(),
equippedShield: this.actor.getEquippedShield(),
- feats: duplicate(this.actor.getFeats()),
- subActors: duplicate(this.actor.getSubActors()),
- race: duplicate(this.actor.getRace()),
- moneys: duplicate(this.actor.getMoneys()),
+ feats: foundry.utils.duplicate(this.actor.getFeats()),
+ subActors: foundry.utils.duplicate(this.actor.getSubActors()),
+ race: foundry.utils.duplicate(this.actor.getRace()),
+ moneys: foundry.utils.duplicate(this.actor.getMoneys()),
encCapacity: this.actor.getEncumbranceCapacity(),
saveRolls: this.actor.getSaveRoll(),
conditions: this.actor.getConditions(),
+ config: game.system.darkstars.config,
containersTree: this.actor.containersTree,
encCurrent: this.actor.encCurrent,
options: this.options,
diff --git a/modules/dark-stars-roll-dialog.js b/modules/dark-stars-roll-dialog.js
index 79f091f..3e97735 100644
--- a/modules/dark-stars-roll-dialog.js
+++ b/modules/dark-stars-roll-dialog.js
@@ -67,8 +67,14 @@ export class DarkStarsRollDialog extends Dialog {
html.find('#weapon-aiming').change((event) => {
this.rollData.weaponAiming = String(event.currentTarget.value)
})
-
-
-
+ html.find('#synergy-bonus').change((event) => {
+ this.rollData.synergyBonus = Number(event.currentTarget.value)
+ })
+ html.find('#extra-time').change((event) => {
+ this.rollData.extraTime = event.currentTarget.checked
+ })
+ html.find('#attribute-modifier').change((event) => {
+ this.rollData.attributeModifier = Number(event.currentTarget.value)
+ })
}
}
\ No newline at end of file
diff --git a/modules/dark-stars-utility.js b/modules/dark-stars-utility.js
index 37fc5ff..181c16f 100644
--- a/modules/dark-stars-utility.js
+++ b/modules/dark-stars-utility.js
@@ -11,9 +11,7 @@ export class DarkStarsUtility {
/* -------------------------------------------- */
static async init() {
Hooks.on('renderChatLog', (log, html, data) => DarkStarsUtility.chatListeners(html));
- /*Hooks.on("dropCanvasData", (canvas, data) => {
- DarkStarsUtility.dropItemOnToken(canvas, data)
- });*/
+ Hooks.on('renderChatMessage', (message, html, data) => DarkStarsUtility.chatMessageHandler(message, html, data))
DarkStarsCommands.init();
@@ -43,13 +41,28 @@ export class DarkStarsUtility {
return __locationNames[key]
})
-
- this.gameSettings()
-
}
/*-------------------------------------------- */
- static gameSettings() {
+ static async processOpposed(rollData) {
+ if (this.currentOpposition) {
+ let opposed = {
+ winner: this.currentOpposition,
+ looser: rollData,
+ isOpposed : true
+ }
+ if (rollData.degrees > this.currentOpposition.degrees ) {
+ opposed.winner = rollData
+ opposed.looser = this.currentOpposition
+ }
+ let msg = await this.createChatWithRollMode(rollData.alias, {
+ content: await renderTemplate(`systems/fvtt-dark-stars/templates/chat/chat-opposition-result.hbs`, opposed)
+ })
+ await msg.setFlag("world", "darkstars-roll-data", opposed)
+ } else {
+ this.currentOpposition = rollData
+ ui.notifications.info("Opposed rolls started with " + rollData.alias );
+ }
}
/*-------------------------------------------- */
@@ -60,13 +73,13 @@ export class DarkStarsUtility {
/*-------------------------------------------- */
static getSkills() {
- return duplicate(this.skills)
+ return foundry.utils.duplicate(this.skills)
}
/* -------------------------------------------- */
static async ready() {
const skills = await DarkStarsUtility.loadCompendium("fvtt-dark-stars.sprawl");
- this.skills = skills.filter(i=> i.type =="skill").map(i => i.toObject() );
+ this.skills = skills.filter(i => i.type == "skill").map(i => i.toObject());
}
/* -------------------------------------------- */
@@ -96,6 +109,13 @@ export class DarkStarsUtility {
rollData.roll = undefined
this.rollDarkStars(rollData)
})
+ html.on("click", '.chat-roll-opposed', event => {
+ let messageId = this.findChatMessageId(event.currentTarget)
+ let message = game.messages.get(messageId)
+ let rollData = message.getFlag("world", "darkstars-roll-data")
+ this.processOpposed(rollData)
+ })
+
}
/* -------------------------------------------- */
@@ -103,10 +123,8 @@ export class DarkStarsUtility {
const templatePaths = [
'systems/fvtt-dark-stars/templates/partials/editor-notes-gm.hbs',
- 'systems/fvtt-dark-stars/templates/partials/partial-roll-select.hbs',
'systems/fvtt-dark-stars/templates/partials/partial-actor-ability-block.hbs',
'systems/fvtt-dark-stars/templates/partials/partial-actor-status.hbs',
- 'systems/fvtt-dark-stars/templates/partials/partial-options-abilities.hbs',
'systems/fvtt-dark-stars/templates/partials/partial-item-nav.hbs',
'systems/fvtt-dark-stars/templates/partials/partial-item-description.hbs',
'systems/fvtt-dark-stars/templates/partials/partial-actor-equipment.hbs'
@@ -275,12 +293,41 @@ export class DarkStarsUtility {
static async rollDarkStars(rollData) {
let actor = game.actors.get(rollData.actorId)
+ if (rollData.tokenId) {
+ actor = game.canvas.tokens.get(rollData.tokenId).actor
+ }
+
+ // Specific attribute
+ if (rollData.attr) {
+ rollData.isSuccess = false
+ rollData.isFailure = false
+ rollData.targetNumber = Math.max( rollData.attr.value + rollData.attributeModifier, 0)
+ let myRoll = await new Roll("1d10").roll()
+ await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
+ if (myRoll.total <= rollData.targetNumber) {
+ rollData.isSuccess = true
+ rollData.isFailure = false
+ }
+ rollData.roll = foundry.utils.duplicate(myRoll)
+ rollData.diceResult = myRoll.total
+ let msg = await this.createChatWithRollMode(rollData.alias, {
+ content: await renderTemplate(`systems/fvtt-dark-stars/templates/chat/chat-attribute-result.hbs`, rollData)
+ })
+ msg.setFlag("world", "darkstars-roll-data", rollData)
+ return
+ }
// ability/save/size => 0
rollData.percentValue = 0
if (rollData.skill) {
rollData.percentValue = rollData.skill.total
}
+ if (rollData.synergyBonus) {
+ rollData.percentValue += rollData.synergyBonus
+ }
+ if (rollData.extraTime) {
+ rollData.percentValue += 30
+ }
rollData.percentValue += rollData.bonusMalus
rollData.diceFormula = "1d100"
@@ -293,20 +340,21 @@ export class DarkStarsUtility {
rollData.locationMalus = this.getAimingMalus(rollData.weaponAiming)
rollData.percentValue += rollData.locationMalus
}
+ rollData.percentValue = Math.max(rollData.percentValue, 0)
+
// Performs roll
- console.log("Roll formula", rollData.diceFormula)
let myRoll = rollData.roll
if (!myRoll) { // New rolls only of no rerolls
- myRoll = new Roll(rollData.diceFormula).roll({ async: false })
+ myRoll = await new Roll(rollData.diceFormula).roll()
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
}
- rollData.roll = duplicate(myRoll)
+ rollData.roll = foundry.utils.duplicate(myRoll)
rollData.diceResult = myRoll.total
rollData.isCriticalSuccess = rollData.diceResult <= rollData.skill.derivated.value
rollData.isCriticalFailure = rollData.diceResult == 100
rollData.isSuccess = rollData.diceResult == 1 || rollData.diceResult <= rollData.percentValue
rollData.isFailure = rollData.diceResult == 100 || rollData.diceResult > rollData.percentValue
- rollData.degrees = Math.floor(rollData.percentValue / 10) - Math.floor(rollData.diceResult / 10)
+ rollData.degrees = Math.floor((rollData.percentValue - rollData.diceResult) / 10)
rollData.damageMultiplier = rollData.isCriticalSuccess ? 2 : 1
if (rollData.reroll) {
@@ -322,7 +370,21 @@ export class DarkStarsUtility {
// Compute
rollData.locationMultiplier = this.locationMultiplier(rollData.weaponAiming)
}
-
+
+ // Task management
+ if (rollData.taskId) {
+ let task = actor.getItem(rollData.taskId)
+ console.log(" Task", task, rollData.taskId)
+ if (task) {
+ let newCumulated = rollData.degrees + task.system.cumulated
+ let nbrolls = task.system.nbrolls + 1
+ task.update({ 'system.cumulated': newCumulated, 'system.nbrolls': nbrolls })
+ rollData.taskName = task.name
+ rollData.taskCumulated = newCumulated
+ rollData.taskNbrolls = nbrolls
+ }
+ }
+
let msg = await this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-dark-stars/templates/chat/chat-generic-result.hbs`, rollData)
})
@@ -350,6 +412,19 @@ export class DarkStarsUtility {
static getUsers(filter) {
return game.users.filter(filter).map(user => user.id);
}
+ /* -------------------------------------------- */
+ static async chatMessageHandler(message, html, data) {
+ const chatCard = html.find('.gm-actions')
+ if (chatCard.length > 0) {
+ // If the user is the message author or the actor owner, proceed
+ const actor = game.actors.get(data.message.speaker.actor)
+ if (actor?.isOwner) return
+ else if (game.user.isGM || data.author.id === game.user.id) return
+ const divButtons = chatCard.find('.gm-actions')
+ divButtons.hide()
+ }
+ }
+
/* -------------------------------------------- */
static getWhisperRecipients(rollMode, name) {
switch (rollMode) {
@@ -367,7 +442,7 @@ export class DarkStarsUtility {
/* -------------------------------------------- */
static blindMessageToGM(chatOptions) {
- let chatGM = duplicate(chatOptions);
+ let chatGM = foundry.utils.duplicate(chatOptions);
chatGM.whisper = this.getUsers(user => user.isGM);
chatGM.content = "Blinde message of " + game.user.name + "
" + chatOptions.content;
console.log("blindMessageToGM", chatGM);
@@ -428,11 +503,15 @@ export class DarkStarsUtility {
/* -------------------------------------------- */
static getBasicRollData() {
let rollData = {
- rollId: randomID(16),
+ rollId: foundry.utils.randomID(16),
rollMode: game.settings.get("core", "rollMode"),
bonusMalus: 0,
isAboveEffectiveRange: false,
- weaponAiming: "none"
+ weaponAiming: "none",
+ synergyBonus: 0,
+ extraTime: false,
+ attributeModifier: 0,
+ config: game.system.darkstars.config,
}
DarkStarsUtility.updateWithTarget(rollData)
return rollData
diff --git a/packs/aldebaran/000166.log b/packs/aldebaran/000186.log
similarity index 100%
rename from packs/aldebaran/000166.log
rename to packs/aldebaran/000186.log
diff --git a/packs/aldebaran/CURRENT b/packs/aldebaran/CURRENT
index be35511..cce82a3 100644
--- a/packs/aldebaran/CURRENT
+++ b/packs/aldebaran/CURRENT
@@ -1 +1 @@
-MANIFEST-000164
+MANIFEST-000184
diff --git a/packs/aldebaran/LOG b/packs/aldebaran/LOG
index 4697a5e..ed56bca 100644
--- a/packs/aldebaran/LOG
+++ b/packs/aldebaran/LOG
@@ -1,7 +1,7 @@
-2024/02/26-14:13:38.988782 7f13374006c0 Recovering log #162
-2024/02/26-14:13:38.999307 7f13374006c0 Delete type=3 #160
-2024/02/26-14:13:38.999433 7f13374006c0 Delete type=0 #162
-2024/02/26-14:20:24.273426 7f132fe006c0 Level-0 table #167: started
-2024/02/26-14:20:24.273466 7f132fe006c0 Level-0 table #167: 0 bytes OK
-2024/02/26-14:20:24.280039 7f132fe006c0 Delete type=0 #165
-2024/02/26-14:20:24.287744 7f132fe006c0 Manual compaction at level-0 from '!folders!MA6uFJMVebGeayIk' @ 72057594037927935 : 1 .. '!items!zhjdppKgrON7wJn7' @ 0 : 0; will stop at (end)
+2024/06/09-22:14:13.855616 7f04234006c0 Recovering log #182
+2024/06/09-22:14:13.912791 7f04234006c0 Delete type=3 #180
+2024/06/09-22:14:13.912941 7f04234006c0 Delete type=0 #182
+2024/06/10-09:41:28.708545 7f041be006c0 Level-0 table #187: started
+2024/06/10-09:41:28.708577 7f041be006c0 Level-0 table #187: 0 bytes OK
+2024/06/10-09:41:28.715216 7f041be006c0 Delete type=0 #185
+2024/06/10-09:41:28.728576 7f041be006c0 Manual compaction at level-0 from '!folders!MA6uFJMVebGeayIk' @ 72057594037927935 : 1 .. '!items!zhjdppKgrON7wJn7' @ 0 : 0; will stop at (end)
diff --git a/packs/aldebaran/LOG.old b/packs/aldebaran/LOG.old
index bb85b7d..c03e415 100644
--- a/packs/aldebaran/LOG.old
+++ b/packs/aldebaran/LOG.old
@@ -1,7 +1,7 @@
-2024/02/25-13:25:19.760043 7f0428e006c0 Recovering log #158
-2024/02/25-13:25:19.770300 7f0428e006c0 Delete type=3 #156
-2024/02/25-13:25:19.770349 7f0428e006c0 Delete type=0 #158
-2024/02/25-15:40:12.540906 7f0421a006c0 Level-0 table #163: started
-2024/02/25-15:40:12.541352 7f0421a006c0 Level-0 table #163: 0 bytes OK
-2024/02/25-15:40:12.547853 7f0421a006c0 Delete type=0 #161
-2024/02/25-15:40:12.555529 7f0421a006c0 Manual compaction at level-0 from '!folders!MA6uFJMVebGeayIk' @ 72057594037927935 : 1 .. '!items!zhjdppKgrON7wJn7' @ 0 : 0; will stop at (end)
+2024/06/09-15:12:48.633006 7f0422a006c0 Recovering log #178
+2024/06/09-15:12:48.642816 7f0422a006c0 Delete type=3 #176
+2024/06/09-15:12:48.642870 7f0422a006c0 Delete type=0 #178
+2024/06/09-22:14:10.275844 7f041be006c0 Level-0 table #183: started
+2024/06/09-22:14:10.275910 7f041be006c0 Level-0 table #183: 0 bytes OK
+2024/06/09-22:14:10.305783 7f041be006c0 Delete type=0 #181
+2024/06/09-22:14:10.338771 7f041be006c0 Manual compaction at level-0 from '!folders!MA6uFJMVebGeayIk' @ 72057594037927935 : 1 .. '!items!zhjdppKgrON7wJn7' @ 0 : 0; will stop at (end)
diff --git a/packs/aldebaran/MANIFEST-000164 b/packs/aldebaran/MANIFEST-000184
similarity index 72%
rename from packs/aldebaran/MANIFEST-000164
rename to packs/aldebaran/MANIFEST-000184
index 2fc3dc0..f04d172 100644
Binary files a/packs/aldebaran/MANIFEST-000164 and b/packs/aldebaran/MANIFEST-000184 differ
diff --git a/packs/nightborough/000179.log b/packs/beyondtheblacksea/000179.log
similarity index 100%
rename from packs/nightborough/000179.log
rename to packs/beyondtheblacksea/000179.log
diff --git a/packs/beyondtheblacksea/CURRENT b/packs/beyondtheblacksea/CURRENT
index 5df89bd..0e27482 100644
--- a/packs/beyondtheblacksea/CURRENT
+++ b/packs/beyondtheblacksea/CURRENT
@@ -1 +1 @@
-MANIFEST-000157
+MANIFEST-000177
diff --git a/packs/beyondtheblacksea/LOG b/packs/beyondtheblacksea/LOG
index 8e43e23..9c42b87 100644
--- a/packs/beyondtheblacksea/LOG
+++ b/packs/beyondtheblacksea/LOG
@@ -1,7 +1,7 @@
-2024/02/26-14:13:39.006215 7f133ce006c0 Recovering log #155
-2024/02/26-14:13:39.017058 7f133ce006c0 Delete type=3 #153
-2024/02/26-14:13:39.017184 7f133ce006c0 Delete type=0 #155
-2024/02/26-14:20:24.266061 7f132fe006c0 Level-0 table #160: started
-2024/02/26-14:20:24.266133 7f132fe006c0 Level-0 table #160: 0 bytes OK
-2024/02/26-14:20:24.273275 7f132fe006c0 Delete type=0 #158
-2024/02/26-14:20:24.287729 7f132fe006c0 Manual compaction at level-0 from '!folders!47aGmBuk1mHtbFFU' @ 72057594037927935 : 1 .. '!items!zwMpjsE84sk26eej' @ 0 : 0; will stop at (end)
+2024/06/09-22:14:13.916877 7f04220006c0 Recovering log #175
+2024/06/09-22:14:13.976920 7f04220006c0 Delete type=3 #173
+2024/06/09-22:14:13.977065 7f04220006c0 Delete type=0 #175
+2024/06/10-09:41:28.721432 7f041be006c0 Level-0 table #180: started
+2024/06/10-09:41:28.721455 7f041be006c0 Level-0 table #180: 0 bytes OK
+2024/06/10-09:41:28.728421 7f041be006c0 Delete type=0 #178
+2024/06/10-09:41:28.728621 7f041be006c0 Manual compaction at level-0 from '!folders!47aGmBuk1mHtbFFU' @ 72057594037927935 : 1 .. '!items!zwMpjsE84sk26eej' @ 0 : 0; will stop at (end)
diff --git a/packs/beyondtheblacksea/LOG.old b/packs/beyondtheblacksea/LOG.old
index 5c3e822..f346ab1 100644
--- a/packs/beyondtheblacksea/LOG.old
+++ b/packs/beyondtheblacksea/LOG.old
@@ -1,7 +1,7 @@
-2024/02/25-13:25:19.773014 7f04234006c0 Recovering log #151
-2024/02/25-13:25:19.782933 7f04234006c0 Delete type=3 #149
-2024/02/25-13:25:19.782991 7f04234006c0 Delete type=0 #151
-2024/02/25-15:40:12.548028 7f0421a006c0 Level-0 table #156: started
-2024/02/25-15:40:12.548061 7f0421a006c0 Level-0 table #156: 0 bytes OK
-2024/02/25-15:40:12.555343 7f0421a006c0 Delete type=0 #154
-2024/02/25-15:40:12.555542 7f0421a006c0 Manual compaction at level-0 from '!folders!47aGmBuk1mHtbFFU' @ 72057594037927935 : 1 .. '!items!zwMpjsE84sk26eej' @ 0 : 0; will stop at (end)
+2024/06/09-15:12:48.646030 7f04220006c0 Recovering log #171
+2024/06/09-15:12:48.657289 7f04220006c0 Delete type=3 #169
+2024/06/09-15:12:48.657351 7f04220006c0 Delete type=0 #171
+2024/06/09-22:14:10.305922 7f041be006c0 Level-0 table #176: started
+2024/06/09-22:14:10.305944 7f041be006c0 Level-0 table #176: 0 bytes OK
+2024/06/09-22:14:10.338591 7f041be006c0 Delete type=0 #174
+2024/06/09-22:14:10.376968 7f041be006c0 Manual compaction at level-0 from '!folders!47aGmBuk1mHtbFFU' @ 72057594037927935 : 1 .. '!items!zwMpjsE84sk26eej' @ 0 : 0; will stop at (end)
diff --git a/packs/beyondtheblacksea/MANIFEST-000157 b/packs/beyondtheblacksea/MANIFEST-000177
similarity index 72%
rename from packs/beyondtheblacksea/MANIFEST-000157
rename to packs/beyondtheblacksea/MANIFEST-000177
index 9c68385..77cf669 100644
Binary files a/packs/beyondtheblacksea/MANIFEST-000157 and b/packs/beyondtheblacksea/MANIFEST-000177 differ
diff --git a/packs/beyondtheblacksea/000159.log b/packs/conditions/000232.log
similarity index 100%
rename from packs/beyondtheblacksea/000159.log
rename to packs/conditions/000232.log
diff --git a/packs/conditions/CURRENT b/packs/conditions/CURRENT
index af31d42..7a8f695 100644
--- a/packs/conditions/CURRENT
+++ b/packs/conditions/CURRENT
@@ -1 +1 @@
-MANIFEST-000210
+MANIFEST-000230
diff --git a/packs/conditions/LOG b/packs/conditions/LOG
index ede38ec..1d739dc 100644
--- a/packs/conditions/LOG
+++ b/packs/conditions/LOG
@@ -1,7 +1,7 @@
-2024/02/26-14:13:38.913763 7f13374006c0 Recovering log #208
-2024/02/26-14:13:38.925039 7f13374006c0 Delete type=3 #206
-2024/02/26-14:13:38.925223 7f13374006c0 Delete type=0 #208
-2024/02/26-14:20:24.237608 7f132fe006c0 Level-0 table #213: started
-2024/02/26-14:20:24.237681 7f132fe006c0 Level-0 table #213: 0 bytes OK
-2024/02/26-14:20:24.244690 7f132fe006c0 Delete type=0 #211
-2024/02/26-14:20:24.259041 7f132fe006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
+2024/06/09-22:14:13.629087 7f04234006c0 Recovering log #228
+2024/06/09-22:14:13.682604 7f04234006c0 Delete type=3 #226
+2024/06/09-22:14:13.682717 7f04234006c0 Delete type=0 #228
+2024/06/10-09:41:28.681612 7f041be006c0 Level-0 table #233: started
+2024/06/10-09:41:28.681700 7f041be006c0 Level-0 table #233: 0 bytes OK
+2024/06/10-09:41:28.688115 7f041be006c0 Delete type=0 #231
+2024/06/10-09:41:28.708370 7f041be006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
diff --git a/packs/conditions/LOG.old b/packs/conditions/LOG.old
index 17e2746..6b0dcbf 100644
--- a/packs/conditions/LOG.old
+++ b/packs/conditions/LOG.old
@@ -1,7 +1,7 @@
-2024/02/25-13:25:19.703338 7f0428e006c0 Recovering log #204
-2024/02/25-13:25:19.713635 7f0428e006c0 Delete type=3 #202
-2024/02/25-13:25:19.713706 7f0428e006c0 Delete type=0 #204
-2024/02/25-15:40:12.512691 7f0421a006c0 Level-0 table #209: started
-2024/02/25-15:40:12.512744 7f0421a006c0 Level-0 table #209: 0 bytes OK
-2024/02/25-15:40:12.519870 7f0421a006c0 Delete type=0 #207
-2024/02/25-15:40:12.526721 7f0421a006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
+2024/06/09-15:12:48.575130 7f0422a006c0 Recovering log #224
+2024/06/09-15:12:48.586449 7f0422a006c0 Delete type=3 #222
+2024/06/09-15:12:48.586519 7f0422a006c0 Delete type=0 #224
+2024/06/09-22:14:10.136453 7f041be006c0 Level-0 table #229: started
+2024/06/09-22:14:10.136510 7f041be006c0 Level-0 table #229: 0 bytes OK
+2024/06/09-22:14:10.178843 7f041be006c0 Delete type=0 #227
+2024/06/09-22:14:10.237058 7f041be006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
diff --git a/packs/conditions/MANIFEST-000210 b/packs/conditions/MANIFEST-000210
deleted file mode 100644
index 333b869..0000000
Binary files a/packs/conditions/MANIFEST-000210 and /dev/null differ
diff --git a/packs/conditions/MANIFEST-000230 b/packs/conditions/MANIFEST-000230
new file mode 100644
index 0000000..fdea4d9
Binary files /dev/null and b/packs/conditions/MANIFEST-000230 differ
diff --git a/packs/conditions/000212.log b/packs/currency/000232.log
similarity index 100%
rename from packs/conditions/000212.log
rename to packs/currency/000232.log
diff --git a/packs/currency/CURRENT b/packs/currency/CURRENT
index af31d42..7a8f695 100644
--- a/packs/currency/CURRENT
+++ b/packs/currency/CURRENT
@@ -1 +1 @@
-MANIFEST-000210
+MANIFEST-000230
diff --git a/packs/currency/LOG b/packs/currency/LOG
index 1ccb197..437dacd 100644
--- a/packs/currency/LOG
+++ b/packs/currency/LOG
@@ -1,7 +1,7 @@
-2024/02/26-14:13:38.930692 7f133ce006c0 Recovering log #208
-2024/02/26-14:13:38.941919 7f133ce006c0 Delete type=3 #206
-2024/02/26-14:13:38.942031 7f133ce006c0 Delete type=0 #208
-2024/02/26-14:20:24.244869 7f132fe006c0 Level-0 table #213: started
-2024/02/26-14:20:24.244926 7f132fe006c0 Level-0 table #213: 0 bytes OK
-2024/02/26-14:20:24.251440 7f132fe006c0 Delete type=0 #211
-2024/02/26-14:20:24.259056 7f132fe006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
+2024/06/09-22:14:13.684410 7f04220006c0 Recovering log #228
+2024/06/09-22:14:13.738438 7f04220006c0 Delete type=3 #226
+2024/06/09-22:14:13.738501 7f04220006c0 Delete type=0 #228
+2024/06/10-09:41:28.695535 7f041be006c0 Level-0 table #233: started
+2024/06/10-09:41:28.695561 7f041be006c0 Level-0 table #233: 0 bytes OK
+2024/06/10-09:41:28.701707 7f041be006c0 Delete type=0 #231
+2024/06/10-09:41:28.708395 7f041be006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
diff --git a/packs/currency/LOG.old b/packs/currency/LOG.old
index 2cacd88..8eae9d9 100644
--- a/packs/currency/LOG.old
+++ b/packs/currency/LOG.old
@@ -1,7 +1,7 @@
-2024/02/25-13:25:19.716119 7f04234006c0 Recovering log #204
-2024/02/25-13:25:19.727169 7f04234006c0 Delete type=3 #202
-2024/02/25-13:25:19.727244 7f04234006c0 Delete type=0 #204
-2024/02/25-15:40:12.520043 7f0421a006c0 Level-0 table #209: started
-2024/02/25-15:40:12.520077 7f0421a006c0 Level-0 table #209: 0 bytes OK
-2024/02/25-15:40:12.526536 7f0421a006c0 Delete type=0 #207
-2024/02/25-15:40:12.533719 7f0421a006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
+2024/06/09-15:12:48.588970 7f04220006c0 Recovering log #224
+2024/06/09-15:12:48.599090 7f04220006c0 Delete type=3 #222
+2024/06/09-15:12:48.599210 7f04220006c0 Delete type=0 #224
+2024/06/09-22:14:10.179007 7f041be006c0 Level-0 table #229: started
+2024/06/09-22:14:10.179038 7f041be006c0 Level-0 table #229: 0 bytes OK
+2024/06/09-22:14:10.207646 7f041be006c0 Delete type=0 #227
+2024/06/09-22:14:10.275783 7f041be006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
diff --git a/packs/currency/MANIFEST-000210 b/packs/currency/MANIFEST-000210
deleted file mode 100644
index 333b869..0000000
Binary files a/packs/currency/MANIFEST-000210 and /dev/null differ
diff --git a/packs/currency/MANIFEST-000230 b/packs/currency/MANIFEST-000230
new file mode 100644
index 0000000..fdea4d9
Binary files /dev/null and b/packs/currency/MANIFEST-000230 differ
diff --git a/packs/currency/000212.log b/packs/darkstars-sf/000044.log
similarity index 100%
rename from packs/currency/000212.log
rename to packs/darkstars-sf/000044.log
diff --git a/packs/darkstars-sf/CURRENT b/packs/darkstars-sf/CURRENT
index 5af92b2..8e0a062 100644
--- a/packs/darkstars-sf/CURRENT
+++ b/packs/darkstars-sf/CURRENT
@@ -1 +1 @@
-MANIFEST-000022
+MANIFEST-000042
diff --git a/packs/darkstars-sf/LOG b/packs/darkstars-sf/LOG
index 01b7572..c2a6780 100644
--- a/packs/darkstars-sf/LOG
+++ b/packs/darkstars-sf/LOG
@@ -1,8 +1,8 @@
-2024/02/26-14:13:38.966465 7f13374006c0 Recovering log #20
-2024/02/26-14:13:38.977463 7f13374006c0 Delete type=3 #18
-2024/02/26-14:13:38.977548 7f13374006c0 Delete type=0 #20
-2024/02/26-14:20:24.259303 7f132fe006c0 Level-0 table #25: started
-2024/02/26-14:20:24.259357 7f132fe006c0 Level-0 table #25: 0 bytes OK
-2024/02/26-14:20:24.265823 7f132fe006c0 Delete type=0 #23
-2024/02/26-14:20:24.287708 7f132fe006c0 Manual compaction at level-0 from '!folders!La3YsNYFddQnmsba' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
-2024/02/26-14:20:24.287792 7f132fe006c0 Manual compaction at level-1 from '!folders!La3YsNYFddQnmsba' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
+2024/06/09-22:14:13.796638 7f04234006c0 Recovering log #40
+2024/06/09-22:14:13.848675 7f04234006c0 Delete type=3 #38
+2024/06/09-22:14:13.848823 7f04234006c0 Delete type=0 #40
+2024/06/10-09:41:28.701835 7f041be006c0 Level-0 table #45: started
+2024/06/10-09:41:28.701863 7f041be006c0 Level-0 table #45: 0 bytes OK
+2024/06/10-09:41:28.708242 7f041be006c0 Delete type=0 #43
+2024/06/10-09:41:28.708405 7f041be006c0 Manual compaction at level-0 from '!folders!La3YsNYFddQnmsba' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
+2024/06/10-09:41:28.708427 7f041be006c0 Manual compaction at level-1 from '!folders!La3YsNYFddQnmsba' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
diff --git a/packs/darkstars-sf/LOG.old b/packs/darkstars-sf/LOG.old
index 31c5ecf..3b0e455 100644
--- a/packs/darkstars-sf/LOG.old
+++ b/packs/darkstars-sf/LOG.old
@@ -1,8 +1,8 @@
-2024/02/25-13:25:19.744621 7f0428e006c0 Recovering log #16
-2024/02/25-13:25:19.754834 7f0428e006c0 Delete type=3 #14
-2024/02/25-13:25:19.754885 7f0428e006c0 Delete type=0 #16
-2024/02/25-15:40:12.533736 7f0421a006c0 Level-0 table #21: started
-2024/02/25-15:40:12.533778 7f0421a006c0 Level-0 table #21: 0 bytes OK
-2024/02/25-15:40:12.540676 7f0421a006c0 Delete type=0 #19
-2024/02/25-15:40:12.555489 7f0421a006c0 Manual compaction at level-0 from '!folders!La3YsNYFddQnmsba' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
-2024/02/25-15:40:12.555554 7f0421a006c0 Manual compaction at level-1 from '!folders!La3YsNYFddQnmsba' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
+2024/06/09-15:12:48.617616 7f0422a006c0 Recovering log #36
+2024/06/09-15:12:48.628378 7f0422a006c0 Delete type=3 #34
+2024/06/09-15:12:48.628495 7f0422a006c0 Delete type=0 #36
+2024/06/09-22:14:10.237082 7f041be006c0 Level-0 table #41: started
+2024/06/09-22:14:10.237123 7f041be006c0 Level-0 table #41: 0 bytes OK
+2024/06/09-22:14:10.275511 7f041be006c0 Delete type=0 #39
+2024/06/09-22:14:10.305901 7f041be006c0 Manual compaction at level-0 from '!folders!La3YsNYFddQnmsba' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
+2024/06/09-22:14:10.338791 7f041be006c0 Manual compaction at level-1 from '!folders!La3YsNYFddQnmsba' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
diff --git a/packs/darkstars-sf/MANIFEST-000022 b/packs/darkstars-sf/MANIFEST-000022
deleted file mode 100644
index 6d38879..0000000
Binary files a/packs/darkstars-sf/MANIFEST-000022 and /dev/null differ
diff --git a/packs/darkstars-sf/MANIFEST-000042 b/packs/darkstars-sf/MANIFEST-000042
new file mode 100644
index 0000000..68e1f90
Binary files /dev/null and b/packs/darkstars-sf/MANIFEST-000042 differ
diff --git a/packs/darkstars-sf/000024.log b/packs/nightborough/000199.log
similarity index 100%
rename from packs/darkstars-sf/000024.log
rename to packs/nightborough/000199.log
diff --git a/packs/nightborough/CURRENT b/packs/nightborough/CURRENT
index 0e27482..edcd2de 100644
--- a/packs/nightborough/CURRENT
+++ b/packs/nightborough/CURRENT
@@ -1 +1 @@
-MANIFEST-000177
+MANIFEST-000197
diff --git a/packs/nightborough/LOG b/packs/nightborough/LOG
index 395c06a..50ef0a4 100644
--- a/packs/nightborough/LOG
+++ b/packs/nightborough/LOG
@@ -1,7 +1,7 @@
-2024/02/26-14:13:39.028984 7f13374006c0 Recovering log #175
-2024/02/26-14:13:39.040662 7f13374006c0 Delete type=3 #173
-2024/02/26-14:13:39.040750 7f13374006c0 Delete type=0 #175
-2024/02/26-14:20:24.280431 7f132fe006c0 Level-0 table #180: started
-2024/02/26-14:20:24.280468 7f132fe006c0 Level-0 table #180: 0 bytes OK
-2024/02/26-14:20:24.287553 7f132fe006c0 Delete type=0 #178
-2024/02/26-14:20:24.287767 7f132fe006c0 Manual compaction at level-0 from '!folders!2iZtDz80npHPIwkS' @ 72057594037927935 : 1 .. '!items!zyFR9C1jBTeFzbxg' @ 0 : 0; will stop at (end)
+2024/06/09-22:14:13.982525 7f04234006c0 Recovering log #195
+2024/06/09-22:14:14.045462 7f04234006c0 Delete type=3 #193
+2024/06/09-22:14:14.045536 7f04234006c0 Delete type=0 #195
+2024/06/10-09:41:28.715334 7f041be006c0 Level-0 table #200: started
+2024/06/10-09:41:28.715357 7f041be006c0 Level-0 table #200: 0 bytes OK
+2024/06/10-09:41:28.721312 7f041be006c0 Delete type=0 #198
+2024/06/10-09:41:28.728591 7f041be006c0 Manual compaction at level-0 from '!folders!2iZtDz80npHPIwkS' @ 72057594037927935 : 1 .. '!items!zyFR9C1jBTeFzbxg' @ 0 : 0; will stop at (end)
diff --git a/packs/nightborough/LOG.old b/packs/nightborough/LOG.old
index 1b24fb0..f78e9ea 100644
--- a/packs/nightborough/LOG.old
+++ b/packs/nightborough/LOG.old
@@ -1,7 +1,7 @@
-2024/02/25-13:25:19.786914 7f0428e006c0 Recovering log #171
-2024/02/25-13:25:19.797512 7f0428e006c0 Delete type=3 #169
-2024/02/25-13:25:19.797578 7f0428e006c0 Delete type=0 #171
-2024/02/25-15:40:12.555728 7f0421a006c0 Level-0 table #176: started
-2024/02/25-15:40:12.555778 7f0421a006c0 Level-0 table #176: 0 bytes OK
-2024/02/25-15:40:12.562473 7f0421a006c0 Delete type=0 #174
-2024/02/25-15:40:12.562645 7f0421a006c0 Manual compaction at level-0 from '!folders!2iZtDz80npHPIwkS' @ 72057594037927935 : 1 .. '!items!zyFR9C1jBTeFzbxg' @ 0 : 0; will stop at (end)
+2024/06/09-15:12:48.661428 7f0422a006c0 Recovering log #191
+2024/06/09-15:12:48.671794 7f0422a006c0 Delete type=3 #189
+2024/06/09-15:12:48.671874 7f0422a006c0 Delete type=0 #191
+2024/06/09-22:14:10.338805 7f041be006c0 Level-0 table #196: started
+2024/06/09-22:14:10.338838 7f041be006c0 Level-0 table #196: 0 bytes OK
+2024/06/09-22:14:10.376746 7f041be006c0 Delete type=0 #194
+2024/06/09-22:14:10.376994 7f041be006c0 Manual compaction at level-0 from '!folders!2iZtDz80npHPIwkS' @ 72057594037927935 : 1 .. '!items!zyFR9C1jBTeFzbxg' @ 0 : 0; will stop at (end)
diff --git a/packs/nightborough/MANIFEST-000177 b/packs/nightborough/MANIFEST-000197
similarity index 71%
rename from packs/nightborough/MANIFEST-000177
rename to packs/nightborough/MANIFEST-000197
index 1b9c26d..76242f2 100644
Binary files a/packs/nightborough/MANIFEST-000177 and b/packs/nightborough/MANIFEST-000197 differ
diff --git a/packs/sprawl/000016.log b/packs/sprawl/000036.log
similarity index 100%
rename from packs/sprawl/000016.log
rename to packs/sprawl/000036.log
diff --git a/packs/sprawl/CURRENT b/packs/sprawl/CURRENT
index 23b73d9..eea9b0f 100644
--- a/packs/sprawl/CURRENT
+++ b/packs/sprawl/CURRENT
@@ -1 +1 @@
-MANIFEST-000014
+MANIFEST-000034
diff --git a/packs/sprawl/LOG b/packs/sprawl/LOG
index 16e7fd0..950889e 100644
--- a/packs/sprawl/LOG
+++ b/packs/sprawl/LOG
@@ -1,8 +1,8 @@
-2024/02/26-14:13:38.944643 7f13374006c0 Recovering log #12
-2024/02/26-14:13:38.955458 7f13374006c0 Delete type=3 #10
-2024/02/26-14:13:38.955573 7f13374006c0 Delete type=0 #12
-2024/02/26-14:20:24.251571 7f132fe006c0 Level-0 table #17: started
-2024/02/26-14:20:24.251622 7f132fe006c0 Level-0 table #17: 0 bytes OK
-2024/02/26-14:20:24.258866 7f132fe006c0 Delete type=0 #15
-2024/02/26-14:20:24.259070 7f132fe006c0 Manual compaction at level-0 from '!folders!0XjcJyQMCVYU611t' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
-2024/02/26-14:20:24.259112 7f132fe006c0 Manual compaction at level-1 from '!folders!0XjcJyQMCVYU611t' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
+2024/06/09-22:14:13.740220 7f04234006c0 Recovering log #32
+2024/06/09-22:14:13.790228 7f04234006c0 Delete type=3 #30
+2024/06/09-22:14:13.790339 7f04234006c0 Delete type=0 #32
+2024/06/10-09:41:28.688322 7f041be006c0 Level-0 table #37: started
+2024/06/10-09:41:28.688366 7f041be006c0 Level-0 table #37: 0 bytes OK
+2024/06/10-09:41:28.695417 7f041be006c0 Delete type=0 #35
+2024/06/10-09:41:28.708385 7f041be006c0 Manual compaction at level-0 from '!folders!0XjcJyQMCVYU611t' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
+2024/06/10-09:41:28.708412 7f041be006c0 Manual compaction at level-1 from '!folders!0XjcJyQMCVYU611t' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
diff --git a/packs/sprawl/LOG.old b/packs/sprawl/LOG.old
index 3d2a8ee..e9f2cc6 100644
--- a/packs/sprawl/LOG.old
+++ b/packs/sprawl/LOG.old
@@ -1,8 +1,8 @@
-2024/02/25-13:25:19.728626 7f0428e006c0 Recovering log #8
-2024/02/25-13:25:19.738166 7f0428e006c0 Delete type=3 #6
-2024/02/25-13:25:19.738216 7f0428e006c0 Delete type=0 #8
-2024/02/25-15:40:12.526734 7f0421a006c0 Level-0 table #13: started
-2024/02/25-15:40:12.526774 7f0421a006c0 Level-0 table #13: 0 bytes OK
-2024/02/25-15:40:12.533260 7f0421a006c0 Delete type=0 #11
-2024/02/25-15:40:12.548013 7f0421a006c0 Manual compaction at level-0 from '!folders!0XjcJyQMCVYU611t' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
-2024/02/25-15:40:12.555515 7f0421a006c0 Manual compaction at level-1 from '!folders!0XjcJyQMCVYU611t' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
+2024/06/09-15:12:48.601801 7f0422a006c0 Recovering log #28
+2024/06/09-15:12:48.612089 7f0422a006c0 Delete type=3 #26
+2024/06/09-15:12:48.612161 7f0422a006c0 Delete type=0 #28
+2024/06/09-22:14:10.207782 7f041be006c0 Level-0 table #33: started
+2024/06/09-22:14:10.207808 7f041be006c0 Level-0 table #33: 0 bytes OK
+2024/06/09-22:14:10.236857 7f041be006c0 Delete type=0 #31
+2024/06/09-22:14:10.275812 7f041be006c0 Manual compaction at level-0 from '!folders!0XjcJyQMCVYU611t' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
+2024/06/09-22:14:10.305912 7f041be006c0 Manual compaction at level-1 from '!folders!0XjcJyQMCVYU611t' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
diff --git a/packs/sprawl/MANIFEST-000014 b/packs/sprawl/MANIFEST-000014
deleted file mode 100644
index 15e4639..0000000
Binary files a/packs/sprawl/MANIFEST-000014 and /dev/null differ
diff --git a/packs/sprawl/MANIFEST-000034 b/packs/sprawl/MANIFEST-000034
new file mode 100644
index 0000000..2dff9c2
Binary files /dev/null and b/packs/sprawl/MANIFEST-000034 differ
diff --git a/styles/simple.css b/styles/simple.css
index de4de39..629f0c5 100644
--- a/styles/simple.css
+++ b/styles/simple.css
@@ -1,7 +1,7 @@
/* ==================== (A) Fonts ==================== */
:root {
- /* =================== 1. ACTOR SHEET FONT STYLES =========== */
+ /* =================== 1. ACTOR SHEET FONT STYLES =========== */
--window-header-title-font-size: 1.3rem;
--window-header-title-font-weight: normal;
--window-header-title-color: #f5f5f5;
@@ -23,7 +23,7 @@
--actor-label-font-weight: 700;
--actor-label-color: #464331c4;
- /* =================== 2. DEBUGGING HIGHLIGHTERS ============ */
+ /* =================== 2. DEBUGGING HIGHLIGHTERS ============ */
--debug-background-color-red: #ff000054;
--debug-background-color-blue: #1d00ff54;
--debug-background-color-green: #54ff0054;
@@ -33,1247 +33,1376 @@
--debug-box-shadow-green: inset 0 0 2px green;
}
-/*@import url("https://fonts.googleapis.com/css2?family=Martel:wght@400;800&family=Roboto:wght@300;400;500&display=swap");*/
-/* Global styles & Font */
-.window-app {
- text-align: justify;
- font-size: 16px;
- letter-spacing: 1px;
- color: rgba(228, 240, 240, 0.75);
- background: rgba(66, 66, 64, 0.95);
-
-}
-
-/* Fonts */
-.sheet header.sheet-header h1 input, .window-app .window-header, #actors .directory-list, #navigation #scene-list .scene.nav-item {
- font-size: 1.0rem;
- color: rgba(228, 240, 240, 0.75);
- background: rgba(66, 66, 64, 0.95);
-} /* For title, sidebar character and scene */
-.sheet nav.sheet-tabs {
- font-size: 0.8rem;
- color: rgba(228, 240, 240, 0.75);
- background: rgba(66, 66, 64, 0.95);
-} /* For nav and title */
-.window-app input, .fvtt-dark-stars .item-form, .sheet header.sheet-header .flex-group-center.flex-compteurs, .sheet header.sheet-header .flex-group-center.flex-fatigue, select, button, .item-checkbox, #sidebar, #players, #navigation #nav-toggle {
- font-size: 0.8rem;
- color: rgba(228, 240, 240, 0.75);
- background: rgba(66, 66, 64, 0.95);
-}
-
-.window-header{
- background: rgba(0,0,0,0.75);
-}
-.dialog .window-content {
- color: #ccdbe6;
-}
-.dialog-content, .dialog-buttons, .form-fields {
- color: #ccdbe6;
-}
-.window-app.sheet .window-content {
- margin: 0;
- padding: 0;
- color: #ccdbe6;
-}
-.strong-text{
- font-weight: bold;
-}
-
-.tabs .item.active, .blessures-list li ul li:first-child:hover, a:hover {
- text-shadow: 1px 0px 0px #ff6600;
-}
-select {
- background: rgba(228, 240, 240, 0.75);
- color: rgba(66, 66, 64, 0.95);
-}
-select option {
- background: rgba(228, 240, 240, 0.75);
- color: rgba(66, 66, 64, 0.95);
-}
-
-.rollable:hover, .rollable:focus {
- color: #000;
- text-shadow: 0 0 10px red;
- cursor: pointer;
-}
-input:disabled {
- color:#1c2058;
-}
-select:disabled {
- color:#1c2058;
-}
-table {border: 1px solid #7a7971;}
-
-.grid, .grid-2col {
- display: grid;
- grid-column: span 2 / span 2;
- grid-template-columns: repeat(2, minmax(0, 1fr));
- gap: 10px;
- margin: 10px 0;
- padding: 0;
-}
-
-.grid-3col {
- grid-column: span 3 / span 3;
- grid-template-columns: repeat(3, minmax(0, 1fr));
-}
-
-.grid-4col {
- grid-column: span 4 / span 4;
- grid-template-columns: repeat(4, minmax(0, 1fr));
-}
-
-.grid-5col {
- grid-column: span 5 / span 5;
- grid-template-columns: repeat(5, minmax(0, 1fr));
-}
-
-.grid-6col {
- grid-column: span 5 / span 5;
- grid-template-columns: repeat(5, minmax(0, 1fr));
-}
-
-.grid-7col {
- grid-column: span 7 / span 7;
- grid-template-columns: repeat(7, minmax(0, 1fr));
-}
-
-.grid-8col {
- grid-column: span 8 / span 8;
- grid-template-columns: repeat(8, minmax(0, 1fr));
-}
-
-.grid-9col {
- grid-column: span 9 / span 9;
- grid-template-columns: repeat(9, minmax(0, 1fr));
-}
-
-.grid-10col {
- grid-column: span 10 / span 10;
- grid-template-columns: repeat(10, minmax(0, 1fr));
-}
-
-.grid-11col {
- grid-column: span 11 / span 11;
- grid-template-columns: repeat(11, minmax(0, 1fr));
-}
-
-.grid-12col {
- grid-column: span 12 / span 12;
- grid-template-columns: repeat(12, minmax(0, 1fr));
-}
-
-.flex-group-center,
-.flex-group-left,
-.flex-group-right {
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- text-align: center;
- padding: 5px;
-}
-
-.flex-group-left {
- -webkit-box-pack: start;
- -ms-flex-pack: start;
- justify-content: flex-start;
- text-align: left;
-}
-
-.flex-group-right {
- -webkit-box-pack: end;
- -ms-flex-pack: end;
- justify-content: flex-end;
- text-align: right;
-}
-
-.flex-center {
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- text-align: center;
-}
-
-.table-create-actor {
- font-size: 0.8rem;
-}
-
-.flex-between {
- -webkit-box-pack: justify;
- -ms-flex-pack: justify;
- justify-content: space-between;
-}
-
-.flex-shrink {
- flex: 'flex-shrink' ;
-}
-
-/* Styles limited to foundryvtt-vadentis sheets */
-
-.fvtt-dark-stars .sheet-header {
- -webkit-box-flex: 0;
- -ms-flex: 0 0 210px;
- flex: 0 0 210px;
- overflow: hidden;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
- -ms-flex-direction: row;
- flex-direction: row;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- -webkit-box-pack: start;
- -ms-flex-pack: start;
- justify-content: flex-start;
- margin-bottom: 10px;
-}
-
-.fvtt-dark-stars .sheet-header .profile-img {
- -webkit-box-flex: 0;
- -ms-flex: 0 0 96px;
- flex: 0 0 96px;
- width: 96px;
- height: auto;
- max-height:96px;
- margin-top: 0px;
- margin-right: 10px;
- object-fit: cover;
- border-width: 0px;
- object-position: 50% 0;
-}
-
-.button-img {
- vertical-align: baseline;
- width: 8%;
- height: 8%;
- max-height: 48px;
- border-width: 0;
- border: 1px solid rgba(0, 0, 0, 0);
-}
-.button-img:hover {
- color: rgba(255, 255, 128, 0.7);
- border: 1px solid rgba(255, 128, 0, 0.8);
- cursor: pointer;
-}
-
-.button-effect-img {
- vertical-align: baseline;
- width: 16px;
- max-height: 16px;
- height: 16;
- border-width: 0;
-}
-
-.small-button-container {
- height: 16px;
- width: 16px;
- border: 0;
- vertical-align: bottom;
-}
-
-.fvtt-dark-stars .sheet-header .header-fields {
- -webkit-box-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-
-.fvtt-dark-stars .sheet-header h1.charname {
- height: 50px;
- padding: 0px;
- margin: 5px 0;
- border-bottom: 0;
-}
-
-.fvtt-dark-stars .sheet-header h1.charname input {
- width: 100%;
- height: 100%;
- margin: 0;
-}
-
-.fvtt-dark-stars .sheet-tabs {
- -webkit-box-flex: 0;
- -ms-flex: 0;
- flex: 0;
-}
-
-.fvtt-dark-stars .sheet-body,
-.fvtt-dark-stars .sheet-body .tab,
-.fvtt-dark-stars .sheet-body .tab .editor {
- height: 100%;
- font-size: 0.8rem;
-}
-
-.editor {
- border: 2;
- height: 300px;
- padding: 0 3px;
-}
-
-.medium-editor {
- border: 2;
- height: 240px;
- padding: 0 3px;
-}
-
-.small-editor {
- border: 2;
- height: 120px;
- padding: 0 3px;
-}
-
-.fvtt-dark-stars .tox .tox-editor-container {
- background: #fff;
-}
-
-.fvtt-dark-stars .tox .tox-edit-area {
- padding: 0 8px;
-}
-
-.fvtt-dark-stars .resource-label {
- font-weight: bold;
- text-transform: uppercase;
-}
-
-.fvtt-dark-stars .tabs {
- height: 40px;
- border-top: 1px solid #AAA;
- border-bottom: 1px solid #AAA;
- color: #000000;
-}
-
-.fvtt-dark-stars .tabs .item {
- line-height: 40px;
- font-weight: bold;
-}
-
-.fvtt-dark-stars .tabs .item.active {
- text-decoration: underline;
- text-shadow: none;
-}
-
-.fvtt-dark-stars .items-list {
- list-style: none;
- margin: 1px 0;
- padding: 0;
- overflow-y: auto;
-}
-
-.fvtt-dark-stars .items-list .item-header {
- font-weight: bold;
-}
-
-.fvtt-dark-stars .items-list .item {
- height: 30px;
- line-height: 24px;
- padding: 1px 0;
- border-bottom: 1px solid #BBB;
-}
-
-.fvtt-dark-stars .items-list .item .item-image {
- -webkit-box-flex: 0;
- -ms-flex: 0 0 24px;
- flex: 0 0 24px;
- margin-right: 5px;
-}
-
-.fvtt-dark-stars .items-list .item img {
- display: block;
-}
-
-.fvtt-dark-stars .items-list .item-name {
- margin: 0;
-}
-
-.fvtt-dark-stars .items-list .item-controls {
- -webkit-box-flex: 0;
- -ms-flex: 0 0 86px;
- flex: 0 0 86px;
- text-align: right;
-}
-
-
-/* ======================================== */
-/* Sheet */
-.window-app.sheet .window-content .sheet-header{
- background: url("../images/ui/pc_sheet_bg.webp")
-}
-/* background: #011d33 url("../images/ui/fond1.webp") repeat left top;*/
-/*color: rgba(168, 139, 139, 0.5);*/
-
-.window-app.sheet .window-content .sheet-header input[type="text"], .window-app.sheet .window-content .sheet-header input[type="number"], .window-app.sheet .window-content .sheet-header input[type="password"], .window-app.sheet .window-content .sheet-header input[type="date"], .window-app.sheet .window-content .sheet-header input[type="time"] {
- color: rgba(228, 240, 240, 0.75);
- background: rgba(66, 66, 64, 0.95);
- border: 1 none;
- margin-bottom: 0.25rem;
- margin-left: 2px;
-}
-
-.window-app.sheet .window-content .sheet-body input[type="text"], .window-app.sheet .window-content .sheet-body input[type="number"], .window-app.sheet .window-content .sheet-body input[type="password"], .window-app.sheet .window-content .sheet-body input[type="date"], .window-app.sheet .window-content .sheet-body input[type="time"] {
- color: rgba(228, 240, 240, 0.75);
- background: rgba(66, 66, 64, 0.95);
- border: 1 none;
- margin-bottom: 0.25rem;
- margin-left: 2px;
-}
-
-.window-app.sheet .window-content .sheet-body select, .window-app.sheet .window-content .sheet-header select {
- color: rgba(228, 240, 240, 0.75);
- background: rgba(66, 66, 64, 0.95);
- border: 1 none;
- margin-bottom: 0.25rem;
- margin-left: 2px;
-}
-
-.window-app .window-content, .window-app.sheet .window-content .sheet-body{
- font-size: 0.8rem;
- background: url("../images/ui/pc_sheet_bg.webp") repeat left top;
- color: rgba(228, 240, 240, 0.75);
- background: rgba(66, 66, 64, 0.95);
-}
-
-/* background: rgba(245,245,240,0.6) url("../images/ui/sheet_background.webp") left top;*/
-
-section.sheet-body{padding: 0.25rem 0.5rem;}
-
-.sheet header.sheet-header .profile-img {
- object-fit: cover;
- object-position: 50% 0;
- margin: 0.5rem 0 0.5rem 0.5rem;
- padding: 0;
-}
-
-.sheet nav.sheet-tabs {
- font-size: 0.70rem;
- font-weight: bold;
- height: 3rem;
- flex: 0 0 3rem;
- margin: 0;
- padding: 0 0 0 0.25rem;
- text-align: center;
- text-transform: uppercase;
- line-height: 1.5rem;
- border-top: 0 none;
- border-bottom: 0 none;
- background-color:black;
- color:beige;
-}
-
-/* background: rgb(245,245,240) url("../images/ui/fond4.webp") repeat left top;*/
-
-nav.sheet-tabs .item {
- position: relative;
- padding: 0 0.25rem;
-}
-
-nav.sheet-tabs .item:after {
- content: "";
- position: absolute;
- top: 0;
- right: 0;
- height: 2rem;
- width: 1px;
- border-right: 1px dashed rgba(52, 52, 52, 0.25);
-}
-
-.sheet .tab[data-tab] {
- padding: 0;
-}
-
-section.sheet-body:after {
- content: "";
- display: block;
- clear: both;
-}
-
-.sheet header.sheet-header .flex-compteurs {text-align: right;}
-.sheet header.sheet-header .resource-content {width: 2rem;}
-
-.select-diff {
- display: inline-block;
- text-align: left;
- width: 50px;
-}
-
-.window-app.sheet .window-content .tooltip:hover .tooltiptext {
- top: 2rem;
- left: 2rem;
- margin: 0;
- padding: 0.25rem;
-}
-
-.window-app.sheet .window-content .carac-value, .window-app.sheet .window-content .competence-xp {
- margin: 0.05rem;
- flex-basis: 3rem;
- text-align: center;
-}
-
-/* ======================================== */
-/* Global UI elements */
-
-/* ======================================== */
-
-h1, h2, h3, h4 {
- font-weight: bold;
-}
-
-ul, ol {
+ ::-webkit-scrollbar-thumb {
+ outline: none;
+ border-radius: 3px;
+ background: #999 !important;
+ border: 1px solid #333 !important;
+ border-color: #333 !important;
+ }
+
+ ::-webkit-scrollbar-track {
+ box-shadow: 0 0 3px #756e08 inset !important;
+ border-radius: 3px;
+ }
+
+ * {
+ scrollbar-width: thin !important;
+ scrollbar-color: #756e08 #ccc !important;
+ }
+
+ /*@import url("https://fonts.googleapis.com/css2?family=Martel:wght@400;800&family=Roboto:wght@300;400;500&display=swap");*/
+ /* Global styles & Font */
+ .window-app {
+ text-align: justify;
+ font-size: 16px;
+ letter-spacing: 1px;
+ color: rgba(228, 240, 240, 0.75);
+ background: rgba(66, 66, 64, 0.95);
+
+ }
+
+ /* Fonts */
+ .sheet header.sheet-header h1 input,
+ .window-app .window-header,
+ #actors .directory-list,
+ #navigation #scene-list .scene.nav-item {
+ font-size: 1.0rem;
+ color: rgba(228, 240, 240, 0.75);
+ background: rgba(66, 66, 64, 0.95);
+ }
+
+ /* For title, sidebar character and scene */
+ .sheet nav.sheet-tabs {
+ font-size: 0.8rem;
+ color: rgba(228, 240, 240, 0.75);
+ background: rgba(66, 66, 64, 0.95);
+ }
+
+ /* For nav and title */
+ .window-app input,
+ .fvtt-dark-stars .item-form,
+ .sheet header.sheet-header .flex-group-center.flex-compteurs,
+ .sheet header.sheet-header .flex-group-center.flex-fatigue,
+ select,
+ button,
+ .item-checkbox,
+ #sidebar,
+ #players,
+ #navigation #nav-toggle {
+ font-size: 0.8rem;
+ color: rgba(228, 240, 240, 0.75);
+ background: rgba(66, 66, 64, 0.95);
+ }
+
+ .window-header {
+ background: rgba(0, 0, 0, 0.75);
+ }
+
+ .dialog .window-content {
+ color: #ccdbe6;
+ }
+
+ .dialog-content,
+ .dialog-buttons,
+ .form-fields {
+ color: #ccdbe6;
+ }
+
+ .window-app.sheet .window-content {
margin: 0;
padding: 0;
-}
-ul, li {
- list-style-type: none;
-}
+ color: #ccdbe6;
+ }
-.sheet li {
- margin: 0.010rem;
- padding: 0.25rem;
-}
-.header-fields li {
- margin: 0;
- padding: 0;
-}
+ .strong-text {
+ font-weight: bold;
+ }
-.alterne-list > .list-item:hover {
- background: rgba(100, 100, 50, 0.25);
-}
-.alterne-list > .list-item:nth-child(even) {
- background: rgba(80, 60, 0, 0.10);
-}
-.alterne-list > .list-item:nth-child(odd) {
- background: rgb(160, 130, 100, 0.05);
-}
+ .tabs .item.active,
+ .blessures-list li ul li:first-child:hover,
+ a:hover {
+ text-shadow: 1px 0px 0px #ff6600;
+ }
-.specialisation-label {
- font-size: 0.8rem;
-}
+ select {
+ background: rgba(228, 240, 240, 0.75);
+ color: rgba(66, 66, 64, 0.95);
+ }
-.carac-label,
-.attr-label {
- font-weight: bold;
-}
+ select option {
+ background: rgba(228, 240, 240, 0.75);
+ color: rgba(66, 66, 64, 0.95);
+ }
-.list-item {
- margin: 0.125rem;
- box-shadow: inset 0px 0px 1px #00000096;
- border-radius: 0.25rem;
- padding: 0.125rem;
- flex: 1 1 5rem;
- display: flex !important;
-}
-.list-item-shadow {
- background:rgba(87, 60, 32, 0.35);
- /*flex-grow: 0;*/
- flex-wrap: nowrap;
- justify-content: flex-start;
-}
-.list-item-shadow2 {
- background:rgba(87, 60, 32, 0.25);
- flex-grow: 0;
- flex-wrap: nowrap;
- justify-content: flex-start;
-}
-.item-display-show {
- display: block;
-}
-.item-display-hide {
- display: none;
-}
-.conteneur-type {
- background: rgb(200, 10, 100, 0.25);
-}
-.item-quantite {
- margin-left: 0.5rem;
-}
-.list-item-margin1 {
- margin-left: 1rem;
-}
-.list-item-margin2 {
- margin-left: 2rem;
-}
-.list-item-margin3 {
- margin-left: 3rem;
-}
-.list-item-margin4 {
- margin-left: 4rem;
-}
+ .rollable:hover,
+ .rollable:focus {
+ color: #000;
+ text-shadow: 0 0 10px red;
+ cursor: pointer;
+ }
-.sheet-competence-img {
- width: 24px;
- max-width: 24px;
- height: 24px;
- max-height: 24px;
- flex-grow: 0;
- margin-right: 0.25rem;
-}
-.competence-column {
- flex-direction: column;
- align-content: flex-start;
- justify-content: flex-start;
- flex-grow: 0;
- flex-basis: 1;
-}
-.competence-header {
- align-content: flex-start;
- justify-content: flex-start;
- font-weight: bold;
- flex-grow: 0;
-}
-.secondaire-label,
-.arme-label,
-.generic-label,
-.competence-label,
-.devotion-label,
-.sort-label,
-.technique-label,
-.ability-label,
-.arme-label,
-.armure-label,
-.equipement-label,
-.description-label {
- flex-grow: 2;
- margin-left: 4px;
-}
-.status-header-label {
- margin-left: 2px;
-}
-.roll-dialog-label {
- margin: 4px 0;
- min-width: 96px;
-}
-.short-label {
- flex-grow: 1;
-}
-.keyword-label {
- font-size: 0.85rem;
-}
+ input:disabled {
+ color: #1c2058;
+ }
-.item-sheet-label {
- flex-grow: 1;
-}
+ select:disabled {
+ color: #1c2058;
+ }
-.item-text-long-line {
- flex-grow: 3;
-}
+ table {
+ border: 1px solid #7a7971;
+ }
-.score-label {
- flex-grow: 2;
- align-content: center;
-}
+ .grid,
+ .grid-2col {
+ display: grid;
+ grid-column: span 2 / span 2;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: 10px;
+ margin: 10px 0;
+ padding: 0;
+ }
-.attribut-value,
-.carac-value {
- flex-grow: 0;
- flex-basis: 64px;
- margin-right: 4px;
- margin-left: 4px;
-}
-.sante-value,
-.competence-value {
- flex-grow: 0;
- flex-basis: 2rem;
- margin-right: 0.25rem;
- margin-left: 0.25rem;
-}
-.description-value {
- flex-grow: 0;
- flex-basis: 4rem;
- margin-right: 0.25rem;
- margin-left: 0.25rem;
-}
-.competence-xp {
- flex-grow: 0;
- flex-basis: 2rem;
- margin-right: 0.25rem;
- margin-left: 0.25rem;
-}
-.blessures-title {
- font-weight: bold;
-}
-.alchimie-title {
- font-weight: bold;
-}
-.blessure-data {
- flex-direction: row;
- align-content: flex-start;
- justify-content: flex-start;
-}
-.blessures-soins {
- flex-grow: 0;
- flex-basis: 32px;
- margin-right: 4px;
- margin-left: 4px;
-}
-.blessures-loc {
- flex-grow: 0;
- flex-basis: 96px;
- margin-right: 4px;
- margin-left: 4px;
-}
-.pointsreve-value {
- flex-grow: 0;
- flex-basis: 64px;
- margin-right: 4px;
- margin-left: 4px;
-}
+ .grid-3col {
+ grid-column: span 3 / span 3;
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ }
-.input-sante-header,
-.stress-style {
- flex-grow: 0;
- flex-basis: 64px;
- margin-right: 4px;
- margin-left: 4px;
-}
+ .grid-4col {
+ grid-column: span 4 / span 4;
+ grid-template-columns: repeat(4, minmax(0, 1fr));
+ }
-.small-label {
- margin-top: 5px;
-}
+ .grid-5col {
+ grid-column: span 5 / span 5;
+ grid-template-columns: repeat(5, minmax(0, 1fr));
+ }
-.padd-right {
- margin-right: 8px;
-}
-.padd-left {
- margin-left: 8px;
-}
+ .grid-6col {
+ grid-column: span 5 / span 5;
+ grid-template-columns: repeat(5, minmax(0, 1fr));
+ }
-.stack-left {
- align-items:center;
- flex-shrink: 1;
- flex-grow: 0;
-}
-.npc-ability-label {
- flex-grow: 2;
-}
+ .grid-7col {
+ grid-column: span 7 / span 7;
+ grid-template-columns: repeat(7, minmax(0, 1fr));
+ }
-.packed-left {
- white-space: nowrap;
- flex-grow: 0;
-}
+ .grid-8col {
+ grid-column: span 8 / span 8;
+ grid-template-columns: repeat(8, minmax(0, 1fr));
+ }
-.input-numeric-short {
- width: 40px;
- max-width: 40px;
- flex-grow: 0;
- flex-shrink: 0;
- flex-basis: 40px;
- margin-right: 0.25rem;
- margin-left: 0.25rem;
-}
+ .grid-9col {
+ grid-column: span 9 / span 9;
+ grid-template-columns: repeat(9, minmax(0, 1fr));
+ }
-.abilities-table {
- align-content: flex-start;
-}
+ .grid-10col {
+ grid-column: span 10 / span 10;
+ grid-template-columns: repeat(10, minmax(0, 1fr));
+ }
-/* ======================================== */
-.tokenhudext {
- display: flex;
- flex: 0 !important;
- font-weight: 600;
-}
-.tokenhudext.left {
- justify-content: flex-start;
- flex-direction: column;
- position: absolute;
- top: 2.75rem;
- right: 4rem;
-}
-.tokenhudext.right {
- justify-content: flex-start;
- flex-direction: column;
- position: absolute;
- top: 2.75rem;
- left: 4rem;
-}
-.control-icon.tokenhudicon {
- width: fit-content;
- height: fit-content;
- min-width: 6rem;
- flex-basis: auto;
- padding: 0;
- line-height: 1rem;
- margin: 0.25rem;
-}
-.control-icon.tokenhudicon.right {
- margin-left: 8px;
-}
-#token-hud .status-effects.active{
- z-index: 2;
-}
-/* ======================================== */
-.item-checkbox {
- height: 25px;
- border: 1px solid #736953a6;
- border-left: none;
- font-weight: 500;
- font-size: 1rem;
- color: black;
- padding-top: 5px;
- margin-right: 0px;
- width: 45px;
- position: relative;
- left: 0px;
- text-align: center;
-}
+ .grid-11col {
+ grid-column: span 11 / span 11;
+ grid-template-columns: repeat(11, minmax(0, 1fr));
+ }
+
+ .grid-12col {
+ grid-column: span 12 / span 12;
+ grid-template-columns: repeat(12, minmax(0, 1fr));
+ }
+
+ .flex-group-center,
+ .flex-group-left,
+ .flex-group-right {
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ text-align: center;
+ padding: 5px;
+ }
+
+ .flex-group-left {
+ -webkit-box-pack: start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ text-align: left;
+ }
+
+ .flex-group-right {
+ -webkit-box-pack: end;
+ -ms-flex-pack: end;
+ justify-content: flex-end;
+ text-align: right;
+ }
+
+ .flex-center {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ text-align: center;
+ }
+
+ .table-create-actor {
+ font-size: 0.8rem;
+ }
+
+ .flex-between {
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ }
+
+ .flex-shrink {
+ flex: 'flex-shrink';
+ }
+
+ /* Styles limited to foundryvtt-vadentis sheets */
+
+ .fvtt-dark-stars .sheet-header {
+ -webkit-box-flex: 0;
+ -ms-flex: 0 0 210px;
+ flex: 0 0 210px;
+ overflow: hidden;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-box-pack: start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ margin-bottom: 10px;
+ }
+
+ .fvtt-dark-stars .sheet-header .profile-img {
+ -webkit-box-flex: 0;
+ -ms-flex: 0 0 96px;
+ flex: 0 0 96px;
+ width: 96px;
+ height: auto;
+ max-height: 96px;
+ margin-top: 0px;
+ margin-right: 10px;
+ object-fit: cover;
+ border-width: 0px;
+ object-position: 50% 0;
+ }
+
+ .button-img {
+ vertical-align: baseline;
+ width: 8%;
+ height: 8%;
+ max-height: 48px;
+ border-width: 0;
+ border: 1px solid rgba(0, 0, 0, 0);
+ }
+
+ .button-img:hover {
+ color: rgba(255, 255, 128, 0.7);
+ border: 1px solid rgba(255, 128, 0, 0.8);
+ cursor: pointer;
+ }
+
+ .button-effect-img {
+ vertical-align: baseline;
+ width: 16px;
+ max-height: 16px;
+ height: 16;
+ border-width: 0;
+ }
+
+ .small-button-container {
+ height: 16px;
+ width: 16px;
+ border: 0;
+ vertical-align: bottom;
+ }
+
+ .fvtt-dark-stars .sheet-header .header-fields {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ }
+
+ .fvtt-dark-stars .sheet-header h1.charname {
+ height: 50px;
+ padding: 0px;
+ margin: 5px 0;
+ border-bottom: 0;
+ }
+
+ .fvtt-dark-stars .sheet-header h1.charname input {
+ width: 100%;
+ height: 100%;
+ margin: 0;
+ }
+
+ .fvtt-dark-stars .sheet-tabs {
+ -webkit-box-flex: 0;
+ -ms-flex: 0;
+ flex: 0;
+ }
+
+ .fvtt-dark-stars .sheet-body,
+ .fvtt-dark-stars .sheet-body .tab,
+ .fvtt-dark-stars .sheet-body .tab .editor {
+ height: 100%;
+ font-size: 0.8rem;
+ }
+
+ .editor {
+ border: 2;
+ height: 300px;
+ padding: 0 3px;
+ }
+
+ .medium-editor {
+ border: 2;
+ height: 240px;
+ padding: 0 3px;
+ }
+
+ .small-editor {
+ border: 2;
+ height: 120px;
+ padding: 0 3px;
+ }
+
+ .fvtt-dark-stars .tox .tox-editor-container {
+ background: #fff;
+ }
+
+ .fvtt-dark-stars .tox .tox-edit-area {
+ padding: 0 8px;
+ }
+
+ .fvtt-dark-stars .resource-label {
+ font-weight: bold;
+ text-transform: uppercase;
+ }
+
+ .fvtt-dark-stars .tabs {
+ height: 40px;
+ border-top: 1px solid #AAA;
+ border-bottom: 1px solid #AAA;
+ color: #000000;
+ }
+
+ .fvtt-dark-stars .tabs .item {
+ line-height: 40px;
+ font-weight: bold;
+ }
+
+ .fvtt-dark-stars .tabs .item.active {
+ text-decoration: underline;
+ text-shadow: none;
+ }
+
+ .fvtt-dark-stars .items-list {
+ list-style: none;
+ margin: 1px 0;
+ padding: 0;
+ overflow-y: auto;
+ }
+
+ .fvtt-dark-stars .items-list .item-header {
+ font-weight: bold;
+ }
+
+ .fvtt-dark-stars .items-list .item {
+ height: 30px;
+ line-height: 24px;
+ padding: 1px 0;
+ border-bottom: 1px solid #BBB;
+ }
+
+ .fvtt-dark-stars .items-list .item .item-image {
+ -webkit-box-flex: 0;
+ -ms-flex: 0 0 24px;
+ flex: 0 0 24px;
+ margin-right: 5px;
+ }
+
+ .fvtt-dark-stars .items-list .item img {
+ display: block;
+ }
+
+ .fvtt-dark-stars .items-list .item-name {
+ margin: 0;
+ }
+
+ .fvtt-dark-stars .items-list .item-controls {
+ -webkit-box-flex: 0;
+ -ms-flex: 0 0 86px;
+ flex: 0 0 86px;
+ text-align: right;
+ }
-.flex-actions-bar {
- flex-grow: 2;
-}
+ /* ======================================== */
+ /* Sheet */
+ .window-app.sheet .window-content .sheet-header {
+ background: url("../images/ui/pc_sheet_bg.webp")
+ }
-/* ======================================== */
-/* Sidebar CSS */
-#sidebar {
- font-size: 1rem;
- background-position: 100%;
- color: rgba(220,220,220,0.75);
-}
+ /* background: #011d33 url("../images/ui/fond1.webp") repeat left top;*/
+ /*color: rgba(168, 139, 139, 0.5);*/
-/* background: rgb(105,85,65) url("../images/ui/texture_feuille_perso_onglets.webp") no-repeat right bottom;*/
+ .window-app.sheet .window-content .sheet-header input[type="text"],
+ .window-app.sheet .window-content .sheet-header input[type="number"],
+ .window-app.sheet .window-content .sheet-header input[type="password"],
+ .window-app.sheet .window-content .sheet-header input[type="date"],
+ .window-app.sheet .window-content .sheet-header input[type="time"] {
+ color: rgba(228, 240, 240, 0.75);
+ background: rgba(66, 66, 64, 0.95);
+ border: 1 none;
+ margin-bottom: 0.25rem;
+ margin-left: 2px;
+ }
-#sidebar.collapsed {
- height: 470px !important;
-}
+ .window-app.sheet .window-content .sheet-body input[type="text"],
+ .window-app.sheet .window-content .sheet-body input[type="number"],
+ .window-app.sheet .window-content .sheet-body input[type="password"],
+ .window-app.sheet .window-content .sheet-body input[type="date"],
+ .window-app.sheet .window-content .sheet-body input[type="time"] {
+ color: rgba(228, 240, 240, 0.75);
+ background: rgba(66, 66, 64, 0.95);
+ border: 1 none;
+ margin-bottom: 0.25rem;
+ margin-left: 2px;
+ }
-#sidebar-tabs > .collapsed, #chat-controls .chat-control-icon {
- color: rgba(220,220,220,0.75);
- text-shadow: 1px 1px 0 rgba(0,0,0,0.75);
-}
+ .window-app.sheet .window-content .sheet-body select,
+ .window-app.sheet .window-content .sheet-header select {
+ color: rgba(228, 240, 240, 0.75);
+ background: rgba(66, 66, 64, 0.95);
+ border: 1 none;
+ margin-bottom: 0.25rem;
+ margin-left: 2px;
+ }
-.sidebar-tab .directory-list .entity {
- border-top: 1px dashed rgba(0,0,0,0.25);
+ .window-app .window-content,
+ .window-app.sheet .window-content .sheet-body {
+ font-size: 0.8rem;
+ background: url("../images/ui/pc_sheet_bg.webp") repeat left top;
+ color: rgba(228, 240, 240, 0.75);
+ background: rgba(66, 66, 64, 0.95);
+ }
+
+ /* background: rgba(245,245,240,0.6) url("../images/ui/sheet_background.webp") left top;*/
+
+ section.sheet-body {
+ padding: 0.25rem 0.5rem;
+ }
+
+ .sheet header.sheet-header .profile-img {
+ object-fit: cover;
+ object-position: 50% 0;
+ margin: 0.5rem 0 0.5rem 0.5rem;
+ padding: 0;
+ }
+
+ .sheet nav.sheet-tabs {
+ font-size: 0.70rem;
+ font-weight: bold;
+ height: 3rem;
+ flex: 0 0 3rem;
+ margin: 0;
+ padding: 0 0 0 0.25rem;
+ text-align: center;
+ text-transform: uppercase;
+ line-height: 1.5rem;
+ border-top: 0 none;
border-bottom: 0 none;
- padding: 0.25rem 0;
-}
+ background-color: black;
+ color: beige;
+ }
-.sidebar-tab .directory-list .entity:hover {
- background: rgba(0,0,0,0.05);
- cursor: pointer;
-}
-.chat-message-header {
- background: rgba(220,220,210,0.5);
- font-size: 1.1rem;
- height: 48px;
- text-align: center;
- vertical-align: middle;
- display: flex;
- align-items: center;
-}
+ /* background: rgb(245,245,240) url("../images/ui/fond4.webp") repeat left top;*/
-.chat-message .message-header .flavor-text, .chat-message .message-header .whisper-to {
- font-size: 0.9rem;
-}
-.chat-actor-name {
- padding: 4px;
-}
+ nav.sheet-tabs .item {
+ position: relative;
+ padding: 0 0.25rem;
+ }
-.chat-img {
- width: 64px;
- height: 64px;
-}
+ nav.sheet-tabs .item:after {
+ content: "";
+ position: absolute;
+ top: 0;
+ right: 0;
+ height: 2rem;
+ width: 1px;
+ border-right: 1px dashed rgba(52, 52, 52, 0.25);
+ }
-.roll-dialog-header {
- height: 52px;
-}
+ .sheet .tab[data-tab] {
+ padding: 0;
+ }
-.actor-icon {
- float: left;
- width: 48px;
- height: 48px;
- padding: 2px 6px 2px 2px;
-}
+ section.sheet-body:after {
+ content: "";
+ display: block;
+ clear: both;
+ }
-.padding-dice {
- padding-top: .2rem;
- padding-bottom: .2rem;
-}
+ .sheet header.sheet-header .flex-compteurs {
+ text-align: right;
+ }
-.dice-image {
- box-sizing: border-box;
- border: none;
- border-radius: 0;
- max-width: 100%;
-}
+ .sheet header.sheet-header .resource-content {
+ width: 2rem;
+ }
-.dice-image-reroll {
- background-color:rgba(115, 224, 115, 0.25);
- border-color: #011d33;
- box-sizing: border-box;
- border: 1px;
- border-radius: 0%;
- max-width: 100%;
-}
+ .select-diff {
+ display: inline-block;
+ text-align: left;
+ width: 50px;
+ }
-.chat-dice {
- width: 15%;
- height: 15%;
- font-size: 15px;
- padding: 10px;
- padding-bottom: 20px;
- padding-top: .2rem;
- padding-bottom: .2rem;
-}
+ .window-app.sheet .window-content .tooltip:hover .tooltiptext {
+ top: 2rem;
+ left: 2rem;
+ margin: 0;
+ padding: 0.25rem;
+ }
-.div-river-full {
- height: 5rem;
- align-items: flex-start;
-}
+ .window-app.sheet .window-content .carac-value,
+ .window-app.sheet .window-content .competence-xp {
+ margin: 0.05rem;
+ flex-basis: 3rem;
+ text-align: center;
+ }
-.div-river {
- align-content: center;
- margin-left: 8px;
- align-content:space-around;
- justify-content: space-around;
-}
+ /* ======================================== */
+ /* Global UI elements */
-.div-center {
- align-self: center;
-}
+ /* ======================================== */
-.chat-message {
- background: rgba(220,220,210,0.5);
- font-size: 0.9rem;
-}
+ h1,
+ h2,
+ h3,
+ h4 {
+ font-weight: bold;
+ }
-.chat-message.whisper {
- background: rgba(220,220,210,0.75);
- border: 2px solid #545469;
-}
+ ul,
+ ol {
+ margin: 0;
+ padding: 0;
+ }
-.chat-message .chat-icon {
- border: 0;
- padding: 2px 6px 2px 2px;
- float: left;
- width: 64px;
- height: 64px;
-}
+ ul,
+ li {
+ list-style-type: none;
+ }
-.ability-icon {
- border: 0;
- padding: 2px 2px 2px 2px;
- max-width:32px;
- max-height:32px;
- width: auto;
- height: auto;
-}
-.small-ability-icon {
- border: 0;
- padding: 2px 2px 2px 2px;
- max-width:16px;
- max-height:16px;
- width: auto;
- height: auto;
-}
-.combat-icon {
- border: 0;
- padding: 2px 2px 2px 2px;
- max-width:24px;
- max-height:24px;
- width: auto;
- height: auto;
-}
+ .sheet li {
+ margin: 0.010rem;
+ padding: 0.25rem;
+ }
-#sidebar-tabs {
- flex: 0 0 32px;
- box-sizing: border-box;
- margin: 0 0 5px;
- border-bottom: 1px solid rgba(0,0,0,0);
- box-shadow: inset 0 0 2rem rgba(0,0,0,0.5);
-}
+ .header-fields li {
+ margin: 0;
+ padding: 0;
+ }
-#sidebar-tabs > .item.active {
- border: 1px solid rgba(114,98,72,1);
- background: rgba(30, 25, 20, 0.75);
- box-shadow: 0 0 6px inset rgba(114,98,72,1);
-}
+ .alterne-list>.list-item:hover {
+ background: rgba(100, 100, 50, 0.25);
+ }
-#sidebar #sidebar-tabs i{
- display: inline-block;
- background-position:center;
- background-size:cover;
- text-shadow: 1px 1px 0 rgba(0,0,0,0.75);
+ .alterne-list>.list-item:nth-child(even) {
+ background: rgba(80, 60, 0, 0.10);
+ }
-}
+ .alterne-list>.list-item:nth-child(odd) {
+ background: rgb(160, 130, 100, 0.05);
+ }
-/*--------------------------------------------------------------------------*/
-/* Control, Tool, hotbar & navigation */
+ .specialisation-label {
+ font-size: 0.8rem;
+ }
-#controls .scene-control, #controls .control-tool {
- box-shadow: 0 0 3px #000;
- margin: 0 0 8px;
- border-radius: 0;
- background: rgba(30, 25, 20, 1);
- background-origin: padding-box;
- border-image: url(img/ui/footer-button.png) 10 repeat;
- border-image-width: 4px;
- border-image-outset: 0px;
-}
+ .carac-label,
+ .attr-label {
+ font-weight: bold;
+ }
-#controls .scene-control.active, #controls .control-tool.active, #controls .scene-control:hover, #controls .control-tool:hover {
- background: rgba(72, 46, 28, 1);
- background-origin: padding-box;
- border-image: url(img/ui/footer-button.png) 10 repeat;
- border-image-width: 4px;
- border-image-outset: 0px;
- box-shadow: 0 0 3px #ff6400;
-}
+ .list-item {
+ margin: 0.125rem;
+ box-shadow: inset 0px 0px 1px #00000096;
+ border-radius: 0.25rem;
+ padding: 0.125rem;
+ flex: 1 1 5rem;
+ display: flex !important;
+ }
-#hotbar #action-bar #macro-list {
- border: 1px solid rgba(72, 46, 28, 1);
- box-shadow: 2px 2px 5px #000000;
-}
+ .list-item-shadow {
+ background: rgba(87, 60, 32, 0.35);
+ /*flex-grow: 0;*/
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ }
-#hotbar #action-bar .macro {
- border-image: url(img/ui/bg_control.jpg) 21 repeat;
- border-image-slice: 6 6 6 6 fill;
- border-image-width: 6px 6px 6px 6px;
- border-image-outset: 0px 0px 0px 0px;
- border-radius: 0px;
-}
+ .list-item-shadow2 {
+ background: rgba(87, 60, 32, 0.25);
+ flex-grow: 0;
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ }
-#hotbar .bar-controls {
- background: rgba(30, 25, 20, 1);
- border: 1px solid rgba(72, 46, 28, 1);
-}
+ .item-display-show {
+ display: block;
+ }
-#players {
- border-image: url(img/ui/footer-button.png) 10 repeat;
- border-image-width: 4px;
- border-image-outset: 0px;
- background: rgba(30, 25, 20, 1);
-}
+ .item-display-hide {
+ display: none;
+ }
-#navigation #scene-list .scene.nav-item.active {
- background: rgba(72, 46, 28, 1);
-}
+ .conteneur-type {
+ background: rgb(200, 10, 100, 0.25);
+ }
-#navigation #scene-list .scene.nav-item {
- background: rgba(30, 25, 20, 1);
- background-origin: padding-box;
- border-image: url(img/ui/footer-button.png) 10 repeat;
- border-image-width: 4px;
- border-image-outset: 0px;
-}
+ .item-quantite {
+ margin-left: 0.5rem;
+ }
-#navigation #scene-list .scene.view, #navigation #scene-list .scene.context {
- background: rgba(72, 46, 28, 1);
- background-origin: padding-box;
- border-image: url(img/ui/footer-button.png) 10 repeat;
- border-image-width: 4px;
- border-image-outset: 0px;
- box-shadow: 0 0 3px #ff6400;
-}
+ .list-item-margin1 {
+ margin-left: 1rem;
+ }
-#navigation #nav-toggle {
- background: rgba(30, 25, 20, 1);
- background-origin: padding-box;
- border-image: url(img/ui/footer-button.png) 10 repeat;
- border-image-width: 4px;
- border-image-outset: 0px;
-}
+ .list-item-margin2 {
+ margin-left: 2rem;
+ }
-/* Tooltip container */
-.tooltip {
- position: relative;
- display: inline-block;
- /*border-bottom: 1px dotted black; /* If you want dots under the hoverable text */
-}
+ .list-item-margin3 {
+ margin-left: 3rem;
+ }
-/* Tooltip text */
-.tooltip .tooltiptext {
- text-align: left;
- background: rgba(231, 229, 226, 0.9);
- width: 150px;
- padding: 3px 0;
- font-size: 0.9rem;
+ .list-item-margin4 {
+ margin-left: 4rem;
+ }
- /* Position the tooltip text */
- top: 1px;
- position: absolute;
- z-index: 1;
-
- /* Fade in tooltip */
- visibility: hidden;
- opacity: 0;
- transition: opacity 0.3s;
-}
+ .sheet-competence-img {
+ width: 24px;
+ max-width: 24px;
+ height: 24px;
+ max-height: 24px;
+ flex-grow: 0;
+ margin-right: 0.25rem;
+ }
-.tooltip .ttt-fatigue{
- width: 360px;
-
- background: rgba(30, 25, 20, 0.9);
- border-image: url(img/ui/bg_control.jpg) 21 repeat;
- border-image-slice: 6 6 6 6 fill;
- border-image-width: 6px 6px 6px 6px;
- border-image-outset: 0px 0px 0px 0px;
- border-radius: 0px;
+ .competence-column {
+ flex-direction: column;
+ align-content: flex-start;
+ justify-content: flex-start;
+ flex-grow: 0;
+ flex-basis: 1;
+ }
- font-size: 0.8rem;
- padding: 3px 0;
-}
+ .competence-header {
+ align-content: flex-start;
+ justify-content: flex-start;
+ font-weight: bold;
+ flex-grow: 0;
+ }
-.tooltip .ttt-ajustements {
- width: 150px;
- background: rgba(220,220,210,0.95);
- border-radius: 6px;
- font-size: 0.9rem;
- padding: 3px 0;
-}
+ .secondaire-label,
+ .arme-label,
+ .generic-label,
+ .competence-label,
+ .devotion-label,
+ .sort-label,
+ .technique-label,
+ .ability-label,
+ .arme-label,
+ .armure-label,
+ .equipement-label,
+ .description-label {
+ flex-grow: 2;
+ margin-left: 4px;
+ }
-.tooltip-nobottom {
- border-bottom: unset; /* If you want dots under the hoverable text */
-}
-.tooltip .ttt-xp {
- width: 250px;
- background: rgba(220,220,210,0.95);
- border-radius: 6px;
- font-size: 0.9rem;
- padding: 3px 0;
-}
+ .status-header-label {
+ margin-left: 2px;
+ }
-/* Show the tooltip text when you mouse over the tooltip container */
-.tooltip:hover .tooltiptext {
- visibility: visible;
- opacity: 1;
-}
+ .roll-dialog-label {
+ margin: 4px 0;
+ min-width: 96px;
+ }
-.chat-card-button {
- box-shadow: inset 0px 1px 0px 0px #a6827e;
- background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%);
- background-color: #7d5d3b00;
- border-radius: 3px;
- border: 2px ridge #846109;
- display: inline-block;
- cursor: pointer;
- color: #ffffff;
- font-size: 0.8rem;
- padding: 4px 12px 0px 12px;
- text-decoration: none;
- text-shadow: 0px 1px 0px #4d3534;
- position: relative;
- margin:2px;
-}
+ .short-label {
+ flex-grow: 1;
+ }
-.chat-card-button:hover {
- background: linear-gradient(to bottom, #800000 5%, #3e0101 100%);
- background-color: red;
-}
-.chat-card-button:active {
- position:relative;
- top:1px;
-}
+ .keyword-label {
+ font-size: 0.85rem;
+ }
-.plus-minus-button {
- box-shadow: inset 0px 1px 0px 0px #a6827e;
- background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%);
- background-color: #7d5d3b00;
- border-radius: 2px;
- border: 1px ridge #846109;
- display: inline-block;
- cursor: pointer;
- color: #ffffff;
- margin: 2px 2px 2px 2px;
- padding: 2px 2px 2px 2px;
- text-decoration: none;
- text-shadow: 0px 1px 0px #4d3534;
- position: relative;
- margin:0px;
-}
+ .item-sheet-label {
+ flex-grow: 1;
+ }
-.river-button:hover,
-.plus-minus-button:hover,
-.chat-card-button:hover {
- background: linear-gradient(to bottom, #800000 5%, #3e0101 100%);
- background-color: red;
-}
+ .item-text-long-line {
+ flex-grow: 3;
+ }
-.plus-minus-button:active,
-.chat-card-button:active {
- position:relative;
- top:1px;
-}
+ .score-label {
+ flex-grow: 2;
+ align-content: center;
+ }
-.plus-minus {
- font-size: 0.9rem;
- font-weight: bold;
-}
+ .attribut-value,
+ .carac-value {
+ flex-grow: 0;
+ flex-basis: 64px;
+ margin-right: 4px;
+ margin-left: 4px;
+ }
-.ul-level1 {
- padding-left: 2rem;
-}
+ .sante-value,
+ .competence-value {
+ flex-grow: 0;
+ flex-basis: 2rem;
+ margin-right: 0.25rem;
+ margin-left: 0.25rem;
+ }
-.drop-equipment-effect,
-.drop-power-effect,
-.drop-perk-effect,
-.drop-ability-effect,
-.drop-effect-specaffected,
-.drop-effect-spec,
-.drop-ability-weapon,
-.drop-ability-armor,
-.drop-race-perk,
-.drop-spec-perk,
-.drop-ability-power,
-.drop-ability-spec,
-.drop-spec-power,
-.drop-specialability,
-.drop-abilities,
-.drop-optionnal-abilities,
-.drop-virtue-vice-effect,
-.drop-virtue-vice,
-.drop-vice-virtue,
-.drop-specialperk1,
-.drop-perk2,
-.drop-spec1 ,
-.drop-spec2 {
- background: linear-gradient(to bottom, #6c95b9fc 5%, #105177ab 100%);
- background-color: #7d5d3b00;
- border-radius: 3px;
- border: 2px ridge #846109;
-}
+ .description-value {
+ flex-grow: 0;
+ flex-basis: 4rem;
+ margin-right: 0.25rem;
+ margin-left: 0.25rem;
+ }
-/*************************************************************/
-#pause
-{
- font-size: 2rem;
-}
-#pause > h3
-{
- color: #CCC
-}
-#pause > img {
- content: url(../images/ui/crucible_pause_logo.jpg);
- height: 160px;
- width: 160px;
- top: -80px;
- left: calc(50% - 132px);
-}
+ .competence-xp {
+ flex-grow: 0;
+ flex-basis: 2rem;
+ margin-right: 0.25rem;
+ margin-left: 0.25rem;
+ }
-#logo {
- content : url(../images/ui/crucible_game_logo.png);
- width: 100px;
- height: 60px;
-}
+ .blessures-title {
+ font-weight: bold;
+ }
-.dice-cell {
- padding-left: 12px;
- padding-right: 12px;
- width: 60px;
- text-align: center;
-}
+ .alchimie-title {
+ font-weight: bold;
+ }
-.dice-formula,
-.dice-total {
- height: 54px;
- position:relative;
-}
+ .blessure-data {
+ flex-direction: row;
+ align-content: flex-start;
+ justify-content: flex-start;
+ }
-/* =================== 1. ACTOR SHEET FONT STYLES =========== *//*
+ .blessures-soins {
+ flex-grow: 0;
+ flex-basis: 32px;
+ margin-right: 4px;
+ margin-left: 4px;
+ }
+
+ .blessures-loc {
+ flex-grow: 0;
+ flex-basis: 96px;
+ margin-right: 4px;
+ margin-left: 4px;
+ }
+
+ .pointsreve-value {
+ flex-grow: 0;
+ flex-basis: 64px;
+ margin-right: 4px;
+ margin-left: 4px;
+ }
+
+ .input-sante-header,
+ .stress-style {
+ flex-grow: 0;
+ flex-basis: 64px;
+ margin-right: 4px;
+ margin-left: 4px;
+ }
+
+ .small-label {
+ margin-top: 5px;
+ }
+
+ .padd-right {
+ margin-right: 8px;
+ }
+
+ .padd-left {
+ margin-left: 8px;
+ }
+
+ .stack-left {
+ align-items: center;
+ flex-shrink: 1;
+ flex-grow: 0;
+ }
+
+ .npc-ability-label {
+ flex-grow: 2;
+ }
+
+ .packed-left {
+ white-space: nowrap;
+ flex-grow: 0;
+ }
+
+ .input-numeric-short {
+ width: 40px;
+ max-width: 40px;
+ flex-grow: 0;
+ flex-shrink: 0;
+ flex-basis: 40px;
+ margin-right: 0.25rem;
+ margin-left: 0.25rem;
+ }
+
+ .abilities-table {
+ align-content: flex-start;
+ }
+
+ /* ======================================== */
+ .tokenhudext {
+ display: flex;
+ flex: 0 !important;
+ font-weight: 600;
+ }
+
+ .tokenhudext.left {
+ justify-content: flex-start;
+ flex-direction: column;
+ position: absolute;
+ top: 2.75rem;
+ right: 4rem;
+ }
+
+ .tokenhudext.right {
+ justify-content: flex-start;
+ flex-direction: column;
+ position: absolute;
+ top: 2.75rem;
+ left: 4rem;
+ }
+
+ .control-icon.tokenhudicon {
+ width: fit-content;
+ height: fit-content;
+ min-width: 6rem;
+ flex-basis: auto;
+ padding: 0;
+ line-height: 1rem;
+ margin: 0.25rem;
+ }
+
+ .control-icon.tokenhudicon.right {
+ margin-left: 8px;
+ }
+
+ #token-hud .status-effects.active {
+ z-index: 2;
+ }
+
+ /* ======================================== */
+ .item-checkbox {
+ height: 25px;
+ border: 1px solid #736953a6;
+ border-left: none;
+ font-weight: 500;
+ font-size: 1rem;
+ color: black;
+ padding-top: 5px;
+ margin-right: 0px;
+ width: 45px;
+ position: relative;
+ left: 0px;
+ text-align: center;
+ }
+
+
+ .flex-actions-bar {
+ flex-grow: 2;
+ }
+
+ /* ======================================== */
+ /* Sidebar CSS */
+ #sidebar {
+ font-size: 1rem;
+ background-position: 100%;
+ color: rgba(220, 220, 220, 0.75);
+ }
+
+ /* background: rgb(105,85,65) url("../images/ui/texture_feuille_perso_onglets.webp") no-repeat right bottom;*/
+
+ #sidebar.collapsed {
+ height: 470px !important;
+ }
+
+ #sidebar-tabs>.collapsed,
+ #chat-controls .chat-control-icon {
+ color: rgba(220, 220, 220, 0.75);
+ text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.75);
+ }
+
+ .sidebar-tab .directory-list .entity {
+ border-top: 1px dashed rgba(0, 0, 0, 0.25);
+ border-bottom: 0 none;
+ padding: 0.25rem 0;
+ }
+
+ .sidebar-tab .directory-list .entity:hover {
+ background: rgba(0, 0, 0, 0.05);
+ cursor: pointer;
+ }
+
+ .chat-message-header {
+ background: rgba(220, 220, 210, 0.5);
+ font-size: 1.1rem;
+ height: 48px;
+ text-align: center;
+ vertical-align: middle;
+ display: flex;
+ align-items: center;
+ }
+
+ .chat-message .message-header .flavor-text,
+ .chat-message .message-header .whisper-to {
+ font-size: 0.9rem;
+ }
+
+ .chat-actor-name {
+ padding: 4px;
+ }
+
+ .chat-img {
+ width: 64px;
+ height: 64px;
+ }
+
+ .roll-dialog-header {
+ height: 52px;
+ }
+
+ .actor-icon {
+ float: left;
+ width: 48px;
+ height: 48px;
+ padding: 2px 6px 2px 2px;
+ }
+
+ .padding-dice {
+ padding-top: .2rem;
+ padding-bottom: .2rem;
+ }
+
+ .dice-image {
+ box-sizing: border-box;
+ border: none;
+ border-radius: 0;
+ max-width: 100%;
+ }
+
+ .dice-image-reroll {
+ background-color: rgba(115, 224, 115, 0.25);
+ border-color: #011d33;
+ box-sizing: border-box;
+ border: 1px;
+ border-radius: 0%;
+ max-width: 100%;
+ }
+
+ .chat-dice {
+ width: 15%;
+ height: 15%;
+ font-size: 15px;
+ padding: 10px;
+ padding-bottom: 20px;
+ padding-top: .2rem;
+ padding-bottom: .2rem;
+ }
+
+ .div-river-full {
+ height: 5rem;
+ align-items: flex-start;
+ }
+
+ .div-river {
+ align-content: center;
+ margin-left: 8px;
+ align-content: space-around;
+ justify-content: space-around;
+ }
+
+ .div-center {
+ align-self: center;
+ }
+
+ .chat-message {
+ background: rgba(220, 220, 210, 0.5);
+ font-size: 0.9rem;
+ }
+
+ .chat-message.whisper {
+ background: rgba(220, 220, 210, 0.75);
+ border: 2px solid #545469;
+ }
+
+ .chat-message .chat-icon {
+ border: 0;
+ padding: 2px 6px 2px 2px;
+ float: left;
+ width: 64px;
+ height: 64px;
+ }
+
+ .ability-icon {
+ border: 0;
+ padding: 2px 2px 2px 2px;
+ max-width: 32px;
+ max-height: 32px;
+ width: auto;
+ height: auto;
+ }
+
+ .small-ability-icon {
+ border: 0;
+ padding: 2px 2px 2px 2px;
+ max-width: 16px;
+ max-height: 16px;
+ width: auto;
+ height: auto;
+ }
+
+ .combat-icon {
+ border: 0;
+ padding: 2px 2px 2px 2px;
+ max-width: 24px;
+ max-height: 24px;
+ width: auto;
+ height: auto;
+ }
+
+ #sidebar-tabs {
+ flex: 0 0 32px;
+ box-sizing: border-box;
+ margin: 0 0 5px;
+ border-bottom: 1px solid rgba(0, 0, 0, 0);
+ box-shadow: inset 0 0 2rem rgba(0, 0, 0, 0.5);
+ }
+
+ #sidebar-tabs>.item.active {
+ border: 1px solid rgba(114, 98, 72, 1);
+ background: rgba(30, 25, 20, 0.75);
+ box-shadow: 0 0 6px inset rgba(114, 98, 72, 1);
+ }
+
+ #sidebar #sidebar-tabs i {
+ display: inline-block;
+ background-position: center;
+ background-size: cover;
+ text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.75);
+
+ }
+
+ /*--------------------------------------------------------------------------*/
+ /* Control, Tool, hotbar & navigation */
+
+ #controls .scene-control,
+ #controls .control-tool {
+ box-shadow: 0 0 3px #000;
+ margin: 0 0 8px;
+ border-radius: 0;
+ background: rgba(30, 25, 20, 1);
+ background-origin: padding-box;
+ border-image: url(img/ui/footer-button.png) 10 repeat;
+ border-image-width: 4px;
+ border-image-outset: 0px;
+ }
+
+ #controls .scene-control.active,
+ #controls .control-tool.active,
+ #controls .scene-control:hover,
+ #controls .control-tool:hover {
+ background: rgba(72, 46, 28, 1);
+ background-origin: padding-box;
+ border-image: url(img/ui/footer-button.png) 10 repeat;
+ border-image-width: 4px;
+ border-image-outset: 0px;
+ box-shadow: 0 0 3px #ff6400;
+ }
+
+ #hotbar #action-bar #macro-list {
+ border: 1px solid rgba(72, 46, 28, 1);
+ box-shadow: 2px 2px 5px #000000;
+ }
+
+ #hotbar #action-bar .macro {
+ border-image: url(img/ui/bg_control.jpg) 21 repeat;
+ border-image-slice: 6 6 6 6 fill;
+ border-image-width: 6px 6px 6px 6px;
+ border-image-outset: 0px 0px 0px 0px;
+ border-radius: 0px;
+ }
+
+ #hotbar .bar-controls {
+ background: rgba(30, 25, 20, 1);
+ border: 1px solid rgba(72, 46, 28, 1);
+ }
+
+ #players {
+ border-image: url(img/ui/footer-button.png) 10 repeat;
+ border-image-width: 4px;
+ border-image-outset: 0px;
+ background: rgba(30, 25, 20, 1);
+ }
+
+ #navigation #scene-list .scene.nav-item.active {
+ background: rgba(72, 46, 28, 1);
+ }
+
+ #navigation #scene-list .scene.nav-item {
+ background: rgba(30, 25, 20, 1);
+ background-origin: padding-box;
+ border-image: url(img/ui/footer-button.png) 10 repeat;
+ border-image-width: 4px;
+ border-image-outset: 0px;
+ }
+
+ #navigation #scene-list .scene.view,
+ #navigation #scene-list .scene.context {
+ background: rgba(72, 46, 28, 1);
+ background-origin: padding-box;
+ border-image: url(img/ui/footer-button.png) 10 repeat;
+ border-image-width: 4px;
+ border-image-outset: 0px;
+ box-shadow: 0 0 3px #ff6400;
+ }
+
+ #navigation #nav-toggle {
+ background: rgba(30, 25, 20, 1);
+ background-origin: padding-box;
+ border-image: url(img/ui/footer-button.png) 10 repeat;
+ border-image-width: 4px;
+ border-image-outset: 0px;
+ }
+
+ /* Tooltip container */
+ .tooltip {
+ position: relative;
+ display: inline-block;
+ /*border-bottom: 1px dotted black; /* If you want dots under the hoverable text */
+ }
+
+ /* Tooltip text */
+ .tooltip .tooltiptext {
+ text-align: left;
+ background: rgba(231, 229, 226, 0.9);
+ width: 150px;
+ padding: 3px 0;
+ font-size: 0.9rem;
+
+ /* Position the tooltip text */
+ top: 1px;
+ position: absolute;
+ z-index: 1;
+
+ /* Fade in tooltip */
+ visibility: hidden;
+ opacity: 0;
+ transition: opacity 0.3s;
+ }
+
+ .tooltip .ttt-fatigue {
+ width: 360px;
+
+ background: rgba(30, 25, 20, 0.9);
+ border-image: url(img/ui/bg_control.jpg) 21 repeat;
+ border-image-slice: 6 6 6 6 fill;
+ border-image-width: 6px 6px 6px 6px;
+ border-image-outset: 0px 0px 0px 0px;
+ border-radius: 0px;
+
+ font-size: 0.8rem;
+ padding: 3px 0;
+ }
+
+ .tooltip .ttt-ajustements {
+ width: 150px;
+ background: rgba(220, 220, 210, 0.95);
+ border-radius: 6px;
+ font-size: 0.9rem;
+ padding: 3px 0;
+ }
+
+ .tooltip-nobottom {
+ border-bottom: unset;
+ /* If you want dots under the hoverable text */
+ }
+
+ .tooltip .ttt-xp {
+ width: 250px;
+ background: rgba(220, 220, 210, 0.95);
+ border-radius: 6px;
+ font-size: 0.9rem;
+ padding: 3px 0;
+ }
+
+ /* Show the tooltip text when you mouse over the tooltip container */
+ .tooltip:hover .tooltiptext {
+ visibility: visible;
+ opacity: 1;
+ }
+
+ .chat-card-button {
+ box-shadow: inset 0px 1px 0px 0px #a6827e;
+ background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%);
+ background-color: #7d5d3b00;
+ border-radius: 3px;
+ border: 2px ridge #846109;
+ display: inline-block;
+ cursor: pointer;
+ color: #ffffff;
+ font-size: 0.8rem;
+ padding: 4px 12px 0px 12px;
+ text-decoration: none;
+ text-shadow: 0px 1px 0px #4d3534;
+ position: relative;
+ margin: 2px;
+ }
+
+ .chat-card-button:hover {
+ background: linear-gradient(to bottom, #800000 5%, #3e0101 100%);
+ background-color: red;
+ }
+
+ .chat-card-button:active {
+ position: relative;
+ top: 1px;
+ }
+
+ .plus-minus-button {
+ box-shadow: inset 0px 1px 0px 0px #a6827e;
+ background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%);
+ background-color: #7d5d3b00;
+ border-radius: 2px;
+ border: 1px ridge #846109;
+ display: inline-block;
+ cursor: pointer;
+ color: #ffffff;
+ margin: 2px 2px 2px 2px;
+ padding: 2px 2px 2px 2px;
+ text-decoration: none;
+ text-shadow: 0px 1px 0px #4d3534;
+ position: relative;
+ margin: 0px;
+ }
+
+ .river-button:hover,
+ .plus-minus-button:hover,
+ .chat-card-button:hover {
+ background: linear-gradient(to bottom, #800000 5%, #3e0101 100%);
+ background-color: red;
+ }
+
+ .plus-minus-button:active,
+ .chat-card-button:active {
+ position: relative;
+ top: 1px;
+ }
+
+ .plus-minus {
+ font-size: 0.9rem;
+ font-weight: bold;
+ }
+
+ .ul-level1 {
+ padding-left: 2rem;
+ }
+
+ .drop-equipment-effect,
+ .drop-power-effect,
+ .drop-perk-effect,
+ .drop-ability-effect,
+ .drop-effect-specaffected,
+ .drop-effect-spec,
+ .drop-ability-weapon,
+ .drop-ability-armor,
+ .drop-race-perk,
+ .drop-spec-perk,
+ .drop-ability-power,
+ .drop-ability-spec,
+ .drop-spec-power,
+ .drop-specialability,
+ .drop-abilities,
+ .drop-optionnal-abilities,
+ .drop-virtue-vice-effect,
+ .drop-virtue-vice,
+ .drop-vice-virtue,
+ .drop-specialperk1,
+ .drop-perk2,
+ .drop-spec1,
+ .drop-spec2 {
+ background: linear-gradient(to bottom, #6c95b9fc 5%, #105177ab 100%);
+ background-color: #7d5d3b00;
+ border-radius: 3px;
+ border: 2px ridge #846109;
+ }
+
+ /*************************************************************/
+ #pause {
+ font-size: 2rem;
+ }
+
+ #pause>h3 {
+ color: #CCC
+ }
+
+ #pause>img {
+ content: url(../images/ui/crucible_pause_logo.jpg);
+ height: 160px;
+ width: 160px;
+ top: -80px;
+ left: calc(50% - 132px);
+ }
+
+ #logo {
+ content: url(../images/ui/crucible_game_logo.png);
+ width: 100px;
+ height: 60px;
+ }
+
+ .dice-cell {
+ padding-left: 12px;
+ padding-right: 12px;
+ width: 60px;
+ text-align: center;
+ }
+
+ .dice-formula,
+ .dice-total {
+ height: 54px;
+ position: relative;
+ }
+
+ /* =================== 1. ACTOR SHEET FONT STYLES =========== */
+ /*
Agility AGI: #02a41d Also Used for Ranged Damage
Mind MND: #a100fe
Social SOC: #fd7100
@@ -1284,252 +1413,312 @@ Defence DEF: #88826a Also used in the Defence on Combat Tab
Stealth STL: #505050
Perception PER: #f9c801 Also Used for Ranged Damage
Focus FOC: #ff0084
-*/
-.color-class-black {
- background-color: black;
- background: black;
-}
-.color-class-agi,
-.color-class-range {
- background-color: #02a41d;
- background: #02a41d;
-}
-.color-class-pool {
- background-color:#c5c3c3;
-}
-.color-class-mnd {
- background-color: #a100fe;
-}
-.color-class-soc {
- background-color: #fd7100;
-}
-.color-class-str,
-.color-class-meleedmg {
- background-color: #5f3d00;
-}
-.color-class-phy,
-.color-class-dmgres {
- background-color: #990304;
-}
-.color-class-mr {
- background-color: #050505;
-}
-.color-class-com,
-.color-class-melee {
- background-color: #0136ff;
-}
-.color-class-def,
-.color-class-defence {
- background-color: #88826a;
-}
-.color-class-stl {
- background-color: #505050;
-}
-.color-class-per,
-.color-class-ranged {
- background-color: #f9c801;
-}
-.color-class-foc {
- background-color: #ff0084;
-}
-.status-small-label {
- font-size: 0.65rem;
-}
-.combat-button {
- min-height: 26px;
- max-height: 26px;
- margin-top: 4px;
-}
-.no-grow {
- flex-grow: 1;
- max-width: 32px;
-}
-.status-col-name {
- max-width: 72px;
-}
-.status-block {
- max-width: 216px;
-}
-.momentum-block {
- max-width: 128px;
- justify-content: flex-start;
-}
-.ability-item {
- flex-grow: 1;
- justify-content: flex-start;
- margin: 2px;
-}
-.ability-block {
- min-width: 160px;
-}
-.ability-margin {
- margin-left: 4px;
- margin-top: 5px;
-}
-.combat-margin {
- margin-left: 4px;
- margin-top: 3px;
-}
-.item-ability-roll {
- max-height: 42px;
- min-height: 36px;
-}
-.item-ability-roll select, .item-ability-roll input {
- margin-top: 4px;
- margin-right: 2px;
-}
-.table-momentum {
- background: none;
- border: 0;
-}
-.img-no-border {
- max-width: 48px;
- max-height: 48px;
- border: 0;
-}
-.items-title-bg {
- margin-top: 6px;
- background: black;
- color: white;
-}
-.items-title-text {
- margin-left: 4px;
-}
-.lock-icon {
- width:16px;
- height: 16px;
-}
-.item-sheet-img {
- width: 64px;
- height: auto;
-}
-.item-name-img {
- flex-grow:1;
- max-width: 2rem;
- min-width: 2rem;
-}
-.item-name-label-header {
- flex-grow:2;
- max-width: 12rem;
- min-width: 12rem;
-}
-.item-name-label-header-long {
- flex-grow:2;
- margin-top: 4px;
- max-width: 14rem;
- min-width: 14rem;
-}
-.item-name-label-header-long2 {
- flex-grow:2;
- margin-top: 4px;
- max-width: 24rem;
- min-width: 24rem;
-}
-.item-name-label {
- flex-grow:2;
- margin-top: 4px;
- max-width: 10rem;
- min-width: 10rem;
-}
-.item-name-label-long {
- flex-grow:2;
- margin-top: 4px;
- max-width: 12rem;
- min-width: 12rem;
-}
-.item-name-label-long2 {
- flex-grow:2;
- margin-top: 4px;
- max-width: 22rem;
- min-width: 22rem;
-}
-.item-name-label-level2 {
- flex-grow:2;
- max-width: 9rem;
- min-width: 9rem;
-}
-.item-field-label-short {
- flex-grow:1;
- margin-top: 4px;
- max-width: 4rem;
- min-width: 4rem;
-}
-.item-field-label-medium {
- flex-grow:1;
- margin-top: 4px;
- max-width: 6rem;
- min-width: 6rem;
-}
-.item-field-label-long {
- flex-grow:1;
- margin-top: 4px;
- max-width: 8rem;
- min-width: 8rem;
-}
-.item-field-label-vlong {
- flex-grow:1;
- margin-top: 4px;
- max-width: 14rem;
- min-width: 14rem;
-}
-.item-field-label-vlong2 {
- flex-grow:1;
- margin-top: 4px;
- max-width: 22rem;
- min-width: 22rem;
-}
-.item-control-end {
- align-self: flex-end;
-}
-.alternate-list {
- margin-top: 4px;
- flex-wrap: nowrap;
-}
-.item-filler {
- flex-grow: 6;
- flex-shrink: 7;
-}
-.item-controls-fixed {
- min-width:2rem;
- max-width: 2rem;
-}
-.margin-left-4 {
- margin-left: 4px;
-}
-.dice-pool-stack {
- flex: 1 1 5rem;
- display: flex !important;
- flex-grow: 0;
- justify-content: flex-start;
-}
-.dice-pool-label {
- margin-left: 4px;
-}
-.dice-pool-div {
- border-left: 4px;
- border-radius: 2px;
- margin-bottom: 1rem;
- background-color: #403f3e40;
-}
-.stat-column-size {
- max-width: 12rem;
- min-width: 12rem;
- margin-right: 4px;
-}
-.derivated-column-size {
- max-width: 14rem;
- min-width: 14rem;
- margin-right: 4px;
-}
-.hplocation-column {
- margin-left: 4px;
-}
-.dice-pool-image {
- border: 0;
- margin-left: 4px;
- min-width: 48px;
- min-height: 48px;
- max-width: 48px;
- max-height: 48px;
- flex-grow: 0;
-}
\ No newline at end of file
+*/
+ .color-class-black {
+ background-color: black;
+ background: black;
+ }
+
+ .color-class-agi,
+ .color-class-range {
+ background-color: #02a41d;
+ background: #02a41d;
+ }
+
+ .color-class-pool {
+ background-color: #c5c3c3;
+ }
+
+ .color-class-mnd {
+ background-color: #a100fe;
+ }
+
+ .color-class-soc {
+ background-color: #fd7100;
+ }
+
+ .color-class-str,
+ .color-class-meleedmg {
+ background-color: #5f3d00;
+ }
+
+ .color-class-phy,
+ .color-class-dmgres {
+ background-color: #990304;
+ }
+
+ .color-class-mr {
+ background-color: #050505;
+ }
+
+ .color-class-com,
+ .color-class-melee {
+ background-color: #0136ff;
+ }
+
+ .color-class-def,
+ .color-class-defence {
+ background-color: #88826a;
+ }
+
+ .color-class-stl {
+ background-color: #505050;
+ }
+
+ .color-class-per,
+ .color-class-ranged {
+ background-color: #f9c801;
+ }
+
+ .color-class-foc {
+ background-color: #ff0084;
+ }
+
+ .status-small-label {
+ font-size: 0.65rem;
+ }
+
+ .combat-button {
+ min-height: 26px;
+ max-height: 26px;
+ margin-top: 4px;
+ }
+
+ .no-grow {
+ flex-grow: 1;
+ max-width: 32px;
+ }
+
+ .status-col-name {
+ max-width: 72px;
+ }
+
+ .status-block {
+ max-width: 216px;
+ }
+
+ .momentum-block {
+ max-width: 128px;
+ justify-content: flex-start;
+ }
+
+ .ability-item {
+ flex-grow: 1;
+ justify-content: flex-start;
+ margin: 2px;
+ }
+
+ .ability-block {
+ min-width: 160px;
+ }
+
+ .ability-margin {
+ margin-left: 4px;
+ margin-top: 5px;
+ }
+
+ .combat-margin {
+ margin-left: 4px;
+ margin-top: 3px;
+ }
+
+ .item-ability-roll {
+ max-height: 42px;
+ min-height: 36px;
+ }
+
+ .item-ability-roll select,
+ .item-ability-roll input {
+ margin-top: 4px;
+ margin-right: 2px;
+ }
+
+ .roll-opposed-icon:hover {
+ color: darkgreen;
+ }
+
+ .table-momentum {
+ background: none;
+ border: 0;
+ }
+
+ .img-no-border {
+ max-width: 48px;
+ max-height: 48px;
+ border: 0;
+ }
+
+ .items-title-bg {
+ margin-top: 6px;
+ background: black;
+ color: white;
+ }
+
+ .items-title-text {
+ margin-left: 4px;
+ }
+
+ .lock-icon {
+ width: 16px;
+ height: 16px;
+ }
+
+ .item-sheet-img {
+ width: 64px;
+ height: auto;
+ }
+
+ .item-name-img {
+ flex-grow: 1;
+ max-width: 2rem;
+ min-width: 2rem;
+ }
+
+ .item-name-label-header {
+ flex-grow: 2;
+ max-width: 12rem;
+ min-width: 12rem;
+ }
+
+ .item-name-label-header-long {
+ flex-grow: 2;
+ margin-top: 4px;
+ max-width: 14rem;
+ min-width: 14rem;
+ }
+
+ .item-name-label-header-long2 {
+ flex-grow: 2;
+ margin-top: 4px;
+ max-width: 24rem;
+ min-width: 24rem;
+ }
+
+ .item-name-label {
+ flex-grow: 2;
+ margin-top: 4px;
+ max-width: 10rem;
+ min-width: 10rem;
+ }
+
+ .item-name-label-long {
+ flex-grow: 2;
+ margin-top: 4px;
+ max-width: 12rem;
+ min-width: 12rem;
+ }
+
+ .item-name-label-long2 {
+ flex-grow: 2;
+ margin-top: 4px;
+ max-width: 22rem;
+ min-width: 22rem;
+ }
+
+ .item-name-label-level2 {
+ flex-grow: 2;
+ max-width: 9rem;
+ min-width: 9rem;
+ }
+
+ .item-field-label-short {
+ flex-grow: 1;
+ margin-top: 4px;
+ max-width: 4rem;
+ min-width: 4rem;
+ }
+
+ .item-field-label-medium {
+ flex-grow: 1;
+ margin-top: 4px;
+ max-width: 6rem;
+ min-width: 6rem;
+ }
+
+ .item-field-label-long {
+ flex-grow: 1;
+ margin-top: 4px;
+ max-width: 8rem;
+ min-width: 8rem;
+ }
+
+ .item-field-label-vlong {
+ flex-grow: 1;
+ margin-top: 4px;
+ max-width: 14rem;
+ min-width: 14rem;
+ }
+
+ .item-field-label-vlong2 {
+ flex-grow: 1;
+ margin-top: 4px;
+ max-width: 22rem;
+ min-width: 22rem;
+ }
+
+ .item-control-end {
+ align-self: flex-end;
+ }
+
+ .alternate-list {
+ margin-top: 4px;
+ flex-wrap: nowrap;
+ }
+
+ .item-filler {
+ flex-grow: 6;
+ flex-shrink: 7;
+ }
+
+ .item-controls-fixed {
+ min-width: 2rem;
+ max-width: 2rem;
+ }
+
+ .margin-left-4 {
+ margin-left: 4px;
+ }
+
+ .dice-pool-stack {
+ flex: 1 1 5rem;
+ display: flex !important;
+ flex-grow: 0;
+ justify-content: flex-start;
+ }
+
+ .dice-pool-label {
+ margin-left: 4px;
+ }
+
+ .dice-pool-div {
+ border-left: 4px;
+ border-radius: 2px;
+ margin-bottom: 1rem;
+ background-color: #403f3e40;
+ }
+
+ .stat-column-size {
+ max-width: 12rem;
+ min-width: 12rem;
+ margin-right: 4px;
+ }
+
+ .derivated-column-size {
+ max-width: 14rem;
+ min-width: 14rem;
+ margin-right: 4px;
+ }
+
+ .hplocation-column {
+ margin-left: 4px;
+ }
+
+ .dice-pool-image {
+ border: 0;
+ margin-left: 4px;
+ min-width: 48px;
+ min-height: 48px;
+ max-width: 48px;
+ max-height: 48px;
+ flex-grow: 0;
+ }
\ No newline at end of file
diff --git a/system.json b/system.json
index fac5ac8..e008a47 100644
--- a/system.json
+++ b/system.json
@@ -101,5 +101,20 @@
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-dark-stars/archive/fvtt-dark-stars-v11.0.21.zip",
"url": "https://www.uberwald.me/gitea/uberwald/",
"background": "images/ui/dark_stars_welcome_page.webp",
- "id": "fvtt-dark-stars"
+ "id": "fvtt-dark-stars",
+ "flags": {
+ "hotReload": {
+ "extensions": [
+ "css",
+ "hbs",
+ "json"
+ ],
+ "paths": [
+ "styles/",
+ "lang/",
+ "assets/",
+ "templates/"
+ ]
+ }
+ }
}
\ No newline at end of file
diff --git a/template.json b/template.json
index cdbc2f1..3974dce 100644
--- a/template.json
+++ b/template.json
@@ -278,6 +278,7 @@
"Item": {
"types": [
"skill",
+ "cumulativetask",
"perk",
"ability",
"armor",
@@ -305,6 +306,12 @@
"signs": 0,
"cherisheditems": 0
},
+ "cumulativetask": {
+ "cumulated": 0,
+ "nbrolls": 0,
+ "skill": "",
+ "description": ""
+ },
"psychic": {
"level": 0,
"egocost": 0,
diff --git a/templates/actors/actor-sheet.hbs b/templates/actors/actor-sheet.hbs
index ae24ab3..f33cef5 100644
--- a/templates/actors/actor-sheet.hbs
+++ b/templates/actors/actor-sheet.hbs
@@ -32,7 +32,10 @@