Compare commits
10 Commits
Imperiumv0
...
master
Author | SHA1 | Date |
---|---|---|
sladecraven | 9c589d3ac7 | |
sladecraven | fef19cbd4c | |
sladecraven | 08a8415cba | |
sladecraven | 025d7a2740 | |
sladecraven | 634feabb75 | |
sladecraven | a100da7cd9 | |
sladecraven | 7ae5ce8d45 | |
sladecraven | b6dac470e9 | |
sladecraven | b0c59c6104 | |
sladecraven | 66e83ec8f0 |
|
@ -1,3 +1,6 @@
|
|||
{
|
||||
|
||||
}
|
||||
"ACTOR": {
|
||||
"TypePersonnage": "Personnage",
|
||||
"TypeCreature": "Créature",
|
||||
"TypeEntite": "Entité de cauchemar",
|
||||
"TypeVehicule": "Véhicule"
|
||||
},
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"ACTOR": {
|
||||
"TypeCharacter": "Personnage",
|
||||
"TypePm": "Protagoniste du meneur"
|
||||
},
|
||||
"ITEM": {
|
||||
"TypeCapacite": "Capacité",
|
||||
"TypeArchetype": "Archétype",
|
||||
"TypeSpecialite": "Spécialité",
|
||||
"TypeFamiliarite": "Familiarité",
|
||||
"TypeNature": "Nature Profonde",
|
||||
"TypeTrait": "Trait",
|
||||
"TypeSymbiose": "Symbiose",
|
||||
"TypeRessource": "Ressource",
|
||||
"TypeSingularite": "Singularité",
|
||||
"TypeContact": "Contact",
|
||||
"TypeEquipement": "Equipement"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,144 @@
|
|||
/**
|
||||
* Extend the basic ActorSheet with some very simple modifications
|
||||
* @extends {ActorSheet}
|
||||
*/
|
||||
|
||||
import { Imperium5Utility } from "./imperium5-utility.js";
|
||||
import { Imperium5RollDialog } from "./imperium5-roll-dialog.js";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
export class Imperium5ActorPMSheet extends ActorSheet {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
|
||||
return mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-imperium5", "sheet", "actor"],
|
||||
template: "systems/fvtt-imperium5/templates/actor-pm-sheet.html",
|
||||
width: 720,
|
||||
height: 760,
|
||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "combat" }],
|
||||
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
||||
editScore: true
|
||||
});
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async getData() {
|
||||
let actorData = duplicate(this.object.system)
|
||||
|
||||
let formData = {
|
||||
title: this.title,
|
||||
id: this.actor.id,
|
||||
type: this.actor.type,
|
||||
img: this.actor.img,
|
||||
name: this.actor.name,
|
||||
editable: this.isEditable,
|
||||
cssClass: this.isEditable ? "editable" : "locked",
|
||||
system: actorData,
|
||||
archetype: this.actor.getArchetype(),
|
||||
specialites: this.actor.getSpecialites(),
|
||||
familiarites: this.actor.getFamiliarites(),
|
||||
nature: this.actor.getNatureProfonde(),
|
||||
traits: this.actor.getTraits(),
|
||||
symbioses: this.actor.getSymbioses(),
|
||||
equipements: this.actor.getEquipements(),
|
||||
capacites: this.actor.getCapacites(),
|
||||
singularites: this.actor.getSingularites(),
|
||||
contacts: this.actor.getContacts(),
|
||||
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
|
||||
limited: this.object.limited,
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
editScore: this.options.editScore,
|
||||
isGM: game.user.isGM
|
||||
}
|
||||
this.formData = formData;
|
||||
|
||||
console.log("PM : ", formData, this.object);
|
||||
return formData;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
/** @override */
|
||||
activateListeners(html) {
|
||||
super.activateListeners(html);
|
||||
|
||||
// Everything below here is only needed if the sheet is editable
|
||||
if (!this.options.editable) return;
|
||||
|
||||
html.bind("keydown", function(e) { // Ignore Enter in actores sheet
|
||||
if (e.keyCode === 13) return false;
|
||||
});
|
||||
|
||||
// Update Inventory Item
|
||||
html.find('.item-edit').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
let itemId = li.data("item-id");
|
||||
const item = this.actor.items.get( itemId );
|
||||
item.sheet.render(true);
|
||||
});
|
||||
// Delete Inventory Item
|
||||
html.find('.item-delete').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
Imperium5Utility.confirmDelete(this, li);
|
||||
});
|
||||
|
||||
|
||||
html.find('.quantity-minus').click(event => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
this.actor.incDecQuantity( li.data("item-id"), -1 );
|
||||
} );
|
||||
html.find('.quantity-plus').click(event => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
this.actor.incDecQuantity( li.data("item-id"), +1 );
|
||||
} );
|
||||
|
||||
html.find('.lock-unlock-sheet').click((event) => {
|
||||
this.options.editScore = !this.options.editScore;
|
||||
this.render(true);
|
||||
});
|
||||
html.find('.item-link a').click((event) => {
|
||||
const itemId = $(event.currentTarget).data("item-id")
|
||||
const item = this.actor.getOwnedItem(itemId);
|
||||
item.sheet.render(true);
|
||||
});
|
||||
html.find('.item-equip').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
this.actor.equipItem( li.data("item-id") );
|
||||
this.render(true);
|
||||
});
|
||||
html.find('.update-field').change(ev => {
|
||||
const fieldName = $(ev.currentTarget).data("field-name");
|
||||
let value = Number(ev.currentTarget.value);
|
||||
this.actor.update( { [`${fieldName}`]: value } );
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** @override */
|
||||
setPosition(options = {}) {
|
||||
const position = super.setPosition(options);
|
||||
const sheetBody = this.element.find(".sheet-body");
|
||||
const bodyHeight = position.height - 192;
|
||||
sheetBody.css("height", bodyHeight);
|
||||
return position;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async _onDropItemUNUSED(event, dragData) {
|
||||
let item = await Imperium5Utility.searchItem( dragData)
|
||||
if (item == undefined) {
|
||||
item = this.actor.items.get( dragData.data._id )
|
||||
}
|
||||
//this.actor.preprocessItem( event, item, true )
|
||||
super._onDropItem(event, dragData)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** @override */
|
||||
_updateObject(event, formData) {
|
||||
// Update the Actor
|
||||
return this.object.update(formData);
|
||||
}
|
||||
}
|
|
@ -15,8 +15,8 @@ export class Imperium5ActorSheet extends ActorSheet {
|
|||
return mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-imperium5", "sheet", "actor"],
|
||||
template: "systems/fvtt-imperium5/templates/actor-sheet.html",
|
||||
width: 800,
|
||||
height: 720,
|
||||
width: 720,
|
||||
height: 760,
|
||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "combat" }],
|
||||
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
||||
editScore: true
|
||||
|
@ -24,20 +24,18 @@ export class Imperium5ActorSheet extends ActorSheet {
|
|||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async getData() {
|
||||
const objectData = Imperium5Utility.data(this.object);
|
||||
|
||||
let actorData = duplicate(Imperium5Utility.templateData(this.object));
|
||||
async getData() {
|
||||
let actorData = duplicate(this.object.system)
|
||||
|
||||
let formData = {
|
||||
title: this.title,
|
||||
id: objectData.id,
|
||||
type: objectData.type,
|
||||
img: objectData.img,
|
||||
name: objectData.name,
|
||||
id: this.actor.id,
|
||||
type: this.actor.type,
|
||||
img: this.actor.img,
|
||||
name: this.actor.name,
|
||||
editable: this.isEditable,
|
||||
cssClass: this.isEditable ? "editable" : "locked",
|
||||
data: actorData,
|
||||
system: actorData,
|
||||
archetype: this.actor.getArchetype(),
|
||||
specialites: this.actor.getSpecialites(),
|
||||
familiarites: this.actor.getFamiliarites(),
|
||||
|
@ -61,32 +59,6 @@ export class Imperium5ActorSheet extends ActorSheet {
|
|||
return formData;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async openGenericRoll() {
|
||||
let rollData = Imperium5Utility.getBasicRollData()
|
||||
rollData.alias = "Dice Pool Roll",
|
||||
rollData.mode = "generic"
|
||||
rollData.title = `Dice Pool Roll`
|
||||
rollData.img = "icons/dice/d12black.svg"
|
||||
|
||||
let rollDialog = await Imperium5RollDialog.create( this.actor, rollData);
|
||||
rollDialog.render( true );
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollIDR( itemId, diceValue) {
|
||||
let item = this.actor.data.items.get( itemId) ?? {name: "Unknown"}
|
||||
let myRoll = new Roll(diceValue+"x").roll({ async: false })
|
||||
await Imperium5Utility.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
||||
let chatData = {
|
||||
user: game.user.id,
|
||||
rollMode: game.settings.get("core", "rollMode"),
|
||||
whisper: [game.user.id].concat(ChatMessage.getWhisperRecipients('GM')),
|
||||
content: `${this.actor.name} has roll IDR for ${item.name} : ${myRoll.total}`
|
||||
}
|
||||
ChatMessage.create(chatData)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** @override */
|
||||
activateListeners(html) {
|
||||
|
@ -112,17 +84,6 @@ export class Imperium5ActorSheet extends ActorSheet {
|
|||
Imperium5Utility.confirmDelete(this, li);
|
||||
});
|
||||
|
||||
html.find('.spec-group-activate').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
let itemId = li.data("item-id");
|
||||
this.actor.specPowerActivate( itemId)
|
||||
});
|
||||
html.find('.spec-group-deactivate').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
let itemId = li.data("item-id");
|
||||
this.actor.specPowerDeactivate( itemId)
|
||||
});
|
||||
|
||||
html.find('.equip-activate').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item")
|
||||
let itemId = li.data("item-id")
|
||||
|
@ -134,37 +95,6 @@ export class Imperium5ActorSheet extends ActorSheet {
|
|||
this.actor.equipDeactivate( itemId)
|
||||
});
|
||||
|
||||
html.find('.effect-used').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
let itemId = li.data("item-id");
|
||||
this.actor.perkEffectUsed( itemId)
|
||||
});
|
||||
|
||||
html.find('.perk-status').change(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
let itemId = li.data("item-id");
|
||||
this.actor.updatePerkStatus( itemId, ev.currentTarget.value)
|
||||
});
|
||||
|
||||
html.find('.power-cost-spent').change(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
let itemId = li.data("item-id");
|
||||
this.actor.updatePowerSpentCost( itemId, ev.currentTarget.value)
|
||||
});
|
||||
|
||||
html.find('.power-dmg-roll').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item")
|
||||
let itemId = li.data("item-id")
|
||||
this.actor.powerDmgRoll( itemId )
|
||||
})
|
||||
|
||||
html.find('.perk-used').change(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item")
|
||||
let itemId = li.data("item-id")
|
||||
let index = Number($(ev.currentTarget).data("use-index") )
|
||||
this.actor.updatePerkUsed( itemId, index, ev.currentTarget.checked )
|
||||
});
|
||||
|
||||
html.find('.subactor-edit').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
let actorId = li.data("actor-id");
|
||||
|
@ -186,100 +116,19 @@ export class Imperium5ActorSheet extends ActorSheet {
|
|||
const li = $(event.currentTarget).parents(".item");
|
||||
this.actor.incDecQuantity( li.data("item-id"), +1 );
|
||||
} );
|
||||
|
||||
html.find('.ammo-minus').click(event => {
|
||||
const li = $(event.currentTarget).parents(".item")
|
||||
this.actor.incDecAmmo( li.data("item-id"), -1 );
|
||||
} );
|
||||
html.find('.ammo-plus').click(event => {
|
||||
const li = $(event.currentTarget).parents(".item")
|
||||
this.actor.incDecAmmo( li.data("item-id"), +1 )
|
||||
} );
|
||||
|
||||
html.find('.momentum-minus').click(event => {
|
||||
this.actor.modifyMomentum( -1 )
|
||||
} )
|
||||
html.find('.momentum-plus').click(event => {
|
||||
this.actor.modifyMomentum( 1 )
|
||||
} )
|
||||
|
||||
html.find('.unarmed-attack').click((event) => {
|
||||
this.actor.rollUnarmedAttack();
|
||||
});
|
||||
html.find('.generic-pool-roll').click((event) => {
|
||||
this.openGenericRoll()
|
||||
} );
|
||||
html.find('.attack-melee').click((event) => {
|
||||
this.actor.rollPool( 'com');
|
||||
});
|
||||
html.find('.attack-ranged').click((event) => {
|
||||
this.actor.rollPool( 'agi');
|
||||
});
|
||||
html.find('.defense-roll').click((event) => {
|
||||
this.actor.rollPool( 'def', true);
|
||||
});
|
||||
html.find('.damage-melee').click((event) => {
|
||||
this.actor.rollPool( 'str');
|
||||
});
|
||||
html.find('.damage-ranged').click((event) => {
|
||||
this.actor.rollPool( 'per');
|
||||
});
|
||||
html.find('.damage-resistance').click((event) => {
|
||||
this.actor.rollPool( 'phy');
|
||||
});
|
||||
|
||||
html.find('.roll-stat').click((event) => {
|
||||
const statId = $(event.currentTarget).data("stat-key");
|
||||
this.actor.rollStat(statId);
|
||||
});
|
||||
html.find('.roll-mr').click((event) => {
|
||||
this.actor.rollMR();
|
||||
});
|
||||
html.find('.roll-idr').click((event) => {
|
||||
const diceValue = $(event.currentTarget).data("dice-value")
|
||||
const li = $(event.currentTarget).parents(".item")
|
||||
this.rollIDR( li.data("item-id"), diceValue)
|
||||
})
|
||||
|
||||
html.find('.roll-spec').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
const specId = li.data("item-id");
|
||||
this.actor.rollSpec(specId);
|
||||
});
|
||||
html.find('.power-roll').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
const powerId = li.data("item-id");
|
||||
this.actor.rollPower(powerId);
|
||||
});
|
||||
html.find('.weapon-roll').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
const weaponId = li.data("item-id");
|
||||
this.actor.rollWeapon(weaponId);
|
||||
});
|
||||
html.find('.armor-roll').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
const armorId = li.data("item-id");
|
||||
this.actor.rollArmor(armorId);
|
||||
html.find('.roll-ame-button').click((event) => {
|
||||
const ameKey = $(event.currentTarget).data("ame-key")
|
||||
this.actor.rollAme(ameKey)
|
||||
});
|
||||
|
||||
html.find('.weapon-damage-roll').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
const weaponId = li.data("item-id");
|
||||
this.actor.rollWeapon(weaponId, true);
|
||||
});
|
||||
|
||||
html.find('.weapon-damage').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
const weapon = this.actor.getOwnedItem(li.data("item-id"));
|
||||
this.actor.rollDamage(weapon, 'damage');
|
||||
});
|
||||
|
||||
html.find('.lock-unlock-sheet').click((event) => {
|
||||
this.options.editScore = !this.options.editScore;
|
||||
this.render(true);
|
||||
});
|
||||
html.find('.item-link a').click((event) => {
|
||||
const itemId = $(event.currentTarget).data("item-id");
|
||||
const itemId = $(event.currentTarget).data("item-id")
|
||||
const item = this.actor.getOwnedItem(itemId);
|
||||
item.sheet.render(true);
|
||||
});
|
||||
|
@ -288,29 +137,11 @@ export class Imperium5ActorSheet extends ActorSheet {
|
|||
this.actor.equipItem( li.data("item-id") );
|
||||
this.render(true);
|
||||
});
|
||||
html.find('.power-activate').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
this.actor.activatePower( li.data("item-id") );
|
||||
this.render(true);
|
||||
});
|
||||
|
||||
html.find('.change-worstfear').change(ev => {
|
||||
this.actor.manageWorstFear( ev.currentTarget.checked )
|
||||
});
|
||||
html.find('.change-desires').change(ev => {
|
||||
this.actor.manageDesires( ev.currentTarget.checked )
|
||||
});
|
||||
|
||||
html.find('.update-field').change(ev => {
|
||||
const fieldName = $(ev.currentTarget).data("field-name");
|
||||
let value = Number(ev.currentTarget.value);
|
||||
this.actor.update( { [`${fieldName}`]: value } );
|
||||
});
|
||||
html.find('.perk-active').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
this.actor.activatePerk( li.data("item-id") );
|
||||
this.render(true);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
@ -325,8 +156,7 @@ export class Imperium5ActorSheet extends ActorSheet {
|
|||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async _onDropItem(event, dragData) {
|
||||
console.log(">>>>>> DROPPED!!!!")
|
||||
async _onDropItemUNUSED(event, dragData) {
|
||||
let item = await Imperium5Utility.searchItem( dragData)
|
||||
if (item == undefined) {
|
||||
item = this.actor.items.get( dragData.data._id )
|
||||
|
|
|
@ -28,7 +28,7 @@ export class Imperium5Actor extends Actor {
|
|||
return super.create(data, options);
|
||||
}
|
||||
// If the created actor has items (only applicable to duplicated actors) bypass the new actor creation logic
|
||||
if (data.items) {
|
||||
if (items) {
|
||||
let actor = super.create(data, options);
|
||||
return actor;
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ export class Imperium5Actor extends Actor {
|
|||
prepareDerivedData() {
|
||||
|
||||
if (this.type == 'character') {
|
||||
//this.data.data.encCapacity = this.getEncumbranceCapacity()
|
||||
//this.system.encCapacity = this.getEncumbranceCapacity()
|
||||
//this.buildContainerTree()
|
||||
}
|
||||
console.log("Acteur : ", this)
|
||||
|
@ -68,49 +68,87 @@ export class Imperium5Actor extends Actor {
|
|||
|
||||
/* -------------------------------------------- */
|
||||
getArchetype() {
|
||||
let item = duplicate( this.data.items.find( it => it.type == "archetype") || [])
|
||||
let item = duplicate( this.items.find( it => it.type == "archetype") || [])
|
||||
return item
|
||||
}
|
||||
getSpecialites() {
|
||||
let item = duplicate(this.data.items.filter( it => it.type == "specialite") || [] )
|
||||
let item = duplicate(this.items.filter( it => it.type == "specialite") || [] )
|
||||
return item
|
||||
}
|
||||
getFamiliarites() {
|
||||
let item = duplicate(this.data.items.filter( it => it.type == "familiarite") || [] )
|
||||
let item = duplicate(this.items.filter( it => it.type == "familiarite") || [] )
|
||||
return item
|
||||
}
|
||||
getNatureProfonde() {
|
||||
let item = duplicate( this.data.items.find( it => it.type == "nature") || [])
|
||||
let item = duplicate( this.items.find( it => it.type == "nature") || [])
|
||||
return item
|
||||
}
|
||||
getTraits() {
|
||||
let item = duplicate(this.data.items.filter( it => it.type == "trait") || [] )
|
||||
let item = duplicate(this.items.filter( it => it.type == "trait") || [] )
|
||||
return item
|
||||
}
|
||||
getSymbioses() {
|
||||
let item = duplicate(this.data.items.filter( it => it.type == "symbiose") || [] )
|
||||
let item = duplicate(this.items.filter( it => it.type == "symbiose") || [] )
|
||||
return item
|
||||
}
|
||||
getEquipements() {
|
||||
let item = duplicate(this.data.items.filter( it => it.type == "equipement") || [] )
|
||||
let item = duplicate(this.items.filter( it => it.type == "equipement") || [] )
|
||||
return item
|
||||
}
|
||||
getCapacites() {
|
||||
let item = duplicate(this.data.items.filter( it => it.type == "capacite") || [] )
|
||||
let item = duplicate(this.items.filter( it => it.type == "capacite") || [] )
|
||||
return item
|
||||
}
|
||||
getUnusedCapacites(){
|
||||
let item = this.items.filter( it => it.type == "capacite") || []
|
||||
return item
|
||||
}
|
||||
getSingularites(){
|
||||
let item = duplicate(this.data.items.filter( it => it.type == "singularite") || [] )
|
||||
let item = duplicate(this.items.filter( it => it.type == "singularite") || [] )
|
||||
return item
|
||||
}
|
||||
getContacts(){
|
||||
let item = duplicate(this.data.items.filter( it => it.type == "contact") || [] )
|
||||
let item = duplicate(this.items.filter( it => it.type == "contact") || [] )
|
||||
return item
|
||||
}
|
||||
getResources() {
|
||||
let item = duplicate(this.items.filter( it => it.type == "equipement" || it.type == "singularite" || it.type == "capacite" || it.type == "contact") || [] )
|
||||
return item
|
||||
}
|
||||
getUnusedParadigmes() {
|
||||
let paraList = []
|
||||
for(let k in this.system.paradigmes) {
|
||||
let para = this.system.paradigmes[k]
|
||||
if (!para.used) {
|
||||
para.key = k
|
||||
paraList.push(duplicate(para))
|
||||
}
|
||||
}
|
||||
return paraList
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
transferToSource( nbSuccess) {
|
||||
let karma = duplicate(this.system.karma)
|
||||
karma.source += Number(nbSuccess)
|
||||
let nbKarma = Math.floor(karma.source / 3)
|
||||
karma.value += nbKarma
|
||||
karma.source -= nbKarma*3
|
||||
this.update( { 'system.karma': karma})
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
decOneKarma( ) {
|
||||
let karma = duplicate(this.system.karma)
|
||||
karma.value--
|
||||
karma.value = Math.max(karma.value, 0)
|
||||
karma.xp++
|
||||
this.update( { 'system.karma': karma})
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getItemById(id) {
|
||||
let item = this.data.items.find(item => item.id == id)
|
||||
let item = this.items.find(item => item.id == id)
|
||||
if (item) {
|
||||
item = duplicate(item)
|
||||
}
|
||||
|
@ -135,7 +173,7 @@ export class Imperium5Actor extends Actor {
|
|||
}
|
||||
/* -------------------------------------------- */
|
||||
getEffectByLabel(label) {
|
||||
return this.getActiveEffects().find(it => it.data.label == label);
|
||||
return this.getActiveEffects().find(it => it.label == label);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getEffectById(id) {
|
||||
|
@ -144,31 +182,27 @@ export class Imperium5Actor extends Actor {
|
|||
|
||||
/* -------------------------------------------- */
|
||||
getInitiativeScore(combatId, combatantId) {
|
||||
if (this.type == 'character') {
|
||||
this.rollMR(true, combatId, combatantId)
|
||||
}
|
||||
console.log("Init required !!!!")
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getSubActors() {
|
||||
let subActors = [];
|
||||
for (let id of this.data.data.subactors) {
|
||||
for (let id of this.system.subactors) {
|
||||
subActors.push(duplicate(game.actors.get(id)))
|
||||
}
|
||||
return subActors;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async addSubActor(subActorId) {
|
||||
let subActors = duplicate(this.data.data.subactors);
|
||||
let subActors = duplicate(this.system.subactors);
|
||||
subActors.push(subActorId);
|
||||
await this.update({ 'data.subactors': subActors });
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async delSubActor(subActorId) {
|
||||
let newArray = [];
|
||||
for (let id of this.data.data.subactors) {
|
||||
for (let id of this.system.subactors) {
|
||||
if (id != subActorId) {
|
||||
newArray.push(id);
|
||||
}
|
||||
|
@ -176,25 +210,16 @@ export class Imperium5Actor extends Actor {
|
|||
await this.update({ 'data.subactors': newArray });
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
syncRoll(rollData) {
|
||||
let linkedRollId = Imperium5Utility.getDefenseState(this.id);
|
||||
if (linkedRollId) {
|
||||
rollData.linkedRollId = linkedRollId;
|
||||
}
|
||||
this.lastRollId = rollData.rollId;
|
||||
Imperium5Utility.saveRollData(rollData);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async deleteAllItemsByType(itemType) {
|
||||
let items = this.data.items.filter(item => item.type == itemType);
|
||||
let items = this.items.filter(item => item.type == itemType);
|
||||
await this.deleteEmbeddedDocuments('Item', items);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async addItemWithoutDuplicate(newItem) {
|
||||
let item = this.data.items.find(item => item.type == newItem.type && item.name.toLowerCase() == newItem.name.toLowerCase())
|
||||
let item = this.items.find(item => item.type == newItem.type && item.name.toLowerCase() == newItem.name.toLowerCase())
|
||||
if (!item) {
|
||||
await this.createEmbeddedDocuments('Item', [newItem]);
|
||||
}
|
||||
|
@ -202,14 +227,21 @@ export class Imperium5Actor extends Actor {
|
|||
|
||||
/* -------------------------------------------- */
|
||||
async incDecQuantity(objetId, incDec = 0) {
|
||||
let objetQ = this.data.items.get(objetId)
|
||||
let objetQ = this.items.get(objetId)
|
||||
if (objetQ) {
|
||||
let newQ = objetQ.data.data.quantity + incDec
|
||||
let newQ = objetQ.system.quantity + incDec
|
||||
if (newQ >= 0) {
|
||||
const updated = await this.updateEmbeddedDocuments('Item', [{ _id: objetQ.id, 'data.quantity': newQ }]) // pdates one EmbeddedEntity
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
setParadigmeUsed(paraKey) {
|
||||
let para = duplicate(this.system.paradigmes)
|
||||
para[paraKey].used = true
|
||||
this.update( {'system.paradigmes': para} )
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/* ROLL SECTION
|
||||
|
@ -217,34 +249,47 @@ export class Imperium5Actor extends Actor {
|
|||
|
||||
/* -------------------------------------------- */
|
||||
addEffects(rollData) {
|
||||
let effects = this.data.items.filter(item => item.type == 'effect')
|
||||
let effects = this.items.filter(item => item.type == 'effect')
|
||||
for (let effect of effects) {
|
||||
effect = duplicate(effect)
|
||||
if (!effect.data.hindrance
|
||||
&& (effect.data.stataffected != "notapplicable" || effect.data.specaffected.length > 0)
|
||||
&& effect.data.stataffected != "special") {
|
||||
if (effect.data.effectstatlevel) {
|
||||
effect.data.effectlevel = this.data.data.statistics[effect.data.effectstat].value
|
||||
if (!effect.system.hindrance
|
||||
&& (effect.system.stataffected != "notapplicable" || effect.system.specaffected.length > 0)
|
||||
&& effect.system.stataffected != "special") {
|
||||
if (effect.system.effectstatlevel) {
|
||||
effect.system.effectlevel = this.system.statistics[effect.system.effectstat].value
|
||||
}
|
||||
rollData.effectsList.push({ label: effect.name, type: "effect", applied: false, effect: effect, value: effect.data.effectlevel })
|
||||
rollData.effectsList.push({ label: effect.name, type: "effect", applied: false, effect: effect, value: effect.system.effectlevel })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getCommonRollData(statKey = undefined, useShield = false) {
|
||||
rollAme( ameKey) {
|
||||
let rollData = this.getCommonRollData()
|
||||
rollData.ame = duplicate(this.system.ames[ameKey])
|
||||
rollData.ameMalus = this.system.amestype[rollData.ame.type].malus
|
||||
this.startRoll(rollData)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getCommonRollData() {
|
||||
let rollData = Imperium5Utility.getBasicRollData()
|
||||
rollData.alias = this.name
|
||||
rollData.actorImg = this.img
|
||||
rollData.actorId = this.id
|
||||
rollData.img = this.img
|
||||
rollData.capacites = this.getUnusedCapacites()
|
||||
rollData.paradigmes = this.getUnusedParadigmes()
|
||||
rollData.ressources = this.getResources()
|
||||
rollData.selectedRessources = []
|
||||
rollData.selectedParadigme = "none"
|
||||
rollData.karma = this.system.karma.value
|
||||
|
||||
return rollData
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async startRoll(rollData) {
|
||||
this.syncRoll(rollData)
|
||||
let rollDialog = await Imperium5RollDialog.create(this, rollData)
|
||||
console.log(rollDialog)
|
||||
rollDialog.render(true)
|
||||
|
|
|
@ -50,25 +50,24 @@ export class Imperium5ItemSheet extends ItemSheet {
|
|||
|
||||
/* -------------------------------------------- */
|
||||
async getData() {
|
||||
const objectData = Imperium5Utility.data(this.object);
|
||||
const objectData = duplicate(this.object.system)
|
||||
|
||||
let itemData = foundry.utils.deepClone(Imperium5Utility.templateData(this.object));
|
||||
let formData = {
|
||||
title: this.title,
|
||||
id: this.id,
|
||||
type: objectData.type,
|
||||
img: objectData.img,
|
||||
name: objectData.name,
|
||||
type: this.object.type,
|
||||
img: this.object.img,
|
||||
name: this.object.name,
|
||||
editable: this.isEditable,
|
||||
cssClass: this.isEditable ? "editable" : "locked",
|
||||
data: itemData,
|
||||
system: objectData,
|
||||
limited: this.object.limited,
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
isGM: game.user.isGM
|
||||
}
|
||||
|
||||
this.options.editable = !(this.object.data.origin == "embeddedItem");
|
||||
this.options.editable = !(this.object.system.origin == "embeddedItem");
|
||||
console.log("ITEM DATA", formData, this);
|
||||
return formData;
|
||||
}
|
||||
|
@ -87,7 +86,7 @@ export class Imperium5ItemSheet extends ItemSheet {
|
|||
|
||||
/* -------------------------------------------- */
|
||||
postItem() {
|
||||
let chatData = duplicate( Imperium5Utility.data(this.item) )
|
||||
let chatData = duplicate( this.item.system)
|
||||
if (this.actor) {
|
||||
chatData.actor = { id: this.actor.id }
|
||||
}
|
||||
|
@ -112,7 +111,7 @@ export class Imperium5ItemSheet extends ItemSheet {
|
|||
async viewSubitem(ev) {
|
||||
let field = $(ev.currentTarget).data('type');
|
||||
let idx = Number($(ev.currentTarget).data('index'));
|
||||
let itemData = this.object.data.data[field][idx];
|
||||
let itemData = this.object.system[field][idx];
|
||||
if (itemData.name != 'None') {
|
||||
let spec = await Item.create(itemData, { temporary: true });
|
||||
spec.data.origin = "embeddedItem";
|
||||
|
@ -124,8 +123,8 @@ export class Imperium5ItemSheet extends ItemSheet {
|
|||
async deleteSubitem(ev) {
|
||||
let field = $(ev.currentTarget).data('type');
|
||||
let idx = Number($(ev.currentTarget).data('index'));
|
||||
let oldArray = this.object.data.data[field];
|
||||
let itemData = this.object.data.data[field][idx];
|
||||
let oldArray = this.object.system[field];
|
||||
let itemData = this.object.system[field][idx];
|
||||
if (itemData.name != 'None') {
|
||||
let newArray = [];
|
||||
for (var i = 0; i < oldArray.length; i++) {
|
||||
|
@ -139,7 +138,7 @@ export class Imperium5ItemSheet extends ItemSheet {
|
|||
|
||||
/* -------------------------------------------- */
|
||||
async manageSpec() {
|
||||
let itemData = this.object.data.data.specialisation[0];
|
||||
let itemData = this.object.system.specialisation[0];
|
||||
if (itemData.name != 'None') {
|
||||
let spec = await Item.create(itemData, { temporary: true });
|
||||
spec.data.origin = "embeddedItem";
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
import { Imperium5Actor } from "./imperium5-actor.js";
|
||||
import { Imperium5ItemSheet } from "./imperium5-item-sheet.js";
|
||||
import { Imperium5ActorSheet } from "./imperium5-actor-sheet.js";
|
||||
import { Imperium5ActorPMSheet } from "./imperium5-actor-pm-sheet.js";
|
||||
import { Imperium5Utility } from "./imperium5-utility.js";
|
||||
import { Imperium5Combat } from "./imperium5-combat.js";
|
||||
import { Imperium5Item } from "./imperium5-item.js";
|
||||
|
@ -50,6 +51,7 @@ Hooks.once("init", async function () {
|
|||
// Register sheet application classes
|
||||
Actors.unregisterSheet("core", ActorSheet)
|
||||
Actors.registerSheet("fvtt-imperium5", Imperium5ActorSheet, { types: ["character"], makeDefault: true })
|
||||
Actors.registerSheet("fvtt-imperium5", Imperium5ActorPMSheet, { types: ["pm"], makeDefault: true })
|
||||
|
||||
Items.unregisterSheet("core", ItemSheet)
|
||||
Items.registerSheet("fvtt-imperium5", Imperium5ItemSheet, { makeDefault: true } )
|
||||
|
@ -88,7 +90,7 @@ Hooks.once("ready", function () {
|
|||
let sidebar = document.getElementById("sidebar")
|
||||
sidebar.style.width = "min-content"
|
||||
}
|
||||
|
||||
|
||||
welcomeMessage()
|
||||
})
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ export class Imperium5RollDialog extends Dialog {
|
|||
/* -------------------------------------------- */
|
||||
static async create(actor, rollData ) {
|
||||
|
||||
let options = { classes: ["Imperium5Dialog"], width: 620, height: 380, 'z-index': 99999 }
|
||||
let options = { classes: ["Imperium5Dialog"], width: 320, height: 380, 'z-index': 99999 }
|
||||
let html = await renderTemplate('systems/fvtt-imperium5/templates/roll-dialog-generic.html', rollData)
|
||||
|
||||
return new Imperium5RollDialog(actor, rollData, html, options )
|
||||
|
@ -41,6 +41,11 @@ export class Imperium5RollDialog extends Dialog {
|
|||
Imperium5Utility.rollImperium5( this.rollData )
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
updatePCPool() {
|
||||
let value = Imperium5Utility.computeDiceReserve(this.rollData)
|
||||
$('#ame-total').html(value )
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
activateListeners(html) {
|
||||
|
@ -48,7 +53,29 @@ export class Imperium5RollDialog extends Dialog {
|
|||
|
||||
var dialog = this
|
||||
function onLoad() {
|
||||
dialog.updatePCPool()
|
||||
}
|
||||
$(function () { onLoad(); })
|
||||
$(function () { onLoad(); })
|
||||
|
||||
html.find('#select-realite-dice').change(async (event) => {
|
||||
this.rollData.realiteDice = Number(event.currentTarget.value)
|
||||
})
|
||||
html.find('#select-capacite').change(async (event) => {
|
||||
this.rollData.usedCapacite = String(event.currentTarget.value)
|
||||
this.updatePCPool()
|
||||
})
|
||||
html.find('#select-use-archetype').change(async (event) => {
|
||||
this.rollData.useArchetype = event.currentTarget.checked
|
||||
this.updatePCPool()
|
||||
})
|
||||
html.find('#select-aide-pj').change(async (event) => {
|
||||
this.rollData.nbAide = Number(event.currentTarget.value)
|
||||
this.updatePCPool()
|
||||
})
|
||||
html.find('#select-use-karma').change(async (event) => {
|
||||
this.rollData.useKarma = event.currentTarget.checked
|
||||
this.updatePCPool()
|
||||
})
|
||||
|
||||
}
|
||||
}
|
|
@ -13,7 +13,8 @@ export class Imperium5Utility {
|
|||
/* -------------------------------------------- */
|
||||
static async init() {
|
||||
Hooks.on('renderChatLog', (log, html, data) => Imperium5Utility.chatListeners(html));
|
||||
|
||||
Hooks.on("getChatLogEntryContext", (html, options) => Imperium5Utility.chatRollMenu(html, options))
|
||||
|
||||
Hooks.on("getCombatTrackerEntryContext", (html, options) => {
|
||||
Imperium5Utility.pushInitiativeOptions(html, options);
|
||||
})
|
||||
|
@ -48,6 +49,38 @@ export class Imperium5Utility {
|
|||
Handlebars.registerHelper('exists', function (val) {
|
||||
return val != null && val != undefined;
|
||||
})
|
||||
Handlebars.registerHelper('for', function (from, to, incr, block) {
|
||||
var accum = '';
|
||||
for (var i = from; i < to; i += incr)
|
||||
accum += block.fn(i);
|
||||
return accum;
|
||||
})
|
||||
Handlebars.registerHelper('times', function (n, block) {
|
||||
var accum = '';
|
||||
for (var i = 1; i <= n; ++i)
|
||||
accum += block.fn(i);
|
||||
return accum;
|
||||
})
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static registerSettings() {
|
||||
game.settings.register("fvtt-imperium5", "use-entropie-reussite", {
|
||||
name: "Utilisation du dé d'Entropie dans les réussites",
|
||||
hint: "Si coché, ajoute 1 succès au joueur sur un 2, et 1 succés au MJ sur un 7.",
|
||||
scope: "world",
|
||||
config: true,
|
||||
default: false,
|
||||
type: Boolean
|
||||
})
|
||||
game.settings.register("fvtt-imperium5", "use-specialite", {
|
||||
name: "Utilisation complémentaire des Spécialités",
|
||||
hint: "Si coché, les Spécialités peuvent permettre de réduire de 1 la valeur d'un dé",
|
||||
scope: "world",
|
||||
config: true,
|
||||
default: false,
|
||||
type: Boolean
|
||||
})
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -56,7 +89,7 @@ export class Imperium5Utility {
|
|||
|
||||
/* -------------------------------------------- */
|
||||
static async ready() {
|
||||
|
||||
this.registerSettings()
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -90,10 +123,44 @@ export class Imperium5Utility {
|
|||
|
||||
/* -------------------------------------------- */
|
||||
static async chatListeners(html) {
|
||||
|
||||
html.on("click", '.view-item-from-chat', event => {
|
||||
game.system.pegasus.creator.openItemView(event)
|
||||
html.on("change", '.select-apply-paradigme', event => {
|
||||
let paraKey = event.currentTarget.value
|
||||
let rollData = this.getRollDataFromMessage(event)
|
||||
rollData.previousMessageId = Imperium5Utility.findChatMessageId(event.currentTarget)
|
||||
this.applyParadigme(rollData, paraKey)
|
||||
})
|
||||
|
||||
html.on("click", '.apply-specialite', event => {
|
||||
let resultIndex = $(event.currentTarget).data("result-index")
|
||||
let rollData = this.getRollDataFromMessage(event)
|
||||
rollData.previousMessageId = Imperium5Utility.findChatMessageId(event.currentTarget)
|
||||
this.applySpecialite(rollData, resultIndex)
|
||||
})
|
||||
|
||||
html.on("change", '.transfer-success', event => {
|
||||
let nbSuccess = event.currentTarget.value
|
||||
let rollData = this.getRollDataFromMessage(event)
|
||||
rollData.previousMessageId = Imperium5Utility.findChatMessageId(event.currentTarget)
|
||||
this.applySuccessTransfer(rollData, nbSuccess)
|
||||
})
|
||||
|
||||
html.on("change", '.select-ressource', async event => {
|
||||
// Filter / remove the ressource
|
||||
let rollData = this.getRollDataFromMessage(event)
|
||||
let ressource = rollData.ressources.find(r => r._id == event.currentTarget.value)
|
||||
rollData.selectedRessources.push(ressource)
|
||||
rollData.ressources = rollData.ressources.filter(r => r._id != event.currentTarget.value)
|
||||
rollData.realSuccessPC--;
|
||||
this.computeIntensite(rollData)
|
||||
// Update the roll data in the message
|
||||
rollData.previousMessageId = Imperium5Utility.findChatMessageId(event.currentTarget)
|
||||
let msg = await this.createChatWithRollMode(rollData.alias, {
|
||||
content: await renderTemplate(`systems/fvtt-imperium5/templates/chat-generic-result.html`, rollData)
|
||||
})
|
||||
msg.setFlag("world", "imperium5-roll-data", rollData)
|
||||
this.removeChatMessageId(rollData.previousMessageId)
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -113,7 +180,7 @@ export class Imperium5Utility {
|
|||
effectName = effectName.toLowerCase()
|
||||
let effect = game.items.contents.find(item => item.type == 'effect' && item.name.toLowerCase() == effectName)
|
||||
if (!effect) {
|
||||
let effects = await this.loadCompendium('fvtt-pegasus.effect', item => item.name.toLowerCase() == effectName)
|
||||
let effects = await this.loadCompendium('fvtt-imperium5.effect', item => item.name.toLowerCase() == effectName)
|
||||
let objs = effects.map(i => i.toObject())
|
||||
effect = objs[0]
|
||||
} else {
|
||||
|
@ -152,18 +219,11 @@ export class Imperium5Utility {
|
|||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static templateData(it) {
|
||||
return Imperium5Utility.data(it)?.data ?? {}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static data(it) {
|
||||
if (it instanceof Actor || it instanceof Item || it instanceof Combatant) {
|
||||
return it.data;
|
||||
}
|
||||
return it;
|
||||
static getRollDataFromMessage(event) {
|
||||
let messageId = Imperium5Utility.findChatMessageId(event.currentTarget)
|
||||
let message = game.messages.get(messageId)
|
||||
return message.getFlag("world", "imperium5-roll-data")
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -195,24 +255,22 @@ export class Imperium5Utility {
|
|||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static updateRollData(rollData) {
|
||||
|
||||
let id = rollData.rollId;
|
||||
let oldRollData = this.rollDataStore[id] || {};
|
||||
let newRollData = mergeObject(oldRollData, rollData);
|
||||
this.rollDataStore[id] = newRollData;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
static saveRollData(rollData) {
|
||||
game.socket.emit("system.pegasus-rpg", {
|
||||
name: "msg_update_roll", data: rollData
|
||||
}); // Notify all other clients of the roll
|
||||
this.updateRollData(rollData);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getRollData(id) {
|
||||
return this.rollDataStore[id];
|
||||
static chatRollMenu(html, options) {
|
||||
let canApply = li => canvas.tokens.controlled.length && li.find(".imperium5-roll").length
|
||||
let canApplyIntensite = function (li) {
|
||||
let message = game.messages.get(li.attr("data-message-id"))
|
||||
let rollData = message.getFlag("world", "imperium5-roll-data")
|
||||
return (rollData.currentIntensite > 0)
|
||||
}
|
||||
options.push(
|
||||
{
|
||||
name: "Ajouer +3 (1 point de Bonne Aventure)",
|
||||
icon: "<i class='fas fa-user-plus'></i>",
|
||||
condition: canApply && canApplyIntensite,
|
||||
callback: li => Imperium5Utility.applyBonneAventureRoll(li, -1, "+3")
|
||||
}
|
||||
)
|
||||
return options
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -281,113 +339,141 @@ export class Imperium5Utility {
|
|||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static computeDiceReserve(rollData) {
|
||||
let capaDice = 0
|
||||
if (rollData.usedCapacite != "none") {
|
||||
let capa = rollData.capacites.find(c => c._id == rollData.usedCapacite)
|
||||
capaDice = capa.system.aide
|
||||
}
|
||||
let val = rollData.ame.value + capaDice + ((rollData.useKarma) ? 1 : 0) + ((rollData.useArchetype) ? 1 : 0) + rollData.nbAide + rollData.ameMalus
|
||||
return Math.max(val, 0)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static computeReussites(rollData) {
|
||||
let myRoll = rollData.roll
|
||||
// Calcul des réussites sur les 2 pools
|
||||
rollData.successPC = rollData.resultsPC.filter(res => res.result <= rollData.seuil).length
|
||||
rollData.successGM = myRoll.terms[4].results.filter(res => res.result <= 2).length
|
||||
// Calcul du présage
|
||||
rollData.bonPresage = myRoll.terms[2].results[0].result == 1
|
||||
rollData.mauvaisPresage = myRoll.terms[2].results[0].result == 8
|
||||
// gestion règle optionnelle de l'Entropie
|
||||
if (rollData.useEntropieReussite && myRoll.terms[2].results[0].result == 2) {
|
||||
rollData.successPC++
|
||||
}
|
||||
if (rollData.useEntropieReussite && myRoll.terms[2].results[0].result == 7) {
|
||||
rollData.successGM++
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static computeIntensite(rollData) {
|
||||
rollData.totalIntensite = 0
|
||||
let pi = 3
|
||||
let nbSuccess = rollData.realSuccessPC
|
||||
while (nbSuccess) {
|
||||
rollData.totalIntensite += pi
|
||||
pi = 2 // 3 for the first, 2 after
|
||||
nbSuccess--
|
||||
}
|
||||
for(let r of rollData.selectedRessources) {
|
||||
rollData.totalIntensite += r.system.ressource
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async rollImperium5(rollData) {
|
||||
|
||||
let dicePool = [{ name: "stat", level: 0, statmod: 0 }, { name: "spec", level: 0 }, { name: "bonus", level: 0 }, { name: "hindrance", level: 0 }, { name: "other", level: 0 }];
|
||||
if (rollData.stat) {
|
||||
dicePool[0].level += Number(rollData.stat.value);
|
||||
dicePool[0].statmod = Number(rollData.stat.mod);
|
||||
// Karma management
|
||||
let actor = game.actors.get(rollData.actorId)
|
||||
rollData.nbKarma = 0
|
||||
if (rollData.useKarma) {
|
||||
actor.decOneKarma()
|
||||
rollData.nbKarma++
|
||||
}
|
||||
if (rollData.statDicesLevel) {
|
||||
dicePool[0].level = rollData.statDicesLevel;
|
||||
}
|
||||
if (rollData.selectedSpec && rollData.selectedSpec != "0") {
|
||||
rollData.spec = rollData.specList.find(item => item._id == rollData.selectedSpec);
|
||||
rollData.spec.data.dice = Imperium5Utility.getDiceFromLevel(rollData.spec.data.level);
|
||||
}
|
||||
if (rollData.spec) {
|
||||
dicePool[1].level += Number(rollData.spec.data.level);
|
||||
}
|
||||
if (rollData.specDicesLevel) {
|
||||
dicePool[1].level = rollData.specDicesLevel;
|
||||
}
|
||||
if (rollData.bonusDicesLevel) {
|
||||
dicePool[2].level += Number(rollData.bonusDicesLevel);
|
||||
}
|
||||
if (rollData.hindranceDicesLevel) {
|
||||
dicePool[3].level += Number(rollData.hindranceDicesLevel);
|
||||
}
|
||||
if (rollData.otherDicesLevel) {
|
||||
dicePool[4].level += Number(rollData.otherDicesLevel);
|
||||
if (rollData.usedCapacite != "none") {
|
||||
actor.decOneKarma()
|
||||
rollData.nbKarma++
|
||||
}
|
||||
|
||||
let diceFormulaTab = [];
|
||||
for (let diceGroup of dicePool) {
|
||||
diceFormulaTab.push(this.getFoundryDiceFromLevel(diceGroup.level))
|
||||
}
|
||||
let diceFormula = '{' + diceFormulaTab.join(', ') + '}kh';
|
||||
|
||||
let nbAmeDice = this.computeDiceReserve(rollData)
|
||||
let diceFormula = `${nbAmeDice}d8[green] + 1d8[blue] + ${rollData.realiteDice}d8[red]`
|
||||
let humanFormula = `${nbAmeDice}d8, 1d8, ${rollData.realiteDice}d8`
|
||||
// Performs roll
|
||||
let myRoll = rollData.roll;
|
||||
let myRoll = rollData.roll
|
||||
if (!myRoll) { // New rolls only of no rerolls
|
||||
myRoll = new Roll(diceFormula).roll({ async: false });
|
||||
console.log("ROLL : ", diceFormula)
|
||||
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"));
|
||||
myRoll = new Roll(diceFormula).roll({ async: false })
|
||||
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
||||
rollData.roll = myRoll
|
||||
rollData.diceFormula = diceFormula
|
||||
rollData.humanFormula = humanFormula
|
||||
}
|
||||
// local copy of results to allow changes
|
||||
rollData.resultsPC = duplicate(myRoll.terms[0].results)
|
||||
// Calcul réussites
|
||||
this.computeReussites(rollData)
|
||||
rollData.realSuccessPC = rollData.successPC // To manage source transfer
|
||||
this.computeIntensite(rollData)
|
||||
|
||||
// Final score and keep data
|
||||
rollData.finalScore = myRoll.total + dicePool[0].statmod;
|
||||
|
||||
if (rollData.damages) {
|
||||
let dmgFormula = this.getFoundryDiceFromLevel(rollData.damages.value)
|
||||
let dmgRoll = new Roll(dmgFormula).roll({ async: false });
|
||||
await this.showDiceSoNice(dmgRoll, game.settings.get("core", "rollMode"));
|
||||
rollData.dmgResult = dmgRoll.total;
|
||||
}
|
||||
|
||||
this.createChatWithRollMode(rollData.alias, {
|
||||
let msg = await this.createChatWithRollMode(rollData.alias, {
|
||||
content: await renderTemplate(`systems/fvtt-imperium5/templates/chat-generic-result.html`, rollData)
|
||||
});
|
||||
})
|
||||
msg.setFlag("world", "imperium5-roll-data", rollData)
|
||||
console.log("Final rollData", rollData)
|
||||
}
|
||||
|
||||
// Init stuf
|
||||
if (rollData.isInit) {
|
||||
let combat = game.combats.get(rollData.combatId)
|
||||
combat.updateEmbeddedDocuments("Combatant", [{ _id: rollData.combatantId, initiative: rollData.finalScore }]);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
static async applyParadigme(rollData, paraKey) {
|
||||
let actor = game.actors.get(rollData.actorId)
|
||||
let para = actor.system.paradigmes[paraKey]
|
||||
rollData.seuil = para.value
|
||||
rollData.usedParadigme = para.label
|
||||
console.log(">>>>>>>>>>NEW SEUIL : ", rollData.seuil)
|
||||
actor.setParadigmeUsed(paraKey)
|
||||
|
||||
//this.removeUsedPerkEffects( rollData) // Unused for now
|
||||
this.computeReussites(rollData)
|
||||
rollData.realSuccessPC = rollData.successPC // To manage source transfer
|
||||
rollData.paradigmes = []
|
||||
let msg = await this.createChatWithRollMode(rollData.alias, {
|
||||
content: await renderTemplate(`systems/fvtt-imperium5/templates/chat-generic-result.html`, rollData)
|
||||
})
|
||||
msg.setFlag("world", "imperium5-roll-data", rollData)
|
||||
this.removeChatMessageId(rollData.previousMessageId)
|
||||
}
|
||||
|
||||
// And save the roll
|
||||
this.saveRollData(rollData);
|
||||
/* -------------------------------------------- */
|
||||
static async applySpecialite(rollData, resultIndex) {
|
||||
let res = rollData.resultsPC[resultIndex]
|
||||
res.result = (res.result > 1) ? res.result - 1 : res.result
|
||||
this.computeReussites(rollData)
|
||||
rollData.useSpecialite = false
|
||||
rollData.specialiteApplied = true
|
||||
let msg = await this.createChatWithRollMode(rollData.alias, {
|
||||
content: await renderTemplate(`systems/fvtt-imperium5/templates/chat-generic-result.html`, rollData)
|
||||
})
|
||||
msg.setFlag("world", "imperium5-roll-data", rollData)
|
||||
this.removeChatMessageId(rollData.previousMessageId)
|
||||
}
|
||||
|
||||
/* ------------------------- ------------------- */
|
||||
static async updateRoll(rollData) {
|
||||
|
||||
let diceResults = rollData.diceResults
|
||||
let sortedRoll = []
|
||||
for (let i = 0; i < 10; i++) {
|
||||
sortedRoll[i] = 0;
|
||||
}
|
||||
for (let dice of diceResults) {
|
||||
sortedRoll[dice.result]++
|
||||
}
|
||||
let index = 0;
|
||||
let bestRoll = 0;
|
||||
for (let i = 0; i < 10; i++) {
|
||||
if (sortedRoll[i] > bestRoll) {
|
||||
bestRoll = sortedRoll[i]
|
||||
index = i
|
||||
}
|
||||
}
|
||||
let bestScore = (bestRoll * 10) + index
|
||||
rollData.bestScore = bestScore
|
||||
rollData.finalScore = bestScore + rollData.negativeModifier + rollData.positiveModifier
|
||||
|
||||
this.saveRollData(rollData)
|
||||
|
||||
this.createChatWithRollMode(rollData.alias, {
|
||||
content: await renderTemplate(`systems/fvtt-weapons-of-the-gods/templates/chat-generic-result.html`, rollData)
|
||||
});
|
||||
static async applySuccessTransfer(rollData, nbSuccess) {
|
||||
let actor = game.actors.get(rollData.actorId)
|
||||
actor.transferToSource(nbSuccess)
|
||||
rollData.realSuccessPC -= nbSuccess
|
||||
rollData.sourceTransfer = nbSuccess
|
||||
let msg = await this.createChatWithRollMode(rollData.alias, {
|
||||
content: await renderTemplate(`systems/fvtt-imperium5/templates/chat-generic-result.html`, rollData)
|
||||
})
|
||||
msg.setFlag("world", "imperium5-roll-data", rollData)
|
||||
this.removeChatMessageId(rollData.previousMessageId)
|
||||
}
|
||||
|
||||
/* ------------------------- ------------------- */
|
||||
static async rerollDice(actorId, diceIndex = -1) {
|
||||
let actor = game.actors.get(actorId)
|
||||
let rollData = actor.getRollData()
|
||||
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -426,7 +512,7 @@ export class Imperium5Utility {
|
|||
item = await fromUuid("Compendium." + dataItem.pack + "." + dataItem.id)
|
||||
} else {
|
||||
item = game.items.get(dataItem.id)
|
||||
}
|
||||
}
|
||||
return item
|
||||
}
|
||||
|
||||
|
@ -466,7 +552,7 @@ export class Imperium5Utility {
|
|||
break;
|
||||
}
|
||||
chatOptions.alias = chatOptions.alias || name;
|
||||
ChatMessage.create(chatOptions);
|
||||
return ChatMessage.create(chatOptions)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -474,33 +560,40 @@ export class Imperium5Utility {
|
|||
let rollData = {
|
||||
rollId: randomID(16),
|
||||
rollMode: game.settings.get("core", "rollMode"),
|
||||
effectsList: [],
|
||||
armorsList: [],
|
||||
weaponsList: [],
|
||||
equipmentsList: [],
|
||||
optionsDiceList: Imperium5Utility.getOptionsDiceList()
|
||||
realiteDice: 0,
|
||||
ameMalus: 0,
|
||||
useArchetype: false,
|
||||
nbAide: 0,
|
||||
useKarma: false,
|
||||
usedCapacite: "none",
|
||||
seuil: 2,
|
||||
currentIntensite: -1,
|
||||
nbSuccessSource: 0,
|
||||
useSpecialite: game.settings.get("fvtt-imperium5", "use-specialite"),
|
||||
useEntropieReussite: game.settings.get("fvtt-imperium5", "use-entropie-reussite")
|
||||
}
|
||||
Imperium5Utility.updateWithTarget(rollData)
|
||||
return rollData
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static updateWithTarget(rollData) {
|
||||
let objectDefender
|
||||
let target = Imperium5Utility.getTarget()
|
||||
if (target) {
|
||||
let defenderActor = game.actors.get(target.data.actorId)
|
||||
objectDefender = Imperium5Utility.data(defenderActor)
|
||||
objectDefender = defenderActor
|
||||
objectDefender = mergeObject(objectDefender, target.data.actorData)
|
||||
rollData.defender = objectDefender
|
||||
rollData.attackerId = this.id
|
||||
rollData.defenderId = objectDefender._id
|
||||
rollData.defenderId = objectDefender.id
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static createChatWithRollMode(name, chatOptions) {
|
||||
this.createChatMessage(name, game.settings.get("core", "rollMode"), chatOptions)
|
||||
return this.createChatMessage(name, game.settings.get("core", "rollMode"), chatOptions)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
{"name":"Ingénieure quantique et sémanticien","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276540,"modifiedTime":1666193276540,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"0Oak4qh3fiLrCrwD"}
|
||||
{"name":"Opératif silencieux","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276543,"modifiedTime":1666193276543,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"1oSj3vK73OU8wTnQ"}
|
||||
{"name":"Agent enquêteur","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276536,"modifiedTime":1666193276536,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"3mUQOeBUVoMEB0ee"}
|
||||
{"name":"Contrôleur des particules","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276537,"modifiedTime":1666193276537,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"Aztmj5GvRUUkmY56"}
|
||||
{"name":"Opérative Imperial","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276543,"modifiedTime":1666193276543,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"FhQOM3HWjpENBNmk"}
|
||||
{"name":"Analyste des données","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276536,"modifiedTime":1666193276536,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"GLwBaFKGLqFJerwx"}
|
||||
{"name":"Contrôleur des particules","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276537,"modifiedTime":1666193276537,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"LxFyaIgnYYLgaYcI"}
|
||||
{"name":"Rogue Executeur","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276543,"modifiedTime":1666193276543,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"P4ZwT4Ot1johxPK2"}
|
||||
{"name":"Surréaliste spectral","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276544,"modifiedTime":1666193276544,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"P5KHqaMiMCizHKCg"}
|
||||
{"name":"Artiste d'épée","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276537,"modifiedTime":1666193276537,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"RsiGq4PEAHxndv8H"}
|
||||
{"name":"Expert nano-drone","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276538,"modifiedTime":1666193276538,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"UAXwr0BrgA8UbStV"}
|
||||
{"name":"Enfant de Noble","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{"core":{"sheetClass":"fvtt-imperium5.Imperium5ItemSheet"}},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276538,"modifiedTime":1666193276538,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"amcEoKkqQu2puymX"}
|
||||
{"name":"Investisseur quantique","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276540,"modifiedTime":1666193276540,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"dMBTtnFj4lVveU8j"}
|
||||
{"name":"Soldat impérial","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276544,"modifiedTime":1666193276544,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"eZDL7H32oYUEYtcu"}
|
||||
{"name":"Nano-biotechnicien","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276542,"modifiedTime":1666193276542,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"iD4ppu8zk8fMYZmE"}
|
||||
{"name":"Espion mercenaire","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276538,"modifiedTime":1666193276538,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"lDFJKInNO4ZZFA4P"}
|
||||
{"name":"Science analyste","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276543,"modifiedTime":1666193276543,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"mfP3M7DNmMAHDxuQ"}
|
||||
{"name":"Free Rogue","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":"<p>Kalista</p>"},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276539,"modifiedTime":1666193276539,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"ouGaGEbJmqyuWBDe"}
|
||||
{"name":"Façonneur d’Automate","type":"archetype","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193276539,"modifiedTime":1666193276539,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"sCCuhfYOeqI5d1ia"}
|
|
@ -0,0 +1 @@
|
|||
{"name":"Dual pistolet à impulsion","type":"equipement","img":"icons/anvil.png","effects":[],"flags":{},"system":{"value":5,"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193282180,"modifiedTime":1666193282180,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"C18Bktvyz9nJKzqc"}
|
|
@ -0,0 +1,16 @@
|
|||
{"name":"Arme à distance","type":"familiarite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193287739,"modifiedTime":1666193287739,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"1VYn7tDKHYZmLjeO"}
|
||||
{"name":"Physionomiste","type":"familiarite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193287742,"modifiedTime":1666193287742,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"3tA6xtqjheEwRHyi"}
|
||||
{"name":"Finance","type":"familiarite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193287741,"modifiedTime":1666193287741,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"7AyfgIUdDrXSpPx6"}
|
||||
{"name":"Dissimulation","type":"familiarite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193287741,"modifiedTime":1666193287741,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"AYFvW7RkbeYulLU5"}
|
||||
{"name":"Art - Musique","type":"familiarite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193287740,"modifiedTime":1666193287740,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"EAfvfbDFbumjEada"}
|
||||
{"name":"Arme à distance","type":"familiarite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193287740,"modifiedTime":1666193287740,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"HjidIc0JW69czwTW"}
|
||||
{"name":"Art - Calligraphie","type":"familiarite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193287740,"modifiedTime":1666193287740,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"PLp4gbfVNOJQAqMJ"}
|
||||
{"name":"Marchander","type":"familiarite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193287742,"modifiedTime":1666193287742,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"Y0rePVyTqeqXz3Qj"}
|
||||
{"name":"Arme légère","type":"familiarite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193287740,"modifiedTime":1666193287740,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"YFZPlw2wJnITeBL6"}
|
||||
{"name":"Modification implants nano-tech","type":"familiarite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193287742,"modifiedTime":1666193287742,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"iPblGaQLmujwHhFQ"}
|
||||
{"name":"Langage du milieu","type":"familiarite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193287742,"modifiedTime":1666193287742,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"lJ7sOjtzg8Dzhn9M"}
|
||||
{"name":"Finance","type":"familiarite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193287741,"modifiedTime":1666193287741,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"nPg9T51M44jXOIcl"}
|
||||
{"name":"Impressionner","type":"familiarite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193287742,"modifiedTime":1666193287742,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"nx4UtPuG061gkS7T"}
|
||||
{"name":"Baratineur / Arnaqueur","type":"familiarite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193287741,"modifiedTime":1666193287741,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"oYVLwMaCySRaBSiM"}
|
||||
{"name":"Evaluation de la situation","type":"familiarite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193287741,"modifiedTime":1666193287741,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"viW9qXE57HcVWIb2"}
|
||||
{"name":"Art - Cuisine","type":"familiarite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193287740,"modifiedTime":1666193287740,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"zo5lpd5a4o2KEHet"}
|
|
@ -0,0 +1,39 @@
|
|||
{"name":"Documents secrets","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295153,"modifiedTime":1666193295153,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"0WHHicC1UJlzqp1P"}
|
||||
{"name":"Évaluation et tromper","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295155,"modifiedTime":1666193295155,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"0zR22u30iaMbDomZ"}
|
||||
{"name":"Bidouille techno","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295150,"modifiedTime":1666193295150,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"2korkxxDmUVzor7s"}
|
||||
{"name":"Analyse Flux et données de l'Onde","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295149,"modifiedTime":1666193295149,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"666g20CuvWEMmvJo"}
|
||||
{"name":"Tir armes légères","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295159,"modifiedTime":1666193295159,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"68hXMWOT6V3nMscZ"}
|
||||
{"name":"Histoire et savoir","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295156,"modifiedTime":1666193295156,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"Bo4qFGhxhmoIgboE"}
|
||||
{"name":"Langages du milieu","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295157,"modifiedTime":1666193295157,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"CB6FZnPNFf1M7tvQ"}
|
||||
{"name":"Beau parleur et flagorneur","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295150,"modifiedTime":1666193295150,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"FcM0Kdzm4pO7ULkU"}
|
||||
{"name":"Analyse multi-linguistique","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295149,"modifiedTime":1666193295149,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"Fk1DvRwtx7bRBhxw"}
|
||||
{"name":"Tir instinctif","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295160,"modifiedTime":1666193295160,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"Gy7b7vEFR3MiDVVS"}
|
||||
{"name":"Combat rapproché","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295151,"modifiedTime":1666193295151,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"HfVcNbCPuC4tslXE"}
|
||||
{"name":"Discrétion & infiltration","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295153,"modifiedTime":1666193295153,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"IaINf1mKDDdcoMcL"}
|
||||
{"name":"Danse des milles lames","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295152,"modifiedTime":1666193295152,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"IhfUQZkcfMPZrNT3"}
|
||||
{"name":"Expertise armes civiles et militaires","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295156,"modifiedTime":1666193295156,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"Kcyvb2JJsLWqyTrq"}
|
||||
{"name":"Évaluation de la situation","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","system":{"description":""},"effects":[],"flags":{},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666160832797,"modifiedTime":1666193295155,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"MA6nc1EAX0STqhKB"}
|
||||
{"name":"Manipulation mentale","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295158,"modifiedTime":1666193295158,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"MTkxEm4z3cQHWcIy"}
|
||||
{"name":"Association et changement des propriétés de la matière","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295150,"modifiedTime":1666193295150,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"McDqrXJpNb40zadC"}
|
||||
{"name":"Domaine artisitique Onde et Réel","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295154,"modifiedTime":1666193295154,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"RuHFfwRFayxxgjIw"}
|
||||
{"name":"Tactique et démolition","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295159,"modifiedTime":1666193295159,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"UeOVRDQM8TjXYVZR"}
|
||||
{"name":"Création d’Automates","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295152,"modifiedTime":1666193295152,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"UsgIx1qxPU9Z9FjI"}
|
||||
{"name":"Connaissances des structures Nanotech","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295151,"modifiedTime":1666193295151,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"XEzTH7qDNQTpXRyl"}
|
||||
{"name":"Intervention : gestion d’assauts et prise d'otage","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295157,"modifiedTime":1666193295157,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"XPXYyJAJt89LZnhJ"}
|
||||
{"name":"Maîtrise de la tromperie et de l'imaginaire","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295157,"modifiedTime":1666193295157,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"Y9GGuC5esavlyNTJ"}
|
||||
{"name":"Analyse des flux quantiques","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295149,"modifiedTime":1666193295149,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"YfRZlPmW16eS3Ror"}
|
||||
{"name":"L'art du savoir vivre et de la courtoisie","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295157,"modifiedTime":1666193295157,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"bSZQ0D6QW0dm4NEm"}
|
||||
{"name":"Tir armes lourdes","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295160,"modifiedTime":1666193295160,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"c91xFSTPVH0I6FJj"}
|
||||
{"name":"Flingue d'intervention","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295156,"modifiedTime":1666193295156,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"dlDHEVfJdLtoOY5F"}
|
||||
{"name":"Droit et savoir des Imperiums","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295154,"modifiedTime":1666193295154,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"gXum74AjlUsV05nr"}
|
||||
{"name":"Effraction système","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295154,"modifiedTime":1666193295154,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"gdmwi6DFIIZjNkpp"}
|
||||
{"name":"Modélisation de nanobot","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295158,"modifiedTime":1666193295158,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"h13ZdjX4uBqxOB05"}
|
||||
{"name":"Etiquette et Epée","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295155,"modifiedTime":1666193295155,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"m94xvrEszs168CsB"}
|
||||
{"name":"Connaissance des ondes et des particules","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295151,"modifiedTime":1666193295151,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"m9FjeKiKPM5oHdMj"}
|
||||
{"name":"Enquêtes, investigations et procédures","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295154,"modifiedTime":1666193295154,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"nGwBXHG88EE1b9Wm"}
|
||||
{"name":"Pistolet d'intervention","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295159,"modifiedTime":1666193295159,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"nzT1cZTeEeagMvoM"}
|
||||
{"name":"Modification implants Nano-Tech","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295158,"modifiedTime":1666193295158,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"pbc7jqk36XhgECrL"}
|
||||
{"name":"Finesse et manipulation d’Automate","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295156,"modifiedTime":1666193295156,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"rwecxvCF8YoCjK3J"}
|
||||
{"name":"Combat distance","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295150,"modifiedTime":1666193295150,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"uezgUNVHUAaQF65I"}
|
||||
{"name":"Connaître le corps humain/inhumain","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","system":{"description":""},"effects":[],"flags":{},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666160808668,"modifiedTime":1666193295152,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"ustM6OY1UnKtlaA6"}
|
||||
{"name":"Connaissances des structures Nano-Tech","type":"specialite","img":"systems/fvtt-imperium5/images/icons/archetype_transparent.webp","effects":[],"flags":{},"system":{"description":""},"_stats":{"systemId":"fvtt-imperium5","systemVersion":"10.0.1","coreVersion":"10.288","createdTime":1666193295151,"modifiedTime":1666193295151,"lastModifiedBy":"84nhNtzVlnRIbbDR"},"folder":null,"sort":0,"ownership":{"default":0,"84nhNtzVlnRIbbDR":3},"_id":"vHqy70xBITGVvC1V"}
|
|
@ -57,7 +57,7 @@
|
|||
|
||||
/* Fonts */
|
||||
.sheet header.sheet-header h1 input, .window-app .window-header, #actors .directory-list, #navigation #scene-list .scene.nav-item {
|
||||
font-size: 1.0rem;
|
||||
font-size: 0.8rem;
|
||||
} /* For title, sidebar character and scene */
|
||||
.sheet nav.sheet-tabs {
|
||||
font-size: 0.8rem;
|
||||
|
@ -78,7 +78,7 @@
|
|||
font-weight: bold;
|
||||
}
|
||||
|
||||
.tabs .item.active, .blessures-list li ul li:first-child:hover, a:hover {
|
||||
.tabs .item.active, a:hover {
|
||||
text-shadow: 1px 0px 0px #ff6600;
|
||||
}
|
||||
|
||||
|
@ -335,20 +335,21 @@ table {border: 1px solid #7a7971;}
|
|||
}
|
||||
|
||||
.fvtt-imperium5 .tabs {
|
||||
height: 40px;
|
||||
height: 24px;
|
||||
border-top: 1px solid #AAA;
|
||||
border-bottom: 1px solid #AAA;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.fvtt-imperium5 .tabs .item {
|
||||
line-height: 40px;
|
||||
line-height: 24px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.fvtt-imperium5 .tabs .item.active {
|
||||
text-decoration: underline;
|
||||
text-shadow: none;
|
||||
/*text-decoration: underline;*/
|
||||
background: linear-gradient(to bottom, #B8A799F0 5%, #9c6d47f0 100%);
|
||||
/*text-shadow: none;*/
|
||||
}
|
||||
|
||||
.fvtt-imperium5 .items-list {
|
||||
|
@ -445,29 +446,40 @@ section.sheet-body{padding: 0.25rem 0.5rem;}
|
|||
}
|
||||
|
||||
.sheet nav.sheet-tabs {
|
||||
font-size: 0.70rem;
|
||||
font-size: 0.8rem;
|
||||
font-weight: bold;
|
||||
height: 3rem;
|
||||
height: 2.5rem;
|
||||
flex: 0 0 3rem;
|
||||
margin: 0;
|
||||
padding: 0 0 0 0.25rem;
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
line-height: 1.5rem;
|
||||
border-radius: 8px;
|
||||
border-top: 0 none;
|
||||
border-bottom: 0 none;
|
||||
border-right: 0 none;
|
||||
background-color:#B8A799F0;
|
||||
color:beige;
|
||||
color: #403f3e;
|
||||
}
|
||||
|
||||
/* background: rgb(245,245,240) url("../images/ui/fond4.webp") repeat left top;*/
|
||||
|
||||
nav.sheet-tabs .item {
|
||||
position: relative;
|
||||
padding: 0 0.25rem;
|
||||
}
|
||||
|
||||
.tab-title {
|
||||
background-color:#B8A799F0;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.tab-title:hover {
|
||||
background: linear-gradient(to bottom, #B8A799F0 5%, #9c6d47f0 100%);
|
||||
background-color: red;
|
||||
}
|
||||
.tab-title:active {
|
||||
position:relative;
|
||||
top:1px;
|
||||
}
|
||||
|
||||
nav.sheet-tabs .item:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
|
@ -644,6 +656,7 @@ ul, li {
|
|||
.roll-dialog-label {
|
||||
margin: 4px 0;
|
||||
min-width: 96px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.short-label {
|
||||
flex-grow: 1;
|
||||
|
@ -1149,47 +1162,51 @@ ul, li {
|
|||
opacity: 1;
|
||||
}
|
||||
|
||||
.river-button {
|
||||
.common-button {
|
||||
box-shadow: inset 0px 1px 0px 0px #a6827e;
|
||||
background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%);
|
||||
background-color: #7d5d3b00;
|
||||
border-radius: 3px;
|
||||
background: linear-gradient(to bottom, #B8A799F0 5%, #80624af0 100%);
|
||||
background-color: #80624af0; /*#7d5d3b00;*/
|
||||
border-radius: 4px;
|
||||
opacity: 60%;
|
||||
border: 2px ridge #846109;
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
color: #ffffff;
|
||||
font-size: 0.8rem;
|
||||
padding: 2px 4px 0px 4px;
|
||||
text-decoration: none;
|
||||
text-shadow: 0px 1px 0px #4d3534;
|
||||
position: relative;
|
||||
margin:4px;
|
||||
}
|
||||
|
||||
.common-button option {
|
||||
background: linear-gradient(to bottom, #B8A799F0 5%, #80624af0 100%);
|
||||
background-color: #80624af0; /*#7d5d3b00;*/
|
||||
}
|
||||
|
||||
.common-button:hover {
|
||||
background: linear-gradient(to bottom, #97B5AEFF 5%, rgb(101, 167, 151) 100%);
|
||||
background-color: #97B5AEFF;
|
||||
}
|
||||
.common-button:active {
|
||||
position:relative;
|
||||
top:1px;
|
||||
}
|
||||
|
||||
.roll-ame-button {
|
||||
width: 80px;
|
||||
min-width: 80px;
|
||||
}
|
||||
|
||||
.chat-card-button {
|
||||
box-shadow: inset 0px 1px 0px 0px #a6827e;
|
||||
background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%);
|
||||
background-color: #7d5d3b00;
|
||||
border-radius: 3px;
|
||||
border: 2px ridge #846109;
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
color: #ffffff;
|
||||
font-size: 0.8rem;
|
||||
padding: 4px 12px 0px 12px;
|
||||
text-decoration: none;
|
||||
text-shadow: 0px 1px 0px #4d3534;
|
||||
position: relative;
|
||||
padding: 2px 2px 0px 2px;
|
||||
margin:2px;
|
||||
}
|
||||
|
||||
.chat-card-button:hover {
|
||||
background: linear-gradient(to bottom, #800000 5%, #3e0101 100%);
|
||||
background-color: red;
|
||||
}
|
||||
.chat-card-button:active {
|
||||
position:relative;
|
||||
top:1px;
|
||||
|
||||
.li-button-paradigme {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.plus-minus-button {
|
||||
|
@ -1208,9 +1225,7 @@ ul, li {
|
|||
margin:0px;
|
||||
}
|
||||
|
||||
.river-button:hover,
|
||||
.plus-minus-button:hover,
|
||||
.chat-card-button:hover {
|
||||
.plus-minus-button:hover {
|
||||
background: linear-gradient(to bottom, #800000 5%, #3e0101 100%);
|
||||
background-color: red;
|
||||
}
|
||||
|
@ -1294,7 +1309,7 @@ ul, li {
|
|||
/* =================== 1. ACTOR SHEET FONT STYLES =========== *//*
|
||||
*/
|
||||
.sheet-box {
|
||||
border-radius: 5%;
|
||||
border-radius: 12px;
|
||||
border-width: 1px;
|
||||
padding: 0.4rem;
|
||||
margin: 0.2rem;
|
||||
|
@ -1387,6 +1402,10 @@ ul, li {
|
|||
width: 64px;
|
||||
height: auto;
|
||||
}
|
||||
.separator-slash {
|
||||
width: 0.8rem;
|
||||
max-width: 0.8rem;
|
||||
}
|
||||
.item-name-img {
|
||||
flex-grow:1;
|
||||
max-width: 2rem;
|
||||
|
@ -1423,6 +1442,16 @@ ul, li {
|
|||
max-width: 8rem;
|
||||
min-width: 8rem;
|
||||
}
|
||||
.item-field-label-long2 {
|
||||
flex-grow:1;
|
||||
max-width: 20rem;
|
||||
min-width: 20rem;
|
||||
}
|
||||
.item-field-label-long2-no-img {
|
||||
flex-grow:1;
|
||||
max-width: 18rem;
|
||||
min-width: 18rem;
|
||||
}
|
||||
.item-control-end {
|
||||
align-self: flex-end;
|
||||
}
|
||||
|
@ -1449,4 +1478,7 @@ ul, li {
|
|||
}
|
||||
.color-text-ame {
|
||||
color: #806B64;
|
||||
}
|
||||
.ame-block {
|
||||
margin-bottom: 24px;
|
||||
}
|
85
system.json
85
system.json
|
@ -1,28 +1,70 @@
|
|||
{
|
||||
"author": "Uberwald",
|
||||
"compatibleCoreVersion": "9",
|
||||
"id": "fvtt-imperium5",
|
||||
"title": "Imperium5 RPG",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Uberwald",
|
||||
"flags": {}
|
||||
}
|
||||
],
|
||||
"languages": [
|
||||
{
|
||||
"lang": "fr",
|
||||
"name": "Français",
|
||||
"path": "lang/fr.json",
|
||||
"flags": {}
|
||||
}
|
||||
],
|
||||
"version": "10.0.13",
|
||||
"compatibility": {
|
||||
"minimum": "10",
|
||||
"verified": "10",
|
||||
"maximum": "10"
|
||||
},
|
||||
"description": "Imperium 5 RPG system for FoundryVTT",
|
||||
"download": "https://www.uberwald.me/data/files/fvtt-imperium5/fvtt-imperium5.zip",
|
||||
"esmodules": [
|
||||
"modules/imperium5-main.js"
|
||||
],
|
||||
"gridDistance": 5,
|
||||
"gridUnits": "m",
|
||||
"languages": [
|
||||
{
|
||||
"lang": "en",
|
||||
"name": "English",
|
||||
"path": "lang/en.json"
|
||||
}
|
||||
],
|
||||
"library": false,
|
||||
"license": "LICENSE.txt",
|
||||
"manifest": "https://www.uberwald.me/data/files/fvtt-imperium5/system.json",
|
||||
"manifestPlusVersion": "1.0.0",
|
||||
"media": [],
|
||||
"minimumCoreVersion": "0.8.0",
|
||||
"name": "fvtt-imperium5",
|
||||
"packs": [
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Archétypes",
|
||||
"name": "archetypes",
|
||||
"path": "packs/archetypes.db",
|
||||
"system": "fvtt-imperium5",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Familiarités",
|
||||
"name": "familiarites",
|
||||
"path": "packs/familiarites.db",
|
||||
"system": "fvtt-imperium5",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Spécialités",
|
||||
"name": "specialites",
|
||||
"path": "packs/specialites.db",
|
||||
"system": "fvtt-imperium5",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Equipement",
|
||||
"name": "equipement",
|
||||
"path": "packs/equipement.db",
|
||||
"system": "fvtt-imperium5",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
}
|
||||
],
|
||||
"primaryTokenAttribute": "secondary.health",
|
||||
"secondaryTokenAttribute": "secondary.delirium",
|
||||
|
@ -30,9 +72,8 @@
|
|||
"styles": [
|
||||
"styles/simple.css"
|
||||
],
|
||||
"templateVersion": 47,
|
||||
"title": "Imperium5 RPG",
|
||||
"url": "https://www.uberwald.me/data/files/fvtt-imperium5",
|
||||
"version": "0.0.7",
|
||||
"background" : "./images/ui/imperium5_welcome_page.webp"
|
||||
}
|
||||
"background": "images/ui/imperium5_welcome_page.webp",
|
||||
"url": "https://www.uberwald.me/gitea/uberwald/fvtt-imperium5",
|
||||
"manifest": "https://www.uberwald.me/gitea/uberwald/fvtt-imperium5/raw/branch/master/system.json",
|
||||
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-imperium5/archive/fvtt-imperium5-v10.0.13.zip"
|
||||
}
|
|
@ -1,7 +1,8 @@
|
|||
{
|
||||
"Actor": {
|
||||
"types": [
|
||||
"character"
|
||||
"character",
|
||||
"pm"
|
||||
],
|
||||
"templates": {
|
||||
"biodata": {
|
||||
|
@ -21,7 +22,8 @@
|
|||
"description": "",
|
||||
"rebuild": "",
|
||||
"contacts": "",
|
||||
"gmnotes": ""
|
||||
"gmnotes": "",
|
||||
"archetype": ""
|
||||
}
|
||||
},
|
||||
"core": {
|
||||
|
@ -126,6 +128,34 @@
|
|||
"seuil": 0,
|
||||
"reserve": 0
|
||||
}
|
||||
},
|
||||
"pmcore": {
|
||||
"ames": {
|
||||
"niveau": 0,
|
||||
"intensite": 1,
|
||||
"riposte": 1,
|
||||
"cohesions": [
|
||||
{
|
||||
"max": 1,
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"rupture": 0
|
||||
},
|
||||
"paradigmes": {
|
||||
"custom01": {
|
||||
"label": "A changer",
|
||||
"value": 0,
|
||||
"used": false,
|
||||
"editable": true
|
||||
},
|
||||
"custom02": {
|
||||
"label": "A changer",
|
||||
"value": 0,
|
||||
"used": false,
|
||||
"editable": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"character": {
|
||||
|
@ -133,6 +163,12 @@
|
|||
"biodata",
|
||||
"core"
|
||||
]
|
||||
},
|
||||
"pm": {
|
||||
"templates": [
|
||||
"biodata",
|
||||
"pmcore"
|
||||
]
|
||||
}
|
||||
},
|
||||
"Item": {
|
||||
|
@ -168,25 +204,25 @@
|
|||
"description": ""
|
||||
},
|
||||
"ressource": {
|
||||
"value": 0,
|
||||
"ressource": 0,
|
||||
"description": ""
|
||||
},
|
||||
"capacite": {
|
||||
"type": "",
|
||||
"capatype": "",
|
||||
"aide": 0,
|
||||
"ressource": 0,
|
||||
"description": ""
|
||||
},
|
||||
"singularite": {
|
||||
"value": 0,
|
||||
"ressource": 0,
|
||||
"description": ""
|
||||
},
|
||||
"equipement": {
|
||||
"value": 0,
|
||||
"ressource": 0,
|
||||
"description": ""
|
||||
},
|
||||
"contact": {
|
||||
"value": 0,
|
||||
"ressource": 0,
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,29 +1,38 @@
|
|||
<span class="flexrow">
|
||||
<h4 class="ame-margin ame-subtitle">{{typedata.label}}</h4>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="ame-block">
|
||||
<span class="flexrow">
|
||||
<h4 class="ame-margin ame-subtitle">{{typedata.label}}</h4>
|
||||
<div class="item-filler"> </div>
|
||||
|
||||
<select class="input-numeric-short padd-right status-small-label color-class-common" type="text"
|
||||
name="system.amestype.{{typeame}}.malus" value="{{typedata.malus}}" data-dtype="Number">
|
||||
{{#select typedata.malus}}
|
||||
<option value="0">0</option>
|
||||
<option value="-1">-1</option>
|
||||
<option value="-2">-2</option>
|
||||
<option value="-3">-3</option>
|
||||
{{/select}}
|
||||
</select>
|
||||
|
||||
<span class="ame-checkbox-label">-1<input class="ame-checkbox" type="checkbox" data-ame-key="{{typeame}}"></span>
|
||||
<span class="ame-checkbox-label">-2<input class="ame-checkbox" type="checkbox" data-ame-key="{{typeame}}"></span>
|
||||
<span class="ame-checkbox-label">-3<input class="ame-checkbox" type="checkbox" data-ame-key="{{typeame}}"></span>
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common cohesion-input"
|
||||
name="data.amestype.{{typeame}}.cohesion" value="{{typedata.cohesion}}" data-dtype="Number" {{#unless
|
||||
@root.editScore}}disabled{{/unless}} /> /
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common cohesion-input"
|
||||
name="data.amestype.{{typeame}}.cohesionmax" value="{{typedata.cohesionmax}}" data-dtype="Number" {{#unless
|
||||
@root.editScore}}disabled{{/unless}}>
|
||||
</span>
|
||||
name="system.amestype.{{typeame}}.cohesion" value="{{typedata.cohesion}}" data-dtype="Number" {{#unless
|
||||
@root.editScore}}disabled{{/unless}} /> <label class="ame-margin separator-slash"> / </label>
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common cohesion-input"
|
||||
name="system.amestype.{{typeame}}.cohesionmax" value="{{typedata.cohesionmax}}" data-dtype="Number" {{#unless
|
||||
@root.editScore}}disabled{{/unless}}>
|
||||
</span>
|
||||
|
||||
<ul class="ame-margin">
|
||||
{{#each data.ames as |ame key|}}
|
||||
{{#if (eq ame.type ../typeame)}}
|
||||
<li class="ame-padding item stat flexrow item-ame-roll" data-attr-key="{{key}}">
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common"
|
||||
name="data.ames.{{key}}.value" value="{{ame.value}}" data-dtype="Number" {{#unless
|
||||
@root.editScore}}disabled{{/unless}} />
|
||||
<span class="ame-label ame-margin" name="{{key}}">
|
||||
<a class="roll-ame" data-stat-key="{{key}}">{{ame.label}}</a>
|
||||
</span>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
<ul class="ame-margin">
|
||||
<li class="ame-padding item stat flexrow item-ame-roll" data-ame-key="{{key}}">
|
||||
{{#each system.ames as |ame key|}}
|
||||
{{#if (eq ame.type ../typeame)}}
|
||||
<span class="ame-label ame-margin " name="{{key}}">
|
||||
<button class="common-button roll-ame-button" data-ame-key="{{key}}">{{ame.label}}</button>
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common"
|
||||
name="system.ames.{{key}}.value" value="{{ame.value}}" data-dtype="Number" {{#unless
|
||||
@root.editScore}}disabled{{/unless}} />
|
||||
</span>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
|
@ -1,22 +1,22 @@
|
|||
{{#each data.paradigmes as |para key|}}
|
||||
{{#each system.paradigmes as |para key|}}
|
||||
<li class="item stat flexrow" data-attr-key="{{key}}">
|
||||
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common"
|
||||
name="data.paradigmes.{{key}}.value" value="{{para.value}}" data-dtype="Number" {{#unless
|
||||
name="system.paradigmes.{{key}}.value" value="{{para.value}}" data-dtype="Number" {{#unless
|
||||
@root.editScore}}disabled{{/unless}} />
|
||||
|
||||
<span class="stat-label stat-margin" name="{{key}}">
|
||||
{{#if para.editable}}
|
||||
<h4 class="ame-margin">
|
||||
<input type="text" class="color-class-common" name="data.paradigmes.{{key}}.label" value="{{para.label}}"
|
||||
<input type="text" class="color-class-common" name="system.paradigmes.{{key}}.label" value="{{para.label}}"
|
||||
data-dtype="String" {{#unless @root.editScore}}disabled{{/unless}} />
|
||||
</h4>
|
||||
{{else}}
|
||||
<h4 class="ame-margin"><a class="roll-ame ame-margin" data-stat-key="{{key}}">{{para.label}}</a></h4>
|
||||
<h4 class="ame-margin">{{para.label}}</h4>
|
||||
{{/if}}
|
||||
</span>
|
||||
|
||||
<input type="checkbox">
|
||||
<input type="checkbox" name="system.paradigmes.{{key}}.used" {{checked para.used}}>
|
||||
|
||||
</li>
|
||||
{{/each}}
|
|
@ -0,0 +1,374 @@
|
|||
<form class="{{cssClass}}" autocomplete="off">
|
||||
|
||||
{{!-- Sheet Header --}}
|
||||
<header class="sheet-header">
|
||||
<div class="header-fields">
|
||||
<div class="flexrow">
|
||||
<div>
|
||||
<h1 class="charname margin-right"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
||||
{{!-- Sheet Tab Navigation --}}
|
||||
<nav class="sheet-tabs tabs" data-group="primary">
|
||||
<a class="item tab-title" data-tab="principal">Principal</a>
|
||||
<a class="item tab-title" data-tab="biodata">Bio</a>
|
||||
</nav>
|
||||
</div>
|
||||
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
|
||||
{{!-- Combat Tab --}}
|
||||
<div class="tab principal" data-group="primary" data-tab="principal">
|
||||
|
||||
<div class="flexrow">
|
||||
|
||||
<div class="flexrow">
|
||||
<div class="sheet-box color-bg-ame ">
|
||||
<span class="flexrow">
|
||||
<img class="ame-icon" src="systems/fvtt-imperium5/images/icons/ame_transparent.webp">
|
||||
<h4 class="ame-margin title-font">AMES</h4>
|
||||
</span>
|
||||
|
||||
<div class="ame-block">
|
||||
<span class="flexrow">
|
||||
<label class="ame-margin">Niveau</label>
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common"
|
||||
name="system.ames.niveau" value="{{system.ames.niveau}}" data-dtype="Number" {{#unless
|
||||
@root.editScore}}disabled{{/unless}} />
|
||||
</span>
|
||||
|
||||
<span class="flexrow">
|
||||
<label class="ame-margin">Intensité</label>
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common"
|
||||
name="system.ames.intensite" value="{{system.ames.intensite}}" data-dtype="Number" {{#unless
|
||||
@root.editScore}}disabled{{/unless}} />
|
||||
</span>
|
||||
|
||||
<span class="flexrow">
|
||||
<label class="ame-margin">Riposte</label>
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common"
|
||||
name="system.ames.riposte" value="{{system.ames.riposte}}" data-dtype="Number" {{#unless
|
||||
@root.editScore}}disabled{{/unless}} />
|
||||
</span>
|
||||
|
||||
<span class="flexrow">
|
||||
<label class="ame-margin">Cohésion</label>
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common cohesion-input"
|
||||
name="system.ames.cohesions.value" value="{{system.ames.cohesions.value}}" data-dtype="Number" {{#unless
|
||||
@root.editScore}}disabled{{/unless}} /> <label class="ame-margin separator-slash"> / </label>
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common cohesion-input"
|
||||
name="system.ames.cohesions.max" value="{{system.ames.cohesions.max}}" data-dtype="Number" {{#unless
|
||||
@root.editScore}}disabled{{/unless}}>
|
||||
</span>
|
||||
|
||||
|
||||
<span class="flexrow">
|
||||
<label class="ame-margin">Rupture</label>
|
||||
<select class="input-numeric-short padd-right status-small-label color-class-common" type="text"
|
||||
name="system.ames.rupture" value="{{system.ames.rupture}}" data-dtype="Number">
|
||||
{{#select system.ames.rupture}}
|
||||
<option value="0">0</option>
|
||||
<option value="-1">-1</option>
|
||||
<option value="-2">-2</option>
|
||||
<option value="-3">-3</option>
|
||||
<option value="-3">-4</option>
|
||||
{{/select}}
|
||||
</select>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="sheet-box color-bg-paradigme ">
|
||||
|
||||
<span class="flexrow">
|
||||
<img class="ame-icon" src="systems/fvtt-imperium5/images/icons/paradigme_transparent.webp">
|
||||
<h4 class="ame-margin title-font">PARADIGMES</h4>
|
||||
</span>
|
||||
<ul>
|
||||
{{> systems/fvtt-imperium5/templates/actor-partial-paradigmes.html}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
|
||||
|
||||
<div class="sheet-box color-bg-archetype ">
|
||||
|
||||
<span class="flexrow">
|
||||
<img class="ame-icon" src="systems/fvtt-imperium5/images/icons/nature_transparent.webp">
|
||||
<h4 class="ame-margin title-font">NATURE PROFONDE</h4>
|
||||
</span>
|
||||
{{#if nature}}
|
||||
<ul>
|
||||
<li class="item stat flexrow " data-item-id="{{nature._id}}">
|
||||
<img class="sheet-competence-img" src="{{nature.img}}" />
|
||||
<span class="item-name-label">{{nature.name}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<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>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
{{else}}
|
||||
<ul>
|
||||
<li class="item stat flexrow " >
|
||||
<span >Aucune nature profonde</span>
|
||||
</li>
|
||||
</ul>
|
||||
{{/if}}
|
||||
|
||||
<h4 class="ame-margin">Traits</h4>
|
||||
<ul>
|
||||
{{#each traits as |trait key|}}
|
||||
<li class="item stat flexrow " data-item-id="{{trait._id}}">
|
||||
<img class="sheet-competence-img" src="{{trait.img}}" />
|
||||
<span class="item-name-label">{{trait.name}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<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>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
|
||||
<h4 class="ame-margin">Symbioses :</h4>
|
||||
<ul>
|
||||
{{#each symbioses as |symbiose key|}}
|
||||
<li class="item stat flexrow " data-item-id="{{symbiose._id}}">
|
||||
<img class="sheet-competence-img" src="{{symbiose.img}}" />
|
||||
<span class="item-name-label">{{symbiose.name}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<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>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow">
|
||||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">Equipement</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<label class="short-label">Intensité</label>
|
||||
</span>
|
||||
</li>
|
||||
{{#each equipements as |equip key|}}
|
||||
<li class="item flexrow " data-item-id="{{equip._id}}">
|
||||
<img class="item-name-img" src="{{equip.img}}" />
|
||||
<span class="item-name-label">{{equip.name}}</span>
|
||||
<span class="item-field-label-short">{{equip.system.value}}</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<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>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow">
|
||||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">Capacités</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<label class="short-label">Aide</label>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<label class="short-label">Ressource</label>
|
||||
</span>
|
||||
</li>
|
||||
{{#each capacites as |capa key|}}
|
||||
<li class="item flexrow " data-item-id="{{capa._id}}">
|
||||
<img class="item-name-img" src="{{capa.img}}" /></a>
|
||||
<span class="item-name-label">{{capa.name}}</span>
|
||||
<span class="item-field-label-short"">{{capa.system.aide}}</span>
|
||||
<span class=" item-field-label-short"">{{capa.system.ressource}}</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<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>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow">
|
||||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">Singularités</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<label class="short-label">Intensité</label>
|
||||
</span>
|
||||
</li>
|
||||
{{#each singularites as |singul key|}}
|
||||
<li class="item flexrow " data-item-id="{{singul._id}}">
|
||||
<img class="item-name-img" src="{{singul.img}}" />
|
||||
<span class="item-name-label">{{singul.name}}</span>
|
||||
<span class="item-field-label-short">{{singul.system.value}}</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<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>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow">
|
||||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">Contacts/Finances</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<label class="short-label">Intensité</label>
|
||||
</span>
|
||||
</li>
|
||||
{{#each contacts as |contact key|}}
|
||||
<li class="item flexrow " data-item-id="{{contact._id}}">
|
||||
<img class="item-name-img" src="{{contact.img}}" />
|
||||
<span class="item-name-label">{{contact.name}}</span>
|
||||
<span class="item-field-label-short">{{contact.system.value}}</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<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>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{!-- Biography Tab --}}
|
||||
<div class="tab biodata" data-group="primary" data-tab="biodata">
|
||||
<div class="grid grid-3col">
|
||||
<div>
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow">
|
||||
<label class="generic-label">Imperium</label>
|
||||
<input type="text" class="" name="system.biodata.imperium" value="{{system.biodata.imperium}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
<label class="generic-label">ADM ID</label>
|
||||
<input type="text" class="" name="system.biodata.admid" value="{{system.biodata.admid}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
<label class="generic-label">Age</label>
|
||||
<input type="text" class="" name="system.biodata.age" value="{{system.biodata.age}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<ul>
|
||||
<li class="flexrow item">
|
||||
<label class="generic-label">Poids</label>
|
||||
<input type="text" class="" name="system.biodata.weight" value="{{system.biodata.weight}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="flexrow item">
|
||||
<label class="generic-label">Sexe</label>
|
||||
<input type="text" class="" name="system.biodata.sex" value="{{system.biodata.sex}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
<label class="generic-label">Taille</label>
|
||||
<input type="text" class="" name="system.biodata.size" value="{{system.biodata.size}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<li class="item flexrow">
|
||||
<label class="generic-label">Yeux</label>
|
||||
<input type="text" class="" name="system.biodata.eyes" value="{{system.biodata.eyes}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="flexrow item">
|
||||
<label class="generic-label">Main préférée</label>
|
||||
<input type="text" class="" name="system.biodata.preferredhand" value="{{system.biodata.preferredhand}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
<label class="generic-label">Cheveux</label>
|
||||
<input type="text" class="" name="system.biodata.hair" value="{{system.biodata.hair}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
<div>
|
||||
<h3>Apparence actuelle : </h3>
|
||||
<div class="form-group small-editor">
|
||||
{{editor system.biodata.appactual target="system.biodata.appactual" button=true owner=owner
|
||||
editable=editable}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3>Traits particuliers : </h3>
|
||||
<div class="form-group small-editor">
|
||||
{{editor system.biodata.traits target="system.biodata.traits" button=true owner=owner
|
||||
editable=editable}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<h3>Qui suis-je : </h3>
|
||||
<div class="form-group editor">
|
||||
{{editor system.biodata.whoami target="system.biodata.whoami" button=true owner=owner
|
||||
editable=editable}}
|
||||
</div>
|
||||
<hr>
|
||||
<h3>Notes : </h3>
|
||||
<div class="form-group editor">
|
||||
{{editor system.biodata.notes target="system.biodata.notes" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
<hr>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
|
@ -8,9 +8,9 @@
|
|||
<h1 class="charname margin-right"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
||||
{{!-- Sheet Tab Navigation --}}
|
||||
<nav class="sheet-tabs tabs" data-group="primary">
|
||||
<a class="item" data-tab="principal">Principal</a>
|
||||
<a class="item" data-tab="ressources">Ressources</a>
|
||||
<a class="item" data-tab="biodata">Bio</a>
|
||||
<a class="item tab-title" data-tab="principal">Principal</a>
|
||||
<a class="item tab-title" data-tab="ressources">Ressources</a>
|
||||
<a class="item tab-title" data-tab="biodata">Bio</a>
|
||||
</nav>
|
||||
</div>
|
||||
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||
|
@ -24,30 +24,58 @@
|
|||
{{!-- Combat Tab --}}
|
||||
<div class="tab principal" data-group="primary" data-tab="principal">
|
||||
|
||||
<div>
|
||||
<div class="sheet-box color-bg-ame ">
|
||||
<div class=flexrow>
|
||||
<h4 class="ame-margin title-font">KARMA</h4>
|
||||
<span class="item-name-label flexrow">Karma
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common"
|
||||
name="system.karma.value" value="{{system.karma.value}}" data-dtype="Number" {{#unless
|
||||
@root.editScore}}disabled{{/unless}} />
|
||||
</span>
|
||||
<span class="item-name-label flexrow">Source
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common"
|
||||
name="system.karma.source" value="{{system.karma.source}}" data-dtype="Number" {{#unless
|
||||
@root.editScore}}disabled{{/unless}} />
|
||||
</span>
|
||||
<span class="item-name-label flexrow">XP
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common"
|
||||
name="system.karma.xp" value="{{system.karma.xp}}" data-dtype="Number" {{#unless
|
||||
@root.editScore}}disabled{{/unless}} />
|
||||
</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
|
||||
<div class="flexrow">
|
||||
<div class="sheet-box color-bg-ame color-text-ame">
|
||||
<div class="sheet-box color-bg-ame ">
|
||||
<span class="flexrow">
|
||||
<img class="ame-icon" src="systems/fvtt-imperium5/images/icons/ame_transparent.webp">
|
||||
<h4 class="ame-margin title-font">AMES</h4>
|
||||
</span>
|
||||
{{>systems/fvtt-imperium5/templates/actor-partial-ames.html typeame="physique" typedata=data.amestype.physique}}
|
||||
{{>systems/fvtt-imperium5/templates/actor-partial-ames.html typeame="physique"
|
||||
typedata=system.amestype.physique}}
|
||||
|
||||
{{>systems/fvtt-imperium5/templates/actor-partial-ames.html typeame="social" typedata=data.amestype.social}}
|
||||
{{>systems/fvtt-imperium5/templates/actor-partial-ames.html typeame="social"
|
||||
typedata=system.amestype.social}}
|
||||
|
||||
{{>systems/fvtt-imperium5/templates/actor-partial-ames.html typeame="mental" typedata=data.amestype.mental}}
|
||||
{{>systems/fvtt-imperium5/templates/actor-partial-ames.html typeame="mental"
|
||||
typedata=system.amestype.mental}}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<div class="sheet-box color-bg-archetype ">
|
||||
<span class="flexrow">
|
||||
<img class="ame-icon" src="systems/fvtt-imperium5/images/icons/archetype_transparent.webp">
|
||||
<h4 class="ame-margin title-font">ARCHETYPE</h4>
|
||||
</span>
|
||||
<h4 class="ame-margin"></h4>
|
||||
|
||||
{{#if archetype}}
|
||||
<ul>
|
||||
<li class="item stat flexrow" data-item-id="{{archetype._id}}">
|
||||
<img class="sheet-competence-img" src="{{archetype.img}}" /></a>
|
||||
|
@ -59,6 +87,14 @@
|
|||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
{{else}}
|
||||
<ul>
|
||||
<li class="item stat flexrow">
|
||||
<span>Aucun archetype</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
{{/if}}
|
||||
|
||||
<h4 class="ame-margin">Spécialités</h4>
|
||||
<ul>
|
||||
|
@ -96,7 +132,7 @@
|
|||
|
||||
<div class="flexrow">
|
||||
|
||||
<div class="sheet-box color-bg-paradigme">
|
||||
<div class="sheet-box color-bg-paradigme ">
|
||||
|
||||
<span class="flexrow">
|
||||
<img class="ame-icon" src="systems/fvtt-imperium5/images/icons/paradigme_transparent.webp">
|
||||
|
@ -107,12 +143,14 @@
|
|||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<div class="sheet-box color-bg-archetype ">
|
||||
|
||||
<span class="flexrow">
|
||||
<img class="ame-icon" src="systems/fvtt-imperium5/images/icons/nature_transparent.webp">
|
||||
<h4 class="ame-margin title-font">NATURE PROFONDE</h4>
|
||||
</span>
|
||||
|
||||
{{#if nature}}
|
||||
<ul>
|
||||
<li class="item stat flexrow " data-item-id="{{nature._id}}">
|
||||
<img class="sheet-competence-img" src="{{nature.img}}" />
|
||||
|
@ -124,6 +162,13 @@
|
|||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
{{else}}
|
||||
<ul>
|
||||
<li class="item stat flexrow ">
|
||||
<span>Aucune nature profonde</span>
|
||||
</li>
|
||||
</ul>
|
||||
{{/if}}
|
||||
|
||||
<h4 class="ame-margin">Traits</h4>
|
||||
<ul>
|
||||
|
@ -169,48 +214,18 @@
|
|||
<div class="sheet-box color-bg-archetype">
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow">
|
||||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">Equipement</label></h3>
|
||||
<span class="item-name-label-header item-field-label-long2">
|
||||
<h3><label class="item-field-label-long2">Equipement</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<label class="short-label">Intensité</label>
|
||||
<span class="item-field-label-long">
|
||||
<label class="item-field-label-long">Ressouce/Intensité</label>
|
||||
</span>
|
||||
</li>
|
||||
{{#each equipements as |equip key|}}
|
||||
<li class="item flexrow " data-item-id="{{equip._id}}">
|
||||
<img class="item-name-img" src="{{equip.img}}" />
|
||||
<span class="item-name-label">{{equip.name}}</span>
|
||||
<span class="item-field-label-short">{{equip.data.value}}</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<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>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow">
|
||||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">Capacités</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<label class="short-label">Aide</label>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<label class="short-label">Ressource</label>
|
||||
</span>
|
||||
</li>
|
||||
{{#each capacites as |capa key|}}
|
||||
<li class="item flexrow " data-item-id="{{capa._id}}">
|
||||
<img class="item-name-img" src="{{capa.img}}" /></a>
|
||||
<span class="item-name-label">{{capa.name}}</span>
|
||||
<span class="item-field-label-short"">{{capa.data.aide}}</span>
|
||||
<span class=" item-field-label-short"">{{capa.data.ressource}}</span>
|
||||
<span class="item-field-label-long2-no-img">{{equip.name}}</span>
|
||||
<span class="item-field-label-long">{{equip.system.ressource}}</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
|
@ -224,6 +239,38 @@
|
|||
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow">
|
||||
<span class="item-name-label-header item-field-label-long2">
|
||||
<h3><label class="item-field-label-long2">Capacités</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<label class="short-label">Aide</label>
|
||||
</span>
|
||||
<span class="item-field-label-long">
|
||||
<label class="item-field-label-long">Ressource/Intensité</label>
|
||||
</span>
|
||||
</li>
|
||||
{{#each capacites as |capa key|}}
|
||||
<li class="item flexrow " data-item-id="{{capa._id}}">
|
||||
<img class="item-name-img" src="{{capa.img}}" /></a>
|
||||
<span class="item-field-label-long2-no-img">{{capa.name}}</span>
|
||||
<span class="item-field-label-short"">{{capa.system.aide}}</span>
|
||||
<span class=" item-field-label-short"">{{capa.system.ressource}}</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<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>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
|
@ -232,15 +279,15 @@
|
|||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">Singularités</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<label class="short-label">Intensité</label>
|
||||
<span class="item-field-label-long">
|
||||
<label class="item-field-label-long">Ressource/Intensité</label>
|
||||
</span>
|
||||
</li>
|
||||
{{#each singularites as |singul key|}}
|
||||
<li class="item flexrow " data-item-id="{{singul._id}}">
|
||||
<img class="item-name-img" src="{{singul.img}}" />
|
||||
<span class="item-name-label">{{singul.name}}</span>
|
||||
<span class="item-field-label-short">{{singul.data.value}}</span>
|
||||
<span class="item-field-label-long">{{singul.system.ressource}}</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
|
@ -258,15 +305,15 @@
|
|||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">Contacts/Finances</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<label class="short-label">Intensité</label>
|
||||
<span class="item-field-label-long">
|
||||
<label class="item-field-label-long">Ressource/Intensité</label>
|
||||
</span>
|
||||
</li>
|
||||
{{#each contacts as |contact key|}}
|
||||
<li class="item flexrow " data-item-id="{{contact._id}}">
|
||||
<img class="item-name-img" src="{{contact.img}}" />
|
||||
<span class="item-name-label">{{contact.name}}</span>
|
||||
<span class="item-field-label-short">{{contact.data.value}}</span>
|
||||
<span class="item-field-label-long">{{contact.system.ressource}}</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
|
@ -290,17 +337,18 @@
|
|||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow">
|
||||
<label class="generic-label">Imperium</label>
|
||||
<input type="text" class="" name="data.biodata.imperium" value="{{data.biodata.imperium}}"
|
||||
<input type="text" class="" name="system.biodata.imperium" value="{{system.biodata.imperium}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
<label class="generic-label">ADM ID</label>
|
||||
<input type="text" class="" name="data.biodata.admid" value="{{data.biodata.admid}}"
|
||||
<input type="text" class="" name="system.biodata.admid" value="{{system.biodata.admid}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
<label class="generic-label">Age</label>
|
||||
<input type="text" class="" name="data.biodata.age" value="{{data.biodata.age}}" data-dtype="String" />
|
||||
<input type="text" class="" name="system.biodata.age" value="{{system.biodata.age}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -308,32 +356,36 @@
|
|||
<ul>
|
||||
<li class="flexrow item">
|
||||
<label class="generic-label">Poids</label>
|
||||
<input type="text" class="" name="data.biodata.weight" value="{{data.biodata.weight}}"
|
||||
<input type="text" class="" name="system.biodata.weight" value="{{system.biodata.weight}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="flexrow item">
|
||||
<label class="generic-label">Sexe</label>
|
||||
<input type="text" class="" name="data.biodata.sex" value="{{data.biodata.sex}}" data-dtype="String" />
|
||||
<input type="text" class="" name="system.biodata.sex" value="{{system.biodata.sex}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
<label class="generic-label">Taille</label>
|
||||
<input type="text" class="" name="data.biodata.size" value="{{data.biodata.size}}" data-dtype="String" />
|
||||
<input type="text" class="" name="system.biodata.size" value="{{system.biodata.size}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<li class="item flexrow">
|
||||
<label class="generic-label">Yeux</label>
|
||||
<input type="text" class="" name="data.biodata.eyes" value="{{data.biodata.eyes}}" data-dtype="String" />
|
||||
<input type="text" class="" name="system.biodata.eyes" value="{{system.biodata.eyes}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="flexrow item">
|
||||
<label class="generic-label">Main préférée</label>
|
||||
<input type="text" class="" name="data.biodata.preferredhand" value="{{data.biodata.preferredhand}}"
|
||||
<input type="text" class="" name="system.biodata.preferredhand" value="{{system.biodata.preferredhand}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
<label class="generic-label">Cheveux</label>
|
||||
<input type="text" class="" name="data.biodata.hair" value="{{data.biodata.hair}}" data-dtype="String" />
|
||||
<input type="text" class="" name="system.biodata.hair" value="{{system.biodata.hair}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -342,14 +394,14 @@
|
|||
<div>
|
||||
<h3>Apparence actuelle : </h3>
|
||||
<div class="form-group small-editor">
|
||||
{{editor content=data.biodata.appactual target="data.biodata.appactual" button=true owner=owner
|
||||
{{editor system.biodata.appactual target="system.biodata.appactual" button=true owner=owner
|
||||
editable=editable}}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<h3>Autres identités : </h3>
|
||||
<div class="form-group small-editor">
|
||||
{{editor content=data.biodata.identities target="data.biodata.identities" button=true owner=owner
|
||||
{{editor system.biodata.identities target="system.biodata.identities" button=true owner=owner
|
||||
editable=editable}}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -359,14 +411,14 @@
|
|||
<div>
|
||||
<h3>Traits particuliers : </h3>
|
||||
<div class="form-group small-editor">
|
||||
{{editor content=data.biodata.traits target="data.biodata.traits" button=true owner=owner
|
||||
{{editor system.biodata.traits target="system.biodata.traits" button=true owner=owner
|
||||
editable=editable}}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<h3>Souvenirs quantiques : </h3>
|
||||
<div class="form-group small-editor">
|
||||
{{editor content=data.biodata.memories target="data.biodata.memories" button=true owner=owner
|
||||
{{editor system.biodata.memories target="system.biodata.memories" button=true owner=owner
|
||||
editable=editable}}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -376,14 +428,14 @@
|
|||
<div>
|
||||
<h3>Rebuild : </h3>
|
||||
<div class="form-group small-editor">
|
||||
{{editor content=data.biodata.rebuild target="data.biodata.rebuild" button=true owner=owner
|
||||
{{editor system.biodata.rebuild target="system.biodata.rebuild" button=true owner=owner
|
||||
editable=editable}}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<h3>Relations, contacts et acolytes : </h3>
|
||||
<div class="form-group small-editor">
|
||||
{{editor content=data.biodata.contacts target="data.biodata.contacts" button=true owner=owner
|
||||
{{editor system.biodata.contacts target="system.biodata.contacts" button=true owner=owner
|
||||
editable=editable}}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -391,13 +443,13 @@
|
|||
|
||||
<h3>Qui suis-je : </h3>
|
||||
<div class="form-group editor">
|
||||
{{editor content=data.biodata.whoami target="data.biodata.whoami" button=true owner=owner
|
||||
{{editor system.biodata.whoami target="system.biodata.whoami" button=true owner=owner
|
||||
editable=editable}}
|
||||
</div>
|
||||
<hr>
|
||||
<h3>Notes : </h3>
|
||||
<div class="form-group editor">
|
||||
{{editor content=data.biodata.notes target="data.biodata.notes" button=true owner=owner editable=editable}}
|
||||
{{editor system.biodata.notes target="system.biodata.notes" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
<hr>
|
||||
</article>
|
||||
|
|
|
@ -5,50 +5,118 @@
|
|||
<h4 class=chat-actor-name>{{alias}}</h4>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
{{#if img}}
|
||||
<div >
|
||||
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
|
||||
</div>
|
||||
{{/if}}
|
||||
<hr>
|
||||
|
||||
<div class="flexcol">
|
||||
</div>
|
||||
<div class="flexcol">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<ul>
|
||||
{{#if power}}
|
||||
<li>Power : {{power.name}}</li>
|
||||
{{/if}}
|
||||
{{#if isDamage}}
|
||||
<li>Weapon Damage Dice : {{weapon.data.damageDice}}</li>
|
||||
{{/if}}
|
||||
{{#if isResistance}}
|
||||
<li>Armor Resistance Dice : {{armor.data.resistanceDice}}</li>
|
||||
{{/if}}
|
||||
{{#if stat}}
|
||||
<li>Statistic : {{stat.label}}</li>
|
||||
{{/if}}
|
||||
{{#if spec}}
|
||||
<li>Specialisation : {{spec.name}}</li>
|
||||
{{/if}}
|
||||
<div>
|
||||
<ul>
|
||||
<li class="imperium5-roll">Réserve : {{humanFormula}}</li>
|
||||
<li>Score :
|
||||
(
|
||||
{{#each resultsPC as |r k|}}
|
||||
{{#if @root.useSpecialite}}
|
||||
<a class="apply-specialite common-button" data-result-index="{{k}}">{{r.result}}</a>
|
||||
{{else}}
|
||||
{{r.result}}
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
)
|
||||
(
|
||||
{{#each roll.terms.2.results as |r k|}}
|
||||
{{r.result}}
|
||||
{{/each}}
|
||||
)
|
||||
(
|
||||
{{#each roll.terms.4.results as |r k|}}
|
||||
{{r.result}}
|
||||
{{/each}}
|
||||
)
|
||||
</li>
|
||||
|
||||
{{#if weaponName}}
|
||||
<li>Weapon : {{weaponName}}</li>
|
||||
{{/if}}
|
||||
{{#if specialiteApplied}}
|
||||
<li>Une Spécialité a réduit de 1 le résultat du dé</li>
|
||||
{{/if}}
|
||||
|
||||
{{#if isResistance}}
|
||||
<li><strong>Defense Result : {{finalScore}}</strong>
|
||||
{{else}}
|
||||
{{#if isDamage}}
|
||||
<li><strong>Damages : {{finalScore}}</strong>
|
||||
{{else}}
|
||||
<li><strong>Final Result : {{finalScore}}</strong>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
{{#if usedParadigme}}
|
||||
<li>Paradigme utilisé : {{usedParadigme}}</li>
|
||||
{{/if}}
|
||||
|
||||
</div>
|
||||
<li>Seuil : {{seuil}}
|
||||
{{#if (count paradigmes)}}
|
||||
<select class="common-button select-apply-paradigme" type="text" value="{{selectedParadigme}}"
|
||||
data-dtype="String">
|
||||
{{#select selectedParadigme}}
|
||||
<option value="none">Pas de paradigme</option>
|
||||
{{#each paradigmes as |para key|}}
|
||||
<option value="{{para.key}}">{{para.label}} ({{para.value}})</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
{{/if}}
|
||||
</li>
|
||||
|
||||
<li>Unités de narration : {{realSuccessPC}}
|
||||
{{#if realSuccessPC}}
|
||||
<select class="common-button transfer-success" type="text" value="{{nbSuccessSource}}" data-dtype="Number">
|
||||
{{#select nbSuccessSource}}
|
||||
<option value="none">0 -> Source</option>
|
||||
{{#times realSuccessPC}}
|
||||
<option value="{{this}}">{{this}} -> Source</option>
|
||||
{{/times}}
|
||||
{{/select}}
|
||||
</select>
|
||||
{{/if}}
|
||||
</li>
|
||||
|
||||
{{#if realSuccessPC}}
|
||||
<li>Ressource :
|
||||
<select class="common-button select-ressource" type="text" value="none" data-dtype="String">
|
||||
{{#select "none"}}
|
||||
<option value="none">Aucun</option>
|
||||
{{#each ressources as |ressource key|}}
|
||||
<option value="{{ressource._id}}">{{ressource.name}} ({{ressource.system.ressource}})</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
{{/if}}
|
||||
|
||||
{{#if (count selectedRessources)}}
|
||||
<li>Ressources utilisées : </li>
|
||||
<ul class="ul-level1">
|
||||
{{#each selectedRessources as |ressource key|}}
|
||||
<li>
|
||||
{{ressource.name}} ({{ressource.system.ressource}});
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</li>
|
||||
{{/if}}
|
||||
|
||||
{{#if totalIntensite}}
|
||||
<li>Intensité totale : {{totalIntensite}}</li>
|
||||
{{/if}}
|
||||
|
||||
{{#if sourceTransfer}}
|
||||
<li>Succés transférés à la Source : {{sourceTransfer}}</li>
|
||||
{{/if}}
|
||||
|
||||
<li>Succés de Réalité : {{successGM}}</li>
|
||||
|
||||
{{#if nbKarma}}
|
||||
<li>Points de Karma utilisés : {{nbKarma}}</li>
|
||||
{{/if}}
|
||||
|
||||
{{#if bonPresage}}
|
||||
<li>Bon Présage !</li>
|
||||
{{/if}}
|
||||
{{#if mauvaisPresage}}
|
||||
<li>Mauvais Présage !</li>
|
||||
{{/if}}
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
|
@ -1,6 +1,6 @@
|
|||
{{#if data.isGM}}
|
||||
<h3>GM Notes : </h3>
|
||||
<div class="form-group editor">
|
||||
{{editor content=data.gmnotes target="data.gmnotes" button=true owner=owner editable=editable}}
|
||||
{{editor system.gmnotes target="system.gmnotes" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
|
|
@ -8,35 +8,30 @@
|
|||
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
|
||||
<h3>{{upperFirst type}}</h3>
|
||||
|
||||
<div class="flexcol">
|
||||
{{#if (exists data.type)}}
|
||||
<span>
|
||||
<label class="generic-label">Type : </label>
|
||||
<input type="text" class="padd-right status-small-label color-class-common" name="data.type" value="{{data.type}}"
|
||||
{{#if (exists system.capatype)}}
|
||||
<span class="flexrow">
|
||||
<label class="generic-label item-field-label-long">Type de capacité : </label>
|
||||
<input type="text" class="padd-right status-small-label color-class-common" name="system.capatype" value="{{system.capatype}}"
|
||||
data-dtype="String" />
|
||||
</span>
|
||||
{{/if}}
|
||||
{{#if (exists data.value)}}
|
||||
<span>
|
||||
<label class="generic-label">Valeur : </label>
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common" name="data.value" value="{{data.value}}"
|
||||
|
||||
{{#if (exists system.aide)}}
|
||||
<span class="flexrow">
|
||||
<label class="generic-label item-field-label-long">Aide : </label>
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common" name="system.aide" value="{{system.aide}}"
|
||||
data-dtype="Number" />
|
||||
</span>
|
||||
{{/if}}
|
||||
|
||||
{{#if (exists data.aide)}}
|
||||
<span class="generic-label">
|
||||
<label>Aide : </label>
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common" name="data.aide" value="{{data.aide}}"
|
||||
data-dtype="Number" />
|
||||
</span>
|
||||
{{/if}}
|
||||
|
||||
{{#if (exists data.ressource)}}
|
||||
<span class="generic-label">
|
||||
<label>Resource : </label>
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common" name="data.ressource" value="{{data.ressource}}"
|
||||
{{#if (exists system.ressource)}}
|
||||
<span class="flexrow">
|
||||
<label class="generic-label item-field-label-long">Resource/Intensité : </label>
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common" name="system.ressource" value="{{system.ressource}}"
|
||||
data-dtype="Number" />
|
||||
</span>
|
||||
{{/if}}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
{{/if}}
|
||||
|
||||
<span class="item-field-label-long"><label>
|
||||
{{equip.data.quantity}}
|
||||
{{equip.system.quantity}}
|
||||
(<a class="quantity-minus plus-minus-button"> -</a>/<a class="quantity-plus plus-minus-button">+</a>)
|
||||
</label>
|
||||
</span>
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
<li class="item flexrow list-item color-class-{{lower stat.abbrev}} item-stat-roll" data-attr-key="{{key}}">
|
||||
<span class="stat-icon">
|
||||
<img class="stat-icon" src="systems/fvtt-pegasus-rpg/images/icons/{{stat.abbrev}}.webp">
|
||||
</span>
|
||||
<span class="stat-label stat-margin" name="{{key}}">
|
||||
<h4 class="stat-text-white stat-margin"><a class="roll-stat stat-margin" data-stat-key="{{key}}">{{stat.abbrev}}</a></h4>
|
||||
</span>
|
||||
<select class="status-small-label color-class-common" type="text" name="data.statistics.{{key}}.value" value="{{stat.value}}"
|
||||
data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||
{{#select stat.value}}
|
||||
{{{@root.optionsDiceList}}}
|
||||
{{/select}}
|
||||
</select>
|
||||
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common" name="data.statistics.{{key}}.mod" value="{{stat.mod}}"
|
||||
data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}} />
|
||||
</li>
|
|
@ -1,70 +0,0 @@
|
|||
<ul class="status-block">
|
||||
<li class="item flexrow">
|
||||
<span class="stat-label status-small-label status-col-name"><label class="status-small-label"><strong>Status</strong></label></span>
|
||||
<span class="status-header-label status-small-label no-grow"><label class="status-small-label">Cur</label></span>
|
||||
<span class="status-header-label status-small-label no-grow"><label class="status-small-label">Mod</label></span>
|
||||
<span class="status-header-label status-small-label no-grow"><label class="status-small-label">Max</label></span>
|
||||
</li>
|
||||
{{#each data.secondary as |stat2 key|}}
|
||||
<li class="item flexrow " data-attr-key="{{key}}">
|
||||
<span class="stat-label flexrow status-col-name" name="{{key}}">
|
||||
<label class="status-small-label"><strong>{{stat2.label}}</strong><br>
|
||||
{{#if (eq key "health")}}
|
||||
(KOV -{{stat2.max}})
|
||||
{{/if}}
|
||||
{{#if (eq key "delirium")}}
|
||||
(MV -{{stat2.max}})
|
||||
{{/if}}
|
||||
</label>
|
||||
</span>
|
||||
<input type="text" class="padd-right status-small-label no-grow" name="data.secondary.{{key}}.value" value="{{stat2.value}}" data-dtype="Number"/>
|
||||
<input type="text" class="padd-right status-small-label no-grow" name="data.secondary.{{key}}.bonus" value="{{stat2.bonus}}" data-dtype="Number"/>
|
||||
<input type="text" class="padd-right status-small-label no-grow" name="data.secondary.{{key}}.max" value="{{stat2.max}}" data-dtype="Number"/>
|
||||
</li>
|
||||
{{/each}}
|
||||
<li class="item flexrow " data-key="nrg">
|
||||
<span class="stat-label flexrow status-col-name" name="nrg">
|
||||
<label class="status-small-label"><strong>{{data.nrg.label}}</strong></label>
|
||||
</span>
|
||||
<input type="text" class="padd-right status-small-label no-grow" name="data.nrg.value" value="{{data.nrg.value}}" data-dtype="Number"/>
|
||||
<input type="text" class="padd-right status-small-label no-grow" name="data.nrg.mod" value="{{data.nrg.mod}}" data-dtype="Number"/>
|
||||
<input type="text" class="padd-right status-small-label no-grow" name="data.nrg.max" value="{{data.nrg.max}}" data-dtype="Number"/>
|
||||
<span class="small-label status-small-label"> /{{data.nrg.absolutemax}}</span>
|
||||
</li>
|
||||
<li class="item flexrow " data-key="nrg">
|
||||
<span class="stat-label flexrow status-col-name" name="activated-nrg">
|
||||
<label class="status-small-label"><strong>Activated NRG</strong><br>
|
||||
</span>
|
||||
<span class="stat-label flexrow status-col-name" name="activated-nrg">
|
||||
<input type="text" class="padd-right status-small-label no-grow" name="data.nrg.activated" value="{{data.nrg.activated}}" data-dtype="Number"/>
|
||||
</span>
|
||||
<!--<span class="stat-label flexrow status-col-name" name="momentum">
|
||||
<label class="status-small-label flexrow"><strong>
|
||||
<a class="stat-icon lock-unlock-sheet">{{#if editScore}}Lock{{else}}Unlock{{/if}}</a>
|
||||
</strong></label>-->
|
||||
</span>
|
||||
</li>
|
||||
<li class="item flexrow " data-key="momentum">
|
||||
<span class="stat-label flexrow status-col-name" name="momentum">
|
||||
<label class="status-small-label"><strong>Momentum</strong></label>
|
||||
</span>
|
||||
<input type="text" class="padd-right status-small-label no-grow" name="data.momentum.value" value="{{data.momentum.value}}" data-dtype="Number"/>
|
||||
<input type="text" class="padd-right status-small-label no-grow" name="data.momentum.max" value="{{data.momentum.max}}" data-dtype="Number"/>
|
||||
<span>
|
||||
<a class="momentum-plus plus-minus-button">+</a>
|
||||
<a class="momentum-minus plus-minus-button">-</a>
|
||||
</span>
|
||||
</li>
|
||||
<!--<li class="item flexrow list-item" data-key="lock-unlock">
|
||||
<span class="stat-label flexrow status-col-name" name="momentum">
|
||||
<a class="stat-icon lock-unlock-sheet"><img class="small-button-container"
|
||||
src="systems/fvtt-pegasus-rpg/images/icons/{{#if editStatSkill}}unlocked.svg{{else}}locked.svg{{/if}}" alt="lock/unlock"
|
||||
></a>
|
||||
</span>-->
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<!-- <span class="small-label padd-right packed-left">Act</span>
|
||||
<input type="text" class="padd-right" name="data.nrg.activated" value="{{data.nrg.activated}}" data-dtype="Number"/>
|
||||
-->
|
|
@ -1,16 +0,0 @@
|
|||
<li class="flexrow"><label class="generic-label">Effects</label>
|
||||
</li>
|
||||
<li>
|
||||
<ul class="ul-level1">
|
||||
<li class="flexrow"><div class="drop-equipment-effect"><label>Drop Effects here !</label></div>
|
||||
</li>
|
||||
{{#each data.effects as |effect idx|}}
|
||||
<li class="flexrow">
|
||||
<label name="data.effects[{{idx}}].name"><a class="view-subitem" data-type="effects" data-index="{{idx}}">{{effect.name}}</a></label>
|
||||
<div class="item-controls padd-left">
|
||||
<a class="item-control delete-subitem padd-left" data-type="effects" data-index="{{idx}}" title="Delete Effect"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</li>
|
|
@ -2,5 +2,5 @@
|
|||
<label class="generic-label">Description</label>
|
||||
</span>
|
||||
<div class="medium-editor item-text-long-line">
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor system.description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
|
|
@ -4,5 +4,5 @@
|
|||
<img class="chat-img" src="{{img}}" title="{{name}}" />
|
||||
{{/if}}
|
||||
<h4><b>Description : </b></h4>
|
||||
<p class="card-content">{{{data.description}}}</p>
|
||||
<p class="card-content">{{{system.description}}}</p>
|
||||
</div>
|
||||
|
|
|
@ -1,88 +1,75 @@
|
|||
<form class="skill-roll-dialog">
|
||||
<header class="roll-dialog-header">
|
||||
{{#if img}}
|
||||
<img class="actor-icon" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||
{{#if actorImg}}
|
||||
<img class="actor-icon" src="{{actorImg}}" data-edit="img" title="{{name}}" />
|
||||
{{/if}}
|
||||
<h1 class="dialog-roll-title roll-dialog-header">{{title}}</h1>
|
||||
<h1 class="dialog-roll-title roll-dialog-header">{{ame.label}} ({{ame.value}})</h1>
|
||||
</header>
|
||||
|
||||
<div class="grid grid-2col">
|
||||
<div class="flexcol sheet-box color-bg-ame">
|
||||
|
||||
<div class="flexcol">
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label" >Stat Dice : </span>
|
||||
<select class="roll-dialog-label" id="statDicesLevel" type="text" name="statDicesLevel" value="{{statDicesLevel}}" data-dtype="Number"
|
||||
{{#if statKey}}disabled{{/if}}>
|
||||
{{#select statDicesLevel}}
|
||||
{{{optionsDiceList}}}
|
||||
{{/select}}
|
||||
</select>
|
||||
<span class="small-label"> + {{statMod}}</span>
|
||||
</div>
|
||||
|
||||
{{#if specList}}
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label" >Spec : </span>
|
||||
<select class="roll-dialog-label" id="specList" type="text" name="selectedSpec" value="{{selectedSpec}}" data-dtype="String">
|
||||
{{#select selectedSpec}}
|
||||
<option value="0">None</option>
|
||||
{{#each specList as |spec idx|}}
|
||||
<option value="{{spec._id}}">{{spec.name}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
<span class="small-label"> </span>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label" >Spec Dice : </span>
|
||||
<select class="roll-dialog-label" id="specDicesLevel" type="text" name="specDicesLevel" value="{{specDicesLevel}}" data-dtype="Number"
|
||||
{{#if specList}}disabled{{/if}}>
|
||||
{{#select specDicesLevel}}
|
||||
{{{optionsDiceList}}}
|
||||
{{/select}}
|
||||
</select>
|
||||
<span class="small-label"> </span>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label" >Bonus Dice : </span>
|
||||
<select class="roll-dialog-label" id="bonusDicesLevel" type="text" name="bonusDicesLevel" value="{{bonusDicesLevel}}" data-dtype="Number">
|
||||
{{#select bonusDicesLevel}}
|
||||
{{{optionsDiceList}}}
|
||||
{{/select}}
|
||||
</select>
|
||||
<span class="small-label"> </span>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label" >Hindrance Dice :</span>
|
||||
<select class="roll-dialog-label" id="hindranceDicesLevel" type="text" name="hindranceDicesLevel" value="{{hindranceDicesLevel}}" data-dtype="Number">
|
||||
{{#select hindranceDicesLevel}}
|
||||
{{{optionsDiceList}}}
|
||||
{{/select}}
|
||||
</select>
|
||||
<span class="small-label"> </span>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label" >Other Dice :</span>
|
||||
<select class="roll-dialog-label" id="otherDicesLevel" type="text" name="otherDicesLevel" value="{{otherDicesLevel}}" data-dtype="Number">
|
||||
{{#select otherDicesLevel}}
|
||||
{{{optionsDiceList}}}
|
||||
{{/select}}
|
||||
</select>
|
||||
<span class="small-label"> </span>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">Ruptures : {{ameMalus}}</span>
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">Utiliser l'Archetype ? : </span>
|
||||
<input class="ame-checkbox" id="select-use-archetype" type="checkbox" {{checked useArchetype}}>
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">Aides ? : </span>
|
||||
<select class="roll-dialog-label" id="select-aide-pj" type="text" name="nbAide" value="{{nbAide}}"
|
||||
data-dtype="Number">
|
||||
{{#select nbAide}}
|
||||
<option value="0">0</option>
|
||||
<option value="1">1</option>
|
||||
<option value="2">2</option>
|
||||
<option value="3">3</option>
|
||||
{{/select}}
|
||||
</select>
|
||||
</div>
|
||||
{{#if karma}}
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">Utiliser une capacité : </span>
|
||||
<select class="roll-dialog-label" id="select-capacite" type="text" name="usedCapacite" value="{{usedCapacite}}"
|
||||
data-dtype="Number">
|
||||
{{#select usedCapacite}}
|
||||
<option value="none">Aucune</option>
|
||||
{{#each capacites as |capa key|}}
|
||||
<option value="{{capa._id}}">{{capa.name}} ({{capa.system.aide}})</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">Utiliser 1 Point de Karma ? : </span>
|
||||
<input class="ame-checkbox" id="select-use-karma" type="checkbox" {{checked useKarma}}>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">Total : <span id="ame-total">{{ame.value}}</span>d8</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{{> systems/fvtt-pegasus-rpg/templates/partial-roll-select-effects.html}}
|
||||
<div class="flexcol sheet-box color-bg-archetype">
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">Dés de Réalité : </span>
|
||||
<select class="roll-dialog-label" id="select-realite-dice" type="text" name="realiteDice" value="{{realiteDice}}"
|
||||
data-dtype="Number">
|
||||
{{#select realiteDice}}
|
||||
<option value="0">0</option>
|
||||
<option value="1">1</option>
|
||||
<option value="2">2</option>
|
||||
<option value="3">3</option>
|
||||
<option value="4">4</option>
|
||||
<option value="5">5</option>
|
||||
<option value="6">6</option>
|
||||
{{/select}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
Loading…
Reference in New Issue