diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js index 4a221c0c40c032ddabde734e240fcdfe5eb53f33..27f6c98773faa6c6a09d203e4e894b93cb7cd39e 100644 --- a/js/003-data/gameVariableData.js +++ b/js/003-data/gameVariableData.js @@ -1180,7 +1180,8 @@ App.Data.resetOnNGPlus = { nursery: 0, food: 0, animalOvaries: 0, - dinnerParty: 0 + dinnerParty: 0, + reportMissingClothing: 0 }, NaNArray: [], diff --git a/src/art/vector/VectorArtJS.js b/src/art/vector/VectorArtJS.js index 0ccb9bbbf222280e781cdd81abf193b363d0c4a3..05f494ec1451c625adb5cec15ef0962e1ffd8c42 100644 --- a/src/art/vector/VectorArtJS.js +++ b/src/art/vector/VectorArtJS.js @@ -489,12 +489,19 @@ App.Art.makeVectorArtStyle = function(slave, artSize) { App.Art.vectorArtElement = (function() { "use strict"; + /** @type {App.Entity.SlaveState} */ let slave; let leftArmType, rightArmType, legSize, torsoSize, buttSize, penisSize, hairLength, wearingLatex; let bellyScaleFactor, ballsScaleFactor, boobScaleFactor, heightScaleFactor; let penisDrawtime, penisArt; let svgQueue; + /** + * + * @param {App.Entity.SlaveState} artSlave + * @param {*} artSize + * @param {*} styleClass + */ function VectorArt(artSlave, artSize, styleClass) { /* set constants */ slave = artSlave; @@ -1816,6 +1823,13 @@ App.Art.vectorArtElement = (function() { break; case "ancient Egyptian": svgQueue.add("Art_Vector_Collar_Ancientegyptian"); + break; + case "none": + break; + default: + if (V.experimental.reportMissingClothing) { + console.log(`No art for collar "${slave.collar}" has been created yet.`); + } } } @@ -1829,34 +1843,40 @@ App.Art.vectorArtElement = (function() { /* Updated 2018-10-25 by Fr0g */ /* - added brackets to make boolean logic run */ - if (slave.shoes === "heels") { - svgQueue.add("Art_Vector_Shoes_Heel"); - } else if (slave.shoes === "pumps") { - svgQueue.add("Art_Vector_Shoes_Pump"); - } else if (slave.shoes === "extreme heels") { - svgQueue.add(`Art_Vector_Shoes_Extreme_Heel_${legSize}`); - } else if (slave.shoes === "boots") { - svgQueue.add(`Art_Vector_Shoes_Boot_${legSize}`); - } else if (slave.shoes === "flats") { - svgQueue.add("Art_Vector_Shoes_Flat"); - } else { - if (hasBothNaturalLegs(slave)) { - svgQueue.add("Art_Vector_Feet_Normal"); - } else { - if (getLeftLegID(slave) === 6 || getRightLegID(slave) === 6) { - svgQueue.add("Art_Vector_Feet_ProstheticSwiss"); - } else if (getLeftLegID(slave) === 5 || getRightLegID(slave) === 5) { - svgQueue.add("Art_Vector_Feet_ProstheticCombat"); - } else if (getLeftLegID(slave) === 4 || getRightLegID(slave) === 4) { - svgQueue.add("Art_Vector_Feet_ProstheticBeauty"); - } else if (getLeftLegID(slave) === 3 || getRightLegID(slave) === 3) { - svgQueue.add("Art_Vector_Feet_ProstheticSexy"); - } else if (getLeftLegID(slave) === 2 || getRightLegID(slave) === 2) { - svgQueue.add("Art_Vector_Feet_ProstheticBasic"); - } else if (getLeftLegID(slave) === 1 || getRightLegID(slave) === 1) { + switch (slave.shoes) { + case "heels": + svgQueue.add("Art_Vector_Shoes_Heel"); + break; + case "pumps": + svgQueue.add("Art_Vector_Shoes_Pump"); + break; + case "extreme heels": + svgQueue.add(`Art_Vector_Shoes_Extreme_Heel_${legSize}`); + break; + case "boots": + svgQueue.add(`Art_Vector_Shoes_Boot_${legSize}`); + break; + case "flats": + svgQueue.add("Art_Vector_Shoes_Flat"); + break; + default: + if (hasBothNaturalLegs(slave)) { svgQueue.add("Art_Vector_Feet_Normal"); + } else { + if (getLeftLegID(slave) === 6 || getRightLegID(slave) === 6) { + svgQueue.add("Art_Vector_Feet_ProstheticSwiss"); + } else if (getLeftLegID(slave) === 5 || getRightLegID(slave) === 5) { + svgQueue.add("Art_Vector_Feet_ProstheticCombat"); + } else if (getLeftLegID(slave) === 4 || getRightLegID(slave) === 4) { + svgQueue.add("Art_Vector_Feet_ProstheticBeauty"); + } else if (getLeftLegID(slave) === 3 || getRightLegID(slave) === 3) { + svgQueue.add("Art_Vector_Feet_ProstheticSexy"); + } else if (getLeftLegID(slave) === 2 || getRightLegID(slave) === 2) { + svgQueue.add("Art_Vector_Feet_ProstheticBasic"); + } else if (getLeftLegID(slave) === 1 || getRightLegID(slave) === 1) { + svgQueue.add("Art_Vector_Feet_Normal"); + } } - } } if (stockings !== undefined && hasAnyLegs(slave)) { if (slave.shoes === "heels") { @@ -2023,7 +2043,7 @@ App.Art.vectorArtElement = (function() { } } /* note: latex clothing actually shows some hair, but there is no appropriate art for it */ - switch(slave.faceAccessory) { + switch (slave.faceAccessory) { case "cat ears": svgQueue.add("Art_Vector_Cat_Ear_Back"); break; @@ -2034,7 +2054,7 @@ App.Art.vectorArtElement = (function() { svgQueue.add("Art_Vector_Cow_Ear_Back"); break; } - switch(slave.earT) { + switch (slave.earT) { case "neko": svgQueue.add("Art_Vector_Cat_Ear_Back"); break; @@ -2111,12 +2131,15 @@ App.Art.vectorArtElement = (function() { break; default: svgQueue.add("Art_Vector_Hair_Fore_Messy_Medium"); + if (V.experimental.reportMissingClothing) { + console.log(`No art for hair style "${slave.hStyle}" has been created yet, falling back to Messy Medium.`); + } } } } } /* note: latex clothing actually shows some hair, but there is no appropriate art for it */ - switch(slave.faceAccessory) { + switch (slave.faceAccessory) { case "cat ears": svgQueue.add("Art_Vector_Cat_Ear_Fore"); break; @@ -2126,8 +2149,14 @@ App.Art.vectorArtElement = (function() { case "cow ears": svgQueue.add("Art_Vector_Cow_Ear_Fore"); break; + case "none": + break; + default: + if (V.experimental.reportMissingClothing) { + console.log(`No art for face accessory "${slave.faceAccessory}" has been created yet.`); + } } - switch(slave.earT) { + switch (slave.earT) { case "neko": svgQueue.add("Art_Vector_Cat_Ear_Fore"); break; @@ -2602,14 +2631,25 @@ App.Art.vectorArtElement = (function() { /* ADDONS */ if (slave.fuckdoll === 0) { /* Fuckdolls cannot be decorated */ - if (slave.mouthAccessory === "dildo gag") { - svgQueue.add("Art_Vector_Dildo_Gag"); - } else if (slave.mouthAccessory === "ball gag") { - svgQueue.add("Art_Vector_Ball_Gag"); - } else if (slave.mouthAccessory === "bit gag") { - svgQueue.add("Art_Vector_Bit_Gag"); - } else if (slave.mouthAccessory === "massive dildo gag") { - svgQueue.add("Art_Vector_Massive_Dildo_Gag"); + switch (slave.mouthAccessory) { + case "dildo gag": + svgQueue.add("Art_Vector_Dildo_Gag"); + break; + case "ball gag": + svgQueue.add("Art_Vector_Ball_Gag"); + break; + case "bit gag": + svgQueue.add("Art_Vector_Bit_Gag"); + break; + case "massive dildo gag": + svgQueue.add("Art_Vector_Massive_Dildo_Gag"); + break; + case "none": + break; + default: + if (V.experimental.reportMissingClothing) { + console.log(`No art for face accessory "${slave.faceAccessory}" has been created yet.`); + } } if (slave.faceAccessory === "porcelain mask") { @@ -2656,6 +2696,13 @@ App.Art.vectorArtElement = (function() { case "kitty lingerie": svgQueue.add("Art_Vector_Cat_Ear_Fore"); svgQueue.add("Art_Vector_Cat_Ear_Back"); + break; + case "no clothing": + break; + default: + if (V.experimental.reportMissingClothing) { + console.log(`There is no head art yet for clothing "${slave.clothes}", perhaps by design`); + } } } } @@ -2910,6 +2957,9 @@ App.Art.vectorArtElement = (function() { function ArtVectorTorsoOutfit() { /* TODO: latex catsuit should cover vagina and its piercings, too */ switch (slave.clothes) { + case "no clothing": + case "choosing her own clothes": + break; /* no torso outfit */ case "a bimbo outfit": case "a courtesan dress": case "a Fuckdoll suit": @@ -2917,12 +2967,13 @@ App.Art.vectorArtElement = (function() { case "a nice pony outfit": case "a Santa dress": case "a slutty pony outfit": - case "choosing her own clothes": - case "no clothing": case "overalls": case "pasties": case "petite admi outfit": - break; /* no torso outfit */ + if (V.experimental.reportMissingClothing) { + console.log(`No art for clothing "${slave.clothes}" has been created yet.`); + } + break; /* manually handle special cases */ case "a cybersuit": svgQueue.add(`Art_Vector_Torso_Outfit_Latex_${torsoSize}`); @@ -3198,7 +3249,7 @@ App.Art.legacyVectorArtElement = function() { } /* Gag */ - switch (slave.mouthAccessory ) { + switch (slave.mouthAccessory) { case "dildo gag": addImg(res, `outfit/${slave.collar}`); } diff --git a/src/gui/options/options.js b/src/gui/options/options.js index 74cbea915f9176f506b76654c5beca92560d623e..13f4a0ccaff212239f2a186713b7303140b8acbe 100644 --- a/src/gui/options/options.js +++ b/src/gui/options/options.js @@ -995,6 +995,11 @@ App.UI.optionsPassage = function() { .addComment("This will enable a controversial but very broken event. Warning: Snuff, cannibalism."); } + if (V.debugMode && V.imageChoice === 1) { + options.addOption("If art for Deepmurk's clothing has not yet been reported, log it in console", "reportMissingClothing", V.experimental) + .addValue("Enabled", 1).on().addValue("Disabled", 0).off(); + } + options.addOption("New event", "tempEventToggle") .addValue("Enabled", 1).on().addValue("Disabled", 0).off(); diff --git a/src/js/itemAvailability.js b/src/js/itemAvailability.js index 0831a12e9615da0341d14995bc6782f5ee91dcf8..09efe371b3f21fd8ba9e6e0c423ee6810b0ac332 100644 --- a/src/js/itemAvailability.js +++ b/src/js/itemAvailability.js @@ -49,7 +49,7 @@ globalThis.isItemAccessible = (function() { selectedDB = App.Data.slaveWear.chastityDevices; break; default: - console.log(`made a category for ${category} automatically, may need to define this by hand`); + // console.log(`made a category for ${category} automatically, may need to define this by hand`); selectedDB = App.Data.slaveWear[category]; break; }