forked from public/bol
Compare commits
2 Commits
bol-v10.4.
...
bol-v10.4.
Author | SHA1 | Date | |
---|---|---|---|
7b4e5bcbfa | |||
31bd83b0ab |
11
css/bol.css
11
css/bol.css
@ -442,6 +442,9 @@ ul.no-bullets {
|
|||||||
.bol .inc-dec-btns {
|
.bol .inc-dec-btns {
|
||||||
color: #4b4a44;
|
color: #4b4a44;
|
||||||
}
|
}
|
||||||
|
.summmary-number {
|
||||||
|
padding-left: 4rem;
|
||||||
|
}
|
||||||
/* Items List */
|
/* Items List */
|
||||||
.items-list {
|
.items-list {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
@ -519,7 +522,10 @@ ul.no-bullets {
|
|||||||
.items-list .item .item-control {
|
.items-list .item .item-control {
|
||||||
color: #4b4a44;
|
color: #4b4a44;
|
||||||
}
|
}
|
||||||
|
.items-list .item-name-fixed-medium {
|
||||||
|
min-width: 8rem;
|
||||||
|
width: 8rem;
|
||||||
|
}
|
||||||
/* ----------------------------------------- */
|
/* ----------------------------------------- */
|
||||||
/* Premade colors */
|
/* Premade colors */
|
||||||
/* ----------------------------------------- */
|
/* ----------------------------------------- */
|
||||||
@ -1054,3 +1060,6 @@ body.system-bol img#logo {
|
|||||||
margin-top: 2px;
|
margin-top: 2px;
|
||||||
margin-bottom: 2px;
|
margin-bottom: 2px;
|
||||||
}
|
}
|
||||||
|
.character-summary-container {
|
||||||
|
opacity: 0.95;
|
||||||
|
}
|
||||||
|
@ -40,7 +40,7 @@ export class BoLCalendar extends Application {
|
|||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
// position
|
// position
|
||||||
this.calendarPos = duplicate(game.settings.get(SYSTEM_RDD, "calendar-pos"));
|
this.calendarPos = duplicate(game.settings.get("bol", "calendar-pos"));
|
||||||
if (this.calendarPos == undefined || this.calendarPos.top == undefined) {
|
if (this.calendarPos == undefined || this.calendarPos.top == undefined) {
|
||||||
this.calendrierPos = BoLCalendar.createCalendarPos()
|
this.calendrierPos = BoLCalendar.createCalendarPos()
|
||||||
game.settings.set("bol", "calendar-pos", this.calendarPos)
|
game.settings.set("bol", "calendar-pos", this.calendarPos)
|
||||||
|
66
module/system/bol-character-summary.js
Normal file
66
module/system/bol-character-summary.js
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
/* -------------------------------------------- */
|
||||||
|
import { BoLUtility } from "./bol-utility.js";
|
||||||
|
import { BoLRoll } from "../controllers/bol-rolls.js";
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
export class BoLCharacterSummary extends Application {
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static displayPCSummary(){
|
||||||
|
let pcList = new BoLCharacterSummary()
|
||||||
|
pcList.render(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static createSummaryPos() {
|
||||||
|
return { top: 200, left: 200 };
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
constructor() {
|
||||||
|
if ( !game.user.isGM ) { // Uniquement si GM
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static get defaultOptions() {
|
||||||
|
return mergeObject(super.defaultOptions, {
|
||||||
|
template: "systems/bol/templates/apps/character-summary-template.html",
|
||||||
|
popOut: true,
|
||||||
|
resizable: true,
|
||||||
|
classes: ["bol", "dialog"], width: 820, height: 'fit-content'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getData() {
|
||||||
|
let formData = super.getData();
|
||||||
|
|
||||||
|
formData.pcs = game.actors.filter( ac => ac.type == "character" && ac.hasPlayerOwner )
|
||||||
|
formData.config = game.bol.config
|
||||||
|
|
||||||
|
return formData
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/** @override */
|
||||||
|
async activateListeners(html) {
|
||||||
|
super.activateListeners(html);
|
||||||
|
|
||||||
|
html.find('.summary-roll').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item")
|
||||||
|
const actor = game.actors.get(li.data("actor-id"))
|
||||||
|
let type = $(event.currentTarget).data("type")
|
||||||
|
let key = $(event.currentTarget).data("key")
|
||||||
|
if ( type == "attribute") {
|
||||||
|
BoLRoll.attributeCheck(actor, key, event)
|
||||||
|
} else if (type == "aptitude") {
|
||||||
|
BoLRoll.aptitudeCheck(actor, key, event)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,5 +1,6 @@
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
import { BoLAdventureGenerator } from "./bol-adventure-generator.js"
|
import { BoLAdventureGenerator } from "./bol-adventure-generator.js"
|
||||||
|
import { BoLCharacterSummary } from "./bol-character-summary.js"
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
export class BoLCommands {
|
export class BoLCommands {
|
||||||
@ -8,6 +9,7 @@ export class BoLCommands {
|
|||||||
if (!game.bol.commands) {
|
if (!game.bol.commands) {
|
||||||
const bolCommands = new BoLCommands()
|
const bolCommands = new BoLCommands()
|
||||||
bolCommands.registerCommand({ path: ["/adventure"], func: (content, msg, params) => BoLAdventureGenerator.createAdventure(), descr: "Nouvelle idée d'aventure!" });
|
bolCommands.registerCommand({ path: ["/adventure"], func: (content, msg, params) => BoLAdventureGenerator.createAdventure(), descr: "Nouvelle idée d'aventure!" });
|
||||||
|
bolCommands.registerCommand({ path: ["/pcview"], func: (content, msg, params) => BoLCharacterSummary.displayPCSummary(), descr: "Affiche la liste des PJs!" });
|
||||||
game.bol.commands = bolCommands
|
game.bol.commands = bolCommands
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,6 +115,14 @@ BOL.aptitudes = {
|
|||||||
"def" : "BOL.aptitudes.def"
|
"def" : "BOL.aptitudes.def"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOL.resources = {
|
||||||
|
"hp" : "BOL.resources.hp",
|
||||||
|
"hero" : "BOL.resources.hero",
|
||||||
|
"faith" : "BOL.resources.faith",
|
||||||
|
"power" : "BOL.resources.power",
|
||||||
|
"alchemypoints" : "BOL.resources.alchemypoints"
|
||||||
|
}
|
||||||
|
|
||||||
BOL.weaponSizes = {
|
BOL.weaponSizes = {
|
||||||
"unarmed" : "BOL.weaponSize.unarmed",
|
"unarmed" : "BOL.weaponSize.unarmed",
|
||||||
"improvised" : "BOL.weaponSize.improvised",
|
"improvised" : "BOL.weaponSize.improvised",
|
||||||
|
@ -103,6 +103,12 @@ export const registerHandlebarsHelpers = function () {
|
|||||||
Handlebars.registerHelper('sub', function (a, b) {
|
Handlebars.registerHelper('sub', function (a, b) {
|
||||||
return parseInt(a) - parseInt(b);
|
return parseInt(a) - parseInt(b);
|
||||||
})
|
})
|
||||||
|
Handlebars.registerHelper('abbrev2', function (a) {
|
||||||
|
return a.substring(0,2);
|
||||||
|
})
|
||||||
|
Handlebars.registerHelper('abbrev3', function (a) {
|
||||||
|
return a.substring(0,3);
|
||||||
|
})
|
||||||
Handlebars.registerHelper('valueAtIndex', function (arr, idx) {
|
Handlebars.registerHelper('valueAtIndex', function (arr, idx) {
|
||||||
return arr[idx];
|
return arr[idx];
|
||||||
})
|
})
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
],
|
],
|
||||||
"url": "https://www.uberwald.me/gitea/public/bol",
|
"url": "https://www.uberwald.me/gitea/public/bol",
|
||||||
"license": "LICENSE.txt",
|
"license": "LICENSE.txt",
|
||||||
"version": "10.4.2",
|
"version": "10.4.3",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "10",
|
"minimum": "10",
|
||||||
"verified": "10",
|
"verified": "10",
|
||||||
@ -203,7 +203,7 @@
|
|||||||
],
|
],
|
||||||
"socket": true,
|
"socket": true,
|
||||||
"manifest": "https://www.uberwald.me/gitea/public/bol/raw/v10/system.json",
|
"manifest": "https://www.uberwald.me/gitea/public/bol/raw/v10/system.json",
|
||||||
"download": "https://www.uberwald.me/gitea/public/bol/archive/bol-v10.4.2.zip",
|
"download": "https://www.uberwald.me/gitea/public/bol/archive/bol-v10.4.3.zip",
|
||||||
"background": "systems/images/map_lemurie.webp",
|
"background": "systems/images/map_lemurie.webp",
|
||||||
"gridDistance": 1.5,
|
"gridDistance": 1.5,
|
||||||
"gridUnits": "m",
|
"gridUnits": "m",
|
||||||
|
35
templates/apps/character-summary-template.html
Normal file
35
templates/apps/character-summary-template.html
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<form class="{{cssClass}} flexcol character-summary-container" autocomplete="off">
|
||||||
|
|
||||||
|
<ol class="items-list">
|
||||||
|
|
||||||
|
<li class="item flexrow item-header">
|
||||||
|
<div class="item-field item-name item-name-fixed-medium">{{localize "BOL.ui.name"}}</div>
|
||||||
|
{{#each config.attackAttributes as |attr key|}}
|
||||||
|
<div class="item-field flex2">{{abbrev3 (localize attr)}}</div>
|
||||||
|
{{/each}}
|
||||||
|
{{#each config.aptitudes as |apt key|}}
|
||||||
|
<div class="item-field flex2">{{abbrev3 (localize apt)}}</div>
|
||||||
|
{{/each}}
|
||||||
|
{{#each config.resources as |res key|}}
|
||||||
|
<div class="item-field flex2">{{abbrev3 (localize res)}}</div>
|
||||||
|
{{/each}}
|
||||||
|
</li>
|
||||||
|
|
||||||
|
{{#each pcs as |pc key|}}
|
||||||
|
<li class="item flexrow" data-actor-id="{{pc.id}}">
|
||||||
|
<div class="item-field item-name item-name-fixed-medium">{{pc.name}}</div>
|
||||||
|
{{#each pc.system.attributes as |attr key|}}
|
||||||
|
<div class="item-field flex2 "><a class="summary-roll" data-type="attribute" data-key="{{key}}">{{attr.value}}</a></div>
|
||||||
|
{{/each}}
|
||||||
|
{{#each pc.system.aptitudes as |apt key|}}
|
||||||
|
<div class="item-field flex2 "><a class="summary-roll" data-type="aptitude" data-key="{{key}}">{{apt.value}}</a></div>
|
||||||
|
{{/each}}
|
||||||
|
{{#each pc.system.resources as |res key|}}
|
||||||
|
<div class="item-field flex2 ">{{res.value}}/{{res.max}}</div>
|
||||||
|
{{/each}}
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
</form>
|
Reference in New Issue
Block a user