diff --git a/Draci_Doupe_PPP/sheet.html b/Draci_Doupe_PPP/sheet.html
index 6a3855af1a..ff42f2c4c7 100644
--- a/Draci_Doupe_PPP/sheet.html
+++ b/Draci_Doupe_PPP/sheet.html
@@ -7,81 +7,194 @@
-
+
+
-
-
Životasch.:
+
+
+
Rasa:
+
+ A0
+ A
+ B
+ C
+ D
+ E
+
-
-
ÚČ:
+
+
+
+
+
Přesvědčení:
+
+ ZkD
+ ZmD
+ N
+ ZmZ
+ ZkZ
+
+
Životasch.:
+
set HP
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ Síla
+
+ -5
+
+
+
+ Odolnost
+
+ -5
+ Bojovnost
+
+
+
+
+
+ Obratnost
+
+ -5
+ Manevr.
+
+
+
+
+ Inteligence
+
+ -5
+ ZSM
+
+
+
+
+ Charisma
+
+ -5
+ Ochočení
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
@@ -176,25 +289,17 @@
-
0 základ
0 oprava
0 OZbraně
@@ -212,6 +317,7 @@
Hlavní
Schopnosti
Výbava
+
Pozn.
@@ -553,13 +659,56 @@
+
+
+
+
+
-
+
+ Vzhled
+
+
+
+
+ Příběh/Pozadí
+
+
+
@@ -644,12 +793,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -662,12 +811,12 @@
-
-
+
+
-
+
@@ -679,7 +828,7 @@
-
+
@@ -694,6 +843,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -721,12 +889,16 @@
-
{{#ozvolba}}
- {{#rollTotal() ozvolba 0}} + oprava za úkryt +1 až +4 {{/rollTotal() ozvolba 0}}
- {{/ozvolba}}
-
-
+ {{#rollTotal() ozvolba 0}} + oprava za úkryt +1 až +4 }}
{{/rollTotal() ozvolba 0}}
+ {{/ozvolba}}
+ {{#vyrazeny}}
+ {{#^rollTotal() vyrazeny 0}}Vyřazený: výsledné zranění *
+ {{#rollGreater() vyrazeny 9}}9 {{/rollGreater() vyrazeny 9}}
+ {{#^rollGreater() vyrazeny 9}}{{vyrazeny}}{{/^rollGreater() vyrazeny 9}}
+
{{/^rollTotal() vyrazeny 0}}
+ {{/vyrazeny}}
+
@@ -773,6 +945,56 @@
+
+
+ {{#rollLess() int 9}}
+
{{Result}}
+
{{name}}
+
+
+ {{#rollGreater() Result mod}} nechce bojovat {{/rollGreater() Result mod}}
+ {{#^rollGreater() Result mod}} útočí {{/^rollGreater() Result mod}}
+ {{/rollLess() int 9}}
+ {{#^rollLess() int 9}}Bojovnost Nestvůra je moc inteligentní{{/^rollLess() int 9}}
+
+
+
+
+
+
+
+
+ {{#tvt}}{{#rollTotal() tvt 0}}střel. {{/rollTotal() tvt 0}}{{#rollTotal() tvt 1}}tvt {{/rollTotal() tvt 1}}{{/tvt}}
+ {{name}}
+
+ - {{zbran}}
+
+
+
+
+
+
+
+
+
+
+
{{name}}
+
+
+
+ {{#vyrazeny}}
+ {{#^rollTotal() vyrazeny 0}}
Vyřazený?: výsledné zranění * {{vyrazeny}}
{{/^rollTotal() vyrazeny 0}}
+ {{/vyrazeny}}
+
+
+
@@ -916,10 +1138,25 @@ var update_bonus = function (attr) {
});
};
+var update_npcbonus = function (attr) {
+ const tab_bonus = [-5,-5,-4,-4,-3,-3,-2,-2,-1,-1,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10];
+ getAttrs([attr], function(values) {
+ var stat_base = int(values[attr]);
+/* console.log("hodnota "+stat_base);*/
+ var _base = Math.min(32, Math.max(1, stat_base));
+ var _stat_bonus = tab_bonus[_base];
+ var _update = {};
+ _update[attr + "_mod"] = _stat_bonus;
+ _update[attr] = _base;
+ setAttrs(_update);
+ });
+};
+
var update_nosnost = function () {
getAttrs(["sil_mod"], function(v) {
var _nosnost = 210 + 30 * ( int(v.sil_mod) + 5);
setAttrs({ nosnost: _nosnost });
+
});
};
@@ -949,6 +1186,10 @@ var update_pohyblivost = function () {
};
var setZbran = function(_zbran) {
+ if( typeof(_zbran) == "undefined" || _zbran == "-1" ){
+ setAttrs({zbran:"tvt1"});
+ return null;
+ };
getAttrs([_zbran, _zbran+"_uc", _zbran+"_uto", _zbran+"_oz", _zbran+"_2h",_zbran+"_maly",_zbran+"_stredni",_zbran+"_velky","rasa","velikost",
"zbroj1_use","zbroj1_stit","zbroj1_oc","zbroj2_use","zbroj2_stit","zbroj2_oc","zbroj3_use","zbroj3_stit","zbroj3_oc"], function(values) {
var rasa = values["rasa"];
@@ -1146,7 +1387,30 @@ on("clicked:showpc_vybava", function(eventinfo) {
console.log("values 2");
setAttrs({pc_page: "2"});
});
+on("clicked:showpc_pozn", function(eventinfo) {
+ console.log("values 3");
+ setAttrs({pc_page: "3"});
+});
+on("clicked:npc_hp", function(eventinfo) {
+// console.log("počítám životaschopnost");
+ getAttrs(["npc_zivotasch","npc_odl_mod"], function(values) {
+ var ziv = int(values.npc_zivotasch);
+ var mod = int(values.npc_odl_mod);
+ var celkem = 0;
+ var i;
+ for (i = 0; i < ziv; i++) {
+ var hod = Math.max(1,Math.ceil(Math.random() * 8) + mod);
+ celkem = celkem + hod;
+ };
+ setAttrs({npc_hit_points_max: celkem});
+ setAttrs({npc_hit_points: celkem});
+ var min = Math.max(1,1 + mod)*ziv;
+ var max = (8 + mod)*ziv;
+ var proc = Math.ceil((celkem - min)/(max-min) * 100);
+ console.log(""+ celkem +" -> "+min+" až "+max+" -> "+ proc+"%");
+ });
+});
@@ -1156,13 +1420,24 @@ on("clicked:showpc_vybava", function(eventinfo) {
});
});
+["npc_sil", "npc_int", "npc_chr", "npc_odl", "npc_obr"].forEach(stat => {
+ on(`change:${stat}`, () => {
+ update_npcbonus(stat);
+ });
+});
+
/*---------------------------Výpočet POHYBLIVOSTI ----------------- */
-on("change:sil_mod change:obr_mod change:rasa", function() {
+on("change:sil_mod change:obr_mod change:rasa change:nosnost", function() {
update_pohyblivost();
});
-
+on("change:poh_0 change:poh_1 change:poh_2 change:poh_3 change:nosnost", function() {
+ getAttrs(["nalozeni"], function(values) {
+ if(values.nalozeni == "-1") setAttrs({ nalozeni: 0 });
+ });
+});
+
/*--------- Presunuti výberu nalozeni do Statu Pohyblivosti----------------- */
@@ -1228,28 +1503,29 @@ on("change:hit_points change:odl", function() {
});
on("change:bojeschopnost_mod", function() {
- getAttrs(["bojeschopnost_mod","Nehybny_volba","Vyrazeny_volba"], function(values) {
+ getAttrs(["bojeschopnost_mod","nehybny_volba","vyrazeny_volba"], function(values) {
if(values.bojeschopnost_mod.includes("X")){
- setAttrs({ "Nehybny_volba": 0 });
- setAttrs({ "Vyrazeny_volba": 1 });
- } else if(values.Vyrazeny_volba == 1) setAttrs({ "Vyrazeny_volba": 0 });
+ setAttrs({ "nehybny_volba": 0 });
+ setAttrs({ "vyrazeny_volba": 1 });
+ } else if(values.vyrazeny_volba == 1) setAttrs({ "vyrazeny_volba": 0 });
});
});
-on("change:Vyrazeny_volba", function() {
- getAttrs(["Nehybny_volba","Vyrazeny_volba"], function(values) {
- if(values.Vyrazeny_volba == 1) setAttrs({ "Nehybny_volba": 0 });
+on("change:vyrazeny_volba", function() {
+ getAttrs(["nehybny_volba","vyrazeny_volba"], function(values) {
+ if(values.vyrazeny_volba == 1) setAttrs({ "nehybny_volba": 0 });
});
});
-on("change:Nehybny_volba", function() {
- getAttrs(["Nehybny_volba","Vyrazeny_volba"], function(values) {
- if(values.Nehybny_volba == 1) setAttrs({ "Vyrazeny_volba": 0 });
+on("change:nehybny_volba", function() {
+ getAttrs(["nehybny_volba","vyrazeny_volba"], function(values) {
+ if(values.nehybny_volba == 1) setAttrs({ "vyrazeny_volba": 0 });
});
});
+
/* ********* zmena zbrane ******* */
-on("change:zbran change:zbroj1_use change:zbroj2_use change:zbroj3_use change:velikost", function() {
+on("change:zbran change:zbroj1_use change:zbroj2_use change:zbroj3_use change:velikost", function() {
getAttrs(["zbran"], function(values) {
setZbran(values["zbran"]);
});
@@ -1266,24 +1542,19 @@ on("change:zbran change:zbroj1_use change:zbroj2_use change:zbroj3_use change:v
});
});
-/*
-["_uc", "_uto", "_2h","_maly","_stredni","_velky"].forEach(stat => {
- ["strel1", "strel2", "strel3", "strel4"].forEach(pos => {
- on(`change:${pos}${stat}`, () => {
- getAttrs(["zbran"], function(values) {
- if(values["zbran"].includes(pos)) setZbran(values["zbran"]);
- });
- });
- });
-});
- ******* OČ a UČ **********************************/
+ /******* OČ a UČ **********************************/
on("change:sil_mod change:obr_mod change:pretizeni_mod change:bojeschopnost_mod change:boj_id change:boj_uc change:boj_uto change:boj_oz change:boj_oc change:boj_ocstit change:nehybny_volba change:vyrazeny_volba change:oz_volba", function() {
var ids = ["boj_id","boj_jmeno","boj_uc","boj_uto","boj_oz","boj_tvt","boj_bez","boj_h2","boj_rod","boj_ocstit","boj_oc"];
getAttrs(["sil_mod","obr_mod","pretizeni_mod","bojeschopnost_mod","rasa","oz_volba","nehybny_volba","vyrazeny_volba",
"boj_id","boj_jmeno","boj_uc","boj_uto","boj_oz","boj_tvt","boj_bez","boj_h2","boj_rod","boj_ocstit","boj_oc"], function(values) {
// console.log("values " + values[_zbran+"_OZ"]);
+
+ if( values.boj_id == "-1" ){
+ setAttrs({zbran:"tvt1"});
+ return null;
+ };
var UC = 0;
var OC = 0;
var UCopr = 0;
@@ -1453,8 +1724,83 @@ on('change:vaha_celkem', function() {
+on('change:npc_obr_mod change:npcboj1_ozv change:npcboj1_oz change:npcboj2_ozv change:npcboj2_oz change:npcboj3_ozv change:npcboj3_oz change:npczbroj1_use change:npczbroj1_oc change:npczbroj2_use change:npczbroj2_oc change:npczbroj3_use change:npczbroj3_oc change:npcboj_vyrazen change:npc_bojeschopnost_mod', function() {
+ getAttrs(["npc_obr_mod","npcboj1_ozv","npcboj1_oz","npcboj2_ozv","npcboj2_oz","npcboj3_ozv","npcboj3_oz","npczbroj1_use","npczbroj1_oc","npczbroj2_use","npczbroj2_oc","npczbroj3_use","npczbroj3_oc","npc_bojeschopnost_mod","npcboj_vyrazen"], v => {
+ var oc = Math.max(int(v.npczbroj1_use)*int(v.npczbroj1_oc),int(v.npczbroj3_use)*int(v.npczbroj3_oc));
+ var stit = int(v.npczbroj2_use)*int(v.npczbroj2_oc);
+ var oz = 0;
+ var opr = 0;
+
+ if(int(v.npcboj_vyrazen) == 1){
+ opr = opr - (5 + int(v.npc_obr_mod));
+ } else {
+ opr = int(v.npc_bojeschopnost_mod) + stit;
+ };
+
+ if(int(v.npcboj1_ozv) == 1) { oz = int(v.npcboj1_oz);
+ } else if(int(v.npcboj2_ozv) == 1) { oz = int(v.npcboj2_oz);
+ } else if(int(v.npcboj3_ozv) == 1) { oz = int(v.npcboj3_oz);};
+
+ setAttrs({"npcboj_oc": oc});
+ setAttrs({"npcboj_opr": opr});
+ setAttrs({"npcboj_oz": oz});
+ });
+});
+on("change:npc_hit_points change:npc_odl", function() {
+ getAttrs(["npc_odl","npc_hit_points","npc_hit_points_max"], function(values) {
+ const odolnost = int(values.npc_odl);
+ var zivotu_max = int(values.npc_hit_points_max);
+ var tretina = Math.floor(zivotu_max/3);
+ var _bojeschopnost_mod = "-3";
+ var vyrazeni = Math.floor(zivotu_max/4);
+ if (odolnost >= 17) {
+ _bojeschopnost_mod = "0";
+ vyrazeni = 1;
+ } else if (odolnost >= 12) {
+ _bojeschopnost_mod = "-1";
+ vyrazeni = Math.floor(zivotu_max/8);
+ } else if (odolnost >= 6) {
+ _bojeschopnost_mod = "-2";
+ vyrazeni = Math.floor(zivotu_max/6);
+ }
+
+ var bojeschopnost = "Mrtev (X)";
+ var bojeschopnost_mod = "X";
+ var outof = 0;
+ var zivotu = int(values.npc_hit_points);
+ if(zivotu <= 0) {
+ outof = 1;
+ } else if (zivotu <= vyrazeni) {
+ outof = 1;
+ bojeschopnost = "Vyřazen (X)";
+ } else if (zivotu <= tretina) {
+ outof = 0;
+ bojeschopnost = "Zraněn ("+_bojeschopnost_mod+")";
+ bojeschopnost_mod = _bojeschopnost_mod;
+ } else {
+ outof = 0;
+ bojeschopnost = "";
+ bojeschopnost_mod = 0;
+ }
+
+ setAttrs({ "npcboj_vyrazen": outof});
+ setAttrs({ "npc_bojeschopnost": bojeschopnost });
+ setAttrs({ "npc_bojeschopnost_mod": bojeschopnost_mod });
+ setAttrs({ "npc_bojeschopnost_tretina_zivotu": tretina });
+ setAttrs({ "npc_bojeschopnost_mez_vyrazeni": vyrazeni });
+ setAttrs({ "npc_bojeschopnost_mod_vyrazeni": _bojeschopnost_mod });
+ });
+});
+
+on('change:npcboj1_tvt change:npcboj2_tvt change:npcboj3_tvt change:npc_sil_mod change:npc_obr_mod', function() {
+ getAttrs(["npcboj1_tvt","npcboj2_tvt","npcboj3_tvt","npc_sil_mod","npc_obr_mod"], v => {
+ if(int(v.npcboj1_tvt) == 0) {setAttrs({"npcboj1_mod": int(v.npc_obr_mod)});} else {setAttrs({"npcboj1_mod": int(v.npc_sil_mod)});};
+ if(int(v.npcboj2_tvt) == 0) {setAttrs({"npcboj2_mod": int(v.npc_obr_mod)});} else {setAttrs({"npcboj2_mod": int(v.npc_sil_mod)});};
+ if(int(v.npcboj3_tvt) == 0) {setAttrs({"npcboj3_mod": int(v.npc_obr_mod)});} else {setAttrs({"npcboj3_mod": int(v.npc_sil_mod)});};
+ });
+});