mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 11:42:29 +00:00
454 lines
21 KiB
HTML
454 lines
21 KiB
HTML
<!--
|
|
EDITED by Gorthian
|
|
Version 1.1
|
|
Letzte Änderung 2022-05-21
|
|
|
|
GitHub https://github.com/Gorthian/Roll20_Space1889_CharacterSheet
|
|
Wiki https://github.com/Gorthian/Roll20_Space1889_CharacterSheet/wiki
|
|
Bugs & Issues https://github.com/Gorthian/Roll20_Space1889_CharacterSheet/issues
|
|
//-->
|
|
|
|
<!-- Sheet //-->
|
|
<div class="sheet-wrapper sheet-space1889">
|
|
<div class="sheet-content">
|
|
<div class="sheet-basics sheet-box">
|
|
<div class="sheet-table">
|
|
<div class="sheet-table-row">
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="name"></span><input type="text" name="attr_character_name" /></div>
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="archetype"></span><input type="text" name="attr_archetype" /></div>
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="motivation"></span><input type="text" name="attr_motivation" /></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-primary-attributes sheet-box">
|
|
<h1><span data-i18n="primary-attributes"></h1>
|
|
<p><span class="sheet-label" data-i18n="constitution"></span><input type="number" name="attr_constitution" /><button type="roll" value="&{template:default} {{name=^{constitution} (@{character_name}) }} {{^{successes}=[[{(@{constitution}+@{constitution}+?{Mod|0})d2}>2]]}}" name="roll_constitution"></button></p>
|
|
<p><span class="sheet-label" data-i18n="dexterity"></span><input type="number" name="attr_dexterity" /><button type="roll" value="&{template:default} {{name=^{dexterity} (@{character_name}) }} {{^{successes}=[[{(@{dexterity}+@{dexterity}+?{Mod|0})d2}>2]]}}" name="roll_dexterity"></button></p>
|
|
<p><span class="sheet-label" data-i18n="strength"></span><input type="number" name="attr_strength" /><button type="roll" value="&{template:default} {{name=^{strength} (@{character_name}) }} {{^{successes}=[[{(@{strength}+@{strength}+?{Mod|0})d2}>2]]}}" name="roll_strength"></button></p>
|
|
<p><span class="sheet-label" data-i18n="charisma"></span><input type="number" name="attr_charisma" /><button type="roll" value="&{template:default} {{name=^{charisma} (@{character_name}) }} {{^{successes}=[[{(@{charisma}+@{charisma}+?{Mod|0})d2}>2]]}}" name="roll_charisma"></button></p>
|
|
<p><span class="sheet-label" data-i18n="intelligence"></span><input type="number" name="attr_intelligence" /><button type="roll" value="&{template:default} {{name=^{intelligence} (@{character_name}) }} {{^{successes}=[[{(@{intelligence}+@{intelligence}+?{Mod|0})d2}>2]]}}" name="roll_intelligence"></button></p>
|
|
<p><span class="sheet-label" data-i18n="willpower"></span><input type="number" name="attr_willpower" /><button type="roll" value="&{template:default} {{name=^{willpower} (@{character_name}) }} {{^{successes}=[[{(@{willpower}+@{willpower}+?{Mod|0})d2}>2]]}}" name="roll_willpower"></button></p>
|
|
</div>
|
|
<div class="sheet-secondary-attributes sheet-box">
|
|
<h1><span data-i18n="secondary-attributes"></h1>
|
|
<div class="sheet-table">
|
|
<div class="sheet-table-row">
|
|
<div class="sheet-table-col"></div>
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="value"></span></div>
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="modificator-short"></span></div>
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="sum"></span></div>
|
|
<div class="sheet-table-col"></div>
|
|
</div>
|
|
<div class="sheet-table-row">
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="size"></span></div>
|
|
<div class="sheet-table-col"><input type="number" name="attr_size-calc" readonly/></div>
|
|
<div class="sheet-table-col"><input type="number" name="attr_size-mod" /></div>
|
|
<div class="sheet-table-col"><input type="number" name="attr_size-sum" readonly/></div>
|
|
<div class="sheet-table-col"></div>
|
|
</div>
|
|
<div class="sheet-table-row">
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="movement"></span></div>
|
|
<div class="sheet-table-col"><input type="number" name="attr_movement-calc" readonly/></div>
|
|
<div class="sheet-table-col"><input type="number" name="attr_movement-mod" /></div>
|
|
<div class="sheet-table-col"><input type="number" name="attr_movement-sum" readonly/></div>
|
|
<div class="sheet-table-col"></div>
|
|
</div>
|
|
<div class="sheet-table-row">
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="perception"></span></div>
|
|
<div class="sheet-table-col"><input type="number" name="attr_perception-calc" readonly/></div>
|
|
<div class="sheet-table-col"><input type="number" name="attr_perception-mod" /></div>
|
|
<div class="sheet-table-col"><input type="number" name="attr_perception-sum" readonly/></div>
|
|
<div class="sheet-table-col"><button type="roll" value="&{template:default} {{name=^{perception} (@{character_name}) }} {{^{successes}=[[{(@{perception-sum}+?{Mod|0})d2}>2]]}}" name="roll_perception"></button></div>
|
|
</div>
|
|
<div class="sheet-table-row">
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="initiative"></span></div>
|
|
<div class="sheet-table-col"><input type="number" name="attr_initiative-calc" readonly/></div>
|
|
<div class="sheet-table-col"><input type="number" name="attr_initiative-mod" /></div>
|
|
<div class="sheet-table-col"><input type="number" name="attr_initiative-sum" readonly/></div>
|
|
<div class="sheet-table-col"><button type="roll" value="&{template:default} {{name=^{initiative} (@{character_name}) }} {{^{successes}=[[{(@{initiative-sum}+?{Mod|0})d2}>2]]}}" name="roll_initiative"></button></div>
|
|
</div>
|
|
<div class="sheet-table-row">
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="defense"></span></div>
|
|
<div class="sheet-table-col"><input type="number" name="attr_defense-calc" readonly/></div>
|
|
<div class="sheet-table-col"><input type="number" name="attr_defense-mod" /></div>
|
|
<div class="sheet-table-col"><input type="number" name="attr_defense-sum" readonly/></div>
|
|
<div class="sheet-table-col"><button type="roll" value="&{template:default} {{name=^{defense} (@{character_name}) }} {{^{successes}=[[{(@{defense-sum}+?{Mod|0})d2}>2]]}}" name="roll_defense"></button></div>
|
|
</div>
|
|
<div class="sheet-table-row">
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="stunned"></span></div>
|
|
<div class="sheet-table-col"><input type="number" name="attr_stunned-calc" readonly/></div>
|
|
<div class="sheet-table-col"><input type="number" name="attr_stunned-mod" /></div>
|
|
<div class="sheet-table-col"><input type="number" name="attr_stunned-sum" readonly/></div>
|
|
<div class="sheet-table-col"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-style sheet-box">
|
|
<h1><span data-i18n="style"></h1>
|
|
<p><input type="number" name="attr_style" /></p>
|
|
</div>
|
|
<div class="sheet-health sheet-box">
|
|
<h1><span data-i18n="health"></h1>
|
|
<p><input type="number" name="attr_health_current" /> / <input type="number" name="attr_health_max" readonly/></p>
|
|
</div>
|
|
<div class="sheet-skills sheet-box">
|
|
<h1><span data-i18n="skills"></h1>
|
|
<fieldset class="repeating_skills">
|
|
<div class="sheet-skillentry sheet-box">
|
|
<div class="sheet-table">
|
|
<div class="sheet-table-row">
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="name"></span></div>
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="attribute"></span></div>
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="level"></span></div>
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="value"></span></div>
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="average"></span></div>
|
|
<div class="sheet-table-col"></div>
|
|
</div>
|
|
<div class="sheet-table-row sheet-skillentry">
|
|
<div class="sheet-table-col"><input type="text" name="attr_skill-name" value="" /></div>
|
|
<div class="sheet-table-col">
|
|
<select name="attr_skill-attribute">
|
|
<option value="constitution" data-i18n="constitution-short"></option>
|
|
<option value="dexterity" data-i18n="dexterity-short"></option>
|
|
<option value="strength" data-i18n="strength-short"></option>
|
|
<option value="charisma" data-i18n="charisma-short"></option>
|
|
<option value="intelligence" data-i18n="intelligence-short"></option>
|
|
<option value="willpower" data-i18n="willpower-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-table-col">+<input type="number" name="attr_skill-level" value="" /></div>
|
|
<div class="sheet-table-col">=<input type="number" name="attr_skill-value" value="" readonly/></div>
|
|
<div class="sheet-table-col">(<input type="number" name="attr_skill-average" value="" readonly/>)</div>
|
|
<div class="sheet-table-col"><button type="roll" value="&{template:default} {{name=@{skill-name} (@{character_name}) }} {{^{successes}=[[{(@{skill-value}+?{Mod|0})d2}>2]]}}" name="roll_skill"></button></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="sheet-combat sheet-box">
|
|
<h1><span data-i18n="combat"></h1>
|
|
<fieldset class="repeating_weapons">
|
|
<div class="sheet-weaponentry sheet-box">
|
|
<div class="sheet-table">
|
|
<div class="sheet-table-row">
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="weapon"></span></div>
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="damage"></span></div>
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="speed"></span></div>
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="modifier"></span></div>
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="attack"></span></span></div>
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="average"></span></div>
|
|
</div>
|
|
<div class="sheet-table-row">
|
|
<div class="sheet-table-col sheet-weaponattribute"><input type="text" name="attr_weapon-name" value=""/></div>
|
|
<div class="sheet-table-col sheet-weaponattribute">
|
|
<input type="number" name="attr_weapon-damage-value" value=""/>
|
|
<select name="attr_weapon-damage-type">
|
|
<option value="lethal" data-i18n="lethal"></option>
|
|
<option value="nonlethal" data-i18n="nonlethal"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-table-col sheet-weaponattribute">
|
|
<select name="attr_weapon-speed">
|
|
<option value="S" data-i18n="weapon-fast"></option>
|
|
<option value="D" data-i18n="weapon-average" SELECTED></option>
|
|
<option value="L" data-i18n="weapon-slow"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-table-col sheet-weaponattribute"><input type="number" name="attr_weapon-modifier" value=""/></div>
|
|
<div class="sheet-table-col sheet-weaponattribute"><input type="number" name="attr_weapon-attack" value=""/></div>
|
|
<div class="sheet-table-col sheet-weaponattribute">(<input type="number" name="attr_weapon-average" value="" readonly/>)</div>
|
|
<div class="sheet-table-col sheet-weaponattribute"><button type="roll" value="&{template:default} {{name=@{weapon-name} (@{character_name})}} {{^{successes}=[[{(@{weapon-attack}+@{weapon-modifier}+?{Mod|0})d2}>2]]}} {{^{damage}=@{weapon-damage-value} ^{@{weapon-damage-type}}}}" name="roll_skill"></button></div>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-table">
|
|
<div class="sheet-table-row">
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="range"></span></div>
|
|
<div class="sheet-table-col sheet-weaponattribute"><input type="number" name="attr_weapon-range" value=""/></div>
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="capacity"></span></div>
|
|
<div class="sheet-table-col sheet-weaponattribute"><input type="number" name="attr_weapon-capacity" value=""/></div>
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="firerate"></span></div>
|
|
<div class="sheet-table-col sheet-weaponattribute"><input type="number" name="attr_weapon-firerate" value=""/></div>
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="weight"></span></div>
|
|
<div class="sheet-table-col sheet-weaponattribute"><input type="number" name="attr_weapon-weight" value=""/></div>
|
|
<div class="sheet-table-col"><span class="sheet-label" data-i18n="ammo"></span></div>
|
|
<div class="sheet-table-col sheet-weaponattribute"><input type="number" name="attr_weapon-ammo" value=""/></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="sheet-misc">
|
|
<div class="sheet-box sheet-talents">
|
|
<h2><span data-i18n="talents"></span></h2>
|
|
<fieldset class="repeating_talents">
|
|
<input type="text" name="attr_talent-name" value="">
|
|
</fieldset>
|
|
</div>
|
|
<div class="sheet-box sheet-ressources">
|
|
<h2><span data-i18n="ressources"></span></h2>
|
|
<fieldset class="repeating_ressources">
|
|
<input type="text" name="attr_ressources-name" value="">
|
|
</fieldset>
|
|
</div>
|
|
<div class="sheet-box sheet-weaknesses">
|
|
<h2><span data-i18n="weaknesses"></span></h2>
|
|
<fieldset class="repeating_weaknesses">
|
|
<input type="text" name="attr_weakness-name" value="">
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-footer sheet-box">
|
|
Created by Gorthian
|
|
<br/>More Infos: https://github.com/Gorthian/Roll20_Space1889_CharacterSheet
|
|
<br/>
|
|
<br/>Artwork © 2022 Ulisses Spiele.
|
|
<br/>Space 1889 ist eine eingetragene Marke von Ulisses Spiele. Alle Rechte von Ulisses Spiele GmbH vorbehalten. Die Verwendung der Grafiken erfolgt unter den von Ulisses Spiele erlaubten Richtlinien. Eine Verwendung über diese Richtlinien hinaus darf nur nach vorheriger schriftlicher Genehmigung der Ulisses Medien und Spiel Distribution GmbH erfolgen.
|
|
</div>
|
|
</div>
|
|
|
|
<!-- SheetWorker //-->
|
|
<script type="text/worker">
|
|
/* Globale Variablen -- Start */
|
|
const aAttributes = ["constitution","dexterity","strength","charisma","intelligence","willpower"];
|
|
const aSecondaryAttributes = ["size","movement","perception","initiative","defense","stunned"];
|
|
|
|
/* Event-Listener -- Start */
|
|
on("sheet:opened", function () {
|
|
recalcValues();
|
|
});
|
|
|
|
/* Änderungen an Attributen */
|
|
aAttributes.forEach(sAttribute => {
|
|
on(`change:${sAttribute}`, function() {
|
|
console.log("[CHANGE] " + sAttribute);
|
|
changedAttribute(sAttribute);
|
|
});
|
|
});
|
|
|
|
/* Änderungen an sekundären Attributen */
|
|
aSecondaryAttributes.forEach(sAttribute => {
|
|
on(`change:${sAttribute}-mod`, function() {
|
|
console.log("[CHANGE] " + sAttribute);
|
|
changedAttribute(sAttribute);
|
|
});
|
|
});
|
|
|
|
/* Änderungen an Talenten */
|
|
on("change:repeating_skills:skill-attribute change:repeating_skills:skill-level", function() {
|
|
console.log("[CHANGE] Skill");
|
|
changedSkill();
|
|
});
|
|
|
|
/* Änderungen an Waffenwerten */
|
|
on("change:repeating_weapons:weapon-attack", function() {
|
|
console.log("[CHANGE] Weapon");
|
|
changedWeapon();
|
|
});
|
|
|
|
/* Event-Listener -- Ende */
|
|
|
|
/* Funktionen -- Start */
|
|
function recalcValues() {
|
|
console.log("[recalcValues]");
|
|
aAttributes.forEach(sAttribute => {
|
|
changedAttribute(sAttribute);
|
|
});
|
|
};
|
|
|
|
function changedSkill() {
|
|
console.log("[changedSkill]");
|
|
|
|
getAttrs(["repeating_skills_skill-attribute","repeating_skills_skill-level"], function(values) {
|
|
let sAttribute = values["repeating_skills_skill-attribute"];
|
|
let iSkillLevel = parseInt(values["repeating_skills_skill-level"]||0);
|
|
|
|
getAttrs([sAttribute], function(values) {
|
|
let iAttributeValue = parseInt(values[sAttribute]||0);
|
|
let iSkillSum = iAttributeValue + iSkillLevel;
|
|
let iSkillAverage = Math.floor(iSkillSum/2);
|
|
|
|
aAttributes["repeating_skills_skill-value"] = iSkillSum;
|
|
aAttributes["repeating_skills_skill-average"] = iSkillAverage;
|
|
setAttrs(aAttributes);
|
|
});
|
|
});
|
|
}
|
|
|
|
function changedWeapon() {
|
|
console.log("[changedWeapon]");
|
|
|
|
getAttrs(["repeating_weapons_weapon-attack"], function(values) {
|
|
let iAttack = parseInt(values["repeating_weapons_weapon-attack"]||0);
|
|
let iAttackAverage = Math.floor(iAttack/2);
|
|
|
|
aAttributes["repeating_weapons_weapon-average"] = iAttackAverage;
|
|
setAttrs(aAttributes);
|
|
});
|
|
}
|
|
|
|
function changedAttribute(sAttribute) {
|
|
console.log("[changedAttribute] " + sAttribute);
|
|
|
|
getAttrs([sAttribute], function (values){
|
|
let iAttribute = parseInt(values[sAttribute]);
|
|
let aAttributes = {};
|
|
|
|
aAttributes[sAttribute] = iAttribute;
|
|
setAttrs(aAttributes);
|
|
|
|
switch (sAttribute) {
|
|
case "constitution":
|
|
recalcDefense();
|
|
recalcStunned();
|
|
recalcHealth();
|
|
break;
|
|
case "dexterity":
|
|
recalcMovement();
|
|
recalcInitiative();
|
|
recalcDefense();
|
|
break;
|
|
case "strength":
|
|
recalcMovement();
|
|
break;
|
|
case "charisma":
|
|
break;
|
|
case "intelligence":
|
|
recalcPerception();
|
|
recalcInitiative();
|
|
break;
|
|
case "willpower":
|
|
recalcPerception();
|
|
recalcHealth();
|
|
break;
|
|
case "size":
|
|
recalcSize();
|
|
recalcDefense();
|
|
recalcHealth();
|
|
break;
|
|
case "movement":
|
|
recalcMovement();
|
|
break;
|
|
case "perception":
|
|
recalcPerception();
|
|
break;
|
|
case "initiative":
|
|
recalcInitiative();
|
|
break;
|
|
case "defense":
|
|
recalcDefense();
|
|
break;
|
|
case "stunned":
|
|
recalcStunned();
|
|
break;
|
|
default:
|
|
}
|
|
});
|
|
}
|
|
|
|
function recalcSize() {
|
|
console.log("[recalcSize]");
|
|
getAttrs(["size-mod"], function (values){
|
|
let iSizeMod = parseInt(values["size-mod"]||0);
|
|
let iSizeSum = iSizeMod;
|
|
|
|
aAttributes["size-sum"] = iSizeSum;
|
|
setAttrs(aAttributes);
|
|
});
|
|
}
|
|
|
|
function recalcMovement() {
|
|
console.log("[recalcMovement]");
|
|
getAttrs(["strength","dexterity","movement-mod"], function (values){
|
|
let iStrength = parseInt(values["strength"]||0);
|
|
let iDexterity = parseInt(values["dexterity"]||0);
|
|
let iMovementMod = parseInt(values["movement-mod"]||0);
|
|
let iMovementCalc = iStrength + iDexterity;
|
|
let iMovementSum = iMovementCalc + iMovementMod;
|
|
|
|
aAttributes["movement-calc"] = iMovementCalc;
|
|
aAttributes["movement-sum"] = iMovementSum;
|
|
setAttrs(aAttributes);
|
|
});
|
|
}
|
|
|
|
function recalcPerception() {
|
|
console.log("[recalcPerception]");
|
|
getAttrs(["intelligence","willpower","perception-mod"], function (values){
|
|
let iIntelligence = parseInt(values["intelligence"]||0);
|
|
let iWillpower = parseInt(values["willpower"]||0);
|
|
let iPerceptionMod = parseInt(values["perception-mod"]||0);
|
|
let iPerceptionCalc = iIntelligence + iWillpower;
|
|
let iPerceptionSum = iPerceptionCalc + iPerceptionMod;
|
|
|
|
aAttributes["perception-calc"] = iPerceptionCalc;
|
|
aAttributes["perception-sum"] = iPerceptionSum;
|
|
setAttrs(aAttributes);
|
|
});
|
|
}
|
|
|
|
function recalcInitiative() {
|
|
console.log("[recalcInitiative]");
|
|
getAttrs(["intelligence","dexterity","initiative-mod"], function (values){
|
|
let iIntelligence = parseInt(values["intelligence"]||0);
|
|
let iDexterity = parseInt(values["dexterity"]||0);
|
|
let iInitiativeMod = parseInt(values["initiative-mod"]||0);
|
|
let iInitiativeCalc = iIntelligence + iDexterity;
|
|
let iInitiativeSum = iInitiativeCalc + iInitiativeMod;
|
|
|
|
aAttributes["initiative-calc"] = iInitiativeCalc;
|
|
aAttributes["initiative-sum"] = iInitiativeSum;
|
|
setAttrs(aAttributes);
|
|
});
|
|
}
|
|
|
|
function recalcDefense() {
|
|
console.log("[recalcDefense]");
|
|
getAttrs(["constitution","dexterity","size-sum","defense-mod"], function (values){
|
|
let iConstitution = parseInt(values["constitution"]||0);
|
|
let iDexterity = parseInt(values["dexterity"]||0);
|
|
let iSize = parseInt(values["size-sum"]||0);
|
|
let iDefenseMod = parseInt(values["defense-mod"]||0);
|
|
let iDefenseCalc = iConstitution + iDexterity - iSize;
|
|
let iDefenseSum = iDefenseCalc + iDefenseMod;
|
|
|
|
aAttributes["defense-calc"] = iDefenseCalc;
|
|
aAttributes["defense-sum"] = iDefenseSum;
|
|
setAttrs(aAttributes);
|
|
});
|
|
}
|
|
|
|
function recalcStunned() {
|
|
console.log("[recalcStunned]");
|
|
getAttrs(["constitution","stunned-mod"], function (values){
|
|
let iConstitution = parseInt(values["constitution"]||0);
|
|
let iStunnedMod = parseInt(values["stunned-mod"]||0);
|
|
let iStunnedCalc = iConstitution;
|
|
let iStunnedSum = iStunnedCalc + iStunnedMod;
|
|
|
|
aAttributes["stunned-calc"] = iStunnedCalc;
|
|
aAttributes["stunned-sum"] = iStunnedSum;
|
|
setAttrs(aAttributes);
|
|
});
|
|
}
|
|
|
|
function recalcHealth() {
|
|
console.log("[recalcHealth]");
|
|
getAttrs(["constitution","willpower","size-sum"], function (values){
|
|
let iConstitution = parseInt(values["constitution"]||0);
|
|
let iWillpower = parseInt(values["willpower"]||0);
|
|
let iSize = parseInt(values["size-sum"]||0);
|
|
let iHealth = iConstitution + iWillpower + iSize;
|
|
|
|
aAttributes["health_max"] = iHealth;
|
|
setAttrs(aAttributes);
|
|
});
|
|
}
|
|
|
|
/* Funktionen -- Ende */
|
|
</script>
|
|
|
|
|
|
|
|
|