mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-09-02 13:12:31 +00:00
Merge pull request #9125 from phaldenby72/demon-gate-scripted-js-update
[Demon Gate Scripted] JS update
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
if(rank === "" || rank === "-") {
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
if(rank > 50) return "4d20!+2d10!";
|
||||
|
||||
switch(rank)
|
||||
@@ -285,7 +285,7 @@
|
||||
function GetSocialPool(chr)
|
||||
{
|
||||
if(chr <= 30) return Math.max(0, Math.floor(chr / 15));
|
||||
return Math.min(Math.floor((chr + 10) / 20), 4)
|
||||
return Math.min(Math.floor((chr + 10) / 20), 4);
|
||||
}
|
||||
|
||||
function GetRepBonus(chr)
|
||||
@@ -362,7 +362,7 @@
|
||||
if(saga < 10700) return 63;
|
||||
if(saga < 11100) return 64;
|
||||
if(saga < 11500) return 65;
|
||||
if(saga < 11900) return ;66
|
||||
if(saga < 11900) return 66;
|
||||
if(saga < 12300) return 67;
|
||||
if(saga < 12700) return 68;
|
||||
if(saga < 13100) return 69;
|
||||
@@ -399,6 +399,110 @@
|
||||
return 100;
|
||||
}
|
||||
|
||||
function GetSagaPointsForNextLevel(saga)
|
||||
{
|
||||
if(saga < 16) return 16;
|
||||
if(saga < 37) return 37;
|
||||
if(saga < 60) return 60;
|
||||
if(saga < 85) return 85;
|
||||
if(saga < 115) return 115;
|
||||
if(saga < 150) return 150;
|
||||
if(saga < 190) return 190;
|
||||
if(saga < 235) return 235;
|
||||
if(saga < 285) return 285;
|
||||
if(saga < 340) return 340;
|
||||
if(saga < 400) return 400;
|
||||
if(saga < 465) return 465;
|
||||
if(saga < 535) return 535;
|
||||
if(saga < 610) return 610;
|
||||
if(saga < 690) return 690;
|
||||
if(saga < 775) return 775;
|
||||
if(saga < 865) return 865;
|
||||
if(saga < 960) return 960;
|
||||
if(saga < 1060) return 1060;
|
||||
if(saga < 1165) return 1165;
|
||||
if(saga < 1275) return 1275;
|
||||
if(saga < 1390) return 1390;
|
||||
if(saga < 1510) return 1510;
|
||||
if(saga < 1635) return 1635;
|
||||
if(saga < 1765) return 1765;
|
||||
if(saga < 1900) return 1900;
|
||||
if(saga < 2040) return 2040;
|
||||
if(saga < 2185) return 2185;
|
||||
if(saga < 2335) return 2335;
|
||||
if(saga < 2490) return 2490;
|
||||
if(saga < 2650) return 2650;
|
||||
if(saga < 2815) return 2815;
|
||||
if(saga < 2985) return 2985;
|
||||
if(saga < 3160) return 3160;
|
||||
if(saga < 3340) return 3340;
|
||||
if(saga < 3525) return 3525;
|
||||
if(saga < 3715) return 3715;
|
||||
if(saga < 3910) return 3910;
|
||||
if(saga < 4105) return 4105;
|
||||
if(saga < 4300) return 4300;
|
||||
if(saga < 4495) return 4495;
|
||||
if(saga < 4690) return 4690;
|
||||
if(saga < 4890) return 4890;
|
||||
if(saga < 5095) return 5095;
|
||||
if(saga < 5300) return 5300;
|
||||
if(saga < 5500) return 5500;
|
||||
if(saga < 5700) return 5700;
|
||||
if(saga < 5900) return 5900;
|
||||
if(saga < 6100) return 6100;
|
||||
if(saga < 6400) return 6400;
|
||||
if(saga < 6700) return 6700;
|
||||
if(saga < 7000) return 7000;
|
||||
if(saga < 7300) return 7300;
|
||||
if(saga < 7600) return 7600;
|
||||
if(saga < 7900) return 7900;
|
||||
if(saga < 8200) return 8200;
|
||||
if(saga < 8500) return 8500;
|
||||
if(saga < 8800) return 8800;
|
||||
if(saga < 9100) return 9100;
|
||||
if(saga < 9500) return 9500;
|
||||
if(saga < 9900) return 9900;
|
||||
if(saga < 10300) return 10300;
|
||||
if(saga < 10700) return 10700;
|
||||
if(saga < 11100) return 11100;
|
||||
if(saga < 11500) return 11500;
|
||||
if(saga < 11900) return 11900;
|
||||
if(saga < 12300) return 12300;
|
||||
if(saga < 12700) return 12700;
|
||||
if(saga < 13100) return 13100;
|
||||
if(saga < 13600) return 13600;
|
||||
if(saga < 14100) return 14100;
|
||||
if(saga < 14600) return 14600;
|
||||
if(saga < 15100) return 15100;
|
||||
if(saga < 15600) return 15600;
|
||||
if(saga < 16100) return 16100;
|
||||
if(saga < 16600) return 16600;
|
||||
if(saga < 17100) return 17100;
|
||||
if(saga < 17600) return 17600;
|
||||
if(saga < 18100) return 18100;
|
||||
if(saga < 18700) return 18700;
|
||||
if(saga < 19200) return 19200;
|
||||
if(saga < 19800) return 19800;
|
||||
if(saga < 20400) return 20400;
|
||||
if(saga < 21000) return 21000;
|
||||
if(saga < 21600) return 21600;
|
||||
if(saga < 22200) return 22200;
|
||||
if(saga < 22800) return 22800;
|
||||
if(saga < 23400) return 23400;
|
||||
if(saga < 24000) return 24000;
|
||||
if(saga < 24700) return 24700;
|
||||
if(saga < 25400) return 25400;
|
||||
if(saga < 26100) return 26100;
|
||||
if(saga < 26800) return 26800;
|
||||
if(saga < 27500) return 27500;
|
||||
if(saga < 28200) return 28200;
|
||||
if(saga < 28900) return 28900;
|
||||
if(saga < 29600) return 29600;
|
||||
if(saga < 30300) return 30300;
|
||||
if(saga < 31000) return 31000;
|
||||
return '-';
|
||||
}
|
||||
|
||||
function GetAttributeBonus(attribute, strRank, dexRank, bdyRank, prcRank, intRank, wilRank, chrRank) {
|
||||
switch (attribute) {
|
||||
case "str":
|
||||
@@ -420,7 +524,7 @@
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function GetConditionModifier(attribute, physMod, menMod) {
|
||||
switch (attribute) {
|
||||
case "str":
|
||||
@@ -437,7 +541,7 @@
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function UpdateStrength()
|
||||
{
|
||||
getAttrs(["StrBase", "StrBonus", "StrRace"], function(values)
|
||||
@@ -707,7 +811,7 @@
|
||||
function UpdateStrSkills()
|
||||
{
|
||||
UpdateLifting();
|
||||
|
||||
|
||||
UpdateAllAdditionalSkills();
|
||||
}
|
||||
|
||||
@@ -716,7 +820,7 @@
|
||||
UpdateDrinking();
|
||||
UpdateDrugTolerance();
|
||||
UpdateEndurance();
|
||||
|
||||
|
||||
UpdateAllAdditionalSkills();
|
||||
}
|
||||
|
||||
@@ -736,7 +840,7 @@
|
||||
UpdateStealth();
|
||||
UpdateSwimming();
|
||||
UpdateTeamster();
|
||||
|
||||
|
||||
UpdateAllAdditionalSkills();
|
||||
}
|
||||
|
||||
@@ -769,7 +873,7 @@
|
||||
UpdateTraps();
|
||||
UpdateWeatherSense();
|
||||
UpdateWeaving();
|
||||
|
||||
|
||||
UpdateAllAdditionalSkills();
|
||||
}
|
||||
|
||||
@@ -815,7 +919,7 @@
|
||||
UpdateWeaponsmith();
|
||||
UpdateWildSurvival();
|
||||
UpdateLangSkills();
|
||||
|
||||
|
||||
UpdateAllAdditionalSkills();
|
||||
}
|
||||
|
||||
@@ -827,7 +931,7 @@
|
||||
UpdateExorcism();
|
||||
UpdateMeditation();
|
||||
UpdateNecromancy();
|
||||
|
||||
|
||||
UpdateAllAdditionalSkills();
|
||||
}
|
||||
|
||||
@@ -847,7 +951,7 @@
|
||||
UpdateSpeech();
|
||||
UpdateStoryTelling();
|
||||
UpdateStreetwise();
|
||||
|
||||
|
||||
UpdateAllAdditionalSkills();
|
||||
}
|
||||
|
||||
@@ -856,6 +960,7 @@
|
||||
getAttrs(["MaxSaga"], function(values)
|
||||
{
|
||||
setAttrs({Level: GetLevel(values.MaxSaga)});
|
||||
setAttrs({NextLevelSaga: GetSagaPointsForNextLevel(values.MaxSaga)});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1797,7 +1902,7 @@
|
||||
setAttrs({MeditationDice: GetDice(total)});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function UpdateMining()
|
||||
{
|
||||
getAttrs(["IntRank", "MiningRating", "MiningBonus"], function(values)
|
||||
@@ -2343,25 +2448,25 @@
|
||||
setAttrs({WildDice: GetDice(total)});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function UpdateAllAdditionalSkills() {
|
||||
console.log('Updating all additional skills');
|
||||
|
||||
|
||||
getSectionIDs("skills", function(ids) {
|
||||
var details = '';
|
||||
|
||||
|
||||
for(var i=0; i < ids.length; i++) {
|
||||
var rowId = ids[i];
|
||||
|
||||
UpdateAdditionalSkill(rowId);
|
||||
|
||||
|
||||
var skillsRowName = `repeating_skills_${rowId}_`;
|
||||
if(details !== '') {
|
||||
details += ', \r\n';
|
||||
}
|
||||
details += skillsRowName;
|
||||
}
|
||||
|
||||
|
||||
setAttrs({RepeatedSkillFieldIds: details});
|
||||
});
|
||||
}
|
||||
@@ -2371,12 +2476,12 @@
|
||||
if(repeatingRowId !== '') {
|
||||
skillsRowName = skillsRowName + '_';
|
||||
}
|
||||
|
||||
|
||||
var skillNameName = `${skillsRowName}SkillName`;
|
||||
var skillAttributeName = `${skillsRowName}SkillAttribute`;
|
||||
var skillRatingName = `${skillsRowName}SkillRating`;
|
||||
var skillBonusName = `${skillsRowName}SkillBonus`;
|
||||
|
||||
|
||||
getAttrs(
|
||||
['StrRank',
|
||||
'DexRank',
|
||||
@@ -2392,12 +2497,12 @@
|
||||
skillRatingName,
|
||||
skillBonusName],
|
||||
function(values) {
|
||||
|
||||
|
||||
var skillName = values[skillNameName];
|
||||
var skillAttribute = values[skillAttributeName];
|
||||
var skillRating = Number(values[skillRatingName]);
|
||||
var skillBonus = Number(values[skillBonusName]);
|
||||
|
||||
|
||||
var attributeBonus = GetAttributeBonus(
|
||||
skillAttribute,
|
||||
values.StrRank,
|
||||
@@ -2408,7 +2513,7 @@
|
||||
values.WilRank,
|
||||
values.ChrRank
|
||||
);
|
||||
|
||||
|
||||
var conditionMod = GetConditionModifier(skillAttribute, values.PhysMod, values.MenMod);
|
||||
|
||||
var total = "-";
|
||||
@@ -2416,16 +2521,16 @@
|
||||
{
|
||||
total = attributeBonus + skillRating + skillBonus;
|
||||
}
|
||||
|
||||
|
||||
var calculatedAttributes = {};
|
||||
calculatedAttributes[`${skillsRowName}SkillTotal`] = total;
|
||||
calculatedAttributes[`${skillsRowName}SkillDice`] = GetDice(total);
|
||||
calculatedAttributes[`${skillsRowName}SkillConditionMod`] = conditionMod;
|
||||
|
||||
|
||||
setAttrs(calculatedAttributes);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function UpdateLangSkills()
|
||||
{
|
||||
getAttrs(["IntRank", "Lang1Rating", "Lang1Bonus", "Lang2Rating", "Lang2Bonus", "Lang3Rating", "Lang3Bonus"], function(values)
|
||||
@@ -2437,7 +2542,7 @@
|
||||
}
|
||||
setAttrs({Lang1Total: total});
|
||||
setAttrs({Lang1Dice: GetDice(total)});
|
||||
|
||||
|
||||
total = 0;
|
||||
if(Number(values.Lang2Rating) > 0)
|
||||
{
|
||||
@@ -2445,7 +2550,7 @@
|
||||
}
|
||||
setAttrs({Lang2Total: total});
|
||||
setAttrs({Lang2Dice: GetDice(total)});
|
||||
|
||||
|
||||
total = 0;
|
||||
if(Number(values.Lang3Rating) > 0)
|
||||
{
|
||||
@@ -2684,7 +2789,7 @@
|
||||
si = 10;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
var bonus = Number(values.SpiritInf) - Number(values.ClassSI);
|
||||
setAttrs({ClassSI: si});
|
||||
setAttrs({SpiritInf: Number(si) + Number(bonus)});
|
||||
@@ -3277,62 +3382,62 @@
|
||||
{
|
||||
UpdateStoryTelling();
|
||||
});
|
||||
|
||||
|
||||
on("change:stsurvrating change:stsurvbonus", function()
|
||||
{
|
||||
UpdateStreetSurvival();
|
||||
});
|
||||
|
||||
|
||||
on("change:streetrating change:streetbonus", function()
|
||||
{
|
||||
UpdateStreetwise();
|
||||
});
|
||||
|
||||
|
||||
on("change:swimrating change:swimbonus", function()
|
||||
{
|
||||
UpdateSwimming();
|
||||
});
|
||||
|
||||
|
||||
on("change:teachrating change:teachbonus", function()
|
||||
{
|
||||
UpdateTeaching();
|
||||
});
|
||||
|
||||
|
||||
on("change:teamrating change:teambonus", function()
|
||||
{
|
||||
UpdateTeamster();
|
||||
});
|
||||
|
||||
|
||||
on("change:thaumrating change:thaumbonus", function()
|
||||
{
|
||||
UpdateThaumaturgy();
|
||||
});
|
||||
|
||||
|
||||
on("change:theorating change:theobonus", function()
|
||||
{
|
||||
UpdateTheology();
|
||||
});
|
||||
|
||||
|
||||
on("change:tinkerrating change:tinkerbonus", function()
|
||||
{
|
||||
UpdateTinker();
|
||||
});
|
||||
|
||||
|
||||
on("change:trackrating change:trackbonus", function()
|
||||
{
|
||||
UpdateTracking();
|
||||
});
|
||||
|
||||
|
||||
on("change:trailrating change:trailbonus", function()
|
||||
{
|
||||
UpdateTrailing();
|
||||
});
|
||||
|
||||
|
||||
on("change:traprating change:trapbonus", function()
|
||||
{
|
||||
UpdateTraps();
|
||||
});
|
||||
|
||||
|
||||
on("change:wpnsmrating change:wpnsmbonus", function()
|
||||
{
|
||||
UpdateWeaponsmith();
|
||||
@@ -3352,17 +3457,17 @@
|
||||
{
|
||||
UpdateWildSurvival();
|
||||
});
|
||||
|
||||
|
||||
on("change:physmod change:menmod", function() {
|
||||
UpdateAllAdditionalSkills();
|
||||
});
|
||||
|
||||
|
||||
on("change:repeating_skills:skillattribute change:repeating_skills:skillrating change:repeating_skills:skillbonus", function() {
|
||||
var repeatingRowId = '';
|
||||
|
||||
|
||||
UpdateAdditionalSkill(repeatingRowId);
|
||||
});
|
||||
|
||||
|
||||
on("change:lang1rating change:lang1bonus change:lang2rating change:lang2bonus change:lang3rating change:lang3bonus", function()
|
||||
{
|
||||
UpdateLangSkills();
|
||||
@@ -3402,15 +3507,58 @@
|
||||
{
|
||||
UpdateW6DmgMod();
|
||||
});
|
||||
|
||||
on("change:honorrep change:corruptrep", function()
|
||||
{
|
||||
getAttrs(["HonorRep", "CorruptRep"], function(values)
|
||||
{
|
||||
var goodRepDetails = GetReputationDetails(values.HonorRep);
|
||||
|
||||
var badRepDetails = GetReputationDetails(values.CorruptRep);
|
||||
|
||||
var totalReputation = Number.parseInt(values.HonorRep) + Number.parseInt(values.CorruptRep);
|
||||
var totalRepDetails = GetReputationDetails(totalReputation);
|
||||
var talents = totalRepDetails.level - 1;
|
||||
var totalReputationString = totalReputation.toLocaleString();
|
||||
|
||||
setAttrs({
|
||||
TotalReputation: totalReputationString,
|
||||
TotalReputationForNextLevel: totalRepDetails.nextLevel,
|
||||
ReputationTalents: talents,
|
||||
Glory: totalRepDetails.glory,
|
||||
HonorTitle: goodRepDetails.goodTitle,
|
||||
CorruptionTitle: badRepDetails.badTitle
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
function GetReputationDetails(reputation)
|
||||
{
|
||||
if(reputation < 100) return { level: 1, nextLevel: '100', glory: 0, goodTitle: 'Unknown', badTitle: 'Unknown' };
|
||||
if(reputation < 250) return { level: 2, nextLevel: '250', glory: 10, goodTitle: 'Known', badTitle: 'Wanted' };
|
||||
if(reputation < 600) return { level: 3, nextLevel: '600', glory: 20, goodTitle: 'Respected', badTitle: 'Hunted' };
|
||||
if(reputation < 1000) return { level: 4, nextLevel: '1,000', glory: 30, goodTitle: 'Highly Respected', badTitle: 'Feared' };
|
||||
if(reputation < 1450) return { level: 5, nextLevel: '1,450', glory: 40, goodTitle: 'Local Hero', badTitle: 'Villain' };
|
||||
if(reputation < 2000) return { level: 6, nextLevel: '2,000', glory: 50, goodTitle: 'Great Hero', badTitle: 'Infamous Villain' };
|
||||
if(reputation < 3000) return { level: 7, nextLevel: '3,000', glory: 55, goodTitle: 'Immortal Hero', badTitle: 'Immortal Villain' };
|
||||
if(reputation < 5000) return { level: 8, nextLevel: '5,000', glory: 60, goodTitle: 'Epic Hero', badTitle: 'Arch-villain' };
|
||||
if(reputation < 8000) return { level: 9, nextLevel: '8,000', glory: 65, goodTitle: 'Revered Hero', badTitle: 'Nemesis' };
|
||||
if(reputation < 12000) return { level: 10, nextLevel: '12,000', glory: 70, goodTitle: 'Legendary Hero', badTitle: 'Arch-nemesis' };
|
||||
if(reputation < 50000) return { level: 11, nextLevel: '50,000', glory: 80, goodTitle: 'Great Legendary Hero', badTitle: 'Legendary Arch-nemesis' };
|
||||
if(reputation < 100000) return { level: 12, nextLevel: '100,000', glory: 90, goodTitle: 'Exalted Legendary Hero', badTitle: 'Unhallowed Scourge' };
|
||||
return { level: 13, nextLevel: '-', glory: 99, goodTitle: 'Demigod', badTitle: 'Demigod' };
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div>
|
||||
<h2>This sheet ("Demon Gate Scripted") has been replaced by a newer copy (called "Demon Gate").</h2>
|
||||
<h2>Please switch to "Demon Gate" at your earliest convenenience - "Demon Gate Scripted" will eventually be removed</h2>
|
||||
<h2></h2>
|
||||
<h2>This sheet ("Demon Gate Scripted") has been replaced by a newer version with more features</h2>
|
||||
<h2>(called just "Demon Gate").</h2>
|
||||
<h2></h2>
|
||||
<h2>This sheet is no longer being supported and "Demon Gate Scripted" will eventually be removed.</h2>
|
||||
<h2></h2>
|
||||
<h2>Please switch this game's character sheet to "Demon Gate" at your earliest convenenience. Thanks!</h2>
|
||||
<h2></h2>
|
||||
|
||||
<input type="radio" class="sheet-tab sheet-tab1" name="attr_core-tab" value="1" title="Attributes" checked="checked" />
|
||||
<span class="sheet-tab sheet-tab1">Attributes</span>
|
||||
|
||||
Reference in New Issue
Block a user