Gestion des jets opposés
This commit is contained in:
parent
1224500881
commit
82e7a170c2
BIN
images/icons/opposition.webp
Normal file
BIN
images/icons/opposition.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
176
lang/fr.json
176
lang/fr.json
@ -1,175 +1,17 @@
|
||||
{
|
||||
"TYPES": {
|
||||
"Actor":{
|
||||
"pc": "Personnage Joueur",
|
||||
"npc": "Personnage Non Joueur",
|
||||
"annency": "Anence"
|
||||
"pj": "Personnage Joueur",
|
||||
"pnj": "Personnage Non Joueur"
|
||||
},
|
||||
"Item": {
|
||||
"trait": "Trait",
|
||||
"weapon": "Arme",
|
||||
"equipment": "Equipement",
|
||||
"maneuver": "Manoeuvre",
|
||||
"specialization": "Spécialisation"
|
||||
}
|
||||
},
|
||||
"ECRY": {
|
||||
"settings": {
|
||||
"cogs": "Engrenages",
|
||||
"cephaly": "Céphalie",
|
||||
"boheme": "Bohême",
|
||||
"amertume": "Amertume",
|
||||
"gamelevel": "Niveau de jeu"
|
||||
},
|
||||
"chat": {
|
||||
"formula": "Formule",
|
||||
"difficulty": "Difficulté",
|
||||
"dicesum": "Dés",
|
||||
"result": "Resultat",
|
||||
"margin": "Marge",
|
||||
"success": "Succés!",
|
||||
"failure": "Echec!",
|
||||
"specialization": "Spécialisation",
|
||||
"traitbonus": "Trait bonus",
|
||||
"traitmalus": "Trait malus",
|
||||
"bonusmalustraits": "Bonus/Malus des Traits",
|
||||
"spectranscend": "Dépassement de soi : ",
|
||||
"confrontselected": "Confrontation selectionnée",
|
||||
"sentogm": "La confrontation a été envoyée au MJ"
|
||||
},
|
||||
"rule": {
|
||||
"cephaly-success-12": "Durée : 1 scène - Impact : Superficiel - Bonus : 1 - Elegie : 1",
|
||||
"cephaly-success-4": "Durée : 1 semaine - Impact : Léger - Bonus : 2 - Elegie : 2",
|
||||
"cephaly-success-6": "Durée : 1 mois - Impact : Grave - Bonus : 3 - Elegie : 3",
|
||||
"cephaly-success-8": "Durée : 1 année - Impact : Majeur - Bonus : 4 - Elegie : 4",
|
||||
"cephaly-success-10": "Durée : Permanent - Impact : Mort - Bonus : 5 - Elegie : 5",
|
||||
"cephaly-failure-2": "Durée : 1 scène - Impact : Superficiel - Malus : 1 - Symptôme non visible et sans gravité - Altération bégigne difficilement repérable",
|
||||
"cephaly-failure-4": "Durée : 1 semaine - Impact : Léger - Malus : 2 - Symptôme visible non incapacitant - Altération repérable",
|
||||
"cephaly-failure-6": "Durée : 1 mois - Impact : Grave - Malus : 3 - Symptôme incapacitant - Altération repérable et fâcheuse",
|
||||
"cephaly-failure-8": "Durée : 1 année - Impact : Majeur - Malus : 4 - Symptôme très incapacitant - Altération dangereuse",
|
||||
"cephaly-failure-10": "Durée : Permanent - Impact : Mort/Folie - Malus : 5 - Symptôme spectaculaire et repoussant - Altération dangereuse globalement"
|
||||
|
||||
},
|
||||
"warn": {
|
||||
"notenoughdice": "L'Accomplissement et la Préservation doivent avoir 2 dés chacun"
|
||||
},
|
||||
"ui": {
|
||||
"equipmentfree": "Equipements (saisie libre)",
|
||||
"traitType": "Type de trait",
|
||||
"niveauTrait": "Niveau du trait",
|
||||
"effect": "Incidence",
|
||||
"weight": "Poids",
|
||||
"cost": "Prix",
|
||||
"costUnit": "Unité",
|
||||
"ingot": "Lingot",
|
||||
"ingotin": "Lingotin",
|
||||
"goldcoin": "Pièce d'or",
|
||||
"lige": "Lige",
|
||||
"hurle": "Hurle",
|
||||
"coin": "Sous",
|
||||
"notes": "Notes",
|
||||
"bio": "Bio",
|
||||
"bionotes": "Bio&Notes",
|
||||
"skills": "Compétences",
|
||||
"traits": "Traits",
|
||||
"equipment": "Equipement",
|
||||
"physical": "Physiques",
|
||||
"mental": "Mentales",
|
||||
"social": "Sociales",
|
||||
"athletics": "Athlétisme",
|
||||
"driving": "Conduite",
|
||||
"fencing": "Escrime",
|
||||
"brawling": "Pugilat",
|
||||
"shooting": "Tir",
|
||||
"anthropomecanology": "Anthropo-Mécanologie",
|
||||
"ecrymology": "Écrymologie",
|
||||
"traumatology": "Traumatologie",
|
||||
"traversology": "Traversologie",
|
||||
"urbatechnology": "Urbatechnologie",
|
||||
"quibbling": "Argutie",
|
||||
"creativity": "Créativité",
|
||||
"loquacity": "Faconde",
|
||||
"guile": "Maraude",
|
||||
"performance" :"Représentation",
|
||||
"skill": "Compétence",
|
||||
"troublesome": "Malaisé",
|
||||
"occasional": "Peu frequent",
|
||||
"difficult": "Difficile",
|
||||
"uncommon": "Atypique",
|
||||
"verydifficult": "Très difficile",
|
||||
"rare": "Rare",
|
||||
"extremdifficult": "Extrêmement difficile",
|
||||
"veryrare": "Très rare",
|
||||
"increddifficult": "Incroyable",
|
||||
"exceptrare": "Exceptionnel",
|
||||
"none": "Aucun",
|
||||
"roll": "Lancer les dés !",
|
||||
"cancel": "Annuler",
|
||||
"rolltitle": "Ou l'on teste ses compétences",
|
||||
"spec": "Spécialisation",
|
||||
"traitbonus": "Traits bonus",
|
||||
"traitmalus": "Traits malus",
|
||||
"applyideal": "Utiliser l'idéal",
|
||||
"applyspleen": "Utiliser le spleen",
|
||||
"skilltranscendence": "Dépassement de soi",
|
||||
"confrontation": "Confrontation",
|
||||
"rollnormal": "Normal (4d6)",
|
||||
"rollspleen": "Avec le Spleen (5d6, 4 plus bas conservés)",
|
||||
"rollideal": "Avec l'Idéal (5d6, 4 plus haut conservés)",
|
||||
"superficial": "Superficiel",
|
||||
"light": "Léger",
|
||||
"serious": "Grave",
|
||||
"major": "Majeur",
|
||||
"impactType": "Type d'Impact",
|
||||
"impactLevel": "Niveau d'impact",
|
||||
"impactphysical": "Physique",
|
||||
"impactmental": "Mental",
|
||||
"impactsocial": "Social",
|
||||
"impactmalus": "Malus d'Impact",
|
||||
"ongoingconfront": "Confrontations en cours",
|
||||
"confront":"Confrontation",
|
||||
"launchconfront": "Lancer la confrontation",
|
||||
"execution": "Accomplissement",
|
||||
"preservation": "Préservation",
|
||||
"dicepool": "Dés disponibles",
|
||||
"selectconfront": "Sélectionner pour la Confrontation",
|
||||
"transcendapply": "Appliquer la Transcendence à ",
|
||||
"healthcombat": "Santé&Combat",
|
||||
"name": "Nom",
|
||||
"weapons": "Armes",
|
||||
"weapon": "Arme",
|
||||
"melee": "Mêlée",
|
||||
"ranged": "A Distance",
|
||||
"weapontype": "Type d'arme",
|
||||
"type": "Type",
|
||||
"applyimpact": "Appliquer l'impact",
|
||||
"applybonus": "Appliquer le bonus",
|
||||
"bonuspool": "Bonus disponibles",
|
||||
"cephaly": "Cephalie",
|
||||
"elegy": "Elégie",
|
||||
"entelechy": "Entéléchie",
|
||||
"mekany": "Mekanë",
|
||||
"psyche": "Psyché",
|
||||
"scoria": "Scorie",
|
||||
"cephalydifficulty": "Difficulté de la Céphalie",
|
||||
"maneuvers": "Manoeuvres",
|
||||
"annency": "Anence",
|
||||
"iscollective": "Collective",
|
||||
"ismultiple": "Multiple",
|
||||
"description": "Description",
|
||||
"location": "Lieu",
|
||||
"characters": "Personnages",
|
||||
"enhancements": "Améliorations",
|
||||
"oniricform": "Forme Onorique (Bohême)",
|
||||
"ideals": "Idéaux",
|
||||
"politic": "Idéaux politiques",
|
||||
"boheme": "Bohême",
|
||||
"annencybonus": "Bonus d'Anence",
|
||||
"bornplace": "Lieu de naissance",
|
||||
"residence": "Résidence",
|
||||
"origin": "Origine",
|
||||
"childhood": "Enfance",
|
||||
"bonus": "Bonus"
|
||||
"competence": "Competence",
|
||||
"arme": "Arme",
|
||||
"equipement": "Equipement",
|
||||
"armure": "Armure",
|
||||
"grace": "Grace",
|
||||
"origine": "Origine",
|
||||
"education": "Education"
|
||||
}
|
||||
}
|
||||
}
|
@ -42,6 +42,7 @@ export class TeDeumActorPJSheet extends ActorSheet {
|
||||
providence: this.actor.prepareProvidence(),
|
||||
arbreCompetences: this.actor.prepareArbreCompetences(),
|
||||
equipements: this.actor.getEquipements(),
|
||||
armures: this.actor.getArmures(),
|
||||
graces: this.actor.getGraces(),
|
||||
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }),
|
||||
notes: await TextEditor.enrichHTML(this.object.system.notes, { async: true }),
|
||||
|
@ -34,6 +34,16 @@ export class TeDeumActor extends Actor {
|
||||
return actor;
|
||||
}
|
||||
|
||||
if (data.type == 'pj') {
|
||||
const skills = await TeDeumUtility.loadCompendium("fvtt-te-deum.competences")
|
||||
data.items = data.items || []
|
||||
for (let skill of skills) {
|
||||
if (skill.system.isBase || skill.system.score == 1) {
|
||||
data.items.push(skill.toObject())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return super.create(data, options);
|
||||
}
|
||||
|
||||
|
@ -123,7 +123,7 @@ export const TEDEUM_CONFIG = {
|
||||
facile: { label: "Facile", value: 5 },
|
||||
pardefaut: { label: "Par Défaut", value: 7 },
|
||||
malaise: { label: "Malaisé", value: 9 },
|
||||
difficile: { label: "difficile", value: 11 },
|
||||
difficile: { label: "Difficile", value: 11 },
|
||||
perilleux: { label: "Perilleux", value: 13 },
|
||||
desespere: { label: "Désespéré", value: 15 }
|
||||
},
|
||||
|
@ -133,36 +133,44 @@ export class TeDeumUtility {
|
||||
return actor
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */ /* -------------------------------------------- */
|
||||
static async manageOpposition(rollData) {
|
||||
if (!this.currentOpposition) {
|
||||
// Store rollData as current GM opposition
|
||||
this.currentOpposition = rollData
|
||||
ui.notifications.info("Opposition démarrée avec " + rollData.alias );
|
||||
} else {
|
||||
// Perform the opposition
|
||||
let rWinner = this.currentOpposition
|
||||
let rLooser = rollData
|
||||
if (rWinner.total < rLooser.total) {
|
||||
rWinner = rollData
|
||||
rLooser = this.currentOpposition
|
||||
}
|
||||
this.currentOpposition = undefined // Reset opposition
|
||||
let oppositionData = {
|
||||
winner: rWinner,
|
||||
looser: rLooser
|
||||
}
|
||||
let msg = await this.createChatWithRollMode(rollData.alias, {
|
||||
content: await renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-opposition-result.hbs`, oppositionData)
|
||||
})
|
||||
await msg.setFlag("world", "te-deum-rolldata", rollData)
|
||||
console.log("Rolldata result", rollData)
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */ /* -------------------------------------------- */
|
||||
static async chatListeners(html) {
|
||||
|
||||
html.on("click", '.button-select-confront', event => {
|
||||
html.on("click", '.chat-command-button', event => {
|
||||
let messageId = TeDeumUtility.findChatMessageId(event.currentTarget)
|
||||
let message = game.messages.get(messageId)
|
||||
let rollData = message.getFlag("world", "te-deum-rolldata")
|
||||
ui.notifications.info( game.i18n.localize("ECRY.chat.confrontselect"))
|
||||
TeDeumUtility.manageConfrontation(rollData)
|
||||
if (rollData) {
|
||||
TeDeumUtility.manageOpposition(rollData, messageId)
|
||||
}
|
||||
})
|
||||
html.on("click", '.button-apply-cephaly-difficulty', event => {
|
||||
let messageId = TeDeumUtility.findChatMessageId(event.currentTarget)
|
||||
let message = game.messages.get(messageId)
|
||||
let rollData = message.getFlag("world", "te-deum-rolldata")
|
||||
let difficulty = $("#" + rollData.rollId + "-cephaly-difficulty").val()
|
||||
TeDeumUtility.manageCephalyDifficulty(rollData, difficulty)
|
||||
})
|
||||
html.on("click", '.button-apply-impact', event => {
|
||||
let messageId = TeDeumUtility.findChatMessageId(event.currentTarget)
|
||||
let message = game.messages.get(messageId)
|
||||
let actor = game.actors.get($(event.currentTarget).data("actor-id"))
|
||||
actor.modifyImpact($(event.currentTarget).data("impact-type"), $(event.currentTarget).data("impact"), 1)
|
||||
})
|
||||
html.on("click", '.button-apply-bonus', event => {
|
||||
let messageId = TeDeumUtility.findChatMessageId(event.currentTarget)
|
||||
let message = game.messages.get(messageId)
|
||||
let actor = game.actors.get($(event.currentTarget).data("actor-id"))
|
||||
actor.modifyConfrontBonus($(event.currentTarget).data("bonus"))
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -46,7 +46,9 @@ export class TeDeumPJSchema extends foundry.abstract.TypeDataModel {
|
||||
schema.statutocial = new fields.StringField({ required: false, blank: true, initial: undefined });
|
||||
schema.chargestitre = new fields.StringField({ required: false, blank: true, initial: undefined });
|
||||
schema.charges = new fields.StringField({ required: false, blank: true, initial: undefined });
|
||||
|
||||
schema.religion = new fields.StringField({ required: false, blank: true, initial: undefined });
|
||||
schema.lieunaissance = new fields.StringField({ required: false, blank: true, initial: undefined });
|
||||
|
||||
return schema;
|
||||
}
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
MANIFEST-000097
|
||||
MANIFEST-000105
|
||||
|
@ -1,8 +1,3 @@
|
||||
2024/06/04-21:04:01.195163 7f1e64e006c0 Recovering log #94
|
||||
2024/06/04-21:04:01.205547 7f1e64e006c0 Delete type=3 #92
|
||||
2024/06/04-21:04:01.205638 7f1e64e006c0 Delete type=0 #94
|
||||
2024/06/04-21:04:48.464146 7f1e5da006c0 Level-0 table #100: started
|
||||
2024/06/04-21:04:48.464176 7f1e5da006c0 Level-0 table #100: 0 bytes OK
|
||||
2024/06/04-21:04:48.500422 7f1e5da006c0 Delete type=0 #98
|
||||
2024/06/04-21:04:48.500602 7f1e5da006c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at (end)
|
||||
2024/06/04-21:04:48.500619 7f1e5da006c0 Manual compaction at level-1 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at (end)
|
||||
2024/06/06-16:27:16.818495 7fcfb2a006c0 Recovering log #103
|
||||
2024/06/06-16:27:16.829929 7fcfb2a006c0 Delete type=3 #101
|
||||
2024/06/06-16:27:16.830004 7fcfb2a006c0 Delete type=0 #103
|
||||
|
@ -1,15 +1,8 @@
|
||||
2024/06/02-20:22:04.658032 7f2f302006c0 Recovering log #90
|
||||
2024/06/02-20:22:04.712047 7f2f302006c0 Delete type=3 #88
|
||||
2024/06/02-20:22:04.712099 7f2f302006c0 Delete type=0 #90
|
||||
2024/06/02-20:58:31.396230 7f2f2ee006c0 Level-0 table #95: started
|
||||
2024/06/02-20:58:31.399756 7f2f2ee006c0 Level-0 table #95: 28482 bytes OK
|
||||
2024/06/02-20:58:31.406774 7f2f2ee006c0 Delete type=0 #93
|
||||
2024/06/02-20:58:31.406940 7f2f2ee006c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at (end)
|
||||
2024/06/02-20:58:31.406967 7f2f2ee006c0 Manual compaction at level-1 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at '!items!zwC0H39ar5Pl1l92' @ 390 : 1
|
||||
2024/06/02-20:58:31.406972 7f2f2ee006c0 Compacting 1@1 + 1@2 files
|
||||
2024/06/02-20:58:31.410472 7f2f2ee006c0 Generated table #96@1: 113 keys, 15164 bytes
|
||||
2024/06/02-20:58:31.410495 7f2f2ee006c0 Compacted 1@1 + 1@2 files => 15164 bytes
|
||||
2024/06/02-20:58:31.416350 7f2f2ee006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
||||
2024/06/02-20:58:31.416439 7f2f2ee006c0 Delete type=2 #5
|
||||
2024/06/02-20:58:31.416583 7f2f2ee006c0 Delete type=2 #95
|
||||
2024/06/02-20:58:31.416682 7f2f2ee006c0 Manual compaction at level-1 from '!items!zwC0H39ar5Pl1l92' @ 390 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at (end)
|
||||
2024/06/05-23:00:55.185946 7f1e64e006c0 Recovering log #99
|
||||
2024/06/05-23:00:55.196553 7f1e64e006c0 Delete type=3 #97
|
||||
2024/06/05-23:00:55.196655 7f1e64e006c0 Delete type=0 #99
|
||||
2024/06/05-23:35:36.332443 7f1e5da006c0 Level-0 table #104: started
|
||||
2024/06/05-23:35:36.332474 7f1e5da006c0 Level-0 table #104: 0 bytes OK
|
||||
2024/06/05-23:35:36.338443 7f1e5da006c0 Delete type=0 #102
|
||||
2024/06/05-23:35:36.338563 7f1e5da006c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at (end)
|
||||
2024/06/05-23:35:36.338586 7f1e5da006c0 Manual compaction at level-1 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at (end)
|
||||
|
Binary file not shown.
@ -1 +1 @@
|
||||
MANIFEST-000158
|
||||
MANIFEST-000166
|
||||
|
@ -1,7 +1,3 @@
|
||||
2024/06/04-21:04:01.182320 7f1e5f4006c0 Recovering log #156
|
||||
2024/06/04-21:04:01.193373 7f1e5f4006c0 Delete type=3 #154
|
||||
2024/06/04-21:04:01.193473 7f1e5f4006c0 Delete type=0 #156
|
||||
2024/06/04-21:04:48.422044 7f1e5da006c0 Level-0 table #161: started
|
||||
2024/06/04-21:04:48.422074 7f1e5da006c0 Level-0 table #161: 0 bytes OK
|
||||
2024/06/04-21:04:48.463998 7f1e5da006c0 Delete type=0 #159
|
||||
2024/06/04-21:04:48.500588 7f1e5da006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||
2024/06/06-16:27:16.805501 7fcfb8e006c0 Recovering log #164
|
||||
2024/06/06-16:27:16.816044 7fcfb8e006c0 Delete type=3 #162
|
||||
2024/06/06-16:27:16.816128 7fcfb8e006c0 Delete type=0 #164
|
||||
|
@ -1,7 +1,7 @@
|
||||
2024/06/02-20:22:04.602737 7f2f2f8006c0 Recovering log #152
|
||||
2024/06/02-20:22:04.655957 7f2f2f8006c0 Delete type=3 #150
|
||||
2024/06/02-20:22:04.656073 7f2f2f8006c0 Delete type=0 #152
|
||||
2024/06/02-20:58:31.369733 7f2f2ee006c0 Level-0 table #157: started
|
||||
2024/06/02-20:58:31.369760 7f2f2ee006c0 Level-0 table #157: 0 bytes OK
|
||||
2024/06/02-20:58:31.376040 7f2f2ee006c0 Delete type=0 #155
|
||||
2024/06/02-20:58:31.376155 7f2f2ee006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||
2024/06/05-23:00:55.173863 7f1e5ea006c0 Recovering log #160
|
||||
2024/06/05-23:00:55.183501 7f1e5ea006c0 Delete type=3 #158
|
||||
2024/06/05-23:00:55.183581 7f1e5ea006c0 Delete type=0 #160
|
||||
2024/06/05-23:35:36.305356 7f1e5da006c0 Level-0 table #165: started
|
||||
2024/06/05-23:35:36.305385 7f1e5da006c0 Level-0 table #165: 0 bytes OK
|
||||
2024/06/05-23:35:36.311763 7f1e5da006c0 Delete type=0 #163
|
||||
2024/06/05-23:35:36.321710 7f1e5da006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||
|
Binary file not shown.
BIN
packs/equipment/MANIFEST-000166
Normal file
BIN
packs/equipment/MANIFEST-000166
Normal file
Binary file not shown.
@ -757,6 +757,12 @@ ul, li {
|
||||
font-size: 1.2rem;
|
||||
padding: 4px;
|
||||
}
|
||||
.chat-actor-name-opposition {
|
||||
font-weight: bold;
|
||||
font-family: MailartRubberstamp;
|
||||
font-size: 0.9rem;
|
||||
padding: 4px;
|
||||
}
|
||||
.chat-result-success {
|
||||
color: darkgreen;
|
||||
}
|
||||
@ -767,6 +773,15 @@ ul, li {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
}
|
||||
.chat-command-img {
|
||||
border: 0px;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
}
|
||||
.chat-result-column {
|
||||
min-width: 70%;
|
||||
width: 70%;
|
||||
}
|
||||
.roll-dialog-header {
|
||||
height: 52px;
|
||||
}
|
||||
|
@ -701,6 +701,12 @@ ul, li {
|
||||
font-size: 1.2rem;
|
||||
padding: 4px;
|
||||
}
|
||||
.chat-actor-name-opposition {
|
||||
font-weight: bold;
|
||||
font-family: MailartRubberstamp;
|
||||
font-size: 0.9rem;
|
||||
padding: 4px;
|
||||
}
|
||||
.chat-result-success {
|
||||
color: darkgreen;
|
||||
}
|
||||
@ -711,6 +717,15 @@ ul, li {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
}
|
||||
.chat-command-img {
|
||||
border: 0px;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
}
|
||||
.chat-result-column {
|
||||
min-width: 70%;
|
||||
width: 70%;
|
||||
}
|
||||
.roll-dialog-header {
|
||||
height: 52px;
|
||||
}
|
||||
|
23
system.json
23
system.json
@ -49,7 +49,7 @@
|
||||
"manifest": "https://www.uberwald.me/gitea/public/fvtt-te-deum/raw/branch/master/system.json",
|
||||
"compatibility": {
|
||||
"minimum": "11",
|
||||
"verified": "11"
|
||||
"verified": "12"
|
||||
},
|
||||
"id": "fvtt-te-deum",
|
||||
"primaryTokenAttribute": "secondary.health",
|
||||
@ -62,7 +62,22 @@
|
||||
},
|
||||
"title": "Te Deum pour Un Massacre, le Jeu de Rôles",
|
||||
"url": "https://www.uberwald.me/gitea/public/fvtt-te-deum",
|
||||
"version": "11.0.1",
|
||||
"download": "https://www.uberwald.me/gitea/public/fvtt-te-deum/archive/fvtt-te-deum-v11.0.0.zip",
|
||||
"background": ""
|
||||
"version": "12.0.0",
|
||||
"download": "https://www.uberwald.me/gitea/public/fvtt-te-deum/archive/fvtt-te-deum-v12.0.0.zip",
|
||||
"background": "",
|
||||
"flags": {
|
||||
"hotReload": {
|
||||
"extensions": [
|
||||
"css",
|
||||
"hbs",
|
||||
"json"
|
||||
],
|
||||
"paths": [
|
||||
"styles/",
|
||||
"lang/",
|
||||
"assets/",
|
||||
"templates/"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@ -108,7 +108,7 @@
|
||||
<label class="item-field item-field-label-short">{{carac.value}}</label>
|
||||
<label class="item-field item-field-label-medium">{{carac.dice}} (xp : {{carac.experience}})</label>
|
||||
</li>
|
||||
<ul class="ul-level1 flexrow item-list alternate-list">
|
||||
<ul class="ul-level1 flexrow item-list">
|
||||
{{#each carac.competences as |comp skillkey|}}
|
||||
<li class="flexrow carac-box comp-box item-id" data-item-id="{{comp.id}}">
|
||||
<label class="item-left-pad item-field item-field-label-long">
|
||||
@ -171,20 +171,21 @@
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<span class="item-name-label-header-long2">
|
||||
<h3><label class="item-name-label-header-long2">{{localize "ECRY.ui.maneuvers"}}</label></h3>
|
||||
<h3><label class="item-name-label-header-long2">Armures</label></h3>
|
||||
</span>
|
||||
</li>
|
||||
{{#each maneuvers as |maneuver key|}}
|
||||
<li class="item flexrow list-item list-item-shadow" data-item-id="{{maneuver._id}}">
|
||||
{{#each armures as |armure key|}}
|
||||
<li class="item flexrow list-item list-item-shadow item-id" data-item-id="{{armure._id}}">
|
||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||
src="{{maneuver.img}}" /></a>
|
||||
src="{{armure.img}}" /></a>
|
||||
<span class="item-name-label-long2">
|
||||
{{maneuver.name}}
|
||||
{{armure.name}}
|
||||
</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-delete" title="Delete maneuver"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'armure"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'armure"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -197,7 +198,7 @@
|
||||
<div class="tab equipements" data-group="primary" data-tab="equipements">
|
||||
|
||||
<span class="item-name-label-header items-title-bg">
|
||||
<h3><label class="items-title-text">{{localize "ECRY.ui.equipmentfree"}}</label></h3>
|
||||
<h3><label class="items-title-text">Zone libre</label></h3>
|
||||
</span>
|
||||
<div class="form-group small-editor">
|
||||
{{editor equipementlibre target="system.equipmentfree" button=true owner=owner editable=editable}}
|
||||
@ -205,28 +206,29 @@
|
||||
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">{{localize "ECRY.ui.equipment"}}s</label></h3>
|
||||
<span class="item-field-label-long">
|
||||
<h3><label class="item-field-label-long">Equipements</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-medium">
|
||||
<label class="item-field-label-medium">{{localize "ECRY.ui.weight"}}</label>
|
||||
<label class="item-field-label-medium">Prix</label>
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="equipment" title="Create Item"><i class="fas fa-plus"></i></a>
|
||||
<a class="item-control item-add" data-type="equipment" title="Créer un équipement"><i class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
{{#each equipments as |equip key|}}
|
||||
<li class="item list-item flexrow list-item-shadow" data-item-id="{{equip._id}}">
|
||||
{{#each equipements as |equip key|}}
|
||||
<li class="item list-item flexrow list-item-shadow item-id" data-item-id="{{equip._id}}">
|
||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||
src="{{equip.img}}" /></a>
|
||||
<span class="item-name-label">{{equip.name}}</span>
|
||||
<span class="item-field-label-medium">{{equip.system.weight}}</span>
|
||||
<span class="item-field-label-medium">{{equip.system.prix}} {{equip.system.monnaie}}</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer un équipement"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer un équipement"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -243,8 +245,8 @@
|
||||
<div>
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow">
|
||||
<label class="item-name-label-medium">{{localize "ECRY.ui.bornplace"}}</label>
|
||||
<input type="text" class="" name="system.biodata.lieunaissance" value="{{system.biodata.lieunaissance}}"
|
||||
<label class="item-name-label-medium">Lieu de naissance</label>
|
||||
<input type="text" class="" name="system.lieunaissance" value="{{system.biodata.lieunaissance}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
@ -252,27 +254,22 @@
|
||||
<input type="text" class="" name="system.biodata.age" value="{{system.biodata.age}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
<label class="item-name-label-medium">Profession</label>
|
||||
<input type="text" class="" name="system.biodata.profession" value="{{system.biodata.profession}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<ul>
|
||||
<li class="item flexrow">
|
||||
<label class="item-name-label-medium">{{localize "ECRY.ui.residence"}}</label>
|
||||
<input type="text" class="" name="system.biodata.residence" value="{{system.biodata.residence}}"
|
||||
<label class="item-name-label-medium">Statut social</label>
|
||||
<input type="text" class="" name="system.statutocial" value="{{system.biodata.residence}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
<label class="item-name-label-medium">{{localize "ECRY.ui.origin"}}</label>
|
||||
<input type="text" class="" name="system.biodata.nationalite" value="{{system.biodata.nationalite}}"
|
||||
<label class="item-name-label-medium">Charges et Titres</label>
|
||||
<input type="text" class="" name="system.chargestitre" value="{{system.biodata.nationalite}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
<label class="item-name-label-medium">{{localize "ECRY.ui.childhood"}}</label>
|
||||
<label class="item-name-label-medium">Religion</label>
|
||||
<input type="text" class="" name="system.biodata.enfance" value="{{system.biodata.enfance}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
|
@ -33,19 +33,29 @@
|
||||
|
||||
<li>Dés: {{diceFormula}} </li>
|
||||
<li>Difficulté: {{difficulty}} </li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
<ul class="chat-result-column">
|
||||
<li><strong>Résultat: {{total}}</strong> </li>
|
||||
{{#if isSuccess}}
|
||||
<li><strong>Succès !</strong> </li>
|
||||
<li><strong class="chat-result-success">Succès !</strong> </li>
|
||||
{{#if isReussiteCritique}}
|
||||
<li><strong>Réussite critique ! 1 XP gagné en {{carac.name}}.</strong> </li>
|
||||
<li><strong class="chat-result-success">Réussite critique ! 1 XP gagné en {{carac.name}}.</strong> </li>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<li><strong>Echec !</strong> </li>
|
||||
<li><strong class="chat-result-failure">Echec !</strong> </li>
|
||||
{{#if isEchecCritique}}
|
||||
<li><strong>Echec critique ! 1 XP gagné en {{carac.name}}.</strong> </li>
|
||||
<li><strong class="chat-result-failure">Echec critique ! 1 XP gagné en {{carac.name}}.</strong> </li>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</ul>
|
||||
<div>
|
||||
<a class="chat-command-button" data-chat-command="opposition">
|
||||
<img class="chat-command-img" data-tooltip="Test en opposition" src="systems/fvtt-te-deum/images/icons/opposition.webp">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
15
templates/chat/chat-opposition-result.hbs
Normal file
15
templates/chat/chat-opposition-result.hbs
Normal file
@ -0,0 +1,15 @@
|
||||
<div class="chat-message-header">
|
||||
|
||||
<img class="actor-icon" src="{{winner.actorImg}}" alt="{{winner.alias}}" />
|
||||
<img class="chat-command-img" data-tooltip="Test en opposition" src="systems/fvtt-te-deum/images/icons/opposition.webp">
|
||||
<img class="actor-icon" src="{{looser.actorImg}}" alt="{{looser.alias}}" />
|
||||
<label class="chat-actor-name-opposition">{{winner.alias}} vs {{looser.alias}}</label>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<div >
|
||||
<label class="chat-result-success">{{winner.alias}} ({{winner.competence.name}}, {{winner.total}}) l'emporte sur {{looser.alias}} ({{looser.competence.name}}, {{looser.total}})</label>
|
||||
</div>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user