diff --git a/Aborea/AutoCalc.js b/Aborea/AutoCalc.js new file mode 100644 index 0000000000..4c15d66b81 --- /dev/null +++ b/Aborea/AutoCalc.js @@ -0,0 +1,654 @@ +// Fix buggy issues, thanks Steve D., https://app.roll20.net/forum/post/1462045/help-with-setting-attribute-values +createObjFix = function() { + //Create Object Fix - Firebase.set failed + + var obj = createObj.apply(this, arguments); + var id = obj.id; + var characterID = obj.get('characterid'); + var type = obj.get('type'); + + if (obj && !obj.fbpath && obj.changed) { + obj.fbpath = obj.changed._fbpath.replace(/([^\/]*\/){4}/, "/"); + } else if (obj && !obj.changed && type == 'attribute') { + //fix for dynamic attribute after character created in game + // /char-attribs/char/characterID/attributeID + obj.fbpath = '/char-attribs/char/'+ characterID +'/'+ id; + } + return obj; +} + + + +// Addes don't count as changes so we need to handle the first change here +on("add:attribute", function(obj) { + var attributeName = obj.get("name"); + + if (attributeName == "str") { + setStrBonus(obj.get('_characterid')); + } + if (attributeName == "dex") { + setDexBonus(obj.get('_characterid')); + } + if (attributeName == "con") { + setConBonus(obj.get('_characterid')); + } + if (attributeName == "int") { + setIntBonus(obj.get('_characterid')); + } + if (attributeName == "cha") { + setChaBonus(obj.get('_characterid')); + } + if (attributeName == "ep") { + setLevel(obj.get('_characterid')); + } + if (attributeName == "occupacion") { + setTPclassbon(obj.get('_characterid')); + setMgEntAttr(obj.get('_characterid')); + setGezSprAB(obj.get('_characterid')); + setThiefArm(obj.get('_characterid')); + } + if (attributeName == "race") { + setTPracebon(obj.get('_characterid')); + setRaceArm(obj.get('_characterid')); + } +/* if (attributeName == "dicesystem") { + setTPcurrent(obj.get('_characterid')); + } +*/ + if (attributeName == "armorgiven") { + setNoArm(obj.get('_characterid')); + } + +// if (attributeName == "athletik") { +// setAthlArm(obj.get('_characterid')); +// } +/* + if (attributeName == "repeating_armor_$0_armor_checkbox" + || attributeName == "repeating_armor_$1_armor_checkbox" + || attributeName == "repeating_armor_$2_armor_checkbox" + || attributeName == "repeating_armor_$3_armor_checkbox" + || attributeName == "repeating_armor_$4_armor_checkbox" + || attributeName == "repeating_armor_$5_armor_checkbox" + || attributeName == "repeating_armor_$6_armor_checkbox" + || attributeName == "repeating_armor_$7_armor_checkbox" + || attributeName == "repeating_armor_$8_armor_checkbox" + || attributeName == "repeating_armor_$9_armor_checkbox" + || attributeName == "repeating_armor_$10_armor_checkbox" + || attributeName == "repeating_armor_$11_armor_checkbox" + || attributeName == "repeating_armor_$12_armor_checkbox" + || attributeName == "repeating_armor_$13_armor_checkbox" + || attributeName == "repeating_armor_$14_armor_checkbox" + || attributeName == "repeating_armor_$15_armor_checkbox" + || attributeName == "repeating_armor_$16_armor_checkbox" + || attributeName == "repeating_armor_$17_armor_checkbox" + || attributeName == "repeating_armor_$18_armor_checkbox" + || attributeName == "repeating_armor_$19_armor_checkbox" + ) { + setNoArm(obj.get('_characterid')); + } +*/ +}); + +// Handle actual changes +on("change:attribute", function(obj) { + var attributeName = obj.get("name"); + + if (attributeName == "str") { + setStrBonus(obj.get('_characterid')); + } + if (attributeName == "dex") { + setDexBonus(obj.get('_characterid')); + } + if (attributeName == "con") { + setConBonus(obj.get('_characterid')); + } + if (attributeName == "int") { + setIntBonus(obj.get('_characterid')); + } + if (attributeName == "cha") { + setChaBonus(obj.get('_characterid')); + } + if (attributeName == "ep") { + setLevel(obj.get('_characterid')); + } + if (attributeName == "occupacion") { + setTPclassbon(obj.get('_characterid')); + setMgEntAttr(obj.get('_characterid')); + setGezSprAB(obj.get('_characterid')); + setThiefArm(obj.get('_characterid')); + } + if (attributeName == "race") { + setTPracebon(obj.get('_characterid')); + setRaceArm(obj.get('_characterid')); + } + if (attributeName == "dicesystem") { + setTPcurrent(obj.get('_characterid')); + } + if (attributeName == "armorgiven") { + setNoArm(obj.get('_characterid')); + } + +// if (attributeName == "athletik") { +// setAthlArm(obj.get('_characterid')); +// } + +/* + if (attributeName == "repeating_armor_$0_armor_checkbox" + || attributeName == "repeating_armor_$1_armor_checkbox" + || attributeName == "repeating_armor_$2_armor_checkbox" + || attributeName == "repeating_armor_$3_armor_checkbox" + || attributeName == "repeating_armor_$4_armor_checkbox" + || attributeName == "repeating_armor_$5_armor_checkbox" + || attributeName == "repeating_armor_$6_armor_checkbox" + || attributeName == "repeating_armor_$7_armor_checkbox" + || attributeName == "repeating_armor_$8_armor_checkbox" + || attributeName == "repeating_armor_$9_armor_checkbox" + || attributeName == "repeating_armor_$10_armor_checkbox" + || attributeName == "repeating_armor_$11_armor_checkbox" + || attributeName == "repeating_armor_$12_armor_checkbox" + || attributeName == "repeating_armor_$13_armor_checkbox" + || attributeName == "repeating_armor_$14_armor_checkbox" + || attributeName == "repeating_armor_$15_armor_checkbox" + || attributeName == "repeating_armor_$16_armor_checkbox" + || attributeName == "repeating_armor_$17_armor_checkbox" + || attributeName == "repeating_armor_$18_armor_checkbox" + || attributeName == "repeating_armor_$19_armor_checkbox" + ) { + setNoArm(obj.get('_characterid')); + } +*/ +}); + +function setStrBonus(characterID) { + var strBonus = findObjs({_type: 'attribute', _characterid: characterID, name: 'strbon'})[0]; + if (! strBonus) { + var strBonus = createObjFix('attribute', { + name: 'strbon', + characterid: characterID, + current: '0' + }); + } + var str = parseInt(getAttrByName(characterID, "str")); + + + if (str >= 14) { + strBonus.set({current: '+5'}); + } else if (str >= 12) { + strBonus.set({current: '+4'}); + } else if (str >= 10) { + strBonus.set({current: '+3'}); + } else if (str >= 8) { + strBonus.set({current: '+2'}); + } else if (str >= 6) { + strBonus.set({current: '+1'}); + } else if (str >= 5) { + strBonus.set({current: '+0'}); + } else if (str >= 3) { + strBonus.set({current: '-1'}); + } else if (str >= 2) { + strBonus.set({current: '-2'}); + } else if (str >= 1) { + strBonus.set({current: '-3'}); + } else { + strBonus.set({current: 'X'}); + } +} + +function setDexBonus(characterID) { + var dexBonus = findObjs({_type: 'attribute', _characterid: characterID, name: 'dexbon'})[0]; + if (! dexBonus) { + var dexBonus = createObjFix('attribute', { + name: 'dexbon', + characterid: characterID, + current: '0' + }); + } + var dex = parseInt(getAttrByName(characterID, "dex")); + + if (dex >= 14) { + dexBonus.set({current: '+5'}); + } else if (dex >= 12) { + dexBonus.set({current: '+4'}); + } else if (dex >= 10) { + dexBonus.set({current: '+3'}); + } else if (dex >= 8) { + dexBonus.set({current: '+2'}); + } else if (dex >= 6) { + dexBonus.set({current: '+1'}); + } else if (dex >= 5) { + dexBonus.set({current: '+0'}); + } else if (dex >= 3) { + dexBonus.set({current: '-1'}); + } else if (dex >= 2) { + dexBonus.set({current: '-2'}); + } else if (dex >= 1) { + dexBonus.set({current: '-3'}); + } else { + dexBonus.set({current: 'X'}); + } +} + +function setConBonus(characterID) { + var conBonus = findObjs({_type: 'attribute', _characterid: characterID, name: 'conbon'})[0]; + if (! conBonus) { + var conBonus = createObjFix('attribute', { + name: 'conbon', + characterid: characterID, + current: '0' + }); + } + var con = parseInt(getAttrByName(characterID, "con")); + + if (con >= 14) { + conBonus.set({current: '+5'}); + } else if (con >= 12) { + conBonus.set({current: '+4'}); + } else if (con >= 10) { + conBonus.set({current: '+3'}); + } else if (con >= 8) { + conBonus.set({current: '+2'}); + } else if (con >= 6) { + conBonus.set({current: '+1'}); + } else if (con >= 5) { + conBonus.set({current: '+0'}); + } else if (con >= 3) { + conBonus.set({current: '-1'}); + } else if (con >= 2) { + conBonus.set({current: '-2'}); + } else if (con >= 1) { + conBonus.set({current: '-3'}); + } else { + conBonus.set({current: 'X'}); + } +} + +function setIntBonus(characterID) { + var intBonus = findObjs({_type: 'attribute', _characterid: characterID, name: 'intbon'})[0]; + if (! intBonus) { + var intBonus = createObjFix('attribute', { + name: 'intbon', + characterid: characterID, + current: '0' + }); + } + var int = parseInt(getAttrByName(characterID, "int")); + + if (int >= 14) { + intBonus.set({current: '+5'}); + } else if (int >= 12) { + intBonus.set({current: '+4'}); + } else if (int >= 10) { + intBonus.set({current: '+3'}); + } else if (int >= 8) { + intBonus.set({current: '+2'}); + } else if (int >= 6) { + intBonus.set({current: '+1'}); + } else if (int >= 5) { + intBonus.set({current: '+0'}); + } else if (int >= 3) { + intBonus.set({current: '-1'}); + } else if (int >= 2) { + intBonus.set({current: '-2'}); + } else if (int >= 1) { + intBonus.set({current: '-3'}); + } else { + intBonus.set({current: 'X'}); + } +} + +function setChaBonus(characterID) { + var chaBonus = findObjs({_type: 'attribute', _characterid: characterID, name: 'chabon'})[0]; + if (! chaBonus) { + var chaBonus = createObjFix('attribute', { + name: 'chabon', + characterid: characterID, + current: '0' + }); + } + var cha = parseInt(getAttrByName(characterID, "cha")); + + if (cha >= 14) { + chaBonus.set({current: '+5'}); + } else if (cha >= 12) { + chaBonus.set({current: '+4'}); + } else if (cha >= 10) { + chaBonus.set({current: '+3'}); + } else if (cha >= 8) { + chaBonus.set({current: '+2'}); + } else if (cha >= 6) { + chaBonus.set({current: '+1'}); + } else if (cha >= 5) { + chaBonus.set({current: '+0'}); + } else if (cha >= 3) { + chaBonus.set({current: '-1'}); + } else if (cha >= 2) { + chaBonus.set({current: '-2'}); + } else if (cha >= 1) { + chaBonus.set({current: '-3'}); + } else { + chaBonus.set({current: 'X'}); + } +} + + +function setLevel(characterID) { + var Level = findObjs({_type: 'attribute', _characterid: characterID, name: 'lvl'})[0]; + if (! Level) { + var Level = createObjFix('attribute', { + name: 'lvl', + characterid: characterID, + current: '0' + }); + } + var ep = parseInt(getAttrByName(characterID, "ep")); + + if (ep >= 208000) { + Level.set({current: '20 (LC)'}); + } else if (ep >= 188000) { + Level.set({current: '19'}); + } else if (ep >= 169000) { + Level.set({current: '18'}); + } else if (ep >= 151000) { + Level.set({current: '17'}); + } else if (ep >= 134000) { + Level.set({current: '16'}); + } else if (ep >= 118000) { + Level.set({current: '15'}); + } else if (ep >= 103000) { + Level.set({current: '14'}); + } else if (ep >= 89000) { + Level.set({current: '13'}); + } else if (ep >= 76000) { + Level.set({current: '12'}); + } else if (ep >= 64000) { + Level.set({current: '11'}); + } else if (ep >= 53000) { + Level.set({current: '10'}); + } else if (ep >= 43000) { + Level.set({current: '9'}); + } else if (ep >= 34000) { + Level.set({current: '8'}); + } else if (ep >= 26000) { + Level.set({current: '7'}); + } else if (ep >= 19000) { + Level.set({current: '6'}); + } else if (ep >= 13000) { + Level.set({current: '5'}); + } else if (ep >= 8000) { + Level.set({current: '4'}); + } else if (ep >= 4000) { + Level.set({current: '3'}); + } else if (ep >= 1000) { + Level.set({current: '2'}); + } else { + Level.set({current: '1'}); + } +} + +function setTPracebon(characterID) { + var Rassenbonus = findObjs({_type: 'attribute', _characterid: characterID, name: 'tpmax_racebon'})[0]; + if (! Rassenbonus) { + var Rassenbonus = createObjFix('attribute', { + name: 'tpmax_racebon', + characterid: characterID, + current: '0' + }); + } + var Volk = parseInt(getAttrByName(characterID, "race")); + + if (Volk == 3) { + Rassenbonus.set({current: '2'}); + } else { + Rassenbonus.set({current: '0'}); + } +} + + +function setTPclassbon(characterID) { + var Klassenbonus = findObjs({_type: 'attribute', _characterid: characterID, name: 'tpmax_classbon'})[0]; + if (! Klassenbonus) { + var Klassenbonus = createObjFix('attribute', { + name: 'tpmax_classbon', + characterid: characterID, + current: '0' + }); + } + var Beruf = parseInt(getAttrByName(characterID, "occupacion")); + + if (Beruf == 3) { + Klassenbonus.set({current: '10'}); + } else if (Beruf == 4) { + Klassenbonus.set({current: '8'}); + } else if (Beruf == 6) { + Klassenbonus.set({current: '8'}); + } else if (Beruf == 7) { + Klassenbonus.set({current: '4'}); + } else { + Klassenbonus.set({current: '6'}); + } +} + + +function setMgEntAttr(characterID) { + var MaEntAttrBonus = findObjs({_type: 'attribute', _characterid: characterID, name: 'magie_entwickeln_attrbon'})[0]; + if (! MaEntAttrBonus) { + var MaEntAttrBonus = createObjFix('attribute', { + name: 'magie_entwickeln_attrbon', + characterid: characterID, + current: '0' + }); + } + var Beruf = parseInt(getAttrByName(characterID, "occupacion")); + + if (Beruf == 1) { + MaEntAttrBonus.set({current: '@{chabon}'}); + } else if (Beruf == 4) { + MaEntAttrBonus.set({current: '@{chabon}'}); + } else if (Beruf == 5) { + MaEntAttrBonus.set({current: '@{chabon}'}); + } else { + MaEntAttrBonus.set({current: '@{intbon}'}); + } +} + + +function setGezSprAB(characterID) { + var GezSprAttrBonus = findObjs({_type: 'attribute', _characterid: characterID, name: 'gezielte_sprüche_attrbon'})[0]; + if (! GezSprAttrBonus) { + var GezSprAttrBonus = createObjFix('attribute', { + name: 'gezielte_sprüche_attrbon', + characterid: characterID, + current: '0' + }); + } + var Beruf = parseInt(getAttrByName(characterID, "occupacion")); + + if (Beruf == 1) { + GezSprAttrBonus.set({current: '@{chabon}'}); + } else if (Beruf == 4) { + GezSprAttrBonus.set({current: '@{chabon}'}); + } else if (Beruf == 5) { + GezSprAttrBonus.set({current: '@{chabon}'}); + } else { + GezSprAttrBonus.set({current: '@{intbon}'}); + } +} + + +function setRaceArm(characterID) { + var RaceArmor = findObjs({_type: 'attribute', _characterid: characterID, name: 'armor_racebool'})[0]; + if (! RaceArmor) { + var RaceArmor = createObjFix('attribute', { + name: 'armor_racebool', + characterid: characterID, + current: '0' + }); + } + var Volk = parseInt(getAttrByName(characterID, "race")); + + if (Volk >= 3) { + RaceArmor.set({current: '1'}); + } else { + RaceArmor.set({current: '0'}); + } +} + + + + +function setThiefArm(characterID) { + var ThiefArmor = findObjs({_type: 'attribute', _characterid: characterID, name: 'armor_thiefbool'})[0]; + if (! ThiefArmor) { + var ThiefArmor = createObjFix('attribute', { + name: 'armor_thiefbool', + characterid: characterID, + current: '0' + }); + } + var Beruf = parseInt(getAttrByName(characterID, "occupacion")); + + if (Beruf == 2) { + ThiefArmor.set({current: '1'}); + } else { + ThiefArmor.set({current: '0'}); + } +} + +function setNoArm(characterID) { + var NoArmor = findObjs({_type: 'attribute', _characterid: characterID, name: 'noarmor_thief'})[0]; + if (! NoArmor) { + var NoArmor = createObjFix('attribute', { + name: 'noarmor_thief', + characterid: characterID, + current: '0' + }); + } + + + var getrRüst = parseInt(getAttrByName(characterID, "armorgiven")); + + + if (getrRüst == 0) { + NoArmor.set({current: '1'}); + } else { + NoArmor.set({current: '0'}); + } +} + +/* +function setAthlArm(characterID) { + var AthlArmor = findObjs({_type: 'attribute', _characterid: characterID, name: 'athletik_bool'})[0]; + if (! AthlArmor) { + var AthlArmor = createObjFix('attribute', { + name: 'athletik_bool', + characterid: characterID, + current: '0' + }); + } + + + var aktAthletik = parseInt(getAttrByName(characterID, "athletik")); + + + if (aktAthletik <= 4) { + AthlArmor.set({current: '1'}); + } else { + AthlArmor.set({current: '0'}); + } +} +*/ +/* +function setNoArm(characterID) { + var NoArmor = findObjs({_type: 'attribute', _characterid: characterID, name: 'noarmor_thief'})[0]; + if (! NoArmor) { + var NoArmor = createObjFix('attribute', { + name: 'noarmor_thief', + characterid: characterID, + current: '0' + }); + } + + + var Armor_0_checked = parseInt(getAttrByName(characterID, "repeating_armor_$0_armor_checkbox")); + var Armor_1_checked = parseInt(getAttrByName(characterID, "repeating_armor_$1_armor_checkbox")); + var Armor_2_checked = parseInt(getAttrByName(characterID, "repeating_armor_$2_armor_checkbox")); + var Armor_3_checked = parseInt(getAttrByName(characterID, "repeating_armor_$3_armor_checkbox")); + var Armor_4_checked = parseInt(getAttrByName(characterID, "repeating_armor_$4_armor_checkbox")); + var Armor_5_checked = parseInt(getAttrByName(characterID, "repeating_armor_$5_armor_checkbox")); + var Armor_6_checked = parseInt(getAttrByName(characterID, "repeating_armor_$6_armor_checkbox")); + var Armor_7_checked = parseInt(getAttrByName(characterID, "repeating_armor_$7_armor_checkbox")); + var Armor_8_checked = parseInt(getAttrByName(characterID, "repeating_armor_$8_armor_checkbox")); + var Armor_9_checked = parseInt(getAttrByName(characterID, "repeating_armor_$9_armor_checkbox")); + var Armor_10_checked = parseInt(getAttrByName(characterID, "repeating_armor_$10_armor_checkbox")); + var Armor_11_checked = parseInt(getAttrByName(characterID, "repeating_armor_$11_armor_checkbox")); + var Armor_12_checked = parseInt(getAttrByName(characterID, "repeating_armor_$12_armor_checkbox")); + var Armor_13_checked = parseInt(getAttrByName(characterID, "repeating_armor_$13_armor_checkbox")); + var Armor_14_checked = parseInt(getAttrByName(characterID, "repeating_armor_$14_armor_checkbox")); + var Armor_15_checked = parseInt(getAttrByName(characterID, "repeating_armor_$15_armor_checkbox")); + var Armor_16_checked = parseInt(getAttrByName(characterID, "repeating_armor_$16_armor_checkbox")); + var Armor_17_checked = parseInt(getAttrByName(characterID, "repeating_armor_$17_armor_checkbox")); + var Armor_18_checked = parseInt(getAttrByName(characterID, "repeating_armor_$18_armor_checkbox")); + var Armor_19_checked = parseInt(getAttrByName(characterID, "repeating_armor_$19_armor_checkbox")); + + var Armor_0_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$0_armor_bon")); + var Armor_1_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$1_armor_bon")); + var Armor_2_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$2_armor_bon")); + var Armor_3_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$3_armor_bon")); + var Armor_4_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$4_armor_bon")); + var Armor_5_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$5_armor_bon")); + var Armor_6_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$6_armor_bon")); + var Armor_7_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$7_armor_bon")); + var Armor_8_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$8_armor_bon")); + var Armor_9_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$9_armor_bon")); + var Armor_10_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$10_armor_bon")); + var Armor_11_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$11_armor_bon")); + var Armor_12_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$12_armor_bon")); + var Armor_13_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$13_armor_bon")); + var Armor_14_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$14_armor_bon")); + var Armor_15_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$15_armor_bon")); + var Armor_16_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$16_armor_bon")); + var Armor_17_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$17_armor_bon")); + var Armor_18_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$18_armor_bon")); + var Armor_19_Bonus = parseInt(getAttrByName(characterID, "repeating_armor_$19_armor_bon")); + + var getrRüst = Armor_0_checked*Armor_0_Bonus+Armor_1_checked*Armor_1_Bonus+Armor_2_checked*Armor_2_Bonus+Armor_3_checked*Armor_3_Bonus+Armor_4_checked*Armor_4_Bonus+Armor_5_checked*Armor_5_Bonus+Armor_6_checked*Armor_6_Bonus+Armor_7_checked*Armor_7_Bonus+Armor_8_checked*Armor_8_Bonus+Armor_9_checked*Armor_9_Bonus+Armor_10_checked*Armor_10_Bonus+Armor_11_checked*Armor_11_Bonus+Armor_12_checked*Armor_12_Bonus+Armor_13_checked*Armor_13_Bonus+Armor_14_checked*Armor_14_Bonus+Armor_15_checked*Armor_15_Bonus+Armor_16_checked*Armor_16_Bonus+Armor_17_checked*Armor_17_Bonus+Armor_18_checked*Armor_18_Bonus+Armor_19_checked*Armor_19_Bonus; + + + + + if (getrRüst == 0) { + NoArmor.set({current: '1'}); + } else { + NoArmor.set({current: '0'}); + } +} +*/ + +function setTPcurrent(characterID) { + var aktTreffer = findObjs({_type: 'attribute', _characterid: characterID, name: 'Trefferpunkte'})[0]; + if (! aktTreffer) { + var aktTreffer = createObjFix('attribute', { + name: 'Trefferpunkte', + characterid: characterID, + current: '0' + }); + } + var WurfSystem = parseInt(getAttrByName(characterID, "dicesystem")); + var VorTreffer = parseInt(getAttrByName(characterID, "Trefferpunkte")); + var ABTreffer = VorTreffer/3; + var RMTreffer = VorTreffer*3; + + + if (WurfSystem == 10) { + aktTreffer.set({current: ABTreffer}); + } else { + aktTreffer.set({current: RMTreffer}); + } +} + + + + + + + diff --git a/Aborea/aborea.css b/Aborea/aborea.css new file mode 100644 index 0000000000..de87c9d5bc --- /dev/null +++ b/Aborea/aborea.css @@ -0,0 +1,482 @@ +@font-face { + font-family: 'GNUTypewriter'; + src: url('http://openfontlibrary.org/assets/fonts/gnutypewriter/8a7cb57723df9125503083ed59e7a11c/e47a6e209a23b19c08d3d6e6a6db50d7/GNUTypewriterStandard.otf') format('opentype'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'GNUTypewriter'; + src: url('http://openfontlibrary.org/assets/fonts/gnutypewriter/8a7cb57723df9125503083ed59e7a11c/718af758a8ac10cf79fcc33420aacc3e/GNUTypewriterStandard.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +input[type=number]::-webkit-inner-spin-button, +input[type=number]::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; +} + +select { + margin: 0; + padding: 0; +} + +h4.sheet-section-head { + background-color: red; +/* border: 1px solid black;*/ + height: 36px; + font-size: 140%; + color: white; +/* margin-top: 10px;*/ +/* vertical-align: center;*/ + line-height: 36px; + text-align: center; +/* font-family: 'GNUTypewriter';*/ + font-weight: bold; + font-style: normal; +} + +h4.sheet-section-slogan { + background-color: white; +/* border: 1px solid black;*/ + height: 36px; + font-size: 140%; + color: DarkGoldenRod; +/* margin-top: 10px;*/ +/* vertical-align: center;*/ +/* line-height: 36px;*/ + text-align: center; + font-family: 'GNUTypewriter'; + font-weight: normal; + font-style: normal; +} + +div.sheet-section { + border: 1px solid gray; + padding: 1%; + margin: 0 0 1% 0; +} + +div.sheet-sectiop { + border: 0px solid gray; + padding: 1%; + margin: 0 0 1% 0; +} + +table td.sheet-attr { + width: 13.33%; + height: 40px; +} + +table td.sheet-attr-label { + height: 40px; + font-size: 120%; + text-align: left; +} + +input[type="text"].sheet-attr-input { + width: 40px; + height: 40px; + font-size: 120%; + text-align: center; +} + +input[type="text"].sheet-spell-input { + background-color: red; + border: 0px solid red; + height: 30px; + font-size: 100%; + color: white; +/* margin-top: 10px;*/ +/* vertical-align: center;*/ + line-height: 30px; + text-align: center; +/* font-family: 'GNUTypewriter';*/ + font-weight: bold; + font-style: normal; +} + +input[type="number"].sheet-rs-output { + width: 20px; + height: 15px; + line-height: 1px; + font-size: 50%; + text-align: center; +} + + +table td.sheet-attr-roll { + height: 40px; + text-align: center; +} +/* Button Hintergrund*/ +button[type_"roll"] { + background-color:red; +} + +input.sheet-secondary-attr-input { + width: 100%; + text-align: center; +} + +input[type="number"].sheet-secondary-attr-input { + width: 100%; + text-align: center; +} + +input.sheet-tertiary-attr-input { + height: 48px; + font-size: 200%; + font-weight: bold; + font-style: normal; + width: 100%; + text-align: center; +} + +input[type="number"].sheet-tertiary-attr-input { + height: 48px; + font-size: 200%; + font-weight: bold; + font-style: normal; + width: 100%; + text-align: center; +} + +input.sheet-quartiary-attr-input { + height: 40px; + font-size: 120%; + font-weight: bold; + font-style: normal; + width: 100%; + text-align: center; +} + +input[type="number"].sheet-quartiary-attr-input { + height: 40px; + font-size: 120%; + font-weight: bold; + font-style: normal; + width: 100%; + text-align: center; +} + +table td.sheet-skill-label { + width: 100%; +} + +input[type="text"].sheet-skill-input { + width: 30px; + text-align: center; +} + +input[type="number"].sheet-skill-input { + width: 30px; + text-align: center; +} + +select.sheet-skill-input { + width: 50px; + text-align: center; +} + +texarea.sheet-backstory-box { + height: 75px; +} + +/* For Tabs*/ +.sheet-desc-show:not(:checked)~.sheet-desc, +.sheet-macro-text-show:not(:checked)~.sheet-macro-text, +.sheet-sect-show:not(:checked)~.sheet-sect { + display:none; +} + + + +/* für repeated Buttons */ +.sheet-table { + display:table; + width:100%; +} + +.sheet-small-label { + font-size: 85%!important; + font-style: italic; + font-weight: bold; +} + +.sheet-table-name { + display:table-caption; + text-align:center; + font-weight:bold; + color:white; + background-color:black; + width:100%; +} + +.sheet-table-header { + display:table-cell; + text-align:center; + font-style: italic; + font-weight:bold; + vertical-align:bottom; + background-color:lightgray; +} + +.sheet-table-data { + display:table-cell; + vertical-align:middle; +} + +.sheet-center { + text-align:center; +} + +.sheet-left { + text-align:left; +} + +.sheet-right { + text-align:right; +} + +.sheet-table-row { + display:table-row; + vertical-align:bottom; + width:100%; +} + +.sheet-table-row-name { + display:table-cell; + text-align:center; + vertical-align:middle; + color:white; + background-color:black; + font-weight:bold; +} + +.sheet-label { + font-weight:bold; + text-align:center; +} + +input[type="text"], input[type="number"] { + background-color: transparent; + border-style: solid; + border-color: black; + border-width: 0px 0px 2px 0px; +} + +input[type="text"]:disabled, input[type="number"]:disabled { + background-color: ghostwhite; + color: black; + border-style: solid; + border-color: black; + border-width: 0px 0px 0px 0px; +} + +input[type="text"], select { + width:100%; + margin:0; +} + +/* hier Ende f- repeated Buttons*/ + + +div[class^="sheet-sections"] { + visibility: hidden; + opacity: 0; + max-height:0; + overflow: hidden; +} + +div[class^="sheet-sectioh"] { + visibility: hidden; + opacity: 0; + max-height:0; + overflow: hidden; +} + +div[class^="sheet-npc"] { + visibility: hidden; + opacity: 0; + max-height:0; + overflow: hidden; +} + +div[class^="sheet-feats"] { + visibility: hidden; + opacity: 0; + max-height:0; + overflow: hidden; +} + +input.sheet-tab99:checked ~ div[class^="sheet-sections"] { + max-height: 999999px; + visibility: visible; + opacity: 1; + transition: opacity 0.5s linear 0s; + overflow: auto; +} + +input.sheet-tab { + width: 78px; + height: 20px; + cursor: pointer; + position: relative; + opacity: 0; + z-index: 9999; +} + +input.sheet-tab-npc { + width: 20px; + height: 20px; + cursor: pointer; + position: relative; + opacity: 0; + z-index: 9999; +} + +input.sheet-tab-feats { + width: 78px; + height: 20px; + cursor: pointer; + position: relative; + opacity: 0; + z-index: 9999; +} + +span.sheet-tab { + text-align: center; + display: inline-block; + font-size: 12px; + background: red; + color: white; + font-weight: bold; + + width: 78px; + height: 20px; + cursor: pointer; + position: relative; + margin-left: -75px; +} + +span.sheet-tab-npc { + text-align: center; + display: inline-block; + font-size: 10px; + background: white; + color: white; + font-weight: bold; + + width: 20px; + height: 20px; + cursor: pointer; + position: relative; + margin-left: -5px; +} + +span.sheet-tab-feats { + text-align: center; + display: inline-block; + font-size: 10px; + background: red; + color: red; + font-weight: bold; + + width: 78px; + height: 20px; + cursor: pointer; + position: relative; + margin-left: -75px; +} + +input.sheet-tab::before { + content: attr(title); + text-align: center; + display: inline-block; + width: 100%; + height: 100%; + + background: red; + color: white; + font-weight: bold; +} + +input.sheet-tab:checked::before { + background:white; + color:black; +} + +input.sheet-tab1:checked ~ div.sheet-sections-core, +input.sheet-tab10:checked ~ div.sheet-sections-class, +input.sheet-tab4:checked ~ div.sheet-sections-defenses, +input.sheet-tab3:checked ~ div.sheet-sections-attacks, +input.sheet-tab2:checked ~ div.sheet-sections-skills, +input.sheet-tab8:checked ~ div.sheet-sectioh-feats, +input.sheet-tab6:checked ~ div.sheet-sections-inventory, +input.sheet-tab5:checked ~ div.sheet-sections-spells, +input.sheet-tab7:checked ~ div.sheet-sections-details, +input.sheet-tab9:checked ~ div.sheet-sectioh-npc { + max-height: 999999px; + visibility: visible; + opacity: 1; + transition: opacity 0.5s linear 0s; + overflow: hidden; +} + +input.sheet-tab1:checked + span.sheet-tab1, +input.sheet-tab2:checked + span.sheet-tab2, +input.sheet-tab3:checked + span.sheet-tab3, +input.sheet-tab4:checked + span.sheet-tab4, +input.sheet-tab5:checked + span.sheet-tab5, +input.sheet-tab6:checked + span.sheet-tab6, +input.sheet-tab7:checked + span.sheet-tab7, +input.sheet-tab8:checked + span.sheet-tab8, +input.sheet-tab9:checked + span.sheet-tab9, +input.sheet-tab99:checked + span.sheet-tab99, +input.sheet-tab10:checked + span.sheet-tab10 { + background: white; + color: black; +} + +.sheet-text-button { + font-size:100%; + color:white; + background-color:black; + border:0px; +} + +button, +button:hover, +button:active +{ + background-image: none; +} + +input[type="checkbox"] + span::before +{ + margin-right: 4px; + line-height: 14px; + text-align: center; + display: inline-block; + vertical-align: middle; + + content: "[show]"; + width: 14px; + height: 14px; + font-size: 12px; +} +input[type="checkbox"]:checked + span::before +{ + content: "[hide]"; +} + +hr { + border-color:black; +} + +textarea { + box-sizing:border-box; +} diff --git a/Aborea/aborea.html b/Aborea/aborea.html new file mode 100644 index 0000000000..d98c976681 --- /dev/null +++ b/Aborea/aborea.html @@ -0,0 +1,2520 @@ + +Held + +Fertigkeiten + +Waffen + +Rüstung + +Zauber + +Besitz + +Hintergrund + +Alles + +Rechnungen + +NPC + + +
+ +
+ +
+
+
+

Trefferpunkte

+
+ + + + + + +
+ + / + +
+ + + + + +
Blutungen: + + + Behinderung: + +
+
+

Magiepunkte

+
+ + + + + + +
+ + / + +
+
+
+
+
ABOREA
+ +
+

Kampf- und Magiesystem

+
+ + + + + + +
ABOREARolemaster
+
+
+
+ +
+

Stufe

+
+ + + + + +
+
+

Erfahrungspunkte

+
+ + + + +
+ +
+
+
+
+ +
+
+

Charakterdaten

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
Spieler
Beruf + +
Volk + +
Alter Geschlecht + +
Residenz
Geburtsort
+
+
+
+

Attribute und Boni/Mali

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
STärkeBonus:Probe:
GEschickBonus:Probe:
KOnstitutionBonus:Probe:
INtelligenzBonus:Probe:
CHarismaBonus:Probe:
+
+
+
+ + +
+
+ +
+
+
+

Fertigkeiten

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Allgemeine Fertigkeiten:
Athletik
Einflussnahme
List
Natur
Reiten
Schwimmen
Wahrnehmung
+ +
+ + + + + + + + + + +
Weitere Fertigkeiten:
Knobeln
+
+ + + + + + + + +
+
+
+ +
+ + + + + + + + + + + + + + + +
Kampf:
Raufen
Waffenkünste:
+
+ + + + + + + + +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Magie:
Magie entwickeln
Gezielte Sprüche
Spruchlisten:
+
+ + + + + + + + +
+
+ + +
+
+ + + + +
Wissensfertigkeiten:
+
+ + + + + + + + +
+
+ + + + +
+ + + +
Sprachen:
+
+ + + + + + + + +
+
+
+ +
+
+
+
+
+
+
+

Waffen

+
+ + + + + + + + + + + + + + +
ben.WaffeFertigkeitAttributKBOBDBSchadenIni-BonusInit.Angr.
+ + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + +
+ +
+
+
+
+
+ Initiative Makros +
+ 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ Angriff Makros +
+ 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + +
+ + +
+
+
+
+
+

Rüstungen

+
+ + + + + + + + + + + +
ben.RüstungMind.-StärkeRüstungsbonusManöverGewicht in kgZustand
+ + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + +
+
+ +
+ + + + + + + + +
aktuell getragen:
+ + + + + + + +
aktuell gültig:
+
+
+
+
+
+
+ +
+

Zauber

+
+
+

+ +
+ + + + + + + + + + + +
gel.RangSpruchEffektReichweitegezieltGM
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ + + +
+
+
+
+
+
+
+

Ausrüstung und Besitz

+
+ + + davon mitgeführt + + + + +
+
+
+

Bares und Vermögen

+
+ + + + + + + + + + + + + + + +
Lebensstil
Bares
Vermögenswerte
+
+
+
+
+
+
+
+
+

Hintergrund

+
+
+ Persönliche Beschreibung + + Überzeugungen / Glauben + + Phobien/Manien + +
+
+ Wichtige Beziehungen + + Bedeutsame Orte + + Nennenswerte Begegnungen + +
+ +
+
+ Charakter-Tagebuch + +
+
+
+
+ + + +
+
+ +
+
+

Werte für Trefferpunkte

+
+ + + + + + + + + + + + + + + + + + + + +
Volksbonus + + ->
Berufsbonus + + ->
Stufe->
+ +
+ + + + + + +
err. Wert->
+
+
+ +
+

Attributsboni

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Sonstiges

+
+ +
+
+ + + + +
+

Rüstungswertberechnungen

+
+ Rüstungsboni durch... +
Stärkebonus:->
Geschickbonus:->
Konstitutionsbonus:->
Intelligenzbonus:->
Charismabonus:->
+ + + + + + + + + + + + + + + + + + + + + +
...Volk: Rasse hat Rüstungsbonus + + -> +
...Beruf: Charakter ist Dieb... + + ...und trägt keine Rüstung (akt.:) + + + + ...mit Athletik kleiner 5 + + Weg der Cobra + + -> +
+ +
+ + +
+ + +
+
+ + +
+ +
+ +

Globales

+
+ + + + + + + + + + + + + + + +
Trefferpunkte: + + -> +/Magiepunkte: + + -> +/Blutungen:
+
+
+ +
+
+

NPC-Attribute - ABOREA

+
+ + + + + + + + + + + + + +
Trefferpunkte: /
Magiepunkte: /
+ + + + + + + + + + + + + + + + + + + + + +
Rüstung:
Initiative:
KB:
Schaden:
SG:
+
+ +

Angriffe - ABOREA

+
+ + + + + + + + + +
ArtKBOBDBInit.Angr.
+ +
+ + + + + + + + + +
+
+
+ +
+
+ Initiative Makros +
+ 1 + 2 + 3 + 4 + 5 + +
+
+ + + + + + +
+
+ +
+ Angriff Makros +
+ 1 + 2 + 3 + 4 + 5 + +
+
+ + + + + + +
+
+ + +
+ +
+ +
+

NPC-Attribute - Rolemaster

+
+ + + + + + + + + + + + + + + + + + + + +
Trefferpunkte: /
Magiepunkte: /
AG/Initiative: /
+ + + + + + + + + + + + + + + + + +
Rüstungsklasse:
DB:
Krit-Kategorie:
Stufe:
+
+ +

Angriffe - Rolemaster

+
+ + + + + + + + + + +
ArtWkKBOBDBInit.Angr.
+ +
+ + + + + + + + + + +
+
+
+ +
+
+ Initiative Makros +
+ 1 + 2 + 3 + 4 + 5 + +
+
+ + + + + + +
+
+ +
+ Angriff Makros +
+ 1 + 2 + 3 + 4 + 5 + +
+
+ + + + + + +
+
+
+ +
+
+
+ Sonstiges + +
+ + + + + +
+ + + + + +
+
+ +
+

Zauber

+
+
+

+ +
+ + + + + + + + + + + +
gel.RangSpruchEffektReichweitegezieltGM
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ + + +
+
+
+ + + diff --git a/Aborea/aborea.png b/Aborea/aborea.png new file mode 100644 index 0000000000..29344c2132 Binary files /dev/null and b/Aborea/aborea.png differ diff --git a/Aborea/sheet.json b/Aborea/sheet.json new file mode 100644 index 0000000000..9bf4de6e0b --- /dev/null +++ b/Aborea/sheet.json @@ -0,0 +1,8 @@ +{ + "html": "aborea.html", + "css": "aborea.css", + "authors": "Scaby79", + "roll20userid": "603614", + "preview": "aborea.png", + "instructions": "# Autocalculation fields: for the autocalculation you need the autocalc.js to run (roll20 PRO user only) if you are a no PRO user at roll20 you can set the fields that are normally calculated manually at the last red tab in the sheet by yourself ; Creating rollable tables: at this time the character sheet uses for some chat outputs rollable tables (the html-code of the sheet refers to those specific tables the sheet is working without them but you will encounter some error messages in the chat if you want to get rid of that error messages, please send me a private message via the roll20 platform and I'll help you fix that" +}