Compare commits
10 Commits
fvtt-hawkm
...
fvtt-hawkm
| Author | SHA1 | Date | |
|---|---|---|---|
| 4a2ca5fab5 | |||
| ea8c82256c | |||
| 7df8aad4dc | |||
| bb38705d52 | |||
| 4344a5fbd3 | |||
| df461fecf9 | |||
| 3aeb51c8ac | |||
| 154e9d3da5 | |||
| 9b58acc058 | |||
| 189411eef8 |
15
.gitignore
vendored
15
.gitignore
vendored
@@ -1 +1,14 @@
|
||||
.history/
|
||||
.vscode/settings.json
|
||||
.idea
|
||||
.history
|
||||
todo.md
|
||||
/.vscode
|
||||
/ignored/
|
||||
/node_modules/
|
||||
/jsconfig.json
|
||||
/package.json
|
||||
/package-lock.json
|
||||
/packs/*/
|
||||
/packs/*/CURRENT
|
||||
/packs/*/LOG
|
||||
/packs/*/LOCK
|
||||
|
||||
@@ -226,7 +226,7 @@ export class HawkmoonActor extends Actor {
|
||||
|
||||
if (this.type == 'personnage') {
|
||||
let talentBonus = this.getVigueurBonus()
|
||||
let vigueur = Math.floor((this.system.attributs.pui.value + this.system.attributs.tre.value) / 2) + talentBonus
|
||||
let vigueur = Math.floor((this.system.attributs.pui.value + this.system.attributs.tre.value) / 2) + talentBonus + this.system.sante.vigueurmodifier
|
||||
if (vigueur != this.system.sante.vigueur) {
|
||||
this.update({ 'system.sante.vigueur': vigueur })
|
||||
}
|
||||
@@ -599,11 +599,17 @@ export class HawkmoonActor extends Actor {
|
||||
}
|
||||
console.log("DEGATS", arme)
|
||||
let roll
|
||||
let bonus = 0
|
||||
if (rollDataInput?.isHeroique) {
|
||||
roll = new Roll("2d10rr10+" + arme.system.totalDegats).roll({ async: false })
|
||||
|
||||
if (rollDataInput?.attaqueCharge) {
|
||||
bonus = 5
|
||||
}
|
||||
roll = new Roll("2d10rr10+" + arme.system.totalDegats + "+" + bonus).roll({ async: false })
|
||||
} else {
|
||||
roll = new Roll("1d10+" + arme.system.totalDegats).roll({ async: false })
|
||||
if (rollDataInput?.attaqueCharge) {
|
||||
bonus = 3
|
||||
}
|
||||
roll = new Roll("1d10+" + arme.system.totalDegats + "+" + bonus).roll({ async: false })
|
||||
}
|
||||
await HawkmoonUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"));
|
||||
let nbEtatPerdus = 0
|
||||
|
||||
@@ -185,7 +185,7 @@ export class HawkmoonItemSheet extends ItemSheet {
|
||||
|
||||
html.find('#add-automation').click(ev => {
|
||||
let autom = duplicate(this.object.system.automations)
|
||||
autom.push( { eventtype: "on-drop", name: "Automatisation 1", competence: "", minLevel: 0, id: randomID(16) })
|
||||
autom.push( { eventtype: "on-drop", name: "Automatisation 1", bonusname: "vigueur", bonus: 0, competence: "", minLevel: 0, baCost: 0, id: randomID(16) })
|
||||
this.object.update( { 'system.automations': autom })
|
||||
})
|
||||
html.find('.delete-automation').click(ev => {
|
||||
|
||||
@@ -127,11 +127,6 @@ Hooks.once("ready", function () {
|
||||
registerUsageCount('fvtt-hawkmoon-cyd')
|
||||
welcomeMessage()
|
||||
|
||||
// CSS patch for v9
|
||||
if (game.version) {
|
||||
let sidebar = document.getElementById("sidebar");
|
||||
sidebar.style.width = "min-content";
|
||||
}
|
||||
});
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
||||
@@ -102,9 +102,13 @@ export class HawkmoonRollDialog extends Dialog {
|
||||
html.find('#defenseur-immobilise').change((event) => {
|
||||
this.rollData.defenseurImmobilise = event.currentTarget.checked
|
||||
})
|
||||
html.find('#attaque-charge').change((event) => {
|
||||
this.rollData.attaqueCharge = event.currentTarget.checked
|
||||
})
|
||||
html.find('#attaque-desarme').change((event) => {
|
||||
this.rollData.attaqueDesarme = event.currentTarget.checked
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -325,7 +325,7 @@ export class HawkmoonUtility {
|
||||
let pa = Math.floor((valueSC - (po * 400)) / 20)
|
||||
let sc = valueSC - (po * 400) - (pa * 20)
|
||||
return {
|
||||
po: po, pa: pa, sc: sc, valueSC: valueSC
|
||||
po, pa, sc, valueSC
|
||||
}
|
||||
}
|
||||
|
||||
@@ -419,7 +419,7 @@ export class HawkmoonUtility {
|
||||
rollData.diceFormula += `+5`
|
||||
}
|
||||
|
||||
if (rollData.arme && rollData.arme.system.isDistance) {
|
||||
if (rollData.arme?.system.isDistance) {
|
||||
rollData.difficulte = __distanceDifficulte[rollData.distanceTir]
|
||||
rollData.difficulte += __tireurDeplacement[rollData.tireurDeplacement]
|
||||
rollData.difficulte += __cibleCouvert[rollData.cibleCouvert]
|
||||
@@ -427,6 +427,10 @@ export class HawkmoonUtility {
|
||||
rollData.difficulte += rollData.cibleDeplace ? 3 : 0
|
||||
rollData.difficulte += rollData.cibleCaC ? 3 : 0
|
||||
}
|
||||
if (rollData.attaqueDesarme) {
|
||||
rollData.difficulte += 10
|
||||
}
|
||||
|
||||
// Ajout adversités
|
||||
rollData.diceFormula += `-${rollData.nbAdversites}`
|
||||
|
||||
@@ -436,7 +440,7 @@ export class HawkmoonUtility {
|
||||
|
||||
let myRoll = new Roll(rollData.diceFormula).roll({ async: false })
|
||||
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
||||
rollData.roll = myRoll
|
||||
rollData.roll = duplicate(myRoll)
|
||||
console.log(">>>> ", myRoll)
|
||||
|
||||
rollData.finalResult = myRoll.total
|
||||
@@ -457,7 +461,7 @@ export class HawkmoonUtility {
|
||||
|
||||
let bonusRoll = new Roll(rollData.bonusFormula).roll({ async: false })
|
||||
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
|
||||
rollData.bonusRoll = bonusRoll
|
||||
rollData.bonusRoll = duplicate(bonusRoll)
|
||||
|
||||
rollData.finalResult += rollData.bonusRoll.total
|
||||
|
||||
@@ -571,7 +575,9 @@ export class HawkmoonUtility {
|
||||
tailleCible: "normal",
|
||||
tireurDeplacement: "immobile",
|
||||
cibleCouvert: "aucun",
|
||||
distanceTir: "porteemoyenne"
|
||||
distanceTir: "porteemoyenne",
|
||||
attaqueCharge: false,
|
||||
attaqueDesarme: false
|
||||
}
|
||||
return rollData
|
||||
}
|
||||
|
||||
@@ -40,7 +40,6 @@
|
||||
--debug-box-shadow-blue: inset 0 0 2px blue;
|
||||
--debug-box-shadow-green: inset 0 0 2px green;
|
||||
}
|
||||
|
||||
/*@import url("https://fonts.googleapis.com/css2?family=Martel:wght@400;800&family=Roboto:wght@300;400;500&display=swap");*/
|
||||
/* Global styles & Font */
|
||||
.window-app {
|
||||
@@ -527,7 +526,6 @@ section.sheet-body:after {
|
||||
h1, h2, h3, h4 {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
@@ -828,7 +826,6 @@ ul, li {
|
||||
#sidebar {
|
||||
font-size: 1rem;
|
||||
background-position: 100%;
|
||||
color: rgba(220,220,220,0.75);
|
||||
}
|
||||
|
||||
/* background: rgb(105,85,65) url("../images/ui/texture_feuille_perso_onglets.webp") no-repeat right bottom;*/
|
||||
@@ -946,22 +943,11 @@ ul, li {
|
||||
height: 15%;
|
||||
font-size: 15px;
|
||||
padding: 10px;
|
||||
padding-bottom: 20px;
|
||||
/*padding-bottom: 20px;*/
|
||||
padding-top: .2rem;
|
||||
padding-bottom: .2rem;
|
||||
}
|
||||
|
||||
.div-river-full {
|
||||
height: 5rem;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.div-river {
|
||||
align-content: center;
|
||||
margin-left: 8px;
|
||||
align-content:space-around;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.div-center {
|
||||
align-self: center;
|
||||
@@ -999,13 +985,10 @@ ul, li {
|
||||
}
|
||||
|
||||
#sidebar #sidebar-tabs i{
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
display: inline-block;
|
||||
background-position:center;
|
||||
background-size:cover;
|
||||
text-shadow: 1px 1px 0 rgba(0,0,0,0.75);
|
||||
|
||||
}
|
||||
|
||||
/*#sidebar #sidebar-tabs i.fa-comments:before, #sidebar #sidebar-tabs i.fa-fist-raised:before, #sidebar #sidebar-tabs i.fa-users:before, #sidebar #sidebar-tabs i.fa-map:before, #sidebar #sidebar-tabs i.fa-suitcase:before, #sidebar #sidebar-tabs i.fa-book-open:before, #sidebar #sidebar-tabs i.fa-th-list:before, #sidebar #sidebar-tabs i.fa-music:before, #sidebar #sidebar-tabs i.fa-atlas:before, #sidebar #sidebar-tabs i.fa-cogs:before {content: "";}
|
||||
@@ -1277,24 +1260,6 @@ ul, li {
|
||||
padding-left: 2rem;
|
||||
}
|
||||
|
||||
.drop-equipment-effect,
|
||||
.drop-power-effect,
|
||||
.drop-perk-effect,
|
||||
.drop-ability-effect,
|
||||
.drop-effect-specaffected,
|
||||
.drop-effect-spec,
|
||||
.drop-ability-weapon,
|
||||
.drop-ability-armor,
|
||||
.drop-race-perk,
|
||||
.drop-spec-perk,
|
||||
.drop-ability-power,
|
||||
.drop-ability-spec,
|
||||
.drop-spec-power,
|
||||
.drop-abilities,
|
||||
.drop-optionnal-abilities,
|
||||
.drop-specialperk1,
|
||||
.drop-perk2,
|
||||
.drop-spec1 ,
|
||||
.drop-spec2 {
|
||||
background: linear-gradient(to bottom, #6c95b9fc 5%, #105177ab 100%);
|
||||
background-color: #7d5d3b00;
|
||||
@@ -1449,4 +1414,19 @@ ul, li {
|
||||
}
|
||||
.argent-total-text {
|
||||
margin-left: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
.compendium h4.entry-name.document-name {
|
||||
color: black;
|
||||
}
|
||||
.page-title {
|
||||
color: black;
|
||||
}
|
||||
textarea {
|
||||
font-family: "Charlemagne";
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
.fxmaster {
|
||||
background: #443e37E0;
|
||||
background-color: #443e37E0;
|
||||
}
|
||||
|
||||
105
system.json
105
system.json
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "fvtt-hawkmoon-cyd",
|
||||
"description": "Hawkmoon RPG for FoundryVTT (CYD system - French)",
|
||||
"version": "10.1.14",
|
||||
"version": "11.0.7",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Uberwald/LeRatierBretonnien",
|
||||
@@ -35,7 +35,7 @@
|
||||
"gridUnits": "m",
|
||||
"license": "LICENSE.txt",
|
||||
"manifest": "https://www.uberwald.me/gitea/public/fvtt-hawkmoon-cyd/raw/branch/master/system.json",
|
||||
"download": "https://www.uberwald.me/gitea/public/fvtt-hawkmoon-cyd/archive/fvtt-hawkmoon-cyd-10.1.14.zip",
|
||||
"download": "https://www.uberwald.me/gitea/public/fvtt-hawkmoon-cyd/archive/fvtt-hawkmoon-cyd-11.0.7.zip",
|
||||
"languages": [
|
||||
{
|
||||
"lang": "fr",
|
||||
@@ -49,100 +49,133 @@
|
||||
"type": "Item",
|
||||
"label": "Compétences",
|
||||
"name": "skills",
|
||||
"path": "packs/competences.db",
|
||||
"path": "packs/competences",
|
||||
"system": "fvtt-hawkmoon-cyd",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Compétences de Créatures",
|
||||
"name": "skills-creatures",
|
||||
"path": "packs/competences-creatures.db",
|
||||
"path": "packs/competences-creatures",
|
||||
"system": "fvtt-hawkmoon-cyd",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Historiques",
|
||||
"name": "historiques",
|
||||
"path": "packs/historiques.db",
|
||||
"path": "packs/historiques",
|
||||
"system": "fvtt-hawkmoon-cyd",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Armes",
|
||||
"name": "armes",
|
||||
"path": "packs/armes.db",
|
||||
"path": "packs/armes",
|
||||
"system": "fvtt-hawkmoon-cyd",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Protections",
|
||||
"name": "protections",
|
||||
"path": "packs/protections.db",
|
||||
"path": "packs/protections",
|
||||
"system": "fvtt-hawkmoon-cyd",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Equipement",
|
||||
"name": "equipement",
|
||||
"path": "packs/equipement.db",
|
||||
"path": "packs/equipement",
|
||||
"system": "fvtt-hawkmoon-cyd",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Profils",
|
||||
"name": "profils",
|
||||
"path": "packs/profils.db",
|
||||
"path": "packs/profils",
|
||||
"system": "fvtt-hawkmoon-cyd",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Talents de Personnage",
|
||||
"name": "talents",
|
||||
"path": "packs/talents.db",
|
||||
"path": "packs/talents",
|
||||
"system": "fvtt-hawkmoon-cyd",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Talents de Cellule",
|
||||
"name": "talents-cellule",
|
||||
"path": "packs/talents-cellule.db",
|
||||
"path": "packs/talents-cellule",
|
||||
"system": "fvtt-hawkmoon-cyd",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "RollTable",
|
||||
"label": "Tables",
|
||||
"name": "tables",
|
||||
"path": "packs/tables.db",
|
||||
"path": "packs/tables",
|
||||
"system": "fvtt-hawkmoon-cyd",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "JournalEntry",
|
||||
"label": "Aides de Jeu",
|
||||
"name": "aides-de-jeu",
|
||||
"path": "packs/aides-de-jeu.db",
|
||||
"path": "packs/aides-de-jeu",
|
||||
"system": "fvtt-hawkmoon-cyd",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
}
|
||||
],
|
||||
"primaryTokenAttribute": "sante.vigueur",
|
||||
@@ -156,6 +189,6 @@
|
||||
"background": "systems/fvtt-hawkmoon-cyd/assets/ui/fond_hawkmoon.webp",
|
||||
"compatibility": {
|
||||
"minimum": "10",
|
||||
"verified": "10"
|
||||
"verified": "11"
|
||||
}
|
||||
}
|
||||
@@ -69,7 +69,8 @@
|
||||
},
|
||||
"sante": {
|
||||
"vigueur": 0,
|
||||
"etat": 0
|
||||
"etat": 0,
|
||||
"vigueurmodifier": 0
|
||||
},
|
||||
"adversite": {
|
||||
"bleue": 0,
|
||||
|
||||
@@ -112,6 +112,13 @@
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
{{#if isGM}}
|
||||
<div class="flexrow">
|
||||
<span class="item-name-label competence-name item-field-label-medium">Modificateur de Vigueur</span>
|
||||
<input type="text" class="item-field-label-short" name="system.sante.vigueurmodifier"
|
||||
value="{{system.sante.vigueurmodifier}}" data-dtype="Number" />
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -42,12 +42,19 @@
|
||||
|
||||
<li>Total : {{finalResult}}</li>
|
||||
|
||||
{{#if attaqueCharge}}
|
||||
<li>Vous avez chargé : vos adversaires bénéficient de +3 pour vous attaquer</li>
|
||||
{{/if}}
|
||||
|
||||
{{#if difficulte}}
|
||||
<li>SD : {{difficulte}}</li>
|
||||
|
||||
|
||||
{{#if isSuccess}}
|
||||
<li class="chat-success">Succés...
|
||||
</li>
|
||||
{{#if attaqueDesarme}}
|
||||
<li>Vous désarmez votre adversaire ! Son arme tombe hors de sa portée.</li>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<li class="chat-failure">Echec...</li>
|
||||
{{/if}}
|
||||
@@ -55,6 +62,9 @@
|
||||
|
||||
{{#if isHeroique}}
|
||||
<li class="chat-success">Héroïque !!!</li>
|
||||
{{#if attaqueDesarme}}
|
||||
<li>... Et en plus vous récupérez l'arme de votre adversaire dans votre main (si vous le souhaitez) !.</li>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{#if isDramatique}}
|
||||
<li class="chat-failure">Dramatique !!!</li>
|
||||
|
||||
@@ -90,6 +90,14 @@
|
||||
<span class="roll-dialog-label">Défenseur immobilisé (+5)?</span>
|
||||
<input type="checkbox" id="defenseur-immobilise" {{checked defenseurImmobilise}} />
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">Charge ?</span>
|
||||
<input type="checkbox" id="attaque-charge" {{checked attaqueCharge}} />
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">Désarmer (SD+10)?</span>
|
||||
<input type="checkbox" id="attaque-desarme" {{checked attaqueDesarme}} />
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">Tireur en déplacement ?</span>
|
||||
@@ -151,7 +159,7 @@
|
||||
</select>
|
||||
</div>
|
||||
|
||||
{{#if armeDefense}}
|
||||
{{#if (or armeDefense arme.system.isDistance)}}
|
||||
|
||||
{{#if arme.system.isDistance}}
|
||||
<div class="flexrow">
|
||||
@@ -160,7 +168,7 @@
|
||||
{{#select distanceTir}}
|
||||
<option value="porteecourte">Courte ({{protectionDefenseur}}+5)</option>
|
||||
<option value="porteemoyenne">Moyenne ({{protectionDefenseur}}+9)</option>
|
||||
<option value="porteelongue">Moyenne ({{protectionDefenseur}}+14)</option>
|
||||
<option value="porteelongue">Longue ({{protectionDefenseur}}+14)</option>
|
||||
{{/select}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user