pifpouf
This commit is contained in:
+1
-1
File diff suppressed because one or more lines are too long
+36
-24
@@ -21,10 +21,7 @@ export class VermineActor extends Actor {
|
||||
// documents or derived data.
|
||||
|
||||
if (this.type == 'character') {
|
||||
this._setAgeType();
|
||||
this._setCharacterEffort();
|
||||
this._setCharacterSelfControl();
|
||||
this._setCharacterThresholds();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,11 +41,41 @@ export class VermineActor extends Actor {
|
||||
|
||||
// Make separate methods for each Actor type (character, npc, etc.) to keep
|
||||
// things organized.
|
||||
this._prepareCharacterData(actorData);
|
||||
this._prepareNpcData(actorData);
|
||||
switch (this.type) {
|
||||
case "character":
|
||||
this._prepareCharacterData(actorData);
|
||||
break;
|
||||
case "npc":
|
||||
this._prepareNpcData(actorData);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare Character type specific data
|
||||
*/
|
||||
_prepareCharacterData(actorData) {
|
||||
if (actorData.type !== 'character') return;
|
||||
this._setAgeType();
|
||||
this._setCharacterEffort();
|
||||
this._setCharacterSelfControl();
|
||||
this._setCharacterThresholds();
|
||||
// Make modifications to data here. For example:
|
||||
const systemData = actorData.system;
|
||||
|
||||
// Loop through ability scores, and add their modifiers to our sheet output.
|
||||
for (let [key, ability] of Object.entries(systemData.abilities)) {
|
||||
// Calculate the modifier using d20 rules.
|
||||
ability.mod = Math.floor((ability.value - 10) / 2);
|
||||
}
|
||||
this.prepareCombatStatus();
|
||||
|
||||
}
|
||||
prepareCombatStatus() {
|
||||
//combat initiative reaction difficulty
|
||||
console.log(this.system.combatStatus)
|
||||
switch (parseInt(this.system.combatStatus.difficulty)) {
|
||||
case 5: this.system.combatStatus.label = "Offensif";
|
||||
break;
|
||||
@@ -59,26 +86,10 @@ export class VermineActor extends Actor {
|
||||
default:
|
||||
this.system.combatStatus.label = "Passif";
|
||||
this.system.combatStatus.difficulty = "9";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare Character type specific data
|
||||
*/
|
||||
_prepareCharacterData(actorData) {
|
||||
if (actorData.type !== 'character') return;
|
||||
|
||||
// Make modifications to data here. For example:
|
||||
const systemData = actorData.system;
|
||||
|
||||
// Loop through ability scores, and add their modifiers to our sheet output.
|
||||
for (let [key, ability] of Object.entries(systemData.abilities)) {
|
||||
// Calculate the modifier using d20 rules.
|
||||
ability.mod = Math.floor((ability.value - 10) / 2);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare NPC type specific data.
|
||||
*/
|
||||
@@ -88,6 +99,7 @@ export class VermineActor extends Actor {
|
||||
// Make modifications to data here. For example:
|
||||
const systemData = actorData.system;
|
||||
systemData.xp = (systemData.cr * systemData.cr) * 100;
|
||||
this.prepareCombatStatus()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -81,13 +81,13 @@ export class VermineItem extends Item {
|
||||
|
||||
// If there's no roll data, send a chat message.
|
||||
|
||||
let mess = new ChatMessage({
|
||||
let mess = {
|
||||
speaker: speaker,
|
||||
rollMode: rollMode,
|
||||
flavor: label,
|
||||
});
|
||||
};
|
||||
mess.content = await renderTemplate(`systems/vermine2047/templates/item/chatCards/${this.type}.html`, { item: this, message: mess }) ?? null;
|
||||
console.log(mess)
|
||||
ChatMessage.create(mess)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@ export class TraitSelector extends Application {
|
||||
/* -------------------------------------------- */
|
||||
static get defaultOptions() {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
id: "TRAITS_SELECTOR",
|
||||
classes: ["vermine2047", "trait-selector"],
|
||||
title: game.i18n.localize("VERMINE.traits_selector"),
|
||||
template: 'systems/vermine2047/templates/applications/choose-traits.hbs',
|
||||
popOut: true,
|
||||
@@ -161,7 +161,7 @@ export class TraitSelector extends Application {
|
||||
if (inp.type == "checkbox") {
|
||||
inp.checked = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
await this.render(true)
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ export default class RollDialog extends Dialog {
|
||||
}
|
||||
},
|
||||
close: close,
|
||||
|
||||
}
|
||||
return super({ ...conf, ...data }, options);
|
||||
};
|
||||
|
||||
@@ -43,6 +43,8 @@ export const preloadHandlebarsTemplates = async function () {
|
||||
"systems/vermine2047/templates/item/partials/traits.html",
|
||||
"systems/vermine2047/templates/item/partials/header.hbs",
|
||||
"systems/vermine2047/templates/item/partials/physicalItems.hbs",
|
||||
"systems/vermine2047/templates/item/chatCards/parts/base.html",
|
||||
|
||||
|
||||
]);
|
||||
};
|
||||
@@ -125,6 +127,7 @@ export const registerHandlebarsHelpers = function () {
|
||||
});
|
||||
//return damge data
|
||||
Handlebars.registerHelper('getDamagesData', function (damageObject, prop) {
|
||||
|
||||
let propObject = damageObject[prop]
|
||||
let propValue = propObject[damageObject.value - 1]
|
||||
return propValue
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"launch_Foundry12": "node /home/rwan/foundry/foundry_software/FoundryVTT-12.331/resources/app/main.js",
|
||||
"launch_Foundry12": "sudo node /home/rwan/foundry/foundry_software/FoundryVTT-12.331/resources/app/main.js",
|
||||
"watch": "gulp watch",
|
||||
"buildStyle": "gulp buildStyles",
|
||||
"dev": "npm run launch_Foundry12 & xdg-open http://localhost:30000/",
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
.app.vermine2047.trait-selector {
|
||||
.form-group {
|
||||
box-shadow: 0 0 30px gray;
|
||||
padding: 0.3rem 0.5rem;
|
||||
|
||||
border: 3px solid rgb(142, 144, 16);
|
||||
|
||||
&:has(input[type="checkbox"]:checked) {
|
||||
border: 3px solid green
|
||||
}
|
||||
|
||||
label {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
border-bottom: 2px solid black
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,15 @@
|
||||
/* Text color for window titles and menu all across Foundry */
|
||||
}
|
||||
|
||||
.vermine2047.sheet.actor {
|
||||
|
||||
header.sheet-header,
|
||||
.windoow-content {
|
||||
min-height: fit-content
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* Character and Item Name Titles Text style! */
|
||||
.sheet .charname input {
|
||||
color: #191813;
|
||||
|
||||
+16
-1
@@ -1,10 +1,25 @@
|
||||
.window-app.vermineDialog {
|
||||
max-width: 50vw;
|
||||
height: fit-content;
|
||||
|
||||
.window-content {
|
||||
background: url(/systems/vermine2047/assets/images/ui/box_background.webp) repeat;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.flexrow,
|
||||
|
||||
details>summary::after {
|
||||
content: "▶️";
|
||||
position: relative;
|
||||
right: 40%;
|
||||
}
|
||||
|
||||
details[open]>summary::after {
|
||||
content: "🔽"
|
||||
|
||||
}
|
||||
|
||||
|
||||
.grid {
|
||||
justify-content: space-around;
|
||||
box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.555);
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
@import "special-inputs.scss";
|
||||
@import "special-applications.scss";
|
||||
@import "_flex.scss";
|
||||
@import "_app.scss";
|
||||
|
||||
|
||||
// overwrites variables
|
||||
|
||||
@@ -160,7 +160,7 @@
|
||||
|
||||
|
||||
<!--DIFFICULTY HANDICAP-->
|
||||
<h2 class="flexrow">
|
||||
<h2 class="flexrow difficulties">
|
||||
<label class="label">{{localize
|
||||
'VERMINE.difficulty'}}</label>
|
||||
<select
|
||||
@@ -220,11 +220,11 @@
|
||||
|
||||
|
||||
<!-- BONUSES -->
|
||||
<details>
|
||||
<details class="flexcol bonuses">
|
||||
<summary class="flexrow">
|
||||
<h3>Bonuses</h3>
|
||||
<h3 class="flexrow align-center">Bonuses ?</h3>
|
||||
</summary>
|
||||
<div class="grid grid-3col">
|
||||
<div class="grid grid-2col">
|
||||
|
||||
|
||||
<div class="flexrow row smb">
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
<header class="flexrow align-center">
|
||||
<img src="{{img}}" alt="image de {{name}}">
|
||||
<h3>{{name}}</h3>
|
||||
<img
|
||||
src="{{item.img}}"
|
||||
alt="image de {{item.name}}"
|
||||
>
|
||||
<h3>{{item.name}}</h3>
|
||||
|
||||
</header>
|
||||
<section class="item-desc">
|
||||
<p>{{{ system.description}}}</p>
|
||||
<p>{{{ item.system.description }}}</p>
|
||||
</section>
|
||||
@@ -1,55 +1,7 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
{{> "systems/vermine2047/templates/item/partials/header.hbs"}}
|
||||
|
||||
|
||||
<section class="sheet-body">
|
||||
{{> "systems/vermine2047/templates/item/partials/traits.html"}}
|
||||
|
||||
|
||||
<h4 class="flexrow">
|
||||
<div class="resource align-center flexcol">
|
||||
|
||||
<label class="resource-label">{{ localize "VERMINE.ranges"}}</label>
|
||||
<div class="flexrow align-center">
|
||||
<div class="hexa">
|
||||
<input type="number" name="system.min_range" value="{{system.min_range}}" data-dtype="Number"/>
|
||||
</div>/
|
||||
<div class="hexa">
|
||||
<input type="number" name="system.max_range" value="{{system.max_range}}" data-dtype="Number"/></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="resource align-center flexcol">
|
||||
|
||||
<label class="resource-label">{{ localize "VERMINE.damages"}}</label>
|
||||
<div class="flexcol align-center">
|
||||
<div class="flexrow">
|
||||
<div class="hexa">
|
||||
<input type="number" name="system.damage.value" value="{{system.damage.value}}" data-dtype="Number"/>
|
||||
</div>
|
||||
<span>
|
||||
<input type="checkbox" data-tooltip="ajouter la vigueur" name="system.damage.addVigor" {{#if system.damage.addVigor}} checked {{/if}}>
|
||||
</span>
|
||||
</div>
|
||||
<select name="system.damage.type">
|
||||
<option value="0">type</option>
|
||||
{{#each config.damageTypes as |label index|}}
|
||||
<option value="{{label}}" {{#ife @root.system.damage.type label}} selected {{/ife}}>
|
||||
{{label}}
|
||||
</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="resource align-center flexcol">
|
||||
<label class="resource-label">{{ localize "VERMINE.ammo"}}</label>
|
||||
<div class="hexa"><input type="number" name="system.ammo" value="{{system.ammo}}" data-dtype="Number"/></div>
|
||||
</div>
|
||||
|
||||
|
||||
</h4>
|
||||
|
||||
|
||||
{{> "systems/vermine2047/templates/item/partials/physicalItems.hbs"}}
|
||||
</section>
|
||||
<form
|
||||
class="{{cssClass}}"
|
||||
autocomplete="off"
|
||||
>
|
||||
{{> "systems/vermine2047/templates/item/chatCards/parts/base.html"}}
|
||||
|
||||
</form>
|
||||
Reference in New Issue
Block a user