diff --git a/midgard5e-v1.2.3.zip b/midgard5e-v1.2.3.zip new file mode 100644 index 0000000..1b3adaf Binary files /dev/null and b/midgard5e-v1.2.3.zip differ diff --git a/midgard5e/assets/icons/macro/kriterfolgabwehr.svg b/midgard5e/assets/icons/macro/kriterfolgabwehr.svg new file mode 100644 index 0000000..6985f7f --- /dev/null +++ b/midgard5e/assets/icons/macro/kriterfolgabwehr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/midgard5e/assets/icons/macro/kriterfolgangriff.svg b/midgard5e/assets/icons/macro/kriterfolgangriff.svg new file mode 100644 index 0000000..e40ac21 --- /dev/null +++ b/midgard5e/assets/icons/macro/kriterfolgangriff.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/midgard5e/assets/icons/macro/kritfehlerabwehr.svg b/midgard5e/assets/icons/macro/kritfehlerabwehr.svg new file mode 100644 index 0000000..a782a8b --- /dev/null +++ b/midgard5e/assets/icons/macro/kritfehlerabwehr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/midgard5e/assets/icons/macro/kritfehlerangriff.svg b/midgard5e/assets/icons/macro/kritfehlerangriff.svg new file mode 100644 index 0000000..92e2b2c --- /dev/null +++ b/midgard5e/assets/icons/macro/kritfehlerangriff.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/midgard5e/assets/icons/macro/kritfehlerzauber.svg b/midgard5e/assets/icons/macro/kritfehlerzauber.svg new file mode 100644 index 0000000..e841d7b --- /dev/null +++ b/midgard5e/assets/icons/macro/kritfehlerzauber.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/midgard5e/assets/icons/wurfel/w10.svg b/midgard5e/assets/icons/wurfel/w10.svg new file mode 100644 index 0000000..210abea --- /dev/null +++ b/midgard5e/assets/icons/wurfel/w10.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/midgard5e/assets/icons/wurfel/w100.svg b/midgard5e/assets/icons/wurfel/w100.svg new file mode 100644 index 0000000..e68bdd9 --- /dev/null +++ b/midgard5e/assets/icons/wurfel/w100.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/midgard5e/assets/icons/wurfel/w20.svg b/midgard5e/assets/icons/wurfel/w20.svg new file mode 100644 index 0000000..b1accc8 --- /dev/null +++ b/midgard5e/assets/icons/wurfel/w20.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/midgard5e/assets/icons/wurfel/w6.svg b/midgard5e/assets/icons/wurfel/w6.svg new file mode 100644 index 0000000..697aebb --- /dev/null +++ b/midgard5e/assets/icons/wurfel/w6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/midgard5e/assets/maps/midgard_v1.png b/midgard5e/assets/maps/midgard_v1.png new file mode 100644 index 0000000..8d5bedf Binary files /dev/null and b/midgard5e/assets/maps/midgard_v1.png differ diff --git a/midgard5e/assets/maps/midgard_v2.png b/midgard5e/assets/maps/midgard_v2.png new file mode 100644 index 0000000..568ba6f Binary files /dev/null and b/midgard5e/assets/maps/midgard_v2.png differ diff --git a/midgard5e/bundle.css b/midgard5e/bundle.css new file mode 100644 index 0000000..0f54121 --- /dev/null +++ b/midgard5e/bundle.css @@ -0,0 +1,259 @@ +.midgard5 .flexrow { + align-items: center; +} +.midgard5 h3 { + margin-top: 1rem; +} +.midgard5 .sheet.character form { + display: flex; + flex-direction: column; +} +.midgard5 .sheet.character .sheet-content { + height: 100%; + display: flex; + flex-direction: column; +} +.midgard5 .sheet.character .sheet-content .editor { + height: 100%; +} +.midgard5 .sheet.character .profile-img { + height: 64px; + width: 64px; +} +.midgard5 .sheet.character .description { + flex: 0 0 100%; + margin: 0; +} +.midgard5 .level-display { + text-align: right; + font-weight: bold; +} +.midgard5 td, +.midgard5 th { + padding: 0 0.5rem 0 0.5rem; +} +.midgard5 td.center, +.midgard5 th.center { + text-align: center; +} +.midgard5 td.fixed-value, +.midgard5 th.fixed-value { + width: 3rem; + text-align: center; +} +.midgard5 input.skill { + width: 5rem; +} +.midgard5 input.fixed { + width: 5rem; +} +.midgard5 .new-skill { + font-style: italic; + background: rgba(0, 0, 0, 0.3); + color: rgba(255, 255, 255); +} +.midgard5 .new-skill button { + background: rgba(255, 255, 255, 0.5); +} +.midgard5 button.roll-button { + background: url(/icons/svg/d20-black.svg) no-repeat; + background-size: 24px 24px; + width: 26px; + height: 26px; +} +.midgard5 span.spell-process { + color: #5d5d5d; + font-style: italic; +} +.midgard5 .filler { + flex: 1 1 auto; +} +.midgard5 .health-bar { + height: 2rem; + background-color: rgba(0, 0, 0, 0.8); + display: flex; + flex-direction: row; + gap: 1px; + padding: 1px; +} +.midgard5 .health-bar input { + flex: 0 0 3rem; + text-align: center; + height: 100%; + background-color: #6d6c66; + color: #ffffff; + font-weight: bold; + border-radius: 0; +} +.midgard5 .health-bar .lp-bar-item-empty, +.midgard5 .health-bar .ap-bar-item-empty { + flex-grow: 1; + background-color: #c9c9c9; +} +.midgard5 .health-bar .lp-bar-item { + flex-grow: 1; + background-color: #39ea8b; +} +.midgard5 .health-bar .ap-bar-item { + flex-grow: 1; + background-color: #39a3ea; +} +.midgard5 .health-bar .negative-bar-item { + flex-grow: 1; + background-color: #ea3939; +} +.midgard5 .attributes { + display: flex; + flex-direction: row; + margin-bottom: 0.5rem; +} +.midgard5 .attributes .attribute { + flex: 0 0 7rem; + margin: 0; + border: 1px solid rgba(0, 0, 0, 0.5); + border-radius: 10; + display: flex; + flex-direction: column; +} +.midgard5 .attributes .attribute .attribute-header { + display: flex; + align-items: center; + text-align: center; + justify-content: center; + font-weight: bold; + background-color: rgba(0, 0, 0, 0.5); + color: #ffffff; + height: 2.5rem; +} +.midgard5 .attributes .attribute .attribute-main { + padding: 0.2rem; +} +.midgard5 .attributes .attribute .attribute-main .attribute-main-value { + text-align: center; + vertical-align: middle; + font-size: 2rem; +} +.midgard5 .attributes .attribute .attribute-main .attribute-main-bonus { + text-align: center; + vertical-align: middle; + font-size: 1rem; +} +.midgard5 .attributes .attribute .attribute-footer { + display: flex; + flex-direction: row; + gap: 0.3rem; + padding: 0.3rem; + background-color: rgba(0, 0, 0, 0.5); +} +.midgard5 .attributes .attribute .attribute-footer input { + flex-grow: 1; + text-align: center; + background-color: rgba(255, 255, 255, 0.8); +} + +.midgard5.sheet.item form { + display: flex; + flex-direction: column; +} +.midgard5.sheet.item .sheet-content { + height: 100%; + display: flex; + flex-direction: column; +} +.midgard5.sheet.item .sheet-content .editor { + height: 100%; +} +.midgard5.sheet.item .item-img { + height: 64px; + width: 64px; +} +.midgard5.sheet.item td, +.midgard5.sheet.item th { + padding: 0 0.5rem 0 0.5rem; +} +.midgard5.sheet.item td.center, +.midgard5.sheet.item th.center { + text-align: center; +} +.midgard5.sheet.item td.fixed-value, +.midgard5.sheet.item th.fixed-value { + width: 3rem; + text-align: center; +} +.midgard5.sheet.item table.rolls-table .col-enabled { + width: 3rem; + text-align: center; +} +.midgard5.sheet.item table.rolls-table .col-create { + width: 3rem; + text-align: center; +} +.midgard5.sheet.item table.rolls-table .col-create button { + background: rgba(255, 255, 255, 0.5); +} +.midgard5.sheet.item table.rolls-table .col-delete { + width: 3rem; + text-align: center; +} +.midgard5.sheet.item table.rolls-table .col-label { + width: 6rem; +} + +.m5-roll .roll-title { + text-align: center; + vertical-align: middle; + padding: 0.3rem 0 0.1rem 0; + font-weight: bold; + font-size: 1.3rem; +} +.m5-roll .roll-spell-details { + text-align: right; + padding-right: 1rem; + font-weight: bold; +} +.m5-roll .roll-result { + text-align: right; + padding-right: 1rem; + font-weight: bold; + display: flex; + flex-direction: row; +} +.m5-roll .roll-result .roll-total { + width: 100%; +} +.m5-roll .roll-result .roll-detail { + width: 100%; + margin-left: -100%; +} +.m5-roll .roll-row:not( :hover ) .roll-total { + visibility: visible; +} +.m5-roll .roll-row:not( :hover ) .roll-detail { + visibility: hidden; +} +.m5-roll .roll-row:hover .roll-total { + visibility: hidden; +} +.m5-roll .roll-row:hover .roll-detail { + visibility: visible; +} +.m5-roll .roll-ew-result-fumble { + background-color: #ca3636; + color: #ffffff; +} +.m5-roll .roll-ew-result-critical { + background-color: #cac536; + color: #000000; +} +.m5-roll .roll-ew-result-high { + background-color: #368aca; + color: #ffffff; +} +.m5-roll .roll-ew-result-fail { + background-color: #753f83; + color: #ffffff; +} +.m5-roll .roll-ew-result-pass { + background-color: #36ca58; + color: #000000; +} diff --git a/midgard5e/bundle.js b/midgard5e/bundle.js new file mode 100644 index 0000000..d2aea3e --- /dev/null +++ b/midgard5e/bundle.js @@ -0,0 +1,2 @@ +!function r(s,n,o){function l(t,e){if(!n[t]){if(!s[t]){var a="function"==typeof require&&require;if(!e&&a)return a(t,!0);if(i)return i(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}a=n[t]={exports:{}},s[t][0].call(a.exports,function(e){return l(s[t][1][e]||e)},a,a.exports,r,s,n,o)}return n[t].exports}for(var i="function"==typeof require&&require,e=0;e>1&1)*e*255,(t>>2&1)*e*255]},n.ansi256.rgb=function(e){var t;return 232<=e?[t=10*(e-232)+8,t,t]:(e-=16,[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255])},n.rgb.hex=function(e){e=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(e.length)+e},n.hex.rgb=function(e){var t,e=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);return e?(t=e[0],3===e[0].length&&(t=t.split("").map(function(e){return e+e}).join("")),[(e=parseInt(t,16))>>16&255,e>>8&255,255&e]):[0,0,0]},n.rgb.hcg=function(e){var t=e[0]/255,a=e[1]/255,e=e[2]/255,r=Math.max(Math.max(t,a),e),s=Math.min(Math.min(t,a),e),n=r-s,s=n<1?s/(1-n):0,r=n<=0?0:r===t?(a-e)/n%6:r===a?2+(e-t)/n:4+(t-a)/n+4;return[360*(r=r/6%1),100*n,100*s]},n.hsl.hcg=function(e){var t=e[1]/100,a=e[2]/100,r=1,s=0,r=a<.5?2*t*a:2*t*(1-a);return[e[0],100*r,100*(s=r<1?(a-.5*r)/(1-r):s)]},n.hsv.hcg=function(e){var t=e[1]/100,a=e[2]/100,t=t*a,a=t<1?(a-t)/(1-t):0;return[e[0],100*t,100*a]},n.hcg.rgb=function(e){var t=e[0]/360,a=e[1]/100,e=e[2]/100;if(0==a)return[255*e,255*e,255*e];var r=[0,0,0],t=t%1*6,s=t%1,n=1-s;switch(Math.floor(t)){case 0:r[0]=1,r[1]=s,r[2]=0;break;case 1:r[0]=n,r[1]=1,r[2]=0;break;case 2:r[0]=0,r[1]=1,r[2]=s;break;case 3:r[0]=0,r[1]=n,r[2]=1;break;case 4:r[0]=s,r[1]=0,r[2]=1;break;default:r[0]=1,r[1]=0,r[2]=n}return[255*(a*r[0]+(t=(1-a)*e)),255*(a*r[1]+t),255*(a*r[2]+t)]},n.hcg.hsv=function(e){var t=e[1]/100,a=t+e[2]/100*(1-t),t=0>16&255,e>>8&255,255&e],this.valpha=1;else{this.valpha=1;t=Object.keys(e),a=("alpha"in e&&(t.splice(t.indexOf("alpha"),1),this.valpha="number"==typeof e.alpha?e.alpha:0),t.sort().join(""));if(!(a in h))throw new Error("Unable to parse color from object: "+JSON.stringify(e));this.model=h[a];for(var s=u[this.model].labels,n=[],o=0;o{const t=`${s.default.isModule?"modules":"systems"}/${s.default.name}/templates/`;return loadTemplates(["sheets/character/attribute.hbs","sheets/character/base_values.hbs","sheets/character/skills.hbs","sheets/character/gear.hbs","sheets/character/spells.hbs","sheets/item/rolls.hbs","chat/roll-m5.hbs"].map(e=>t+e))}},{"./Globals":9}],11:[function(e,t,a){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(a,"__esModule",{value:!0});const s=r(e("./utils/Logger")),n=r(e("./module/sheets/M5CharacterSheet")),o=r(e("./PreloadTemplates")),l=e("./module/actors/M5Character"),i=e("./module/sheets/M5ItemSheet"),u=e("./module/items/M5Item");Hooks.once("init",async()=>{s.default.log("M5 | Initialisierung Midgard 5"),Handlebars.registerHelper("times",(t,a)=>{var r="";for(let e=0;ee[t]),Handlebars.registerHelper("m5concat",(...e)=>{var t=(null==(t=e.pop().hash)?void 0:t.join)||"";return e.map(e=>e.toString()).join(t)}),Handlebars.registerHelper("add",(...e)=>{e.pop();return e.reduce((e,t)=>e+t)}),Handlebars.registerHelper("localizeMidgard",e=>{return Handlebars.compile("{{localize value}}")({value:"midgard5."+e})}),Handlebars.registerHelper("skillBonus",(e,t)=>{return game.actors.get(e).skillBonus(t).toString()}),Handlebars.registerHelper("skillEw",(e,t)=>{return game.actors.get(e).skillEw(t).toString()}),Handlebars.registerHelper("skill",e=>game.items.get(e)),Handlebars.registerHelper("itemValue",(e,t)=>{let a=game.items.get(e);return t.split(".").forEach(e=>a=a[e]),""+a}),Handlebars.registerHelper("actorItemValue",(e,t,a)=>{let r=game.actors.get(e).items.get(t).system;return a.split(".").forEach(e=>{r=r&&r[e]}),""+r}),Handlebars.registerHelper("icon",e=>"systems/midgard5e/assets/icons/"+e),Handlebars.registerHelper("isSkillInList",(e,t)=>{var a,r;for(r in t)if((null==(a=null==(a=t[r])?void 0:a.label)?void 0:a.toLowerCase())===(null==e?void 0:e.toLowerCase()))return!0;return!1}),Items.unregisterSheet("core",ItemSheet),Items.registerSheet("midgard5",i.M5ItemSheet,{makeDefault:!0}),Actors.unregisterSheet("core",ActorSheet),Actors.registerSheet("midgard5",n.default,{makeDefault:!0}),CONFIG.Actor.documentClass=l.M5Character,CONFIG.Item.documentClass=u.M5Item,await(0,o.default)()}),Hooks.once("setup",()=>{s.default.log("Template module is being setup.")}),Hooks.once("ready",()=>{s.default.ok("Template module is now ready.")})},{"./PreloadTemplates":10,"./module/actors/M5Character":13,"./module/items/M5Item":15,"./module/sheets/M5CharacterSheet":17,"./module/sheets/M5ItemSheet":18,"./utils/Logger":19}],12:[function(e,t,a){"use strict";var r;Object.defineProperty(a,"__esModule",{value:!0}),a.enumKeys=a.M5ModOperation=a.M5ModType=a.M5Stats=a.M5Attributes=a.M5EwResult=void 0,(r=a.M5EwResult||(a.M5EwResult={})).TBD="",r.FUMBLE="roll-ew-result-fumble",r.CRITICAL="roll-ew-result-critical",r.HIGH="roll-ew-result-high",r.FAIL="roll-ew-result-fail",r.PASS="roll-ew-result-pass",(r=a.M5Attributes||(a.M5Attributes={})).ST="st",r.GW="gw",r.GS="gs",r.KO="ko",r.IN="in",r.ZT="zt",r.AU="au",r.PA="pa",r.WK="wk",(r=a.M5Stats||(a.M5Stats={})).DEFENSE="defenseBonus",r.ATTACK="attackBonus",r.DAMAGE="damageBonus",r.MOVEMENT="movement",r.RESISTANCE_MIND="resistanceMind",r.RESISTANCE_BODY="resistanceBody",r.SPELL_CASTING="spellCasting",r.BRAWL="brawl",r.POISON_RESISTANCE="poisonResistance",r.LP="lp",r.AP="ap",(r=a.M5ModType||(a.M5ModType={})).ATTRIBUTE="attribute",r.STAT="stat",r.SKILL="skill",(r=a.M5ModOperation||(a.M5ModOperation={})).ADD_100="add100",r.ADD="add",r.SET="set",r.FIXED="fixed",a.enumKeys=function(e){return Object.keys(e).filter(e=>Number.isNaN(+e))}},{}],13:[function(e,t,a){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(a,"__esModule",{value:!0}),a.M5Character=void 0;const s=e("../M5Base"),n=r(e("./M5ModAggregate"));class o extends Actor{static attributeMinMax(e){return Math.min(100,Math.max(0,e.value+e.bonus))}static attributeBonus(e){e=this.attributeMinMax(e);return 95"item"===e.type).forEach(t=>{const a=t.system.mods;Object.keys(a).forEach(e=>{e=a[e];s.push(e,t.name)})}),a.skillMods=s.calculate()}return null!=e&&e.items||null!=(r=t.items)&&r.filter(e=>"item"===e.type).forEach(e=>{e.prepareDerivedData();let t=e.name;e.system.magic&&(t+="*"),a.gear.items[e.id]={label:t,magic:e.system.magic,calc:e.system.calc}}),null!=e&&e.skills||null!=(r=t.items)&&r.filter(e=>"skill"===e.type).forEach(e=>{e.prepareDerivedData(),a.skills[e.system.type][e.id]={label:e.name,fw:e.system.fw,attribute:e.system.attribute,pp:e.system.pp,calc:e.system.calc}}),null!=e&&e.weapons||null!=(r=t.items)&&r.filter(e=>"weapon"===e.type).forEach(e=>{e.prepareDerivedData();let t=e.name;e.system.magic&&(t+="*("+(e.system.stats.attackBonus<0?"":"+")+e.system.stats.attackBonus+"/"+(e.system.stats.damageBonus<0?"":"+")+e.system.stats.damageBonus+")"),a.gear.weapons[e.id]={label:t,skillId:e.system.skillId,magic:e.system.magic,calc:e.system.calc}}),null!=e&&e.defensiveWeapons||null!=(r=t.items)&&r.filter(e=>"defensiveWeapon"===e.type).forEach(e=>{e.prepareDerivedData();let t=e.name;e.system.magic&&(t+="*("+(e.system.stats.defenseBonus<0?"":"+")+e.system.stats.defenseBonus+")"),a.gear.defensiveWeapons[e.id]={label:t,skillId:e.system.skillId,magic:e.system.magic,calc:e.system.calc}}),null!=e&&e.armor||null!=(r=t.items)&&r.filter(e=>"armor"===e.type).forEach(e=>{e.prepareDerivedData();let t=e.name;e.system.magic&&(t+="*"),a.gear.armor[e.id]={label:t,magic:e.system.magic,calc:e.system.calc}}),null!=e&&e.spells||null!=(r=t.items)&&r.filter(e=>"spell"===e.type).forEach(e=>{e.prepareDerivedData(),a.spells[e.id]={label:e.name,process:"midgard5.spell-process-"+e.system.process,calc:e.system.calc}}),a}raceBonus(e){switch(e){case"Elf":return 2;case"Gnom":case"Halbling":return 4;case"Zwerg":return 3;default:return 0}}prepareDerivedData(){console.log("M5Character","prepareDerivedData"),this.system.calc=this.derivedData({})}getRollData(){return{c:this.system,i:null,iType:null,rolls:{},res:{}}}static levelFromExp(t){var e=o.levelThreshold.findIndex(e=>te[0]<=t);return(e||o.defenseThreshold[o.defenseThreshold.length-1])[1]}static spellCastingFromLevel(t){var e=o.spellCastingThreshold.find(e=>e[0]<=t);return(e||o.spellCastingThreshold[o.spellCastingThreshold.length-1])[1]}skillBonus(e,t){var a;return null!=(e=null==(a=null==(a=this.system.calc)?void 0:a.attributes[e.attribute])?void 0:a.bonus)?e:0}skillEw(e,t){t=this.skillBonus(e,t);return e.fw+t}attribute(e){var t=this.system;return null==t?void 0:t.attributes[e]}createSkill(e){return this.createEmbeddedDocuments("Item",[{name:e,type:"skill"}]).then(e=>{return e[0]})}getItem(e){return this.items?this.getEmbeddedDocument("Item",e):null}modResult(e){return{value:e,mods:[{item:game.i18n.localize("ACTOR.TypeCharacter"),operation:s.M5ModOperation.SET,value:e}]}}}(a.M5Character=o).levelThreshold=[0,100,250,500,750,1e3,1250,1500,1750,2e3,2500,3e3,3500,4e3,4500,5e3,6e3,7e3,8e3,9e3,1e4,12500,15e3,17500,2e4,22500,25e3,3e4,35e3,4e4,45e3,5e4,55e3,6e4,65e3,7e4,75e3,8e4,85e3,9e4,95e3,1e5,105e3,11e4,115e3,12e4,125e3,13e4,135e3,14e4,145e3,15e4,155e3,16e4,165e3,17e4,175e3,18e4,185e3,19e4,195e3,2e5,205e3,21e4,215e3,22e4,225e3,23e4,235e3,24e4,245e3,25e4,255e3,26e4,265e3,27e4,275e3,28e4],o.defenseThreshold=[[30,18],[25,17],[20,16],[15,15],[10,14],[5,13],[2,12],[1,11]],o.spellCastingThreshold=[[20,18],[15,17],[10,16],[8,15],[6,14],[4,13],[2,12],[1,11]]},{"../M5Base":12,"./M5ModAggregate":14}],14:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});const s=e("../M5Base");class n{constructor(e,t){this.data=e,this.calc=t,this.attributes=new Map,this.stats=new Map,this.skills=new Map;var a=game.i18n.localize("ACTOR.TypeCharacter");this.push({type:s.M5ModType.ATTRIBUTE,id:s.M5Attributes.ST,operation:s.M5ModOperation.SET,value:e.attributes.st.value},a),this.push({type:s.M5ModType.ATTRIBUTE,id:s.M5Attributes.GS,operation:s.M5ModOperation.SET,value:e.attributes.gs.value},a),this.push({type:s.M5ModType.ATTRIBUTE,id:s.M5Attributes.GW,operation:s.M5ModOperation.SET,value:e.attributes.gw.value},a),this.push({type:s.M5ModType.ATTRIBUTE,id:s.M5Attributes.KO,operation:s.M5ModOperation.SET,value:e.attributes.ko.value},a),this.push({type:s.M5ModType.ATTRIBUTE,id:s.M5Attributes.IN,operation:s.M5ModOperation.SET,value:e.attributes.in.value},a),this.push({type:s.M5ModType.ATTRIBUTE,id:s.M5Attributes.ZT,operation:s.M5ModOperation.SET,value:e.attributes.zt.value},a),this.push({type:s.M5ModType.ATTRIBUTE,id:s.M5Attributes.AU,operation:s.M5ModOperation.SET,value:e.attributes.au.value},a),this.push({type:s.M5ModType.ATTRIBUTE,id:s.M5Attributes.PA,operation:s.M5ModOperation.SET,value:e.attributes.pa.value},a),this.push({type:s.M5ModType.ATTRIBUTE,id:s.M5Attributes.WK,operation:s.M5ModOperation.SET,value:e.attributes.wk.value},a),this.push({type:s.M5ModType.ATTRIBUTE,id:s.M5Attributes.ST,operation:s.M5ModOperation.ADD_100,value:e.attributes.st.bonus},a),this.push({type:s.M5ModType.ATTRIBUTE,id:s.M5Attributes.GS,operation:s.M5ModOperation.ADD_100,value:e.attributes.gs.bonus},a),this.push({type:s.M5ModType.ATTRIBUTE,id:s.M5Attributes.GW,operation:s.M5ModOperation.ADD_100,value:e.attributes.gw.bonus},a),this.push({type:s.M5ModType.ATTRIBUTE,id:s.M5Attributes.KO,operation:s.M5ModOperation.ADD_100,value:e.attributes.ko.bonus},a),this.push({type:s.M5ModType.ATTRIBUTE,id:s.M5Attributes.IN,operation:s.M5ModOperation.ADD_100,value:e.attributes.in.bonus},a),this.push({type:s.M5ModType.ATTRIBUTE,id:s.M5Attributes.ZT,operation:s.M5ModOperation.ADD_100,value:e.attributes.zt.bonus},a),this.push({type:s.M5ModType.ATTRIBUTE,id:s.M5Attributes.AU,operation:s.M5ModOperation.ADD_100,value:e.attributes.au.bonus},a),this.push({type:s.M5ModType.ATTRIBUTE,id:s.M5Attributes.PA,operation:s.M5ModOperation.ADD_100,value:e.attributes.pa.bonus},a),this.push({type:s.M5ModType.ATTRIBUTE,id:s.M5Attributes.WK,operation:s.M5ModOperation.ADD_100,value:e.attributes.wk.bonus},a),this.push({type:s.M5ModType.STAT,id:s.M5Stats.DEFENSE,operation:s.M5ModOperation.SET,value:t.stats.defenseBonus.value},a),this.push({type:s.M5ModType.STAT,id:s.M5Stats.ATTACK,operation:s.M5ModOperation.SET,value:t.stats.attackBonus.value},a),this.push({type:s.M5ModType.STAT,id:s.M5Stats.DAMAGE,operation:s.M5ModOperation.SET,value:t.stats.damageBonus.value},a),this.push({type:s.M5ModType.STAT,id:s.M5Stats.MOVEMENT,operation:s.M5ModOperation.SET,value:t.stats.movementBonus.value},a),this.push({type:s.M5ModType.STAT,id:s.M5Stats.RESISTANCE_MIND,operation:s.M5ModOperation.SET,value:t.stats.resistanceMind.value},a),this.push({type:s.M5ModType.STAT,id:s.M5Stats.RESISTANCE_BODY,operation:s.M5ModOperation.SET,value:t.stats.resistanceBody.value},a),this.push({type:s.M5ModType.STAT,id:s.M5Stats.SPELL_CASTING,operation:s.M5ModOperation.SET,value:t.stats.spellCasting.value},a),this.push({type:s.M5ModType.STAT,id:s.M5Stats.BRAWL,operation:s.M5ModOperation.SET,value:t.stats.brawl.value},a),this.push({type:s.M5ModType.STAT,id:s.M5Stats.POISON_RESISTANCE,operation:s.M5ModOperation.SET,value:t.stats.poisonResistance.value},a),this.push({type:s.M5ModType.STAT,id:s.M5Stats.LP,operation:s.M5ModOperation.SET,value:t.stats.lp.value},a),this.push({type:s.M5ModType.STAT,id:s.M5Stats.AP,operation:s.M5ModOperation.SET,value:t.stats.ap.value},a)}push(t,a){if(null!=t&&t.id&&""!==t.id){let e=null;t.type===s.M5ModType.ATTRIBUTE?e=this.attributes:t.type===s.M5ModType.STAT?e=this.stats:t.type===s.M5ModType.SKILL&&(e=this.skills),e&&(a={mod:t,source:a},e.has(t.id)?e.get(t.id).push(a):e.set(t.id,[a]))}}calculate(){const a=this.calc,r=(this.attributes.forEach((e,t)=>{e=n.processPairs(e);a.attributes[t]={value:e.value,bonus:n.attributeBonus(e.value),mods:e.mods}}),this.stats.forEach((e,t)=>{e=n.processPairs(e);a.stats[t]=e}),{});return this.skills.forEach((e,t)=>{r[t]=e}),r}static pairAsSource(e){return{operation:e.mod.operation,value:e.mod.value,item:e.source}}static processPairs(e){var t={mods:[],value:0};let a=e.filter(e=>e.mod.operation===s.M5ModOperation.FIXED).sort((e,t)=>t.mod.value-e.mod.value);var r=0===a.length?null:a[0];return r?(t.mods.push(this.pairAsSource(r)),t.value=r.mod.value):(0!==(a=e.filter(e=>e.mod.operation===s.M5ModOperation.SET).sort((e,t)=>t.mod.value-e.mod.value)).length&&(t.mods.push(this.pairAsSource(a[0])),t.value=a[0].mod.value),0!==(a=e.filter(e=>e.mod.operation===s.M5ModOperation.ADD_100)).length&&(t.mods=t.mods.concat(a.map(this.pairAsSource)),r=a.map(e=>e.mod.value).reduce((e,t)=>e+t,0),t.value=Math.min(100,Math.max(0,t.value+r))),0!==(a=e.filter(e=>e.mod.operation===s.M5ModOperation.ADD)).length&&(t.mods=t.mods.concat(a.map(this.pairAsSource)),r=a.map(e=>e.mod.value).reduce((e,t)=>e+t,0),t.value=Math.max(0,t.value+r))),t}static attributeMinMax(e){return Math.min(100,Math.max(0,e.value+e.bonus))}static attributeBonus(e){return 95{[u.M5ModOperation.SET,u.M5ModOperation.FIXED].includes(e.operation)?i.fw=e.value:i.bonus+=e.value}),i.ew=i.fw+i.bonus,i.sources=t.mods}else"weapon"===e?(i.fw=0,i.bonus=0,i.special=l.special?2:0,i.ew=i.special+l.stats.attackBonus,i.combatSkills=null,a&&((r=o.derivedData({weapons:!0,defensiveWeapons:!0,armor:!0,items:!0,spells:!0}))&&(i.ew+=r.stats.attackBonus.value,i.combatSkills=r.skills.combat),t=o.getItem(l.skillId))&&(t.prepareDerivedData(),r=t.system,i.ew+=r.calc.ew,i.bonus+=r.calc.bonus,i.fw+=r.fw)):"defensiveWeapon"===e?(i.fw=0,i.bonus=0,i.special=l.special?2:0,i.ew=i.special+l.stats.defenseBonus,i.combatSkills=null,a&&((t=o.derivedData({weapons:!0,defensiveWeapons:!0,armor:!0,items:!0,spells:!0}))&&(i.ew+=t.stats.defense.value+t.stats.defenseBonus.value,i.combatSkills=t.skills.combat),r=o.getItem(l.skillId))&&(r.prepareDerivedData(),t=r.system,i.ew+=t.calc.ew,i.bonus+=t.calc.bonus,i.fw+=t.fw)):"spell"===e?(i.fw=0,a&&(r=o.derivedData({weapons:!0,defensiveWeapons:!0,armor:!0,items:!0,spells:!0}))&&(i.ew=r.stats.spellCasting.value)):"item"===e&&(i.mods={},Object.keys(null===l||void 0===l?void 0:l.mods).forEach(e=>{var t=l.mods[e];const r={};switch(t.type){case u.M5ModType.ATTRIBUTE:for(const e of(0,u.enumKeys)(u.M5Attributes)){var a=u.M5Attributes[e];r[a]=game.i18n.localize(`midgard5.actor-${a}-long`)}break;case u.M5ModType.STAT:for(const e of(0,u.enumKeys)(u.M5Stats)){var s=u.M5Stats[e];r[s]=game.i18n.localize("midgard5.mod-stat-"+s)}break;case u.M5ModType.SKILL:if(o){var n=o.derivedData({weapons:!0,defensiveWeapons:!0,armor:!0,items:!0,spells:!0});if(n){let a=game.i18n.localize("midgard5.skill");Object.keys(n.skills.general).forEach(e=>{var t=o.getItem(e);t&&(r[e]=a+": "+t.name)}),a=game.i18n.localize("midgard5.language"),Object.keys(n.skills.language).forEach(e=>{var t=o.getItem(e);t&&(r[e]=a+": "+t.name)}),a=game.i18n.localize("midgard5.weapon-skill"),Object.keys(n.skills.combat).forEach(e=>{var t=o.getItem(e);t&&(r[e]=a+": "+t.name)}),a=game.i18n.localize("midgard5.innate-ability"),Object.keys(n.skills.innate).forEach(e=>{var t=o.getItem(e);t&&(r[e]=a+": "+t.name)})}}}i.mods[e]=r}))}getRollData(){var e=this.actor,e=null!=(e=null==e?void 0:e.getRollData())?e:{c:null,i:null,iType:null,rolls:{},res:{}};return e.i=this.system,e.iType=this.type,e}async roll(){const a=this;var e=ChatMessage.getSpeaker({actor:this.actor}),t=game.settings.get("core","rollMode"),r=`[${a.type}] `+a.name,s=null!=(s=a.system.rolls)&&s.formulas?Object.keys(a.system.rolls.formulas):[];if(0{var t=a.system.rolls.formulas[e];t&&(n.rolls[e]={formula:t.formula,label:t.label,enabled:t.enabled,result:"",total:0,totalStr:"",dice:{}})}),new o.M5Roll(n,this.actor,a.name).toMessage()}return ChatMessage.create({speaker:e,rollMode:t,flavor:r,content:null!=(s=a.system.description)?s:""}),null}getItem(e){return this.getEmbeddedDocument("Item",e)}}(a.M5Item=n).SKILL="skill"},{"../M5Base":12,"../actors/M5ModAggregate":14,"../rolls/M5Roll":16}],16:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.M5Roll=void 0;const o=e("../M5Base");class l{constructor(e,t,a){this.data=e,this.actor=t,this.label=a,this._evaluated=!1,this._total=0,this.pool=null}evaluate(){const n=new Map;var e=Object.keys(this.data.rolls).filter(e=>this.data.rolls[e].enabled).map((e,t)=>{n.set(t,e);t=this.data.rolls[e];return new Roll(t.formula,this.data)});return this.pool=PoolTerm.fromRolls(e),console.log("evaluate",this._evaluated,this.pool),this.pool.evaluate({async:!0}).then(e=>(this._total=0,e.rolls.forEach((e,t)=>{t=n.get(t);const a=this.data.rolls[t];a.result=e.result,a.total=e.total,a.totalStr=e.total.toString(),this._total+=e.total;let r=o.M5EwResult.TBD,s=-1;e.dice.forEach((e,t)=>{a.dice[t.toString()]=e.total,r===o.M5EwResult.TBD&&0===t&&(20===e.faces?1===e.total?r=o.M5EwResult.FUMBLE:20===e.total?r=o.M5EwResult.CRITICAL:16<=e.total&&(r=o.M5EwResult.HIGH):100===e.faces&&(s=e.total))});var t=l.parseDiceSides(a.formula);20===(null==t?void 0:t.sides)?e.total<20?r!==o.M5EwResult.TBD&&r!==o.M5EwResult.HIGH||(r=o.M5EwResult.FAIL):r===o.M5EwResult.TBD&&(r=o.M5EwResult.PASS):0<=s&&(t=e.total+s,t=Math.floor(t/10),100===s?r===o.M5EwResult.TBD&&(r=o.M5EwResult.FUMBLE):e.total<0?r===o.M5EwResult.TBD&&(r=o.M5EwResult.FAIL):s<=t?r===o.M5EwResult.TBD&&(r=o.M5EwResult.CRITICAL):r===o.M5EwResult.TBD&&(r=o.M5EwResult.PASS)),a.css=r}),this.data.res.label=this.label,this._evaluated=!0,this))}async render(){return renderTemplate(l.TEMPLATE_PATH,this.data)}async toMessage(){this._evaluated||await this.evaluate();var e=game.settings.get("core","rollMode"),t={type:CONST.CHAT_MESSAGE_TYPES.ROLL,content:await this.render(),speaker:ChatMessage.getSpeaker({actor:this.actor}),sound:CONFIG.sounds.dice,roll:Roll.fromTerms([this.pool])};return ChatMessage.applyRollMode(t,e),ChatMessage.create(t)}static fromAttribute(e,t){var a=e.attribute(t),r=e.getRollData();return r.i=a.value+a.bonus,r.rolls[0]={formula:"@i - 1d100",enabled:!0,label:game.i18n.localize("midgard5.pw"),result:"",total:0,totalStr:"",dice:{},css:""},new l(r,e,game.i18n.localize(`midgard5.actor-${t}-long`))}static fromAttributeValue(e,t,a){var r=e.getRollData();return r.i=a,r.rolls[0]={formula:"@i - 1d100",enabled:!0,label:game.i18n.localize("midgard5.pw"),result:"",total:0,totalStr:"",dice:{},css:""},new l(r,e,game.i18n.localize(`midgard5.actor-${t}-long`))}static fromUnlearnedSkill(e,t,a){var r,s=e.getRollData();return s.i={fw:t.fw,bonus:null!=(t=null==(r=null==(r=e.system.calc)?void 0:r.attributes[t.attribute])?void 0:r.bonus)?t:0},s.iType="skill",s.rolls[0]={formula:"1d20 + @i.fw + @i.bonus",enabled:!0,label:game.i18n.localize("midgard5.pw"),result:"",total:0,totalStr:"",dice:{},css:""},new l(s,e,game.i18n.localize("midgard5."+a))}static brawl(e){var t=e.getRollData();return t.i={attackBonus:0,damageBonus:0},t.rolls[0]={formula:"1d20 + @c.calc.stats.brawl + @c.calc.stats.attackBonus + @i.attackBonus",enabled:!0,label:game.i18n.localize("midgard5.attack"),result:"",total:0,totalStr:"",dice:{},css:""},t.rolls[1]={formula:"1d6 - 4 + @c.calc.stats.damageBonus + @i.damageBonus",enabled:!0,label:game.i18n.localize("midgard5.damage"),result:"",total:0,totalStr:"",dice:{},css:""},new l(t,e,game.i18n.localize("midgard5.brawl"))}static defense(e){var t=e.getRollData();return t.i={defenseBonus:0},t.rolls[0]={formula:"1d20 + @c.calc.stats.defense.value + @c.calc.stats.defenseBonus.value",enabled:!0,label:game.i18n.localize("midgard5.defense"),result:"",total:0,totalStr:"",dice:{},css:""},new l(t,e,game.i18n.localize("midgard5.defense"))}static resistanceMind(e){var t=e.getRollData();return t.i={defenseBonus:0},t.rolls[0]={formula:"1d20 + @c.calc.stats.resistanceMind.value",enabled:!0,label:game.i18n.localize("midgard5.resistanceMind"),result:"",total:0,totalStr:"",dice:{},css:""},new l(t,e,game.i18n.localize("midgard5.resistanceMind"))}static resistanceBody(e){var t=e.getRollData();return t.i={defenseBonus:0},t.rolls[0]={formula:"1d20 + @c.calc.stats.resistanceBody.value",enabled:!0,label:game.i18n.localize("midgard5.resistanceBody"),result:"",total:0,totalStr:"",dice:{},css:""},new l(t,e,game.i18n.localize("midgard5.resistanceBody"))}static parseDiceSides(e){var t=e.match(/\d*[dD]20/g);return t&&t[0]?{sides:20,type:"ew",threshold:null}:(t=e.match(/(\d+)\s*\-\s*\d*[dD]100/g))&&t[1]?{sides:100,type:"pw",threshold:parseInt(t[1])}:null}}(a.M5Roll=l).TEMPLATE_PATH="systems/midgard5e/templates/chat/roll-m5.hbs"},{"../M5Base":12}],17:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});const r=e("../rolls/M5Roll");class s extends ActorSheet{static get defaultOptions(){return mergeObject(super.defaultOptions,{template:"systems/midgard5e/templates/sheets/character/main.hbs",width:800,height:800,classes:["midgard5","sheet","character"],tabs:[{navSelector:".sheet-navigation",contentSelector:".sheet-content",initial:"base_values"}]})}getData(e){const t=this.actor;return Promise.resolve(super.getData(e)).then(e=>(t.prepareDerivedData(),e.actor=t.toObject(!1),e.data=t.system,e))}setPosition(e={}){var e=super.setPosition(e),t=this.element.find(".attributes .filler:first").width();return this.element.find(".attributes .attribute-filler-fixed").width(t),e}activateListeners(e){super.activateListeners(e),e.find(".update-lp").on("click",async e=>{e=e.target.dataset.value,e=parseInt(e);this.actor.update({data:{lp:{value:e+1}}})}),e.find(".update-ap").on("click",async e=>{e=e.target.dataset.value,e=parseInt(e);this.actor.update({data:{ap:{value:e+1}}})}),e.find(".roll-attribute-button").on("click",async e=>{let t=e.target,a=t.dataset.attribute;for(;!a;){if(!(t=t.parentElement))return;a=t.dataset.attribute}e=parseInt(t.dataset.value);await r.M5Roll.fromAttributeValue(this.actor,a,e).toMessage()}),e.find(".edit-item").on("click",async e=>{let t=e.target.parentElement,a=t.dataset.item;for(;!a;){if(!(t=t.parentElement))return;a=t.dataset.item}e=this.actor.items.get(a);console.log("edit-item",e),e.sheet.render(!0)}),e.find(".item-delete").on("click",async e=>{let t=e.target.parentElement,a=t.dataset.item;for(;!a;){if(!(t=t.parentElement))return;a=t.dataset.item}this.actor.items.get(a).delete(),this.render(!1)}),e.find(".roll-learned-button").on("click",async e=>{e=e.target.parentElement.parentElement.dataset.item;await this.actor.items.get(e).roll()}),e.find(".roll-general-button").on("click",async e=>{var e=e.target.parentElement.parentElement.dataset.skill,t=this.actor.system.skills.general[e];await r.M5Roll.fromUnlearnedSkill(this.actor,t,e).toMessage()}),e.find(".learn-button").on("click",async e=>{let t=e.target.parentElement.parentElement.dataset.skill;const a=this.actor.system.skills.general[t];this.actor.createSkill(game.i18n.localize("midgard5."+t)).then(e=>{e.update({data:{fw:a.initial,attribute:a.attribute,skill:t,type:"general"}})})}),e.find(".roll-weapon-button").on("click",async e=>{e=e.target.parentElement.parentElement.dataset.item;await this.actor.items.get(e).roll()}),e.find(".roll-brawl-button").on("click",async e=>{await r.M5Roll.brawl(this.actor).toMessage()}),e.find(".roll-defense-button").on("click",async e=>{await r.M5Roll.defense(this.actor).toMessage()}),e.find(".roll-resistanceMind-button").on("click",async e=>{await r.M5Roll.resistanceMind(this.actor).toMessage()}),e.find(".roll-resistanceBody-button").on("click",async e=>{await r.M5Roll.resistanceBody(this.actor).toMessage()}),new DragDrop({dragSelector:".items-list .item",dropSelector:".sheet-body",permissions:{dragstart:this._canDragStart.bind(this),drop:this._canDragDrop.bind(this)},callbacks:{dragstart:this._onTransferItemDragStart.bind(this),drop:this._onTransferItemDrop.bind(this)}}).bind(e[0])}_canDragStart(e){return this.options.editable&&this.actor.isOwner}_canDragDrop(e){return!0}_onTransferItemDragStart(e){var t=e.currentTarget,t=($(e.currentTarget).attr("data-item-actorid",this.actor.id),this.actor.items.get(t.dataset.itemId));if(!["skill","item","weapon","defensiveWeapon","armor","spell"].includes(t.type))return!1;t={type:"Transfer",actorId:this.actor.id,data:t.toObject(!1),tokenId:null};this.actor.isToken&&(t.tokenId=this.actor.token.id),e.dataTransfer.setData("text/plain",JSON.stringify(t))}async _onTransferItemDrop(e){var t;let a=null;try{if("Transfer"!==(a=JSON.parse(e.dataTransfer.getData("text/plain"))).type)return!1}catch(e){return!1}if(!a.data)return!1;if(a.actorId===this.actor.id)return!1;try{this.actor.createEmbeddedDocuments("Item",[duplicate(a.data)]),await(null==(t=game.actors.get(a.actorId).items.get(a.data._id))?void 0:t.delete())}catch(e){return console.error("Error transfering item between actors",e),!1}return!0}}a.default=s},{"../rolls/M5Roll":16}],18:[function(e,t,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.M5ItemSheet=void 0;const r=e("../M5Base");class s extends ItemSheet{static get defaultOptions(){return mergeObject(super.defaultOptions,{width:640,height:480,classes:["midgard5","sheet","item"]})}get template(){return`systems/midgard5e/templates/sheets/item/${this.item.type}.hbs`}getData(e){const r=this.item;return Promise.resolve(super.getData()).then(e=>{r.prepareDerivedData();var t=e.item,a=(e.rollData={},null!=(a=null==(a=this.object)?void 0:a.parent)?a:null);return a&&(e.rollData=a.getRollData()),e.data=t.system,e.flags=t.flags,e})}activateListeners(e){super.activateListeners(e),e.find(".add-mod").on("click",async e=>{var t=this.object.system.mods;t[Object.keys(t).length.toString()]={type:r.M5ModType.ATTRIBUTE,id:r.M5Attributes.ST,operation:r.M5ModOperation.ADD,value:0},this.object.update({data:{mods:t}})}),e.find(".item-delete").on("click",async e=>{let t=e.target.parentElement,a=t.dataset.item;for(;!a;){if(!(t=t.parentElement))return;a=t.dataset.item}this.item.items.get(a).delete(),this.render(!1)}),e.find(".roll-delete").on("click",async e=>{let t=e.target.parentElement,a=t.dataset.roll;for(;!a;){if(!(t=t.parentElement))return;a=t.dataset.roll}e=this.item.system.rolls.formulas;e[a]=null,this.item.update({data:{rolls:{formulas:e}}}),this.render(!1)}),e.find(".roll-create").on("click",async e=>{const t=this.item.system.rolls.formulas;var a=Object.keys(t).map(e=>parseInt(e)).sort().reverse(),r=(null!=(r=a.find(e=>!!t[e.toString()]))?r:-1)+1;console.log("roll-create",t,a,r),t[r.toString()]={formula:"1d6",label:game.i18n.localize("midgard5.roll"),enabled:!0},this.item.update({data:{rolls:{formulas:t}}}),this.render(!1)}),["item"].includes(this.object.type)&&new DragDrop({dragSelector:".item",dropSelector:null,permissions:{dragstart:this._canDragStart.bind(this),drop:this._canDragDrop.bind(this)},callbacks:{drop:this._onDropItem.bind(this)}}).bind(e[0])}_canDragStart(e){return console.log("M5ItemSheet._canDragStart",e),this.options.editable&&this.object.isOwner}_canDragDrop(e){return console.log("M5ItemSheet._canDragDrop",e),!0}async _onDropItem(t){let e;var a=this.object;t.currentTarget;try{if("Item"!==(e=JSON.parse(t.dataTransfer.getData("text/plain"))).type)return!1}catch(e){return!1}let r;if(e.pack){var t=await this.importItemFromCollection(e.pack,e.id);r=t.data}else{t=await game.items.get(e.id);if(!(r=duplicate(t)))return}if("mod"===r.type){let e=null==(t=null==a?void 0:a.system)?void 0:t.mods;e=e||[],r.id=randomID(),console.log("M5ItemSheet._onDropItem",r),e.push(r),a.update({data:{mods:e}})}}async _onDragItemStart(e){}}a.M5ItemSheet=s},{"../M5Base":12}],19:[function(e,t,a){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(a,"__esModule",{value:!0});const n=r(e("../Globals")),o=r(e("color"));class l{constructor(){}static GetCurrentTime(){return`[${(new Date).toLocaleTimeString()}] `}static log(e,t=(0,o.default)("white"),a=!1){var r=i(l.GetCurrentTime(),(0,o.default)("gray"),!1),s=i(n.default.name+" ",(0,o.default)("cyan"),!0),e=i(e,t,a);console.log(r.str+s.str+e.str,...r.params.concat(s.params,e.params))}static err(e){l.log(e,(0,o.default)("orange"))}static warn(e){l.log(e,(0,o.default)("yellow"))}static ok(e){l.log(e,(0,o.default)("green"))}}const i=(e,t,a)=>({str:"%c"+e+"%c",params:["color: "+t.hex()+";"+(a?"font-weight: bold;":""),"color: unset; font-weight: unset;"]});a.default=l},{"../Globals":9,color:6}]},{},[11]); +//# sourceMappingURL=bundle.js.map diff --git a/midgard5e/bundle.js.map b/midgard5e/bundle.js.map new file mode 100644 index 0000000..334ba8b --- /dev/null +++ b/midgard5e/bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bundle.js","sources":["dist/bundle.js"],"sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n\n},{\"color-name\":4}],2:[function(require,module,exports){\nvar conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n\n},{\"./conversions\":1,\"./route\":3}],3:[function(require,module,exports){\nvar conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n\n},{\"./conversions\":1}],4:[function(require,module,exports){\n'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n\n},{}],5:[function(require,module,exports){\n/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n\n},{\"color-name\":4,\"simple-swizzle\":8}],6:[function(require,module,exports){\n'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (obj == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n\n},{\"color-convert\":2,\"color-string\":5}],7:[function(require,module,exports){\nmodule.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n\n},{}],8:[function(require,module,exports){\n'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n\n},{\"is-arrayish\":7}],9:[function(require,module,exports){\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.default = {\r\n name: \"midgard5e\",\r\n isModule: false, // If you are developing a system rather than a module, change this to false\r\n};\r\n\n},{}],10:[function(require,module,exports){\n\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst Globals_1 = __importDefault(require(\"./Globals\"));\r\nconst preloadTemplates = async () => {\r\n const rootPath = `${Globals_1.default.isModule ? \"modules\" : \"systems\"}/${Globals_1.default.name}/templates/`;\r\n // Place relative paths in array below, e.g.:\r\n // const templates = [ rootPath + \"actor/actor-sheet.hbs\" ]\r\n // This would map to our local folder of /Assets/Templates/Actor/actor-sheet.hbs\r\n const templates = [\r\n \"sheets/character/attribute.hbs\",\r\n \"sheets/character/base_values.hbs\",\r\n \"sheets/character/skills.hbs\",\r\n \"sheets/character/gear.hbs\",\r\n \"sheets/character/spells.hbs\",\r\n \"sheets/item/rolls.hbs\",\r\n \"chat/roll-m5.hbs\"\r\n ];\r\n return loadTemplates(templates.map(s => rootPath + s));\r\n};\r\nexports.default = preloadTemplates;\r\n\n},{\"./Globals\":9}],11:[function(require,module,exports){\n\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst Logger_1 = __importDefault(require(\"./utils/Logger\"));\r\nconst M5CharacterSheet_1 = __importDefault(require(\"./module/sheets/M5CharacterSheet\"));\r\nconst PreloadTemplates_1 = __importDefault(require(\"./PreloadTemplates\"));\r\nconst M5Character_1 = require(\"./module/actors/M5Character\");\r\nconst M5ItemSheet_1 = require(\"./module/sheets/M5ItemSheet\");\r\nconst M5Item_1 = require(\"./module/items/M5Item\");\r\nHooks.once(\"init\", async () => {\r\n Logger_1.default.log(\"M5 | Initialisierung Midgard 5\");\r\n Handlebars.registerHelper(\"times\", (n, block) => {\r\n var accum = \"\";\r\n for (let i = 0; i < n; ++i)\r\n accum += block.fn(i);\r\n return accum;\r\n });\r\n Handlebars.registerHelper(\"array\", (arr, index) => {\r\n return arr[index];\r\n });\r\n Handlebars.registerHelper(\"m5concat\", (...values) => {\r\n var _a;\r\n const options = values.pop();\r\n const join = ((_a = options.hash) === null || _a === void 0 ? void 0 : _a.join) || \"\";\r\n //return new Handlebars.SafeString(values.join(join));\r\n return values.map((val) => val.toString()).join(join);\r\n });\r\n Handlebars.registerHelper(\"add\", (...values) => {\r\n const options = values.pop();\r\n return values.reduce((prev, cur) => prev + cur);\r\n });\r\n Handlebars.registerHelper(\"localizeMidgard\", (str) => {\r\n const template = Handlebars.compile(\"{{localize value}}\");\r\n return template({\r\n value: \"midgard5.\" + str,\r\n });\r\n });\r\n Handlebars.registerHelper(\"skillBonus\", (actorId, skill) => {\r\n const actor = game.actors.get(actorId);\r\n return actor.skillBonus(skill).toString();\r\n });\r\n Handlebars.registerHelper(\"skillEw\", (actorId, skill) => {\r\n const actor = game.actors.get(actorId);\r\n return actor.skillEw(skill).toString();\r\n });\r\n Handlebars.registerHelper(\"skill\", (skillId) => {\r\n return game.items.get(skillId);\r\n });\r\n Handlebars.registerHelper(\"itemValue\", (id, path) => {\r\n let obj = game.items.get(id);\r\n path.split(\".\").forEach((p) => (obj = obj[p]));\r\n return `${obj}`;\r\n });\r\n Handlebars.registerHelper(\"actorItemValue\", (actorId, itemId, path) => {\r\n //console.log(\"actorItemValue\", actorId, itemId, path)\r\n const actor = game.actors.get(actorId);\r\n let obj = actor.items.get(itemId).system;\r\n path.split(\".\").forEach((p) => {\r\n if (obj)\r\n obj = obj[p];\r\n });\r\n return `${obj}`;\r\n });\r\n Handlebars.registerHelper(\"icon\", (relpath) => {\r\n return `systems/midgard5e/assets/icons/${relpath}`;\r\n });\r\n Handlebars.registerHelper(\"isSkillInList\", (skillName, list) => {\r\n var _a, _b;\r\n for (let key in list) {\r\n if (((_b = (_a = list[key]) === null || _a === void 0 ? void 0 : _a.label) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === (skillName === null || skillName === void 0 ? void 0 : skillName.toLowerCase())) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n });\r\n // Default Sheet für Items definieren und das Standardsheet deaktivieren\r\n Items.unregisterSheet(\"core\", ItemSheet);\r\n Items.registerSheet(\"midgard5\", M5ItemSheet_1.M5ItemSheet, { makeDefault: true });\r\n // Default Sheet für Actors definieren und das Standardsheet deaktivieren\r\n Actors.unregisterSheet(\"core\", ActorSheet);\r\n Actors.registerSheet(\"midgard5\", M5CharacterSheet_1.default, { makeDefault: true });\r\n CONFIG.Actor.documentClass = M5Character_1.M5Character;\r\n CONFIG.Item.documentClass = M5Item_1.M5Item;\r\n //RegisterSettings();\r\n await (0, PreloadTemplates_1.default)();\r\n});\r\nHooks.once(\"setup\", () => {\r\n Logger_1.default.log(\"Template module is being setup.\");\r\n});\r\nHooks.once(\"ready\", () => {\r\n Logger_1.default.ok(\"Template module is now ready.\");\r\n});\r\n\n},{\"./PreloadTemplates\":10,\"./module/actors/M5Character\":13,\"./module/items/M5Item\":15,\"./module/sheets/M5CharacterSheet\":17,\"./module/sheets/M5ItemSheet\":18,\"./utils/Logger\":19}],12:[function(require,module,exports){\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.enumKeys = exports.M5ModOperation = exports.M5ModType = exports.M5Stats = exports.M5Attributes = exports.M5EwResult = void 0;\r\nvar M5EwResult;\r\n(function (M5EwResult) {\r\n M5EwResult[\"TBD\"] = \"\";\r\n M5EwResult[\"FUMBLE\"] = \"roll-ew-result-fumble\";\r\n M5EwResult[\"CRITICAL\"] = \"roll-ew-result-critical\";\r\n M5EwResult[\"HIGH\"] = \"roll-ew-result-high\";\r\n M5EwResult[\"FAIL\"] = \"roll-ew-result-fail\";\r\n M5EwResult[\"PASS\"] = \"roll-ew-result-pass\";\r\n})(M5EwResult = exports.M5EwResult || (exports.M5EwResult = {}));\r\nvar M5Attributes;\r\n(function (M5Attributes) {\r\n M5Attributes[\"ST\"] = \"st\";\r\n M5Attributes[\"GW\"] = \"gw\";\r\n M5Attributes[\"GS\"] = \"gs\";\r\n M5Attributes[\"KO\"] = \"ko\";\r\n M5Attributes[\"IN\"] = \"in\";\r\n M5Attributes[\"ZT\"] = \"zt\";\r\n M5Attributes[\"AU\"] = \"au\";\r\n M5Attributes[\"PA\"] = \"pa\";\r\n M5Attributes[\"WK\"] = \"wk\";\r\n})(M5Attributes = exports.M5Attributes || (exports.M5Attributes = {}));\r\nvar M5Stats;\r\n(function (M5Stats) {\r\n M5Stats[\"DEFENSE\"] = \"defenseBonus\";\r\n M5Stats[\"ATTACK\"] = \"attackBonus\";\r\n M5Stats[\"DAMAGE\"] = \"damageBonus\";\r\n M5Stats[\"MOVEMENT\"] = \"movement\";\r\n M5Stats[\"RESISTANCE_MIND\"] = \"resistanceMind\";\r\n M5Stats[\"RESISTANCE_BODY\"] = \"resistanceBody\";\r\n M5Stats[\"SPELL_CASTING\"] = \"spellCasting\";\r\n M5Stats[\"BRAWL\"] = \"brawl\";\r\n M5Stats[\"POISON_RESISTANCE\"] = \"poisonResistance\";\r\n M5Stats[\"LP\"] = \"lp\";\r\n M5Stats[\"AP\"] = \"ap\";\r\n})(M5Stats = exports.M5Stats || (exports.M5Stats = {}));\r\nvar M5ModType;\r\n(function (M5ModType) {\r\n M5ModType[\"ATTRIBUTE\"] = \"attribute\";\r\n M5ModType[\"STAT\"] = \"stat\";\r\n M5ModType[\"SKILL\"] = \"skill\";\r\n})(M5ModType = exports.M5ModType || (exports.M5ModType = {}));\r\nvar M5ModOperation;\r\n(function (M5ModOperation) {\r\n M5ModOperation[\"ADD_100\"] = \"add100\";\r\n M5ModOperation[\"ADD\"] = \"add\";\r\n M5ModOperation[\"SET\"] = \"set\";\r\n M5ModOperation[\"FIXED\"] = \"fixed\";\r\n})(M5ModOperation = exports.M5ModOperation || (exports.M5ModOperation = {}));\r\nfunction enumKeys(obj) {\r\n return Object.keys(obj).filter(k => Number.isNaN(+k));\r\n}\r\nexports.enumKeys = enumKeys;\r\n\n},{}],13:[function(require,module,exports){\n\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.M5Character = void 0;\r\nconst M5Base_1 = require(\"../M5Base\");\r\nconst M5ModAggregate_1 = __importDefault(require(\"./M5ModAggregate\"));\r\nclass M5Character extends Actor {\r\n // constructor(\r\n // \tdata: ConstructorParameters[0],\r\n // \tcontext?: ConstructorParameters[1]\r\n // ) {\r\n // \tsuper(data, context)\r\n // \tthis.prepareDerivedData()\r\n // }\r\n static attributeMinMax(attribute) {\r\n return Math.min(100, Math.max(0, attribute.value + attribute.bonus));\r\n }\r\n static attributeBonus(attribute) {\r\n const value = this.attributeMinMax(attribute);\r\n if (value > 95)\r\n return 2;\r\n if (value > 80)\r\n return 1;\r\n if (value > 20)\r\n return 0;\r\n if (value > 5)\r\n return -1;\r\n return -2;\r\n }\r\n derivedData(skip = {}) {\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n let ret = {\r\n level: 0,\r\n attributes: {\r\n st: { value: 0, bonus: 0, mods: [] },\r\n gs: { value: 0, bonus: 0, mods: [] },\r\n gw: { value: 0, bonus: 0, mods: [] },\r\n ko: { value: 0, bonus: 0, mods: [] },\r\n in: { value: 0, bonus: 0, mods: [] },\r\n zt: { value: 0, bonus: 0, mods: [] },\r\n au: { value: 0, bonus: 0, mods: [] },\r\n pa: { value: 0, bonus: 0, mods: [] },\r\n wk: { value: 0, bonus: 0, mods: [] },\r\n },\r\n stats: {\r\n lp: { value: 0, mods: [] },\r\n ap: { value: 0, mods: [] },\r\n armor: 0,\r\n defense: { value: 0, mods: [] },\r\n damageBonus: { value: 0, mods: [] },\r\n attackBonus: { value: 0, mods: [] },\r\n defenseBonus: { value: 0, mods: [] },\r\n movementBonus: { value: 0, mods: [] },\r\n resistanceMind: { value: 0, mods: [] },\r\n resistanceBody: { value: 0, mods: [] },\r\n spellCasting: { value: 0, mods: [] },\r\n brawl: { value: 0, mods: [] },\r\n brawlEw: 0,\r\n poisonResistance: { value: 0, mods: [] },\r\n enduranceBonus: 0,\r\n },\r\n skillMods: {},\r\n skills: {\r\n innate: {},\r\n general: {},\r\n combat: {},\r\n language: {},\r\n custom: {},\r\n },\r\n gear: {\r\n weapons: {},\r\n defensiveWeapons: {},\r\n armor: {},\r\n items: {},\r\n },\r\n spells: {},\r\n };\r\n const context = this;\r\n if (!context)\r\n return null;\r\n const data = this.system;\r\n if (!data)\r\n return null;\r\n ret.level = M5Character.levelFromExp(data.es);\r\n ret.attributes.st.value = M5Character.attributeMinMax(data.attributes.st); // TODO item effects\r\n ret.attributes.gs.value = M5Character.attributeMinMax(data.attributes.gs);\r\n ret.attributes.gw.value = M5Character.attributeMinMax(data.attributes.gw);\r\n ret.attributes.ko.value = M5Character.attributeMinMax(data.attributes.ko);\r\n ret.attributes.in.value = M5Character.attributeMinMax(data.attributes.in);\r\n ret.attributes.zt.value = M5Character.attributeMinMax(data.attributes.zt);\r\n ret.attributes.au.value = M5Character.attributeMinMax(data.attributes.au);\r\n ret.attributes.pa.value = M5Character.attributeMinMax(data.attributes.pa);\r\n ret.attributes.wk.value = M5Character.attributeMinMax(data.attributes.wk);\r\n ret.attributes.st.bonus = M5Character.attributeBonus(data.attributes.st);\r\n ret.attributes.gs.bonus = M5Character.attributeBonus(data.attributes.gs);\r\n ret.attributes.gw.bonus = M5Character.attributeBonus(data.attributes.gw);\r\n ret.attributes.ko.bonus = M5Character.attributeBonus(data.attributes.ko);\r\n ret.attributes.in.bonus = M5Character.attributeBonus(data.attributes.in);\r\n ret.attributes.zt.bonus = M5Character.attributeBonus(data.attributes.zt);\r\n ret.attributes.au.bonus = M5Character.attributeBonus(data.attributes.au);\r\n ret.attributes.pa.bonus = M5Character.attributeBonus(data.attributes.pa);\r\n ret.attributes.wk.bonus = M5Character.attributeBonus(data.attributes.wk);\r\n ret.stats.lp = this.modResult(data.lp);\r\n ret.stats.ap = this.modResult(data.ap);\r\n ret.stats.armor = 0;\r\n ret.stats.defense = this.modResult(M5Character.defenseFromLevel(ret.level));\r\n ret.stats.damageBonus = this.modResult(Math.floor(ret.attributes.st.value / 20) + Math.floor(ret.attributes.gs.value / 30) - 3);\r\n ret.stats.attackBonus = this.modResult(ret.attributes.gs.bonus);\r\n ret.stats.defenseBonus = this.modResult(ret.attributes.gw.bonus);\r\n ret.stats.movementBonus = this.modResult(0);\r\n ret.stats.resistanceMind = this.modResult((data.info.magicUsing ? 2 : 0) + ret.stats.defense.value + (data.info.race === \"Mensch\" ? ret.attributes.in.bonus : this.raceBonus(data.info.race)));\r\n ret.stats.resistanceBody = this.modResult((data.info.magicUsing ? 2 : 1) + ret.stats.defense.value + (data.info.race === \"Mensch\" ? ret.attributes.ko.bonus : this.raceBonus(data.info.race)));\r\n ret.stats.spellCasting = this.modResult((data.info.magicUsing ? M5Character.spellCastingFromLevel(ret.level) : 3) + ret.attributes.zt.bonus);\r\n ret.stats.brawl = this.modResult(Math.floor((ret.attributes.st.value + ret.attributes.gw.value) / 20));\r\n ret.stats.brawlEw = ret.stats.brawl.value + ret.stats.attackBonus.value;\r\n ret.stats.poisonResistance = this.modResult(30 + Math.floor(ret.attributes.ko.value / 2));\r\n ret.stats.enduranceBonus = Math.floor(ret.attributes.ko.value / 10) + Math.floor(ret.attributes.st.value / 20);\r\n if (!(skip === null || skip === void 0 ? void 0 : skip.mods)) {\r\n const aggregate = new M5ModAggregate_1.default(data, ret);\r\n (_a = context.items) === null || _a === void 0 ? void 0 : _a.filter((item) => item.type === \"item\").forEach((item) => {\r\n const mods = item.system.mods;\r\n //console.log(\"Actor item mods\", mods)\r\n Object.keys(mods).forEach((modIndex) => {\r\n const mod = mods[modIndex];\r\n aggregate.push(mod, item.name);\r\n });\r\n });\r\n ret.skillMods = aggregate.calculate();\r\n }\r\n if (!(skip === null || skip === void 0 ? void 0 : skip.items)) {\r\n (_b = context.items) === null || _b === void 0 ? void 0 : _b.filter((item) => item.type === \"item\").forEach((item) => {\r\n item.prepareDerivedData();\r\n let label = item.name;\r\n if (item.system.magic) {\r\n label += \"*\";\r\n }\r\n ret.gear.items[item.id] = {\r\n label: label,\r\n magic: item.system.magic,\r\n calc: item.system.calc,\r\n };\r\n });\r\n }\r\n if (!(skip === null || skip === void 0 ? void 0 : skip.skills)) {\r\n (_c = context.items) === null || _c === void 0 ? void 0 : _c.filter((item) => item.type === \"skill\").forEach((item) => {\r\n item.prepareDerivedData();\r\n const skillMap = ret.skills[item.system.type];\r\n skillMap[item.id] = {\r\n label: item.name,\r\n fw: item.system.fw,\r\n attribute: item.system.attribute,\r\n pp: item.system.pp,\r\n calc: item.system.calc,\r\n };\r\n });\r\n }\r\n if (!(skip === null || skip === void 0 ? void 0 : skip.weapons)) {\r\n (_d = context.items) === null || _d === void 0 ? void 0 : _d.filter((item) => item.type === \"weapon\").forEach((item) => {\r\n item.prepareDerivedData();\r\n let label = item.name;\r\n if (item.system.magic) {\r\n label +=\r\n \"*(\" +\r\n (item.system.stats.attackBonus < 0 ? \"\" : \"+\") +\r\n item.system.stats.attackBonus +\r\n \"/\" +\r\n (item.system.stats.damageBonus < 0 ? \"\" : \"+\") +\r\n item.system.stats.damageBonus +\r\n \")\";\r\n }\r\n ret.gear.weapons[item.id] = {\r\n label: label,\r\n skillId: item.system.skillId,\r\n magic: item.system.magic,\r\n calc: item.system.calc,\r\n };\r\n });\r\n }\r\n if (!(skip === null || skip === void 0 ? void 0 : skip.defensiveWeapons)) {\r\n (_e = context.items) === null || _e === void 0 ? void 0 : _e.filter((item) => item.type === \"defensiveWeapon\").forEach((item) => {\r\n item.prepareDerivedData();\r\n let label = item.name;\r\n if (item.system.magic) {\r\n label += \"*(\" + (item.system.stats.defenseBonus < 0 ? \"\" : \"+\") + item.system.stats.defenseBonus + \")\";\r\n }\r\n ret.gear.defensiveWeapons[item.id] = {\r\n label: label,\r\n skillId: item.system.skillId,\r\n magic: item.system.magic,\r\n calc: item.system.calc,\r\n };\r\n });\r\n }\r\n if (!(skip === null || skip === void 0 ? void 0 : skip.armor)) {\r\n (_f = context.items) === null || _f === void 0 ? void 0 : _f.filter((item) => item.type === \"armor\").forEach((item) => {\r\n item.prepareDerivedData();\r\n let label = item.name;\r\n if (item.system.magic) {\r\n label += \"*\";\r\n }\r\n ret.gear.armor[item.id] = {\r\n label: label,\r\n magic: item.system.magic,\r\n calc: item.system.calc,\r\n };\r\n });\r\n }\r\n if (!(skip === null || skip === void 0 ? void 0 : skip.spells)) {\r\n (_g = context.items) === null || _g === void 0 ? void 0 : _g.filter((item) => item.type === \"spell\").forEach((item) => {\r\n item.prepareDerivedData();\r\n ret.spells[item.id] = {\r\n label: item.name,\r\n process: \"midgard5.spell-process-\" + item.system.process,\r\n calc: item.system.calc,\r\n };\r\n });\r\n }\r\n return ret;\r\n }\r\n raceBonus(race) {\r\n switch (race) {\r\n case \"Elf\":\r\n return 2;\r\n case \"Gnom\":\r\n return 4;\r\n case \"Halbling\":\r\n return 4;\r\n case \"Zwerg\":\r\n return 3;\r\n default:\r\n return 0;\r\n }\r\n }\r\n prepareDerivedData() {\r\n console.log(\"M5Character\", \"prepareDerivedData\");\r\n const data = this.system;\r\n data.calc = this.derivedData({});\r\n }\r\n getRollData() {\r\n return {\r\n c: this.system,\r\n i: null,\r\n iType: null,\r\n rolls: {},\r\n res: {},\r\n };\r\n }\r\n static levelFromExp(exp) {\r\n const ret = M5Character.levelThreshold.findIndex((val) => val > exp);\r\n return ret === -1 ? M5Character.levelThreshold.length : ret;\r\n }\r\n static defenseFromLevel(lvl) {\r\n const ret = M5Character.defenseThreshold.find((val) => val[0] <= lvl);\r\n return ret ? ret[1] : M5Character.defenseThreshold[M5Character.defenseThreshold.length - 1][1];\r\n }\r\n static spellCastingFromLevel(lvl) {\r\n const ret = M5Character.spellCastingThreshold.find((val) => val[0] <= lvl);\r\n return ret ? ret[1] : M5Character.spellCastingThreshold[M5Character.spellCastingThreshold.length - 1][1];\r\n }\r\n skillBonus(skill, skillName) {\r\n var _a, _b, _c;\r\n const data = this.system;\r\n return (_c = (_b = (_a = data.calc) === null || _a === void 0 ? void 0 : _a.attributes[skill.attribute]) === null || _b === void 0 ? void 0 : _b.bonus) !== null && _c !== void 0 ? _c : 0;\r\n }\r\n skillEw(skill, skillName) {\r\n const bonus = this.skillBonus(skill, skillName);\r\n return skill.fw + bonus;\r\n }\r\n attribute(name) {\r\n const data = this.system;\r\n return data === null || data === void 0 ? void 0 : data.attributes[name];\r\n }\r\n createSkill(skillName) {\r\n const itemData = {\r\n name: skillName,\r\n type: \"skill\",\r\n };\r\n return this.createEmbeddedDocuments(\"Item\", [itemData]).then((docs) => {\r\n const item = docs[0];\r\n return item;\r\n });\r\n }\r\n getItem(itemId) {\r\n if (!this.items)\r\n return null;\r\n return this.getEmbeddedDocument(\"Item\", itemId);\r\n }\r\n modResult(value) {\r\n return {\r\n value: value,\r\n mods: [\r\n {\r\n item: game.i18n.localize(\"ACTOR.TypeCharacter\"),\r\n operation: M5Base_1.M5ModOperation.SET,\r\n value: value,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\nexports.M5Character = M5Character;\r\nM5Character.levelThreshold = [\r\n 0, 100, 250, 500, 750, 1000, 1250, 1500, 1750, 2000, 2500, 3000, 3500, 4000, 4500, 5000, 6000, 7000, 8000, 9000, 10000, 12500, 15000, 17500, 20000, 22500, 25000, 30000, 35000, 40000,\r\n 45000, 50000, 55000, 60000, 65000, 70000, 75000, 80000, 85000, 90000, 95000, 100000, 105000, 110000, 115000, 120000, 125000, 130000, 135000, 140000, 145000, 150000, 155000, 160000,\r\n 165000, 170000, 175000, 180000, 185000, 190000, 195000, 200000, 205000, 210000, 215000, 220000, 225000, 230000, 235000, 240000, 245000, 250000, 255000, 260000, 265000, 270000, 275000,\r\n 280000,\r\n];\r\nM5Character.defenseThreshold = [\r\n [30, 18],\r\n [25, 17],\r\n [20, 16],\r\n [15, 15],\r\n [10, 14],\r\n [5, 13],\r\n [2, 12],\r\n [1, 11],\r\n];\r\nM5Character.spellCastingThreshold = [\r\n [20, 18],\r\n [15, 17],\r\n [10, 16],\r\n [8, 15],\r\n [6, 14],\r\n [4, 13],\r\n [2, 12],\r\n [1, 11],\r\n];\r\n\n},{\"../M5Base\":12,\"./M5ModAggregate\":14}],14:[function(require,module,exports){\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst M5Base_1 = require(\"../M5Base\");\r\nclass M5ModAggregate {\r\n constructor(data, calc) {\r\n this.data = data;\r\n this.calc = calc;\r\n this.attributes = new Map();\r\n this.stats = new Map();\r\n this.skills = new Map();\r\n const characterString = game.i18n.localize(\"ACTOR.TypeCharacter\");\r\n this.push({ type: M5Base_1.M5ModType.ATTRIBUTE, id: M5Base_1.M5Attributes.ST, operation: M5Base_1.M5ModOperation.SET, value: data.attributes.st.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.ATTRIBUTE, id: M5Base_1.M5Attributes.GS, operation: M5Base_1.M5ModOperation.SET, value: data.attributes.gs.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.ATTRIBUTE, id: M5Base_1.M5Attributes.GW, operation: M5Base_1.M5ModOperation.SET, value: data.attributes.gw.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.ATTRIBUTE, id: M5Base_1.M5Attributes.KO, operation: M5Base_1.M5ModOperation.SET, value: data.attributes.ko.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.ATTRIBUTE, id: M5Base_1.M5Attributes.IN, operation: M5Base_1.M5ModOperation.SET, value: data.attributes.in.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.ATTRIBUTE, id: M5Base_1.M5Attributes.ZT, operation: M5Base_1.M5ModOperation.SET, value: data.attributes.zt.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.ATTRIBUTE, id: M5Base_1.M5Attributes.AU, operation: M5Base_1.M5ModOperation.SET, value: data.attributes.au.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.ATTRIBUTE, id: M5Base_1.M5Attributes.PA, operation: M5Base_1.M5ModOperation.SET, value: data.attributes.pa.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.ATTRIBUTE, id: M5Base_1.M5Attributes.WK, operation: M5Base_1.M5ModOperation.SET, value: data.attributes.wk.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.ATTRIBUTE, id: M5Base_1.M5Attributes.ST, operation: M5Base_1.M5ModOperation.ADD_100, value: data.attributes.st.bonus }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.ATTRIBUTE, id: M5Base_1.M5Attributes.GS, operation: M5Base_1.M5ModOperation.ADD_100, value: data.attributes.gs.bonus }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.ATTRIBUTE, id: M5Base_1.M5Attributes.GW, operation: M5Base_1.M5ModOperation.ADD_100, value: data.attributes.gw.bonus }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.ATTRIBUTE, id: M5Base_1.M5Attributes.KO, operation: M5Base_1.M5ModOperation.ADD_100, value: data.attributes.ko.bonus }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.ATTRIBUTE, id: M5Base_1.M5Attributes.IN, operation: M5Base_1.M5ModOperation.ADD_100, value: data.attributes.in.bonus }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.ATTRIBUTE, id: M5Base_1.M5Attributes.ZT, operation: M5Base_1.M5ModOperation.ADD_100, value: data.attributes.zt.bonus }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.ATTRIBUTE, id: M5Base_1.M5Attributes.AU, operation: M5Base_1.M5ModOperation.ADD_100, value: data.attributes.au.bonus }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.ATTRIBUTE, id: M5Base_1.M5Attributes.PA, operation: M5Base_1.M5ModOperation.ADD_100, value: data.attributes.pa.bonus }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.ATTRIBUTE, id: M5Base_1.M5Attributes.WK, operation: M5Base_1.M5ModOperation.ADD_100, value: data.attributes.wk.bonus }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.STAT, id: M5Base_1.M5Stats.DEFENSE, operation: M5Base_1.M5ModOperation.SET, value: calc.stats.defenseBonus.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.STAT, id: M5Base_1.M5Stats.ATTACK, operation: M5Base_1.M5ModOperation.SET, value: calc.stats.attackBonus.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.STAT, id: M5Base_1.M5Stats.DAMAGE, operation: M5Base_1.M5ModOperation.SET, value: calc.stats.damageBonus.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.STAT, id: M5Base_1.M5Stats.MOVEMENT, operation: M5Base_1.M5ModOperation.SET, value: calc.stats.movementBonus.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.STAT, id: M5Base_1.M5Stats.RESISTANCE_MIND, operation: M5Base_1.M5ModOperation.SET, value: calc.stats.resistanceMind.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.STAT, id: M5Base_1.M5Stats.RESISTANCE_BODY, operation: M5Base_1.M5ModOperation.SET, value: calc.stats.resistanceBody.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.STAT, id: M5Base_1.M5Stats.SPELL_CASTING, operation: M5Base_1.M5ModOperation.SET, value: calc.stats.spellCasting.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.STAT, id: M5Base_1.M5Stats.BRAWL, operation: M5Base_1.M5ModOperation.SET, value: calc.stats.brawl.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.STAT, id: M5Base_1.M5Stats.POISON_RESISTANCE, operation: M5Base_1.M5ModOperation.SET, value: calc.stats.poisonResistance.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.STAT, id: M5Base_1.M5Stats.LP, operation: M5Base_1.M5ModOperation.SET, value: calc.stats.lp.value }, characterString);\r\n this.push({ type: M5Base_1.M5ModType.STAT, id: M5Base_1.M5Stats.AP, operation: M5Base_1.M5ModOperation.SET, value: calc.stats.ap.value }, characterString);\r\n }\r\n push(mod, source) {\r\n if (!(mod === null || mod === void 0 ? void 0 : mod.id) || mod.id === \"\")\r\n return;\r\n let map = null;\r\n if (mod.type === M5Base_1.M5ModType.ATTRIBUTE)\r\n map = this.attributes;\r\n else if (mod.type === M5Base_1.M5ModType.STAT)\r\n map = this.stats;\r\n else if (mod.type === M5Base_1.M5ModType.SKILL)\r\n map = this.skills;\r\n if (map) {\r\n const pair = {\r\n mod: mod,\r\n source: source\r\n };\r\n if (map.has(mod.id))\r\n map.get(mod.id).push(pair);\r\n else\r\n map.set(mod.id, [pair]);\r\n }\r\n }\r\n calculate() {\r\n const calc = this.calc;\r\n this.attributes.forEach((pairs, id) => {\r\n const res = M5ModAggregate.processPairs(pairs);\r\n calc.attributes[id] = {\r\n value: res.value,\r\n bonus: M5ModAggregate.attributeBonus(res.value),\r\n mods: res.mods\r\n };\r\n //console.log(\"calc.attributes.\" + id, calc.attributes[id])\r\n });\r\n this.stats.forEach((pairs, id) => {\r\n const res = M5ModAggregate.processPairs(pairs);\r\n calc.stats[id] = res;\r\n });\r\n const ret = {};\r\n this.skills.forEach((pairs, id) => {\r\n ret[id] = pairs;\r\n });\r\n return ret;\r\n }\r\n static pairAsSource(pair) {\r\n return {\r\n operation: pair.mod.operation,\r\n value: pair.mod.value,\r\n item: pair.source\r\n };\r\n }\r\n static processPairs(arr) {\r\n let ret = {\r\n mods: [],\r\n value: 0\r\n };\r\n let mods = arr.filter(pair => pair.mod.operation === M5Base_1.M5ModOperation.FIXED).sort((a, b) => b.mod.value - a.mod.value);\r\n let pair = mods.length === 0 ? null : mods[0];\r\n if (pair) {\r\n ret.mods.push(this.pairAsSource(pair));\r\n ret.value = pair.mod.value;\r\n }\r\n else {\r\n mods = arr.filter(pair => pair.mod.operation === M5Base_1.M5ModOperation.SET).sort((a, b) => b.mod.value - a.mod.value);\r\n if (mods.length !== 0) {\r\n ret.mods.push(this.pairAsSource(mods[0]));\r\n ret.value = mods[0].mod.value;\r\n }\r\n mods = arr.filter(pair => pair.mod.operation === M5Base_1.M5ModOperation.ADD_100);\r\n if (mods.length !== 0) {\r\n ret.mods = ret.mods.concat(mods.map(this.pairAsSource));\r\n const bonus = mods.map(p => p.mod.value).reduce((a, b) => a + b, 0);\r\n ret.value = Math.min(100, Math.max(0, ret.value + bonus));\r\n }\r\n mods = arr.filter(pair => pair.mod.operation === M5Base_1.M5ModOperation.ADD);\r\n if (mods.length !== 0) {\r\n ret.mods = ret.mods.concat(mods.map(this.pairAsSource));\r\n const bonus = mods.map(p => p.mod.value).reduce((a, b) => a + b, 0);\r\n ret.value = Math.max(0, ret.value + bonus);\r\n }\r\n }\r\n return ret;\r\n }\r\n static attributeMinMax(attribute) {\r\n return Math.min(100, Math.max(0, attribute.value + attribute.bonus));\r\n }\r\n static attributeBonus(value) {\r\n if (value > 95)\r\n return 2;\r\n if (value > 80)\r\n return 1;\r\n if (value > 20)\r\n return 0;\r\n if (value > 5)\r\n return -1;\r\n return -2;\r\n }\r\n}\r\nexports.default = M5ModAggregate;\r\n\n},{\"../M5Base\":12}],15:[function(require,module,exports){\n\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.M5Item = void 0;\r\nconst M5ModAggregate_1 = __importDefault(require(\"../actors/M5ModAggregate\"));\r\nconst M5Base_1 = require(\"../M5Base\");\r\nconst M5Roll_1 = require(\"../rolls/M5Roll\");\r\nclass M5Item extends Item {\r\n prepareDerivedData() {\r\n const itemId = this.id;\r\n const itemType = this.type;\r\n const actor = this.actor;\r\n const character = actor;\r\n const itemData = this.system;\r\n const calc = itemData.calc;\r\n if (itemType === \"skill\") {\r\n calc.fw = itemData.fw;\r\n calc.bonus = 0;\r\n let pairs = [\r\n {\r\n source: this.name,\r\n mod: {\r\n type: M5Base_1.M5ModType.SKILL,\r\n id: itemId,\r\n operation: M5Base_1.M5ModOperation.SET,\r\n value: itemData.fw,\r\n },\r\n },\r\n ];\r\n if (character) {\r\n const actorCalc = character.derivedData({ skills: true, weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true });\r\n if ((actorCalc === null || actorCalc === void 0 ? void 0 : actorCalc.skillMods) && Object.keys(actorCalc.skillMods).indexOf(itemId) !== -1) {\r\n pairs = pairs.concat(actorCalc.skillMods[itemId]);\r\n }\r\n if ((itemData === null || itemData === void 0 ? void 0 : itemData.attribute) && itemData.attribute !== \"\") {\r\n pairs.push({\r\n source: this.name,\r\n mod: {\r\n type: M5Base_1.M5ModType.SKILL,\r\n id: itemId,\r\n operation: M5Base_1.M5ModOperation.ADD,\r\n value: actorCalc.attributes[itemData.attribute].bonus,\r\n },\r\n });\r\n }\r\n }\r\n const res = M5ModAggregate_1.default.processPairs(pairs);\r\n res.mods.forEach((mod) => {\r\n if ([M5Base_1.M5ModOperation.SET, M5Base_1.M5ModOperation.FIXED].includes(mod.operation))\r\n calc.fw = mod.value;\r\n else\r\n calc.bonus += mod.value;\r\n });\r\n calc.ew = calc.fw + calc.bonus;\r\n calc.sources = res.mods;\r\n }\r\n else if (itemType === \"weapon\") {\r\n calc.fw = 0;\r\n calc.bonus = 0;\r\n calc.special = itemData.special ? 2 : 0;\r\n calc.ew = calc.special + itemData.stats.attackBonus;\r\n calc.combatSkills = null;\r\n if (actor) {\r\n const actorCalc = character.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true });\r\n if (actorCalc) {\r\n calc.ew += actorCalc.stats.attackBonus.value;\r\n calc.combatSkills = actorCalc.skills.combat;\r\n }\r\n const skill = character.getItem(itemData.skillId);\r\n //console.log(\"M5Item.prepareDerivedData:weapon\", itemData, skill?.system)\r\n if (skill) {\r\n skill.prepareDerivedData();\r\n const skillData = skill.system;\r\n calc.ew += skillData.calc.ew;\r\n calc.bonus += skillData.calc.bonus;\r\n calc.fw += skillData.fw;\r\n }\r\n }\r\n }\r\n else if (itemType === \"defensiveWeapon\") {\r\n calc.fw = 0;\r\n calc.bonus = 0;\r\n calc.special = itemData.special ? 2 : 0;\r\n calc.ew = calc.special + itemData.stats.defenseBonus;\r\n calc.combatSkills = null;\r\n if (actor) {\r\n const actorCalc = character.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true });\r\n if (actorCalc) {\r\n calc.ew += actorCalc.stats.defense.value + actorCalc.stats.defenseBonus.value;\r\n calc.combatSkills = actorCalc.skills.combat;\r\n }\r\n const skill = character.getItem(itemData.skillId);\r\n //console.log(\"M5Item.prepareDerivedData:weapon\", itemData, skill?.system)\r\n if (skill) {\r\n skill.prepareDerivedData();\r\n const skillData = skill.system;\r\n calc.ew += skillData.calc.ew;\r\n calc.bonus += skillData.calc.bonus;\r\n calc.fw += skillData.fw;\r\n }\r\n }\r\n }\r\n else if (itemType === \"spell\") {\r\n calc.fw = 0;\r\n if (actor) {\r\n const actorCalc = character.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true });\r\n if (actorCalc) {\r\n calc.ew = actorCalc.stats.spellCasting.value;\r\n }\r\n }\r\n }\r\n else if (itemType === \"item\") {\r\n calc.mods = {};\r\n Object.keys(itemData === null || itemData === void 0 ? void 0 : itemData.mods).forEach((key) => {\r\n const mod = itemData.mods[key];\r\n const modCalc = {};\r\n switch (mod.type) {\r\n case M5Base_1.M5ModType.ATTRIBUTE: {\r\n for (const key of (0, M5Base_1.enumKeys)(M5Base_1.M5Attributes)) {\r\n const val = M5Base_1.M5Attributes[key];\r\n modCalc[val] = game.i18n.localize(`midgard5.actor-${val}-long`);\r\n }\r\n break;\r\n }\r\n case M5Base_1.M5ModType.STAT: {\r\n for (const key of (0, M5Base_1.enumKeys)(M5Base_1.M5Stats)) {\r\n const val = M5Base_1.M5Stats[key];\r\n modCalc[val] = game.i18n.localize(`midgard5.mod-stat-${val}`);\r\n }\r\n break;\r\n }\r\n case M5Base_1.M5ModType.SKILL: {\r\n if (character) {\r\n const actorCalc = character.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true });\r\n if (actorCalc) {\r\n let category = game.i18n.localize(\"midgard5.skill\");\r\n Object.keys(actorCalc.skills.general).forEach((skillId) => {\r\n const skill = character.getItem(skillId);\r\n if (skill)\r\n modCalc[skillId] = `${category}: ${skill.name}`;\r\n });\r\n category = game.i18n.localize(\"midgard5.language\");\r\n Object.keys(actorCalc.skills.language).forEach((skillId) => {\r\n const skill = character.getItem(skillId);\r\n if (skill)\r\n modCalc[skillId] = `${category}: ${skill.name}`;\r\n });\r\n category = game.i18n.localize(\"midgard5.weapon-skill\");\r\n Object.keys(actorCalc.skills.combat).forEach((skillId) => {\r\n const skill = character.getItem(skillId);\r\n if (skill)\r\n modCalc[skillId] = `${category}: ${skill.name}`;\r\n });\r\n category = game.i18n.localize(\"midgard5.innate-ability\");\r\n Object.keys(actorCalc.skills.innate).forEach((skillId) => {\r\n const skill = character.getItem(skillId);\r\n if (skill)\r\n modCalc[skillId] = `${category}: ${skill.name}`;\r\n });\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n calc.mods[key] = modCalc;\r\n });\r\n }\r\n }\r\n getRollData() {\r\n var _a;\r\n const actor = this.actor;\r\n const item = this;\r\n let ret = (_a = actor === null || actor === void 0 ? void 0 : actor.getRollData()) !== null && _a !== void 0 ? _a : {\r\n c: null,\r\n i: null,\r\n iType: null,\r\n rolls: {},\r\n res: {},\r\n };\r\n ret.i = item.system;\r\n ret.iType = item.type;\r\n return ret;\r\n }\r\n async roll() {\r\n var _a, _b;\r\n const item = this;\r\n // Initialize chat data.\r\n const speaker = ChatMessage.getSpeaker({ actor: this.actor });\r\n const rollMode = game.settings.get(\"core\", \"rollMode\");\r\n const label = `[${item.type}] ${item.name}`;\r\n // If there's no roll data, send a chat message.\r\n const formulaNames = ((_a = item.system.rolls) === null || _a === void 0 ? void 0 : _a.formulas) ? Object.keys(item.system.rolls.formulas) : [];\r\n if (formulaNames.length > 0) {\r\n const rollData = this.getRollData();\r\n formulaNames.forEach((formulaName) => {\r\n const formula = item.system.rolls.formulas[formulaName];\r\n if (formula) {\r\n rollData.rolls[formulaName] = {\r\n formula: formula.formula,\r\n label: formula.label,\r\n enabled: formula.enabled,\r\n result: \"\",\r\n total: 0,\r\n totalStr: \"\",\r\n dice: {},\r\n };\r\n }\r\n });\r\n const roll = new M5Roll_1.M5Roll(rollData, this.actor, item.name);\r\n return roll.toMessage();\r\n }\r\n else {\r\n ChatMessage.create({\r\n speaker: speaker,\r\n rollMode: rollMode,\r\n flavor: label,\r\n content: (_b = item.system.description) !== null && _b !== void 0 ? _b : \"\",\r\n });\r\n return null;\r\n }\r\n }\r\n getItem(itemId) {\r\n return this.getEmbeddedDocument(\"Item\", itemId);\r\n }\r\n}\r\nexports.M5Item = M5Item;\r\nM5Item.SKILL = \"skill\";\r\n\n},{\"../M5Base\":12,\"../actors/M5ModAggregate\":14,\"../rolls/M5Roll\":16}],16:[function(require,module,exports){\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.M5Roll = void 0;\r\nconst M5Base_1 = require(\"../M5Base\");\r\nclass M5Roll {\r\n constructor(data, actor, label) {\r\n this.data = data;\r\n this.actor = actor;\r\n this.label = label;\r\n this._evaluated = false;\r\n this._total = 0;\r\n this.pool = null;\r\n //super(null)\r\n //this.data = rollData\r\n }\r\n // @ts-ignore\r\n //override evaluate(options?: InexactPartial): Evaluated> | Promise>> {\r\n evaluate() {\r\n const indexMap = new Map();\r\n const rollNames = Object.keys(this.data.rolls);\r\n const rolls = rollNames\r\n .filter((rollName) => this.data.rolls[rollName].enabled)\r\n .map((rollName, index) => {\r\n indexMap.set(index, rollName);\r\n const formula = this.data.rolls[rollName];\r\n const roll = new Roll(formula.formula, this.data);\r\n return roll;\r\n });\r\n this.pool = PoolTerm.fromRolls(rolls);\r\n console.log(\"evaluate\", this._evaluated, this.pool);\r\n return this.pool.evaluate({ async: true }).then((results) => {\r\n this._total = 0;\r\n results.rolls.forEach((roll, index) => {\r\n const rollIndex = indexMap.get(index);\r\n const rollResult = this.data.rolls[rollIndex];\r\n rollResult.result = roll.result;\r\n rollResult.total = roll.total;\r\n rollResult.totalStr = roll.total.toString();\r\n this._total += roll.total;\r\n let rowRes = M5Base_1.M5EwResult.TBD;\r\n let face100 = -1;\r\n roll.dice.forEach((d, dIndex) => {\r\n rollResult.dice[dIndex.toString()] = d.total;\r\n if (rowRes === M5Base_1.M5EwResult.TBD && dIndex === 0) {\r\n if (d.faces === 20) {\r\n //if (rollResult.type === \"ew\") {\r\n if (d.total === 1)\r\n rowRes = M5Base_1.M5EwResult.FUMBLE;\r\n else if (d.total === 20)\r\n rowRes = M5Base_1.M5EwResult.CRITICAL;\r\n else if (d.total >= 16)\r\n rowRes = M5Base_1.M5EwResult.HIGH;\r\n }\r\n else if (d.faces === 100) {\r\n face100 = d.total;\r\n }\r\n }\r\n });\r\n const parseResult = M5Roll.parseDiceSides(rollResult.formula);\r\n //console.log(\"evaluate roll\", parseResult)\r\n if ((parseResult === null || parseResult === void 0 ? void 0 : parseResult.sides) === 20) {\r\n if (roll.total < 20) {\r\n if (rowRes === M5Base_1.M5EwResult.TBD || rowRes === M5Base_1.M5EwResult.HIGH)\r\n rowRes = M5Base_1.M5EwResult.FAIL;\r\n }\r\n else {\r\n if (rowRes === M5Base_1.M5EwResult.TBD)\r\n rowRes = M5Base_1.M5EwResult.PASS;\r\n }\r\n }\r\n else if (face100 >= 0) {\r\n const threshold100 = roll.total + face100;\r\n const threshold = Math.floor(threshold100 / 10);\r\n if (face100 === 100) {\r\n if (rowRes === M5Base_1.M5EwResult.TBD)\r\n rowRes = M5Base_1.M5EwResult.FUMBLE;\r\n }\r\n else if (roll.total < 0) {\r\n if (rowRes === M5Base_1.M5EwResult.TBD)\r\n rowRes = M5Base_1.M5EwResult.FAIL;\r\n }\r\n else if (face100 <= threshold) {\r\n if (rowRes === M5Base_1.M5EwResult.TBD)\r\n rowRes = M5Base_1.M5EwResult.CRITICAL;\r\n }\r\n else {\r\n if (rowRes === M5Base_1.M5EwResult.TBD)\r\n rowRes = M5Base_1.M5EwResult.PASS;\r\n }\r\n }\r\n rollResult.css = rowRes;\r\n });\r\n this.data.res.label = this.label;\r\n this._evaluated = true;\r\n return this;\r\n });\r\n }\r\n async render() {\r\n return renderTemplate(M5Roll.TEMPLATE_PATH, this.data);\r\n }\r\n async toMessage() {\r\n if (!this._evaluated)\r\n await this.evaluate();\r\n const rMode = game.settings.get(\"core\", \"rollMode\");\r\n const chatData = {\r\n type: CONST.CHAT_MESSAGE_TYPES.ROLL,\r\n content: await this.render(),\r\n speaker: ChatMessage.getSpeaker({ actor: this.actor }),\r\n sound: CONFIG.sounds.dice,\r\n roll: Roll.fromTerms([this.pool]),\r\n };\r\n ChatMessage.applyRollMode(chatData, rMode);\r\n return ChatMessage.create(chatData);\r\n }\r\n static fromAttribute(actor, attributeKey) {\r\n const character = actor;\r\n const attribute = character.attribute(attributeKey);\r\n const rollData = actor.getRollData();\r\n rollData.i = attribute.value + attribute.bonus;\r\n rollData.rolls[\"0\"] = {\r\n formula: \"@i - 1d100\",\r\n enabled: true,\r\n label: game.i18n.localize(\"midgard5.pw\"),\r\n result: \"\",\r\n total: 0,\r\n totalStr: \"\",\r\n dice: {},\r\n css: \"\",\r\n };\r\n return new M5Roll(rollData, actor, game.i18n.localize(`midgard5.actor-${attributeKey}-long`));\r\n }\r\n static fromAttributeValue(actor, attributeKey, attributeValue) {\r\n const rollData = actor.getRollData();\r\n rollData.i = attributeValue;\r\n rollData.rolls[\"0\"] = {\r\n formula: \"@i - 1d100\",\r\n enabled: true,\r\n label: game.i18n.localize(\"midgard5.pw\"),\r\n result: \"\",\r\n total: 0,\r\n totalStr: \"\",\r\n dice: {},\r\n css: \"\",\r\n };\r\n return new M5Roll(rollData, actor, game.i18n.localize(`midgard5.actor-${attributeKey}-long`));\r\n }\r\n static fromUnlearnedSkill(actor, skill, skillName) {\r\n var _a, _b, _c;\r\n const rollData = actor.getRollData();\r\n rollData.i = {\r\n fw: skill.fw,\r\n bonus: (_c = (_b = (_a = actor.system.calc) === null || _a === void 0 ? void 0 : _a.attributes[skill.attribute]) === null || _b === void 0 ? void 0 : _b.bonus) !== null && _c !== void 0 ? _c : 0,\r\n };\r\n rollData.iType = \"skill\";\r\n rollData.rolls[\"0\"] = {\r\n formula: \"1d20 + @i.fw + @i.bonus\",\r\n enabled: true,\r\n label: game.i18n.localize(\"midgard5.pw\"),\r\n result: \"\",\r\n total: 0,\r\n totalStr: \"\",\r\n dice: {},\r\n css: \"\",\r\n };\r\n return new M5Roll(rollData, actor, game.i18n.localize(`midgard5.${skillName}`));\r\n }\r\n static brawl(actor) {\r\n const rollData = actor.getRollData();\r\n rollData.i = {\r\n attackBonus: 0,\r\n damageBonus: 0,\r\n };\r\n rollData.rolls[\"0\"] = {\r\n formula: \"1d20 + @c.calc.stats.brawl + @c.calc.stats.attackBonus + @i.attackBonus\",\r\n enabled: true,\r\n label: game.i18n.localize(\"midgard5.attack\"),\r\n result: \"\",\r\n total: 0,\r\n totalStr: \"\",\r\n dice: {},\r\n css: \"\",\r\n };\r\n rollData.rolls[\"1\"] = {\r\n formula: \"1d6 - 4 + @c.calc.stats.damageBonus + @i.damageBonus\",\r\n enabled: true,\r\n label: game.i18n.localize(\"midgard5.damage\"),\r\n result: \"\",\r\n total: 0,\r\n totalStr: \"\",\r\n dice: {},\r\n css: \"\",\r\n };\r\n return new M5Roll(rollData, actor, game.i18n.localize(\"midgard5.brawl\"));\r\n }\r\n static defense(actor) {\r\n const rollData = actor.getRollData();\r\n rollData.i = {\r\n defenseBonus: 0,\r\n };\r\n rollData.rolls[\"0\"] = {\r\n formula: \"1d20 + @c.calc.stats.defense.value + @c.calc.stats.defenseBonus.value\",\r\n enabled: true,\r\n label: game.i18n.localize(\"midgard5.defense\"),\r\n result: \"\",\r\n total: 0,\r\n totalStr: \"\",\r\n dice: {},\r\n css: \"\",\r\n };\r\n return new M5Roll(rollData, actor, game.i18n.localize(\"midgard5.defense\"));\r\n }\r\n static resistanceMind(actor) {\r\n const rollData = actor.getRollData();\r\n rollData.i = {\r\n defenseBonus: 0,\r\n };\r\n rollData.rolls[\"0\"] = {\r\n formula: \"1d20 + @c.calc.stats.resistanceMind.value\",\r\n enabled: true,\r\n label: game.i18n.localize(\"midgard5.resistanceMind\"),\r\n result: \"\",\r\n total: 0,\r\n totalStr: \"\",\r\n dice: {},\r\n css: \"\",\r\n };\r\n return new M5Roll(rollData, actor, game.i18n.localize(\"midgard5.resistanceMind\"));\r\n }\r\n static resistanceBody(actor) {\r\n const rollData = actor.getRollData();\r\n rollData.i = {\r\n defenseBonus: 0,\r\n };\r\n rollData.rolls[\"0\"] = {\r\n formula: \"1d20 + @c.calc.stats.resistanceBody.value\",\r\n enabled: true,\r\n label: game.i18n.localize(\"midgard5.resistanceBody\"),\r\n result: \"\",\r\n total: 0,\r\n totalStr: \"\",\r\n dice: {},\r\n css: \"\",\r\n };\r\n return new M5Roll(rollData, actor, game.i18n.localize(\"midgard5.resistanceBody\"));\r\n }\r\n static parseDiceSides(formula) {\r\n const ewMatcher = /\\d*[dD]20/g;\r\n const pwMatcher = /(\\d+)\\s*\\-\\s*\\d*[dD]100/g;\r\n let res = formula.match(ewMatcher);\r\n if (res && !!res[0]) {\r\n return {\r\n sides: 20,\r\n type: \"ew\",\r\n threshold: null,\r\n };\r\n }\r\n res = formula.match(pwMatcher);\r\n if (res && !!res[1]) {\r\n return {\r\n sides: 100,\r\n type: \"pw\",\r\n threshold: parseInt(res[1]),\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\nexports.M5Roll = M5Roll;\r\n// extends Roll\r\nM5Roll.TEMPLATE_PATH = \"systems/midgard5e/templates/chat/roll-m5.hbs\";\r\n\n},{\"../M5Base\":12}],17:[function(require,module,exports){\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst M5Roll_1 = require(\"../rolls/M5Roll\");\r\nclass M5CharacterSheet extends ActorSheet {\r\n static get defaultOptions() {\r\n return mergeObject(super.defaultOptions, {\r\n template: \"systems/midgard5e/templates/sheets/character/main.hbs\",\r\n width: 800,\r\n height: 800,\r\n classes: [\"midgard5\", \"sheet\", \"character\"],\r\n tabs: [{ navSelector: \".sheet-navigation\", contentSelector: \".sheet-content\", initial: \"base_values\" }],\r\n });\r\n }\r\n // get template() {\r\n // \treturn \"systems/midgard5/templates/character_sheet/main.hbs\"\r\n // }Options extends ActorSheet.Options = ActorSheet.Options, Data extends object = ActorSheet.Data\r\n getData(options) {\r\n const actor = this.actor;\r\n //console.log(\"Sheet getData\", (actor as any).data)\r\n return Promise.resolve(super.getData(options)).then((context) => {\r\n actor.prepareDerivedData();\r\n context.actor = actor.toObject(false);\r\n context.data = actor.system;\r\n //console.log(\"Sheet Promise\", context.actor, context.data)\r\n return context;\r\n });\r\n }\r\n setPosition(options = {}) {\r\n const position = super.setPosition(options);\r\n const fillerWidth = this.element.find(\".attributes .filler:first\").width();\r\n this.element.find(\".attributes .attribute-filler-fixed\").width(fillerWidth);\r\n return position;\r\n }\r\n activateListeners(html) {\r\n super.activateListeners(html);\r\n html.find(\".update-lp\").on(\"click\", async (event) => {\r\n const valueStr = event.target.dataset[\"value\"];\r\n const value = parseInt(valueStr);\r\n this.actor.update({\r\n data: {\r\n lp: {\r\n value: value + 1,\r\n },\r\n },\r\n });\r\n });\r\n html.find(\".update-ap\").on(\"click\", async (event) => {\r\n const valueStr = event.target.dataset[\"value\"];\r\n const value = parseInt(valueStr);\r\n this.actor.update({\r\n data: {\r\n ap: {\r\n value: value + 1,\r\n },\r\n },\r\n });\r\n });\r\n html.find(\".roll-attribute-button\").on(\"click\", async (event) => {\r\n let elem = event.target;\r\n let attributeStr = elem.dataset[\"attribute\"];\r\n while (!attributeStr) {\r\n elem = elem.parentElement;\r\n if (!elem)\r\n return;\r\n attributeStr = elem.dataset[\"attribute\"];\r\n }\r\n const attributeValue = parseInt(elem.dataset[\"value\"]);\r\n const roll = M5Roll_1.M5Roll.fromAttributeValue(this.actor, attributeStr, attributeValue);\r\n //console.log(\"roll-attribute-button\", parent, attributeStr, attributeValue, roll)\r\n await roll.toMessage();\r\n });\r\n html.find(\".edit-item\").on(\"click\", async (event) => {\r\n let row = event.target.parentElement;\r\n let itemId = row.dataset[\"item\"];\r\n while (!itemId) {\r\n row = row.parentElement;\r\n if (!row)\r\n return;\r\n itemId = row.dataset[\"item\"];\r\n }\r\n const context = this.actor;\r\n const item = context.items.get(itemId);\r\n console.log(\"edit-item\", item);\r\n item.sheet.render(true);\r\n });\r\n html.find(\".item-delete\").on(\"click\", async (event) => {\r\n let row = event.target.parentElement;\r\n let itemId = row.dataset[\"item\"];\r\n while (!itemId) {\r\n row = row.parentElement;\r\n if (!row)\r\n return;\r\n itemId = row.dataset[\"item\"];\r\n }\r\n const context = this.actor;\r\n const item = context.items.get(itemId);\r\n item.delete();\r\n this.render(false);\r\n });\r\n html.find(\".roll-learned-button\").on(\"click\", async (event) => {\r\n const row = event.target.parentElement.parentElement;\r\n let skillId = row.dataset[\"item\"];\r\n const actor = this.actor;\r\n const item = actor.items.get(skillId);\r\n await item.roll();\r\n });\r\n html.find(\".roll-general-button\").on(\"click\", async (event) => {\r\n const row = event.target.parentElement.parentElement;\r\n let skillName = row.dataset[\"skill\"];\r\n const data = this.actor.system;\r\n const unlearnedSkill = data.skills.general[skillName];\r\n const roll = M5Roll_1.M5Roll.fromUnlearnedSkill(this.actor, unlearnedSkill, skillName);\r\n await roll.toMessage();\r\n });\r\n html.find(\".learn-button\").on(\"click\", async (event) => {\r\n const row = event.target.parentElement.parentElement;\r\n let skillName = row.dataset[\"skill\"];\r\n const data = this.actor.system;\r\n const unlearnedSkill = data.skills.general[skillName];\r\n const character = this.actor;\r\n character.createSkill(game.i18n.localize(\"midgard5.\" + skillName)).then((skill) => {\r\n const item = skill;\r\n item.update({\r\n data: {\r\n fw: unlearnedSkill.initial,\r\n attribute: unlearnedSkill.attribute,\r\n skill: skillName,\r\n type: \"general\",\r\n },\r\n });\r\n });\r\n });\r\n html.find(\".roll-weapon-button\").on(\"click\", async (event) => {\r\n const row = event.target.parentElement.parentElement;\r\n let itemId = row.dataset[\"item\"];\r\n const context = this.actor;\r\n const item = context.items.get(itemId);\r\n await item.roll();\r\n });\r\n html.find(\".roll-brawl-button\").on(\"click\", async (event) => {\r\n const roll = M5Roll_1.M5Roll.brawl(this.actor);\r\n await roll.toMessage();\r\n });\r\n html.find(\".roll-defense-button\").on(\"click\", async (event) => {\r\n const roll = M5Roll_1.M5Roll.defense(this.actor);\r\n await roll.toMessage();\r\n });\r\n html.find(\".roll-resistanceMind-button\").on(\"click\", async (event) => {\r\n const roll = M5Roll_1.M5Roll.resistanceMind(this.actor);\r\n await roll.toMessage();\r\n });\r\n html.find(\".roll-resistanceBody-button\").on(\"click\", async (event) => {\r\n const roll = M5Roll_1.M5Roll.resistanceBody(this.actor);\r\n await roll.toMessage();\r\n });\r\n // Drag & Drop\r\n const dragDrop = new DragDrop({\r\n dragSelector: \".items-list .item\",\r\n dropSelector: \".sheet-body\",\r\n permissions: { dragstart: this._canDragStart.bind(this), drop: this._canDragDrop.bind(this) },\r\n callbacks: { dragstart: this._onTransferItemDragStart.bind(this), drop: this._onTransferItemDrop.bind(this) },\r\n });\r\n dragDrop.bind(html[0]);\r\n }\r\n _canDragStart(selector) {\r\n return this.options.editable && this.actor.isOwner;\r\n }\r\n _canDragDrop(selector) {\r\n return true;\r\n }\r\n _onTransferItemDragStart(event) {\r\n const li = event.currentTarget;\r\n $(event.currentTarget).attr(\"data-item-actorid\", this.actor.id);\r\n const item = this.actor.items.get(li.dataset.itemId);\r\n // limit transfer on personal weapons/armour/gear\r\n if ([\"skill\", \"item\", \"weapon\", \"defensiveWeapon\", \"armor\", \"spell\"].includes(item.type)) {\r\n const dragData = {\r\n type: \"Transfer\",\r\n actorId: this.actor.id,\r\n data: item.toObject(false),\r\n tokenId: null,\r\n };\r\n if (this.actor.isToken)\r\n dragData.tokenId = this.actor.token.id;\r\n event.dataTransfer.setData(\"text/plain\", JSON.stringify(dragData));\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n async _onTransferItemDrop(event) {\r\n var _a;\r\n // Try to extract the data\r\n let data = null;\r\n try {\r\n data = JSON.parse(event.dataTransfer.getData(\"text/plain\"));\r\n if (data.type !== \"Transfer\")\r\n return false;\r\n }\r\n catch (err) {\r\n return false;\r\n }\r\n if (!data.data)\r\n return false;\r\n if (data.actorId === this.actor.id)\r\n return false;\r\n try {\r\n this.actor.createEmbeddedDocuments(\"Item\", [duplicate(data.data)]); // Create a new Item\r\n const actor = game.actors.get(data.actorId);\r\n await ((_a = actor.items.get(data.data._id)) === null || _a === void 0 ? void 0 : _a.delete()); // Delete originating item from other actor\r\n }\r\n catch (e) {\r\n console.error(\"Error transfering item between actors\", e);\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\nexports.default = M5CharacterSheet;\r\n\n},{\"../rolls/M5Roll\":16}],18:[function(require,module,exports){\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.M5ItemSheet = void 0;\r\nconst M5Base_1 = require(\"../M5Base\");\r\nclass M5ItemSheet extends ItemSheet {\r\n static get defaultOptions() {\r\n return mergeObject(super.defaultOptions, {\r\n width: 640,\r\n height: 480,\r\n classes: [\"midgard5\", \"sheet\", \"item\"],\r\n });\r\n }\r\n get template() {\r\n //console.log(\"M5ItemSheet\", this.item.data.type)\r\n const path = \"systems/midgard5e/templates/sheets/item\";\r\n return `${path}/${this.item.type}.hbs`;\r\n }\r\n getData(options) {\r\n const item = this.item;\r\n return Promise.resolve(super.getData()).then((value) => {\r\n var _a, _b;\r\n item.prepareDerivedData();\r\n const context = value;\r\n // Use a safe clone of the item data for further operations.\r\n const itemData = context.item;\r\n // Retrieve the roll data for TinyMCE editors.\r\n context.rollData = {};\r\n let actor = (_b = (_a = this.object) === null || _a === void 0 ? void 0 : _a.parent) !== null && _b !== void 0 ? _b : null;\r\n if (actor) {\r\n context.rollData = actor.getRollData();\r\n }\r\n context.data = itemData.system;\r\n context.flags = itemData.flags;\r\n return context;\r\n });\r\n }\r\n activateListeners(html) {\r\n super.activateListeners(html);\r\n html.find(\".add-mod\").on(\"click\", async (event) => {\r\n const context = this.object;\r\n const mods = context.system.mods;\r\n const modIndex = Object.keys(mods).length;\r\n mods[modIndex.toString()] = {\r\n type: M5Base_1.M5ModType.ATTRIBUTE,\r\n id: M5Base_1.M5Attributes.ST,\r\n operation: M5Base_1.M5ModOperation.ADD,\r\n value: 0,\r\n };\r\n this.object.update({\r\n data: {\r\n mods: mods,\r\n },\r\n });\r\n });\r\n html.find(\".item-delete\").on(\"click\", async (event) => {\r\n let row = event.target.parentElement;\r\n let itemId = row.dataset[\"item\"];\r\n while (!itemId) {\r\n row = row.parentElement;\r\n if (!row)\r\n return;\r\n itemId = row.dataset[\"item\"];\r\n }\r\n const context = this.item;\r\n const item = context.items.get(itemId);\r\n item.delete();\r\n this.render(false);\r\n });\r\n html.find(\".roll-delete\").on(\"click\", async (event) => {\r\n //console.log(\"roll-delete\", this.item.data.data.rolls.formulas)\r\n let row = event.target.parentElement;\r\n let rollIndex = row.dataset[\"roll\"];\r\n while (!rollIndex) {\r\n row = row.parentElement;\r\n if (!row)\r\n return;\r\n rollIndex = row.dataset[\"roll\"];\r\n }\r\n const rolls = this.item.system.rolls.formulas;\r\n rolls[rollIndex] = null;\r\n this.item.update({\r\n data: {\r\n rolls: {\r\n formulas: rolls,\r\n },\r\n },\r\n });\r\n this.render(false);\r\n });\r\n html.find(\".roll-create\").on(\"click\", async (event) => {\r\n var _a;\r\n const rolls = this.item.system.rolls.formulas;\r\n const indeces = Object.keys(rolls)\r\n .map((index) => parseInt(index))\r\n .sort()\r\n .reverse();\r\n const index = ((_a = indeces.find((index) => !!rolls[index.toString()])) !== null && _a !== void 0 ? _a : -1) + 1;\r\n console.log(\"roll-create\", rolls, indeces, index);\r\n rolls[index.toString()] = {\r\n formula: \"1d6\",\r\n label: game.i18n.localize(\"midgard5.roll\"),\r\n enabled: true,\r\n };\r\n this.item.update({\r\n data: {\r\n rolls: {\r\n formulas: rolls,\r\n },\r\n },\r\n });\r\n this.render(false);\r\n });\r\n // Drag & Drop\r\n if ([\"item\"].includes(this.object.type)) {\r\n const itemToItemAssociation = new DragDrop({\r\n dragSelector: \".item\",\r\n dropSelector: null,\r\n permissions: { dragstart: this._canDragStart.bind(this), drop: this._canDragDrop.bind(this) },\r\n callbacks: { drop: this._onDropItem.bind(this) },\r\n });\r\n itemToItemAssociation.bind(html[0]);\r\n }\r\n }\r\n _canDragStart(selector) {\r\n console.log(\"M5ItemSheet._canDragStart\", selector);\r\n return this.options.editable && this.object.isOwner;\r\n }\r\n _canDragDrop(selector) {\r\n console.log(\"M5ItemSheet._canDragDrop\", selector);\r\n return true;\r\n }\r\n async _onDropItem(event) {\r\n var _a;\r\n let data;\r\n const obj = this.object;\r\n const li = event.currentTarget;\r\n try {\r\n data = JSON.parse(event.dataTransfer.getData(\"text/plain\"));\r\n if (data.type !== \"Item\")\r\n return false;\r\n }\r\n catch (err) {\r\n return false;\r\n }\r\n // Case 1 - Import from a Compendium pack\r\n let itemObject;\r\n if (data.pack) {\r\n const compendiumObject = await this.importItemFromCollection(data.pack, data.id);\r\n itemObject = compendiumObject.data;\r\n }\r\n // Case 2 - Import from World entity\r\n else {\r\n const originalItem = await game.items.get(data.id);\r\n itemObject = duplicate(originalItem);\r\n if (!itemObject)\r\n return;\r\n }\r\n if (itemObject.type === \"mod\") {\r\n let mods = (_a = obj === null || obj === void 0 ? void 0 : obj.system) === null || _a === void 0 ? void 0 : _a.mods;\r\n if (!mods)\r\n mods = [];\r\n itemObject.id = randomID();\r\n console.log(\"M5ItemSheet._onDropItem\", itemObject);\r\n mods.push(itemObject);\r\n obj.update({\r\n data: {\r\n mods: mods,\r\n },\r\n });\r\n }\r\n }\r\n async _onDragItemStart(event) { }\r\n}\r\nexports.M5ItemSheet = M5ItemSheet;\r\n\n},{\"../M5Base\":12}],19:[function(require,module,exports){\n\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst Globals_1 = __importDefault(require(\"../Globals\"));\r\nconst color_1 = __importDefault(require(\"color\"));\r\nclass Logger {\r\n // static class\r\n constructor() { }\r\n static GetCurrentTime() {\r\n return `[${(new Date().toLocaleTimeString())}] `;\r\n }\r\n static log(str, colour = (0, color_1.default)(\"white\"), bold = false) {\r\n const time = ToConsole(Logger.GetCurrentTime(), (0, color_1.default)(\"gray\"), false);\r\n const moduleName = ToConsole(Globals_1.default.name + \" \", (0, color_1.default)(\"cyan\"), true);\r\n const text = ToConsole(str, colour, bold);\r\n console.log(time.str + moduleName.str + text.str, ...time.params.concat(moduleName.params, text.params));\r\n }\r\n static err(str) {\r\n Logger.log(str, (0, color_1.default)(\"orange\"));\r\n }\r\n static warn(str) {\r\n Logger.log(str, (0, color_1.default)(\"yellow\"));\r\n }\r\n static ok(str) {\r\n Logger.log(str, (0, color_1.default)(\"green\"));\r\n }\r\n}\r\nconst ToConsole = (str, col, bold) => {\r\n return {\r\n str: `%c` + str + `%c`,\r\n params: [\r\n \"color: \" + col.hex() + \";\" + (bold ? \"font-weight: bold;\" : \"\"),\r\n \"color: unset; font-weight: unset;\"\r\n ]\r\n };\r\n};\r\nexports.default = Logger;\r\n\n},{\"../Globals\":9,\"color\":6}]},{},[11]);\n"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","key","cssKeywords","reverseKeywords","hasOwnProperty","model","convert","rgb","channels","labels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","Object","defineProperty","value","h","g","b","min","Math","max","delta","l","diffc","v","diff","rdif","gdif","bdif","s","k","reversed","currentClosestKeyword","x","y","currentClosestDistance","Infinity","distance","pow","z","t3","val","t2","t1","smin","lmin","hi","floor","q","vmin","sl","wh","bl","ratio","m","y2","x2","z2","atan2","PI","sqrt","hr","cos","sin","args","arguments","round","ansi","color","mult","rem","string","toString","toUpperCase","substring","colorString","match","split","map","char","join","integer","parseInt","chroma","grayscale","hue","pure","w","mg","color-name","2","conversions","route","wrapRaw","fn","wrappedFn","Array","prototype","slice","conversion","wrapRounded","result","len","keys","forEach","fromModel","routes","toModel","raw","./conversions","./route","3","deriveBFS","graph","models","parent","queue","current","pop","adjacents","adjacent","node","unshift","wrapConversion","path","cur","from","to","4","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","5","name","colorNames","swizzle","reverseNames","create","cs","get","clamp","num","hexDouble","str","toLowerCase","hexAlpha","i2","parseFloat","alpha","isNaN","rgba","percent","hsla","hwba","simple-swizzle","6","_slice","skippedModels","hashedModelKeys","limiters","sort","Color","obj","this","valpha","newArr","zeroArray","hashedKeys","splice","indexOf","JSON","stringify","push","limit","freeze","getset","channel","modifier","isArray","maxfn","arr","toJSON","places","self","concat","percentString","array","object","unitArray","unitObject","Number","toFixed","saturationl","lightness","saturationv","wblack","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","isDark","isLight","negate","lighten","darken","saturate","desaturate","whiten","blacken","fade","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","undefined","newAlpha","color-convert","color-string","7","Function","getOwnPropertyDescriptor","constructor","8","isArrayish","results","arg","wrap","is-arrayish","9","default","isModule","10","__importDefault","mod","__esModule","Globals_1","async","rootPath","loadTemplates","./Globals","11","Logger_1","M5CharacterSheet_1","PreloadTemplates_1","M5Character_1","M5ItemSheet_1","M5Item_1","Hooks","once","log","Handlebars","registerHelper","block","accum","let","index","values","_a","hash","reduce","prev","compile","actorId","skill","game","actors","skillBonus","skillEw","items","skillId","id","itemId","system","relpath","skillName","list","_b","label","Items","unregisterSheet","ItemSheet","registerSheet","M5ItemSheet","makeDefault","Actors","ActorSheet","CONFIG","Actor","documentClass","M5Character","Item","M5Item","await","ok","./PreloadTemplates","./module/actors/M5Character","./module/items/M5Item","./module/sheets/M5CharacterSheet","./module/sheets/M5ItemSheet","./utils/Logger","12","M5ModOperation","enumKeys","M5ModType","M5Stats","M5Attributes","M5EwResult","filter","13","M5Base_1","M5ModAggregate_1","attributeMinMax","attribute","bonus","attributeBonus","derivedData","skip","ret","attributes","st","mods","gs","gw","ko","in","zt","au","pa","wk","stats","lp","ap","armor","defense","damageBonus","attackBonus","defenseBonus","movementBonus","resistanceMind","resistanceBody","spellCasting","brawl","brawlEw","poisonResistance","enduranceBonus","skillMods","skills","innate","general","combat","language","custom","gear","weapons","defensiveWeapons","spells","context","data","levelFromExp","es","modResult","defenseFromLevel","info","magicUsing","race","raceBonus","spellCastingFromLevel","aggregate","item","type","modIndex","calculate","prepareDerivedData","magic","calc","_c","fw","pp","_d","_e","_f","_g","process","console","getRollData","iType","rolls","res","exp","levelThreshold","findIndex","lvl","defenseThreshold","find","spellCastingThreshold","createSkill","createEmbeddedDocuments","then","docs","getItem","getEmbeddedDocument","i18n","localize","operation","SET","../M5Base","./M5ModAggregate","14","M5ModAggregate","Map","characterString","ATTRIBUTE","ST","GS","GW","KO","IN","ZT","AU","PA","WK","ADD_100","STAT","DEFENSE","ATTACK","DAMAGE","MOVEMENT","RESISTANCE_MIND","RESISTANCE_BODY","SPELL_CASTING","BRAWL","POISON_RESISTANCE","LP","AP","source","SKILL","pair","has","set","pairs","processPairs","pairAsSource","FIXED","ADD","15","M5Roll_1","itemType","actor","character","itemData","actorCalc","includes","ew","sources","special","combatSkills","skillData","modCalc","category","roll","speaker","ChatMessage","getSpeaker","rollMode","settings","formulaNames","formulas","rollData","formula","formulaName","enabled","total","totalStr","dice","M5Roll","toMessage","flavor","content","description","../actors/M5ModAggregate","../rolls/M5Roll","16","_evaluated","_total","pool","evaluate","indexMap","rollName","Roll","PoolTerm","fromRolls","rollIndex","rollResult","rowRes","TBD","face100","d","dIndex","faces","FUMBLE","CRITICAL","HIGH","parseResult","parseDiceSides","sides","FAIL","PASS","threshold100","threshold","css","render","renderTemplate","TEMPLATE_PATH","rMode","chatData","CONST","CHAT_MESSAGE_TYPES","ROLL","sound","sounds","fromTerms","applyRollMode","fromAttribute","attributeKey","fromAttributeValue","attributeValue","fromUnlearnedSkill","17","M5CharacterSheet","defaultOptions","mergeObject","super","template","width","height","classes","tabs","navSelector","contentSelector","initial","getData","options","Promise","resolve","toObject","setPosition","position","fillerWidth","element","activateListeners","html","on","event","valueStr","target","dataset","update","elem","attributeStr","parentElement","row","sheet","delete","unlearnedSkill","DragDrop","dragSelector","dropSelector","permissions","dragstart","_canDragStart","bind","drop","_canDragDrop","callbacks","_onTransferItemDragStart","_onTransferItemDrop","selector","editable","isOwner","li","currentTarget","$","attr","dragData","tokenId","isToken","token","dataTransfer","setData","parse","err","duplicate","_id","error","18","flags","indeces","reverse","_onDropItem","itemObject","pack","compendiumObject","importItemFromCollection","originalItem","randomID","_onDragItemStart","19","color_1","Logger","GetCurrentTime","Date","toLocaleTimeString","colour","bold","time","ToConsole","moduleName","text","params","warn","col","../Globals"],"mappings":"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"} \ No newline at end of file diff --git a/midgard5e/lang/de.json b/midgard5e/lang/de.json new file mode 100644 index 0000000..d488c59 --- /dev/null +++ b/midgard5e/lang/de.json @@ -0,0 +1,232 @@ +{ + "ACTOR.TypeCharacter": "Charakter", + "ACTOR.TypeNpc": "Kreatur / Nichtspielerfigur", + "ACTOR.TypeVehicle": "Transportmittel / Pferd etc.", + + "ITEM.TypeItem": "Gegenstand", + "ITEM.TypeWeapon": "Waffe", + "ITEM.TypeDefensiveWeapon": "Verteidigungswaffe", + "ITEM.TypeArmor": "Rüstung", + "ITEM.TypeSpell": "Zauber", + + "midgard5.doRoll": "Würfeln", + "midgard5.learn": "Lernen", + + "midgard5.label": "Bezeichnung", + "midgard5.description": "Beschreibung", + "midgard5.attribute": "Leiteigenschaft", + "midgard5.skill": "Fertigkeit", + "midgard5.skill-value": "Fertigkeitswert", + "midgard5.fw": "FW", + "midgard5.bonus": "Bonus", + "midgard5.ew": "EW", + "midgard5.pp-short": "PP", + "midgard5.pp": "Praxispunkte", + + "midgard5.item-value": "Wert", + "midgard5.item-quantity": "Menge", + "midgard5.item-onbody": "Am Körper", + "midgard5.item-ismagic": "Ist Magisch", + + "midgard5.actor-lp": "Lebenspunkte", + "midgard5.actor-lp-short": "LP", + "midgard5.actor-ap": "Ausdauerpunkte", + "midgard5.actor-ap-short": "AP", + "midgard5.actor-st": "St", + "midgard5.actor-st-long": "Stärke", + "midgard5.actor-ko": "Ko", + "midgard5.actor-ko-long": "Konstitution", + "midgard5.actor-au": "Au", + "midgard5.actor-au-long": "Aussehen", + "midgard5.actor-gs": "Gs", + "midgard5.actor-gs-long": "Geschicklichkeit", + "midgard5.actor-in": "In", + "midgard5.actor-in-long": "Intelligenz", + "midgard5.actor-pa": "pA", + "midgard5.actor-pa-long": "persönliche Ausstrahlung", + "midgard5.actor-gw": "Gw", + "midgard5.actor-gw-long": "Gewandtheit", + "midgard5.actor-zt": "Zt", + "midgard5.actor-zt-long": "Zaubertalent", + "midgard5.actor-wk": "Wk", + "midgard5.actor-wk-long": "Willenskraft", + + "midgard5.aktuell": "Akt.", + "midgard5.maximum": "Max.", + "midgard5.attrvalue": "Wert", + "midgard5.movementRange": "Bewegungsweite", + + "midgard5.base_values": "Grundwerte", + "midgard5.skills": "Fertigkeiten", + "midgard5.gear": "Ausrüstung", + "midgard5.spells": "Zauber", + + "midgard5.class": "Klasse", + "midgard5.race": "Rasse", + "midgard5.magicUsing": "zauberkundig", + "midgard5.gender": "Geschlecht", + "midgard5.weight": "Gewicht", + "midgard5.height": "Größe", + "midgard5.shape": "Gestalt", + "midgard5.age": "Alter", + "midgard5.caste": "Stand", + "midgard5.occupation": "Beruf", + "midgard5.origin": "Heimat", + "midgard5.faith": "Glaube", + + "midgard5.exp-overall": "Erfahrungsschatz", + "midgard5.exp-available": "Erfahrungspunkte", + "midgard5.grace": "Göttliche Gnade", + "midgard5.destiny": "Schicksalsgunst", + "midgard5.luckPoints": "Glückspunkte", + + "midgard5.akrobatik": "Akrobatik", + "midgard5.alchimie": "Alchimie", + "midgard5.anfuehren": "Anführen", + "midgard5.athletik": "Athletik", + "midgard5.balancieren": "Balancieren", + "midgard5.beidhaendigerKampf": "Beidhändiger Kampf", + "midgard5.beredsamkeit": "Beredsamkeit", + "midgard5.betaeuben": "Betäuben", + "midgard5.bootfahren": "Bootfahren", + "midgard5.ersteHilfe": "Erste Hilfe", + "midgard5.etikette": "Etikette", + "midgard5.fallenEntdecken": "Fallen entdecken", + "midgard5.fallenmechanik": "Fallenmechanik", + "midgard5.faelschen": "Fälschen", + "midgard5.fechten": "Fechten", + "midgard5.gassenwissen": "Gassenwissen", + "midgard5.gaukeln": "Gaukeln", + "midgard5.gelaendelauf": "Geländelauf", + "midgard5.geraetekunde": "Gerätekunde", + "midgard5.geschaeftssinn": "Geschäftssinn", + "midgard5.gluecksspiel": "Glücksspiel", + "midgard5.heilkunde": "Heilkunde", + "midgard5.kampfInVollruestung": "Kampf in Vollrüstung", + "midgard5.klettern": "Klettern", + "midgard5.landeskunde": "Landeskunde", + "midgard5.laufen": "Laufen", + "midgard5.lesenVonZauberschrift": "Lesen von Zauberschrift", + "midgard5.meditieren": "Meditieren", + "midgard5.menschenkenntnis": "Menschenkenntnis", + "midgard5.meucheln": "Meucheln", + "midgard5.musizieren": "Musizieren", + "midgard5.naturkunde": "Naturkunde", + "midgard5.pflanzenkunde": "Pflanzenkunde", + "midgard5.reiten": "Reiten", + "midgard5.reiterkampf": "Reiterkampf", + "midgard5.scharfschiessen": "Scharfschießen", + "midgard5.schleichen": "Schleichen", + "midgard5.schloesserOeffnen": "Schlösser öffnen", + "midgard5.schwimmen": "Schwimmen", + "midgard5.seilkunst": "Seilkunst", + "midgard5.spurensuche": "Spurensuche", + "midgard5.stehlen": "Stehlen", + "midgard5.tarnen": "Tarnen", + "midgard5.tauchen": "Tauchen", + "midgard5.tierkunde": "Tierkunde", + "midgard5.ueberleben": "Überleben", + "midgard5.verfuehren": "Verführen", + "midgard5.verhoeren": "Verhören", + "midgard5.verstellen": "Verstellen", + "midgard5.wagenlenken": "Wagenlenken", + "midgard5.zauberkunde": "Zauberkunde", + + "midgard5.armor": "Rüstung", + "midgard5.defense": "Abwehr", + "midgard5.damageBonus": "Schadensbonus", + "midgard5.damageBonus-short": "SchB", + "midgard5.attackBonus": "Angriffsbonus", + "midgard5.attackBonus-short": "AnB", + "midgard5.defenseBonus": "Abwehrbonus", + "midgard5.defenseBonus-short": "AbB", + "midgard5.movementBonus": "Bewegunsbonus", + "midgard5.resistanceMind": "Resistenz Geist", + "midgard5.resistanceBody": "Resistenz Körper", + "midgard5.spellCasting": "Zaubern", + "midgard5.spellBonus": "Zauberbonus", + "midgard5.brawl": "Raufen", + "midgard5.poisonResistance": "Giftresistenz", + "midgard5.enduranceBonus": "Ausdauerbonus", + + "midgard5.new-skill": "Neue Fertigkeit", + "midgard5.special": "Spezial", + "midgard5.learned-skill": "Gelernte Fertigkeit", + "midgard5.language": "Sprache", + "midgard5.weapon-skill": "Waffenfertigkeit", + "midgard5.unlearned-skill": "Ungelernte Fertigkeit", + "midgard5.innate-ability": "Angeborene Fähigkeit", + + "midgard5.base-damage": "Grundschaden", + "midgard5.defensive-weapon": "Verteidigungswaffe", + "midgard5.no-skill": "Keine Fertigkeit", + "midgard5.magic": "magisch", + "midgard5.rangedWeapon": "Schusswaffe", + "midgard5.assignItemToCharacter": "Füge Gegenstand einem Charakter hinzu, um Fähigkeit auwählen zu können", + + "midgard5.pw": "Prüfwurf", + "midgard5.attack": "Angriff", + "midgard5.damage": "Schaden", + + "midgard5.spell-process-none": "Ohne", + "midgard5.spell-process-beherrschen": "Beherrschen", + "midgard5.spell-process-bewegen": "Bewegen", + "midgard5.spell-process-erkennen": "Erkennen", + "midgard5.spell-process-erschaffen": "Erschaffen", + "midgard5.spell-process-formen": "Formen", + "midgard5.spell-process-veraendern": "Verändern", + "midgard5.spell-process-zerstoeren": "Zerstören", + "midgard5.spell-process-wundertat": "Wundertat", + "midgard5.spell-process-dweomer": "Dweomer", + "midgard5.spell-process-zauberlied": "Zauberlied", + "midgard5.spell-process-salz": "Salz", + "midgard5.spell-process-thaumagraphie": "Thaumagraphie", + "midgard5.spell-process-beschwoeren": "Beschwören", + "midgard5.spell-process-nekromantie": "Nekromantie", + "midgard5.spell-process-thaumatherapie": "Thaumatherapie", + "midgard5.spell-process-zaubermittel": "Zaubermittel", + "midgard5.spell-process-zauberschutz": "Zauberschutz", + + "midgard5.spell-type-gedanke": "Gedanke", + "midgard5.spell-type-geste": "Geste", + "midgard5.spell-type-wort": "Wort", + + "midgard5.spell-target-umgebung": "Umgebung", + "midgard5.spell-target-geist": "Geist", + "midgard5.spell-target-koerper": "Körper", + + "midgard5.spell-type": "Art", + "midgard5.spell-process": "Prozess", + "midgard5.spell-castDuration": "Zauberdauer", + "midgard5.spell-range": "Reichweite", + "midgard5.spell-effectTarget": "Wirkunsziel", + "midgard5.spell-effectArea": "Wirkungsbereich", + "midgard5.spell-effectDuration": "Wirkungsdauer", + "midgard5.spell-origin": "Ursprung", + + "midgard5.mod-operation-add100": "Addieren (max 100)", + "midgard5.mod-operation-add": "Addieren", + "midgard5.mod-operation-set": "Basiswert", + "midgard5.mod-operation-fixed": "Fester Wert", + + "midgard5.mod-stat-defenseBonus": "Abwehrbonus", + "midgard5.mod-stat-attackBonus": "Angriffsbonus", + "midgard5.mod-stat-damageBonus": "Schadensbonus", + "midgard5.mod-stat-movement": "Bewegung", + "midgard5.mod-stat-resistanceMind": "Resistenz Geist", + "midgard5.mod-stat-resistanceBody": "Resistenz Körper", + "midgard5.mod-stat-spellCasting": "Zaubern", + "midgard5.mod-stat-brawl": "Raufen", + "midgard5.mod-stat-poisonResistance": "Giftresistenz", + "midgard5.mod-stat-lp": "Lebenspunkte", + "midgard5.mod-stat-ap": "Ausdauerpunkte", + + "midgard5.mod-type": "Typ der Modifikation", + "midgard5.mod-id": "Was soll modifiziert werden", + "midgard5.mod-operation": "Wie soll modifiziert werden", + "midgard5.mod-value": "Wert", + + "midgard5.type": "Typ", + "midgard5.formula": "Formel", + "midgard5.roll": "Wurf" +} diff --git a/midgard5e/packs/actors/blaupause-spielfiguren.db b/midgard5e/packs/actors/blaupause-spielfiguren.db new file mode 100644 index 0000000..6dd14e5 --- /dev/null +++ b/midgard5e/packs/actors/blaupause-spielfiguren.db @@ -0,0 +1 @@ +{"name":"Grad 01","type":"character","img":"icons/svg/mystery-man.svg","system":{"lp":{"value":15,"min":0,"max":15},"ap":{"value":20,"min":0,"max":20},"attributes":{"st":{"value":50,"bonus":0},"gs":{"value":50,"bonus":0},"gw":{"value":50,"bonus":0},"ko":{"value":50,"bonus":0},"in":{"value":50,"bonus":0},"zt":{"value":50,"bonus":0},"au":{"value":50,"bonus":0},"pa":{"value":50,"bonus":0},"wk":{"value":50,"bonus":0}},"info":{"description":"","class":"","race":"","magicUsing":false,"gender":"","weight":"","height":"","shape":"","age":"","caste":"","occupation":"","origin":"","faith":""},"es":0,"ep":0,"gg":0,"sg":0,"gp":2,"skills":{"general":{"akrobatik":{"fw":6,"attribute":"gw","initial":8,"pp":0},"alchimie":{"fw":0,"attribute":"in","initial":8,"pp":0},"anfuehren":{"fw":6,"attribute":"pa","initial":8,"pp":0},"athletik":{"fw":0,"attribute":"st","initial":8,"pp":0},"balancieren":{"fw":6,"attribute":"gw","initial":8,"pp":0},"beidhaendigerKampf":{"fw":0,"attribute":"gs","initial":8,"pp":0},"beredsamkeit":{"fw":3,"attribute":"pa","initial":8,"pp":0},"betaeuben":{"fw":6,"attribute":"gs","initial":8,"pp":0},"bootfahren":{"fw":3,"attribute":"gs","initial":8,"pp":0},"ersteHilfe":{"fw":0,"attribute":"gs","initial":8,"pp":0},"etikette":{"fw":0,"attribute":"in","initial":8,"pp":0},"fallenEntdecken":{"fw":0,"attribute":"in","initial":8,"pp":0},"fallenmechanik":{"fw":0,"attribute":"gs","initial":8,"pp":0},"faelschen":{"fw":0,"attribute":"gs","initial":8,"pp":0},"fechten":{"fw":0,"attribute":"gs","initial":8,"pp":0},"gassenwissen":{"fw":0,"attribute":"in","initial":8,"pp":0},"gaukeln":{"fw":0,"attribute":"gs","initial":8,"pp":0},"gelaendelauf":{"fw":6,"attribute":"gw","initial":8,"pp":0},"geraetekunde":{"fw":0,"attribute":"in","initial":8,"pp":0},"geschaeftssinn":{"fw":0,"attribute":"in","initial":8,"pp":0},"gluecksspiel":{"fw":0,"attribute":"gs","initial":8,"pp":0},"heilkunde":{"fw":0,"attribute":"in","initial":8,"pp":0},"kampfInVollruestung":{"fw":0,"attribute":"st","initial":8,"pp":0},"klettern":{"fw":6,"attribute":"st","initial":8,"pp":0},"landeskunde":{"fw":6,"attribute":"in","initial":8,"pp":0},"laufen":{"fw":0,"attribute":"ko","initial":8,"pp":0},"lesenVonZauberschrift":{"fw":0,"attribute":"in","initial":8,"pp":0},"meditieren":{"fw":0,"attribute":"wk","initial":8,"pp":0},"menschenkenntnis":{"fw":3,"attribute":"in","initial":8,"pp":0},"meucheln":{"fw":0,"attribute":"gs","initial":8,"pp":0},"musizieren":{"fw":0,"attribute":"gs","initial":8,"pp":0},"naturkunde":{"fw":0,"attribute":"in","initial":8,"pp":0},"pflanzenkunde":{"fw":0,"attribute":"in","initial":8,"pp":0},"reiten":{"fw":6,"attribute":"gw","initial":8,"pp":0},"reiterkampf":{"fw":0,"attribute":"gw","initial":8,"pp":0},"scharfschiessen":{"fw":0,"attribute":"gs","initial":8,"pp":0},"schleichen":{"fw":3,"attribute":"gw","initial":8,"pp":0},"schloesserOeffnen":{"fw":0,"attribute":"gs","initial":8,"pp":0},"schwimmen":{"fw":3,"attribute":"gw","initial":8,"pp":0},"seilkunst":{"fw":3,"attribute":"gs","initial":8,"pp":0},"spurensuche":{"fw":0,"attribute":"in","initial":8,"pp":0},"stehlen":{"fw":3,"attribute":"gs","initial":8,"pp":0},"tarnen":{"fw":3,"attribute":"gw","initial":8,"pp":0},"tauchen":{"fw":6,"attribute":"ko","initial":8,"pp":0},"tierkunde":{"fw":0,"attribute":"in","initial":8,"pp":0},"ueberleben":{"fw":6,"attribute":"in","initial":8,"pp":0},"verfuehren":{"fw":3,"attribute":"pa","initial":8,"pp":0},"verhoeren":{"fw":3,"attribute":"pa","initial":8,"pp":0},"verstellen":{"fw":3,"attribute":"pa","initial":8,"pp":0},"wagenlenken":{"fw":3,"attribute":"gs","initial":8,"pp":0},"zauberkunde":{"fw":0,"attribute":"in","initial":8,"pp":0}}},"calc":{}},"prototypeToken":{"name":"Spielfigur","displayName":0,"actorLink":false,"texture":{"src":"icons/svg/mystery-man.svg","scaleX":1,"scaleY":1,"offsetX":0,"offsetY":0,"rotation":0,"tint":null},"width":1,"height":1,"lockRotation":false,"rotation":0,"alpha":1,"disposition":-1,"displayBars":0,"bar1":{"attribute":"lp"},"bar2":{"attribute":"ap"},"light":{"alpha":0.5,"angle":360,"bright":0,"color":null,"coloration":1,"dim":0,"attenuation":0.5,"luminosity":0.5,"saturation":0,"contrast":0,"shadows":0,"animation":{"type":null,"speed":5,"intensity":5,"reverse":false},"darkness":{"min":0,"max":1}},"sight":{"enabled":false,"range":null,"angle":360,"visionMode":"basic","color":null,"attenuation":0.1,"brightness":0,"saturation":0,"contrast":0},"detectionModes":[],"flags":{},"randomImg":false},"items":[],"effects":[],"flags":{"core":{"sourceId":"Actor.25UihsoT43jms4Rx"}},"_stats":{"systemId":"midgard5e","systemVersion":"1.1.0","coreVersion":"10.291","createdTime":1681861642287,"modifiedTime":1681862257893,"lastModifiedBy":"Fphp3NQlJ6KWctyq"},"folder":null,"sort":0,"ownership":{"default":0,"Fphp3NQlJ6KWctyq":3},"_id":"k21WA0JziDJ7yJ1U"} \ No newline at end of file diff --git a/midgard5e/packs/items/blaupause-gegenstaende.db b/midgard5e/packs/items/blaupause-gegenstaende.db new file mode 100644 index 0000000..ad0c824 --- /dev/null +++ b/midgard5e/packs/items/blaupause-gegenstaende.db @@ -0,0 +1,10 @@ +{"name":"Fernkampfwaffe","type":"weapon","img":"icons/svg/item-bag.svg","data":{"description":"","stats":{"damageBonus":0,"attackBonus":0,"defenseBonus":0,"movementBonus":0,"resistanceMind":0,"resistanceBody":0,"spellBonus":0},"equippable":false,"equipped":true,"value":0,"magic":false,"special":false,"ranged":true,"skillId":"","damageBase":"1d6","rolls":{"formulas":{"0":{"formula":"1d20 + @i.calc.fw + @i.calc.bonus + @i.calc.special + @c.calc.stats.attackBonus.value + @i.stats.attackBonus","label":"Angriff","enabled":true},"1":{"formula":"@i.damageBase + @i.stats.damageBonus","label":"Schaden","enabled":true}},"output":""},"calc":{}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"XD0IpWT6bN4AJiYQ":3},"_id":"h1inVuRJQI42JTCs"} +{"name":"Gewöhnliche Fertigkeit","type":"skill","img":"icons/svg/item-bag.svg","data":{"description":"","attributes":{"st":{"short":"midgard5.actor-st","long":"midgard5.actor-st-long"},"gs":{"short":"midgard5.actor-gs","long":"midgard5.actor-gs-long"},"gw":{"short":"midgard5.actor-gw","long":"midgard5.actor-gw-long"},"ko":{"short":"midgard5.actor-ko","long":"midgard5.actor-ko-long"},"in":{"short":"midgard5.actor-in","long":"midgard5.actor-in-long"},"zt":{"short":"midgard5.actor-zt","long":"midgard5.actor-zt-long"},"au":{"short":"midgard5.actor-au","long":"midgard5.actor-au-long"},"pa":{"short":"midgard5.actor-pa","long":"midgard5.actor-pa-long"},"wk":{"short":"midgard5.actor-wk","long":"midgard5.actor-wk-long"}},"fw":8,"attribute":"st","skill":"","type":"general","rolls":{"formulas":{"0":{"formula":"1d20 + @i.fw + @i.calc.bonus","enabled":true,"label":"EW"}},"output":""},"calc":{}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"XD0IpWT6bN4AJiYQ":3},"_id":"4N0IgVDj1eee0hSB"} +{"name":"Angeborene Fähigkeit","type":"skill","img":"icons/svg/item-bag.svg","data":{"description":"","attributes":{"st":{"short":"midgard5.actor-st","long":"midgard5.actor-st-long"},"gs":{"short":"midgard5.actor-gs","long":"midgard5.actor-gs-long"},"gw":{"short":"midgard5.actor-gw","long":"midgard5.actor-gw-long"},"ko":{"short":"midgard5.actor-ko","long":"midgard5.actor-ko-long"},"in":{"short":"midgard5.actor-in","long":"midgard5.actor-in-long"},"zt":{"short":"midgard5.actor-zt","long":"midgard5.actor-zt-long"},"au":{"short":"midgard5.actor-au","long":"midgard5.actor-au-long"},"pa":{"short":"midgard5.actor-pa","long":"midgard5.actor-pa-long"},"wk":{"short":"midgard5.actor-wk","long":"midgard5.actor-wk-long"}},"fw":6,"attribute":"","skill":"","type":"innate","rolls":{"formulas":{"0":{"formula":"1d20 + @i.fw + @i.calc.bonus","type":"ew","label":"EW"}},"output":""},"calc":{}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"XD0IpWT6bN4AJiYQ":3},"_id":"nkMkMFNDSdvlP1Jt"} +{"name":"Gegenstand","type":"item","img":"icons/svg/item-bag.svg","system":{"description":"","equippable":false,"equipped":true,"value":0,"magic":false,"rolls":{"formulas":{},"output":""},"mods":{},"calc":{}},"effects":[],"flags":{"core":{"sourceId":"Item.8GrWgO1jjysZPnxc"}},"_stats":{"systemId":"midgard5e","systemVersion":"1.1.0","coreVersion":"10.291","createdTime":1681862229001,"modifiedTime":1681862253981,"lastModifiedBy":"Fphp3NQlJ6KWctyq"},"folder":null,"sort":0,"ownership":{"default":0,"Fphp3NQlJ6KWctyq":3},"_id":"ERcxMh7hWiv42rfx"} +{"name":"Rüstung","type":"armor","img":"icons/svg/item-bag.svg","data":{"description":"","stats":{"damageBonus":0,"attackBonus":0,"defenseBonus":0,"movementBonus":0,"resistanceMind":0,"resistanceBody":0,"spellBonus":0},"equippable":false,"equipped":true,"attributeMod":{"st":0,"gs":0,"gw":0,"ko":0,"in":0,"zt":0,"au":0,"pa":0,"wk":0},"magic":false,"lpProtection":0,"apProtection":0,"rolls":{"formulas":{},"output":""},"calc":{}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"XD0IpWT6bN4AJiYQ":3},"_id":"pV1hNavlQGJ9UaEf"} +{"name":"Sprache","type":"skill","img":"icons/svg/item-bag.svg","data":{"description":"","attributes":{"st":{"short":"midgard5.actor-st","long":"midgard5.actor-st-long"},"gs":{"short":"midgard5.actor-gs","long":"midgard5.actor-gs-long"},"gw":{"short":"midgard5.actor-gw","long":"midgard5.actor-gw-long"},"ko":{"short":"midgard5.actor-ko","long":"midgard5.actor-ko-long"},"in":{"short":"midgard5.actor-in","long":"midgard5.actor-in-long"},"zt":{"short":"midgard5.actor-zt","long":"midgard5.actor-zt-long"},"au":{"short":"midgard5.actor-au","long":"midgard5.actor-au-long"},"pa":{"short":"midgard5.actor-pa","long":"midgard5.actor-pa-long"},"wk":{"short":"midgard5.actor-wk","long":"midgard5.actor-wk-long"}},"fw":8,"attribute":"in","skill":"","type":"language","rolls":{"formulas":{"0":{"formula":"1d20 + @i.calc.fw + @i.calc.bonus","enabled":true,"label":"EW"}},"output":""},"calc":{}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"XD0IpWT6bN4AJiYQ":3},"_id":"rDN14z3lNJISWTdO"} +{"name":"Verteidigungswaffe","type":"defensiveWeapon","img":"icons/svg/item-bag.svg","data":{"description":"","stats":{"damageBonus":0,"attackBonus":0,"defenseBonus":0,"movementBonus":0,"resistanceMind":0,"resistanceBody":0,"spellBonus":0},"equippable":false,"equipped":true,"special":false,"magic":false,"skillId":"","rolls":{"formulas":{"0":{"formula":"1d20 + @i.calc.fw + @i.calc.bonus + @i.calc.special + @c.calc.stats.defense.value + @c.calc.stats.defenseBonus.value + @i.stats.defenseBonus","enabled":true,"label":"Abwehr"}},"output":""},"calc":{},"damageBase":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"XD0IpWT6bN4AJiYQ":3},"_id":"BNAoHN0vHfcwNUTl"} +{"name":"Waffe","type":"weapon","img":"icons/svg/item-bag.svg","data":{"description":"","stats":{"damageBonus":0,"attackBonus":0,"defenseBonus":0,"movementBonus":0,"resistanceMind":0,"resistanceBody":0,"spellBonus":0},"equippable":false,"equipped":true,"special":false,"magic":false,"ranged":false,"skillId":"","damageBase":"1d6","rolls":{"formulas":{"0":{"formula":"1d20 + @i.calc.fw + @i.calc.bonus + @i.calc.special + @c.calc.stats.attackBonus.value + @i.stats.attackBonus","enabled":true,"label":"Angriff"},"1":{"formula":"@i.damageBase + @i.stats.damageBonus + @c.calc.stats.damageBonus.value","enabled":true,"label":"Schaden"}},"output":""},"calc":{}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"XD0IpWT6bN4AJiYQ":3},"_id":"uGQJ4VPhh135e79a"} +{"name":"Waffenfertigkeit","type":"skill","img":"icons/svg/item-bag.svg","data":{"description":"","attributes":{"st":{"short":"midgard5.actor-st","long":"midgard5.actor-st-long"},"gs":{"short":"midgard5.actor-gs","long":"midgard5.actor-gs-long"},"gw":{"short":"midgard5.actor-gw","long":"midgard5.actor-gw-long"},"ko":{"short":"midgard5.actor-ko","long":"midgard5.actor-ko-long"},"in":{"short":"midgard5.actor-in","long":"midgard5.actor-in-long"},"zt":{"short":"midgard5.actor-zt","long":"midgard5.actor-zt-long"},"au":{"short":"midgard5.actor-au","long":"midgard5.actor-au-long"},"pa":{"short":"midgard5.actor-pa","long":"midgard5.actor-pa-long"},"wk":{"short":"midgard5.actor-wk","long":"midgard5.actor-wk-long"}},"fw":5,"attribute":"","skill":"","type":"combat","rolls":{"formulas":{"0":{"formula":"1d20 + @i.calc.fw + @i.calc.bonus","enabled":true,"label":"EW"}},"output":""},"calc":{}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"XD0IpWT6bN4AJiYQ":3},"_id":"1E4XHTGZlned2ofY"} +{"name":"Zauber","type":"spell","img":"icons/svg/item-bag.svg","data":{"description":"","spellProcessSelection":{"none":"midgard5.spell-process-none","beherrschen":"midgard5.spell-process-beherrschen","bewegen":"midgard5.spell-process-bewegen","erkennen":"midgard5.spell-process-erkennen","erschaffen":"midgard5.spell-process-erschaffen","formen":"midgard5.spell-process-formen","veraendern":"midgard5.spell-process-veraendern","zerstoeren":"midgard5.spell-process-zerstoeren","wundertat":"midgard5.spell-process-wundertat","dweomer":"midgard5.spell-process-dweomer","zauberlied":"midgard5.spell-process-zauberlied","salz":"midgard5.spell-process-salz","thaumagraphie":"midgard5.spell-process-thaumagraphie","beschwoeren":"midgard5.spell-process-beschwoeren","nekromantie":"midgard5.spell-process-nekromantie","thaumatherapie":"midgard5.spell-process-thaumatherapie","zaubermittel":"midgard5.spell-process-zaubermittel","zauberschutz":"midgard5.spell-process-zauberschutz"},"spellTypeSelection":{"gedanke":"midgard5.spell-type-gedanke","geste":"midgard5.spell-type-geste","wort":"midgard5.spell-type-wort"},"spellTargetSelection":{"umgebung":"midgard5.spell-target-umgebung","geist":"midgard5.spell-target-geist","koerper":"midgard5.spell-target-koerper"},"bonus":0,"type":"gedanke","process":"none","ap":0,"castDuration":"","range":"","effectTarget":"umgebung","effectArea":"","effectDuration":"","origin":"","rolls":{"formulas":{"0":{"formula":"1d20 + @c.calc.stats.spellCasting.value + @i.bonus","enabled":true,"label":"Zaubern"}},"output":""},"calc":{}},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"XD0IpWT6bN4AJiYQ":3},"_id":"HQ469FvZkwKfzFfu"} \ No newline at end of file diff --git a/midgard5e/packs/macros/makros-kritische-ereignisse.db b/midgard5e/packs/macros/makros-kritische-ereignisse.db new file mode 100644 index 0000000..67540f1 --- /dev/null +++ b/midgard5e/packs/macros/makros-kritische-ereignisse.db @@ -0,0 +1,5 @@ +{"name":"Kritischer Erfolg bei der Abwehr","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"type":"script","flags":{"core":{"sourceId":"Macro.P6jQGko7PdG6Xlhe"}},"scope":"global","command":"await game.tables.getName(\"Kritischer Erfolg bei der Abwehr\").draw()","author":"CBq5YXAqbO7HoJ03","img":"systems/midgard5e/assets/icons/macro/kriterfolgabwehr.svg","actorIds":[],"_id":"qWyrwvh7g9CbTKg9"} +{"name":"Kritischer Fehler bei Angriffen","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"type":"script","flags":{"core":{"sourceId":"Macro.FZUermrYHSbrEluS"}},"scope":"global","command":"await game.tables.getName(\"Kritischer Fehler bei Angriffen\").draw()","author":"CBq5YXAqbO7HoJ03","img":"systems/midgard5e/assets/icons/macro/kritfehlerangriff.svg","actorIds":[],"_id":"798kmgnTkpfP89Z9"} +{"name":"Kritischer Fehler bei der Abwehr","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"type":"script","flags":{"core":{"sourceId":"Macro.k1tLp8Q2NY9twiZ6"}},"scope":"global","command":"await game.tables.getName(\"Kritischer Fehler bei der Abwehr\").draw()","author":"CBq5YXAqbO7HoJ03","img":"systems/midgard5e/assets/icons/macro/kritfehlerabwehr.svg","actorIds":[],"_id":"W7rYb00B6rtabV05"} +{"name":"Kritischer Schaden","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"type":"script","flags":{"core":{"sourceId":"Macro.QZlbT0tgD2aYW5YJ"}},"scope":"global","command":"await game.tables.getName(\"Kritischer Schaden\").draw()","author":"CBq5YXAqbO7HoJ03","img":"systems/midgard5e/assets/icons/macro/kriterfolgangriff.svg","actorIds":[],"_id":"48DUqxdpHDCGKOHp"} +{"name":"Kritische Fehler beim Zaubern","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"type":"script","flags":{"core":{"sourceId":"Macro.e4KLlTBq8Z4Pt7In"}},"scope":"global","command":"await game.tables.getName(\"Kritischer Fehler beim Zaubern\").draw()","author":"CBq5YXAqbO7HoJ03","img":"systems/midgard5e/assets/icons/macro/kritfehlerzauber.svg","actorIds":[],"_id":"XtzGuyYRyX8wVi1e"} \ No newline at end of file diff --git a/midgard5e/packs/macros/makros-standardwurfel.db b/midgard5e/packs/macros/makros-standardwurfel.db new file mode 100644 index 0000000..9b482f9 --- /dev/null +++ b/midgard5e/packs/macros/makros-standardwurfel.db @@ -0,0 +1,4 @@ +{"name":"1W10","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"type":"chat","flags":{"core":{"sourceId":"Macro.TqmUKpMpY4GhiTML"}},"scope":"global","command":"/r 1d10","author":"CBq5YXAqbO7HoJ03","img":"systems/midgard5e/assets/icons/wurfel/w10.svg","actorIds":[],"_id":"YWsPRUpZpgLBKIB3"} +{"name":"1W100","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"type":"chat","flags":{"core":{"sourceId":"Macro.S01PfXnvLPeuKOH8"}},"scope":"global","command":"/r 1d100","author":"CBq5YXAqbO7HoJ03","img":"systems/midgard5e/assets/icons/wurfel/w100.svg","actorIds":[],"_id":"pXZIfqDIX9VKYonr"} +{"name":"1W20","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"type":"chat","flags":{"core":{"sourceId":"Macro.mj9nIEgk0UDz8tbH"}},"scope":"global","command":"/r 1d20","author":"CBq5YXAqbO7HoJ03","img":"systems/midgard5e/assets/icons/wurfel/w20.svg","actorIds":[],"_id":"qBoxslCQXxR22xKc"} +{"name":"1W6","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"type":"chat","flags":{"core":{"sourceId":"Macro.QBhV6De80g1wH6ot"}},"scope":"global","command":"/r 1d6","author":"CBq5YXAqbO7HoJ03","img":"systems/midgard5e/assets/icons/wurfel/w6.svg","actorIds":[],"_id":"5tpfRgbM5sTL9gur"} \ No newline at end of file diff --git a/midgard5e/packs/rolltables/tabellen-kritische-ereignisse.db b/midgard5e/packs/rolltables/tabellen-kritische-ereignisse.db new file mode 100644 index 0000000..16420de --- /dev/null +++ b/midgard5e/packs/rolltables/tabellen-kritische-ereignisse.db @@ -0,0 +1,5 @@ +{"name":"Kritischer Erfolg bei der Abwehr","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"flags":{},"img":"icons/svg/holy-shield.svg","description":"

Tabelle 6: Kritischer Erfolg bei der Abwehr

","results":[{"_id":"ImLGlzC3AuyT5VMl","flags":{},"type":0,"text":"Keine besonderen Auswirkungen.","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[1,10],"drawn":false},{"_id":"PPQUPOo5JGRkKPXQ","flags":{},"type":0,"text":"Die Waffenhand des Angreifers wird geprellt. In der folgenden Runde kann er mit dieser Hand nicht angreifen. Tiere verlieren einen Angriff mit Pranke, Zähnen, Stachel usw.","img":"icons/svg/d20-black.svg","resultId":"","weight":20,"range":[11,30],"drawn":false},{"_id":"IpRVlty1p1it0eMm","flags":{},"type":0,"text":"Der Angreifer wird entwaffnet. Die Waffe fliegt vom Angreifer aus gesehen geradlinig um [[1d6–1]] m nach links. Bei waffenlosen Angriffen gibt es keine besonderen Auswirkungen.","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[31,40],"drawn":false},{"_id":"fh01DVN6rFKrTdcg","flags":{},"type":0,"text":"Der Angreifer wird entwaffnet. Die Waffe fliegt nach rechts (s. 31-40).","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[41,50],"drawn":false},{"_id":"k1rD7t7YnayTcV9P","flags":{},"type":0,"text":"Der Angreifer wird entwaffnet. Die Waffe fliegt nach hinten (s. 31-40).","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[51,60],"drawn":false},{"_id":"9WFBq8PAy1fFxe4I","flags":{},"type":0,"text":"Der Angreifer stürzt zu Boden. Er ist vom Abwehrenden umgestoßen worden oder gestolpert. In einem Handgemenge treten keine besonderen Folgen auf.","img":"icons/svg/d20-black.svg","resultId":"","weight":20,"range":[61,80],"drawn":false},{"_id":"u5kKsW1vnvWvF79s","flags":{},"type":0,"text":"Der Angreifer wird leicht verwundet. Er verliert [[1d6]] AP.","img":"icons/svg/d20-black.svg","resultId":"","weight":15,"range":[81,95],"drawn":false},{"_id":"gTvVtavg5GElh0pg","flags":{},"type":0,"text":"Der Angreifer wird schwer verwundet. Er erleidet [[1d6]] schweren Schaden.","img":"icons/svg/d20-black.svg","resultId":"","weight":4,"range":[96,99],"drawn":false},{"_id":"507Nvm6dWIlN8Ip1","flags":{},"type":0,"text":"Der Angreifer verliert das Bewusstsein. Er stürzt zu Boden und kommt erst [[1d6]] Runden später wieder zu sich.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[100,100],"drawn":false}],"formula":"1d100","replacement":true,"displayRoll":true,"_id":"JOQf46Cj29MwcKsY"} +{"name":"Kritischer Fehler bei Angriffen","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"flags":{"exportSource":{"world":"midgard-test","system":"midgard5e","coreVersion":"0.7.9","systemVersion":0.02}},"img":"icons/svg/d20-grey.svg","description":"

Tabelle 4: Kritische Fehler bei Angriffen

","results":[{"_id":"dIX62PrnwNTY929l","flags":{},"type":0,"text":"

Keine besonderen Auswirkungen.

","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[1,10],"drawn":false},{"_id":"IgEkc7L4KlW745gH","flags":{},"type":0,"text":"

Der Angreifer verliert kurz das Gleichgewicht.

Er braucht etwas Zeit, um wieder kampfbereit zu sein, und kann in der folgenden Runde nicht angreifen.","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[11,20],"drawn":false},{"_id":"lXeIddddllhBc5aj","flags":{},"type":0,"text":"

Der Angreifer lässt seine Waffe fallen.

Sie fällt auf das Feld, auf dem er sich befi ndet. Fäuste, Pranken usw. werden leicht geprellt und können in der folgenden Runde nicht eingesetzt werden.","img":"icons/svg/d20-black.svg","resultId":"","weight":15,"range":[21,35],"drawn":false},{"_id":"hNjE2KIIGCvgcBjf","flags":{},"type":0,"text":"

Die Angriffswaffe wird zerstört.

Bei magischen Waffen wird 1W6–1 ([[1d6-1]])gewürfelt; die Waffe wird nur zerstört, wenn das Ergebnis über dem höheren der beiden magischen Bonuswerte für Angriff und Schaden liegt. Bei Angriffen mit Fäusten, Zähnen usw. wird der betreffende Körperteil geprellt und kann 10 min lang nicht eingesetzt werden.","img":"icons/svg/d20-black.svg","resultId":"","weight":15,"range":[36,50],"drawn":false},{"_id":"2mW1vM6xy0emVwDM","flags":{},"type":0,"text":"

Der Angreifer verletzt sich selbst.

Im Nahkampf und Handgemenge mit einer Waffe erleidet er durch seine Ungeschicklichkeit [[1d6–1]] schweren Schaden. Bei Angriffen mit der bloßen Hand und anderen natürlichen Waffen oder mit Wurfwaffen verliert der Angreifer [[1d6–1]] AP durch eine Muskel zerrung und kann eine Runde lang nicht angreifen. Bei einem Bogen- oder Armbrustschuss reißt die Sehne und verletzt den Schützen leicht ([[1d6–1]] AP Verlust). Sie kann in [[1d6+3]] Runden durch eine neue ersetzt werden.","img":"icons/svg/d20-black.svg","resultId":"","weight":5,"range":[51,55],"drawn":false},{"_id":"bd5AxyNFZ2RQ7Aq0","flags":{},"type":0,"text":"

Der Angreifer trifft aus Versehen die nächststehende befreundete Person.

Er fügt ihr [[1d6–1]] schweren Schaden zu. Befi ndet sich kein Gefährte in Reichweite, hat der Fehler keine Folgen. Kommen mehrere Personen als Opfer in Frage, wird eine von ihnen ausgewürfelt.","img":"icons/svg/d20-black.svg","resultId":"","weight":5,"range":[56,60],"drawn":false},{"_id":"CY9a5ajPDQGns8CN","flags":{},"type":0,"text":"

Der Angreifer läuft in die Waffe des Gegners hinein.

Der Angegriffene darf sofort außer der Reihe einen zusätzlichen EW:Angriff machen, der nicht abgewehrt werden darf.","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[61,70],"drawn":false},{"_id":"pVHTa2JuXutMDar7","flags":{},"type":0,"text":"

Der Angreifer verstaucht sich den Fuß.

Seine Bewegungsweite verringert sich für [[2d6]] Runden um ein Drittel. Bei einem Schuss mit Bogen oder Armbrust schlägt die Sehne gegen den Arm des Abenteurers, der dadurch [[1d6–1]] AP verliert und eine Runde lang nicht schießen kann.","img":"icons/svg/d20-black.svg","resultId":"","weight":20,"range":[71,90],"drawn":false},{"_id":"q4hhhMPXWJlmFMY7","flags":{},"type":0,"text":"

Der Angreifer stolpert und stürzt zu Boden.

Bei Armbrust- oder Bogenschuss reißt stattdessen die Sehne und verletzt den Schützen leicht [[1d6–1]] AP Verlust - s. 51-55). Im Handgemenge hat dieser Wurf dieselben Folgen wie 71-90.

51-55

Der Angreifer trifft aus Versehen die nächststehende befreundete Person. Er fügt ihr [[1d6–1]] schweren Schaden zu. Befi ndet sich kein Gefährte in Reichweite, hat der Fehler keine Folgen. Kommen mehrere Personen als Opfer in Frage, wird eine von ihnen ausgewürfelt.

71-90

Der Angreifer verstaucht sich den Fuß.Seine Bewegungsweite verringert sich für [[2d6]] Runden um ein Drittel. Bei einem Schuss mit Bogen oder Armbrust schlägt die Sehne gegen den Arm des Abenteurers, der dadurch [[1d6–1]] AP verliert und eine Runde lang nicht schießen kann.

","img":"icons/svg/d20-black.svg","resultId":"","weight":9,"range":[91,99],"drawn":false},{"_id":"huSeP6mv8OeNYJDj","flags":{},"type":0,"text":"

Der Angreifer stürzt zu Boden und zerstört dabei seine Waffe

. Bei einem Angriff mit natürlichen Waffen kann der betreffende Körperteil wie bei 36-50 10 min lang nicht eingesetzt werden. Bei einem Angriff mit Schusswaffen fällt der Abenteurer nicht hin.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[100,100],"drawn":false}],"formula":"1d100","replacement":true,"displayRoll":true,"_id":"sVgHbAxseIoeIMz8"} +{"name":"Kritischer Fehler bei der Abwehr","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"flags":{"exportSource":{"world":"midgard-test","system":"midgard5e","coreVersion":"0.7.9","systemVersion":0.02}},"img":"icons/svg/fire-shield.svg","description":"

Tabelle 5: Kritischer Fehler bei der Abwehr

","results":[{"_id":"Xdzk7cvwwnI2i18M","flags":{},"type":0,"text":"

Keine besonderen Auswirkungen.

","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[1,10],"drawn":false},{"_id":"8xuz2YsB90Z0KbLs","flags":{},"type":0,"text":"

Der Angegriffene verliert kurz das Gleichgewicht.

Er braucht etwas Zeit, um wieder kampfbereit zu sein, und kann in der folgenden Runde nicht angreifen.","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[11,20],"drawn":false},{"_id":"gpzhwQyLX429zUz0","flags":{},"type":0,"text":"

Die Verteidigungswaffe ist zerstört.

Benutzt der Abenteurer weder Schild noch Parierwaffe, hat dieser Wurf dieselben Folgen wie 81 - 90. Bei magischen Waffen wird 1W6–1 ([[1d6-1]]) gewürfelt; die Waffe wird nur zerstört, wenn das Ergebnis größer als ihr magischer Abwehrbonus ist.

81-90

Der Verteidiger prallt unglücklich mit seinem Gegner zusammen (Nahkampf und Handgemenge) oder gegen ein Hindernis (Fernkampf) und ist kurzzeitig benommen. Im Nahkampf oder Handgemenge kann er in der folgenden Runde weder angreifen noch abwehren. Sein Gegner leidet unter denselben Folgen - aber nur, wenn ihm ein PW:Gewandtheit misslingt. Im Fernkampf kann der Angegriffene wie bei 61-70 dem nächsten Schuss nicht ausweichen und darf außerdem in dieser und der folgenden Runde nicht mehr angreifen.","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[21,30],"drawn":false},{"_id":"Znrv6r6SHSBEclYd","flags":{},"type":0,"text":"

Der Angegriffene lässt seine Verteidigungswaffe fallen.

Die Waffe fällt ihm zu Füßen. Benutzt er weder Schild noch Parierwaffe, hat dieser Wurf dieselben Folgen wie 41-50.

41-50

Der Verteidiger wird nach hinten gedrängt (Nahkampf), oder der Schwung seiner Ausweichbewegung reißt ihn mit (Fernkampf). Im Nahkampf bewegt sich der Angegriffene 1 m geradlinig vom Gegner weg, wenn ihn kein massives Hindernis daran hindert - selbst wenn er dadurch in ein Lagerfeuer oder einen Abgrund hineingerät. Der Angreifer kann sofort folgen und den Kontakt aufrechterhalten, wenn er will. Im Fernkampf bewegt sich der Angegriffene von seinem Standort aus um 1 m nach links (bei 1-2 mit [[1d6]]), nach rechts (bei 3-4), nach vorne (5) bzw. nach hinten (6), wenn ihn kein Hindernis daran hindert. Im Handgemenge hat der Wurf dieselben Folgen wie 51-60.

51-60

Die Sicht des Angegriffenen wird behindert. Er kann in der folgenden Runde nicht angreifen, da er Blut oder Schweiß aus den Augen wischen oder eine verrutschte Kopfbedeckung zurechtrücken muss.","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[31,40],"drawn":false},{"_id":"wLeOWz8B21WCkEwK","flags":{},"type":0,"text":"

Der Verteidiger wird nach hinten gedrängt (Nahkampf), oder der Schwung seiner Ausweichbewegung reißt ihn mit (Fernkampf).

Im Nahkampf bewegt sich der Angegriffene 1 m geradlinig vom Gegner weg, wenn ihn kein massives Hindernis daran hindert - selbst wenn er dadurch in ein Lagerfeuer oder einen Abgrund hineingerät. Der Angreifer kann sofort folgen und den Kontakt aufrechterhalten, wenn er will. Im Fernkampf bewegt sich der Angegriffene von seinem Standort aus um 1 m nach links (bei 1-2 mit [[1d6]]), nach rechts (bei 3-4), nach vorne (5) bzw. nach hinten (6), wenn ihn kein Hindernis daran hindert. Im Handgemenge hat der Wurf dieselben Folgen wie 51-60.

51-60

Die Sicht des Angegriffenen wird behindert. Er kann in der folgenden Runde nicht angreifen, da er Blut oder Schweiß aus den Augen wischen oder eine verrutschte Kopfbedeckung zurechtrücken muss.","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[41,50],"drawn":false},{"_id":"OK1TzYWgPDqvBF6K","flags":{},"type":0,"text":"

Die Sicht des Angegriffenen wird behindert.

Er kann in der folgenden Runde nicht angreifen, da er Blut oder Schweiß aus den Augen wischen oder eine verrutschte Kopfbedeckung zurechtrücken muss.","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[51,60],"drawn":false},{"_id":"jmWy6vH4NYiGghPE","flags":{},"type":0,"text":"

Der Verteidiger gibt sich eine Blöße.

Im Nahkampf oder Handgemenge darf der Angreifer sofort außer der Reihe einen zusätzlichen EW:Angriff machen, der nicht abgewehrt werden darf. Im Fernkampf kann der Angegriffene dem nächsten Schuss oder Wurf (in der laufenden oder folgenden Runde, nicht aber später) nicht ausweichen und daher keinen WW:Abwehr würfeln.","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[61,70],"drawn":false},{"_id":"o6r0hJ0iufMsINa1","flags":{},"type":0,"text":"

Der Angegriffene verstaucht sich den Fuß.

Die Bewegungsweite verringert sich für [[2d6]] Runden um ein Drittel.","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[71,80],"drawn":false},{"_id":"azc8c9daJPxkmg1P","flags":{},"type":0,"text":"

Der Verteidiger prallt unglücklich mit seinem Gegner zusammen (Nahkampf und Handgemenge) oder gegen ein Hindernis (Fernkampf) und ist kurzzeitig benommen.

Im Nahkampf oder Handgemenge kann er in der folgenden Runde weder angreifen noch abwehren. Sein Gegner leidet unter denselben Folgen - aber nur, wenn ihm ein PW:Gewandtheit misslingt. Im Fernkampf kann der Angegriffene wie bei 61-70 dem nächsten Schuss nicht ausweichen und darf außerdem in dieser und der folgenden Runde nicht mehr angreifen.

61-70

Im Fernkampf kann der Angegriffene dem nächsten Schuss oder Wurf (in der laufenden oder folgenden Runde, nicht aber später) nicht ausweichen und daher keinen WW:Abwehr würfeln.","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[81,90],"drawn":false},{"_id":"fT5NKtySSqN8Yzlu","flags":{},"type":0,"text":"

Der Angegriffene rutscht aus und stürzt zu Boden.

Im Handgemenge hat dieser Wurf dieselben Folgen wie 61-70.

61-70

Im Nahkampf oder Handgemenge darf der Angreifer sofort außer der Reihe einen zusätzlichen EW:Angriff machen, der nicht abgewehrt werden darf.","img":"icons/svg/d20-black.svg","resultId":"","weight":9,"range":[91,99],"drawn":false},{"_id":"gxzElw6oBZTjj15Z","flags":{},"type":0,"text":"

Der Angegriffene stürzt und verliert das Bewusstsein.

Er kommt nach [[1d6]] Runden wieder zu sich.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[100,100],"drawn":false}],"formula":"1d100","replacement":true,"displayRoll":true,"_id":"XKbuKI8F08WdFfWV"} +{"name":"Kritischer Schaden","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"flags":{"exportSource":{"world":"midgard-test","system":"midgard5e","coreVersion":"0.7.9","systemVersion":0.02}},"img":"icons/svg/d20-highlight.svg","description":"

Tabelle 7: Kritischer Schaden

Die Folgen schwerer Verletzungen werden auf S. 63 (Kodex) beschrieben.\nEin Treffer hat besonders schwerwiegende Folgen (mit * markiert), wenn die Lebenspunkteverluste ein Drittel des LP-Maximums übersteigen. \nKostet ein kritischer Treffer das Opfer einschließlich der Zusatzschäden keine LP, richtet er keine längerfristigen Schädenan. Gliedmaßen (+) sind nur geprellt und nach 30 min wieder einsatzbereit. Ein Kopf- oder Wirbelsäulentreffer (++) macht nur wegen Schmerzen 30 min lang handlungsunfähig. Treffer im Gesicht/am Auge haben keine besonderen Auswirkungen.

","results":[{"_id":"YXyhoVz5EAMuc05m","flags":{},"type":0,"text":"

normaler schwerer Schaden

","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[1,10],"drawn":false},{"_id":"jwBN8gCTqMgaPuc4","flags":{},"type":0,"text":"

kurzer SchockDas Opfer kann durch den Schock der Verwundung eine Runde lang nicht angreifen.

","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[11,20],"drawn":false},{"_id":"g1zQk3AHDdlq3sqH","flags":{},"type":0,"text":"

Rumpftreffer mit Rippenbrüchen

[[1d3]] Rippen des Opfers brechen.","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[21,30],"drawn":false},{"_id":"XdF7xn83ChS4Qrzf","flags":{},"type":0,"text":"

Rumpftreffer mit Gefahr innerer Verletzungen

Das Opfer verliert zusätzlich zum normalen Schaden [[1d6]] LP und AP.
*: Schwere innere Verletzungen","img":"icons/svg/d20-black.svg","resultId":"","weight":5,"range":[31,35],"drawn":false},{"_id":"UjqhkUyUaBZ7n6CC","flags":{},"type":0,"text":"

schwere Verletzung der Wirbelsäule ++

Nur ein wuchtiger Hieb, z.B. mit einer Schlagwaffe, einer zweihändigen Hiebwaffe, einem Morgenstern, einem Kampfstab oder mit einer Pranke, richtet diese Art von kritischem Schaden an. Treffer mit anderen Waffen verursachen normalen schweren Schaden.","img":"icons/svg/d20-black.svg","resultId":"","weight":5,"range":[36,40],"drawn":false},{"_id":"W7yzr5lC0z5NDt77","flags":{},"type":0,"text":"

schwere Verletzung am rechten Arm +

*: Mit 20% wird der Arm abgetrennt (bei einer Waffe mit Schneide) oder dauerhaft verkrüppelt. Mit Armschutz führt auch der Treffer mit einer scharfen Waffe nicht zum Abtrennen, sondern nur zur Verkrüppelung des Armes. Treffer mit Stich-, Wurf- oder Schusswaffen haben keine derart schwerwiegenden Auswirkungen.","img":"icons/svg/d20-black.svg","resultId":"","weight":7,"range":[41,47],"drawn":false},{"_id":"1dFkXxy7VhtSbahw","flags":{},"type":0,"text":"

schwere Verletzung am linken Arm +

*: Mit 20% wird der Arm abgetrennt (bei einer Waffe mit Schneide) oder dauerhaft verkrüppelt. Mit Armschutz führt auch der Treffer mit einer scharfen Waffe nicht zum Abtrennen, sondern nur zur Verkrüppelung des Armes. Treffer mit Stich-, Wurf- oder Schusswaffen haben keine derart schwerwiegenden Auswirkungen.","img":"icons/svg/d20-black.svg","resultId":"","weight":8,"range":[48,55],"drawn":false},{"_id":"CiAwKT1ZhOGKplBr","flags":{},"type":0,"text":"

schwere Verletzung am rechten Bein +

*: Mit 20% wird das Bein abgetrennt (ohne Beinschutz bei einer Waffe mit Schneide) oder dauerhaft verkrüppelt. Treffer mit Stich-, Wurf- oder Schusswaffen haben keine derart schwerwiegenden Auswirkungen.","img":"icons/svg/d20-black.svg","resultId":"","weight":9,"range":[56,64],"drawn":false},{"_id":"PZa6plWsSiQFmu5c","flags":{},"type":0,"text":"

schwere Verletzung am linken Bein +

*: Mit 20% wird das Bein abgetrennt (ohne Beinschutz bei einer Waffe mit Schneide) oder dauerhaft verkrüppelt. Treffer mit Stich-, Wurf- oder Schusswaffen haben keine derart schwerwiegenden Auswirkungen.","img":"icons/svg/d20-black.svg","resultId":"","weight":9,"range":[65,73],"drawn":false},{"_id":"5xXKfpkaOap9WV0o","flags":{},"type":0,"text":"

schwerer Kopftreffer ++

Helmlose Opfer verlieren zusätzlich zum normalen Schaden [[1d3]] LP und AP.","img":"icons/svg/d20-black.svg","resultId":"","weight":7,"range":[74,80],"drawn":false},{"_id":"5OTWkWQxchPs6SQI","flags":{},"type":0,"text":"

Treffer im Gesicht

Das Aussehen des Getroffenen sinkt durch eine entstellende Narbe dauerhaft um ein Zehntel (mindestens aber um 1). Der Träger eines Helms mit Visier ist vor dieser Art von Schaden sicher.","img":"icons/svg/d20-black.svg","resultId":"","weight":5,"range":[81,85],"drawn":false},{"_id":"GaZZENfKk81MI1IK","flags":{},"type":0,"text":"

Kopftreffer mit Hörschaden <++>

Helmlose Opfer verlieren zusätzlich zum normalen Schaden [[1d3]] LP und AP. Zusätzlich schwere Verletzung am Ohr. Helmträger sind vor dieser Art von Schaden sicher.","img":"icons/svg/d20-black.svg","resultId":"","weight":4,"range":[86,89],"drawn":false},{"_id":"OsfxiUi4dg0RM9XV","flags":{},"type":0,"text":"

Augenverletzung

Der Träger eines Helms mit Visier ist vor dieser Art von Schaden sicher.","img":"icons/svg/d20-black.svg","resultId":"","weight":4,"range":[90,93],"drawn":false},{"_id":"TGtUlGPANVjZLgZH","flags":{},"type":0,"text":"

Halstreffer

*: Eine spitze oder scharfe Waffe verletzt die Halsschlagader. Eine stumpfe Waffe verursacht eine schwere Halswirbelverletzung.","img":"icons/svg/d20-black.svg","resultId":"","weight":3,"range":[94,96],"drawn":false},{"_id":"98WnvS1A35Vr0rOv","flags":{},"type":0,"text":"

schwere Schädelverletzung ++

Helmlose Opfer verlieren zusätzlich zum normalen Schaden [[1d6]] LP und AP. Fällt das Opfer ins Koma, sinkt seine Intelligenz durch Hirnschäden dauerhaft um ein Zehntel (mindestens aber um 1).","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[97,97],"drawn":false},{"_id":"8g1FJIsxKFVWvyxe","flags":{},"type":0,"text":"

Augenverlust

Bei einem Treffer mit einer scharfen oder spitzen Waffe oder einer Schusswaffe verliert das Opfer ein Auge. Der Träger eines Helms mit Visier ist vor dieser Art von Schaden sicher.","img":"icons/svg/d20-black.svg","resultId":"","weight":2,"range":[98,99],"drawn":false},{"_id":"U1SXJI4yzfzcQM01","flags":{},"type":0,"text":"

tödlicher Treffer

Ein Treffer ins Herz, an der Kehle usw. tötet den Getroffenen augenblicklich.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[100,100],"drawn":false}],"formula":"1d100","replacement":true,"displayRoll":true,"_id":"cQX6GAYWErokE8ks"} +{"name":"Kritische Fehler beim Zaubern","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"flags":{"exportSource":{"world":"midgard-test","system":"midgard5e","coreVersion":"0.7.9","systemVersion":0.02}},"img":"icons/svg/book.svg","description":"

Tabelle 1: Kritische Fehler Beim Zaubern

*: Die Magie wirkt auf ein falsches Ziel oder hat einen unerwünschten Effekt. Werden dabei Wesen betroffen, die nicht verzaubert werden wollen, steht ihnen ein WW:Resistenz oder ein WW:Abwehr zu. Dabei zählt allerdings nicht das Würfelergebnis von 1, das zu dem kritischen Fehler geführt hat, sondern der ungeschickte Zauberer wiederholt in diesen Fällen den EW:Zaubern. Diesem neuen Gesamtergebnis müssen die Opfer \ndes kritischen Fehlers widerstehen, um der magischen Wirkung \nzu entgehen - auch wenn es unter 20 liegt. Fällt bei diesem wiederholten EW:Zaubern eine 1 oder eine 20, so hat dies keine besonderen Folgen.
Wird ein kritischer Fehler erwürfelt, der für einen Spruch sinnlos ist, wird stattdessen der Zauberer geschwächt. Er kann [[1d6]] Runden nicht zaubern.

","results":[{"_id":"LW9UnEaonREGKzTy","flags":{},"type":0,"text":"Keine besonderen Auswirkungen.","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[1,10],"drawn":false},{"_id":"G7GgXxFcsfsbUcwi","flags":{},"type":0,"text":"

* Der Zauberer verspricht sich oder kann seine Gedanken nicht zusammenhalten.

Es kommt zu einer Entladung magischer Energie, die wirkungslos verpufft, dem Zauberer aber einen leichten thaumatischen Schock versetzt. Er kann [[1d6]] Runden (*10 sec) lang nicht zaubern.","img":"icons/svg/d20-black.svg","resultId":"","weight":20,"range":[11,30],"drawn":false},{"_id":"7vVkIs4duqhpJaKq","flags":{},"type":0,"text":"

Der Zauberer unterschätzt das Ausmaß des Flusses arkaner Energie.

Der Zauberer setzt mehr Magan in Bewegung als nötig. Der Überfluss entzieht sich seiner Kontrolle und breitet sich schlagartig in seinem Astralleib aus. Diese Störung lässt den Spruch fehlschlagen. Der Zauberer verliert dadurch doppelt so viele AP wie üblich.","img":"icons/svg/d20-black.svg","resultId":"","weight":20,"range":[31,50],"drawn":false},{"_id":"S5d86WFP7bCmatNp","flags":{},"type":0,"text":"

* Der Zauberer irrt sich bei der Festlegung des Effekts.

Das Opfer wird gestärkt statt geschwächt, verwundet statt geheilt, es wird wärmer statt kühler usw. Soweit möglich, geschieht das Gegenteil dessen, was der Zauberer erreichen wollte.","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[51,60],"drawn":false},{"_id":"I3XXLhTRCdE19Vmd","flags":{},"type":0,"text":"

* Der Zauberer irrt sich bei der Auswahl des Opfers/ des Wirkungsbereichs.

Der Spruch wirkt auf ein zufällig bestimmtes Wesen oder Objekt innerhalb der Reichweite. Bei räumlichen Wirkungsbereichen breitet sich die Magie in die genau entgegengesetzte Richtung (Kegel oder Strahl) aus bzw. liegt das Zentrum der Wirkung in entgegengesetzter Richtung vom Zauberer aus gesehen (Umkreis).","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[61,70],"drawn":false},{"_id":"ciB0pGZyV4KjV5iO","flags":{},"type":0,"text":"

Der Zauberer wird geschwächt.

Der Spruch misslingt, aber die bereits freigesetzte Energie schwächt Körper und Geist des Zauberers. Er verliert [[1d6]] AP und kann [[1d6*10]] min lang nicht zaubern.","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[71,80],"drawn":false},{"_id":"xx6BVgf3NbpFJLaQ","flags":{},"type":0,"text":"

Es kommt zu einer magischen Stauung.

Die falsche Ausführung des Zaubers verhindert die Weiterleitung der erzeugten arkanen Energie. Die starke Ansammlung von Magan im Argyriston des Zauberers zieht dieses in Mitleidenschaft. Sein Zaubertalent sinkt für [[1d6]] Tage auf die Hälfte des normalen Wertes - mit entsprechenden Folgen für seinen persönlichen Zauberbonus. Dieser negative Effekt kann mit Allheilung vorzeitig aufgehoben werden.","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[81,90],"drawn":false},{"_id":"Q3QjCiHYzLVtrXz3","flags":{},"type":0,"text":"

Der Zauberer erleidet eine schwere Bewusstseinsstörung.

Die Entladung magischer Energie beim Scheitern des Spruches versetzt dem Zauberer einen schweren thaumatischen Schock. Er verliert dadurch [[1d6]] LP und AP und kann in der nächsten Stunde nicht zaubern. Übersteigen die LP-Verluste ein Drittel des LP Maximums, so fällt der Zauberer in ein Koma, aus dem er nach [[1d6]] Tagen erwacht. Mit Allheilung kann er vorher aufgeweckt werden.","img":"icons/svg/d20-black.svg","resultId":"","weight":5,"range":[91,95],"drawn":false},{"_id":"QICP7DgbyTmp1Nns","flags":{},"type":0,"text":"

*Der Zauberer verzaubert sich selbst.

Bei einem Geistes- oder Körperzauber trifft die volle Wirkung der Magie den Zauberer selbst, wenn ihm ein WW:Resistenz misslingt. Schützende Zauber funktionieren also gegebenenfalls ganz normal (Glück im Unglück). Kontrollzauber wie Macht über Menschen führen zur vorübergehenden Handlungsunfähigkeit des Zauberers; sein Geist versucht, die Kontrolle über sich selbst zu übernehmen, so dass er völlig mit sich selbst beschäftigt ist, bis ihm ein alle 2 min erlaubter EW:Resistenz gelingt. Sprü- che, die wie Macht über die belebte Natur nur auf Tiere wirken, haben keinen Effekt. Bei Umgebungszaubern tritt stattdessen der unter 91-95 beschriebene Effekt ein.","img":"icons/svg/d20-black.svg","resultId":"","weight":4,"range":[96,99],"drawn":false},{"_id":"qY2J5MqMZvNzspnt","flags":{},"type":0,"text":"

Zauberwerk wird in Mitleidenschaft gezogen.

Der Spruch misslingt; die dabei freigesetzte Energie stört die Magie von Zauberwerk, das der Zauberer mit sich führt. Jeder magische Gegenstand in bis zu 1 m Entfernung ist mit einer Chance von 10%+Stufe des misslungenen Zaubers betroffen: Zaubermittel (Trünke, Kräuter usw.) verlieren ihre Eigenschaften, Amulette werden wirkungslos, Spruchrollen leeren sich. Bei verzauberten Waffen oder Rüstungen gehen [[1d6–3]] von allen magischen Zuschlägen verloren. Bei Artefakten mit mehreren Wirkungen wird für jede einzeln gewürfelt, ob sie betroffen ist.","img":"icons/svg/d20-black.svg","resultId":"","weight":1,"range":[100,100],"drawn":false}],"formula":"1d100","replacement":true,"displayRoll":true,"_id":"PRovcPRqdrvFRpFN"} \ No newline at end of file diff --git a/midgard5e/packs/scenes/scenes-midgard-karten.db b/midgard5e/packs/scenes/scenes-midgard-karten.db new file mode 100644 index 0000000..3939e4a --- /dev/null +++ b/midgard5e/packs/scenes/scenes-midgard-karten.db @@ -0,0 +1,2 @@ +{"name":"Midgard V1 (alte Farbkarte)","permission":{"default":0,"CBq5YXAqbO7HoJ03":3},"flags":{"core":{"sourceId":"Scene.npNUPVkNbxd93do8"}},"description":"","navigation":false,"navOrder":null,"navName":"","active":false,"initial":{"x":1782,"y":1118,"scale":1.01},"img":"systems/midgard5e/assets/maps/midgard_v1.png","thumb":"data:image/png;base64,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","width":2492,"height":1621,"padding":0.25,"backgroundColor":"#999999","tiles":[],"gridType":0,"grid":114,"shiftX":15,"shiftY":0,"gridColor":"#000000","gridAlpha":0.2,"gridDistance":500,"gridUnits":"km","tokens":[],"walls":[],"tokenVision":false,"fogExploration":false,"fogReset":null,"lights":[],"globalLight":true,"globalLightThreshold":null,"darkness":0,"playlist":"","sounds":[],"templates":[],"journal":"","notes":[],"weather":"","drawings":[],"_id":"V4ExDCoKNvQuiAFT"} +{"name":"Midgard V2 (neue Farbkarte)","permission":{"default":0,"CBq5YXAqbO7HoJ03":3},"flags":{"core":{"sourceId":"Scene.RTqvlO0wmmbETbvI"}},"description":"","navigation":false,"navOrder":null,"navName":"","active":false,"initial":{"x":1813,"y":1224,"scale":0.95},"img":"systems/midgard5e/assets/maps/midgard_v2.png","thumb":"data:image/png;base64,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","width":2245,"height":1477,"padding":0.25,"backgroundColor":"#999999","tiles":[],"gridType":0,"grid":111,"shiftX":25,"shiftY":0,"gridColor":"#000000","gridAlpha":0.2,"gridDistance":475,"gridUnits":"km","tokens":[],"walls":[],"tokenVision":false,"fogExploration":false,"fogReset":null,"lights":[],"globalLight":true,"globalLightThreshold":null,"darkness":0,"playlist":"","sounds":[],"templates":[],"journal":"","notes":[],"weather":"","drawings":[],"_id":"ri9djSkMvbjPEAwB"} \ No newline at end of file diff --git a/midgard5e/system.json b/midgard5e/system.json new file mode 100644 index 0000000..e288baa --- /dev/null +++ b/midgard5e/system.json @@ -0,0 +1,73 @@ +{ + "id": "midgard5e", + "title": "Midgard 5. Edition", + "description": "The German RPG Midgard 5. Edition", + "version": "1.2.3", + "compatibility": { + "minimum": "10", + "verified": "10" + }, + "authors": [{ "name": "Byroks" }], + "scripts": ["bundle.js"], + "styles": ["bundle.css"], + "packs": [ + { + "name": "blaupause-spielfiguren", + "label": "Blaupausen für Spielfiguren", + "system": "midgard5e", + "path": "./packs/actors/blaupause-spielfiguren.db", + "type": "Actor" + }, + { + "name": "blaupause-gegenstaende", + "label": "Blaupausen für Gegenstände", + "system": "midgard5e", + "path": "./packs/items/blaupause-gegenstaende.db", + "type": "Item" + }, + { + "name": "tabellen-kritische-ereignisse", + "label": "Tabellen Kritische Ereignisse", + "system": "midgard5e", + "path": "./packs/rolltables/tabellen-kritische-ereignisse.db", + "type": "RollTable" + }, + { + "name": "makros-kritische-ereignisse", + "label": "Makros Kritische Ereignisse", + "system": "midgard5e", + "path": "./packs/macros/makros-kritische-ereignisse.db", + "type": "Macro" + }, + { + "name": "makros-standardwurfel", + "label": "Standardwürfel", + "system": "midgard5e", + "path": "./packs/macros/makros-standardwurfel.db", + "type": "Macro" + }, + { + "name": "scenes-midgard-karten", + "label": "Midgard-Karten", + "system": "midgard5e", + "path": "./packs/scenes/scenes-midgard-karten.db", + "type": "Scene" + } + ], + "languages": [ + { + "lang": "de", + "name": "Deutsch", + "path": "lang/de.json" + } + ], + "gridDistance": 1, + "gridUnits": "m", + "primaryTokenAttribute": "lp", + "secondaryTokenAttribute": "ap", + "url": "https://github.com/Byroks/foundry-vtt-system-midgard5", + "manifest": "https://github.com/Byroks/foundry-vtt-system-midgard5/releases/download/v1.2.2/system.json", + "download": "https://github.com/Byroks/foundry-vtt-system-midgard5/releases/download/v1.2.2/midgard5-v1.2.2.zip", + "initiative": "@calc.attributes.gw.value", + "license": "LICENSE.txt" +} diff --git a/midgard5e/template.json b/midgard5e/template.json new file mode 100644 index 0000000..7ab35d3 --- /dev/null +++ b/midgard5e/template.json @@ -0,0 +1,309 @@ +{ + "Actor": { + "types": ["character"], + "templates": { + "characterDescription": { + "info": { + "description": "", + "class": "", + "race": "", + "magicUsing": false, + "gender": "", + "weight": "", + "height": "", + "shape": "", + "age": "", + "caste": "", + "occupation": "", + "origin": "", + "faith": "" + } + }, + "characterBars": { + "lp": { + "value": 15, + "min": 0, + "max": 15 + }, + "ap": { + "value": 20, + "min": 0, + "max": 20 + } + }, + "characterHeader": { + "es": 0, + "ep": 0, + "gg": 0, + "sg": 0, + "gp": 2 + }, + "attributes": { + "attributes": { + "st": { "value": 50, "bonus": 0 }, + "gs": { "value": 50, "bonus": 0 }, + "gw": { "value": 50, "bonus": 0 }, + "ko": { "value": 50, "bonus": 0 }, + "in": { "value": 50, "bonus": 0 }, + "zt": { "value": 50, "bonus": 0 }, + "au": { "value": 50, "bonus": 0 }, + "pa": { "value": 50, "bonus": 0 }, + "wk": { "value": 50, "bonus": 0 } + } + }, + "skills": { + "skills": { + "general": { + "akrobatik": { "fw": 6, "attribute": "gw", "initial": 8, "pp": 0 }, + "alchimie": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 }, + "anfuehren": { "fw": 6, "attribute": "pa", "initial": 8, "pp": 0 }, + "athletik": { "fw": 0, "attribute": "st", "initial": 8, "pp": 0 }, + "balancieren": { "fw": 6, "attribute": "gw", "initial": 8, "pp": 0 }, + "beidhaendigerKampf": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 }, + "beredsamkeit": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 }, + "betaeuben": { "fw": 6, "attribute": "gs", "initial": 8, "pp": 0 }, + "bootfahren": { "fw": 3, "attribute": "gs", "initial": 8, "pp": 0 }, + "ersteHilfe": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 }, + "etikette": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 }, + "fallenEntdecken": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 }, + "fallenmechanik": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 }, + "faelschen": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 }, + "fechten": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 }, + "gassenwissen": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 }, + "gaukeln": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 }, + "gelaendelauf": { "fw": 6, "attribute": "gw", "initial": 8, "pp": 0 }, + "geraetekunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 }, + "geschaeftssinn": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 }, + "gluecksspiel": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 }, + "heilkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 }, + "kampfInVollruestung": { "fw": 0, "attribute": "st", "initial": 8, "pp": 0 }, + "klettern": { "fw": 6, "attribute": "st", "initial": 8, "pp": 0 }, + "landeskunde": { "fw": 6, "attribute": "in", "initial": 8, "pp": 0 }, + "laufen": { "fw": 0, "attribute": "ko", "initial": 8, "pp": 0 }, + "lesenVonZauberschrift": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 }, + "meditieren": { "fw": 0, "attribute": "wk", "initial": 8, "pp": 0 }, + "menschenkenntnis": { "fw": 3, "attribute": "in", "initial": 8, "pp": 0 }, + "meucheln": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 }, + "musizieren": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 }, + "naturkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 }, + "pflanzenkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 }, + "reiten": { "fw": 6, "attribute": "gw", "initial": 8, "pp": 0 }, + "reiterkampf": { "fw": 0, "attribute": "gw", "initial": 8, "pp": 0 }, + "scharfschiessen": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 }, + "schleichen": { "fw": 3, "attribute": "gw", "initial": 8, "pp": 0 }, + "schloesserOeffnen": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 }, + "schwimmen": { "fw": 3, "attribute": "gw", "initial": 8, "pp": 0 }, + "seilkunst": { "fw": 3, "attribute": "gs", "initial": 8, "pp": 0 }, + "spurensuche": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 }, + "stehlen": { "fw": 3, "attribute": "gs", "initial": 8, "pp": 0 }, + "tarnen": { "fw": 3, "attribute": "gw", "initial": 8, "pp": 0 }, + "tauchen": { "fw": 6, "attribute": "ko", "initial": 8, "pp": 0 }, + "tierkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 }, + "ueberleben": { "fw": 6, "attribute": "in", "initial": 8, "pp": 0 }, + "verfuehren": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 }, + "verhoeren": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 }, + "verstellen": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 }, + "wagenlenken": { "fw": 3, "attribute": "gs", "initial": 8, "pp": 0 }, + "zauberkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 } + } + } + } + }, + "character": { + "templates": ["characterBars", "attributes", "characterDescription", "characterHeader", "skills"], + "calc": {} + } + }, + "Item": { + "types": ["skill", "weapon", "defensiveWeapon", "armor", "spell", "item"], + "templates": { + "itemDescription": { + "description": "" + }, + "stats": { + "stats": { + "damageBonus": 0, + "attackBonus": 0, + "defenseBonus": 0, + "movementBonus": 0, + "resistanceMind": 0, + "resistanceBody": 0, + "spellBonus": 0 + } + }, + "attributeSelection": { + "attributes": { + "st": { "short": "midgard5.actor-st", "long": "midgard5.actor-st-long" }, + "gs": { "short": "midgard5.actor-gs", "long": "midgard5.actor-gs-long" }, + "gw": { "short": "midgard5.actor-gw", "long": "midgard5.actor-gw-long" }, + "ko": { "short": "midgard5.actor-ko", "long": "midgard5.actor-ko-long" }, + "in": { "short": "midgard5.actor-in", "long": "midgard5.actor-in-long" }, + "zt": { "short": "midgard5.actor-zt", "long": "midgard5.actor-zt-long" }, + "au": { "short": "midgard5.actor-au", "long": "midgard5.actor-au-long" }, + "pa": { "short": "midgard5.actor-pa", "long": "midgard5.actor-pa-long" }, + "wk": { "short": "midgard5.actor-wk", "long": "midgard5.actor-wk-long" } + } + }, + "attributeMod": { + "attributeMod": { + "st": 0, + "gs": 0, + "gw": 0, + "ko": 0, + "in": 0, + "zt": 0, + "au": 0, + "pa": 0, + "wk": 0 + } + }, + "rollable": { + "rolls": { + "formulas": {}, + "output": "" + } + }, + "equippable": { + "equippable": false, + "equipped": true + }, + "physical": { + "value": 0, + "magic": false + }, + "spellSelection": { + "spellProcessSelection": { + "none": "midgard5.spell-process-none", + "beherrschen": "midgard5.spell-process-beherrschen", + "bewegen": "midgard5.spell-process-bewegen", + "erkennen": "midgard5.spell-process-erkennen", + "erschaffen": "midgard5.spell-process-erschaffen", + "formen": "midgard5.spell-process-formen", + "veraendern": "midgard5.spell-process-veraendern", + "zerstoeren": "midgard5.spell-process-zerstoeren", + "wundertat": "midgard5.spell-process-wundertat", + "dweomer": "midgard5.spell-process-dweomer", + "zauberlied": "midgard5.spell-process-zauberlied", + "salz": "midgard5.spell-process-salz", + "thaumagraphie": "midgard5.spell-process-thaumagraphie", + "beschwoeren": "midgard5.spell-process-beschwoeren", + "nekromantie": "midgard5.spell-process-nekromantie", + "thaumatherapie": "midgard5.spell-process-thaumatherapie", + "zaubermittel": "midgard5.spell-process-zaubermittel", + "zauberschutz": "midgard5.spell-process-zauberschutz" + }, + "spellTypeSelection": { + "gedanke": "midgard5.spell-type-gedanke", + "geste": "midgard5.spell-type-geste", + "wort": "midgard5.spell-type-wort" + }, + "spellTargetSelection": { + "umgebung": "midgard5.spell-target-umgebung", + "geist": "midgard5.spell-target-geist", + "koerper": "midgard5.spell-target-koerper" + } + } + }, + "skill": { + "templates": ["itemDescription", "attributeSelection"], + "fw": 0, + "attribute": "st", + "skill": "", + "type": "general", + "rolls": { + "formulas": { + "0": { + "formula": "1d20 + @i.calc.fw + @i.calc.bonus", + "label": "EW", + "enabled": true + } + }, + "output": "" + }, + "pp": 0, + "calc": {} + }, + "item": { + "templates": ["itemDescription", "equippable", "physical"], + "rolls": { + "formulas": {}, + "output": "" + }, + "mods": {}, + "calc": {} + }, + "weapon": { + "templates": ["itemDescription", "stats", "equippable", "physical"], + "special": false, + "ranged": false, + "skillId": "", + "damageBase": "1d6", + "rolls": { + "formulas": { + "0": { + "formula": "1d20 + @i.calc.fw + @i.calc.bonus + @i.calc.special + @c.calc.stats.attackBonus.value + @i.stats.attackBonus", + "label": "Angriff", + "enabled": true + }, + "1": { + "formula": "@i.damageBase + @i.stats.damageBonus + @c.calc.stats.damageBonus.value", + "label": "Schaden", + "enabled": true + } + }, + "output": "" + }, + "calc": {} + }, + "defensiveWeapon": { + "templates": ["itemDescription", "stats", "equippable", "physical"], + "special": false, + "skillId": "", + "rolls": { + "formulas": { + "0": { + "formula": "1d20 + @i.calc.fw + @i.calc.bonus + @i.calc.special + @c.calc.stats.defense.value + @c.calc.stats.defenseBonus.value + @i.stats.defenseBonus", + "label": "Abwehr", + "enabled": true + } + }, + "output": "" + }, + "calc": {} + }, + "armor": { + "templates": ["itemDescription", "stats", "equippable", "attributeMod", "physical"], + "lpProtection": 0, + "apProtection": 0, + "rolls": { + "formulas": {}, + "output": "" + }, + "calc": {} + }, + "spell": { + "templates": ["itemDescription", "spellSelection"], + "bonus": 0, + "type": "", + "process": "", + "ap": "", + "castDuration": "", + "range": "", + "effectTarget": "", + "effectArea": "", + "effectDuration": "", + "origin": "", + "rolls": { + "formulas": { + "0": { + "formula": "1d20 + @c.calc.stats.spellCasting.value + @i.bonus", + "label": "Zaubern", + "enabled": true + } + }, + "output": "" + }, + "calc": {} + } + } +} \ No newline at end of file diff --git a/midgard5e/templates/chat/roll-m5.hbs b/midgard5e/templates/chat/roll-m5.hbs new file mode 100644 index 0000000..b893ecb --- /dev/null +++ b/midgard5e/templates/chat/roll-m5.hbs @@ -0,0 +1,60 @@ +
+
+

{{res.label}}

+ + + + {{#if (eq iType "spell")}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{/if}} + + {{#each rolls as |roll index|}} + {{#if roll.enabled}} + + + + + {{/if}} + {{/each}} + +
{{localize "midgard5.actor-ap"}}{{i.ap}}
{{localize "midgard5.spell-castDuration"}}{{i.castDuration}}
{{localize "midgard5.spell-range"}}{{i.range}}
{{localize "midgard5.spell-effectTarget"}}{{localize (m5concat "midgard5.spell-target-" i.effectTarget)}}
{{localize "midgard5.spell-effectArea"}}{{i.effectArea}}
{{localize "midgard5.spell-effectDuration"}}{{i.effectDuration}}
{{localize "midgard5.spell-origin"}}{{i.origin}}
{{localize "midgard5.spell-type"}}{{localize (m5concat "midgard5.spell-type-" i.type)}}
{{localize "midgard5.spell-process"}}{{localize (m5concat "midgard5.spell-process-" i.process)}}
{{roll.label}} + {{roll.totalStr}} + {{roll.result}} +
+
+
\ No newline at end of file diff --git a/midgard5e/templates/sheets/character/attribute.hbs b/midgard5e/templates/sheets/character/attribute.hbs new file mode 100644 index 0000000..610e0c3 --- /dev/null +++ b/midgard5e/templates/sheets/character/attribute.hbs @@ -0,0 +1,13 @@ +
+
{{localize (m5concat "midgard5.actor-" attributeId "-long")}}
+ +
+
{{calc.value}}
+
{{calc.bonus}}
+
+ + +
\ No newline at end of file diff --git a/midgard5e/templates/sheets/character/base_values.hbs b/midgard5e/templates/sheets/character/base_values.hbs new file mode 100644 index 0000000..33715ab --- /dev/null +++ b/midgard5e/templates/sheets/character/base_values.hbs @@ -0,0 +1,169 @@ + +

{{localize "midgard5.actor-lp"}}

+
+
+ + {{#times data.lp.max}} + {{#if (lt this ../data.lp.value)}} +
+ {{else}} +
+ {{/if}} + {{/times}} + +
+
+ +

{{localize "midgard5.actor-ap"}}

+
+
+ + {{#times data.ap.max}} + {{#if (lt this ../data.ap.value)}} +
+ {{else}} +
+ {{/if}} + {{/times}} + +
+
+ +

Eigenschaften

+
+ {{localize "midgard5.class"}} + + + + Grad {{data.calc.level}} +
+ + + + + + + + + + + + + + + + + + + + +
{{localize "midgard5.grace"}}{{localize "midgard5.exp-overall"}}
{{localize "midgard5.destiny"}}{{localize "midgard5.exp-available"}}
{{localize "midgard5.luckPoints"}}
+ +

Leiteigenschaften

+ +
+ {{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="st" attribute=data.attributes.st calc=data.calc.attributes.st}} +
+ {{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="gs" attribute=data.attributes.gs calc=data.calc.attributes.gs}} +
+ {{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="gw" attribute=data.attributes.gw calc=data.calc.attributes.gw}} +
+ {{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="ko" attribute=data.attributes.ko calc=data.calc.attributes.ko}} +
+ {{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="in" attribute=data.attributes.in calc=data.calc.attributes.in}} +
+ +
+
+ {{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="zt" attribute=data.attributes.zt calc=data.calc.attributes.zt}} +
+ {{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="au" attribute=data.attributes.au calc=data.calc.attributes.au}} +
+ {{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="pa" attribute=data.attributes.pa calc=data.calc.attributes.pa}} +
+ {{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="wk" attribute=data.attributes.wk calc=data.calc.attributes.wk}} +
+
+ +

Berechnete Werte

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{{localize "midgard5.brawl"}}{{data.calc.stats.brawl.value}}{{localize "midgard5.enduranceBonus"}}{{data.calc.stats.enduranceBonus}}
{{localize "midgard5.defense"}}{{data.calc.stats.defense.value}}{{localize "midgard5.defenseBonus"}}{{data.calc.stats.defenseBonus.value}}
{{localize "midgard5.damageBonus"}}{{data.calc.stats.damageBonus.value}}{{localize "midgard5.attackBonus"}}{{data.calc.stats.attackBonus.value}}
{{localize "midgard5.spellCasting"}}{{data.calc.stats.spellCasting.value}}{{localize "midgard5.poisonResistance"}}{{data.calc.stats.poisonResistance.value}}
{{localize "midgard5.resistanceMind"}}{{data.calc.stats.resistanceMind.value}}{{localize "midgard5.resistanceBody"}}{{data.calc.stats.resistanceBody.value}}
+ +

Beschreibung

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{{localize "midgard5.race"}} + + + + {{localize "midgard5.gender"}}
{{localize "midgard5.weight"}}{{localize "midgard5.height"}}
{{localize "midgard5.shape"}}{{localize "midgard5.age"}}
{{localize "midgard5.caste"}}{{localize "midgard5.occupation"}}
{{localize "midgard5.origin"}}{{localize "midgard5.faith"}}
+ +{{editor content=data.description target="data.description" button=true owner=owner editable=editable}} diff --git a/midgard5e/templates/sheets/character/gear.hbs b/midgard5e/templates/sheets/character/gear.hbs new file mode 100644 index 0000000..4e94600 --- /dev/null +++ b/midgard5e/templates/sheets/character/gear.hbs @@ -0,0 +1,115 @@ + + + + + + + + + + + {{#each data.calc.gear.weapons as |item itemId|}} + + + + + + + {{/each}} + + + + + + + + +
{{localize "ITEM.TypeWeapon"}}{{localize "midgard5.ew"}}
{{item.label}}{{item.calc.ew}}
{{localize "midgard5.brawl"}}{{data.calc.stats.brawlEw}}
+ + + + + + + + + + + + {{#each data.calc.gear.defensiveWeapons as |item itemId|}} + + + + + + + {{/each}} + + + + + + + + + + + + + + + + + + + + + + +
{{localize "ITEM.TypeDefensiveWeapon"}}{{localize "midgard5.ew"}}
{{item.label}}{{item.calc.ew}}
{{localize "midgard5.defense"}}{{add data.calc.stats.defense.value data.calc.stats.defenseBonus.value}}
{{localize "midgard5.resistanceMind"}}{{data.calc.stats.resistanceMind.value}}
{{localize "midgard5.resistanceBody"}}{{data.calc.stats.resistanceBody.value}}
+ + + + + + + + + + + + + + + + {{#each data.calc.gear.armor as |item itemId|}} + + + + + + + + + + + {{/each}} + +
{{localize "ITEM.TypeArmor"}}{{localize "midgard5.actor-lp-short"}}{{localize "midgard5.actor-ap-short"}}{{localize "midgard5.attackBonus-short"}}{{localize "midgard5.defenseBonus-short"}}BGw
{{item.label}}{{actorItemValue ../actor._id itemId "lpProtection"}}{{actorItemValue ../actor._id itemId "apProtection"}}{{actorItemValue ../actor._id itemId "stats.attackBonus"}}{{actorItemValue ../actor._id itemId "stats.defenseBonus"}}{{actorItemValue ../actor._id itemId "stats.movementBonus"}}{{actorItemValue ../actor._id itemId "attributeMod.gw"}}
+ + + + + + + + + + {{#each data.calc.gear.items as |item itemId|}} + + + + + {{/each}} + +
{{localize "ITEM.TypeItem"}}
{{item.label}}
diff --git a/midgard5e/templates/sheets/character/main.hbs b/midgard5e/templates/sheets/character/main.hbs new file mode 100644 index 0000000..2be2338 --- /dev/null +++ b/midgard5e/templates/sheets/character/main.hbs @@ -0,0 +1,34 @@ +
+
+ +

+
+ + {{!-- Character Sheet Navigation --}} + + +
+ +
+ {{> "systems/midgard5e/templates/sheets/character/base_values.hbs"}} +
+ +
+ {{> "systems/midgard5e/templates/sheets/character/skills.hbs"}} +
+ +
+ {{> "systems/midgard5e/templates/sheets/character/gear.hbs"}} +
+ +
+ {{> "systems/midgard5e/templates/sheets/character/spells.hbs"}} +
+ +
+
\ No newline at end of file diff --git a/midgard5e/templates/sheets/character/skills.hbs b/midgard5e/templates/sheets/character/skills.hbs new file mode 100644 index 0000000..115dd3e --- /dev/null +++ b/midgard5e/templates/sheets/character/skills.hbs @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + {{#each data.calc.skills.general as |skill skillId|}} + + + + + + + + + + {{/each}} + +
{{localize "midgard5.learned-skill"}}{{localize "midgard5.fw"}}{{localize "midgard5.bonus"}}{{localize "midgard5.ew"}}{{localize "midgard5.pp-short"}}
{{skill.label}}{{skill.fw}}{{skill.calc.bonus}}{{skill.calc.ew}}{{skill.pp}}
+ + + + + + + + + + + + + + + {{#each data.calc.skills.language as |skill skillId|}} + + + + + + + + + + {{/each}} + +
{{localize "midgard5.language"}}{{localize "midgard5.fw"}}{{localize "midgard5.bonus"}}{{localize "midgard5.ew"}}{{localize "midgard5.pp-short"}}
{{skill.label}}{{skill.fw}}{{skill.calc.bonus}}{{skill.calc.ew}}{{skill.pp}}
+ + + + + + + + + + + + + + {{#each data.calc.skills.innate as |skill skillId|}} + + + + + + + + + {{/each}} + +
{{localize "midgard5.innate-ability"}}{{localize "midgard5.fw"}}{{localize "midgard5.bonus"}}{{localize "midgard5.ew"}}
{{skill.label}}{{skill.fw}}{{skill.calc.bonus}}{{skill.calc.ew}}
+ + + + + + + + + + + + + + + {{#each data.calc.skills.combat as |skill skillId|}} + + + + + + + + + + {{/each}} + +
{{localize "midgard5.weapon-skill"}}{{localize "midgard5.fw"}}{{localize "midgard5.bonus"}}{{localize "midgard5.ew"}}{{localize "midgard5.pp-short"}}
{{skill.label}}{{skill.fw}}{{skill.calc.bonus}}{{skill.calc.ew}}{{skill.pp}}
+ + + + + + + + + + + + + + + + {{#each data.skills.general as |skill key|}} + {{#unless (isSkillInList (localizeMidgard key) ../actor.system.calc.skills.general) }} + + + + + + + + + + + {{/unless}} + {{/each}} + +
{{localize "midgard5.unlearned-skill"}}{{localize "midgard5.fw"}}{{localize "midgard5.bonus"}}{{localize "midgard5.ew"}}{{localize "midgard5.pp-short"}}
{{localizeMidgard key}}{{skill.fw}}{{skillBonus ../actor._id skill}}{{skillEw ../actor._id skill}}
\ No newline at end of file diff --git a/midgard5e/templates/sheets/character/spells.hbs b/midgard5e/templates/sheets/character/spells.hbs new file mode 100644 index 0000000..46a5c44 --- /dev/null +++ b/midgard5e/templates/sheets/character/spells.hbs @@ -0,0 +1,23 @@ + + + + + + + + + + + {{#each data.calc.spells as |item itemId|}} + + + + + + + {{/each}} + +
{{localize "ITEM.TypeSpell"}}{{localize "midgard5.ew"}}
+ {{item.label}} + {{localize item.process}} + {{item.calc.ew}}
diff --git a/midgard5e/templates/sheets/item/armor.hbs b/midgard5e/templates/sheets/item/armor.hbs new file mode 100644 index 0000000..9d66a82 --- /dev/null +++ b/midgard5e/templates/sheets/item/armor.hbs @@ -0,0 +1,37 @@ +
+
+ +

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
{{localize "midgard5.actor-lp"}}{{localize "midgard5.actor-ap"}}
{{localize "midgard5.attackBonus"}}{{localize "midgard5.defenseBonus"}}
{{localize "midgard5.movementRange"}}{{localize "midgard5.actor-gw-long"}}
+ + {{editor content=data.description target="data.description" button=true owner=owner editable=editable}} +
+
\ No newline at end of file diff --git a/midgard5e/templates/sheets/item/defensiveWeapon.hbs b/midgard5e/templates/sheets/item/defensiveWeapon.hbs new file mode 100644 index 0000000..60e6743 --- /dev/null +++ b/midgard5e/templates/sheets/item/defensiveWeapon.hbs @@ -0,0 +1,51 @@ +
+
+ +

+
+
+ + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
{{localize "midgard5.defenseBonus"}}{{localize "midgard5.weapon-skill"}} + {{#if data.calc.combatSkills}} + + {{else}} + Assign item to character to select weapon skill + {{/if}} +
+ + {{> "systems/midgard5e/templates/sheets/item/rolls.hbs"}} + + {{editor content=data.description target="data.description" button=true owner=owner editable=editable}} +
+
\ No newline at end of file diff --git a/midgard5e/templates/sheets/item/item.hbs b/midgard5e/templates/sheets/item/item.hbs new file mode 100644 index 0000000..cc43767 --- /dev/null +++ b/midgard5e/templates/sheets/item/item.hbs @@ -0,0 +1,78 @@ +
+
+ +

+
+
+ + + + + +
+ + + +
+ {{localize "midgard5.item-value"}} + +
+
+ + + + + + + + + + + + {{#each data.mods as |mod modId|}} + + + + + + + + + + {{/each}} + +
Mods
+ + + + + + + +
+ + {{editor content=data.description target="data.description" button=true owner=owner editable=editable}} +
+
\ No newline at end of file diff --git a/midgard5e/templates/sheets/item/mod.hbs b/midgard5e/templates/sheets/item/mod.hbs new file mode 100644 index 0000000..646e214 --- /dev/null +++ b/midgard5e/templates/sheets/item/mod.hbs @@ -0,0 +1,61 @@ +
+
+ +

+
+
+ + + + + + + + + + + + + + + + + + + + + + +
{{localize "midgard5.mod-type"}} + +
{{localize "midgard5.mod-id"}} + +
{{localize "midgard5.mod-operation"}} + +
{{localize "midgard5.mod-value"}}
+ + {{editor content=data.description target="data.description" button=true owner=owner editable=editable}} +
+
\ No newline at end of file diff --git a/midgard5e/templates/sheets/item/rolls.hbs b/midgard5e/templates/sheets/item/rolls.hbs new file mode 100644 index 0000000..e92d9be --- /dev/null +++ b/midgard5e/templates/sheets/item/rolls.hbs @@ -0,0 +1,22 @@ + + + + + + + + + + + {{#each data.rolls.formulas as |roll rollIndex|}} + {{#if roll}} + + + + + + + {{/if}} + {{/each}} + +
{{localize "midgard5.label"}}{{localize "midgard5.formula"}}
\ No newline at end of file diff --git a/midgard5e/templates/sheets/item/skill.hbs b/midgard5e/templates/sheets/item/skill.hbs new file mode 100644 index 0000000..d1de057 --- /dev/null +++ b/midgard5e/templates/sheets/item/skill.hbs @@ -0,0 +1,41 @@ +
+
+ +

+
+
+ + + + + + + + {{#unless (eq data.type "combat")}} + + + + + {{/unless}} + + + + + + +
{{localize "midgard5.skill-value"}}
{{localize "midgard5.attribute"}} + +
{{localize "midgard5.pp"}}
+ + {{> "systems/midgard5e/templates/sheets/item/rolls.hbs"}} + + {{editor content=data.description target="data.description" button=true owner=owner editable=editable}} +
+
\ No newline at end of file diff --git a/midgard5e/templates/sheets/item/spell.hbs b/midgard5e/templates/sheets/item/spell.hbs new file mode 100644 index 0000000..ea51aca --- /dev/null +++ b/midgard5e/templates/sheets/item/spell.hbs @@ -0,0 +1,70 @@ +
+
+ +

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{{localize "midgard5.bonus"}}{{localize "midgard5.actor-ap"}}
{{localize "midgard5.spell-castDuration"}}{{localize "midgard5.spell-range"}}
{{localize "midgard5.spell-effectTarget"}} + + {{localize "midgard5.spell-effectArea"}}
{{localize "midgard5.spell-effectDuration"}}{{localize "midgard5.spell-origin"}}
{{localize "midgard5.spell-type"}} + + {{localize "midgard5.spell-process"}} + +
+ + {{> "systems/midgard5e/templates/sheets/item/rolls.hbs"}} + + {{editor content=data.description target="data.description" button=true owner=owner editable=editable}} +
+
\ No newline at end of file diff --git a/midgard5e/templates/sheets/item/weapon.hbs b/midgard5e/templates/sheets/item/weapon.hbs new file mode 100644 index 0000000..cfcfa84 --- /dev/null +++ b/midgard5e/templates/sheets/item/weapon.hbs @@ -0,0 +1,68 @@ +
+
+ +

+
+
+ + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + +
+
{{localize "midgard5.base-damage"}} + {{#if data.defensive}} + Not available for defensive weapons + {{else}} + + {{/if}} + {{localize "midgard5.weapon-skill"}} + {{#if data.calc.combatSkills}} + + {{else}} + {{localize "midgard5.assignItemToCharacter"}} + {{/if}} +
{{localize "midgard5.attackBonus"}}{{localize "midgard5.damageBonus"}}
+ + {{> "systems/midgard5e/templates/sheets/item/rolls.hbs"}} + + {{editor content=data.description target="data.description" button=true owner=owner editable=editable}} +
+
\ No newline at end of file