diff --git a/src/art/artJS.tw b/src/art/artJS.tw index 1acfc9f47a8ceadf925e528cf3d0786de4deddca..35f089f467e5b2ac50bde9a71129a9450ab6b914 100644 --- a/src/art/artJS.tw +++ b/src/art/artJS.tw @@ -1736,20 +1736,20 @@ window.ArtVectorAnalAccessories = function(slave) { let r = ""; if (slave.buttplug === "long plug") - r += Story.get("Art_Vector_Plug_Long").processText(); + r += jsInclude("Art_Vector_Plug_Long"); else if (slave.buttplug === "large plug") - r += Story.get("Art_Vector_Plug_Large").processText(); + r += jsInclude("Art_Vector_Plug_Large"); else if (slave.buttplug === "long, large plug") - r += Story.get("Art_Vector_Plug_Large_Long").processText(); + r += jsInclude("Art_Vector_Plug_Large_Long"); else if (slave.buttplug === "huge plug") - r += Story.get("Art_Vector_Plug_Huge").processText(); + r += jsInclude("Art_Vector_Plug_Huge"); else if (slave.buttplug === "long, huge plug") - r += Story.get("Art_Vector_Plug_Huge_Long").processText(); + r += jsInclude("Art_Vector_Plug_Huge_Long"); if (slave.buttplugAttachment === "tail") - r += Story.get("Art_Vector_Plug_Tail").processText(); + r += jsInclude("Art_Vector_Plug_Tail"); else if (slave.buttplugAttachment === "cat tail") - r += Story.get("Art_Vector_Cat_Tail").processText(); + r += jsInclude("Art_Vector_Cat_Tail"); return r; }; @@ -1766,8 +1766,8 @@ window.ArtVectorArm = function(slave) { if (slave.amp === 1) { T.leftArmType = "None"; T.rightArmType = "None"; - r += Story.get("Art_Vector_Arm_Right_None").processText(); - r += Story.get("Art_Vector_Arm_Left_None").processText(); + r += jsInclude("Art_Vector_Arm_Right_None"); + r += jsInclude("Art_Vector_Arm_Left_None"); } else { /* is not amputee or has limbs equipped so running arm calculation block */ if (slave.devotion > 50) { T.leftArmType = "High"; @@ -1788,41 +1788,41 @@ window.ArtVectorArm = function(slave) { T.rightArmType = "Mid"; } if (slave.amp === 0) { - r += Story.get(`Art_Vector_Arm_Right_${T.rightArmType}`).processText(); - r += Story.get(`Art_Vector_Arm_Left_${T.rightArmType}`).processText(); + r += jsInclude(`Art_Vector_Arm_Right_${T.rightArmType}`); + r += jsInclude(`Art_Vector_Arm_Left_${T.rightArmType}`); if (slave.muscles >= 6) { if (T.leftArmType === "High") - r += Story.get("Art_Vector_Arm_Left_High_MLight").processText(); + r += jsInclude("Art_Vector_Arm_Left_High_MLight"); else if (T.leftArmType === "Mid") - r += Story.get("Art_Vector_Arm_Left_Mid_MLight").processText(); + r += jsInclude("Art_Vector_Arm_Left_Mid_MLight"); else if (T.leftArmType === "Low") - r += Story.get("Art_Vector_Arm_Left_Low_MLight").processText(); + r += jsInclude("Art_Vector_Arm_Left_Low_MLight"); else if (T.leftArmType === "Rebel") - r += Story.get("Art_Vector_Arm_Left_Rebel_MLight").processText(); + r += jsInclude("Art_Vector_Arm_Left_Rebel_MLight"); if (T.rightArmType === "High") - r += Story.get("Art_Vector_Arm_Right_High_MLight").processText(); + r += jsInclude("Art_Vector_Arm_Right_High_MLight"); else if (T.rightArmType === "Mid") - r += Story.get("Art_Vector_Arm_Right_Mid_MLight").processText(); + r += jsInclude("Art_Vector_Arm_Right_Mid_MLight"); else if (T.rightArmType === "Low") - r += Story.get("Art_Vector_Arm_Right_Low_MLight").processText(); + r += jsInclude("Art_Vector_Arm_Right_Low_MLight"); } } else if (slave.PLimb === 1 || slave.PLimb === 2) { /* slave is an amputee and has PLimbs equipped */ if (slave.amp === -1) { - r += Story.get(`Art_Vector_Arm_Right_ProstheticBasic_${T.rightArmType}`).processText(); - r += Story.get(`Art_Vector_Arm_Left_ProstheticBasic_${T.rightArmType}`).processText(); + r += jsInclude(`Art_Vector_Arm_Right_ProstheticBasic_${T.rightArmType}`); + r += jsInclude(`Art_Vector_Arm_Left_ProstheticBasic_${T.rightArmType}`); } else if (slave.amp === -2) { - r += Story.get(`Art_Vector_Arm_Right_ProstheticSexy_${T.rightArmType}`).processText(); - r += Story.get(`Art_Vector_Arm_Left_ProstheticSexy_${T.rightArmType}`).processText(); + r += jsInclude(`Art_Vector_Arm_Right_ProstheticSexy_${T.rightArmType}`); + r += jsInclude(`Art_Vector_Arm_Left_ProstheticSexy_${T.rightArmType}`); } else if (slave.amp === -3) {/* Reverting beauty limbs to regular SVG */ - r += Story.get(`Art_Vector_Arm_Right_ProstheticBeauty_${T.rightArmType}`).processText(); - r += Story.get(`Art_Vector_Arm_Left_ProstheticBeauty_${T.rightArmType}`).processText(); + r += jsInclude(`Art_Vector_Arm_Right_ProstheticBeauty_${T.rightArmType}`); + r += jsInclude(`Art_Vector_Arm_Left_ProstheticBeauty_${T.rightArmType}`); } else if (slave.amp === -4) { - r += Story.get(`Art_Vector_Arm_Right_ProstheticCombat_${T.rightArmType}`).processText(); - r += Story.get(`Art_Vector_Arm_Left_ProstheticCombat_${T.rightArmType}`).processText(); + r += jsInclude(`Art_Vector_Arm_Right_ProstheticCombat_${T.rightArmType}`); + r += jsInclude(`Art_Vector_Arm_Left_ProstheticCombat_${T.rightArmType}`); } else if (slave.amp === -5) { - r += Story.get(`Art_Vector_Arm_Right_ProstheticSwiss_${T.rightArmType}`).processText(); - r += Story.get(`Art_Vector_Arm_Left_ProstheticSwiss_${T.rightArmType}`).processText(); + r += jsInclude(`Art_Vector_Arm_Right_ProstheticSwiss_${T.rightArmType}`); + r += jsInclude(`Art_Vector_Arm_Left_ProstheticSwiss_${T.rightArmType}`); } } } @@ -1832,11 +1832,11 @@ window.ArtVectorArm = function(slave) { if (slave.fuckdoll !== 0 || slave.clothes === "restrictive latex" || slave.clothes === "a latex catsuit" || slave.clothes === "body oil") { /* only some arm positions have art (feel free to add more) */ if (T.leftArmType === "High") - r += Story.get("Art_Vector_Arm_Outfit_Shine_Left_High").processText(); + r += jsInclude("Art_Vector_Arm_Outfit_Shine_Left_High"); else if (T.leftArmType === "Mid") - r += Story.get("Art_Vector_Arm_Outfit_Shine_Left_Mid").processText(); + r += jsInclude("Art_Vector_Arm_Outfit_Shine_Left_Mid"); else if (T.leftArmType === "Low") - r += Story.get("Art_Vector_Arm_Outfit_Shine_Left_Low").processText(); + r += jsInclude("Art_Vector_Arm_Outfit_Shine_Left_Low"); } } @@ -1887,30 +1887,72 @@ window.ArtVectorArm = function(slave) { case "slutty jewelry": case "sport shorts and a t-shirt": case "Western clothing": - r += Story.get(`Art_Vector_Arm_Outfit_${clothing2artSuffix(slave.clothes)}_Right_${T.rightArmType}`).processText(); - r += Story.get(`Art_Vector_Arm_Outfit_${clothing2artSuffix(slave.clothes)}_Left_${T.leftArmType}`).processText(); + r += jsInclude(`Art_Vector_Arm_Outfit_${clothing2artSuffix(slave.clothes)}_Right_${T.rightArmType}`); + r += jsInclude(`Art_Vector_Arm_Outfit_${clothing2artSuffix(slave.clothes)}_Left_${T.leftArmType}`); break; case "a slutty schutzstaffel uniform": - r += Story.get(`Art_Vector_Arm_Outfit_SchutzstaffelUniform_Right_${T.rightArmType}`).processText(); - r += Story.get(`Art_Vector_Arm_Outfit_SchutzstaffelUniform_Left_${T.leftArmType}`).processText(); + r += jsInclude(`Art_Vector_Arm_Outfit_SchutzstaffelUniform_Right_${T.rightArmType}`); + r += jsInclude(`Art_Vector_Arm_Outfit_SchutzstaffelUniform_Left_${T.leftArmType}`); break; case "a niqab and abaya": case "a burqa": - r += Story.get(`Art_Vector_Arm_Outfit_HijabAndAbaya_Right_${T.rightArmType}`).processText(); - r += Story.get(`Art_Vector_Arm_Outfit_HijabAndAbaya_Left_${T.leftArmType}`).processText(); + r += jsInclude(`Art_Vector_Arm_Outfit_HijabAndAbaya_Right_${T.rightArmType}`); + r += jsInclude(`Art_Vector_Arm_Outfit_HijabAndAbaya_Left_${T.leftArmType}`); break; case "a slave gown": /* only some arm positions have art (feel free to add more) */ if (T.leftArmType === "High") - r += Story.get("Art_Vector_Arm_Outfit_SlaveGown_Left_High").processText(); + r += jsInclude("Art_Vector_Arm_Outfit_SlaveGown_Left_High"); else if (T.leftArmType === "Mid") - r += Story.get("Art_Vector_Arm_Outfit_SlaveGown_Left_Mid").processText(); + r += jsInclude("Art_Vector_Arm_Outfit_SlaveGown_Left_Mid"); else if (T.leftArmType === "Low") - r += Story.get("Art_Vector_Arm_Outfit_SlaveGown_Left_Low").processText(); + r += jsInclude("Art_Vector_Arm_Outfit_SlaveGown_Left_Low"); } return r; }; +window.ArtVectorBalls = function(slave) { + if (slave.scrotum > 0 && slave.balls > 0) { + switch (slave.clothes) { + case "a bra": + case "a button-up shirt": + case "a comfortable bodysuit": + case "a cybersuit": + case "a fallen nuns habit": + case "a hanbok": + case "a latex catsuit": + case "a monokini": + case "a nice pony outfit": + case "a slutty pony outfit": + case "a sports bra": + case "a string bikini": + case "a striped bra": + case "a sweater": + case "a t-shirt": + case "a tank-top": + case "a thong": + case "a tube top": + case "an oversized t-shirt": + case "attractive lingerie": + case "body oil": + case "chains": + case "clubslut netting": + case "no clothing": + case "panties and pasties": + case "restrictive latex": + case "shibari ropes": + case "slutty jewelry": + case "uncomfortable straps": + case "Western clothing": + let artScaleFactor = slave.scrotum/3; + let artTranslationX = -271 * (artScaleFactor - 1); + let artTranslationY = -453 * (artScaleFactor - 1); + State.temporary.art_transform = `matrix(${artScaleFactor},0,0,${artScaleFactor},${artTranslationX},${artTranslationY})`; + return jsInclude("Art_Vector_Balls"); + } + } +}; + window.ArtVectorBoobAddons = function(slave) { let r = ""; @@ -1948,7 +1990,7 @@ window.ArtVectorBoobAddons = function(slave) { clothes = "a schutzstaffel uniform"; else if (slave.clothes === "a niqab and abaya" || slave.clothes === "a burqa") clothes = "a hijab and abaya"; - r += Story.get(`Art_Vector_Boob_Outfit_${clothing2artSuffix(clothes)}`).processText(); + r += jsInclude(`Art_Vector_Boob_Outfit_${clothing2artSuffix(clothes)}`); } } if (State.variables.showBodyMods === 1 && (slave.nipplesPiercing > 0 || slave.areolaePiercing > 0)) { @@ -1987,14 +2029,14 @@ window.ArtVectorBoobAddons = function(slave) { case "striped panties": case "uncomfortable straps": if (slave.nipplesPiercing === 1) - r += Story.get("Art_Vector_Boob_Piercing").processText(); + r += jsInclude("Art_Vector_Boob_Piercing"); else if (slave.nipplesPiercing > 1) - r += Story.get("Art_Vector_Boob_Piercing_Heavy").processText(); + r += jsInclude("Art_Vector_Boob_Piercing_Heavy"); if (slave.areolaePiercing === 1) - r += Story.get("Art_Vector_Boob_Areola_Piercing").processText(); + r += jsInclude("Art_Vector_Boob_Areola_Piercing"); else if (slave.areolaePiercing > 1) - r += Story.get("Art_Vector_Boob_Areola_Piercingheavy").processText(); + r += jsInclude("Art_Vector_Boob_Areola_Piercingheavy"); } } return r; @@ -2025,15 +2067,15 @@ window.ArtVectorButt = function(slave) { T.buttSize = 0; if (slave.amp == 0) - return Story.get(`Art_Vector_Butt_${T.buttSize}`).processText(); + return jsInclude(`Art_Vector_Butt_${T.buttSize}`); else if (slave.amp == -1) - return Story.get(`Art_Vector_Butt_ProstheticBasic_${T.buttSize}`).processText(); + return jsInclude(`Art_Vector_Butt_ProstheticBasic_${T.buttSize}`); else if (slave.amp == -2) - return Story.get(`Art_Vector_Butt_ProstheticSexy_${T.buttSize}`).processText(); + return jsInclude(`Art_Vector_Butt_ProstheticSexy_${T.buttSize}`); else if (slave.amp == -3) /* reverted to regular SVG to match description */ - return Story.get(`Art_Vector_Butt_ProstheticBeauty_${T.buttSize}`).processText(); + return jsInclude(`Art_Vector_Butt_ProstheticBeauty_${T.buttSize}`); else if (slave.amp == -4) - return Story.get(`Art_Vector_Butt_ProstheticCombat_${T.buttSize}`).processText(); + return jsInclude(`Art_Vector_Butt_ProstheticCombat_${T.buttSize}`); else if (slave.amp == -5) - return Story.get(`Art_Vector_Butt_ProstheticSwiss_${T.buttSize}`).processText(); + return jsInclude(`Art_Vector_Butt_ProstheticSwiss_${T.buttSize}`); }; diff --git a/src/art/vector/Balls.tw b/src/art/vector/Balls.tw index 7bfcd67a363b07ed1d7b3d78d6117842315a9b64..dd063ca6edae904f731d6ce8ac71f55dbb5aace6 100644 --- a/src/art/vector/Balls.tw +++ b/src/art/vector/Balls.tw @@ -1,15 +1,3 @@ :: Art_Vector_Balls_ [nobr] -<<if _artSlave.scrotum > 0 && _artSlave.balls > 0 && !(["a slave gown","a cheerleader outfit","cutoffs and a t-shirt","a halter top dress","a hijab and abaya","a niqab and abaya", "a burqa", "a leotard","a nice maid outfit","a slutty maid outfit","a military uniform","a mini dress","a nice nurse outfit","a slutty nurse outfit","a scalemail bikini","a schoolgirl outfit","a ball gown","battledress","a slutty outfit","spats and a tank top","a succubus outfit","nice business attire","slutty business attire","attractive lingerie for a pregnant woman","a bunny outfit","a chattel habit","conservative clothing","harem gauze","a huipil","a kimono","a maternity dress","a slutty qipao","stretch pants and a crop-top","a toga","a penitent nuns habit","a schutzstaffel uniform","a slutty schutzstaffel uniform","a red army uniform","an apron","battlearmor","a dirndl","a biyelgee costume","lederhosen","a mounty outfit", "striped panties", "a long qipao", "a klan robe", "a hijab and blouse", "a burkini", "cutoffs", "a slutty klan robe", "a button-up shirt and panties", "striped underwear", "panties", "a t-shirt and panties", "a t-shirt and thong", "sport shorts", "sport shorts and a t-shirt", "sport shorts and a sports bra", "leather pants", "jeans", "leather pants and pasties", "leather pants and a tube top", "boy shorts", "a tube top and thong", "a skimpy loincloth", "a tank-top and panties", "a t-shirt and jeans", "boyshorts", "an oversized t-shirt and boyshorts", "a sweater and cutoffs", "a sweater and panties", "a police uniform", "a one-piece swimsuit", "a gothic lolita dress", "kitty lingerie"].includes(_artSlave.clothes)) >> - <<set _art_scale_factor = _artSlave.scrotum/3 >> - <<set _art_translation_x = -271*(_art_scale_factor-1) >> - <<set _art_translation_y = -453*(_art_scale_factor-1) >> - /* - _art_balls_transform is for internal program usage. - _art_transform will affect the display. - */ - <<set _art_balls_transform = "matrix(" + _art_scale_factor +",0,0," + _art_scale_factor + "," + _art_translation_x + "," + _art_translation_y + ")">> - <<set _art_transform = _art_balls_transform>> - <<set _art = "Art_Vector_Balls">> - <<include _art>> -<</if>> +<<= ArtVectorBalls(_artSlave)>>