diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js index 79cc9c3de40dee1e5aff2f1d99e61ac78220f454..90e50532969f2ffd79953fe619479c1669e73e1f 100644 --- a/src/js/slaveSummaryWidgets.js +++ b/src/js/slaveSummaryWidgets.js @@ -215,7 +215,7 @@ window.SlaveSummaryUncached = (function() { if (V.abbreviateSkills === 1) { short_intelligence(slave); short_sex_skills(slave); - if (slave.combatSkill > 0) { + if (slave.skill.combat > 0) { r += "C"; } r += "</span> "; @@ -224,7 +224,7 @@ window.SlaveSummaryUncached = (function() { } else if (V.abbreviateSkills === 2) { long_intelligence(slave); long_sex_skills(slave); - if (slave.combatSkill > 0) { + if (slave.skill.combat > 0) { r += "Trained fighter."; } r += "</span> "; @@ -2740,12 +2740,12 @@ window.SlaveSummaryUncached = (function() { /** @param {App.Entity.SlaveState} slave */ function short_sex_skills(slave) { - let _SSkills = slave.analSkill + slave.oralSkill; + let _SSkills = slave.skill.anal + slave.skill.oral; r += `<span class="aquamarine">`; - if (((_SSkills + slave.whoreSkill + slave.entertainSkill) >= 400) && ((slave.vagina < 0) || (slave.vaginalSkill >= 100))) { + if (((_SSkills + slave.skill.whore + slave.skill.entertainment) >= 400) && ((slave.vagina < 0) || (slave.skill.vaginal >= 100))) { r += `MSS`; } else { - _SSkills += slave.vaginalSkill; + _SSkills += slave.skill.vaginal; _SSkills = Math.trunc(_SSkills); if (_SSkills > 180) { r += `S++`; @@ -2762,33 +2762,33 @@ window.SlaveSummaryUncached = (function() { r += `[${_SSkills}] `; } r += " "; - if (slave.whoreSkill >= 100) { + if (slave.skill.whore >= 100) { r += `W+++`; - } else if (slave.whoreSkill > 60) { + } else if (slave.skill.whore > 60) { r += `W++`; - } else if (slave.whoreSkill > 30) { + } else if (slave.skill.whore > 30) { r += `W+`; - } else if (slave.whoreSkill > 10) { + } else if (slave.skill.whore > 10) { r += `W`; } - if (slave.whoreSkill > 10) { + if (slave.skill.whore > 10) { if (V.summaryStats) { - r += `[${slave.whoreSkill}] `; + r += `[${slave.skill.whore}] `; } } r += " "; - if (slave.entertainSkill >= 100) { + if (slave.skill.entertainment >= 100) { r += `E+++`; - } else if (slave.entertainSkill > 60) { + } else if (slave.skill.entertainment > 60) { r += `E++`; - } else if (slave.entertainSkill > 30) { + } else if (slave.skill.entertainment > 30) { r += `E+`; - } else if (slave.entertainSkill > 10) { + } else if (slave.skill.entertainment > 10) { r += `E`; } - if (slave.entertainSkill > 10) { + if (slave.skill.entertainment > 10) { if (V.summaryStats) { - r += `[${slave.entertainSkill}] `; + r += `[${slave.skill.entertainment}] `; } } } @@ -2886,12 +2886,12 @@ window.SlaveSummaryUncached = (function() { /** @param {App.Entity.SlaveState} slave */ function long_sex_skills(slave) { - let _SSkills = (slave.analSkill + slave.oralSkill); + let _SSkills = (slave.skill.anal + slave.skill.oral); r += `<span class="aquamarine">`; - if (((_SSkills + slave.whoreSkill + slave.entertainSkill) >= 400) && ((slave.vagina < 0) || (slave.vaginalSkill >= 100))) { + if (((_SSkills + slave.skill.whore + slave.skill.entertainment) >= 400) && ((slave.vagina < 0) || (slave.skill.vaginal >= 100))) { r += `Masterful Sex Slave. `; } else { - _SSkills += slave.vaginalSkill; + _SSkills += slave.skill.vaginal; if (_SSkills > 180) { r += `Sex master${V.summaryStats? `[${Math.trunc(_SSkills)}]`: ''}.`; } else if ((_SSkills > 120) && (slave.vagina < 0)) { @@ -2904,24 +2904,24 @@ window.SlaveSummaryUncached = (function() { r += `Sexually unskilled${V.summaryStats? `[${Math.trunc(_SSkills)}]` : ''}.`; } r += " "; - if (slave.whoreSkill >= 100) { - r += `Masterful whore${V.summaryStats? `[${slave.whoreSkill}]`: ''}.`; - } else if (slave.whoreSkill >= 60) { - r += `Expert whore${V.summaryStats? `[${slave.whoreSkill}]`: ''}.`; - } else if (slave.whoreSkill >= 30) { - r += `Skilled whore${V.summaryStats? `[${slave.whoreSkill}]`: ''}.`; - } else if (slave.whoreSkill >= 10) { - r += `Basic whore${V.summaryStats? `[${slave.whoreSkill}]`: ''}.`; + if (slave.skill.whore >= 100) { + r += `Masterful whore${V.summaryStats? `[${slave.skill.whore}]`: ''}.`; + } else if (slave.skill.whore >= 60) { + r += `Expert whore${V.summaryStats? `[${slave.skill.whore}]`: ''}.`; + } else if (slave.skill.whore >= 30) { + r += `Skilled whore${V.summaryStats? `[${slave.skill.whore}]`: ''}.`; + } else if (slave.skill.whore >= 10) { + r += `Basic whore${V.summaryStats? `[${slave.skill.whore}]`: ''}.`; } r += " "; - if (slave.entertainSkill >= 100) { - r += `Masterful entertainer${V.summaryStats? `[${slave.entertainSkill}]`: ''}.`; - } else if (slave.entertainSkill >= 60) { - r += `Expert entertainer${V.summaryStats? `[${slave.entertainSkill}]`: ''}.`; - } else if (slave.entertainSkill >= 30) { - r += `Skilled entertainer${V.summaryStats? `[${slave.entertainSkill}]`: ''}.`; - } else if (slave.entertainSkill >= 10) { - r += `Basic entertainer${V.summaryStats? `[${slave.entertainSkill}]`: ''}.`; + if (slave.skill.entertainment >= 100) { + r += `Masterful entertainer${V.summaryStats? `[${slave.skill.entertainment}]`: ''}.`; + } else if (slave.skill.entertainment >= 60) { + r += `Expert entertainer${V.summaryStats? `[${slave.skill.entertainment}]`: ''}.`; + } else if (slave.skill.entertainment >= 30) { + r += `Skilled entertainer${V.summaryStats? `[${slave.skill.entertainment}]`: ''}.`; + } else if (slave.skill.entertainment >= 10) { + r += `Basic entertainer${V.summaryStats? `[${slave.skill.entertainment}]`: ''}.`; } r += " "; } @@ -3919,7 +3919,7 @@ window.SlaveSummaryUncached = (function() { return areSisters(s, slave) > 0; }); if (_ssj !== -1) { - r += `${SlaveFullName(V.slaves[_ssj])}'s ${relativeTerm(V.slaves[_ssj], slave)}`; + r += `${SlaveFullName(V.slaves[_ssj])}'s sister`; if (slave.relationshipTarget === V.slaves[_ssj].ID) { const friendShipShort = relationshipTermShort(slave); r += `& ${friendShipShort}`; @@ -3928,7 +3928,7 @@ window.SlaveSummaryUncached = (function() { } r += " "; } else if (slave.sisters > 1) { - r += `multiple siblings `; + r += `multiple sisters `; } if (slave.relationship > 0 && handled !== 1) { const _ssj = V.slaves.findIndex(function(s) { @@ -4012,14 +4012,12 @@ window.SlaveSummaryUncached = (function() { /** @param {App.Entity.SlaveState} slave */ function long_extended_family(slave) { let handled = 0; - - /* Daughter/son */ if (slave.mother > 0) { const _ssj = V.slaves.findIndex(function(s) { return s.ID === slave.mother; }); if (_ssj !== -1) { - r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">${relativeTerm(V.slaves[_ssj], slave)}`; + r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">daughter`; if (slave.relationshipTarget === V.slaves[_ssj].ID) { const friendShipShort = relationshipTerm(slave); r += ` and ${friendShipShort}`; @@ -4039,14 +4037,14 @@ window.SlaveSummaryUncached = (function() { r += `<span class="lightgreen">daughter.</span> `; } } else if (slave.mother in V.missingTable && V.showMissingSlavesSD && V.showMissingSlaves) { - r += `${V.missingTable[slave.mother].fullName}'s <span class="lightgreen">${relativeTerm(V.slaves[_ssj], slave)}.</span> `; + r += `${V.missingTable[slave.mother].fullName}'s <span class="lightgreen">daughter.</span> `; } if (slave.father > 0 && slave.father !== slave.mother) { const _ssj = V.slaves.findIndex(function(s) { return s.ID === slave.father; }); if (_ssj !== -1) { - r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">${relativeTerm(V.slaves[_ssj], slave)}`; + r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">daughter`; if (slave.relationshipTarget === V.slaves[_ssj].ID) { const friendShipShort = relationshipTerm(slave); r += ` and ${friendShipShort}`; @@ -4068,9 +4066,7 @@ window.SlaveSummaryUncached = (function() { } else if (slave.father in V.missingTable && slave.father !== slave.mother && V.showMissingSlavesSD && V.showMissingSlaves) { r += `${V.missingTable[slave.father].fullName}'s <span class="lightgreen">daughter.</span> `; } - - /* Mother/Father */ - if (slave.daughters === 1) { + if (slave.daughters === 1) { let _ssj = V.slaves.findIndex(function(s) { return s.mother === slave.ID; }); @@ -4097,21 +4093,19 @@ window.SlaveSummaryUncached = (function() { } } else if (slave.daughters > 1) { if (slave.daughters > 10) { - r += `<span class="lightgreen">Has tons of children.</span> `; + r += `<span class="lightgreen">Has tons of daughters.</span> `; } else if (slave.daughters > 5) { - r += `<span class="lightgreen">Has many children.</span> `; + r += `<span class="lightgreen">Has many daughters.</span> `; } else { - r += `<span class="lightgreen">Has several children.</span> `; + r += `<span class="lightgreen">Has several daughters.</span> `; } } - - /* Sibling */ if (slave.sisters === 1) { const _ssj = V.slaves.findIndex(function(s) { return areSisters(s, slave) > 0; }); if (_ssj !== -1) { - r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">${relativeTerm(V.slaves[_ssj], slave)}`; + r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">sister`; if (slave.relationshipTarget === V.slaves[_ssj].ID) { const friendShipShort = relationshipTerm(slave); r += ` and ${friendShipShort}`; @@ -4121,15 +4115,13 @@ window.SlaveSummaryUncached = (function() { } } else if (slave.sisters > 1) { if (slave.sisters > 10) { - r += `<span class="lightgreen">One of many siblings.</span> `; + r += `<span class="lightgreen">One of many sisters.</span> `; } else if (slave.sisters > 5) { - r += `<span class="lightgreen">Has many siblings.</span> `; + r += `<span class="lightgreen">Has many sisters.</span> `; } else { - r += `<span class="lightgreen">Has several siblings.</span> `; + r += `<span class="lightgreen">Has several sisters.</span> `; } } - - /* Special bond */ if (slave.relationship > 0 && handled !== 1) { const _ssj = V.slaves.findIndex(function(s) { return s.ID === slave.relationshipTarget; @@ -5248,7 +5240,7 @@ App.UI.slaveSummaryList = function (passageName) { if (V.Flag === 0) { if (V.schoolroom <= V.schoolroomSlaves) { res.pop(); continue; } if ((_Slave.devotion >= -20) || ((_Slave.devotion >= -50) && (_Slave.trust < -20)) || (_Slave.trust < -50)) { - if ((_Slave.intelligenceImplant < 30) || (_Slave.voice !== 0 && _Slave.accent + V.schoolroomUpgradeLanguage > 2) || (_Slave.oralSkill <= 10 + V.schoolroomUpgradeSkills * 20) || (_Slave.whoreSkill <= 10 + V.schoolroomUpgradeSkills * 20) || (_Slave.entertainSkill <= 10 + V.schoolroomUpgradeSkills * 20) || (_Slave.analSkill < 10 + V.schoolroomUpgradeSkills * 20) || ((_Slave.vagina >= 0) && (_Slave.vaginalSkill < 10 + V.schoolroomUpgradeSkills * 20))) { + if ((_Slave.intelligenceImplant < 30) || (_Slave.voice !== 0 && _Slave.accent + V.schoolroomUpgradeLanguage > 2) || (_Slave.skill.oral <= 10 + V.schoolroomUpgradeSkills * 20) || (_Slave.skill.whore <= 10 + V.schoolroomUpgradeSkills * 20) || (_Slave.skill.entertainment <= 10 + V.schoolroomUpgradeSkills * 20) || (_Slave.skill.anal < 10 + V.schoolroomUpgradeSkills * 20) || ((_Slave.vagina >= 0) && (_Slave.skill.vaginal < 10 + V.schoolroomUpgradeSkills * 20))) { res.push(dividerAndImage(_Slave)); res.push(`[[${_slaveName}|Slave Interact][$activeSlave = $slaves[${_ssi}]]]`); } else { @@ -5638,7 +5630,7 @@ App.UI.slaveSummaryList = function (passageName) { } if (V.schoolroom !== 0) { - if (V.schoolroom > V.schoolroomSlaves && (_Slave.fetish !== "mindbroken" && (_Slave.devotion >= -20 || (_Slave.devotion >= -50 && _Slave.trust < -20) || _Slave.trust < -50) && ((_Slave.intelligenceImplant < 30) || (_Slave.voice !== 0 && _Slave.accent + V.schoolroomUpgradeLanguage > 2) || (_Slave.oralSkill <= 10 + V.schoolroomUpgradeSkills * 20) || (_Slave.whoreSkill <= 10 + V.schoolroomUpgradeSkills * 20) || (_Slave.entertainSkill <= 10 + V.schoolroomUpgradeSkills * 20) || (_Slave.analSkill < 10 + V.schoolroomUpgradeSkills * 20) || (_Slave.vagina >= 0 && _Slave.vaginalSkill < 10 + V.schoolroomUpgradeSkills * 20)))) { + if (V.schoolroom > V.schoolroomSlaves && (_Slave.fetish !== "mindbroken" && (_Slave.devotion >= -20 || (_Slave.devotion >= -50 && _Slave.trust < -20) || _Slave.trust < -50) && ((_Slave.intelligenceImplant < 30) || (_Slave.voice !== 0 && _Slave.accent + V.schoolroomUpgradeLanguage > 2) || (_Slave.skill.oral <= 10 + V.schoolroomUpgradeSkills * 20) || (_Slave.skill.whore <= 10 + V.schoolroomUpgradeSkills * 20) || (_Slave.skill.entertainment <= 10 + V.schoolroomUpgradeSkills * 20) || (_Slave.skill.anal < 10 + V.schoolroomUpgradeSkills * 20) || (_Slave.vagina >= 0 && _Slave.skill.vaginal < 10 + V.schoolroomUpgradeSkills * 20)))) { transfers.push(`[[Schoolroom|Assign][$assignTo = "Schoolroom", $i = ${_ssi}]]`); /* $i = -1 tells Assign to use _Slave as-is */ } else { transfers.push('Schoolroom'); @@ -5730,7 +5722,7 @@ App.UI.slaveSummaryList = function (passageName) { case "Main": continue; case "HG Select": - if (setup.HGCareers.includes(_Slave.career) || (_Slave.skillHG >= V.masteredXP)) { + if (setup.HGCareers.includes(_Slave.career) || (_Slave.skill.headGirl >= V.masteredXP)) { res.push(`<br>${ V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1}` ? ' ' : ''); res.push('@@.lime;Has applicable career experience.@@'); } @@ -5744,13 +5736,13 @@ App.UI.slaveSummaryList = function (passageName) { } break; case "Recruiter Select": - if (setup.recruiterCareers.includes(_Slave.career) || (_Slave.skillRC >= V.masteredXP)) { + if (setup.recruiterCareers.includes(_Slave.career) || (_Slave.skill.recruiter >= V.masteredXP)) { res.push(`<br>${ V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1}` ? ' ' : ''); res.push('@@.lime;Has applicable career experience.@@'); } break; case "BG Select": - if (setup.bodyguardCareers.includes(_Slave.career) || (_Slave.skillBG >= V.masteredXP)) { + if (setup.bodyguardCareers.includes(_Slave.career) || (_Slave.skill.bodyguard >= V.masteredXP)) { res.push(`<br>${ V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1}` ? ' ' : ''); res.push('@@.lime;Has applicable career experience.@@'); } @@ -5766,7 +5758,7 @@ App.UI.slaveSummaryList = function (passageName) { } break; case "Attendant Select": - if (setup.attendantCareers.includes(_Slave.career) || (_Slave.skillAT >= V.masteredXP)) { + if (setup.attendantCareers.includes(_Slave.career) || (_Slave.skill.attendant >= V.masteredXP)) { res.push(`<br>${ V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1}` ? ' ' : ''); res.push('@@.lime;Has applicable career experience.@@'); } @@ -5782,7 +5774,7 @@ App.UI.slaveSummaryList = function (passageName) { } break; case "Matron Select": - if (setup.matronCareers.includes(_Slave.career) || (_Slave.skillMT >= V.masteredXP)) { + if (setup.matronCareers.includes(_Slave.career) || (_Slave.skill.matron >= V.masteredXP)) { res.push(`<br>${ V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1}` ? ' ' : ''); res.push('@@.lime;Has applicable career experience.@@'); } @@ -5798,7 +5790,7 @@ App.UI.slaveSummaryList = function (passageName) { } break; case "Madam Select": - if (setup.madamCareers.includes(_Slave.career) || (_Slave.skillMD >= V.masteredXP)) { + if (setup.madamCareers.includes(_Slave.career) || (_Slave.skill.madam >= V.masteredXP)) { res.push(`<br>${ V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1}` ? ' ' : ''); res.push('@@.lime;Has applicable career experience.@@'); } @@ -5822,7 +5814,7 @@ App.UI.slaveSummaryList = function (passageName) { } break; case "DJ Select": - if (setup.DJCareers.includes(_Slave.career) || (_Slave.skillDJ >= V.masteredXP)) { + if (setup.DJCareers.includes(_Slave.career) || (_Slave.skill.DJ >= V.masteredXP)) { res.push(`<br>${ V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1}` ? ' ' : ''); res.push('@@.lime;Has applicable career experience.@@'); } @@ -5841,7 +5833,7 @@ App.UI.slaveSummaryList = function (passageName) { } break; case "Nurse Select": - if (setup.nurseCareers.includes(_Slave.career) || (_Slave.skillNU >= V.masteredXP)) { + if (setup.nurseCareers.includes(_Slave.career) || (_Slave.skill.nurse >= V.masteredXP)) { res.push(`<br>${ V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1}` ? ' ' : ''); res.push('@@.lime;Has applicable career experience.@@'); } @@ -5857,7 +5849,7 @@ App.UI.slaveSummaryList = function (passageName) { } break; case "Schoolteacher Select": - if (setup.schoolteacherCareers.includes(_Slave.career) || (_Slave.skillTE >= V.masteredXP)) { + if (setup.schoolteacherCareers.includes(_Slave.career) || (_Slave.skill.teacher >= V.masteredXP)) { res.push(`<br>${ V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1}` ? ' ' : ''); res.push('@@.lime;Has applicable career experience.@@'); } @@ -5873,7 +5865,7 @@ App.UI.slaveSummaryList = function (passageName) { } break; case "Milkmaid Select": - if (setup.milkmaidCareers.includes(_Slave.career) || (_Slave.skillMM >= V.masteredXP)) { + if (setup.milkmaidCareers.includes(_Slave.career) || (_Slave.skill.milkmaid >= V.masteredXP)) { res.push(`<br>${ V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1}` ? ' ' : ''); res.push('@@.lime;Has applicable career experience.@@'); } @@ -5889,7 +5881,7 @@ App.UI.slaveSummaryList = function (passageName) { } break; case "Farmer Select": - if (setup.farmerCareers.includes(_Slave.career) || (_Slave.skillFA >= V.masteredXP)) { + if (setup.farmerCareers.includes(_Slave.career) || (_Slave.skill.farmer >= V.masteredXP)) { res.push(`<br>${ V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1}` ? ' ' : ''); res.push('@@.lime;Has applicable career experience.@@'); } @@ -5905,7 +5897,7 @@ App.UI.slaveSummaryList = function (passageName) { } break; case "Stewardess Select": - if (setup.stewardessCareers.includes(_Slave.career) || (_Slave.skillST >= V.masteredXP)) { + if (setup.stewardessCareers.includes(_Slave.career) || (_Slave.skill.stewardess >= V.masteredXP)) { res.push(`<br>${ V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1}` ? ' ' : ''); res.push('@@.lime;Has applicable career experience.@@'); } @@ -5931,7 +5923,7 @@ App.UI.slaveSummaryList = function (passageName) { } break; case "Wardeness Select": - if (setup.wardenessCareers.includes(_Slave.career) || (_Slave.skillWA >= V.masteredXP)) { + if (setup.wardenessCareers.includes(_Slave.career) || (_Slave.skill.wardeness >= V.masteredXP)) { res.push(`<br>${ V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1}` ? ' ' : ''); res.push('@@.lime;Has applicable career experience.@@'); }