Browse Source

[changed/added] Massive change in how piercings and tattoos are handled.
Part of this change is caught up in the lovers - fuckbuddies - sugardaddies overhaul and will be updated in the near future

anjuna krokus 3 months ago
parent
commit
6cd743cde9
50 changed files with 3534 additions and 2427 deletions
  1. 6 3
      glife.qproj
  2. 1 1
      locations/JuliaMilHome.qsrc
  3. 12 12
      locations/MartinSex.qsrc
  4. 146 146
      locations/MartinSex2.qsrc
  5. 26 26
      locations/MartinSex3.qsrc
  6. 1 1
      locations/anushapt.qsrc
  7. 1 1
      locations/anushapt_city.qsrc
  8. 1 1
      locations/artemhome.qsrc
  9. 416 129
      locations/body_desc.qsrc
  10. 52 54
      locations/brother.qsrc
  11. 1 1
      locations/brother_voyeur.qsrc
  12. 12 19
      locations/dimaEv.qsrc
  13. 2 2
      locations/dimaHome.qsrc
  14. 1 1
      locations/din_bad.qsrc
  15. 1 1
      locations/din_van.qsrc
  16. 81 72
      locations/father.qsrc
  17. 1 1
      locations/gas_station_gp_117.qsrc
  18. 16 7
      locations/gopskver.qsrc
  19. 1 1
      locations/gschool_grounds.qsrc
  20. 4 4
      locations/hunterLoveSex.qsrc
  21. 12 24
      locations/intro_city_select.qsrc
  22. 0 1
      locations/intro_functions.qsrc
  23. 15 28
      locations/intro_sg_select.qsrc
  24. 1 2
      locations/intro_sg_select_custom.qsrc
  25. 7 7
      locations/katjaEv.qsrc
  26. 36 36
      locations/katja_procedural.qsrc
  27. 8 8
      locations/kotovSex.qsrc
  28. 1 1
      locations/ludahome.qsrc
  29. 1 1
      locations/natbelapt.qsrc
  30. 57 57
      locations/nichGala.qsrc
  31. 108 106
      locations/obj_din.qsrc
  32. 6 6
      locations/pav_complex.qsrc
  33. 14 14
      locations/pavlov_home.qsrc
  34. 476 155
      locations/piercing_management.qsrc
  35. 1309 1234
      locations/pirsingsalon.qsrc
  36. 2 2
      locations/placer_man.qsrc
  37. 3 3
      locations/prostitution_car_sex.qsrc
  38. 19 49
      locations/prostitution_functions.qsrc
  39. 2 2
      locations/qwBarBilliard.qsrc
  40. 7 7
      locations/radapt.qsrc
  41. 1 1
      locations/road_prostitution.qsrc
  42. 1 1
      locations/rolanbath.qsrc
  43. 161 2
      locations/saveupdater.qsrc
  44. 13 13
      locations/sister_chat.qsrc
  45. 20 20
      locations/sny.qsrc
  46. 1 1
      locations/soniahome.qsrc
  47. 151 154
      locations/stat.qsrc
  48. 8 8
      locations/stwork.qsrc
  49. 311 0
      locations/tattoo_management.qsrc
  50. 1 1
      locations/vasilyhome.qsrc

+ 6 - 3
glife.qproj

@@ -36,14 +36,14 @@
 	</Folder>
 	<Folder name="Stats">
 		<Location name="DNA"/>
-		<Location name="cikl"/>
 		<Location name="time"/>
+		<Location name="stat"/>
+		<Location name="hourly_events"/>
+		<Location name="cikl"/>
 		<Location name="yearstart"/>
 		<Location name="dina"/>
 		<Location name="MenuMainLoc"/>
 		<Location name="starenie"/>
-		<Location name="stat"/>
-		<Location name="hourly_events"/>
 		<Location name="stat_display"/>
 		<Location name="stat_sklattrib"/>
 		<Location name="stat_sklattrib_lvlset"/>
@@ -55,6 +55,8 @@
 		<Location name="kid"/>
 		<Location name="pattest"/>
 		<Location name="subkid"/>
+	</Folder>
+	<Folder name="Homes">
 		<Location name="homes_properties"/>
 		<Location name="homes_properties_attr"/>
 	</Folder>
@@ -106,6 +108,7 @@
 		<Location name="medical_din"/>
 		<Location name="sweat"/>
 		<Location name="piercing_management"/>
+		<Location name="tattoo_management"/>
 		<Location name="$face_image"/>
 		<Location name="$body_image"/>
 	</Folder>

+ 1 - 1
locations/JuliaMilHome.qsrc

@@ -314,7 +314,7 @@ if $ARGS[0] = 'bathroom':
 	'The toilet sits along the wall next to a small bathtub.'
 	'You can do your hair and makeup in the <a href="exec:gt ''mirror'', ''start''">mirror</a> above the sink.'
 
-	if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0: '<a href="exec:dynamic $pirManage">Manage Piercings</a>'
+	gs 'piercing_management', 'set_manage_string'
 	act 'Leave the bathroom': gt 'JuliaMilHome','hallway'
 	act 'Take a shower':
 		menu_off = 1

+ 12 - 12
locations/MartinSex.qsrc

@@ -57,7 +57,7 @@ if $ARGS[0] = '':
 		else
 			*nl
 			'As nice as this exchange is, something is different about this, you can tell. You have been chatting with him for a while now and yet you have never felt this... tense before, as if you were mentally preparing for something.'
-			'But it''s not just you: You have had plenty of time to watch him while he worked, seen the way he looks at the women who come to the bar, even the attractive ones: He is appreciative of beauty but self-confident enough to not try to hide his brief stare. The way his eyes jump down to your curves, lingering on your' + iif(tatback>0,'tattooed ','') + 'back, ass,' + iif(tatupb>0,' the tramp stamp in between,','') + ' and ' + iif(tatleg>0,'tattooed ','') + 'legs for a moment before jumping back, as if he couldn''t keep himself from doing it but didn''t want you to notice... It''s almost like he''s a different man. And not an unattractive one at that...'
+			'But it''s not just you: You have had plenty of time to watch him while he worked, seen the way he looks at the women who come to the bar, even the attractive ones: He is appreciative of beauty but self-confident enough to not try to hide his brief stare. The way his eyes jump down to your curves, lingering on your <<$pc_desc[''back'']>> back, ass,' + iif(pcs_tattoos['tramp'] > 0,' the tramp stamp in between,','') + ' and  <<$pc_desc[''legs'']>> legs for a moment before jumping back, as if he couldn''t keep himself from doing it but didn''t want you to notice... It''s almost like he''s a different man. And not an unattractive one at that...'
 
 			act 'Leave the bar':
 				cla
@@ -353,7 +353,7 @@ if $ARGS[0] = '':
 				'"I don''t know what I''ll want a year from now," you answer honestly, "I don''t even know what I''ll want a week from now, but I know that, right now, I want you."'
 				'For a few seconds, nothing happens - Martin seems indecisive, a feeling you know all too well.'
 				*nl
-				'Then, all of a sudden, you feel his lips against yours, showing without a doubt which side of him won the argument, and you kiss him back with a passion, your <<$pcdesc_tongue>> finally united with his.'
+				'Then, all of a sudden, you feel his lips against yours, showing without a doubt which side of him won the argument, and you kiss him back with a passion, your <<$pc_desc[''tongue'']>> tongue finally united with his.'
 				gs 'arousal', 'kiss', 5
 				gs 'stat'
 
@@ -375,7 +375,7 @@ if $ARGS[0] = '':
 					*nl
 					'"Okay, then I''ll see you soon?"'
 					'"Yeah. You know where to find me, corazón." Martin gives you the most lighthearted smile you have ever seen on him - it''s strange how that can make a man look younger, and how that can make you weak in the knees.'
-					'With a goofy smile of your own plastered on your ' + iif(tatfce>0,'tattooed ','') + 'face, you turn around and leave the bar.'
+					'With a goofy smile of your own plastered on your  <<$pc_desc[''face'']>> face, you turn around and leave the bar.'
 					gs 'arousal', 'end'
 					gs 'stat'
 
@@ -415,7 +415,7 @@ if $ARGS[0] = '':
 			*nl
 			'You share a kiss, and a fondle or two, but you don''t wanna make this <b>harder</b> on him than it already is, so you finally step away, smiling inwardly at your stupid pun.'
 			'"Be careful on your way home," Martin admonishes, as usual.'
-			'You raise your <<$pcdesc_eyebrowrandom>> at that, but there''s no helping it - he''s gonna worry anyway.'
+			'You raise your <<$pc_descRandom[''brow'']>> eyebrow at that, but there''s no helping it - he''s gonna worry anyway.'
 			'"Always am," you reassure him, turn around and leave the bar, wondering if, maybe instead of leaving, you should have fucked Martin''s brains out.'
 
 			act 'Leave': gt 'city_industrial'
@@ -478,7 +478,7 @@ if $ARGS[0] = 'MartinTease1':
 	'Martin is utterly perplexed by that. "<<$pcs_firstname>>, what are you-"'
 	'"Oops, I seem to have accidentally pulled my panties down," you say innocently, giving him a broad smile.'
 	*nl
-	'Most of your crotch is revealed to him, but your ' + iif(tatvag>0,'tattooed ','') + 'pussy is only vaguely perceptible. Still, you can already tell that the situation is entirely different from how it was a minute ago - the suave barkeeper is on the defensive. And you are just getting started...'
+	'Most of your crotch is revealed to him, but your  <<$pc_desc[''pussy'']>> pussy is only vaguely perceptible. Still, you can already tell that the situation is entirely different from how it was a minute ago - the suave barkeeper is on the defensive. And you are just getting started...'
 	gs 'clothing', 'strip'
 	gs 'arousal', 'foreplay', 1, 'exhibitionism'
 	gs 'stat'
@@ -510,7 +510,7 @@ if $ARGS[0] = 'MartinTease1':
 		act 'Climb on the table':
 			cls
 			'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/tease/tease3.jpg"></center>'
-			'Deciding to make full use of the table being there, you climb on top of it and sit down, spreading your legs to give Martin a good view of your ' + iif(pirsG>0,'pierced ','') + 'pussy.'
+			'Deciding to make full use of the table being there, you climb on top of it and sit down, spreading your legs to give Martin a good view of your <<$pc_desc[''pussy'']>> pussy.'
 			*nl
 			'"You could do more than just look, you know." The flirtatious tone is gone now - anything but being openly sultry just wouldn''t do this porno-esque situation justice.'
 			'Plus, Martin isn''t the only one getting turned on by this, and both of you can see it. "This <<$pc_desc[''pubes'']>> <<$pc_desc[''pussy'']>> pussy could be yours."'
@@ -579,7 +579,7 @@ if $ARGS[0] = 'MartinTease2':
 			'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/tease/nopanties_tease3.jpg"></center>'
 			'With an audience as appreciative as this, how could you possibly stop now?'
 			*nl
-			'Setting the glass, your trusty prop, aside, you pull down what little covers your ' + iif(tatbrst > 0,'tattooed ','') + 'chest and ' + iif(tatblly > 0 and tatbrst = 0,'tattooed ','') +'belly, giving Martin a good look at your <<$pc_desc[''breast'']>> tits, your <<$pc_desc[''nipples'']>> nipples standing hard thanks to the chilly, smoky air... and maybe also due to his intense stares.'
+			'Setting the glass, your trusty prop, aside, you pull down what little covers your <<$pc_desc[''chest'']>> chest and <<$pc_desc[''belly'']>> belly, giving Martin a good look at your <<$pc_desc[''breast'']>> tits, your <<$pc_desc[''nipples'']>> nipples standing hard thanks to the chilly, smoky air... and maybe also due to his intense stares.'
 			*nl
 			'You lift your arms a little, playing with your <<$pc_descWordy[''hair length'']>> and sticking out your breasts even more.'
 			'No, you <b>really</b> aren''t making it easy for Martin to adhere to his principles regarding celibacy and sexy young women, or whatever it is that''s holding him back from bending you over and nailing you into the fucking counter.'
@@ -743,7 +743,7 @@ if $ARGS[0] = 'MartinTease3':
 					'At first, Martin probably thinks you''re joking, but seeing as you''re putting your other clothes back on as well, he gets up, frowning.'
 					'"You''d leave me here, alone, in this state?" He points towards his crotch where his dick is straining against the fabric of his pants. "You couldn''t possibly be this cruel."'
 					*nl
-					'You walk up to Martin, put your ' + iif(tatarm>0,'tattooed ','') + 'arms around his neck and give him a soft kiss. When you break it, you whisper: "If I wasn''t cruel at least once in a while, you wouldn''t appreciate it when I''m not."'
+					'You walk up to Martin, put your <<$pc_desc[''arms'']>> arms around his neck and give him a soft kiss. When you break it, you whisper: "If I wasn''t cruel at least once in a while, you wouldn''t appreciate it when I''m not."'
 					*nl
 					'With that, you quickly move out of his range, towards the door, blow the perplexed barkeeper a final kiss and make off like a bandit.'
 					'... A horny bandit.'
@@ -798,7 +798,7 @@ if $ARGS[0] = 'MartinTease4':
 			'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/tease/nopanties_tease3.jpg"></center>'
 			'With an audience as appreciative as this, how could you possibly stop now?'
 			*nl
-			'Setting the glass aside, you pull down what little covers your ' + iif(tatbrst > 0,'tattooed ','') + 'chest and ' + iif(tatblly > 0 + tatbrst = 0,'tattooed ','') +'belly, giving Martin a good look at your <<$pc_desc[''breast'']>> tits, your <<$pc_desc[''nipples'']>> nipples standing hard thanks to the chilly, smoky air... and maybe also due to his intense stares.'
+			'Setting the glass aside, you pull down what little covers your <<$pc_desc[''chest'']>> chest and <<$pc_desc[''belly'']>> belly, giving Martin a good look at your <<$pc_desc[''breast'']>> tits, your <<$pc_desc[''nipples'']>> nipples standing hard thanks to the chilly, smoky air... and maybe also due to his intense stares.'
 			*nl
 			'You lift your arms a little, playing with your <<$pc_descWordy[''hair length'']>> and sticking out your breasts even more.'
 			'Honestly, it wouldn''t have surprised you if he had just bent you over and nailed you into the fucking counter then and there - his eyes are certainly burning with desire enough to tell you that he wants to.'
@@ -917,7 +917,7 @@ if $ARGS[0] = 'MartinTeaseDildo':
 	gs 'boyStat', 'A216'
 	inhib_exp += rand(1,3)
 	'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/tease/teasedildo1.jpg"></center>'
-	'You roll to your ' + iif(tatside>0,'tattooed ','') + 'side. Grinning like a Cheshire cat, you rummage through your purse and, under the curious looks of Martin, pull out your ' + iif(dildo = 1,'10cm','15cm') + ' dildo.'
+	'You roll to your <<$pc_desc[''side'']>> side. Grinning like a Cheshire cat, you rummage through your purse and, under the curious looks of Martin, pull out your ' + iif(dildo = 1,'10cm','15cm') + ' dildo.'
 	*nl
 	'"Whatever am I going to do with this?" you wonder out loud, locking eyes with Martin as you give the tip of the dildo a lick or three.'
 	'"Yes, whatever indeed," he muses, his pants stretched to their limit around his crotch.'
@@ -982,9 +982,9 @@ if $ARGS[0] = 'MartinTeaseDildo':
 				'At first, Martin probably thinks you''re joking, but seeing as you''re putting your other clothes back on as well, he gets up, frowning.'
 				'"You''d leave me here, alone, in this state?" He points towards his crotch where his dick is straining against the fabric of his pants. "You couldn''t possibly be this cruel."'
 				*nl
-				'You walk up to Martin, put your arms around his neck and give him a soft kiss, the taste of your ' + iif(pirsG>0,'pierced ','') + 'pussy on your ' + iif(tatlip>0,'tattooed ','') + 'lips and tongue. When you break it, you whisper: "If I wasn''t cruel at least once in a while, you wouldn''t appreciate it when I''m not."'
+				'You walk up to Martin, put your arms around his neck and give him a soft kiss, the taste of your <<$pc_desc[''pussy'']>> pussy on your <<$pc_desc[''lips'']>> lips and tongue. When you break it, you whisper: "If I wasn''t cruel at least once in a while, you wouldn''t appreciate it when I''m not."'
 
-				if $pantyworntype ! 'none':
+				if $pantyworntype = 'none':
 					'"Besides," you add with a naughty smile, "you just saw me cum really hard, so I think you''ll cum immediately when I''m out that door once you realize that I''m going commando again."'
 					*nl
 					'With that, you quickly move out of his range, towards the door, blow the perplexed barkeeper a final kiss and make off like a bandit.'

+ 146 - 146
locations/MartinSex2.qsrc

@@ -7,8 +7,8 @@ menu_off = 1
 if $ARGS[0] = 'MartinSexPrep':
 	*clr & cla
 	gs 'boyStat', 'A216'
-	
-	if $martinpos = 'cowgirl':	
+
+	if $martinpos = 'cowgirl':
 		'<center><video autoplay loop src="images/locations/city/industrial/bar/sex/bar/martin/cowgirl/cowgirl_rub.mp4"></center>'
 	elseif $martinpos = 'rev_cowgirl':
 		'<center><video autoplay loop src="images/locations/city/industrial/bar/sex/bar/martin/rev_cowgirl/rev_cowgirl_rub.mp4"></center>'
@@ -19,70 +19,70 @@ if $ARGS[0] = 'MartinSexPrep':
 	elseif $martinpos = 'sideways':
 		'<center><video autoplay loop src="images/locations/city/industrial/bar/sex/bar/martin/sideways/sideways_rub.mp4"></center>'
 	end
-	
+
 	if MartinPussyLick = 1:
 		'With your pussy thoroughly eaten out, you wet and ready for the real thing.'
 	else
 		'You could certainly tease Martin more, arouse him and yourself until the slightest touch could set you off, but you want his hard dick inside you and you want it <b>now</b>.'
 	end
-	
+
 	if $clothingworntype ! 'nude':
 		*nl
 		'Giving Martin a saucy look, you quickly strip down, completely exposing yourself to the bartender. Now that you''re dressed for the occasion, nothing''s standing between you and a night to remember.'
 		gs 'clothing', 'strip_all'
-	
+
 	else
 		'And your little show earlier not only removed all possible obstacles but got you and your lover all hot and bothered.'
 	end
-	
+
 	*nl
 	if $martinpos = 'cowgirl' or $martinpos = 'rev_cowgirl':
 		'"Lie down," you say, sounding a little more forceful than you really wanted to, "I want to ride you."'
 		'Martin smiles. "If you insist." He unceremoniously rids himself of his pants and lies down quickly, knowing better than to argue with a horny woman.'
 		*nl
 		'Without delay, you climb on top of him, ' + iif($martinpos='rev_cowgirl','facing away from him','face to face with him') + ', his <<dick>>cm <<$dick_girth>> cock tantalizingly close to your wet pussy' + iif($martinpos='rev_cowgirl',' and giving him a fantastic view of your ass','') + ' as you rub your slit along his length, sending ripples of pleasure through your body.'
-	
+
 	elseif $martinpos = 'doggystyle':
 		'You bend over, giving Martin unrestricted access to your exposed pussy and a sexy view of your <<$pc_desc[''anus'']>> anus.'
 		'Martin smiles, clearly pleased with your shamelessness and urgency. He unceremoniously rids himself of his pants and comes up behind you, his erect penis so close to your wet folds you can feel the warmth it emanates. Not being able to see everything he does really turns you on.'
 		*nl
 		'To say that you are ready would be an understatement, which is probably the reason Martin... doesn''t penetrate you. Instead, he rubs his dick up and down the length of your slit, spreading your juices all around your lips and teasing you with the tip of his <<dick>>cm <<$dick_girth>> cock until you are about ready to scream.'
-	
+
 	elseif $martinpos = 'missionary':
 		'You get on your back and spread your legs, giving Martin a lovely view of your pussy and a smoldering ''come hither'' look.'
 		'Martin smiles, clearly pleased with the urgency and horniness you''re showing. He unceremoniously rids himself of his pants and comes up to you, his erect penis so close to your wet folds you can feel the warmth it emanates. Being face to face with him like this, nothing but air separating his dick from your wet hole, arouses you to no end.'
 		*nl
 		'It''s painfully obvious how much you want him to fuck you, which is probably why Martin... doesn''t penetrate you. Instead, he whips his dick against your slit, sending tiny shockwaves through your body each time he hits your clit and teasing you with the tip of his <<dick>>cm <<$dick_girth>> cock until you are about ready to scream.'
-	
+
 	elseif $martinpos = 'sideways':
 		'You lie down on your side, pulling on your ass and thigh to expose your wet pussy to Martin and looking at him with unashamed want.'
 		'Martin smiles, your urgency pleasing and arousing him. He unceremoniously rids himself of his pants and comes up to you, his erect penis so close to your wet folds you can feel the warmth it emanates.'
 		*nl
 		'To say that you are ready would be an understatement, but Martin doesn''t seem to care because... he doesn''t penetrate you. Instead, he flips you on your back, pushes your legs back and rubs the length of his <<dick>>cm <<$dick_girth>> dick along your slit. You reach down to push his cock against your <<$pc_desc[''pussy'']>> sex, increasing the friction of each thrust, both relishing and cursing this pleasurable torture.'
 	end
-	
+
 	*nl
 	if stat['think_virgin'] = 1:
 		'But before either of you can make another move, a nagging thought that''s been floating around the back of your head pushes to the foreground of your mind: You are a virgin. Is Martin <i>really</i> the man you want to have your first time with? Not to mention all the risks involved if you didn''t take all necessary precautions against pregnancy...'
-	elseif mc_inventory['equipped_condoms'] > 0 and preziktype ! 2 and tabletkishot < 1 and pillcon2 < 30000 and ovulate > 0: 
+	elseif mc_inventory['equipped_condoms'] > 0 and preziktype ! 2 and tabletkishot < 1 and pillcon2 < 30000 and ovulate > 0:
 		'But before either of you can make another move, a simple, powerful thought crosses your mind: You could get pregnant. And unless your count is off, today is a dangerous day to boot. You take a tentative look at your ' + iif(bag > 0,'purse','pocket') + ', the condoms sitting in it materializing before your inner eye.' + iif(preziktype=1,' You usually prefer to have sex without condoms, but...', ' ')
-	elseif mc_inventory['equipped_condoms'] > 0 and preziktype ! 2 and tabletkishot < 1 and pillcon2 < 30000: 
+	elseif mc_inventory['equipped_condoms'] > 0 and preziktype ! 2 and tabletkishot < 1 and pillcon2 < 30000:
 		'But before either of you can make another move, a simple, powerful thought crosses your mind: You could get pregnant. Today isn''t really a dangerous day, but it might be better to be safe than sorry. And while Martin doesn''t seem like the type who fucks random sluts, you can never be entirely sure of that, can you? You take a tentative look at your ' + iif(bag > 0,'purse','pocket') + ', the condoms sitting in it materializing before your inner eye.' + iif(preziktype=1,' You usually prefer to have sex sans condoms, but...', ' ')
-	elseif mc_inventory['equipped_condoms'] > 0 and preziktype = 2 and tabletkishot < 1 and pillcon2 < 30000 and ovulate > 0: 
+	elseif mc_inventory['equipped_condoms'] > 0 and preziktype = 2 and tabletkishot < 1 and pillcon2 < 30000 and ovulate > 0:
 		'But before either of you can make another move, a simple, powerful thought crosses your mind: You could get pregnant. And unless your count is off, today is a dangerous day to boot. You take a tentative look at your ' + iif(bag > 0,'purse','pocket') + ', the sabotaged condoms sitting in it materializing before your inner eye. You could put one on Martin and get pregnant, and he would be none the wiser...'
-	elseif mc_inventory['equipped_condoms'] > 0 and preziktype = 2 and tabletkishot < 1 and pillcon2 < 30000: 
+	elseif mc_inventory['equipped_condoms'] > 0 and preziktype = 2 and tabletkishot < 1 and pillcon2 < 30000:
 		'But before either of you can make another move, a simple, powerful thought crosses your mind: You could get pregnant. Today isn''t really a dangerous day, so the odds of that are relatively small, but still... You take a tentative look at your ' + iif(bag > 0,'purse','pocket') + ', the sabotaged condoms sitting in it materializing before your inner eye. You could put one on Martin and get pregnant, and he would be none the wiser...'
-	elseif mc_inventory['equipped_condoms'] = 0 and tabletkishot < 1 and pillcon2 < 30000 and ovulate > 0: 
+	elseif mc_inventory['equipped_condoms'] = 0 and tabletkishot < 1 and pillcon2 < 30000 and ovulate > 0:
 		'But before either of you can make another move, a simple, powerful thought crosses your mind: You could get pregnant. And unless your count is off, today is a dangerous day to boot. You take a tentative look at your ' + iif(bag > 0,'purse','pocket') + ', only to realize that you don''t have any condoms anyway. You could stop this, of course... but then again, could you really, with his beautiful dick just inches from your pussy?'
-	elseif mc_inventory['equipped_condoms'] = 0 and tabletkishot < 1 and pillcon2 < 30000: 
+	elseif mc_inventory['equipped_condoms'] = 0 and tabletkishot < 1 and pillcon2 < 30000:
 		'But before either of you can make another move, a simple, powerful thought crosses your mind: You could get pregnant. You take a tentative look at your ' + iif(bag > 0,'purse','pocket') + ', only to realize that you don''t have any condoms anyway. You could stop this, of course... but then again, could you really, with his beautiful dick just inches from your pussy?'
-	elseif mc_inventory['equipped_condoms'] > 0 and preziktype ! 2: 
+	elseif mc_inventory['equipped_condoms'] > 0 and preziktype ! 2:
 		'But before either of you can make another move, your eyes come to rest on your ' + iif(bag > 0,'purse','pocket') + ' and you remember the condoms sitting inside it. Sure, you don''t really need to use them since you can''t get pregnant thanks to the birth control' + iif(tabletkishot > 0,' shot',' pills') + ', but it might be less of a mess if Martin wore one. Then again, it would also be a little less intense.'
 	end
 	gs 'arousal', 'foreplay', 1
 	killvar 'MartinPussyLick'
 	gs 'stat'
-	
+
 	act 'Stop and get dressed':
 		*clr & cla
 		'<center><video autoplay loop src="images/locations/city/industrial/bar/gettingdressed.mp4"></center>'
@@ -101,10 +101,10 @@ if $ARGS[0] = 'MartinSexPrep':
 		gs 'clothing', 'wear_last_worn'
 		gs 'arousal', 'end'
 		gs 'stat'
-		
+
 		act 'Leave the bar': gt 'city_industrial'
 	end
-	
+
 	act 'Get him off with your mouth':MartinSexStop = 1 & gt 'MartinSex3','MartinBlowjob'
 	act 'Have anal sex instead':MartinSurpAnal = 1 & gt 'MartinSex2', 'MartinAnalDyn'
 	act 'Ask Martin to wear a condom':MartinPrezik = 1 & gt 'MartinSex2', 'MartinSexDyn'
@@ -114,7 +114,7 @@ if $ARGS[0] = 'MartinSexPrep':
 		act '"Fuck me, Martin"':gt 'MartinSex2','MartinSexDyn'
 	end
 end
-	
+
 if $ARGS[0] = 'MartinSexDyn':
 	*clr & cla
 	gs 'boyStat', 'A216'
@@ -123,8 +123,8 @@ if $ARGS[0] = 'MartinSexDyn':
 	else
 		pic_rand = rand(1,3)
 	end
-	
-	if $martinpos = 'cowgirl':	
+
+	if $martinpos = 'cowgirl':
 		'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/cowgirl/cowgirl<<pic_rand>>.jpg"></center>'
 	elseif $martinpos = 'rev_cowgirl':
 		'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/rev_cowgirl/rev_cowgirl<<pic_rand>>.jpg"></center>'
@@ -135,7 +135,7 @@ if $ARGS[0] = 'MartinSexDyn':
 	elseif $martinpos = 'sideways':
 		'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/sideways/sideways<<pic_rand>>.jpg"></center>'
 	end
-		
+
 	if MartinPrezik = 1:
 		'You reach into your ' + iif(bag > 0,'purse','pocket') + ', quickly finding a condom.'
 		'You decide that, if you''re gonna ask, you might as well get it over with quickly - like ripping off a bandage, except the bandage is a condom and it''s being put on.'
@@ -143,21 +143,21 @@ if $ARGS[0] = 'MartinSexDyn':
 		'"Can we use this today?"'
 		'His disappointment is clear as day. There''s not a man in the world who likes to be asked that question, and right when the fun is about to start and he''s inches away from his prize too. But after a second or two, he recovers, probably remembering that sex is, after all, still sex, rubber or not, and takes the condom from you, wrapping his shaft in latex with practiced ease.'
 		*nl
-		
-		if preziktype = 2: 
+
+		if preziktype = 2:
 			'You could have just let him go bareback, of course; the condom is about as fit to catch sperm as a sieve, and has about as many holes in it, too.'
 			*nl
 			'But... maybe he would have pulled out. Maybe he would have held himself back.'
 			'With ''protection'' like this, he has no reason to. Before he knows it, he''ll have filled your pussy with his cum, and that mental image makes you feel giddy with anticipation as you reach for his dick.'
-		
-		elseif preziktype = 0 and tabletkishot < 1 and pillcon2 < 30000: 
+
+		elseif preziktype = 0 and tabletkishot < 1 and pillcon2 < 30000:
 			'You were tempted to just put him inside you. He was so tantalizingly close... but the prospect of getting pregnant was scary enough to hold you back.'
 			*nl
 			'Sure, he could have pulled out, and he still can, but you know that the only way to make sure you don''t get pregnant is to take the pill or use a condom, and lacking a hormonal solution, this is what you and your lover will have to put up with.'
 			*nl
 			'You sigh inwardly and bite your lip when your mind wanders, revisiting the sight of his bare cock, tempting you... but you''ve made your choice and almost defiantly reach for his rubber-wrapped cock.'
-		
-		elseif preziktype = 0: 
+
+		elseif preziktype = 0:
 			'You could have just let him go bareback, of course. There''s no way you could get pregnant right now, just no way...'
 			*nl
 			'But when you think about his cum dripping out and running down your legs, going to the "bathroom" to clean yourself up, and still having the stuff drip out of you for at least another hour or two... You''re just not in the mood for that.'
@@ -165,7 +165,7 @@ if $ARGS[0] = 'MartinSexDyn':
 			'Sure, condoms make it feel a little muted, and you could just let him cum elsewhere - still can, but this way, all your options are on the table and you can just enjoy it without having to worry about a messy clean-up... unless that''s what strikes your fancy when you''re in the moment.'
 		end
 	end
-	
+
 	*nl
 	if $martinpos = 'cowgirl':
 		'Your hand feels small around his cock as you hold him in place, teasingly rubbing him against your pussy lips a few times and shooting him a quick glance before impaling yourself on him.'
@@ -179,7 +179,7 @@ if $ARGS[0] = 'MartinSexDyn':
 		'Martin is all too happy to finally put an end to the teasing: He flips you on your side again and deftly guides the tip of his cock to your wet hole and enters you, pushing his length deeper and deeper inside you with this first, slow stroke.'
 	end
 	*nl
-	
+
 	if pcs_vag = 0:
 		npc_rel['A216'] -= 2
 		'The trickle of blood from your broken hymen doesn''t escape his sharp eyes, though, and he brings your carnal act to a grinding halt.'
@@ -188,7 +188,7 @@ if $ARGS[0] = 'MartinSexDyn':
 		'"<i>Was</i>," you correct proudly, "I <i>was</i> a virgin. Now I''m a woman." You can feel some pain from having his throbbing <<$dick_girth>> cock where that small membrane used to be, but while neither of you move, it''s bearable.'
 		*nl
 		'You certainly don''t want to stop, though - not halfway into your first time.'
-		
+
 		if ($martinpos = 'cowgirl' or $martinpos = 'rev_cowgirl'):
 			'In fact, before Martin can get any ideas, like pulling out, you go back to impaling your pussy on your first proper cock, although you''re not sure he''s completely over the fact that he took your virginity.'
 		else
@@ -196,23 +196,23 @@ if $ARGS[0] = 'MartinSexDyn':
 		end
 		*nl
 	end
-	
-	if pcs_vag < dick and ($martinpos = 'cowgirl' or $martinpos = 'rev_cowgirl'): 
-		'And it really does feel like you are impaling yourself: You aren''t wide enough to accommodate a dick of Martin''s size just like that and you groan in pain as you take more and more of him inside. Your wetness and arousal make it bearable and you don''t want to stop, but it takes a little while until you have fully adapted to his size.' 
+
+	if pcs_vag < dick and ($martinpos = 'cowgirl' or $martinpos = 'rev_cowgirl'):
+		'And it really does feel like you are impaling yourself: You aren''t wide enough to accommodate a dick of Martin''s size just like that and you groan in pain as you take more and more of him inside. Your wetness and arousal make it bearable and you don''t want to stop, but it takes a little while until you have fully adapted to his size.'
 		*nl
 		'With the pain slowly fading, you start moving up and down. Martin must have picked up on your discomfort, because he gently strokes your leg and doesn''t make any attempt to speed things up until you yourself are ready for it. Soon, sooner than you expected, the pain is... no, not gone, but overtaken by that familiar, wonderful heat.'
 	elseif pcs_vag < dick and ($martinpos = 'doggystyle' or $martinpos = 'missionary' or $martinpos = 'sideways'):
-		'But despite his obvious restraint, there''s no helping the fact that your pussy isn''t wide enough to accommodate a dick of Martin''s size just like that, and you groan in pain as he parts your inner walls. Your wetness and arousal make it bearable and you don''t want him to stop, nor does he seem capable of it, now that he is finally inside you. Still, it takes a little while until you have fully adapted to his size.' 
+		'But despite his obvious restraint, there''s no helping the fact that your pussy isn''t wide enough to accommodate a dick of Martin''s size just like that, and you groan in pain as he parts your inner walls. Your wetness and arousal make it bearable and you don''t want him to stop, nor does he seem capable of it, now that he is finally inside you. Still, it takes a little while until you have fully adapted to his size.'
 		*nl
 		'With the pain slowly fading, you start to relax and focus on the pleasant sensations he is giving you. When you open your eyes - which you had unconsciously screwed shut at the pain - and turn your head to face to him, you see Martin give you a comforting look, and you notice that he had slowed down almost to a stop. You give him a tender smile and move against him to show that you are fine. He picks up the pace again and soon, sooner than you expected, the pain is... no, not gone, but overtaken by that familiar, wonderful heat.'
 	end
-	
-	*nl	
-	if tabletkishot < 1 and pillcon2 < 30000: 
+
+	*nl
+	if tabletkishot < 1 and pillcon2 < 30000:
 		'The thought that you could get pregnant is still present in the back of your head, now that Martin''s dick is deep inside you, but you have long passed the point of no return. <<$OpenInnerThought>>I can always have him pull out,<<$CloseInnerThought>> you think to yourself and allow the thought to fade as you give in to the sensations that flood your senses.'
 	end
-	
-	*nl	
+
+	*nl
 	if $martinpos = 'cowgirl':
 		'Feeling Martin''s <<dick>>cm <<$dick_girth>> cock slowly move inside you as you lift yourself up and fall back down is incredible; the control you have over the situation makes it even more satisfying. You moan softly as you ever so slightly speed up your movements, looking at Martin from under hooded eyes and enjoying the sight of his slightly parted lips, or the intense look with which he focuses on your swaying breasts - he is completely under your spell.'
 	elseif $martinpos = 'rev_cowgirl':
@@ -224,7 +224,7 @@ if $ARGS[0] = 'MartinSexDyn':
 	elseif $martinpos = 'sideways':
 		'Feeling Martin''s <<dick>>cm <<$dick_girth>> cock move inside you as he enters you and withdraws is wonderful. You have little control over the situation, now that everything''s said and done and the barkeeper is balls-deep inside you, and that is exactly what makes you moan so loud. You look up at him and find his eyes moving back and forth between your face, your swaying breasts and ass - you can see him and what he''s doing to you and yet this position makes you feel wonderfully vulnerable and exposed.'
 	end
-	
+
 	*nl
 	$orgasm_txt = 'You only lasted a few minutes, that''s how horny you were. You and Martin haven''t even really had the time to get into a proper rhythm before you feel your orgasm build up and sweep you off your feet. You cum with loud moans, your insides quivering around Martin''s cock as you buck against your lover and desperately try to keep up your movements. But you fail and have to stop after a few seconds because your legs feel like jelly. After a short break in Martin''s arms, you start moving once again, shifting here and there to allow Martin to explore every inch of your now tightened pussy.'
 	if $martinpos = 'cowgirl' or $martinpos = 'rev_cowgirl':
@@ -234,8 +234,8 @@ if $ARGS[0] = 'MartinSexDyn':
 	end
 	$orgasm_txt = ''
 	minut += 3
-	gs 'stat'	
-	
+	gs 'stat'
+
 	if $martinpos = 'rev_cowgirl' or $martinpos = 'doggystyle':
 		if $martinpos = 'doggystyle':
 			act '"Fuck my ass, Martin"':gt 'MartinSex2', 'MartinAnalDyn'
@@ -253,7 +253,7 @@ if $ARGS[0] = 'MartinSexDyn':
 			pic_rand2 = rand(4,5)
 		end
 		if pic_rand = pic_rand2:jump 'pic_loop'
-			
+
 		if $martinpos = 'cowgirl' or $martinpos = 'rev_cowgirl':
 			if $martinpos = 'cowgirl':
 				'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/cowgirl/cowgirl<<pic_rand2>>.jpg"></center>'
@@ -263,15 +263,15 @@ if $ARGS[0] = 'MartinSexDyn':
 			'You are moving ever faster, trying to take Martin''s wonderful cock deeper into your <<$pc_desc[''pussy'']>> pussy, fucking him harder, moaning louder as you go. It may have started off gently but there''s no gentleness left to be found here anymore: You are riding this man in the middle of his bar, giving him a fantastic view of your ' + iif($martinpos='rev_cowgirl','ass','tits') + ' in the same spot some guys talked about their shitty jobs and marital problems a few hours ago.'
 			*nl
 			'It only adds to the excitement of it all to know that this is a public place, even if nobody else is here right now.'
-			
+
 			if exhibitionist_lvl > 1 or exhibitionism['pref'] > 50: 'This idea, and the memories of your previous exhibitionist acts manifest themselves in a small fantasy: You imagine what it would be like if the bar wasn''t empty but bustling with people, what it might be like to fuck the bartender right here in the center, with all of their eyes on you...' & pcs_horny += 10
 			$orgasm_txt = 'And it''s this fantasy that sets you off, causing you to cry out in heat and your <<$pc_desc[''pussy'']>> pussy to quiver around Martin''s cock as you imagine how strangers jerk off to your fucking. As you come down from your high, you feel like a pervert... but that''s not a bad thing, right?'
 			gs 'arousal', 'vaginal', 3, 'exhibitionism'
 			*nl
 			'Martin, who has been relatively passive so far, leaving you in control, shakes you out of your reverie when his hands move to your hips. No doubt he intends to take a little more initiative.'
 			*nl
-			$orgasm_txt = 'Your sense of ' + iif(dominance > 20,'control over','submission to') + ' Martin and the intense feeling of him moving inside your ' + iif(pirsG>0,'pierced ','') + 'pussy drive you ever closer to the edge until you can no longer take it. You cum loudly, shivering all over, your pussy massaging Martin''s cock with its contractions as if it wanted to squeeze the cum out of him. The orgasm lasts for what feels like an eternity, but when it has passed' + iif($martinpos='rev_cowgirl',' and you look back at him','') + ', Martin gives you a smug, self-satisfied look that makes you chuckle. You''re not done with each other yet, though, and before long, you''ve resumed your fast, hard rhythm.'
-			
+			$orgasm_txt = 'Your sense of ' + iif(dominance > 20,'control over','submission to') + ' Martin and the intense feeling of him moving inside your <<$pc_desc[''pussy'']>> pussy drive you ever closer to the edge until you can no longer take it. You cum loudly, shivering all over, your pussy massaging Martin''s cock with its contractions as if it wanted to squeeze the cum out of him. The orgasm lasts for what feels like an eternity, but when it has passed' + iif($martinpos='rev_cowgirl',' and you look back at him','') + ', Martin gives you a smug, self-satisfied look that makes you chuckle. You''re not done with each other yet, though, and before long, you''ve resumed your fast, hard rhythm.'
+
 			!!if pcs_dom > 20:
 				!!'But you are having none of it: You lay your own hands on Martin''s and pull them away again, giving Martin a coquette smile' + iif($martinpos='rev_cowgirl',' over your shoulder','') + ' as you do. You demonstratively lift yourself up, up, until only the tip of his <<$dick_girth>> penis is still inside your '+$pc_desc['pubes']+' pussy, and hold it there. The message is all too clear: You are in charge right now and you intend to keep it that way.'
 				!!*nl
@@ -279,7 +279,7 @@ if $ARGS[0] = 'MartinSexDyn':
 				!!'You comply, slamming down on him, taking his entire length inside once more, evoking a soft groan from your lover. You lift yourself up and, again, slam down in one hard stroke that ' + iif($martinpos='rev_cowgirl','causes your ass to meet Martin''s crotch with an audible slap','bounces your <<$pc_desc[''breast'']>> breasts up and down as well') + '. Again and again, you penetrate yourself on his <<dick>>cm dick like this, speeding up as you go, filling the empty bar with the sounds of a hard fuck, as well as your and Martin''s moans of pleasure.'
 				!!gs 'arousal', 'vaginal', 8, 'dom'
 				!!gs 'stat'
-			
+
 			!!else
 				'And you could have resisted him; surely you could have stayed in control. But the simple fact of the matter was that you didn''t want to. You were on top of him, you had proven to yourself and to him that you could make him do what you want. And now, you <b>want</b> him to take charge of you again.'
 				*nl
@@ -289,26 +289,26 @@ if $ARGS[0] = 'MartinSexDyn':
 				'"Please what?"'
 				'"Please fuck me with your hard cock again. I need it!"'
 				*nl
-				'That was all he wanted to hear. In the blink of an eye, Martin is balls-deep inside you again, his pelvis slamming into your <<$pc_desc[''pussy'']>> hole from below. You cannot move, his strong arms firmly holding you in place, and are helpless to let him fuck you from below.' 
+				'That was all he wanted to hear. In the blink of an eye, Martin is balls-deep inside you again, his pelvis slamming into your <<$pc_desc[''pussy'']>> hole from below. You cannot move, his strong arms firmly holding you in place, and are helpless to let him fuck you from below.'
 				'And you are loving every second of it.'
 				gs 'arousal', 'vaginal', 8, 'sub'
 				gs 'stat'
 			!!end
-		
+
 		elseif $martinpos = 'doggystyle':
 			'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/doggystyle/doggy<<pic_rand2>>.jpg"></center>'
 			'Martin is pounding you from behind like he''s possessed. He may have started off gently but there''s no gentleness left in him: Your lover is fucking you like a whore, right in the middle of his own establishment where only a few hours ago people were talking about their shitty jobs and martial problems.'
 			*nl
 			'It only adds to the excitement of it all to know that this is a public place, even if nobody''s here now.'
-			
+
 			if exhibitionist_lvl > 1 or exhibitionism['pref'] > 50: 'This idea, and the memories of your previous exhibitionist acts manifest themselves in a small fantasy: You imagine what it would be like if the bar wasn''t empty but bustling with people, what it might be like to be fuck by the bartender right here in the center, with all of their eyes on you...' & pcs_horny += 10
 			$orgasm_txt = 'And it''s this fantasy that sets you off, causing you to cry out in heat and your <<$pc_desc[''pussy'']>> pussy to quiver around Martin''s cock as you imagine how strangers jerk off to your fucking. As you come down from your high, you feel like a pervert... but that''s not a bad thing, right?'
 			gs 'arousal', 'vaginal', 3, 'exhibitionism'
 			*nl
 			'Martin was firmly in control so far, but it seems like it''s not enough for him: All of a sudden, you can feel his hand at your neck, grabbing you, forcing you to look at him and increasing both his leverage and sense of power over you.'
 			*nl
-			$orgasm_txt = iif(dominance > 20,'Wresting control from','Submitting to') + ' Martin and the intense feeling of him moving inside your ' + iif(pirsG>0,'pierced ','') + 'pussy drive you ever closer to the edge until you can no longer take it. You cum loudly, shivering all over, your pussy massaging Martin''s cock with its contractions as if it wanted to squeeze the cum out of him as he fucks you. The orgasm lasts for what feels like an eternity and makes your legs feel like jelly, but when it has passed and you look back at him, Martin gives you a smug, self-satisfied look that makes you chuckle. You''re not done with each other yet, though, and before long, you''ve resumed your fast, hard rhythm.'
-			
+			$orgasm_txt = iif(dominance > 20,'Wresting control from','Submitting to') + ' Martin and the intense feeling of him moving inside your <<$pc_desc[''pussy'']>> pussy drive you ever closer to the edge until you can no longer take it. You cum loudly, shivering all over, your pussy massaging Martin''s cock with its contractions as if it wanted to squeeze the cum out of him as he fucks you. The orgasm lasts for what feels like an eternity and makes your legs feel like jelly, but when it has passed and you look back at him, Martin gives you a smug, self-satisfied look that makes you chuckle. You''re not done with each other yet, though, and before long, you''ve resumed your fast, hard rhythm.'
+
 			!!if pcs_dom > 20:
 				!!'But despite how much you''ve enjoyed what he has been doing to you so far, you are still longing for a bit of control yourself. You aren''t the kind of girl who will just roll over and let anybody fuck her however they want - you <b>like</b> being in charge and you want to have a say in how this fuck is going to continue.'
 				!!*nl
@@ -331,22 +331,22 @@ if $ARGS[0] = 'MartinSexDyn':
 				gs 'arousal', 'vaginal', 8, 'sub'
 				gs 'stat'
 			!!end
-		
+
 		elseif $martinpos = 'missionary':
 			'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/missionary/missionary<<pic_rand2>>.jpg"></center>'
 			'Martin is giving your <<$pc_desc[''pubes'']>> pussy a good pounding and what few kisses he gives you are rough and demanding. He may have started off gently but there''s no gentleness left in him: Your lover is fucking you possessively, right in the middle of his establishment where only a few hours ago people were talking about their shitty jobs and martial problems.'
 			*nl
 			'It only adds to the excitement of it all to know that this is a public place, even if nobody''s here now.'
-			
+
 			if exhibitionist_lvl > 1 or exhibitionism['pref'] > 50: 'This idea, and the memories of your previous exhibitionist acts manifest themselves in a small fantasy: You imagine what it would be like if the bar wasn''t empty but bustling with people, what it might be like to be fuck by the bartender right here in the center, with all of their eyes on you...' & pcs_horny += 10
 			$orgasm_txt = 'And it''s this fantasy that sets you off, causing you to cry out in heat and your <<$pc_desc[''pussy'']>> pussy to quiver around Martin''s cock as you imagine how strangers jerk off to your fucking. As you come down from your high, you feel like a pervert... but that''s not a bad thing, right?'
 			gs 'arousal', 'vaginal', 3, 'exhibitionism'
 			*nl
 			'Martin was firmly in control so far, but it seems like it''s not enough to him: All of a sudden, you can feel his hand at your neck, grabbing you, forcing you to look at him and increasing both his leverage and sense of power over you.'
 			*nl
-			$orgasm_txt = iif(dominance > 20,'Wresting control from','Submitting to') + ' Martin and the intense feeling of him moving inside your ' + iif(pirsG>0,'pierced ','') + 'pussy drive you ever closer to the edge until you can no longer take it. You cum loudly, shivering all over, your pussy massaging Martin''s cock with its contractions as if it wanted to squeeze the cum out of him as he fucks you. The orgasm lasts for what feels like an eternity, but when it has passed and you look up at him, Martin gives you a smug, self-satisfied look that makes you chuckle. You''re not done with each other yet, though, and before long, you''ve resumed your fast, hard rhythm.'
-			
-		
+			$orgasm_txt = iif(dominance > 20,'Wresting control from','Submitting to') + ' Martin and the intense feeling of him moving inside your <<$pc_desc[''pussy'']>> pussy drive you ever closer to the edge until you can no longer take it. You cum loudly, shivering all over, your pussy massaging Martin''s cock with its contractions as if it wanted to squeeze the cum out of him as he fucks you. The orgasm lasts for what feels like an eternity, but when it has passed and you look up at him, Martin gives you a smug, self-satisfied look that makes you chuckle. You''re not done with each other yet, though, and before long, you''ve resumed your fast, hard rhythm.'
+
+
 			!!if pcs_dom > 20:
 				!!'But despite how much you''ve enjoyed what he has been doing to you so far, you are still longing for a bit of control yourself. You aren''t the kind of girl who will just roll over and let anybody fuck her however they want - you <b>like</b> being in charge and you want to have a say in how this fuck is going to continue.'
 				!!*nl
@@ -356,7 +356,7 @@ if $ARGS[0] = 'MartinSexDyn':
 				!!'The only difference is that you aren''t just lying down and taking it - you are matching Martin thrust for thrust and giving as hard as you''re getting... not that either of you is complaining.'
 				!!gs 'arousal', 'vaginal', 8, 'dom'
 				!!gs 'stat'
-			
+
 			!!else
 				'Sure, you could have resisted him, but... you choosing this position had already been a submission in and of itself. You <b>wanted</b> him to take charge of you, to fuck you any way he wanted, treat you as he pleased. And the kinky side of you was curious about where he was going with this.'
 				*nl
@@ -374,21 +374,21 @@ if $ARGS[0] = 'MartinSexDyn':
 				gs 'arousal', 'vaginal', 8, 'sub'
 				gs 'stat'
 			!end
-			
+
 		elseif $martinpos = 'sideways':
 			'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/sideways/sideways<<pic_rand2>>.jpg"></center>'
-			'Martin has been slowly picking up the pace but he is clearly getting frustrated. You don''t know if it''s the position, personal preference or something else entirely, but when he pulls you to your feet, these questions are quickly swept aside:' 
+			'Martin has been slowly picking up the pace but he is clearly getting frustrated. You don''t know if it''s the position, personal preference or something else entirely, but when he pulls you to your feet, these questions are quickly swept aside:'
 			'In a few swift motions, he has lifted your <<$pc_desc[''legs'']>> leg and entered you again from behind, fucking you sideways... only standing up. All this may have started off gently but there''s no gentleness left in him: Martin is fucking you possessively, right in the middle of his establishment where only a few hours ago, people were talking about their shitty jobs and martial problems.'
 			*nl
 			'It only adds to the excitement of it all to know that this is a public place, even if nobody''s here now.'
-			
+
 			if exhibitionist_lvl > 1 or exhibitionism['pref'] > 50: 'This idea, and the memories of your previous exhibitionist acts manifest themselves in a small fantasy: You imagine what it would be like if the bar wasn''t empty but bustling with people, what it might be like to be fuck by the bartender right here in the center, with all of their eyes on you...' & pcs_horny += 10
 			$orgasm_txt = 'And it''s this fantasy that sets you off, causing you to cry out in heat and your <<$pc_desc[''pussy'']>> pussy to quiver around Martin''s cock as you imagine how strangers jerk off to your fucking. As you come down from your high, you feel like a pervert... but that''s not a bad thing, right?'
 			gs 'arousal', 'vaginal', 3, 'exhibitionism'
 			*nl
 			'Martin was firmly in control so far, and his switch of position only served to emphasize that, but it seems like it''s not enough to him: All of a sudden, you can feel one of his hands leave your hips and grab your neck, forcing you to look back at him and increasing both his leverage and sense of power over you.'
-			$orgasm_txt = iif(dominance > 20,'Wresting control from','Submitting to') + ' Martin and the intense feeling of him moving inside your ' + iif(pirsG>0,'pierced ','') + 'pussy drive you ever closer to the edge until you can no longer take it. You cum loudly, shivering all over, your pussy massaging Martin''s cock with its contractions as if it wanted to squeeze the cum out of him as he fucks you. The orgasm lasts for what feels like an eternity and your legs feel so weak that Martin has to support you, but when it has passed and you look back at him, Martin gives you a smug, self-satisfied look that makes you chuckle. You''re not done with each other yet, though, and before long, you''ve resumed your fast, hard rhythm.'
-			
+			$orgasm_txt = iif(dominance > 20,'Wresting control from','Submitting to') + ' Martin and the intense feeling of him moving inside your <<$pc_desc[''pussy'']>> pussy drive you ever closer to the edge until you can no longer take it. You cum loudly, shivering all over, your pussy massaging Martin''s cock with its contractions as if it wanted to squeeze the cum out of him as he fucks you. The orgasm lasts for what feels like an eternity and your legs feel so weak that Martin has to support you, but when it has passed and you look back at him, Martin gives you a smug, self-satisfied look that makes you chuckle. You''re not done with each other yet, though, and before long, you''ve resumed your fast, hard rhythm.'
+
 			!!if pcs_dom > 20:
 				!!'But despite how much you''ve enjoyed what he has been doing to you so far, you are still longing for a bit of control yourself. You''ve given him free reign over you so far, but you don''t want to anymore - it''s time to take back the initiative.'
 				!!*nl
@@ -414,13 +414,13 @@ if $ARGS[0] = 'MartinSexDyn':
 				gs 'stat'
 			!end
 		end
-		
+
 		*nl
 		'Unsurprisingly, Martin cannot withstand this kind of pleasure for too long: After a few minutes of this, he groans your name and you know that he is about to cum.'
 		gs 'stat'
 		$orgasm_txt = ''
 		killvar 'pic_rand2'
-	
+
 		act 'Let him cum in your mouth':gt 'MartinSex2', 'MartinCumshot_Mouth'
 		act 'Let him cum on your face':gt 'MartinSex2', 'MartinCumshot_Face'
 		act 'Let him cum on your tits':gt 'MartinSex2', 'MartinCumshot_Tits'
@@ -434,7 +434,7 @@ if $ARGS[0] = 'MartinSexDyn':
 				else
 					gs 'cum_call', '', $boy, 1, 3
 				end
-			
+
 			else
 				if $martinpos = 'cowgirl':
 					'<center><video autoplay loop src="images/locations/city/industrial/bar/sex/bar/martin/cumshot/cum_cowgirl.mp4"></center>'
@@ -448,41 +448,41 @@ if $ARGS[0] = 'MartinSexDyn':
 					'<center><video autoplay loop src="images/locations/city/industrial/bar/sex/bar/martin/cumshot/cum_sideways.mp4"></center>'
 				end
 				'But you make no attempts to pull him out of you and after a few more moments, you feel Martin tense and his penis grow inside you even more; two or three seconds later, he groans and cums, filling your pussy with hot sperm.'
-				gs 'cum_call', '', $boy, 1	
+				gs 'cum_call', '', $boy, 1
 			end
 			*nl
 			gs 'stat'
-			
+
 			if $martinpos = 'cowgirl':
 				'"Did you enjoy yourself?" You ask coquettishly, leaning forward onto his chest.'
 				'Martin smiles up at you, and pulls you down to give you a kiss. "I think you know the answer."'
-				'"Perhaps..." You grin and lift yourself off, feeling his softening <<dick>>cm <<$dick_girth>> cock slide out of your <<$pc_desc[''pussy'']>> pussy.' 
-			
+				'"Perhaps..." You grin and lift yourself off, feeling his softening <<dick>>cm <<$dick_girth>> cock slide out of your <<$pc_desc[''pussy'']>> pussy.'
+
 			elseif $martinpos = 'rev_cowgil':
 				'"Did you enjoy yourself?" You ask coquettishly, wiggling your butt as you look back over your shoulder.'
 				'Martin smiles up at you, and gives your ass a resounding smack. "I think you know the answer."'
 				'"Perhaps..." You grin and lift yourself off, feeling his softening <<dick>>cm <<$dick_girth>> cock slide out of your <<$pc_desc[''pussy'']>> pussy.'
-			
+
 			else
 				if $martinpos = 'doggystyle':
 					'Martin is still catching his breath when you look at him over your shoulder and grin when you see the expression of bliss on his face.'
 					*nl
 					'"<<$pcs_firstname>>, you are something else." Martin chuckles and pats your ass.'
 					'"So, I guess it was good for you."'
-				
+
 				elseif $martinpos = 'missionary':
 					'You pull Martin in for a tender kiss, enjoying the afterglow of all the sex and orgasming.'
 					*nl
 					'"<<$pcs_firstname>>, you are something else." Martin chuckles and gives you another kiss.'
 					'"So, I guess it was good for you."'
-				
+
 				elseif $martinpos = 'sideways':
 					'Martin lets go of your leg and both your feet stand firmly on the ground again. You feel sore, but if every workout was like this, you wouldn''t mind feeling sore every night.'
 					*nl
 					'"<<$pcs_firstname>>, you are something else." Martin chuckles and pats your ass.'
 					'"So, I guess it was good for you."'
 				end
-				
+
 				!!if pcs_dom > 20:
 					!!'"Yes, I''ll admit... you knew what you were doing."'
 					!!'"You''re welcome," you tease.'
@@ -492,27 +492,27 @@ if $ARGS[0] = 'MartinSexDyn':
 				!!end
 			end
 			*nl
-			
+
 			if MartinPrezik = 1:
 				if sexcontra = 3:
 					'Martin pulls the condom off and ties it together at the end. It seems to have done its job admirably.'
-				elseif sexcontra = 4 and preziktype = 0 and tabletkishot < 1 and pillcon2 < 30000: 
+				elseif sexcontra = 4 and preziktype = 0 and tabletkishot < 1 and pillcon2 < 30000:
 					'"Shit, I think the condom broke," Martin curses under his breath. A shiver runs through you as you realize that, despite your precautions, you could just have been impregnated after all.'
-				elseif sexcontra = 4 and preziktype = 0: 
-					'"Shit, I think the condom broke," Martin curses under his breath.' 
+				elseif sexcontra = 4 and preziktype = 0:
+					'"Shit, I think the condom broke," Martin curses under his breath.'
 					'"Don''t worry," you say with a comforting smile, "I''m on the pill."'
-				elseif sexcontra = 5 and preziktype = 0 and tabletkishot < 1 and pillcon2 < 30000: 
+				elseif sexcontra = 5 and preziktype = 0 and tabletkishot < 1 and pillcon2 < 30000:
 					'"Shit, I think the condom slipped off," Martin curses under his breath. A shiver runs through you as you realize that you have an used condom stuck inside you and could just have been impregnated after all.'
-				elseif sexcontra = 5 and preziktype = 0: 
-					'"Shit, I think the condom slipped off," Martin curses under his breath.' 
+				elseif sexcontra = 5 and preziktype = 0:
+					'"Shit, I think the condom slipped off," Martin curses under his breath.'
 					'"Don''t worry," you say with a comforting smile, "I''m on the pill." <<$OpenInnerThought>>Still need to get that condom out of my vagina though,<<$CloseInnerThought>> you think to yourself.'
 				elseif sexcontra = 7:
-					'"Shit, I think the condom broke," Martin curses under his breath.' 
+					'"Shit, I think the condom broke," Martin curses under his breath.'
 					'"Don''t worry," you say with a comforting smile, "I''m on the pill." It was a blatant lie, of course - you poked those holes into the condom and no hormone would get in the way of that sperm.'
 					*nl
 					'Whether you''d actually get pregnant, though, was a different question entirely.'
 				end
-			
+
 			else
 				if $martinpos = 'cowgirl' or $martinpos = 'rev_cowgirl':
 					'You shiver when you feel the trickle of sperm dripping down on Martin and running down your thigh. He really filled you up good.'
@@ -522,13 +522,13 @@ if $ARGS[0] = 'MartinSexDyn':
 					'You look ' + iif($martinpos='missionary','up at him','back at him') + ' and roll your eyes in mock-exasperation. "What is it with men and your fascination with your own sperm?"'
 					'"Just admiring my work, corazón, that''s all," Martin replies and ' + iif($martinpos='missionary','gives you a kiss that silences any further response.','gives your butt a resounding slap.')
 				end
-				
-				if tabletkishot < 1 and pillcon2 < 30000: 
+
+				if tabletkishot < 1 and pillcon2 < 30000:
 					*nl
 					'Odds are that you just got yourself pregnant, but your brain is still too preoccupied with the ebbing ripples of the pleasure that you experienced until a few short moments ago to really register what consequences this could have.'
 				end
 			end
-			
+
 			act 'Get cleaned up':
 				*clr & cla
 				'<center><video autoplay loop src="images/locations/city/industrial/bar/gettingdressed.mp4"></center>'
@@ -544,7 +544,7 @@ if $ARGS[0] = 'MartinSexDyn':
 				gs 'arousal', 'end'
 				killvar 'MartinPrezik'
 				gs 'stat'
-				
+
 				act 'Leave the bar':gt 'city_industrial'
 			end
 		end
@@ -556,20 +556,20 @@ if $ARGS[0] = 'MartinAnalDyn':
 	gs 'boyStat', 'A216'
 	pic_rand = rand(1,3)
 	'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/anal/anal_fore<<pic_rand>>.jpg"></center>'
-	
+
 	if cycle = 0 or MartinPussyLick = 1:
 		if cycle = 0:
-			'Since you are on your period, regular sex would be a pretty messy option, so you do what any good girl who''s not an anal virgin would for her lover:' 
+			'Since you are on your period, regular sex would be a pretty messy option, so you do what any good girl who''s not an anal virgin would for her lover:'
 			'You give Martin an innocent smile and say, "I''m on my period right now. Would you like to put your hard cock in my ass instead?"'
 		else
 			'Martin has taken such good care of your pussy that you feel like rewarding him... or are you really just rewarding yourself with different experience? No matter, what you tell Martin remains the same:'
 			'You give Martin an innocent smile and say, "I think you deserve a special treat tonight. Would you like to put your hard cock in my ass?"'
 		end
 		*nl
-		'"Yes, a thousand times yes," he replies, smiling.' 
+		'"Yes, a thousand times yes," he replies, smiling.'
 		'Any other day, you''d have him to work up to it, fuck your pussy first, let him ''earn'' anal, but you really want to feel him in your puckered hole right now.'
 		*nl
-		
+
 		if $clothingworntype ! 'nude':
 			'Giving Martin a saucy look, you quickly strip down, completely exposing yourself to the bartender. Now that you''re dressed for the occasion, nothing''s standing between you and a night to remember.'
 			gs 'clothing', 'strip_all'
@@ -577,46 +577,46 @@ if $ARGS[0] = 'MartinAnalDyn':
 			'And your little show earlier not only removed all possible obstacles but got you and your lover all hot and bothered.'
 		end
 		*nl
-		
+
 		if $martinpos = 'rev_cowgirl':
 			'You tell Martin to lay down and get on top of him, facing away from him, his dick tantalizingly close to your nether holes.'
 		else
 			'You bend over, wiggling your ass invitingly and spreading your cheeks a little to give Martin a good look at the <<$pcs_ass>> hole he is about to fill.'
 		end
-	
+
 	elseif MartinSurpAnal = 1:
 		'Your change of heart is a little sudden, no doubt, but when you tell Martin that you want him to fuck your ass instead, he doesn''t look unhappy about it. After all, what man would refuse an offer like that?'
 	else
 		'With your <<$pc_desc[''pussy'']>> pussy thoroughly plowed, you moan: "I want your hard cock in my ass right now!"'
 		'"You and me both, corazón," Martin murmurs as he pulls out.'
 	end
-	
+
 	if $martinpos = 'rev_cowgirl':
 		'You take Martin''s cock and gently slap it against your ass cheeks a couple of times, enjoying how hard Martin is at the prospect of penetrating your ass.'
 	else
 		'Martin rubs his cock against your ass, obviously liking what he sees. He gives your ass a soft smack, eliciting a surprised yelp from you.'
 	end
 	*nl
-	
+
 	if mc_inventory['lubricant'] > 0:
 		if $martinpos = 'rev_cowgirl':
-			'You grab the lube from your bag and put a generous amount on your puckered hole, Martin''s finger and your own hand. Your hand quickly finds Martin''s penis and you immediately start coating it in lubricant.' 
+			'You grab the lube from your bag and put a generous amount on your puckered hole, Martin''s finger and your own hand. Your hand quickly finds Martin''s penis and you immediately start coating it in lubricant.'
 			*nl
-			'Martin is more teasing, first rubbing against your asshole for a while before pushing inside. You don''t know if it''s his experience or the way his finger or, after a minute, finger<b>s</b> feel, but you find your free hand wandering down to your pussy and stroking it absentmindedly, enjoying the sensations from your ass.' 
+			'Martin is more teasing, first rubbing against your asshole for a while before pushing inside. You don''t know if it''s his experience or the way his finger or, after a minute, finger<b>s</b> feel, but you find your free hand wandering down to your pussy and stroking it absentmindedly, enjoying the sensations from your ass.'
 			'If you were wet before, you are sopping wet now, quivering with excitement and more than ready to take a dick up your ass, or so you hope.'
 			*nl
 			'It just so happens that the <<$dick_girth>> dick you''ve been stroking is ready for penetration.'
 		else
-			'You grab the lube from your bag and put a generous amount on your puckered hole, Martin''s finger and your own hand. Your hand quickly finds Martin''s penis and you immediately start coating it in lubricant. Martin is more teasing, first rubbing against your asshole for a while before pushing inside.' 
+			'You grab the lube from your bag and put a generous amount on your puckered hole, Martin''s finger and your own hand. Your hand quickly finds Martin''s penis and you immediately start coating it in lubricant. Martin is more teasing, first rubbing against your asshole for a while before pushing inside.'
 			*nl
 			'After two or three minutes, you are content with how slick Martin''s dick is, but he is still driving his finger, now joined by a second one, in and out of your anus, and you are enjoying the sensation. You don''t even notice how one of your hands wanders down between your legs and starts rubbing your clit. You can hear yourself moan, and you''re getting sopping wet...'
 			*nl
 			'Your mind is still trying to catch up with how a little lubrication turned into foreplay while Martin seems pleased with himself, though. "You like it when I play with your ass, huh?"'
 			'Suffice to say, your ass is ready for anything... or so you hope.'
 		end
-			
+
 	elseif pcs_ass >= dick:
-		'That''s when you realize that neither of you have any lube handy.' 
+		'That''s when you realize that neither of you have any lube handy.'
 		'But honestly, you''re not too worried. Your asshole has already seen a bit of dick (rubber or otherwise) and while Martin isn''t exactly small and might not fit perfectly, he is not going to break you by any <i>stretch</i> of imagination.'
 		*nl
 		'Feeling almost like a pornstar, you put a little spit on your fingers and rub it around your asshole and the tip of his dick.'
@@ -624,17 +624,17 @@ if $ARGS[0] = 'MartinAnalDyn':
 		'His free hand isn''t idle, though, reaching around to rub your tits and stroke your pussy as he prepares your asshole.'
 		*nl
 		'You are definitely ready for him now.'
-			
+
 	else
-		'That''s when you realize that neither of you have any lube handy.' 
+		'That''s when you realize that neither of you have any lube handy.'
 		'That alone might not have been a problem, but even through the rose-tinted glasses of horniness, you realize that his dick may well be too big for your poor butthole.'
 		*nl
-		'But you don''t let that frighten you and try to lubricate your ass and the tip of his <<$dick_girth>> cock with a little bit of spit.' 
+		'But you don''t let that frighten you and try to lubricate your ass and the tip of his <<$dick_girth>> cock with a little bit of spit.'
 		'Martin seems to notice that you''re a little worried because he not only does his spit-covered finger take your finger''s place at and, after a few minutes of careful prodding, inside your rear entrance, but he also reaches around you and strokes your pussy to help you relax.'
 		*nl
 		'You are enjoying what he''s doing so much that it takes a minute or so before you remember to stroke the dick in your hand, getting him nice and hard for what you are about to do.'
 	end
-		
+
 	*nl
 	$orgasm_txt = 'But that will have to wait another minute or two, because Martin''s fingers seem to know exactly which way they have to bend inside your ass, touching you in all the right places, and he''s not letting up. It certainly wasn''t your intention to cum during foreplay but your intentions mean very little now: Your anal orgasm hits like a truck and while it lasts, your ass clenches so hard around Martin''s fingers that you could swear you heard him sigh with relief when you finally release them.'
 	if mc_inventory['lubricant'] > 0:
@@ -651,7 +651,7 @@ if $ARGS[0] = 'MartinAnalDyn':
 	end
 	gs 'stat'
 	$orgasm_txt = ''
-	
+
 	act 'Time for anal':
 		*clr & cla
 		killvar 'MartinPussyLick'
@@ -662,12 +662,12 @@ if $ARGS[0] = 'MartinAnalDyn':
 		else
 			'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/anal/anal_doggy<<pic_rand>>.jpg"></center>'
 		end
-		
-		if $martinpos = 'rev_cowgirl':	
+
+		if $martinpos = 'rev_cowgirl':
 			if anal_slip > 0:
 				'With lubrication taken care off, you lower yourself onto Martin''s dick, teasingly rubbing and tapping its tip against your rosebud a few times before straightening your back and pushing down.'
 				*nl
-				
+
 				if pcs_ass < dick:
 					'It''s still a tight fit though, lubed up or not, so once the tip of his cock has made it past your sphincter, you move more sideways than up and down at first. Sure, you could have gone full pornstar and tried to take his dick inside your ass in one fell swoop, but odds are that would have hurt. A lot.'
 					*nl
@@ -683,14 +683,14 @@ if $ARGS[0] = 'MartinAnalDyn':
 					*nl
 					'<<$OpenInnerThought>>You ain''t seen nothing yet<<$CloseInnerThought>>, you think to yourself and lift yourself up. This time, however, you push down faster. Up again and, encouraged by the lack of pain the first time around, you slam your ass down, slapping against Martin''s hips as you take him balls-deep again.'
 				end
-		
-			elseif pcs_ass >= dick:	
+
+			elseif pcs_ass >= dick:
 				'With your ass as prepared as it''ll ever be tonight, you lower yourself onto his cock. You have to move carefully, given the lack of proper lubrication, but given your anal experience, his size really is a non-issue. All it takes is a little bit of time and moaning until his cock is completely inside your ass, your cheeks resting against Martin''s pelvis.'
-				*nl			
+				*nl
 				'You feel incredibly full, and a single look over the shoulder confirms that Martin is no less pleased: He is looking at where you are connected, spell-bound by the sight of his cock hilted in your ass.'
 				*nl
 				'<<$OpenInnerThought>>You ain''t seen nothing yet<<$CloseInnerThought>>, you think to yourself and lift yourself up. This time, however, you push down faster. Up again and, encouraged by the lack of pain the first time around, you slam your ass down, slapping against Martin''s hips as you take him balls-deep again.'
-		
+
 			else
 				gt 'MartinSex2', 'PainalDyn'
 			end
@@ -701,14 +701,14 @@ if $ARGS[0] = 'MartinAnalDyn':
 			gs 'arousal', 'anal', 5, 'dom'
 			gs 'stat'
 			$orgasm_txt = ''
-		
+
 		else
 			if anal_slip > 0:
 				'You are definitely done with foreplay and wiggle your ass invitingly as you look back at your lover. Martin looks like he wants to make a remark about your impatience, but you are having none of it.'
 				'"Shut up and fuck my ass already," you say, huskily, and spread your ass cheeks for him.'
 				*nl
 				'He knows better than to leave a lady waiting. Martin pulls his fingers out and, with lubrication taken care off, rubs his cock up and down your slit and asshole a few times, a final tease to emphasize his position behind and over you, before he starts pushing forward.'
-				
+
 				if pcs_ass < dick:
 					'It''s a tight fit though, lubed up or not, and Martin seems very concerned with not hurting you, so once the tip of his cock has made it past your sphincter, his movements slow down to a crawl, giving you time to adjust to the foreign object in your ass.'
 					'Grateful but also a little impatient as you are, you ignore the pain of being stretched out like that as best you can and ever so gently push back against Martin, meeting his tentative thrusts, inching along his cock with your ass a little farther each time. The sensation of him sliding in and out more than makes up for the pain, and knowing that he can do what he wants with you, that he could stop being gentle and start punishing your ass at a moment''s notice to pleasure himself with your ass, really turns you on and causes you to coo softly as you go.'
@@ -721,7 +721,7 @@ if $ARGS[0] = 'MartinAnalDyn':
 					*nl
 					'After a start like that, you know that the time for gentleness has passed. Indeed, Martin pulls back, but this time, he meets your ass with a resounding smack and a soft moan escapes you. Encouraged by these sounds, Martin withdraws again and hilts himself into your ass again, his balls smacking against your pussy as you meet him halfway.'
 				end
-			
+
 			elseif pcs_ass >= dick:
 				'As much as you enjoyed the foreplay, you are about ready to move on to the main course. With your ass as ready as it''ll ever be tonight, you tell Martin to stop teasing you and fill your hole.'
 				'Who is he to deny a lady''s request?'
@@ -730,7 +730,7 @@ if $ARGS[0] = 'MartinAnalDyn':
 				'Your ass feels incredibly full, and a single look over the shoulder confirms that Martin is no less pleased: He is looking at where you are connected, spell-bound by the sight of his cock deep inside your ass and probably no less amazed that you took him inside in a single, slow thrust.'
 				*nl
 				'After a start like that, you know that the time for gentleness has passed. Indeed, Martin pulls back, but this time, he meets your ass with a resounding smack and a soft moan escapes you. Encouraged by these sounds, Martin withdraws again and hilts himself into your ass again, his balls smacking against your pussy as you meet him halfway.'
-			
+
 			else
 				gt 'MartinSex2', 'PainalDyn'
 			end
@@ -742,11 +742,11 @@ if $ARGS[0] = 'MartinAnalDyn':
 			gs 'stat'
 			$orgasm_txt = ''
 		end
-		
+
 		act 'Continue':
 			*clr & cla
 			$orgasm_txt = iif(dominance > 20,'Wresting control from','Submitting to') + ' Martin and the intense feeling of him filling your ass drive you ever closer to the edge until you can no longer take it. You cum loudly, shivering all over' + iif(exhibitionist_lvl > 1 or exhibitionism['pref']>50,' as your mind basks in your exhibitionist fantasy','') + ', your ass clenching around and massaging Martin''s cock with its contractions as if it wanted to squeeze the cum out of him as' + iif($martinpos='doggystyle',' he fucks you',' you fuck him') + '. Your anal orgasm lasts for what feels like an eternity, but when it has passed and you look back at him, Martin gives you a smug, self-satisfied look that makes you chuckle. You''re not done with each other yet, though, and before long, you''ve resumed your fast, hard rhythm.'
-			
+
 			if $martinpos = 'rev_cowgirl':
 				'<center><video autoplay loop src="images/locations/city/industrial/bar/sex/bar/martin/anal/anal_rev.mp4"></center>'
 				*nl
@@ -759,7 +759,7 @@ if $ARGS[0] = 'MartinAnalDyn':
 					!!'You are having none of it, though: <i>You</i> decided that you wanted him in your ass. <i>You</i> decided that you were going to fuck him, not the other way around. Here, today, you have no intention of letting him take control.'
 					!!'Gently, yet resolutely, you remove his hands from your sides and move them up to your breasts so he can play with your tits - a consolation price, but certainly not one he can complain about. You are going to give Martin the fuck of a lifetime and show him what a woman can do with her ass.'
 					!!*nl
-					!!'With your roles reestablished, you change your angle slightly for more leverage and increase your pace, really slamming down now, almost drowning the sound of your own moaning as you go - you love this: Love this position, the sense of power, the hard dick in your <<$pc_desc['anus']>> ass, his fingers brushing against your ' + iif(pirsF>0,'pierced ','') + 'nipples, and doing all that right here in the middle of an empty bar...' 
+					!!'With your roles reestablished, you change your angle slightly for more leverage and increase your pace, really slamming down now, almost drowning the sound of your own moaning as you go - you love this: Love this position, the sense of power, the hard dick in your <<$pc_desc['anus']>> ass, his fingers brushing against your <<$pc_desc[''nipples'']>> nipples, and doing all that right here in the middle of an empty bar...'
 !!else
 					'You originally decided on this position because you wanted to be in control, wanted to be on top... but you cannot say that you really mind him taking a more active role in this.'
 					'Sensing no resistance, Martin tightens his grip and starts moving, pounding up into your <<$pc_desc[''anus'']>> ass, his balls slapping against your pussy lips every time. You can do little more than hold on for dear life, moving to meet him a little bit and moaning like a slut.'
@@ -770,7 +770,7 @@ if $ARGS[0] = 'MartinAnalDyn':
 				if exhibitionist_lvl > 1 or exhibitionism['pref'] > 50: 'This final thought, and the memories of your previous exhibitionist acts manifest themselves in a small fantasy: You imagine what it would be like if the bar wasn''t empty but bustling with people, what it might be like to take the bartender''s cock up your ass right here in the center, with all of their eyes on you...' & pcs_horny += 10
 				*nl
 				gs 'arousal', 'anal', 10
-			
+
 			else
 				'<center><video autoplay loop src="images/locations/city/industrial/bar/sex/bar/martin/anal/anal_doggy.mp4"></center>'
 				*nl
@@ -800,7 +800,7 @@ if $ARGS[0] = 'MartinAnalDyn':
 			'But nobody, not even your Latin lover, can resist the tightness of your ass forever, especially not when you two are fucking like rabbits, and when you sense a change in his movements, you know that he''s very close to coming.'
 			gs 'stat'
 			$orgasm_txt = ''
-		
+
 			act 'Let him cum in your mouth':gt 'MartinSex2', 'MartinCumshot_Mouth'
 			act 'Let him cum on your face':gt 'MartinSex2', 'MartinCumshot_Face'
 			act 'Let him cum on your tits':gt 'MartinSex2', 'MartinCumshot_Tits'
@@ -815,7 +815,7 @@ if $ARGS[0] = 'MartinAnalDyn':
 				gs 'arousal', 'anal', 1
 				$orgasm_txt = ''
 				gs 'stat'
-				
+
 				act 'Get cleaned up':gt 'MartinSex2', 'MartinCleanup'
 			end
 		end
@@ -832,7 +832,7 @@ if $ARGS[0] = 'PainalDyn':
 	'You could probably force it inside, but without lube, that''s bound to be painful...'
 	'Maybe you could finish Martin off with your mouth instead, if you''re not feeling too horny or adventurous anymore tonight.'
 	'Or... well, maybe you don''t want to continue at all?'
-			
+
 	act 'Force his dick inside your ass':
 		*clr & cla
 		'<center><video autoplay loop src="images/locations/city/industrial/bar/sex/bar/martin/anal/painal2.mp4"></center>'
@@ -840,11 +840,11 @@ if $ARGS[0] = 'PainalDyn':
 			'No, you don''t want to quit, not now. Maybe it''s because of the position you''re in, just a bad angle for penetration, right? You climb off Martin and bend over in front of him. When you look back at him to give him an inviting look, you do feel a little intimidated by his size, though...'
 			'Maybe this wasn''t such a good idea after all?'
 			*nl
-		end		
+		end
 		iif($martinpos='rev_cowgirl','But f','F') + 'eeling both stubborn and horny, you think <<$OpenInnerThought>>fuck it, I can do this<<$CloseInnerThought>>, literally, anally.'
 		'Trying to help move things along with a little more spit, you push against Martin''s cock once more, ignoring the unpleasant sensations that go with it. You succeed, too: His cock slips inside your asshole.'
 		*nl
-		
+
 		if maso['pref'] >= 60:
 			'The only problem is that your butthole feels like somebody has given it the sandpaper treatment. It genuinely hurts and itches, but it''s the pain, of all things, that makes you want to continue.'
 			*nl
@@ -859,7 +859,7 @@ if $ARGS[0] = 'PainalDyn':
 			$orgasm_txt = 'no'
 			gs 'arousal', 'anal', 3, 'maso'
 			gs 'stat'
-			
+
 			act 'Continue':
 				*clr & cla
 				'<center><video autoplay loop src="images/locations/city/industrial/bar/sex/bar/martin/anal/painal3.mp4"></center>'
@@ -868,7 +868,7 @@ if $ARGS[0] = 'PainalDyn':
 				'Your lover starts moving on his own. At first, he is gentle, careful, only adding a tiny bit of extra sensation to your mutual experience, but with ever stroke, he loses his inhibitions and turns more and more into an animal, possessed by the need to destroy your ass and fill it with cum.'
 				'But he''s not being inconsiderate: As soon as his pace quickens, he reaches around to your pussy, rubbing your clit as he drills your <<$pc_desc[''anus'']>> asshole, adding a more familiar note of lust to the sharp pain from your butt.'
 				*nl
-				'The conflicting sensations rack you, hurting and arousing and bewildering all at once.' 
+				'The conflicting sensations rack you, hurting and arousing and bewildering all at once.'
 				'You cannot tell how long this maelstrom tosses to and fro, the pain getting stronger the longer you keep going. All you know is that, eventually, Martin hammers his cock into your ass with abandon and finally, loudly, fills your bowels with his sperm.'
 				*nl
 				$orgasm_txt = 'Even though you were enjoying the pain, you didn''t think you would actually orgasm. But the feeling of Martin''s hot cum in your ass seems to flip a switch inside you, setting all the nerves in your ass on edge and flooding your brain with pleasure. You cum, your yelps of pain mixing with moans of pleasure as your mind goes blank.'
@@ -878,7 +878,7 @@ if $ARGS[0] = 'PainalDyn':
 				$orgasm_txt = ''
 				minut -= 5
 				gs 'stat'
-				
+
 				act 'Get cleaned up':
 					*clr & cla
 					'<center><video autoplay loop src="images/locations/city/industrial/bar/gettingdressed.mp4"></center>'
@@ -893,17 +893,17 @@ if $ARGS[0] = 'PainalDyn':
 					gs 'clothing', 'wear_last_worn'
 					gs 'arousal', 'end'
 					gs 'stat'
-					
+
 					act 'Leave the bar': gt 'city_industrial'
 				end
 			end
-			
+
 		else
 			'The only problem is that your butthole feels like somebody has given it the sandpaper treatment. It genuinely hurts and itches, and even though you really wanted to have anal sex with Martin a minute, you are not feeling in a super sexy mood anymore.'
 			*nl
 			'You are slightly startled when you feel Martin''s hand on your shoulder. You realize only now that you were muttering "Ow" under your breath over and over again.'
 			'You give your lover an awkward look, but he doesn''t say anything. He moves back slightly, withdrawing from your ass, and hugs you.'
-			'His questions - "Do you need anything?", "Does it hurt much?" et cetera - only make you feel more awkward, but his genuine worry is endearing.' 
+			'His questions - "Do you need anything?", "Does it hurt much?" et cetera - only make you feel more awkward, but his genuine worry is endearing.'
 			*nl
 			'After a few minutes, you say: "I''m sorry I killed the mood. I could take care of you though."'
 			'But he just shakes his head. "Don''t worry about me, mi amor. I''m fine. Let''s get you cleaned, shall we?"'
@@ -912,13 +912,13 @@ if $ARGS[0] = 'PainalDyn':
 			minut += 4
 			gs 'pain', 2, 'asshole', 'tear'
 			pcs_horny -= 30
-					
+
 			act 'Get cleaned up':gt 'MartinSex2', 'MartinCleanup'
 		end
 	end
-	
+
 	act 'Get him off with your mouth':MartinSexStop = 1 & gt 'MartinSex3', 'MartinBlowjob'
-			
+
 	act 'Stop and get dressed':
 		*clr & cla
 		'<center><video autoplay loop src="images/locations/city/industrial/bar/gettingdressed.mp4"></center>'
@@ -937,9 +937,9 @@ if $ARGS[0] = 'PainalDyn':
 		gs 'clothing', 'wear_last_worn'
 		gs 'arousal', 'end'
 		gs 'stat'
-					
+
 		act 'Leave the bar': gt 'city_industrial'
-	end	
+	end
 end
 
 if $ARGS[0] = 'MartinCumshot_Mouth':
@@ -956,7 +956,7 @@ if $ARGS[0] = 'MartinCumshot_Mouth':
 	$orgasm_txt = ''
 	pcs_energy += 5
 	gs 'cum_call', 'mouth', $boy, 1
-	
+
 	act 'Get cleaned up':gt 'MartinSex2', 'MartinCleanup'
 end
 
@@ -964,16 +964,16 @@ if $ARGS[0] = 'MartinCumshot_Face':
 	*clr & cla
 	gs 'boyStat', 'A216'
 	'<center><video autoplay loop src="images/locations/city/industrial/bar/sex/bar/martin/cumshot/cum_facial.mp4"></center>'
-	
+
 	!Variation for pic and text sticking out your tongue for the cumshot
 	if $martinpos ! 'MartinBlowjob_dressed' or $martinpos ! 'MartinBlowjob_undressed': 'You quickly move off Martin''s cock and get on your knees in front of him, taking his dick into your mouth and savoring the taste of yourself on your man as you help him finish.'
-	'He pulls out, about ready for the moneyshot.' 
+	'He pulls out, about ready for the moneyshot.'
 	*nl
 	'For a moment, you think about saying something dirty, like asking him to cum all over your face, but by the time this thought has manifested, Martin has already complied with it, shooting his hot sperm all over your cheek and forehead. You flinch a little, screwing your eyes shut as you feel his spurt hit you right at the corner of one of them, but you are acutely aware of how hot it feels, literally and figuratively, to have Martin''s sperm run down your face.'
 	*nl
 	'It takes a moment or three until Martin stops painting your face white, but when you tentatively open your eyes, you are met with a smile of self-satisfaction and adoration.'
 	gs 'cum_call', 'face', $boy, 1
-	
+
 	act 'Get cleaned up':gt 'MartinSex2', 'MartinCleanup'
 end
 
@@ -985,9 +985,9 @@ if $ARGS[0] = 'MartinCumshot_Tits':
 	'"Go ahead", you whisper in your sultriest voice, "Cum all over my tits, baby."'
 	'That''s all the invitation Martin needs: With a final moan, the first hot jet of cum hits your breasts, soon followed by another, and another. By the time his cock stops twitching, your breast and chin are covered in sperm. Cleaning up is gonna take a while, but with a single look at Martin and the satisfied boyish grin the sight of you puts on his face, you know that it''s worth it.'
 	gs 'cum_call', 'breasts', $boy, 1
-	
+
 	act 'Get cleaned up':gt 'MartinSex2', 'MartinCleanup'
-end	
+end
 
 if $ARGS[0] = 'MartinCleanup':
 	*clr & cla
@@ -1002,7 +1002,7 @@ if $ARGS[0] = 'MartinCleanup':
 	gs 'clothing', 'wear_last_worn'
 	gs 'arousal', 'end'
 	gs 'stat'
-			
+
 	act 'Leave the bar': gt 'city_industrial'
 end
 

+ 26 - 26
locations/MartinSex3.qsrc

@@ -30,7 +30,7 @@ if $ARGS[0] = 'MartinBlowTease':
 			'"Come on. Suck it like you mean it, <<$pcs_firstname>>," he growls instead.'
 			*nl
 			$orgasm_txt = 'The sense of complete control over Martin is fanning the flames your striptease has lighted and you are starting to lose yourself in them. The heat spreads inside your belly, building up like a wave and, finally, washing over you. You cum without ever laying a hand on yourself, your moans muffled by Martin''s cock in your mouth.'
-		
+
 		elseif MartinConvinceBJ = 1:
 			$martinpos = 'MartinBlowjob_dressed'
 			pic_rand = rand(1,2)
@@ -47,12 +47,12 @@ if $ARGS[0] = 'MartinBlowTease':
 				'Before he can recover from that first blow, you have already pushed him back to sit on a stool as you bend over his zipper.'
 				'"<<$pcs_firstname>>," Martin begins, but as you release his hardening <<dick>>cm <<$dick_girth>> cock from its prison, you doubt that he''s actually going to resist you when he''s only an inch away from your mouth.'
 			end
-			'He says your name again, more urgent, but whatever he intended to say next turns into a groan as the tip of your ' + iif(pirsA>0,'pierced ','') + 'tongue meets the tip of his dick for the first time and enthusiastically explores it.'
+			'He says your name again, more urgent, but whatever he intended to say next turns into a groan as the tip of your <<$pc_desc[''tongue'']>> tongue meets the tip of his dick for the first time and enthusiastically explores it.'
 			*nl
 			'Whatever thoughts or doubts he might have had didn''t survive that first contact, that much is clear. The longer you play with his dick, the more he relaxes his body and hardens between your lips. He''s given himself up to your licks and kisses, to your perfect little torture, and you doubt he''ll be able to go back to keeping his distance after you are done with him...'
 			*nl
 			$orgasm_txt = 'Maybe it''s the sense of control you have right now, maybe you were just really horny to begin with; whatever the reason, you find that familiar heat in your lower abdomen rising and spilling over, causing you to cum without ever laying a hand on yourself, your moans muffled by his cock in your mouth.'
-			
+
 		else
 			$martinpos = 'MartinBlowjob_dressed'
 			'<center><video autoplay loop src="images/locations/city/industrial/bar/sex/bar/martin/blowjob/dressdom_bjtease.mp4"></center>'
@@ -70,7 +70,7 @@ if $ARGS[0] = 'MartinBlowTease':
 		gs 'arousal', 'bj', 5, 'dom'
 		$orgasm_txt = ''
 		gs 'stat'
-	
+
 	else}
 		if $clothingworntype = 'nude' and $pantyworntype = 'none':
 			$martinpos = 'MartinBlowjob_undressed'
@@ -89,13 +89,13 @@ if $ARGS[0] = 'MartinBlowTease':
 			'You undo his fly, liberating his <<dick>>cm <<$dick_girth>> cock, rock-hard from the show you put on for him. You feel drawn to it, mesmerized by his display of manliness, but strangely enough, the hand you feel at the back of your head seems to hold you back rather than push you down.'
 			'He wants you to take it slowly, tease him a little bit more... or has he sensed your impatience and is it really him that''s teasing <b>you</b>?'
 			*nl
-			'Whichever it is, you submit, grasping his cock at its base and sticking out your <<$pcdesc_tongue>>, licking around the head of his dick like pleasing Martin was your only concern in life.'
+			'Whichever it is, you submit, grasping his cock at its base and sticking out your <<$pc_desc[''tongue'']>> tongue, licking around the head of his dick like pleasing Martin was your only concern in life.'
 			'How long you lose yourself in this task, how long he withstands the temptation of fucking your mouth you don''t know. What you <b>do</b> know is that, suddenly, his grip on your <<$pc_desc[''hair length'']>> <<$pcs_haircol>> hair tightens.'
 			*nl
 			'"Go on. Suck it like you mean it, <<$pcs_firstname>>," he commands.'
 			*nl
 			$orgasm_txt = 'This sense of complete obedience fans the flames your striptease has lighted. The familiar heat of lust spreads inside your belly, building up like a wave and then washing over you. You cum without ever laying a hand on yourself, your moans muffled by Martin''s cock in your mouth.'
-		
+
 		else
 			$martinpos = 'MartinBlowjob_dressed'
 			'<center><video autoplay loop src="images/locations/city/industrial/bar/sex/bar/martin/blowjob/dresssub_bjtease.mp4"></center>'
@@ -118,7 +118,7 @@ if $ARGS[0] = 'MartinBlowTease':
 !!	end
 	killvar 'MartinPussyLick'
 	killvar 'MartinConvinceBJ'
-		
+
 	act 'No more teasing - Blow him':gt 'MartinSex3', 'MartinBlowjob'
 
 	if cycle = 0 and anal > 0:
@@ -132,7 +132,7 @@ if $ARGS[0] = 'MartinBlowTease':
 		act 'Tell Martin you wanna ride him (<b>Reverse</b> Cowgirl)':$martinpos='rev_cowgirl' & gt 'MartinSex2','MartinSexPrep'
 	end
 end
-		
+
 if $ARGS[0] = 'MartinBlowjob':
 	cls
 	gs 'boyStat', 'A216'
@@ -157,12 +157,12 @@ if $ARGS[0] = 'MartinBlowjob':
 				! 'Snaking a hand between your <<$pc_desc[''legs'']>> legs, you run your fingers along your wet slit, the sigh that would escape you drowned by the other noises in the room. But when your eyes lock with his, there''s not a doubt in your mind that he heard it, that he knows what your other hand is doing, and that he is breathing even harder because of it.'
 				! $orgasm_txt = 'The sense of complete control over Martin is fanning the flames your striptease has lighted and you are starting to lose yourself in them. The heat spreads inside your belly, building up like a wave and, finally, washing over you. You cum, your fingers busy on your clit, your moans muffled by Martin''s cock in your mouth.'
 			! end
-		
+
 		! else
 			! $martinpos = 'MartinBlowjob_dressed'
 			! '<center><video autoplay loop src="images/locations/city/industrial/bar/sex/bar/martin/blowjob/dressdom_bj.mp4"></center>'
 			! 'Content that you have tormented him enough, you put an end to his agony, take the tip of his <<dick>>cm <<$dick_girth>> cock into your mouth and suck. His audible exhale speaks volumes of how big his anticipation must have been and it turns into a groan when you pull back only to plunge more of his cock into your hot mouth.'
-			! 'You''re not letting him get used to this, though - not yet. You pull him out of your mouth once more, brushing your <<$pc_descWordy[''lips'']>> lips and <<$pcdesc_tongue>> along the length and underside of his cock. Your shoot a quick glance up to his face and find him staring at you in rapture.'
+			! 'You''re not letting him get used to this, though - not yet. You pull him out of your mouth once more, brushing your <<$pc_descWordy[''lips'']>> lips and <<$pc_desc[''tongue'']>> tongue along the length and underside of his cock. Your shoot a quick glance up to his face and find him staring at you in rapture.'
 			! *nl
 			! 'And you''re just getting started.'
 			! 'In an instant, your lips find the tip of his cock again. You move your head up and down, swirling your tongue around his sizable cock and enjoying the faint taste of his pre-cum. You cannot bring yourself to stop, either. You are enjoying this, and so is Martin.'
@@ -170,7 +170,7 @@ if $ARGS[0] = 'MartinBlowjob':
 
 			! $orgasm_txt = 'Maybe it''s the sense of control you have right now, maybe you were just really horny to begin with; whatever the reason, you find that familiar heat in your lower abdomen rising and spilling over, causing you to cum without ever laying a hand on yourself, your moans muffled by his cock in your mouth.'
 		! end
-		
+
 		! if deepthroat['pref'] > 50:
 			! *nl
 			! if $clothingworntype = 'nude' and $pantyworntype = 'none':
@@ -178,13 +178,13 @@ if $ARGS[0] = 'MartinBlowjob':
 			! else
 				! '<center><video autoplay loop src="images/locations/city/industrial/bar/sex/bar/martin/blowjob/dressdom_deep.mp4"></center>'
 			! end
-			! 'But that''s not enough for you. You like having a dick in your mouth, but you <b>love</b> having one in your throat. Martin seems a little too gentlemanly (or intimidated by your attitude) to take what he doubtlessly wants, so when you feel his cock approach that magic threshold in the depths of your mouth again, you force your head down further than before, plunging Martin''s hard <<dick>>cm <<$dick_girth>> cock down your <<$pc_desc[''throat'']>> throat until your ' + iif(pirsD>0,'pierced ','') + 'nose almost touches his belly.'
+			! 'But that''s not enough for you. You like having a dick in your mouth, but you <b>love</b> having one in your throat. Martin seems a little too gentlemanly (or intimidated by your attitude) to take what he doubtlessly wants, so when you feel his cock approach that magic threshold in the depths of your mouth again, you force your head down further than before, plunging Martin''s hard <<dick>>cm <<$dick_girth>> cock down your <<$pc_desc[''throat'']>> throat until your <<$pc_desc[''nose'']>> nose almost touches his belly.'
 			! 'You hold it there for a moment, reveling in the feeling of self-inflicted abuse, before you pull back, only to go right back down again. You''re not holding back, and you''re making it all too clear to Martin that you don''t want him to hold back either as you''re taking him deep again and again, all the way to its base, proud and horny at your accomplishment.'
 			! gs 'arousal', 'bj', 2, 'deepthroat', 'dom'
 		! end
 		! *nl
 		! 'Your dedication pays off: Before long, his dick seems to swell and you can hear him say your name. Martin is about to cum.'
-		
+
 		! if $clothingworntype = 'nude' and $pantyworntype = 'none':
 			! gs 'arousal', 'clit_finger', 4, 'dom', 'masturbate'
 			! minut -= 4
@@ -192,12 +192,12 @@ if $ARGS[0] = 'MartinBlowjob':
 		! gs 'arousal', 'bj', 5, 'dom'
 		! $orgasm_txt = ''
 		! gs 'stat'
-		
+
 	! else
 		if $clothingworntype = 'nude' and $pantyworntype = 'none':
 			$martinpos = 'MartinBlowjob_undressed'
 			'<center><video autoplay loop src="images/locations/city/industrial/bar/sex/bar/martin/blowjob/undresssub_bj.mp4"></center>'
-			
+
 			if MartinSexStop = 1:
 				'Instead of plunging Martin''s dick inside you as you originally wanted (and as your wet pussy demands), you scramble to get on your knees. His confusion at this change of heart only lasts for about two seconds - coincidentally the time you needed to take his cock into your mouth.'
 				'You move your head up and down, swirling your tongue around his sizable cock and enjoying the tangy taste of your own juices and the hints of precum, telltale signs of your horniness and of him enjoying your impromptu blowjob.'
@@ -210,9 +210,9 @@ if $ARGS[0] = 'MartinBlowjob':
 				'One of your hands inadvertently makes its way down south, following the heat you feel in your groin, and finds your pussy dripping wet. Being used by Martin, reduced to an object for him to satisfy himself with, is arousing in ways that even you yourself have trouble understanding.'
 				'But you don''t have to understand. All you have to do is leave your fingers to themselves and reap the rewards, moaning softly as you let your lover fuck your mouth.'
 				$orgasm_txt = 'Your brain seems to have no issue channeling your own frustration and complete sense of surrender to Martin into unbridled lust, fanned by Martin''s facefuck and you playing with yourself. The familiar heat spreads inside your belly, building up like a wave and then washing over you. You cum, your fingers busy on your clit, your moans muffled by Martin''s cock in your mouth and feeling at least a little compensated for what you missed out on.'
-			
+
 			else
-				'You take the tip of his <<$dick_girth>> cock into your mouth, pausing to savour its size and texture and exploring its details with your <<$pc_desc[''lip size'']>> lips and <<$pcdesc_tongue>>, intent on giving Martin a slow and sensual blowjob.'
+				'You take the tip of his <<$dick_girth>> cock into your mouth, pausing to savour its size and texture and exploring its details with your <<$pc_desc[''lip size'']>> lips and <<$pc_desc[''tongue'']>> tongue, intent on giving Martin a slow and sensual blowjob.'
 				*nl
 				'But you have all but forgotten about your earlier performance while Martin absolutely hasn''t. He is well past ''sensual'' as you quickly realize when a sizable portion of his <<dick>>cm cock fills your mouth. He pulls out, only to drive it right back in, again and again in rapid succession.'
 				*nl
@@ -223,7 +223,7 @@ if $ARGS[0] = 'MartinBlowjob':
 				'But you don''t have to understand. All you have to do is leave your fingers to themselves and reap the rewards, moaning softly as you let your lover fuck your mouth.'
 				$orgasm_txt = 'This sense of complete obedience fans the flames your striptease has lighted. The familiar heat of lust spreads inside your belly, building up like a wave and then washing over you. You cum, your fingers busy on your clit, your moans muffled by Martin''s cock in your mouth.'
 			end
-		
+
 		else
 			$martinpos = 'MartinBlowjob_dressed'
 			'<center><video autoplay loop src="images/locations/city/industrial/bar/sex/bar/martin/blowjob/dresssub_bj.mp4"></center>'
@@ -231,7 +231,7 @@ if $ARGS[0] = 'MartinBlowjob':
 			*nl
 			'You sensually slide your <<$pc_descWordy[''lips'']>> lips over the head of Martin''s <<$dick_girth>> dick, your eyes closed as you enjoy the sensations: His musky, manly smell; the sense of security and guidance he gives you; the texture of his cock''s tip.'
 			*nl
-			'You move back and forth, never taking him too deep - all your attention is focused on his crown, your <<$pcdesc_tongue>> circling around the head, teasing that sensitive little spot on its underside.'
+			'You move back and forth, never taking him too deep - all your attention is focused on his crown, your <<$pc_desc[''tongue'']>> tongue circling around the head, teasing that sensitive little spot on its underside.'
 			'The faint taste of precum is the only sign of pleasure you are getting from him at the moment. He seems so focused on what you are doing to him that he is not making a sound. Or is he? Are you just too engrossed in your task to hear him?'
 			*nl
 			'No matter which it is, you couldn''t bring yourself to stop. You close your lips even tighter around his dick, suck stronger than before, move your tongue with even greater purpose, determined to get him off.'
@@ -245,7 +245,7 @@ if $ARGS[0] = 'MartinBlowjob':
 			else
 				'<center><video autoplay loop src="images/locations/city/industrial/bar/sex/bar/martin/blowjob/dresssub_deep.mp4"></center>'
 			end
-			'But that''s not enough for him yet. Martin wants to claim all of your mouth and more, and after only a hint of a warning, he takes what he wants: One assertive push at the back of your head is all it takes to drive his hard <<dick>>cm <<$dick_girth>> cock down your <<$pc_desc[''throat'']>> throat until your ' + iif(pirsD>0,'pierced ','') + 'nose almost touches his belly...'
+			'But that''s not enough for him yet. Martin wants to claim all of your mouth and more, and after only a hint of a warning, he takes what he wants: One assertive push at the back of your head is all it takes to drive his hard <<dick>>cm <<$dick_girth>> cock down your <<$pc_desc[''throat'']>> throat until your <<$pc_desc[''nose'']>> nose almost touches his belly...'
 			*nl
 			'You can feel your gag reflex piping up, but Martin is insistent, holding you there just a few moments longer, groaning softly. You like having a dick in your mouth, but you <b>love</b> having one in your throat. There''s a sense of safety in this carefully-measured abuse, a sense of freedom in giving up control to somebody, a sense of empowerment and arousal in letting him use you for his own pleasure.'
 			*nl
@@ -275,7 +275,7 @@ if $ARGS[0] = 'MartinPussyLick':
 	gs 'boyStat', 'A216'
 	'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/martinpussylick.jpg"></center>'
 	!!if pcs_dom > 20:
-		!!'You lift yourself up on the counter and spread your legs invitingly for Martin, your moist ' + iif(pirsG>0,'pierced ','') + 'pussy fully exposed to him.'
+		!!'You lift yourself up on the counter and spread your legs invitingly for Martin, your moist <<$pc_desc[''pussy'']>> pussy fully exposed to him.'
 		!!'"Bartender, I think there''s something here that really ought to be cleaned," you say in your sultriest voice.'
 		!!*nl
 		!!'The smile that flashes across Martin''s face only lasts a split-second before he plays along: "Everything to please my patrons..."'
@@ -283,20 +283,20 @@ if $ARGS[0] = 'MartinPussyLick':
 		!!*nl
 		!!'You watch him, smiling inwardly at the fact that you are getting the pleasure of watching him the way most men like watching women as he is licking your wet pussy out. He seems to genuinely enjoy it, savoring your smell and taste, and the moans that escape you tell him that you are just as happy as him; so happy that you barely notice how minutes pass in utter bliss.'
 		!!*nl
-		!!$orgasm_txt = 'You told him to do this. That thought keeps flashing before your inner eye as you watch Martin lick your ' + iif(tatvag>0,'tattooed ','') + 'pussy. He is eating you out because you willed it, and hitting all the right spots, too. He is doing an amazing job, but it''s this incredible sense of power that pushes you over the edge and has you cumming all over his tongue.'
+		!!$orgasm_txt = 'You told him to do this. That thought keeps flashing before your inner eye as you watch Martin lick your <<$pc_desc[''pussy'']>> pussy. He is eating you out because you willed it, and hitting all the right spots, too. He is doing an amazing job, but it''s this incredible sense of power that pushes you over the edge and has you cumming all over his tongue.'
 		!!gs 'arousal', 'cuni', 5, 'dom'
 		!!$orgasm_txt = ''
 		!!gs 'stat'
-	
+
 	!!else
-		'He lifts you on the counter and spreads your legs, completely exposing your wet ' + iif(pirsG>0,'pierced ','') + 'pussy to him.'
+		'He lifts you on the counter and spreads your legs, completely exposing your wet <<$pc_desc[''pussy'']>> pussy to him.'
 		'"Like what you see?" You ask quietly.'
 		*nl
 		'He bends down to your slit and dives right in, his tongue moving up and down its length and finding, or rather avoiding your clit with practiced (t)ease.'
 		'"Does that answer your question?" You hear between two languid strokes of his tongue.'
 		'You chuckle softly and that chuckle turns into a moan as he flicks the tip of his tongue across your swollen nub.'
 		*nl
-		'You watch him, somewhat amazed at how hot it is to watch a man go down on you. Even if it didn''t feel as good as it does, that alone might explain why men like getting blowjobs so much. You barely even notice how minutes pass as Martin licks your ' + iif(tatvag>0,'tattooed ','') + 'pussy like an ice cream in summer.'
+		'You watch him, somewhat amazed at how hot it is to watch a man go down on you. Even if it didn''t feel as good as it does, that alone might explain why men like getting blowjobs so much. You barely even notice how minutes pass as Martin licks your <<$pc_desc[''pussy'']>> pussy like an ice cream in summer.'
 		*nl
 		$orgasm_txt = 'Strange how, despite having the ''superior'' position, you are feeling like a toy, like a leaf in the wind. Martin is eating you out because he wanted to. He has buried his face between your legs because he willed it, and even though you are looking down at him, he has full control over the situation, over you, over your body, and he knows exactly what he''s doing. You don''t know whether it''s his wonderful tongue or your sense of submission that sets you off, but he has you cumming all over his tongue in no time.'
 		gs 'arousal', 'cuni', 5, 'sub'
@@ -312,7 +312,7 @@ if $ARGS[0] = 'MartinPussyLick':
 	act 'Get up and tell Martin you wanna ride him (<b>Reverse</b> Cowgirl)':$martinpos='rev_cowgirl' & gt 'MartinSex2','MartinSexPrep'
 	act '"Fuck my ass, Martin"':$martinpos = 'doggystyle' & gt 'MartinSex2', 'MartinAnalDyn'
 	act 'Lower your ass onto his dick': $martinpos = 'rev_cowgirl' & gt 'MartinSex2', 'MartinAnalDyn'
-			
+
 	act 'Blueball him - Get dressed and leave':
 		cls
 		minut += 5

+ 1 - 1
locations/anushapt.qsrc

@@ -399,7 +399,7 @@ if $ARGS[0] = 'bathroom':
 	'The toilet sits along the far wall. There''s also a bathtub with an old plastic shower curtain hanging from a rod above it. It also seems that the latch on the door is broken.'
 	'You can do your hair and makeup in the <a href="exec:gt ''mirror'', ''start''">mirror</a> above the sink.'
 	*nl
-	if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0:'<a href="exec:dynamic $pirManage">Manage Piercings</a>'
+	gs 'piercing_management', 'set_manage_string'
 	act 'Leave the bathroom': gt 'anushapt', 'hallway'
 	act 'Take a shower':
 		*clr & cla

+ 1 - 1
locations/anushapt_city.qsrc

@@ -420,7 +420,7 @@ if $ARGS[0] = 'bathroom':
 	'The bathroom is fairly clean and larger than most apartment bathrooms you''ve seen. It has white floor tiles with dark green lower wall tiles and lighter green ones above. The one thing you notice right away is the toilet set is up, which is not a surprise with three guys living here.'
 	'You can do your hair and makeup in the <a href="exec:gt ''mirror'', ''start''">mirror</a> above the sink.'
 	*nl
-	if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0:'<a href="exec:dynamic $pirManage">Manage Piercings</a>'
+	gs 'piercing_management', 'set_manage_string'
 	act 'Leave the bathroom': gt 'anushapt_city','hallway'
 	act 'Take a shower':
 		*clr & cla

+ 1 - 1
locations/artemhome.qsrc

@@ -241,7 +241,7 @@ if $ARGS[0] = 'bathroom':
 		'The first thing you notice is the god awful green tiles with matching sink in the bathroom. You don''t know who picked them, but they clearly don''t have good taste. Other than that, it''s a fairly typical bathroom.'
 		'You can do your hair and makeup in the <a href="exec:gt ''mirror'', ''start''">mirror</a> above the sink.'
 		*nl
-		if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0:'<a href="exec:dynamic $pirManage">Manage Piercings</a>'
+		gs 'piercing_management', 'set_manage_string'
 		act 'Leave the bathroom': gt 'artemhome', 'hallway'
 		if hour < 6:
 			gt 'artemhome', 'timecheck'

+ 416 - 129
locations/body_desc.qsrc

@@ -85,45 +85,60 @@ if $ARGS[0] = 'throat':
 end
 
 if $ARGS[0] = 'pussy':
+	if pcs_piercings['pussy'] > 0 and pcs_tattoos['pussy'] > 0:
+		$pc_desc['pussy'] = 'pierced and tattooed '
+		pc_descWordy['pussy'] = 'pierced and tattooed '
+	elseif pcs_piercings['pussy'] > 0:
+		$pc_desc['pussy'] = 'pierced '
+		pc_descWordy['pussy'] = 'pierced '
+	elseif pcs_tattoos['pussy'] > 0:
+		$pc_desc['pussy'] = 'tattooed '
+		pc_descWordy['pussy'] = 'tattooed '
+	else
+		$pc_desc['pussy'] = ''
+		pc_descWordy['pussy'] = ''
+	end
+
+
 	if vgape >= 4:
+		$pcs_vag_image = 'images/pc/body/pussy/stage5/' + rand(1,5) + '.jpg'
 		if rand(0,1) = 0:
-			$pcs_vag = 'Your regularly-fucked <a href="exec:view''images/pc/body/pussy/stage5/' + rand(1,5) + '.jpg''">playground</a> can take most things you force up there, ' + iif(stat['think_virgin'] = 0,'maybe you should skip the next gangbang?.','this can''t be right. What could be doing this to me?')
+			$pcs_vag = 'Your regularly-fucked <<$pc_desc[''pussy'']>><a href="exec: view ''<<$pcs_vag_image>>''">playground</a> can take most things you force up there, ' + iif(stat['think_virgin'] = 0,'maybe you should skip the next gangbang?.','this can''t be right. What could be doing this to me?')
 		else
-			$pcs_vag = 'Your poor little <a href="exec:view''images/pc/body/pussy/stage5/' + rand(1,5) + '.jpg''">pussy</a> is broken from too much stuffing, it''ll need time to recover, ' + iif(stat['think_virgin'] = 0,'maybe you should skip the next gangbang?.','this can''t be right. What could be doing this to me?')
+			$pcs_vag = 'Your poor little <a href="exec: view ''<<$pcs_vag_image>>''">pussy</a> is broken from too much stuffing, it''ll need time to recover, ' + iif(stat['think_virgin'] = 0,'maybe you should skip the next gangbang?.','this can''t be right. What could be doing this to me?')
 		end
-		$pcs_vag_image = 'images/pc/body/pussy/stage5/' + rand(1,5) + '.jpg'
-		$pc_desc['pussy'] = func('body_desc', 'ChooseDescWord', 'ruined', 'broken', 'proplapsed', 'destroyed', 'annihilated', 'obliterated','decimated')
-		$pc_descWordy['pussy'] = 'prolapsed, ruined, chasm of a'
+		$pc_desc['pussy'] += func('body_desc', 'ChooseDescWord', 'ruined', 'broken', 'proplapsed', 'destroyed', 'annihilated', 'obliterated','decimated')
+		$pc_descWordy['pussy'] += 'prolapsed, ruined, chasm of a'
 		$vaginatipe = 'ruined'
 	elseif vgape = 3:
-		$pcs_vag = 'You have a gaping hole of a <a href="exec:view''images/pc/body/pussy/stage4/' + rand(1,5) + '.jpg''">vagina</a>, ' + iif(stat['think_virgin'] = 0,'it has seen a lot of action.','how though? Maybe something is wrong with you, virgins don''t look like this.')
 		$pcs_vag_image = 'images/pc/body/pussy/stage4/' + rand(1,5) + '.jpg'
-		$pc_desc['pussy'] = func('body_desc', 'ChooseDescWord', 'gaping', 'open', 'extended', 'wide')
-		$pc_descWordy['pussy'] = 'gaping and well used'
+		$pcs_vag = 'You have a <<$pc_desc[''pussy'']>>gaping hole of a <a href="exec: view ''<<$pcs_vag_image>>''">vagina</a>, ' + iif(stat['think_virgin'] = 0,'it has seen a lot of action.','how though? Maybe something is wrong with you, virgins don''t look like this.')
+		$pc_desc['pussy'] += func('body_desc', 'ChooseDescWord', 'gaping', 'open', 'extended', 'wide')
+		$pc_descWordy['pussy'] += 'gaping and well used'
 		$vaginatipe = 'gaping'
 	elseif vgape = 2:
-		$pcs_vag = 'Your <a href="exec:view''images/pc/body/pussy/stage3/' + rand(1,5) + '.jpg''">vagina</a> looks like it has seen some action, ' + iif(stat['think_virgin'] = 0,'which it totally has.','which doesn''t make sense. You''re still a virgin.')
 		$pcs_vag_image = 'images/pc/body/pussy/stage3/' + rand(1,5) + '.jpg'
-		$pc_desc['pussy'] = func('body_desc', 'ChooseDescWord', 'recovering', 'recently used', 'welcoming')
-		$pc_descWordy['pussy'] = 'experienced, welcoming'
+		$pcs_vag = 'Your <<$pc_desc[''pussy'']>><a href="exec: view ''<<$pcs_vag_image>>''">vagina</a> looks like it has seen some action, ' + iif(stat['think_virgin'] = 0,'which it totally has.','which doesn''t make sense. You''re still a virgin.')
+		$pc_desc['pussy'] += func('body_desc', 'ChooseDescWord', 'recovering', 'recently used', 'welcoming')
+		$pc_descWordy['pussy'] += 'experienced, welcoming'
 		$vaginatipe = 'welcoming'
 	elseif vgape = 1 or pcs_vag > 10:
-		$pcs_vag = 'Your <a href="exec:view''images/pc/body/pussy/stage2/' + rand(1,5) + '.jpg''">pussy</a> looks like it has been used recently or is just well worn in, ' + iif(stat['think_virgin'] = 0,'maybe you''ve been over doing it?','which seems unfair for a virgin like yourself.')
 		$pcs_vag_image = 'images/pc/body/pussy/stage2/' + rand(1,5) + '.jpg'
-		$pc_desc['pussy'] = func('body_desc', 'ChooseDescWord', 'pliable', 'used')
-		$pc_descWordy['pussy'] = 'worn in'
+		$pcs_vag = 'Your <<$pc_desc[''pussy'']>><a href="exec: view ''<<$pcs_vag_image>>''">pussy</a> looks like it has been used recently or is just well worn in, ' + iif(stat['think_virgin'] = 0,'maybe you''ve been over doing it?','which seems unfair for a virgin like yourself.')
+		$pc_desc['pussy'] += func('body_desc', 'ChooseDescWord', 'pliable', 'used')
+		$pc_descWordy['pussy'] += 'worn in'
 		$vaginatipe = 'used'
 	elseif pcs_vag > 0:
-		$pcs_vag = 'Your <a href="exec:view''images/pc/body/pussy/stage1/' + rand(1,5) + '.jpg''">pussy</a> looks perfectly normal, ' + iif(stat['think_virgin'] = 0,'for someone sexually active.','just not as virginal as you would expect.')
 		$pcs_vag_image = 'images/pc/body/pussy/stage1/' + rand(1,5) + '.jpg'
-		$pc_desc['pussy'] = func('body_desc', 'ChooseDescWord', 'snug', 'tight', 'cosy')
-		$pc_descWordy['pussy'] = 'tight and unused'
+		$pcs_vag = 'Your <<$pc_desc[''pussy'']>><a href="exec: view ''<<$pcs_vag_image>>''">pussy</a> looks perfectly normal, ' + iif(stat['think_virgin'] = 0,'for someone sexually active.','just not as virginal as you would expect.')
+		$pc_desc['pussy'] += func('body_desc', 'ChooseDescWord', 'snug', 'tight', 'cosy')
+		$pc_descWordy['pussy'] += 'tight and unused'
 		$vaginatipe = 'unused'
 	else
-		$pcs_vag = 'Your virgin <a href="exec:view''images/pc/body/pussy/stage0/' + rand(1,5) + '.jpg''">pussy</a> still has its hymen intact, ' + iif(stat['think_virgin'] = 0,'even though you are not a virgin.','which makes sense for a virgin.')
 		$pcs_vag_image = 'images/pc/body/pussy/stage0/' + rand(1,5) + '.jpg'
-		$pc_desc['pussy'] = 'virgin'
-		$pc_descWordy['pussy'] = 'virgin'
+		$pcs_vag = 'Your <<$pc_desc[''pussy'']>>virgin <a href="exec: view ''<<$pcs_vag_image>>''">pussy</a> still has its hymen intact, ' + iif(stat['think_virgin'] = 0,'even though you are not a virgin.','which makes sense for a virgin.')
+		$pc_desc['pussy'] += 'virgin'
+		$pc_descWordy['pussy'] += 'virgin'
 		$vaginatipe = 'virgin'
 	end
 end
@@ -180,7 +195,7 @@ if $ARGS[0] = 'anus':
 		if $pantyworntype ! 'none':
 			$pcs_ass = 'Your <a href="exec:view''images/pc/body/analplug.jpg''">anus</a> is currently filled with your butt plug.'
 		else
-			if pirsG > 0 and pirsG < 10000:
+			if pcs_piercings['pussy'] > 0:
 				$pcs_ass = 'Your <a href="exec:view''images/pc/body/anus/pirs' + rand(1,3) + '.jpg''">anus</a> is currently filled with your butt plug.'
 			else
 				$pcs_ass = 'Your <a href="exec:view''images/pc/body/anus/analplugnotanga.jpg''">anus</a> is currently filled with your butt plug.'
@@ -471,7 +486,7 @@ if $ARGS[0] = 'lips':
 		$pc_desc['lip glossed'] = 'softened'
 	end
 
-	$pc_descFull['lip'] = 'You have <<$pcs_lipSize>>, <<$pc_desc[''lip gloss'']>> ' + iif(pcs_lip = 4, 'suggestively full ', '') +  'lips. <<$pirsB>> <<$pirsA>>'
+	$pc_descFull['lip'] = 'You have <<$pcs_lipSize>>, <<$pc_desc[''lip gloss'']>> ' + iif(pcs_lip = 4, 'suggestively full ', '') +  'lips. <<$pcs_piercings[''lip_desc'']>> <<$pcs_piercings[''tongue_desc'']>>'
 
 	!! A pair of ready-made lip strings for writers to use if they are unsure how to construct them themselves. Again, these are not great and should preferably not be relied on, but they are here.
 	$pc_desc['lips'] = '<<$pc_desc[''lip size'']>> <<$pc_desc[''lip gloss'']>>'
@@ -512,23 +527,23 @@ if $ARGS[0] = 'skin':
 	if pcs_skin < 200:
 		$pc_desc['skin'] = func('body_desc', 'ChooseDescWord', 'terrible', 'awful', 'greasy', 'pimple-strewn')
 		$pc_descWordy['skin'] = 'awful, greasy and pimply'
-		$pc_descFull['skin'] = 'Your <<$pcs_tan>> skin is rough and covered with pimples and moles. <<$pirsC>> <<$pirsD>> <<$pirsE>> <<$pirsN>>'
+		$pc_descFull['skin'] = 'Your <<$pcs_tan>> skin is rough and covered with pimples and moles. <<$pcs_piercings[''ears_desc'']>> <<$pcs_piercings[''nose_desc'']>> <<$pcs_piercings[''brow_desc'']>> <<$pcs_piercings[''navel_desc'']>>'
 	elseif pcs_skin < 400:
 		$pc_desc['skin'] = func('body_desc', 'ChooseDescWord', 'bad', 'greasy', 'rough', 'unappealing')
 		$pc_descWordy['skin'] = 'poorly-kept, unappealing'
-		$pc_descFull['skin'] = 'Your <<$pcs_tan>> skin is rough and has a few pimples. <<$pirsC>> <<$pirsD>> <<$pirsE>> <<$pirsN>>'
+		$pc_descFull['skin'] = 'Your <<$pcs_tan>> skin is rough and has a few pimples. <<$pcs_piercings[''ears_desc'']>> <<$pcs_piercings[''nose_desc'']>> <<$pcs_piercings[''brow_desc'']>> <<$pcs_piercings[''navel_desc'']>>'
 	elseif pcs_skin < 600:
 		$pc_desc['skin'] = func('body_desc', 'ChooseDescWord', 'average', 'normal', 'clear')
 		$pc_descWordy['skin'] = 'normal, slightly rough'
-		$pc_descFull['skin'] = 'Your <<$pcs_tan>> skin is clear of acne but still slightly rough. <<$pirsC>> <<$pirsD>> <<$pirsE>> <<$pirsN>>'
+		$pc_descFull['skin'] = 'Your <<$pcs_tan>> skin is clear of acne but still slightly rough. <<$pcs_piercings[''ears_desc'']>> <<$pcs_piercings[''nose_desc'']>> <<$pcs_piercings[''brow_desc'']>> <<$pcs_piercings[''navel_desc'']>>'
 	elseif pcs_skin < 800:
 		$pc_desc['skin'] = func('body_desc', 'ChooseDescWord', 'good', 'nice', 'smooth', 'great', 'well-kept')
 		$pc_descWordy['skin'] = 'smooth, well-kept'
-		$pc_descFull['skin'] = 'You have <<$pcs_tan>>, smooth and well-groomed skin. <<$pirsC>> <<$pirsD>> <<$pirsE>> <<$pirsN>>'
+		$pc_descFull['skin'] = 'You have <<$pcs_tan>>, smooth and well-groomed skin. <<$pcs_piercings[''ears_desc'']>> <<$pcs_piercings[''nose_desc'']>> <<$pcs_piercings[''brow_desc'']>> <<$pcs_piercings[''navel_desc'']>>'
 	else
 		$pc_desc['skin'] = func('body_desc', 'ChooseDescWord', 'excellent', 'silken', 'soft', 'silky', 'immaculate')
 		$pc_descWordy['skin'] = 'immaculate, silky-soft'
-		$pc_descFull['skin'] = 'You have <<$pcs_tan>> and very smooth skin which almost feels like silk to the touch. <<$pirsC>> <<$pirsD>> <<$pirsE>> <<$pirsN>>'
+		$pc_descFull['skin'] = 'You have <<$pcs_tan>> and very smooth skin which almost feels like silk to the touch. <<$pcs_piercings[''ears_desc'']>> <<$pcs_piercings[''nose_desc'']>> <<$pcs_piercings[''brow_desc'']>> <<$pcs_piercings[''navel_desc'']>>'
 	end
 end
 
@@ -648,109 +663,381 @@ if $ARGS[0] = 'eye_size':
 	end
 end
 
-if $ARGS[0] = 'pierrcing':
-	!! If, like me, you are confused by the logic of what initially appear to be arbitrary numbers, it turns out the piercing location value is set to a number to indicate which photo it uses, which is tied to what jewelry you have for the piercing. 10000 means pierced, but no jewelry.
-	if pirsA > 0 and pirsA < 10000:
-		$pirsA = 'When you talk to people, they can sometimes get a glimpse of your tongue piercing.'
-		rand_tongue = rand(0,1)
-		if rand_tongue = 0:
-			$pcdesc_tonguerandom = 'pierced tongue'
-		elseif rand_tongue = 1:
-			$pcdesc_tonguerandom = 'pierced licker'
+if $ARGS[0] = 'piercing':
+	!! If, like me, you are confused by the logic of what initially appear to be arbitrary numbers, it turns out the piercing location value is set to a number to indicate which photo it uses, which is tied to what jewelry you have for the piercing. Netative means pierced, but no jewelry.
+	if pcs_piercings['ears'] > 0:
+		$pcs_piercings['ears_desc'] = 'You are wearing earrings.'
+		if 1:
+			$pc_descRandom['ears'] = 'pierced'
 		end
-		$pcdesc_tonguewordy = 'barbell-pierced tongue'
-		$pcdesc_tongue = 'pierced tongue'
+		$pc_descWordy['ears'] = 'pierced'
+		$pc_desc['ears'] = 'pierced'
 	else
-		$pirsA = ''
-		rand_tongue = rand(0,1)
-		if rand_tongue = 0:
-			$pcdesc_tonguerandom = 'tongue'
-		elseif rand_tongue = 1:
-			$pcdesc_tonguerandom = 'licker'
+		$pcs_piercings['ears_desc'] = ''
+		if 1:
+			$pc_descRandom['ears'] = ''
 		end
-		$pcdesc_tonguewordy = 'tongue'
-		$pcdesc_tongue = 'tongue'
+		$pc_descWordy['ears'] = ''
+		$pc_desc['ears'] = ''
 	end
 
-	if pirsB > 0 and pirsB < 10000:
-		$pirsB = 'Your lip is pierced.'
-		$pcdesc_lowerliprandom = 'pierced lower lip'
-		$pcdesc_lowerlipwordy = 'jewelry-studded lower lip'
-		$pcdesc_lowerlip = 'pierced lower lip'
+	!! Unfortunately there is no real way to tell if it is a pierced septum or a pierced nostril without overhauling the jewelry and other piercing references for now.
+	if pcs_piercings['nose'] > 0:
+		$pcs_piercings['nose_desc'] = 'You have a piercing inserted in your nose.'
+		$pc_descRandom['nose'] = 'pierced'
+		$pc_descWordy['nose'] = 'jewelry-studded'
+		$pc_desc['nose'] = 'pierced'
 	else
-		$pirsB = ''
-		$pcdesc_lowerliprandom = 'lower lip'
-		$pcdesc_lowerlipwordy = 'lower lip'
-		$pcdesc_lowerlip = 'lower lip'
+		$pcs_piercings['nose_desc'] = ''
+		$pc_descRandom['nose'] = ''
+		$pc_descWordy['nose'] = ''
+		$pc_desc['nose'] = ''
 	end
 
-	if pirsC > 0 and pirsC < 10000:
-		$pirsC = 'You are wearing earrings.'
-		$pcdesc_earsrandom = 'pierced ears' & $pcdesc_earrandom = 'pierced ear'
-		$pcdesc_earswordy = 'pierced ears'
-		$pcdesc_ears = 'pierced ears'
-		$pcdesc_earwordy = 'pierced ear'
-		$pcdesc_ear = 'pierced ear'
+	if pcs_piercings['brow'] > 0:
+		$pcs_piercings['brow_desc'] = 'Your eyebrow is pierced.'
+		$pc_descRandom['brow'] = 'pierced'
+		$pc_descWordy['brow'] = 'pierced'
+		$pc_desc['brow'] = 'pierced'
 	else
-		$pirsC = ''
-		$pcdesc_earsrandom = 'ears' & $pcdesc_earrandom = 'ear'
-		$pcdesc_earswordy = 'ears'
-		$pcdesc_ears = 'ears'
-		$pcdesc_earwordy = 'ear'
-		$pcdesc_ear = 'ear'
+		$pcs_piercings['brow_desc'] = ''
+		$pc_descRandom['brow'] = ''
+		$pc_descWordy['brow'] = ''
+		$pc_desc['brow'] = ''
 	end
 
-	!! Unfortunately there is no real way to tell if it is a pierced septum or a pierced nostril without overhauling the jewelry and other piercing references for now.
-	if pirsD > 0 and pirsD < 10000:
-		$pirsD = 'You have a piercing inserted in your nose.'
-		$pcdesc_noserandom = 'pierced nose'
-		$pcdesc_nosewordy = 'jewelry-studded nose'
-		$pcdesc_nose = 'pierced nose'
+	if pcs_piercings['lip'] > 0:
+		$pcs_piercings['lip_desc'] = 'Your lip is pierced.'
+		$pc_descRandom['lower_lip'] = 'pierced'
+		$pc_descWordy['lower_lip'] = 'jewelry-studded'
+		$pc_desc['lower_lip'] = 'pierced'
 	else
-		$pirsD = ''
-		$pcdesc_noserandom = 'nose'
-		$pcdesc_nosewordy = 'nose'
-		$pcdesc_nose = 'nose'
+		$pcs_piercings['lip_desc'] = ''
+		$pc_descRandom['lower_lip'] = ''
+		$pc_descWordy['lower_lip'] = ''
+		$pc_desc['lower_lip'] = ''
 	end
 
-	if pirsE > 0 and pirsE < 10000:
-		$pirsE = 'Your eyebrow is pierced.'
-		$pcdesc_eyebrowrandom = 'pierced eyebrow'
-		$pcdesc_eyebrowwordy = 'pierced eyebrow'
-		$pcdesc_eyebrow = 'pierced eyebrow'
+	if pcs_piercings['tongue'] > 0:
+		$pcs_piercings['tongue_desc'] = 'When you talk to people, they can sometimes get a glimpse of your tongue piercing.'
+		$pc_descRandom['tongue'] = 'pierced'
+		$pc_descWordy['tongue'] = 'barbell-pierced'
+		$pc_desc['tongue'] = 'pierced'
 	else
-		$pirsE = ''
-		$pcdesc_eyebrowrandom = 'eyebrow'
-		$pcdesc_eyebrowwordy = 'eyebrow'
-		$pcdesc_eyebrow = 'eyebrow'
+		$pcs_piercings['tongue_desc'] = ''
+		$pc_descRandom['tongue'] = ''
+		$pc_descWordy['tongue'] = ''
+		$pc_desc['tongue'] = ''
 	end
 
-	if pirsN > 0 and pirsN < 10000:
-		$pirsN = 'You are wearing a navel piercing.'
-		$pcdesc_navelrandom = 'pierced navel'
-		$pcdesc_navelwordy = 'pierced navel'
-		$pcdesc_navel = 'pierced navel'
+	if pcs_piercings['navel'] > 0:
+		$pcs_piercings['navel_desc'] = 'You are wearing a navel piercing.'
+		$pc_descRandom['navel'] = 'pierced'
+		$pc_descWordy['navel'] = 'pierced'
+		$pc_desc['navel'] = 'pierced'
 	else
-		$pirsN = ''
-		$pcdesc_navelrandom = 'navel'
-		$pcdesc_navelwordy = 'navel'
-		$pcdesc_navel = 'navel'
+		$pcs_piercings['navel_desc'] = ''
+		$pc_descRandom['navel'] = ''
+		$pc_descWordy['navel'] = ''
+		$pc_desc['navel'] = ''
 	end
 
 	!! Some of these are labial rings, some of them are hood piercings. No good way to tell without an overhaul.
-	if pirsG  > 0 and pirsG < 10000:
-		$pirspiz = 'You are wearing a pubic piercing.'
-		$pcdesc_genitalsrandom = 'pierced pussy'
-		$pcdesc_genitalswordy = 'jewelry-adorned pussy'
-		$pcdesc_genitals = 'pierced pussy'
+	!{
+	if pcs_piercings['pussy'] > 0:
+		$pcs_piercings['pussy_desc'] = 'You are wearing a pubic piercing.'
+		$pc_descRandom['pussy'] = 'pierced'
+		$pc_descWordy['pussy'] = 'jewelry-adorned'
+		$pc_desc['pussy'] = 'pierced'
+	else
+		$pcs_piercings['pussy_desc'] = ''
+		$pc_descRandom['pussy'] = ''
+		$pc_descWordy['pussy'] = ''
+		$pc_desc['pussy'] = ''
+	end
+	}
+end
+
+if $ARGS[0] = 'tattoo':
+	!! If, like me, you are confused by the logic of what initially appear to be arbitrary numbers, it turns out the tattoo location value is set to a number to indicate which photo it uses, which is tied to what tattoo you have. Netative means that the tatto is removed.
+	if pcs_tattoos['ankle'] > 0:
+		$pcs_tattoos['aankle_desc'] = ''
+		if 1:
+			$pc_descRandom['ankle'] = 'tattooed'
+		end
+		$pc_descWordy['ankle'] = 'tattooed'
+		$pc_desc['ankle'] = 'tattooed'
+	else
+		$pcs_tattoos['ankle_desc'] = ''
+		if 1:
+			$pc_descRandom['ankle'] = ''
+		end
+		$pc_descWordy['ankle'] = ''
+		$pc_desc['ankle'] = ''
+	end
+
+	if pcs_tattoos['arm'] > 0:
+		$pcs_tattoos['arm_desc'] = ''
+		if 1:
+			$pc_descRandom['arm'] = 'tattooed'
+		end
+		$pc_descWordy['arm'] = 'tattooed'
+		$pc_desc['arm'] = 'tattooed'
+	else
+		$pcs_tattoos['arm_desc'] = ''
+		if 1:
+			$pc_descRandom['arm'] = ''
+		end
+		$pc_descWordy['arm'] = ''
+		$pc_desc['arm'] = ''
+	end
+
+	if pcs_tattoos['ass'] > 0:
+		$pcs_tattoos['ass_desc'] = ''
+		if 1:
+			$pc_descRandom['ass'] = 'tattooed'
+		end
+		$pc_descWordy['ass'] = 'tattooed'
+		$pc_desc['ass'] = 'tattooed'
+	else
+		$pcs_tattoos['ass_desc'] = ''
+		if 1:
+			$pc_descRandom['ass'] = ''
+		end
+		$pc_descWordy['ass'] = ''
+		$pc_desc['ass'] = ''
+	end
+
+	if pcs_tattoos['back'] > 0:
+		$pcs_tattoos['back_desc'] = ''
+		if 1:
+			$pc_descRandom['back'] = 'tattooed'
+		end
+		$pc_descWordy['back'] = 'tattooed'
+		$pc_desc['back'] = 'tattooed'
+	else
+		$pcs_tattoos['back_desc'] = ''
+		if 1:
+			$pc_descRandom['back'] = ''
+		end
+		$pc_descWordy['back'] = ''
+		$pc_desc['back'] = ''
+	end
+
+	if pcs_tattoos['belly'] > 0:
+		$pcs_tattoos['belly_desc'] = ''
+		if 1:
+			$pc_descRandom['belly'] = 'tattooed'
+		end
+		$pc_descWordy['belly'] = 'tattooed'
+		$pc_desc['belly'] = 'tattooed'
+	else
+		$pcs_tattoos['belly_desc'] = ''
+		if 1:
+			$pc_descRandom['belly'] = ''
+		end
+		$pc_descWordy['belly'] = ''
+		$pc_desc['belly'] = ''
+	end
+
+	!{
+	if pcs_tattoos['breast'] > 0:
+		$pcs_tattoos['breast_desc'] = ''
+		if 1:
+			$pc_descRandom['breast'] = 'tattooed'
+		end
+		$pc_descWordy['breast'] = 'tattooed'
+		$pc_desc['breast'] = 'tattooed'
+	else
+		$pcs_tattoos['breast_desc'] = ''
+		if 1:
+			$pc_descRandom['breast'] = ''
+		end
+		$pc_descWordy['breast'] = ''
+		$pc_desc['breast'] = ''
+	end
+	}
+	if pcs_tattoos['chest'] > 0:
+		$pcs_tattoos['chest_desc'] = ''
+		if 1:
+			$pc_descRandom['chest'] = 'tattooed'
+		end
+		$pc_descWordy['chest'] = 'tattooed'
+		$pc_desc['chest'] = 'tattooed'
+	else
+		$pcs_tattoos['chest_desc'] = ''
+		if 1:
+			$pc_descRandom['chest'] = ''
+		end
+		$pc_descWordy['chest'] = ''
+		$pc_desc['chest'] = ''
+	end
+
+	if pcs_tattoos['face'] > 0:
+		$pcs_tattoos['face_desc'] = ''
+		if 1:
+			$pc_descRandom['face'] = 'tattooed'
+		end
+		$pc_descWordy['face'] = 'tattooed'
+		$pc_desc['face'] = 'tattooed'
+	else
+		$pcs_tattoos['face_desc'] = ''
+		if 1:
+			$pc_descRandom['face'] = ''
+		end
+		$pc_descWordy['face'] = ''
+		$pc_desc['face'] = ''
+	end
+
+	if pcs_tattoos['hand'] > 0:
+		$pcs_tattoos['hand_desc'] = ''
+		if 1:
+			$pc_descRandom['hand'] = 'tattooed'
+		end
+		$pc_descWordy['hand'] = 'tattooed'
+		$pc_desc['hand'] = 'tattooed'
+	else
+		$pcs_tattoos['hand_desc'] = ''
+		if 1:
+			$pc_descRandom['hand'] = ''
+		end
+		$pc_descWordy['hand'] = ''
+		$pc_desc['hand'] = ''
+	end
+
+	if pcs_tattoos['leg'] > 0:
+		$pcs_tattoos['leg_desc'] = ''
+		if 1:
+			$pc_descRandom['leg'] = 'tattooed'
+		end
+		$pc_descWordy['leg'] = 'tattooed'
+		$pc_desc['leg'] = 'tattooed'
+	else
+		$pcs_tattoos['leg_desc'] = ''
+		if 1:
+			$pc_descRandom['leg'] = ''
+		end
+		$pc_descWordy['leg'] = ''
+		$pc_desc['leg'] = ''
+	end
+
+	!{
+	if pcs_tattoos['lip'] > 0:
+		$pcs_tattoos['lip_desc'] = ''
+		if 1:
+			$pc_descRandom['lip'] = 'tattooed'
+		end
+		$pc_descWordy['lip'] = 'tattooed'
+		$pc_desc['lip'] = 'tattooed'
+	else
+		$pcs_tattoos['lip_desc'] = ''
+		if 1:
+			$pc_descRandom['lip'] = ''
+		end
+		$pc_descWordy['lip'] = ''
+		$pc_desc['lip'] = ''
+	end
+	}
+
+	if pcs_tattoos['neck'] > 0:
+		$pcs_tattoos['neck_desc'] = ''
+		if 1:
+			$pc_descRandom['neck'] = 'tattooed'
+		end
+		$pc_descWordy['neck'] = 'tattooed'
+		$pc_desc['neck'] = 'tattooed'
+	else
+		$pcs_tattoos['neck_desc'] = ''
+		if 1:
+			$pc_descRandom['neck'] = ''
+		end
+		$pc_descWordy['neck'] = ''
+		$pc_desc['neck'] = ''
+	end
+
+	if pcs_tattoos['shoulder'] > 0:
+		$pcs_tattoos['shoulder_desc'] = ''
+		if 1:
+			$pc_descRandom['shoulder'] = 'tattooed'
+		end
+		$pc_descWordy['shoulder'] = 'tattooed'
+		$pc_desc['shoulder'] = 'tattooed'
 	else
-		$pirspiz = ''
-		$pcdesc_genitalsrandom = 'pussy'
-		$pcdesc_genitalswordy = 'pussy'
-		$pcdesc_genitals = 'pussy'
+		$pcs_tattoos['shoulder_desc'] = ''
+		if 1:
+			$pc_descRandom['shoulder'] = ''
+		end
+		$pc_descWordy['shoulder'] = ''
+		$pc_desc['shoulder'] = ''
+	end
+
+	if pcs_tattoos['side'] > 0:
+		$pcs_tattoos['side_desc'] = ''
+		if 1:
+			$pc_descRandom['side'] = 'tattooed'
+		end
+		$pc_descWordy['side'] = 'tattooed'
+		$pc_desc['side'] = 'tattooed'
+	else
+		$pcs_tattoos['side_desc'] = ''
+		if 1:
+			$pc_descRandom['side'] = ''
+		end
+		$pc_descWordy['side'] = ''
+		$pc_desc['side'] = ''
+	end
+
+	if pcs_tattoos['tramp'] > 0:
+		$pcs_tattoos['tramp_desc'] = ''
+		if 1:
+			$pc_descRandom['tramp'] = 'tattooed'
+		end
+		$pc_descWordy['tramp'] = 'tattooed'
+		$pc_desc['tramp'] = 'tattooed'
+	else
+		$pcs_tattoos['tramp_desc'] = ''
+		if 1:
+			$pc_descRandom['tramp'] = ''
+		end
+		$pc_descWordy['tramp'] = ''
+		$pc_desc['tramp'] = ''
+	end
+
+	if pcs_tattoos['under'] > 0:
+		$pcs_tattoos['under_desc'] = ''
+		if 1:
+			$pc_descRandom['under'] = 'tattooed'
+		end
+		$pc_descWordy['under'] = 'tattooed'
+		$pc_desc['under'] = 'tattooed'
+	else
+		$pcs_tattoos['under_desc'] = ''
+		if 1:
+			$pc_descRandom['under'] = ''
+		end
+		$pc_descWordy['under'] = ''
+		$pc_desc['under'] = ''
+	end
+
+	if pcs_tattoos['wrist'] > 0:
+		$pcs_tattoos['wrist_desc'] = ''
+		if 1:
+			$pc_descRandom['wrist'] = 'tattooed'
+		end
+		$pc_descWordy['wrist'] = 'tattooed'
+		$pc_desc['wrist'] = 'tattooed'
+	else
+		$pcs_tattoos['wrist_desc'] = ''
+		if 1:
+			$pc_descRandom['wrist'] = ''
+		end
+		$pc_descWordy['wrist'] = ''
+		$pc_desc['wrist'] = ''
 	end
 end
 
+
+
 if $ARGS[0] = 'makeup':
 	if pcs_makeup = 0:
 		$pc_desc['makeup'] = func('body_desc', 'ChooseDescWord', 'makeup-ruined', 'makeup-smeared', 'makeup-trashed')
@@ -854,23 +1141,28 @@ if $ARGS[0] = 'clit':
 end
 
 if $ARGS[0] = 'pubes':
-	if lashair = 0:
+	if lashair = 1:
+		$pc_desc['pubes'] = func('body_desc', 'ChooseDescWord', 'hairless', 'smooth', 'bald', 'silky-smooth')
+		$pc_descWordy['pubes'] = 'eternally silky-smooth'
+		$pcs_pubes = 'You have a smooth, <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">bald pussy</a>. <<$pcs_piercings[''pussy_desc'']>><br><<$clitsize>>'
+		$pube_style['word'] = 'shaved'
+	else
 		$pube_style['shape'] = ''
 		if pcs_pubes <= 3:
 			lobkoef = 3
-			$pcs_pubes = 'You have a smoothly <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">shaved pussy</a>. <<$pirspiz>><br><<$clitsize>>'
+			$pcs_pubes = 'You have a smoothly <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">shaved pussy</a>. <<$pcs_piercings[''pussy_desc'']>><br><<$clitsize>>'
 			$pc_desc['pubes'] = func('body_desc', 'ChooseDescWord', 'silky', 'hairless', 'smooth-shaven', 'freshly-shaven')
 			$pc_descWordy['pubes'] = 'silky, freshly-shaven'
 			$pube_style['word'] = 'shaved'
 		elseif pcs_pubes <= 10:
 			lobkoef = 0
-			$pcs_pubes = 'You have stubble growing around your <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">pussy</a>. <<$pirspiz>><br><<$clitsize>>'
+			$pcs_pubes = 'You have stubble growing around your <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">pussy</a>. <<$pcs_piercings[''pussy_desc'']>><br><<$clitsize>>'
 			$pc_desc['pubes'] = func('body_desc', 'ChooseDescWord', 'stubbly', 'scratchy', 'roughly-stubbled')
 			$pc_descWordy['pubes'] = 'scratchy, roughly-stubbled'
 			$pube_style['word'] = 'stubble'
 		elseif pcs_pubes <= 15:
 			lobkoef = 0
-			$pcs_pubes = 'You have a tidy patch of hair growing above your <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">pussy</a>. <<$pirspiz>><br><<$clitsize>>'
+			$pcs_pubes = 'You have a tidy patch of hair growing above your <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">pussy</a>. <<$pcs_piercings[''pussy_desc'']>><br><<$clitsize>>'
 			$pc_desc['pubes'] = func('body_desc', 'ChooseDescWord', 'almost bare', 'barely-haired', 'well-kept')
 			$pc_descWordy['pubes'] = 'scratchy, roughly-stubbled'
 			$pube_style['word'] = 'patch'
@@ -879,60 +1171,55 @@ if $ARGS[0] = 'pubes':
 			$pube_style['word'] = 'trimmed'
 			if pubestyle = 9:
 				$pube_style['shape'] = 'bush'
-				$pcs_pubes = 'You have neatly trimmed section of hair around your <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">pussy</a>. <<$pirspiz>><br><<$clitsize>>'
+				$pcs_pubes = 'You have neatly trimmed section of hair around your <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">pussy</a>. <<$pcs_piercings[''pussy_desc'']>><br><<$clitsize>>'
 			elseif pubestyle = 12:
 				$pube_style['word'] = 'patch'
-				$pcs_pubes = 'You have cute little patch of bush at the top of your <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">pussy</a>. <<$pirspiz>><br><<$clitsize>>'
+				$pcs_pubes = 'You have cute little patch of bush at the top of your <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">pussy</a>. <<$pcs_piercings[''pussy_desc'']>><br><<$clitsize>>'
 			elseif pubestyle = 13:
 				$pube_style['shape'] = 'strip'
-				$pcs_pubes = 'You have tidy strip of bush covering your <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">pussy</a>. <<$pirspiz>><br><<$clitsize>>'
+				$pcs_pubes = 'You have tidy strip of bush covering your <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">pussy</a>. <<$pcs_piercings[''pussy_desc'']>><br><<$clitsize>>'
 			elseif pubestyle = 14:
 				$pube_style['shape'] = 'rectangle'
-				$pcs_pubes = 'You have neatly trimmed rectangle of hair just above your <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">pussy</a>. <<$pirspiz>><br><<$clitsize>>'
+				$pcs_pubes = 'You have neatly trimmed rectangle of hair just above your <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">pussy</a>. <<$pcs_piercings[''pussy_desc'']>><br><<$clitsize>>'
 			else
 				if pubestyle = 2:
 					$pube_style['shape'] = 'V'
-					$pcs_pubes = 'You have a cleanly trimmed mat of pubic hair in the <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">shape of a V</a>. <<$pirspiz>><br><<$clitsize>>'
+					$pcs_pubes = 'You have a cleanly trimmed mat of pubic hair in the <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">shape of a V</a>. <<$pcs_piercings[''pussy_desc'']>><br><<$clitsize>>'
 				elseif pubestyle = 3:
 					$pube_style['shape'] = 'triangle'
-					$pcs_pubes = 'You have a cleanly trimmed mat of pubic hair in the <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">shape of a triangle</a>. <<$pirspiz>><br><<$clitsize>>'
+					$pcs_pubes = 'You have a cleanly trimmed mat of pubic hair in the <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">shape of a triangle</a>. <<$pcs_piercings[''pussy_desc'']>><br><<$clitsize>>'
 				elseif pubestyle = 4:
 					$pube_style['shape'] = 'landing strip'
-					$pcs_pubes = 'You have a cleanly trimmed <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">landing strip</a> between your legs. <<$pirspiz>><br><<$clitsize>>'
+					$pcs_pubes = 'You have a cleanly trimmed <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">landing strip</a> between your legs. <<$pcs_piercings[''pussy_desc'']>><br><<$clitsize>>'
 				elseif pubestyle = 5:
 					$pube_style['shape'] = 'heart'
-					$pcs_pubes = 'You have a cleanly trimmed mat of pubic hair in the <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">shape of a heart</a>. <<$pirspiz>><br><<$clitsize>>'
+					$pcs_pubes = 'You have a cleanly trimmed mat of pubic hair in the <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">shape of a heart</a>. <<$pcs_piercings[''pussy_desc'']>><br><<$clitsize>>'
 				elseif pubestyle = 6:
 					$pube_style['shape'] = 'flame'
-					$pcs_pubes = 'You have a cleanly trimmed mat of pubic hair in the <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">shape of a flame</a>. <<$pirspiz>><br><<$clitsize>>'
+					$pcs_pubes = 'You have a cleanly trimmed mat of pubic hair in the <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">shape of a flame</a>. <<$pcs_piercings[''pussy_desc'']>><br><<$clitsize>>'
 				elseif pubestyle = 7:
 					$pube_style['shape'] = 'cross'
-					$pcs_pubes = 'You have a cleanly trimmed mat of pubic hair in the <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">shape of a cross</a>. <<$pirspiz>><br><<$clitsize>>'
+					$pcs_pubes = 'You have a cleanly trimmed mat of pubic hair in the <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">shape of a cross</a>. <<$pcs_piercings[''pussy_desc'']>><br><<$clitsize>>'
 				elseif pubestyle = 8:
 					$pube_style['shape'] = 'bush'
-					$pcs_pubes = 'You have a close-cropped lawn of pubic hair covering your <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">pussy</a>. <<$pirspiz>><br><<$clitsize>>'
+					$pcs_pubes = 'You have a close-cropped lawn of pubic hair covering your <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">pussy</a>. <<$pcs_piercings[''pussy_desc'']>><br><<$clitsize>>'
 				end
 			end
 			$pc_desc['pubes'] = func('body_desc', 'ChooseDescWord', 'wispy-haired', 'lightly-furred', 'trimmed', 'well-maintained')
 			$pc_descWordy['pubes'] = 'trimmed, well-kept'
 		elseif pcs_pubes <= 30:
 			lobkoef = 0
-			$pcs_pubes = 'You have a bushy but well-maintained mat of <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">pubic hair</a>. <<$pirspiz>><br><<$clitsize>>'
+			$pcs_pubes = 'You have a bushy but well-maintained mat of <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">pubic hair</a>. <<$pcs_piercings[''pussy_desc'']>><br><<$clitsize>>'
 			$pc_desc['pubes'] = func('body_desc', 'ChooseDescWord', 'furred', 'bushy', 'partially-maintained')
 			$pc_descWordy['pubes'] = 'bushy, thick'
 			$pube_style['word'] = 'bush'
-		elseif pcs_pubes >= 40:
+		else
 			lobkoef = 0
-			$pcs_pubes = 'You have a wild and unkempt jungle of <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">pubic hair</a>. <<$pirspiz>><br><<$clitsize>>'
+			$pcs_pubes = 'You have a wild and unkempt jungle of <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">pubic hair</a>. <<$pcs_piercings[''pussy_desc'']>><br><<$clitsize>>'
 			$pc_desc['pubes'] = func('body_desc', 'ChooseDescWord', 'thickly-furred', 'very hairy', 'ill-maintained')
 			$pc_descWordy['pubes'] = 'hairy, wild-maned'
 			$pube_style['word'] = 'untrimmed'
 		end
-	elseif lashair = 1:
-		$pc_desc['pubes'] = func('body_desc', 'ChooseDescWord', 'hairless', 'smooth', 'bald', 'silky-smooth')
-		$pc_descWordy['pubes'] = 'eternally silky-smooth'
-		$pcs_pubes = 'You have a smooth, <a href="exec:view''<<func(''$body_image'', ''pubes'')>>''">bald pussy</a>. <<$pirspiz>><br><<$clitsize>>'
-		$pube_style['word'] = 'shaved'
 	end
 	gs 'body_desc', 'pube_desc_update'
 end
@@ -975,7 +1262,7 @@ if $ARGS[0] = 'pube_desc_update':
 		end
 	elseif pcs_pubes <= 30:
 		$pube_desc = 'full bush'
-	elseif pcs_pubes <= 40:
+	else
 		$pube_desc = 'wild bush'
 	end
 end

+ 52 - 54
locations/brother.qsrc

@@ -12,7 +12,7 @@ if (npc_dob['A34'] mod 10000)/100 = month and (npc_dob['A34'] mod 100) > day: br
 if npc_QW['A34'] > 20 and npc_QW['A34'] < 25: npc_QW['A34'] = 20
 
 !! Variables used
-!! brothersawpirsF: Flag 0/1 Have your brother seen your nipple piercings
+!! brotherQW['piercing_nipples']: Flag 0/1 Have your brother seen your nipple piercings
 !! npc_rel['A34']: relationship
 !! npc_dick['A34']: size of brothers dick (14cm)
 !! brotherSex = 1 - You have purposely shown him your tits
@@ -221,65 +221,63 @@ if $ARGS[0] = 'start':
 	if $loc = 'sitrPar':
 		gs 'brother', 'brotherSexCount'
 
-		if locat['Fam_inGad'] = 0 and $clothingworntype ! 'nude' and brothersawpirsF=0 and locat['Stepdad'] ! 10 and npc_rel['A34'] > 85 and hour >= 18 and hour < 23 and pirsF > 0:
-			act 'Show off your nipple piercings':
-				*clr & cla
-				gs 'stat'
-				minut+=1
-				pcs_horny += 3
-				brothersawpirsF=1
-				npc_rel['A34'] += 3
-				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/kolka/9vh2v.jpg" ></center>'
-				'"Look what I have," you walk up to Kolka, your chest bare, showing off your nipple piercings. "Don''t be shy, you can touch them."'
-				'Your brother, dumbfounded by your suggestion, hesitantly touches the piercing on one of your nipples, causing you to moan softly.'
-				if brotherSex = 0:
-					'He abruptly withdraws his hand and apologizes for his rudeness. You have no choice but to apologize back; that wasn''t fair. You cover your chest.'
-					gs 'arousal', 'foreplay', 1, 'incest'
+		if locat['Fam_inGad'] = 0 and brotherQW['piercing_nipples'] = 0 and pcs_piercings['nipples'] > 0:
+			if $clothingworntype ! 'nude' and locat['Stepdad'] ! 10 and npc_rel['A34'] > 85 and hour >= 18 and hour < 23:
+				act 'Show off your nipple piercings':
+					*clr & cla
 					gs 'stat'
-				else
-					'Seeing the pleasure playing with your nipples brings you, he begins to play harder with your piercings, sometimes squeezing your exposed breasts.'
-					'After a minute, he releases your <<$titsize>> boobs, saying, "I really like your new additions."'
-					gs 'arousal', 'foreplay', 1, 'incest'
+					minut+=1
+					pcs_horny += 3
+					brotherQW['piercing_nipples'] = 1
+					npc_rel['A34'] += 3
+					'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/kolka/9vh2v.jpg" ></center>'
+					'"Look what I have," you walk up to Kolka, your chest bare, showing off your nipple piercings. "Don''t be shy, you can touch them."'
+					'Your brother, dumbfounded by your suggestion, hesitantly touches the piercing on one of your nipples, causing you to moan softly.'
+					if brotherSex = 0:
+						'He abruptly withdraws his hand and apologizes for his rudeness. You have no choice but to apologize back; that wasn''t fair. You cover your chest.'
+						gs 'arousal', 'foreplay', 1, 'incest'
+						gs 'stat'
+					else
+						'Seeing the pleasure playing with your nipples brings you, he begins to play harder with your piercings, sometimes squeezing your exposed breasts.'
+						'After a minute, he releases your <<$titsize>> boobs, saying, "I really like your new additions."'
+						gs 'arousal', 'foreplay', 1, 'incest'
+						gs 'stat'
+					end
+					gs 'arousal', 'end'
 					gs 'stat'
-				end
-				gs 'arousal', 'end'
-				gs 'stat'
-				act 'Leave':gt 'sitrPar'
-				exit
-			end
-		end
-
-		if locat['Fam_inGad'] = 0 and $clothingworntype = 'nude' and pirsF > 0 and brothersawpirsF = 0:
-			if brotherSex < 4:
-				if npc_rel['A34'] >= 70:
-					'"Looks good on you," your brother winks, and points toward your pierced nipples.'
-					if npc_rel['A34'] <50:npc_rel['A34'] += 1
-					brothersawpirsF=1
-					act 'Leave':gt 'sitrPar'
-					exit
-				else
-					'"I don''t get it, why would you do that to yourself?" Kolka asks, noticing your pierced nipples.'
-					brothersawpirsF=1
 					act 'Leave':gt 'sitrPar'
 					exit
 				end
-			else
-				if locat['Stepdad'] ! 10 and hour >= 18 and hour < 23:
-					'"How lovely," Kolka says as he plays with your pierced nipples.'
-					npc_rel['A34'] += 3
-					brothersawpirsF = 1
-					pcs_horny += 10
-					act 'Leave':gt 'sitrPar'
-					exit
-				elseif locat['Stepdad'] = 10 and hour >= 18 and hour < 23:
-					gs 'arousal','foreplay', 1
-					'"Beautiful," Kolka whispers while gently cupping your breasts and stroking your pierced nipples.'
-					npc_rel['A34'] += 3
-					brothersawpirsF=1
-					pcs_horny += 10
-					gs 'stat'
-					act 'Leave':gt 'sitrPar'
+
+			elseif $clothingworntype = 'nude':
+				if brotherSex < 4:
+					brotherQW['piercing_nipples'] = 1
+					if npc_rel['A34'] >= 70:
+						'"Looks good on you," your brother winks, and points toward your pierced nipples.'
+					else
+						'"I don''t get it, why would you do that to yourself?" Kolka asks, noticing your pierced nipples.'
+						if npc_rel['A34'] < 50: npc_rel['A34'] += 1
+					end
+
+					act 'Leave': gt 'sitrPar'
 					exit
+				else
+					if hour >= 18 and hour < 23:
+						npc_rel['A34'] += 3
+						brotherQW['piercing_nipples'] = 1
+						pcs_horny += 10
+						if locat['Stepdad'] ! 10:
+							'"How lovely," Kolka says as he plays with your pierced nipples.'
+						else
+							'"Beautiful," Kolka whispers while gently cupping your breasts and stroking your pierced nipples.'
+
+							gs 'arousal','foreplay', 1
+							gs 'stat'
+						end
+
+						act 'Leave': gt 'sitrPar'
+						exit
+					end
 				end
 			end
 		end

+ 1 - 1
locations/brother_voyeur.qsrc

@@ -13,7 +13,7 @@ razors_to_use['pussy'] = min(2, max(1, (max(0, pcs_pubes-shave_length))/20))
 razors_to_use['legs']  = min(3, max(1, (pcs_leghair*4)/20))
 
 !! Variables used
-!! brothersawpirsF: Flag 0/1 Have your brother seen your nipple piercings
+!! brotherQW['piercing_nipples']: Flag 0/1 Have your brother seen your nipple piercings
 !! npc_rel['A34']: relationship
 !! npc_dick['A34']: size of brothers dick (14cm)
 !! brotherSex: Number of sexual interactions with brother (cap at 10)

+ 12 - 19
locations/dimaEv.qsrc

@@ -490,19 +490,16 @@ if $ARGS[0] = 'dimkaabuse6':
 	minut += 20
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/dimka/sex/nip.jpg"></center>'
 	'Dimka make you lie down, and binds you until you are fully immobilized. He looks at you with a pensive expression. "Ok... Hm... I think that you don''t understand your position... Hmm, let''s see if you can learn something" then he clamps your nipples in small vices and tightens the jaws. It hurts, but then you see what he has prepared, and cry in terror. Suddenly he stabs a needle through your nipple. You howl in pain, but Dimka spits on you as you cry and sticks in another needle forcing you to howl again. You yell and swear at this fucking sadist, but Dimka coldly continues an to your ever growing horror, connect them to a battery. Little shocks run through your body, enhancing the sensation of helplessness. After an eternity of sobbing, pain and pleading. He releases you.'
-	if pirsF > 0:
+	if pcs_piercings['nipple'] > 0:
 		'When he gets bored of watching you in pain, Dimka pulls the needles out of your nipples and sets you free.'
 		gs 'pain', 7, 'nipples', 'pierce'
-	end
-	if pirsF = 0:
-		pirsF = 1
-		pirsF1_owned = 1
-		pierWearCount += 1
+	else
 		gs 'pain', 9, 'nipples', 'pierce'
+		gs 'piercing_management', 'add', 'nipple', 1
 		'When he finally gets bored, Dimka pierces your nipples with metal bars, then sets you free.'
 	end
 	gs 'stat'
-	act 'Leave':gt 'pav_residential'
+	act 'Leave': gt 'pav_residential'
 end
 
 if $ARGS[0] = 'dimkaabuse7':
@@ -513,13 +510,11 @@ if $ARGS[0] = 'dimkaabuse7':
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/dimka/sex/ton.jpg"></center>'
 	'Dimka binds you until you are fully immobilized. "As a slut, you have a dirty tongue. That can''t be, you must be clean for me. So... I am going to teach you a lesson in personal hygiene." You try to recoil in horror at the needles in his hands, but you are trapped. He grabs hold of your tongue and suddenly pushes a needle through it. You squeal and twitch from the sharp pain. Dimka amuses himself by sticking needles through your tongue, lips and cheeks. The more you howl in pain, the more excited he gets.'
-	if pirsA > 0:'When he gets bored of watching you in pain, Dimka pulls the needles out of your tongue and sets you free.'
-	if pirsA = 0:
-		pirsA = 1
-		pirsA1_owned = 1
-		pierWearCount += 1
+	if pcs_piercings['tongue'] > 0:
+		'When he gets bored of watching you in pain, Dimka pulls the needles out of your tongue and sets you free.'
+	else
+		gs 'piercing_management', 'add', 'tongue', 1
 		'When he gets bored of watching you in pain, Dimka pulls the needles, pierces your tongue with a metal bar, then sets you free'
-		pierCount += 1
 	end
 	act 'Leave':gt 'pav_residential'
 end
@@ -532,13 +527,11 @@ if $ARGS[0] = 'dimkaabuse8':
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/dimka/sex/vag.jpg"></center>'
 	'Dimka binds you until you are fully immobilized. "You know, a lot of people think that a piercing in the cunt enhances the pleasure during sex... Something about more blood flow... So... I was thinking, that you as my personal fucktoy need a little encouragement to come here... So let''s begin." Then he picks up a safety pin and pricks your labia. You howled at the sharp unbearable pain, struggling against your bonds, but Dimka does not calm down until he has sealed your entire vagina with safety pins.'
-	if pirsG > 0:'When he gets bored of watching you in pain, Dimka takes the pins out of your pussy and sets you free.'
-	if pirsG = 0:
-		pirsG = 1
-		pirsG1_owned = 1
-		pierWearCount += 1
+	if pcs_piercings['pussy'] > 0:
+		'When he gets bored of watching you in pain, Dimka takes the pins out of your pussy and sets you free.'
+	else
+		gs 'piercing_management', 'add', 'tongue', 1
 		'When he gets bored of watching you in pain, Dimka takes the pins out of your pussy, pierces your clitoris, then sets you free'
-		pierCount += 1
 	end
 	act 'Leave':gt 'pav_residential'
 end

+ 2 - 2
locations/dimaHome.qsrc

@@ -176,7 +176,7 @@ if $ARGS[0] = 'bathroom2':
 	'This restroom has a large sink area and tile floors. The toilet sits along the far wall. You also notice a walk-in shower and large bathtub. You imagine how luxurious it must feel to bathe in here.'
 	'You can do your hair and makeup in the <a href="exec:gt ''mirror'', ''start''">mirror</a> above the sink.'
 	*nl
-	if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0:'<a href="exec:dynamic $pirManage">Manage Piercings</a>'
+	gs 'piercing_management', 'set_manage_string'
 
 	if mc_inventory['shampoo'] > 0:
 		act 'Take a shower (0:15)':
@@ -315,7 +315,7 @@ if $ARGS[0] = 'dimka_master_bathroom':
 	'The master bathroom is a huge space with a large sink area and tile floors. The toilet sits along the far wall. You can''t help but feel impressed by the size of the walk-in shower and deep bathtub. It all looks very expensive.'
 	'You can do your hair and makeup in the <a href="exec:gt ''mirror'', ''start''">mirror</a> above the sink.'
 	*nl
-	if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0:'<a href="exec:dynamic $pirManage">Manage Piercings</a>'
+	gs 'piercing_management', 'set_manage_string'
 	if mc_inventory['shampoo'] > 0:
 		act 'Take a shower':
 			*clr & cla

+ 1 - 1
locations/din_bad.qsrc

@@ -211,7 +211,7 @@ if $ARGS[0] = 'd_bag':
 	end
 	if FUNC('Cum_Manage', 'check_private') = 1:
 		dynamic $toymanage
-		if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0: act 'Manage your piercings': gt 'piercing_management', 'main'
+		gs 'piercing_management', 'set_manage_act'
 	end
 	*nl
 	if mc_inventory['amphetamine'] > 0:	'You have <b><<mc_inventory[''amphetamine'']>></b> tablets of amphetamine left in your purse. <a href="exec: gs ''drugs'', ''amphetamine'' & gs ''din_bad'', ''d_bag''">Take One</a>'

+ 1 - 1
locations/din_van.qsrc

@@ -1200,7 +1200,7 @@ if $ARGS[0] = 'private':
 		'<a href="exec:gs ''drugs'', ''breastcream'' & gt $loc, $loc_arg">Apply breast cream.</a> Uses left: <<mc_inventory[''breastcream'']>>.'
 	end
 
-	if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0:'<a href="exec:*clr & cla & gs ''din_van'', ''pirManage''">Manage your piercings</a>'
+	gs 'piercing_management', 'set_manage_string'
 
 	if fillimplant = 1:
 		if siliconeBag >= 1:

+ 81 - 72
locations/father.qsrc

@@ -63,80 +63,89 @@ if hcolfatherremember ! pcs_haircol:
 end
 
 ! tongue piercing
-if pirsA > 0 and pirsA < 10000 and pirsAfather = 0 and pirsadaytalk ! daystart:
-	pirseerand = rand(1,100)
-	pirsadaytalk = daystart
-	if pirseerand >= 75:
-		'Your stepfather looks at your mouth with a curious look as you greet him. "<<$pcs_nickname>>, do you have something shiny in your mouth?"'
-		act'"No"':
-			cla
-			'You shake your head: "Umm, no! No I don''t!"'
-			'You quickly turn away before he can get a good look at your tongue piercing.'
-			act 'Move away':gt $loc, $loc_arg
+if stepfatherQW['piercing_talkday'] ! daystart:
+	if pcs_piercings['tongue'] > 0 and stepfatherQW['piercing_tongue'] = 0:
+		temp_rand = rand(1,100)
+		stepfatherQW['piercing_talkday'] = daystart
+		if temp_rand >= 75:
+			'Your stepfather looks at your mouth with a curious look as you greet him. "<<$pcs_nickname>>, do you have something shiny in your mouth?"'
+			act'"No"':
+				cla
+				'You shake your head: "Umm, no! No I don''t!"'
+				'You quickly turn away before he can get a good look at your tongue piercing.'
+				act 'Move away':gt $loc, $loc_arg
+			end
+
+			act'"Yes, would you like to see it?"':
+				*clr & cla
+				stepfatherQW['piercing_tongue'] = 1
+				gs'stat'
+				'<center><img <<$set_imgh>> src="images/pc/body/piercings/a<<pcs_piercings[''tongue'']>>.jpg" ></center>'
+				'You open your mouth and stick out your tongue and wiggle it at him showing him your piercing.'
+				if TouchedByFather = 0:'Your stepfather shakes his head: "<<$pcs_nickname>>, tongue piercings are only for lewd women who use their mouth to please men."'
+				if TouchedByFather > 0:'Your stepfather grins: "Nice, I bet you could make someone feel really good with that..."'
+				act 'Move away':gt $loc, $loc_arg
+			end
+			exit
 		end
+		killvar 'temp_rand'
+	end
 
-		act'"Yes, would you like to see it?"':
+	! lip piercing
+	if pcs_piercings['lip'] > 0 and stepfatherQW['piercing_lip'] = 0:
+		stepfatherQW['piercing_talkday'] = daystart
+		'Your stepfather takes a long look at your mouth, specifically at your new piercing. He seems confused and asks: "Why did you get that?"'
+		act '"Don''t you like it? I thought it looked kind of cute."':
 			*clr & cla
-			pirsAfather = 1
+			stepfatherQW['piercing_lip'] = 1
 			gs'stat'
-			'<center><img <<$set_imgh>> src="images/pc/body/piercings/a<<pirsA>>.jpg" ></center>'
-			'You open your mouth and stick out your tongue and wiggle it at him showing him your piercing.'
-			if TouchedByFather = 0:'Your stepfather shakes his head: "<<$pcs_nickname>>, tongue piercings are only for lewd women who use their mouth to please men."'
-			if TouchedByFather > 0:'Your stepfather grins: "Nice, I bet you could make someone feel really good with that..."'
-			act 'Move away':gt $loc, $loc_arg
+			'<center><img <<$set_imgh>> src="images/pc/body/piercings/b<<pcs_piercings[''lip'']>>.jpg" ></center>'
+			'You shrug. "I don''t know... I just like the way lip rings look, so I got one. Don''t you think it looks cute?"'
+			if TouchedByFather = 0:'Your stepfather shakes his head: "Kids these days, always adding new holes to themselves..."'
+
+			if TouchedByFather > 0:'Your stepfather grins: "I must admit, it does look sexy on you."'
+			act 'Move away':gt 'father'
 		end
 		exit
 	end
-end
-
-! lip piercing
-if pirsB > 0 and pirsB < 10000 and pirsBfather = 0 and pirsbdaytalk ! daystart:
-	pirsadbytalk = daystart
-	'Your stepfather takes a long look at your mouth, specifically at your new piercing. He seems confused and asks: "Why did you get that?"'
-	act '"Don''t you like it? I thought it looked kind of cute."':
-		*clr & cla
-		pirsBfather = 1
-		gs'stat'
-		'<center><img <<$set_imgh>> src="images/pc/body/piercings/b<<pirsB>>.jpg" ></center>'
-		'You shrug. "I don''t know... I just like the way lip rings look, so I got one. Don''t you think it looks cute?"'
-		if TouchedByFather = 0:'Your stepfather shakes his head: "Kids these days, always adding new holes to themselves..."'
 
-		if TouchedByFather > 0:'Your stepfather grins: "I must admit, it does look sexy on you."'
-		act 'Move away':gt 'father'
+	! earrings
+	if pcs_piercings['ears'] > 0 and stepfatherQW['piercing_ears'] = 0:
+		stepfatherQW['piercing_talkday'] = daystart
+		stepfatherQW['piercing_ears'] = 1
+		'Your stepfather looks at your ears, noting your earrings: "I see you got your ears pierced, Your earrings are very cute."'
 	end
-	exit
-end
 
-! earrings
-if pirsC > 0 and pirsC < 10000 and pirsCfather=0:
-	pirsCfather = 1
-	'Your stepfather looks at your ears, noting your earrings: "I see you got your ears pierced, Your earrings are very cute."'
-end
+	! nose ring
+	if pcs_piercings['nose'] > 0 and stepfatherQW['piercing_nose'] = 0:
+		stepfatherQW['piercing_talkday'] = daystart
+		stepfatherQW['piercing_nose'] = 1
+		'Your stepfather looks a bit shocked at your nose ring: "Jesus, <<$pcs_nickname>>, what is- why?! I understand putting a ring in a bull''s nose to lead them by, but on a person? There''s no reason to do that!"'
+	end
 
-! nose ring
-if pirsD > 0 and pirsD < 10000 and pirsDfather=0:
-	pirsDfather = 1
-	'Your stepfather looks a bit shocked at your nose ring: "Jesus, <<$pcs_nickname>>, what is- why?! I understand putting a ring in a bull''s nose to lead them by, but on a person? There''s no reason to do that!"'
-end
+	! eyebrow piercing
+	if pcs_piercings['brow'] > 0 and stepfatherQW['piercing_brow'] = 0:
+		stepfatherQW['piercing_talkday'] = daystart
+		stepfatherQW['piercing_brow'] = 1
+		'Your stepfather looks surprised when he sees your eyebrow piercing: "<<$pcs_nickname>>, why would you want that thing in your eyebrow?" He shakes his head in exasperation. "Kids these days..."'
+	end
 
-! eyebrow piercing
-if pirsE > 0 and pirsE < 10000 and pirsEfather=0:
-	pirsEfather=1
-	'Your stepfather looks surprised when he sees your eyebrow piercing: "<<$pcs_nickname>>, why would you want that thing in your eyebrow?" He shakes his head in exasperation. "Kids these days..."'
-end
+	! lip tattoo
+	if pcs_tattoos['lip'] > 0 and stepfatherQW['tattoo_lip'] = 0 and npc_rel['A28']>=60:
+		act 'Show him your lip tattoo':
+			*clr & cla
+			minut += 1
+			stepfatherQW['piercing_talkday'] = daystart
+			stepfatherQW['tattoo_lip'] = 1
+			gs 'stat'
 
-! lip tattoo
-if tatlip>0 and fatherTatLip=0 and npc_rel['A28']>=60:
-	act 'Show him your lip tattoo':
-		*clr & cla
-		fatherTatLip = 1
-		minut += 1
-		gs'stat'
-		'<center><img <<$set_imgh>> src="images/pc/body/tattoos/lip/tatlip<<tatlip>>.jpg" ></center>'
-		if tatlip = 2: $textFatherTatLip = 'A tattoo on the inside of your lip?! That must''ve hurt like hell... it is cute, though.'
-		if tatlip ! 2: $textFatherTatLip = 'That''s crazy! Why would you get something like that written on you, much less there?! No one would even think of doing that when I was your age.'
-		'You pull your lip down, showing your stepfather the tattoo on the inside of your lip. Your stepfather looks surprised: "<<$textFatherTatLip>>"'
-		act 'Move away':gt $loc, $loc_arg
+			'<center><img <<$set_imgh>> src="images/pc/body/tattoos/lip/tatlip<<pcs_tattoos[''lip'']>>.jpg" ></center>'
+			if pcs_tattoos['lip'] = 2: $textFatherTatLip = 'A tattoo on the inside of your lip?! That must''ve hurt like hell... it is cute, though.'
+			if pcs_tattoos['lip'] ! 2: $textFatherTatLip = 'That''s crazy! Why would you get something like that written on you, much less there?! No one would even think of doing that when I was your age.'
+			'You pull your lip down, showing your stepfather the tattoo on the inside of your lip. Your stepfather looks surprised: "<<$textFatherTatLip>>"'
+			killvar '$textFatherTatLip'
+			act 'Move away': gt $loc, $loc_arg
+		end
 	end
 end
 
@@ -546,27 +555,27 @@ end
 ! WD: Fix old nude variable
 if $clothingworntype = 'nude':
 	menu_off = 1
-	if tatvag > 0 and Putsawtatvag = 0 and $pantyworntype = 'none':
+	if pcs_tattoos['pussy'] > 0 and stepfatherQW['tattoo_pussy'] = 0 and $pantyworntype = 'none':
 		if npc_rel['A28'] >= 70:
 			'With your naked body on display, your pubic tattoo catches your stepfather''s eye. "Wow, that is one hard to miss tattoo. Obviously you didn''t get that one just for yourself", he says as he moves towards you and has a closer look.'
 			npc_rel['A28'] += 1
-			Putsawtatvag = 1
+			stepfatherQW['tattoo_pussy'] = 1
 			act 'Move away':gt $loc, $loc_arg
 			exit
 		else
 			'"Damn tattoo, I can''t believe you would soil your body like that." Your stepfather obviously doesn''t like the tattoo you have in your pubic area. '
 			npc_rel['A28'] -= 1
-			Putsawtatvag = 1
+			stepfatherQW['tattoo_pussy'] = 1
 			act 'Move away':gt $loc, $loc_arg
 			exit
 		end
 	end
-	if pirsF > 0 and pirsF < 10000 and PutsawpirsF = 0:
+	if pcs_piercings['nipples'] > 0 and stepfatherQW['piercing_nipples'] = 0:
 		if npc_sex['A28'] = 0:
 			if npc_rel['A28'] >= 60:
 				'"Hey, those look nice on you!" your stepfather says, nodding at your nipple piercings. He seems to like them.'
 				npc_rel['A28'] += 3
-				PutsawpirsF = 1
+				stepfatherQW['piercing_nipples'] = 1
 				act 'Move away':gt $loc, $loc_arg
 				exit
 			else
@@ -579,13 +588,13 @@ if $clothingworntype = 'nude':
 			if hour >= 18 and hour < 21:
 				'"Hey, those look nice on you!" your stepfather says, nodding at your nipple piercings. He seems to like them.'
 				npc_rel['A28'] += 3
-				PutsawpirsF = 1
+				stepfatherQW['piercing_nipples'] = 1
 				act 'Move away':gt $loc, $loc_arg
 				exit
 			else
 				'"Wow, those are sexy!" your stepfather says, as he reaches out and touches your nipple piercings. You can''t help but let out an involuntary groan. He admires them for a moment, rubbing his fingers on your nipples and lightly tugging at them before he lets you go.'
 				npc_rel['A28'] += 3
-				PutsawpirsF = 1
+				stepfatherQW['piercing_nipples'] = 1
 				pcs_horny += 10
 				act 'Move away':gt $loc, $loc_arg
 				exit
@@ -609,15 +618,15 @@ if $clothingworntype = 'nude':
 	act 'Move away':gt 'bedrPar'
 end
 
-if npc_sex['A28'] ! 0 and pirsG > 0 and pirsG < 10000 and PutsawpirsG = 0 and (hour <= 18 or hour > 21):
+if npc_sex['A28'] ! 0 and pcs_piercings['pussy'] > 0 and stepfatherQW['piercing_pussy'] = 0 and (hour <= 18 or hour > 21):
 	act 'Show off your pubic piercing':
 		*clr & cla
 		menu_off = 1
 		minut += 5
 		pcs_horny += 15
-		gs'stat'
-		PutsawpirsG = 1
-		'<center><img <<$set_imgh>> src="images/pc/body/piercings/g<<pirsG>>.jpg" ></center>'
+		gs 'stat'
+		stepfatherQW['piercing_pussy'] = 1
+		'<center><img <<$set_imgh>> src="images/pc/body/piercings/g<<pcs_piercings[''pussy'']>>.jpg" ></center>'
 		'Moving closer to your stepfather, you tease him by showing him your pussy. He doesn''t know you have a pubic piercing yet, and you plan on showing it off today. As you absently rub your fingers across your labia, the glint of metal catches his eye and he pushes your hand away before you get a chance to tell him about it. "Well well, what do we have here?" he mutters, gently rubbing his fingers over the shiny new piercing. "<<$pcs_nickname>>, you are such a horny devil... I love it, we''re going to have a lot of fun with this." He spends the next few minutes rubbing and tugging on your new piercing, making lewd comments the whole time. After that he reluctantly lets you go, leaving you hornier than before.'
 		act 'Move away':gt $loc, $loc_arg
 	end

+ 1 - 1
locations/gas_station_gp_117.qsrc

@@ -392,7 +392,7 @@ if $ARGS[0] = 'work':
 	end
 
 	'<center><video autoplay src="images/shared/prostitution/car/normal/negotiation/search.mp4"></video></center>'
-	'You are walking near the gas station waiting for a client. On a scale from 1 to 10 you look like a <<pcs_hotcat>>. A good looking girl will always earn more money.'+iif(pcs_makeup < 2, ' You should '+iif(pcs_makeup = 0, 'fix your make-up', 'wear make-up')+' to increase your earnings.', ' Wearing make-up is a good way to increase your earnings.')+iif(pirsA > 0 and pirsA < 10000, ' Your tongue piercing will make a blowjob more enjoyable for most men, that could bring in a small bonus.', '')+iif($pantyworntype = 'eroto' and CloSkirtShortness > 4, ' Wearing such a short skirt reveals your slutty panties to your potential customers.', '')+iif(pcs_apprnc = -10, ' You don''t look healthy and should seek treatment for your STD. There is a high chance that a guy won''t touch you without a condom.', '')
+	'You are walking near the gas station waiting for a client. On a scale from 1 to 10 you look like a <<pcs_hotcat>>. A good looking girl will always earn more money.'+iif(pcs_makeup < 2, ' You should '+iif(pcs_makeup = 0, 'fix your make-up', 'wear make-up')+' to increase your earnings.', ' Wearing make-up is a good way to increase your earnings.') + iif(pcs_piercings['tongue'] > 0, ' Your tongue piercing will make a blowjob more enjoyable for most men, that could bring in a small bonus.', '')+iif($pantyworntype = 'eroto' and CloSkirtShortness > 4, ' Wearing such a short skirt reveals your slutty panties to your potential customers.', '')+iif(pcs_apprnc = -10, ' You don''t look healthy and should seek treatment for your STD. There is a high chance that a guy won''t touch you without a condom.', '')
 
 	if klismaday ! daystart: '<br>Nearly all men won''t like dirty anal sex, even with a condom, and it''s probably a safe bet that they won''t pay a lot for it. You should start giving yourself an enema before going to work.'
 	if mesec > 0: '<br>You are having your period, most men will pay less for vaginal sex during that time of the month.'

+ 16 - 7
locations/gopskver.qsrc

@@ -849,12 +849,15 @@ if $ARGS[0] = 'BjBeerVag':
 	else
 		'Dan runs his hand over your bald pussy, and chuckles with satisfaction: "Very nice, <<$pcs_nickname>>. You got it all nice and smooth for us, so we can see what we''re fucking next."'
 	end
-	if pirsG > 0:
+	if pcs_piercings['pussy'] > 0:
 		pcs_horny += 10
 		'The guys are intrigued by your intimate piercing, and playfully rub and tug at it, making you blush and moan with excitement.'
 	end
-	if tatvag > 0 or tatupb > 0: 'Vitek grins approvingly when he finds your pubic tattoo: "Already branded, so everyone can see what a good little whore you are! That''s good, you won''t be able to give anyone the wrong idea this way..."'
-	if tatvag = 0 and tatupb = 0:'Vitek runs his hand over your smooth skin and mutters: "It''s time you get a proper brand, <<$pcs_nickname>>... no one can see what a huge slut you are, if you don''t get a proper tattoo. Maybe we''ll have to take you down to the city one day..."'
+	if pcs_tattoos['pussy'] > 0 or pcs_tattoos['tramp'] > 0:
+		'Vitek grins approvingly when he finds your pubic tattoo: "Already branded, so everyone can see what a good little whore you are! That''s good, you won''t be able to give anyone the wrong idea this way..."'
+	else
+		'Vitek runs his hand over your smooth skin and mutters: "It''s time you get a proper brand, <<$pcs_nickname>>... no one can see what a huge slut you are, if you don''t get a proper tattoo. Maybe we''ll have to take you down to the city one day..."'
+	end
 	'After fondling your pussy for another while, your pussy ends up being quite wet from their fondlings. The guys grin at one another: "She''s ready, boys. Who wants to go first?"'
 
 	act 'Get fucked on the ground':
@@ -964,10 +967,16 @@ if $ARGS[0] = 'BjBeerAnal':
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/park/sex/gop/bjbeeranal.jpg" ></center>'
 	'The guys guide you to the by now familiar bench at the back of the park again. The boys unceremoniously push you over towards the bench, and make you kneel on top of it.'
 	'You dutifully await on the bench with your head down, slowly pulling your clothes to the side to expose your ass for the boys. You feel a shiver roll down your spine, while you feel them silently judging you.'
-	if pcs_ass <= 5: 'You hear a frantic discussion behind you, the guys are trying to figure out who gets to fuck your tight unexperienced ass first. Vasily ends up being the lucky one.'
-	if pcs_ass > 5: 'You hear a frantic discussion behind you, the guys are trying to figure out who gets to fuck your ass first. Vasily ends up being the lucky one.'
-	if tatupb > 0: 'When he sees the tattoo on your lower back, Vasily pats your ass approvingly: "Nice tramp stamp, whore."'
-	if tatupb = 0: 'Seeing your bare back, Vasily mutters irritably: "A slut such as yourself should really get a tattoo back there... that way, people can recognize you for what you really are."'
+	if pcs_ass <= 5:
+		'You hear a frantic discussion behind you, the guys are trying to figure out who gets to fuck your tight unexperienced ass first. Vasily ends up being the lucky one.'
+	else
+		'You hear a frantic discussion behind you, the guys are trying to figure out who gets to fuck your ass first. Vasily ends up being the lucky one.'
+	end
+	if pcs_tattoos['tramp'] > 0:
+		'When he sees the tattoo on your lower back, Vasily pats your ass approvingly: "Nice tramp stamp, whore."'
+	else
+		'Seeing your bare back, Vasily mutters irritably: "A slut such as yourself should really get a tattoo back there... that way, people can recognize you for what you really are."'
+	end
 	if analplugin = 1: analplugin = 0 & analplugout = 1 & '"You won''t be needing this!" Vasily grins, and he pulls out your butt plug with a loud pop. He''s quite rough with it, and you grimace at the sudden extrusion.'
 	'Once he thinks you''re ready, Vasily roughly pulls your buttocks to the sides with a grin on his face and looks at your sphincter, before spitting on it.'
 

+ 1 - 1
locations/gschool_grounds.qsrc

@@ -774,7 +774,7 @@ if $ARGS[0] = 'change_room':
 		end
 	end
 	*nl
-	'The locker room is accessed through the school gym and is left unlocked until 18:30 each day for the use of students using the sports ground for training and events outside school hours. The room is cold, damp and filled with lockers, benches and not much else. You can <a href="exec: gt ''wardrobe'', ''start''">change your outfit</a> by the lockers here'+iif(pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0, ', and <a href="exec:dynamic $pirManage">manage your piercings</a>', '.')+''
+	'The locker room is accessed through the school gym and is left unlocked until 18:30 each day for the use of students using the sports ground for training and events outside school hours. The room is cold, damp and filled with lockers, benches and not much else. You can <a href="exec: gt ''wardrobe'', ''start''">change your outfit</a> by the lockers here' + iif(pcs_piercings['any'], ', and <a href="exec: gt ''piercing_management'', ''main''">manage your piercings</a>', '') + '.'
 	*nl
 
 	if (hour = 18 and minut >= 30) or hour > 18:

+ 4 - 4
locations/hunterLoveSex.qsrc

@@ -30,7 +30,7 @@ end &! --- din_hunters_bj_bonusH1 ---
 
 if $ARGS[0] = 'din_hunters_bjH1':
 	hunters_bj_times += 1
-	if pirsA > 0 and pirsA < 10000:
+	if pcs_piercings['tongue'] > 0:
 		$textsexkotov = 'flick your tongue over the tip of his cock, feeling it lengthen and harden from your ministrations'
 	else
 		$textsexkotov = 'lick cock head with tongue'
@@ -103,7 +103,7 @@ end &! --- din_hunters_bj_bonusH2 ---
 
 if $ARGS[0] = 'din_hunters_bjH2':
 	hunters_bj_times += 1
-	if pirsA > 0 and pirsA < 10000:
+	if pcs_piercings['tongue'] > 0:
 		$textsexkotov = 'wrapping your lips around his cock head, you massage his shaft with the barbell in your tongue. You love the feeling of his thick member reacting to your cock sucking skills.'
 	else
 		$textsexkotov = 'smack your lips as you suck on his cockhead'
@@ -3948,7 +3948,7 @@ end &! --- din_hunters_bj_bonus2 ---
 
 if $ARGS[0] = 'din_hunters_bj2':
 	hunters_bj_times += 1
-	if pirsA > 0 and pirsA < 10000:
+	if pcs_piercings['tongue'] > 0:
 		$textsexkotov = 'smacking your lips you suck at his cockhead, feeling the barbell in your tongue moving along his thick shaft.'
 	else
 		$textsexkotov = 'smacking your lips, so suck the head'
@@ -4017,7 +4017,7 @@ end &! --- din_hunters_bj_bonus1 ---
 if $ARGS[0] = 'din_hunters_bj1':
 	minut += 5
 	hunters_bj_times += 1
-	if pirsA > 0 and pirsA < 10000:
+	if pcs_piercings['tongue'] > 0:
 		$textsexkotov = 'use your tongue to lick his head, feeling the barbell rub up and down his member'
 	else
 		$textsexkotov = 'use your tongue to lick his head'

+ 12 - 24
locations/intro_city_select.qsrc

@@ -410,8 +410,7 @@ if $ARGS[0] = 'nerdqueen':
 		!!----- INVENTRORY -----!!
 		mc_inventory['cosmetics']	= 10
 		mc_inventory['razor']		= 10
-		pirsC = 2
-		PirsC2_owned = 1
+		gs 'piercing_management', 'add', 'ears', 2
 		$currentpursetype = 'fashionista'
 		currentpursenumber = 13
 		fashionista_purses[13] = 1
@@ -656,8 +655,7 @@ if $ARGS[0] = 'jock':
 	mc_inventory['scrunchies']	= 10
 	mc_inventory['razor']		= 10
 	mc_inventory['tampons']		= 20
-	pirsC = 1
-	PirsC1_owned = 1
+	gs 'piercing_management', 'add', 'ears', 1
 	$currentpursetype	= 'fashionista'
 	currentpursenumber	= 11
 	fashionista_purses[11] = 1
@@ -949,8 +947,7 @@ if $ARGS[0] = 'socialite':
 		pcs_mass['body']		= 60
 
 		!!----- INVENTRORY -----!!
-		pirsC = 1
-		PirsC1_owned = 1
+		gs 'piercing_management', 'add', 'ears', 1
 		$currentpursetype	= 'fashionista'
 		currentpursenumber	= 4
 		fashionista_purses[4] = 1
@@ -1011,8 +1008,7 @@ elseif $ARGS[0] = 'beautiful':
 		mc_inventory['eyelash_fake']	= 10
 		mc_inventory['eyelash_mink']	= 2
 		mc_inventory['suncream']		= 10
-		pirsC = 2
-		PirsC2_owned = 1
+		gs 'piercing_management', 'add', 'ears', 2
 		$currentpursetype	= 'fashionista'
 		currentpursenumber	= 9
 		fashionista_purses[9] = 1
@@ -1151,12 +1147,9 @@ elseif $ARGS[0] = 'bimbo':
 		mc_inventory['tampons']			= 10
 		mc_inventory['eyelash_fake']	= 20
 		mc_inventory['eyelash_mink']	= 5
-		pirsC = 2
-		PirsC2_owned = 1
-		pirsN = 1
-		PirsN1_owned = 1
-		pirsA = 2
-		PirsA2_owned = 1
+		gs 'piercing_management', 'add', 'ears', 2
+		gs 'piercing_management', 'add', 'navel', 1
+		gs 'piercing_management', 'add', 'tongue', 2
 		$currentpursetype = 'cats'
 		currentpursenumber = 2
 		cats_purses[2] = 1
@@ -1240,8 +1233,7 @@ if $ARGS[0] = 'gopnik':
 	mc_inventory['razor']		= 10
 	mc_inventory['tampons']		= 20
 	mc_inventory['cigarettes']	= 20
-	pirsC = 1
-	PirsC1_owned = 1
+	gs 'piercing_management', 'add', 'ears', 1
 	fakepassport = 1
 
 	!!----- RELATIONSHIPS -----!!
@@ -1359,8 +1351,7 @@ elseif $ARGS[0] = 'troublemaker':
 		pcs_mass['body']		= 49
 
 		!!----- INVENTRORY -----!!
-		pirsD = 4
-		PirsD4_owned = 1
+		gs 'piercing_management', 'add', 'nose', 4
 		$currentpursetype	= 'dolls'
 		currentpursenumber	= 16
 		dolls_purses[16] = 1
@@ -1425,10 +1416,8 @@ elseif $ARGS[0] = 'alternative':
 		!!----- INVENTRORY -----!!
 		mc_inventory['cosmetics']		= 20
 		mc_inventory['eyelash_fake']	= 5
-		pirsD = 5
-		PirsD5_owned = 1
-		pirsA = 2
-		PirsA2_owned = 1
+		gs 'piercing_management', 'add', 'nose', 5
+		gs 'piercing_management', 'add', 'tongue', 2
 		$currentpursetype	= 'dolls'
 		currentpursenumber	= 15
 		dolls_purses[15] = 1
@@ -1698,8 +1687,7 @@ elseif $ARGS[0] = 'slut':
 		mc_inventory['makeup_wipes']	= 10
 		mc_inventory['eyelash_fake']	= 20
 		mc_inventory['razor']			= 10
-		pirsC = 2
-		PirsC2_owned = 1
+		gs 'piercing_management', 'add', 'ears', 2
 		$currentpursetype	= 'cats'
 		currentpursenumber	= 10
 		cats_purses[10] = 1

+ 0 - 1
locations/intro_functions.qsrc

@@ -127,7 +127,6 @@ if $ARGS[0] = 'set_base_stats':
 	bag = 0
 
 	!!----- RELATIONSHIPS -----!!
-	brothersawpirsF = 0
 	if $start_type['loc'] = 'sg':
 		grupTipe = 5
 		grupvalue[1] = 100

+ 15 - 28
locations/intro_sg_select.qsrc

@@ -495,8 +495,7 @@ if $ARGS[0] = 'nerdqueen':
 		!!----- INVENTORY -----!!
 		mc_inventory['cosmetics']	= 10
 		mc_inventory['razor']		= 10
-		pirsC = 2
-		PirsC2_owned = 1
+		gs 'piercing_management', 'add', 'ears', 2
 		$currentpursetype = 'fashionista'
 		currentpursenumber = 13
 		fashionista_purses[13] = 1
@@ -744,8 +743,7 @@ if $ARGS[0] = 'jock':
 	mc_inventory['razor']			= 10
 	mc_inventory['tampons']			= 20
 	mc_inventory['sanitary_pads']	= 20
-	pirsC = 1
-	PirsC1_owned = 1
+	gs 'piercing_management', 'add', 'ears', 1
 	$currentpursetype = 'fashionista'
 	currentpursenumber = 11
 	fashionista_purses[11] = 1
@@ -1052,8 +1050,7 @@ if $ARGS[0] = 'socialite':
 		pcs_mass['body']		= 60
 
 		!!----- INVENTRORY -----!!
-		pirsC = 1
-		PirsC1_owned = 1
+		gs 'piercing_management', 'add', 'ears', 1
 		$currentpursetype = 'fashionista'
 		currentpursenumber = 4
 		fashionista_purses[4] = 1
@@ -1117,8 +1114,7 @@ elseif $ARGS[0] = 'beautiful':
 		mc_inventory['eyelash_fake']	= 10
 		mc_inventory['eyelash_mink']	= 2
 		mc_inventory['suncream']		= 10
-		pirsC = 2
-		PirsC2_owned = 1
+		gs 'piercing_management', 'add', 'ears', 2
 		$currentpursetype = 'fashionista'
 		currentpursenumber = 9
 		fashionista_purses[9] = 1
@@ -1222,10 +1218,10 @@ elseif $ARGS[0] = 'bimbo':
 		$start_type['cat'] = 'bimbo'
 
 		!!----- SKILLS -----!!
-		
+
 		!! Bimbo
 		bimbolevel		 = 1
-		
+
 		! Attributes
 		pcs_sprt		-= 10
 		pcs_intel		-= 10
@@ -1266,12 +1262,9 @@ elseif $ARGS[0] = 'bimbo':
 		mc_inventory['eyelash_fake']	= 10
 		mc_inventory['eyelash_mink']	= 2
 		mc_inventory['suncream']		= 10
-		pirsC = 2
-		PirsC2_owned = 1
-		pirsN = 1
-		PirsN1_owned = 1
-		pirsA = 2
-		PirsA2_owned = 1
+		gs 'piercing_management', 'add', 'ears', 2
+		gs 'piercing_management', 'add', 'navel', 1
+		gs 'piercing_management', 'add', 'tongue', 2
 		$currentpursetype = 'cats'
 		currentpursenumber = 2
 		cats_purses[2] = 1
@@ -1359,8 +1352,7 @@ if $ARGS[0] = 'gopnik':
 	mc_inventory['tampons'] 		= 20	& !First set to 10 then to 20
 	mc_inventory['sanitary_pads']	= 30
 	mc_inventory['cigarettes'] 		= 20
-	pirsC = 1
-	PirsC1_owned = 1
+	gs 'piercing_management', 'add', 'ears', 1
 	fakepassport = 1
 
 	!!----- RELATIONSHIPS -----!!
@@ -1487,8 +1479,7 @@ elseif $ARGS[0] = 'troublemaker':
 		pcs_mass['body']		= 49
 
 		!!----- INVENTRORY -----!!
-		pirsD = 4
-		PirsD4_owned = 1
+		gs 'piercing_management', 'add', 'nose', 4
 		$currentpursetype = 'dolls'
 		currentpursenumber = 16
 		dolls_purses[16] = 1
@@ -1554,8 +1545,7 @@ elseif $ARGS[0] = 'vitekgf':
 		pcs_mass['body']		= 55
 
 		!!----- INVENTRORY -----!!
-		pirsD = 3
-		PirsD3_owned = 1
+		gs 'piercing_management', 'add', 'nose', 3
 		$currentpursetype = 'dolls'
 		currentpursenumber = 19
 		dolls_purses[19] = 1
@@ -1648,10 +1638,8 @@ elseif $ARGS[0] = 'alternative':
 		!!----- INVENTRORY -----!!
 		mc_inventory['cosmetics']		= 20
 		mc_inventory['eyelash_fake']	= 5
-		pirsD = 5
-		PirsD5_owned = 1
-		pirsA = 2
-		PirsA2_owned = 1
+		gs 'piercing_management', 'add', 'nose', 5
+		gs 'piercing_management', 'add', 'tongue', 2
 		$currentpursetype = 'dolls'
 		currentpursenumber = 15
 		dolls_purses[15] = 1
@@ -1940,8 +1928,7 @@ elseif $ARGS[0] = 'slut':
 		mc_inventory['razor']			= 10
 		mc_inventory['tampons']			= 40
 		mc_inventory['sanitary_pads']	= 0
-		pirsC = 2
-		PirsC2_owned = 1
+		gs 'piercing_management', 'add', 'ears', 2
 		$currentpursetype = 'cats'
 		currentpursenumber = 10
 		cats_purses[10] = 1

+ 1 - 2
locations/intro_sg_select_custom.qsrc

@@ -180,8 +180,7 @@ if $ARGS[0] = 'none':
 	!!items Reset
 	fakepassport = 0
 	BookVars['fantasy_pages'] = 0
-	pirsC = 0
-	PirsC1_owned = 0
+	gs 'piercing_management', 'full_reset'
 
 	!!apprnc & sex stat reset
 	pcs_vag		= 10

+ 7 - 7
locations/katjaEv.qsrc

@@ -101,7 +101,7 @@ if $ARGS[0] = '1':
 	menu_off = 1
 	gs 'stat'
 
-	if katjaQW['horny'] > 60 and rand (1,3) = 1 and katjaQW['pantiesQWstage'] > 0: 
+	if katjaQW['horny'] > 60 and rand (1,3) = 1 and katjaQW['pantiesQWstage'] > 0:
 		if katjaQW['pantiesQWstage'] >= 5 or katjaQW['take_of_panties_day'] = daystart:
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/katja_go_home_no_tanga.jpg"></center>'
 			'You walk through the streets of Pavlovsk together with Katja to her house. You chatted about all sorts of trivia and had fun. Suddenly Katja stopped and turned around to look at you, giving you a mischievous look and lifting her skirt, showing you her tender pussy, she seems to have forgotten her panties.'
@@ -115,16 +115,16 @@ if $ARGS[0] = '1':
 			'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
 		else
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/katja_home.jpg"></center>'
-		end	
+		end
 		'You walk through the streets of Pavlovsk together with Katja to her house. You chat about all sorts of trivia and have fun.'
 	end
 
 	if AlbinaQW['StarletsJoined'] > 0 and AlbinaQW['StarletsShutDown'] = 0:'Katja is very interested in how you are doing with your pro-dancing. In her opinion, it is a very private team and there have been many rumors about Albina''s team.'
 	if kotovLoveQW > 0:'Katja asks you about your relationship with Victor Kotov, expressing her opinion about it. According to her, Victor is rude and a true gangster.'
 
-	if pirsA > 0 and pirsA < 10000 and katjaQW['know_Pirced_tongue'] = 0:
+	if pcs_piercings['tongue'] > 0 and katjaQW['know_Pirced_tongue'] = 0:
 		katjaQW['know_Pirced_tongue'] = 1
-		if katjaQW['QWstage'] > 2: katjaQW['horny'] += 10		
+		if katjaQW['QWstage'] > 2: katjaQW['horny'] += 10
 		'Katja noticed that you have a pierced tongue and chattered all the way trying to find out all about it.'
 	end
 
@@ -177,7 +177,7 @@ if $ARGS[0] = 'kathan':
 			'Good question. What can a pair of hot teen girls do with a limited (in theory) budget? "Well, Katja, we can..."'
 		end
 
-		if lernHome > 0 and katjaQW['QWstage'] >= 2: 
+		if lernHome > 0 and katjaQW['QWstage'] >= 2:
 			act '"Let''s do our homework, Katja"':
 				if $loc = 'mey_home':
 					gt 'KatjaHomeTalk', 'homework'
@@ -410,7 +410,7 @@ if $ARGS[0] = 'kathan14':
 					'"Oh really? Because I am pretty sure you will love to be... on your knees... between my legs."'
 					'You then take a step back and release the embarrassed girl. Around you, people are whispering. Some smile, most frown and after a silent moment, an embarrassed Natasha runs out of the shop. A blushing Katja seems to go to say something but stops, grabs your hand and follows the nerd girl. OK, it seems that it is time to look for something else to do.'
 				end
-				
+
 				if hour >= 20:
 					act 'It''s too late, accompany Katja to her home':npc_rel['A16'] -= 5 & minut += 5 & gt 'pav_residential'
 				else
@@ -997,7 +997,7 @@ if $ARGS[0] = 'kathan23':
 		random_event = rand(1,100)
 		gs 'stat'
 		gs 'exp_gain', 'prcptn', rand(0,1)
-		
+
 		if random_event <= pcs_prcptn:
 			gs 'exp_gain', 'prcptn', rand(0,1)
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/KWT8.jpg"></center>'

+ 36 - 36
locations/katja_procedural.qsrc

@@ -1,7 +1,7 @@
 # katja_procedural
 !2022/08/02
 
-!!This files governs Katja''s procedural actions that are called form many places. 
+!!This files governs Katja''s procedural actions that are called form many places.
 
 !! The model used for Katja''s porn scene was originally the porn actress Faye Reagan, lately Red Fox/Michelle H have also been used for a lot of content. But several other have also been used.
 
@@ -27,7 +27,7 @@
 
 !! katjaQW['couple'] is set to 1 when you agree to be a couple.
 !! katjaQW['faithful'] is sent to 1 if you are a couple and agree not to have sex with others (unless you both participate)
-!! katjaQW['cheat_warning'] is set the first time Katja confronts the player because the caught them cheating and to 2 after the player have been caught so many times that Katja warns them that she will also starts to sleep around. 
+!! katjaQW['cheat_warning'] is set the first time Katja confronts the player because the caught them cheating and to 2 after the player have been caught so many times that Katja warns them that she will also starts to sleep around.
 !! katjaQW['cheat_times'] the number of times since her last waring that Katja is certain that you cheated on her.
 
 !! katjaQW['sex_clossedness'] 0 mean no restriction on sex scenes with Katja, 1 mean only scenes with Katja and the player character are available, 2 mean that the player character wont have sex with Katja
@@ -175,7 +175,7 @@ if $ARGS[0] = 'cikl':
 		!! During the uni year, Katja might start masturbate even if the player have not started her quest.
 		if yearstart > 1 and katjaQW['masturbates'] = 0 and rand(0,50) = 50: katjaQW['masturbates'] = 1 & katjaQW['slut'] += 5
 	end
-	
+
 	!! Start the countdown for Katja''s relationship talk
 	if yearstart > 1 and npc_sex['A14'] > 0 and katjaQW['relationship_count_start'] = 0: katjaQW['relationship_count_start'] = daystart
 
@@ -200,8 +200,8 @@ if $ARGS[0] = 'cikl':
 
 	!!Resetting if Katja have shown you that she is not wearing panties at the disco. The reason to not use a daystart variable, is the if you show it very late Friday it might prevent you from seeing it Saturday (daystart can change during the event)
 	if katjaQW['no_panties_at_disco'] > 0: katjaQW['no_panties_at_disco'] = 0
-	
-	!!Out commented Katja becoming pregnant until more content for a pregnant Katja is done 
+
+	!!Out commented Katja becoming pregnant until more content for a pregnant Katja is done
 	!!if katjaPreg = 0 and month >= 2 and year > 2016: katjaPreg = 1
 
 	!! Degeneration of katja slut if it is high
@@ -219,10 +219,10 @@ if $ARGS[0] = 'cikl':
 		gs 'npc_set_preference', 'A14', 'short_skirt', 'like'
 	elseif katjaQW['slut'] > 100 and katjaQW['preference_change'] = 1:
 		katjaQW['preference_change'] = 2
-		gs 'npc_set_preference', 'A14', 'clothes_thin', 'like'
+		gs 'npc_set_preference', 'A14', 'clothes_thin_high', 'like'
 		gs 'npc_set_preference', 'A14', 'short_skirt', 'love'
-	end	
-	
+	end
+
 	!! Changing of preferences as Katja slowly get convinced to not wear panties at school
 	if katjaQW['pantiesQWstage'] > 0 and katjaQW['preference_change_pantQW'] = 0:
 		katjaQW['preference_change_pantQW'] = 1
@@ -230,11 +230,11 @@ if $ARGS[0] = 'cikl':
 		gs 'npc_set_preference', 'A14', 'clothes_exposed_bra', 'neutral'
 		gs 'npc_set_preference', 'A14', 'clothes_exposed_panties', 'neutral'
 		gs 'npc_set_preference', 'A14', 'clothes_exposed_pussy',	'dislike'
-		gs 'npc_set_preference', 'A14', 'clothes_exposed_tits', 'dislike'	
+		gs 'npc_set_preference', 'A14', 'clothes_exposed_tits', 'dislike'
 	elseif katjaQW['pantiesQWstage'] > 4 and katjaQW['preference_change_pantQW'] = 1:
 		katjaQW['preference_change_pantQW'] = 2
 		gs 'npc_set_preference', 'A14', 'clothes_exposed_pussy',	'neutral'
-		gs 'npc_set_preference', 'A14', 'clothes_exposed_tits', 'neutral'	
+		gs 'npc_set_preference', 'A14', 'clothes_exposed_tits', 'neutral'
 	end
 
 	!! Check if she had sex with other after being at the disco alone
@@ -254,7 +254,7 @@ if $ARGS[0] = 'cikl':
 			if rand(2,katjaQW['coke_stage']) >= 5: gs 'katja_procedural', 'take_cocaine', 1, 1
 		end
 	end
-	
+
 	!! Taking care of her cocaine tolerance/addiction
 	if katjaQW['coke_stage'] = 1 and katjaQW['coke_point'] > 3:
 		katjaQW['coke_stage'] = 2
@@ -263,26 +263,26 @@ if $ARGS[0] = 'cikl':
 	elseif katjaQW['coke_stage'] = 3 and katjaQW['coke_point'] > 15:
 		katjaQW['coke_stage'] = 4
 	elseif katjaQW['coke_stage'] = 4:
-		if katjaQW['coke_point'] > 25: 
+		if katjaQW['coke_point'] > 25:
 			katjaQW['coke_stage'] = 5
 		elseif katjaQW['coke_point'] < 8:
 			katjaQW['coke_stage'] = 3
 		end
 	elseif katjaQW['coke_stage'] = 5:
-		if katjaQW['coke_point'] > 35: 
+		if katjaQW['coke_point'] > 35:
 			katjaQW['coke_stage'] = 6
 		elseif katjaQW['coke_point'] < 25:
 			katjaQW['coke_stage'] = 5
 		end
 	elseif katjaQW['coke_stage'] = 6:
-		if katjaQW['coke_point'] > 50: 
+		if katjaQW['coke_point'] > 50:
 			katjaQW['coke_stage'] = 7
 		elseif katjaQW['coke_point'] < 35:
 			katjaQW['coke_stage'] = 5
 		end
 	elseif katjaQW['coke_stage'] = 7:
 		if katjaQW['coke_day'] + 1 < daystart and rand(0,3)= 0: gs 'katja_procedural', 'take_cocaine', 1, 1
-		if katjaQW['coke_point'] > 70: 
+		if katjaQW['coke_point'] > 70:
 			katjaQW['coke_stage'] = 8
 		elseif katjaQW['coke_point'] < 45:
 			katjaQW['coke_stage'] = 6
@@ -291,9 +291,9 @@ if $ARGS[0] = 'cikl':
 		if katjaQW['coke_day'] + 1 < daystart: katjaQW['financial_strain'] += rand(0,1) & gs 'katja_procedural', 'take_cocaine', 1, 1
 		if katjaQW['coke_point'] < 55: katjaQW['coke_stage'] = 7
 	end
-			
+
 	if katjaQW['coke_day'] + 7 < daystart and katjaQW['coke_day_lapse'] = 1: katjaQW['coke_day_lapse'] = 0 & katjaQW['coke_point'] -= 1
-	if katjaQW['coke_point'] < 0: katjaQW['coke_point'] = 0 
+	if katjaQW['coke_point'] < 0: katjaQW['coke_point'] = 0
 end
 
 if $ARGS[0] = 'face_color':
@@ -384,7 +384,7 @@ if $ARGS[0] = 'makeup':
 end
 
 if $ARGS[0] = 'willing_to_be_naughty':
-	!! A version of katjaQW['slut'] modified for drug and alcohol use to make her more willing to do stuff when drunk and/or high 
+	!! A version of katjaQW['slut'] modified for drug and alcohol use to make her more willing to do stuff when drunk and/or high
 	temp = KatjaQW['slut']
 	if katjaQW['under_influnece_of_cocaine'] > 0: temp += 10/katjaQW['coke_stage']
 	temp += katjaQW['drinks']
@@ -407,7 +407,7 @@ if $ARGS[0] = 'take_cocaine':
 	if ARGS[1] = 0:
 		katjaQW['under_influnece_of_cocaine'] += 2
 		if katjaQW['coke_stage'] > 0:
-			katjaQW['horny'] += 4*(11-katjaQW['coke_stage']) 
+			katjaQW['horny'] += 4*(11-katjaQW['coke_stage'])
 		else
 			katjaQW['horny'] += 40
 		end
@@ -447,7 +447,7 @@ if $ARGS[0] = 'sex_set':
 					elseif npc_vag['A14'] < rand(10,20):
 						 npc_vag['A14'] += 1
 					end
-				else	
+				else
 					if rand(0,5) = 0:
 						if npc_vag['A14'] < rand(10,20): npc_vag['A14'] += 2
 						if katjaQW['pussy_sex'] = 0: katjaQW['pussy_sex'] = 1
@@ -460,7 +460,7 @@ if $ARGS[0] = 'sex_set':
 					elseif npc_ass['A14'] < rand(10,20):
 						 npc_ass['A14'] += 1
 					end
-				else	
+				else
 					if rand(0,7) = 0:
 						if npc_ass['A14'] < rand(10,20): npc_vag['A14'] += 2
 						if katjaQW['anal_sex'] = 0: katjaQW['anal_sex'] = 1
@@ -470,10 +470,10 @@ if $ARGS[0] = 'sex_set':
 
 			if npc_throat['A14'] > 0 and rand(0,7) > 0:
 				if npc_throat['A14'] < rand(8,22): npc_throat['A14'] += 1
-			else	
+			else
 				if rand(0,3) = 0 and npc_throat['A14'] < rand(8,22): npc_throat['A14'] += 1
 			end
-			
+
 			!! It this case Katja will have sex with at most 2 of the boys present
 			katjaQW['simultanous_boys'] = rand(1,min(2,ARGS[1]))
 			katjaQW['slut'] += katjaQW['simultanous_boys']*5
@@ -487,7 +487,7 @@ if $ARGS[0] = 'sex_set':
 					 npc_vag['A14'] += 1
 				end
 				if katjaQW['creampie'] > 0 and rand(0,5) = 0: katjaQW['creampie'] += 1
-			else	
+			else
 				if rand(0,5) = 0:
 					if npc_vag['A14'] < rand(10,20): npc_vag['A14'] += 2
 					if katjaQW['pussy_sex'] = 0: katjaQW['pussy_sex'] = 1
@@ -500,7 +500,7 @@ if $ARGS[0] = 'sex_set':
 				elseif npc_ass['A14'] < rand(10,20):
 					 npc_ass['A14'] += 1
 				end
-			else	
+			else
 				if rand(0,7) = 0:
 					if npc_ass['A14'] < rand(10,20): npc_vag['A14'] += 2
 					if katjaQW['anal_sex'] = 0: katjaQW['anal_sex'] = 1
@@ -509,17 +509,17 @@ if $ARGS[0] = 'sex_set':
 
 			if npc_throat['A14'] > 0 and rand(0,7) > 0:
 				if npc_throat['A14'] < rand(8,22): npc_throat['A14'] += 1
-			else	
+			else
 				if rand(0,3) = 0 and npc_throat['A14'] < rand(8,22): npc_throat['A14'] += 1
 			end
 
 			!! In this case she can have sex with all the boys present
 			katjaQW['simultanous_boys'] += max(0,rand(0,ARGS[1] - katjaQW['simultanous_boys']))
-				
+
 			katjaQW['slut'] += min(katjaQW['simultanous_boys'],ARGS[1])*3
 		end
 	end
-	
+
 	if ARGS[2] > 0:
 		!! Katja was in a situation with one or more girls where she might have had sex if some of them.
 		if katjaQW['simultanous_girls'] = 0 and rand(0,3) <= katjaQW['slut']/33:
@@ -527,22 +527,22 @@ if $ARGS[0] = 'sex_set':
 			if ARGS[1] = 0:
 				if npc_vag['A14'] > 0 and rand(0,5) > 0 and npc_vag['A14'] < 15:
 					 npc_vag['A14'] += 1
-				else	
+				else
 					if rand(0,9) = 0: npc_vag['A14'] += 1
 				end
 				if npc_ass['A14'] > 0 and rand(0,7) > 0 and npc_ass['A14'] < 15:
 					 npc_ass['A14'] += 1
-				else	
+				else
 					if rand(0,14) = 0: npc_ass['A14'] += 1
 				end
 
 				if npc_throat['A14'] > 0 and rand(0,2) = 0 and npc_throat['A14'] < 15:
 					npc_throat['A14'] += 1
-				else	
+				else
 					if rand(0,6) = 0: npc_throat['A14'] += 1
 				end
 			end
-			
+
 			!! In this case Katja will have sex with at most 3 of the girls present
 			katjaQW['simultanous_girls'] = rand(1,min(3,ARGS[1]))
 			katjaQW['slut'] += katjaQW['simultanous_girls']*4
@@ -550,24 +550,24 @@ if $ARGS[0] = 'sex_set':
 			!! Katja have had sex with one or more girls before
 			if npc_vag['A14'] > 0 and rand(0,5) > 0:
 				 npc_vag['A14'] += 1
-			else	
+			else
 				if rand(0,9) = 0: npc_vag['A14'] += 1
 			end
 			if npc_ass['A14'] > 0 and rand(0,7) > 0:
 				 npc_ass['A14'] += 1
-			else	
+			else
 				if rand(0,14) = 0: npc_ass['A14'] += 1
 			end
 
 			if npc_throat['A14'] > 0 and rand(0,2) = 0:
 				npc_throat['A14'] += 1
-			else	
+			else
 				if rand(0,6) = 0: npc_throat['A14'] += 1
 			end
 
 			!! In this case she can have sex with all the girls present
 			katjaQW['simultanous_girls'] += max(0,rand(0,ARGS[2] - katjaQW['simultanous_girls']))
-				
+
 			katjaQW['slut'] += min(katjaQW['simultanous_gitls'],ARGS[2])*2
 		end
 	end

+ 8 - 8
locations/kotovSex.qsrc

@@ -89,8 +89,8 @@ If $ARGS[0] = '':
 			end
 		end
 
-		if pirsA > 0 and pirsA < 1000 and KotovKnowPirsA = 0:
-			KotovKnowPirsA = 1
+		if pcs_piercings['tongue'] > 0 and ekQW['piercing_tongue'] = 0:
+			ekQW['piercing_tongue'] = 1
 			'Vitek notices a glimmer in your mouth when you talk, and asks: "Wait, what''s that in your mouth?"'
 			'You stick out your tongue and show him your piercing. He grins at you: "Oh, nice... aren''t those supposed to make it feel better when you suck a dick? Is that why you got it?"'
 			'You act insulted and give him a weak slap on his chest: "Viktor, come on!"'
@@ -171,8 +171,8 @@ If $ARGS[0] = '':
 			gs 'stat'
 			act 'Stay on your hands and knees for him':gt 'kotovSex', 'dog<<rand (1,4)>>'
 		end
-		if pirsA > 0 and pirsA < 1000 and KotovKnowPirsA = 0:
-			KotovKnowPirsA = 1
+		if pcs_piercings['tongue'] > 0 and ekQW['piercing_tongue'] = 0:
+			ekQW['piercing_tongue'] = 1
 			'Vitek notices a glimmer in your mouth when you talk, and asks: "Wait, what''s that in your mouth?"'
 			'You stick out your tongue and show him your piercing. He grins at you: "Oh, nice! Aren''t those supposed to make it feel better for the guy when you suck his dick? Is that why you got it?"'
 			'You act insulted and give him a weak slap on his chest: "Viktor, come on!"'
@@ -186,7 +186,7 @@ if $ARGS[0] = 'bj':
 	menu_off = 1
 	bjrand = rand(0, 6)
 	kotovBJtimes += 1
-	if pirsA > 0 and pirsA < 1000:
+	if pcs_piercings['tongue'] > 0:
 		$textsexkotov = 'caressing his cock with your tongue piercing as much as you can, knowing how much he loves it'
 	else
 		$textsexkotov = 'caressing his cock with the tip of your tongue as much as you can'
@@ -644,7 +644,7 @@ if $ARGS[0] = 'cum6':
 		gs 'arousal', 'end'
 		gs 'stat'
 		act 'Relax in his room':gt 'kotovdom','after_sex'
-		
+
 	elseif protect ! 1:
 		'<center><img <<$set_imgh>> src="images/shared/sex/cum/cum6.jpg"></center>'
 		'Suddenly Vitek''s thrusts become shorter and more intense, and while he groans you feel hot jets of his sperm being squirted into your body. Eventually he pulls out, and watches his cum slowly dribble out of your pussy with a satisfied grin.'
@@ -1615,7 +1615,7 @@ if $ARGS[0] = 'bj2':
 	*clr & cla
 	menu_off = 1
 	kotov_bj_times += 1
-	if pirsA > 0 and pirsA < 1000:
+	if pcs_piercings['tongue'] > 0:
 		$textsexkotov = 'close your <<$pc_desc[''lips'']>> lips lips around the head of his cock and suck him off eagerly, making sure you rub the barbell piercing in your tongue against his dick as often as you can'
 	else
 		$textsexkotov = 'close your <<$pc_desc[''lips'']>> lips lips around the head of his cock and suck him off eagerly'
@@ -1644,7 +1644,7 @@ if $ARGS[0] = 'bj1':
 	*clr & cla
 	menu_off = 1
 	kotov_bj_times += 1
-	if pirsA > 0 and pirsA < 1000:
+	if pcs_piercings['tongue'] > 0:
 		$textsexkotov = 'lick the head of his dick with your tongue. Since he''s so infatuated with your tongue piercing, you make an extra effort in making sure he feels the barbell rubbing against his cock'
 	else
 		$textsexkotov = 'lick the head of his cock with your tongue'

+ 1 - 1
locations/ludahome.qsrc

@@ -355,7 +355,7 @@ if $ARGS[0] = 'bathroom':
 	'You first notice the god-awful pea-green tile, with a white sink just in front of a large shelf and mirror. You don''t know who picked it, but they obviously don''t have any good taste. Other than that, it is a reasonably typical bathroom.'
 	'You can do your hair and makeup in the <a href="exec: gt ''mirror'', ''start''">mirror</a> above the sink.'
 	*nl
-	if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0:'<a href="exec:dynamic $pirManage">Manage Piercings</a>'
+	gs 'piercing_management', 'set_manage_string'
 	act 'Leave the bathroom': gt 'ludahome', 'hallway'
 	act 'Take a shower':
 		*clr & cla

+ 1 - 1
locations/natbelapt.qsrc

@@ -508,7 +508,7 @@ if $ARGS[0] = 'bathroom':
 	'The toilet sits along the wall next to a small bathtub.'
 	'You can do your hair and makeup in the <a href="exec:gt ''mirror'', ''start''">mirror</a> above the sink.'
 
-	if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0: '<a href="exec:dynamic $pirManage">Manage Piercings</a>'
+	gs 'piercing_management', 'set_manage_string'
 	act 'Leave the bathroom': gt 'natbelapt','hallway'
 	act 'Take a shower':
 		*clr & cla

+ 57 - 57
locations/nichGala.qsrc

@@ -11,7 +11,7 @@
 !! nichGalaDisabled
 
 !! nichGalaContractDay: the day the contract has been signed
-!! nichGalaContract: 
+!! nichGalaContract:
 !!						0: 	the contract has not been offered
 !!						10: the contract has been offered and not answered (Sveta aksked for time to think about it)
 !!						20: the contract has been offered and rejected
@@ -38,10 +38,10 @@
 
 if $ARGS[0] = 'start' or $ARGS[0] = '':
 	'<center><img <<$set_imgh>> src="images/characters/city/gala/02.jpg"></center>'
-	
+
 	$nichTemp = func('nichUtil','npcActivity','gala')
-	
-	if $nichTemp = 'sleep': 
+
+	if $nichTemp = 'sleep':
 		'Gala is sleeping. It would be a bad idea to wake her up now.'
 	elseif $nichTemp = 'snooze':
 		'Gala is still in her bed. She doesn''t seem to be in the mood to talk.'
@@ -67,7 +67,7 @@ if $ARGS[0] = 'start' or $ARGS[0] = '':
 	elseif $nichTemp = 'friend':
 		!! TODO
 	end
-	
+
 	act 'Back':
 		gt $loc, 'return'
 	end
@@ -77,11 +77,11 @@ elseif $ARGS[0] = 'approach':
 	'<center><img <<$set_imgh>> src="images/characters/city/gala/02.jpg"></center>'
 	'You wait for Gala to notice you, then you approach her and curtsy.'
 	'"<<$pcs_nickname>>, what is it?"'
-	
+
 	if nichGalaTraining = 1 and nichGalaContract = 0 and nichGalaTrainCounter >= 5:
 		gt 'nichGala', 'contractOffer'
 	end
-	
+
 	if nichGalaContractActive = 1:
 		act 'Slave entertainment':
 			gt 'nichGala','slaveGeneric'
@@ -99,7 +99,7 @@ elseif $ARGS[0] = 'approach':
 			end
 		end
 	end
-	
+
 	if nichGalaContract = 10:
 		act 'Slave offer':
 			cla
@@ -116,7 +116,7 @@ elseif $ARGS[0] = 'approach':
 			end
 		end
 	end
-	
+
 	if nichGalaTarasPlan = 1:
 		act 'Taras Plan':
 			cla & *clr
@@ -132,7 +132,7 @@ elseif $ARGS[0] = 'approach':
 			act 'Ignore plan': gt $loc, 'return'
 		end
 	end
-	
+
 	act 'Back':
 		gt $loc, 'return'
 	end
@@ -151,9 +151,9 @@ elseif $ARGS[0] = 'tarasPlan':
 		'After another five minutes you hear both of them leaving the apartment. Apparently they packed some belongings of Gala in an hurry.'
 		minut += 5
 		nichGalaTarasPlan = 10
-		
+
 		gs 'nichUtil','disableNPC','Gala'
-		
+
 		gs 'stat'
 		act 'Continue': gt $loc, 'return'
 	elseif ARGS[1] = 100:
@@ -205,7 +205,7 @@ elseif $ARGS[0] = 'contractOfferAccept':
 	end
 elseif $ARGS[0] = 'contractOfferRead':
 	'<center><img <<$set_imgh>> src="images/characters/city/gala/slave/contract.jpg"></center>'
-	
+
 	if nichGalaContractRead = 0:
 		'You start reading the first few lines:'
 		''
@@ -262,7 +262,7 @@ elseif $ARGS[0] = 'contractOfferRead':
 			'<font color = red>Apparently you are not smart enough to understand this section of the contract.</font>'
 		end
 	end
-	
+
 	if nichGalaContractRead < 7:
 		act 'Read further':
 			nichGalaContractRead += 1
@@ -365,7 +365,7 @@ elseif $ARGS[0] = 'slaveIntro':
 		'Gala then wraps your hands in pieces of clothes and secures them with tape, preventing you from reaching your nipples and removing the clamps.'
 		'Then she disconnects you from the chain that leads connects you to the ceiling and lets you fall on your side.'
 		act 'Continue': gt 'nichGala','slaveIntro',10
-	elseif ARGS[1] = 2:	
+	elseif ARGS[1] = 2:
 		gs 'pain',10,'nipples','pinch'
 		minut += 5
 		gs 'stat'
@@ -377,7 +377,7 @@ elseif $ARGS[0] = 'slaveIntro':
 		'It takes a few minutes for your screams to become silent sobs. Your nipples still hurt badly but since your blood can''t flow freely there they become increasingly numb.'
 		'You then see Gala stepping over your body and placing. Her shoes are directly in front of your face. Apparently she was standing behind you the whole time.'
 		act 'Continue': gt 'nichGala','slaveIntro',10
-	elseif ARGS[1] = 10:		
+	elseif ARGS[1] = 10:
 		'<center><img <<$set_imgh>> src="images/characters/city/gala/slave/taras/intro3.jpg"></center>'
 		'"There is a valuable lesson for you to learn here, slave: you are here for my entertainment. And you being in discomfort is very entertaining to me. If you don''t like that you better provide another form of entertainment."'
 		'She walks behind you. From the corner of you eye you see that she kneels down at your back when she returns. Suddenly you feel a pressure against your butthole.'
@@ -391,7 +391,7 @@ elseif $ARGS[0] = 'slaveIntro':
 		minut += 5
 		gs 'stat'
 		act 'Continue': gt 'nichGala','slaveIntro',20
-	elseif ARGS[1] = 20:	
+	elseif ARGS[1] = 20:
 		'<center><img <<$set_imgh>> src="images/characters/city/gala/slave/taras/intro2.jpg"></center>'
 		'"I have things to do now. You will stay here and think about how much you are my property, how much you want to serve me and how bad you want to avoid punishment."'
 		'She closes the door behind her as she leaves the room. You hear the key being turned. You are alone now.'
@@ -497,7 +497,7 @@ elseif $ARGS[0] = 'slaveDoc':
 		'"Fine. I need her full attention. She can''t be distracted by a kid. She is too young for one anyways."'
 		'She comes over to you and pets your head.'
 		'"You will understand that that''s the best for you in time."'
-		
+
 		act 'Next': gt 'nichGala','slaveDoc',7
 		if nichCheat > 0:
 			act 'Cheat: Stay pregnant': gt 'nichGala','slaveDoc',8
@@ -507,7 +507,7 @@ elseif $ARGS[0] = 'slaveDoc':
 		if knowpreg = 1:
 			'You watch in horror as the nurse prepares everything to end your pregnancy. They are seriously going to kill your baby!'
 		else
-			'You watch the nurse prepare everything to end your pregnancy. You didn''t know that you were pregnant until know and therefore you are not quite sure what to think about this procedure.'	
+			'You watch the nurse prepare everything to end your pregnancy. You didn''t know that you were pregnant until know and therefore you are not quite sure what to think about this procedure.'
 		end
 		'You get a shot to sedate your lower body. You can''t see what is going on and you can''t feel anything.'
 		'After about half an hour the doctor announces that he is finished.'
@@ -558,7 +558,7 @@ elseif $ARGS[0] = 'slaveDoc':
 		gs 'nichUtil','freeDay'
 		nichGalaDoc = 1
 		minut += 5 & gs 'stat'
-		act 'Back home': minut += 30 & gt 'nichApartment'		
+		act 'Back home': minut += 30 & gt 'nichApartment'
 	end
 elseif $ARGS[0] = 'slaveImplant':
 	!! Punishment for having the implant activated
@@ -578,7 +578,7 @@ elseif $ARGS[0] = 'slaveImplant':
 				$nichGalaTxt += '"You naughty little bitch. I told you not to whore around the city. At least you managed to keep your legs closed for a few weeks."'
 				nichGalaImplantLevel = max(nichGalaImplantLevel-1,1)
 			end
-			
+
 			if nichGalaImplantLevel = 1:
 				gt 'nichGala','slaveImplant',10
 			elseif nichGalaImplantLevel = 2:
@@ -590,7 +590,7 @@ elseif $ARGS[0] = 'slaveImplant':
 					gt 'nichGala','slaveImplant',120
 				end
 			end
-			
+
 		end
 	elseif ARGS[1] = 1:
 		!! The first time this happens
@@ -658,40 +658,40 @@ elseif $ARGS[0] = 'slaveImplant':
 		act 'Continue': gt 'nichGala','slaveImplant',101
 	elseif ARGS[1] = 101:
 		nichTempOverwrite = 0
-		if tatvag = 0: 
-			tatvag = 47
-			'<center><img <<$set_imgh>> src="images/pc/body/tattoos/pubic/tatvag<<tatvag>>.jpg"></center>'
-		elseif tatass = 0:
-			tatass = 19
-			'<center><img <<$set_imgh>> src="images/pc/body/tattoos/ass/tatass<<tatass>>.jpg"></center>'	
-		elseif tatleg = 0:
-			tatleg = 37
-			'<center><img <<$set_imgh>> src="images/pc/body/tattoos/legs/tatleg<<tatleg>>.jpg"></center>'
-		elseif tatupb = 0:
-			tatupb = 13
-			'<center><img <<$set_imgh>> src="images/pc/body/tattoos/trampStamp/tatlowbck<<tatupb>>.jpg"></center>'
+		if pcs_tattoos['pussy'] <= 0:
+			gs 'tattoo_management', 'add', 'pussy', 47
+			'<center><img <<$set_imgh>> src="<<func(''tatttoo_management'', ''pussy_image'')>>"></center>'
+		elseif pcs_tattoos['ass'] <= 0:
+			gs 'tattoo_management', 'add', 'ass', 19
+			'<center><img <<$set_imgh>> src="<<func(''tatttoo_management'', ''ass_image'')>>"></center>'
+		elseif pcs_tattoos['leg'] <= 0:
+			gs 'tattoo_management', 'add', 'leg', 37
+			'<center><img <<$set_imgh>> src="<<func(''tatttoo_management'', ''leg_image'')>>"></center>'
+		elseif pcs_tattoos['tramp'] <= 0:
+			gs 'tattoo_management', 'add', 'tramp', 13
+			'<center><img <<$set_imgh>> src="<<func(''tatttoo_management'', ''tramp_image'')>>"></center>'
 		else
-			tatupb = 13
-			'<center><img <<$set_imgh>> src="images/pc/body/tattoos/trampStamp/tatlowbck<<tatupb>>.jpg"></center>'
+			gs 'tattoo_management', 'add', 'tramp', 13
+			'<center><img <<$set_imgh>> src="<<func(''tatttoo_management'', ''tramp_image'')>>"></center>'
 			nichTempOverwrite = 1
 		end
-		
+
 		'Gala leads you to the back of the studio. There she tells you to get naked.'
 		'Once the tattoo artist arrives Gala tells him to give a demeaning tattoo. He asks you whether you want this as well and you just nod.'
-		
+
 		if nichTempOverwrite = 1:
 			'He starts inspecting your body. But since you already own numerous tattoos he doesn''t find the perfect spot to add the new one.'
 			'Then Gala spins you around and points at your back.'
 			'"Just tattoo over her tramp stamp."'
 		end
-		
+
 		'The artist starts his work and about an hour later he is done. Gala inspects his work.'
 		'She is obviously happy with what he did and pays him a little extra before heading back home with you.'
-		
+
 		killvar 'nichTempOverwrite'
-		
+
 		nichGalaTattoo = 1
-		
+
 		minut += 60
 		gs 'stat'
 
@@ -709,7 +709,7 @@ elseif $ARGS[0] = 'slaveImplant':
 		minut += 30
 		gs 'stat'
 		act 'Obey': gt 'nichGala','slaveImplant',121
-	elseif ARGS[1] = 121:	
+	elseif ARGS[1] = 121:
 		'<center><img <<$set_imgh>> src="images/characters/city/gala/slave/pubhum1x2.jpg"></center>'
 		'You clear your voice. By now everybody is starring at you. With uncertain voice you tell them what Gala wanted you to say: that you are a dirty slut and that you need punishment.'
 		'Gala grins and leaves the bar.'
@@ -718,7 +718,7 @@ elseif $ARGS[0] = 'slaveImplant':
 		gs 'pain', 3, 'asscheeks','hit'
 		gs 'stat'
 		act 'Continue': gt 'nichGala','slaveImplant',121 + rand(1,2)
-	elseif ARGS[1] = 122:	
+	elseif ARGS[1] = 122:
 		'<center><img <<$set_imgh>> src="images/characters/city/gala/slave/pubhum1x3.jpg"></center>'
 		'Next in line is a couple. The guy pushes you down to your knees and forces his dick into your mouth.'
 		'The girl pushes your head from behind to force her boyfriends cock further down your throat.'
@@ -748,7 +748,7 @@ elseif $ARGS[0] = 'slaveImplant':
 		gs 'arousal','kiss',5,'exhibitionism','humiliation','unknown','bound','group','lesbian'
 		gs 'stat'
 		act 'Continue': gt 'nichGala','slaveImplant',124 + rand(1,2)
-	elseif ARGS[1] = 125:	
+	elseif ARGS[1] = 125:
 		'<center><img <<$set_imgh>> src="images/characters/city/gala/slave/pubhum1x6.jpg"></center>'
 		'A married couple, about 50 years old, is next. They force you down on a table.'
 		'The man forces his dick into the mouth while the woman starts fucking your pussy with a strapon provided by the barkeeper.'
@@ -791,19 +791,19 @@ elseif $ARGS[0] = 'slaveImplant':
 		nichGalaImplantDay = daystart
 		act 'Back home': minut += 30 & gt 'nichApartment'
 	end
-	
-	
+
+
 elseif $ARGS[0] = 'slaveGeneric':
-	
+
 	if nichGalaContractTaras = 0 and nichGalaContractDay + 14 <= daystart:
 		gt 'nichGala','slaveTarasIntro'
 	end
-	
-	
+
+
 	nichRand = rand(1,10)
 	nichGalaContractLast = daystart
 	!! TODO: CONT
-	if nichRand = 1 and pcs_cupsize > 15:	
+	if nichRand = 1 and pcs_cupsize > 15:
 		!!Hang by tits
 		'<center><img <<$set_imgh>> src="images/characters/city/gala/slave/bound6.jpg"></center>'
 		'Gala leads you up to the attic. There ties your ankles together and secures your hands behind your back.'
@@ -898,13 +898,13 @@ elseif $ARGS[0] = 'slaveTarasIntro':
 		'"Well, that was fun. We will repeat that soon. Very soon."'
 		'He puts his pants back on before untieing your left wrist so you can remove your other restraints.'
 		'Once you are done removing them Taras is long gone. You put your clothes back on.'
-		
+
 		gs 'stat'
 		nichGalaContractTaras = 1
 		nichGalaContractTarasLast = daystart
 		act 'Downstairs': gt 'nichApartment'
 	end
-	
+
 elseif $ARGS[0] = 'training':
 	!!TrainStages:
 	!!0: introduction
@@ -1229,9 +1229,9 @@ elseif $ARGS[0] = 'desc':
 	elseif nichGalaOpinion = 30:
 		'She is angry with you because you don''t want to break up with Tanya.'
 	end
-	
+
 	$nichTemp = func('nichUtil','npcActivity','gala')
-	
+
 	if $nichTemp = 'sleep':
 		'Usually Gala is sleeping at this time.'
 	elseif $nichTemp = 'bathMorning' or $nichTemp = 'snooze':
@@ -1255,9 +1255,9 @@ elseif $ARGS[0] = 'desc':
 	else
 		'You have no idea where Gala is at the moment.'
 	end
-	
+
 	killvar '$nichTemp'
-	
+
 	act 'Back': gt $loc
 end
 

+ 108 - 106
locations/obj_din.qsrc

@@ -1946,283 +1946,285 @@ if $ARGS[0] = 'tattoos':
 	*clr & cla
 	gs 'obj_din','bodytabs'
 	'<center><h1>Tattoos</h1></center>'
-	tatcounter = 0
+
+	if pcs_tattoos['total'] = 0:
+		'You have a pristine body. Not in terms of debauchery, but in terms of tattoos.'
+		exit
+	end
+
 	'<center>'
 	*pl
-	if tatfce > 0:
-		tatcounter = 1 & *p '<a href="exec: gs ''obj_din'', ''tattooface''">Face</a> | '
+	if pcs_tattoos['face'] > 0:
+		*p '<a href="exec: gs ''obj_din'', ''tattooface''">Face</a> | '
 	else
 		*p 'Face | '
 	end
-	if tatlip > 0:
-		tatcounter = 1 & *p '<a href="exec: gs ''obj_din'', ''tattoolip''">Lip</a> | '
+	if pcs_tattoos['lip'] > 0:
+		*p '<a href="exec: gs ''obj_din'', ''tattoolip''">Lip</a> | '
 	else
 		*p 'Lip | '
 	end
-	if tatneck > 0:
-		tatcounter = 1 & *p '<a href="exec: gs ''obj_din'', ''tattooneck''">Neck</a> | '
+	if pcs_tattoos['neck'] > 0:
+		*p '<a href="exec: gs ''obj_din'', ''tattooneck''">Neck</a> | '
 	else
 		*p 'Neck | '
 	end
-
-	if tatback > 0:
-		tatcounter = 1 & *p '<a href="exec: gs ''obj_din'', ''tattooback''">Back</a> | '
+	if pcs_tattoos['back'] > 0:
+		*p '<a href="exec: gs ''obj_din'', ''tattooback''">Back</a> | '
 	else
 		*p 'Back | '
 	end
-	if tatlech > 0:
-		tatcounter = 1 & *p '<a href="exec: gs ''obj_din'', ''tattooshoulder''">Shoulder</a> | '
+	if pcs_tattoos['shoulder'] > 0:
+		*p '<a href="exec: gs ''obj_din'', ''tattooshoulder''">Shoulder</a> | '
 	else
 		*p 'Shoulder | '
 	end
-	if tatbrst > 0:
-		tatcounter = 1 & *p '<a href="exec: gs ''obj_din'', ''tattoobreast''">Breast</a> | '
+	if pcs_tattoos['breast'] > 0:
+		*p '<a href="exec: gs ''obj_din'', ''tattoobreast''">Breast</a> | '
 	else
 		*p 'Breast | '
 	end
-	if tatunder > 0:
-		tatcounter = 1 & *p '<a href="exec: gs ''obj_din'', ''tattoounder''">Under Breast</a> | '
+	if pcs_tattoos['under'] > 0:
+		*p '<a href="exec: gs ''obj_din'', ''tattoounder''">Under Breast</a> | '
 	else
 		*p 'Under Breast | '
 	end
-	if tatchst > 0:
-		tatcounter = 1 & *p '<a href="exec: gs ''obj_din'', ''tattoochest''">Chest</a> | '
+	if pcs_tattoos['chest'] > 0:
+		*p '<a href="exec: gs ''obj_din'', ''tattoochest''">Chest</a> | '
 	else
 		*p 'Chest | '
 	end
-	if tatside > 0:
-		tatcounter = 1 & *p '<a href="exec: gs ''obj_din'', ''tattooside''">Side</a> | '
+	if pcs_tattoos['side'] > 0:
+		*p '<a href="exec: gs ''obj_din'', ''tattooside''">Side</a> | '
 	else
 		*p 'Side | '
 	end
-	if tatblly > 0:
-		tatcounter = 1 & *p '<a href="exec: gs ''obj_din'', ''tattoobelly''">Belly</a>'
+	if pcs_tattoos['belly'] > 0:
+		*p '<a href="exec: gs ''obj_din'', ''tattoobelly''">Belly</a>'
 	else
 		*p 'Belly'
 	end
 	*pl
-	if tatarm > 0:
-		tatcounter = 1 & *p '<a href="exec: gs ''obj_din'', ''tattooarm''">Arm</a> | '
+	if pcs_tattoos['arm'] > 0:
+		*p '<a href="exec: gs ''obj_din'', ''tattooarm''">Arm</a> | '
 	else
 		*p 'Arm | '
 	end
-	if tatwrist > 0:
-		tatcounter = 1 & *p '<a href="exec: gs ''obj_din'', ''tattoowrist''">Wrist</a> | '
+	if pcs_tattoos['wrist'] > 0:
+		*p '<a href="exec: gs ''obj_din'', ''tattoowrist''">Wrist</a> | '
 	else
 		*p 'Wrist | '
 	end
-	if tathand > 0:
-		tatcounter = 1 & *p '<a href="exec: gs ''obj_din'', ''tattoohand''">Hand</a> | '
+	if pcs_tattoos['hand'] > 0:
+		*p '<a href="exec: gs ''obj_din'', ''tattoohand''">Hand</a> | '
 	else
 		*p 'Hand | '
 	end
-	if tatleg > 0:
-		tatcounter = 1 & *p '<a href="exec: gs ''obj_din'', ''tattooleg''">Leg</a> | '
+	if pcs_tattoos['leg'] > 0:
+		*p '<a href="exec: gs ''obj_din'', ''tattooleg''">Leg</a> | '
 	else
 		*p 'Leg | '
 	end
-	if tatankle > 0:
-		tatcounter = 1 & *p '<a href="exec: gs ''obj_din'', ''tattoofoot''">Foot</a> | '
+	if pcs_tattoos['ankle'] > 0:
+		*p '<a href="exec: gs ''obj_din'', ''tattooankle''">Ankle</a> | '
 	else
 		*p 'Foot | '
 	end
 
-	if tatupb > 0:
-		tatcounter = 1 & *p '<a href="exec: gs ''obj_din'', ''tattootramp''">"Tramp Stamp"</a> | '
+	if pcs_tattoos['tramp'] > 0:
+		*p '<a href="exec: gs ''obj_din'', ''tattootramp''">"Tramp Stamp"</a> | '
 	else
 		*p 'Tramp Stamp | '
 	end
-	if tatass > 0:
-		tatcounter = 1 & *p '<a href="exec: gs ''obj_din'', ''tattooass''">Butt</a> | '
+	if pcs_tattoos['ass'] > 0:
+		*p '<a href="exec: gs ''obj_din'', ''tattooass''">Butt</a> | '
 	else
 		*p 'Butt | '
 	end
-	if tatvag > 0:
-		tatcounter = 1 & *p '<a href="exec: gs ''obj_din'', ''tattoovag''">Groin</a>'
+	if pcs_tattoos['pussy'] > 0:
+		*p '<a href="exec: gs ''obj_din'', ''tattoovag''">Groin</a>'
 	else
 		*p 'Groin'
 	end
 	'</center>'
-	if tatcounter = 0:
-		'You have a pristine body. Not in terms of debauchery, but in terms of tattoos.'
-	end
 end
 
 !!Image displays for tattoos
+if $ARGS[0] = 'tattooankle':
+	*clr
+	gs 'obj_din', 'tattoos'
+	*nl
+	'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''ankle_image'')>>"></center>'
+end
+
 if $ARGS[0] = 'tattooarm':
 	*clr
 	gs 'obj_din', 'tattoos'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/tattoos/arms/tatarm<<tatarm>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''arm_image'')>>"></center>'
 end
 
 if $ARGS[0] = 'tattooass':
 	*clr
 	gs 'obj_din', 'tattoos'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/tattoos/ass/tatass<<tatass>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''ass_image'')>>"></center>'
 end
 
 if $ARGS[0] = 'tattooback':
 	*clr
 	gs 'obj_din', 'tattoos'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/tattoos/back/tatback<<tatback>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''back_image'')>>"></center>'
 end
 
 if $ARGS[0] = 'tattoobelly':
 	*clr
 	gs 'obj_din', 'tattoos'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/tattoos/belly/tatblly<<tatblly>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''belly_image'')>>"></center>'
 end
 
 if $ARGS[0] = 'tattoobreast':
 	*clr
 	gs 'obj_din', 'tattoos'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/tattoos/breasts/tatbrst<<tatbrst>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''breast_image'')>>"></center>'
 end
 
 if $ARGS[0] = 'tattoochest':
 	*clr
 	gs 'obj_din', 'tattoos'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/tattoos/chest/tatchst<<tatchst>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''chest_image'')>>"></center>'
 end
 
 if $ARGS[0] = 'tattooface':
 	*clr
 	gs 'obj_din', 'tattoos'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/tattoos/face/tatfce<<tatfce>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''face_image'')>>"></center>'
 end
 
-if $ARGS[0] = 'tattoofoot':
+if $ARGS[0] = 'tattoohand':
 	*clr
 	gs 'obj_din', 'tattoos'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/tattoos/foot/tatankle<<tatankle>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''hand_image'')>>"></center>'
 end
 
 if $ARGS[0] = 'tattooleg':
 	*clr
 	gs 'obj_din', 'tattoos'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/tattoos/legs/tatleg<<tatleg>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''leg_image'')>>"></center>'
 end
 
 if $ARGS[0] = 'tattoolip':
 	*clr
 	gs 'obj_din', 'tattoos'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/tattoos/lip/tatlip<<tatlip>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''lip_image'')>>"></center>'
 end
 
 if $ARGS[0] = 'tattooneck':
 	*clr
 	gs 'obj_din', 'tattoos'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/tattoos/neck/tatnck<<tatneck>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''neck_image'')>>"></center>'
 end
 
 if $ARGS[0] = 'tattoovag':
 	*clr
 	gs 'obj_din', 'tattoos'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/tattoos/pubic/tatvag<<tatvag>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''pussy_image'')>>"></center>'
 end
 
 if $ARGS[0] = 'tattooshoulder':
 	*clr
 	gs 'obj_din', 'tattoos'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/tattoos/shoulder/tatshldr<<tatlech>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''shoulder_image'')>>"></center>'
 end
 
 if $ARGS[0] = 'tattooside':
 	*clr
 	gs 'obj_din', 'tattoos'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/tattoos/side/tatside<<tatside>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''side_image'')>>"></center>'
 end
 
 if $ARGS[0] = 'tattootramp':
 	*clr
 	gs 'obj_din', 'tattoos'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/tattoos/trampStamp/tatlowbck<<tatupb>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''tramp_image'')>>"></center>'
 end
 
 if $ARGS[0] = 'tattoounder':
 	*clr
 	gs 'obj_din', 'tattoos'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/tattoos/underBreast/tatundbreast<<tatunder>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''under_image'')>>"></center>'
 end
 
 if $ARGS[0] = 'tattoowrist':
 	*clr
 	gs 'obj_din', 'tattoos'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/tattoos/wrists/tatwrst<<tatwrist>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''wrist_image'')>>"></center>'
 end
 
-if $ARGS[0] = 'tattoohand':
-	*clr
-	gs 'obj_din', 'tattoos'
-	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/tattoos/hand/tathnd<<tathand>>.jpg"></center>'
-end
 
 if $ARGS[0] = 'piercing':
 	*clr & cla
 	gs 'obj_din','bodytabs'
 	'<center><h1>Piercings</h1></center>'
 	'<center>'
-	if pirsA = 0 and pirsB = 0 and pirsC = 0 and pirsD = 0 and pirsE = 0 and pirsF = 0 and pirsN = 0 and pirsG = 0:
+	if pcs_piercings['total']:
 		'You have no piercings.'
-	elseif (pirsA = 10000 or pirsA = 0) and (pirsB = 10000 or pirsB = 0) and (pirsC = 10000 or pirsC = 0) and (pirsD = 10000 or pirsD = 0) and (pirsE = 10000 or pirsE = 0) and (pirsF = 10000 or pirsF = 0) and (pirsN = 10000 or pirsN = 0) and (pirsG = 10000 or pirsG = 0):
+	elseif pcs_piercings['wearing'] = 0:
 		'You are not wearing any piercings'
 	else
 		*pl
-		if pirsA > 0 and pirsA < 10000:
-			*p '<a href="exec:gs ''obj_din'', ''pirsA''">Tongue</a> | '
-		else
-			*p 'Tongue | '
-		end
-		if pirsB > 0 and pirsB < 10000:
-			*p '<a href="exec:gs ''obj_din'', ''pirsB''">Lips</a> | '
-		else
-			*p 'lips | '
-		end
-		if pirsC > 0 and pirsC < 10000:
-			*p '<a href="exec:gs ''obj_din'', ''pirsC''">Ears</a> | '
+		if pcs_piercings['ears'] > 0:
+			*p '<a href="exec:gs ''obj_din'', ''piercing_ears''">Ears</a> | '
 		else
 			*p 'Ears | '
 		end
-		if pirsD > 0 and pirsD < 10000:
-			*p '<a href="exec:gs ''obj_din'', ''pirsD''">Nose</a> | '
+		if pcs_piercings['nose'] > 0:
+			*p '<a href="exec:gs ''obj_din'', ''piercing_nose''">Nose</a> | '
 		else
 			*p 'Nose | '
 		end
-		if pirsE > 0 and pirsE < 10000:
-			*p '<a href="exec:gs ''obj_din'', ''pirsE''">Eyebrows</a> | '
+		if pcs_piercings['brow'] > 0:
+			*p '<a href="exec:gs ''obj_din'', ''piercing_brow''">Eyebrows</a> | '
 		else
 			*p 'Eyebrows | '
 		end
-		if pirsF > 0 and pirsF < 10000:
-			*p '<a href="exec:gs ''obj_din'', ''pirsF''">Nipples</a> | '
+		if pcs_piercings['lip'] > 0:
+			*p '<a href="exec:gs ''obj_din'', ''piercing_lip''">Lips</a> | '
 		else
-			*p 'Nipples | '
+			*p 'lips | '
+		end
+		if pcs_piercings['tongue'] > 0:
+			*p '<a href="exec:gs ''obj_din'', ''piercing_tongue''">Tongue</a> | '
+		else
+			*p 'Tongue | '
 		end
-		if pirsN > 0 and pirsN < 10000:
-			*p '<a href="exec:gs ''obj_din'', ''pirsN''">Navel</a> | '
+		if pcs_piercings['navel'] > 0:
+			*p '<a href="exec:gs ''obj_din'', ''piercing_navel''">Navel</a> | '
 		else
 			*p 'Navel | '
 		end
-		if pirsG > 0 and pirsG < 10000:
-			*p '<a href="exec:gs ''obj_din'', ''pirsG''">Pussy</a>'
+		if pcs_piercings['nipples'] > 0:
+			*p '<a href="exec:gs ''obj_din'', ''piercing_nipples''">Nipples</a> | '
+		else
+			*p 'Nipples | '
+		end
+		if pcs_piercings['pussy'] > 0:
+			*p '<a href="exec:gs ''obj_din'', ''piercing_pussy''">Pussy</a>'
 		else
 			*p 'Pussy'
 		end
@@ -2231,53 +2233,53 @@ if $ARGS[0] = 'piercing':
 end
 
 !! piercing images.
-if $ARGS[0] = 'pirsA':
+if $ARGS[0] = 'piercing_ears':
 	*clr
 	gs 'obj_din', 'piercing'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/piercings/a<<pirsA>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="images/pc/body/piercings/c<<pcs_piercings[''ears'']>>.jpg"></center>'
 end
-if $ARGS[0] = 'pirsB':
+if $ARGS[0] = 'piercing_nose':
 	*clr
 	gs 'obj_din', 'piercing'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/piercings/b<<pirsB>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="images/pc/body/piercings/d<<pcs_piercings[''nose'']>>.jpg"></center>'
 end
-if $ARGS[0] = 'pirsC':
+if $ARGS[0] = 'piercing_brow':
 	*clr
 	gs 'obj_din', 'piercing'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/piercings/c<<pirsC>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="images/pc/body/piercings/e<<pcs_piercings[''brow'']>>.jpg"></center>'
 end
-if $ARGS[0] = 'pirsD':
+if $ARGS[0] = 'piercing_lip':
 	*clr
 	gs 'obj_din', 'piercing'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/piercings/d<<pirsD>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="images/pc/body/piercings/b<<pcs_piercings[''lip'']>>.jpg"></center>'
 end
-if $ARGS[0] = 'pirsE':
+if $ARGS[0] = 'piercing_tongue':
 	*clr
 	gs 'obj_din', 'piercing'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/piercings/e<<pirsE>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="images/pc/body/piercings/a<<pcs_piercings[''tongue'']>>.jpg"></center>'
 end
-if $ARGS[0] = 'pirsF':
+if $ARGS[0] = 'piercing_navel':
 	*clr
 	gs 'obj_din', 'piercing'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/piercings/f<<pirsF>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="images/pc/body/piercings/n<<pcs_piercings[''navel'']>>.jpg"></center>'
 end
-if $ARGS[0] = 'pirsN':
+if $ARGS[0] = 'piercing_nipples':
 	*clr
 	gs 'obj_din', 'piercing'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/piercings/n<<pirsN>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="images/pc/body/piercings/f<<pcs_piercings[''nipples'']>>.jpg"></center>'
 end
-if $ARGS[0] = 'pirsG':
+if $ARGS[0] = 'piercing_pussy':
 	*clr
 	gs 'obj_din', 'piercing'
 	*nl
-	'<center><img <<$set_imgh>> src="images/pc/body/piercings/g<<pirsG>>.jpg"></center>'
+	'<center><img <<$set_imgh>> src="images/pc/body/piercings/g<<pcs_piercings[''pussy'']>>.jpg"></center>'
 end
 
 if $ARGS[0] = 'records': gt 'journal', 'records'

+ 6 - 6
locations/pav_complex.qsrc

@@ -427,16 +427,16 @@ if $ARGS[0] = 'garages':
 										'"How many tattoos do you have?" you curiously ask.'
 										'Eduard smiles and starts looking all over his body.` "Got this one when I was thirteen, got this one in jail..." he trails off and looks at you. "I can''t remember how many I''ve done, but it''s at least a dozen."'
 										'"Cool!" you reply.'
-										if tattCount = 0:
+										if pcs_tattoos['total'] = 0:
 											'He sighs. "No, it''s not cool. But they can be meaningful if you get one. Make sure you get one for the right reasons and not just to be ''cool'', okay?" he says in a poor attempt to discourage you.'
-										elseif tattCount > 0 and tatarm = 0 and tathand = 0 and tatwrist = 0 and tatunder = 0 and tatupb = 0 and tatside = 0 and tatlech = 0 and tatneck = 0 and tatlip = 0 and tatleg = 0 and tatankle = 0 and tatfce = 0 and tatchst = 0:
-											'You start to remove your clothes to show him your special tattoo and he holds up his hands, partially blocking his own view. "What the hell are you doing?!" he exclaims.'
-											'"I was just going to show you my tattoo..." you innocently respond.'
-											'He snorts a laugh and shakes his head. "That''s okay, I believe you. I swear you''re almost as bad as Nush. You would think she was allergic to clothes or something with the number of times she walks around the apartment naked..." he trails off, muttering something about girls.'
-										else
+										elseif pcs_tattoos['arm'] > 0 or pcs_tattoos['hand'] > 0 or pcs_tattoos['wrist'] > 0 or pcs_tattoos['under'] > 0 or pcs_tattoos['tramp'] > 0 or pcs_tattoos['side'] > 0 or pcs_tattoos['shoulder'] > 0 or pcs_tattoos['neck'] > 0 or pcs_tattoos['lip'] > 0 or pcs_tattoos['leg'] > 0 or pcs_tattoos['ankle'] > 0 or pcs_tattoos['face'] > 0 or pcs_tattoos['chest'] > 0:
 											'You proudly show off your own tattoo to him and he''s taken a back a little. "Oh you''ve already got one. It''s a great feeling, isn''t it? I remember getting my first one and it was like a drug. I was hooked."'
 											'You nod your head. "I''m already thinking about getting another one."'
 											'"Just remember to do something tasteful or cool and not something horrible that you''ll regret later on." he advices.'
+										else
+											'You start to remove your clothes to show him your special tattoo and he holds up his hands, partially blocking his own view. "What the hell are you doing?!" he exclaims.'
+											'"I was just going to show you my tattoo..." you innocently respond.'
+											'He snorts a laugh and shakes his head. "That''s okay, I believe you. I swear you''re almost as bad as Nush. You would think she was allergic to clothes or something with the number of times she walks around the apartment naked..." he trails off, muttering something about girls.'
 										end
 									elseif edchat = 12:
 										'"So I was just harassed by the local police..." you complain to Eduard.'

+ 14 - 14
locations/pavlov_home.qsrc

@@ -1,20 +1,20 @@
 # pavlov_home
 
-if $ARGS[0] = 'PavlovHome':	
+if $ARGS[0] = 'PavlovHome':
 	*clr & cla
 	minut += 1
 	gs'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/pavlovhome/hallway.jpg"></center>'
-	'The hallway of your Master''s home. '	
+	'The hallway of your Master''s home. '
 	act '<b>Leave Master''s Home</b>': gt 'pav_complex','start'
 	act 'Master''s Bedroom': gt 'pavlov_home','bedroom'
 	act 'Bathroom': gt 'pavlov_home','bathroom'
 	act 'spare room': gt 'pavlov_home','second_bedroom'
 	act 'Living room': gt 'pavlov_home','livingroom'
 	act 'Kitchen': gt 'pavlov_home','kitchen'
-end	
+end
 
-if $ARGS[0] = 'bedroom':	
+if $ARGS[0] = 'bedroom':
 	*clr & cla
 	$loc = 'pavlov_home'
 	$loc_arg = 'bedroom'
@@ -29,9 +29,9 @@ if $ARGS[0] = 'bedroom':
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/pavlovhome/bedroom.jpg"></center>'
 	'text <a href="exec:gt ''mirror'', ''start''">mirrors</a>, and she even has a packed <a href="exec:gt ''pavlov_home'', ''Shoe Closet''">shoe closet</a>.'
 	act 'Leave room':gt 'pavlov_home', 'hallway'
-end	
+end
 
-if $ARGS[0] = 'kitchen':	
+if $ARGS[0] = 'kitchen':
 	$loc = 'pavlov_home'
 	$loc_arg = 'kitchen'
 	$menu_loc = 'pavlov_home'
@@ -157,17 +157,17 @@ if $ARGS[0] = 'fridge':
 			act 'Continue': gt 'pavlov_home', 'fridge'
 		end
 	end
-end	
+end
 
-if $ARGS[0] = 'Livingroom':	
+if $ARGS[0] = 'Livingroom':
 	*clr & cla
 	minut += 1
 	gs'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/pavlovhome/livingroom.jpg"></center>'
 	'text'
-	
+
 	act 'Hallway':gt 'pavlov_home', 'hallway'
-end		
+end
 
 if $ARGS[0] = 'bathroom':
 	$loc = 'pavlov_home'
@@ -186,7 +186,7 @@ if $ARGS[0] = 'bathroom':
 	'The toilet sits along the far wall. There''s also a bathtub with an old plastic shower curtain hanging from a rod above it. It also seems that the latch on the door is broken.'
 	'You can do your hair and makeup in the <a href="exec:gt ''mirror'', ''start''">mirror</a> above the sink.'
 	*nl
-	if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG + pirsGL > 0:'<a href="exec:dynamic $pirManage">Manage Piercings</a>'
+	gs 'piercing_management', 'set_manage_string'
 	act 'Leave the bathroom': gt 'pavlov_home','hallway'
 	act 'Take a shower':
 		*clr & cla
@@ -211,7 +211,7 @@ if $ARGS[0] = 'bathroom':
 	gs 'din_van', 'prvt_pee'
 end
 
-if $ARGS[0] = 'second_bedroom':	
+if $ARGS[0] = 'second_bedroom':
 	$loc = 'pavlov_home'
 	$loc_arg = 'second_bedroom'
 	$location_type = 'private'
@@ -221,9 +221,9 @@ if $ARGS[0] = 'second_bedroom':
 	gs'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/pavlovhome/spareroom.jpg"></center>'
 	'text'
-	
+
 	act 'Hallway':gt 'pavlov_home', 'hallway'
-end	
+end
 
 
 --- pavlov_home ---------------------------------

+ 476 - 155
locations/piercing_management.qsrc

@@ -1,224 +1,545 @@
 # piercing_management
 
-If $ARGS[0] = 'main':
-	if ward_img_hgt = 0:ward_img_hgt = 150
+if $ARGS[0] = 'totals':
+	if $ARSG[1] = 'ears':
+		result = 24
+	elseif $ARSG[1] = 'nose':
+		result = 7
+	elseif $ARSG[1] = 'brow':
+		result = 2
+	elseif $ARSG[1] = 'lip':
+		result = 7
+	elseif $ARGS[1] = 'tongue':
+		result = 4
+	elseif $ARSG[1] = 'navel':
+		result = 4
+	elseif $ARSG[1] = 'nipples':
+		result = 7
+	elseif $ARSG[1] = 'pussy':
+		result = 10
+	end
+	exit
+end
+
+
+if $ARGS[0] = 'set_manage_string':
+	if pcs_piercings['any'] > 0:
+		'<a href="exec: gt ''piercing_management'', ''main''">Manage Piercings</a>'
+	end
+	exit
+end
+
+if $ARGS[0] = 'set_manage_act':
+	if pcs_piercings['any'] > 0:
+		act 'Manage Piercings': gt 'piercing_management', 'main'
+	end
+	exit
+end
+
+
+if $ARGS[0] = 'add':
+	if pcs_piercings[$ARGS[1]] = 0: pcs_piercings['total'] += 1
+	if pcs_piercings[$ARGS[1]] <= 0: pcs_piercings['wearing'] += 1
+	pcs_piercings['any'] = 1
+	pcs_piercings[$ARGS[1]] = ARGS[2]
+	psc_piercings['<<$ARGS[1]>>_<<ARGS[2]>>_owned'] = 1
+	exit
+end
+
+if $ARGS[0] = 'wear':
+	if pcs_piercings[$ARGS[1]] ! 0:
+		if pcs_piercings[$ARGS[1]] < 0: pcs_piercings['wearing'] += 1
+		pcs_piercings[$ARGS[1]] = ARGS[2]
+	end
+	exit
+end
+
+if $ARGS[0] = 'wear_last':
+	if pcs_piercings[$ARGS[1]] < 0:
+		pcs_piercings['wearing'] += 1
+		pcs_piercings[$ARGS[1]] = -pcs_piercings[$ARGS[1]]
+	end
+	exit
+end
+
+
+if $ARGS[0] = 'remove':
+	if pcs_piercings[$ARGS[1]] > 0:
+		pcs_piercings['wearing'] -= 1
+		pcs_piercings[$ARGS[1]] = -pcs_piercings[$ARGS[1]]
+	end
+	exit
+end
+
+if $ARGS[0] = 'full_reset':
+	killvar 'pcs_piercings'
+	exit
+end
+
+if $ARGS[0] = 'count':
+	pcs_piercings['total'] = 0
+	pcs_piercings['wearing'] = 0
+	if pcs_piercings['ears'] ! 0:
+		pcs_piercings['total'] += 1
+		if pcs_piercings['ears'] > 0: pcs_piercings['wearing'] += 1
+	end
+	if pcs_piercings['nose'] ! 0:
+		pcs_piercings['total'] += 1
+		if pcs_piercings['nose'] > 0: pcs_piercings['wearing'] += 1
+	end
+	if pcs_piercings['brow'] ! 0:
+		pcs_piercings['total'] += 1
+		if pcs_piercings['brow'] > 0: pcs_piercings['wearing'] += 1
+	end
+	if pcs_piercings['lip'] ! 0:
+		pcs_piercings['total'] += 1
+		if pcs_piercings['lip'] > 0: pcs_piercings['wearing'] += 1
+	end
+	if pcs_piercings['tongue'] ! 0:
+		pcs_piercings['total'] += 1
+		if pcs_piercings['tongue'] > 0: pcs_piercings['wearing'] += 1
+	end
+	if pcs_piercings['navel'] ! 0:
+		pcs_piercings['total'] += 1
+		if pcs_piercings['navel'] > 0: pcs_piercings['wearing'] += 1
+	end
+	if pcs_piercings['nipples'] ! 0:
+		pcs_piercings['total'] += 1
+		if pcs_piercings['nipples'] > 0: pcs_piercings['wearing'] += 1
+	end
+	if pcs_piercings['pussy'] ! 0:
+		pcs_piercings['total'] += 1
+		if pcs_piercings['pussy'] > 0: pcs_piercings['wearing'] += 1
+	end
+	exit
+end
+
+
+
+
+
+
+
+
+if $ARGS[0] = 'main':
+	menu_off = 1
+	gs 'stat'
+
+	if ward_img_hgt = 0: ward_img_hgt = 150
 	*nl
-	'<center><font color="maroon">Piercing Management</font></center><center><table border=0 cellspacing=<<ward_img_hgt/25>> cellpadding=5>'
-	*p '<TH>Tongue piercing</TH><TH>Lip piercing</TH><TH>Ear piercings</TH><TH>Nose piercing</TH>'
-	*P '<TR><TD><center>'
-	if pirsA = 10000:
-		'<a href="exec:gt ''piercing_management'', ''tongue''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/tongue.jpg"></a>'
-	elseif pirsA = 0:
-		'<img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/tongue.jpg">'
-	else
-		'<a href="exec:gt ''piercing_management'', ''tongue''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/a<<pirsA>>.jpg"></a>'
+	'<center><font color="maroon">Piercing Management</font></center>'
+
+	$temp_table = '<center><table border=0 cellspacing=<<ward_img_hgt / 25>> cellpadding=5>'
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<th>'
+	$temp_table +=			'Ear piercings'
+	$temp_table +=		'</th>'
+	$temp_table +=		'<th>'
+	$temp_table +=			'Nose piercing'
+	$temp_table +=		'</th>'
+	$temp_table +=		'<th>'
+	$temp_table +=			'Brow piercing'
+	$temp_table +=		'</th>'
+	$temp_table +=		'<th>'
+	$temp_table +=			'Lip piercing'
+	$temp_table +=		'</th>'
+	$temp_table +=	'</tr>'
+
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<td>'
+	if pcs_piercings['ears'] = 0:
+		$temp_table +=		'<img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/ears.jpg">'
+	elseif pcs_piercings['ears'] < 0:
+		$temp_table +=		'<a href="exec:gt ''piercing_management'', ''ears''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/ears.jpg"></a>'
+	else
+		$temp_table +=		'<a href="exec:gt ''piercing_management'', ''ears''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/c<<pcs_piercings[''ears'']>>.jpg"></a>'
 	end
-	'</center></TD><TD><center>'
-	if pirsB = 10000:
-		'<a href="exec:gt ''piercing_management'', ''lip''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/lip.jpg"></a>'
-	elseif pirsB = 0:
-		'<img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/lip.jpg">'
-	else
-		'<a href="exec:gt ''piercing_management'', ''lip''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/b<<pirsB>>.jpg"></a>'
+	$temp_table +=		'</td>'
+
+	$temp_table +=		'<td>'
+	if pcs_piercings['nose'] = 0:
+		$temp_table +=		'<img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/nose.jpg">'
+	elseif pcs_piercings['nose'] < 0:
+		$temp_table +=		'<a href="exec:gt ''piercing_management'', ''nose''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/nose.jpg"></a>'
+	else
+		$temp_table +=		'<a href="exec:gt ''piercing_management'', ''nose''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/d<<pcs_piercings[''nose'']>>.jpg"></a>'
 	end
-	'</center></TD><TD><center>'
-	if pirsC = 10000:
-		'<a href="exec:gt ''piercing_management'', ''ears''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/ears.jpg"></a>'
-	elseif pirsC = 0:
-		'<img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/ears.jpg">'
-	else
-		'<a href="exec:gt ''piercing_management'', ''ears''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/c<<pirsC>>.jpg"></a>'
+	$temp_table +=		'</td>'
+
+	$temp_table +=		'<td>'
+	if pcs_piercings['brow'] = 0:
+		$temp_table +=		'<img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/brow.jpg">'
+	elseif pcs_piercings['brow'] < 0:
+		$temp_table +=		'<a href="exec:gt ''piercing_management'', ''brow''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/brow.jpg"></a>'
+	else
+		$temp_table +=		'<a href="exec:gt ''piercing_management'', ''brow''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/a<<pcs_piercings[''brow'']>>.jpg"></a>'
 	end
-	'</center></TD><TD><center>'
-	if pirsD = 10000:
-		'<a href="exec:gt ''piercing_management'', ''nose''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/nose.jpg"></a>'
-	elseif pirsD = 0:
-		'<img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/nose.jpg">'
-	else
-		'<a href="exec:gt ''piercing_management'', ''nose''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/d<<pirsD>>.jpg"></a>'
+	$temp_table +=		'</td>'
+
+	$temp_table +=		'<td>'
+	if pcs_piercings['lip'] = 0:
+		$temp_table +=		'<img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/lip.jpg">'
+	elseif pcs_piercings['lip'] < 0:
+		$temp_table +=		'<a href="exec:gt ''piercing_management'', ''lip''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/lip.jpg"></a>'
+	else
+		$temp_table +=		'<a href="exec:gt ''piercing_management'', ''lip''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/b<<pcs_piercings[''lip'']>>.jpg"></a>'
 	end
-	'</center></TD><TR><TD><center>'
-	if pirsA = 0:
-		'Not pierced'
-	elseif pirsA < 10000:
-		'<a href="exec:pirsA = 10000 & pierWearCount -= 1 & gt ''piercing_management'', ''main''">Remove</a>'
+	$temp_table +=		'</td>'
+	$temp_table +=	'</tr>'
+
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<td>'
+	if pcs_piercings['ears'] = 0:
+		$temp_table +=		'Not pierced'
+	elseif pcs_piercings['ears'] < 0:
+		$temp_table +=		'<a href="exec: gs ''piercing_management'', ''wear_last'', ''ears'' & gt ''piercing_management'', ''main''">Wear last</a>'
 	else
-		'Remove'
+		$temp_table +=		'<a href="exec: gs ''piercing_management'', ''remove'', ''ears'' & gt ''piercing_management'', ''main''">Remove</a>'
 	end
-	'</center></TD><TD><center>'
-	if pirsB = 0:
-		'Not pierced'
-	elseif pirsB < 10000:
-		'<a href="exec:pirsB = 10000 & pierWearCount -= 1 & gt ''piercing_management'', ''main''">Remove</a>'
+	$temp_table +=		'</td>'
+
+	$temp_table +=		'<td>'
+	if pcs_piercings['nose'] = 0:
+		$temp_table +=		'Not pierced'
+	elseif pcs_piercings['nose'] < 0:
+		$temp_table +=		'<a href="exec: gs ''piercing_management'', ''wear_last'', ''nose'' & gt ''piercing_management'', ''main''">Wear last</a>'
 	else
-		'Remove'
+		$temp_table +=		'<a href="exec: gs ''piercing_management'', ''remove'', ''nose'' & gt ''piercing_management'', ''main''">Remove</a>'
 	end
-	'</center></TD><TD><center>'
-	if pirsC = 0:
-		'Not pierced'
-	elseif pirsC < 10000:
-		'<a href="exec:pirsC = 10000 & pierWearCount -= 1 & gt ''piercing_management'', ''main''">Remove</a>'
+	$temp_table +=		'</td>'
+
+	$temp_table +=		'<td>'
+	if pcs_piercings['brow'] = 0:
+		$temp_table +=		'Not pierced'
+	elseif pcs_piercings['brow'] < 0:
+		$temp_table +=		'<a href="exec: gs ''piercing_management'', ''wear_last'', ''brow'' & gt ''piercing_management'', ''main''">Wear last</a>'
 	else
-		'Remove'
+		$temp_table +=		'<a href="exec: gs ''piercing_management'', ''remove'', ''brow'' & gt ''piercing_management'', ''main''">Remove</a>'
 	end
-	'</center></TD><TD><center>'
-	if pirsD = 0:
-		'Not pierced'
-	elseif pirsD < 10000:
-		'<a href="exec:pirsD = 10000 & pierWearCount -= 1 & gt ''piercing_management'', ''main''">Remove</a>'
+	$temp_table +=		'</td>'
+
+	$temp_table +=		'<td>'
+	if pcs_piercings['lip'] = 0:
+		$temp_table +=		'Not pierced'
+	elseif pcs_piercings['lip'] < 0:
+		$temp_table +=		'<a href="exec: gs ''piercing_management'', ''wear_last'', ''lip'' & gt ''piercing_management'', ''main''">Wear last</a>'
 	else
-		'Remove'
+		$temp_table +=		'<a href="exec: gs ''piercing_management'', ''remove'', ''lip'' & gt ''piercing_management'', ''main''">Remove</a>'
 	end
-	'</center></TD>'
+	$temp_table +=		'</td>'
+	$temp_table +=	'</tr>'
 
-	*p '<TR><TH>Brow piercing</TH><TH>Nipple piercings</TH><TH>Navel piercing</TH><TH>Pussy piercing</TH>'
-	*P '<TR><TD><center>'
-	if pirsE >= 10000:
-		'<a href="exec:gt ''piercing_management'', ''brow''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/brow.jpg"></a>'
-	elseif pirsE = 0:
-		'<img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/brow.jpg">'
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<th>'
+	$temp_table +=			'Tongue piercing'
+	$temp_table +=		'</th>'
+	$temp_table +=		'<th>'
+	$temp_table +=			'Navel piercings'
+	$temp_table +=		'</th>'
+	$temp_table +=		'<th>'
+	$temp_table +=			'Nipple piercing'
+	$temp_table +=		'</th>'
+	$temp_table +=		'<th>'
+	$temp_table +=			'Pussy piercing'
+	$temp_table +=		'</th>'
+	$temp_table +=	'</tr>'
+
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<td>'
+	if pcs_piercings['tongue'] = 0:
+		$temp_table +=		'<img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/tongue.jpg">'
+	elseif pcs_piercings['tongue'] < 0:
+		$temp_table +=		'<a href="exec:gt ''piercing_management'', ''tongue''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/tongue.jpg"></a>'
 	else
-		'<a href="exec:gt ''piercing_management'', ''brow''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/e<<pirsE>>.jpg"></a>'
+		$temp_table +=		'<a href="exec:gt ''piercing_management'', ''tongue''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/a<<pcs_piercings[''tongue'']>>.jpg"></a>'
 	end
-	'</a></center></TD><TD><center>'
-	if pirsF >= 10000:
-		'<a href="exec:gt ''piercing_management'', ''nipples''"><img Height = <<ward_img_hgt>> src="images/pc/body/tits/t<<tits>>.jpg"></a>'
-	elseif pirsF = 0:
-		'<img Height = <<ward_img_hgt>> src="images/pc/body/tits/t<<tits>>.jpg">'
+	$temp_table +=		'</td>'
+
+	$temp_table +=		'<td>'
+	if pcs_piercings['navel'] = 0:
+		$temp_table +=		'<img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/navel.jpg">'
+	elseif pcs_piercings['navel'] < 0:
+		$temp_table +=		'<a href="exec:gt ''piercing_management'', ''navel''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/navel.jpg"></a>'
 	else
-		'<a href="exec:gt ''piercing_management'', ''nipples''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/f<<pirsF>>.jpg"></a>'
+		$temp_table +=		'<a href="exec:gt ''piercing_management'', ''navel''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/n<<pcs_piercings[''navel'']>>.jpg"></a>'
 	end
-	'</a></center></TD><TD><center>'
-	if pirsN >= 10000:
-		'<a href="exec:gt ''piercing_management'', ''navel''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/navel.jpg"></a>'
-	elseif pirsN = 0:
-		'<img Height = <<ward_img_hgt>> src="images/pc/body/piercings/unpierced/navel.jpg">'
+	$temp_table +=		'</td>'
+
+	$temp_table +=		'<td>'
+	if pcs_piercings['nipples'] = 0:
+		$temp_table +=		'<img Height = <<ward_img_hgt>> src="<<func(''$body_image'', ''tits'')>>">'
+	elseif pcs_piercings['nipples'] < 0:
+		$temp_table +=		'<a href="exec:gt ''piercing_management'', ''nipples''"><img Height = <<ward_img_hgt>> src="<<func(''$body_image'', ''tits'')>>"></a>'
 	else
-		'<a href="exec:gt ''piercing_management'', ''navel''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/n<<pirsN>>.jpg"></a>'
+		$temp_table +=		'<a href="exec:gt ''piercing_management'', ''nipples''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/f<<pcs_piercings[''nipples'']>>.jpg"></a>'
 	end
-	'</a></center></TD><TD><center>'
-	if pirsG >= 10000:
-		'<a href="exec:gt ''piercing_management'', ''pussy''"><img Height = <<ward_img_hgt>> src="<<$pcs_vag_image>>"></a>'
-	elseif pirsG = 0:
-		'<img Height = <<ward_img_hgt>> src="<<$pcs_vag_image>>">'
+	$temp_table +=		'</td>'
+
+	$temp_table +=		'<td>'
+	if pcs_piercings['pussy'] = 0:
+		$temp_table +=		'<img Height = <<ward_img_hgt>> src="<<$pcs_vag_image>>">'
+	elseif pcs_piercings['pussy'] < 0:
+		$temp_table +=		'<a href="exec:gt ''piercing_management'', ''pussy''"><img Height = <<ward_img_hgt>> src="<<$pcs_vag_image>>"></a>'
 	else
-		'<a href="exec:gt ''piercing_management'', ''pussy''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/g<<pirsG>>.jpg"></a>'
+		$temp_table +=		'<a href="exec:gt ''piercing_management'', ''pussy''"><img Height = <<ward_img_hgt>> src="images/pc/body/piercings/g<<pcs_piercings[''pussy'']>>.jpg"></a>'
 	end
-	'</center></TD><TR><TD><center>'
-	if pirsE = 0:
-		'Not pierced'
-	elseif pirsE < 10000:
-		'<a href="exec:pirsE = 10000 & pierWearCount -= 1 & gt ''piercing_management'', ''main''">Remove</a>'
+	$temp_table +=		'</td>'
+	$temp_table +=	'</tr>'
+
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<td>'
+	if pcs_piercings['tongue'] = 0:
+		$temp_table +=		'Not pierced'
+	elseif pcs_piercings['tongue'] < 0:
+		$temp_table +=		'<a href="exec: gs ''piercing_management'', ''wear_last'', ''tongue'' & gt ''piercing_management'', ''main''">Wear last</a>'
 	else
-		'Remove'
+		$temp_table +=		'<a href="exec: gs ''piercing_management'', ''remove'', ''tongue'' & gt ''piercing_management'', ''main''">Remove</a>'
 	end
-	'</center></TD><TD><center>'
-	if pirsF = 0:
-		'Not pierced'
-	elseif pirsF < 10000:
-		'<a href="exec:pirsF = 10000 & pierWearCount -= 1 & gt ''piercing_management'', ''main''">Remove</a>'
+	$temp_table +=		'</td>'
+
+	$temp_table +=		'<td>'
+	if pcs_piercings['navel'] = 0:
+		$temp_table +=		'Not pierced'
+	elseif pcs_piercings['navel'] < 0:
+		$temp_table +=		'<a href="exec: gs ''piercing_management'', ''wear_last'', ''navel'' & gt ''piercing_management'', ''main''">Wear last</a>'
 	else
-		'Remove'
+		$temp_table +=		'<a href="exec: gs ''piercing_management'', ''remove'', ''navel'' & gt ''piercing_management'', ''main''">Remove</a>'
 	end
-	'</center></TD><TD><center>'
-	if pirsN = 0:
-		'Not pierced'
-	elseif pirsN < 10000:
-		'<a href="exec:pirsN = 10000 & pierWearCount -= 1 & gt ''piercing_management'', ''main''">Remove</a>'
+	$temp_table +=		'</td>'
+
+	$temp_table +=		'<td>'
+	if pcs_piercings['nipples'] = 0:
+		$temp_table +=		'Not pierced'
+	elseif pcs_piercings['nipples'] < 0:
+		$temp_table +=		'<a href="exec: gs ''piercing_management'', ''wear_last'', ''nipples'' & gt ''piercing_management'', ''main''">Wear last</a>'
 	else
-		'Remove'
+		$temp_table +=		'<a href="exec: gs ''piercing_management'', ''remove'', ''nipples'' & gt ''piercing_management'', ''main''">Remove</a>'
 	end
-	'</center></TD><TD><center>'
-	if pirsG = 0:
-		'Not pierced'
-	elseif pirsG < 10000:
-		'<a href="exec:pirsG = 10000 & pierWearCount -= 1 & gt ''piercing_management'', ''main''">Remove</a>'
+	$temp_table +=		'</td>'
+
+	$temp_table +=		'<td>'
+	if pcs_piercings['pussy'] = 0:
+		$temp_table +=		'Not pierced'
+	elseif pcs_piercings['pussy'] < 0:
+		$temp_table +=		'<a href="exec: gs ''piercing_management'', ''wear_last'', ''pussy'' & gt ''piercing_management'', ''main''">Wear last</a>'
 	else
-		'Remove'
+		$temp_table +=		'<a href="exec: gs ''piercing_management'', ''remove'', ''pussy'' & gt ''piercing_management'', ''main''">Remove</a>'
 	end
-	'</center></TD></table></center>'
+	$temp_table +=		'</td>'
+	$temp_table +=	'</tr>'
+	$temp_table += '</table></center>'
+
+	'<<$temp_table>>'
+	killvar '$temp_table'
+
 	act 'Close Piercing management': gt $loc, $loc_arg
 end
 
-If $ARGS[0] = 'tongue':
-	i = 1
-	:looptongue
-	if dyneval('RESULT = PirsA<<i>>_owned') = 1:*p '<a href="exec:pirsA = <<i>> & pierWearCount += 1 & gt ''piercing_management'', ''main''"><img src="images/pc/body/piercings/a<<i>>.jpg" 	height="250" /></a>'
-	i += 1
-	if i <= 4:jump 'looptongue'
+
+
+if $ARGS[0] = 'ears':
+	pmm_total = func('piercing_management', 'totals', 'ears')
+	pmm_i = 1
+	:loopears
+		if pcs_piercings['ears_<<pmm_i>>_owned'] = 1: *p '<a href="exec: gs ''piercing_management'', ''wear'', ''ears'', <<pmm_i>> & gt ''piercing_management'', ''main''"><img height="250" src="<<func(''piercing_management'', ''ears_image'', pmm_i)>>"></a>'
+		pmm_i += 1
+	if pmm_i <= pmm_total: jump 'loopears'
 
 	act 'Return': gt 'piercing_management', 'main'
+	exit
+end
+
+if $ARGS[0] = 'ears_image':
+	if ARGS[1] = 0:
+		if pcs_piercings['ears'] > 0:
+			ARGS[1] = pcs_piercings['ears']
+		else
+			ARGS[1] = -pcs_piercings['ears']
+		end
+	end
+	$result = 'images/pc/body/piercings/c<<ARGS[1]>>.jpg'
+	exit
 end
 
-If $ARGS[0] = 'lip':
-	i = 1
-	:looplip
-	if dyneval('RESULT = PirsB<<i>>_owned') = 1:*p '<a href="exec:PirsB = <<i>> & pierWearCount += 1 & gt ''piercing_management'', ''main''"><img src="images/pc/body/piercings/b<<i>>.jpg" 	height="250" /></a>'
-	i += 1
-	if i <= 7:jump 'looplip'
+
+if $ARGS[0] = 'nose':
+	pmm_total = func('piercing_management', 'totals', 'nose')
+	pmm_i = 1
+	:loopnose
+		if pcs_piercings['nose_<<pmm_i>>_owned'] = 1: *p '<a href="exec: gs ''piercing_management'', ''wear'', ''nose'', <<pmm_i>> & gt ''piercing_management'', ''main''"><img height="250" src="<<func(''piercing_management'', ''nose_image'', pmm_i)>>"></a>'
+		pmm_i += 1
+	if pmm_i <= pmm_total: jump 'loopnose'
 
 	act 'Return': gt 'piercing_management', 'main'
+	exit
 end
 
-If $ARGS[0] = 'ears':
-	i = 1
-	:loopears
-	if dyneval('RESULT = PirsC<<i>>_owned') = 1:*p '<a href="exec:pirsC = <<i>> & pierWearCount += 1 & gt ''piercing_management'', ''main''"><img src="images/pc/body/piercings/c<<i>>.jpg" 	height="250" /></a>'
-	i += 1
-	if i <= 24:jump 'loopears'
+if $ARGS[0] = 'nose_image':
+	if ARGS[1] = 0:
+		if pcs_piercings['nose'] > 0:
+			ARGS[1] = pcs_piercings['nose']
+		else
+			ARGS[1] = -pcs_piercings['nose']
+		end
+	end
+	$result = 'images/pc/body/piercings/d<<ARGS[1]>>.jpg'
+	exit
+end
+
+
+if $ARGS[0] = 'brow':
+	pmm_total = func('piercing_management', 'totals', 'brow')
+	pmm_i = 1
+	:loopbrow
+		if pcs_piercings['brow_<<pmm_i>>_owned'] = 1: *p '<a href="exec: gs ''piercing_management'', ''wear'', ''brow'', <<pmm_i>> & gt ''piercing_management'', ''main''"><img height="250" src="<<func(''piercing_management'', ''brow_image'', pmm_i)>>"></a>'
+		pmm_i += 1
+	if pmm_i <= pmm_total: jump 'loopbrow'
 
 	act 'Return': gt 'piercing_management', 'main'
+	exit
+end
+
+if $ARGS[0] = 'brow_image':
+	if ARGS[1] = 0:
+		if pcs_piercings['brow'] > 0:
+			ARGS[1] = pcs_piercings['brow']
+		else
+			ARGS[1] = -pcs_piercings['brow']
+		end
+	end
+	$result = 'images/pc/body/piercings/e<<ARGS[1]>>.jpg'
+	exit
 end
 
-If $ARGS[0] = 'nose':
-	i = 1
-	:loopnose
-	if dyneval('RESULT = PirsD<<i>>_owned') = 1:*p '<a href="exec:pirsD = <<i>> & pierWearCount += 1 & gt ''piercing_management'', ''main''"><img src="images/pc/body/piercings/d<<i>>.jpg" 	height="250" /></a>'
-	i += 1
-	if i <= 7:jump 'loopnose'
+
+if $ARGS[0] = 'lip':
+	pmm_total = func('piercing_management', 'totals', 'lip')
+	pmm_i = 1
+	:looplip
+		if pcs_piercings['lip_<<pmm_i>>_owned'] = 1: *p '<a href="exec: gs ''piercing_management'', ''wear'', ''lip'', <<pmm_i>> & gt ''piercing_management'', ''main''"><img height="250" src="<<func(''piercing_management'', ''lip_image'', pmm_i)>>"></a>'
+		pmm_i += 1
+	if pmm_i <= pmm_total: jump 'looplip'
 
 	act 'Return': gt 'piercing_management', 'main'
+	exit
 end
 
-If $ARGS[0] = 'brow':
-	i = 1
-	:loopbrow
-	if dyneval('RESULT = PirsE<<i>>_owned') = 1:*p '<a href="exec:pirsE = <<i>> & pierWearCount += 1 & gt ''piercing_management'', ''main''"><img src="images/pc/body/piercings/e<<i>>.jpg" 	height="250" /></a>'
-	i += 1
-	if i <= 2:jump 'loopbrow'
+if $ARGS[0] = 'lip_image':
+	if ARGS[1] = 0:
+		if pcs_piercings['lip'] > 0:
+			ARGS[1] = pcs_piercings['lip']
+		else
+			ARGS[1] = -pcs_piercings['lip']
+		end
+	end
+	$result = 'images/pc/body/piercings/b<<ARGS[1]>>.jpg'
+	exit
+end
+
+
+if $ARGS[0] = 'tongue':
+	pmm_total = func('piercing_management', 'totals', 'tongue')
+	pmm_i = 1
+	:looptongue
+		if pcs_piercings['tongue_<<pmm_i>>_owned'] = 1: *p '<a href="exec: gs ''piercing_management'', ''wear'', ''tongue'', <<pmm_i>> & gt ''piercing_management'', ''main''"><img height="250" src="<<func(''piercing_management'', ''tongue_image'', pmm_i)>>"></a>'
+		pmm_i += 1
+	if pmm_i <= pmm_total: jump 'looptongue'
 
 	act 'Return': gt 'piercing_management', 'main'
+	exit
 end
 
-If $ARGS[0] = 'nipples':
-	i = 1
-	:loopnipples
-	if dyneval('RESULT = PirsF<<i>>_owned') = 1:*p '<a href="exec:pirsF = <<i>> & pierWearCount += 1 & gt ''piercing_management'', ''main''"><img src="images/pc/body/piercings/f<<i>>.jpg" 	height="250" /></a>'
-	i += 1
-	if i <= 7:jump 'loopnipples'
+if $ARGS[0] = 'tongue_image':
+	if ARGS[1] = 0:
+		if pcs_piercings['tongue'] > 0:
+			ARGS[1] = pcs_piercings['tongue']
+		else
+			ARGS[1] = -pcs_piercings['tongue']
+		end
+	end
+	$result = 'images/pc/body/piercings/a<<ARGS[1]>>.jpg'
+	exit
+end
+
+
+if $ARGS[0] = 'navel':
+	pmm_total = func('piercing_management', 'totals', 'navel')
+	pmm_i = 1
+	:loopnavel
+		if pcs_piercings['navel_<<pmm_i>>_owned'] = 1: *p '<a href="exec: gs ''piercing_management'', ''wear'', ''navel'', <<pmm_i>> & gt ''piercing_management'', ''main''"><img height="250" src="<<func(''piercing_management'', ''navel_image'', pmm_i)>>"></a>'
+		pmm_i += 1
+	if pmm_i <= pmm_total: jump 'loopnavel'
 
 	act 'Return': gt 'piercing_management', 'main'
+	exit
+end
+
+if $ARGS[0] = 'navel_image':
+	if ARGS[1] = 0:
+		if pcs_piercings['navel'] > 0:
+			ARGS[1] = pcs_piercings['navel']
+		else
+			ARGS[1] = -pcs_piercings['navel']
+		end
+	end
+	$result = 'images/pc/body/piercings/n<<ARGS[1]>>.jpg'
+	exit
 end
 
-If $ARGS[0] = 'navel':
-	i = 1
-	:loopnavel
-	if dyneval('RESULT = PirsN<<i>>_owned') = 1:*p '<a href="exec:pirsN = <<i>> & pierWearCount += 1 & gt ''piercing_management'', ''main''"><img src="images/pc/body/piercings/n<<i>>.jpg" 	height="250" /></a>'
-	i += 1
-	if i <= 4:jump 'loopnavel'
+
+if $ARGS[0] = 'nipples':
+	pmm_total = func('piercing_management', 'totals', 'nipples')
+	pmm_i = 1
+	:loopnipples
+		if pcs_piercings['nipples_<<pmm_i>>_owned'] = 1: *p '<a href="exec: gs ''piercing_management'', ''wear'', ''nipples'', <<pmm_i>> & gt ''piercing_management'', ''main''"><img height="250" src="<<func(''piercing_management'', ''nipples_image'', pmm_i)>>"></a>'
+		pmm_i += 1
+	if pmm_i <= pmm_total: jump 'loopnipples'
 
 	act 'Return': gt 'piercing_management', 'main'
+	exit
 end
 
-If $ARGS[0] = 'pussy':
-	i = 1
+if $ARGS[0] = 'nipples_image':
+	if ARGS[1] = 0:
+		if pcs_piercings['nipples'] > 0:
+			ARGS[1] = pcs_piercings['nipples']
+		else
+			ARGS[1] = -pcs_piercings['nipples']
+		end
+	end
+	$result = 'images/pc/body/piercings/f<<ARGS[1]>>.jpg'
+	exit
+end
+
+
+if $ARGS[0] = 'pussy':
+	pmm_total = func('piercing_management', 'totals', 'pussy')
+	pmm_i = 1
 	:looppussy
-	if dyneval('RESULT = PirsG<<i>>_owned') = 1:*p '<a href="exec:pirsG = <<i>> & pierWearCount += 1 & gt ''piercing_management'', ''main''"><img src="images/pc/body/piercings/g<<i>>.jpg" 	height="250" /></a>'
-	i += 1
-	if i <= 10:jump 'looppussy'
+		if pcs_piercings['pussy_<<pmm_i>>_owned'] = 1: *p '<a href="exec: gs ''piercing_management'', ''wear'', ''pussy'', <<pmm_i>> & gt ''piercing_management'', ''main''"><img height="250" src="<<func(''piercing_management'', ''pussy_image'', pmm_i)>>"></a>'
+		pmm_i += 1
+	if pmm_i <= pmm_total: jump 'looppussy'
 
 	act 'Return': gt 'piercing_management', 'main'
+	exit
 end
 
---- piercing_management ---------------------------------
+if $ARGS[0] = 'pussy_image':
+	if ARGS[1] = 0:
+		if pcs_piercings['pussy'] > 0:
+			ARGS[1] = pcs_piercings['pussy']
+		else
+			ARGS[1] = -pcs_piercings['pussy']
+		end
+	end
+	$result = 'images/pc/body/piercings/g<<ARGS[1]>>.jpg'
+	exit
+end
+
+
 
+killvar 'pmm_total'
+killvar 'pmm_i'
+
+
+--- piercing_management ---------------------------------

+ 1309 - 1234
locations/pirsingsalon.qsrc

@@ -2,1782 +2,1857 @@
 
 
 !! Piercings variables:
-!! pirsX: Which piercing is worn at position X
-!! X=
-!! A: Tongue
-!! B: Lip
-!! C: Ear
-!! D: Nose
-!! E: Eyebrow
-!! F: Nipple
-!! G: Pussy
-!! N: Navel
-!! pirsX = 10000: the body is pieced at X but no piercing is currently worn there
-
-menu_off = 1
+!! pcs_piercings[location]: Which piercing is worn at position X
+!! locations:
+!!		'ears'
+!!		'nose'
+!!		'brow'
+!!		'lip'
+!!		'tongue'
+!!		'navel'
+!!		'nipples'
+!!		'pussy'
+!! pcs_piercings[location] < 0: the body is pieced at location but no piercing is currently worn there
+
+
+
+if $ARGS[0] = 'count':
+	!!Counting the tattoos and piercings just in case
+
+	gs 'tattoo_management', 'count'
+	gs 'piercing_management', 'count'
+
+	exit
+end
+
+
+
+
+
 
 if $ARGS[0] = 'start':
-	$location_type = 'indoors'
-	$menu_loc = 'pirsingsalon'
-	$menu_arg = 'start'
 	menu_off = 0
+	$location_type = 'indoors'
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'start'
 	gs 'stat'
 	gs 'themes', 'indoors'
+
 	'<center><b>Tattoo & Piercing Salon</b></center>'
 	'<center><img src="images/locations/city/industrial/salon/pirsingstudia.jpg"></center>'
 	'Small studio with just one artist doing the tattoos and piercings.'
 
-	'<center><table border=1><TH>View tattoos</TH><TH>View tattoos</TH><TH>View piercings</TH>'
-	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''arm''">Arm - 8,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''lip''">Lip - 5,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirsyaz''">Tongue - 5,000 <b>₽</b></a></TD></tr>'
-	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''ass''">Ass - 10,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''neck''">Neck - 8,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirsgub''">Lip - 6,000 <b>₽</b></a></TD></tr>'
-	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''back''">Back - 10,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pubic''">Pubic - 20,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirsysh''">Ear - 3,000 <b>₽</b></a></TD></tr>'
-	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''belly''">Belly - 10,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''shoulder''">Shoulder - 8,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirsnos''">Nose - 5,000 <b>₽</b></a></TD></tr>'
-	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''breast''">Breasts - 15,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''side''">Side - 12,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirsbro''">Eyebrow - 5,000 <b>₽</b></a></TD></tr>'
-	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''chest''">Chest - 12000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''tramp''">Tramp stamp - 12,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirssos''">Nipple - 10,000 <b>₽</b></a></TD></tr>'
-	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''face''">Face - 10,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''under''">Under breast - 12,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirspyp''">Navel - 10,000 <b>₽</b></a></TD></tr>'
-	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''foot''">Foot - 8,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''wrist''">Wrist - 7,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''pirsvla''">Pussy - 25,000 <b>₽</b></a></TD></tr>'
-	*p '<tr><TD><a href="exec:gt ''pirsingsalon'', ''leg''">Legs - 10,000 <b>₽</b></TD><TD><a href="exec:gt ''pirsingsalon'', ''hand''">Hand - 7,000 <b>₽</b></TD><TD></TD></tr></table></center>'
+	act 'Leave':
+		minut += 5
+		gs 'pirsingsalon', 'count'
+		gt 'city_industrial'
+	end
 
 	if hour < 12 or hour > 20:
-		cls
+		*nl
 		'Shop is closing and you are asked to leave.'
-
-		act 'Leave':
-			minut += 5
-			gs 'pirsingsalon', 'count'
-			gt 'city_industrial'
-		end
 		exit
 	end
 
-	act 'Leave':
-		minut += 5
-		gs 'pirsingsalon', 'count'
-		gt 'city_industrial'
+	$temp_table = '<center><table border=1>'
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<th>'
+	$temp_table +=			'View tattoos'
+	$temp_table +=		'</th>'
+	$temp_table +=		'<th>'
+	$temp_table +=			'View tattoos'
+	$temp_table +=		'</th>'
+	$temp_table +=		'<th>'
+	$temp_table +=			'View piercings'
+	$temp_table +=		'</th>'
+	$temp_table +=	'</tr>'
+
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<td>'
+	$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''tattoo_hand''">Hand - 7,000 <b>₽</b></a>'
+	$temp_table +=		'</td>'
+	$temp_table +=		'<td>'
+	$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''tattoo_lip''">Lip - 5,000 <b>₽</b></a>'
+	$temp_table +=		'</td>'
+	$temp_table +=		'<td>'
+	if pcs_piercings['ears'] = 0:
+		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_ears''">Ear - 3,000 <b>₽</b></a>'
+	else
+		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_ears''">Ear - 1,000 <b>₽</b></a>'
+	end
+	$temp_table +=		'</td>'
+	$temp_table +=	'</tr>'
+
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<td>'
+	$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''tattoo_wrist''">Wrist - 7,000 <b>₽</b></a>'
+	$temp_table +=		'</td>'
+	$temp_table +=		'<td>'
+	$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''tattoo_belly''">Belly - 10,000 <b>₽</b></a>'
+	$temp_table +=		'</td>'
+	$temp_table +=		'<td>'
+	if pcs_piercings['nose'] = 0:
+		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_nose''">Nose - 5,000 <b>₽</b></a>'
+	else
+		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_nose''">Nose - 2,000 <b>₽</b></a>'
 	end
+	$temp_table +=		'</td>'
+	$temp_table +=	'</tr>'
+
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<td>'
+	$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''tattoo_ankle''">Ankle - 8,000 <b>₽</b></a>'
+	$temp_table +=		'</td>'
+	$temp_table +=		'<td>'
+	$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''tattoo_ass''">Ass - 10,000 <b>₽</b></a>'
+	$temp_table +=		'</td>'
+	$temp_table +=		'<td>'
+	if pcs_piercings['brow'] = 0:
+		$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''piercing_brow''">Eyebrow - 5,000 <b>₽</b></a>'
+	else
+		$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''piercing_brow''">Eyebrow - 2,000 <b>₽</b></a>'
+	end
+	$temp_table +=		'</td>'
+	$temp_table +=	'</tr>'
+
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<td>'
+	$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''tattoo_arm''">Arm - 8,000 <b>₽</b></a>'
+	$temp_table +=		'</td>'
+	$temp_table +=		'<td>'
+	$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''tattoo_face''">Face - 10,000 <b>₽</b></a>'
+	$temp_table +=		'</td>'
+	$temp_table +=		'<td>'
+	if pcs_piercings['lip'] = 0:
+		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_lip''">Lip - 6,000 <b>₽</b></a>'
+	else
+		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_lip''">Lip - 3,000 <b>₽</b></a>'
+	end
+	$temp_table +=		'</td>'
+	$temp_table +=	'</tr>'
+
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<td>'
+	$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''tattoo_shoulder''">Shoulder - 8,000 <b>₽</b></a>'
+	$temp_table +=		'</td>'
+	$temp_table +=		'<td>'
+	$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''tattoo_chest''">Chest - 12000 <b>₽</b></a>'
+	$temp_table +=		'</td>'
+	$temp_table +=		'<td>'
+	if pcs_piercings['tongue'] = 0:
+		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_tongue''">Tongue - 7,000 <b>₽</b></a>'
+	else
+		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_tongue''">Tongue - 4,000 <b>₽</b></a>'
+	end
+	$temp_table +=		'</td>'
+	$temp_table +=	'</tr>'
+
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<td>'
+	$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''tattoo_neck''">Neck - 8,000 <b>₽</b></a>'
+	$temp_table +=		'</td>'
+	$temp_table +=		'<td>'
+	$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''tattoo_tramp''">Tramp stamp - 12,000 <b>₽</b></a>'
+	$temp_table +=		'</td>'
+	$temp_table +=		'<td>'
+	if pcs_piercings['navel'] = 0:
+		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_navel''">Navel - 8,000 <b>₽</b></a>'
+	else
+		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_navel''">Navel - 5,000 <b>₽</b></a>'
+	end
+	$temp_table +=		'</td>'
+	$temp_table +=	'</tr>'
+
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<td>'
+	$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''tattoo_back''">Back - 10,000 <b>₽</b></a>'
+	$temp_table +=		'</td>'
+	$temp_table +=		'<td>'
+	$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''tattoo_under''">Under breast - 12,000 <b>₽</b></a>'
+	$temp_table +=		'</td>'
+	$temp_table +=		'<td>'
+	if pcs_piercings['nipples'] = 0:
+		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_nipples''">Nipple - 10,000 <b>₽</b></a>'
+	else
+		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_nipples''">Nipple - 6,000 <b>₽</b></a>'
+	end
+	$temp_table +=		'</td>'
+	$temp_table +=	'</tr>'
+
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<td>'
+	$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''tattoo_leg''">Legs - 10,000 <b>₽</b></a>'
+	$temp_table +=		'</td>'
+	$temp_table +=		'<td>'
+	$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''tattoo_breast''">Breasts - 15,000 <b>₽</b></a>'
+	$temp_table +=		'</td>'
+	$temp_table +=		'<td>'
+	if pcs_piercings['pussy'] = 0:
+		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_pussy''">Pussy - 25,000 <b>₽</b></a>'
+	else
+		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_pussy''">Pussy - 10,000 <b>₽</b></a>'
+	end
+	$temp_table +=		'</td>'
+	$temp_table +=	'</tr>'
+
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<td>'
+	$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''tattoo_side''">Side - 12,000 <b>₽</b></a>'
+	$temp_table +=		'</td>'
+	$temp_table +=		'<td>'
+	$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''tattoo_pussy''">Pubic - 20,000 <b>₽</b></a>'
+	$temp_table +=		'</td>'
+	$temp_table +=		'<td>'
+	$temp_table +=		'</td>'
+	$temp_table +=	'</tr>'
+
+	$temp_table += '</table></center>'
+
+	'<<$temp_table>>'
+	killvar '$temp_table'
 end
 
-if $ARGS[0] = 'count':
-	!!Counting the tattoos and piercings just in case
 
-	tattCount = 0
-
-	if tatarm >= 1: tattCount += 1
-	if tatass >= 1:	tattCount += 1
-	if tatback >= 1: tattCount += 1
-	if tatblly >= 1: tattCount += 1
-	if tatbrst >= 1: tattCount += 1
-	if tatchst >= 1: tattCount += 1
-	if tatfce >= 1:	tattCount += 1
-	if tatankle >= 1: tattCount += 1
-	if tatleg >= 1:	tattCount += 1
-	if tatlip >= 1:	tattCount += 1
-	if tatneck >= 1: tattCount += 1
-	if tatvag >= 1: tattCount += 1
-	if tatlech >= 1: tattCount += 1
-	if tatside >= 1: tattCount += 1
-	if tatupb >= 1: tattCount += 1
-	if tatunder >= 1: tattCount += 1
-	if tatwrist >= 1: tattCount += 1
-	if tathand >= 1: tattCount += 1
-
-	pierWearCount = 0
-
-	if pirsA > 0 and pirsA ! 10000:	pierWearCount += 1
-	if pirsB > 0 and pirsB ! 10000:	pierWearCount += 1
-	if pirsC > 0 and pirsC ! 10000:	pierWearCount += 1
-	if pirsD > 0 and pirsD ! 10000:	pierWearCount += 1
-	if pirsE > 0 and pirsE ! 10000:	pierWearCount += 1
-	if pirsF > 0 and pirsF ! 10000:	pierWearCount += 1
-	if pirsG > 0 and pirsG ! 10000:	pierWearCount += 1
-	if pirsN > 0 and pirsN ! 10000:	pierWearCount += 1
-end
-
-if $ARGS[0] = 'pirsyaz':
-	*clr
-	cla
-
-	i = 1
-	:looptongue_pir
-		*p '<a href="exec:gt ''pirsingsalon'', ''tongue_pir'', <<i>>"><img src="images/pc/body/piercings/a<<i>>.jpg" 	height="250" /></a>'
-		i += 1
-	if i <= 4:jump 'looptongue_pir'
 
-	act 'Return':gt 'pirsingsalon', 'start'
+
+	!!========================================================================!!
+	!!                                                                        !!
+	!!                               PIERCINGS                                !!
+	!!                                                                        !!
+	!!========================================================================!!
+
+
+	!!----- Ears --------------------------------------------------
+
+if $ARGS[0] = 'piercing_ears':
+	menu_off = 1
+	gs 'stat'
+
+	ps_total = func('piercing_management', 'totals', 'ears')
+	ps_i = 1
+	:loopears_pir
+		*p '<a href="exec:gt ''pirsingsalon'', ''piercing_ears2'', <<ps_i>>"><img height="250" src="<<func(''piercing_management'', ''ears_image'', ps_i)>>"></a>'
+		ps_i += 1
+	if ps_i <= ps_total: jump 'loopears_pir'
+
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'tongue_pir':
-	*clr
-	cla
-	i = ARGS[1]
-	'<center><img src="images/pc/body/piercings/a<<i>>.jpg"></center>'
+if $ARGS[0] = 'piercing_ears2':
+	'<center><img src="<<func(''piercing_management'', ''ears_image'', ARGS[1])>>"></center>'
 
-	if pirsA > 0:
-		if dyneval('RESULT = PirsA<<i>>_owned') = 1:
-			'You already own this piercing.'
-			act 'Return':gt 'pirsingsalon', 'pirsyaz'
+	if pcs_piercings['ears_<<ARGS[1]>>_owned'] = 1:
+		'You already own this piercing.'
+		act 'Return': gt 'pirsingsalon', 'piercing_ears'
+
+	elseif pcs_piercings['ears'] = 0:
+		if max(money, karta) < 3000:
+			'You cannot afford to get your ears pierced with this piercing.'
 		else
 			if money >= 3000:
-				act 'Buy this piercing for 3,000 <b>₽</b> (cash)':
-					'You buy the piercing.'
-					cla
-					money -= 3000
-					dynamic 'pirsA<<i>>_owned = 1'
-					act 'Return':gt 'pirsingsalon', 'pirsyaz'
-				end
-			else
-				'You don''t have enough cash for this piercing.'
+				dynamic "
+					act 'Get your ears pierced with these earrings for 3,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_ears3', <<ARGS[1]>>, 'money'
+				"
 			end
 			if karta >= 3000:
-				act 'Buy this piercing for 3,000 <b>₽</b> (card)':
-					'You buy the piercing.'
-					cla
-					karta -= 3000
-					dynamic 'pirsA<<i>>_owned = 1'
-					act 'Return':gt 'pirsingsalon', 'pirsyaz'
-				end
-			else
-				'You don''t have enough money in your bank for this piercing.'
+				dynamic "
+					act 'Get your ears pierced with these earrings for 3,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_ears3', <<ARGS[1]>>, 'karta'
+				"
 			end
 		end
-	elseif (money >= 5000) or (karta >= 5000):
-		if money >= 5000:
-			act 'Get your tongue pierced with this piercing for 5,000 <b>₽</b> (cash)':
-				cls
-				minut += 30
-				money -= 5000
-				pirsA = i
-				dynamic 'pirsA<<i>>_owned = 1'
-				pierWearCount += 1
-				gs 'pain', 5, 'tongue', 'pierce'
-				'<center><img src="images/locations/city/industrial/salon/pirsing.jpg"></center>'
-				gs 'stat'
-				'The tattooist disinfects the area, pierces your tongue and inserts your chosen piercing.'
-
-				act 'Leave':gt 'pirsingsalon', 'start'
+
+	else
+		if max(money, karta) < 1000:
+			'You don''t have enough money for this piercing.'
+		else
+			if money >= 1000:
+				dynamic "
+					act 'Buy this piercing for 1,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_ears3', <<ARGS[1]>>, 'money'
+				"
 			end
-		end
-		if karta >= 5000:
-			act 'Get your tongue pierced with this piercing for 5,000 <b>₽</b> (card)':
-				cls
-				minut += 30
-				karta -= 5000
-				pirsA = i
-				dynamic 'pirsA<<i>>_owned = 1'
-				pierWearCount += 1
-				gs 'pain', 5, 'tongue', 'pierce'
-				'<center><img src="images/locations/city/industrial/salon/pirsing.jpg"></center>'
-				gs 'stat'
-				'The tattooist disinfects the area, pierces your tongue and inserts your chosen piercing.'
-
-				act 'Leave':gt 'pirsingsalon', 'start'
+			if karta >= 1000:
+				dynamic "
+					act 'Buy this piercing for 1,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_ears3', <<ARGS[1]>>, 'karta'
+				"
 			end
 		end
+	end
+
+	act 'Return': gt 'pirsingsalon', 'piercing_ears'
+end
+
+if $ARGS[0] = 'piercing_ears3':
+	if pcs_piercings['ears'] = 0:
+		*clr
+		minut += 30
+		if $ARGS[2] = 'money': money -= 2000 else karta -= 2000
+
+		'<center><img src="<<func(''piercing_management'', ''ears_image'', ARGS[1])>>"></center>'
+		'The tattooist disinfects the area, pierces your ears and inserts your chosen earrings.'
+
+		gs 'pain', 1, 'ears', 'pierce'
+
 	else
-		'You cannot afford to get your tongue pierced with this piercing.'
+		'You buy the piercing.'
 	end
 
-	act 'Return':gt 'pirsingsalon', 'pirsyaz'
+	if $ARGS[2] = 'money': money -= 1000 else karta -= 1000
+	gs 'piercing_management', 'add', 'ears', ARGS[1]
+	gs 'stat'
+
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'pirsgub':
-	*clr
-	cla
 
-	i = 1
-	:looplip_pir
-		*p '<a href="exec:gt ''pirsingsalon'', ''lip_pir'', <<i>>"><img src="images/pc/body/piercings/b<<i>>.jpg" 	height="250" /></a>'
-		i += 1
-	if i <= 7:jump 'looplip_pir'
+	!!----- Nose --------------------------------------------------
+
+if $ARGS[0] = 'piercing_nose':
+	menu_off = 1
+	gs 'stat'
+
+	ps_total = func('piercing_management', 'totals', 'nose')
+	ps_i = 1
+	:loopnose_pir
+		*p '<a href="exec: gt ''pirsingsalon'', ''piercing_nose2'', <<ps_i>>"><img height="250" src="<<func(''piercing_management'', ''nose_image'', ps_i)>>"></a>'
+		ps_i += 1
+	if ps_i <= ps_total: jump 'loopnose_pir'
 
 	act 'Return':gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'lip_pir':
-	*clr
-	cla
-	i = ARGS[1]
-	'<center><img src="images/pc/body/piercings/b<<i>>.jpg"></center>'
+if $ARGS[0] = 'piercing_nose2':
+	'<center><img src="<<func(''piercing_management'', ''nose_image'', ARGS[1])>>"></center>'
 
-	if pirsB > 0:
-		if dyneval('RESULT = PirsB<<i>>_owned') = 1:
-			'You already own this piercing.'
-			act 'Return':gt 'pirsingsalon', 'pirsgub'
+	if pcs_piercings['nose_<<ARGS[1]>>_owned'] = 1:
+		'You already own this piercing.'
+		act 'Return': gt 'pirsingsalon', 'piercing_nose'
+
+	elseif pcs_piercings['nose'] = 0:
+		if max(money, karta) < 5000:
+			'You cannot afford to get your nose pierced with this piercing.'
 		else
-			if money >= 4000:
-				act 'Buy this piercing for 4,000 <b>₽</b> (cash)':
-					'You buy the piercing.'
-					cla
-					money -= 4000
-					dynamic 'pirsB<<i>>_owned = 1'
-					act 'Return':gt 'pirsingsalon', 'pirsgub'
-				end
-			else
-				'You don''t have enough cash for this piercing.'
+			if money >= 5000:
+				dynamic "
+					act 'Get your nose pierced with these earrings for 5,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_nose3', <<ARGS[1]>>, 'money'
+				"
 			end
-			if karta >= 4000:
-				act 'Buy this piercing for 4,000 <b>₽</b> (card)':
-					'You buy the piercing.'
-					cla
-					karta -= 4000
-					dynamic 'pirsB<<i>>_owned = 1'
-					act 'Return':gt 'pirsingsalon', 'pirsgub'
-				end
-			else
-				'You don''t have enough money in your bank for this piercing.'
+			if karta >= 5000:
+				dynamic "
+					act 'Get your nose pierced with these earrings for 5,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_nose3', <<ARGS[1]>>, 'karta'
+				"
 			end
 		end
-	elseif (money >= 6000) or (karta >= 6000):
-		if money >= 6000:
-			act 'Get your lip pierced with this piercing for 6,000 <b>₽</b> (cash)':
-				cls
-				minut += 30
-				money -= 6000
-				pirsB = i
-				dynamic 'pirsB<<i>>_owned = 1'
-				pierWearCount += 1
-				gs 'pain', 2, 'lips', 'pierce'
-				'<center><img src="images/locations/city/industrial/salon/pirsing2.jpg"></center>'
-				gs 'stat'
-				'The tattooist disinfects the area, pierces your lip and inserts your chosen piercing.'
-
-				act 'Leave':gt 'pirsingsalon', 'start'
+
+	else
+		if max(money, karta) < 2000:
+			'You don''t have enough money for this piercing.'
+		else
+			if money >= 2000:
+				dynamic "
+					act 'Buy this piercing for 2,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_nose3', <<ARGS[1]>>, 'money'
+				"
 			end
-		end
-		if karta >= 6000:
-			act 'Get your lip pierced with this piercing for 6,000 <b>₽</b> (card)':
-				cls
-				minut += 30
-				karta -= 6000
-				pirsB = i
-				dynamic 'pirsB<<i>>_owned = 1'
-				pierWearCount += 1
-				gs 'pain', 2, 'lips', 'pierce'
-				'<center><img src="images/locations/city/industrial/salon/pirsing2.jpg"></center>'
-				gs 'stat'
-				'The tattooist disinfects the area, pierces your lip and inserts your chosen piercing.'
-
-				act 'Leave':gt 'pirsingsalon', 'start'
+			if karta >= 2000:
+				dynamic "
+					act 'Buy this piercing for 2,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_nose3', <<ARGS[1]>>, 'karta'
+				"
 			end
 		end
+	end
+
+	act 'Return': gt 'pirsingsalon', 'piercing_nose'
+end
+
+if $ARGS[0] = 'piercing_nose3':
+	if pcs_piercings['nose'] = 0:
+		*clr
+		minut += 30
+		if $ARGS[2] = 'money': money -= 3000 else karta -= 3000
+
+		'<center><img src="<<func(''piercing_management'', ''nose_image'', ARGS[1])>>"></center>'
+		'The tattooist disinfects the area, pierces your nose and inserts your chosen piercing.'
+
+		gs 'pain', 2, 'nose', 'pierce'
+
 	else
-		'You cannot afford to get your lip pierced with this piercing.'
+		'You buy the piercing.'
 	end
 
-	act 'Return':gt 'pirsingsalon', 'pirsgub'
+	if $ARGS[2] = 'money': money -= 2000 else karta -= 2000
+	gs 'piercing_management', 'add', 'nose', ARGS[1]
+	gs 'stat'
+
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'pirsysh':
-	*clr
-	cla
 
-	i = 1
-	:loopears_pir
-		*p '<a href="exec:gt ''pirsingsalon'', ''ears_pir'', <<i>>"><img src="images/pc/body/piercings/c<<i>>.jpg" 	height="250" /></a>'
-		i += 1
-	if i <= 24:jump 'loopears_pir'
+	!!----- Brow --------------------------------------------------
 
-	act 'Return':gt 'pirsingsalon', 'start'
+if $ARGS[0] = 'piercing_brow':
+	menu_off = 1
+	gs 'stat'
+
+	ps_total = func('piercing_management', 'totals', 'brow')
+	ps_i = 1
+	:loopbrow_pir
+		*p '<a href="exec: gt ''pirsingsalon'', ''piercing_brow2'', <<ps_i>>"><img height="250" src="<<func(''piercing_management'', ''brow_image'', ps_i)>>"></a>'
+		ps_i += 1
+	if ps_i <= ps_total: jump 'loopbrow_pir'
+
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'ears_pir':
-	*clr
-	cla
-	i = ARGS[1]
-	'<center><img src="images/pc/body/piercings/c<<i>>.jpg"></center>'
+if $ARGS[0] = 'piercing_brow2':
+	'<center><img src="<<func(''piercing_management'', ''brow_image'', ARGS[1])>>"></center>'
 
-	if pirsC > 0:
-		if dyneval('RESULT = PirsC<<i>>_owned') = 1:
-			'You already own these earrings.'
-			act 'Return':gt 'pirsingsalon', 'pirsysh'
+	if pcs_piercings['brow_<<ARGS[1]>>_owned'] = 1:
+		'You already own this piercing.'
+		act 'Return': gt 'pirsingsalon', 'piercing_brow'
+
+	elseif pcs_piercings['brow'] = 0:
+		if max(money, karta) < 5000:
+			'You cannot afford to get your brow pierced with this piercing.'
 		else
-			if money >= 1000:
-				act 'Buy this piercing for 1,000 <b>₽</b> (cash)':
-					'You buy the earrings.'
-					cla
-					money -= 1000
-					dynamic 'pirsC<<i>>_owned = 1'
-					act 'Return':gt 'pirsingsalon', 'pirsysh'
-				end
-			else
-				'You don''t have enough cash for these earrings.'
+			if money >= 5000:
+				dynamic "
+					act 'Get your brow pierced with these earrings for 5,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_brow3', <<ARGS[1]>>, 'money'
+				"
 			end
-			if karta >= 1000:
-				act 'Buy these earrings for 1,000 <b>₽</b> (card)':
-					'You buy the earrings.'
-					cla
-					karta -= 1000
-					dynamic 'pirsC<<i>>_owned = 1'
-					act 'Return':gt 'pirsingsalon', 'pirsysh'
-				end
-			else
-				'You don''t have enough money in your bank for these earrings.'
+			if karta >= 5000:
+				dynamic "
+					act 'Get your brow pierced with these earrings for 5,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_brow3', <<ARGS[1]>>, 'karta'
+				"
 			end
 		end
-	elseif (money >= 3000) or (karta >= 3000):
-		if money >= 3000:
-			act 'Get your ears pierced with these earrings for 3,000 <b>₽</b> (cash)':
-				cls
-				minut += 30
-				money -= 3000
-				pirsC = i
-				dynamic 'pirsC<<i>>_owned = 1'
-				pierWearCount += 1
-				gs 'pain', 1, 'ears', 'pierce'
-				'<center><img src="images/pc/body/piercings/c<<i>>.jpg"></center>'
-				gs 'stat'
-				'The tattooist disinfects the area, pierces your ears and inserts your chosen earrings.'
-
-				act 'Leave':gt 'pirsingsalon', 'start'
+
+	else
+		if max(money, karta) < 2000:
+			'You don''t have enough money for this piercing.'
+		else
+			if money >= 2000:
+				dynamic "
+					act 'Buy this piercing for 2,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_brow3', <<ARGS[1]>>, 'money'
+				"
 			end
-		end
-		if karta >= 3000:
-			act 'Get your ears pierced with these earrings for 3,000 <b>₽</b> (card)':
-				cls
-				minut += 30
-				karta -= 3000
-				pirsC = i
-				dynamic 'pirsC<<i>>_owned = 1'
-				pierWearCount += 1
-				gs 'pain', 1, 'ears', 'pierce'
-				'<center><img src="images/pc/body/piercings/c<<i>>.jpg"></center>'
-				gs 'stat'
-				'The tattooist disinfects the area, pierces your ears and inserts your chosen earrings.'
-
-				act 'Leave':gt 'pirsingsalon', 'start'
+			if karta >= 2000:
+				dynamic "
+					act 'Buy this piercing for 2,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_brow3', <<ARGS[1]>>, 'karta'
+				"
 			end
 		end
+	end
+
+	act 'Return':gt 'pirsingsalon', 'piercing_brow'
+end
+
+if $ARGS[0] = 'piercing_brow3':
+	if pcs_piercings['brow'] = 0:
+		*clr
+		minut += 30
+		if $ARGS[2] = 'money': money -= 3000 else karta -= 3000
+
+		'<center><img src="<<func(''piercing_management'', ''brow_image'', ARGS[1])>>"></center>'
+		'The tattooist disinfects the area, pierces your brow and inserts your chosen piercing.'
+
+		gs 'pain', 3, 'eyebrows', 'pierce'
+
 	else
-		'You cannot afford to get your ears pierced with this earrings.'
+		'You buy the piercing.'
 	end
 
-	act 'Return':gt 'pirsingsalon', 'pirsysh'
+	if $ARGS[2] = 'money': money -= 2000 else karta -= 2000
+	gs 'piercing_management', 'add', 'brow', ARGS[1]
+	gs 'stat'
+
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'pirsnos':
-	*clr
-	cla
 
-	i = 1
-	:loopnose_pir
-		*p '<a href="exec:gt ''pirsingsalon'', ''nose_pir'', <<i>>"><img src="images/pc/body/piercings/d<<i>>.jpg" 	height="250" /></a>'
-		i += 1
-	if i <= 7:jump 'loopnose_pir'
+	!!----- Lip --------------------------------------------------
 
-	act 'Return':gt 'pirsingsalon', 'start'
+if $ARGS[0] = 'piercing_lip':
+	menu_off = 1
+	gs 'stat'
+
+	ps_total = func('piercing_management', 'totals', 'lip')
+	ps_i = 1
+	:looplip_pir
+		*p '<a href="exec: gt ''pirsingsalon'', ''piercing_lip2'', <<ps_i>>"><img height="250" src="<<func(''piercing_management'', ''lip_image'', ps_i)>>"></a>'
+		ps_i += 1
+	if ps_i <= ps_total: jump 'looplip_pir'
+
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'nose_pir':
-	*clr
-	cla
-	i = ARGS[1]
-	'<center><img src="images/pc/body/piercings/d<<i>>.jpg"></center>'
+if $ARGS[0] = 'piercing_lip2':
+	'<center><img src="<<func(''piercing_management'', ''lip_image'', ARGS[1])>>"></center>'
+
+	if pcs_piercings['lip_<<ARGS[1]>>_owned'] = 1:
+		'You already own this piercing.'
+		act 'Return': gt 'pirsingsalon', 'piercing_lip'
 
-	if pirsD > 0:
-		if dyneval('RESULT = PirsD<<i>>_owned') = 1:
-			'You already own this piercing.'
-			act 'Return':gt 'pirsingsalon', 'pirsnos'
+	elseif pcs_piercings['lip'] = 0:
+		if max(money, karta) < 6000:
+			'You cannot afford to get your lip pierced with this piercing.'
 		else
-			if money >= 2000:
-				act 'Buy this piercing for 2,000 <b>₽</b> (cash)':
-					'You buy the piercing.'
-					cla
-					money -= 2000
-					dynamic 'pirsD<<i>>_owned = 1'
-					act 'Return':gt 'pirsingsalon', 'pirsnos'
-				end
-			else
-				'You don''t have enough cash for this piercing.'
+			if money >= 6000:
+				dynamic "
+					act 'Get your lip pierced with this piercing for 6,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_lip3', <<ARGS[1]>>, 'money'
+				"
 			end
-			if karta >= 2000:
-				act 'Buy this piercing for 2,000 <b>₽</b> (card)':
-					'You buy the piercing.'
-					cla
-					karta -= 2000
-					dynamic 'pirsD<<i>>_owned = 1'
-					act 'Return':gt 'pirsingsalon', 'pirsnos'
-				end
-			else
-				'You don''t have enough money in your bank for this piercing.'
+			if karta >= 6000:
+				dynamic "
+					act 'Get your lip pierced with this piercing for 6,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_lip3', <<ARGS[1]>>, 'karta'
+				"
 			end
 		end
-	elseif (money >= 5000) or (karta >= 5000):
-		if money >= 5000:
-			act 'Get your nose pierced with this piercing for 5,000 <b>₽</b> (cash)':
-				cls
-				minut += 30
-				money -= 5000
-				pirsD = i
-				dynamic 'pirsD<<i>>_owned = 1'
-				pierWearCount += 1
-				gs 'pain', 2, 'nose', 'pierce'
-				'<center><img src="images/pc/body/piercings/d<<i>>.jpg"></center>'
-				gs 'stat'
-				'The tattooist disinfects the area, pierces your nose and inserts your chosen piercing.'
-
-				act 'Leave':gt 'pirsingsalon', 'start'
+
+	else
+		if max(money, karta) < 3000:
+			'You don''t have enough money for this piercing.'
+		else
+			if money >= 3000:
+				dynamic "
+					act 'Buy this piercing for 3,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_lip3', <<ARGS[1]>>, 'money'
+				"
 			end
-		end
-		if karta >= 5000:
-			act 'Get your nose pierced with this piercing for 5,000 <b>₽</b> (card)':
-				cls
-				minut += 30
-				karta -= 5000
-				pirsD = i
-				dynamic 'pirsD<<i>>_owned = 1'
-				pierWearCount += 1
-				gs 'pain', 2, 'nose', 'pierce'
-				'<center><img src="images/pc/body/piercings/d<<i>>.jpg"></center>'
-				gs 'stat'
-				'The tattooist disinfects the area, pierces your nose and inserts your chosen piercing.'
-
-				act 'Leave':gt 'pirsingsalon', 'start'
+			if karta >= 3000:
+				dynamic "
+					act 'Buy this piercing for 3,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_lip3', <<ARGS[1]>>, 'karta'
+				"
 			end
 		end
+	end
+
+	act 'Return': gt 'pirsingsalon', 'piercing_lip'
+end
+
+if $ARGS[0] = 'piercing_lip3':
+	if pcs_piercings['lip'] = 0:
+		*clr
+		minut += 30
+		if $ARGS[2] = 'money': money -= 3000 else karta -= 3000
+
+		'<center><img src="images/locations/city/industrial/salon/pirsing2.jpg"></center>'
+		'The tattooist disinfects the area, pierces your lip and inserts your chosen piercing.'
+
+		gs 'pain', 2, 'lips', 'pierce'
+
 	else
-		'You cannot afford to get your lip pierced with this piercing.'
+		'You buy the piercing.'
 	end
 
-	act 'Return':gt 'pirsingsalon', 'pirsnos'
+	if $ARGS[2] = 'money': money -= 3000 else karta -= 3000
+	gs 'piercing_management', 'lip', 'ears', ARGS[1]
+	gs 'stat'
+
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'pirsbro':
-	*clr
-	cla
 
-	i = 1
-	:loopbrow_pir
-		*p '<a href="exec:gt ''pirsingsalon'', ''brow_pir'', <<i>>"><img src="images/pc/body/piercings/e<<i>>.jpg" 	height="250" /></a>'
-		i += 1
-	if i <= 2:jump 'loopbrow_pir'
+	!!----- Tongue --------------------------------------------------
 
-	act 'Return':gt 'pirsingsalon', 'start'
+if $ARGS[0] = 'piercing_tongue':
+	menu_off = 1
+	gs 'stat'
+
+	ps_total = func('piercing_management', 'totals', 'tongue')
+	ps_i = 1
+	:looptongue_pir
+		*pl '<a href="exec: gt ''pirsingsalon'', ''piercing_tongue2'', <<ps_i>>"><img height="250" src="<<func(''piercing_management'', ''tongue_image'', ps_i)>>"></a>'
+		ps_i += 1
+	if ps_i <= ps_total: jump 'looptongue_pir'
+
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'brow_pir':
-	*clr
-	cla
-	i = ARGS[1]
-	'<center><img src="images/pc/body/piercings/e<<i>>.jpg"></center>'
+if $ARGS[0] = 'piercing_tongue2':
+	menu_off = 1
+	gs 'stat'
 
-	if pirsE > 0:
-		if dyneval('RESULT = PirsE<<i>>_owned') = 1:
-			'You already own this piercing.'
-			act 'Return':gt 'pirsingsalon', 'pirsbro'
+	'<center><img src="<<func(''piercing_management'', ''tongue_image'', ARGS[1])>>"></center>'
+
+	if pcs_piercings['tongue_<<ARGS[1]>>_owned'] = 1:
+		'You already own this piercing.'
+		act 'Return': gt 'pirsingsalon', 'piercing_tongue'
+
+	elseif pcs_piercings['tongue'] = 0:
+		if max(money, karta) < 7000:
+			'You cannot afford to get your tongue pierced with this piercing.'
 		else
-			if money >= 2000:
-				act 'Buy this piercing for 2,000 <b>₽</b> (cash)':
-					'You buy the piercing.'
-					cla
-					money -= 2000
-					dynamic 'PirsE<<i>>_owned = 1'
-					act 'Return':gt 'pirsingsalon', 'pirsbro'
-				end
-			else
-				'You don''t have enough cash for this piercing.'
+			if money >= 7000:
+				dynamic "
+					act 'Get your tongue pierced with this piercing for 7,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_tongue3', <<ARGS[1]>>, 'money'
+				"
 			end
-			if karta >= 2000:
-				act 'Buy this piercing for 2,000 <b>₽</b> (card)':
-					'You buy the piercing.'
-					cla
-					karta -= 2000
-					dynamic 'PirsE<<i>>_owned = 1'
-					act 'Return':gt 'pirsingsalon', 'pirsbro'
-				end
-			else
-				'You don''t have enough money in your bank for this piercing.'
+			if karta >= 7000:
+				dynamic "
+					act 'Get your tongue pierced with this piercing for 7,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_tongue3', <<ARGS[1]>>, 'karta'
+				"
 			end
 		end
-	elseif (money >= 5000) or (karta >= 5000):
-		if money >= 5000:
-			act 'Get your brow pierced with this piercing for 5,000 <b>₽</b> (cash)':
-				cls
-				minut += 30
-				money -= 5000
-				PirsE = i
-				dynamic 'PirsE<<i>>_owned = 1'
-				pierWearCount += 1
-				gs 'pain', 3, 'eyebrows', 'pierce'
-				'<center><img src="images/pc/body/piercings/e<<i>>.jpg"></center>'
-				gs 'stat'
-				'The tattooist disinfects the area, pierces your brow and inserts your chosen piercing.'
-
-				act 'Leave':gt 'pirsingsalon', 'start'
+
+	else
+		if max(money, karta) < 4000:
+			'You don''t have enough money for this piercing.'
+		else
+			if money >= 4000:
+				dynamic "
+					act 'Buy this piercing for 4,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_tongue3', <<ARGS[1]>>, 'money'
+				"
 			end
-		end
-		if karta >= 5000:
-			act 'Get your brow pierced with this piercing for 5,000 <b>₽</b> (card)':
-				cls
-				minut += 30
-				karta -= 5000
-				PirsE = i
-				dynamic 'PirsE<<i>>_owned = 1'
-				pierWearCount += 1
-				gs 'pain', 3, 'eyebrows', 'pierce'
-				'<center><img src="images/pc/body/piercings/e<<i>>.jpg"></center>'
-				gs 'stat'
-				'The tattooist disinfects the area, pierces your brow and inserts your chosen piercing.'
-
-				act 'Leave':gt 'pirsingsalon', 'start'
+			if karta >= 4000:
+				dynamic "
+					act 'Buy this piercing for 4,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_tongue3', <<ARGS[1]>>, 'karta'
+				"
 			end
 		end
+	end
+
+	act 'Return': gt 'pirsingsalon', 'piercing_tongue'
+end
+
+if $ARGS[0] = 'piercing_tongue3':
+	if pcs_piercings['tongue'] = 0:
+		*clr
+		minut += 30
+		if $ARGS[2] = 'money': money -= 3000 else karta -= 3000
+
+		'<center><img src="images/locations/city/industrial/salon/pirsing.jpg"></center>'
+		'The tattooist disinfects the area, pierces your tongue and inserts your chosen piercing.'
+
+		gs 'pain', 5, 'tongue', 'pierce'
+
 	else
-		'You cannot afford to get your brow pierced with this piercing.'
+		'You buy the piercing.'
 	end
 
-	act 'Return':gt 'pirsingsalon', 'pirsbro'
+	if $ARGS[2] = 'money': money -= 4000 else karta -= 4000
+	gs 'piercing_management', 'add', 'tongue', ARGS[1]
+	gs 'stat'
+
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'pirssos':
-	*clr
-	cla
 
-	i = 1
-	:loopnip_pir
-		*p '<a href="exec:gt ''pirsingsalon'', ''nip_pir'', <<i>>"><img src="images/pc/body/piercings/f<<i>>.jpg" 	height="250" /></a>'
-		i += 1
-	if i <= 7:jump 'loopnip_pir'
+	!!----- Navel --------------------------------------------------
 
-	act 'Return':gt 'pirsingsalon', 'start'
+if $ARGS[0] = 'piercing_navel':
+	menu_off = 1
+	gs 'stat'
+
+	ps_total = func('piercing_management', 'totals', 'navel')
+	ps_i = 1
+	:loopbelly_pir
+		*p '<a href="exec: gt ''pirsingsalon'', ''piercing_navel2'', <<ps_i>>"><img height="250" src="<<func(''piercing_management'', ''navel_image'', ps_i)>>"></a>'
+		ps_i += 1
+	if ps_i <= ps_total: jump 'loopbelly_pir'
+
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'nip_pir':
-	*clr
-	cla
-	i = ARGS[1]
-	'<center><img src="images/pc/body/piercings/f<<i>>.jpg"></center>'
+if $ARGS[0] = 'piercing_navel2':
+	'<center><img src="<<func(''piercing_management'', ''navel_image'', ARGS[1])>>"></center>'
+
+	if pcs_piercings['navel_<<ARGS[1]>>_owned'] = 1:
+		'You already own this piercing.'
+		act 'Return': gt 'pirsingsalon', 'piercing_brow'
 
-	if pirsF > 0:
-		if dyneval('RESULT = PirsF<<i>>_owned') = 1:
-			'You already own this piercing.'
-			act 'Return':gt 'pirsingsalon', 'pirssos'
+	elseif pcs_piercings['navel'] = 0:
+		if max(money, karta) < 8000:
+			'You cannot afford to get your belly button pierced with this piercing.'
 		else
-			if money >= 6000:
-				act 'Buy these piercings for 6,000 <b>₽</b> (cash)':
-					'You buy the piercings.'
-					cla
-					money -= 6000
-					dynamic 'pirsF<<i>>_owned = 1'
-					act 'Return':gt 'pirsingsalon', 'pirssos'
-				end
-			else
-				'You don''t have enough cash for these piercings.'
+			if money >= 8000:
+				dynamic "
+					act 'Get your belly button pierced with these earrings for 8,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_navel3', <<ARGS[1]>>, 'money'
+				"
 			end
-			if karta >= 6000:
-				act 'Buy these piercings for 6,000 <b>₽</b> (card)':
-					'You buy the piercings.'
-					cla
-					karta -= 6000
-					dynamic 'pirsF<<i>>_owned = 1'
-					act 'Return':gt 'pirsingsalon', 'pirssos'
-				end
-			else
-				'You don''t have enough money in your bank for this piercing.'
+			if karta >= 8000:
+				dynamic "
+					act 'Get your belly button pierced with these earrings for 8,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_navel3', <<ARGS[1]>>, 'karta'
+				"
 			end
 		end
-	elseif (money >= 10000) or (karta >= 10000):
-		if money >= 10000:
-			act 'Get your nipples pierced with these piercings for 10,000 <b>₽</b> (cash)':
-				cls
-				minut += 30
-				money -= 10000
-				pirsF = i
-				dynamic 'pirsF<<i>>_owned = 1'
-				pierWearCount += 1
-				gs 'pain', 7, 'nipples', 'pierce'
-				'<center><img src="images/pc/body/piercings/f<<i>>.jpg"></center>'
-				gs 'stat'
-				'The tattooist disinfects the area, pierces your nipples and inserts your chosen piercings.'
-
-				act 'Leave':gt 'pirsingsalon', 'start'
+
+	else
+		if max(money, karta) < 5000:
+			'You don''t have enough money for this piercing.'
+		else
+			if money >= 5000:
+				dynamic "
+					act 'Buy this piercing for 5,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_navel3', <<ARGS[1]>>, 'money'
+				"
 			end
-		end
-		if karta >= 10000:
-			act 'Get your nipples pierced with these piercings for 10,000 <b>₽</b> (card)':
-				cls
-				minut += 30
-				karta -= 10000
-				pirsF = i
-				dynamic 'pirsF<<i>>_owned = 1'
-				pierWearCount += 1
-				gs 'pain', 7, 'nipples', 'pierce'
-				'<center><img src="images/pc/body/piercings/f<<i>>.jpg"></center>'
-				gs 'stat'
-				'The tattooist disinfects the area, pierces your nipples and inserts your chosen piercings.'
-
-				act 'Leave':gt 'pirsingsalon', 'start'
+			if karta >= 5000:
+				dynamic "
+					act 'Buy this piercing for 5,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_navel3', <<ARGS[1]>>, 'karta'
+				"
 			end
 		end
+	end
+
+	act 'Return': gt 'pirsingsalon', 'piercing_navel'
+end
+
+if $ARGS[0] = 'piercing_navel3':
+	if pcs_piercings['navel'] = 0:
+		*clr
+		minut += 30
+		if $ARGS[2] = 'money': money -= 3000 else karta -= 3000
+
+		'<center><img src="<<func(''piercing_management'', ''navel_image'', ARGS[1])>>"></center>'
+		'The tattooist disinfects the area, pierces your belly button and inserts your chosen piercing.'
+		gs 'pain', 1, 'tummy', 'pierce'
+
 	else
-		'You cannot afford to get your nipples pierced with these piercings.'
+		'You buy the piercing.'
 	end
 
-	act 'Return':gt 'pirsingsalon', 'pirssos'
+	if $ARGS[2] = 'money': money -= 5000 else karta -= 5000
+	gs 'piercing_management', 'add', 'navel', ARGS[1]
+	gs 'stat'
+
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'pirspyp':
-	*clr
-	cla
 
-	i = 1
-	:loopbelly_pir
-		*p '<a href="exec:gt ''pirsingsalon'', ''belly_pir'', <<i>>"><img src="images/pc/body/piercings/n<<i>>.jpg" 	height="250" /></a>'
-		i += 1
-	if i <= 4:jump 'loopbelly_pir'
+	!!----- Nipples --------------------------------------------------
 
-	act 'Return':gt 'pirsingsalon', 'start'
+if $ARGS[0] = 'piercing_nipples':
+	menu_off = 1
+	gs 'stat'
+
+	ps_total = func('piercing_management', 'totals', 'nipples')
+	ps_i = 1
+	:loopnip_pir
+		*p '<a href="exec: gt ''pirsingsalon'', ''piercing_nipples2'', <<ps_i>>"><img height="250" src="<<func(''piercing_management'', ''nipples_image'', ps_i)>>"></a>'
+		ps_i += 1
+	if ps_i <= ps_total: jump 'loopnip_pir'
+
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'belly_pir':
-	*clr
-	cla
-	i = ARGS[1]
-	'<center><img src="images/pc/body/piercings/n<<i>>.jpg"></center>'
+if $ARGS[0] = 'piercing_nipples2':
+	'<center><img src="<<func(''piercing_management'', ''nipples_image'', ARGS[1])>>"></center>'
 
-	if pirsN > 0:
-		if dyneval('RESULT = PirsN<<i>>_owned') = 1:
-			'You already own this piercing.'
-			act 'Return':gt 'pirsingsalon', 'pirspyp'
+	if pcs_piercings['nipples_<<ARGS[1]>>_owned'] = 1:
+		'You already own this piercing.'
+		act 'Return': gt 'pirsingsalon', 'piercing_brow'
+
+	elseif pcs_piercings['nipples'] = 0:
+		if max(money, karta) < 10000:
+			'You cannot afford to get your nipples pierced with this piercing.'
 		else
-			if money >= 7000:
-				act 'Buy this piercing for 7,000 <b>₽</b> (cash)':
-					'You buy the piercing.'
-					cla
-					money -= 7000
-					dynamic 'PirsN<<i>>_owned = 1'
-					act 'Return':gt 'pirsingsalon', 'pirspyp'
-				end
-			else
-				'You don''t have enough cash for this piercing.'
+			if money >= 10000:
+				dynamic "
+					act 'Get your nipples pierced with these earrings for 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_nipples3', <<ARGS[1]>>, 'money'
+				"
 			end
-			if karta >= 7000:
-				act 'Buy this piercing for 7,000 <b>₽</b> (card)':
-					'You buy the piercing.'
-					cla
-					karta -= 7000
-					dynamic 'PirsN<<i>>_owned = 1'
-					act 'Return':gt 'pirsingsalon', 'pirspyp'
-				end
-			else
-				'You don''t have enough money in your bank for this piercing.'
+			if karta >= 10000:
+				dynamic "
+					act 'Get your nipples pierced with these earrings for 10,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_nipples3', <<ARGS[1]>>, 'karta'
+				"
 			end
 		end
-	elseif (money >= 10000) or (karta >= 10000):
-		if money >= 10000:
-			act 'Get your belly button pierced with this piercing for 10,000 <b>₽</b> (cash)':
-				cls
-				minut += 30
-				money -= 10000
-				PirsN = i
-				dynamic 'PirsN<<i>>_owned = 1'
-				pierWearCount += 1
-				gs 'pain', 1, 'tummy', 'pierce'
-				'<center><img src="images/pc/body/piercings/n<<i>>.jpg"></center>'
-				gs 'stat'
-				'The tattooist disinfects the area, pierces your belly button and inserts your chosen piercing.'
-
-				act 'Leave':gt 'pirsingsalon', 'start'
+
+	else
+		if max(money, karta) < 6000:
+			'You don''t have enough money for this piercing.'
+		else
+			if money >= 6000:
+				dynamic "
+					act 'Buy this piercing for 6,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_nipples3', <<ARGS[1]>>, 'money'
+				"
 			end
-		end
-		if karta >= 10000:
-			act 'Get your belly button pierced with this piercing for 10,000 <b>₽</b> (card)':
-				cls
-				minut += 30
-				karta -= 10000
-				PirsN = i
-				dynamic 'PirsN<<i>>_owned = 1'
-				pierWearCount += 1
-				gs 'pain', 1, 'tummy', 'pierce'
-				'<center><img src="images/pc/body/piercings/n<<i>>.jpg"></center>'
-				gs 'stat'
-				'The tattooist disinfects the area, pierces your belly button and inserts your chosen piercing.'
-
-				act 'Leave':gt 'pirsingsalon', 'start'
+			if karta >= 6000:
+				dynamic "
+					act 'Buy this piercing for 6,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_nipples3', <<ARGS[1]>>, 'karta'
+				"
 			end
 		end
+	end
+
+	act 'Return': gt 'pirsingsalon', 'piercing_nipples'
+end
+
+if $ARGS[0] = 'piercing_nipples3':
+	if pcs_piercings['nipples'] = 0:
+		*clr
+		minut += 30
+		if $ARGS[2] = 'money': money -= 4000 else karta -= 4000
+
+		'<center><img src="<<func(''piercing_management'', ''nipples_image'', ARGS[1])>>"></center>'
+		'The tattooist disinfects the area, pierces your nipples and inserts your chosen piercings.'
+		gs 'pain', 7, 'nipples', 'pierce'
+
 	else
-		'You cannot afford to get your belly button pierced with this piercing.'
+		'You buy the piercing.'
 	end
 
-	act 'Return':gt 'pirsingsalon', 'pirspyp'
+	if $ARGS[2] = 'money': money -= 6000 else karta -= 6000
+	gs 'piercing_management', 'add', 'nipples', ARGS[1]
+	gs 'stat'
+
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'pirsvla':
-	*clr
-	cla
 
-	i = 1
+	!!----- Pussy --------------------------------------------------
+
+if $ARGS[0] = 'piercing_pussy':
+	menu_off = 1
+	gs 'stat'
+
+	ps_total = func('piercing_management', 'totals', 'pussy')
+	ps_i = 1
 	:looppubic_pir
-		*p '<a href="exec:gt ''pirsingsalon'', ''pubic_pir'', <<i>>"><img src="images/pc/body/piercings/g<<i>>.jpg" 	height="250" /></a>'
-		i += 1
-	if i <= 10:jump 'looppubic_pir'
+		*p '<a href="exec: gt ''pirsingsalon'', ''piercing_pussy2'', <<ps_i>>"><img height="250" src="<<func(''piercing_management'', ''pussy_image'', ps_i)>>"></a>'
+		ps_i += 1
+	if ps_i <= ps_total: jump 'looppubic_pir'
 
 	act 'Return':gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'pubic_pir':
-	*clr
-	cla
-	i = ARGS[1]
-	'<center><img src="images/pc/body/piercings/g<<i>>.jpg"></center>'
+if $ARGS[0] = 'piercing_pussy2':
+	'<center><img src="<<func(''piercing_management'', ''pussy_image'', ARGS[1])>>"></center>'
+
+	if pcs_piercings['pussy_<<ARGS[1]>>_owned'] = 1:
+		'You already own this piercing.'
+		act 'Return': gt 'pirsingsalon', 'piercing_brow'
 
-	if pirsG > 0:
-		if dyneval('RESULT = PirsG<<i>>_owned') = 1:
-			'You already own this piercing.'
-			act 'Return':gt 'pirsingsalon', 'pirsvla'
+	elseif pcs_piercings['pussy'] = 0:
+		if max(money, karta) < 25000:
+			'You cannot afford to get your pussy pierced with this piercing.'
 		else
-			if money >= 10000:
-				act 'Buy this piercing for 10,000 <b>₽</b> (cash)':
-					'You buy the piercing.'
-					cla
-					money -= 10000
-					dynamic 'pirsG<<i>>_owned = 1'
-					act 'Return':gt 'pirsingsalon', 'pirsvla'
-				end
-			else
-				'You don''t have enough cash for this piercing.'
+			if money >= 25000:
+				dynamic "
+					act 'Get your pussy pierced with these earrings for 25,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_pussy3', <<ARGS[1]>>, 'money'
+				"
 			end
-			if karta >= 10000:
-				act 'Buy this piercing for 10,000 <b>₽</b> (card)':
-					'You buy the piercing.'
-					cla
-					karta -= 10000
-					dynamic 'pirsG<<i>>_owned = 1'
-					act 'Return':gt 'pirsingsalon', 'pirsvla'
-				end
-			else
-				'You don''t have enough money in your bank for this piercing.'
+			if karta >= 25000:
+				dynamic "
+					act 'Get your pussy pierced with these earrings for 25,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_pussy3', <<ARGS[1]>>, 'karta'
+				"
 			end
 		end
-	elseif (money >= 25000) or (karta >= 25000):
-		if money >= 25000:
-			act 'Get your pussy pierced with this piercing for 25,000 <b>₽</b> (cash)':
-				cls
-				minut += 30
-				money -= 25000
-				pirsG = i
-				dynamic 'pirsG<<i>>_owned = 1'
-				pierWearCount += 1
-				gs 'pain', 9, 'pubic', 'pierce'
-				'<center><img src="images/pc/body/piercings/g<<i>>.jpg"></center>'
-				gs 'stat'
-				'The tattooist disinfects the area, pierces your pussy and inserts your chosen piercing.'
-
-				act 'Leave':gt 'pirsingsalon', 'start'
+
+	else
+		if max(money, karta) < 10000:
+			'You don''t have enough money for this piercing.'
+		else
+			if money >= 10000:
+				dynamic "
+					act 'Buy this piercing for 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_pussy3', <<ARGS[1]>>, 'money'
+				"
 			end
-		end
-		if karta >= 25000:
-			act 'Get your pussy pierced with this piercing for 25,000 <b>₽</b> (card)':
-				cls
-				minut += 30
-				karta -= 25000
-				pirsG = i
-				dynamic 'pirsG<<i>>_owned = 1'
-				pierWearCount += 1
-				gs 'pain', 9, 'pubic', 'pierce'
-				'<center><img src="images/pc/body/piercings/g<<i>>.jpg"></center>'
-				gs 'stat'
-				'The tattooist disinfects the area, pierces your pussy and inserts your chosen piercing.'
-
-				act 'Leave':gt 'pirsingsalon', 'start'
+			if karta >= 10000:
+				dynamic "
+					act 'Buy this piercing for 10,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_pussy3', <<ARGS[1]>>, 'karta'
+				"
 			end
 		end
+	end
+
+	act 'Return': gt 'pirsingsalon', 'piercing_pussy'
+end
+
+if $ARGS[0] = 'piercing_pussy3':
+	if pcs_piercings['pussy'] = 0:
+		*clr
+		minut += 30
+		if $ARGS[2] = 'money': money -= 15000 else karta -= 15000
+
+		'<center><img src="<<func(''piercing_management'', ''pussy_image'', ARGS[1])>>"></center>'
+		'The tattooist disinfects the area, pierces your pussy and inserts your chosen piercing.'
+		gs 'pain', 9, 'pubic', 'pierce'
+
 	else
-		'You cannot afford to get your pussy pierced with this piercing.'
+		'You buy the piercing.'
 	end
 
-	act 'Return':gt 'pirsingsalon', 'pirsvla'
+	if $ARGS[2] = 'money': money -= 10000 else karta -= 10000
+	gs 'piercing_management', 'add', 'pussy', ARGS[1]
+	gs 'stat'
+
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'arm':
-	*clr
-	cla
-	if tatarm = 0:
 
-		n = 1
-		:looptatarm
-		*p '<a href="exec:n = <<n>> & gt ''pirsingsalon'', ''arm_get''"><img src="images/pc/body/tattoos/arms/tatarm<<n>>.jpg" height="250" /></a>'
-		n += 1
-		if n <= 77:jump 'looptatarm'
+
+
+	!!========================================================================!!
+	!!                                                                        !!
+	!!                                TATTOOS                                 !!
+	!!                                                                        !!
+	!!========================================================================!!
+
+
+	!!----- Ankle --------------------------------------------------
+
+if $ARGS[0] = 'tattoo_ankle':
+	menu_off = 1
+	gs 'stat'
+
+	if pcs_tattoos['ankle'] <= 0:
+		ps_total = func('tattoo_management', 'totals', 'ankle')
+		ps_i = 1
+		:looptatfoot
+			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_ankle2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''ankle_image'', ps_i)>>"></a>'
+			ps_i += 1
+		if ps_i <= ps_total: jump 'looptatfoot'
 		*nl
 
 	else
-		'<center><img src="images/pc/body/tattoos/arms/tatarm<<tatarm>>.jpg"></center>'
+		'<center><img src="<<func(''tattoo_management'', ''ankle_image'')>>"></center>'
 		'You already have this tattoo here.'
 	end
 
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'arm_get':
-	*clr
-	cla
-	'<center><img src="images/pc/body/tattoos/arms/tatarm<<n>>.jpg"></center>'
+if $ARGS[0] = 'tattoo_ankle2':
+	'<center><img src="<<func(''tattoo_management'', ''ankle_image'', ARGS[1])>>"></center>'
 
-	if (money < 8000) and (karta < 8000):
+	if max(money, karta) < 8000:
 		'You cannot afford this tattoo.'
 	else
 		if money >= 8000:
-			act 'Get this tattoo 8,000 <b>₽</b> (cash)':
-				cla
-				tatarm = n
-				money -= 8000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 8,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_ankle3', <<ARGS[1]>>, 'money'
+			"
 		end
 		if karta >= 8000:
-			act 'Get this tattoo 8,000 <b>₽</b> (card)':
-				cla
-				tatarm = n
-				karta -= 8000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 8,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_ankle3', <<ARGS[1]>>, 'karta'
+			"
 		end
 	end
 
+	act 'Return': gt 'pirsingsalon', 'tattoo_ankle'
+end
+
+if $ARGS[0] = 'tattoo_ankle3':
+	minut += 60
+	if $ARGS[2] = 'money': money -= 8000 else karta -= 8000
+	gs 'tattoo_management', 'add', 'ankle', ARGS[1]
+	gs 'stat'
+
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'ass':
-	*clr
-	cla
-	if tatass = 0:
 
-		n = 1
-		:looptatass
-		*p '<a href="exec:n = <<n>> & gt ''pirsingsalon'', ''ass_get''"><img src="images/pc/body/tattoos/ass/tatass<<n>>.jpg" height="250" /></a>'
-		n += 1
-		if n <= 25:jump 'looptatass'
-		*nl
+	!!----- Arm --------------------------------------------------
+
+if $ARGS[0] = 'tattoo_arm':
+	menu_off = 1
+	gs 'stat'
+
+	if tattoos['arm'] <= 0:
+		ps_total = func('tattoo_management', 'totals', 'arm')
+		ps_i = 1
+		:looptatarm
+			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_arm2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''arm_image'', ps_i)>>"></a>'
+			ps_i += 1
+		if ps_i <= ps_total: jump 'looptatarm'
 
 	else
-		'<center><img src="images/pc/body/tattoos/ass/tatass<<tatass>>.jpg"></center>'
+		'<center><img src="<<func(''tattoo_management'', ''arm_image'')>>"></center>'
 		'You already have this tattoo here.'
 	end
 
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'ass_get':
-	*clr
-	cla
-	'<center><img src="images/pc/body/tattoos/ass/tatass<<n>>.jpg"></center>'
+if $ARGS[0] = 'tattoo_arm2':
+	'<center><img src="<<func(''tattoo_management'', ''arm_image'', ARGS[1])>>"></center>'
 
-	if (money < 10000) and (karta < 10000):
+	if max(money, karta) < 8000:
 		'You cannot afford this tattoo.'
 	else
-		if money >= 10000:
-			act 'Get this tattoo 10,000 <b>₽</b> (cash)':
-				cla
-				tatass = n
-				money -= 10000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+		if money >= 8000:
+			dynamic "
+				act 'Get this tattoo 8,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_arm3', <<ARGS[1]>>, 'money'
+			"
 		end
-		if karta >= 10000:
-			act 'Get this tattoo 10,000 <b>₽</b> (card)':
-				cla
-				tatass = n
-				karta -= 10000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+		if karta >= 8000:
+			dynamic "
+				act 'Get this tattoo 8,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_arm3', <<ARGS[1]>>, 'karta'
+			"
 		end
 	end
 
+	act 'Return': gt 'pirsingsalon', 'tattoo_arm'
+end
+
+if $ARGS[0] = 'tattoo_arm3':
+	minut += 60
+	if $ARGS[2] = 'money': money -= 8000 else karta -= 8000
+	gs 'tattoo_management', 'add', 'arm', ARGS[1]
+	gs 'stat'
+
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'back':
-	*clr
-	cla
-	if tatback = 0:
 
-		n = 1
-		:looptatback
-		*p '<a href="exec:n = <<n>> & gt ''pirsingsalon'', ''back_get''"><img src="images/pc/body/tattoos/back/tatback<<n>>.jpg" height="250" /></a>'
-		n += 1
-		if n <= 61:jump 'looptatback'
-		*nl
+	!!----- Ass --------------------------------------------------
+
+if $ARGS[0] = 'tattoo_ass':
+	menu_off = 1
+	gs 'stat'
+
+	if pcs_tattoos['ass'] <= 0:
+		ps_total = func('tattoo_management', 'totals', 'ass')
+		ps_i = 1
+		:looptatass
+			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_ass'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''ass_image'', ps_i)>>"></a>'
+			ps_i += 1
+		if ps_i <= ps_total: jump 'looptatass'
 
 	else
-		'<center><img src="images/pc/body/tattoos/back/tatback<<tatback>>.jpg"></center>'
+		'<center><img src="<<func(''tattoo_management'', ''ass_image'')>>"></center>'
 		'You already have this tattoo here.'
 	end
 
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'back_get':
-	*clr
-	cla
-	'<center><img src="images/pc/body/tattoos/back/tatback<<n>>.jpg"></center>'
+if $ARGS[0] = 'tattoo_ass2':
+	'<center><img src="<<func(''tattoo_management'', ''ass_image'', ARGS[1])>>"></center>'
 
-	if (money < 10000) and (karta < 10000):
+	if max(money, karta) < 10000:
 		'You cannot afford this tattoo.'
 	else
 		if money >= 10000:
-			act 'Get this tattoo 10,000 <b>₽</b> (cash)':
-				cla
-				tatback = n
-				money -= 10000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_ass3', <<ARGS[1]>>, 'money'
+			"
 		end
 		if karta >= 10000:
-			act 'Get this tattoo 10,000 <b>₽</b> (card)':
-				cla
-				tatback = n
-				karta -= 10000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 10,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_ass3', <<ARGS[1]>>, 'karta'
+			"
 		end
 	end
 
+	act 'Return': gt 'pirsingsalon', 'tattoo_ass'
+end
+
+if $ARGS[0] = 'tattoo_ass3':
+	minut += 60
+	if $ARGS[2] = 'money': money -= 10000 else karta -= 10000
+	gs 'tattoo_management', 'add', 'ass', ARGS[1]
+	gs 'stat'
+
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'belly':
-	*clr
-	cla
-	if tatblly = 0:
 
-		n = 1
-		:looptatbelly
-		*p '<a href="exec:n = <<n>> & gt ''pirsingsalon'', ''belly_get''"><img src="images/pc/body/tattoos/belly/tatblly<<n>>.jpg" height="250" /></a>'
-		n += 1
-		if n <= 21:jump 'looptatbelly'
-		*nl
+	!!----- Back --------------------------------------------------
+
+if $ARGS[0] = 'tattoo_back':
+	menu_off = 1
+	gs 'stat'
+
+	if pcs_tattoos['back'] <= 0:
+		ps_total = func('tattoo_management', 'totals', 'back')
+		ps_i = 1
+		:looptatback
+			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_back2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''back_image'', ps_i)>>"></a>'
+			ps_i += 1
+		if ps_i <= ps_total: jump 'looptatback'
 
 	else
-		'<center><img src="images/pc/body/tattoos/belly/tatblly<<tatblly>>.jpg"></center>'
+		'<center><img src="<<func(''tattoo_management'', ''back_image'')>>"></center>'
 		'You already have this tattoo here.'
 	end
 
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'belly_get':
-	*clr
-	cla
-	'<center><img src="images/pc/body/tattoos/belly/tatblly<<n>>.jpg"></center>'
+if $ARGS[0] = 'tattoo_back2':
+	'<center><img src="<<func(''tattoo_management'', ''back_image'', ARGS[1])>>"></center>'
 
-	if (money < 10000) and (karta < 10000):
+	if max(money, karta) < 10000:
 		'You cannot afford this tattoo.'
 	else
 		if money >= 10000:
-			act 'Get this tattoo 10,000 <b>₽</b> (cash)':
-				cla
-				tatblly = n
-				money -= 10000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_back3', <<ARGS[1]>>, 'money'
+			"
 		end
 		if karta >= 10000:
-			act 'Get this tattoo 10,000 <b>₽</b> (card)':
-				cla
-				tatblly = n
-				karta -= 10000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 10,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_back3', <<ARGS[1]>>, 'karta'
+			"
 		end
 	end
 
+	act 'Return': gt 'pirsingsalon', 'tattoo_back'
+end
+
+if $ARGS[0] = 'tattoo_back3':
+	minut += 60
+	if $ARGS[2] = 'money': money -= 10000 else karta -= 10000
+	gs 'tattoo_management', 'add', 'back', ARGS[1]
+	gs 'stat'
+
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'breast':
-	*clr
-	cla
-	if tatbrst = 0:
 
-		n = 1
-		:looptatbreast
-		*p '<a href="exec:n = <<n>> & gt ''pirsingsalon'', ''breast_get''"><img src="images/pc/body/tattoos/breasts/tatbrst<<n>>.jpg" height="250" /></a>'
-		n += 1
-		if n <= 11:jump 'looptatbreast'
+	!!----- Belly --------------------------------------------------
+
+if $ARGS[0] = 'tattoo_belly':
+	menu_off = 1
+	gs 'stat'
+
+	if pcs_tattoos['belly'] <= 0:
+		ps_total = func('tattoo_management', 'totals', 'belly')
+		ps_i = 1
+		:looptatbelly
+			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_belly2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''belly_image'', ps_i)>>"></a>'
+			ps_i += 1
+		if ps_i <= ps_total: jump 'looptatbelly'
 		*nl
 
 	else
-		'<center><img src="images/pc/body/tattoos/breasts/tatbrst<<tatbrst>>.jpg"></center>'
+		'<center><img src="<<func(''tattoo_management'', ''belly_image'')>>"></center>'
 		'You already have this tattoo here.'
 	end
 
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'breast_get':
-	*clr
-	cla
-	'<center><img src="images/pc/body/tattoos/breasts/tatbrst<<n>>.jpg"></center>'
+if $ARGS[0] = 'tattoo_belly2':
+	'<center><img src="<<func(''tattoo_management'', ''belly_image'', ARGS[1])>>"></center>'
 
-	if (money < 15000) and (karta < 15000):
+	if max(money, karta) < 10000:
 		'You cannot afford this tattoo.'
 	else
-		if money >= 15000:
-			act 'Get this tattoo 15,000 <b>₽</b> (cash)':
-				cla
-				tatbrst = n
-				money -= 15000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+		if money >= 10000:
+			dynamic "
+				act 'Get this tattoo 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_belly3', <<ARGS[1]>>, 'money'
+			"
 		end
-		if karta >= 15000:
-			act 'Get this tattoo 15,000 <b>₽</b> (card)':
-				cla
-				tatbrst = n
-				karta -= 15000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+		if karta >= 10000:
+			dynamic "
+				act 'Get this tattoo 10,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_belly3', <<ARGS[1]>>, 'karta'
+			"
 		end
 	end
 
+	act 'Return': gt 'pirsingsalon', 'tattoo_belly'
+end
+
+if $ARGS[0] = 'tattoo_belly3':
+	minut += 60
+	if $ARGS[2] = 'money': money -= 10000 else karta -= 10000
+	gs 'tattoo_management', 'add', 'belly', ARGS[1]
+	gs 'stat'
+
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'chest':
-	*clr
-	cla
-	if tatchst = 0:
 
-		n = 1
-		:looptatchest
-		*p '<a href="exec:n = <<n>> & gt ''pirsingsalon'', ''chest_get''"><img src="images/pc/body/tattoos/chest/tatchst<<n>>.jpg" height="250" /></a>'
-		n += 1
-		if n <= 15:jump 'looptatchest'
+	!!----- Breast --------------------------------------------------
+
+if $ARGS[0] = 'tattoo_breast':
+	menu_off = 1
+	gs 'stat'
+
+	if pcs_tattoos['breast'] <= 0:
+		ps_total = func('tattoo_management', 'totals', 'breast')
+		ps_i = 1
+		:looptatbreast
+			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_breast2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''breast_image'', ps_i)>>"></a>'
+			ps_i += 1
+		if ps_i <= ps_total: jump 'looptatbreast'
 		*nl
 
 	else
-		'<center><img src="images/pc/body/tattoos/chest/tatchst<<tatchst>>.jpg"></center>'
+		'<center><img src="<<func(''tattoo_management'', ''breast_image'')>>"></center>'
 		'You already have this tattoo here.'
 	end
 
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'chest_get':
-	*clr
-	cla
-	'<center><img src="images/pc/body/tattoos/chest/tatchst<<n>>.jpg"></center>'
+if $ARGS[0] = 'tattoo_breast2':
+	'<center><img src="<<func(''tattoo_management'', ''breast_image'', ARGS[1])>>"></center>'
 
-	if (money < 12000) and (karta < 12000):
+	if max(money, karta) < 15000:
 		'You cannot afford this tattoo.'
 	else
-		if money >= 12000:
-			act 'Get this tattoo 12,000 <b>₽</b> (cash)':
-				cla
-				tatchst = n
-				money -= 12000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+		if money >= 15000:
+			dynamic "
+				act 'Get this tattoo 15,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_breast3', <<ARGS[1]>>, 'money'
+			"
 		end
-		if karta >= 12000:
-			act 'Get this tattoo 12,000 <b>₽</b> (card)':
-				cla
-				tatchst = n
-				karta -= 12000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+		if karta >= 15000:
+			dynamic "
+				act 'Get this tattoo 15,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_breast3', <<ARGS[1]>>, 'karta'
+			"
 		end
 	end
 
+	act 'Return': gt 'pirsingsalon', 'tattoo_breast'
+end
+
+if $ARGS[0] = 'tattoo_breast3':
+	minut += 60
+	if $ARGS[2] = 'money': money -= 15000 else karta -= 15000
+	gs 'tattoo_management', 'add', 'breast', ARGS[1]
+	gs 'stat'
+
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'face':
-	*clr
-	cla
-	if tatfce = 0:
 
-		n = 1
-		:looptatface
-		*p '<a href="exec:n = <<n>> & gt ''pirsingsalon'', ''face_get''"><img src="images/pc/body/tattoos/face/tatfce<<n>>.jpg" height="250" /></a>'
-		n += 1
-		if n <= 8:jump 'looptatface'
-		*nl
+	!!----- Chest --------------------------------------------------
+
+if $ARGS[0] = 'tattoo_chest':
+	menu_off = 1
+	gs 'stat'
+
+	if pcs_tattoos['chest'] <= 0:
+		ps_total = func('tattoo_management', 'totals', 'chest')
+		ps_i = 1
+		:looptatchest
+			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_chest2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''chest_image'', ps_i)>>"></a>'
+			ps_i += 1
+		if ps_i <= ps_total: jump 'looptatchest'
 
 	else
-		'<center><img src="images/pc/body/tattoos/face/tatfce<<tatfce>>.jpg"></center>'
+		'<center><img src="<<func(''tattoo_management'', ''chest_image'')>>"></center>'
 		'You already have this tattoo here.'
 	end
 
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'face_get':
-	*clr
-	cla
-	'<center><img src="images/pc/body/tattoos/face/tatfce<<n>>.jpg"></center>'
+if $ARGS[0] = 'tattoo_chest2':
+	'<center><img src="<<func(''tattoo_management'', ''chest_image'', ARGS[1])>>"></center>'
 
-	if (money < 10000) and (karta < 10000):
+	if max(money, karta) < 12000:
 		'You cannot afford this tattoo.'
 	else
-		if money >= 10000:
-			act 'Get this tattoo 10,000 <b>₽</b> (cash)':
-				cla
-				tatfce = n
-				money -= 10000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+		if money >= 12000:
+			dynamic "
+				act 'Get this tattoo 12,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_chest3', <<ARGS[1]>>, 'money'
+			"
 		end
-		if karta >= 10000:
-			act 'Get this tattoo 10,000 <b>₽</b> (card)':
-				cla
-				tatfce = n
-				karta -= 10000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+		if karta >= 12000:
+			dynamic "
+				act 'Get this tattoo 12,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_chest3', <<ARGS[1]>>, 'karta'
+			"
 		end
 	end
 
+	act 'Return': gt 'pirsingsalon', 'tattoo_chest'
+end
+
+if $ARGS[0] = 'tattoo_chest3':
+	minut += 60
+	if $ARGS[2] = 'money': money -= 12000 else karta -= 12000
+	gs 'tattoo_management', 'add', 'chest', ARGS[1]
+	gs 'stat'
+
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'foot':
-	*clr
-	cla
-	if tatankle = 0:
 
-		n = 1
-		:looptatfoot
-		*p '<a href="exec:n = <<n>> & gt ''pirsingsalon'', ''foot_get''"><img src="images/pc/body/tattoos/foot/tatankle<<n>>.jpg" height="250" /></a>'
-		n += 1
-		if n <= 25:jump 'looptatfoot'
+	!!----- Face --------------------------------------------------
+
+if $ARGS[0] = 'tattoo_face':
+	menu_off = 1
+	gs 'stat'
+
+	if pcs_tattoos['face'] <= 0:
+		ps_total = func('tattoo_management', 'totals', 'face')
+		ps_i = 1
+		:looptatface
+			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_face2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''face_image'', ps_i)>>"></a>'
+			ps_i += 1
+		if ps_i <= ps_total: jump 'looptatface'
 		*nl
 
 	else
-		'<center><img src="images/pc/body/tattoos/foot/tatankle<<tatankle>>.jpg"></center>'
+		'<center><img src="<<func(''tattoo_management'', ''face_image'')>>"></center>'
 		'You already have this tattoo here.'
 	end
 
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'foot_get':
-	*clr
-	cla
-	'<center><img src="images/pc/body/tattoos/foot/tatankle<<n>>.jpg"></center>'
+if $ARGS[0] = 'tattoo_face2':
+	'<center><img src="<<func(''tattoo_management'', ''face_image'', ARGS[1])>>"></center>'
 
-	if (money < 8000) and (karta < 8000):
+	if max(money, karta) < 10000:
 		'You cannot afford this tattoo.'
 	else
-		if money >= 8000:
-			act 'Get this tattoo 8,000 <b>₽</b> (cash)':
-				cla
-				tatankle = n
-				money -= 8000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+		if money >= 10000:
+			dynamic "
+				act 'Get this tattoo 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_face3', <<ARGS[1]>>, 'money'
+			"
 		end
-		if karta >= 8000:
-			act 'Get this tattoo 8,000 <b>₽</b> (card)':
-				cla
-				tatankle = n
-				karta -= 8000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+		if karta >= 10000:
+			dynamic "
+				act 'Get this tattoo 10,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_face3', <<ARGS[1]>>, 'karta'
+			"
 		end
 	end
 
+	act 'Return': gt 'pirsingsalon', 'tattoo_face'
+end
+
+if $ARGS[0] = 'tattoo_face3':
+	minut += 60
+	if $ARGS[2] = 'money': money -= 10000 else karta -= 10000
+	gs 'tattoo_management', 'add', 'face', ARGS[1]
+	gs 'stat'
+
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'hand':
-	*clr
-	cla
-	if tathand = 0:
 
-		n = 1
+	!!----- Hand --------------------------------------------------
+
+if $ARGS[0] = 'tattoo_hand':
+	menu_off = 1
+	gs 'stat'
+
+	if pcs_tattoos['hand'] <= 0:
+		ps_total = func('tattoo_management', 'totals', 'hand')
+		ps_i = 1
 		:looptathand
-		*p '<a href="exec:n = <<n>> & gt ''pirsingsalon'', ''hand_get''"><img src="images/pc/body/tattoos/hand/tathnd<<n>>.jpg" height="250" /></a>'
-		n += 1
-		if n <= 9:jump 'looptathand'
-		*nl
+			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_hand2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''hand_image'', ps_i)>>"></a>'
+			ps_i += 1
+		if ps_i <= ps_total: jump 'looptathand'
 
 	else
-		'<center><img src="images/pc/body/tattoos/hand/tathnd<<tathand>>.jpg"></center>'
+		'<center><img src="<<func(''tattoo_management'', ''hand_image'')>>"></center>'
 		'You already have this tattoo here.'
 	end
 
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'hand_get':
-	*clr
-	cla
-	'<center><img src="images/pc/body/tattoos/hand/tathnd<<n>>.jpg"></center>'
+if $ARGS[0] = 'tattoo_hand2':
+	'<center><img src="<<func(''tattoo_management'', ''hand_image'', ARGS[1])>>"></center>'
 
-	if (money < 7000) and (karta < 7000):
+	if max(money, karta) < 7000:
 		'You cannot afford this tattoo.'
 	else
 		if money >= 7000:
-			act 'Get this tattoo 7,000 <b>₽</b> (cash)':
-				cla
-				tathand = n
-				money -= 7000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 7,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_hand3', <<ARGS[1]>>, 'money'
+			"
 		end
 		if karta >= 7000:
-			act 'Get this tattoo 7,000 <b>₽</b> (card)':
-				cla
-				tathand = n
-				karta -= 7000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 7,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_hand3', <<ARGS[1]>>, 'karta'
+			"
 		end
 	end
 
+	act 'Return': gt 'pirsingsalon', 'tattoo_hand'
+end
+
+if $ARGS[0] = 'tattoo_hand3':
+	minut += 60
+	if $ARGS[2] = 'money': money -= 7000 else karta -= 7000
+	gs 'tattoo_management', 'add', 'hand', ARGS[1]
+	gs 'stat'
+
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'leg':
-	*clr
-	cla
-	if tatleg = 0:
 
-		n = 1
+	!!----- Leg --------------------------------------------------
+
+if $ARGS[0] = 'tattoo_leg':
+	menu_off = 1
+	gs 'stat'
+
+	if pcs_tattoos['leg'] <= 0:
+		ps_total = func('tattoo_management', 'totals', 'leg')
+		ps_i = 1
 		:looptatleg
-		*p '<a href="exec:n = <<n>> & gt ''pirsingsalon'', ''leg_get''"><img src="images/pc/body/tattoos/legs/tatleg<<n>>.jpg" height="250" /></a>'
-		n += 1
-		if n <= 47:jump 'looptatleg'
+			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_leg2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''leg_image'', ps_i)>>"></a>'
+			ps_i += 1
+		if ps_i <= ps_total: jump 'looptatleg'
 		*nl
 
 	else
-		'<center><img src="images/pc/body/tattoos/legs/tatleg<<tatleg>>.jpg"></center>'
+		'<center><img src="<<func(''tattoo_management'', ''leg_image'')>>"></center>'
 		'You already have this tattoo here.'
 	end
 
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'leg_get':
-	*clr
-	cla
-	'<center><img src="images/pc/body/tattoos/legs/tatleg<<n>>.jpg"></center>'
+if $ARGS[0] = 'tattoo_leg2':
+	'<center><img src="<<func(''tattoo_management'', ''leg_image'', ARGS[1])>>"></center>'
 
-	if (money < 10000) and (karta < 10000):
+	if max(money, karta) < 10000:
 		'You cannot afford this tattoo.'
 	else
 		if money >= 10000:
-			act 'Get this tattoo 10,000 <b>₽</b> (cash)':
-				cla
-				tatleg = n
-				money -= 10000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_leg3', <<ARGS[1]>>, 'money'
+			"
 		end
 		if karta >= 10000:
-			act 'Get this tattoo 10,000 <b>₽</b> (card)':
-				cla
-				tatleg = n
-				karta -= 10000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 10,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_leg3', <<ARGS[1]>>, 'karta'
+			"
 		end
 	end
 
+	act 'Return': gt 'pirsingsalon', 'tattoo_leg'
+end
+
+if $ARGS[0] = 'tattoo_leg3':
+	minut += 60
+	if $ARGS[2] = 'money': money -= 10000 else karta -= 10000
+	gs 'tattoo_management', 'add', 'leg', ARGS[1]
+	gs 'stat'
+
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'lip':
-	*clr
-	cla
-	if tatlip = 0:
 
-		n = 1
+	!!----- Lip --------------------------------------------------
+
+if $ARGS[0] = 'tattoo_lip':
+	menu_off = 1
+	gs 'stat'
+
+	if pcs_tattoos['lip'] <= 0:
+		ps_total = func('tattoo_management', 'totals', 'lip')
+		ps_i = 1
 		:looptatlip
-		*p '<a href="exec:n = <<n>> & gt ''pirsingsalon'', ''lip_get''"><img src="images/pc/body/tattoos/lip/tatlip<<n>>.jpg" height="250" /></a>'
-		n += 1
-		if n <= 9:jump 'looptatlip'
-		*nl
+			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_lip2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''lip_image'', ps_i)>>"></a>'
+			ps_i += 1
+		if ps_i <= ps_total: jump 'looptatlip'
 
 	else
-		'<center><img src="images/pc/body/tattoos/lip/tatlip<<tatlip>>.jpg"></center>'
+		'<center><img src="<<func(''tattoo_management'', ''lip_image'')>>"></center>'
 		'You already have this tattoo here.'
 	end
 
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'lip_get':
-	*clr
-	cla
-	'<center><img src="images/pc/body/tattoos/lip/tatlip<<n>>.jpg"></center>'
+if $ARGS[0] = 'tattoo_lip2':
+	'<center><img src="<<func(''tattoo_management'', ''lip_image'', ARGS[1])>>"></center>'
 
-	if (money < 5000) and (karta < 5000):
+	if max(money, karta) < 5000:
 		'You cannot afford this tattoo.'
 	else
 		if money >= 5000:
-			act 'Get this tattoo 5,000 <b>₽</b> (cash)':
-				cla
-				tatlip = n
-				money -= 5000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 5,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_lip3', <<ARGS[1]>>, 'money'
+			"
 		end
 		if karta >= 5000:
-			act 'Get this tattoo 5,000 <b>₽</b> (card)':
-				cla
-				tatlip = n
-				karta -= 5000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 5,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_lip3', <<ARGS[1]>>, 'karta'
+			"
 		end
 	end
 
+	act 'Return': gt 'pirsingsalon', 'tattoo_lip'
+end
+
+if $ARGS[0] = 'tattoo_lip3':
+	minut += 60
+	if $ARGS[2] = 'money': money -= 5000 else karta -= 5000
+	gs 'tattoo_management', 'add', 'lip', ARGS[1]
+	gs 'stat'
+
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'neck':
-	*clr
-	cla
-	if tatneck = 0:
 
-		n = 1
+	!!----- Neck --------------------------------------------------
+
+if $ARGS[0] = 'tattoo_neck':
+	menu_off = 1
+	gs 'stat'
+
+	if pcs_tattoos['neck'] <= 0:
+		ps_total = func('tattoo_management', 'totals', 'neck')
+		ps_i = 1
 		:looptatneck
-		*p '<a href="exec:n = <<n>> & gt ''pirsingsalon'', ''neck_get''"><img src="images/pc/body/tattoos/neck/tatnck<<n>>.jpg" height="250" /></a>'
-		n += 1
-		if n <= 30:jump 'looptatneck'
-		*nl
+			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_neck2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''neck_image'', ps_i)>>"></a>'
+			ps_i += 1
+		if ps_i <= ps_total: jump 'looptatneck'
 
 	else
-		'<center><img src="images/pc/body/tattoos/neck/tatnck<<tatneck>>.jpg"></center>'
+		'<center><img src="<<func(''tattoo_management'', ''neck_image'')>>"></center>'
 		'You already have this tattoo here.'
 	end
 
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'neck_get':
-	*clr
-	cla
-	'<center><img src="images/pc/body/tattoos/neck/tatnck<<n>>.jpg"></center>'
+if $ARGS[0] = 'tattoo_neck2':
+	'<center><img src="<<func(''tattoo_management'', ''neck_image'', ARGS[1])>>"></center>'
 
-	if (money < 8000) and (karta < 8000):
+	if max(money, karta) < 8000:
 		'You cannot afford this tattoo.'
 	else
 		if money >= 8000:
-			act 'Get this tattoo 8,000 <b>₽</b> (cash)':
-				cla
-				tatneck = n
-				money -= 8000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 8,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_neck3', <<ARGS[1]>>, 'money'
+			"
 		end
 		if karta >= 8000:
-			act 'Get this tattoo 8,000 <b>₽</b> (card)':
-				cla
-				tatneck = n
-				karta -= 8000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 8,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_neck3', <<ARGS[1]>>, 'karta'
+			"
 		end
 	end
 
+	act 'Return': gt 'pirsingsalon', 'tattoo_neck'
+end
+
+if $ARGS[0] = 'tattoo_neck3':
+	minut += 60
+	if $ARGS[2] = 'money': money -= 8000 else karta -= 8000
+	gs 'tattoo_management', 'add', 'neck', ARGS[1]
+	gs 'stat'
+
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'pubic':
-	*clr
-	cla
-	if tatvag = 0:
 
-		n = 1
+	!!----- Pussy --------------------------------------------------
+
+if $ARGS[0] = 'tattoo_pussy':
+	menu_off = 1
+	gs 'stat'
+
+	if pcs_tattoos['pussy'] <= 0:
+		ps_total = func('tattoo_management', 'totals', 'pussy')
+		ps_i = 1
 		:looptatvag
-		*p '<a href="exec:n = <<n>> & gt ''pirsingsalon'', ''vag_get''"><img src="images/pc/body/tattoos/pubic/tatvag<<n>>.jpg" height="250" /></a>'
-		n += 1
-		if n <= 53:jump 'looptatvag'
-		*nl
+			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_pussy2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''pussy_image'', ps_i)>>"></a>'
+			ps_i += 1
+		if ps_i <= ps_total: jump 'looptatvag'
 
 	else
-		'<center><img src="images/pc/body/tattoos/pubic/tatvag<<tatvag>>.jpg"></center>'
+		'<center><img src="<<func(''tattoo_management'', ''pussy_image'')>>"></center>'
 		'You already have this tattoo here.'
 	end
 
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'vag_get':
-	*clr
-	cla
-	'<center><img src="images/pc/body/tattoos/pubic/tatvag<<n>>.jpg"></center>'
+if $ARGS[0] = 'tattoo_pussy2':
+	'<center><img src="<<func(''tattoo_management'', ''pussy_image'', ARGS[1])>>"></center>'
 
-	if (money < 20000) and (karta < 20000):
+	if max(money, karta) < 20000:
 		'You cannot afford this tattoo.'
 	else
 		if money >= 20000:
-			act 'Get this tattoo 20,000 <b>₽</b> (cash)':
-				cla
-				tatvag = n
-				money -= 20000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 20,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_pussy3', <<ARGS[1]>>, 'money'
+			"
 		end
 		if karta >= 20000:
-			act 'Get this tattoo 20,000 <b>₽</b> (card)':
-				cla
-				tatvag = n
-				karta -= 20000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 20,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_pussy3', <<ARGS[1]>>, 'karta'
+			"
 		end
 	end
 
+	act 'Return': gt 'pirsingsalon', 'tattoo_pussy'
+end
+
+if $ARGS[0] = 'tattoo_pussy3':
+	minut += 60
+	if $ARGS[2] = 'money': money -= 20000 else karta -= 20000
+	gs 'tattoo_management', 'add', 'pussy', ARGS[1]
+	gs 'stat'
+
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'shoulder':
-	*clr
-	cla
-	if tatlech = 0:
 
-		n = 1
+	!!----- shoulder --------------------------------------------------
+
+if $ARGS[0] = 'tattoo_shoulder':
+	menu_off = 1
+	gs 'stat'
+
+	if pcs_tattoos['shoulder'] <= 0:
+		ps_total = func('tattoo_management', 'totals', 'shoulder')
+		ps_i = 1
 		:looptatlech
-		*p '<a href="exec:n = <<n>> & gt ''pirsingsalon'', ''shoulder_get''"><img src="images/pc/body/tattoos/shoulder/tatshldr<<n>>.jpg" height="250" /></a>'
-		n += 1
-		if n <= 25:jump 'looptatlech'
-		*nl
+			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_shoulder2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''shoulder_image'', ps_i)>>"></a>'
+			ps_i += 1
+		if ps_i <= ps_total: jump 'looptatlech'
 
 	else
-		'<center><img src="images/pc/body/tattoos/shoulder/tatshldr<<tatlech>>.jpg"></center>'
+		'<center><img src="<<func(''tattoo_management'', ''shoulder_image'')>>"></center>'
 		'You already have this tattoo here.'
 	end
 
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'shoulder_get':
-	*clr
-	cla
-	'<center><img src="images/pc/body/tattoos/shoulder/tatshldr<<n>>.jpg"></center>'
+if $ARGS[0] = 'tattoo_shoulder2':
+	'<center><img src="<<func(''tattoo_management'', ''shoulder_image'', ARGS[1])>>"></center>'
 
-	if (money < 8000) and (karta < 8000):
+	if max(money, karta) < 8000:
 		'You cannot afford this tattoo.'
 	else
 		if money >= 8000:
-			act 'Get this tattoo 8,000 <b>₽</b> (cash)':
-				cla
-				tatlech = n
-				money -= 8000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 8,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_shoulder3', <<ARGS[1]>>, 'money'
+			"
 		end
 		if karta >= 8000:
-			act 'Get this tattoo 8,000 <b>₽</b> (card)':
-				cla
-				tatlech = n
-				karta -= 8000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 8,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_shoulder3', <<ARGS[1]>>, 'karta'
+			"
 		end
 	end
 
+	act 'Return': gt 'pirsingsalon', 'tattoo_shoulder'
+end
+
+if $ARGS[0] = 'tattoo_shoulder3':
+	minut += 60
+	if $ARGS[2] = 'money': money -= 8000 else karta -= 8000
+	gs 'tattoo_management', 'add', 'shoulder', ARGS[1]
+	gs 'stat'
+
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'side':
-	*clr
-	cla
-	if tatside = 0:
 
-		n = 1
+	!!----- Side --------------------------------------------------
+
+if $ARGS[0] = 'tattoo_side':
+	menu_off = 1
+	gs 'stat'
+
+	if pcs_tattoos['side'] <= 0:
+		ps_total = func('tattoo_management', 'totals', 'side')
+		ps_i = 1
 		:looptatside
-		*p '<a href="exec:n = <<n>> & gt ''pirsingsalon'', ''side_get''"><img src="images/pc/body/tattoos/side/tatside<<n>>.jpg" height="250" /></a>'
-		n += 1
-		if n <= 23:jump 'looptatside'
-		*nl
+			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_side2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''side_image'', ps_i)>>"></a>'
+			ps_i += 1
+		if ps_i <= ps_total: jump 'looptatside'
 
 	else
-		'<center><img src="images/pc/body/tattoos/side/tatside<<tatside>>.jpg"></center>'
+		'<center><img src="<<func(''tattoo_management'', ''side_image'')>>"></center>'
 		'You already have this tattoo here.'
 	end
 
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'side_get':
-	*clr
-	cla
-	'<center><img src="images/pc/body/tattoos/side/tatside<<n>>.jpg"></center>'
+if $ARGS[0] = 'tattoo_side2':
+	'<center><img src="<<func(''tattoo_management'', ''side_image'', ARGS[1])>>"></center>'
 
-	if (money < 12000) and (karta < 12000):
+	if max(money, karta) < 12000:
 		'You cannot afford this tattoo.'
 	else
 		if money >= 12000:
-			act 'Get this tattoo 12,000 <b>₽</b> (cash)':
-				cla
-				tatside = n
-				money -= 12000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 12,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_side3', <<ARGS[1]>>, 'money'
+			"
 		end
 		if karta >= 12000:
-			act 'Get this tattoo 12,000 <b>₽</b> (card)':
-				cla
-				tatside = n
-				karta -= 12000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 12,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_side3', <<ARGS[1]>>, 'karta'
+			"
 		end
 	end
 
+	act 'Return': gt 'pirsingsalon', 'tattoo_side'
+end
+
+if $ARGS[0] = 'tattoo_side3':
+	minut += 60
+	if $ARGS[2] = 'money': money -= 12000 else karta -= 12000
+	gs 'tattoo_management', 'add', 'side', ARGS[1]
+	gs 'stat'
+
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'tramp':
-	*clr
-	cla
-	if tatupb = 0:
 
-		n = 1
+	!!----- Tramp --------------------------------------------------
+
+if $ARGS[0] = 'tattoo_tramp':
+	menu_off = 1
+	gs 'stat'
+
+	if pcs_tattoos['tramp'] <= 0:
+		ps_total = func('tattoo_management', 'totals', 'tramp')
+		ps_i = 1
 		:looptatupb
-		*p '<a href="exec:n = <<n>> & gt ''pirsingsalon'', ''tramp_get''"><img src="images/pc/body/tattoos/trampStamp/tatlowbck<<n>>.jpg" height="250" /></a>'
-		n += 1
-		if n <= 32:jump 'looptatupb'
+			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_tramp2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''tramp_image'', ps_i)>>"></a>'
+			ps_i += 1
+		if ps_i <= ps_total: jump 'looptatupb'
 		*nl
 
 	else
-		'<center><img src="images/pc/body/tattoos/trampStamp/tatlowbck<<tatupb>>.jpg"></center>'
+		'<center><img src="<<func(''tattoo_management'', ''tramp_image'')>>"></center>'
 		'You already have this tattoo here.'
 	end
 
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'tramp_get':
-	*clr
-	cla
-	'<center><img src="images/pc/body/tattoos/trampStamp/tatlowbck<<n>>.jpg"></center>'
+if $ARGS[0] = 'tattoo_tramp2':
+	'<center><img src="<<func(''tattoo_management'', ''tramp_image'', ARGS[1])>>"></center>'
 
-	if (money < 12000) and (karta < 12000):
+	if max(money, karta) < 12000:
 		'You cannot afford this tattoo.'
 	else
 		if money >= 12000:
-			act 'Get this tattoo 12,000 <b>₽</b> (cash)':
-				cla
-				tatupb = n
-				money -= 12000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 12,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_tramp3', <<ARGS[1]>>, 'money'
+			"
 		end
 		if karta >= 12000:
-			act 'Get this tattoo 12,000 <b>₽</b> (card)':
-				cla
-				tatupb = n
-				karta -= 12000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 12,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_tramp3', <<ARGS[1]>>, 'karta'
+			"
 		end
 	end
 
+	act 'Return': gt 'pirsingsalon', 'tattoo_tramp'
+end
+
+if $ARGS[0] = 'tattoo_tramp3':
+	minut += 60
+	if $ARGS[2] = 'money': money -= 12000 else karta -= 12000
+	gs 'tattoo_management', 'add', 'tramp', ARGS[1]
+	gs 'stat'
+
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'under':
-	*clr
-	cla
-	if tatunder = 0:
 
-		n = 1
+	!!----- Under --------------------------------------------------
+
+if $ARGS[0] = 'tattoo_under':
+	menu_off = 1
+	gs 'stat'
+
+	if pcs_tattoos['under'] <= 0:
+		ps_total = func('tattoo_management', 'totals', 'under')
+		ps_i = 1
 		:looptatunder
-		*p '<a href="exec:n = <<n>> & gt ''pirsingsalon'', ''under_get''"><img src="images/pc/body/tattoos/underBreast/tatundbreast<<n>>.jpg" height="250" /></a>'
-		n += 1
-		if n <= 22:jump 'looptatunder'
+			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_under2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''under_image'', ps_i)>>"></a>'
+			ps_i += 1
+		if ps_i <= ps_total: jump 'looptatunder'
 		*nl
 
 	else
-		'<center><img src="images/pc/body/tattoos/underBreast/tatundbreast<<tatunder>>.jpg"></center>'
+		'<center><img src="<<func(''tattoo_management'', ''under_image'')>>"></center>'
 		'You already have this tattoo here.'
 	end
 
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'under_get':
-	*clr
-	cla
-	'<center><img src="images/pc/body/tattoos/underBreast/tatundbreast<<n>>.jpg"></center>'
+if $ARGS[0] = 'tattoo_under2':
+	'<center><img src="<<func(''tattoo_management'', ''under_image'', ARGS[1])>>"></center>'
 
-	if (money < 12000) and (karta < 12000):
+	if max(money, karta) < 12000:
 		'You cannot afford this tattoo.'
 	else
 		if money >= 12000:
-			act 'Get this tattoo 12,000 <b>₽</b> (cash)':
-				cla
-				tatunder = n
-				money -= 12000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 12,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_under3', <<ARGS[1]>>, 'money'
+			"
 		end
 		if karta >= 12000:
-			act 'Get this tattoo 12,000 <b>₽</b> (card)':
-				cla
-				tatunder = n
-				karta -= 12000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 12,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_under3', <<ARGS[1]>>, 'karta'
+			"
 		end
 	end
 
+	act 'Return': gt 'pirsingsalon', 'tattoo_under'
+end
+
+if $ARGS[0] = 'tattoo_under3':
+	minut += 60
+	if $ARGS[2] = 'money': money -= 12000 else karta -= 12000
+	gs 'tattoo_management', 'add', 'under', ARGS[1]
+	gs 'stat'
+
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'wrist':
-	*clr
-	cla
-	if tatwrist = 0:
 
-		n = 1
+	!!----- Wrist --------------------------------------------------
+
+if $ARGS[0] = 'tattoo_wrist':
+	menu_off = 1
+	gs 'stat'
+
+	if pcs_tattoos['wrist'] <= 0:
+		ps_total = func('tattoo_management', 'totals', 'wrist')
+		ps_i = 1
 		:looptatwrist
-		*p '<a href="exec:n = <<n>> & gt ''pirsingsalon'', ''wrist_get''"><img src="images/pc/body/tattoos/wrists/tatwrst<<n>>.jpg" height="250" /></a>'
-		n += 1
-		if n <= 51:jump 'looptatwrist'
-		*nl
+			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_wrist2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''wrist_image'', ps_i)>>"></a>'
+			ps_i += 1
+		if ps_i <= ps_total: jump 'looptatwrist'
 
 	else
-		'<center><img src="images/pc/body/tattoos/wrists/tatwrst<<tatwrist>>.jpg"></center>'
+		'<center><img src="<<func(''tattoo_management'', ''wrist_image'')>>"></center>'
 		'You already have this tattoo here.'
 	end
 
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'wrist_get':
-	*clr
-	cla
-	'<center><img src="images/pc/body/tattoos/wrists/tatwrst<<n>>.jpg"></center>'
+if $ARGS[0] = 'tattoo_wrist2':
+	'<center><img src="<<func(''tattoo_management'', ''			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_wrist2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''wrist_image'', ps_i)>>"></a>'
+'', ARGS[1])>>"></center>'
 
-	if (money < 7000) and (karta < 7000):
+	if max(money, karta) < 7000:
 		'You cannot afford this tattoo.'
 	else
 		if money >= 7000:
-			act 'Get this tattoo 7,000 <b>₽</b> (cash)':
-				cla
-				tatwrist = n
-				money -= 7000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 7,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_wrist3', <<ARGS[1]>>, 'money'
+			"
 		end
 		if karta >= 7000:
-			act 'Get this tattoo 7,000 <b>₽</b> (card)':
-				cla
-				tatwrist = n
-				karta -= 7000
-				minut += 60
-				gs 'stat'
-
-				act 'Return': gt 'pirsingsalon', 'start'
-			end
+			dynamic "
+				act 'Get this tattoo 7,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_wrist3', <<ARGS[1]>>, 'karta'
+			"
 		end
 	end
 
+	act 'Return': gt 'pirsingsalon', 'tattoo_wrist'
+end
+
+if $ARGS[0] = 'tattoo_wrist2':
+	minut += 60
+	if $ARGS[2] = 'money': money -= 12000 else karta -= 12000
+	gs 'tattoo_management', 'add', 'wrist', ARGS[1]
+	gs 'stat'
+
 	act 'Return': gt 'pirsingsalon', 'start'
 end
 
---- pirsingsalon ---------------------------------
 
+
+! Cleanup
+
+killvar 'ps_i'
+killvar 'ps_total'
+
+
+--- pirsingsalon ---------------------------------

+ 2 - 2
locations/placer_man.qsrc

@@ -31,8 +31,8 @@ if rand(0, 150) < pcs_apprnc and (rand(0, 10) > 2 or placerParameter['friend_ind
 
 		if pcs_makeup = 4:placerParameter['slut_visual'] += 1
 
-		if pirsA > 0 and pirsA < 10000:placerParameter['slut_visual'] += 1
-		if pirsB > 0 and pirsB < 10000:placerParameter['slut_visual'] += 1
+		if pcs_piercings['lip'] > 0: placerParameter['slut_visual'] += 1
+		if pcs_piercings['tongue'] > 0: placerParameter['slut_visual'] += 1
 		!!if tits > 2:end
 		!!if pcs_hips-pcs_waist > 30:end
 		!!if glamur > 0 or ski > 0:end

+ 3 - 3
locations/prostitution_car_sex.qsrc

@@ -133,9 +133,9 @@ if $ARGS[0] = 'rimjob_start':
 	cla & *nl
 	minut += 10
 	prostitute['rim_pity_counter'] = 0
-	prostitute['payment'] = 500 + pcs_hotcat * 5 + iif(prostitute['pirsA']= pirsA and pirsA < 10000, pirsA * 15, 0)
+	prostitute['payment'] = 500 + pcs_hotcat * 5 + iif((prostitute['piercing_tongue'] = pcs_piercings['tongue'] or prostitute['pirsA'] = pcs_piercings['tongue']) and pcs_piercings['tongue'] > 0, pcs_piercings['tongue'] * 15, 0)
 	gs 'stat'
-	iif(rand(0,1) = 0 or $prostitute_fetish['rimjob'] = '', 'Even after ten more minutes he still doesn''t seem to be close to shooting his load. "Something wrong?" you ask. He shakes his head. "Not really, but this will take a while." You let out an involuntary sigh. "There is something that will get me off quickly if you''re willing to do it." You send him a questioning look. "Lick my ass, that always get''s me off quickly,"', '"This isn''t working," he says after ten more minutes. "Could you maybe eat my ass? It''s a sure way for me to cum,"')+' he continues and quickly adds. "I pay extra, of course. How about <<prostitute[''payment'']>> <b>₽</b>? I would really love to feel '+iif(pirsA > 0 and pirsA < 10000, 'that piercing', 'your tongue')+' on my asshole."'
+	iif(rand(0,1) = 0 or $prostitute_fetish['rimjob'] = '', 'Even after ten more minutes he still doesn''t seem to be close to shooting his load. "Something wrong?" you ask. He shakes his head. "Not really, but this will take a while." You let out an involuntary sigh. "There is something that will get me off quickly if you''re willing to do it." You send him a questioning look. "Lick my ass, that always get''s me off quickly,"', '"This isn''t working," he says after ten more minutes. "Could you maybe eat my ass? It''s a sure way for me to cum,"')+' he continues and quickly adds. "I pay extra, of course. How about <<prostitute[''payment'']>> <b>₽</b>? I would really love to feel ' + iif(pcs_piercings['tongue'] > 0, 'that piercing', 'your tongue') + ' on my asshole."'
 
 	if $prostitute_fetish['rimjob'] = '':
 		'<br>He wants you to do what? Licking his ass? You think shocked and look down to his ass. You knew that anal would be a possibility, but this? You don''t even have time to think about it more, before he asks, "and?" He clearly wants you to quickly make a decision.'
@@ -424,7 +424,7 @@ if $ARGS[0] = 'rimjob_end':
 			'<center><video autoplay loop src="images/shared/prostitution/car/normal/sex/rimjob/rimjob_s1.mp4"></video></center>'
 			'In contrast to most guys he''s completely shaved. Not a single hair is left on his ass, balls and crotch which makes the whole experience a bit more enjoyable for you.'+iif(prostitute_thought['rimjob'] < 2, ' You give yourself a mental shake. It isn''t as if you like giving guys a rimjob... or do you? You ask yourself, but immediately push the thought aside and concentrate on the task in front of you. ', ' ')+'He also tastes like nothing, not even sweat as if he stepped right out of the shower. "That''s great, keep doing that," he says with a blissful smile on his face, when you flick your tongue through the puckered meat of his hole.'
 			*nl
-			'You continue to tease his ass with your '+iif(pirsA > 0 and pirsA < 10000, 'piercing', 'tongue')+' for the next few minutes and stroking his cock with your hands. "Damn, that''s...," he stops talking as cum erupts from the tip of his cock coating your hand in it.'
+			'You continue to tease his ass with your ' + iif(pcs_piercings['tongue'] > 0, 'piercing', 'tongue') + ' for the next few minutes and stroking his cock with your hands. "Damn, that''s...," he stops talking as cum erupts from the tip of his cock coating your hand in it.'
 		elseif prostitute['rim_counter'] = 2 or (prostitute['rim_counter'] = 6 and prostitute_rand = 2):
 			'<center><video autoplay loop src="images/shared/prostitution/car/normal/sex/rimjob/rimjob_s2.mp4"></video></center>'
 			'You push your face into his shaved ass-crack and dig in. "That feels nice," he says with a grin and strokes his cock as your tongue moves up and down his ass-crack. "Sounds even nicer," he adds, when the air is filled with the slobbery sounds your mouth and tongue make on his ass.'

+ 19 - 49
locations/prostitution_functions.qsrc

@@ -386,21 +386,21 @@ end
 !! Result Range: 0
 if $ARGS[0] = 'tattoo_and_piercing_modifier':
 	result = 0
-	if (PCloSkirt >= 4 or PCloPants >= 4 or PCloPanties > 0) and PShoCut = 1 and tatankle > 0: temp_tattoo_mod += 3
-	if (PCloSkirt >= 4 or PCloPants >= 4 or PCloPanties > 0) and PShoCut < 5 and tatleg > 0: temp_tattoo_mod += 5
-	if (PCloSKirt = 6 or PCloPanties = 2) and $pantyworntype = 'none' and tatvag > 0: temp_tattoo_mod += 5
-	if (PCloSkirt >= 5 or PCloPanties = 2) and tatass > 0: temp_tattoo_mod += 3
-	if (PCloThinness >= 5 or PCloTopCut >= 4 or PCloBra = 1) and tatblly > 0: temp_tattoo_mod += 5
-	if (PCloThinness >= 5 or PCloTopCut >= 3 or PCloBra = 1 or PCloStyle = 4 or PCloStyle2 = 3) and tatupb > 0: temp_tattoo_mod += 3
-	if (PCloThinness >= 5 or PCloTopCut >= 4 or PCloBra = 1) and tatback > 0: temp_tattoo_mod += 3
-	if (PCloThinness >= 5 or PCloTopCut >= 3 or PCloBra = 1 or PCloStyle = 4 or PCloStyle2 = 3) and tatunder > 0: temp_tattoo_mod += 3
-	if (PCloThinness >= 5 or PCloTopCut >= 3 or PCloBra = 1 or (PCloBra = 2 and $braworntype = 'none')) and tatbrst > 0: temp_tattoo_mod += 3
-	if (PCloThinness >= 5 or PCloTopCut >= 3 or PCloBra = 1 or (PCloBra = 2 and $braworntype = 'none')) and tatchst > 0: temp_tattoo_mod += 3
-	if (PCloThinness >= 5 or PCloTopCut >= 3 or PCloBra = 1 or PCloStyle = 4 or PCloStyle2 = 3) and tatside > 0: temp_tattoo_mod += 3
-	if (PCloThinness >= 5 or PCloBra = 1) and tatarm > 0: temp_tattoo_mod += 2
-	if (PCloThinness >= 5 or PCloTopCut >= 3 or PCloBra = 1 or PCloStyle = 4 or PCloStyle2 = 3) and tatlech > 0: temp_tattoo_mod += 3
-	if (PCloThinness >= 3 or PCloTopCut >= 2 or PCloBra = 1 or PCloStyle = 4 or PCloStyle2 = 3) and tatneck > 0: temp_tattoo_mod += 5
-	if tatfce > 0: temp_tattoo_mod += 3
+	if (PCloSkirt >= 4 or PCloPants >= 4 or PCloPanties > 0) and PShoCut = 1 and pcs_tattoos['ankle'] > 0: temp_tattoo_mod += 3
+	if (PCloSkirt >= 4 or PCloPants >= 4 or PCloPanties > 0) and PShoCut < 5 and pcs_tattoos['leg'] > 0: temp_tattoo_mod += 5
+	if (PCloSKirt = 6 or PCloPanties = 2) and $pantyworntype = 'none' and pcs_tattoos['pussy'] > 0: temp_tattoo_mod += 5
+	if (PCloSkirt >= 5 or PCloPanties = 2) and pcs_tattoos['ass'] > 0: temp_tattoo_mod += 3
+	if (PCloThinness >= 5 or PCloTopCut >= 4 or PCloBra = 1) and pcs_tattoos['belly'] > 0: temp_tattoo_mod += 5
+	if (PCloThinness >= 5 or PCloTopCut >= 3 or PCloBra = 1 or PCloStyle = 4 or PCloStyle2 = 3) and pcs_tattoos['tramp'] > 0: temp_tattoo_mod += 3
+	if (PCloThinness >= 5 or PCloTopCut >= 4 or PCloBra = 1) and pcs_tattoos['back'] > 0: temp_tattoo_mod += 3
+	if (PCloThinness >= 5 or PCloTopCut >= 3 or PCloBra = 1 or PCloStyle = 4 or PCloStyle2 = 3) and pcs_tattoos['under'] > 0: temp_tattoo_mod += 3
+	if (PCloThinness >= 5 or PCloTopCut >= 3 or PCloBra = 1 or (PCloBra = 2 and $braworntype = 'none')) and pcs_tattoos['breast'] > 0: temp_tattoo_mod += 3
+	if (PCloThinness >= 5 or PCloTopCut >= 3 or PCloBra = 1 or (PCloBra = 2 and $braworntype = 'none')) and pcs_tattoos['chest'] > 0: temp_tattoo_mod += 3
+	if (PCloThinness >= 5 or PCloTopCut >= 3 or PCloBra = 1 or PCloStyle = 4 or PCloStyle2 = 3) and pcs_tattoos['side'] > 0: temp_tattoo_mod += 3
+	if (PCloThinness >= 5 or PCloBra = 1) and pcs_tattoos['arm'] > 0: temp_tattoo_mod += 2
+	if (PCloThinness >= 5 or PCloTopCut >= 3 or PCloBra = 1 or PCloStyle = 4 or PCloStyle2 = 3) and pcs_tattoos['shoulder'] > 0: temp_tattoo_mod += 3
+	if (PCloThinness >= 3 or PCloTopCut >= 2 or PCloBra = 1 or PCloStyle = 4 or PCloStyle2 = 3) and pcs_tattoos['neck'] > 0: temp_tattoo_mod += 5
+	if pcs_tattoos['face'] > 0: temp_tattoo_mod += 3
 
 	result = temp_tattoo_mod
 
@@ -1000,11 +1000,11 @@ if $ARGS[0] = 'payment':
 
 	if ($prostitute['client_scene'] = 'Blowjob') or ($prostitute['pav_scene'] = 'blowjob'):
 		prostitute['payment_mod'] = prostitute['payment_mod'] / 2
-		if pirsA = 2:
+		if pcs_piercings['tongue'] = 2:
 			prostitute['payment_mod'] += 50
-		elseif pirsA = 4:
+		elseif pcs_piercings['tongue'] = 4:
 			prostitute['payment_mod'] += 75
-		elseif pirsA > 0 and pirsA < 10000:
+		elseif pcs_piercings['tongue'] > 0:
 			prostitute['payment_mod'] += 25
 		end
 	end
@@ -1122,37 +1122,7 @@ end
 !!---------- Payment ---------------------------------------------------------------------------------------------
 
 if $ARGS[0] = 'tat_pierce_count':
-	tattCount = 0
-
-	if tatarm >= 1: tattCount += 1
-	if tatass >= 1:	tattCount += 1
-	if tatback >= 1: tattCount += 1
-	if tatblly >= 1: tattCount += 1
-	if tatbrst >= 1: tattCount += 1
-	if tatchst >= 1: tattCount += 1
-	if tatfce >= 1:	tattCount += 1
-	if tatankle >= 1: tattCount += 1
-	if tatleg >= 1:	tattCount += 1
-	if tatlip >= 1:	tattCount += 1
-	if tatneck >= 1: tattCount += 1
-	if tatvag >= 1: tattCount += 1
-	if tatlech >= 1: tattCount += 1
-	if tatside >= 1: tattCount += 1
-	if tatupb >= 1: tattCount += 1
-	if tatunder >= 1: tattCount += 1
-	if tatwrist >= 1: tattCount += 1
-	if tathand >= 1: tattCount += 1
-
-	pierWearCount = 0
-
-	if pirsA > 0 and pirsA ! 10000:	pierWearCount += 1
-	if pirsB > 0 and pirsB ! 10000:	pierWearCount += 1
-	if pirsC > 0 and pirsC ! 10000:	pierWearCount += 1
-	if pirsD > 0 and pirsD ! 10000:	pierWearCount += 1
-	if pirsE > 0 and pirsE ! 10000:	pierWearCount += 1
-	if pirsF > 0 and pirsF ! 10000:	pierWearCount += 1
-	if pirsG > 0 and pirsG ! 10000:	pierWearCount += 1
-	if pirsN > 0 and pirsN ! 10000:	pierWearCount += 1
+	gs 'pirsingsalon', 'count'
 end
 
 !!---------- Random Name -----------------------------------------------------------------------------------------

+ 2 - 2
locations/qwBarBilliard.qsrc

@@ -291,7 +291,7 @@ if $ARGS[0] = 'billiard_ev1':
 									!!sub/dom dialog needs fixing
 									!!'Smiling ' + iif(pcs_dom>=30,'seductively','shyly') + ', you get down on your knees, pulling his pants down as you go. You know full well that there''s a room''s worth of potential audience waiting on the other side of the curtain, so you don''t waste any time: After a single teasing lick around the tip of his cock, you ' + iif(pcs_hairlng>81,'brush a particularly annoying strand of your <<$pc_descWordy['hair length']>> out of your face','fish a rogue hair out of your mouth') + ' and take his <<dick>>cm <<$dick_girth>> dick into your mouth.'
 									'Smiling, you get down on your knees, pulling his pants down as you go. You know full well that there''s a room''s worth of potential audience waiting on the other side of the curtain, so you don''t waste any time: After a single teasing lick around the tip of his cock, you ' + iif(pcs_hairlng>81,'brush a particularly annoying strand of your <<$pc_descWordy[''hair length'']>> out of your face','fish a rogue hair out of your mouth') + ' and take his <<dick>>cm <<$dick_girth>> dick into your mouth.'
-									'You bob your head '+ iif(stat['bj']>20,'confidently','reluctantly, still trying to figure blowjobs out') + iif(stat['bj']>40,' and with wild abandon','') + ' and run your <<$pcdesc_tongue>> around it to stimulate him as much as you can.'
+									'You bob your head '+ iif(stat['bj']>20,'confidently','reluctantly, still trying to figure blowjobs out') + iif(stat['bj']>40,' and with wild abandon','') + ' and run your <<$pc_desc[''tongue'']>> tongue around it to stimulate him as much as you can.'
 									*nl
 									'You''re not sure if the prospect of getting caught here with a cock in your mouth terrifies or excites you more, but you don''t really feel the need to find out which it is.'
 									$orgasm_txt = 'But you do anyway: It''s the latter. As you unconsciously knead your <<$pc_desc[''breast'']>> breasts through your top, the heat between your legs grows and spreads to your belly. You moan around Martin''s cock as the orgasm overcomes you. You don''t have to look up to see the self-satisfied expression on Martin''s face when he realizes that you came from sucking his cock...'
@@ -640,7 +640,7 @@ if $ARGS[0] = 'billiard_money':
 	end
 
 	gs 'stat'
-	
+
 	act 'Return to the bar': gt 'qwBarPolet', 'bar'
 end
 

+ 7 - 7
locations/radapt.qsrc

@@ -202,7 +202,7 @@ if $ARGS[0] = 'home':
 					'Lena smiles at him all coy before she walks past you and out of the apartment. When you glance back at Rad, he''s looking all smug.'
 					'He turns and heads back into his room, waving for you to follow. "Come on in."'
 				elseif grupTipe = 2:
-					'You thank her and enter the apartment. She closes the door and heads off to the kitchen while you head down the hallway to Radomir''s room.' 
+					'You thank her and enter the apartment. She closes the door and heads off to the kitchen while you head down the hallway to Radomir''s room.'
 					'Just as you arrive, the door opens and Lena walks out of his room. By the state of her clothes, her messed up hair and her smeared makeup, it''s not hard to guess what happened.'
 					'She pauses when she sees you. "Look at the jockette coming to slum it. Those jock boys just don''t know how to fuck your ass, right?" she smirks while patting you on the cheek in a mocking way.'
 					'A moment later, Radomir steps out and smiles when he sees you. He then slaps Lena on the ass, which makes her giggle. "See you later, doll."'
@@ -307,7 +307,7 @@ if $ARGS[0] = 'bathroom':
 	'The bathroom is spotless. The porcelain of the sink is so clean you can almost see your reflection in it. There''s also a nice tub next to the sink, with a toilet across from it.'
 	'You can do your hair and makeup in the <a href="exec:gt ''mirror'', ''start''">mirror</a> above the sink.'
 	*nl
-	if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0:'<a href="exec:dynamic $pirManage">Manage Piercings</a>'
+	gs 'piercing_management', 'set_manage_string'
 	act 'Leave the bathroom': gt 'radapt', 'hallway'
 	act 'Take a shower':
 		*clr & cla
@@ -858,7 +858,7 @@ if $ARGS[0] = 'firstvisit':
 	end
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/stairs/etaj4.jpg"></center>'
 	'Radomir leads you to his apartment, and the two of you talk as you go. It''s nothing important, just idle small talk to pass the time. Once on the fifth floor of his building, he leads you to apartment 21. It''s one of the corner apartments, which you know from your own building are the bigger three bedroom apartments. He unlocks the door with his keys and leads you inside.'
-	
+
 	act 'Continue':
 		*clr & cla
 		minut += 1
@@ -904,7 +904,7 @@ if $ARGS[0] = 'firstvisit':
 			'Before you can reply, Radomir lunges at him. "Asshole!"'
 			'They''re soon wrestling in the hall before they end up going back through the doorway Radislav came from.'
 		end
-		
+
 		act 'Follow them':
 			*clr & cla
 			minut += 5
@@ -914,7 +914,7 @@ if $ARGS[0] = 'firstvisit':
 			'You follow them into the room, which seems to be the living room. It becomes clear pretty quickly that Radislav is bigger, heavier and more skilled as he seems to be toying with Radomir. A few seconds later, a middle-aged attractive woman enters the room.'
 			'"Now you two stop that right now! I said stop that!" You assume she''s their mother, but they completely ignore her repeated efforts to make them stop before she gives up and calls down the hall. "Rostislav! Get in here and stop these two before they break something!"'
 			'The boys keep going at it before a middle-aged man enters. He looks a lot like Radislav, or you should say Radislav looks like a younger version of him. It''s obvious they''re father and son. He looks over what''s happening before he turns to the woman and shrugs. "Boys will be boys. They need to establish their alpha dominance. Besides, it''s good for Rad. Builds character, Anfisa."'
-			
+
 			act 'Keep watching':
 				*clr & cla
 				minut += 2
@@ -929,7 +929,7 @@ if $ARGS[0] = 'firstvisit':
 				'Radomir steps away from his mother while his brother laughs. "MOM! I''m not a sensitive boy! I''m a grown-ass man!"'
 				'She just smiles. "Of course you are, my sweet boy."'
 				'Radomir rolls his eyes while his brother just laughs even more. Now that you''ve see them all together, it''s obvious that Radomir takes after his mother a lot more than his father, while his brother looks just like a younger version of his father.'
-				
+
 				act 'Watch it play out':
 					*clr & cla
 					minut += 3
@@ -944,7 +944,7 @@ if $ARGS[0] = 'firstvisit':
 					'The mother looks a little doubtful, but then smiles as her husband flatters her. "Well... I suppose..."'
 					'He nods. "Now why don''t you go start dinner while I talk to the boys?"'
 					'She nods and her husband gives her a smack on the ass, which gets a small giggle out of her, but also a slightly disapproving glare. You think the glare is just for show, though.'
-					
+
 					act 'Keep waiting':
 						*clr & cla
 						minut += 5

+ 1 - 1
locations/road_prostitution.qsrc

@@ -26,7 +26,7 @@ if $ARGS[0] = 'work':
 	'<center><video autoplay src="images/shared/prostitution/car/normal/negotiation/search.mp4"></video></center>'
 
 	!! TODO: Need to rewrite this to reflect the Pavlovsk - St Petersburg road locations
-	!!'You are walking near the gas station waiting for a client. On a scale from 1 to 10 you look like a <<pcs_hotcat>>. A good looking girl will always earn more money.'+iif(pcs_makeup < 2, ' You should '+iif(pcs_makeup = 0, 'fix your make-up', 'wear make-up')+' to increase your earnings.', ' Wearing make-up is a good way to increase your earnings.')+iif(pirsA > 0 and pirsA < 10000, ' Your tongue piercing will make a blowjob more enjoyable for most men, that could bring in a small bonus.', '')+iif($pantyworntype = 'eroto' and CloSkirtShortness > 4, ' Wearing such a short skirt reveals your slutty panties to your potential customers.', '')+iif(pcs_apprnc = -10, ' You don''t look healthy and should seek treatment for your STD. There is a high chance that a guy won''t touch you without a condom.', '')
+	!!'You are walking near the gas station waiting for a client. On a scale from 1 to 10 you look like a <<pcs_hotcat>>. A good looking girl will always earn more money.' + iif(pcs_makeup < 2, ' You should ' + iif(pcs_makeup = 0, 'fix your make-up', 'wear make-up') + ' to increase your earnings.', ' Wearing make-up is a good way to increase your earnings.') + iif(pcs_piercings['tongue'] > 0, ' Your tongue piercing will make a blowjob more enjoyable for most men, that could bring in a small bonus.', '') + iif($pantyworntype = 'eroto' and CloSkirtShortness > 4, ' Wearing such a short skirt reveals your slutty panties to your potential customers.', '') + iif(pcs_apprnc = -10, ' You don''t look healthy and should seek treatment for your STD. There is a high chance that a guy won''t touch you without a condom.', '')
 	gs 'road_prostitution', 'road_segment'
 
 	!! TODO: The enema thing should be aligned with the rest of the game.

+ 1 - 1
locations/rolanbath.qsrc

@@ -395,7 +395,7 @@ if $ARGS[0] = 'start':
 !!		dynamic $dryOff
 	end
 
-	if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0:'<a href="exec:dynamic $pirManage">Manage Piercings.</a>'
+	gs 'piercing_management', 'set_manage_string'
 
 	if fillimplant = 1 and siliconeBag >= 1:'<a href="exec:cls & siliconeBag -= 1 & bodyVars[''bust_silicone''] += 10 & gt $loc, $loc_arg">Inject silicone into breast implants.</a>'
 	if fillimplant = 1 and bodyVars['bust_silicone'] >= 20:'<a href="exec:cls & bodyVars[''bust_silicone''] -= 10 & gt $loc, $loc_arg">Drain silicone from breast implants.</a>'

+ 161 - 2
locations/saveupdater.qsrc

@@ -3633,11 +3633,170 @@ if temp_current_save_version < 00090303:
 
 
 	if bankDebtLimit > 0: karta += bankDebtLimit
-
-	if artemQW['strapon_count'] = 0 and artemQW['strapon'] >= 1 or artemQW['strapon'] = -1: artemQW['strapon_count'] = 1
 end
 
 if temp_current_save_version < 00090304:
+	if artemQW['strapon_count'] = 0 and artemQW['strapon'] >= 1 or artemQW['strapon'] = -1: artemQW['strapon_count'] = 1
+
+	pcs_piercings['total'] = 0
+	pcs_piercings['wearing'] = 0
+	if pirsC > 0:
+		pcs_piercings['total'] += 1
+		if pirsC >= 10000:
+			pcs_piercings['ears'] = -1
+		elseif pirsC > 0:
+			pcs_piercings['wearing'] += 1
+			pcs_percings['ears'] = pirsC
+		end
+		killvar 'pirsC'
+	end
+	if pirsD > 0:
+		pcs_piercings['total'] += 1
+		if pirsD >= 10000:
+			pcs_piercings['nose'] = -1
+		elseif pirsD > 0:
+			pcs_piercings['wearing'] += 1
+			pcs_percings['nose'] = pirsD
+		end
+		killvar 'pirsD'
+	end
+	if pirsE > 0:
+		pcs_piercings['total'] += 1
+		if pirsE >= 10000:
+			pcs_piercings['brow'] = -1
+		elseif pirsE > 0:
+			pcs_piercings['wearing'] += 1
+			pcs_percings['brow'] = pirsE
+		end
+		killvar 'pirsE'
+	end
+	if pirsB > 0:
+		pcs_piercings['total'] += 1
+		if pirsB >= 10000:
+			pcs_piercings['lip'] = -1
+		elseif pirsB > 0:
+			pcs_piercings['wearing'] += 1
+			pcs_percings['lip'] = pirsB
+		end
+		killvar 'pirsB'
+	end
+	if pirsA > 0:
+		pcs_piercings['total'] += 1
+		if pirsA >= 10000:
+			pcs_piercings['tongue'] = -1
+		elseif pirsA > 0:
+			pcs_piercings['wearing'] += 1
+			pcs_percings['tongue'] = pirsA
+		end
+		killvar 'pirsA'
+	end
+	if pirsN > 0:
+		pcs_piercings['total'] += 1
+		if pirsN >= 10000:
+			pcs_piercings['navel'] = -1
+		elseif pirsN > 0:
+			pcs_piercings['wearing'] += 1
+			pcs_percings['navel'] = pirsN
+		end
+		killvar 'pirsN'
+	end
+	if pirsF > 0:
+		pcs_piercings['total'] += 1
+		if pirsF >= 10000:
+			pcs_piercings['nipples'] = -1
+		elseif pirsF > 0:
+			pcs_piercings['wearing'] += 1
+			pcs_percings['nipples'] = pirsF
+		end
+		killvar 'pirsF'
+	end
+	if pirsG > 0:
+		pcs_piercings['total'] += 1
+		if pirsG >= 10000:
+			pcs_piercings['pussy'] = -1
+		elseif pirsG > 0:
+			pcs_piercings['wearing'] += 1
+			pcs_percings['pussy'] = pirsG
+		end
+		killvar 'pirsG'
+	end
+
+	su_i = 0
+	:piercing_owned_update_loop
+		dynamic "
+			if pirsC<<su_i>>_owned = 1:	pcs_piercings['ears_<<su_i>>_owned']		= 1	& killvar 'pirsC<<su_i>>_owned'
+			if pirsD<<su_i>>_owned = 1:	pcs_piercings['nose_<<su_i>>_owned']		= 1	& killvar 'pirsD<<su_i>>_owned'
+			if pirsE<<su_i>>_owned = 1:	pcs_piercings['brow_<<su_i>>_owned']		= 1	& killvar 'pirsE<<su_i>>_owned'
+			if pirsB<<su_i>>_owned = 1:	pcs_piercings['lip_<<su_i>>_owned']			= 1	& killvar 'pirsB<<su_i>>_owned'
+			if pirsA<<su_i>>_owned = 1:	pcs_piercings['tongue_<<su_i>>_owned']		= 1	& killvar 'pirsA<<su_i>>_owned'
+			if pirsN<<su_i>>_owned = 1:	pcs_piercings['navel_<<su_i>>_owned']		= 1	& killvar 'pirsN<<su_i>>_owned'
+			if pirsF<<su_i>>_owned = 1:	pcs_piercings['nipples_<<su_i>>_owned']		= 1	& killvar 'pirsF<<su_i>>_owned'
+			if pirsG<<su_i>>_owned = 1:	pcs_piercings['pussy_<<su_i>>_owned']		= 1	& killvar 'pirsG<<su_i>>_owned'
+		"
+		su_i += 1
+	if su_i < 24: jump 'piercing_owned_update_loop'
+
+	if tattCount		> 0:	pcs_tattoos['total']		= tattCount			& killvar 'tattCount'
+	if tatarm			> 0:	pcs_tattoos['arm']			= tatarm			& killvar 'tatarm'
+	if tatass			> 0:	pcs_tattoos['ass']			= tatass			& killvar 'tatass'
+	if tatback			> 0:	pcs_tattoos['back']			= tatback			& killvar 'tatback'
+	if tatblly			> 0:	pcs_tattoos['belly']		= tatblly			& killvar 'tatblly'
+	if tatbrst			> 0:	pcs_tattoos['breast']		= tatbrst			& killvar 'tatbrst'
+	if tatchst			> 0:	pcs_tattoos['chest']		= tatchst			& killvar 'tatchst'
+	if tatfce			> 0:	pcs_tattoos['face']			= tatfce			& killvar 'tatfce'
+	if tatankle			> 0:	pcs_tattoos['ankle']		= tatankle			& killvar 'tatankle'
+	if tatleg			> 0:	pcs_tattoos['leg']			= tatleg			& killvar 'tatleg'
+	if tatlip			> 0:	pcs_tattoos['lip']			= tatlip			& killvar 'tatlip'
+	if tatneck			> 0:	pcs_tattoos['neck']			= tatneck			& killvar 'tatneck'
+	if tatvag			> 0:	pcs_tattoos['pussy']		= tatvag			& killvar 'tatvag'
+	if tatlech			> 0:	pcs_tattoos['shoulder']		= tatlech			& killvar 'tatlech'
+	if tatside			> 0:	pcs_tattoos['side']			= tatside			& killvar 'tatside'
+	if tatupb			> 0:	pcs_tattoos['tramp']		= tatupb			& killvar 'tatupb'
+	if tatunder			> 0:	pcs_tattoos['under']		= tatunder			& killvar 'tatunder'
+	if tatwrist			> 0:	pcs_tattoos['wrist']		= tatwrist			& killvar 'tatwrist'
+	if tathand			> 0:	pcs_tattoos['hand']			= tathand			& killvar 'tathand'
+
+	if sisterQW['pirsA'] > 0:
+		sisterQW['piercing_tongue'] = 1
+		gs 'shortgs', 'remove_array_element', 'sisterQW', 'pirsA'
+	end
+	if sisterQW['pirsB'] > 0:
+		sisterQW['piercing_lip'] = 1
+		gs 'shortgs', 'remove_array_element', 'sisterQW', 'pirsB'
+	end
+	if sisterQW['pirsC'] > 0:
+		sisterQW['piercing_ears'] = 1
+		gs 'shortgs', 'remove_array_element', 'sisterQW', 'pirsC'
+	end
+	if sisterQW['pirsD'] > 0:
+		sisterQW['piercing_nose'] = 1
+		gs 'shortgs', 'remove_array_element', 'sisterQW', 'pirsD'
+	end
+	if sisterQW['pirsE'] > 0:
+		sisterQW['piercing_brow'] = 1
+		gs 'shortgs', 'remove_array_element', 'sisterQW', 'pirsE'
+	end
+
+	if sisterpirsadaytalk	> 0:	sisterQW['piercing_daystart']		= sisterpirsadaytalk	& killvar 'sisterpirsadaytalk'
+	if brothersawpirsF		> 0:	brotherQW['piercing_nipples']		= 1						& killvar 'brothersawpirsF'
+	if pirsadaytalk			> 0:	stepfatherQW['piercing_talkday']	= pirsadaytalk			& killvar 'pirsadaytalk'
+	if pirsAfather			> 0:	stepfatherQW['piercing_tongue']		= 1						& killvar 'pirsAfather'
+	if pirsBfather			> 0:	stepfatherQW['piercing_lip']		= 1						& killvar 'pirsBfather'
+	if pirsCfather			> 0:	stepfatherQW['piercing_ears']		= 1						& killvar 'pirsCfather'
+	if pirsDfather			> 0:	stepfatherQW['piercing_nose']		= 1						& killvar 'pirsDfather'
+	if pirsEfather			> 0:	stepfatherQW['piercing_brow']		= 1						& killvar 'pirsEfather'
+	if PutsawpirsF			> 0:	stepfatherQW['piercing_nipples']	= 1						& killvar 'PutsawpirsF'
+	if PutsawpirsG			> 0:	stepfatherQW['piercing_pussy']		= 1						& killvar 'PutsawpirsG'
+	if fatherTatLip			> 0:	stepfatherQW['tattoo_lip']			= 1						& killvar 'fatherTatLip'	& killvar '$textFatherTatLip'
+	if Putsawtatvag			> 0:	stepfatherQW['tattoo_pussy']		= 1						& killvar 'Putsawtatvag'
+	if motherpirsadaytalk	> 0:	motherQW['piercing_talkday']		= motherpirsadaytalk	& killvar 'motherpirsadaytalk'
+	if pirsAmother			> 0:	motherQW['piercing_tongue']			= 1						& killvar 'pirsAmother'
+	if pirsBmother			> 0:	motherQW['piercing_lip']			= 1						& killvar 'pirsBmother'
+	if pirsCmother			> 0:	motherQW['piercing_ears']			= 1						& killvar 'pirsCmother'
+	if pirsDmother			> 0:	motherQW['piercing_nose']			= 1						& killvar 'pirsDmother'
+	if pirsEmother			> 0:	motherQW['piercing_brow']			= 1						& killvar 'pirsEmother'
+
+	if KotovKnowPirsA	> 0:		VitekQW['piercing_tongue']			= 1						& killvar 'KotovKnowPirsA'
 end
 
 

+ 13 - 13
locations/sister_chat.qsrc

@@ -257,8 +257,8 @@ if $ARGS[0] = 'talking':
 			end
 			act 'Move away': gt $loc, $loc_arg
 		!! If you have piercings that your sister doesn''t know about:
-		elseif pirsA > 0 and pirsA < 10000 and sisterQW['pirsA'] = 0 and sisterpirsadaytalk ! daystart and $loc = 'bedrPar':
-			sisterpirsadaytalk = daystart
+		elseif pcs_piercings['tongue'] > 0 and sisterQW['piercing_tongue'] = 0 and sisterQW['piercing_daystart'] ! daystart and $loc = 'bedrPar':
+			sisterQW['piercing_daystart'] = daystart
 			if rand(1,100) >= 75:
 				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/anya/sister2.jpg"></center>'
 				'Your sister looks at your mouth. "What''s that on your tongue, <<$pcs_nickname>>?"'
@@ -277,11 +277,11 @@ if $ARGS[0] = 'talking':
 
 				act 'Show her your tongue piercing':
 					*clr & cla
-					sisterQW['pirsA'] = 1
+					sisterQW['piercing_tongue'] = 1
 					npc_rel['A33'] += 1
 					minut += 5
 					gs 'stat'
-					'<center><img <<$set_imgh>> src="images/pc/body/piercings/a<<pirsA>>.jpg"></center>'
+					'<center><img <<$set_imgh>> src="images/pc/body/piercings/a<<pcs_piercings[''tongue'']>>.jpg"></center>'
 					'You open your mouth and stick out your tongue, showing her your tongue piercing.'
 					'She smiles. "Wow, you go <<$pcs_nickname>>!"'
 					'She seems to approve and spends a few minutes asking you all about it.'
@@ -292,37 +292,37 @@ if $ARGS[0] = 'talking':
 			else
 				gt 'sister_chat', 'talking'
 			end
-		elseif pirsB > 0 and pirsB < 10000 and sisterQW['pirsB'] = 0 and $loc = 'bedrPar':
+		elseif pcs_piercings['lip'] > 0 and sisterQW['piercing_lip'] = 0 and $loc = 'bedrPar':
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/anya/sister2.jpg"></center>'
 			'Your sister looks at your lip, studying your piercing. "That''s so cool and pretty! I love it!"'
 			act 'Thank her':
 				*clr & cla
-				sisterQW['pirsB'] = 1
+				sisterQW['piercing_lip'] = 1
 				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/pc/body/piercings/b<<pirsB>>.jpg"></center>'
+				'<center><img <<$set_imgh>> src="images/pc/body/piercings/b<<pcs_piercings[''lip'']>>.jpg"></center>'
 				'You thank your sister for her compliment, instinctively playing with your new piercing.'
 				act 'Move away': gt $loc, $loc_arg
 				act 'Chat': gt 'sister_chat', 'talking'
 			end
 			exit
-		elseif pirsC > 0 and pirsC < 10000 and sisterQW['pirsC'] = 0 and $loc = 'bedrPar':
-			sisterQW['pirsC'] = 1
+		elseif pcs_piercings['ears'] > 0 and sisterQW['piercing_ears'] = 0 and $loc = 'bedrPar':
+			sisterQW['piercing_ears'] = 1
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/anya/sister2.jpg"></center>'
 			'Your sister looks at your earrings.'
 			'"Finally! I thought you would never get your ears pierced!" she says while inspecting them.'
 			act 'Move away': gt $loc, $loc_arg
 			act 'Chat': gt 'sister_chat', 'talking'
 			exit
-		elseif pirsD > 0 and pirsD < 10000 and sisterQW['pirsD'] = 0 and $loc = 'bedrPar':
-			sisterQW['pirsD'] = 1
+		elseif pcs_piercings['nose'] > 0 and sisterQW['piercing_nose'] = 0 and $loc = 'bedrPar':
+			sisterQW['piercing_nose'] = 1
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/anya/sister2.jpg"></center>'
 			'Anya is clearly shocked by your nose ring. "Damn <<$pcs_nickname>>, tell me who did this to you and I''ll get them for you."'
 			'She dances around you shadow boxing, and you both end up laughing loudly.'
 			act 'Move away': gt $loc, $loc_arg
 			act 'Chat': gt 'sister_chat', 'talking'
 			exit
-		elseif pirsE > 0 and pirsE < 10000 and sisterQW['pirsE'] = 0 and $loc = 'bedrPar':
-			sisterQW['pirsE'] = 1
+		elseif pcs_piercings['brow'] > 0 and sisterQW['piercing_brow'] = 0 and $loc = 'bedrPar':
+			sisterQW['piercing_brow'] = 1
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/anya/sister2.jpg"></center>'
 			'Your sister takes a good look at your eyebrow piercing. "Nice, but be careful and don''t accidentally get it caught on something!"'
 			act 'Move away': gt $loc, $loc_arg

+ 20 - 20
locations/sny.qsrc

@@ -33,7 +33,7 @@ if $ARGS[0] = '3':
 	else
 		act 'Refuse to drink (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to resist.</font>'
 	end
-	
+
 	act 'Drink':
 		*clr & cla
 		minut += 15
@@ -67,7 +67,7 @@ if $ARGS[0] = '4':
 	else
 		act 'Refuse to drink (<font color="red"><<will_cost>> Willpower</font>)':'<br><font color="red">You don''t have enough willpower to resist.</font>'
 	end
-		
+
 	act 'Drink':
 		*clr & cla
 		minut += 15
@@ -85,7 +85,7 @@ if $ARGS[0] = '5':
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/dimkahome/newyear/tusa5.jpg"></center>'
 	'Albina goes into the center of the room and begins to dance. She is a very talented dancer and knows how to move her body. She is quickly joined by Katja and her sister Vicky. While you are watching the girls, someone hands you another glass of vodka.'
-	
+
 	gs 'willpower', 'drink', 'resist'
 	if will_cost <= pcs_willpwr:
 		act 'Refuse to drink (<<will_cost>> Willpower)':
@@ -95,13 +95,13 @@ if $ARGS[0] = '5':
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/dimkahome/newyear/tusa5.jpg"></center>'
 			'You turn down the offered glass.'
-			
+
 			act 'Continue': minut += 5 & gt 'sny', '6'
 		end
 	else
 		act 'Refuse to drink (<font color="red"><<will_cost>> Willpower</font>)':'<br><font color="red">You don''t have enough willpower to resist.</font>'
 	end
-	
+
 	act 'Drink':
 		*clr & cla
 		minut += 15
@@ -135,7 +135,7 @@ if $ARGS[0] = '6':
 	else
 		act 'Refuse to drink (<font color="red"><<will_cost>> Willpower</font>)':'<br><font color="red">You don''t have enough willpower to resist.</font>'
 	end
-	
+
 	act 'Drink':
 		*clr & cla
 		minut += 15
@@ -172,13 +172,13 @@ if $ARGS[0] = '7':
 
 				act 'Leave':gt 'pav_residential'
 			elseif NosovRevenge = 1:
-				'<center><img <<$set_imgh>> src="images/pc/body/tattoos/pubic/tatvag6.jpg"></center>'
+				'<center><img <<$set_imgh>> src="<<func(''tattoo_management'', ''pussy_image'', 6)>>"></center>'
 				'You wake up lying on a chair that is fully reclined. With difficulty, you raise your head and look around at the place. You are unfamiliar with it. You feel a burning sensation in your pubic area. Looking down, you see your panties have been pulled down to expose your pussy. Just above it is a tattoo.'
 
-				if tatvag ! 0:'It looks like your old tattoo has been covered up with a new one.'
-
-				tatvag = 6
+				if pcs_tattoos['pussy'] ! 0:'It looks like your old tattoo has been covered up with a new one.'
+				gs 'tattoo_management', 'add', 'pussy', 6
 				pcs_pubes = 0
+
 				gs 'stat'
 				'Looking closer, you read the word SLUT. On top of the letters lies a tattooed girl in stockings. You finally notice the man cleaning his tattoo station up, and you demand, "What the hell? Why did you tattoo me?" The man rolls his eyes. "Oh God, you came in drunk and then wonder why. Here is a sketch of the tattoo and your signature on the release form." You looks at the signature. Indeed, it is yours.'
 
@@ -194,10 +194,10 @@ if $ARGS[0] = '7':
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/dimkahome/newyear/alb.jpg"></center>'
 		if fedorKozlovQW = 0:
 			'You are a little drunk but having fun when you notice Albina sitting on the couch and kissing Ivan while Fedor paws at her breasts. Looking around you some more, you notice that Katja is nowhere to be seen.'
-		else	
+		else
 			'You are a little drunk but having fun when you notice Albina sitting on the couch and kissing Ivan. Looking around you some more, you notice that Katja is nowhere to be seen.'
 		end
-		
+
 		act 'Search for Katja':
 			*clr & cla
 			SeeKatBang = 1
@@ -222,7 +222,7 @@ if $ARGS[0] = '7':
 		else
 			act 'Leave (<font color="red"><<will_cost>> Willpower</font>)':'<br><font color="red">You don''t have enough willpower to resist.</font>'
 		end
-		
+
 		act 'Drink':
 			*clr & cla
 			minut += 15
@@ -298,7 +298,7 @@ if $ARGS[0] = '10':
 	if fedorKozlovQW >= 10:
 		act 'Push him away':gt 'FedorMisc', 'Dimka Party'
 	elseif fedorKozlovQW = -15:
-		act 'Push him away':gt'FedorMisc', 'Dimka Party 2'		
+		act 'Push him away':gt'FedorMisc', 'Dimka Party 2'
 	elseif NosovRevenge = 1 or dimaFilm ! 1:
 		act 'Push him away':gs 'sny', 'no'
 	end
@@ -356,7 +356,7 @@ if $ARGS[0] = 'kiss':
 					*clr & cla
 					spafinloc = 11
 					gs 'cum_manage'
-					
+
 					gs 'stat'
 					'<center><img <<$set_imgh>> src="images/shared/sex/blowjob/fa2.jpg"></center>'
 					'You suck on Gosha''s dick while Dimka fucks your pussy from behind. After a while, Gosha takes his dick out of your mouth, and a jet of sperm hits you in the face. Several more spurts join the first, splattering your face with his cum.'
@@ -367,25 +367,25 @@ if $ARGS[0] = 'kiss':
 					if condomDima = 1:
 						act 'Further':
 							*clr & cla
-							
+
 							spafinloc = 11
 							gs 'cum_manage'
 							gs 'stat'
 							'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/dimkahome/newyear/sex/cond.jpg"></center>'
 							'A few moments later, Dimka pulls out of you, takes off his condom and squeezes out his cum on your face.'
-						
+
 							act 'Wipe your eyes':gt 'sny', 'end'
 						end
 					elseif condomDima = 0:
 					    act 'Further':
 							*clr & cla
-							
+
 							spafinloc = 11
 							gs 'cum_manage'
 							gs 'stat'
 							'<center><img <<$set_imgh>> src="images/shared/sex/cum/facial/facial22.jpg"></center>'
 							'A few moments later, Dimka pulls out of you and walks around to your face. He jerks his dick a couple of times, and then it starts spewing sperm all over your face, mixing with Gosha''s, covering most of your face between the two of them.'
-				
+
 							act 'Wipe your eyes':gt 'sny', 'end'
 						end
 					end
@@ -412,7 +412,7 @@ if $ARGS[0] = 'no':
 			end
 		else
 			act 'Push him away (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-		end	
+		end
 		act 'Give in':
 			*clr & cla
 			'You want to push Dimka away, but your soaking wet pussy and burning desire to get fucked make you give in despite your better judgment.'

+ 1 - 1
locations/soniahome.qsrc

@@ -267,7 +267,7 @@ if $ARGS[0] = 'bathroom':
 	'You enter the bathroom, which is fully tiled with a grey-and-white colour scheme. Whilst reasonably small, it''s very tastefully decorated. It''s a fairly typical bathroom, but this might be the cleanest one you''ve ever been in. It looks practically brand new and smells lovely.'
 	'You can do your hair and makeup in the <a href="exec:gt ''mirror'', ''start''">mirror</a> above the sink.'
 	*nl
-	if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0:'<a href="exec:dynamic $pirManage">Manage Piercings</a>'
+	gs 'piercing_management', 'set_manage_string'
 	act 'Take a shower':
 		*clr & cla
 		menu_off = 1

+ 151 - 154
locations/stat.qsrc

@@ -476,182 +476,179 @@ else
 
 		! begin Loop
 		:Trig15MinuteLoop
+			! Horny Actions
+			if pcs_horny > 100:
+				Trig15Minute = totminut
+			else
+				Trig15Minute += 15
+
+				! WD: Fix vibrator arousal to trigger every 15 minutes, moved from 'time' location
+				if vibratorin = 1:pcs_horny += rand(1, 5)
+
+				! WD: Fixed Piecing arousal to trigger every 15 minutes, instead of once per day
+				if pcs_horny < 70:
+					hornystat = 0
+					if pcs_piercings['ears']	> 0:	hornystat += 1
+					if pcs_piercings['nose']	> 0:	hornystat += 1
+					if pcs_piercings['brow']	> 0:	hornystat += 1
+					if pcs_piercings['lip']		> 0:	hornystat += 1
+					if pcs_piercings['tongue']	> 0:	hornystat += 1
+					if pcs_piercings['navel']	> 0:	hornystat += 1
+					if pcs_piercings['nipples']	> 0:	hornystat += 4
+					if pcs_piercings['pussy']	> 0:	hornystat += 4
+					pcs_horny += (hornyStat + 2) / 4
+				end
 
-		! Horny Actions
-		if pcs_horny > 100:
-			set Trig15Minute = totminut
-		else
-			set Trig15Minute += 15
-
-			! WD: Fix vibrator arousal to trigger every 15 minutes, moved from 'time' location
-			if vibratorin = 1:pcs_horny += rand(1, 5)
-
-			! WD: Fixed Piecing arousal to trigger every 15 minutes, instead of once per day
-			if pcs_horny < 70:
-				hornystat = 0
-				if pirsF > 0 and pirsF < 10000:hornystat += 1
-				if pirsG > 0 and pirsG < 10000:hornystat += 1
-				hornyStat = hornystat * 4
-				if pirsA > 0 and pirsA < 10000:hornystat += 1
-				if pirsB > 0 and pirsB < 10000:hornystat += 1
-				if pirsC > 0 and pirsC < 10000:hornystat += 1
-				if pirsD > 0 and pirsD < 10000:hornystat += 1
-				if pirsE > 0 and pirsE < 10000:hornystat += 1
-				if pirsN > 0 and pirsN < 10000:hornystat += 1
-				set pcs_horny += hornyStat / 4 + rand(1,4) <= hornyStat mod 4 & ! Apply 1/4 of value on average
+				! WD: Clothing
+				if PCloStyle = 4 and pcs_horny < 70: pcs_horny += rand(0, 2)
+				if (PCloSkirt > 5 or PCloPants > 5) and pcs_horny < 50: pcs_horny += rand(0, 1)
+				if PCloTopCut = 4 and pcs_horny < 50: pcs_horny += rand(0, 1)
 			end
 
-			! WD: Clothing
-			if PCloStyle = 4 and pcs_horny < 70:set pcs_horny += rand(0, 2)
-			if (PCloSkirt > 5 or PCloPants > 5) and pcs_horny < 50:set pcs_horny += rand(0, 1)
-			if PCloTopCut = 4 and pcs_horny < 50:set pcs_horny += rand(0, 1)
-		end
-
-!!SECTION: Bimbo (15 minute interval update checks)
-		if bimbolevel > 0:
-			if (pcs_mood < 100): pcs_mood += (pcs_mood / 100) * max(0, (rand(bimbowithdrawal*-1,bimbolevel)))
-			if pcs_horny < max(0, 30 - bimbowithdrawal * bimbolevel): pcs_horny = max(0, 30 - bimbowithdrawal * bimbolevel)
-			if pcs_horny < 100: pcs_horny += max(0, rand(bimbowithdrawal/-2, bimbolevel))
-		end
-!!SECTION: Commando trait (15 minute interval update checks)
-		if $clothingworntype ! 'nude':
-			if $pantyworntype = 'none':
-!! Addition to trait exp/lvls
-				if pcs_traits['commando_lvl'] = 0:
-					if PCloSkirt > 0:
+	!!SECTION: Bimbo (15 minute interval update checks)
+			if bimbolevel > 0:
+				if (pcs_mood < 100): pcs_mood += (pcs_mood / 100) * max(0, rand(-bimbowithdrawal, bimbolevel))
+				if pcs_horny < max(0, 30 - bimbowithdrawal * bimbolevel): pcs_horny = max(0, 30 - bimbowithdrawal * bimbolevel)
+				if pcs_horny < 100: pcs_horny += max(0, rand(bimbowithdrawal/-2, bimbolevel))
+			end
+	!!SECTION: Commando trait (15 minute interval update checks)
+			if $clothingworntype ! 'nude':
+				if $pantyworntype = 'none':
+	!! Addition to trait exp/lvls
+					if pcs_traits['commando_lvl'] = 0:
+						if PCloSkirt > 0:
+							pcs_traits['commando_exp'] += 2
+						else
+							pcs_traits['commando_exp'] += 1
+						end
+						if pcs_traits['commando_exp'] >= 1000:
+							pcs_traits['commando_exp'] = 50
+							pcs_traits['commando_lvl'] = 1
+							msg'You have gained the Commando trait! You have become accustomed to the idea you don''t have to wear panties all the time and can now comfortably wear skirts without panties. Pants are still a little itchy though...'
+						end
+					elseif pcs_traits['commando_lvl'] = 1:
 						pcs_traits['commando_exp'] += 2
-					else
+						if pcs_traits['commando_exp'] >= 1000:
+							pcs_traits['commando_exp'] = 50
+							pcs_traits['commando_lvl'] = 2
+							msg'You have gained the 2nd level of the Commando trait! You have become very comfortable without panties and the raw insides of your pants no longer irritate your pussy.'
+						end
+					elseif pcs_traits['commando_lvl'] = 2:
+						mosol = 0
+						pcs_traits['commando_exp'] += 2
+						if pcs_traits['commando_exp'] >= 1000:
+							pcs_traits['commando_exp'] = 500
+							pcs_traits['commando_lvl'] = 3
+							msg'You have gained the 3rd level of the Commando trait! You have become so accustomed to going commando that any kind of underwear over your hips just feels <i>wrong</i>. You suffer mood penalties while wearing panties.'
+						end
+					elseif pcs_traits['commando_lvl'] = 3:
 						pcs_traits['commando_exp'] += 1
 					end
-					if pcs_traits['commando_exp'] >= 1000:
-						pcs_traits['commando_exp'] = 50
-						pcs_traits['commando_lvl'] = 1
-						msg'You have gained the Commando trait! You have become accustomed to the idea you don''t have to wear panties all the time and can now comfortably wear skirts without panties. Pants are still a little itchy though...'
-					end
-				elseif pcs_traits['commando_lvl'] = 1:
-					pcs_traits['commando_exp'] += 2
-					if pcs_traits['commando_exp'] >= 1000:
-						pcs_traits['commando_exp'] = 50
-						pcs_traits['commando_lvl'] = 2
-						msg'You have gained the 2nd level of the Commando trait! You have become very comfortable without panties and the raw insides of your pants no longer irritate your pussy.'
-					end
-				elseif pcs_traits['commando_lvl'] = 2:
-					mosol = 0
-					pcs_traits['commando_exp'] += 2
-					if pcs_traits['commando_exp'] >= 1000:
-						pcs_traits['commando_exp'] = 500
-						pcs_traits['commando_lvl'] = 3
-						msg'You have gained the 3rd level of the Commando trait! You have become so accustomed to going commando that any kind of underwear over your hips just feels <i>wrong</i>. You suffer mood penalties while wearing panties.'
-					end
-				elseif pcs_traits['commando_lvl'] = 3:
-					pcs_traits['commando_exp'] += 1
-				end
-			elseif pcs_traits['commando_lvl'] > 0:
-!!Reduction from exp/lvls
-				if pcs_traits['commando_lvl'] = 3:
-					pcs_traits['commando_exp'] -= 1
-					pcs_mood -= 1
-					if pcs_traits['commando_exp'] <= 0:
-						pcs_traits['commando_exp'] = 500
-						pcs_traits['commando_lvl'] = 2
-						msg'You have lost the 3rd level of the Commando trait! You are now only comfortable not wearing panties and will not suffer irritation from wearing pants while going commando.'
-					end
-				else
-					pcs_traits['commando_exp'] -= 1
-					if pcs_traits['commando_exp'] <= -0:
-						pcs_traits['commando_exp'] = 900
-						pcs_traits['commando_lvl'] -= 1
+				elseif pcs_traits['commando_lvl'] > 0:
+	!!Reduction from exp/lvls
+					if pcs_traits['commando_lvl'] = 3:
+						pcs_traits['commando_exp'] -= 1
+						pcs_mood -= 1
+						if pcs_traits['commando_exp'] <= 0:
+							pcs_traits['commando_exp'] = 500
+							pcs_traits['commando_lvl'] = 2
+							msg'You have lost the 3rd level of the Commando trait! You are now only comfortable not wearing panties and will not suffer irritation from wearing pants while going commando.'
+						end
+					else
+						pcs_traits['commando_exp'] -= 1
+						if pcs_traits['commando_exp'] <= -0:
+							pcs_traits['commando_exp'] = 900
+							pcs_traits['commando_lvl'] -= 1
+						end
 					end
 				end
-			end
-!!{
-			if $braworntype = 'none':
+				!!{
+				if $braworntype = 'none':
 
-			end}
-		end
+				end}
+			end
 
 
-!!	This is the Succubus non-direct injection (pun intented) sex to sexnutrition and the sexnutrition conversion handling
-		if succubusflag = 1:
-			if hypnoAddict > 0: dynamic $RestTherapyVariables
-			if pcs_horny < 50: pcs_horny = 50
-			if pcs_horny < 100: pcs_horny += succublvl
-			if succhungry > 0:
-				pcs_energy -= succhungry * succublvl
-				pcs_hydra -= succhungry * succublvl
-				pcs_sleep -= succhungry * succublvl
-			end
+	!!	This is the Succubus non-direct injection (pun intented) sex to sexnutrition and the sexnutrition conversion handling
+			if succubusflag = 1:
+				if hypnoAddict > 0: dynamic $RestTherapyVariables
+				if pcs_horny < 50: pcs_horny = 50
+				if pcs_horny < 100: pcs_horny += succublvl
+				if succhungry > 0:
+					pcs_energy -= succhungry * succublvl
+					pcs_hydra -= succhungry * succublvl
+					pcs_sleep -= succhungry * succublvl
+				end
 
-			if arrsize('sparrvol') > 0:
-				suctempi = -1
-				:SuccAbsorbLoop
-				suctempi += 1
-				if suctempi <= 1 or suctempi = 3 or suctempi = 4 or suctempi >= 8:
-					suctemparr = arrpos('sparrloc',suctempi)
-					if suctemparr >= 0 and sparrloc[suctemparr] = suctempi and sparrvol[suctemparr] > 0:
-						scfeed = succublvl + rand(1,4)
-						sexnutrition += 30 * scfeed
-						succubxp += 5
-						cumsumbod -= sparrvol[suctemparr]
-!						msg "we've got xp!" + sparrloc[suctemparr]
-						sucabscum = 1
-						gs 'cum_cleanup', 'cleandeposit', suctemparr
-						cumloc[suctempi] = 0
-						!debug code $stat_msg += '<BR>Absorb ext <<sexnutrition>>'
+				if arrsize('sparrvol') > 0:
+					suctempi = -1
+					:SuccAbsorbLoop
+					suctempi += 1
+					if suctempi <= 1 or suctempi = 3 or suctempi = 4 or suctempi >= 8:
+						suctemparr = arrpos('sparrloc',suctempi)
+						if suctemparr >= 0 and sparrloc[suctemparr] = suctempi and sparrvol[suctemparr] > 0:
+							scfeed = succublvl + rand(1,4)
+							sexnutrition += 30 * scfeed
+							succubxp += 5
+							cumsumbod -= sparrvol[suctemparr]
+	!						msg "we've got xp!" + sparrloc[suctemparr]
+							sucabscum = 1
+							gs 'cum_cleanup', 'cleandeposit', suctemparr
+							cumloc[suctempi] = 0
+							!debug code $stat_msg += '<BR>Absorb ext <<sexnutrition>>'
+						end
 					end
+					if suctempi < 17:jump 'SuccAbsorbLoop'
+					cumspclnt = 20 & gs 'cum_cleanup'
 				end
-				if suctempi < 17:jump 'SuccAbsorbLoop'
-				cumspclnt = 20 & gs 'cum_cleanup'
-			end
-			if suclezsex < lesbian:
-				sexnutrition += succublvl * 20
-				suclezsex = lesbian
-				succubxp += 5
-				sucabslez = 1
-			end
-			if sexnutrition > 0:
-				if sucskill >= 3 and succublvl >= 2: sexnutrition += (sexnutrition * 2) / 10
-				if sucabslez = 1 and sucabscum = 1:
-					$sucabs1 = 'absorbed energy from the woman you had sex with'
-					$sucabs2 = ' and you '
-					$sucabs3 = 'absorb the semen in your body'
-				elseif sucabscum = 1:
-					$sucabs3 = 'absorb the semen in your body'
-				elseif sucabslez = 1:
-					$sucabs1 = 'absorbed energy from the woman you had sex with'
-				else
-					!!Debug code
-					$stat_msg += '<BR>SOMETHING HAPPENED!'
+				if suclezsex < lesbian:
+					sexnutrition += succublvl * 20
+					suclezsex = lesbian
+					succubxp += 5
+					sucabslez = 1
 				end
-				$stat_msg += '<BR>You <<$sucabs1>><<$sucabs2>><<$sucabs3>>, gaining nourishment.'
-				sucabslez = 0 & sucabscum = 0
-				$sucabs1 = '' & $sucabs2 = '' & $sucabs3 = ''
-				if (pcs_mood < 100): pcs_mood += ((pcs_mood / 100) * 5)
-				if pcs_energy > 100: entemp = (pcs_energy - 100)
-				if sucexcess < 0 and sexnutrition > 20 and pcs_energy > 30:
-					if sexnutrition - 20 >= (0 - sucexcess) * 2:
-						sexnutrition += sucexcess * 2
-						sucexcess = 0
+				if sexnutrition > 0:
+					if sucskill >= 3 and succublvl >= 2: sexnutrition += (sexnutrition * 2) / 10
+					if sucabslez = 1 and sucabscum = 1:
+						$sucabs1 = 'absorbed energy from the woman you had sex with'
+						$sucabs2 = ' and you '
+						$sucabs3 = 'absorb the semen in your body'
+					elseif sucabscum = 1:
+						$sucabs3 = 'absorb the semen in your body'
+					elseif sucabslez = 1:
+						$sucabs1 = 'absorbed energy from the woman you had sex with'
 					else
-						sucexcess += (sexnutrition - 20) / 2
-						sexnutrition = 20
+						!!Debug code
+						$stat_msg += '<BR>SOMETHING HAPPENED!'
+					end
+					$stat_msg += '<BR>You <<$sucabs1>><<$sucabs2>><<$sucabs3>>, gaining nourishment.'
+					sucabslez = 0 & sucabscum = 0
+					$sucabs1 = '' & $sucabs2 = '' & $sucabs3 = ''
+					if (pcs_mood < 100): pcs_mood += ((pcs_mood / 100) * 5)
+					if pcs_energy > 100: entemp = (pcs_energy - 100)
+					if sucexcess < 0 and sexnutrition > 20 and pcs_energy > 30:
+						if sexnutrition - 20 >= (0 - sucexcess) * 2:
+							sexnutrition += sucexcess * 2
+							sucexcess = 0
+						else
+							sucexcess += (sexnutrition - 20) / 2
+							sexnutrition = 20
+						end
 					end
+					pcs_energy += sexnutrition / 2
+					pcs_hydra += sexnutrition
+					pcs_sleep += sexnutrition / 20
+					if succhungry > 0: succhungry = 0
+					sexnutrition = 0
+					if pcs_energy > 100: sucexcess += (pcs_energy - entemp - 100) & pcs_energy = 100 + entemp & killvar 'entemp'
 				end
-				pcs_energy += sexnutrition / 2
-				pcs_hydra += sexnutrition
-				pcs_sleep += sexnutrition / 20
-				if succhungry > 0: succhungry = 0
-				sexnutrition = 0
-				if pcs_energy > 100: sucexcess += (pcs_energy - entemp - 100) & pcs_energy = 100 + entemp & killvar 'entemp'
 			end
-		end
 
-!! safeguards to prevent bimbolevel from going above or below its intended limits
-		if bimbolevel > 3: bimbolevel = 3
-		if bimbolevel < 0: bimbolevel = 0
+	!! safeguards to prevent bimbolevel from going above or below its intended limits
+			bimbolevel = max(0, min(bimbolevel, 3))
 
 		! do loop
-		if (totminut - Trig15Minute) >= 15:jump 'Trig15MinuteLoop'
+		if (totminut - Trig15Minute) >= 15: jump 'Trig15MinuteLoop'
 	end
 end
 

+ 8 - 8
locations/stwork.qsrc

@@ -31,14 +31,14 @@ if $ARGS[0] = 'start':
 	'A wooden door leads to the <a href="exec:gt ''stwork'', ''toilet''">staff bathroom</a>.'
 
 	! Tattoos increase your desireability as a stripper
-	if tatlech > 0:stripKoef1 = rand(1, 3)
-	if tatback > 0:stripKoef2 = rand(1, 3)
-	if tatblly > 0:stripKoef3 = rand(1, 3)
-	if tatupb > 0:stripKoef4 = rand(3, 6)
-	if tatleg > 0:stripKoef5 = rand(1, 3)
-	if tatarm > 0:stripKoef6 = rand(1, 3)
-	if tatside > 0:stripKoef7 = rand(1, 3)
-	stripKoef = stripKoef1 + stripKoef2 + stripKoef3 + stripKoef4 + stripKoef5 + stripKoef6 + stripKoef7
+	stripKoef = 0
+	if pcs_tattoos['shoulder'] > 0: stripKoef += rand(1, 3)
+	if pcs_tattoos['back'] > 0: stripKoef += rand(1, 3)
+	if pcs_tattoos['belly'] > 0: stripKoef += rand(1, 3)
+	if pcs_tattoos['tramp'] > 0: stripKoef += rand(3, 6)
+	if pcs_tattoos['leg'] > 0: stripKoef += rand(1, 3)
+	if pcs_tattoos['arm'] > 0: stripKoef += rand(1, 3)
+	if pcs_tattoos['side'] > 0: stripKoef += rand(1, 3)
 	if countmoney = 1:
 		countmoney = 0
 		gs 'stwork', 'tipcalculator'

+ 311 - 0
locations/tattoo_management.qsrc

@@ -0,0 +1,311 @@
+# tattoo_management
+
+if $ARGS[0] = 'totals':
+	if $ARSG[1] = 'ankle':
+		result = 25
+	elseif $ARSG[1] = 'arm':
+		result = 77
+	elseif $ARSG[1] = 'ass':
+		result = 25
+	elseif $ARSG[1] = 'back':
+		result = 61
+	elseif $ARSG[1] = 'belly':
+		result = 21
+	elseif $ARSG[1] = 'breast':
+		result = 11
+	elseif $ARSG[1] = 'chest':
+		result = 15
+	elseif $ARSG[1] = 'face':
+		result = 8
+	elseif $ARSG[1] = 'hand':
+		result = 9
+	elseif $ARSG[1] = 'leg':
+		result = 47
+	elseif $ARSG[1] = 'lip':
+		result = 9
+	elseif $ARSG[1] = 'neck':
+		result = 30
+	elseif $ARSG[1] = 'pussy':
+		result = 53
+	elseif $ARSG[1] = 'shoulder':
+		result = 25
+	elseif $ARSG[1] = 'side':
+		result = 23
+	elseif $ARSG[1] = 'tramp':
+		result = 32
+	elseif $ARSG[1] = 'under':
+		result = 22
+	elseif $ARSG[1] = 'wrist':
+		result = 51
+	end
+	exit
+end
+
+
+if $ARGS[0] = 'add':
+	if pcs_tattoos[$ARGS[1]] < 0: pcs_tattoos['total'] += 1
+	pcs_tattoos['any'] = 1
+	pcs_tattoos[$ARGS[1]] = ARGS[2]
+	exit
+end
+
+if $ARGS[0] = 'remove':
+	if pcs_tattoos[$ARGS[1]] > 0:
+		pcs_tattoos['total'] -= 1
+		pcs_tattoos[$ARGS[1]] = -pcs_tattoos[$ARGS[1]]
+	end
+	exit
+end
+
+if $ARGS[0] = 'full_reset':
+	killvar 'pcs_tattoos'
+	exit
+end
+
+if $ARGS[0] = 'count':
+	pcs_tattoos['total'] = 0
+	if pcs_tattoos['ankle']		> 0:	pcs_tattoos['total'] += 1
+	if pcs_tattoos['arm']		> 0:	pcs_tattoos['total'] += 1
+	if pcs_tattoos['ass']		> 0:	pcs_tattoos['total'] += 1
+	if pcs_tattoos['back']		> 0:	pcs_tattoos['total'] += 1
+	if pcs_tattoos['belly']		> 0:	pcs_tattoos['total'] += 1
+	if pcs_tattoos['breast']	> 0:	pcs_tattoos['total'] += 1
+	if pcs_tattoos['chest']		> 0:	pcs_tattoos['total'] += 1
+	if pcs_tattoos['face']		> 0:	pcs_tattoos['total'] += 1
+	if pcs_tattoos['hand']		> 0:	pcs_tattoos['total'] += 1
+	if pcs_tattoos['leg']		> 0:	pcs_tattoos['total'] += 1
+	if pcs_tattoos['lip']		> 0:	pcs_tattoos['total'] += 1
+	if pcs_tattoos['neck']		> 0:	pcs_tattoos['total'] += 1
+	if pcs_tattoos['pussy']		> 0:	pcs_tattoos['total'] += 1
+	if pcs_tattoos['shoulder']	> 0:	pcs_tattoos['total'] += 1
+	if pcs_tattoos['side']		> 0:	pcs_tattoos['total'] += 1
+	if pcs_tattoos['tramp']		> 0:	pcs_tattoos['total'] += 1
+	if pcs_tattoos['under']		> 0:	pcs_tattoos['total'] += 1
+	if pcs_tattoos['wrist']		> 0:	pcs_tattoos['total'] += 1
+
+	exit
+end
+
+
+if $ARGS[0] = 'ankle_image':
+	if ARGS[1] = 0:
+		if pcs_tattoos['ankle'] > 0:
+			ARGS[1] = pcs_tattoos['ankle']
+		else
+			ARGS[1] = -pcs_tattoos['ankle']
+		end
+	end
+	$result = 'images/pc/body/tattoos/foot/tatankle<<ARGS[1]>>.jpg'
+	exit
+end
+
+
+if $ARGS[0] = 'arm_image':
+	if ARGS[1] = 0:
+		if pcs_tattoos['arm'] > 0:
+			ARGS[1] = pcs_tattoos['arm']
+		else
+			ARGS[1] = -pcs_tattoos['arm']
+		end
+	end
+	$result = 'images/pc/body/tattoos/arms/tatarm<<ARGS[1]>>.jpg'
+	exit
+end
+
+if $ARGS[0] = 'ass_image':
+	if ARGS[1] = 0:
+		if pcs_tattoos['ass'] > 0:
+			ARGS[1] = pcs_tattoos['ass']
+		else
+			ARGS[1] = -pcs_tattoos['ass']
+		end
+	end
+	$result = 'images/pc/body/tattoos/ass/tatass<<ARGS[1]>>.jpg'
+	exit
+end
+
+if $ARGS[0] = 'back_image':
+	if ARGS[1] = 0:
+		if pcs_tattoos['back'] > 0:
+			ARGS[1] = pcs_tattoos['back']
+		else
+			ARGS[1] = -pcs_tattoos['back']
+		end
+	end
+	$result = 'images/pc/body/tattoos/back/tatback<<ARGS[1]>>.jpg'
+	exit
+end
+
+if $ARGS[0] = 'belly_image':
+	if ARGS[1] = 0:
+		if pcs_tattoos['belly'] > 0:
+			ARGS[1] = pcs_tattoos['belly']
+		else
+			ARGS[1] = -pcs_tattoos['belly']
+		end
+	end
+	$result = 'images/pc/body/tattoos/belly/tatblly<<ARGS[1]>>.jpg'
+	exit
+end
+
+if $ARGS[0] = 'breast_image':
+	if ARGS[1] = 0:
+		if pcs_tattoos['breast'] > 0:
+			ARGS[1] = pcs_tattoos['breast']
+		else
+			ARGS[1] = -pcs_tattoos['breast']
+		end
+	end
+	$result = 'images/pc/body/tattoos/breasts/tatbrst<<ARGS[1]>>.jpg'
+	exit
+end
+
+if $ARGS[0] = 'chest_image':
+	if ARGS[1] = 0:
+		if pcs_tattoos['chest'] > 0:
+			ARGS[1] = pcs_tattoos['chest']
+		else
+			ARGS[1] = -pcs_tattoos['chest']
+		end
+	end
+	$result = 'images/pc/body/tattoos/chest/tatchst<<ARGS[1]>>.jpg'
+	exit
+end
+
+if $ARGS[0] = 'face_image':
+	if ARGS[1] = 0:
+		if pcs_tattoos['face'] > 0:
+			ARGS[1] = pcs_tattoos['face']
+		else
+			ARGS[1] = -pcs_tattoos['face']
+		end
+	end
+	$result = 'images/pc/body/tattoos/face/tatfce<<ARGS[1]>>.jpg'
+	exit
+end
+
+if $ARGS[0] = 'hand_image':
+	if ARGS[1] = 0:
+		if pcs_tattoos['hand'] > 0:
+			ARGS[1] = pcs_tattoos['hand']
+		else
+			ARGS[1] = -pcs_tattoos['hand']
+		end
+	end
+	$result = 'images/pc/body/tattoos/hand/tathnd<<ARGS[1]>>.jpg'
+	exit
+end
+
+if $ARGS[0] = 'leg_image':
+	if ARGS[1] = 0:
+		if pcs_tattoos['leg'] > 0:
+			ARGS[1] = pcs_tattoos['leg']
+		else
+			ARGS[1] = -pcs_tattoos['leg']
+		end
+	end
+	$result = 'images/pc/body/tattoos/legs/tatleg<<ARGS[1]>>.jpg'
+	exit
+end
+
+if $ARGS[0] = 'lip_image':
+	if ARGS[1] = 0:
+		if pcs_tattoos['lip'] > 0:
+			ARGS[1] = pcs_tattoos['lip']
+		else
+			ARGS[1] = -pcs_tattoos['lip']
+		end
+	end
+	$result = 'images/pc/body/tattoos/lip/tatlip<<ARGS[1]>>.jpg'
+	exit
+end
+
+if $ARGS[0] = 'neck_image':
+	if ARGS[1] = 0:
+		if pcs_tattoos['neck'] > 0:
+			ARGS[1] = pcs_tattoos['neck']
+		else
+			ARGS[1] = -pcs_tattoos['neck']
+		end
+	end
+	$result = 'images/pc/body/tattoos/neck/tatnck<<ARGS[1]>>.jpg'
+	exit
+end
+
+if $ARGS[0] = 'pussy_image':
+	if ARGS[1] = 0:
+		if pcs_tattoos['pussy'] > 0:
+			ARGS[1] = pcs_tattoos['pussy']
+		else
+			ARGS[1] = -pcs_tattoos['pussy']
+		end
+	end
+	$result = 'images/pc/body/tattoos/pubic/tatvag<<ARGS[1]>>.jpg'
+	exit
+end
+
+if $ARGS[0] = 'shoulder_image':
+	if ARGS[1] = 0:
+		if pcs_tattoos['shoulder'] > 0:
+			ARGS[1] = pcs_tattoos['shoulder']
+		else
+			ARGS[1] = -pcs_tattoos['shoulder']
+		end
+	end
+	$result = 'images/pc/body/tattoos/shoulder/tatshldr<<ARGS[1]>>.jpg'
+	exit
+end
+
+if $ARGS[0] = 'side_image':
+	if ARGS[1] = 0:
+		if pcs_tattoos['side'] > 0:
+			ARGS[1] = pcs_tattoos['side']
+		else
+			ARGS[1] = -pcs_tattoos['side']
+		end
+	end
+	$result = 'images/pc/body/tattoos/side/tatside<<ARGS[1]>>.jpg'
+	exit
+end
+
+if $ARGS[0] = 'tramp_image':
+	if ARGS[1] = 0:
+		if pcs_tattoos['tramp'] > 0:
+			ARGS[1] = pcs_tattoos['tramp']
+		else
+			ARGS[1] = -pcs_tattoos['tramp']
+		end
+	end
+	$result = 'images/pc/body/tattoos/trampStamp/tatlowbck<<ARGS[1]>>.jpg'
+	exit
+end
+
+if $ARGS[0] = 'under_image':
+	if ARGS[1] = 0:
+		if pcs_tattoos['under'] > 0:
+			ARGS[1] = pcs_tattoos['under']
+		else
+			ARGS[1] = -pcs_tattoos['under']
+		end
+	end
+	$result = 'images/pc/body/tattoos/underBreast/tatundbreast<<ARGS[1]>>.jpg'
+	exit
+end
+
+if $ARGS[0] = 'wrist_image':
+	if ARGS[1] = 0:
+		if pcs_tattoos['wrist'] > 0:
+			ARGS[1] = pcs_tattoos['wrist']
+		else
+			ARGS[1] = -pcs_tattoos['wrist']
+		end
+	end
+	$result = 'images/pc/body/tattoos/wrists/tatwrst<<ARGS[1]>>.jpg'
+	exit
+end
+
+
+
+
+
+--- tattoo_management --------------------------------------------------

+ 1 - 1
locations/vasilyhome.qsrc

@@ -998,7 +998,7 @@ if $ARGS[0] = 'bathroom':
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/shulginhome/vanna.jpg"></center>'
 	*nl
 	'Uncle Sergey''s bathroom is small and very unpretentious. Nevertheless, it has everything a bathroom needs. There is a <a href="exec: gt ''mirror'',''start''">mirror</a> above the sink, where you can ' + iif(pcs_hairbsh < 1,'<a href="exec: gt ''mirror'',''brush''">brush</a>','brush') + ' your hair, a shower and a bathtub.'
-	if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0:'<a href="exec:dynamic $pirManage">Manage Piercings</a>'
+	gs 'piercing_management', 'set_manage_string'
 	act 'Leave the bathroom': gt 'vasilyhome', 'hallway'
 	act 'Take a shower':
 		*clr & cla