From 74277f8b3cb65220376becfbd40322bb830da935 Mon Sep 17 00:00:00 2001 From: NathaTerrien Date: Tue, 26 Sep 2017 22:08:13 +0200 Subject: [PATCH] Tech optimisation and some bug fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Technical optimisations of some sheet workers with the new eventinfo.newvalue, and somes bug fixes for Antika, Cahiers du Vastemonde, Cypher System (english and french), Dungeon World (french), Mordiou, Portes Montres Trésors, Savage Worlds (french), SIG the city between, Swords & Wizardry and White Lies. --- Antika/ReadMe.md | 5 + Antika/antika.htm | 8 +- Antika/sheet.json | 2 +- CahiersDuVastemonde/ReadMe.md | 5 +- CahiersDuVastemonde/sheet.json | 2 +- CahiersDuVastemonde/vastemonde.htm | 432 +++++++++++++------------- CypherSystem/CypherSystem.htm | 95 +++--- CypherSystem/ReadMe.md | 5 +- CypherSystem/sheet.json | 2 +- CypherSystemFrench/CypherSystem.htm | 91 +++--- CypherSystemFrench/ReadMe.md | 5 +- CypherSystemFrench/sheet.json | 2 +- DungeonWorldFrench/ReadMe.md | 6 +- DungeonWorldFrench/dwfr.htm | 303 +++++++++---------- DungeonWorldFrench/sheet.json | 2 +- Mordiou/ReadMe.md | 5 +- Mordiou/mordiou.htm | 32 +- Mordiou/sheet.json | 2 +- PortesMonstresTresors/ReadMe.md | 5 +- PortesMonstresTresors/pmt.htm | 220 +++++++------- PortesMonstresTresors/sheet.json | 2 +- SIG/ReadMe.md | 6 +- SIG/sheet.json | 2 +- SIG/sig.htm | 452 ++++++++++++++-------------- SavageWorldsFrench/ReadMe.md | 7 +- SavageWorldsFrench/sawofr.html | 390 +++++++++++------------- SavageWorldsFrench/sheet.json | 2 +- Swords_&_Wizardry/ReadMe.md | 6 +- Swords_&_Wizardry/SWSheet.html | 412 +++++++++++++------------ WhiteLies/ReadMe.md | 6 +- WhiteLies/sheet.json | 2 +- WhiteLies/whitelies.htm | 156 +++++----- 32 files changed, 1305 insertions(+), 1367 deletions(-) diff --git a/Antika/ReadMe.md b/Antika/ReadMe.md index b303140773..c6a2535c48 100644 --- a/Antika/ReadMe.md +++ b/Antika/ReadMe.md @@ -27,6 +27,11 @@ Désolé de cet inconvénient mais il n'y a pas d'autres moyens dans Roll20 de r # Notes de version +## v1.1 (2017-09-27) + +Optimisation technique. + + ## v1.0 (2016-09-27) Création de la feuille. diff --git a/Antika/antika.htm b/Antika/antika.htm index 2c234411f3..385a8c3ce8 100644 --- a/Antika/antika.htm +++ b/Antika/antika.htm @@ -37,10 +37,9 @@ }); }); }); - on("change:UBRIS", function(){ - getAttrs(["UBRIS"], function(values) { + on("change:UBRIS", function(eventinfo){ var newval=0; - var carac=parseInt(values.UBRIS) || 0; + var carac=parseInt(eventinfo.newValue) || 0; if (carac > 9) { newval=9; } else { @@ -49,7 +48,6 @@ setAttrs({ UBRISJET: newval }); - }); });
@@ -74,7 +72,7 @@    
-
+
diff --git a/Antika/sheet.json b/Antika/sheet.json index 07e0ad99dd..d3c9e3ce52 100644 --- a/Antika/sheet.json +++ b/Antika/sheet.json @@ -4,6 +4,6 @@ "authors": "Natha", "roll20userid": "75857", "preview": "antika.jpg", - "instructions": "Feuille de personnage pour [Antika](http://www.ludopathes.com/alpha/antika/wordpress/), le JdR mythologique-fantastique de la Gràce Antique. L'utilisation des dés 3D Roll20 est fortement déconseillée avec cette feuille. Consultez le [readme](https://github.com/Roll20/roll20-character-sheets/blob/master/Antika/ReadMe.md). v1.0 (2016-09-27)." + "instructions": "Feuille de personnage pour [Antika](http://www.ludopathes.com/alpha/antika/wordpress/), le JdR mythologique-fantastique de la Gràce Antique. L'utilisation des dés 3D Roll20 est fortement déconseillée avec cette feuille. Consultez le [readme](https://github.com/Roll20/roll20-character-sheets/blob/master/Antika/ReadMe.md). v1.1 (2016-09-18)." ,"tipeee":"https://www.tipeee.com/natharoll20" } diff --git a/CahiersDuVastemonde/ReadMe.md b/CahiersDuVastemonde/ReadMe.md index 35c1d557c0..d84a9e3c45 100644 --- a/CahiersDuVastemonde/ReadMe.md +++ b/CahiersDuVastemonde/ReadMe.md @@ -7,9 +7,12 @@ Cette fiche pour Roll20 a été développée à la demande et avec la participat Soutenez le développement des Cahiers du Vastemonde sur [Tipee](https://www.tipeee.com/les-cahiers-du-vastemonde). # Version courante -1.0 [Capture d'écran](vastemonde.png) +1.1 [Capture d'écran](vastemonde.png) # Notes de version +## v1.1 (2017-09-17) +Optimisation technique. + ## v1.0 (2016-02-20) Création de la fiche. diff --git a/CahiersDuVastemonde/sheet.json b/CahiersDuVastemonde/sheet.json index 24d4148847..f214fd8fc5 100644 --- a/CahiersDuVastemonde/sheet.json +++ b/CahiersDuVastemonde/sheet.json @@ -4,6 +4,6 @@ "authors": "Natha", "roll20userid": "75857", "preview": "vastemonde.png", - "instructions": "Feuille de Personnage VF (avec jets intégrés) pour les [Cahiers du Vastemonde](http://legrumph.org/Terrier/?Les-Cahiers-du-Vastemonde/Les-Cahiers-du-Vastemonde) de John Grümph. v1.0 (20/02/2016). [Lisez-moi](https://github.com/Roll20/roll20-character-sheets/blob/master/CahiersDuVastemonde/ReadMe.md)." + "instructions": "Feuille de Personnage VF (avec jets intégrés) pour les [Cahiers du Vastemonde](http://legrumph.org/Terrier/?Les-Cahiers-du-Vastemonde/Les-Cahiers-du-Vastemonde) de John Grümph. v1.1 (17/09/2017). [Lisez-moi](https://github.com/Roll20/roll20-character-sheets/blob/master/CahiersDuVastemonde/ReadMe.md)." ,"tipeee":"https://www.tipeee.com/natharoll20" } diff --git a/CahiersDuVastemonde/vastemonde.htm b/CahiersDuVastemonde/vastemonde.htm index 3a4029e466..63a38f5a9b 100644 --- a/CahiersDuVastemonde/vastemonde.htm +++ b/CahiersDuVastemonde/vastemonde.htm @@ -1,17 +1,15 @@ diff --git a/CypherSystem/CypherSystem.htm b/CypherSystem/CypherSystem.htm index 6f20dc0ccd..cd988e65fd 100644 --- a/CypherSystem/CypherSystem.htm +++ b/CypherSystem/CypherSystem.htm @@ -1,3 +1,45 @@ + +
Style:
Cypher System @@ -9,56 +51,9 @@ Roll Queries
- Use:
Assets -bonus +Bonus Costs -
- v1.6 (2016-02-21)
- +
- v1.7 (2017-09-17)
@@ -621,7 +616,7 @@ value="&{template:cyphBasicRoll} {{charid=@{character_id}}} {{stat=intellect}} {{diceRoll=[[1d20cs>17cf1]]}} {{attribute=@{atkintelname}}} {{attrEdge=@{intellectedge}}} {{difficulty=[[@{rollQstDiff}]]}} {{effortRoll=[[@{rollQstRollEff}]]}} {{assets=[[@{rollQstAsset}]]}} {{bonusToRoll=[[@{rollQstBonus}]]}} {{statExpense=[[@{atkintelcost}]]}} {{effortDmg=[[@{rollQstRollDmg}]]}} {{targNum=[[@{targNumQst}]]}} {{finalDiff=[[@{rollQstDiff}-(1*@{rollQstAsset})-(1*@{rollQstRollEff})-(1*@{atkintellvl})-(1*@{atkintelmod})]]}} {{targNumRoll=[[(3*@{rollQstDiff})-(3*@{rollQstAsset})-(3*@{rollQstRollEff})-(3*@{atkintellvl})-(3*@{atkintelmod})-(1*@{rollQstBonus})]]}} {{totalCost=[[@{effortCostQst}+@{atkintelcost}-@{intellectedge}]]}} {{effortCost=[[@{effortCostQst}]]}} {{bonusDmg=[[@{atkinteldmg}+@{rollQstRollDmg}*3]]}} {{skilled=[[@{atkintellvl}]]}} {{atkmod=[[@{atkintelmod}]]}}" name="roll_macroIntelAttack"> -
+
Mod: diff --git a/CypherSystem/ReadMe.md b/CypherSystem/ReadMe.md index a5d2c9a6ee..1325271450 100644 --- a/CypherSystem/ReadMe.md +++ b/CypherSystem/ReadMe.md @@ -3,7 +3,7 @@ Character sheet, with integrated rolls and optional API script, for the Cypher S It can look like and be used as a sheet for _Numenéra_ (except the armor stat cost, as per the CSR rule) or _The Strange_ (except the armor stat cost thing also, and the recursion management which requires several characters/sheets, one per recursion). # Current version: -Version 1.6 (February 21st, 2016). +Version 1.7 (September 17th, 2017). * Screenshot [Generic Cypher System style](CypherSystem.png) * Screenshot [Numenera style](CypherSystem_style_Numenera.png) @@ -42,6 +42,9 @@ Set up the API script: # Release Notes +## Release 1.7 (September 17th, 2017) +Technical optimisation. + ## Release 1.6 (February 21st, 2016) Cosmetic changes, to ease access to the delete button on repeatable sections, and diminish repeatable sections line height. diff --git a/CypherSystem/sheet.json b/CypherSystem/sheet.json index 18cc5ec147..2f26940d48 100644 --- a/CypherSystem/sheet.json +++ b/CypherSystem/sheet.json @@ -4,6 +4,6 @@ "authors": "Natha", "roll20userid": "75857", "preview": "CypherSystem.png", - "instructions": "v1.6 (2015-02-21) To set up a token that's linked to the character sheet, and optionally for API scripts to enhance rolls, check the [README](https://github.com/Roll20/roll20-character-sheets/blob/master/CypherSystem/ReadMe.md)." + "instructions": "v1.7 (2017-09-17) To set up a token that's linked to the character sheet, and optionally for API scripts to enhance rolls, check the [README](https://github.com/Roll20/roll20-character-sheets/blob/master/CypherSystem/ReadMe.md)." ,"tipeee":"https://www.tipeee.com/natharoll20" } diff --git a/CypherSystemFrench/CypherSystem.htm b/CypherSystemFrench/CypherSystem.htm index a1f6dc0d4f..2fe754ab2c 100644 --- a/CypherSystemFrench/CypherSystem.htm +++ b/CypherSystemFrench/CypherSystem.htm @@ -1,3 +1,45 @@ + +
Style:
Cypher System @@ -10,54 +52,7 @@
- Utiliser :
Atouts Bonus -Coûts
- v1.6 (2016-02-21)
- +Coûts
- v1.7 (2017-09-17)
diff --git a/CypherSystemFrench/ReadMe.md b/CypherSystemFrench/ReadMe.md index 328a9abe0c..fb79b2332a 100644 --- a/CypherSystemFrench/ReadMe.md +++ b/CypherSystemFrench/ReadMe.md @@ -5,7 +5,7 @@ Elle est aussi utilisable (et stylée) pour _Numenéra_ (modulo la g La VF s'appuie sur la traduction de Numenéra par Black Book Editions. # Version courante : -Version 1.6 (21 Février 2016) : +Version 1.7 (17 Septembre 2017) : * Capture d'écran [style Cypher System générique](CypherSystem.png) * Capture d'écran [style Numenéra](CypherSystem_style_Numenera.png) @@ -53,6 +53,9 @@ Le script API permet que l'état du personnage soit automatiquement mis &a # Notes de version +## Version 1.7 (17 Septembre 2017) +Optimisation technique. + ## Version 1.6 (21 Février 2016) Changements esthétiques, pour faciliter l'accès au bouton de suppression de ligne répétable, et diminuer la hauteur des lignes répétables. diff --git a/CypherSystemFrench/sheet.json b/CypherSystemFrench/sheet.json index 5639b25ad6..bf90993a8f 100644 --- a/CypherSystemFrench/sheet.json +++ b/CypherSystemFrench/sheet.json @@ -4,6 +4,6 @@ "authors": "Natha", "roll20userid": "75857", "preview": "CypherSystem.png", - "instructions": "v1.6 (2015-02-21) Lisez le ficher [README](https://github.com/Roll20/roll20-character-sheets/blob/master/CypherSystemFrench/ReadMe.md) pour mettre en place un pion avec la feuille de personnage, et éventuellement ajouter les scripts API accompagnant la fiche de personnage." + "instructions": "v1.7 (2017-09-17) Lisez le ficher [README](https://github.com/Roll20/roll20-character-sheets/blob/master/CypherSystemFrench/ReadMe.md) pour mettre en place un pion avec la feuille de personnage, et éventuellement ajouter les scripts API accompagnant la fiche de personnage." ,"tipeee":"https://www.tipeee.com/natharoll20" } diff --git a/DungeonWorldFrench/ReadMe.md b/DungeonWorldFrench/ReadMe.md index f6ee672cf0..c09e967095 100644 --- a/DungeonWorldFrench/ReadMe.md +++ b/DungeonWorldFrench/ReadMe.md @@ -4,10 +4,14 @@ Feuille de Personnage en français pour [Dungeon World V1 et V2](http://dungeonw Basée sur la feuille VO de Willem den Besten (Morenim) et Devindra Payment (@Ardnived) ... et considérablement modifiée. # Version courante -3.3 [Capture d'écran](dwfr.png) +3.4 [Capture d'écran](dwfr.png) # Notes de version +## v3.4 (2017-09-17) + +* Optimisation technique + ## v3.3 (2017-02-18) * Correction d'une anomalie occasionnelle dans la totalisation automatique de l'encombrement diff --git a/DungeonWorldFrench/dwfr.htm b/DungeonWorldFrench/dwfr.htm index b67ae04a91..a6ffdc0fa4 100644 --- a/DungeonWorldFrench/dwfr.htm +++ b/DungeonWorldFrench/dwfr.htm @@ -41,63 +41,55 @@ on("change:repeating_items:itemweight remove:repeating_items", function() { }); // ACTIONS // Actions Base - on("change:repeating_actionsbase:actionbasejet", function() { - getAttrs(["repeating_actionsbase_actionbasejet"], function(values) { - var chkjet = parseInt(values.repeating_actionsbase_actionbasejet) || 0; - var jet="0"; - if (chkjet == 1) { - jet= "[[2d6 + (@{actionbasemod})[Mod.Carac.] + (@{actionbasebonus})[Bonus] + (@{jetpjbonus})[Bonus circonstanciel] ]]"; - } else { - jet="0"; - } - setAttrs({ - repeating_actionsbase_actionbaseroll: jet - }); + on("change:repeating_actionsbase:actionbasejet", function(eventinfo) { + var chkjet = parseInt(eventinfo.newValue) || 0; + var jet="0"; + if (chkjet == 1) { + jet= "[[2d6 + (@{actionbasemod})[Mod.Carac.] + (@{actionbasebonus})[Bonus] + (@{jetpjbonus})[Bonus circonstanciel] ]]"; + } else { + jet="0"; + } + setAttrs({ + repeating_actionsbase_actionbaseroll: jet }); }); // Actions Spéciales - on("change:repeating_actionsspe:actionspejet", function() { - getAttrs(["repeating_actionsspe_actionspejet"], function(values){ - var chkjet = parseInt(values.repeating_actionsspe_actionspejet) || 0; - var jet="0"; - if( chkjet == 1) { - jet="[[2d6 + (@{actionspemod})[Mod.Carac.] + (@{actionspebonus})[Bonus] + (@{jetpjbonus})[Bonus circonstanciel] ]]"; - } else { - jet="0"; - } - setAttrs({ - repeating_actionsspe_actionsperoll: jet - }); + on("change:repeating_actionsspe:actionspejet", function(eventinfo) { + var chkjet = parseInt(eventinfo.newValue) || 0; + var jet="0"; + if( chkjet == 1) { + jet="[[2d6 + (@{actionspemod})[Mod.Carac.] + (@{actionspebonus})[Bonus] + (@{jetpjbonus})[Bonus circonstanciel] ]]"; + } else { + jet="0"; + } + setAttrs({ + repeating_actionsspe_actionsperoll: jet }); }); // Départ - on("change:repeating_actionsdepart:actiondepjet", function() { - getAttrs(["repeating_actionsdepart_actiondepjet"], function(values){ - var chkjet = parseInt(values.repeating_actionsdepart_actiondepjet) || 0; - var jet="0"; - if( chkjet == 1) { - jet="[[2d6 + (@{actiondepmod})[Mod.Carac.] + (@{actiondepbonus})[Bonus] + (@{jetpjbonus})[Bonus circonstanciel] ]]"; - } else { - jet="0"; - } - setAttrs({ - repeating_actionsdepart_actiondeproll: jet - }); + on("change:repeating_actionsdepart:actiondepjet", function(eventinfo) { + var chkjet = parseInt(eventinfo.newValue) || 0; + var jet="0"; + if( chkjet == 1) { + jet="[[2d6 + (@{actiondepmod})[Mod.Carac.] + (@{actiondepbonus})[Bonus] + (@{jetpjbonus})[Bonus circonstanciel] ]]"; + } else { + jet="0"; + } + setAttrs({ + repeating_actionsdepart_actiondeproll: jet }); }); // Avancées - on("change:repeating_moves:movejet", function() { - getAttrs(["repeating_moves_movejet"], function(values){ - var chkjet = parseInt(values.repeating_moves_movejet) || 0; - var jet="0"; - if( chkjet == 1) { - jet="[[2d6 + (@{movemod})[Mod.Carac.] + (@{movebonus})[Bonus] + (@{jetpjbonus})[Bonus circonstanciel] ]]"; - } else { - jet="0"; - } - setAttrs({ - repeating_moves_moveroll: jet - }); + on("change:repeating_moves:movejet", function(eventinfo) { + var chkjet = parseInt(eventinfo.newValue) || 0; + var jet="0"; + if( chkjet == 1) { + jet="[[2d6 + (@{movemod})[Mod.Carac.] + (@{movebonus})[Bonus] + (@{jetpjbonus})[Bonus circonstanciel] ]]"; + } else { + jet="0"; + } + setAttrs({ + repeating_moves_moveroll: jet }); }); // Sorts @@ -187,114 +179,112 @@ on("change:repeating_items:itemweight remove:repeating_items", function() { }); }); // CLASSES - on("change:laclasse", function() { - getAttrs(["laclasse"], function(values) { - var classe = values.laclasse; - var nom = ""; - var pv = 0; - var charge = 0; - var sorts = 0; - var degats = ""; - switch(classe) { - case "barbare": - nom = "Le Barbare"; - pv = 8; - charge = 9; - sorts = 0; - degats = "d10"; - break; - case "barde": - nom = "Le Barde"; - pv = 6; - charge = 9; - sorts = 0; - degats = "d6"; - break; - case "cambrioleur": - nom = "Le Cambrioleur"; - pv = 6; - charge = 9; - sorts = 0; - degats = "d8"; - break; - case "chaman": - nom = "Le Chaman"; - pv = 6; - charge = 8; - sorts = 0; - degats = "d6"; - break; - case "clerc": - nom = "Le Clerc"; - pv = 8; - charge = 10; - sorts = 1; - degats = "d6"; - break; - case "druide": - nom = "Le Druide"; - pv = 6; - charge = 6; - sorts = 0; - degats = "d6"; - break; - case "ranger": - nom = "L'Éclaireur"; - pv = 8; - charge = 11; - sorts = 0; - degats = "d8"; - break; - case "guerrier": - nom = "Le Guerrier"; - pv = 10; - charge = 12; - sorts = 0; - degats = "d10"; - break; - case "immolateur": - nom = "L'Immolateur"; - pv = 4; - charge = 9; - sorts = 0; - degats = "d8"; - break; - case "magicien": - nom = "Le Magicien"; - pv = 4; - charge = 7; - sorts = 1; - degats = "d4"; - break; - case "paladin": - nom = "Le Paladin"; - pv = 10; - charge = 12; - sorts = 0; - degats = "d10"; - break; - case "voleur": - nom = "Le Voleur"; - pv = 6; - charge = 9; - sorts = 0; - degats = "d8"; - break; - default: - nom = ""; - pv = 0; - charge = 0; - sorts = 0; - degats = ""; - break; - } - setAttrs({ - class: nom, - basehp: pv, - baseload : charge, - spellsmax : sorts, - dtype: degats - }); + on("change:laclasse", function(eventinfo) { + var classe = eventinfo.newValue; + var nom = ""; + var pv = 0; + var charge = 0; + var sorts = 0; + var degats = ""; + switch(classe) { + case "barbare": + nom = "Le Barbare"; + pv = 8; + charge = 9; + sorts = 0; + degats = "d10"; + break; + case "barde": + nom = "Le Barde"; + pv = 6; + charge = 9; + sorts = 0; + degats = "d6"; + break; + case "cambrioleur": + nom = "Le Cambrioleur"; + pv = 6; + charge = 9; + sorts = 0; + degats = "d8"; + break; + case "chaman": + nom = "Le Chaman"; + pv = 6; + charge = 8; + sorts = 0; + degats = "d6"; + break; + case "clerc": + nom = "Le Clerc"; + pv = 8; + charge = 10; + sorts = 1; + degats = "d6"; + break; + case "druide": + nom = "Le Druide"; + pv = 6; + charge = 6; + sorts = 0; + degats = "d6"; + break; + case "ranger": + nom = "L'Éclaireur"; + pv = 8; + charge = 11; + sorts = 0; + degats = "d8"; + break; + case "guerrier": + nom = "Le Guerrier"; + pv = 10; + charge = 12; + sorts = 0; + degats = "d10"; + break; + case "immolateur": + nom = "L'Immolateur"; + pv = 4; + charge = 9; + sorts = 0; + degats = "d8"; + break; + case "magicien": + nom = "Le Magicien"; + pv = 4; + charge = 7; + sorts = 1; + degats = "d4"; + break; + case "paladin": + nom = "Le Paladin"; + pv = 10; + charge = 12; + sorts = 0; + degats = "d10"; + break; + case "voleur": + nom = "Le Voleur"; + pv = 6; + charge = 9; + sorts = 0; + degats = "d8"; + break; + default: + nom = ""; + pv = 0; + charge = 0; + sorts = 0; + degats = ""; + break; + } + setAttrs({ + class: nom, + basehp: pv, + baseload : charge, + spellsmax : sorts, + dtype: degats }); }); @@ -3246,7 +3236,6 @@ on("change:repeating_items:itemweight remove:repeating_items", function() {
Cette Action nécessite un jet -
3
diff --git a/DungeonWorldFrench/sheet.json b/DungeonWorldFrench/sheet.json index b77b985040..15facd6d7e 100644 --- a/DungeonWorldFrench/sheet.json +++ b/DungeonWorldFrench/sheet.json @@ -4,6 +4,6 @@ "authors": "Natha", "roll20userid": "75857", "preview": "dwfr.png", - "instructions": "Feuille de personnage pour [Dungeon World V1 et V2](http://dungeonworld.pbta.fr/). Consultez le [readme](https://github.com/Roll20/roll20-character-sheets/blob/master/DungeonWorldFrench/ReadMe.md). v3.3 (2017-02-18)." + "instructions": "Feuille de personnage pour [Dungeon World V1 et V2](http://dungeonworld.pbta.fr/). Consultez le [readme](https://github.com/Roll20/roll20-character-sheets/blob/master/DungeonWorldFrench/ReadMe.md). v3.4 (2017-09-17)." ,"tipeee":"https://www.tipeee.com/natharoll20" } diff --git a/Mordiou/ReadMe.md b/Mordiou/ReadMe.md index c1145d2783..7eda663398 100644 --- a/Mordiou/ReadMe.md +++ b/Mordiou/ReadMe.md @@ -11,13 +11,16 @@ Tout commençait généralement par un bon repas, servi à sa table, la meilleur Mordiou ! est un jeu de rôle complet, proposant de jouer des héros de cape et d'épée dans une France légèrement fantasmée - vous y trouverez un système de jeu original (tout au d6), une courte description de Paris à l'époque et de quelques figures majeures de l'univers, ainsi que quatre scénarios. # Version courante -1.1 [Capture d'écran](mordiou.jpg) +1.2 [Capture d'écran](mordiou.jpg) Les jets diffèrent légèrement du livre de règles (pour compenser un manque technique de Roll20 et ne pas utiliser l'API) mais restent statistiquement identiques. Au lieu de compter une Qualité sur des résultats pairs au D6, et deux qualités pour un résultat 6, la feuille ne compte aucune qualité pour un résultat de 1,2 ou 3 au D6, une qualité pour un résultat de 4 ou 5, et deux qualités pour un résultat de 6. # Notes de version +## v1.2 (2017-09-17) +Optimisation technique. + ## v1.1 (2017-02-26) Merci au Grümph, à Xo de Vorcen et Nessir pour les retours, idées et suggestions. diff --git a/Mordiou/mordiou.htm b/Mordiou/mordiou.htm index 597af7b7fd..ea16ab7705 100644 --- a/Mordiou/mordiou.htm +++ b/Mordiou/mordiou.htm @@ -105,15 +105,13 @@ }); }); }); - on("change:reservesraz", function(){ - getAttrs(["reservesraz"], function(values) { - if (values.reservesraz == 1 ) { - setAttrs({ - reserves: 0, - reservesraz: 0 - }); - } - }); + on("change:reservesraz", function(eventinfo){ + if (eventinfo.newValue == 1 ) { + setAttrs({ + reserves: 0, + reservesraz: 0 + }); + } }); on("change:aide", function(){ getAttrs(["aide","aidemax"], function(values) { @@ -126,15 +124,13 @@ mordiou.recalcAll(); }); }); - on("change:aideraz", function(){ - getAttrs(["aideraz"], function(values) { - if (values.aideraz == 1 ) { - setAttrs({ - aide: 0, - aideraz: 0 - }); - } - }); + on("change:aideraz", function(eventinfo){ + if (eventinfo.newValue == 1 ) { + setAttrs({ + aide: 0, + aideraz: 0 + }); + } }); on("change:fortune change:defense change:reserves change:maniere", function(){ mordiou.recalcAll(); diff --git a/Mordiou/sheet.json b/Mordiou/sheet.json index 690bf0b868..92d7f76513 100644 --- a/Mordiou/sheet.json +++ b/Mordiou/sheet.json @@ -4,6 +4,6 @@ "authors": "Natha", "roll20userid": "75857", "preview": "mordiou.jpg", - "instructions": "Feuille de personnage de [Mordiou !](http://legrumph.org/Terrier/?Chibi/Mordiou-%21), pour jouer des héros de cape et d'épée dans une France légàrement fantasmée. Consultez le [readme](https://github.com/Roll20/roll20-character-sheets/blob/master/Mordiou/ReadMe.md). v1.1 (2017-02-26)." + "instructions": "Feuille de personnage de [Mordiou !](http://legrumph.org/Terrier/?Chibi/Mordiou-%21), pour jouer des héros de cape et d'épée dans une France légàrement fantasmée. Consultez le [readme](https://github.com/Roll20/roll20-character-sheets/blob/master/Mordiou/ReadMe.md). v1.2 (2017-09-17)." ,"tipeee":"https://www.tipeee.com/natharoll20" } diff --git a/PortesMonstresTresors/ReadMe.md b/PortesMonstresTresors/ReadMe.md index 422c7c422d..a342ffe8c1 100644 --- a/PortesMonstresTresors/ReadMe.md +++ b/PortesMonstresTresors/ReadMe.md @@ -8,7 +8,7 @@ PMT est une adaptation de **Labyrinth Lord**, réalisée par [Arasmo Le jeu complet est disponible gratuitement en PDF sur le site du [Scriptorium](https://le-scriptorium.fr/jeux-de-role/portes-monstres-tresors/), et en version papier sur [Lulu](http://www.lulu.com/shop/daniel-proctor-and-james-manez/portes-monstres-tr%C3%A9sors/hardcover/product-22096059.html) ou [Amazon](http://www.amazon.fr/Portes-Monstres-Tresors-daventures-fantastiques/dp/1508659044). # Version courante -4.4 [Screenshot](pmt_v4.jpg) +4.5 [Screenshot](pmt_v4.jpg) # Script API de création de personnage Un [script API](pmt.js) est disponible pour créer des personnages rapidement (le taux de mortalité est élevé en OSR ;) ). @@ -44,6 +44,9 @@ Par défaut, le personnage créé est attribué au joueur qui a cliqué dans le # Notes de version +## v4.5 (17 Septembre 2017). +Optimisation technique. + ## v4.4 (18 Février 2017). Correction du calcul d'encombrement. diff --git a/PortesMonstresTresors/pmt.htm b/PortesMonstresTresors/pmt.htm index a883406f2f..c6ca502ea9 100644 --- a/PortesMonstresTresors/pmt.htm +++ b/PortesMonstresTresors/pmt.htm @@ -178,134 +178,122 @@ }); }); // Caractéristiques et modificateurs - on("change:force", function() { - getAttrs(["force"], function(values) { - var Force=parseInt(values.force); - var MOD_FOR=0; - if (Force <4) {MOD_FOR=-3;} - else if (Force>3 && Force<6) {MOD_FOR=-2;} - else if (Force>5 && Force<9) {MOD_FOR=-1;} - else if (Force>12 && Force<16) {MOD_FOR=1;} - else if (Force>15 && Force<18) {MOD_FOR=2;} - else if (Force>17) {MOD_FOR=3;} - else {MOD_FOR=0;} - setAttrs({ - MOD_FOR:MOD_FOR - }); + on("change:force", function(eventinfo) { + var Force=parseInt(eventinfo.newValue) || 0; + var MOD_FOR=0; + if (Force <4) {MOD_FOR=-3;} + else if (Force>3 && Force<6) {MOD_FOR=-2;} + else if (Force>5 && Force<9) {MOD_FOR=-1;} + else if (Force>12 && Force<16) {MOD_FOR=1;} + else if (Force>15 && Force<18) {MOD_FOR=2;} + else if (Force>17) {MOD_FOR=3;} + else {MOD_FOR=0;} + setAttrs({ + MOD_FOR:MOD_FOR }); }); - on("change:dexterite", function() { - getAttrs(["dexterite"], function(values) { - var Dexterite=parseInt(values.dexterite); - var MOD_DEX=0; - if (Dexterite <4) {MOD_DEX=-3;} - else if (Dexterite>3 && Dexterite<6) {MOD_DEX=-2;} - else if (Dexterite>5 && Dexterite<9) {MOD_DEX=-1;} - else if (Dexterite>12 && Dexterite<16) {MOD_DEX=1;} - else if (Dexterite>15 && Dexterite<18) {MOD_DEX=2;} - else if (Dexterite>17) {MOD_DEX=3;} - else {MOD_DEX=0;} - setAttrs({ - MOD_DEX:MOD_DEX - }); + on("change:dexterite", function(eventinfo) { + var Dexterite=parseInt(eventinfo.newValue) || 0; + var MOD_DEX=0; + if (Dexterite <4) {MOD_DEX=-3;} + else if (Dexterite>3 && Dexterite<6) {MOD_DEX=-2;} + else if (Dexterite>5 && Dexterite<9) {MOD_DEX=-1;} + else if (Dexterite>12 && Dexterite<16) {MOD_DEX=1;} + else if (Dexterite>15 && Dexterite<18) {MOD_DEX=2;} + else if (Dexterite>17) {MOD_DEX=3;} + else {MOD_DEX=0;} + setAttrs({ + MOD_DEX:MOD_DEX }); }); - on("change:constitution", function() { - getAttrs(["constitution"], function(values) { - var Constitution=parseInt(values.constitution); - var MOD_CON=0; - if (Constitution <4) {MOD_CON=-3;} - else if (Constitution>3 && Constitution<6) {MOD_CON=-2;} - else if (Constitution>5 && Constitution<9) {MOD_CON=-1;} - else if (Constitution>12 && Constitution<16) {MOD_CON=1;} - else if (Constitution>15 && Constitution<18) {MOD_CON=2;} - else if (Constitution>17) {MOD_CON=3;} - else {MOD_CON=0;} - setAttrs({ - MOD_CON:MOD_CON - }); + on("change:constitution", function(eventinfo) { + var Constitution=parseInt(eventinfo.newValue) || 0; + var MOD_CON=0; + if (Constitution <4) {MOD_CON=-3;} + else if (Constitution>3 && Constitution<6) {MOD_CON=-2;} + else if (Constitution>5 && Constitution<9) {MOD_CON=-1;} + else if (Constitution>12 && Constitution<16) {MOD_CON=1;} + else if (Constitution>15 && Constitution<18) {MOD_CON=2;} + else if (Constitution>17) {MOD_CON=3;} + else {MOD_CON=0;} + setAttrs({ + MOD_CON:MOD_CON }); }); - on("change:intelligence", function() { - getAttrs(["intelligence"], function(values) { - var Intelligence=parseInt(values.intelligence); - var MOD_INT=0; - if (Intelligence>12 && Intelligence<16) {MOD_INT=1;} - else if (Intelligence>15 && Intelligence<18) {MOD_INT=2;} - else if (Intelligence>17) {MOD_INT=3;} - else {MOD_INT=0;} - setAttrs({ - MOD_INT:MOD_INT - }); - }); + on("change:intelligence", function(eventinfo) { + var Intelligence=parseInt(eventinfo.newValue) || 0; + var MOD_INT=0; + if (Intelligence>12 && Intelligence<16) {MOD_INT=1;} + else if (Intelligence>15 && Intelligence<18) {MOD_INT=2;} + else if (Intelligence>17) {MOD_INT=3;} + else {MOD_INT=0;} + setAttrs({ + MOD_INT:MOD_INT + }); }); - on("change:sagesse", function() { - getAttrs(["sagesse"], function(values) { - var Sagesse=parseInt(values.sagesse); - var MOD_SAG=0; - if (Sagesse <4) {MOD_SAG=-3;} - else if (Sagesse>3 && Sagesse<6) {MOD_SAG=-2;} - else if (Sagesse>5 && Sagesse<9) {MOD_SAG=-1;} - else if (Sagesse>12 && Sagesse<16) {MOD_SAG=1;} - else if (Sagesse>15 && Sagesse<18) {MOD_SAG=2;} - else if (Sagesse>17) {MOD_SAG=3;} - else {MOD_SAG=0;} - setAttrs({ - MOD_SAG:MOD_SAG - }); - }); + on("change:sagesse", function(eventinfo) { + var Sagesse=parseInt(eventinfo.newValue) || 0; + var MOD_SAG=0; + if (Sagesse <4) {MOD_SAG=-3;} + else if (Sagesse>3 && Sagesse<6) {MOD_SAG=-2;} + else if (Sagesse>5 && Sagesse<9) {MOD_SAG=-1;} + else if (Sagesse>12 && Sagesse<16) {MOD_SAG=1;} + else if (Sagesse>15 && Sagesse<18) {MOD_SAG=2;} + else if (Sagesse>17) {MOD_SAG=3;} + else {MOD_SAG=0;} + setAttrs({ + MOD_SAG:MOD_SAG + }); }); - on("change:charisme", function() { - getAttrs(["charisme"], function(values) { - var Charisme=parseInt(values.charisme); - var MOD_CHA=0; - var MaxCompagnons=0; - var MoralCompagnons=0; - if (Charisme <4) { - MOD_CHA=2; - MaxCompagnons=1; - MoralCompagnons=4; - } - else if (Charisme>3 && Charisme<6) { - MOD_CHA=1; - MaxCompagnons=2; - MoralCompagnons=5; - } - else if (Charisme>5 && Charisme<9) { - MOD_CHA=1; - MaxCompagnons=3; - MoralCompagnons=6; - } - else if (Charisme>12 && Charisme<16) { - MOD_CHA=-1; - MaxCompagnons=5; - MoralCompagnons=8; - } - else if (Charisme>15 && Charisme<18) { - MOD_CHA=-1; - MaxCompagnons=6; - MoralCompagnons=9; - } - else if (Charisme>17) { - MOD_CHA=-2; - MaxCompagnons=7; - MoralCompagnons=10; - } - else { - MOD_CHA=0; - MaxCompagnons=4; - MoralCompagnons=7; - } - setAttrs({ - MOD_CHA:MOD_CHA, - MaxCompagnons:MaxCompagnons, - MoralCompagnons:MoralCompagnons - }); + on("change:charisme", function(eventinfo) { + var Charisme=parseInt(eventinfo.newValue) || 0; + var MOD_CHA=0; + var MaxCompagnons=0; + var MoralCompagnons=0; + if (Charisme <4) { + MOD_CHA=2; + MaxCompagnons=1; + MoralCompagnons=4; + } + else if (Charisme>3 && Charisme<6) { + MOD_CHA=1; + MaxCompagnons=2; + MoralCompagnons=5; + } + else if (Charisme>5 && Charisme<9) { + MOD_CHA=1; + MaxCompagnons=3; + MoralCompagnons=6; + } + else if (Charisme>12 && Charisme<16) { + MOD_CHA=-1; + MaxCompagnons=5; + MoralCompagnons=8; + } + else if (Charisme>15 && Charisme<18) { + MOD_CHA=-1; + MaxCompagnons=6; + MoralCompagnons=9; + } + else if (Charisme>17) { + MOD_CHA=-2; + MaxCompagnons=7; + MoralCompagnons=10; + } + else { + MOD_CHA=0; + MaxCompagnons=4; + MoralCompagnons=7; + } + setAttrs({ + MOD_CHA:MOD_CHA, + MaxCompagnons:MaxCompagnons, + MoralCompagnons:MoralCompagnons }); }); -v4.4 - Options : +v4.5 - Options : CA descendante CA ascendante diff --git a/PortesMonstresTresors/sheet.json b/PortesMonstresTresors/sheet.json index 0287edaf7d..5ab4aae04b 100644 --- a/PortesMonstresTresors/sheet.json +++ b/PortesMonstresTresors/sheet.json @@ -4,6 +4,6 @@ "authors": "Natha", "roll20userid": "75857", "preview": "pmt_v4.jpg", - "instructions": "Feuille de Personnage pour PMT v2 (Portes, Monstres et Trésors), un rétro-clone de D&D B/X (adaptation de Labyrinth Lord par Arasmo). Les PDFs du jeu sont disponibles gratuitement sur le [Scriptorium](https://le-scriptorium.fr/jeux-de-role/portes-monstres-tresors/). Un script API est disponible pour accélérer la crétion de personnage. Voir le [readme](https://github.com/Roll20/roll20-character-sheets/blob/master/PortesMonstresTresors/ReadMe.md). v4.4 (17/02/2017)." + "instructions": "Feuille de Personnage pour PMT v2 (Portes, Monstres et Trésors), un rétro-clone de D&D B/X (adaptation de Labyrinth Lord par Arasmo). Les PDFs du jeu sont disponibles gratuitement sur le [Scriptorium](https://le-scriptorium.fr/jeux-de-role/portes-monstres-tresors/). Un script API est disponible pour accélérer la crétion de personnage. Voir le [readme](https://github.com/Roll20/roll20-character-sheets/blob/master/PortesMonstresTresors/ReadMe.md). v4.5 (17/09/2017)." ,"tipeee":"https://www.tipeee.com/natharoll20" } diff --git a/SIG/ReadMe.md b/SIG/ReadMe.md index a4ddac82e1..42ecb06462 100644 --- a/SIG/ReadMe.md +++ b/SIG/ReadMe.md @@ -11,13 +11,17 @@ Each of the planes is also home to unique peoples, from the Giants of the Elemen Visit the Elemental Plane of Flame to test yourself in scorched wastelands of the Crucible. Seek answers to hidden secrets in the Umbral Delta of the Conceptual Plane of Shadow. Defend yourself in The Final Court, where the Seven Magistrates provide final remedy to any injustice. # Current version -1.0 [Screenshot](sig.jpg) +1.1 [Screenshot](sig.jpg) Click to enlarge: [![How to use the sheet](sig_howto.jpg)](sig_howto.jpg) # Release notes +## v1.1 (2017-09-17) + +Technical optimisation. + ## v1.0 (2017-06-04) Creation of the sheet. diff --git a/SIG/sheet.json b/SIG/sheet.json index 016dd68e6b..0021e74e84 100644 --- a/SIG/sheet.json +++ b/SIG/sheet.json @@ -4,6 +4,6 @@ "authors": "Natha", "roll20userid": "75857", "preview": "sig.jpg", - "instructions": "Character sheet for [Sig: The City Between](http://www.genesisoflegend.com/products/sig/). [Readme](https://github.com/Roll20/roll20-character-sheets/blob/master/SIG/ReadMe.md). v1.0 (2017-06-04)." + "instructions": "Character sheet for [Sig: The City Between](http://www.genesisoflegend.com/products/sig/). [Readme](https://github.com/Roll20/roll20-character-sheets/blob/master/SIG/ReadMe.md). v1.1 (2017-09-17)." ,"tipeee":"https://www.tipeee.com/natharoll20" } diff --git a/SIG/sig.htm b/SIG/sig.htm index 3920260989..0b9cfca2c8 100644 --- a/SIG/sig.htm +++ b/SIG/sig.htm @@ -1,69 +1,61 @@ diff --git a/SavageWorldsFrench/ReadMe.md b/SavageWorldsFrench/ReadMe.md index 5a2ad4b854..9a66eec287 100644 --- a/SavageWorldsFrench/ReadMe.md +++ b/SavageWorldsFrench/ReadMe.md @@ -4,7 +4,7 @@ Feuille de personnage (FdP) avec jets intégrés pour **Savage Worlds**, **Beast Basée sur les traductions éditées par [Black Book Editions](http://www.black-book-editions.fr/catalogue.php?id=58). # Version courante -3.0 Captures d'écran : +3.1 Captures d'écran : [Style Savage Worlds](sawofr_style_sawo.jpg) [Style Beasts & Barbarians](sawofr_style_bnb.jpg) [Style Deadlands](sawofr_style_deadlands.jpg) @@ -132,6 +132,11 @@ NB : décrémenter les PP automatiquement au lancement d'un pouvoir nécessitera # Notes de version +## v3.1 (2017-09-17) + +* Correction de l'utilisation de la compétence Arcane pour les jets d'arme, en mode "Succès+Relance" +* Optimisation technique + ## v3.0 (2017-08-15) * Nouveaux choix de styles visuels pour **Beasts & Barbarians** et **Lankhmar** diff --git a/SavageWorldsFrench/sawofr.html b/SavageWorldsFrench/sawofr.html index c40f36b43c..2080921f9c 100644 --- a/SavageWorldsFrench/sawofr.html +++ b/SavageWorldsFrench/sawofr.html @@ -20,173 +20,157 @@ }); }); // === JOKER / PNJ / EXTRA - on("change:pnjtype", function(){ - getAttrs(["pnjtype"], function(values) { - var pjtype = parseInt(values.pnjtype) || 0; - var ispnj = 1; - var isextra = 0; - var possessions = 1; - var disposs = 1; - var tpletat = 1; - var joker = "1d6"; - var nbbless = 3; - var logo=1; - var lib=""; - switch(pjtype) { - case 0: - ispnj = 0; - isextra = 0; - possessions = 1; - disposs = 1; - tpletat = 1; - joker = "1d6"; - nbbless = 3; - logo = 1; - lib = "Personnage"; - break; - case 1: //PNJ Joker - ispnj = 1; - isextra = 0; - possessions = 1; - disposs = 0; - tpletat = 0; - joker = "1d6"; - nbbless = 3; - logo = 0; - lib = "Joker (PNJ)"; - break; - case 2: //Sous-fifre - ispnj = 1; - isextra = 0; - possessions = 1; - disposs = 0; - tpletat = 0; - joker = "0d4"; - nbbless = 3; - logo = 0; - lib = "Sous-fifre (PNJ)"; - break; - case 3: //Bras droit - ispnj = 1; - isextra = 0; - possessions = 1; - disposs = 0; - tpletat = 0; - joker = "1d6"; - nbbless = 0; - logo = 0; - lib = "Bras droit (PNJ)"; - break; - case 4: //Extra - ispnj = 1; - isextra = 1; - possessions = 0; - disposs = 0; - tpletat = 0; - joker = "0d4"; - nbbless = 0; - logo = 0; - lib = "Extra (PNJ)"; - break; - default: //Personnalisé - ispnj = 1; - isextra = 0; - possessions = 1; - disposs = 0; - tpletat = 0; - joker = "1d6"; - nbbless = 3; - logo = 0; - lib = "PNJ personnalisé"; - } - setAttrs({ - "pnj": ispnj, - "extra": isextra, - "chkPossessions": possessions, - "dispPossessions": disposs, - "templateetat": tpletat, - "joker_de": joker, - "confBlessures": nbbless, - "sheetLogo": logo, - "pnjtypelib": lib - }); + on("change:pnjtype", function(eventinfo){ + var pjtype = parseInt(eventinfo.newValue) || 0; + var ispnj = 1; + var isextra = 0; + var possessions = 1; + var disposs = 1; + var tpletat = 1; + var joker = "1d6"; + var nbbless = 3; + var logo=1; + var lib=""; + switch(pjtype) { + case 0: + ispnj = 0; + isextra = 0; + possessions = 1; + disposs = 1; + tpletat = 1; + joker = "1d6"; + nbbless = 3; + logo = 1; + lib = "Personnage"; + break; + case 1: //PNJ Joker + ispnj = 1; + isextra = 0; + possessions = 1; + disposs = 0; + tpletat = 0; + joker = "1d6"; + nbbless = 3; + logo = 0; + lib = "Joker (PNJ)"; + break; + case 2: //Sous-fifre + ispnj = 1; + isextra = 0; + possessions = 1; + disposs = 0; + tpletat = 0; + joker = "0d4"; + nbbless = 3; + logo = 0; + lib = "Sous-fifre (PNJ)"; + break; + case 3: //Bras droit + ispnj = 1; + isextra = 0; + possessions = 1; + disposs = 0; + tpletat = 0; + joker = "1d6"; + nbbless = 0; + logo = 0; + lib = "Bras droit (PNJ)"; + break; + case 4: //Extra + ispnj = 1; + isextra = 1; + possessions = 0; + disposs = 0; + tpletat = 0; + joker = "0d4"; + nbbless = 0; + logo = 0; + lib = "Extra (PNJ)"; + break; + default: //Personnalisé + ispnj = 1; + isextra = 0; + possessions = 1; + disposs = 0; + tpletat = 0; + joker = "1d6"; + nbbless = 3; + logo = 0; + lib = "PNJ personnalisé"; + } + setAttrs({ + "pnj": ispnj, + "extra": isextra, + "chkPossessions": possessions, + "dispPossessions": disposs, + "templateetat": tpletat, + "joker_de": joker, + "confBlessures": nbbless, + "sheetLogo": logo, + "pnjtypelib": lib }); }); // === BLESSURES et Malus blessure // TODO conf blessures - on("change:confBlessures", function(){ - getAttrs(["confBlessures"], function(values) { - var conf = parseInt(values.confBlessures) || 0; - setAttrs({ - bless1: parseInt(+(conf>0)) || 0, - bless2: parseInt(+(conf>1)) || 0, - bless3: parseInt(+(conf>2)) || 0 - }); + on("change:confBlessures", function(eventinfo){ + var conf = parseInt(eventinfo.newValue) || 0; + setAttrs({ + bless1: parseInt(+(conf>0)) || 0, + bless2: parseInt(+(conf>1)) || 0, + bless3: parseInt(+(conf>2)) || 0 }); }); - on("change:blessures", function() { - getAttrs(["blessures"], function(values) { - var malusblessures = 0; - if (values.blessures > 3) { - malusblessures = 3; - } else { - malusblessures = values.blessures; - } - setAttrs({ - malusblessures: malusblessures - }); + on("change:blessures", function(eventinfo) { + var malusblessures = 0; + if (eventinfo.newValue > 3) { + malusblessures = 3; + } else { + malusblessures = eventinfo.newValue; + } + setAttrs({ + malusblessures: malusblessures }); }); // === FATIGUE et Malus blessure - on("change:fatigue", function() { - getAttrs(["fatigue"], function(values) { - var malusfatigue = 0; - if (values.fatigue > 2) { - malusfatigue = 2; - } else { - malusfatigue = values.fatigue; - } - setAttrs({ - malusfatigue: malusfatigue - }); + on("change:fatigue", function(eventinfo) { + var malusfatigue = 0; + if (eventinfo.newValue > 2) { + malusfatigue = 2; + } else { + malusfatigue = eventinfo.newValue; + } + setAttrs({ + malusfatigue: malusfatigue }); }); // === ARMES FIXES - on("change:arme1_comp", function() { - getAttrs(["arme1_comp"], function(values) { - setAttrs({ - arme1_comp_rel: "@{relRollBast" + values.arme1_comp + "}", - arme1_comp_jet: "@{jetRollBast" + values.arme1_comp + "}", - arme1_comp_brut: "@{RollBast" + values.arme1_comp + "}" - }); + on("change:arme1_comp", function(eventinfo) { + setAttrs({ + arme1_comp_rel: "@{relRollBast" + eventinfo.newValue + "}", + arme1_comp_jet: "@{jetRollBast" + eventinfo.newValue + "}", + arme1_comp_brut: "@{RollBast" + eventinfo.newValue + "}" }); }); - on("change:arme2_comp", function() { - getAttrs(["arme2_comp"], function(values) { - setAttrs({ - arme2_comp_rel: "@{relRollBast" + values.arme2_comp + "}", - arme2_comp_jet: "@{jetRollBast" + values.arme2_comp + "}", - arme2_comp_brut: "@{RollBast" + values.arme2_comp + "}" - }); + on("change:arme2_comp", function(eventinfo) { + setAttrs({ + arme2_comp_rel: "@{relRollBast" + eventinfo.newValue + "}", + arme2_comp_jet: "@{jetRollBast" + eventinfo.newValue + "}", + arme2_comp_brut: "@{RollBast" + eventinfo.newValue + "}" }); }); - on("change:arme3_comp", function() { - getAttrs(["arme3_comp"], function(values) { - setAttrs({ - arme3_comp_rel: "@{relRollBast" + values.arme3_comp + "}", - arme3_comp_jet: "@{jetRollBast" + values.arme3_comp + "}", - arme3_comp_brut: "@{RollBast" + values.arme3_comp + "}" - }); + on("change:arme3_comp", function(eventinfo) { + setAttrs({ + arme3_comp_rel: "@{relRollBast" + eventinfo.newValue + "}", + arme3_comp_jet: "@{jetRollBast" + eventinfo.newValue + "}", + arme3_comp_brut: "@{RollBast" + eventinfo.newValue + "}" }); }); // === ARMES DYNAMIQUES - on("change:repeating_armes:armed_comp", function() { - getAttrs(["repeating_armes_armeD_comp"], function(values) { - setAttrs({ - repeating_armes_armeD_comp_rel: "@{relRollBast" + values.repeating_armes_armeD_comp + "}", - repeating_armes_armeD_comp_jet: "@{jetRollBast" + values.repeating_armes_armeD_comp + "}" - ,repeating_armes_armeD_comp_brut: "@{RollBast" + values.repeating_armes_armeD_comp + "}" - }); + on("change:repeating_armes:armed_comp", function(eventinfo) { + setAttrs({ + repeating_armes_armeD_comp_rel: "@{relRollBast" + eventinfo.newValue + "}", + repeating_armes_armeD_comp_jet: "@{jetRollBast" + eventinfo.newValue + "}" + ,repeating_armes_armeD_comp_brut: "@{RollBast" + eventinfo.newValue + "}" }); }); // === CARACS DÉRIVÉES @@ -217,42 +201,38 @@ }); }); // Affichage / Masquage toutes compétences - on("change:chkAllComp", function() { - getAttrs(["chkAllComp"], function(values) { - setAttrs({ - chkArcane: values.chkAllComp, - chkCombat: values.chkAllComp, - chkConduite: values.chkAllComp, - chkConnaissance: values.chkAllComp, - chkCrochetage: values.chkAllComp, - chkDiscretion: values.chkAllComp, - chkEquitation: values.chkAllComp, - chkEscalade: values.chkAllComp, - chkIntimidation: values.chkAllComp, - chkJeu: values.chkAllComp, - chkLancer: values.chkAllComp, - chkNatation: values.chkAllComp, - chkNavigation: values.chkAllComp, - chkPerception: values.chkAllComp, - chkPersuasion: values.chkAllComp, - chkPilotage: values.chkAllComp, - chkPistage: values.chkAllComp, - chkRecherche: values.chkAllComp, - chkReparation: values.chkAllComp, - chkReseaux: values.chkAllComp, - chkSarcasme: values.chkAllComp, - chkSoins: values.chkAllComp, - chkSurvie: values.chkAllComp, - chkTir: values.chkAllComp - }); + on("change:chkAllComp", function(eventinfo) { + setAttrs({ + chkArcane: eventinfo.newValue, + chkCombat: eventinfo.newValue, + chkConduite: eventinfo.newValue, + chkConnaissance: eventinfo.newValue, + chkCrochetage: eventinfo.newValue, + chkDiscretion: eventinfo.newValue, + chkEquitation: eventinfo.newValue, + chkEscalade: eventinfo.newValue, + chkIntimidation: eventinfo.newValue, + chkJeu: eventinfo.newValue, + chkLancer: eventinfo.newValue, + chkNatation: eventinfo.newValue, + chkNavigation: eventinfo.newValue, + chkPerception: eventinfo.newValue, + chkPersuasion: eventinfo.newValue, + chkPilotage: eventinfo.newValue, + chkPistage: eventinfo.newValue, + chkRecherche: eventinfo.newValue, + chkReparation: eventinfo.newValue, + chkReseaux: eventinfo.newValue, + chkSarcasme: eventinfo.newValue, + chkSoins: eventinfo.newValue, + chkSurvie: eventinfo.newValue, + chkTir: eventinfo.newValue }); }); // === Inventaire et encombrement - on("change:force_de", function() { - getAttrs(["force_de"], function(values) { - setAttrs({ - encombmax: parseInt(values.force_de)*2.5 - }); + on("change:force_de", function(eventinfo) { + setAttrs({ + encombmax: parseInt(eventinfo.newValue)*2.5 }); }); on("change:repeating_equipements:equipqte change:repeating_equipements:equippdsunit", function() { @@ -291,29 +271,27 @@ }); }); // === Attaques - on("change:atkcible", function () { - getAttrs(["atkcible"], function(values){ - var cibleparade = "", - cibleresistance = "", - ciblearcane = "", - atknom = ""; - if ( values.atkcible == 1) { - cibleparade = "@{target|parade}"; - cibleresistance = "@{target|resistance}"; - ciblearcane = "?{Difficulté|4}"; - atknom = "@{target|character_name}"; - } else { - cibleparade = "?{Parade|4}"; - cibleresistance = "?{Résistance|4}"; - ciblearcane = "?{Difficulté|4}"; - atknom = "-"; - } - setAttrs({ - cibleparade: cibleparade, - cibleresistance: cibleresistance, - ciblearcane: ciblearcane, - atknom: atknom - }); + on("change:atkcible", function (eventinfo) { + var cibleparade = "", + cibleresistance = "", + ciblearcane = "", + atknom = ""; + if (eventinfo.newValue == 1) { + cibleparade = "@{target|parade}"; + cibleresistance = "@{target|resistance}"; + ciblearcane = "?{Difficulté|4}"; + atknom = "@{target|character_name}"; + } else { + cibleparade = "?{Parade|4}"; + cibleresistance = "?{Résistance|4}"; + ciblearcane = "?{Difficulté|4}"; + atknom = "-"; + } + setAttrs({ + cibleparade: cibleparade, + cibleresistance: cibleresistance, + ciblearcane: ciblearcane, + atknom: atknom }); }); @@ -366,7 +344,7 @@ - + @@ -497,7 +475,7 @@ Feuille Configuration - v3.0 (15/08/2017) + v3.1 (17/09/2017) diff --git a/SavageWorldsFrench/sheet.json b/SavageWorldsFrench/sheet.json index c3d9c726db..52a9769016 100644 --- a/SavageWorldsFrench/sheet.json +++ b/SavageWorldsFrench/sheet.json @@ -4,6 +4,6 @@ ,"authors": "Natha" ,"roll20userid": "75857" ,"preview": "sawofr.jpg" - ,"instructions": "Feuille de Personnage VF pour Savage Worlds, Beasts & Barbarians, Lankhmar et Deadlands Reloaded. Consultez le [readme](https://github.com/Roll20/roll20-character-sheets/blob/master/SavageWorldsFrench/ReadMe.md). v3.0 (15/08/2017)." + ,"instructions": "Feuille de Personnage VF pour Savage Worlds, Beasts & Barbarians, Lankhmar et Deadlands Reloaded. Consultez le [readme](https://github.com/Roll20/roll20-character-sheets/blob/master/SavageWorldsFrench/ReadMe.md). v3.1 (17/09/2017)." ,"tipeee":"https://www.tipeee.com/natharoll20" } diff --git a/Swords_&_Wizardry/ReadMe.md b/Swords_&_Wizardry/ReadMe.md index e3078f8eb3..a653595c21 100644 --- a/Swords_&_Wizardry/ReadMe.md +++ b/Swords_&_Wizardry/ReadMe.md @@ -4,13 +4,17 @@ Character sheet for Swords & Wizardry, in english and french. Initially created by Jacob Vann and overhauled by [Natha](https://github.com/NathaTerrien/roll20-wip/blob/master/README.md) (design, translation data, automated calcultations and rolls/roll template). # Current version -2.1, Screenshots: [english](SWSheet.png), [french](SWSheet_fr.png) +2.2, Screenshots: [english](SWSheet.png), [french](SWSheet_fr.png) The sheet and its automated calculations (modifiers etc.) are based on the Complete version of the rules. Every calculation can be overriden by manual input, if house rules are used. But modifying certain fields will fire again the associated automated calcultion. For example, modifying DEX will compute again the AC modifier, Total AC etc. and any custom value previously entered has to be set again. # Release notes +## v2.2 (2017-09-17) + +* Technical optimisation + ## v2.1 (2017-02-15) * Layout bug fix: Min/Max spell label was too long, and the corresponding field was hidden diff --git a/Swords_&_Wizardry/SWSheet.html b/Swords_&_Wizardry/SWSheet.html index 37064c930a..1d0cdc3bac 100644 --- a/Swords_&_Wizardry/SWSheet.html +++ b/Swords_&_Wizardry/SWSheet.html @@ -1,66 +1,64 @@