diff --git a/Dungeonslayers-4/DS4.css b/Dungeonslayers-4/DS4.css
index 69b5a6dd86..e0396e68a5 100644
--- a/Dungeonslayers-4/DS4.css
+++ b/Dungeonslayers-4/DS4.css
@@ -73,6 +73,7 @@
margin: 0;
font-weight: initial;
font-size: initial;
+ padding: 0;
}
.charsheet .sheet-col1 label input {
display: none;
@@ -98,9 +99,20 @@
text-align: center;
width: 70px;
}
-.charsheet .sheet-character .sheet-col2 input.sheet-split,
-.charsheet .sheet-character .sheet-col3 input.sheet-split {
- width: 28.5px;
+.charsheet .sheet-character input.sheet-split:nth-child(2) {
+ width: 25px;
+ border-right: none;
+ display: inline-block;
+}
+.charsheet .sheet-character input.sheet-split:nth-child(3) {
+ width: 20px;
+ border-left: none;
+ border-right: none;
+ display: inline-block;
+}
+.charsheet .sheet-character input.sheet-split:nth-child(4) {
+ width: 25px;
+ border-left: none;
display: inline-block;
}
.charsheet .sheet-character .sheet-flex .sheet-col1,
@@ -289,6 +301,9 @@
width: 80px;
flex-grow: 3;
}
+.charsheet .sheet-spell .sheet-flex {
+ flex-wrap: wrap;
+}
.charsheet .sheet-spell .sheet-flex > * {
border: 1px solid black;
padding: 2px;
@@ -311,9 +326,21 @@
max-width: 120px;
flex-grow: 1;
}
-.charsheet .sheet-spell .sheet-col8 {
- width: 80px;
- flex-grow: 3;
+.charsheet .sheet-spell .sheet-row2 {
+ display: flex;
+ border-top: none;
+ background-color: rgb(230, 230, 230);
+}
+.charsheet .sheet-spell .sheet-row2 span {
+ padding-right: 10px;
+ text-align: right;
+ display: inline-block;
+}
+.charsheet .sheet-spell .sheet-row2 textarea {
+ width: 40px;
+ height: 40px;
+ flex-grow: 1;
+ border: none;
}
.charsheet .sheet-spell .sheet-normal-spell {
background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dungeonslayers-4/DS4-SPC.png');
@@ -333,7 +360,7 @@
border: 1px solid black;
}
.charsheet .sheet-talent .sheet-col2 {
- width: 60px;
+ width: 75px;
text-align: center;
border: 1px solid black;
padding: 2px 6px;
@@ -341,7 +368,7 @@
.charsheet .sheet-talent .sheet-col2-1,
.charsheet .sheet-talent .sheet-col2-2,
.charsheet .sheet-talent .sheet-col2-3 {
- width: 20px;
+ width: 25px;
text-align: center;
border-top: 1px solid black;
border-bottom: 1px solid black;
@@ -363,10 +390,12 @@
font-size: 14px;
}
.charsheet .sheet-equipment .sheet-flex > *:nth-child(1) {
- width: 40px;
+ width: 200px;
+}
+.charsheet .sheet-equipment .sheet-flex > *:nth-child(2) {
+ width: 75px;
text-align: center;
}
-.charsheet .sheet-equipment .sheet-flex > *:nth-child(2),
.charsheet .sheet-equipment .sheet-flex > *:nth-child(3),
.charsheet .sheet-equipment .sheet-flex > *:nth-child(4) {
width: 120px;
@@ -382,63 +411,108 @@
.charsheet .sheet-equipment input[type=checkbox] {
display: none;
}
-.charsheet .sheet-progress-points {
- min-width: 500px;
-}
-.charsheet .sheet-progress-points > div {
- overflow-x: auto;
-}
-.charsheet .sheet-progress-points table {
- border-collapse: collapse;
- width: 100%;
-}
-.charsheet .sheet-progress-points tr:nth-child(1),
-.charsheet .sheet-progress-points tr:nth-child(4),
-.charsheet .sheet-progress-points tr:nth-child(10),
-.charsheet .sheet-progress-points tr:nth-child(19),
-.charsheet .sheet-progress-points tr:nth-child(20) {
- border-bottom: 2px solid black;
-}
-.charsheet .sheet-progress-points th,
-.charsheet .sheet-progress-points td {
+.charsheet .sheet-miscellaneous .sheet-flex > * {
border: 1px solid black;
padding: 2px;
font-size: 14px;
}
-.charsheet .sheet-progress-points td:nth-child(3),
-.charsheet .sheet-progress-points td:nth-child(4),
-.charsheet .sheet-progress-points td:nth-child(5),
-.charsheet .sheet-progress-points td:nth-child(6),
-.charsheet .sheet-progress-points td:nth-child(7),
-.charsheet .sheet-progress-points td:nth-child(14),
-.charsheet .sheet-progress-points td:nth-child(15),
-.charsheet .sheet-progress-points td:nth-child(16) {
+.charsheet .sheet-miscellaneous .sheet-flex > *:nth-child(1) {
+ width: 200px;
+ text-align: center;
+}
+.charsheet .sheet-miscellaneous .sheet-flex > *:nth-child(2) {
+ width: 120px;
+ flex-grow: 1;
+}
+.charsheet .sheet-progress-points1 {
+ min-width: 500px;
+}
+.charsheet .sheet-progress-points1 > div {
+ overflow-x: auto;
+}
+.charsheet .sheet-progress-points1 table {
+ border-collapse: collapse;
+ width: 100%;
+}
+.charsheet .sheet-progress-points1 tr:nth-child(1),
+.charsheet .sheet-progress-points1 tr:nth-child(4),
+.charsheet .sheet-progress-points1 tr:nth-child(10) {
+ border-bottom: 2px solid black;
+}
+.charsheet .sheet-progress-points1 th,
+.charsheet .sheet-progress-points1 td {
+ border: 1px solid black;
+ padding: 2px;
+ font-size: 14px;
+}
+.charsheet .sheet-progress-points1 td:nth-child(3),
+.charsheet .sheet-progress-points1 td:nth-child(4),
+.charsheet .sheet-progress-points1 td:nth-child(5),
+.charsheet .sheet-progress-points1 td:nth-child(6),
+.charsheet .sheet-progress-points1 td:nth-child(7),
+.charsheet .sheet-progress-points1 td:nth-child(13),
+.charsheet .sheet-progress-points1 td:nth-child(14),
+.charsheet .sheet-progress-points1 td:nth-child(15) {
border-left: none;
border-right: none;
}
-.charsheet .sheet-progress-points td:last-child {
+.charsheet .sheet-progress-points1 td:last-child {
border-right: 1px solid black;
}
-.charsheet .sheet-progress-points td:nth-child(12) {
- width: 100%;
-}
-.charsheet .sheet-progress-points input {
+.charsheet .sheet-progress-points1 input {
border: none;
width: 100%;
text-align: center;
}
-.charsheet .sheet-progress-points th:nth-child(8),
-.charsheet .sheet-progress-points td:nth-child(12) input {
- text-align: left;
-}
-.charsheet .sheet-progress-points th {
+.charsheet .sheet-progress-points1 th {
text-align: center;
}
-.charsheet .sheet-progress-points td:nth-child(13) input,
-.charsheet .sheet-progress-points td:nth-child(14) input,
-.charsheet .sheet-progress-points td:nth-child(16) input {
+.charsheet .sheet-progress-points1 td:nth-child(13) input,
+.charsheet .sheet-progress-points1 td:nth-child(15) input {
width: 30px;
}
+.charsheet .sheet-progress-points2 {
+ min-width: 500px;
+}
+.charsheet .sheet-progress-points2 > div {
+ overflow-x: auto;
+}
+.charsheet .sheet-progress-points2 table {
+ border-collapse: collapse;
+ width: 100%;
+}
+.charsheet .sheet-progress-points2 tr:nth-child(1),
+.charsheet .sheet-progress-points2 tr:nth-child(3) {
+ border-bottom: 2px solid black;
+}
+.charsheet .sheet-progress-points2 th,
+.charsheet .sheet-progress-points2 td {
+ border: 1px solid black;
+ padding: 2px;
+ font-size: 14px;
+}
+.charsheet .sheet-progress-points2 td:nth-child(2),
+.charsheet .sheet-progress-points2 td:nth-child(3),
+.charsheet .sheet-progress-points2 td:nth-child(4),
+.charsheet .sheet-progress-points2 td:nth-child(5),
+.charsheet .sheet-progress-points2 td:nth-child(6) {
+ border-left: none;
+ border-right: none;
+}
+.charsheet .sheet-progress-points2 input {
+ border: none;
+ width: 100%;
+ text-align: center;
+}
+.charsheet .sheet-progress-points2 th {
+ text-align: center;
+}
+.charsheet .sheet-progress-points2 th:nth-child(4),
+.charsheet .sheet-progress-points2 td:nth-child(8),
+.charsheet .sheet-progress-points2 td:nth-child(8) input {
+ width: 100%;
+ text-align: left;
+}
.charsheet .sheet-checks > .sheet-flex {
flex-wrap: wrap;
justify-content: space-around;
@@ -462,6 +536,30 @@
width: 55px;
text-align: center;
}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(4) {order: 17;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(5) {order: 2;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(6) {order: 21;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(7) {order: 22;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(8) {order: 19;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(9) {order: 7;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(10) {order: 5;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(11) {order: 16;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(12) {order: 10;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(13) {order: 18;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(14) {order: 6;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(15) {order: 24;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(16) {order: 23;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(17) {order: 1;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(18) {order: 15;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(19) {order: 9;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(20) {order: 8;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(21) {order: 14;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(22) {order: 12;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(23) {order: 20;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(24) {order: 13;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(25) {order: 3;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(26) {order: 4;}
+.charsheet.lang-de .sheet-checks > div > div:nth-child(27) {order: 11;}
.charsheet .sheet-attack-checks .sheet-flex {
flex-wrap: wrap;
justify-content: space-around;
diff --git a/Dungeonslayers-4/DS4.html b/Dungeonslayers-4/DS4.html
index a6703e4208..f8099b819d 100644
--- a/Dungeonslayers-4/DS4.html
+++ b/Dungeonslayers-4/DS4.html
@@ -12,7 +12,7 @@
-
PP
-
- /
-
+
TP
-
- /
-
+
Hero class
@@ -52,111 +48,47 @@
-
@@ -164,41 +96,41 @@
-
+
@@ -325,7 +257,7 @@
-
+
@@ -441,7 +373,6 @@
Distance
Duration
Cooldown
- Effect
@@ -484,7 +418,7 @@
-
+
@@ -574,21 +508,21 @@
-
+
+
+
@@ -1050,241 +1076,332 @@
Bonus
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1342,6 +1459,7 @@
pps.push(fields[j] +'_progress_points');
}
pps.push('talent_points_progress_points');
+ pps.push('culture_talent_progress_points');
pps.push('language_progress_points');
pps.push('alphabet_progress_points');
getAttrs(pps, function(values) {
@@ -1352,11 +1470,11 @@
setAttrs({progress_points: count});
});
});
- on('change:'+ fields[i] +'_initial change:'+ fields[i] +'_progress_points_bonus change:'+ fields[i] +'_weapon_bonus change:'+ fields[i] +'_armor_bonus change:'+ fields[i] +'_talent_bonus change:'+ fields[i] +'_equipment_bonus change:'+ fields[i] +'_miscellaneous_bonus change:'+ fields[i] +'_max', function(eventInfo) {
+ on('change:'+ fields[i] +'_initial change:'+ fields[i] +'_start change:'+ fields[i] +'_progress_points_bonus change:'+ fields[i] +'_weapon_bonus change:'+ fields[i] +'_armor_bonus change:'+ fields[i] +'_talent_bonus change:'+ fields[i] +'_equipment_bonus change:'+ fields[i] +'_miscellaneous_bonus change:'+ fields[i] +'_max', function(eventInfo) {
var field = eventInfo.sourceAttribute.substr(0, eventInfo.sourceAttribute.indexOf("_"));
- getAttrs([field +'_initial', field +'_progress_points_bonus', field +'_weapon_bonus', field +'_armor_bonus', field +'_talent_bonus', field +'_equipment_bonus', field +'_miscellaneous_bonus', field +'_max'], function(values) {
+ getAttrs([field +'_initial', field +'_start', field +'_progress_points_bonus', field +'_weapon_bonus', field +'_armor_bonus', field +'_talent_bonus', field +'_equipment_bonus', field +'_miscellaneous_bonus', field +'_max'], function(values) {
var attrs = {};
- var val = (isNaN(parseFloat(values[field +'_initial'])) ? 0 : parseFloat(values[field +'_initial'])) + (isNaN(parseFloat(values[field +'_progress_points_bonus'])) ? 0 : parseFloat(values[field +'_progress_points_bonus'])) + Math.min((isNaN(parseFloat(values[field +'_weapon_bonus'])) ? 0 : parseFloat(values[field +'_weapon_bonus'])) + (isNaN(parseFloat(values[field +'_armor_bonus'])) ? 0 : parseFloat(values[field +'_armor_bonus'])) + (isNaN(parseFloat(values[field +'_talent_bonus'])) ? 0 : parseFloat(values[field +'_talent_bonus'])) + (isNaN(parseFloat(values[field +'_equipment_bonus'])) ? 0 : parseFloat(values[field +'_equipment_bonus'])) + (isNaN(parseFloat(values[field +'_miscellaneous_bonus'])) ? 0 : parseFloat(values[field +'_miscellaneous_bonus'])), 5);
+ var val = (isNaN(parseFloat(values[field +'_initial'])) ? 0 : parseFloat(values[field +'_initial'])) + (isNaN(parseFloat(values[field +'_start'])) ? 0 : parseFloat(values[field +'_start'])) + (isNaN(parseFloat(values[field +'_progress_points_bonus'])) ? 0 : parseFloat(values[field +'_progress_points_bonus'])) + Math.min((isNaN(parseFloat(values[field +'_weapon_bonus'])) ? 0 : parseFloat(values[field +'_weapon_bonus'])) + (isNaN(parseFloat(values[field +'_armor_bonus'])) ? 0 : parseFloat(values[field +'_armor_bonus'])) + (isNaN(parseFloat(values[field +'_talent_bonus'])) ? 0 : parseFloat(values[field +'_talent_bonus'])) + (isNaN(parseFloat(values[field +'_equipment_bonus'])) ? 0 : parseFloat(values[field +'_equipment_bonus'])) + (isNaN(parseFloat(values[field +'_miscellaneous_bonus'])) ? 0 : parseFloat(values[field +'_miscellaneous_bonus'])), 5);
if(field == 'hit-points' || field == 'mana') {
attrs[field +'_max'] = val;
attrs['max-'+ field] = val;
@@ -1374,7 +1492,7 @@
getAttrs(['talent_points_progress_points', 'talent_points_progress_costs'], function(values) {
var attrs = {};
if(isNaN(parseFloat(values['talent_points_progress_points'])) || isNaN(parseFloat(values['talent_points_progress_costs']))) {
- attrs['talent_points_progress_points_bonus'] = '-';
+ attrs['talent_points_progress_points_bonus'] = '';
} else {
attrs['talent_points_progress_points_bonus'] = Math.floor(parseFloat(values['talent_points_progress_points']) / parseFloat(values['talent_points_progress_costs']));
}
@@ -1385,6 +1503,7 @@
pps.push(fields[j] +'_progress_points');
}
pps.push('talent_points_progress_points');
+ pps.push('culture_talent_progress_points');
pps.push('language_progress_points');
pps.push('alphabet_progress_points');
getAttrs(pps, function(values) {
@@ -1396,16 +1515,34 @@
});
});
- on('change:talent_points_initial change:talent_points_progress_points_bonus change:talent_points_miscellaneous_bonus', function(eventInfo) {
- getAttrs(['talent_points_initial', 'talent_points_progress_points_bonus', 'talent_points_miscellaneous_bonus'], function(values) {
+ on('change:talent_points_progress_points_bonus change:talent_points_additional', function(eventInfo) {
+ getAttrs(['talent_points_progress_points_bonus', 'talent_points_additional'], function(values) {
var attrs = {};
- var val = (isNaN(parseFloat(values['talent_points_initial'])) ? 0 : parseFloat(values['talent_points_initial'])) + (isNaN(parseFloat(values['talent_points_progress_points_bonus'])) ? 0 : parseFloat(values['talent_points_progress_points_bonus'])) + (isNaN(parseFloat(values['talent_points_miscellaneous_bonus'])) ? 0 : parseFloat(values['talent_points_miscellaneous_bonus']));
+ var val = (isNaN(parseFloat(values['talent_points_progress_points_bonus'])) ? 0 : parseFloat(values['talent_points_progress_points_bonus'])) + (isNaN(parseFloat(values['talent_points_additional'])) ? 0 : parseFloat(values['talent_points_additional']));
attrs['talent_points_max'] = val;
attrs['max-talent_points'] = val;
setAttrs(attrs);
});
});
+ on('change:culture_talent_progress_points', function(eventInfo) {
+ var pps = [];
+ for(var j = 0; j < fields.length; j++) {
+ pps.push(fields[j] +'_progress_points');
+ }
+ pps.push('talent_points_progress_points');
+ pps.push('culture_talent_progress_points');
+ pps.push('language_progress_points');
+ pps.push('alphabet_progress_points');
+ getAttrs(pps, function(values) {
+ var count = 0;
+ for(var j = 0; j < pps.length; j++) {
+ count += isNaN(parseFloat(values[pps[j]])) ? 0 : parseFloat(values[pps[j]]);
+ }
+ setAttrs({progress_points: count});
+ });
+ });
+
on('change:language_progress_points change:language_progress_costs', function(eventInfo) {
getAttrs(['language_progress_points', 'language_progress_costs'], function(values) {
if(isNaN(parseFloat(values['language_progress_points'])) || isNaN(parseFloat(values['language_progress_costs']))) {
@@ -1419,6 +1556,7 @@
pps.push(fields[j] +'_progress_points');
}
pps.push('talent_points_progress_points');
+ pps.push('culture_talent_progress_points');
pps.push('language_progress_points');
pps.push('alphabet_progress_points');
getAttrs(pps, function(values) {
@@ -1443,6 +1581,7 @@
pps.push(fields[j] +'_progress_points');
}
pps.push('talent_points_progress_points');
+ pps.push('culture_talent_progress_points');
pps.push('language_progress_points');
pps.push('alphabet_progress_points');
getAttrs(pps, function(values) {
@@ -1462,7 +1601,7 @@
var strength = isNaN(parseFloat(values['strength'])) ? 0 : parseFloat(values['strength']);
var total_armor_value = isNaN(parseFloat(values['total_armor_value'])) ? 0 : parseFloat(values['total_armor_value']);
var total_armor_magic_bonus = isNaN(parseFloat(values['total_armor_magic_bonus'])) ? 0 : parseFloat(values['total_armor_magic_bonus']);
- attrs['hit-points_initial'] = body + constitution + 10;
+ attrs['hit-points_initial'] = body + constitution;
attrs['defense_initial'] = body + constitution + total_armor_value + total_armor_magic_bonus;
attrs['melee-attack_initial'] = body + strength;
setAttrs(attrs);
@@ -1486,7 +1625,7 @@
var constitution = isNaN(parseFloat(values['constitution'])) ? 0 : parseFloat(values['constitution']);
var total_armor_value = isNaN(parseFloat(values['total_armor_value'])) ? 0 : parseFloat(values['total_armor_value']);
var total_armor_magic_bonus = isNaN(parseFloat(values['total_armor_magic_bonus'])) ? 0 : parseFloat(values['total_armor_magic_bonus']);
- attrs['hit-points_initial'] = body + constitution + 10;
+ attrs['hit-points_initial'] = body + constitution;
attrs['defense_initial'] = body + constitution + total_armor_value + total_armor_magic_bonus;
setAttrs(attrs);
});
@@ -1501,7 +1640,7 @@
var dexterity = isNaN(parseFloat(values['dexterity'])) ? 0 : parseFloat(values['dexterity']);
attrs['ride_base'] = mobility + Math.max(agility, aura);
attrs['initiative_initial'] = mobility + agility;
- attrs['movement-rate_initial'] = (mobility / 2) + 1;
+ attrs['movement-rate_initial'] = (mobility / 2);
attrs['ranged-attack_initial'] = mobility + dexterity;
setAttrs(attrs);
});
@@ -1627,7 +1766,7 @@
});
});
- on('change:repeating_weapon', function(eventInfo) {
+ on('change:repeating_weapon', function(eventInfo) {
getAttrs(['repeating_weapon_weapon_details_visibility', 'repeating_weapon_weapon_details_visibility_toggle'], function(values) {
if(values['repeating_weapon_weapon_details_visibility'] == 'toggle') {
if(values['repeating_weapon_weapon_details_visibility_toggle'] == 'visible') {
@@ -1643,43 +1782,46 @@
}
}
});
- getAttrs(['repeating_weapon_weapon_magic_bonus', 'repeating_weapon_weapon_mb_weapon_bonus', 'repeating_weapon_weapon_mb_initiative_bonus', 'repeating_weapon_weapon_mb_opponent_defense'], function(values) {
+ getAttrs(['repeating_weapon_weapon_magic_bonus', 'repeating_weapon_weapon_mb_weapon_bonus', 'repeating_weapon_weapon_mb_initiative_bonus', 'repeating_weapon_weapon_mb_opponent_defense'], function(values) {
var attrs = {};
var mb = isNaN(parseFloat(values['repeating_weapon_weapon_magic_bonus'])) ? 0 : parseFloat(values['repeating_weapon_weapon_magic_bonus']);
attrs['repeating_weapon_weapon_bonus'] = mb + (isNaN(parseFloat(values['repeating_weapon_weapon_mb_weapon_bonus'])) ? 0 : parseFloat(values['repeating_weapon_weapon_mb_weapon_bonus']));
attrs['repeating_weapon_weapon_initiative_bonus'] = mb + (isNaN(parseFloat(values['repeating_weapon_weapon_mb_initiative_bonus'])) ? 0 : parseFloat(values['repeating_weapon_weapon_mb_initiative_bonus']));
- attrs['repeating_weapon_weapon_opponent_defense'] = mb + (isNaN(parseFloat(values['repeating_weapon_weapon_mb_opponent_defense'])) ? 0 : parseFloat(values['repeating_weapon_weapon_mb_opponent_defense']));
+ attrs['repeating_weapon_weapon_opponent_defense'] = -1 * mb + (isNaN(parseFloat(values['repeating_weapon_weapon_mb_opponent_defense'])) ? 0 : parseFloat(values['repeating_weapon_weapon_mb_opponent_defense']));
setAttrs(attrs);
});
- getSectionIDs('repeating_weapon', function(idarray) {
- var actives = [];
- var bonuses = [];
- for(var k=0; k < idarray.length; k++) {
- actives.push('repeating_weapon_'+ idarray[k] +'_weapon_active');
- for(var j = 0; j < fields.length; j++) {
- bonuses.push('repeating_weapon_'+ idarray[k] +'_weapon_'+ fields[j] +'_bonus');
- }
- }
- getAttrs(actives.concat(bonuses), function(values) {
- var attrs = {};
- for(var j = 0; j < fields.length; j++) {
- var bonus = 0;
- for(var k=0; k < actives.length; k++) {
+ getSectionIDs('repeating_weapon', function(idarray) {
+ var actives = [];
+ var bonuses = [];
+ for(var k=0; k < idarray.length; k++) {
+ actives.push('repeating_weapon_'+ idarray[k] +'_weapon_active');
+ for(var j = 0; j < fields.length; j++) {
+ bonuses.push('repeating_weapon_'+ idarray[k] +'_weapon_'+ fields[j] +'_bonus');
+ }
+ }
+ getAttrs(actives.concat(bonuses), function(values) {
+ var attrs = {};
+ for(var j = 0; j < fields.length; j++) {
+ var bonus = 0;
+ for(var k=0; k < actives.length; k++) {
if(values[actives[k]] == "1") {
bonus += isNaN(parseFloat(values[bonuses[k * fields.length + j]])) ? 0 : parseFloat(values[bonuses[k * fields.length + j]]);
}
- }
- attrs[fields[j] +'_weapon_bonus'] = bonus;
- }
- setAttrs(attrs);
- });
- var weapons = [];
+ }
+ if(bonus > 0) {
+ attrs[fields[j] +'_weapon_bonus'] = bonus;
+ } else {
+ attrs[fields[j] +'_weapon_bonus'] = "";
+ }
+ }
+ setAttrs(attrs);
+ });
+ var weapons = [];
for(var k=0; k < idarray.length; k++) {
weapons.push('repeating_weapon_'+ idarray[k] +'_weapon_active');
weapons.push('repeating_weapon_'+ idarray[k] +'_weapon_name');
weapons.push('repeating_weapon_'+ idarray[k] +'_weapon_type');
weapons.push('repeating_weapon_'+ idarray[k] +'_weapon_bonus');
- weapons.push('repeating_weapon_'+ idarray[k] +'_weapon_magic_bonus');
weapons.push('repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense');
weapons.push('repeating_weapon_'+ idarray[k] +'_weapon_hands');
}
@@ -1693,21 +1835,21 @@
if(values['repeating_weapon_'+ idarray[k] +'_weapon_active'] == "1") {
if(values['repeating_weapon_'+ idarray[k] +'_weapon_type'] === undefined || values['repeating_weapon_'+ idarray[k] +'_weapon_type'] == 'mat' || values['repeating_weapon_'+ idarray[k] +'_weapon_type'] == 'mra') {
countActiveMeleeWeapon++;
- btnActiveMeleeWeapon += '|'+ values['repeating_weapon_'+ idarray[k] +'_weapon_name'] +',{{Waffe='+ values['repeating_weapon_'+ idarray[k] +'_weapon_name'] +' ('+ values['repeating_weapon_'+ idarray[k] +'_weapon_hands'] +')}}{{GA='+ (values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense'] === undefined ? 0 : values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense']) +'}}{{Probenwert=[[@{melee-attack} [Schlagen] + '+ (isNaN(parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) ? 0 : parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) +' [WB] + '+ (isNaN(parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_magic_bonus'])) ? 0 : parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_magic_bonus'])) +' [MB] + ?{Modifikator|-10} [Modifikator]]]}}';
+ btnActiveMeleeWeapon += '|'+ values['repeating_weapon_'+ idarray[k] +'_weapon_name'] +',{{Waffe='+ values['repeating_weapon_'+ idarray[k] +'_weapon_name'] +' ('+ values['repeating_weapon_'+ idarray[k] +'_weapon_hands'] +')}}{{GA='+ (values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense'] === undefined ? 0 : values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense']) +'}}{{Probenwert=[[@{melee-attack} [Schlagen] + '+ (isNaN(parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) ? 0 : parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) +' [WB] + ?{Modifikator|-10}]]}}';
}
if(values['repeating_weapon_'+ idarray[k] +'_weapon_type'] == 'rat' || values['repeating_weapon_'+ idarray[k] +'_weapon_type'] == 'mra') {
countActiveRangedWeapon++;
- btnActiveRangedWeapon += '|'+ values['repeating_weapon_'+ idarray[k] +'_weapon_name'] +',{{Waffe='+ values['repeating_weapon_'+ idarray[k] +'_weapon_name'] +' ('+ values['repeating_weapon_'+ idarray[k] +'_weapon_hands'] +')}}{{GA='+ (values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense'] === undefined ? 0 : values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense']) +'}}{{Probenwert=[[@{melee-attack} [Schiessen] + '+ (isNaN(parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) ? 0 : parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) +' [WB] + '+ (isNaN(parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_magic_bonus'])) ? 0 : parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_magic_bonus'])) +' [MB] + ?{Modifikator|-10} [Modifikator]]]}}';
+ btnActiveRangedWeapon += '|'+ values['repeating_weapon_'+ idarray[k] +'_weapon_name'] +',{{Waffe='+ values['repeating_weapon_'+ idarray[k] +'_weapon_name'] +' ('+ values['repeating_weapon_'+ idarray[k] +'_weapon_hands'] +')}}{{GA='+ (values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense'] === undefined ? 0 : values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense']) +'}}{{Probenwert=[[@{melee-attack} [Schiessen] + '+ (isNaN(parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) ? 0 : parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) +' [WB] + ?{Modifikator|-10}]]}}';
}
}
}
if(countActiveMeleeWeapon == 0) {
- btnActiveMeleeWeapon = '&{template:default}{{name=^{melee-attack}}}{{^{weapon}=^{unarmed}}}{{^{opponent-defense-short}=+5}}{{^{check-value}=[[@{melee-attack} [^{melee-attack}] + 0 [^{weapon-bonus-short}] + 0 [^{magic-bonus-short} + ?{Modifikator|0} [Modifikator]]]]}}{{^{check-result}=[[1d20]]}}';
+ btnActiveMeleeWeapon = '&{template:default}{{name=^{melee-attack}}}{{^{weapon}=^{unarmed}}}{{^{opponent-defense-short}=+5}}{{^{check-value}=[[@{melee-attack} + 0 [WB] + ?{Modifikator|0}]]]}}{{^{check-result}=[[1d20]]}}';
} else if(countActiveMeleeWeapon == 1) {
for(var k=0; k < idarray.length; k++) {
if(values['repeating_weapon_'+ idarray[k] +'_weapon_active'] == "1") {
if(values['repeating_weapon_'+ idarray[k] +'_weapon_type'] === undefined || values['repeating_weapon_'+ idarray[k] +'_weapon_type'] == 'mat' || values['repeating_weapon_'+ idarray[k] +'_weapon_type'] == 'mra') {
- btnActiveMeleeWeapon = '&{template:default}{{name=^{melee-attack}}}{{^{weapon}='+ values['repeating_weapon_'+ idarray[k] +'_weapon_name'] +' ('+ values['repeating_weapon_'+ idarray[k] +'_weapon_hands'] +')}}{{^{opponent-defense-short}='+ (values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense'] === undefined ? 0 : values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense']) +'}}{{^{check-value}=[[@{melee-attack} [^{melee-attack}] + '+ (isNaN(parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) ? 0 : parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) +' [^{weapon-bonus-short}] + '+ (isNaN(parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_magic_bonus'])) ? 0 : parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_magic_bonus'])) +' [^{magic-bonus-short}] + ?{Modifikator|0} [Modifikator]]]}}{{^{check-result}=[[1d20]]}}';
+ btnActiveMeleeWeapon = '&{template:default}{{name=^{melee-attack}}}{{^{weapon}='+ values['repeating_weapon_'+ idarray[k] +'_weapon_name'] +' ('+ values['repeating_weapon_'+ idarray[k] +'_weapon_hands'] +')}}{{^{opponent-defense-short}='+ (values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense'] === undefined ? 0 : values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense']) +'}}{{^{check-value}=[[@{melee-attack} + '+ (isNaN(parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) ? 0 : parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) +' [WB] + ?{Modifikator|0}]]}}{{^{check-result}=[[1d20]]}}';
}
}
}
@@ -1720,7 +1862,7 @@
for(var k=0; k < idarray.length; k++) {
if(values['repeating_weapon_'+ idarray[k] +'_weapon_active'] == "1") {
if(values['repeating_weapon_'+ idarray[k] +'_weapon_type'] == 'rat' || values['repeating_weapon_'+ idarray[k] +'_weapon_type'] == 'mra') {
- btnActiveRangedWeapon = '&{template:default}{{name=^{ranged-attack}}}{{^{weapon}='+ values['repeating_weapon_'+ idarray[k] +'_weapon_name'] +' ('+ values['repeating_weapon_'+ idarray[k] +'_weapon_hands'] +')}}{{^{opponent-defense-short}='+ (values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense'] === undefined ? 0 : values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense']) +'}}{{^{check-value}=[[@{ranged-attack} [^{ranged-attack}] + '+ (isNaN(parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) ? 0 : parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) +' [^{weapon-bonus-short}] + '+ (isNaN(parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_magic_bonus'])) ? 0 : parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_magic_bonus'])) +' [^{magic-bonus-short}] + ?{Modifikator|0} [Modifikator]]]}}{{^{check-result}=[[1d20]]}}';
+ btnActiveRangedWeapon = '&{template:default}{{name=^{ranged-attack}}}{{^{weapon}='+ values['repeating_weapon_'+ idarray[k] +'_weapon_name'] +' ('+ values['repeating_weapon_'+ idarray[k] +'_weapon_hands'] +')}}{{^{opponent-defense-short}='+ (values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense'] === undefined ? 0 : values['repeating_weapon_'+ idarray[k] +'_weapon_opponent_defense']) +'}}{{^{check-value}=[[@{ranged-attack} + '+ (isNaN(parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) ? 0 : parseFloat(values['repeating_weapon_'+ idarray[k] +'_weapon_bonus'])) +' [WB] + ?{Modifikator|0}]]}}{{^{check-result}=[[1d20]]}}';
}
}
}
@@ -1731,8 +1873,8 @@
attrs['btn_active_ranged_weapon'] = btnActiveRangedWeapon;
setAttrs(attrs);
});
- });
- });
+ });
+ });
on('change:repeating_armor', function(eventInfo) {
getAttrs(['repeating_armor_armor_details_visibility', 'repeating_armor_armor_details_visibility_toggle'], function(values) {
@@ -1789,6 +1931,9 @@
attrs[fields[j] +'_armor_bonus'] += isNaN(parseFloat(values[bonuses[k * fields.length + j]])) ? 0 : parseFloat(values[bonuses[k * fields.length + j]]);
}
}
+ if(attrs[fields[j] +'_armor_bonus'] == 0) {
+ attrs[fields[j] +'_armor_bonus'] = "";
+ }
}
setAttrs(attrs);
});
@@ -1817,11 +1962,11 @@
if(values['repeating_spell_'+ idarray[k] +'_spell_active'] == "1") {
if(values['repeating_spell_'+ idarray[k] +'_spell_type'] === undefined || values['repeating_spell_'+ idarray[k] +'_spell_type'] == 'spc' || values['repeating_spell_'+ idarray[k] +'_spell_type'] == 'msc') {
countActiveNormalSpell++;
- btnActiveNormalSpell += '|'+ values['repeating_spell_'+ idarray[k] +'_spell_name'] +',{{Zauber='+ values['repeating_spell_'+ idarray[k] +'_spell_name'] + (values['repeating_spell_'+ idarray[k] +'_spell_type'] == 'msc' ? ' (!)' : '') +'}}{{mana='+ values['repeating_spell_'+ idarray[k] +'_spell_mana'] +'}}{{Distanz='+ values['repeating_spell_'+ idarray[k] +'_spell_distance'] +'}}{{Dauer='+ values['repeating_spell_'+ idarray[k] +'_spell_duration'] +'}}{{Abklingzeit='+ values['repeating_spell_'+ idarray[k] +'_spell_cooldown'] +'}}{{Probenwert=[[@{normal-spellcasting} [Zaubern] + '+ (isNaN(parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) ? 0 : parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) +' [ZB] + ?{Modifikator|0} [Modifikator]]]}}';
+ btnActiveNormalSpell += '|'+ values['repeating_spell_'+ idarray[k] +'_spell_name'] +',{{Zauber='+ values['repeating_spell_'+ idarray[k] +'_spell_name'] + (values['repeating_spell_'+ idarray[k] +'_spell_type'] == 'msc' ? ' (!)' : '') +'}}{{mana='+ values['repeating_spell_'+ idarray[k] +'_spell_mana'] +'}}{{Distanz='+ values['repeating_spell_'+ idarray[k] +'_spell_distance'] +'}}{{Dauer='+ values['repeating_spell_'+ idarray[k] +'_spell_duration'] +'}}{{Abklingzeit='+ values['repeating_spell_'+ idarray[k] +'_spell_cooldown'] +'}}{{Probenwert=[[@{normal-spellcasting} [Zaubern] + '+ (isNaN(parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) ? 0 : parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) +' [ZB] + ?{Modifikator|0}]]}}';
}
if(values['repeating_spell_'+ idarray[k] +'_spell_type'] == 'tsc') {
countActiveTargetedSpell++;
- btnActiveTargetedSpell += '|'+ values['repeating_spell_'+ idarray[k] +'_spell_name'] +',{{Zauber='+ values['repeating_spell_'+ idarray[k] +'_spell_name'] +'}}{{mana='+ values['repeating_spell_'+ idarray[k] +'_spell_mana'] +'}}{{Distanz='+ values['repeating_spell_'+ idarray[k] +'_spell_distance'] +'}}{{Dauer='+ values['repeating_spell_'+ idarray[k] +'_spell_duration'] +'}}{{Abklingzeit='+ values['repeating_spell_'+ idarray[k] +'_spell_cooldown'] +'}}{{Probenwert=[[@{targeted-spellcasting} [Zielzauber] + '+ (isNaN(parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) ? 0 : parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) +' [ZB] + ?{Modifikator|0} [Modifikator]]]}}';
+ btnActiveTargetedSpell += '|'+ values['repeating_spell_'+ idarray[k] +'_spell_name'] +',{{Zauber='+ values['repeating_spell_'+ idarray[k] +'_spell_name'] +'}}{{mana='+ values['repeating_spell_'+ idarray[k] +'_spell_mana'] +'}}{{Distanz='+ values['repeating_spell_'+ idarray[k] +'_spell_distance'] +'}}{{Dauer='+ values['repeating_spell_'+ idarray[k] +'_spell_duration'] +'}}{{Abklingzeit='+ values['repeating_spell_'+ idarray[k] +'_spell_cooldown'] +'}}{{Probenwert=[[@{targeted-spellcasting} [Zielzauber] + '+ (isNaN(parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) ? 0 : parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) +' [ZB] + ?{Modifikator|0}]]}}';
}
}
}
@@ -1831,7 +1976,7 @@
for(var k=0; k < idarray.length; k++) {
if(values['repeating_spell_'+ idarray[k] +'_spell_active'] == "1") {
if(values['repeating_spell_'+ idarray[k] +'_spell_type'] === undefined || values['repeating_spell_'+ idarray[k] +'_spell_type'] == 'spc' || values['repeating_spell_'+ idarray[k] +'_spell_type'] == 'msc') {
- btnActiveNormalSpell = '&{template:default}{{name=^{normal-spellcasting}}}{{^{spell}='+ values['repeating_spell_'+ idarray[k] +'_spell_name'] +'}}{{^{mana}='+ values['repeating_spell_'+ idarray[k] +'_spell_mana'] +'}}{{^{spell-distance}='+ values['repeating_spell_'+ idarray[k] +'_spell_distance'] +'}}{{^{spell-duration}='+ values['repeating_spell_'+ idarray[k] +'_spell_duration'] +'}}{{^{spell-cooldown}='+ values['repeating_spell_'+ idarray[k] +'_spell_cooldown'] +'}}{{^{check-value}=[[@{normal-spellcasting} [^{normal-spellcasting}] + '+ (isNaN(parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) ? 0 : parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) +' [^{spell-modifier-short}] + ?{Modifikator|0} [Modifikator]]]}}{{^{check-result}=[[1d20]]}}';
+ btnActiveNormalSpell = '&{template:default}{{name=^{normal-spellcasting}}}{{^{spell}='+ values['repeating_spell_'+ idarray[k] +'_spell_name'] +'}}{{^{mana}='+ values['repeating_spell_'+ idarray[k] +'_spell_mana'] +'}}{{^{spell-distance}='+ values['repeating_spell_'+ idarray[k] +'_spell_distance'] +'}}{{^{spell-duration}='+ values['repeating_spell_'+ idarray[k] +'_spell_duration'] +'}}{{^{spell-cooldown}='+ values['repeating_spell_'+ idarray[k] +'_spell_cooldown'] +'}}{{^{check-value}=[[@{normal-spellcasting} + '+ (isNaN(parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) ? 0 : parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) +' [ZB] + ?{Modifikator|0}]]}}{{^{check-result}=[[1d20]]}}';
}
}
}
@@ -1844,7 +1989,7 @@
for(var k=0; k < idarray.length; k++) {
if(values['repeating_spell_'+ idarray[k] +'_spell_active'] == "1") {
if(values['repeating_spell_'+ idarray[k] +'_spell_type'] == 'tsc') {
- btnActiveTargetedSpell = '&{template:default}{{name=^{targeted-spellcasting}}}{{^{spell}='+ values['repeating_spell_'+ idarray[k] +'_spell_name'] +'}}{{^{mana}='+ values['repeating_spell_'+ idarray[k] +'_spell_mana'] +'}}{{^{spell-distance}='+ values['repeating_spell_'+ idarray[k] +'_spell_distance'] +'}}{{^{spell-duration}='+ values['repeating_spell_'+ idarray[k] +'_spell_duration'] +'}}{{^{spell-cooldown}='+ values['repeating_spell_'+ idarray[k] +'_spell_cooldown'] +'}}{{^{check-value}=[[@{targeted-spellcasting} [^{targeted-spellcasting}] + '+ (isNaN(parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) ? 0 : parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) +' [^{spell-modifier-short}] + ?{Modifikator|0} [Modifikator]]]}}{{^{check-result}=[[1d20]]}}';
+ btnActiveTargetedSpell = '&{template:default}{{name=^{targeted-spellcasting}}}{{^{spell}='+ values['repeating_spell_'+ idarray[k] +'_spell_name'] +'}}{{^{mana}='+ values['repeating_spell_'+ idarray[k] +'_spell_mana'] +'}}{{^{spell-distance}='+ values['repeating_spell_'+ idarray[k] +'_spell_distance'] +'}}{{^{spell-duration}='+ values['repeating_spell_'+ idarray[k] +'_spell_duration'] +'}}{{^{spell-cooldown}='+ values['repeating_spell_'+ idarray[k] +'_spell_cooldown'] +'}}{{^{check-value}=[[@{targeted-spellcasting} + '+ (isNaN(parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) ? 0 : parseFloat(values['repeating_spell_'+ idarray[k] +'_spell_modifier'])) +' [ZB] + ?{Modifikator|0}]]}}{{^{check-result}=[[1d20]]}}';
}
}
}
@@ -1877,29 +2022,33 @@
});
getSectionIDs('repeating_talent', function(idarray) {
var actives = [];
- var ranks = [];
- var bonuses = [];
- for(var k=0; k < idarray.length; k++) {
- actives.push('repeating_talent_'+ idarray[k] +'_talent_active');
+ var ranks = [];
+ var bonuses = [];
+ for(var k=0; k < idarray.length; k++) {
+ actives.push('repeating_talent_'+ idarray[k] +'_talent_active');
ranks.push('repeating_talent_'+ idarray[k] +'_talent_rank');
- for(var j = 0; j < fields.length; j++) {
- bonuses.push('repeating_talent_'+ idarray[k] +'_talent_'+ fields[j] +'_bonus');
- }
- }
- getAttrs(actives.concat(ranks).concat(bonuses), function(values) {
- var newAttrs = {};
- for(var j = 0; j < fields.length; j++) {
- var bonus = 0;
- for(var k=0; k < ranks.length; k++) {
+ for(var j = 0; j < fields.length; j++) {
+ bonuses.push('repeating_talent_'+ idarray[k] +'_talent_'+ fields[j] +'_bonus');
+ }
+ }
+ getAttrs(actives.concat(ranks).concat(bonuses), function(values) {
+ var newAttrs = {};
+ for(var j = 0; j < fields.length; j++) {
+ var bonus = 0;
+ for(var k=0; k < ranks.length; k++) {
if(values[actives[k]] == "1") {
bonus += (isNaN(parseFloat(values[ranks[k]])) ? 0 : parseFloat(values[ranks[k]])) * (isNaN(parseFloat(values[bonuses[k * fields.length + j]])) ? 0 : parseFloat(values[bonuses[k * fields.length + j]]));
}
- }
- newAttrs[fields[j] +'_talent_bonus'] = bonus;
- }
- setAttrs(newAttrs);
- });
- });
+ }
+ if(bonus > 0) {
+ newAttrs[fields[j] +'_talent_bonus'] = bonus;
+ } else {
+ newAttrs[fields[j] +'_talent_bonus'] = "";
+ }
+ }
+ setAttrs(newAttrs);
+ });
+ });
});
on('change:repeating_equipment', function(eventInfo) {
@@ -1934,6 +2083,52 @@
for(var k=0; k < quantities.length; k++) {
attrs[fields[j] +'_equipment_bonus'] += (isNaN(parseFloat(values[quantities[k]])) ? 0 : parseFloat(values[quantities[k]])) * (isNaN(parseFloat(values[bonuses[k * fields.length + j]])) ? 0 : parseFloat(values[bonuses[k * fields.length + j]]));
}
+ if(attrs[fields[j] +'_equipment_bonus'] == 0) {
+ attrs[fields[j] +'_equipment_bonus'] = "";
+ }
+ }
+ setAttrs(attrs);
+ });
+ });
+ });
+
+ on('change:repeating_miscellaneous', function(eventInfo) {
+ getAttrs(['repeating_miscellaneous_miscellaneous_details_visibility', 'repeating_miscellaneous_miscellaneous_details_visibility_toggle'], function(values) {
+ if(values['repeating_miscellaneous_miscellaneous_details_visibility'] == 'toggle') {
+ if(values['repeating_miscellaneous_miscellaneous_details_visibility_toggle'] == 'visible') {
+ setAttrs({
+ repeating_miscellaneous_miscellaneous_details_visibility: 'hidden',
+ repeating_miscellaneous_miscellaneous_details_visibility_toggle: 'hidden'
+ });
+ } else {
+ setAttrs({
+ repeating_miscellaneous_miscellaneous_details_visibility: 'visible',
+ repeating_miscellaneous_miscellaneous_details_visibility_toggle: 'visible'
+ });
+ }
+ }
+ });
+ getSectionIDs('repeating_miscellaneous', function(idarray) {
+ var actives = [];
+ var bonuses = [];
+ for(var k=0; k < idarray.length; k++) {
+ actives.push('repeating_miscellaneous_'+ idarray[k] +'_miscellaneous_active');
+ for(var j = 0; j < fields.length; j++) {
+ bonuses.push('repeating_miscellaneous_'+ idarray[k] +'_miscellaneous_'+ fields[j] +'_bonus');
+ }
+ }
+ getAttrs(actives.concat(bonuses), function(values) {
+ var attrs = {};
+ for(var j = 0; j < fields.length; j++) {
+ attrs[fields[j] +'_miscellaneous_bonus'] = 0;
+ for(var k=0; k < actives.length; k++) {
+ if(values[actives[k]] == "1") {
+ attrs[fields[j] +'_miscellaneous_bonus'] += (isNaN(parseFloat(values[actives[k]])) ? 0 : parseFloat(values[actives[k]])) * (isNaN(parseFloat(values[bonuses[k * fields.length + j]])) ? 0 : parseFloat(values[bonuses[k * fields.length + j]]));
+ }
+ }
+ if(attrs[fields[j] +'_miscellaneous_bonus'] == 0) {
+ attrs[fields[j] +'_miscellaneous_bonus'] = "";
+ }
}
setAttrs(attrs);
});
diff --git a/Dungeonslayers-4/translation.json b/Dungeonslayers-4/translation.json
index de5a366eea..7ffbc473ac 100644
--- a/Dungeonslayers-4/translation.json
+++ b/Dungeonslayers-4/translation.json
@@ -1,173 +1,175 @@
{
- "active":"Active",
- "age":"Age",
- "agility":"Agility",
- "alphabet":"Alphabet",
- "appraise":"Appraise",
- "appraise-bonus":"Appraise, ...",
- "armor":"Armor",
- "armor-material-example":"Wood, Leather, Metal, ...",
- "armor-type-example":"Helmet, Body, Vambrace, Greaves, Shield, ...",
- "armor-value":"Armor value",
- "armor-value-short":"AV",
- "attribute+trait":"Attribute + Trait",
- "aura":"Aura",
- "base":"Base",
- "body":"Body",
- "body-short+constitution-short":"BOD+CO",
- "body-short+strength-short":"BOD+ST",
- "bonus":"Bonus",
- "both-attack":"Both",
- "character":"Character",
- "character-name":"Character name",
- "check":"Check",
- "check-result":"Check result",
- "check-value":"Check value",
- "class":"Class",
- "class-example":"Fighter, Scout, Healer, Wizard, Sorcerer, ...",
- "climb":"Climb",
- "climb-bonus":"Acrobat, Master Climber, ...",
- "communicate":"Communicate",
- "communicate-bonus":"Education, ...",
- "constitution":"Constitution",
- "cooldown":"Cooldown",
- "culture":"Culture",
- "culture-example":"Barbarians, Mountain Dwarves, Freelander, Kaiban, Wood Elves, Wild Elves, Desert Dwarves, Wyndlanders, Zasarian, ...",
- "current-hit-points":"Current hit points",
- "current-mana-points":"Current mana points",
- "date-of-birth":"Date of birth",
- "decipher-script":"Decipher script",
- "decipher-script-bonus":"Alertness, Education, ...",
- "defense":"Defense",
- "defy-poison":"Defy poison",
- "defy-poison-bonus":"Endurance, …",
- "dexterity":"Dexterity",
- "disable-traps":"Disable traps",
- "disable-traps-bonus":"Thievery, ...",
- "distance":"Distance",
- "duration":"Duration",
- "edit-bonuses":"Edit bonuses",
- "effect":"Effect",
- "equipment":"Equipment",
- "experience-points":"Experience points",
- "experience-points-short":"EP",
- "eye-color":"Eye color",
- "feat-of-strength":"Feat of strength",
- "feat-of-strength-bonus":"Brutal Blow, Devastating Strike, ...",
- "flirt":"Flirt",
- "flirt-bonus":"Charming, ...",
- "gender":"Gender",
- "generic":"Generic",
- "generic-check":"Generic check",
- "haggle":"Haggle",
- "haggle-base":"MND+MAX(IN, AU)",
- "haggle-bonus":"Charming, Rascal, ...",
- "hair-color":"Hair color",
- "hands":"Hands",
- "hands-example":"1H = one-handed, 2H = two-handed, ...",
- "character-height":"Height",
- "hero-class":"Hero class",
- "hero-class-example":"Berserker, Paladin, Weapon Master, Assassin, Ranger, Rogue, Cleric, Druid, Monk, Archmage, Battle Mage, Elementalist, Blood Mage, Demonologist, Necromancer, ...",
- "hide":"Hide",
- "hit-points":"Hit points",
- "initiative":"Initiative",
- "intellect":"Intellect",
- "jump":"Jump",
- "jump-bonus":"Acrobat, ...",
- "knowledge":"Knowledge",
- "knowledge-bonus":"Education, Expertise, ...",
- "language":"Language",
- "level":"Level",
- "magic-bonus":"Magic bonus",
- "magic-bonus-short":"MB",
- "mana":"Mana",
- "material":"Material",
- "melee-attack":"Melee attack",
- "mind":"Mind",
- "mind-influencing-spell":"Mind-influencing spell",
- "mind-short+aura-short":"MND+AU",
- "mind-short+dexterity-short":"MND+DX",
- "mind-short+intellect-short":"MND+IN",
- "mind-short+intellect-short-or-eight":"MAX(MND+IN, 8)",
- "miscellaneous":"Miscellaneous",
- "mobility":"Mobility",
- "mobility-short+agility-short":"MOB+AG",
- "mobility-short+dexterity-short":"MOB+DX",
- "mobility-short+strength-short":"MOB+ST",
- "movement-rate":"Movement rate",
- "normal-spell":"Normal spell",
- "normal-spellcasting":"Spellcasting",
- "notes":"Notes",
- "of":"of",
- "open-lock":"Open lock",
- "open-lock-bonus":"Thievery, Lockpicking, ...",
- "opponent-defense":"Opponent's defense",
- "opponent-defense-short":"OD",
- "other-abilities":"Other abilities",
- "perception":"Perception",
- "perception-bonus":"Thievery, Alertness, ...",
- "pick-pocket":"Pick pocket",
- "pick-pocket-bonus":"Thievery, Stealth, Diversion, Pickpocket, ...",
- "place-of-birth":"Place of birth",
- "player":"Player",
- "player-name":"Player name",
- "private-biography":"Private biography",
- "progress-points":"Progress points",
- "progress-points-short":"PP",
- "public-biography":"Public biography",
- "quantity":"Quantity",
- "quantity-short":"Qty",
- "race":"Race",
- "race-example":"Elf, Human, Dwarf, ...",
- "racial-abilities":"Racial abilities",
- "ranged-attack":"Ranged attack",
- "read-tracks":"Read tracks",
- "read-tracks-bonus":"Hunter, Alertness, ...",
- "resist-disease":"Resist disease",
- "resist-disease-bonus":"Endurance, …",
- "ride":"Ride",
- "ride-base":"MOB+MAX(AG, AU)",
- "ride-bonus":"Riding, Mounted Archer, Beast Master, ...",
- "search":"Search",
- "search-bonus":"Thievery, Stealth, Alertness, ...",
- "sneak":"Sneak",
- "sneak-bonus":"Stealth, ...",
- "special":"Special",
- "special-behavior":"Special behavior",
- "special-characteristics":"Special characteristics",
- "spell":"Spell",
- "spell-cooldown":"Cooldown",
- "spell-distance":"Distance",
- "spell-duration":"Duration",
- "spell-modifier":"Spell modifier",
- "spell-modifier-short":"SM",
- "spell-type":"Normal spell, Targeted spell or Mind-influencing spell",
- "start":"Start",
- "start-fire":"Start fire",
- "start-fire-bonus":"Hunter, ...",
- "stealth-bonus":"Stealth, ...",
- "strength":"Strength",
- "swim":"Swim",
- "swim-bonus":"Swim, ...",
- "talent":"Talent",
- "talent-points":"Talent points",
- "talent-points-short":"TP",
- "targeted-spell":"Targeted spell",
- "targeted-spellcasting":"Targeted spellcasting",
- "tier":"Tier",
- "total":"Total",
- "type":"Type",
- "typical-checks":"Typical checks",
- "unarmed":"Unarmed",
- "wake-up":"Wake up",
- "wake-up-bonus":"Lightning Reflexes, Alertness, ...",
- "weapon":"Weapon",
- "weapon-bonus":"Weapon bonus",
- "weapon-bonus-short":"WB",
- "weapon-type":"Melee attack or Ranged attack",
- "weight":"Weight",
- "where-carried":"Where carried?",
- "work-mechanism":"Work mechanism",
- "work-mechanism-base":"MND+MAX(DX, IN)",
- "work-mechanism-bonus":"Thievery, Artisan, Lockpicking, ..."
+ "active":"Active",
+ "additional":"Additional",
+ "age":"Age",
+ "agility":"Agility",
+ "alphabets":"Alphabets",
+ "appraise":"Appraise",
+ "appraise-bonus":"Appraise, ...",
+ "armor":"Armor",
+ "armor-material-example":"Wood, Leather, Metal, ...",
+ "armor-type-example":"Helmet, Body, Vambrace, Greaves, Shield, ...",
+ "armor-value":"Armor value",
+ "armor-value-short":"AV",
+ "attribute+trait":"Attribute + Trait",
+ "aura":"Aura",
+ "base":"Base",
+ "body":"Body",
+ "body-short+constitution-short":"BOD+CO",
+ "body-short+strength-short":"BOD+ST",
+ "bonus":"Bonus",
+ "both-attack":"Both",
+ "character":"Character",
+ "character-name":"Character name",
+ "check":"Check",
+ "check-result":"Check result",
+ "check-value":"Check value",
+ "class":"Class",
+ "class-example":"Fighter, Scout, Healer, Wizard, Sorcerer, ...",
+ "climb":"Climb",
+ "climb-bonus":"Acrobat, Master Climber, ...",
+ "communicate":"Communicate",
+ "communicate-bonus":"Education, ...",
+ "constitution":"Constitution",
+ "cooldown":"Cooldown",
+ "culture":"Culture",
+ "culture-example":"Barbarians, Mountain Dwarves, Freelander, Kaiban, Wood Elves, Wild Elves, Desert Dwarves, Wyndlanders, Zasarian, ...",
+ "cultural-talents":"Cultural talents",
+ "current-hit-points":"Current hit points",
+ "current-mana-points":"Current mana points",
+ "date-of-birth":"Date of birth",
+ "decipher-script":"Decipher script",
+ "decipher-script-bonus":"Alertness, Education, ...",
+ "defense":"Defense",
+ "defy-poison":"Defy poison",
+ "defy-poison-bonus":"Endurance, …",
+ "dexterity":"Dexterity",
+ "disable-traps":"Disable traps",
+ "disable-traps-bonus":"Thievery, ...",
+ "distance":"Distance",
+ "duration":"Duration",
+ "edit-bonuses":"Edit bonuses",
+ "effect":"Effect",
+ "equipment":"Equipment",
+ "experience-points":"Experience points",
+ "experience-points-short":"EP",
+ "eye-color":"Eye color",
+ "feat-of-strength":"Feat of strength",
+ "feat-of-strength-bonus":"Brutal Blow, Devastating Strike, ...",
+ "flirt":"Flirt",
+ "flirt-bonus":"Charming, ...",
+ "gender":"Gender",
+ "generic":"Generic",
+ "generic-check":"Generic check",
+ "haggle":"Haggle",
+ "haggle-base":"MND+MAX(IN, AU)",
+ "haggle-bonus":"Charming, Rascal, ...",
+ "hair-color":"Hair color",
+ "hands":"Hands",
+ "hands-example":"1H = one-handed, 2H = two-handed, ...",
+ "character-height":"Height",
+ "hero-class":"Hero class",
+ "hero-class-example":"Berserker, Paladin, Weapon Master, Assassin, Ranger, Rogue, Cleric, Druid, Monk, Archmage, Battle Mage, Elementalist, Blood Mage, Demonologist, Necromancer, ...",
+ "hide":"Hide",
+ "hit-points":"Hit points",
+ "initiative":"Initiative",
+ "intellect":"Intellect",
+ "jump":"Jump",
+ "jump-bonus":"Acrobat, ...",
+ "knowledge":"Knowledge",
+ "knowledge-bonus":"Education, Expertise, ...",
+ "languages":"Languages",
+ "learned":"Learned",
+ "level":"Level",
+ "magic-bonus":"Magic bonus",
+ "magic-bonus-short":"MB",
+ "mana":"Mana",
+ "material":"Material",
+ "melee-attack":"Melee attack",
+ "mind":"Mind",
+ "mind-influencing-spell":"Mind-influencing spell",
+ "mind-short+aura-short":"MND+AU",
+ "mind-short+dexterity-short":"MND+DX",
+ "mind-short+intellect-short":"MND+IN",
+ "mind-short+intellect-short-or-eight":"MAX(MND+IN, 8)",
+ "miscellaneous":"Miscellaneous",
+ "mobility":"Mobility",
+ "mobility-short+agility-short":"MOB+AG",
+ "mobility-short+dexterity-short":"MOB+DX",
+ "mobility-short+strength-short":"MOB+ST",
+ "movement-rate":"Movement rate",
+ "normal-spell":"Normal spell",
+ "normal-spellcasting":"Spellcasting",
+ "notes":"Notes",
+ "of":"of",
+ "open-lock":"Open lock",
+ "open-lock-bonus":"Thievery, Lockpicking, ...",
+ "opponent-defense":"Opponent's defense",
+ "opponent-defense-short":"OD",
+ "other-abilities":"Other abilities",
+ "perception":"Perception",
+ "perception-bonus":"Thievery, Alertness, ...",
+ "pick-pocket":"Pick pocket",
+ "pick-pocket-bonus":"Thievery, Stealth, Diversion, Pickpocket, ...",
+ "place-of-birth":"Place of birth",
+ "player":"Player",
+ "player-name":"Player name",
+ "private-biography":"Private biography",
+ "progress-points":"Progress points",
+ "progress-points-short":"PP",
+ "public-biography":"Public biography",
+ "quantity":"Quantity",
+ "race":"Race",
+ "race-example":"Elf, Human, Dwarf, ...",
+ "racial-abilities":"Racial abilities",
+ "ranged-attack":"Ranged attack",
+ "read-tracks":"Read tracks",
+ "read-tracks-bonus":"Hunter, Alertness, ...",
+ "resist-disease":"Resist disease",
+ "resist-disease-bonus":"Endurance, …",
+ "ride":"Ride",
+ "ride-base":"MOB+MAX(AG, AU)",
+ "ride-bonus":"Riding, Mounted Archer, Beast Master, ...",
+ "search":"Search",
+ "search-bonus":"Thievery, Stealth, Alertness, ...",
+ "sneak":"Sneak",
+ "sneak-bonus":"Stealth, ...",
+ "special":"Special",
+ "special-behavior":"Special behavior",
+ "special-characteristics":"Special characteristics",
+ "spell":"Spell",
+ "spell-cooldown":"Cooldown",
+ "spell-distance":"Distance",
+ "spell-duration":"Duration",
+ "spell-modifier":"Spell modifier",
+ "spell-modifier-short":"SM",
+ "spell-type":"Normal spell, Targeted spell or Mind-influencing spell",
+ "start":"Start",
+ "start-fire":"Start fire",
+ "start-fire-bonus":"Hunter, ...",
+ "stealth-bonus":"Stealth, ...",
+ "strength":"Strength",
+ "swim":"Swim",
+ "swim-bonus":"Swim, ...",
+ "talent":"Talent",
+ "talent-points":"Talent points",
+ "talent-points-short":"TP",
+ "targeted-spell":"Targeted spell",
+ "targeted-spellcasting":"Targeted spellcasting",
+ "tier":"Tier",
+ "total":"Total",
+ "type":"Type",
+ "typical-checks":"Typical checks",
+ "unarmed":"Unarmed",
+ "wake-up":"Wake up",
+ "wake-up-bonus":"Lightning Reflexes, Alertness, ...",
+ "weapon":"Weapon",
+ "weapon-bonus":"Weapon bonus",
+ "weapon-bonus-short":"WB",
+ "weapon-type":"Melee attack or Ranged attack",
+ "weight":"Weight",
+ "where-carried":"Where carried?",
+ "work-mechanism":"Work mechanism",
+ "work-mechanism-base":"MND+MAX(DX, IN)",
+ "work-mechanism-bonus":"Thievery, Artisan, Lockpicking, ..."
}
\ No newline at end of file
diff --git a/Dungeonslayers-4/translations/de.json b/Dungeonslayers-4/translations/de.json
index 17df642c49..f40a82bfb4 100644
--- a/Dungeonslayers-4/translations/de.json
+++ b/Dungeonslayers-4/translations/de.json
@@ -1,21 +1,22 @@
{
"active":"Aktiv",
+ "additional":"Zusätzlich",
"age":"Alter",
"agility":"Bewegung",
- "alphabet":"Schrift",
- "appraise":"Schtzen",
- "appraise-bonus":"Beute schtzen, ",
- "armor":"Rstung",
- "armor-material-example":"Holz, Leder, Metall, ",
- "armor-type-example":"Helm, Krper, Armschienen, Beinschienen, Schild, ",
+ "alphabets":"Schriftzeichen",
+ "appraise":"Schätzen",
+ "appraise-bonus":"Beute schätzen, ...",
+ "armor":"RĂĽstung",
+ "armor-material-example":"Holz, Leder, Metall, ...",
+ "armor-type-example":"Helm, Körper, Armschienen, Beinschienen, Schild, ...",
"armor-value":"Panzerung",
"armor-value-short":"PA",
"attribute+trait":"Attribute + Eigenschaften",
"aura":"Aura",
"base":"Basis",
- "body":"Krper",
- "body-short+constitution-short":"KR+H",
- "body-short+strength-short":"KR+ST",
+ "body":"Körper",
+ "body-short+constitution-short":"KĂ–R+H",
+ "body-short+strength-short":"KĂ–R+ST",
"bonus":"Bonus",
"both-attack":"Beides",
"character":"Charakter",
@@ -24,26 +25,27 @@
"check-result":"Probenergebnis",
"check-value":"Probenwert",
"class":"Klasse",
- "class-example":"Krieger, Spher, Heiler, Zauberer, Schwarzmagier, ",
+ "class-example":"Krieger, Späher, Heiler, Zauberer, Schwarzmagier, ...",
"climb":"Klettern",
- "climb-bonus":"Akrobat, Kletterass, ",
- "communicate":"Verstndigen",
- "communicate-bonus":"Bildung, ",
- "constitution":"Hrte",
+ "climb-bonus":"Akrobat, Kletterass, ...",
+ "communicate":"Verständigen",
+ "communicate-bonus":"Bildung, ...",
+ "constitution":"Härte",
"cooldown":"Abklingzeit",
"culture":"Kultur",
- "culture-example":"Barbaren, Bergzwerge, Freilnder, Kaitaner, Waldelfen, Wildelfen, Wstenzwerge, Wyndlnder, Zasaren, ",
+ "culture-example":"Barbaren, Bergzwerge, Freiländer, Kaitaner, Waldelfen, Wildelfen, Wüstenzwerge, Wyndländer, Zasaren, ...",
+ "cultural-talents":"Kulturtalente",
"current-hit-points":"Aktuelle Lebenskraft",
"current-mana-points":"Aktuelles Mana",
"date-of-birth":"Geburtsdatum",
"decipher-script":"Inschrift entziffern",
- "decipher-script-bonus":"Wahrnehmung, Bildung, ",
+ "decipher-script-bonus":"Wahrnehmung, Bildung, ...",
"defense":"Abwehr",
"defy-poison":"Gift trotzen",
- "defy-poison-bonus":"Einstecker, ",
+ "defy-poison-bonus":"Einstecker, ...",
"dexterity":"Geschick",
- "disable-traps":"Fallen entschrfen",
- "disable-traps-bonus":"Diebeskunst, ",
+ "disable-traps":"Fallen entschärfen",
+ "disable-traps-bonus":"Diebeskunst, ...",
"distance":"Distanz",
"duration":"Dauer",
"edit-bonuses":"Boni bearbeiten",
@@ -53,30 +55,31 @@
"experience-points-short":"EP",
"eye-color":"Augenfarbe",
"feat-of-strength":"Kraftakt",
- "feat-of-strength-bonus":"Brutaler Hieb, Vernichtender Schlag, ",
+ "feat-of-strength-bonus":"Brutaler Hieb, Vernichtender Schlag, ...",
"flirt":"Flirten",
- "flirt-bonus":"Charmant, ",
+ "flirt-bonus":"Charmant, ...",
"gender":"Geschlecht",
"generic":"Generische",
"generic-check":"Generische Probe",
"haggle":"Feilschen",
"haggle-base":"GEI+MAX(VE, AU)",
- "haggle-bonus":"Charmant, Schlitzohr, ",
+ "haggle-bonus":"Charmant, Schlitzohr, ...",
"hair-color":"Haarfarbe",
- "hands":"Hnde",
- "hands-example":"1H = einhndig, 2H = zweihndig, ",
- "character-height":"Grsse",
+ "hands":"Hände",
+ "hands-example":"1H = einhändig, 2H = zweihändig, ...",
+ "character-height":"Grösse",
"hero-class":"Heldenklasse",
- "hero-class-example":"Berserker, Paladin, Waffenmeister, Attentter, Meisterdieb, Waldlufer, Druide, Kampfmnch, Kleriker, Elementarist, Erzmagier, Kriegszauberer, Blutmagier, Dmonologe, Nekromant, ",
+ "hero-class-example":"Berserker, Paladin, Waffenmeister, Attentäter, Meisterdieb, Waldläufer, Druide, Kampfmönch, Kleriker, Elementarist, Erzmagier, Kriegszauberer, Blutmagier, Dämonologe, Nekromant, ...",
"hide":"Verbergen",
"hit-points":"Lebenskraft",
"initiative":"Initiative",
"intellect":"Verstand",
"jump":"Springen",
- "jump-bonus":"Akrobat, ",
+ "jump-bonus":"Akrobat, ...",
"knowledge":"Wissen",
- "knowledge-bonus":"Bildung, Wissensgebiet, ",
- "language":"Sprache",
+ "knowledge-bonus":"Bildung, Wissensgebiet, ...",
+ "languages":"Sprachen",
+ "learned":"Gelernt",
"level":"Stufe",
"magic-bonus":"Magiebonus",
"magic-bonus-short":"MB",
@@ -90,7 +93,7 @@
"mind-short+intellect-short":"GEI+VE",
"mind-short+intellect-short-or-eight":"MAX(GEI+VE, 8)",
"miscellaneous":"Sonstiges",
- "mobility":"Agilitt",
+ "mobility":"Agilität",
"mobility-short+agility-short":"AGI+BE",
"mobility-short+dexterity-short":"AGI+GE",
"mobility-short+strength-short":"AGI+ST",
@@ -99,39 +102,39 @@
"normal-spellcasting":"Zaubern",
"notes":"Notizen",
"of":"von",
- "open-lock":"Schlsser ffnen",
- "open-lock-bonus":"Diebeskunst, Schlossknacker, ",
+ "open-lock":"Schlösser öffnen",
+ "open-lock-bonus":"Diebeskunst, Schlossknacker, ...",
"opponent-defense":"Gegnerabwehr",
"opponent-defense-short":"GA",
- "other-abilities":"Sonstige Fhigkeiten",
+ "other-abilities":"Sonstige Fähigkeiten",
"perception":"Bemerken",
- "perception-bonus":"Diebeskunst, Wahrnehmung, ",
+ "perception-bonus":"Diebeskunst, Wahrnehmung, ...",
"pick-pocket":"Taschendiebstahl",
- "pick-pocket-bonus":"Diebeskunst, Heimlichkeit, Kann ich mal vorbei?, Langfinger, ",
+ "pick-pocket-bonus":"Diebeskunst, Heimlichkeit, Kann ich mal vorbei?, Langfinger, ...",
"place-of-birth":"Geburtsort",
"player":"Spieler",
"player-name":"Spielername",
"private-biography":"Geheime Biographie",
"progress-points":"Lernpunkte",
"progress-points-short":"LP",
- "public-biography":"ffentliche Biographie",
+ "public-biography":"Ă–ffentliche Biographie",
"quantity":"Menge",
"quantity-short":"Menge",
"race":"Volk",
- "race-example":"Elf, Mensch, Zwerg, ",
- "racial-abilities":"Volksfhigkeiten",
+ "race-example":"Elf, Mensch, Zwerg, ...",
+ "racial-abilities":"Volksfähigkeiten",
"ranged-attack":"Schiessen",
"read-tracks":"Spuren lesen",
- "read-tracks-bonus":"Jger, Wahrnehmung, ",
+ "read-tracks-bonus":"Jäger, Wahrnehmung, ...",
"resist-disease":"Krankheit trotzen",
- "resist-disease-bonus":"Einstecker, ",
+ "resist-disease-bonus":"Einstecker, ...",
"ride":"Reiten",
"ride-base":"AGI+MAX(BE, AU)",
- "ride-bonus":"Reiten, Sattelschtze, Tiermeister, ",
+ "ride-bonus":"Reiten, SattelschĂĽtze, Tiermeister, ...",
"search":"Suchen",
- "search-bonus":"Diebeskunst, Heimlichkeit, Wahrnehmung, ",
+ "search-bonus":"Diebeskunst, Heimlichkeit, Wahrnehmung, ...",
"sneak":"Schleichen",
- "sneak-bonus":"Heimlichkeit, ",
+ "sneak-bonus":"Heimlichkeit, ...",
"special":"Besonderes",
"special-behavior":"Besonderes Verhalten",
"special-characteristics":"Besonderes Aussehen",
@@ -144,11 +147,11 @@
"spell-type":"Zauber, Zielzauber, Geistesbeeinflussender Zauber",
"start":"Start",
"start-fire":"Feuer machen",
- "start-fire-bonus":"Jger, ",
- "stealth-bonus":"Heimlichkeit, ",
- "strength":"Strke",
+ "start-fire-bonus":"Jäger, ...",
+ "stealth-bonus":"Heimlichkeit, ...",
+ "strength":"Stärke",
"swim":"Schwimmen",
- "swim-bonus":"Schwimmen, ",
+ "swim-bonus":"Schwimmen, ...",
"talent":"Talent",
"talent-points":"Talentpunkte",
"talent-points-short":"TP",
@@ -160,14 +163,14 @@
"typical-checks":"Typische Proben",
"unarmed":"Waffenlos",
"wake-up":"Erwachen",
- "wake-up-bonus":"Schnelle Reflexe, Wahrnehmung, ",
+ "wake-up-bonus":"Schnelle Reflexe, Wahrnehmung, ...",
"weapon":"Waffe",
"weapon-bonus":"Waffenbonus",
"weapon-bonus-short":"WB",
"weapon-type":"Schlagen oder Schiessen",
"weight":"Gewicht",
"where-carried":"Wo gelagert?",
- "work-mechanism":"Mechanismus ffnen",
+ "work-mechanism":"Mechanismus öffnen",
"work-mechanism-base":"GEI+MAX(GE, VE)",
- "work-mechanism-bonus":"Diebeskunst, Handwerk, Schlossknacker, "
+ "work-mechanism-bonus":"Diebeskunst, Handwerk, Schlossknacker, ..."
}
\ No newline at end of file
diff --git a/Dungeonslayers-4/translations/en.json b/Dungeonslayers-4/translations/en.json
index 56a3ec209c..a18e3734da 100644
--- a/Dungeonslayers-4/translations/en.json
+++ b/Dungeonslayers-4/translations/en.json
@@ -1,8 +1,9 @@
{
"active":"Active",
+ "additional":"Additional",
"age":"Age",
"agility":"Agility",
- "alphabet":"Alphabet",
+ "alphabets":"Alphabets",
"appraise":"Appraise",
"appraise-bonus":"Appraise, ...",
"armor":"Armor",
@@ -33,6 +34,7 @@
"cooldown":"Cooldown",
"culture":"Culture",
"culture-example":"Barbarians, Mountain Dwarves, Freelander, Kaiban, Wood Elves, Wild Elves, Desert Dwarves, Wyndlanders, Zasarian, ...",
+ "cultural-talents":"Cultural talents",
"current-hit-points":"Current hit points",
"current-mana-points":"Current mana points",
"date-of-birth":"Date of birth",
@@ -76,7 +78,8 @@
"jump-bonus":"Acrobat, ...",
"knowledge":"Knowledge",
"knowledge-bonus":"Education, Expertise, ...",
- "language":"Language",
+ "languages":"Languages",
+ "learned":"Learned",
"level":"Level",
"magic-bonus":"Magic bonus",
"magic-bonus-short":"MB",
@@ -116,7 +119,6 @@
"progress-points-short":"PP",
"public-biography":"Public biography",
"quantity":"Quantity",
- "quantity-short":"Qty",
"race":"Race",
"race-example":"Elf, Human, Dwarf, ...",
"racial-abilities":"Racial abilities",