Gestion armures
This commit is contained in:
parent
30a9f08f73
commit
d24be22c5e
BIN
icons/armures/icon_cuir_epais.png
Normal file
BIN
icons/armures/icon_cuir_epais.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.4 KiB |
BIN
icons/armures/icon_cuir_metal.png
Normal file
BIN
icons/armures/icon_cuir_metal.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.1 KiB |
BIN
icons/armures/icon_cuir_souple.png
Normal file
BIN
icons/armures/icon_cuir_souple.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.4 KiB |
BIN
icons/armures/icon_drap_matelasse.png
Normal file
BIN
icons/armures/icon_drap_matelasse.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
BIN
icons/armures/icon_mailles_fer.png
Normal file
BIN
icons/armures/icon_mailles_fer.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.5 KiB |
BIN
icons/armures/icon_plaques_fer.png
Normal file
BIN
icons/armures/icon_plaques_fer.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.3 KiB |
@ -66,6 +66,9 @@ export class RdDActorSheet extends ActorSheet {
|
||||
}
|
||||
}
|
||||
|
||||
// To avoid armour and so on...
|
||||
data.data.armes_seules = duplicate( this._checkNull(data.itemsByType['arme']));
|
||||
|
||||
if (data.competenceByCategory && data.competenceByCategory.melee) {
|
||||
//Specific case for Esquive and Corps à Corps
|
||||
for ( const melee of data.competenceByCategory.melee ) {
|
||||
@ -88,9 +91,9 @@ export class RdDActorSheet extends ActorSheet {
|
||||
data.data.armures = this._checkNull(data.itemsByType['armure']);
|
||||
data.data.livres = this._checkNull(data.itemsByType['livre']);
|
||||
data.data.potions = this._checkNull(data.itemsByType['potions']);
|
||||
data.data.herbes = this._checkNull(data.itemsByType['potions']);
|
||||
data.data.herbes = this._checkNull(data.itemsByType['herbes']);
|
||||
data.data.competenceByCategory = data.competenceByCategory;
|
||||
data.data.armes = data.itemsByType.arme;
|
||||
//data.data.armes = data.itemsByType.arme;
|
||||
//console.log(">>>>> data update");
|
||||
|
||||
return data;
|
||||
@ -119,6 +122,13 @@ export class RdDActorSheet extends ActorSheet {
|
||||
li.slideUp(200, () => this.render(false));
|
||||
});
|
||||
|
||||
// Equip Inventory Item
|
||||
html.find('.item-equip').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
this.actor.equiperObjet(li.data("itemId"));
|
||||
this.render(true);
|
||||
});
|
||||
|
||||
// Roll Carac
|
||||
html.find('.carac-label a').click((event) => {
|
||||
let caracName = event.currentTarget.attributes.name.value;
|
||||
@ -138,45 +148,45 @@ export class RdDActorSheet extends ActorSheet {
|
||||
});
|
||||
|
||||
// On carac change
|
||||
$(".carac-value").change((event) => {
|
||||
html.find('.carac-value').change((event) => {
|
||||
let caracName = event.currentTarget.name.replace(".value", "").replace("data.carac.", "");
|
||||
//console.log("Value changed :", event, caracName);
|
||||
this.actor.updateCarac( caracName, parseInt(event.target.value) );
|
||||
} );
|
||||
|
||||
// On competence change
|
||||
$(".competence-value").change((event) => {
|
||||
html.find('.competence-value').change((event) => {
|
||||
let compName = event.currentTarget.attributes.compname.value;
|
||||
//console.log("Competence changed :", compName);
|
||||
this.actor.updateCompetence( compName, parseInt(event.target.value) );
|
||||
} );
|
||||
// On competence change
|
||||
$(".competence-xp").change((event) => {
|
||||
html.find('.competence-xp').change((event) => {
|
||||
let compName = event.currentTarget.attributes.compname.value;
|
||||
this.actor.updateCompetenceXP( compName, parseInt(event.target.value) );
|
||||
} );
|
||||
|
||||
$("#vie-plus").click((event) => {
|
||||
html.find('#vie-plus').click((event) => {
|
||||
this.actor.santeIncDec("vie", 1);
|
||||
this.render(true);
|
||||
});
|
||||
$("#vie-moins").click((event) => {
|
||||
html.find('#vie-moins').click((event) => {
|
||||
this.actor.santeIncDec("vie", -1);
|
||||
this.render(true);
|
||||
});
|
||||
$("#endurance-plus").click((event) => {
|
||||
html.find('#endurance-plus').click((event) => {
|
||||
this.actor.santeIncDec("endurance", 1);
|
||||
this.render(true);
|
||||
});
|
||||
$("#endurance-moins").click((event) => {
|
||||
html.find('#endurance-moins').click((event) => {
|
||||
this.actor.santeIncDec("endurance", -1);
|
||||
this.render(true);
|
||||
});
|
||||
$("#fatigue-plus").click((event) => {
|
||||
html.find('#fatigue-plus').click((event) => {
|
||||
this.actor.santeIncDec("fatigue", 1);
|
||||
this.render(true);
|
||||
});
|
||||
$("#fatigue-moins").click((event) => {
|
||||
html.find('#fatigue-moins').click((event) => {
|
||||
this.actor.santeIncDec("fatigue", -1);
|
||||
this.render(true);
|
||||
});
|
||||
|
@ -394,11 +394,25 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
equiperObjet( itemID )
|
||||
{
|
||||
let item = this.getOwnedItem(itemID);
|
||||
if ( item && item.data.data )
|
||||
item.data.data.equipe = !item.data.data.equipe;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
computeArmure( locData )
|
||||
{
|
||||
/* TODO */
|
||||
return 0;
|
||||
let protection = 0;
|
||||
for (const item of this.data.items) {
|
||||
if (item.type == "armure" && item.data.equipe) {
|
||||
protection += item.data.protection;
|
||||
}
|
||||
}
|
||||
console.log("Final protect", protection);
|
||||
return protection;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -93,12 +93,12 @@ export class RdDRollDialog extends Dialog {
|
||||
});
|
||||
|
||||
// Update !
|
||||
$('#bonusmalus').click((event) => {
|
||||
html.find('#bonusmalus').click((event) => {
|
||||
rollData.bmValue = event.currentTarget.value; // Update the selected bonus/malus
|
||||
//console.log("BM CLICKED !!!", rollData.bmValue, rollData.competence.data.niveau, parseInt(rollData.competence.data.niveau) + parseInt(rollData.bmValue) );
|
||||
updateRollResult(rollData);
|
||||
});
|
||||
$('#carac').click((event) => {
|
||||
html.find('#carac').click((event) => {
|
||||
let caracKey = event.currentTarget.value;
|
||||
rollData.selectedCarac = rollData.carac[caracKey]; // Update the selectedCarac
|
||||
//console.log("CARAC CLICKED !!!", rollData.selectedCarac, rollData.competence.data.niveau, rollData.bmValue);
|
||||
|
@ -77,6 +77,7 @@ export class RdDUtility {
|
||||
//Items
|
||||
'systems/foundryvtt-reve-de-dragon/templates/item-competence-sheet.html',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/item-arme-sheet.html',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/item-armure-sheet.html',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/competence-categorie.html',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/competence-carac-defaut.html',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/competence-base.html',
|
||||
|
@ -2,10 +2,10 @@
|
||||
"name": "foundryvtt-reve-de-dragon",
|
||||
"title": "Rêve de Dragon",
|
||||
"description": "L'implémentation de Rêve de Dragon pour FoundryVTT",
|
||||
"version": "0.7.4",
|
||||
"version": "0.7.5",
|
||||
"minimumCoreVersion": "0.6.0",
|
||||
"compatibleCoreVersion": "0.6.2",
|
||||
"templateVersion": 13,
|
||||
"templateVersion": 14,
|
||||
"author": "LeRatierBretonnien",
|
||||
"esmodules": [ "module/rdd-main.js", "module/hook-renderChatLog.js" ],
|
||||
"styles": ["styles/simple.css"],
|
||||
|
@ -330,7 +330,8 @@
|
||||
"quantite": 1,
|
||||
"encombrement": 0,
|
||||
"equipe": false,
|
||||
"pa": 0,
|
||||
"protection": 0,
|
||||
"deterioration": 0,
|
||||
"malus": 0,
|
||||
"cout": 0
|
||||
},
|
||||
|
@ -306,13 +306,27 @@
|
||||
{{!-- Equipment Tab --}}
|
||||
<div class="tab items" data-group="primary" data-tab="items">
|
||||
<ol class="item-list">
|
||||
{{#each actor.items as |item id|}}
|
||||
{{#each data.armes_seules as |item id|}}
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
<img src="{{item.img}}" title="{{item.name}}" width="24" height="24"/>
|
||||
<img class="sheet-competence-img" src="{{item.img}}" title="{{item.name}}"/>
|
||||
<h4 class="item-name">{{item.name}}</h4>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-equip" title="Equiper">{{#if item.data.equipe}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||
<a class="item-control item-edit" title="Editer"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
<ol class="item-list">
|
||||
{{#each data.armures as |item id|}}
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
<img class="sheet-competence-img" src="{{item.img}}" title="{{item.name}}"/>
|
||||
<h4 class="item-name">{{item.name}}</h4>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-equip" title="Equiper">{{#if item.data.equipe}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||
<a class="item-control item-edit" title="Editer"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
|
39
templates/item-armure-sheet.html
Normal file
39
templates/item-armure-sheet.html
Normal file
@ -0,0 +1,39 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="profile-img" src="{{item.img}}" data-edit="img" title="{{item.name}}"/>
|
||||
<div class="header-fields">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{item.name}}" placeholder="Name"/></h1>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
<div class="form-group">
|
||||
<label for="xp">Protection</label>
|
||||
<input class="attribute-value" type="text" name="data.protection" value="{{data.protection}}" data-dtype="Number"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="xp">Encombrement </label>
|
||||
<input class="attribute-value" type="text" name="data.encombrement" value="{{data.encombrement}}" data-dtype="Number"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="xp">Détérioration</label>
|
||||
<input class="attribute-value" type="text" name="data.deterioration" value="{{data.deterioration}}" data-dtype="Number"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="xp">Malus Armure </label>
|
||||
<input class="attribute-value" type="text" name="data.malus" value="{{data.malus}}" data-dtype="Number"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="xp">Prix (sols) </label>
|
||||
<input class="attribute-value" type="text" name="data.cout" value="{{data.cout}}" data-dtype="Number"/>
|
||||
</div>
|
||||
<header class="header-field">
|
||||
<span>Description : </span>
|
||||
</header>
|
||||
<div class="form-group" style="height:200px">
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</form>
|
Loading…
Reference in New Issue
Block a user