mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-12 03:31:07 +01:00
enhance death roll dialog style (#440)
This commit is contained in:
parent
6d7401c874
commit
0a944eb3d4
11 changed files with 120 additions and 19 deletions
|
|
@ -293,6 +293,7 @@
|
||||||
"usedMarks": "Used Marks"
|
"usedMarks": "Used Marks"
|
||||||
},
|
},
|
||||||
"DeathMove": {
|
"DeathMove": {
|
||||||
|
"selectMove": "Select Move",
|
||||||
"takeMove": "Take Death Move",
|
"takeMove": "Take Death Move",
|
||||||
"title": "{actor} - Death Move"
|
"title": "{actor} - Death Move"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,9 @@ export default class DhpDeathMove extends HandlebarsApplicationMixin(Application
|
||||||
}
|
}
|
||||||
|
|
||||||
static DEFAULT_OPTIONS = {
|
static DEFAULT_OPTIONS = {
|
||||||
classes: ['daggerheart', 'views', 'death-move'],
|
classes: ['daggerheart', 'dh-style', 'dialog', 'views', 'death-move'],
|
||||||
position: { width: 800, height: 'auto' },
|
position: { width: 'auto', height: 'auto' },
|
||||||
|
window: { icon: 'fa-solid fa-skull' },
|
||||||
actions: {
|
actions: {
|
||||||
selectMove: this.selectMove,
|
selectMove: this.selectMove,
|
||||||
takeMove: this.takeMove
|
takeMove: this.takeMove
|
||||||
|
|
@ -32,6 +33,7 @@ export default class DhpDeathMove extends HandlebarsApplicationMixin(Application
|
||||||
const context = await super._prepareContext(_options);
|
const context = await super._prepareContext(_options);
|
||||||
context.selectedMove = this.selectedMove;
|
context.selectedMove = this.selectedMove;
|
||||||
context.options = CONFIG.DH.GENERAL.deathMoves;
|
context.options = CONFIG.DH.GENERAL.deathMoves;
|
||||||
|
context.title = game.i18n.localize('DAGGERHEART.APPLICATIONS.DeathMove.takeMove');
|
||||||
|
|
||||||
return context;
|
return context;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -322,18 +322,21 @@ export const deathMoves = {
|
||||||
id: 'avoidDeath',
|
id: 'avoidDeath',
|
||||||
name: 'DAGGERHEART.CONFIG.DeathMoves.avoidDeath.name',
|
name: 'DAGGERHEART.CONFIG.DeathMoves.avoidDeath.name',
|
||||||
img: 'icons/magic/time/hourglass-yellow-green.webp',
|
img: 'icons/magic/time/hourglass-yellow-green.webp',
|
||||||
|
icon: 'fa-person-running',
|
||||||
description: 'DAGGERHEART.CONFIG.DeathMoves.avoidDeath.description'
|
description: 'DAGGERHEART.CONFIG.DeathMoves.avoidDeath.description'
|
||||||
},
|
},
|
||||||
riskItAll: {
|
riskItAll: {
|
||||||
id: 'riskItAll',
|
id: 'riskItAll',
|
||||||
name: 'DAGGERHEART.CONFIG.DeathMoves.riskItAll.name',
|
name: 'DAGGERHEART.CONFIG.DeathMoves.riskItAll.name',
|
||||||
img: 'icons/sundries/gaming/dice-pair-white-green.webp',
|
img: 'icons/sundries/gaming/dice-pair-white-green.webp',
|
||||||
|
icon: 'fa-dice',
|
||||||
description: 'DAGGERHEART.CONFIG.DeathMoves.riskItAll.description'
|
description: 'DAGGERHEART.CONFIG.DeathMoves.riskItAll.description'
|
||||||
},
|
},
|
||||||
blazeOfGlory: {
|
blazeOfGlory: {
|
||||||
id: 'blazeOfGlory',
|
id: 'blazeOfGlory',
|
||||||
name: 'DAGGERHEART.CONFIG.DeathMoves.blazeOfGlory.name',
|
name: 'DAGGERHEART.CONFIG.DeathMoves.blazeOfGlory.name',
|
||||||
img: 'icons/magic/life/heart-cross-strong-flame-purple-orange.webp',
|
img: 'icons/magic/life/heart-cross-strong-flame-purple-orange.webp',
|
||||||
|
icon: 'fa-burst',
|
||||||
description: 'DAGGERHEART.CONFIG.DeathMoves.blazeOfGlory.description'
|
description: 'DAGGERHEART.CONFIG.DeathMoves.blazeOfGlory.description'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -87,6 +87,26 @@ export default class DhTooltipManager extends foundry.helpers.interaction.Toolti
|
||||||
this.tooltip.innerHTML = html;
|
this.tooltip.innerHTML = html;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const deathMove = element.dataset.tooltip?.startsWith('#deathMove#');
|
||||||
|
if (deathMove) {
|
||||||
|
const name = element.dataset.deathName;
|
||||||
|
const img = element.dataset.deathImg;
|
||||||
|
const description = element.dataset.deathDescription;
|
||||||
|
|
||||||
|
html = await foundry.applications.handlebars.renderTemplate(
|
||||||
|
`systems/daggerheart/templates/ui/tooltip/death-move.hbs`,
|
||||||
|
{
|
||||||
|
move: { name: name, img: img, description: description }
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
this.tooltip.innerHTML = html;
|
||||||
|
options.direction = this._determineItemTooltipDirection(
|
||||||
|
element,
|
||||||
|
this.constructor.TOOLTIP_DIRECTIONS.RIGHT
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
super.activate(element, { ...options, html: html });
|
super.activate(element, { ...options, html: html });
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
@import '../../utils/fonts.less';
|
@import '../../utils/fonts.less';
|
||||||
|
@import '../../utils/colors.less';
|
||||||
|
|
||||||
.application.daggerheart.dh-style {
|
.application.daggerheart.dh-style {
|
||||||
.actions-list,
|
.actions-list,
|
||||||
|
|
@ -36,7 +37,8 @@
|
||||||
|
|
||||||
.action-item {
|
.action-item {
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: rgba(255, 255, 255, 0.05);
|
background-color: light-dark(@soft-shadow, @soft-white-shadow);
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
|
|
@ -47,7 +49,6 @@
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
font-family: @font-body;
|
font-family: @font-body;
|
||||||
cursor: pointer;
|
|
||||||
flex: 1;
|
flex: 1;
|
||||||
i {
|
i {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
|
||||||
57
styles/less/dialog/death-move/death-move-container.less
Normal file
57
styles/less/dialog/death-move/death-move-container.less
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
@import '../../utils/spacing.less';
|
||||||
|
@import '../../utils/colors.less';
|
||||||
|
@import '../../utils/fonts.less';
|
||||||
|
|
||||||
|
.daggerheart.dh-style.dialog.death-move {
|
||||||
|
.death-move-container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 5px;
|
||||||
|
|
||||||
|
.moves-list {
|
||||||
|
.move-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 5px;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: light-dark(@soft-shadow, @soft-white-shadow);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
padding: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
transition: background-color 0.3s ease-in-out;
|
||||||
|
|
||||||
|
.label {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 10px;
|
||||||
|
font-family: @font-body;
|
||||||
|
cursor: pointer;
|
||||||
|
flex: 1;
|
||||||
|
i {
|
||||||
|
text-align: center;
|
||||||
|
width: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type='radio'] {
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
margin-top: 8px;
|
||||||
|
display: flex;
|
||||||
|
gap: 8px;
|
||||||
|
|
||||||
|
button {
|
||||||
|
flex: 1;
|
||||||
|
height: 40px;
|
||||||
|
font-family: @font-body;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
@import '../../utils/spacing.less';
|
@import '../../utils/spacing.less';
|
||||||
@import '../../utils/colors.less';
|
@import '../../utils/colors.less';
|
||||||
|
@import '../../utils/fonts.less';
|
||||||
|
|
||||||
.theme-light .daggerheart.dh-style.views.downtime {
|
.theme-light .daggerheart.dh-style.views.downtime {
|
||||||
.downtime-container .activity-container .activity-selected-marker {
|
.downtime-container .activity-container .activity-selected-marker {
|
||||||
|
|
@ -69,7 +70,9 @@
|
||||||
|
|
||||||
button {
|
button {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
font-family: 'Montserrat', sans-serif;
|
height: 40px;
|
||||||
|
font-family: @font-body;
|
||||||
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,8 @@
|
||||||
|
|
||||||
@import './downtime/downtime-container.less';
|
@import './downtime/downtime-container.less';
|
||||||
|
|
||||||
|
@import './death-move/death-move-container.less';
|
||||||
|
|
||||||
@import './beastform/sheet.less';
|
@import './beastform/sheet.less';
|
||||||
|
|
||||||
@import './character-creation/creation-action-footer.less';
|
@import './character-creation/creation-action-footer.less';
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,8 @@
|
||||||
@beige-15: #efe6d815;
|
@beige-15: #efe6d815;
|
||||||
@beige-50: #efe6d850;
|
@beige-50: #efe6d850;
|
||||||
|
|
||||||
|
@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);
|
||||||
@soft-shadow: rgba(0, 0, 0, 0.05);
|
@soft-shadow: rgba(0, 0, 0, 0.05);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,22 @@
|
||||||
<div>
|
<div>
|
||||||
<div class="downtime-container">
|
<header class="dialog-header">
|
||||||
{{#each this.options as |option key|}}
|
<h1>{{title}}</h1>
|
||||||
<div class="activity-container">
|
</header>
|
||||||
<div class="activity-title">
|
<div class="death-move-container">
|
||||||
<img class="activity-image {{#if (eq ../selectedMove.id key)}}selected{{/if}}" src="{{option.img}}" data-action="selectMove" data-move="{{key}}" />
|
<ul class="moves-list">
|
||||||
<span class="activity-title-text">{{localize this.name}}</span>
|
{{#each this.options as |option key|}}
|
||||||
</div>
|
<li class="move-item" data-tooltip="{{concat "#" "deathMove" "#"}}" data-action="selectMove" data-move="{{key}}"data-death-img="{{option.img}}" data-death-name="{{this.name}}" data-death-description="{{this.description}}">
|
||||||
<div class="activity-body">
|
<label class="label" for="{{id}}" data-tooltip="{{localize tooltip}}" data-tooltip-direction="LEFT">
|
||||||
{{localize this.description}}
|
<i class="fa-solid {{icon}} fa-xl"></i>
|
||||||
</div>
|
<span class="label">{{localize this.name}}</span>
|
||||||
</div>
|
</label>
|
||||||
{{/each}}
|
<input type="radio" {{#if (eq ../this.selectedMove.id option.id)}}checked{{/if}}>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<footer class="flexrow">
|
<footer class="flexrow">
|
||||||
<button data-action="takeMove" {{#if (not this.selectedMove)}}disabled{{/if}}>{{localize "DAGGERHEART.APPLICATIONS.DeathMove.takeMove"}}</button>
|
<button data-action="close">{{localize "Cancel"}}</button>
|
||||||
<button data-action="close">{{localize "DAGGERHEART.Application.Cancel"}}</button>
|
<button data-action="takeMove" {{#if (not this.selectedMove)}}disabled{{/if}}>{{localize "DAGGERHEART.APPLICATIONS.DeathMove.selectMove"}}</button>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
7
templates/ui/tooltip/death-move.hbs
Normal file
7
templates/ui/tooltip/death-move.hbs
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<div class="daggerheart dh-style tooltip">
|
||||||
|
<div class="tooltip-title-container">
|
||||||
|
<img class="tooltip-image" src="{{move.img}}" />
|
||||||
|
<h2 class="tooltip-title">{{localize move.name}}</h2>
|
||||||
|
</div>
|
||||||
|
<div class="tooltip-description">{{{localize move.description}}}</div>
|
||||||
|
</div>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue