mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-06-05 20:34:15 +02:00
Compare commits
9 commits
505cc634d3
...
6cb31ac3b7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6cb31ac3b7 | ||
|
|
17b9719c09 | ||
|
|
22c3212e5e | ||
|
|
7530e4b512 | ||
|
|
ddf4747310 | ||
|
|
ac72012387 | ||
|
|
1ab8170d2f | ||
|
|
48f9ffc318 | ||
|
|
fa6f9d56b8 |
64 changed files with 312 additions and 382 deletions
|
|
@ -358,8 +358,6 @@ export default class GroupRollDialog extends HandlebarsApplicationMixin(Applicat
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!result) return;
|
if (!result) return;
|
||||||
// todo: move logic to actor.rollTrait() or actor.diceRoll()
|
|
||||||
if (!game.modules.get('dice-so-nice')?.active) foundry.audio.AudioHelper.play({ src: CONFIG.sounds.dice });
|
|
||||||
|
|
||||||
const rollData = result.messageRoll.toJSON();
|
const rollData = result.messageRoll.toJSON();
|
||||||
delete rollData.options.messageRoll;
|
delete rollData.options.messageRoll;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { itemAbleRollParse } from '../../helpers/utils.mjs';
|
import { itemAbleRollParse, triggerChatRollFx } from '../../helpers/utils.mjs';
|
||||||
|
|
||||||
const { ApplicationV2, HandlebarsApplicationMixin } = foundry.applications.api;
|
const { ApplicationV2, HandlebarsApplicationMixin } = foundry.applications.api;
|
||||||
|
|
||||||
|
|
@ -69,7 +69,7 @@ export default class ResourceDiceDialog extends HandlebarsApplicationMixin(Appli
|
||||||
const max = itemAbleRollParse(this.item.system.resource.max, this.actor, this.item);
|
const max = itemAbleRollParse(this.item.system.resource.max, this.actor, this.item);
|
||||||
const diceFormula = `${max}${this.item.system.resource.dieFaces}`;
|
const diceFormula = `${max}${this.item.system.resource.dieFaces}`;
|
||||||
const roll = await new Roll(diceFormula).evaluate();
|
const roll = await new Roll(diceFormula).evaluate();
|
||||||
if (game.modules.get('dice-so-nice')?.active) await game.dice3d.showForRoll(roll, game.user, true);
|
await triggerChatRollFx([roll]);
|
||||||
this.rollValues = roll.terms[0].results.map(x => ({ value: x.result, used: false }));
|
this.rollValues = roll.terms[0].results.map(x => ({ value: x.result, used: false }));
|
||||||
this.resetUsed = true;
|
this.resetUsed = true;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -434,8 +434,6 @@ export default class TagTeamDialog extends HandlebarsApplicationMixin(Applicatio
|
||||||
|
|
||||||
if (!result) return;
|
if (!result) return;
|
||||||
|
|
||||||
if (!game.modules.get('dice-so-nice')?.active) foundry.audio.AudioHelper.play({ src: CONFIG.sounds.dice });
|
|
||||||
|
|
||||||
const rollData = result.messageRoll.toJSON();
|
const rollData = result.messageRoll.toJSON();
|
||||||
delete rollData.options.messageRoll;
|
delete rollData.options.messageRoll;
|
||||||
this.updatePartyData(
|
this.updatePartyData(
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { triggerChatRollFx } from '../../helpers/utils.mjs';
|
||||||
|
|
||||||
const fields = foundry.data.fields;
|
const fields = foundry.data.fields;
|
||||||
|
|
||||||
const targetsField = () =>
|
const targetsField = () =>
|
||||||
|
|
@ -154,13 +156,7 @@ export default class DHActorRoll extends foundry.abstract.TypeDataModel {
|
||||||
partData.roll = rerolled.toJSON();
|
partData.roll = rerolled.toJSON();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (game.modules.get('dice-so-nice')?.active) {
|
await triggerChatRollFx(rerolls);
|
||||||
for (const roll of rerolls) {
|
|
||||||
await game.dice3d.showForRoll(roll, game.user, true);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
foundry.audio.AudioHelper.play({ src: CONFIG.sounds.dice });
|
|
||||||
}
|
|
||||||
|
|
||||||
return update;
|
return update;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -72,9 +72,6 @@ export default class DamageField extends fields.SchemaField {
|
||||||
damageConfig.source.message = messageId;
|
damageConfig.source.message = messageId;
|
||||||
damageConfig.directDamage = !!damageConfig.source?.message;
|
damageConfig.directDamage = !!damageConfig.source?.message;
|
||||||
|
|
||||||
// if(damageConfig.source?.message && game.modules.get('dice-so-nice')?.active)
|
|
||||||
// await game.dice3d.waitFor3DAnimationByMessageID(damageConfig.source.message);
|
|
||||||
|
|
||||||
const damageResult = await CONFIG.Dice.daggerheart.DamageRoll.build(damageConfig);
|
const damageResult = await CONFIG.Dice.daggerheart.DamageRoll.build(damageConfig);
|
||||||
if (!damageResult) return false;
|
if (!damageResult) return false;
|
||||||
if (damageResult.actionChatMessageHandled) config.actionChatMessageHandled = true;
|
if (damageResult.actionChatMessageHandled) config.actionChatMessageHandled = true;
|
||||||
|
|
|
||||||
|
|
@ -78,6 +78,24 @@ export class DHActionRollData extends foundry.abstract.DataModel {
|
||||||
return formula;
|
return formula;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getModifier() {
|
||||||
|
const modifiers = [];
|
||||||
|
if (!this.parent?.actor) return modifiers;
|
||||||
|
switch (this.parent.actor.type) {
|
||||||
|
case 'companion':
|
||||||
|
case 'adversary':
|
||||||
|
if (this.type === CONFIG.DH.GENERAL.rollTypes.attack.id)
|
||||||
|
modifiers.push({
|
||||||
|
label: 'Bonus to Hit',
|
||||||
|
value: this.bonus ?? this.parent.actor.system.attack.roll.bonus ?? 0
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return modifiers;
|
||||||
|
}
|
||||||
|
|
||||||
get rollTrait() {
|
get rollTrait() {
|
||||||
if (this.parent?.actor?.type !== 'character') return null;
|
if (this.parent?.actor?.type !== 'character') return null;
|
||||||
switch (this.type) {
|
switch (this.type) {
|
||||||
|
|
@ -127,6 +145,7 @@ export default class RollField extends fields.EmbeddedDataField {
|
||||||
config.dialog.configure = RollField.getAutomation() ? !config.dialog.configure : config.dialog.configure;
|
config.dialog.configure = RollField.getAutomation() ? !config.dialog.configure : config.dialog.configure;
|
||||||
|
|
||||||
const roll = {
|
const roll = {
|
||||||
|
baseModifiers: this.roll.getModifier(),
|
||||||
label: 'Attack',
|
label: 'Attack',
|
||||||
type: this.roll?.type,
|
type: this.roll?.type,
|
||||||
trait: this.roll?.rollTrait,
|
trait: this.roll?.rollTrait,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { itemAbleRollParse } from '../../../helpers/utils.mjs';
|
import { itemAbleRollParse, triggerChatRollFx } from '../../../helpers/utils.mjs';
|
||||||
import FormulaField from '../formulaField.mjs';
|
import FormulaField from '../formulaField.mjs';
|
||||||
|
|
||||||
const fields = foundry.data.fields;
|
const fields = foundry.data.fields;
|
||||||
|
|
@ -40,7 +40,7 @@ export default class DHSummonField extends fields.ArrayField {
|
||||||
const roll = new Roll(itemAbleRollParse(summon.count, this.actor, this.item));
|
const roll = new Roll(itemAbleRollParse(summon.count, this.actor, this.item));
|
||||||
await roll.evaluate();
|
await roll.evaluate();
|
||||||
const count = roll.total;
|
const count = roll.total;
|
||||||
if (!roll.isDeterministic && game.modules.get('dice-so-nice')?.active) rolls.push(roll);
|
if (!roll.isDeterministic) rolls.push(roll);
|
||||||
|
|
||||||
const actor = await DHSummonField.getWorldActor(await foundry.utils.fromUuid(summon.actorUUID));
|
const actor = await DHSummonField.getWorldActor(await foundry.utils.fromUuid(summon.actorUUID));
|
||||||
/* Extending summon data in memory so it's available in actionField.toChat. Think it's harmless, but ugly. Could maybe find a better way. */
|
/* Extending summon data in memory so it's available in actionField.toChat. Think it's harmless, but ugly. Could maybe find a better way. */
|
||||||
|
|
@ -56,7 +56,7 @@ export default class DHSummonField extends fields.ArrayField {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rolls.length) await Promise.all(rolls.map(roll => game.dice3d.showForRoll(roll, game.user, true)));
|
if (rolls.length) await triggerChatRollFx(rolls);
|
||||||
|
|
||||||
this.actor.sheet?.minimize();
|
this.actor.sheet?.minimize();
|
||||||
DHSummonField.handleSummon(summonData, this.actor);
|
DHSummonField.handleSummon(summonData, this.actor);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import D20RollDialog from '../applications/dialogs/d20RollDialog.mjs';
|
import D20RollDialog from '../applications/dialogs/d20RollDialog.mjs';
|
||||||
|
import { triggerChatRollFx } from '../helpers/utils.mjs';
|
||||||
import DHRoll from './dhRoll.mjs';
|
import DHRoll from './dhRoll.mjs';
|
||||||
|
|
||||||
export default class D20Roll extends DHRoll {
|
export default class D20Roll extends DHRoll {
|
||||||
|
|
@ -128,30 +129,8 @@ export default class D20Roll extends DHRoll {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
getBaseModifiers() {
|
|
||||||
const modifiers = [];
|
|
||||||
const actor = foundry.utils.fromUuidSync(this.options.source.actor);
|
|
||||||
if (!actor) return modifiers;
|
|
||||||
switch (actor.type) {
|
|
||||||
case 'companion':
|
|
||||||
case 'adversary':
|
|
||||||
if (
|
|
||||||
this.options.roll.type === CONFIG.DH.GENERAL.rollTypes.attack.id ||
|
|
||||||
this.options.source.action === actor.system.attack.id
|
|
||||||
)
|
|
||||||
modifiers.push({
|
|
||||||
label: 'Bonus to Hit',
|
|
||||||
value: this.data.attack.roll.bonus ?? 0
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return modifiers;
|
|
||||||
}
|
|
||||||
|
|
||||||
applyBaseBonus() {
|
applyBaseBonus() {
|
||||||
const modifiers = this.getBaseModifiers();
|
const modifiers = foundry.utils.deepClone(this.options.roll.baseModifiers) ?? [];
|
||||||
|
|
||||||
modifiers.push(
|
modifiers.push(
|
||||||
...this.getBonus(
|
...this.getBonus(
|
||||||
|
|
@ -252,11 +231,7 @@ export default class D20Roll extends DHRoll {
|
||||||
if (this instanceof game.system.api.dice.DualityRoll) return result;
|
if (this instanceof game.system.api.dice.DualityRoll) return result;
|
||||||
|
|
||||||
if (options?.liveRoll) {
|
if (options?.liveRoll) {
|
||||||
if (game.modules.get('dice-so-nice')?.active) {
|
await triggerChatRollFx([result]);
|
||||||
await game.dice3d.showForRoll(result, game.user, true);
|
|
||||||
} else {
|
|
||||||
foundry.audio.AudioHelper.play({ src: CONFIG.sounds.dice });
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import DamageDialog from '../applications/dialogs/damageDialog.mjs';
|
import DamageDialog from '../applications/dialogs/damageDialog.mjs';
|
||||||
import { parseRallyDice } from '../helpers/utils.mjs';
|
import { parseRallyDice, triggerChatRollFx } from '../helpers/utils.mjs';
|
||||||
import DHRoll from './dhRoll.mjs';
|
import DHRoll from './dhRoll.mjs';
|
||||||
|
|
||||||
export default class DamageRoll extends DHRoll {
|
export default class DamageRoll extends DHRoll {
|
||||||
|
|
@ -43,25 +43,24 @@ export default class DamageRoll extends DHRoll {
|
||||||
const chatMessage = config.source?.message
|
const chatMessage = config.source?.message
|
||||||
? ui.chat.collection.get(config.source.message)
|
? ui.chat.collection.get(config.source.message)
|
||||||
: getDocumentClass('ChatMessage').applyMode({}, config.rollMode ?? 'public');
|
: getDocumentClass('ChatMessage').applyMode({}, config.rollMode ?? 'public');
|
||||||
|
|
||||||
|
const diceRolls = [];
|
||||||
if (game.modules.get('dice-so-nice')?.active) {
|
if (game.modules.get('dice-so-nice')?.active) {
|
||||||
|
config.mute = true;
|
||||||
const pool = foundry.dice.terms.PoolTerm.fromRolls(
|
const pool = foundry.dice.terms.PoolTerm.fromRolls(
|
||||||
Object.values(config.damage).flatMap(r => r.parts.map(p => p.roll))
|
Object.values(config.damage).flatMap(r => r.parts.map(p => p.roll))
|
||||||
),
|
|
||||||
diceRoll = Roll.fromTerms([pool]);
|
|
||||||
await game.dice3d.showForRoll(
|
|
||||||
diceRoll,
|
|
||||||
game.user,
|
|
||||||
true,
|
|
||||||
chatMessage.whisper?.length > 0 ? chatMessage.whisper : null,
|
|
||||||
chatMessage.blind
|
|
||||||
);
|
);
|
||||||
config.mute = true;
|
diceRolls.push(Roll.fromTerms([pool]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await triggerChatRollFx(diceRolls, {
|
||||||
|
whisper: chatMessage.whisper?.length > 0 ? chatMessage.whisper : null,
|
||||||
|
blind: chatMessage.blind
|
||||||
|
});
|
||||||
await super.buildPost(roll, config, message);
|
await super.buildPost(roll, config, message);
|
||||||
|
|
||||||
if (config.source?.message) {
|
if (config.source?.message) {
|
||||||
chatMessage.update({ 'system.damage': config.damage });
|
chatMessage.update({ 'system.damage': config.damage });
|
||||||
|
|
||||||
if (!game.modules.get('dice-so-nice')?.active) foundry.audio.AudioHelper.play({ src: CONFIG.sounds.dice });
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -324,9 +323,10 @@ export default class DamageRoll extends DHRoll {
|
||||||
const newIndex = parsedDiceTerms[dice].results.length;
|
const newIndex = parsedDiceTerms[dice].results.length;
|
||||||
await term.reroll(`/r1=${termResult.result}`);
|
await term.reroll(`/r1=${termResult.result}`);
|
||||||
|
|
||||||
|
const diceRolls = [];
|
||||||
if (game.modules.get('dice-so-nice')?.active) {
|
if (game.modules.get('dice-so-nice')?.active) {
|
||||||
const newResult = parsedDiceTerms[dice].results[newIndex];
|
const newResult = parsedDiceTerms[dice].results[newIndex];
|
||||||
const diceSoNiceRoll = {
|
diceRolls.push({
|
||||||
_evaluated: true,
|
_evaluated: true,
|
||||||
dice: [
|
dice: [
|
||||||
new foundry.dice.terms.Die({
|
new foundry.dice.terms.Die({
|
||||||
|
|
@ -337,11 +337,10 @@ export default class DamageRoll extends DHRoll {
|
||||||
})
|
})
|
||||||
],
|
],
|
||||||
options: { appearance: {} }
|
options: { appearance: {} }
|
||||||
};
|
});
|
||||||
|
|
||||||
await game.dice3d.showForRoll(diceSoNiceRoll, game.user, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await triggerChatRollFx(diceRolls);
|
||||||
await parsedRoll.evaluate();
|
await parsedRoll.evaluate();
|
||||||
|
|
||||||
const results = parsedRoll.dice[dice].results.map(result => ({
|
const results = parsedRoll.dice[dice].results.map(result => ({
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import D20RollDialog from '../applications/dialogs/d20RollDialog.mjs';
|
import D20RollDialog from '../applications/dialogs/d20RollDialog.mjs';
|
||||||
|
import { triggerChatRollFx } from '../helpers/utils.mjs';
|
||||||
|
|
||||||
export default class DHRoll extends Roll {
|
export default class DHRoll extends Roll {
|
||||||
baseTerms = [];
|
baseTerms = [];
|
||||||
|
|
@ -75,9 +76,7 @@ export default class DHRoll extends Roll {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.skips?.createMessage) {
|
if (config.skips?.createMessage) {
|
||||||
if (game.modules.get('dice-so-nice')?.active) {
|
await triggerChatRollFx([roll]);
|
||||||
await game.dice3d.showForRoll(roll, game.user, true);
|
|
||||||
}
|
|
||||||
} else if (!config.source?.message) {
|
} else if (!config.source?.message) {
|
||||||
config.message = await this.toMessage(roll, config);
|
config.message = await this.toMessage(roll, config);
|
||||||
}
|
}
|
||||||
|
|
@ -85,6 +84,7 @@ export default class DHRoll extends Roll {
|
||||||
|
|
||||||
static postEvaluate(roll, config = {}) {
|
static postEvaluate(roll, config = {}) {
|
||||||
return {
|
return {
|
||||||
|
...roll.options.roll,
|
||||||
total: roll.total,
|
total: roll.total,
|
||||||
formula: roll.formula,
|
formula: roll.formula,
|
||||||
dice: roll.dice.map(d => ({
|
dice: roll.dice.map(d => ({
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import { ResourceUpdateMap } from '../../data/action/baseAction.mjs';
|
import { updateResourcesForDualityReroll } from '../helpers.mjs';
|
||||||
import DualityRoll from '../dualityRoll.mjs';
|
|
||||||
|
|
||||||
export default class DualityDie extends foundry.dice.terms.Die {
|
export default class DualityDie extends foundry.dice.terms.Die {
|
||||||
constructor(options) {
|
constructor(options) {
|
||||||
|
|
@ -40,7 +39,7 @@ export default class DualityDie extends foundry.dice.terms.Die {
|
||||||
if (options.liveRoll.isReaction) return;
|
if (options.liveRoll.isReaction) return;
|
||||||
|
|
||||||
const newDuality = this.#getDualityState(options.liveRoll.roll);
|
const newDuality = this.#getDualityState(options.liveRoll.roll);
|
||||||
DualityRoll.updateResources(oldDuality, newDuality, options.liveRoll.actor);
|
updateResourcesForDualityReroll(oldDuality, newDuality, options.liveRoll.actor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import D20RollDialog from '../applications/dialogs/d20RollDialog.mjs';
|
||||||
import D20Roll from './d20Roll.mjs';
|
import D20Roll from './d20Roll.mjs';
|
||||||
import { parseRallyDice, setDiceSoNiceForDualityRoll } from '../helpers/utils.mjs';
|
import { parseRallyDice, setDiceSoNiceForDualityRoll } from '../helpers/utils.mjs';
|
||||||
import { getDiceSoNicePresets } from '../config/generalConfig.mjs';
|
import { getDiceSoNicePresets } from '../config/generalConfig.mjs';
|
||||||
import { ResourceUpdateMap } from '../data/action/baseAction.mjs';
|
import { updateResourcesForDualityReroll } from './helpers.mjs';
|
||||||
|
|
||||||
export default class DualityRoll extends D20Roll {
|
export default class DualityRoll extends D20Roll {
|
||||||
_advantageNumber = 1;
|
_advantageNumber = 1;
|
||||||
|
|
@ -132,13 +132,7 @@ export default class DualityRoll extends D20Roll {
|
||||||
}
|
}
|
||||||
|
|
||||||
createBaseDice() {
|
createBaseDice() {
|
||||||
if (
|
|
||||||
this.dice[0] instanceof game.system.api.dice.diceTypes.HopeDie &&
|
|
||||||
this.dice[1] instanceof game.system.api.dice.diceTypes.FearDie
|
|
||||||
) {
|
|
||||||
this.terms = [this.terms[0], this.terms[1], this.terms[2]];
|
this.terms = [this.terms[0], this.terms[1], this.terms[2]];
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.terms[0] = new game.system.api.dice.diceTypes.HopeDie({
|
this.terms[0] = new game.system.api.dice.diceTypes.HopeDie({
|
||||||
faces: this.data.rules.dualityRoll?.defaultHopeDice ?? 12
|
faces: this.data.rules.dualityRoll?.defaultHopeDice ?? 12
|
||||||
|
|
@ -391,24 +385,6 @@ export default class DualityRoll extends D20Roll {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static updateResources(oldDuality, newDuality, actor) {
|
|
||||||
const { hopeFear } = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation);
|
|
||||||
if (game.user.isGM ? !hopeFear.gm : !hopeFear.players) return;
|
|
||||||
|
|
||||||
const updates = [];
|
|
||||||
const hope = (newDuality >= 0 ? 1 : 0) - (oldDuality >= 0 ? 1 : 0);
|
|
||||||
const stress = (newDuality === 0 ? 1 : 0) - (oldDuality === 0 ? 1 : 0);
|
|
||||||
const fear = (newDuality === -1 ? 1 : 0) - (oldDuality === -1 ? 1 : 0);
|
|
||||||
|
|
||||||
if (hope !== 0) updates.push({ key: 'hope', value: hope, total: -1 * hope, enabled: true });
|
|
||||||
if (stress !== 0) updates.push({ key: 'stress', value: -1 * stress, total: stress, enabled: true });
|
|
||||||
if (fear !== 0) updates.push({ key: 'fear', value: fear, total: -1 * fear, enabled: true });
|
|
||||||
|
|
||||||
const resourceUpdates = new ResourceUpdateMap(actor);
|
|
||||||
resourceUpdates.addResources(updates);
|
|
||||||
resourceUpdates.updateResources();
|
|
||||||
}
|
|
||||||
|
|
||||||
async reroll(options) {
|
async reroll(options) {
|
||||||
const oldDuality = this.withHope ? 1 : this.withFear ? -1 : 0;
|
const oldDuality = this.withHope ? 1 : this.withFear ? -1 : 0;
|
||||||
const rerolled = DualityRoll.fromData((await super.reroll(options)).toJSON());
|
const rerolled = DualityRoll.fromData((await super.reroll(options)).toJSON());
|
||||||
|
|
@ -435,7 +411,7 @@ export default class DualityRoll extends D20Roll {
|
||||||
|
|
||||||
const newDuality = rerolled.withHope ? 1 : rerolled.withFear ? -1 : 0;
|
const newDuality = rerolled.withHope ? 1 : rerolled.withFear ? -1 : 0;
|
||||||
const actor = await foundry.utils.fromUuid(this.options.source.actor);
|
const actor = await foundry.utils.fromUuid(this.options.source.actor);
|
||||||
DualityRoll.updateResources(oldDuality, newDuality, actor);
|
updateResourcesForDualityReroll(oldDuality, newDuality, actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
return rerolled;
|
return rerolled;
|
||||||
|
|
|
||||||
17
module/dice/helpers.mjs
Normal file
17
module/dice/helpers.mjs
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
export function updateResourcesForDualityReroll(oldDuality, newDuality, actor) {
|
||||||
|
const { hopeFear } = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation);
|
||||||
|
if (game.user.isGM ? !hopeFear.gm : !hopeFear.players) return;
|
||||||
|
|
||||||
|
const updates = [];
|
||||||
|
const hope = (newDuality >= 0 ? 1 : 0) - (oldDuality >= 0 ? 1 : 0);
|
||||||
|
const stress = (newDuality === 0 ? 1 : 0) - (oldDuality === 0 ? 1 : 0);
|
||||||
|
const fear = (newDuality === -1 ? 1 : 0) - (oldDuality === -1 ? 1 : 0);
|
||||||
|
|
||||||
|
if (hope !== 0) updates.push({ key: 'hope', value: hope, total: -1 * hope, enabled: true });
|
||||||
|
if (stress !== 0) updates.push({ key: 'stress', value: -1 * stress, total: stress, enabled: true });
|
||||||
|
if (fear !== 0) updates.push({ key: 'fear', value: fear, total: -1 * fear, enabled: true });
|
||||||
|
|
||||||
|
const resourceUpdates = new ResourceUpdateMap(actor);
|
||||||
|
resourceUpdates.addResources(updates);
|
||||||
|
resourceUpdates.updateResources();
|
||||||
|
}
|
||||||
|
|
@ -864,3 +864,18 @@ export function camelize(str) {
|
||||||
})
|
})
|
||||||
.replace(/\s+/g, '');
|
.replace(/\s+/g, '');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Triggers DiceSoNice rolls or dice roll audio for rolls. Not used for duality rolls.
|
||||||
|
* @param { Roll[] } rolls
|
||||||
|
* @return { void }
|
||||||
|
*/
|
||||||
|
export async function triggerChatRollFx(rolls, options = { whisper: false, blind: false }) {
|
||||||
|
const { whisper, blind } = options;
|
||||||
|
if (game.modules.get('dice-so-nice')?.active) {
|
||||||
|
const rerollPromises = rolls.map(roll => game.dice3d.showForRoll(roll, game.user, true, whisper, blind));
|
||||||
|
await Promise.allSettled(rerollPromises);
|
||||||
|
} else {
|
||||||
|
foundry.audio.AudioHelper.play({ src: CONFIG.sounds.dice });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: var(--font-size-16);
|
font-size: var(--font-size-16);
|
||||||
margin: 0 4px;
|
margin: 0 4px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
color: light-dark(@dark, @beige);
|
color: light-dark(@dark, @beige);
|
||||||
background-image: url('../assets/parchments/dh-parchment-dark.png');
|
background-image: url('../assets/parchments/dh-parchment-dark.png');
|
||||||
|
|
@ -58,7 +58,7 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
width: 120px;
|
width: 120px;
|
||||||
|
|
@ -164,7 +164,7 @@
|
||||||
|
|
||||||
.hybrid-data {
|
.hybrid-data {
|
||||||
padding: 0 2px;
|
padding: 0 2px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
color: light-dark(@dark, @beige);
|
color: light-dark(@dark, @beige);
|
||||||
background-image: url('../assets/parchments/dh-parchment-dark.png');
|
background-image: url('../assets/parchments/dh-parchment-dark.png');
|
||||||
|
|
@ -191,7 +191,7 @@
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
padding: 0 4px;
|
padding: 0 4px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
color: light-dark(@dark, @beige);
|
color: light-dark(@dark, @beige);
|
||||||
background-image: url('../assets/parchments/dh-parchment-dark.png');
|
background-image: url('../assets/parchments/dh-parchment-dark.png');
|
||||||
|
|
@ -226,7 +226,7 @@
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
|
|
||||||
.trait-card {
|
.trait-card {
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
opacity: 0.4;
|
opacity: 0.4;
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
padding: 0 2px;
|
padding: 0 2px;
|
||||||
background-image: url(../assets/parchments/dh-parchment-light.png);
|
background-image: url(../assets/parchments/dh-parchment-light.png);
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
color: light-dark(@beige, @dark);
|
color: light-dark(@beige, @dark);
|
||||||
opacity: 0.4;
|
opacity: 0.4;
|
||||||
|
|
@ -203,7 +203,7 @@
|
||||||
height: 16px;
|
height: 16px;
|
||||||
width: 110px;
|
width: 110px;
|
||||||
min-height: unset;
|
min-height: unset;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
color: light-dark(@beige, @beige);
|
color: light-dark(@beige, @beige);
|
||||||
background-color: light-dark(var(--color-warm-3), var(--color-warm-3));
|
background-color: light-dark(var(--color-warm-3), var(--color-warm-3));
|
||||||
|
|
||||||
|
|
@ -230,7 +230,7 @@
|
||||||
.suggested-trait-container {
|
.suggested-trait-container {
|
||||||
width: 56px;
|
width: 56px;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
color: light-dark(@beige, @dark);
|
color: light-dark(@beige, @dark);
|
||||||
background-image: url('../assets/parchments/dh-parchment-light.png');
|
background-image: url('../assets/parchments/dh-parchment-light.png');
|
||||||
|
|
@ -345,7 +345,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
position: relative;
|
position: relative;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
|
|
||||||
.nav-section-text {
|
.nav-section-text {
|
||||||
|
|
@ -383,7 +383,7 @@
|
||||||
width: 56px;
|
width: 56px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
color: light-dark(@beige, @dark);
|
color: light-dark(@beige, @dark);
|
||||||
background-image: url(../assets/parchments/dh-parchment-light.png);
|
background-image: url(../assets/parchments/dh-parchment-light.png);
|
||||||
|
|
@ -447,7 +447,7 @@
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
.simple-equipment {
|
.simple-equipment {
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
@ -466,7 +466,7 @@
|
||||||
top: -8px;
|
top: -8px;
|
||||||
font-size: var(--font-size-12);
|
font-size: var(--font-size-12);
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
color: @dark;
|
color: @dark;
|
||||||
background-image: url('../assets/parchments/dh-parchment-light.png');
|
background-image: url('../assets/parchments/dh-parchment-light.png');
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
border-top: 0;
|
border-top: 0;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
|
|
||||||
&[disabled] {
|
&[disabled] {
|
||||||
opacity: 0.4;
|
opacity: 0.4;
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,6 @@
|
||||||
|
|
||||||
i {
|
i {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
// color: light-dark(@dark-blue, @golden);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,7 @@
|
||||||
|
|
||||||
.mark-container {
|
.mark-container {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
height: 26px;
|
height: 26px;
|
||||||
padding: 0 1px;
|
padding: 0 1px;
|
||||||
|
|
@ -126,7 +126,7 @@
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
.chip-inner-container {
|
.chip-inner-container {
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
height: 26px;
|
height: 26px;
|
||||||
padding: 0 4px;
|
padding: 0 4px;
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
background: light-dark(@dark-blue-10, @golden-10);
|
background: light-dark(@dark-blue-10, @golden-10);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
|
|
||||||
.label {
|
.label {
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
|
|
@ -129,7 +129,7 @@
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
background: light-dark(@dark-blue-10, @golden-10);
|
background: light-dark(@dark-blue-10, @golden-10);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
|
|
||||||
.label {
|
.label {
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
.activity-marker {
|
.activity-marker {
|
||||||
font-size: 0.5rem;
|
font-size: 0.5rem;
|
||||||
flex: none;
|
flex: none;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
margin-right: 4px;
|
margin-right: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -55,7 +55,7 @@
|
||||||
|
|
||||||
.activity-selected-marker {
|
.activity-selected-marker {
|
||||||
font-size: var(--font-size-14);
|
font-size: var(--font-size-14);
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
color: light-dark(@dark, @beige);
|
color: light-dark(@dark, @beige);
|
||||||
background-image: url(../assets/parchments/dh-parchment-dark.png);
|
background-image: url(../assets/parchments/dh-parchment-dark.png);
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.refreshable-container {
|
.refreshable-container {
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
color: light-dark(@dark, @beige);
|
color: light-dark(@dark, @beige);
|
||||||
background-image: url('../assets/parchments/dh-parchment-dark.png');
|
background-image: url('../assets/parchments/dh-parchment-dark.png');
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
h1 {
|
h1 {
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
font: 700 var(--font-size-24) var(--dh-font-subtitle);
|
font: 700 var(--font-size-24) var(--dh-font-subtitle);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -110,7 +110,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
button {
|
button {
|
||||||
--button-text-color: var(--color-text-primary);
|
--button-text-color: @color-text-primary;
|
||||||
--button-size: 1.5em;
|
--button-size: 1.5em;
|
||||||
padding: 0 var(--spacer-4);
|
padding: 0 var(--spacer-4);
|
||||||
img {
|
img {
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
img {
|
img {
|
||||||
width: 136px;
|
width: 136px;
|
||||||
height: 136px;
|
height: 136px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
opacity: 0.4;
|
opacity: 0.4;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
a,
|
a,
|
||||||
span {
|
span {
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
width: 120px;
|
width: 120px;
|
||||||
height: 120px;
|
height: 120px;
|
||||||
background: light-dark(@dark-blue-10, @golden-10);
|
background: light-dark(@dark-blue-10, @golden-10);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
|
|
||||||
&.selected {
|
&.selected {
|
||||||
background: light-dark(@dark-blue-40, @golden-40);
|
background: light-dark(@dark-blue-40, @golden-40);
|
||||||
|
|
@ -57,7 +57,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
padding: 4px 4px;
|
padding: 4px 4px;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
height: 11.5rem;
|
height: 11.5rem;
|
||||||
width: 122px;
|
width: 122px;
|
||||||
|
|
@ -62,7 +62,7 @@
|
||||||
padding: 5rem 4px var(--spacer-8) 4px;
|
padding: 5rem 4px var(--spacer-8) 4px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
color: var(--color-text-primary);
|
color: @color-text-primary;
|
||||||
text-shadow: 1px 1px 2px var(--shadow-color), 0 0 10px var(--shadow-color);
|
text-shadow: 1px 1px 2px var(--shadow-color), 0 0 10px var(--shadow-color);
|
||||||
.smooth-gradient-ease-in-out(background-image, to bottom, var(--shadow-color), 100%);
|
.smooth-gradient-ease-in-out(background-image, to bottom, var(--shadow-color), 100%);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
.daggerheart.dialog.dh-style.views.tag-team-dialog .window-content {
|
.daggerheart.dialog.dh-style.views.tag-team-dialog .window-content {
|
||||||
h1 {
|
h1 {
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
font: 700 var(--font-size-24) var(--dh-font-subtitle);
|
font: 700 var(--font-size-24) var(--dh-font-subtitle);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
@ -42,7 +42,7 @@
|
||||||
img {
|
img {
|
||||||
height: 64px;
|
height: 64px;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
}
|
}
|
||||||
|
|
||||||
.member-name {
|
.member-name {
|
||||||
|
|
@ -64,7 +64,7 @@
|
||||||
.roll-title {
|
.roll-title {
|
||||||
font-size: var(--font-size-20);
|
font-size: var(--font-size-20);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
@ -72,7 +72,7 @@
|
||||||
|
|
||||||
&::before,
|
&::before,
|
||||||
&::after {
|
&::after {
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
content: '';
|
content: '';
|
||||||
flex: 1;
|
flex: 1;
|
||||||
height: 2px;
|
height: 2px;
|
||||||
|
|
@ -202,7 +202,7 @@
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|
||||||
i {
|
i {
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
font-size: 48px;
|
font-size: 48px;
|
||||||
|
|
||||||
&.inactive {
|
&.inactive {
|
||||||
|
|
|
||||||
|
|
@ -36,8 +36,8 @@
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -81,7 +81,7 @@
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
background: light-dark(@dark-blue-10, @golden-10);
|
background: light-dark(@dark-blue-10, @golden-10);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
|
|
||||||
.label {
|
.label {
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
@import '../utils/fonts.less';
|
@import '../utils/fonts.less';
|
||||||
|
|
||||||
.dh-style {
|
.dh-style {
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
|
||||||
|
|
||||||
input[type='text'],
|
input[type='text'],
|
||||||
input[type='number'],
|
input[type='number'],
|
||||||
textarea,
|
textarea,
|
||||||
|
|
@ -14,12 +12,12 @@
|
||||||
box-shadow: 0 4px 30px @soft-shadow;
|
box-shadow: 0 4px 30px @soft-shadow;
|
||||||
backdrop-filter: blur(9.5px);
|
backdrop-filter: blur(9.5px);
|
||||||
outline: 2px solid transparent;
|
outline: 2px solid transparent;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @input-color-text;
|
||||||
border: 1px solid light-dark(@dark, @beige);
|
border: 1px solid @input-color-border;
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
|
|
||||||
&::placeholder {
|
&::placeholder {
|
||||||
color: light-dark(@dark-40, @beige-50);
|
color: @color-text-subtle;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
|
|
@ -30,7 +28,7 @@
|
||||||
&:focus[type='number'] {
|
&:focus[type='number'] {
|
||||||
background: light-dark(@soft-shadow, @semi-transparent-dark-blue);
|
background: light-dark(@soft-shadow, @semi-transparent-dark-blue);
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
outline: 2px solid light-dark(@dark, @beige);
|
outline: 2px solid @input-color-border;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:disabled[type='text'],
|
&:disabled[type='text'],
|
||||||
|
|
@ -47,7 +45,7 @@
|
||||||
.input[contenteditable] {
|
.input[contenteditable] {
|
||||||
cursor: var(--cursor-text);
|
cursor: var(--cursor-text);
|
||||||
&:empty:before {
|
&:empty:before {
|
||||||
color: light-dark(@dark-40, @beige-50);
|
color: @color-text-subtle;
|
||||||
content: attr(placeholder);
|
content: attr(placeholder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -107,7 +105,7 @@
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: light-dark(@light-black, @dark-blue);
|
background: light-dark(@light-black, @dark-blue);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.glow {
|
&.glow {
|
||||||
|
|
@ -128,7 +126,7 @@
|
||||||
|
|
||||||
&.reverted {
|
&.reverted {
|
||||||
background: light-dark(@dark-blue-10, @golden-10);
|
background: light-dark(@dark-blue-10, @golden-10);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
border: 1px solid light-dark(@dark, transparent);
|
border: 1px solid light-dark(@dark, transparent);
|
||||||
&:hover {
|
&:hover {
|
||||||
background: light-dark(transparent, @golden);
|
background: light-dark(transparent, @golden);
|
||||||
|
|
@ -175,7 +173,7 @@
|
||||||
height: inherit;
|
height: inherit;
|
||||||
.tag {
|
.tag {
|
||||||
padding: 0.3rem 0.5rem;
|
padding: 0.3rem 0.5rem;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
background-color: light-dark(@dark-blue-10, @golden-40);
|
background-color: light-dark(@dark-blue-10, @golden-40);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
transition: 0.13s ease-out;
|
transition: 0.13s ease-out;
|
||||||
|
|
@ -265,7 +263,7 @@
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
border-color: light-dark(@dark-blue, @golden);
|
border-color: @color-fieldset-border;
|
||||||
|
|
||||||
&.glassy {
|
&.glassy {
|
||||||
background-color: light-dark(@dark-blue-10, @golden-10);
|
background-color: light-dark(@dark-blue-10, @golden-10);
|
||||||
|
|
@ -274,7 +272,7 @@
|
||||||
legend {
|
legend {
|
||||||
padding: 2px 12px;
|
padding: 2px 12px;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
background-color: light-dark(@dark-blue, @golden);
|
background-color: @color-fieldset-border;
|
||||||
color: light-dark(@beige, @dark-blue);
|
color: light-dark(@beige, @dark-blue);
|
||||||
margin-bottom: var(--spacer-4);
|
margin-bottom: var(--spacer-4);
|
||||||
}
|
}
|
||||||
|
|
@ -353,7 +351,7 @@
|
||||||
|
|
||||||
legend {
|
legend {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
|
|
||||||
&.with-icon {
|
&.with-icon {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
@ -365,18 +363,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type='text'],
|
|
||||||
input[type='number'] {
|
|
||||||
color: light-dark(@dark, @beige);
|
|
||||||
transition: all 0.3s ease;
|
|
||||||
outline: 2px solid transparent;
|
|
||||||
|
|
||||||
&:focus,
|
|
||||||
&:hover {
|
|
||||||
outline: 2px solid light-dark(@dark, @beige);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&[disabled],
|
&[disabled],
|
||||||
&.child-disabled .form-group,
|
&.child-disabled .form-group,
|
||||||
select[disabled],
|
select[disabled],
|
||||||
|
|
@ -514,7 +500,7 @@
|
||||||
display: block;
|
display: block;
|
||||||
height: 1px;
|
height: 1px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border-bottom: 1px solid light-dark(@dark-blue, @golden);
|
border-bottom: 1px solid @color-border;
|
||||||
mask-image: linear-gradient(270deg, transparent 0%, black 50%, transparent 100%);
|
mask-image: linear-gradient(270deg, transparent 0%, black 50%, transparent 100%);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -522,7 +508,7 @@
|
||||||
display: block;
|
display: block;
|
||||||
height: 1px;
|
height: 1px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border-bottom: 1px solid light-dark(@dark-blue, @golden);
|
border-bottom: 1px solid @color-border;
|
||||||
mask-image: linear-gradient(270deg, transparent 0%, black 100%);
|
mask-image: linear-gradient(270deg, transparent 0%, black 100%);
|
||||||
|
|
||||||
&.invert {
|
&.invert {
|
||||||
|
|
@ -571,7 +557,7 @@
|
||||||
border: 0;
|
border: 0;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:not(:first-child) {
|
&:not(:first-child) {
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
legend {
|
legend {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
font-size: var(--font-size-12);
|
font-size: var(--font-size-12);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
button {
|
button {
|
||||||
background: light-dark(@light-black, @dark-blue);
|
background: light-dark(@light-black, @dark-blue);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
outline: none;
|
outline: none;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
border: 1px solid light-dark(@dark-blue, @dark-blue);
|
border: 1px solid light-dark(@dark-blue, @dark-blue);
|
||||||
|
|
|
||||||
|
|
@ -287,7 +287,7 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
height: 120px;
|
height: 120px;
|
||||||
width: 98px;
|
width: 98px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,16 +50,16 @@
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 5px;
|
gap: 5px;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
|
|
||||||
.slot {
|
.slot {
|
||||||
width: 15px;
|
width: 15px;
|
||||||
height: 10px;
|
height: 10px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
background: light-dark(@dark-blue-10, @golden-10);
|
background: light-dark(@dark-blue-10, @golden-10);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
|
|
@ -148,7 +148,7 @@
|
||||||
appearance: none;
|
appearance: none;
|
||||||
width: 100px;
|
width: 100px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
background: @dark-blue;
|
background: @dark-blue;
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
// Theme handling
|
// Theme handling
|
||||||
.appTheme({
|
.appTheme({
|
||||||
background: @dark-blue-d0;
|
background: @dark-blue-c0;
|
||||||
backdrop-filter: blur(7px);
|
backdrop-filter: blur(7px);
|
||||||
}, {
|
}, {
|
||||||
background: url('../assets/parchments/dh-parchment-light.png') no-repeat center;
|
background: url('../assets/parchments/dh-parchment-light.png') no-repeat center;
|
||||||
|
|
@ -43,7 +43,7 @@ body.game:is(.performance-low, .noblur) {
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
border-color: light-dark(@dark-blue, @golden);
|
border-color: light-dark(@dark-blue, @golden);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
.palette-category-title {
|
.palette-category-title {
|
||||||
grid-column: span var(--effect-columns);
|
grid-column: span var(--effect-columns);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
@import '../../utils/colors.less';
|
@import '../../utils/colors.less';
|
||||||
|
|
||||||
.theme-light .application.daggerheart.dh-style.dialog {
|
.appTheme({}, {
|
||||||
|
&.dialog.character-settings {
|
||||||
.tab.details {
|
.tab.details {
|
||||||
.traits-inner-container .trait-container {
|
.traits-inner-container .trait-container {
|
||||||
background: url('../assets/svg/trait-shield-light.svg') no-repeat;
|
background: url('../assets/svg/trait-shield-light.svg') no-repeat;
|
||||||
|
|
@ -12,6 +13,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
.application.daggerheart.dh-style.dialog {
|
.application.daggerheart.dh-style.dialog {
|
||||||
.tab.details {
|
.tab.details {
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
font-size: var(--font-size-24);
|
font-size: var(--font-size-24);
|
||||||
margin: 0;
|
margin: 0;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -127,7 +127,7 @@
|
||||||
.title-name {
|
.title-name {
|
||||||
text-align: start;
|
text-align: start;
|
||||||
font-size: var(--font-size-28);
|
font-size: var(--font-size-28);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -180,9 +180,9 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
background-color: light-dark(transparent, @dark-blue);
|
background-color: light-dark(transparent, @dark-blue);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
padding: 5px 10px;
|
padding: 5px 10px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
|
|
@ -194,7 +194,7 @@
|
||||||
font-size: var(--font-size-14);
|
font-size: var(--font-size-14);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
|
|
||||||
.domain {
|
.domain {
|
||||||
|
|
@ -206,7 +206,7 @@
|
||||||
font-size: var(--font-size-14);
|
font-size: var(--font-size-14);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
img {
|
||||||
|
|
@ -230,7 +230,7 @@
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
min-width: 90px;
|
min-width: 90px;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
background-color: light-dark(@dark-blue-10, @golden-40);
|
background-color: light-dark(@dark-blue-10, @golden-40);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -65,9 +65,9 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
background-color: light-dark(transparent, @dark-blue);
|
background-color: light-dark(transparent, @dark-blue);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
padding: 5px 10px;
|
padding: 5px 10px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
|
|
@ -77,7 +77,7 @@
|
||||||
font-size: var(--font-size-14);
|
font-size: var(--font-size-14);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
|
|
||||||
&.threshold-value {
|
&.threshold-value {
|
||||||
color: light-dark(@dark, @beige);
|
color: light-dark(@dark, @beige);
|
||||||
|
|
@ -191,7 +191,7 @@
|
||||||
appearance: none;
|
appearance: none;
|
||||||
width: 100px;
|
width: 100px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
background: @dark-blue;
|
background: @dark-blue;
|
||||||
|
|
@ -237,7 +237,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 50px;
|
width: 50px;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
border-radius: 6px 6px 0 0;
|
border-radius: 6px 6px 0 0;
|
||||||
padding: 0 6px;
|
padding: 0 6px;
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,7 @@
|
||||||
padding: 5px 0;
|
padding: 5px 0;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
font-size: var(--font-size-12);
|
font-size: var(--font-size-12);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
|
|
||||||
.missing-header-feature {
|
.missing-header-feature {
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
|
|
@ -170,9 +170,9 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
background-color: light-dark(transparent, @dark-blue);
|
background-color: light-dark(transparent, @dark-blue);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
padding: 5px 10px;
|
padding: 5px 10px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
|
|
@ -182,7 +182,7 @@
|
||||||
font-size: var(--font-size-14);
|
font-size: var(--font-size-14);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
margin-right: 4px;
|
margin-right: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -195,7 +195,7 @@
|
||||||
font-size: var(--font-size-14);
|
font-size: var(--font-size-14);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
img {
|
||||||
|
|
@ -226,7 +226,6 @@
|
||||||
padding-left: 0.5rem;
|
padding-left: 0.5rem;
|
||||||
|
|
||||||
.trait {
|
.trait {
|
||||||
--color-border: light-dark(@semi-transparent-dark-blue, @golden-60);
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
|
|
@ -238,10 +237,10 @@
|
||||||
|
|
||||||
.trait-name {
|
.trait-name {
|
||||||
position: relative;
|
position: relative;
|
||||||
background-color: light-dark(@semi-transparent-dark-blue, @golden-40);
|
background-color: @trait-color-bg;
|
||||||
border: 1px solid var(--color-border);
|
border: 1px solid @trait-color-border;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
color: light-dark(var(--color-light-1), @golden);
|
color: @color-text-emphatic;
|
||||||
font-size: var(--font-size-12);
|
font-size: var(--font-size-12);
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
height: 1rem;
|
height: 1rem;
|
||||||
|
|
@ -250,7 +249,7 @@
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 0 0.1876px 0 0.375rem;
|
padding: 0 0.1876px 0 0.375rem;
|
||||||
margin-right: 0.125rem; /* makes it center SLIGHTLY */
|
margin-right: 0.125rem; /* makes it center SLIGHTLY */
|
||||||
text-shadow: 1px 1px 2px @light-black;
|
text-shadow: 1px 1px 3px @color-text-shadow-contrast;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
@ -259,7 +258,7 @@
|
||||||
.tier-mark {
|
.tier-mark {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
background-color: @dark-blue;
|
background-color: @dark-blue;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
width: 1rem;
|
width: 1rem;
|
||||||
height: 1rem;
|
height: 1rem;
|
||||||
|
|
@ -279,6 +278,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.trait-value-area {
|
.trait-value-area {
|
||||||
|
--color-border: @trait-color-border;
|
||||||
--background: light-dark(#e8e6e3, @dark-blue);
|
--background: light-dark(#e8e6e3, @dark-blue);
|
||||||
display: flex;
|
display: flex;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
@ -298,7 +298,7 @@
|
||||||
|
|
||||||
.spellcasting-mark {
|
.spellcasting-mark {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
color: @golden;
|
color: @golden;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@
|
||||||
|
|
||||||
.btn-toggle-view {
|
.btn-toggle-view {
|
||||||
background: light-dark(@dark-blue-10, @dark-blue);
|
background: light-dark(@dark-blue-10, @dark-blue);
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 15px;
|
border-radius: 15px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
gap: 0;
|
gap: 0;
|
||||||
|
|
@ -54,7 +54,7 @@
|
||||||
span {
|
span {
|
||||||
margin: 1px;
|
margin: 1px;
|
||||||
width: 26px;
|
width: 26px;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
|
|
||||||
&.list-icon {
|
&.list-icon {
|
||||||
i {
|
i {
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@
|
||||||
.application.sheet.dh-style .character-sidebar-sheet {
|
.application.sheet.dh-style .character-sidebar-sheet {
|
||||||
width: 275px;
|
width: 275px;
|
||||||
min-width: 275px;
|
min-width: 275px;
|
||||||
border-right: 1px solid light-dark(@dark-blue, @golden);
|
border-right: 1px solid @color-border;
|
||||||
|
|
||||||
.portrait {
|
.portrait {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
@ -168,7 +168,7 @@
|
||||||
appearance: none;
|
appearance: none;
|
||||||
width: 100px;
|
width: 100px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
background: @dark-blue;
|
background: @dark-blue;
|
||||||
|
|
@ -282,11 +282,11 @@
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: light-dark(@light-black, @dark-blue);
|
background: light-dark(@light-black, @dark-blue);
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
|
|
||||||
h4,
|
h4,
|
||||||
i {
|
i {
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -309,12 +309,12 @@
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
background: @dark-blue;
|
background: @dark-blue;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
|
|
||||||
.armor-slot {
|
.armor-slot {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
@ -343,12 +343,12 @@
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: light-dark(@light-black, @dark-blue);
|
background: light-dark(@light-black, @dark-blue);
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
|
|
||||||
.label,
|
.label,
|
||||||
.value,
|
.value,
|
||||||
i {
|
i {
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -375,7 +375,7 @@
|
||||||
text-align: center;
|
text-align: center;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
color: light-dark(@dark-blue, @beige);
|
color: light-dark(@dark-blue, @beige);
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
border-radius: 6px 6px 0 0;
|
border-radius: 6px 6px 0 0;
|
||||||
|
|
||||||
|
|
@ -411,7 +411,7 @@
|
||||||
appearance: none;
|
appearance: none;
|
||||||
width: 80px;
|
width: 80px;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
background: light-dark(transparent, @dark-blue);
|
background: light-dark(transparent, @dark-blue);
|
||||||
|
|
@ -450,7 +450,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 50px;
|
width: 50px;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
border-radius: 6px 6px 0 0;
|
border-radius: 6px 6px 0 0;
|
||||||
padding: 0 6px;
|
padding: 0 6px;
|
||||||
|
|
@ -513,9 +513,9 @@
|
||||||
align-self: center;
|
align-self: center;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
background-color: light-dark(transparent, @dark-blue);
|
background-color: light-dark(transparent, @dark-blue);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
padding: 5px 10px;
|
padding: 5px 10px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
|
|
@ -525,7 +525,7 @@
|
||||||
font-size: var(--font-size-14);
|
font-size: var(--font-size-14);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
|
|
||||||
&.threshold-value {
|
&.threshold-value {
|
||||||
color: light-dark(@dark, @beige);
|
color: light-dark(@dark, @beige);
|
||||||
|
|
|
||||||
|
|
@ -30,14 +30,14 @@
|
||||||
font-size: var(--font-size-24);
|
font-size: var(--font-size-24);
|
||||||
outline: 2px solid transparent;
|
outline: 2px solid transparent;
|
||||||
box-shadow: unset;
|
box-shadow: unset;
|
||||||
text-shadow: 0 0 4px light-dark(white, @dark-80), 0 0 8px light-dark(white, @dark-80), 0 0 14px light-dark(white, @dark-80);
|
text-shadow: 0 0 4px @color-text-shadow-contrast, 0 0 8px @color-text-shadow-contrast, 0 0 14px @color-text-shadow-contrast;
|
||||||
|
|
||||||
height: 2rem;
|
height: 2rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
outline: 2px solid light-dark(@dark, @golden);
|
outline: 2px solid @color-border;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -68,7 +68,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 50px;
|
width: 50px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
border-radius: 6px 6px 0 0;
|
border-radius: 6px 6px 0 0;
|
||||||
padding: 0 6px;
|
padding: 0 6px;
|
||||||
|
|
@ -100,104 +100,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// .status-bar {
|
|
||||||
// display: flex;
|
|
||||||
// justify-content: center;
|
|
||||||
// position: relative;
|
|
||||||
// width: 100px;
|
|
||||||
// height: 40px;
|
|
||||||
|
|
||||||
// .status-label {
|
|
||||||
// position: relative;
|
|
||||||
// top: 40px;
|
|
||||||
// height: 22px;
|
|
||||||
// width: 79px;
|
|
||||||
// clip-path: path('M0 0H79L74 16.5L39 22L4 16.5L0 0Z');
|
|
||||||
// background: light-dark(@dark-blue, @golden);
|
|
||||||
|
|
||||||
// h4 {
|
|
||||||
// font-weight: bold;
|
|
||||||
// text-align: center;
|
|
||||||
// line-height: 18px;
|
|
||||||
// color: light-dark(@beige, @dark-blue);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// .status-value {
|
|
||||||
// position: absolute;
|
|
||||||
// display: flex;
|
|
||||||
// padding: 0 6px;
|
|
||||||
// font-size: 1.5rem;
|
|
||||||
// align-items: center;
|
|
||||||
// width: 100px;
|
|
||||||
// height: 40px;
|
|
||||||
// justify-content: center;
|
|
||||||
// text-align: center;
|
|
||||||
// z-index: 2;
|
|
||||||
// color: @beige;
|
|
||||||
|
|
||||||
// input[type='number'] {
|
|
||||||
// background: transparent;
|
|
||||||
// font-size: 1.5rem;
|
|
||||||
// width: 40px;
|
|
||||||
// height: 30px;
|
|
||||||
// text-align: center;
|
|
||||||
// border: none;
|
|
||||||
// outline: 2px solid transparent;
|
|
||||||
// color: @beige;
|
|
||||||
|
|
||||||
// &.bar-input {
|
|
||||||
// padding: 0;
|
|
||||||
// color: @beige;
|
|
||||||
// backdrop-filter: none;
|
|
||||||
// background: transparent;
|
|
||||||
// transition: all 0.3s ease;
|
|
||||||
|
|
||||||
// &:hover,
|
|
||||||
// &:focus {
|
|
||||||
// background: @semi-transparent-dark-blue;
|
|
||||||
// backdrop-filter: blur(9.5px);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// .bar-label {
|
|
||||||
// width: 40px;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// .progress-bar {
|
|
||||||
// position: absolute;
|
|
||||||
// appearance: none;
|
|
||||||
// width: 100px;
|
|
||||||
// height: 40px;
|
|
||||||
// border: 1px solid light-dark(@dark-blue, @golden);
|
|
||||||
// border-radius: 6px;
|
|
||||||
// z-index: 1;
|
|
||||||
// background: @dark-blue;
|
|
||||||
|
|
||||||
// &::-webkit-progress-bar {
|
|
||||||
// border: none;
|
|
||||||
// background: @dark-blue;
|
|
||||||
// border-radius: 6px;
|
|
||||||
// }
|
|
||||||
// &::-webkit-progress-value {
|
|
||||||
// background: @gradient-hp;
|
|
||||||
// border-radius: 6px;
|
|
||||||
// }
|
|
||||||
// &.stress-color::-webkit-progress-value {
|
|
||||||
// background: @gradient-stress;
|
|
||||||
// border-radius: 6px;
|
|
||||||
// }
|
|
||||||
// &::-moz-progress-bar {
|
|
||||||
// background: @gradient-hp;
|
|
||||||
// border-radius: 6px;
|
|
||||||
// }
|
|
||||||
// &.stress-color::-moz-progress-bar {
|
|
||||||
// background: @gradient-stress;
|
|
||||||
// border-radius: 6px;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
.level-div {
|
.level-div {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
||||||
|
|
@ -36,15 +36,14 @@
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
outline: 2px solid transparent;
|
outline: 2px solid transparent;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
text-shadow: 0 0 4px light-dark(white, @dark-80), 0 0 8px light-dark(white, @dark-80), 0 0 14px light-dark(white, @dark-80);
|
text-shadow: 0 0 4px @color-text-shadow-contrast, 0 0 8px @color-text-shadow-contrast, 0 0 14px @color-text-shadow-contrast;
|
||||||
|
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
height: 2.625rem;
|
height: 2.625rem;
|
||||||
|
|
||||||
&:hover[type='text'],
|
&:hover[type='text'],
|
||||||
&:focus[type='text'] {
|
&:focus[type='text'] {
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
outline: 2px solid light-dark(@dark-blue, @golden);
|
outline: 2px solid @color-border;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -98,7 +97,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 50px;
|
width: 50px;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
border-radius: 6px 6px 0 0;
|
border-radius: 6px 6px 0 0;
|
||||||
padding: 0 6px;
|
padding: 0 6px;
|
||||||
|
|
|
||||||
|
|
@ -20,11 +20,12 @@
|
||||||
input.item-name[type='text'] {
|
input.item-name[type='text'] {
|
||||||
backdrop-filter: none;
|
backdrop-filter: none;
|
||||||
border: none;
|
border: none;
|
||||||
|
color: @color-text-emphatic;
|
||||||
font-family: @font-title;
|
font-family: @font-title;
|
||||||
font-size: var(--font-size-32);
|
font-size: var(--font-size-32);
|
||||||
outline: 2px solid transparent;
|
outline: 2px solid transparent;
|
||||||
box-shadow: unset;
|
box-shadow: unset;
|
||||||
text-shadow: 0 0 4px light-dark(white, @dark-80), 0 0 8px light-dark(white, @dark-80), 0 0 14px light-dark(white, @dark-80);
|
text-shadow: 0 0 4px @color-text-shadow-contrast, 0 0 8px @color-text-shadow-contrast, 0 0 14px @color-text-shadow-contrast;
|
||||||
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
|
|
@ -33,7 +34,7 @@
|
||||||
|
|
||||||
&:hover[type='text'],
|
&:hover[type='text'],
|
||||||
&:focus[type='text'] {
|
&:focus[type='text'] {
|
||||||
outline: 2px solid light-dark(@dark-blue, @golden);
|
outline: 2px solid @color-border;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -79,9 +79,9 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
background-color: light-dark(var(--color-light-1), @dark-blue);
|
background-color: light-dark(var(--color-light-1), @dark-blue);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
padding: 4px 6px;
|
padding: 4px 6px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
align-items: baseline;
|
align-items: baseline;
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
|
|
@ -93,7 +93,7 @@
|
||||||
|
|
||||||
&.threshold-label {
|
&.threshold-label {
|
||||||
font-size: var(--font-size-10);
|
font-size: var(--font-size-10);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.threshold-value {
|
&.threshold-value {
|
||||||
|
|
@ -116,7 +116,7 @@
|
||||||
width: 100%;
|
width: 100%;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
font-size: var(--font-size-20);
|
font-size: var(--font-size-20);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -132,9 +132,9 @@
|
||||||
.hope-section {
|
.hope-section {
|
||||||
display: flex;
|
display: flex;
|
||||||
background-color: light-dark(transparent, @dark-blue);
|
background-color: light-dark(transparent, @dark-blue);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
padding: 3px 6px;
|
padding: 3px 6px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
|
|
@ -144,7 +144,7 @@
|
||||||
font-size: var(--font-size-12);
|
font-size: var(--font-size-12);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
margin-right: 3px;
|
margin-right: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -212,9 +212,9 @@
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
|
|
||||||
background-color: light-dark(@dark-blue-10, @dark-blue);
|
background-color: light-dark(@dark-blue-10, @dark-blue);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
padding: 2px 5px;
|
padding: 2px 5px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 0 6px 6px 0;
|
border-radius: 0 6px 6px 0;
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
min-height: 22px;
|
min-height: 22px;
|
||||||
|
|
@ -232,7 +232,7 @@
|
||||||
.slot {
|
.slot {
|
||||||
width: 16px;
|
width: 16px;
|
||||||
height: 10px;
|
height: 10px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
background: light-dark(@dark-blue-10, @golden-10);
|
background: light-dark(@dark-blue-10, @golden-10);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
|
|
@ -248,7 +248,7 @@
|
||||||
|
|
||||||
.traits {
|
.traits {
|
||||||
background-color: light-dark(@dark-blue-10, @dark-blue);
|
background-color: light-dark(@dark-blue-10, @dark-blue);
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr 1fr;
|
grid-template-columns: 1fr 1fr;
|
||||||
|
|
@ -260,7 +260,7 @@
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
gap: 3px;
|
gap: 3px;
|
||||||
.label {
|
.label {
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
.value {
|
.value {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
i {
|
i {
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -71,7 +71,7 @@
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
|
|
||||||
.main-value {
|
.main-value {
|
||||||
font-size: var(--font-size-24);
|
font-size: var(--font-size-24);
|
||||||
|
|
@ -153,7 +153,7 @@
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
background: light-dark(@dark-blue-10, @golden-10);
|
background: light-dark(@dark-blue-10, @golden-10);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
|
|
||||||
&.finished {
|
&.finished {
|
||||||
background-color: initial;
|
background-color: initial;
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
a[href] {
|
a[href] {
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
|
|
||||||
a[href]:hover,
|
a[href]:hover,
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
border: 0;
|
border: 0;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
color: var(--color-text-primary);
|
color: @color-text-primary;
|
||||||
width: 300px;
|
width: 300px;
|
||||||
pointer-events: all;
|
pointer-events: all;
|
||||||
align-self: flex-end;
|
align-self: flex-end;
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
.effect-container {
|
.effect-container {
|
||||||
position: relative;
|
position: relative;
|
||||||
pointer-events: all;
|
pointer-events: all;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
|
|
|
||||||
|
|
@ -200,7 +200,7 @@
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
background-color: light-dark(@dark-blue-40, @golden-40);
|
background-color: light-dark(@dark-blue-40, @golden-40);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
|
|
||||||
.subfolder-list {
|
.subfolder-list {
|
||||||
|
|
@ -218,7 +218,7 @@
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
background-color: light-dark(@dark-blue-10, @golden-10);
|
background-color: light-dark(@dark-blue-10, @golden-10);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrapper {
|
.wrapper {
|
||||||
|
|
@ -265,8 +265,8 @@
|
||||||
.item-list-header {
|
.item-list-header {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background-color: light-dark(@dark-15, @dark-golden-80);
|
background-color: light-dark(@dark-15, @dark-golden-80);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
min-height: 30px;
|
min-height: 30px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
|
|
||||||
&.selectable {
|
&.selectable {
|
||||||
|
|
@ -76,7 +76,7 @@
|
||||||
.domain-label {
|
.domain-label {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 4px;
|
top: 4px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
padding: 0 2px;
|
padding: 0 2px;
|
||||||
color: light-dark(@dark, @beige);
|
color: light-dark(@dark, @beige);
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
|
|
||||||
i {
|
i {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
border: 1px solid;
|
border: 1px solid;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
padding: 0 8px;
|
padding: 0 8px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
color: light-dark(@dark, @beige);
|
color: light-dark(@dark, @beige);
|
||||||
background-image: url('../assets/parchments/dh-parchment-dark.png');
|
background-image: url('../assets/parchments/dh-parchment-dark.png');
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
@import '../../utils/colors.less';
|
@import '../../utils/colors.less';
|
||||||
|
|
||||||
.daggerheart.dh-style.setting {
|
.daggerheart.dh-style.setting {
|
||||||
--color-form-label: var(--color-text-primary);
|
--color-form-label: @color-text-primary;
|
||||||
|
|
||||||
h2,
|
h2,
|
||||||
h3,
|
h3,
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
background: light-dark(@dark-blue-10, @golden-10);
|
background: light-dark(@dark-blue-10, @golden-10);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
|
|
||||||
.label {
|
.label {
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@
|
||||||
--dark-blue-50: #18162e50;
|
--dark-blue-50: #18162e50;
|
||||||
--dark-blue-60: #18162e60;
|
--dark-blue-60: #18162e60;
|
||||||
--dark-blue-90: #18162e90;
|
--dark-blue-90: #18162e90;
|
||||||
--dark-blue-d0: #18162ed0;
|
--dark-blue-c0: #18162ec0;
|
||||||
--semi-transparent-dark-blue: rgba(24, 22, 46, 0.33);
|
--semi-transparent-dark-blue: rgba(24, 22, 46, 0.33);
|
||||||
|
|
||||||
--dark: #222222;
|
--dark: #222222;
|
||||||
|
|
@ -71,6 +71,7 @@
|
||||||
--beige-filter: brightness(0) saturate(100%) invert(87%) sepia(25%) saturate(164%) hue-rotate(339deg) brightness(106%) contrast(87%);
|
--beige-filter: brightness(0) saturate(100%) invert(87%) sepia(25%) saturate(164%) hue-rotate(339deg) brightness(106%) contrast(87%);
|
||||||
--bright-beige-filter: brightness(0) saturate(100%) invert(87%) sepia(15%) saturate(343%) hue-rotate(333deg) brightness(110%) contrast(87%);
|
--bright-beige-filter: brightness(0) saturate(100%) invert(87%) sepia(15%) saturate(343%) hue-rotate(333deg) brightness(110%) contrast(87%);
|
||||||
|
|
||||||
|
--light-white: rgba(255, 255, 255, 0.3);
|
||||||
--soft-white-shadow: rgba(255, 255, 255, 0.05);
|
--soft-white-shadow: rgba(255, 255, 255, 0.05);
|
||||||
|
|
||||||
--light-black: rgba(0, 0, 0, 0.3);
|
--light-black: rgba(0, 0, 0, 0.3);
|
||||||
|
|
@ -83,8 +84,47 @@
|
||||||
--gradient-stress: linear-gradient(15deg, rgb(130, 59, 1) 0%, rgb(252, 142, 69) 65%, rgb(190, 0, 0) 100%);
|
--gradient-stress: linear-gradient(15deg, rgb(130, 59, 1) 0%, rgb(252, 142, 69) 65%, rgb(190, 0, 0) 100%);
|
||||||
|
|
||||||
--primary-color-fear: rgba(9, 71, 179, 0.75);
|
--primary-color-fear: rgba(9, 71, 179, 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
--dh-color-text-subtle: light-dark(#555, #a29086);
|
/**
|
||||||
|
* Override core foundry color variables in theme scopes, and add some new theme specific variants.
|
||||||
|
* These are intended to be more representative of its use case, so avoid naming these after the color.
|
||||||
|
* Some foundry variables are heavily scoped and we need to redefine them (https://github.com/foundryvtt/foundryvtt/issues/12893)
|
||||||
|
* Convention for the redefined ones is --dh-{element}-color-{thing}
|
||||||
|
*/
|
||||||
|
@scope (.theme-light) to (.themed) {
|
||||||
|
.dh-style :scope,
|
||||||
|
:scope.dh-style,
|
||||||
|
.dh-style,
|
||||||
|
.duality {
|
||||||
|
--color-border: @dark-blue;
|
||||||
|
--color-fieldset-border: @dark-blue;
|
||||||
|
--color-text-emphatic: @dark-blue;
|
||||||
|
--color-text-subtle: #555;
|
||||||
|
|
||||||
|
--dh-color-text-shadow-contrast: #ffffffa0;
|
||||||
|
--dh-input-color-border: @dark;
|
||||||
|
--dh-input-color-text: @dark;
|
||||||
|
--dh-trait-color-bg: #b1afb6;
|
||||||
|
--dh-trait-color-border: #8e8d96;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@scope (.theme-dark) to (.themed) {
|
||||||
|
.dh-style :scope,
|
||||||
|
:scope.dh-style,
|
||||||
|
.dh-style,
|
||||||
|
.duality {
|
||||||
|
--color-border: @golden;
|
||||||
|
--color-fieldset-border: @golden;
|
||||||
|
--color-text-emphatic: @golden;
|
||||||
|
--color-text-subtle: #a29086;
|
||||||
|
|
||||||
|
--dh-color-text-shadow-contrast: @dark-80;
|
||||||
|
--dh-input-color-border: @beige;
|
||||||
|
--dh-input-color-text: @beige;
|
||||||
|
--dh-trait-color-bg: #50433F;
|
||||||
|
--dh-trait-color-border: #927952;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@primary-blue: var(--primary-blue, #1488cc);
|
@primary-blue: var(--primary-blue, #1488cc);
|
||||||
|
|
@ -139,7 +179,7 @@
|
||||||
@dark-blue-50: var(--dark-blue-50, #18162e50);
|
@dark-blue-50: var(--dark-blue-50, #18162e50);
|
||||||
@dark-blue-60: var(--dark-blue-60, #18162e60);
|
@dark-blue-60: var(--dark-blue-60, #18162e60);
|
||||||
@dark-blue-90: var(--dark-blue-90, #18162e90);
|
@dark-blue-90: var(--dark-blue-90, #18162e90);
|
||||||
@dark-blue-d0: var(--dark-blue-d0, #18162ed0);
|
@dark-blue-c0: var(--dark-blue-c0, #18162ec0);
|
||||||
@semi-transparent-dark-blue: var(--semi-transparent-dark-blue, rgba(24, 22, 46, 0.33));
|
@semi-transparent-dark-blue: var(--semi-transparent-dark-blue, rgba(24, 22, 46, 0.33));
|
||||||
|
|
||||||
@dark: var(--dark, #222222);
|
@dark: var(--dark, #222222);
|
||||||
|
|
@ -161,6 +201,7 @@
|
||||||
|
|
||||||
@soft-white-shadow: var(--soft-white-shadow, rgba(255, 255, 255, 0.05));
|
@soft-white-shadow: var(--soft-white-shadow, rgba(255, 255, 255, 0.05));
|
||||||
|
|
||||||
|
@light-white: var(--light-white, rgba(255, 255, 255, 0.3));
|
||||||
@light-black: var(--light-black, rgba(0, 0, 0, 0.3));
|
@light-black: var(--light-black, rgba(0, 0, 0, 0.3));
|
||||||
@soft-shadow: var(--soft-shadow, rgba(0, 0, 0, 0.05));
|
@soft-shadow: var(--soft-shadow, rgba(0, 0, 0, 0.05));
|
||||||
|
|
||||||
|
|
@ -193,4 +234,14 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@color-text-subtle: var(--dh-color-text-subtle);
|
// LESS variable versions of core foundry color variables
|
||||||
|
@color-border: var(--color-border);
|
||||||
|
@color-fieldset-border: var(--color-fieldset-border);
|
||||||
|
@color-text-emphatic: var(--color-text-emphatic);
|
||||||
|
@color-text-primary: var(--color-text-primary);
|
||||||
|
@color-text-subtle: var(--color-text-subtle);
|
||||||
|
@color-text-shadow-contrast: var(--dh-color-text-shadow-contrast);
|
||||||
|
@input-color-border: var(--dh-input-color-border);
|
||||||
|
@input-color-text: var(--dh-input-color-text);
|
||||||
|
@trait-color-bg: var(--dh-trait-color-bg);
|
||||||
|
@trait-color-border: var(--dh-trait-color-border);
|
||||||
|
|
@ -5,16 +5,16 @@
|
||||||
*/
|
*/
|
||||||
.appTheme(@darkRules, @lightRules) {
|
.appTheme(@darkRules, @lightRules) {
|
||||||
// Dark theme selectors
|
// Dark theme selectors
|
||||||
.themed.theme-dark .application.daggerheart.sheet.dh-style,
|
.themed.theme-dark .application.daggerheart.dh-style,
|
||||||
.themed.theme-dark.application.daggerheart.sheet.dh-style,
|
.themed.theme-dark.application.daggerheart.dh-style,
|
||||||
body.theme-dark .application.daggerheart,
|
body.theme-dark .application.daggerheart,
|
||||||
body.theme-dark.application.daggerheart {
|
body.theme-dark.application.daggerheart {
|
||||||
@darkRules();
|
@darkRules();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Light theme selectors
|
// Light theme selectors
|
||||||
.themed.theme-light .application.daggerheart.sheet.dh-style,
|
.themed.theme-light .application.daggerheart.dh-style,
|
||||||
.themed.theme-light.application.daggerheart.sheet.dh-style,
|
.themed.theme-light.application.daggerheart.dh-style,
|
||||||
body.theme-light .application.daggerheart,
|
body.theme-light .application.daggerheart,
|
||||||
body.theme-light.application.daggerheart {
|
body.theme-light.application.daggerheart {
|
||||||
@lightRules();
|
@lightRules();
|
||||||
|
|
@ -50,15 +50,16 @@
|
||||||
*/
|
*/
|
||||||
.dh-typography() {
|
.dh-typography() {
|
||||||
h1 {
|
h1 {
|
||||||
|
--dh-input-color-text: @color-text-emphatic;
|
||||||
font-family: @font-title;
|
font-family: @font-title;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
border: none;
|
border: none;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
input[type='text'],
|
||||||
|
.input[contenteditable] {
|
||||||
h1 input[type='text'] {
|
|
||||||
font-family: @font-title;
|
font-family: @font-title;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
h2,
|
h2,
|
||||||
h3 {
|
h3 {
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@
|
||||||
appearance: none;
|
appearance: none;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
background: @dark-blue;
|
background: @dark-blue;
|
||||||
|
|
@ -118,13 +118,13 @@
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
background: @dark-blue;
|
background: @dark-blue;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
min-height: 30px;
|
min-height: 30px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,9 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
background-color: light-dark(transparent, @dark-blue);
|
background-color: light-dark(transparent, @dark-blue);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
padding: 5px 10px;
|
padding: 5px 10px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
font-size: var(--font-size-14);
|
font-size: var(--font-size-14);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ aside[role='tooltip']:has(div.daggerheart.dh-style.tooltip),
|
||||||
#tooltip.bordered-tooltip {
|
#tooltip.bordered-tooltip {
|
||||||
.tooltip-title {
|
.tooltip-title {
|
||||||
font-size: var(--font-size-20);
|
font-size: var(--font-size-20);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -132,7 +132,7 @@ aside[role='tooltip']:has(div.daggerheart.dh-style.tooltip.card-style) {
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
padding: 3px;
|
padding: 3px;
|
||||||
background: light-dark(@dark-blue-60, @rustic-brown-80);
|
background: light-dark(@dark-blue-60, @rustic-brown-80);
|
||||||
color: light-dark(@dark-blue, @golden);
|
color: @color-text-emphatic;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
@ -238,7 +238,7 @@ aside[role='tooltip'].locked-tooltip:has(div.daggerheart.dh-style.tooltip.card-s
|
||||||
.tooltip-chip {
|
.tooltip-chip {
|
||||||
font-size: var(--font-size-18);
|
font-size: var(--font-size-18);
|
||||||
padding: 2px 4px;
|
padding: 2px 4px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid @color-border;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
color: light-dark(@dark, @beige);
|
color: light-dark(@dark, @beige);
|
||||||
background-image: url(../assets/parchments/dh-parchment-dark.png);
|
background-image: url(../assets/parchments/dh-parchment-dark.png);
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
"id": "daggerheart",
|
"id": "daggerheart",
|
||||||
"title": "Daggerheart",
|
"title": "Daggerheart",
|
||||||
"description": "An unofficial implementation of the Daggerheart system",
|
"description": "An unofficial implementation of the Daggerheart system",
|
||||||
"version": "2.2.6",
|
"version": "2.2.7",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "14.361",
|
"minimum": "14.361",
|
||||||
"verified": "14.363",
|
"verified": "14.363",
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
},
|
},
|
||||||
"url": "https://github.com/Foundryborne/daggerheart",
|
"url": "https://github.com/Foundryborne/daggerheart",
|
||||||
"manifest": "https://raw.githubusercontent.com/Foundryborne/daggerheart/v14/system.json",
|
"manifest": "https://raw.githubusercontent.com/Foundryborne/daggerheart/v14/system.json",
|
||||||
"download": "https://github.com/Foundryborne/daggerheart/releases/download/2.2.6/system.zip",
|
"download": "https://github.com/Foundryborne/daggerheart/releases/download/2.2.7/system.zip",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "WBHarry"
|
"name": "WBHarry"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue