1
0

27 Sitoutukset 516882da9d ... d84b637702

Tekijä SHA1 Viesti Päivämäärä
  bgkjdgbizgblzdgbr d84b637702 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 1 viikko sitten
  bgkjdgbizgblzdgbr 65439b284f [fixed] Code mistakes not couhgt by the analyser. Reported by Chimrod. 1 viikko sitten
  Vengeance_11 5812c9ee58 Proofreading 1 viikko sitten
  bgkjdgbizgblzdgbr 9edb95d2e2 [added] The first Artem Katja thresome. 1 viikko sitten
  Kevin_Smarts 7c1446317c Merge remote-tracking branch 'Lokplart/master' 1 viikko sitten
  f95Lok 533369a65f [added] implemented dolls discount from Anushka quest 1 viikko sitten
  f95Lok 3d2f0ef982 [added] generalized discount functionality through the display loop functions 1 viikko sitten
  Kevin_Smarts 028c100e19 Merge remote-tracking branch 'Hooded_Silence/master' 1 viikko sitten
  Kevin_Smarts 86554e06a3 Merge remote-tracking branch 'Lokplart/master' 1 viikko sitten
  Myles Croft (Hooded Silence) 8137bb1ea1 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 1 viikko sitten
  Myles Croft (Hooded Silence) 5806717883 [Double or Nothing Edition] Some quick fixes to stop double vision when firing gym events. 1 viikko sitten
  f95Lok 226f23dfff [changed] arguments order for view_clothing_item to be in line with all other view_type_item functions 1 viikko sitten
  f95Lok 79d1973ea1 [changed] edited 'pirsingsalon' to use the generalized display loops 1 viikko sitten
  f95Lok 5c91e55206 [fixed] minor bugs in the newly implemented functions 1 viikko sitten
  f95Lok 4702a33ffd [changed] renamed one attribute file to match with function arguments 1 viikko sitten
  f95Lok cb43097084 [added] 'display_func_managed' function to 'shop_utils' 1 viikko sitten
  f95Lok 5bcd3e7039 [added] 'view_item' and 'buy' functions to 'tattoo_management' and 'piercing_management' 1 viikko sitten
  f95Lok 679da80089 [changed] renamed one attribute file to match with function arguments 1 viikko sitten
  f95Lok a21805a12c [changed] renamed attribute files to match with function arguments 1 viikko sitten
  f95Lok 9bfbde9fd2 [changed] renamed one attribute file to match with function arguments 1 viikko sitten
  f95Lok e11c649589 [changed] renamed one attribute file to match with function arguments 1 viikko sitten
  bgkjdgbizgblzdgbr d6444a401c [changed] Anuska in the city should behave like Anuska in Pav regarding the lastes changes 1 viikko sitten
  f95Lok ca32473bb6 [added] updated qproj 1 viikko sitten
  f95Lok 5172f1733e Merge remote-tracking branch 'kevin/master' 1 viikko sitten
  f95Lok 75e40c4d62 [added] attribute files for tattoos and piercings 1 viikko sitten
  Myles Croft (Hooded Silence) 2cb6d3a087 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 1 viikko sitten
  Myles Croft (Hooded Silence) 81c0c853ff [Bug fix] clear unnecessary image when at Vasily home door. 1 viikko sitten
56 muutettua tiedostoa jossa 4531 lisäystä ja 2558 poistoa
  1. 34 0
      glife.qproj
  2. 527 659
      locations/KatjaHomeTalk.qsrc
  3. 13 0
      locations/_attributes_piercing_brow.qsrc
  4. 101 0
      locations/_attributes_piercing_ears.qsrc
  5. 33 0
      locations/_attributes_piercing_lip.qsrc
  6. 21 0
      locations/_attributes_piercing_navel.qsrc
  7. 33 0
      locations/_attributes_piercing_nipples.qsrc
  8. 33 0
      locations/_attributes_piercing_nose.qsrc
  9. 45 0
      locations/_attributes_piercing_pussy.qsrc
  10. 21 0
      locations/_attributes_piercing_tongue.qsrc
  11. 80 0
      locations/_attributes_tattoo_ankle.qsrc
  12. 242 0
      locations/_attributes_tattoo_arm.qsrc
  13. 80 0
      locations/_attributes_tattoo_ass.qsrc
  14. 188 0
      locations/_attributes_tattoo_back.qsrc
  15. 68 0
      locations/_attributes_tattoo_belly.qsrc
  16. 38 0
      locations/_attributes_tattoo_breasts.qsrc
  17. 50 0
      locations/_attributes_tattoo_chest.qsrc
  18. 29 0
      locations/_attributes_tattoo_face.qsrc
  19. 32 0
      locations/_attributes_tattoo_hand.qsrc
  20. 146 0
      locations/_attributes_tattoo_leg.qsrc
  21. 32 0
      locations/_attributes_tattoo_lip.qsrc
  22. 95 0
      locations/_attributes_tattoo_neck.qsrc
  23. 164 0
      locations/_attributes_tattoo_pubic.qsrc
  24. 80 0
      locations/_attributes_tattoo_shoulder.qsrc
  25. 74 0
      locations/_attributes_tattoo_side.qsrc
  26. 101 0
      locations/_attributes_tattoo_tramp.qsrc
  27. 71 0
      locations/_attributes_tattoo_under.qsrc
  28. 158 0
      locations/_attributes_tattoo_wrist.qsrc
  29. 1 3
      locations/anush_bedroom_city.qsrc
  30. 1 1
      locations/anushapt_city.qsrc
  31. 11 9
      locations/anushkachat_city.qsrc
  32. 2 0
      locations/artem_events.qsrc
  33. 820 0
      locations/artem_katja_sex.qsrc
  34. 64 106
      locations/bank.qsrc
  35. 3 1
      locations/bras.qsrc
  36. 50 48
      locations/clothing.qsrc
  37. 2 1
      locations/coats.qsrc
  38. 2 2
      locations/gad_market.qsrc
  39. 9 1
      locations/gschool_lessonsev1.qsrc
  40. 60 49
      locations/katja_dorm.qsrc
  41. 1 1
      locations/katja_meynold_schedule.qsrc
  42. 6 1
      locations/katja_procedural.qsrc
  43. 567 0
      locations/katja_sex_talk.qsrc
  44. 11 10
      locations/newspaper_pages.qsrc
  45. 3 1
      locations/panties.qsrc
  46. 8 0
      locations/piercing_attributes.qsrc
  47. 71 0
      locations/piercing_management.qsrc
  48. 116 1649
      locations/pirsingsalon.qsrc
  49. 2 1
      locations/purses.qsrc
  50. 2 0
      locations/shoes.qsrc
  51. 7 5
      locations/shop_dolls.qsrc
  52. 70 8
      locations/shop_utils.qsrc
  53. 7 0
      locations/tattoo_attributes.qsrc
  54. 42 0
      locations/tattoo_management.qsrc
  55. 2 1
      locations/underwear_bodysuits.qsrc
  56. 2 1
      locations/vasilyhome.qsrc

+ 34 - 0
glife.qproj

@@ -255,6 +255,38 @@
 		<Location name="$attributes_danilovich_purses"/>
 		<Location name="$attributes_moncheri_purses"/>
 	</Folder>
+	<Folder name="Piercings">
+		<Location name="$attributes_piercing_ears"/>
+		<Location name="$attributes_piercing_nose"/>
+		<Location name="$attributes_piercing_brow"/>
+		<Location name="$attributes_piercing_lip"/>
+		<Location name="$attributes_piercing_tongue"/>
+		<Location name="$attributes_piercing_navel"/>
+		<Location name="$attributes_piercing_nipples"/>
+		<Location name="$attributes_piercing_pussy"/>
+		<Location name="piercing_attributes"/>
+	</Folder>
+	<Folder name="Tattoos">
+		<Location name="$attributes_tattoo_ankle"/>
+		<Location name="$attributes_tattoo_arm"/>
+		<Location name="$attributes_tattoo_ass"/>
+		<Location name="$attributes_tattoo_back"/>
+		<Location name="$attributes_tattoo_belly"/>
+		<Location name="$attributes_tattoo_breasts"/>
+		<Location name="$attributes_tattoo_chest"/>
+		<Location name="$attributes_tattoo_face"/>
+		<Location name="$attributes_tattoo_hand"/>
+		<Location name="$attributes_tattoo_leg"/>
+		<Location name="$attributes_tattoo_lip"/>
+		<Location name="$attributes_tattoo_neck"/>
+		<Location name="$attributes_tattoo_pubic"/>
+		<Location name="$attributes_tattoo_shoulder"/>
+		<Location name="$attributes_tattoo_side"/>
+		<Location name="$attributes_tattoo_tramp"/>
+		<Location name="$attributes_tattoo_under"/>
+		<Location name="$attributes_tattoo_wrist"/>
+		<Location name="tattoo_attributes"/>
+	</Folder>
 	<Folder name="Accessories">
 		<Location name="sewing"/>
 		<Location name="camera"/>
@@ -569,6 +601,7 @@
 		<Location name="artem_date_events"/>
 		<Location name="artem_sex"/>
 		<Location name="artem_nush_sex"/>
+		<Location name="artem_katja_sex"/>
 		<Location name="artem_dorm"/>
 		<Location name="artem_date_events_uni"/>
 		<Location name="artem_sex_uni"/>
@@ -586,6 +619,7 @@
 		<Location name="katja_lake"/>
 		<Location name="katjaEvDin"/>
 		<Location name="KatjaHomeTalk"/>
+		<Location name="katja_sex_talk"/>
 		<Location name="katja_sex"/>
 		<Location name="Katja_Tanga"/>
 		<Location name="katja_pantyquest"/>

+ 527 - 659
locations/KatjaHomeTalk.qsrc

@@ -58,74 +58,92 @@ if $ARGS[0] = '':
 				gt 'KatjaHomeTalk',  'katja_uni_tell'
 
 			else
-				if katjaQW['QWstage'] = 6 and katjaQW['anal_quest'] >= 3 and katjaQW['slut'] > 100 and katjaQW['horny'] > 60 and katjaQW['sex_clossedness'] = 0:
-					!!If Katja have had sex with both marcus and Ivan and have been corrupted enough. Then she will when she is horny ask about trying sex with other boys. 
-					gt 'KatjaHomeTalk', 'random_park_sex_talk'
-			
-				elseif katjaQW['QWstage'] = 5 and katjaQW['marcus_pussy'] > 0: 
-					!!If Katja have has had her first time with Marcus she will discuss this the next time the player talks to her at home
-					gt 'KatjaHomeTalk', 'first_boy_sex_follow_up'
-			
-				elseif katjaQW['QWstage'] = 5 and katjaQW['marcus_asked'] = 1 and katjaQW['sex_clossedness'] = 0: 
-					!!If Marcus have agreed to be katja''s first, the player will tell this to Katja the next time the talk at home
-					gt 'KatjaHomeTalk', 'Marcus_answer_talk'
-			
-				elseif katjaQW['QWstage'] < 4 and katjaQW['slut'] >= 50 and katjaQW['horny'] >= 40 and (katjaQW['knows_BJ'] + katjaQW['knows_sex']) >= 2 and npc_sex['A14'] > 0 and katjaQW['anal_quest'] ! 1 and katjaQW['sex_clossedness'] = 0 and katjaQW['pussy_sex'] = 0:
-					!!If Katja have been corrupted enough, have had sex with the player and know that the player have both given blow jobs and have had vaginal sex with a boy. She will if she is horny ask the player to help her arrange her first time with a boy.
-					gt 'KatjaHomeTalk', 'sex_with_boy_ask'
-			
+				if katjaQW['knows_artem_is_boyfreind'] = 0 and artemQW['bf'] = 1:
+					!!Katja have heard that Artem is the boyfriend of the player character and wants to discuss that 
+					gt 'KatjaHomeTalk', 'Artem_talk'
+	
+				elseif  katjaQW['knows_artem_is_boyfreind'] = 1 and artemQW['artembrokenheart'] = 1:
+					!!Katja have heard that Artem and the player character have broke up 
+					gt 'KatjaHomeTalk', 'Artem_break_up_talk'
+
 				else
-					if katjaQW['slut'] >= 60 and katjaQW['horny'] >= 40 and (katjaQW['knows_BJ'] + katjaQW['knows_anal']) >= 2 and npc_sex['A14'] > 0 and katjaQW['anal_quest'] = 0 and katjaQW['QWstage'] ! 4 and katjaQW['sex_clossedness'] = 0 and katjaQW['anal_sex'] = 0: 
-						!!If Katja have been corrupted enough, have had sex with the player and know that the player have both given blow jobs and have had vaginal sex with a boy. She will if she is horny ask the player to help her arrange her first time with a boy.
-						gt 'KatjaHomeTalk', 'anal_sex_with_boy_ask'
+					if katjaQW['QWstage'] = 6 and katjaQW['anal_quest'] >= 3 and katjaQW['slut'] > 100 and katjaQW['horny'] > 60 and katjaQW['sex_clossedness'] = 0:
+						!!If Katja have had sex with both marcus and Ivan and have been corrupted enough. Then she will when she is horny ask about trying sex with other boys. 
+						gt 'KatjaHomeTalk', 'random_park_sex_talk'
+				
+					elseif katjaQW['QWstage'] = 5 and katjaQW['pussy_sex'] = 0:
+						if katjaQW['Artem_pussy'] > 0:
+							!!If Katja have has had her first time with Artem she will discuss this the next time the player talks to her at home
+							gt 'KatjaHomeTalk', 'first_boy_sex_Artem_follow_up'
+						elseif katjaQW['marcus_pussy'] > 0: 
+							!!If Katja have has had her first time with Marcus she will discuss this the next time the player talks to her at home
+							gt 'KatjaHomeTalk', 'first_boy_sex_follow_up'
+						end
+
+					elseif katjaQW['QWstage'] = 5 and katjaQW['marcus_asked'] = 1 and katjaQW['sex_clossedness'] < 2: 
+						!!If Marcus have agreed to be katja''s first, the player will tell this to Katja the next time the talk at home
+						gt 'KatjaHomeTalk', 'Marcus_answer_talk'
 				
+					elseif katjaQW['QWstage'] < 4 and katjaQW['slut'] >= 50 and katjaQW['horny'] >= 40 and (katjaQW['knows_BJ'] + katjaQW['knows_sex']) >= 2 and npc_sex['A14'] > 0 and katjaQW['boy_block'] = 0 and katjaQW['anal_quest'] ! 1 and katjaQW['sex_clossedness'] = 0 and katjaQW['pussy_sex'] = 0:
+						!!If Katja have been corrupted enough, have had sex with the player and know that the player have both given blow jobs and have had vaginal sex with a boy. She will if she is horny ask the player to help her arrange her first time with a boy.
+						gt 'KatjaHomeTalk', 'sex_with_boy_ask'
+					elseif katjaQW['QWstage'] < 4 and katjaQW['knows_artem_is_boyfreind'] = 1 and katjaQW['slut'] >= 50 and katjaQW['horny'] >= 40:
+						!!if Katja have been corrupted enough and knows Artem is the player characters boyfriend she will ask for a threesome with him
+						gt 'KatjaHomeTalk', 'sex_with_Artem_ask'
+
 					else
-						if min(katjaQW['horny'],100) > rand(40,400) or (katjaQW['QWstage'] = 2 and min(katjaQW['horny'],100) > rand(40,160)) and katjaQW['sex_clossedness'] < 2:
-							if katjaQW['QWstage'] >= 6 and week < 6 and (locat['Vicky'] = 10 or locat['Vicky'] = 11) and rand(0,6) =0 and katjaQW['Marcus_day'] ! daystart and katjaQW['sex_clossedness'] = 0:
-								!!Katja will only have Marcus come over when Vicky is in the park with Vanya and Tamara is not home. She will also only ask for a threesoem 1 out of 7 time she ask you for sex.
-								katjaQW['Marcus_day'] = daystart
-								gt 'katjaHomeTalk', 'marcus_kiss' 
-						
-							elseif katjaQW['QWstage'] > 2:
-								!!The standard start of her sex scenes at home. Happens if the marcus ask do not trigger and Katja have kissed the player.
-								gt 'KatjaHomeTalk', 'hornykiss'
-						
-							else
-								!!This only triggers if the player have never kissed Katja.
-								gt 'KatjaHomeTalk', 'tender_kiss'
-							end
+						if katjaQW['slut'] >= 60 and katjaQW['horny'] >= 40 and (katjaQW['knows_BJ'] + katjaQW['knows_anal']) >= 2 and npc_sex['A14'] > 0 and katjaQW['boy_block'] = 0 and katjaQW['anal_quest'] = 0 and katjaQW['QWstage'] ! 4 and katjaQW['sex_clossedness'] = 0 and katjaQW['anal_sex'] = 0: 
+							!!If Katja have been corrupted enough, have had sex with the player and know that the player have both given blow jobs and have had vaginal sex with a boy. She will if she is horny ask the player to help her arrange her first time with a boy.
+							gt 'KatjaHomeTalk', 'anal_sex_with_boy_ask'
 					
-						else 
-							if npc_pregtalk['A14'] = 0 and (KatjaConflict = 0 or katjaconflict = 2) and func('body_din','pregnancyVisibility') = 1:
-								!! If Katja can see you are pregant and you haven''t already told her this will create a conflict with to different responses depending on if Katja is pregnant or not.
-								if kid > 0:
-									cla
-									gs 'stat'
-									minut += 5
-									KatjaConflict = 1
-									KatConCheck = daystart
-									'"You''re pregnant again?" Her face turns red and her expression is far angrier than you''ve ever seen her. "After everything, you still didn''t trust me enough to tell me?" she screams at you. "I thought there was something special between us." Tears begin rolling down her cheeks. "Just leave me alone, I don''t even want to see you right now."'
+						else
+							if min(katjaQW['horny'],100) > rand(40,400) or (katjaQW['QWstage'] = 2 and min(katjaQW['horny'],100) > rand(40,160)) and katjaQW['sex_clossedness'] < 2:
+								if katjaQW['QWstage'] >= 6 and week < 6 and katjaQW['boy_block'] = 0 and (locat['Vicky'] ! 8 and locat['Vicky'] ! 9 and locat['Vicky'] ! 12 and locat['Vicky'] ! 13) and rand(0,6) =0 and katjaQW['Marcus_day'] ! daystart and katjaQW['sex_clossedness'] = 0 and katjaQW['marcus_pussy'] > 0:
+									!!Katja will only have Marcus come over when Vicky is in the park with Vanya and Tamara is not home. She will also only ask for a threesoem 1 out of 7 time she ask you for sex.
+									katjaQW['Marcus_day'] = daystart
+									gt 'katjaHomeTalk', 'marcus_kiss' 
+							
+								elseif katjaQW['QWstage'] > 2:
+									!!The standard start of her sex scenes at home. Happens if the marcus ask do not trigger and Katja have kissed the player.
+									gt 'KatjaHomeTalk', 'hornykiss'
 							
-								elseif knowKatjaPreg = 1:
-									cla
-									gs 'stat'
-									minut += 5
-									KatjaConflict = 1
-									KatConCheck = daystart
-									'"Are you pregnant? Why didn''t you tell me? I thought we were closer than that. I told you when I got pregnant. I need to think. We''ll talk later."'
-
 								else
-									cla
-									*nl
-									minut += 5
-									KatjaConflict = 1
-									KatConCheck = daystart
-									'"Are you pregnant? Why didn''t you tell me? I thought we were closer than that. I need to think. We''ll talk later."'
-								end							
+									!!This only triggers if the player have never kissed Katja.
+									gt 'KatjaHomeTalk', 'tender_kiss'
+								end
 						
-							else
-								!!If no events triggers they you go to the part where the player can choose things to do with Katja.
-								gt 'katjaHomeTalk', 'chat' 
+							else 
+								if npc_pregtalk['A14'] = 0 and (KatjaConflict = 0 or katjaconflict = 2) and func('body_din','pregnancyVisibility') = 1:
+									!! If Katja can see you are pregant and you haven''t already told her this will create a conflict with to different responses depending on if Katja is pregnant or not.
+									if kid > 0:
+										cla
+										gs 'stat'
+										minut += 5
+										KatjaConflict = 1
+										KatConCheck = daystart
+										'"You''re pregnant again?" Her face turns red and her expression is far angrier than you''ve ever seen her. "After everything, you still didn''t trust me enough to tell me?" she screams at you. "I thought there was something special between us." Tears begin rolling down her cheeks. "Just leave me alone, I don''t even want to see you right now."'
+								
+									elseif knowKatjaPreg = 1:
+										cla
+										gs 'stat'
+										minut += 5
+										KatjaConflict = 1
+										KatConCheck = daystart
+										'"Are you pregnant? Why didn''t you tell me? I thought we were closer than that. I told you when I got pregnant. I need to think. We''ll talk later."'
+
+									else
+										cla
+										*nl
+										minut += 5
+										KatjaConflict = 1
+										KatConCheck = daystart
+										'"Are you pregnant? Why didn''t you tell me? I thought we were closer than that. I need to think. We''ll talk later."'
+									end							
+							
+								else
+									!!If no events triggers they you go to the part where the player can choose things to do with Katja.
+									gt 'katjaHomeTalk', 'chat' 
+								end
 							end
 						end
 					end
@@ -232,7 +250,7 @@ if $ARGS[0] = 'chat':
 					!!If Katja is horny she will talk about sex, else she will talk about normal stuff. The more corrupted she is the less horny she need to be to talk about sex.
 					'Katja talks about school lessons, cosmetics, the latest fashion trends and other things she considers very important.'
 				else
-					gs 'KatjaHomeTalk', 'Sextalk'
+					gs 'katja_sex_talk', 'Sextalk'
 				end
 				act 'Continue':gt 'KatjaHomeTalk'
 
@@ -261,10 +279,21 @@ if $ARGS[0] = 'chat':
 		end
 	end
 
-	if katjaQW['QWstage'] = 4 and katjaQW['marcus_pussy'] = 0 and katjaQW['sex_clossedness'] = 0: act 'Tell her you''ll find a boy for her to have sex with': gt 'KatjaHomeTalk', 'boy_discussion'
-	!!If Katja asked your help in finding a boy to try sex with and you said no. You have the choice to reverse that decision.
+	if katjaQW['QWstage'] = 4 and katjaQW['marcus_pussy'] = 0 and katjaQW['sex_clossedness'] = 0: 
+		!!If Katja asked your help in finding a boy to try sex with and you said no. You have the choice to reverse that decision.
+		if katjaQW['knows_artem_is_boyfreind'] = 1 and katjaQW['boy_block'] = 1:
+			act 'Tell her you want to set her up for sex with Artem': gt 'KatjaHomeTalk', 'artem_sex_discussion'
+		else
+			act 'Tell her you''ll find a boy for her to have sex with': gt 'KatjaHomeTalk', 'boy_discussion'
+		end
+	end
 
-	if katjaQW['anal_quest'] = 1 and katjaQW['sex_clossedness'] = 0: act 'Tell her you''ll find a boy for her to try anal with': gt 'KatjaHomeTalk', 'anal_discussion'
+	if katjaQW['QWstage'] >= 6 and katjaQW['Artem_pussy'] = 0 and katjaQW['knows_artem_is_boyfreind'] = 1 and katjaQW['boy_block'] = 1 and katjaQW['sex_clossedness'] = 0: 
+		!!A sexual active Katja has asked the player for having sex with Artem, but player did not agree originally
+		act 'Tell her you want to set her up for sex with Artem': gt 'KatjaHomeTalk', 'artem_sex_discussion'
+	end
+
+	if katjaQW['anal_quest'] = 1 and katjaQW['sex_clossedness'] = 0 and katjaQW['boy_block'] = 0: act 'Tell her you''ll find a boy for her to try anal with': gt 'KatjaHomeTalk', 'anal_discussion'
 	!!If Katja asked your help in finding a boy to try anal sex with and you said no. You have the choice to reverse that decision.
 
 	if katjaQW['slut'] >= 50 and katjaQW['horny'] >= 80 and npc_sex['A14'] > 0 and katjaQW['sex_clossedness'] < 2:
@@ -272,7 +301,7 @@ if $ARGS[0] = 'chat':
 		act 'Lick Katja': gt 'KatjaEvDin', 'kuni_dom'
 	end
 
-	if katjaQW['QWstage'] >= 7 and katjaQW['birth_control_start_day'] < daystart and katjaQW['birth_control_start_day'] > 0 and katjaQW['horny'] > 60 and katjaQW['sex_clossedness'] = 0:
+	if katjaQW['QWstage'] >= 7 and katjaQW['birth_control_start_day'] < daystart and katjaQW['birth_control_start_day'] > 0 and katjaQW['horny'] > 60 and katjaQW['sex_clossedness'] = 0 and katjaQW['boy_block'] = 0:
 		!!If you have gotten to the last stage of Katja''s questline, you can suggest to go to the park to look for boys if Katja is horny.
 		act 'Look for boys in the park':
 			gt 'KatjaHomeTalk', 'go_to_park'
@@ -280,7 +309,7 @@ if $ARGS[0] = 'chat':
 	end
 			
 
-	if katjaQW['QWstage'] = 5 and katjaQW['marcus_asked'] = 2 and week < 6 and (locat['Vicky'] = 10 or locat['Vicky'] = 11) and (katjaQW['horny']+katjaQW['slut']) > 100 and katjaQW['sex_clossedness'] = 0:
+	if katjaQW['QWstage'] = 5 and katjaQW['marcus_asked'] = 2 and week < 6 and (locat['Vicky'] ! 8 and locat['Vicky'] ! 9 and locat['Vicky'] ! 12 and locat['Vicky'] ! 13) and (katjaQW['horny']+katjaQW['slut']) > 100 and katjaQW['sex_clossedness'] = 0 and katjaQW['boy_block'] = 0:
 	!!Katja will only have Marcus come over when Vicky is in the park with Vanya and Tamara is not home. This is the lead in to the Marcus threesome if it is the first time.
 		act 'Suggest that you call Marcus':
 			*clr & cla
@@ -294,7 +323,7 @@ if $ARGS[0] = 'chat':
 		end
 	end
 
-	if katjaQW['QWstage'] >= 6 and week < 6 and (locat['Vicky'] = 10 or locat['Vicky'] = 11) and katjaQW['horny'] > 80 and katjaQW['Marcus_day'] ! daystart and katjaQW['sex_clossedness'] = 0:
+	if katjaQW['QWstage'] >= 6 and week < 6 and (locat['Vicky'] ! 8 and locat['Vicky'] ! 9 and locat['Vicky'] ! 12 and locat['Vicky'] ! 13) and katjaQW['horny'] > 80 and katjaQW['Marcus_day'] ! daystart and katjaQW['sex_clossedness'] = 0 and katjaQW['boy_block'] = 0 and katjaQW['marcus_pussy'] > 0:
 	!!Katja will only have Marcus come over when Vicky is in the park with Vanya and Tamara is not home. This is the lead in to the Marcus threesome if it have allready been fone at least one time.
 		act 'Suggest that you call Marcus':
 			*clr & cla
@@ -422,7 +451,7 @@ if $ARGS[0] = 'chat':
 		end
 	end
 
-	if katjaQW['boy_block'] = 1:
+	if katjaQW['boy_block'] = 1 and katjaQW['knows_artem_is_boyfreind'] ! 1:
 		act 'Tell Katja, that you have decided that boys are fun after all <br><font color="red">(Katja will start asking about sex with boys again)</font>': gt 'KatjaHomeTalk',  'boy_yes'
 	end
 
@@ -745,601 +774,41 @@ if $ARGS[0] = 'shower_kiss_home':
 	if will_cost <= pcs_willpwr:
 		act 'Remove her hands (<<will_cost>> Willpower)':
 			cla & *clr
-			minut += 5
-			pcs_horny += 10
-			KatjaQW['dom'] -= 1
-			katjaQW['horny'] -= 10
-			gs 'willpower', 'pay', 'resist'
-			gs 'stat'
-			'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
-			'You remove her hands and smile at her. You dismiss her and she shyly looks at the floor before leaving the bathroom.'
-
-			act 'Get out of the shower':
-				gs 'arousal', 'end'
-				gt 'KatjaHomeTalk'
-			end
-		end
-	else
-		act 'Remove her hands (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-	end	
-end
-
-if $ARGS[0] = 'homework':
-	*clr & cla
-	menu_off = 1
-	minut += 30
-	npc_rel['A14'] += 2
-	gs 'grades', 'homework', 'school', 'yes', 1, 1, 'A14'
-	lern += rand(2, 4)
-	gs 'exp_gain', 'intel', rand(0, 1) + rand(0, drugVars['mentats_dose'])
-	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
-	'For half an hour you and Katja pour over your books, you fully learn the lessons and pretty well understand the material.'
-
-	act 'Finish': gt 'KatjaHomeTalk'
-	act 'Leave the room': gt 'mey_home', 'start'
-end
-
-if $ARGS[0] = 'Sextalk':
-	'After talking for some time Katja looks at you thoughtfully while her head is turning completely red.'
-	if katjaQW['boy_block'] = 1:
-		kattalkrand = rand(3, 4)
-	else
-		kattalkrand = rand(0, 4)
-	end
-
-	if kattalkrand = 0:
-		if stat['bj'] > 0:
-			gs 'KatjaHomeTalk', 'bj_talk1'
-		else
-			if katjaQW['knows_BJ'] > 0:
-				'"<<$pcs_nickname>>, tell me, how are you at sucking dick?"'
-			else
-				'"<<$pcs_nickname>>, have you ever given a guy a blowjob?"'
-			end
-			act 'You''ve never given a blowjob':
-				*clr & cla
-				minut += 3
-				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
-				'You tell Katja that you have never given a blowjob to a guy. She admits that she hasn''t either. "Vicky talks about how good it is all the time, but I don''t know. Guys usually smell bad and I''m sure it would taste awful."'
-				act 'Continue talking':
-					minut += 5
-					if $loc = 'katja_dorm':
-						gt 'katja_dorm', 'talk'
-					else
-						gt 'KatjaHomeTalk'
-					end
-				end
-			end
-		end
-
-		act 'Tell Katja you are not into boys <br><font color="red">(blocks further contents with Katja and boys)</font>': gt 'KatjaHomeTalk',  'boy_no'
-
-	elseif kattalkrand = 1:
-		if katjaQW['knows_sex'] > 0:
-			'"<<$pcs_nickname>>, tell me. Have you ever fucked someone?"'
-		else
-			'"<<$pcs_nickname>>, have you ever had sex with a guy?"'
-		end
-
-		if stat['vaginal'] > 0:
-			act 'Talk about sex':
-				*clr & cla
-				minut += 3
-				katjaQW['horny'] += 5
-				katjaQW['knows_sex'] = 1
-				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
-				'You tell Katja about the times you''ve had sex and how it felt. She blushes and bites her lip.'
-				if katjaQW['pussy_sex'] > 0:
-					if npc_sex['A14'] > 0: katjaQW['QWstage'] = 6
-					'Katja also tells you a story of how she had sex with a boy she picked up as a one-night stand.'
-				end
-				act 'Continue talking':
-					minut += 5
-					if $loc = 'katja_dorm':
-						gt 'katja_dorm', 'talk'
-					else
-						gt 'KatjaHomeTalk'
-					end
-				end
-			end
-		else
-			act 'No':
-				*clr & cla
-				minut += 3
-				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
-				if katjaQW['pussy_sex'] = 0:
-					'You tell Katja that you''ve never had sex with a guy, and she admits that she''s also still a virgin. "That probably makes us the only non-nerds who haven''t had sex! Vicky does it all the time with Vanya. She won''t shut up about it!"'
-				else
-					if npc_sex['A14'] > 0: katjaQW['QWstage'] = 6
-					'You tell Katja that you''ve never had sex with a guy, and she is very surprised. "What you have never had sex with a guy? Even I have had that. I thought I was the last girl from school to lose my virginity. Vicky definitely make it seems like I was abnormal not finding somebody to fuck in school. She wouldn''t stop pushing to find a guy. It was so annoying."'
-				end
-
-				act 'Continue talking':
-					minut += 5
-					if $loc = 'katja_dorm':
-						gt 'katja_dorm', 'talk'
-					else
-						gt 'KatjaHomeTalk'
-					end
-				end
-			end
-		end
-
-		act 'Tell Katja you are not into boys <br><font color="red">(blocks further contents with Katja and boys)</font>': gt 'KatjaHomeTalk',  'boy_no'
-
-	elseif kattalkrand = 2:
-		if katjaQW['knows_anal'] > 0:
-			'"<<$pcs_nickname>>, what''s anal sex like?"'
-		else
-			'"<<$pcs_nickname>>, have you ever had a guy stick it in your ass?"'
-		end
-
-		if stat['anal'] > 0:
-			act 'Talk about anal':
-				*clr & cla
-				minut += 3
-				katjaQW['horny'] += 5
-				katjaQW['knows_anal'] = 1
-				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
-				'You tell Katja about the times you''ve had anal sex and what it feels like. She blushes and bites her lip.'
-				if katjaQW['anal_sex'] > 0:
-					if npc_sex['A14'] > 0: katjaQW['anal_quest'] = 3
-					'Katja also tells you a story of anal sex she had with a boy a boy you don''t know she picked up one night se went out.'
-				end
-
-				act 'Continue talking':
-					minut += 5
-					if $loc = 'katja_dorm':
-						gt 'katja_dorm', 'talk'
-					else
-						gt 'KatjaHomeTalk'
-					end
-				end
-			end
-		else
-			act 'You''ve never had anal sex':
-				*clr & cla
-				minut += 3
-				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
-				if katjaQW['anal_sex'] = 0:
-					'You tell Katja that you''ve never had anal sex. She says that she heard that a lot of girls in your class do, some more than others.'
-				else
-					if npc_sex['A14'] > 0: katjaQW['anal_quest'] = 3
-					'You tell Katja that you''ve never had anal sex. "You havn''t?" she asks rhetorically "It''s actually quite good. You should try it."'
-				end
-
-				act 'Continue talking':
-					minut += 5
-					if $loc = 'katja_dorm':
-						gt 'katja_dorm', 'talk'
-					else
-						gt 'KatjaHomeTalk'
-					end
-				end
-			end
-		end
-
-		act 'Tell Katja you are not into boys <br><font color="red">(blocks further contents with Katja and boys)</font>': gt 'KatjaHomeTalk',  'boy_no'
-
-	elseif kattalkrand = 3:
-		if katjaQW['knows_cuni'] > 0 or npc_sex['A14'] > 0:
-			'"<<$pcs_nickname>>, tell me how you lick pussy."'
-		else
-			'"<<$pcs_nickname>>, have you gone down on a girl?"'
-		end
-
-		if stat['cuni_give'] > 0:
-			act 'Talk about licking pussy':
-				*clr & cla
-				minut += 3
-				katjaQW['horny'] += 5
-				katjaQW['knows_cuni'] = 1
-				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
-				'You tell Katja about the times you''ve gone down on another girl and how it feels. She blushes and bites her lip.'
-				
-				if katjaQW['horny'] > 50 and katjaQW['slut'] >= 40 and rand(-30,30) < katjaQW['dom'] and npc_sex['A14'] > 0:
-					'Katja asks you to show her how you lick pussy.'
-
-					act 'Show her':
-						*clr & cla
-						katjaQW['horny'] = 0
-						katjaQW['slut'] += 1
-						katjaQW['dom'] += 2
-						if npc_sex['A14'] = 0: npc_sex['A14'] = 1 & girl += 1
-						gs 'stat'
-						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/sex/school/kuni2.jpg"></center>'
-						'You''re a little confused at first before you notice her pulling her panties off. Once she has them off, she opens her legs wide. "Go on, <<$pcs_nickname>>. Show me how you do it, please."'
-						'You pause, more in surprise than anything, but her glistening wet pussy is enough to convince you. You lean forward place your face between her legs and start licking.'
-						'You suck on her clit and slip your tongue inside of her, working her pussy for all you''re worth. She begins to moan loudly and buck her hips, grinding your face into her crotch. As she gets close to orgasm, she grabs your hair and holds your face against her pussy, rubbing herself against you as much as you are licking her, leaving your face coated in her juices.'
-						'Her orgasm hits her hard, leaving her unable to talk as her body spasms. Once her orgasm passes, you lick her clean of all her pussy juices, making sure not to miss a single spot. When you look up at Katja, she has a confident smile on her face. "Well aren''t you just a good little girl?" She then kisses you deeply before you start to lean back and spread your legs, but she''s already shaking her head.'
-						'"Sorry <<$pcs_nickname>>, maybe next time. We need to finish our homework," she says sweetly. You pause before nodding in understanding. You watch the new confident look intensify on her face as she smiles and the two of you finish your homework.'
-
-						gs 'arousal', 'cuni_give', 15, 'sub', 'lesbian'
-						gs 'arousal', 'end'
-						gs 'stat'
-
-						act 'Continue talking':
-							if $loc = 'katja_dorm':
-								gt 'katja_dorm', 'talk'
-							else
-								gt 'KatjaHomeTalk'
-							end
-						end
-					end
-					act 'Ignore her':
-						minut += 5
-						if $loc = 'katja_dorm':
-							gt 'katja_dorm', 'talk'
-						else
-							gt 'KatjaHomeTalk'
-						end
-					end
-				else
-					act 'Continue talking':
-						minut += 5
-						if $loc = 'katja_dorm':
-							gt 'katja_dorm', 'talk'
-						else
-							gt 'KatjaHomeTalk'
-						end
-					end
-				end
-			end
-		else
-			act 'No':
-				*clr & cla
-				minut += 3
-				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
-				if katjaQW['simultanous_girls'] > 0:
-					'"I''ve never gone down on a girl before," you say and Katja looks quite surprised. "Never? Is it something that you have thought about?" she asks in a curious tone.'
-					act 'I''ve thought about it':
-						cla
-						minut += 3
-						katjaQW['horny'] += 20
-						'"I''ve thought about it, alright it''s just the situation never came up" you tell Katja. "So it is something you want to try" Katja asks.'
-						if katjaQW['horny'] >= 50 and katjaQW['QWstage'] > 2 and katjaQW['slut'] >= 20:
-							'"So what would you do if that situation was to come up. For example right now?" Katja asks in a seductive voice.'
-							act 'See what Katja does': gt 'katjaHomeTalk', 'hornykiss'
-							act 'Stop her from doing anything':
-								cla
-								gs 'npc_relationship', 'modify', 'A14', 'dislike'
-								'"It would definitely not happen right now. Rigth?" you say a little unsure of how Katja will react.'
-								'"Of course not. Nothing happens here you don''t want to," she says clearly looking disappointed. She quickly changes the subject.'
-								act 'Continue talking':
-									minut += 5
-									if $loc = 'katja_dorm':
-										gt 'katja_dorm', 'talk'
-									else
-										gt 'KatjaHomeTalk'
-									end
-								end							
-							end
-						else
-							'"Well. I think that you should find a chance to try it. It is quite good" Katja says with a wink, but then changes the subject.'
-							act 'Continue talking':
-								minut += 5
-								if $loc = 'katja_dorm':
-									gt 'katja_dorm', 'talk'
-								else
-									gt 'KatjaHomeTalk'
-								end
-							end
-						end
-					end
-					act 'I''m not into girls':
-						cla
-						minut += 3
-						gs 'npc_relationship', 'modify', 'A14', 'dislike'
-						gs 'stat'
-						'"I''m not into girls" you tell Katja. "Really?" Katja says surprised "Too bad for you. You are really missing out on something. Making love to girls is really something, they are '+iif(katjaQW['knows_sex'] +katjaQW['knows_BJ'] + katjaQW['knows_anal'] > 0, 'much more tender than boys', 'so tender')+'."'
-						'"I really think that you should give it a thought" she continues seemingly a little disappointed in your response. She then changes the subject.'
-						act 'Continue talking':
-							minut += 5
-							if $loc = 'katja_dorm':
-								gt 'katja_dorm', 'talk'
-							else
-								gt 'KatjaHomeTalk'
-							end
-						end
-					end
-				else
-					'You tell Katja that you''ve never gone down on a girl. She seems a little surprised and you get the feeling that this was not what she wanted to hear.'
-				end
-				act 'Continue talking':
-					minut += 5
-					if $loc = 'katja_dorm':
-						gt 'katja_dorm', 'talk'
-					else
-						gt 'KatjaHomeTalk'
-					end
-				end
-			end
-		end
-	elseif kattalkrand = 4:
-		if katjaQW['knows_masturbation'] > 0:
-			'"<<$pcs_nickname>>, tell me how you masturbate."'
-		else
-			'"<<$pcs_nickname>>, do you masturbate?"'
-		end
-
-		if stat['mast'] > 0:
-			act 'Talk about masturbation':
-				*clr & cla
-				minut += 3
-				katjaQW['horny'] += 5
-				katjaQW['knows_masturbation'] = 1
-				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
-				'You tell Katja how you masturbate in the bathroom and she blushes and bites her lip.'
-
-				if katjaQW['masturbates'] = 0:
-					act 'Continue talking':
-						minut += 5
-						if $loc = 'katja_dorm':
-							gt 'katja_dorm', 'talk'
-						else
-							gt 'KatjaHomeTalk'
-						end
-					end
-				else
-					act 'Katja responds':
-						*clr & cla
-						minut += 5
-						katjaQW['horny'] += 10
-						gs 'stat'
-						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/sex/school/mastr.jpg"></center>'
-						'Katja tells you she also masturbates, right here in this room, fondling herself between her legs.'
-
-						act 'Continue talking':
-							minut += 5
-							if $loc = 'katja_dorm':
-								gt 'katja_dorm', 'talk'
-							else
-								gt 'KatjaHomeTalk'
-							end
-						end
-					end
-				end
-			end
-
-			if stat['self_fisting'] > 0:
-				act 'Tell her how you pushed your hand into your pussy':
-					*clr & cla
-					minut += 3
-					katjaQW['horny'] += 10
-
-					gs 'stat'
-					'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
-					'You tell Katja how you '+iif(stat['self_fisting'] = 1, 'once', 'sometimes')+' put your whole fist into your pussy, and how it felt doing it.'
-					'Katja looks '+iif(katjaQW['knows_self_fisting'] = 0, 'completely shocked, but', 'excited, and')+' her head turns even redder as she bites her lip.'
-
-					if katjaQW['knows_self_fisting'] = 0: katjaQW['knows_self_fisting'] = 1
-
-					act 'Continue talking':
-						if katjaQW['fisted_vag'] = 0 and npc_vag['A14'] > 3 and katjaQW['slut'] >= 70 and katjaQW['horny'] >= 50 and npc_sex['A14'] > 0:
-							gt 'katjaHomeTalk', 'fisting_ask'
-						else
-							minut += 5
-							if $loc = 'katja_dorm':
-								gt 'katja_dorm', 'talk'
-							else
-								gt 'KatjaHomeTalk'
-							end
-						end
-					end
-				end
-			end
-
-			if stat['self_fisting_anal'] > 0:
-				act 'Tell her how you fisted your ass':
-					*clr & cla
-					minut += 3
-					katjaQW['horny'] += 10
-
-					if katjaQW['knows_self_fisting_anal'] = 0: katjaQW['knows_self_fisting_anal'] = 1
-
-					gs 'stat'
-					'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
-					'You tell Katja how you masturbate anally and even managed to stretch it so much that you could shove your fist into it.'
-					'She blushes and bites her lip.'
-
-					act 'Continue talking':
-						minut += 5
-						if $loc = 'katja_dorm':
-							gt 'katja_dorm', 'talk'
-						else
-							gt 'KatjaHomeTalk'
-						end
-					end
-				end
-			end
-		else
-			act 'You''ve never masturbated':
-				*clr & cla
-				minut += 3
-				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
-				if katjaQW['masturbates'] > 0:
-					'"What!!" Katja says surprised. "You never masturbated. Why? I thought that everybody does it, even I do it and I''m usually the last to do anything" she continues'
-					'You then try to explain why you have never masturbated.'
-				else
-					'You tell Katja that you''ve never masturbated. She seems surprised at your answer.'
-				end
-				act 'Continue talking':
-					minut += 5
-					if $loc = 'katja_dorm':
-						gt 'katja_dorm', 'talk'
-					else
-						gt 'KatjaHomeTalk'
-					end
-				end
-			end
-		end
-	end
-
-	act 'Refuse to talk about such topics':
-		cla
-		minut += 1
-		gs 'stat'
-		'You refuse to talk about such topics with her and she looks down in confusion and mumbles. "Sorry, <<$pcs_nickname>>, I didn''t mean to pry."'
-
-		act 'Continue talking':
-			minut += 5
-			if $loc = 'katja_dorm':
-				gt 'katja_dorm', 'talk'
-			else
-				gt 'KatjaHomeTalk'
-			end
-		end
-	end
-end
-
-if $ARGS[0] = 'bj_talk1':
-	minut += 3
-	if katjaQW['knows_BJ'] > 0:
-		'"<<$pcs_nickname>>!" she says, a sparkle in her eye. "Tell me what it''s like to suck dick again."'
-	elseif katjaQW['knows_BJ']= 0:
-		'"<<$pcs_nickname>>, have you ever given a guy a blowjob?"'
-	end
-
-	if stat['bj'] > 0:
-		if katjaQW['knows_BJ'] = 0:
-			act 'No (lie)':
-				cla & *clr
-				minut += 3		
-				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
-				'"No," you shake your head before shamelessly lying through your teeth. "I''ve never given a blowjob before."'
-				'"Oh." She sits back, looking disappointed for some reason.'
-				act 'Continue':
-					minut += 5
-					if $loc = 'katja_dorm':
-						gt 'katja_dorm', 'talk'
-					else
-						gt 'KatjaHomeTalk'
-					end
-				end
-			end
-			act'Yes':
-				minut += 3
-				cla & *clr
-				katjaQW['horny'] += 5
-				katjaQW['knows_BJ'] = 1
-				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
-				'"Yeah. I''ve given a few," you admit.'
-				'"What''s it like?" Katja asks, eyes wide with excitement.'
-				gs 'KatjaHomeTalk', 'bj_talk2'
-			end
-		elseif stat['bj'] > 0:
-			minut += 3
-			katjaQW['horny'] += 5
-			gs 'KatjaHomeTalk', 'bj_talk2'
-		end
-	else
-		act 'No':
-			cla & *clr
-			minut += 3
-			gs 'stat'
-			'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
-			'"No," you shake your head. "I''ve never given a blowjob before."'
-			'"Oh." She sits back, looking disappointed for some reason. "Guess we''re both clueless then, huh?"'
-			act 'Continue':
-				minut += 5
-				if $loc = 'katja_dorm':
-					gt 'katja_dorm', 'talk'
-				else
-					gt 'KatjaHomeTalk'
-				end
-			end
-		end
-		!!act'I''ve given a few (lie)':
-	end
-end
-
-if $ARGS[0] = 'bj_talk2':
-	act'It tastes funny':
-		cla & *nl
-		'"It tastes funny," you wrinkle your nose. "It''s like, kinda salty? But also sort of... musty? I don''t think I mind the act itself that much, but dick has a weird flavor."'
-		'Katja seems taken aback, almost disappointed. You guess this isn''t the answer she was hoping for.'
-		act 'Continue':
-			minut += 5
-			if $loc = 'katja_dorm':
-				gt 'katja_dorm', 'talk'
-			else
-				gt 'KatjaHomeTalk'
-			end
-		end
-	end
-	
-	act'It''s fun':
-		cla & *nl
-		katjaQW['horny'] += 5
-		'"It''s fun!" you grin. "I''m not really sure what it is, but something about having a dick in your mouth is really entertaining. It''s like, totally alive! And you can feel it making all these tiny movements when it''s on your tongue. I really like giving head."'
-		'Katja hangs on your every word, nodding excitedly for you to keep describing your experiences with oral sex to her.'
-		act 'Continue':
-			minut += 5
-			if $loc = 'katja_dorm':
-				gt 'katja_dorm', 'talk'
-			else
-				gt 'KatjaHomeTalk'
-			end
-		end
-	end
-	
-	act'It''s whatever':
-		cla & *nl
-		'"I don''t mind doing it but I don''t love it either," you say. "Dick doesn''t really taste like anything if it''s clean. Kinda salty if it isn''t. I don''t know. It''s whatever I guess."'
-		'You shrug.'
-		'Katja seems taken aback, almost disappointed. You guess this isn''t the answer she was hoping for.'
-		act 'Continue':
-			minut += 5
-			if $loc = 'katja_dorm':
-				gt 'katja_dorm', 'talk'
-			else
-				gt 'KatjaHomeTalk'
-			end
-		end
-	end
-	
-	act'It''s boring':
-		cla & *nl
-		'"It''s boring," you roll your eyes. "You have to keep sucking the whole time and after a while, my jaw just starts to ache with the motion. It''s a dick in your mouth, I don''t know what to tell you."'
-		'Katja seems taken aback, looking almost worried. You guess you just shattered some impressions she had about giving head.'
-		act 'Continue':
-			minut += 5
-			if $loc = 'katja_dorm':
-				gt 'katja_dorm', 'talk'
-			else
-				gt 'KatjaHomeTalk'
-			end
-		end
-	end
-	
-	act'It turns me on':
-		cla & *nl
-		katjaQW['horny'] += 5
-		'"It turns me on so much," you admit, biting your lip in a lusty smile. "When someone''s in your mouth, you can make them feel <i>really</i> good. And they''ll respond to what you do. If you take their whole length, they''ll squirm. If you lick the head, it''ll twitch under your touch. Just knowing you can make someone else feel that way... Ugh, just <i>thinking</i> about it gets me wet!"'
-		'Katja hangs on your every word, nodding along with wide eyes as you describe what it is you love so much about giving head. A faint blush also comes to her cheeks and you notice her unconsciously rubbing her thighs together.'
-		act 'Continue':
-			minut += 5
-			if $loc = 'katja_dorm':
-				gt 'katja_dorm', 'talk'
-			else
+			minut += 5
+			pcs_horny += 10
+			KatjaQW['dom'] -= 1
+			katjaQW['horny'] -= 10
+			gs 'willpower', 'pay', 'resist'
+			gs 'stat'
+			'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+			'You remove her hands and smile at her. You dismiss her and she shyly looks at the floor before leaving the bathroom.'
+
+			act 'Get out of the shower':
+				gs 'arousal', 'end'
 				gt 'KatjaHomeTalk'
 			end
 		end
+	else
+		act 'Remove her hands (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 	end	
 end
 
+if $ARGS[0] = 'homework':
+	*clr & cla
+	menu_off = 1
+	minut += 30
+	npc_rel['A14'] += 2
+	gs 'grades', 'homework', 'school', 'yes', 1, 1, 'A14'
+	lern += rand(2, 4)
+	gs 'exp_gain', 'intel', rand(0, 1) + rand(0, drugVars['mentats_dose'])
+	gs 'stat'
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+	'For half an hour you and Katja pour over your books, you fully learn the lessons and pretty well understand the material.'
+
+	act 'Finish': gt 'KatjaHomeTalk'
+	act 'Leave the room': gt 'mey_home', 'start'
+end
+
 if $ARGS[0] = 'hornykiss':
 	'Katja brings her face so close to yours that you can feel her hot breath on your skin.'
 
@@ -1902,7 +1371,7 @@ if $ARGS[0] = 'Marcus_answer_talk':
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
 	'You tell Katja that you''ve talked with Marcus and he agreed. She looks at you excitedly. "So when do we do it?"'
 	'"He agreed to come over when I call him, so we can call him right now, or wait for another time," you answer.'
-	if week < 6 and  (locat['Vicky'] = 10 or locat['Vicky'] = 11) and (katjaQW['horny']+katjaQW['slut']) > 100:
+	if week < 6 and (locat['Vicky'] ! 8 and locat['Vicky'] ! 9 and locat['Vicky'] ! 12 and locat['Vicky'] ! 13) and (katjaQW['horny']+katjaQW['slut']) > 100:
 		'"Okay. Let''s call him right now!" she squeals, her face completely red.'
 		act 'Call Marcus': gt 'katja_sex', 'marcus_wait'
 	elseif (katjaQW['horny'] + katjaQW['slut']) <= 100:
@@ -2128,5 +1597,404 @@ if $ARGS[0] = 'go_to_park':
 	gt 'placer'
 end
 
+if $ARGS[0] = 'Artem_talk':
+	katjaQW['knows_artem_is_boyfreind'] = 1
+	minut += 3
+	gs 'stat'
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+	'"So i''ve heard from Lizveta that you are dating Artem. Is that true?" Katja almost jumps at you with the question.  "Wait, Lizvetta is already spreading rumors about that. How does she knows it?" you say.'
+	'"So it''s true, of course Lizvetta knows, you need to be extremely careful to keep something like that from her" Katja responds.'
+	if katjaQw['boy_block'] = 1:
+		gs 'npc_relationship', 'A14', 'dislike'
+		'"But you told me you do not like boys? Who come you are suddenly dating one?" Katja ask clearly a little hurt.'
+		act 'Tell her it was something that surprised you too':
+			cla
+			'"I''m surprised about this too. I thought that I was only attracted to girls, but then hanging out with Artem changed something. He was so cute when he asked me for a data that I could not says no." you explain.'
+			'"Then he was very romantic on the dates and I fell for him. Turns out that boys can be gentle in bed after all." you continue.'
+		end
+		act 'Tell her that Artem is different':
+			cla
+			'"Artem is not like the other boys, he is gentle mare like one of us girls" you try to explain to Katja "He still have a dick between his legs I assume" Katja says in a very direct tone.'
+			'"Yes he does, and I found out it is not the dick itself that discusted me, it is actaully quite nice to play with. It is the ash holes most dicks are attached to the repulses me" you answer and the last comment gets a small laugh out of Katja.'
+		end
+		act 'Tell her that you lied':
+			cla
+			'"I''m sorry Katja, but I was not completely honest. I do like boys, I just didn''t want to ruin what we have together by having to talk about boys" you explain.'
+			'"You should have trusted me, told me the real reason, then I would of course not have asked you about boys" she says. "I''m really sorry" you repeat.'
+			act 'Katja continues': gt 'KatjaHomeTalk', 'Artem_talk2'
+		end
+	else
+		'"You could have told me you were planning to date him, so I didn''t have to hear it through Lizvetta" Katja say in a mock hurt voice.' 
+		'"I didn''t want to say anything before I was certain, and now you did not even give me the chance to tell you before umping on me with questions" you answer.'
+		act 'Katja continues': gt 'KatjaHomeTalk', 'Artem_talk2'
+	end
+end
+
+if $ARGS[0] = 'Artem_talk2':
+	minut += 7
+	gs 'stat'
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+	if (katjaQW['QWstage'] >= 4 or katjaQW['slut'] >= 50 or katjaQW['pussy_sex'] > 0) and npc_sex['A14'] > 0:
+		'"Never mind, the important question is how is he in bed? Is he a good lower? Does he make you cum?" Katja bombards you with question about Artem''s sexual skills.'
+		'After telling her everything about you and Artem''s sex life  for several minutes Katja finally comes to the question that is really occupying her mind.'
+		if katjaQW['QWstage'] >= 6:
+			if katjaQw['boy_block'] = 0:
+				'"So. I assume that this will end us having sex with other boys" Katja says "But what about us, will it also mean that we can''t play together anymore" she asks'
+				'"Yes I wont have sex with other boys behind his back, but I''m sure he does not mind me having some fun with girls" you answers.'
+			else
+				'"Does this mean that we can''t play together anymore" she asks. "I''m sure he does not mind me having som fun with girls" you answers.'
+			end
+			'She then after a moment of hesitation continues "So do you think he is up for a hot redhead joining the two of you in bed?"'
+		else
+			'"Does this mean that we can''t play together anymore" she asks. "I''m sure he does not mind me having some fun with girls" you answers.'
+			if katjaQW['pussy_sex'] > 0:
+				if katjaQW['QWstage'] < 6: katjaQW['QWstage'] = 6
+				'She then after a moment of hesitation continues "So do you think he is up for a hot redhead joining the two of you in bed?"'
+			else
+				if katjaQW['QWstage'] >= 4:
+					'She then after a moment of hesitation continues "What about me trying to have sex with a boy? I understand that having Marcus join us wont be an option anymore, but do you think you could set it up such that Artem is my first boy?"'
+				else
+					'She then after a  very long moment of hesitation continues "I''m somewhat jealous. Now you are having sex with a boy. It is.... it is something I would also like to try...."'
+					'She is getting very red in her head and after a long paus she ask "Do you... Do you think.... Do you think that I could join you and have Artem be my first boy?"'
+				end
+			end
+		end
+		act 'Agree to set up a threesome with Artem': katjaQw['boy_block'] = 1 & gt 'KatjaHomeTalk', 'artem_threesome_planning'
+		act 'Tell Katja that you don''t want to share Artem':
+			*clr & cla
+			if katjaQW['QWstage'] = 5: katjaQW['QWstage'] = 4
+			katjaQw['boy_block'] = 1
+			minut += 2
+			gs 'stat'
+			'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+			'"I''m sorry, but I want to keep him for myself. I know that maybe selfish, but I don''t think that I''m ready to share my boyfriend with other girls." you tell Katja.'
+			'"No. Problem I understand that" Katja says with a small hint of disappointment "Let me know if you change your mind"'
+			act 'Talk about something else':
+				if $loc = 'katja_dorm':
+					gt 'katja_dorm', 'talk'
+				else
+					gt 'KatjaHomeTalk'
+				end
+			end
+			if $loc = 'katja_dorm':
+				act 'Stop talking': gt 'katja_dorm', 'start'
+			else
+				act 'Leave the room': gt 'mey_home', 'start'
+			end	
+		end
+	else
+		katjaQw['boy_block'] = 1
+		'"Does this mean that we can''t play together anymore" she asks. "I''m sure he does not mind me having some fun with girls" you answers.'
+		act 'Talk about something else':
+			if $loc = 'katja_dorm':
+				gt 'katja_dorm', 'talk'
+			else
+				gt 'KatjaHomeTalk'
+			end
+		end
+		if $loc = 'katja_dorm':
+			act 'Stop talking': gt 'katja_dorm', 'start'
+		else
+			act 'Leave the room': gt 'mey_home', 'start'
+		end	
+	end
+end
+
+if $ARGS[0] = 'artem_sex_discussion':
+	minut += 2
+	gs 'stat'
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+	if katjaQW['QWstage'] >= 6:
+		'"I remember that you asked if you could join me an Artem in a threesome, and I have decided that it would be fine if you still want to" you tell Katja.'
+	else
+		'"So. I know that you have wanted to try to have sex with a boy for a while, and I have decided that you could join me and Artem in a threesome if you like" you tell Katja.'
+	end
+	'Katja''s face lights up like it was Christmas, and can barely contain her excitement. "Yes I would very much like this, when do we do it?" sha ask.'
+	act 'Tell Katja you plan': gt 'KatjaHomeTalk', 'artem_threesome_planning'
+end
+
+
+if $ARGS[0] = 'artem_threesome_planning':
+	minut += 4
+	katjaQW['hormy'] += rand(5,20)
+	artemQW['katja_threesome']  = 1
+	gs 'stat'
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+	'"Okay. I think it would be best if we surprise him, that is that you seduce him while I''m there" you tell Katja.'
+	if katjaQW['QWstage'] < 5 and katjaQW['pussy_sex'] = 0:
+		'"How do I do that? I have never seduced a boy before" Katja says. "Just try to act slutty around him, make him look at your nice body, You will know you got him if he can''t look away, boys are easy" you explain.'
+		'"Okay" Katja say not completely convinced "But I can''t do that at a public place."'
+	else
+		'"Sure I can act slutty and get him in my claws" Katja says "but it need to be a private place, I don''t think he is the type of guy who wont freeze up when hit on in public."'
+	end
+	'"Yeah, it need to be just the 3 of us, else he will just panic. My place is no good and his parents are hom most of the time I''m there" you answer.'
+	'"Maybe we could do it here? Tamara works until late and Vicky usually hangs out with Vanya elsewhere when she she is not at cheearleading practice, so the afternoons here are free." Katja says.'
+	'"That a good idea", you say "but how do we get him to come here without expecting something?" you ask. "I don''t know, are there any activities we could do together that he  could join..... maybe we could do homework together+"  Katja suggest.'
+	'"Yes that it is, next time I''m going home from school with Artem you''lll come and interrupt us, claiming that I promised you to do homework together. I''ll then suggest that we do it together. That way he wont expect anything" you say exited.'
+	'"That''s brilliant" Katja says. "I just have to work on my seduction skills. Looking forward to it."'
+	if katjaQW['QWstage'] < 5: katjaQW['QWstage'] = 5
+	act 'Talk about something else':
+		if $loc = 'katja_dorm':
+			gt 'katja_dorm', 'talk'
+		else
+			gt 'KatjaHomeTalk'
+		end
+	end
+	if $loc = 'katja_dorm':
+		act 'Stop talking': gt 'katja_dorm', 'start'
+	else
+		act 'Leave the room': gt 'mey_home', 'start'
+	end
+end
+
+if $ARGS[0] = 'Artem_break_up_talk':
+	katjaQW['knows_artem_is_boyfreind'] = 2
+	minut += 2
+	katjaQW['hormy'] += rand(5,20)
+	gs 'stat'
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+	'"So how are you and Artem?" Katja ask in a tone that indicates she know you have broken up.'
+	act '"I''m heartbroken"':
+		cla & *nl
+		minut += 6
+		katjaQW['hormy'] = min(20,katjaQW['hormy'])
+		if katjaQW['marcus_pussy'] > 0: katjaQW['Marcus_day'] = daystart
+		gs 'stat'
+		'"We''re..." you start but a lump in your throat cause you to immediately choke up. Tears blur your vision and you turn away while rubbing your wrist across your eyes, face flushing with embarrassment, shame, and sadness all at once.'
+		'"We broke up," you manage to force out, still not looking at Katja. "I... I think this might be the worst thing that''s ever happened to me. I ruined everything. I miss him every day and..." You finally turn to face her. "I think it broke my heart..."'
+		'"Come here you poor thing" Katja says and moves close and hugs you.'
+		*nl
+		'For a couple of minutes you just sit there slightly crying into Katja''s bosom. She gently reassures you that things will be better soon, and you will always have her to lean on in hard times.'
+		'After some time you stop crying and you clear your eyes and you get back to discussing other stuff.'
+		act 'Talk about something else':
+			if $loc = 'katja_dorm':
+				gt 'katja_dorm', 'talk'
+			else
+				gt 'KatjaHomeTalk'
+			end
+		end
+		if $loc = 'katja_dorm':
+			act 'Stop talking': gt 'katja_dorm', 'start'
+		else
+			act 'Leave the room': gt 'mey_home', 'start'
+		end
+	end
+
+	act 'Tell you are angry about how treated you':
+		cla & *nl
+		minut += 3
+		'"I know we''re young and maybe we don''t know enough to know what love is but there was something more than just friendship or kissing there. I really thought I had found that special person I could spend the rest of my life with but he''s just a jerk like the rest of them. I can''t believe a dork like him broke my heart and worse still I don''t think he gives two shits about doing it. Fuck" You tell Katja'
+		'"Shit I''m so sorry to hear that. Nobody should treat you bad. Comer here" Katja says and open her arms and pulls you in for a hug.'
+		'"I really thought Artem would be different. But turns out that even a nerd turns into one ot the idiots that call them selves the cool boys, when he gets the attention of pretty women." she tells you while wou are still in her embrace.'
+		'"Don''t vory, you can find much better boys than him. If that''s what you want+" Katja says after she has let go of her hug. You can''t quite place what she means by her last comment.'
+		act 'Talk about something else':
+			if $loc = 'katja_dorm':
+				gt 'katja_dorm', 'talk'
+			else
+				gt 'KatjaHomeTalk'
+			end
+		end
+		if $loc = 'katja_dorm':
+			act 'Stop talking': gt 'katja_dorm', 'start'
+		else
+			act 'Leave the room': gt 'mey_home', 'start'
+		end
+	end
+	act 'Tell her that you decided that you could do better':
+		cla & *nl
+		minut += 2
+		katjaQW['hormy'] -= rand(10,20)
+		if katjaQW['marcus_pussy'] > 0: katjaQW['Marcus_day'] = daystart
+		gs 'npc_relationship', 'modify', 'A14', 'dislike'
+		gs 'stat'
+		'"Artem is a sweatheart and there might not be anyone nicer I could have gone out with, but I always felt like I was just settling for the easy choice. I''m a pretty girl, I could be dating anyone in that school and I''m going with him? I hate to hurt him like I did when I ended it but I was always out of his league and it constantly felt like everyone knew it. And sure I could just ignore them but he knew it too and that I couldn''t ignore. I hope he finds a nice homely girl who will make him happy. I really do, he deserves to be happy" you tell Katja.'
+		'She looks a little shocked and takes a while before answering. "So looks and status is all? I didn''t know that I was friends with Bella. Wonder when I wont live up to your standards" Katja says sounding quite disapproving.'
+		'"It''s not like that Katja, nobody can compare with you. I''m not leaving you. It''s just with boys, I think that I need to try something more, something exiting and Artem is not that" you assure Katja.' 
+		'She does not look completely convinced by let it go and you turn to discuss other things.'
+		act 'Talk about something else':
+			if $loc = 'katja_dorm':
+				gt 'katja_dorm', 'talk'
+			else
+				gt 'KatjaHomeTalk'
+			end
+		end
+		if $loc = 'katja_dorm':
+			act 'Stop talking': gt 'katja_dorm', 'start'
+		else
+			act 'Leave the room': gt 'mey_home', 'start'
+		end
+	end
+
+	act 'Tell her you are sad because it had to end':
+		cla & *nl
+		minut += 6
+		katjaQW['hormy'] = min(40,katjaQW['hormy'])
+		gs 'stat'
+		'"We''re... not together anymore," you admit, feeling a pang in your chest. "Looking back, I don''t think there was any real way to make it last. We weren''t good for each other. But that doesn''t mean I''m happy about breaking up. I miss him. And I miss the good times we had together. And I''m sad that we probably won''t have anything like that together again."'
+		'"I''m truly sorry to hear that. I understand you. Come here" Katja say and open her arms for you.  You lay you head on her bosom and she hugs her while she continue. "There will be others. I understand it feels like you never will experince love like that again. But I can promise you that you will. We are still young and beautiful. The world is still open for us. Give it time and everything will be alright."'
+		'You stay in her warm embrace for a couple of minutes before getting you self together and you start discussing other matters.' 
+		act 'Talk about something else':
+			if $loc = 'katja_dorm':
+				gt 'katja_dorm', 'talk'
+			else
+				gt 'KatjaHomeTalk'
+			end
+		end
+		if $loc = 'katja_dorm':
+			act 'Stop talking': gt 'katja_dorm', 'start'
+		else
+			act 'Leave the room': gt 'mey_home', 'start'
+		end
+	end
+
+	act 'Tell her that it was for the best ending it':
+		cla & *nl
+		minut += 3
+		gs 'stat'
+		'"We''re not together anymore," you sigh. "But it''s probably for the best."'
+		'Katja''s looks at you with both concern and skepticism, the latter seemingly a worry that you''re just trying to fool yourself.'
+		'"Really," you add quickly, trying to quell her thoughts. "We weren''t good for each other. If I really think about it, I can''t imagine a future where the two of us stayed together forever. It was always going to end with us breaking up. Better to do it now before it gets too painful and too much time is wasted for the both of us."'
+		'"Okay....." Katja says still not sounding really convinced. "As long as you are fine with it I suppose it was for the best. I did like Artem though. But there are other boys out there. '+iif(katjaQW['QWstage'] >= 6, 'Maybe even other we could trhy together?', 'You will be fine')+'" she ends in a more cheerful note.'
+		act 'Talk about something else':
+			if $loc = 'katja_dorm':
+				gt 'katja_dorm', 'talk'
+			else
+				gt 'KatjaHomeTalk'
+			end
+		end
+		if $loc = 'katja_dorm':
+			act 'Stop talking': gt 'katja_dorm', 'start'
+		else
+			act 'Leave the room': gt 'mey_home', 'start'
+		end
+	end	
+	
+	act 'Tell her you got bored of Artem':
+		cla & *nl
+		minut += 3
+		'"Honestly?" you say. "I got bored. He''s so... <i>plain.</i> I want a boy who can bring me excitement. At first, just knowing he liked me back was enough to bring that thrill. But the more we were together, the more all he would do is play video games and study and read. Talk about boring."'
+		'"Well reading and studying is not Boring!" Katja says a little hurt, "But I can understand that if it is all you do then yes it is a boring life. No parties? No dancing? Life without those do suck" she continues in a lighter mode.'
+		if katjaQW['QWstage'] >= 6:
+			katjaQW['hormy'] += rand(10,30)
+			'"Well there are plenty of other hot guys to fool around with, so I can definitely understand settling with one is boring. We are still smoking hot, we will find other goys to amuse us" she says sounding a little aroused.'
+		else
+			katjaQW['hormy'] += rand(5,15)
+			'"There ara plenty of other guys around, so'+iif(pcs_hotcat > 6, ' with your gorgeous looks ', ' ')+'you will find somebody else" Katja continues. You can''t quite get her tone. Is it a hint of jealousy you detect, and if so. Jealous of who? You or the boys she is mentions.'
+		end
+		gs 'stat'
+		act 'Talk about something else':
+			if katjaQW['horny'] > rand(70,100):
+				if katjaQW['QWstage'] > 2:
+					gt 'KatjaHomeTalk', 'hornykiss'
+				else
+					gt 'KatjaHomeTalk', 'tender_kiss'
+				end
+			else
+				if $loc = 'katja_dorm':
+					gt 'katja_dorm', 'talk'
+				else
+					gt 'KatjaHomeTalk'
+				end
+			end
+		end
+		if $loc = 'katja_dorm':
+			act 'Stop talking': gt 'katja_dorm', 'start'
+		else
+			act 'Leave the room': gt 'mey_home', 'start'
+		end
+	end
+
+	act 'Tell her you felt Artem was holding you back':
+		cla & *nl
+		minut +=3
+		'"He was holding me back," you roll your eyes. "I can do so much better than him. He''s not exciting, he doesn''t have any ambition, he just plays video games and reads all day. I want someone better. I want someone who makes <i>me</i> better. Artem would''ve been nothing but dead weight for me."'
+		'"Well reading isn''t boring. But I can understand that if it is all you do together then it''s no fun. No parties? No dancing? Life without those do suck" Katja says '
+		if katjaQW['QWstage'] >= 6:
+			katjaQW['hormy'] += rand(10,30)
+			'"Well there are plenty of other hot guys to fool around with, so I can definitely understand you want to move on. We are still smoking hot, we will find other goys to amuse us" she says sounding a little aroused.'
+		else
+			katjaQW['hormy'] += rand(5,15)
+			'"There ara plenty of other guys around, so'+iif(pcs_hotcat > 6, ' with your gorgeous looks ', ' ')+'you will find somebody else" Katja continues. You can''t quite get her tone. Is it a hint of jealousy you detect, and if so. Jealous of who? You or the boys she is mentions.'
+		end
+		gs 'stat'
+		act 'Talk about something else':
+			if katjaQW['horny'] > rand(70,100):
+				if katjaQW['QWstage'] > 2:
+					gt 'KatjaHomeTalk', 'hornykiss'
+				else
+					gt 'KatjaHomeTalk', 'tender_kiss'
+				end
+			else
+				if $loc = 'katja_dorm':
+					gt 'katja_dorm', 'talk'
+				else
+					gt 'KatjaHomeTalk'
+				end
+			end
+		end
+		if $loc = 'katja_dorm':
+			act 'Stop talking': gt 'katja_dorm', 'start'
+		else
+			act 'Leave the room': gt 'mey_home', 'start'
+		end		
+	end
+
+	act 'Tell you are glad you ditched the sorry looser':
+		cla & *nl
+		minut += 6
+		katjaQW['hormy'] = -rand(20,30)
+		if katjaQW['marcus_pussy'] > 0: katjaQW['Marcus_day'] = daystart
+		gs 'npc_relationship', 'modify', 'A14', 'hate'
+		gs 'stat'
+		'"Artem! I ditched that sorry *loser, I don''t understand why i kept that nerd around for so long. Totally beneath my standards" you tell her.'
+		'Katja looks at you completely shocked "Okay so I''m talking to Bella or Lena. That is no way to describe a nice guy like Artem.. You are channeling the worst girls in school. Sure if you needed to break up with him fine, but don''t make it his fault when I can clearly her that it is yours" she say sounding quite angry.'
+		'"That''s not what I meant, it just that Artem does not live up to the the standards I have for ..." you try to explain but before you can finish Katja interrupts you. "So when will I fal to live up to the standards of the Princess of Pavlovsk? You are sounding like the stupid bitches at school" she almost shout at you.'
+		'You get the feeling that nothing you can say right now will make her see your side, so to just say "I''m sorry". Katja doesn''t says anything and for a couple of minutes she just ignores you, before returning to talk about other things.'
+		act 'Talk about something else':
+			if $loc = 'katja_dorm':
+				gt 'katja_dorm', 'talk'
+			else
+				gt 'KatjaHomeTalk'
+			end
+		end
+		if $loc = 'katja_dorm':
+			act 'Stop talking': gt 'katja_dorm', 'start'
+		else
+			act 'Leave the room': gt 'mey_home', 'start'
+		end
+	end
+
+	act 'You cheated on him':
+		cla & *nl
+		minut += 3
+		katjaQW['hormy'] += rand(5,15)
+		'"The truth is... I cheated on him," you confess. Katja gasps in shock and you continue on. "I''m not sure why it was. Maybe it was just the thrill. Maybe I was bored of him. Maybe I just wanted an excuse to break up. Maybe I just like hurting people. Or maybe I''m just a slut. I don''t know. But I slept with another guy and he found out about it. That''s why we broke up."'
+		'"I see. Well if you promised him to be faithful, then it''s clearly fault, and he is right to break up with you" Katja says which hurtts a little, but you don''t feel that she is mad at you.'
+		'"I don''t care how many boys you sleep with" She continues '+iif(katjaQW['QWstage'] >= 6, '"as long as you share some with me"', '"it gives you good strories to tell me"')+' she says in a very low voice.'
+		'You can''t quite get her tone. Is it a hint of jealousy you detect, and if so. Jealous of who? You or the boys she is mentions.'
+		act 'Talk about something else':
+			if katjaQW['horny'] > rand(70,100):
+				if katjaQW['QWstage'] > 2:
+					gt 'KatjaHomeTalk', 'hornykiss'
+				else
+					gt 'KatjaHomeTalk', 'tender_kiss'
+				end
+			else
+				if $loc = 'katja_dorm':
+					gt 'katja_dorm', 'talk'
+				else
+					gt 'KatjaHomeTalk'
+				end
+			end
+		end
+		if $loc = 'katja_dorm':
+			act 'Stop talking': gt 'katja_dorm', 'start'
+		else
+			act 'Leave the room': gt 'mey_home', 'start'
+		end		
+	end
+
+end
+
 --- KatjaHomeTalk ---------------------------------
 

+ 13 - 0
locations/_attributes_piercing_brow.qsrc

@@ -0,0 +1,13 @@
+# $attributes_piercing_brow
+
+if ARGS[0] = 1:
+	PirFirst = 5000
+	PirPrice = 2000
+
+elseif ARGS[0] = 2:
+	PirFirst = 5000
+	PirPrice = 2000
+
+end
+
+--- $attributes_piercing_brow ---------------------------------

+ 101 - 0
locations/_attributes_piercing_ears.qsrc

@@ -0,0 +1,101 @@
+# $attributes_piercing_ears
+
+if ARGS[0] = 1:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 2:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 3:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 4:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 5:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 6:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 7:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 8:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 9:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 10:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 11:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 12:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 13:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 14:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 15:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 16:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 17:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 18:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 19:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 20:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 21:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 22:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 23:
+	PirFirst = 3000
+	PirPrice = 1000
+
+elseif ARGS[0] = 24:
+	PirFirst = 3000
+	PirPrice = 1000
+
+end
+
+--- $attributes_piercing_ears ---------------------------------

+ 33 - 0
locations/_attributes_piercing_lip.qsrc

@@ -0,0 +1,33 @@
+# $attributes_piercing_lip
+
+if ARGS[0] = 1:
+	PirFirst = 6000
+	PirPrice = 3000
+
+elseif ARGS[0] = 2:
+	PirFirst = 6000
+	PirPrice = 3000
+
+elseif ARGS[0] = 3:
+	PirFirst = 6000
+	PirPrice = 3000
+
+elseif ARGS[0] = 4:
+	PirFirst = 6000
+	PirPrice = 3000
+
+elseif ARGS[0] = 5:
+	PirFirst = 6000
+	PirPrice = 3000
+
+elseif ARGS[0] = 6:
+	PirFirst = 6000
+	PirPrice = 3000
+
+elseif ARGS[0] = 7:
+	PirFirst = 6000
+	PirPrice = 3000
+
+end
+
+--- $attributes_piercing_lip ---------------------------------

+ 21 - 0
locations/_attributes_piercing_navel.qsrc

@@ -0,0 +1,21 @@
+# $attributes_piercing_navel
+
+if ARGS[0] = 1:
+	PirFirst = 8000
+	PirPrice = 5000
+
+elseif ARGS[0] = 2:
+	PirFirst = 8000
+	PirPrice = 5000
+
+elseif ARGS[0] = 3:
+	PirFirst = 8000
+	PirPrice = 5000
+
+elseif ARGS[0] = 4:
+	PirFirst = 8000
+	PirPrice = 5000
+
+end
+
+--- $attributes_piercing_navel ---------------------------------

+ 33 - 0
locations/_attributes_piercing_nipples.qsrc

@@ -0,0 +1,33 @@
+# $attributes_piercing_nipples
+
+if ARGS[0] = 1:
+	PirFirst = 10000
+	PirPrice = 6000
+
+elseif ARGS[0] = 2:
+	PirFirst = 10000
+	PirPrice = 6000
+
+elseif ARGS[0] = 3:
+	PirFirst = 10000
+	PirPrice = 6000
+
+elseif ARGS[0] = 4:
+	PirFirst = 10000
+	PirPrice = 6000
+
+elseif ARGS[0] = 5:
+	PirFirst = 10000
+	PirPrice = 6000
+
+elseif ARGS[0] = 6:
+	PirFirst = 10000
+	PirPrice = 6000
+
+elseif ARGS[0] = 7:
+	PirFirst = 10000
+	PirPrice = 6000
+
+end
+
+--- $attributes_piercing_nipples ---------------------------------

+ 33 - 0
locations/_attributes_piercing_nose.qsrc

@@ -0,0 +1,33 @@
+# $attributes_piercing_nose
+
+if ARGS[0] = 1:
+	PirFirst = 5000
+	PirPrice = 2000
+
+elseif ARGS[0] = 2:
+	PirFirst = 5000
+	PirPrice = 2000
+
+elseif ARGS[0] = 3:
+	PirFirst = 5000
+	PirPrice = 2000
+
+elseif ARGS[0] = 4:
+	PirFirst = 5000
+	PirPrice = 2000
+
+elseif ARGS[0] = 5:
+	PirFirst = 5000
+	PirPrice = 2000
+
+elseif ARGS[0] = 6:
+	PirFirst = 5000
+	PirPrice = 2000
+
+elseif ARGS[0] = 7:
+	PirFirst = 5000
+	PirPrice = 2000
+
+end
+
+--- $attributes_piercing_nose ---------------------------------

+ 45 - 0
locations/_attributes_piercing_pussy.qsrc

@@ -0,0 +1,45 @@
+# $attributes_piercing_pussy
+
+if ARGS[0] = 1:
+	PirFirst = 25000
+	PirPrice = 10000
+
+elseif ARGS[0] = 2:
+	PirFirst = 25000
+	PirPrice = 10000
+
+elseif ARGS[0] = 3:
+	PirFirst = 25000
+	PirPrice = 10000
+
+elseif ARGS[0] = 4:
+	PirFirst = 25000
+	PirPrice = 10000
+
+elseif ARGS[0] = 5:
+	PirFirst = 25000
+	PirPrice = 10000
+
+elseif ARGS[0] = 6:
+	PirFirst = 25000
+	PirPrice = 10000
+
+elseif ARGS[0] = 7:
+	PirFirst = 25000
+	PirPrice = 10000
+
+elseif ARGS[0] = 8:
+	PirFirst = 25000
+	PirPrice = 10000
+
+elseif ARGS[0] = 9:
+	PirFirst = 25000
+	PirPrice = 10000
+
+elseif ARGS[0] = 10:
+	PirFirst = 25000
+	PirPrice = 10000
+
+end
+
+--- $attributes_piercing_pussy ---------------------------------

+ 21 - 0
locations/_attributes_piercing_tongue.qsrc

@@ -0,0 +1,21 @@
+# $attributes_piercing_tongue
+
+if ARGS[0] = 1:
+	PirFirst = 7000
+	PirPrice = 4000
+
+elseif ARGS[0] = 2:
+	PirFirst = 7000
+	PirPrice = 4000
+
+elseif ARGS[0] = 3:
+	PirFirst = 7000
+	PirPrice = 4000
+
+elseif ARGS[0] = 4:
+	PirFirst = 7000
+	PirPrice = 4000
+
+end
+
+--- $attributes_piercing_tongue ---------------------------------

+ 80 - 0
locations/_attributes_tattoo_ankle.qsrc

@@ -0,0 +1,80 @@
+# $attributes_tattoo_ankle
+
+if ARGS[0] = 1:
+	TatPrice = 8000
+
+elseif ARGS[0] = 2:
+	TatPrice = 8000
+
+elseif ARGS[0] = 3:
+	TatPrice = 8000
+
+elseif ARGS[0] = 4:
+	TatPrice = 8000
+
+elseif ARGS[0] = 5:
+	TatPrice = 8000
+
+elseif ARGS[0] = 6:
+	TatPrice = 8000
+
+elseif ARGS[0] = 7:
+	TatPrice = 8000
+
+elseif ARGS[0] = 8:
+	TatPrice = 8000
+
+elseif ARGS[0] = 9:
+	TatPrice = 8000
+
+elseif ARGS[0] = 10:
+	TatPrice = 8000
+
+elseif ARGS[0] = 11:
+	TatPrice = 8000
+
+elseif ARGS[0] = 12:
+	TatPrice = 8000
+
+elseif ARGS[0] = 13:
+	TatPrice = 8000
+
+elseif ARGS[0] = 14:
+	TatPrice = 8000
+
+elseif ARGS[0] = 15:
+	TatPrice = 8000
+
+elseif ARGS[0] = 16:
+	TatPrice = 8000
+
+elseif ARGS[0] = 17:
+	TatPrice = 8000
+
+elseif ARGS[0] = 18:
+	TatPrice = 8000
+
+elseif ARGS[0] = 19:
+	TatPrice = 8000
+
+elseif ARGS[0] = 20:
+	TatPrice = 8000
+
+elseif ARGS[0] = 21:
+	TatPrice = 8000
+
+elseif ARGS[0] = 22:
+	TatPrice = 8000
+
+elseif ARGS[0] = 23:
+	TatPrice = 8000
+
+elseif ARGS[0] = 24:
+	TatPrice = 8000
+
+elseif ARGS[0] = 25:
+	TatPrice = 8000
+
+end
+
+--- $attributes_tattoo_ankle ---------------------------------

+ 242 - 0
locations/_attributes_tattoo_arm.qsrc

@@ -0,0 +1,242 @@
+# $attributes_tattoo_arm
+
+if ARGS[0] = 1:
+	TatPrice = 8000
+
+elseif ARGS[0] = 2:
+	TatPrice = 8000
+
+elseif ARGS[0] = 3:
+	TatPrice = 8000
+
+elseif ARGS[0] = 4:
+	TatPrice = 8000
+
+elseif ARGS[0] = 5:
+	TatPrice = 8000
+
+elseif ARGS[0] = 6:
+	TatPrice = 8000
+
+elseif ARGS[0] = 7:
+	TatPrice = 8000
+
+elseif ARGS[0] = 8:
+	TatPrice = 8000
+
+elseif ARGS[0] = 9:
+	TatPrice = 8000
+
+elseif ARGS[0] = 10:
+	TatPrice = 8000
+
+elseif ARGS[0] = 11:
+	TatPrice = 8000
+
+elseif ARGS[0] = 12:
+	TatPrice = 8000
+
+elseif ARGS[0] = 13:
+	TatPrice = 8000
+
+elseif ARGS[0] = 14:
+	TatPrice = 8000
+
+elseif ARGS[0] = 15:
+	TatPrice = 8000
+
+elseif ARGS[0] = 16:
+	TatPrice = 8000
+
+elseif ARGS[0] = 17:
+	TatPrice = 8000
+
+elseif ARGS[0] = 18:
+	TatPrice = 8000
+
+elseif ARGS[0] = 19:
+	TatPrice = 8000
+
+elseif ARGS[0] = 20:
+	TatPrice = 8000
+
+elseif ARGS[0] = 21:
+	TatPrice = 8000
+
+elseif ARGS[0] = 22:
+	TatPrice = 8000
+
+elseif ARGS[0] = 23:
+	TatPrice = 8000
+
+elseif ARGS[0] = 24:
+	TatPrice = 8000
+
+elseif ARGS[0] = 25:
+	TatPrice = 8000
+
+elseif ARGS[0] = 26:
+	TatPrice = 8000
+
+elseif ARGS[0] = 27:
+	TatPrice = 8000
+
+elseif ARGS[0] = 28:
+	TatPrice = 8000
+
+elseif ARGS[0] = 29:
+	TatPrice = 8000
+
+elseif ARGS[0] = 30:
+	TatPrice = 8000
+
+elseif ARGS[0] = 31:
+	TatPrice = 8000
+
+elseif ARGS[0] = 32:
+	TatPrice = 8000
+
+elseif ARGS[0] = 33:
+	TatPrice = 8000
+
+elseif ARGS[0] = 34:
+	TatPrice = 8000
+
+elseif ARGS[0] = 35:
+	TatPrice = 8000
+
+elseif ARGS[0] = 36:
+	TatPrice = 8000
+
+elseif ARGS[0] = 37:
+	TatPrice = 8000
+
+elseif ARGS[0] = 38:
+	TatPrice = 8000
+
+elseif ARGS[0] = 39:
+	TatPrice = 8000
+
+elseif ARGS[0] = 40:
+	TatPrice = 8000
+
+elseif ARGS[0] = 41:
+	TatPrice = 8000
+
+elseif ARGS[0] = 42:
+	TatPrice = 8000
+
+elseif ARGS[0] = 43:
+	TatPrice = 8000
+
+elseif ARGS[0] = 44:
+	TatPrice = 8000
+
+elseif ARGS[0] = 45:
+	TatPrice = 8000
+
+elseif ARGS[0] = 46:
+	TatPrice = 8000
+
+elseif ARGS[0] = 47:
+	TatPrice = 8000
+
+elseif ARGS[0] = 48:
+	TatPrice = 8000
+
+elseif ARGS[0] = 49:
+	TatPrice = 8000
+
+elseif ARGS[0] = 40:
+	TatPrice = 8000
+
+elseif ARGS[0] = 51:
+	TatPrice = 8000
+
+elseif ARGS[0] = 52:
+	TatPrice = 8000
+
+elseif ARGS[0] = 53:
+	TatPrice = 8000
+
+elseif ARGS[0] = 54:
+	TatPrice = 8000
+
+elseif ARGS[0] = 55:
+	TatPrice = 8000
+
+elseif ARGS[0] = 56:
+	TatPrice = 8000
+
+elseif ARGS[0] = 57:
+	TatPrice = 8000
+
+elseif ARGS[0] = 58:
+	TatPrice = 8000
+
+elseif ARGS[0] = 59:
+	TatPrice = 8000
+
+elseif ARGS[0] = 60:
+	TatPrice = 8000
+
+elseif ARGS[0] = 61:
+	TatPrice = 8000
+
+elseif ARGS[0] = 62:
+	TatPrice = 8000
+
+elseif ARGS[0] = 63:
+	TatPrice = 8000
+
+elseif ARGS[0] = 64:
+	TatPrice = 8000
+
+elseif ARGS[0] = 65:
+	TatPrice = 8000
+
+elseif ARGS[0] = 66:
+	TatPrice = 8000
+
+elseif ARGS[0] = 67:
+	TatPrice = 8000
+
+elseif ARGS[0] = 68:
+	TatPrice = 8000
+
+elseif ARGS[0] = 69:
+	TatPrice = 8000
+
+elseif ARGS[0] = 70:
+	TatPrice = 8000
+
+elseif ARGS[0] = 71:
+	TatPrice = 8000
+
+elseif ARGS[0] = 72:
+	TatPrice = 8000
+
+elseif ARGS[0] = 73:
+	TatPrice = 8000
+
+elseif ARGS[0] = 74:
+	TatPrice = 8000
+
+elseif ARGS[0] = 75:
+	TatPrice = 8000
+
+elseif ARGS[0] = 76:
+	TatPrice = 8000
+
+elseif ARGS[0] = 77:
+	TatPrice = 8000
+
+elseif ARGS[0] = 78:
+	TatPrice = 8000
+
+elseif ARGS[0] = 79:
+	TatPrice = 8000
+
+end
+
+--- $attributes_tattoo_arm ---------------------------------

+ 80 - 0
locations/_attributes_tattoo_ass.qsrc

@@ -0,0 +1,80 @@
+# $attributes_tattoo_ass
+
+if ARGS[0] = 1:
+	TatPrice = 10000
+
+elseif ARGS[0] = 2:
+	TatPrice = 10000
+
+elseif ARGS[0] = 3:
+	TatPrice = 10000
+
+elseif ARGS[0] = 4:
+	TatPrice = 10000
+
+elseif ARGS[0] = 5:
+	TatPrice = 10000
+
+elseif ARGS[0] = 6:
+	TatPrice = 10000
+
+elseif ARGS[0] = 7:
+	TatPrice = 10000
+
+elseif ARGS[0] = 8:
+	TatPrice = 10000
+
+elseif ARGS[0] = 9:
+	TatPrice = 10000
+
+elseif ARGS[0] = 10:
+	TatPrice = 10000
+
+elseif ARGS[0] = 11:
+	TatPrice = 10000
+
+elseif ARGS[0] = 12:
+	TatPrice = 10000
+
+elseif ARGS[0] = 13:
+	TatPrice = 10000
+
+elseif ARGS[0] = 14:
+	TatPrice = 10000
+
+elseif ARGS[0] = 15:
+	TatPrice = 10000
+
+elseif ARGS[0] = 16:
+	TatPrice = 10000
+
+elseif ARGS[0] = 17:
+	TatPrice = 10000
+
+elseif ARGS[0] = 18:
+	TatPrice = 10000
+
+elseif ARGS[0] = 19:
+	TatPrice = 10000
+
+elseif ARGS[0] = 20:
+	TatPrice = 10000
+
+elseif ARGS[0] = 21:
+	TatPrice = 10000
+
+elseif ARGS[0] = 22:
+	TatPrice = 10000
+
+elseif ARGS[0] = 23:
+	TatPrice = 10000
+
+elseif ARGS[0] = 24:
+	TatPrice = 10000
+
+elseif ARGS[0] = 25:
+	TatPrice = 10000
+
+end
+
+--- $attributes_tattoo_ass ---------------------------------

+ 188 - 0
locations/_attributes_tattoo_back.qsrc

@@ -0,0 +1,188 @@
+# $attributes_tattoo_back
+
+if ARGS[0] = 1:
+	TatPrice = 10000
+
+elseif ARGS[0] = 2:
+	TatPrice = 10000
+
+elseif ARGS[0] = 3:
+	TatPrice = 10000
+
+elseif ARGS[0] = 4:
+	TatPrice = 10000
+
+elseif ARGS[0] = 5:
+	TatPrice = 10000
+
+elseif ARGS[0] = 6:
+	TatPrice = 10000
+
+elseif ARGS[0] = 7:
+	TatPrice = 10000
+
+elseif ARGS[0] = 8:
+	TatPrice = 10000
+
+elseif ARGS[0] = 9:
+	TatPrice = 10000
+
+elseif ARGS[0] = 10:
+	TatPrice = 10000
+
+elseif ARGS[0] = 11:
+	TatPrice = 10000
+
+elseif ARGS[0] = 12:
+	TatPrice = 10000
+
+elseif ARGS[0] = 13:
+	TatPrice = 10000
+
+elseif ARGS[0] = 14:
+	TatPrice = 10000
+
+elseif ARGS[0] = 15:
+	TatPrice = 10000
+
+elseif ARGS[0] = 16:
+	TatPrice = 10000
+
+elseif ARGS[0] = 17:
+	TatPrice = 10000
+
+elseif ARGS[0] = 18:
+	TatPrice = 10000
+
+elseif ARGS[0] = 19:
+	TatPrice = 10000
+
+elseif ARGS[0] = 20:
+	TatPrice = 10000
+
+elseif ARGS[0] = 21:
+	TatPrice = 10000
+
+elseif ARGS[0] = 22:
+	TatPrice = 10000
+
+elseif ARGS[0] = 23:
+	TatPrice = 10000
+
+elseif ARGS[0] = 24:
+	TatPrice = 10000
+
+elseif ARGS[0] = 25:
+	TatPrice = 10000
+
+elseif ARGS[0] = 26:
+	TatPrice = 10000
+
+elseif ARGS[0] = 27:
+	TatPrice = 10000
+
+elseif ARGS[0] = 28:
+	TatPrice = 10000
+
+elseif ARGS[0] = 29:
+	TatPrice = 10000
+
+elseif ARGS[0] = 30:
+	TatPrice = 10000
+
+elseif ARGS[0] = 31:
+	TatPrice = 10000
+
+elseif ARGS[0] = 32:
+	TatPrice = 10000
+
+elseif ARGS[0] = 33:
+	TatPrice = 10000
+
+elseif ARGS[0] = 34:
+	TatPrice = 10000
+
+elseif ARGS[0] = 35:
+	TatPrice = 10000
+
+elseif ARGS[0] = 36:
+	TatPrice = 10000
+
+elseif ARGS[0] = 37:
+	TatPrice = 10000
+
+elseif ARGS[0] = 38:
+	TatPrice = 10000
+
+elseif ARGS[0] = 39:
+	TatPrice = 10000
+
+elseif ARGS[0] = 40:
+	TatPrice = 10000
+
+elseif ARGS[0] = 41:
+	TatPrice = 10000
+
+elseif ARGS[0] = 42:
+	TatPrice = 10000
+
+elseif ARGS[0] = 43:
+	TatPrice = 10000
+
+elseif ARGS[0] = 44:
+	TatPrice = 10000
+
+elseif ARGS[0] = 45:
+	TatPrice = 10000
+
+elseif ARGS[0] = 46:
+	TatPrice = 10000
+
+elseif ARGS[0] = 47:
+	TatPrice = 10000
+
+elseif ARGS[0] = 48:
+	TatPrice = 10000
+
+elseif ARGS[0] = 49:
+	TatPrice = 10000
+
+elseif ARGS[0] = 40:
+	TatPrice = 10000
+
+elseif ARGS[0] = 51:
+	TatPrice = 10000
+
+elseif ARGS[0] = 52:
+	TatPrice = 10000
+
+elseif ARGS[0] = 53:
+	TatPrice = 10000
+
+elseif ARGS[0] = 54:
+	TatPrice = 10000
+
+elseif ARGS[0] = 55:
+	TatPrice = 10000
+
+elseif ARGS[0] = 56:
+	TatPrice = 10000
+
+elseif ARGS[0] = 57:
+	TatPrice = 10000
+
+elseif ARGS[0] = 58:
+	TatPrice = 10000
+
+elseif ARGS[0] = 59:
+	TatPrice = 10000
+
+elseif ARGS[0] = 60:
+	TatPrice = 10000
+
+elseif ARGS[0] = 61:
+	TatPrice = 10000
+
+end
+
+--- $attributes_tattoo_back ---------------------------------

+ 68 - 0
locations/_attributes_tattoo_belly.qsrc

@@ -0,0 +1,68 @@
+# $attributes_tattoo_belly
+
+if ARGS[0] = 1:
+	TatPrice = 10000
+
+elseif ARGS[0] = 2:
+	TatPrice = 10000
+
+elseif ARGS[0] = 3:
+	TatPrice = 10000
+
+elseif ARGS[0] = 4:
+	TatPrice = 10000
+
+elseif ARGS[0] = 5:
+	TatPrice = 10000
+
+elseif ARGS[0] = 6:
+	TatPrice = 10000
+
+elseif ARGS[0] = 7:
+	TatPrice = 10000
+
+elseif ARGS[0] = 8:
+	TatPrice = 10000
+
+elseif ARGS[0] = 9:
+	TatPrice = 10000
+
+elseif ARGS[0] = 10:
+	TatPrice = 10000
+
+elseif ARGS[0] = 11:
+	TatPrice = 10000
+
+elseif ARGS[0] = 12:
+	TatPrice = 10000
+
+elseif ARGS[0] = 13:
+	TatPrice = 10000
+
+elseif ARGS[0] = 14:
+	TatPrice = 10000
+
+elseif ARGS[0] = 15:
+	TatPrice = 10000
+
+elseif ARGS[0] = 16:
+	TatPrice = 10000
+
+elseif ARGS[0] = 17:
+	TatPrice = 10000
+
+elseif ARGS[0] = 18:
+	TatPrice = 10000
+
+elseif ARGS[0] = 19:
+	TatPrice = 10000
+
+elseif ARGS[0] = 20:
+	TatPrice = 10000
+
+elseif ARGS[0] = 21:
+	TatPrice = 10000
+
+end
+
+--- $attributes_tattoo_belly ---------------------------------

+ 38 - 0
locations/_attributes_tattoo_breasts.qsrc

@@ -0,0 +1,38 @@
+# $attributes_tattoo_breasts
+
+if ARGS[0] = 1:
+	TatPrice = 15000
+
+elseif ARGS[0] = 2:
+	TatPrice = 15000
+
+elseif ARGS[0] = 3:
+	TatPrice = 15000
+
+elseif ARGS[0] = 4:
+	TatPrice = 15000
+
+elseif ARGS[0] = 5:
+	TatPrice = 15000
+
+elseif ARGS[0] = 6:
+	TatPrice = 15000
+
+elseif ARGS[0] = 7:
+	TatPrice = 15000
+
+elseif ARGS[0] = 8:
+	TatPrice = 15000
+
+elseif ARGS[0] = 9:
+	TatPrice = 15000
+
+elseif ARGS[0] = 10:
+	TatPrice = 15000
+
+elseif ARGS[0] = 11:
+	TatPrice = 15000
+
+end
+
+--- $attributes_tattoo_breasts ---------------------------------

+ 50 - 0
locations/_attributes_tattoo_chest.qsrc

@@ -0,0 +1,50 @@
+# $attributes_tattoo_chest
+
+if ARGS[0] = 1:
+	TatPrice = 12000
+
+elseif ARGS[0] = 2:
+	TatPrice = 12000
+
+elseif ARGS[0] = 3:
+	TatPrice = 12000
+
+elseif ARGS[0] = 4:
+	TatPrice = 12000
+
+elseif ARGS[0] = 5:
+	TatPrice = 12000
+
+elseif ARGS[0] = 6:
+	TatPrice = 12000
+
+elseif ARGS[0] = 7:
+	TatPrice = 12000
+
+elseif ARGS[0] = 8:
+	TatPrice = 12000
+
+elseif ARGS[0] = 9:
+	TatPrice = 12000
+
+elseif ARGS[0] = 10:
+	TatPrice = 12000
+
+elseif ARGS[0] = 11:
+	TatPrice = 12000
+
+elseif ARGS[0] = 12:
+	TatPrice = 12000
+
+elseif ARGS[0] = 13:
+	TatPrice = 12000
+
+elseif ARGS[0] = 14:
+	TatPrice = 12000
+
+elseif ARGS[0] = 15:
+	TatPrice = 12000
+
+end
+
+--- $attributes_tattoo_chest ---------------------------------

+ 29 - 0
locations/_attributes_tattoo_face.qsrc

@@ -0,0 +1,29 @@
+# $attributes_tattoo_face
+
+if ARGS[0] = 1:
+	TatPrice = 10000
+
+elseif ARGS[0] = 2:
+	TatPrice = 10000
+
+elseif ARGS[0] = 3:
+	TatPrice = 10000
+
+elseif ARGS[0] = 4:
+	TatPrice = 10000
+
+elseif ARGS[0] = 5:
+	TatPrice = 10000
+
+elseif ARGS[0] = 6:
+	TatPrice = 10000
+
+elseif ARGS[0] = 7:
+	TatPrice = 10000
+
+elseif ARGS[0] = 8:
+	TatPrice = 10000
+
+end
+
+--- $attributes_tattoo_face ---------------------------------

+ 32 - 0
locations/_attributes_tattoo_hand.qsrc

@@ -0,0 +1,32 @@
+# $attributes_tattoo_hand
+
+if ARGS[0] = 1:
+	TatPrice = 7000
+
+elseif ARGS[0] = 2:
+	TatPrice = 7000
+
+elseif ARGS[0] = 3:
+	TatPrice = 7000
+
+elseif ARGS[0] = 4:
+	TatPrice = 7000
+
+elseif ARGS[0] = 5:
+	TatPrice = 7000
+
+elseif ARGS[0] = 6:
+	TatPrice = 7000
+
+elseif ARGS[0] = 7:
+	TatPrice = 7000
+
+elseif ARGS[0] = 8:
+	TatPrice = 7000
+
+elseif ARGS[0] = 9:
+	TatPrice = 7000
+
+end
+
+--- $attributes_tattoo_hand ---------------------------------

+ 146 - 0
locations/_attributes_tattoo_leg.qsrc

@@ -0,0 +1,146 @@
+# $attributes_tattoo_leg
+
+if ARGS[0] = 1:
+	TatPrice = 10000
+
+elseif ARGS[0] = 2:
+	TatPrice = 10000
+
+elseif ARGS[0] = 3:
+	TatPrice = 10000
+
+elseif ARGS[0] = 4:
+	TatPrice = 10000
+
+elseif ARGS[0] = 5:
+	TatPrice = 10000
+
+elseif ARGS[0] = 6:
+	TatPrice = 10000
+
+elseif ARGS[0] = 7:
+	TatPrice = 10000
+
+elseif ARGS[0] = 8:
+	TatPrice = 10000
+
+elseif ARGS[0] = 9:
+	TatPrice = 10000
+
+elseif ARGS[0] = 10:
+	TatPrice = 10000
+
+elseif ARGS[0] = 11:
+	TatPrice = 10000
+
+elseif ARGS[0] = 12:
+	TatPrice = 10000
+
+elseif ARGS[0] = 13:
+	TatPrice = 10000
+
+elseif ARGS[0] = 14:
+	TatPrice = 10000
+
+elseif ARGS[0] = 15:
+	TatPrice = 10000
+
+elseif ARGS[0] = 16:
+	TatPrice = 10000
+
+elseif ARGS[0] = 17:
+	TatPrice = 10000
+
+elseif ARGS[0] = 18:
+	TatPrice = 10000
+
+elseif ARGS[0] = 19:
+	TatPrice = 10000
+
+elseif ARGS[0] = 20:
+	TatPrice = 10000
+
+elseif ARGS[0] = 21:
+	TatPrice = 10000
+
+elseif ARGS[0] = 22:
+	TatPrice = 10000
+
+elseif ARGS[0] = 23:
+	TatPrice = 10000
+
+elseif ARGS[0] = 24:
+	TatPrice = 10000
+
+elseif ARGS[0] = 25:
+	TatPrice = 10000
+
+elseif ARGS[0] = 26:
+	TatPrice = 10000
+
+elseif ARGS[0] = 27:
+	TatPrice = 10000
+
+elseif ARGS[0] = 28:
+	TatPrice = 10000
+
+elseif ARGS[0] = 29:
+	TatPrice = 10000
+
+elseif ARGS[0] = 30:
+	TatPrice = 10000
+
+elseif ARGS[0] = 31:
+	TatPrice = 10000
+
+elseif ARGS[0] = 32:
+	TatPrice = 10000
+
+elseif ARGS[0] = 33:
+	TatPrice = 10000
+
+elseif ARGS[0] = 34:
+	TatPrice = 10000
+
+elseif ARGS[0] = 35:
+	TatPrice = 10000
+
+elseif ARGS[0] = 36:
+	TatPrice = 10000
+
+elseif ARGS[0] = 37:
+	TatPrice = 10000
+
+elseif ARGS[0] = 38:
+	TatPrice = 10000
+
+elseif ARGS[0] = 39:
+	TatPrice = 10000
+
+elseif ARGS[0] = 40:
+	TatPrice = 10000
+
+elseif ARGS[0] = 41:
+	TatPrice = 10000
+
+elseif ARGS[0] = 42:
+	TatPrice = 10000
+
+elseif ARGS[0] = 43:
+	TatPrice = 10000
+
+elseif ARGS[0] = 44:
+	TatPrice = 10000
+
+elseif ARGS[0] = 45:
+	TatPrice = 10000
+
+elseif ARGS[0] = 46:
+	TatPrice = 10000
+
+elseif ARGS[0] = 47:
+	TatPrice = 10000
+
+end
+
+--- $attributes_tattoo_leg ---------------------------------

+ 32 - 0
locations/_attributes_tattoo_lip.qsrc

@@ -0,0 +1,32 @@
+# $attributes_tattoo_lip
+
+if ARGS[0] = 1:
+	TatPrice = 5000
+
+elseif ARGS[0] = 2:
+	TatPrice = 5000
+
+elseif ARGS[0] = 3:
+	TatPrice = 5000
+
+elseif ARGS[0] = 4:
+	TatPrice = 5000
+
+elseif ARGS[0] = 5:
+	TatPrice = 5000
+
+elseif ARGS[0] = 6:
+	TatPrice = 5000
+
+elseif ARGS[0] = 7:
+	TatPrice = 5000
+
+elseif ARGS[0] = 8:
+	TatPrice = 5000
+
+elseif ARGS[0] = 9:
+	TatPrice = 5000
+
+end
+
+--- $attributes_tattoo_lip ---------------------------------

+ 95 - 0
locations/_attributes_tattoo_neck.qsrc

@@ -0,0 +1,95 @@
+# $attributes_tattoo_neck
+
+if ARGS[0] = 1:
+	TatPrice = 8000
+
+elseif ARGS[0] = 2:
+	TatPrice = 8000
+
+elseif ARGS[0] = 3:
+	TatPrice = 8000
+
+elseif ARGS[0] = 4:
+	TatPrice = 8000
+
+elseif ARGS[0] = 5:
+	TatPrice = 8000
+
+elseif ARGS[0] = 6:
+	TatPrice = 8000
+
+elseif ARGS[0] = 7:
+	TatPrice = 8000
+
+elseif ARGS[0] = 8:
+	TatPrice = 8000
+
+elseif ARGS[0] = 9:
+	TatPrice = 8000
+
+elseif ARGS[0] = 10:
+	TatPrice = 8000
+
+elseif ARGS[0] = 11:
+	TatPrice = 8000
+
+elseif ARGS[0] = 12:
+	TatPrice = 8000
+
+elseif ARGS[0] = 13:
+	TatPrice = 8000
+
+elseif ARGS[0] = 14:
+	TatPrice = 8000
+
+elseif ARGS[0] = 15:
+	TatPrice = 8000
+
+elseif ARGS[0] = 16:
+	TatPrice = 8000
+
+elseif ARGS[0] = 17:
+	TatPrice = 8000
+
+elseif ARGS[0] = 18:
+	TatPrice = 8000
+
+elseif ARGS[0] = 19:
+	TatPrice = 8000
+
+elseif ARGS[0] = 20:
+	TatPrice = 8000
+
+elseif ARGS[0] = 21:
+	TatPrice = 8000
+
+elseif ARGS[0] = 22:
+	TatPrice = 8000
+
+elseif ARGS[0] = 23:
+	TatPrice = 8000
+
+elseif ARGS[0] = 24:
+	TatPrice = 8000
+
+elseif ARGS[0] = 25:
+	TatPrice = 8000
+
+elseif ARGS[0] = 26:
+	TatPrice = 8000
+
+elseif ARGS[0] = 27:
+	TatPrice = 8000
+
+elseif ARGS[0] = 28:
+	TatPrice = 8000
+
+elseif ARGS[0] = 29:
+	TatPrice = 8000
+
+elseif ARGS[0] = 30:
+	TatPrice = 8000
+
+end
+
+--- $attributes_tattoo_neck ---------------------------------

+ 164 - 0
locations/_attributes_tattoo_pubic.qsrc

@@ -0,0 +1,164 @@
+# $attributes_tattoo_pubic
+
+if ARGS[0] = 1:
+	TatPrice = 20000
+
+elseif ARGS[0] = 2:
+	TatPrice = 20000
+
+elseif ARGS[0] = 3:
+	TatPrice = 20000
+
+elseif ARGS[0] = 4:
+	TatPrice = 20000
+
+elseif ARGS[0] = 5:
+	TatPrice = 20000
+
+elseif ARGS[0] = 6:
+	TatPrice = 20000
+
+elseif ARGS[0] = 7:
+	TatPrice = 20000
+
+elseif ARGS[0] = 8:
+	TatPrice = 20000
+
+elseif ARGS[0] = 9:
+	TatPrice = 20000
+
+elseif ARGS[0] = 10:
+	TatPrice = 20000
+
+elseif ARGS[0] = 11:
+	TatPrice = 20000
+
+elseif ARGS[0] = 12:
+	TatPrice = 20000
+
+elseif ARGS[0] = 13:
+	TatPrice = 20000
+
+elseif ARGS[0] = 14:
+	TatPrice = 20000
+
+elseif ARGS[0] = 15:
+	TatPrice = 20000
+
+elseif ARGS[0] = 16:
+	TatPrice = 20000
+
+elseif ARGS[0] = 17:
+	TatPrice = 20000
+
+elseif ARGS[0] = 18:
+	TatPrice = 20000
+
+elseif ARGS[0] = 19:
+	TatPrice = 20000
+
+elseif ARGS[0] = 20:
+	TatPrice = 20000
+
+elseif ARGS[0] = 21:
+	TatPrice = 20000
+
+elseif ARGS[0] = 22:
+	TatPrice = 20000
+
+elseif ARGS[0] = 23:
+	TatPrice = 20000
+
+elseif ARGS[0] = 24:
+	TatPrice = 20000
+
+elseif ARGS[0] = 25:
+	TatPrice = 20000
+
+elseif ARGS[0] = 26:
+	TatPrice = 20000
+
+elseif ARGS[0] = 27:
+	TatPrice = 20000
+
+elseif ARGS[0] = 28:
+	TatPrice = 20000
+
+elseif ARGS[0] = 29:
+	TatPrice = 20000
+
+elseif ARGS[0] = 30:
+	TatPrice = 20000
+
+elseif ARGS[0] = 31:
+	TatPrice = 20000
+
+elseif ARGS[0] = 32:
+	TatPrice = 20000
+
+elseif ARGS[0] = 33:
+	TatPrice = 20000
+
+elseif ARGS[0] = 34:
+	TatPrice = 20000
+
+elseif ARGS[0] = 35:
+	TatPrice = 20000
+
+elseif ARGS[0] = 36:
+	TatPrice = 20000
+
+elseif ARGS[0] = 37:
+	TatPrice = 20000
+
+elseif ARGS[0] = 38:
+	TatPrice = 20000
+
+elseif ARGS[0] = 39:
+	TatPrice = 20000
+
+elseif ARGS[0] = 40:
+	TatPrice = 20000
+
+elseif ARGS[0] = 41:
+	TatPrice = 20000
+
+elseif ARGS[0] = 42:
+	TatPrice = 20000
+
+elseif ARGS[0] = 43:
+	TatPrice = 20000
+
+elseif ARGS[0] = 44:
+	TatPrice = 20000
+
+elseif ARGS[0] = 45:
+	TatPrice = 20000
+
+elseif ARGS[0] = 46:
+	TatPrice = 20000
+
+elseif ARGS[0] = 47:
+	TatPrice = 20000
+
+elseif ARGS[0] = 48:
+	TatPrice = 20000
+
+elseif ARGS[0] = 49:
+	TatPrice = 20000
+
+elseif ARGS[0] = 40:
+	TatPrice = 20000
+
+elseif ARGS[0] = 51:
+	TatPrice = 20000
+
+elseif ARGS[0] = 52:
+	TatPrice = 20000
+
+elseif ARGS[0] = 53:
+	TatPrice = 20000
+
+end
+
+--- $attributes_tattoo_pubic ---------------------------------

+ 80 - 0
locations/_attributes_tattoo_shoulder.qsrc

@@ -0,0 +1,80 @@
+# $attributes_tattoo_shoulder
+
+if ARGS[0] = 1:
+	TatPrice = 8000
+
+elseif ARGS[0] = 2:
+	TatPrice = 8000
+
+elseif ARGS[0] = 3:
+	TatPrice = 8000
+
+elseif ARGS[0] = 4:
+	TatPrice = 8000
+
+elseif ARGS[0] = 5:
+	TatPrice = 8000
+
+elseif ARGS[0] = 6:
+	TatPrice = 8000
+
+elseif ARGS[0] = 7:
+	TatPrice = 8000
+
+elseif ARGS[0] = 8:
+	TatPrice = 8000
+
+elseif ARGS[0] = 9:
+	TatPrice = 8000
+
+elseif ARGS[0] = 10:
+	TatPrice = 8000
+
+elseif ARGS[0] = 11:
+	TatPrice = 8000
+
+elseif ARGS[0] = 12:
+	TatPrice = 8000
+
+elseif ARGS[0] = 13:
+	TatPrice = 8000
+
+elseif ARGS[0] = 14:
+	TatPrice = 8000
+
+elseif ARGS[0] = 15:
+	TatPrice = 8000
+
+elseif ARGS[0] = 16:
+	TatPrice = 8000
+
+elseif ARGS[0] = 17:
+	TatPrice = 8000
+
+elseif ARGS[0] = 18:
+	TatPrice = 8000
+
+elseif ARGS[0] = 19:
+	TatPrice = 8000
+
+elseif ARGS[0] = 20:
+	TatPrice = 8000
+
+elseif ARGS[0] = 21:
+	TatPrice = 8000
+
+elseif ARGS[0] = 22:
+	TatPrice = 8000
+
+elseif ARGS[0] = 23:
+	TatPrice = 8000
+
+elseif ARGS[0] = 24:
+	TatPrice = 8000
+
+elseif ARGS[0] = 25:
+	TatPrice = 8000
+
+end
+
+--- $attributes_tattoo_shoulder ---------------------------------

+ 74 - 0
locations/_attributes_tattoo_side.qsrc

@@ -0,0 +1,74 @@
+# $attributes_tattoo_side
+
+if ARGS[0] = 1:
+	TatPrice = 12000
+
+elseif ARGS[0] = 2:
+	TatPrice = 12000
+
+elseif ARGS[0] = 3:
+	TatPrice = 12000
+
+elseif ARGS[0] = 4:
+	TatPrice = 12000
+
+elseif ARGS[0] = 5:
+	TatPrice = 12000
+
+elseif ARGS[0] = 6:
+	TatPrice = 12000
+
+elseif ARGS[0] = 7:
+	TatPrice = 12000
+
+elseif ARGS[0] = 8:
+	TatPrice = 12000
+
+elseif ARGS[0] = 9:
+	TatPrice = 12000
+
+elseif ARGS[0] = 10:
+	TatPrice = 12000
+
+elseif ARGS[0] = 11:
+	TatPrice = 12000
+
+elseif ARGS[0] = 12:
+	TatPrice = 12000
+
+elseif ARGS[0] = 13:
+	TatPrice = 12000
+
+elseif ARGS[0] = 14:
+	TatPrice = 12000
+
+elseif ARGS[0] = 15:
+	TatPrice = 12000
+
+elseif ARGS[0] = 16:
+	TatPrice = 12000
+
+elseif ARGS[0] = 17:
+	TatPrice = 12000
+
+elseif ARGS[0] = 18:
+	TatPrice = 12000
+
+elseif ARGS[0] = 19:
+	TatPrice = 12000
+
+elseif ARGS[0] = 20:
+	TatPrice = 12000
+
+elseif ARGS[0] = 21:
+	TatPrice = 12000
+
+elseif ARGS[0] = 22:
+	TatPrice = 12000
+
+elseif ARGS[0] = 23:
+	TatPrice = 12000
+
+end
+
+--- $attributes_tattoo_side ---------------------------------

+ 101 - 0
locations/_attributes_tattoo_tramp.qsrc

@@ -0,0 +1,101 @@
+# $attributes_tattoo_tramp
+
+if ARGS[0] = 1:
+	TatPrice = 12000
+
+elseif ARGS[0] = 2:
+	TatPrice = 12000
+
+elseif ARGS[0] = 3:
+	TatPrice = 12000
+
+elseif ARGS[0] = 4:
+	TatPrice = 12000
+
+elseif ARGS[0] = 5:
+	TatPrice = 12000
+
+elseif ARGS[0] = 6:
+	TatPrice = 12000
+
+elseif ARGS[0] = 7:
+	TatPrice = 12000
+
+elseif ARGS[0] = 8:
+	TatPrice = 12000
+
+elseif ARGS[0] = 9:
+	TatPrice = 12000
+
+elseif ARGS[0] = 10:
+	TatPrice = 12000
+
+elseif ARGS[0] = 11:
+	TatPrice = 12000
+
+elseif ARGS[0] = 12:
+	TatPrice = 12000
+
+elseif ARGS[0] = 13:
+	TatPrice = 12000
+
+elseif ARGS[0] = 14:
+	TatPrice = 12000
+
+elseif ARGS[0] = 15:
+	TatPrice = 12000
+
+elseif ARGS[0] = 16:
+	TatPrice = 12000
+
+elseif ARGS[0] = 17:
+	TatPrice = 12000
+
+elseif ARGS[0] = 18:
+	TatPrice = 12000
+
+elseif ARGS[0] = 19:
+	TatPrice = 12000
+
+elseif ARGS[0] = 20:
+	TatPrice = 12000
+
+elseif ARGS[0] = 21:
+	TatPrice = 12000
+
+elseif ARGS[0] = 22:
+	TatPrice = 12000
+
+elseif ARGS[0] = 23:
+	TatPrice = 12000
+
+elseif ARGS[0] = 24:
+	TatPrice = 12000
+
+elseif ARGS[0] = 25:
+	TatPrice = 12000
+
+elseif ARGS[0] = 26:
+	TatPrice = 12000
+
+elseif ARGS[0] = 27:
+	TatPrice = 12000
+
+elseif ARGS[0] = 28:
+	TatPrice = 12000
+
+elseif ARGS[0] = 29:
+	TatPrice = 12000
+
+elseif ARGS[0] = 30:
+	TatPrice = 12000
+
+elseif ARGS[0] = 31:
+	TatPrice = 12000
+
+elseif ARGS[0] = 32:
+	TatPrice = 12000
+
+end
+
+--- $attributes_tattoo_tramp ---------------------------------

+ 71 - 0
locations/_attributes_tattoo_under.qsrc

@@ -0,0 +1,71 @@
+# $attributes_tattoo_under
+
+if ARGS[0] = 1:
+	TatPrice = 12000
+
+elseif ARGS[0] = 2:
+	TatPrice = 12000
+
+elseif ARGS[0] = 3:
+	TatPrice = 12000
+
+elseif ARGS[0] = 4:
+	TatPrice = 12000
+
+elseif ARGS[0] = 5:
+	TatPrice = 12000
+
+elseif ARGS[0] = 6:
+	TatPrice = 12000
+
+elseif ARGS[0] = 7:
+	TatPrice = 12000
+
+elseif ARGS[0] = 8:
+	TatPrice = 12000
+
+elseif ARGS[0] = 9:
+	TatPrice = 12000
+
+elseif ARGS[0] = 10:
+	TatPrice = 12000
+
+elseif ARGS[0] = 11:
+	TatPrice = 12000
+
+elseif ARGS[0] = 12:
+	TatPrice = 12000
+
+elseif ARGS[0] = 13:
+	TatPrice = 12000
+
+elseif ARGS[0] = 14:
+	TatPrice = 12000
+
+elseif ARGS[0] = 15:
+	TatPrice = 12000
+
+elseif ARGS[0] = 16:
+	TatPrice = 12000
+
+elseif ARGS[0] = 17:
+	TatPrice = 12000
+
+elseif ARGS[0] = 18:
+	TatPrice = 12000
+
+elseif ARGS[0] = 19:
+	TatPrice = 12000
+
+elseif ARGS[0] = 20:
+	TatPrice = 12000
+
+elseif ARGS[0] = 21:
+	TatPrice = 12000
+
+elseif ARGS[0] = 22:
+	TatPrice = 12000
+
+end
+
+--- $attributes_tattoo_under ---------------------------------

+ 158 - 0
locations/_attributes_tattoo_wrist.qsrc

@@ -0,0 +1,158 @@
+# $attributes_tattoo_wrist
+
+if ARGS[0] = 1:
+	TatPrice = 7000
+
+elseif ARGS[0] = 2:
+	TatPrice = 7000
+
+elseif ARGS[0] = 3:
+	TatPrice = 7000
+
+elseif ARGS[0] = 4:
+	TatPrice = 7000
+
+elseif ARGS[0] = 5:
+	TatPrice = 7000
+
+elseif ARGS[0] = 6:
+	TatPrice = 7000
+
+elseif ARGS[0] = 7:
+	TatPrice = 7000
+
+elseif ARGS[0] = 8:
+	TatPrice = 7000
+
+elseif ARGS[0] = 9:
+	TatPrice = 7000
+
+elseif ARGS[0] = 10:
+	TatPrice = 7000
+
+elseif ARGS[0] = 11:
+	TatPrice = 7000
+
+elseif ARGS[0] = 12:
+	TatPrice = 7000
+
+elseif ARGS[0] = 13:
+	TatPrice = 7000
+
+elseif ARGS[0] = 14:
+	TatPrice = 7000
+
+elseif ARGS[0] = 15:
+	TatPrice = 7000
+
+elseif ARGS[0] = 16:
+	TatPrice = 7000
+
+elseif ARGS[0] = 17:
+	TatPrice = 7000
+
+elseif ARGS[0] = 18:
+	TatPrice = 7000
+
+elseif ARGS[0] = 19:
+	TatPrice = 7000
+
+elseif ARGS[0] = 20:
+	TatPrice = 7000
+
+elseif ARGS[0] = 21:
+	TatPrice = 7000
+
+elseif ARGS[0] = 22:
+	TatPrice = 7000
+
+elseif ARGS[0] = 23:
+	TatPrice = 7000
+
+elseif ARGS[0] = 24:
+	TatPrice = 7000
+
+elseif ARGS[0] = 25:
+	TatPrice = 7000
+
+elseif ARGS[0] = 26:
+	TatPrice = 7000
+
+elseif ARGS[0] = 27:
+	TatPrice = 7000
+
+elseif ARGS[0] = 28:
+	TatPrice = 7000
+
+elseif ARGS[0] = 29:
+	TatPrice = 7000
+
+elseif ARGS[0] = 30:
+	TatPrice = 7000
+
+elseif ARGS[0] = 31:
+	TatPrice = 7000
+
+elseif ARGS[0] = 32:
+	TatPrice = 7000
+
+elseif ARGS[0] = 33:
+	TatPrice = 7000
+
+elseif ARGS[0] = 34:
+	TatPrice = 7000
+
+elseif ARGS[0] = 35:
+	TatPrice = 7000
+
+elseif ARGS[0] = 36:
+	TatPrice = 7000
+
+elseif ARGS[0] = 37:
+	TatPrice = 7000
+
+elseif ARGS[0] = 38:
+	TatPrice = 7000
+
+elseif ARGS[0] = 39:
+	TatPrice = 7000
+
+elseif ARGS[0] = 40:
+	TatPrice = 7000
+
+elseif ARGS[0] = 41:
+	TatPrice = 7000
+
+elseif ARGS[0] = 42:
+	TatPrice = 7000
+
+elseif ARGS[0] = 43:
+	TatPrice = 7000
+
+elseif ARGS[0] = 44:
+	TatPrice = 7000
+
+elseif ARGS[0] = 45:
+	TatPrice = 7000
+
+elseif ARGS[0] = 46:
+	TatPrice = 7000
+
+elseif ARGS[0] = 47:
+	TatPrice = 7000
+
+elseif ARGS[0] = 48:
+	TatPrice = 7000
+
+elseif ARGS[0] = 49:
+	TatPrice = 7000
+
+elseif ARGS[0] = 40:
+	TatPrice = 7000
+
+elseif ARGS[0] = 51:
+	TatPrice = 7000
+
+end
+
+--- $attributes_tattoo_wrist ---------------------------------

+ 1 - 3
locations/anush_bedroom_city.qsrc

@@ -237,8 +237,6 @@ if $ARGS[0] = 'night_stand':
 			'You blush slightly and shake your head before closing the drawer, which just causes her to smirk in amusement.'
 			act 'Close the drawer':gt 'anush_bedroom_city','anushroom'
 		end
-!!this goes to anushkaev1 can you do what ever code is needed so both here and her pav apartment lead to it and then they go back to the correct location afterwards? That will save us from making a new sex folder with just a lot of repeat of the same content.
-!HM: done
 		act 'Strap-on': $returnLoc = '_city' & gt 'anushkaev1', 'strapon1'
 		act 'Butt plug': $returnLoc = '_city' & gt 'anushkaev1', 'buttplug'
 		act 'Joint':
@@ -691,7 +689,7 @@ if $ARGS[0] = 'nush_guitar':
 			'She reaches over and grabs the acoustic guitar. "Sure, I''ll play you something else. This one I learned shortly after seeing the uncensored music video for it." She strums the guitar and checks to ensure it''s still in tune. "It''s ''Heaven Knows'' by The Pretty Reckless."'
 			'She starts playing and singing the new song, playing and singing just as well as before. When she ends her piece, you clap your hands and praise her. "Another great song. You really are good at this."'
 			*nl
-			'Thanks. I still remember the first time I watch the music video for this." She bites her lower lip, clearly getting a little turned on thinking about it. "When Taylor pulled off her robe and flashed her naked body... Oh man, that was so fucking hot. I can''t lie; I''ve rubbed one out more times than I care to remember thinking about that scene while staring at that poster," she says while indicating The Pretty Reckless poster on her wall.'
+			'"Thanks. I still remember the first time I watch the music video for this." She bites her lower lip, clearly getting a little turned on thinking about it. "When Taylor pulled off her robe and flashed her naked body... Oh man, that was so fucking hot. I can''t lie; I''ve rubbed one out more times than I care to remember thinking about that scene while staring at that poster," she says while indicating The Pretty Reckless poster on her wall.'
 			'You giggle and glance at the poster. You could see Anushka rubbing one out while looking at the poster. Thinking about her rubbing one out, laying on the bed she''s now on, is starting to make you a little horny. You shake your head to banish the thought and change the subject while she puts the guitar back in its place, talking about her future music career.'
 			act 'Continue':gt 'anush_bedroom_city','anushroom'
 		elseif anushkaQW['guitar_play'] = 5:

+ 1 - 1
locations/anushapt_city.qsrc

@@ -910,7 +910,7 @@ if $ARGS[0] = 'nushlivroom':
 		'"Shit, they''re home already. Come on, let''s go," she says as she gets up and heads to her room.'
 		act 'Follow Anushka to her room': locat['A144'] = 2 & gt 'anush_bedroom_city','anushroom'
 	end
-	if strapnumber > 0:
+	if strapnumber > 0 and npc_sex['A144'] > 0:
 		act 'Pull out your strap-on':
 			*clr & cla
 			gs 'stat'

+ 11 - 9
locations/anushkachat_city.qsrc

@@ -167,7 +167,7 @@ if $ARGS[0] = 'chat':
 			act 'Tell her about Djibril': gt 'anushkachat_city', 'tell_about_djibril1'
 		end
 	end
-	if DjibrilQW['tell'] = 1 and DjibrilQW['nush_inv'] = 0:
+	if DjibrilQW['tell'] = 1 and DjibrilQW['nush_inv'] = 0 and npc_sex['A144'] > 0:
 		act 'Invite to see Djibril': gt 'anushkachat_city', 'invite_djibril'
 	end
 	if DjibrilQW['nush_inv'] = 1 and DjibrilQW['tell'] = 1 and DjibrilQW['african_gangbang'] = 1:
@@ -329,8 +329,9 @@ if $ARGS[0] = 'chat':
 		'The way she says it makes you blush. She leaves no doubt about what she means and she makes it sound so dirty while being exciting at the same time.'
 		act 'Maybe':
 			*clr & cla
-			minut += 5
-			anushkaQW['sveta_love'] += 1
+			minut += 4
+			if anushkaQW['kiss_day'] ! daystart: anushkaQW['kiss_day'] = daystart & anushkaQW['kiss'] += 1
+			gs 'arousal', 'kiss', 1, 'lesbian'
 			gs 'npc_relationship', 'modify', 'A144', 'like'
 			'<center><h4><font color="maroon">Anushka''s Room</font></h4></center>'
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/bedroom/brtkiss.jpg"></center>'
@@ -390,7 +391,7 @@ if $ARGS[0] = 'chat':
 		end
 	end
 	gs 'willpower', 'misc', 'self', 'easy'
-	if will_cost <= pcs_willpwr:
+	if will_cost <= pcs_willpwr and anushkaQW['kiss_day'] ! daystart:
 		act 'Kiss her (<<will_cost>> Willpower)':
 			*clr & cla
 			gs 'willpower', 'pay', 'self'
@@ -401,6 +402,7 @@ if $ARGS[0] = 'chat':
 			else
 				anushkaQW['kiss'] += 1
 			end
+			anushkaQW['kiss_day'] = daystart
 			'<center><h4><font color="maroon">Anushka''s Room</font></h4></center>'
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/bedroom/brtkiss.jpg"></center>'
 			if pcs_hotcat >= 6:
@@ -646,7 +648,7 @@ if $ARGS[0] = 'boyfriend_chat':
 				act 'Stop talking': gt 'anush_bedroom_city','anushroom'
 				act 'Keep talking': gt 'anushkachat_city', 'chat'
 			else
-				if pcs_hotcat >= 6:
+				if pcs_hotcat >= 6 and npc_sex['A144'] > 0:
 					'"Fedor," you tell her.'
 					'She arches a slender brow. "Fedor? Really? Come on now, if you were going to date a jock why not go for one of the better athletes like Lazar or Ivan? I mean <b>Fedor</b>? He''s like an Ivan-lite," she says with a giggle.'
 					'You''re mad at her for talking smack about your boyfriend, but she can''t keep a straight face and you realize that she''s just yanking your chain. "Yeah, I like him. He''s sweet."'
@@ -705,7 +707,7 @@ if $ARGS[0] = 'boyfriend_chat':
 	if artemQW['bf'] = 1:
 		act 'Artem':
 			cla
-			if pcs_hotcat >= 6:
+			if pcs_hotcat >= 6 and npc_sex['A144'] > 0:
 				'"Artem," you tell her.'
 				'She arches a slender brow. "Artem? The nerd?" She seems to consider it for a moment. "Well, I guess he is kind of cute and I bet you have him totally pussy whipped to do whatever you want. Yeah okay, I can see the appeal," she says with a giggle.'
 				'You shake your head at her comment. "He''s sweet and really nice to me."'
@@ -936,7 +938,7 @@ if $ARGS[0] = 'tell_about_djibril':
 				'You get into some pretty graphic details as you tell your story and are feeling more than a little turned on; by the looks of things, she is as well. Maybe you could invite her to come with you to his dorm room one time?'
 				act 'Hang out in her room': gt 'anush_bedroom_city','anushroom'
 				act 'Talk about something else': gt 'anushkachat_city', 'chat'
-				if DjibrilQW['nush_inv'] = 0:
+				if DjibrilQW['nush_inv'] = 0 and npc_sex['A144'] > 0:
 					act 'Ask her if she wants join in': gt 'anushkachat_city', 'invite_djibril'
 				end
 			end
@@ -996,7 +998,7 @@ if $ARGS[0] = 'tell_about_djibril1':
 				'You get into some pretty graphic details as you tell your story and are feeling more than a little turned on; by the looks of things, she is as well. Maybe you could invite her to come with you to his dorm room one time?'
 				act 'Hang out in her room': gt 'anush_bedroom_city','anushroom'
 				act 'Talk about something else': gt 'anushkachat_city', 'chat'
-				if DjibrilQW['nush_inv'] = 0:
+				if DjibrilQW['nush_inv'] = 0 and npc_sex['A144'] > 0:
 					act 'Ask her if she wants join in': gt 'anushkachat_city', 'invite_djibril'
 				end
 			end
@@ -1062,7 +1064,7 @@ if $ARGS[0] = 'tell_about_djibril_gangbang':
 		'You get into some pretty graphic details as you tell your story and are feeling more than a little turned on; by the looks of things, she is as well. Maybe you could invite her to join in next time?'
 		act 'Hang out in her room': gt 'anush_bedroom_city','anushroom'
 		act 'Talk about something else': gt 'anushkachat_city', 'chat'
-		act 'Ask her if she wants join in': gt 'anushkachat_city', 'invite_djibril_gangbang'
+		if npc_sex['A144'] > 0: act 'Ask her if she wants join in': gt 'anushkachat_city', 'invite_djibril_gangbang'
 	end
 end
 

+ 2 - 0
locations/artem_events.qsrc

@@ -24,6 +24,8 @@ if $ARGS[0] = 'start':
 	ArtemBeInHome = 1
 	*clr & cla
 	menu_off = 1
+	!! If Katja and the player have planned a threesome with Artem and Vicky is not home this send you to the start of the threesome event
+	if artemQW['katja_threesome']  = 1 and locat['Vicky'] ! 8 and locat['Vicky'] ! 9 and locat['Vicky'] ! 12 and locat['Vicky'] ! 13: gt 'artem_katja_sex', 'going_home_together'
 	'<center><b><font color="maroon"><<$npc_firstname[''A2'']>> <<$npc_lastname[''A2'']>></font></b></center>'
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big2.jpg"></center>'
 	if kotovLoveQW > 0 and artemVitokQW = 0:

+ 820 - 0
locations/artem_katja_sex.qsrc

@@ -0,0 +1,820 @@
+# artem_katja_sex
+!2024/09/29
+
+!! artemQW['confidence'] = 0 Artem have never had sex with a girl or have had it but don''t think he did well
+!! artemQW['confidence'] = 1 Artem have had sex with a girl, but don''t think he satisfied her
+!! artemQW['confidence'] = 5 Artem thinks he is doing okay with sex with a single girl, maybe he even have had several girls at once and he not sure he satisfied them both, still not very sure on himself and awkward around girls he don''t know well or beautiful ones still.
+!! artemQW['confidence'] = 10 Artem thinks he knows how to satisfy women and is isn''t nervous in sexual situations with a single girl anymore, but still nervous with more than one girl at a time. He is now comfortable around girls he doesn''t know well or beautiful girls
+!! artemQW['confidence'] = 15 Artem knows he is good in bed, no longer nervous with threesomes or more, and don''t have a problem with taking charge anymore.
+!! artemQW['confidence'] = 20 Artem is turning into a true lover boy, flirting freely with girls he just meet, better be careful it does not go to much to his head.
+
+if $ARGS[0] = 'going_home_together':
+	menu_off = 1	
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big2.jpg"></center>'
+	'You walk across the school courtyard to meet up with Artem. He gives you a friendly nod as you approach. "You ready to go?"'
+	'You smile. "Let''s go study!"'
+	'But just as you are starting to walk Katja comes over to you an interrupts. "I thought we were going to do homework together today <<$pcs_nickname>>" she says.'
+	if artemQW['confidence'] < 10:
+		'Artem turns to you and ask "Oh..." then he looks at Katja, before looking back to you. "That''s ok... you guys can go study... I will see you later...?" He says, you can tell he is nervous, and as he is not looking at Katja who winks at you signaling that she is ready to put you plan for having a threesome into motion.'
+	else
+		'Artem turns to you and ask "Is that true <<$pcs_nickname>>?", and as he is not looking at Katja who winks at you signaling that she is ready to put you plan for having a threesome into motion.'
+	end
+	act 'Continue with the plan': 
+		*clr & cla
+		minut +=2
+		gs 'npc_relationship', 'modify', 'A2', 'like'
+		gs 'npc_relationship', 'modify', 'A2', 'love'
+		gs 'stat'
+		'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+		'"Oh. I completely forgot that I promised that to Katja. Why don''t we just do homework together all three of us?" you ask.'
+		'"Okay. We can do that" Katja replies a little to quickly and you are for a moment afraid that Artem will suspect that he is being set up.'
+		'But he just looks confused, and you say "Come on Artem, Katja is really good at the English pronunciation which you are struggling with, I''m sure studying with her is going to big a big help."'
+		if artemQW['confidence'] < 10:
+			'He still hesitates and you are afraid that you came on to thick, but after a moments he relents. "Okay, Let''s study together all three of us today. But I don''t have enough table space in my room."'
+		else
+			'He still hesitates and you are afraid that you came on to thick, but after a moments he smiles. "Sure that sounds good. But I don''t have enough table space in my room."'
+		end
+		'"That''s no problem, nobody else is going to be home at my place for several hours. So we can work in my kitchen" Katja say.'
+		*nl
+		if artemQW['confidence'] < 10:
+			'You then walks to the Meynold house mostly in silence. Artem is clearly still not very confident around women he does not know very well.'
+			if katjaQW['QWstage'] = 5:
+				'Katja has also gotten quite, after her coming on very enthusiastic earlier. You think the fact that she is about to have sex with boy for the first time is suddenly getting to her.'
+			else
+				'Katja tries to get him to talk but it does not really help.'
+			end
+		elseif artemQW['confidence'] < 20:
+			if katjaQW['QWstage'] = 5:
+				'You then walks to the Meynold house with Artem trying to make casual conversation with Katja, but she only responds in short sentences.'
+				'You think the fact that she is about to have sex with boy for the first time is suddenly getting to her.'
+			else
+				'You then walks to the Meynold house with Artem and Katja quickly falling into conversation.'
+			end
+		else
+			'You then walks to the Meynold house with Artem clearly tying to '+iif(artemQW['threesome'] = 1, 'flirt.', 'impress Katja')
+			if katjaQW['QWstage'] = 5:
+				'Katja does not really respond to him. You think the fact that  she is about to have sex with boy for the first time is suddenly getting to her.'
+			elseif katjaQW['QWstage'] >= 7:
+				'Katja respond in kind flirting overtly with him. You are almost afraid that she will drag him into the bushes to jump him immediately.'
+			else
+				'Katja appreciates the attention and respond well to his advances.'
+			end			
+		end
+		act 'Start doing homework': gt 'artem_katja_sex', 'first_time_start'
+	end
+	act 'Go with Katja':
+		*clr & cla
+		minut +=2
+		gs 'npc_relationship', 'modify', 'A2', 'dislike'
+		gs 'npc_relationship', 'modify', 'A14', 'dislike'
+		gs 'stat'
+		'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+		'"I''m so sorry. I really am. But Katja is correct. I did promise her to do homework with her today. We can hang out another time Artem. I might come over when I have finished our homework." You tell Artem'
+		'He looks a little down, but says "Well if you promised her, then you should keep it. See you later <<pcs_nickname>>" he says and then start to walk home alone.'
+		*nl
+		'"Why did you send him away?" Katja ask "I thought that the plane was to seduce him to a threesome?"'
+		'"Not today, maybe next time" you tell her "Let''s go to your house".'
+		act 'Go do your homework with Katja': gt 'katjaEV','1'
+	end
+	act 'Go with Artem':
+		*clr & cla
+		minut +=2
+		gs 'npc_relationship', 'modify', 'A2', 'like'
+		gs 'npc_relationship', 'modify', 'A14', 'hate'
+		gs 'stat'
+		'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big2.jpg"></center>'
+		'"I''m pretty sure you remember wrong. I told you I would be hanging out with my boyfriend today. So we will just have to do homework at some other time" You say to Katja.'
+		'Katja looks stunned by your reply, but then quickly get her act together. "Well then see you another time" she says with a clear hint of disappointment before she leaves you and Artem alone.'
+		*nl
+		'"What was that about?" Artem ask a little concerned. "It''s nothing, Katja will be fine tomorrow" you reassures him "Let''s go"'
+		act 'Go to Artem''s home': ArtemLoc = 2 & minut += 5 & gt 'artemhome', 'artemroom'
+	end
+end
+
+if $ARGS[0] = 'first_time_start':
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/first_time_1.jpg"></center>'
+	minut += 30
+	lern += rand(2, 4)
+	gs 'exp_gain', 'intel', rand(0, 1)
+	gs 'exp_gain', 'prcptn', rand(0,1)
+	if lernHome >= 1:
+		gs 'grades', 'homework', 'school', 'yes', 1, 3, 80
+	end
+	gs 'stat'
+	'As you get to the Meynold house Katja lets you in and shows you to the kitchen. She then go gets her own homework while you and Artem open you packs to get out yours.'
+	if katjaQW['QWstage'] = 5:
+		if artemQW['confidence'] < 10:
+			'You start working on the homework, but both Katja and Artem are clearly not very comfortable with the situation, so it is mostly just you you that drive the conversation.'
+			'But since both Katja and Artem really likes to study some of the tension disappears as you get further into the details of the homework, and since they are both are excellent students you get a lot of good work done despite the situation.'
+		elseif artemQW['confidence'] < 20:
+			'You start working on the homework, but Katja is clearly not very comfortable with the situation. Artem on the other hand treats Katja like she was one of the girls he usually does homework with and not as it was the first time.'
+			'While that makes it more awkward for Katja some of the tension disappears as you get further into the details of the homework, and since they are both are excellent students you get a lot of good work done despite the situation.'
+		else
+			'You start working on the homework, but Katja is clearly not very comfortable with the situation. Artem on the other hand acts likes doing homework with girls he does not know well is something he does every day, and it is clear that he is trying to flirt with Katja while you study.'
+			'While that makes it more awkward for Katja some of the tension disappears as you get further into the details of the homework, and since they are both are excellent students you get a lot of good work done despite the situation.'
+		end
+	else
+		if artemQW['confidence'] < 10:
+			'You start working on the homework, but Artem are clearly not very comfortable with the situation, so even if Katja tries to be normal about the situation he barely says anything and keeps looking down on the homework instead at on her when he answers her.'
+			'But since Artem really likes to study some of the tension disappears as you get further into the details of the homework, and since they are both are excellent students you get a lot of good work done despite the situation.'
+		elseif artemQW['confidence'] < 20:
+			'You start working on the homework, both Katja and Artem quickly gets the flow of things and soon the studying session is no different that when the nerds study together at the library,'
+			'Since they are both are excellent students you get a lot of good work done.'
+		else
+			'You start working on the homework, Artem act likes doing homework with girls he does not know well is something he does every day. He overtly flirts with Katja that returns in kind.'
+			'This does create some sexual tension but it subsides as you get further into the details of the homework, and since they are both are excellent students you get a lot of good work done despite the situation.'
+		end
+	end
+	*nl
+	'As you are close to finishing up, Katja gives you a look which clearly is asking for confirmation for starting the seduction of Artem.'
+	act 'Start the seduction': gt 'artem_katja_sex', 'first_time_seduction'
+	act 'Call it of':
+		*clr & cla
+		minut += 5
+		gs 'npc_relationship', 'modify', 'A14', 'hate'
+		gs 'stat'
+		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/first_time_1.jpg"></center>'
+		'You shake your head at Katja who looks frustrated, but get back to the homework but without much enthusiasm.'
+		*nl
+		'After a few minutes more you finish up, and you and Artem pack up your stuff and head out.'
+		'Before you leave Katja dregs you to the sides and says such that Artem can''t hear "I thought we was going to do more?" "Not today, maybe anther time" you say an quickly leave an quite angry Katja behind.'
+		act 'Go to Artem''s home': gt 'artem_katja_sex', 'first_time_aborted_walking_home'
+	end
+end
+
+if $ARGS[0] = 'first_time_aborted_walking_home':
+	minut += 10
+	gs 'stat'
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/going_home_with_artem.jpg"></center>'
+	if artemQW['confidence'] < 10:
+		'The two of you walk home, while Artem talks about the homework the three of you did, he seems completely oblivious to what else was going on. You think to yourself maybe that is for the best.'
+	elseif artemQW['confidence'] < 20:
+		if artemQW['threesome'] = 1:
+			'The two of you walk home, during the walk Artem talks about studying but then shyly says. "You think Katja might be interested?"'
+			'You know exactly what he is thinking, but you decide to play dumb and make him say it. "Interested in what?"'
+			'He suddenly blushes. "You know a the three of us... spending time together... you know..."'
+			'You can''t help but snicker a bit. "I''ll think about it and if I decide yes I will talk to her about it." He just nods and the two of you just make casual conversation the rest of the way to the building.'
+		else
+			'The two of you walk home, while Artem talks about the homework the three of you did, he seems completely oblivious to what else was going on. Yet he talks about how much he enjoyed studying with Katja and suggest perhaps the three of you could do it again some time.'
+		end
+	else
+		if artemQW['threesome'] = 1:
+			'The two of you walk home, during the walk Artem talks about studying but then abruptly says. "You think Katja might be interested?"'
+			'You know exactly what he is thinking, but you decide to play dumb and make him say it. "Interested in what?"'
+			'He smiles knowing what you are doing. "You know a threesome, I think it would be fun and she looks like she could use a little nerd dick in her." He says with a laugh.'
+			'You playfull slap his shoulder, you have certainly turned him into a bit of a player. "I''ll think about it and if I decide yes I will talk to her about it." He just nods and the two of you just make casual conversation the rest of the way to the building.'
+		else
+			'The two of you walk home, while Artem talks about the homework the three of you did, he seems completely oblivious to what else was going on. Yet he talks about how much he enjoyed studying with Katja, as well as how cute she was looking today, and suggest perhaps the three of you could do it again some time.'
+		end
+	end
+	'The two of you finally get back the your apartment building, Artem tells you bye before heading into his apartment.'
+	act 'Alone': gt 'pod_ezd', 'etaj_1'
+end
+
+if $ARGS[0] = 'first_time_seduction':
+	minut += 2
+	gs 'stat'
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/first_time_2.jpg"></center>'
+	if $pantyworntype ! 'none':
+		'You give a nod to Katja and move behind Artem. Katja then drops drops her pen to the floor pretending it was an accident.'
+		'"Oops. I better pick that up" she says before crawling under the table, while Artem is distracted by Katja under the table you quickly remove you panties.'
+	else
+		'You give a nod to Katja. Katja then drops drops her pen to the floor pretending it was an accident. "Oops. I better pick that up" she says before crawling under the table.'
+	end
+	'Katja pretends she can''t find her pen and crawls between Artem''s legs. He of course looks down to see what is going on.'
+	'Katja times it perfectly so when she looks up at him his eyes falls on her nice c-cup breast which she deliberately push forward so that her her low cut shirt exposes a lot of cleavage.'
+	'Artem'' can''t move his eyas from her boobs, '+iif(artemQW['confidence'] < 10, 'and is getting completely red in his face', ' but seems to be able to keep his composure.')
+	'The look on Katja''s face says gotcha, and she says with a seductive smile "Like what you see" pushing her breast up further using her hands so that there is no doubt about what she is refereeing to.'
+	'You sit on the table and mirror Katja''s move.'
+	act 'See Artem''s response':
+		*clr & cla
+		gs 'arousal', 'foreplay', 3
+		gs 'stat'
+		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/first_time_3.jpg"></center>'
+		if artemQW['threesome'] = 0:
+			if artemQW['confidence'] < 10:
+				'Artem looks completely out of it and has no idea how to react and is on the verge of panicking, so you decide to try to calm him down.'
+				'"It''s okay Artem, Katja is my friend and I like to share with my friends. I told her how amazing you are in bed, and she wanted to also experience that. How could her deny her that. So just relax and enjoy the experience." you tell him.'
+				'He seems to calm down a little and '+iif( katjaQW['QWstage'] = 5, ' you tell Katja "Why don''t you get his cock out to play with."', 'Katja says "Why don''t I take your nice cock out and give some attention to it."') 
+			elseif artemQW['confidence'] < 15:
+				'Artem does not seem to know how to react to the situation, so he looks at you as is he is waiting for you to explain what is going on.'
+				'"It''s okay Artem, Katja is my friend and I like to share with my friends. I told her how amazing you are in bed, and she wanted to also experience that. How could her deny her that. So just relax and enjoy the experience." you tell him.'
+				'He then stammers "Yes. I do like what i see..." '+iif( katjaQW['QWstage'] = 5, 'You notice that now it is Katja''s turn to not know what to do and you tell her "Why don''t you get his cock out to play with."', 'Katja responds to him "Thanks for the compliment, why don''t I reward it by take your nice cock out and give some attention to it."') 
+			elseif artemQW['confidence'] < 20:
+				'Artem looks at you to see the see your reaction, and when you smile back seductively he says "I do like what I see, are you sure that we are going to do this <<pcs_nickname>>?".'
+				'"Katja is my friend and I like to share with my friends. I told her how amazing you are in bed, and she wanted to also experience that. How could her deny her that. So just relax and enjoy the experience." you answer him.'
+				iif( katjaQW['QWstage'] = 5, 'You notice that now it is Katja''s turn to not know what to do and you tell her "Why don''t you get his cock out to play with."', 'Katja then says "Thanks for the compliment Artem, why don''t I reward it by take your nice cock out and give some attention to it."') 
+			else
+				'Artem briefly looks at you to see you reaction, and when you just smiles back seductively he say "I very much like what I see. This is great view and I''m sure that things only can get better. But I''m a little surprised that <<pcs_nickname>> wants to share me with you."'
+				'"Katja is my friend and I like to share with my friends. I told her how amazing you are in bed, and she wanted to also experience that. How could her deny her that." you answer him.'
+				'"Why don''t you get my cock out to play with Katja" Artem continues. '+iif( katjaQW['QWstage'] = 5, 'Katja looks a little surprised by his assertiveness but answers "Yes it is time to give it some attention."', 'Katja responds to him "Thanks for the compliment, you cock definitely deserves some attention for that nice compliment."') 
+			end
+		else
+			if artemQW['confidence'] < 10:
+				'Artem very embarrassed and still doesn''t seem to have any idea how to react, so you decide to try to calm him down.'
+				'"It''s okay Artem, Katja is my friend and as you know I like to share with my friends. I told her how amazing you are in bed, and she wanted to also experience that. How could her deny her that. So just relax and enjoy the experience." you tell him.'
+				'He seems to calm down a little and '+iif( katjaQW['QWstage'] = 5, ' you tell Katja "Why don''t you get his cock out to play with."', 'Katja says "Why don''t I take your nice cock out and give some attention to it."') 
+			elseif artemQW['confidence'] < 15:
+				'Artem is still not confident enough to take control of the situation, so he looks at you to see what to do.'
+				'"It''s okay Artem, Katja is my friend and as you know  I like to share with my friends. I told her how amazing you are in bed, and she wanted to also experience that. How could her deny her that. So just relax and enjoy the experience." you tell him.'
+				'He then answers Katja "Yes. Katja I do like what i see." '+iif( katjaQW['QWstage'] = 5, 'You notice that now it is Katja''s turn to not know what to do and you tell her "Why don''t you get his cock out to play with."', 'Katja responds to him "Thanks for the compliment, why don''t I reward it by take you nice cock out and give some attention to it."') 
+			elseif artemQW['confidence'] < 20:
+				'Artem looks at you to see the see your reaction, and when you smile back seductively he says "I do like what I see Katja, so you are you going to share all you friends with me <<pcs_nickname>>?".'
+				'"I like to share with my friends so if they want to yes. I told her how amazing you are in bed, and she wanted to also experience that. How could her deny her that. So just relax and enjoy the experience." you answer him.'
+				iif( katjaQW['QWstage'] = 5, 'You notice that now it is Katja''s turn to not know what to do and you tell her "Why don''t you get his cock out to play with."', 'Katja then says "Thanks for the compliment Artem, why don''t I reward it by take your nice cock out and give some attention to it."') 
+			else
+				'Artem briefly looks at you to see you reaction, and when you just smiles back seductively he say "I very much like what I see. This is great view and I''m sure that things only can get better. I look forward to you sharing me with the rest of your friends <<pcs_nickname>>?".'
+				'"I like to share with my friends so if they want to yes. I told her how amazing you are in bed, and she wanted to also experience that. How could her deny her that." you answer him.'
+				'"Why don''t you get my cock out to play with Katja" he continues. '+iif( katjaQW['QWstage'] = 5, 'Katja looks a little surprised by his assertiveness but answers "Yes it is time to give it some attention."', 'Katja responds to him "Thanks for the compliment, your cock definitely deserves some attention for that nice compliment."') 
+			end
+		end
+		'While Katja open his pants and slowly pulls out his cock you sit up on the table with legs spread so that you naked pussy is in from of Artem''s face.'
+		act 'Licking':
+			*clr & cla
+			minut += 2
+			gs 'boystat', 'A2'
+			gs 'stat'
+			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/first_time_4.jpg"></center>'
+			if katjaQW['QWstage'] = 5:
+				'Katja gets out Artem''s not yet completely hard cock and take it in her hands "Wow, so this is what a real cock feels like. So warm and nice but somewhat soft. Oh.." Katja suddenly stops what she is saying as Artem cock turns extremely hard in her hands.'
+				'She then starts to wank it a little clearly showing that she only have had plastic cocks in her hand before. "Why don''t you try to lick it" '+iif(artemQW['confidence'] < 15, ' you say.', 'Artem says.')
+				'"Okay" Katja responds, sticks out her tongue and start to lick Artem''s shaft. "It doesn''t taste bad" she says. "Time to see if I can take everything" she continues.'
+				if 2*npc_throat['A14'] < dick: 
+					npc_throat['A14'] += 1
+					'Katja the tries to get Artem''s <<$dick_girth>> <<dick>> cm long dick into her mouth, but can''t manage to get much more than the head inside. But she then start sucking on what she can accommodate in her mouth.'
+				elseif npc_throat['A14'] < dick: 
+					npc_throat['A14'] += 1
+					'Katja the tries to get all of Artem''s <<$dick_girth>> <<dick>> cm long dick into her mouth, but is clearly having problems with her gag reflex when it hits her throat. But she quickly gets into a rhythm that matches what she can take, only occasionally having to stop when she tries to take to much.'
+					if artemQW['confidence'] > 14:
+						KatjaQW['horny'] += rand(5,10)
+						'"You really haven''t suck a cock before? That''s hard to believe with how good you are doing" Artem says, "Thanks, I have practiced a lot with plastic ones" Katja replay.'
+					end
+				else
+					'Katja takes all of Artem''s <<$dick_girth>> <<dick>> cm long dick into her mouth and down her throat with out gaging. She then quickly gets into a rhythm  where she moves from almost only sucking the tip to getting all the way to the base of the cock.'
+					if artemQW['confidence'] > 14:
+						KatjaQW['horny'] += rand(10,15)
+						'"Wow. You really haven''t sucked a cock before?" he briefly moans before continuing" I can''t believe that, you are sucking like a pro" Artem says, "Thanks, I have practiced a lot with plastic ones" Katja replay.'
+					end
+				end
+			else
+				'Katja gets out Artem''s not yet completely hard cock and take it in her hands "This is a nice cock you have I''m looking forward to play with it. Oh I can see that is is also looking forward to be played with." Katja says while Artem cock turns extremely hard in her hands.'
+				'She then she gives it a few wanks before and start to slowly use her tongue on it "Taste great, Time to see if I can take everything" she continues.'
+				if npc_throat['A14'] < 2*dick: 
+					npc_throat['A14'] += 1
+					'Katja the tries to get Artem''s <<$dick_girth>> <<dick>> cm long dick into her mouth, but can''t manage to get much more than the head inside. But she then start sucking on what she can accommodate in her mouth.'
+				elseif npc_throat['A14'] < dick: 
+					npc_throat['A14'] += 1
+					'Katja the tries to get all of Artem''s <<$dick_girth>> <<dick>> cm long dick into her mouth, but is clearly having problems with her gag reflex when it hits her throat. But she quickly gets into a rhythm that matches what she can take, only occasionally having to stop when she tries to take to much.'
+				else
+					'Katja takes all of Artem''s <<$dick_girth>> <<dick>> cm long dick into her mouth and down her throat with out gaging. She then quickly gets into a rhythm  where she moves from almost only sucking the tip to getting all the way to the base of the cock.'
+					if artemQW['confidence'] > 14:
+						KatjaQW['horny'] += rand(10,15)
+						'"Wow. You are great, sucking cock like a pro" Artem says, "Thanks, I have had some practice" Katja replay with a wink.'
+					end
+				end
+			end
+			'Not wanting to be left out of the fun you tell Artem "Go down on me", and he immediately obeys moving down on his knees and start to lick your pussy.'
+			gs 'arousal', 'cuni', 3
+			gs 'stat'
+			act ' Share his cock':
+				*clr & cla
+				gs 'arousal', 'bj', 2
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/first_time_5.jpg"></center>'				
+				'After a few minutes Artem''s licking becomes less enthusiastic, and you notice the awkward position he is in and  you say "Okay, time for me also to taste that cock."'
+				'Both Artem and Katja stops and you get of the table. "Sit back and relax" you tell Artem as you get down on your knees next to Katja.'
+				'The two of you the starts to take turns licking his extremely hard dick.'
+				if pcs_cupsize > 15:
+					act 'Show Katja how a titjob is done': gt 'artem_katja_sex', 'first_time_titjob'
+				end
+				act 'Get to pussy fucking': gt 'artem_katja_sex', 'first_time_pussy'
+			end
+		end
+	end
+end
+
+if $ARGS[0] = 'first_time_titjob':
+	minut += 1
+	gs 'arousal', 'titjob', 2
+	gs 'stat'
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/first_time_5a.jpg"></center>'
+	'After you have shared his cock for a little while you say "Katja and Artem I want to show you something, but first we need to get rid of the rest of our clothes Katja. You just relax while we strip Artem."'
+	'You and Katja then strip out off your clothes and get back down on you knees again. "Make sure his cock is very wet" you tell Katja and she start to give him a sloppy blowjob.'
+	'While she does that you spit one you boobs to lube the up. The you say "Okay, that is enough, let me show you how a titjob is done."'
+	'Katja let go of Artem''s cock and moves aside. You then move you breast around Artem''s dick and use your hands to push them together enveloping the cock.'
+	'When you are sure that you have a tight grip then you start to move your breast up and down along Artem''s shaft.'
+	act 'Katja''s turn':
+		*clr & cla
+		gs 'arousal', 'bj', 1
+		gs 'arousal', 'foreplay_give', 2
+		katjaQW['horny'] += rand(5,10)
+		katjaQW['titjob'] += 1
+		gs 'stat'
+		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/first_time_5b.jpg"></center>'
+		'Katja is looking very exited as Artem is using your tits as a pussy, and after a few minutes says "I wanna try that."'
+		'You let go of his cock and says "Okay. But first you need to make you boobs slippery. I will lube up Artem''s while you do that."'
+		'Katja start lubing up her breast with her spit, while you give Artem''s cock another sloppy blowjob. When you think that is well lubed again you let go.'
+		'"Katja get down and take his cock between you tits. Remember to squeeze tight." you order. Katja does as she is told, and you get behind her and help her pressing her boobs around his cock.'
+		'"Okay start moving Katja" you say when you are sure the grip is tight, and she start dragging her boobs along his hard dick.'
+		'You continue for a couple of minutes with Artem clearly enjoying what you are doing.'
+		if artemQW['confidence'] < 10:
+			'But you can see that Artem is getting closer to coming, so you say "I think that is enough, else we don''t have any cock for our pussies."'
+		else
+			'But then he say "This is the best view ever, but if you continue then I will come all over you before we even get to any fucking."'
+		end
+		act 'Get to pussy fucking': gt 'artem_katja_sex', 'first_time_pussy'
+	end
+end
+
+if $ARGS[0] = 'first_time_pussy':
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/first_time_6.jpg"></center>'
+	'You get up from the floor and move the a chair putting both you knees on it, sticking you ass in the air and supporting yourself on the table.'
+	'"Come on Artem, time we show Katja how you take me doggystyle" you say. He quickly moves behind you and enters you.'
+	'Katja moves close and start to lick you boobs while Artem is pounding you from behind.' 
+	gs 'arousal', 'vaginal', 3
+	gs 'arousal', 'foreplay', -2
+	gs 'stat'
+	if  katjaQW['QWstage'] = 5:
+		act 'Katja''s time to try her first cock':	
+			*clr & cla
+			gs 'arousal', 'foreplay_give', 3
+			gs 'stat'
+			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/first_time_7.jpg"></center>'
+			'After getting pounded for some time with Katja looking on exited you think it is time to Katja to try her first cock, so you say "Now it is time to try her first cock Artem."'
+			if artemQW['confidence'] < 15:
+				'Artem pulls out of you, but clearly isn''t ready to take imitative and just stand there looking lost. "Come on Katja take my place" you say and get down on the floor next to the chair.'
+				'She does as told but clearly looking  '+iif(npc_vag['A14'] = 0, 'very', 'a little')+' nervous. "Don''t worry, Katja Artem will be very careful, won''t he" you say looking at Artem to make sure he understand.'
+				if artemQW['confidence'] < 10:
+					if npc_vag['A14'] = 0:
+						katjaQW['horny'] -= rand(10,20)
+						katjaQW['slut'] -= 5
+						'Artem does not say anything just nods and slowly walk behind Katja and very slowly enters her and stops when he meets resistance of Katja''s hymen.'
+						'It is clear that he is not going to pop her cherry by himself. "Are you ready Katja" you say, and she just nods. "Do it Artem push through her hymen" you the order.'
+						'He just as told pushes forward in on sharp moment and Katja let out a shriek of pain. "Oh. I''m sorry" Artem says "Don''t be I was expecting that. Just keep it still for a moment" Katja says.'
+					elseif 2*npc_vag['A14'] < dick:
+						katjaQW['horny'] -= rand(5,10)
+						'Artem does not say anything just nods and slowly walk behind Katja and very slowly enters her and stops when he meets some resistance because how tight Katja is.'
+						'Katja the tells him "it is okay to push further" and does that in on sharp moment and Katja let out a shriek of pain. "Oh. I''m sorry" Artem says "Don''t be. Just keep it still for a moment" Katja says.'
+					else
+						'Artem does not say anything just nods and slowly walk behind Katja and very slowly enters her and only stops when he his cock is completely buried inside her.'
+					end
+					*nl
+					'After a short moment Katja says "It''s okay, you can start to move" and he does that.'
+					if artemQW['artem_dom'] > 4:
+						'Artem starts slowly to move in and out of Katja, but soon he starts to pickup speed he gets rougher and rougher.'
+						if npc_vag['A14'] < dick:
+							katjaQW['horny'] -= rand(10,20)
+							katjaQW['slut'] -= 5
+							'What starts out as small moans from Katja turns into sounds of pain as Artem starts to pound her like a cheap slut.'
+						else
+							katjaQW['horny'] += rand(5,10)
+							'Katja starts with small moans but as he picks up his speed the get higher and higher.'
+						end
+					else
+						'Artem starts slowly to move in and out of Katja, and does not seem to pick up speed.'
+						if npc_vag['A14'] < dick:
+							katjaQW['horny'] -= rand(5,10)
+							'Since you can see that Katja clearly is feeling some pain from this, you let him continue very slowly. This makes Katja''s pain seem to go away, and by the end she is moaning quietly.'
+						else
+							katjaQW['horny'] += rand(5,10)
+							'Since Katja don''t seem to feel any pain but clearly also not much satisfaction, you tell Artem "Go, faster. You can fuck her harder." He does what you say and soon he is pounding her and she starts to moan loudly.'
+						end
+					end
+				else
+					if npc_vag['A14'] = 0:
+						katjaQW['horny'] -= rand(10,15)
+						katjaQW['slut'] -= 5
+						'Artem does not say anything just nods and slowly walk behind Katja and very slowly enters her and stops when he meets resistance of Katja''s hymen.'
+						'He then says "Are you ready Katja", and she just nods. Not being completely sure on her answer Artem he hesitates a little and you say "Do it Artem push through her hymen" to encourage him.'
+						'"Here it come  Katja" Artem say as he pushes forward in on sharp moment and Katja let out a shriek of pain. "Oh. I''m sorry" Artem says "Don''t be I was expecting that. Just keep it still for a moment" Katja says.'
+					elseif 2*npc_vag['A14'] < dick:
+						katjaQW['horny'] -= rand(5,10)
+						'Artem does not say anything just nods and slowly walk behind Katja and very slowly enters her and stops when he meets some resistance because how tight Katja is.'
+						'"Is it okay" Artem ask and Katja answers him "it is okay. You can push further" and does that in on sharp moment and Katja let out a shriek of pain. "Oh. I''m sorry" Artem says "Don''t be . Just keep it still for a moment" Katja says.'
+					else
+						'Artem just nods and slowly walk behind Katja and says "Here it come Katja" very slowly enters her and only stops when he his cock is completely buried inside her.'
+					end
+					*nl
+					'After a short moment Artem ask "Is it okay to move now, Katja" and she answers "It''s okay, you can start to move". He then start to move in and out.'
+					if artemQW['artem_dom'] > 4:
+						'Artem starts slowly to move in and out of Katja, but soon he starts to pickup speed he gets rougher and rougher.'
+						if npc_vag['A14'] < dick:
+							katjaQW['horny'] -= rand(10,15)
+							katjaQW['slut'] -= 5
+							'What starts out as small moans from Katja turns into sounds of pain as Artem starts to pound her like a cheap slut. He notice this after a little while and says "I''m very sorry" Katja, and then slows down almost to much.'
+						else
+							katjaQW['horny'] += rand(5,10)
+							'Katja starts with small moans but as he picks up his speed the get higher and higher.'
+						end
+					else
+						'Artem starts slowly to move in and out of Katja, but starts to pick up some speed.'
+						if npc_vag['A14'] < dick:
+							katjaQW['horny'] -= rand(0,5)
+							'This makes Katja feel some pain which Artem quickly notice. "I''m sorry Katja. I will be more careful" he says and slows down. This makes Katja''s pain seem to go away, and by the end she is moaning quietly.'
+						else
+							katjaQW['horny'] += rand(5,10)
+							'AS he goes faster Katja''s moans becomes large, and the makes Artem pick up more speed. By the end he is pounding her hard  and she moan very loudly.'
+						end
+					end
+				end
+			else
+				'Artem pulls out of you, and says "Come Katja take <<$pcs_nickname>> place and I will show you a great first time". You get down on the floor next to the chair to give space for Katja.' 
+				'She does as told but clearly looking  '+iif(npc_vag['A14'] = 0, 'very', 'a little')+' nervous. "Don''t worry, Katja Artem will be very careful, wont he" you say looking at Artem who quickly answers "you are in good hands, Katja I will do anything so that it feels pleasant and not painful."'
+				if artemQW['artem_dom'] > 4:
+					'Artem moves behind Katja and places his cock at the entrance of her vagina. "Are you ready to get fucked and become a woman, Katja?" he ask in an almost too confident tone, and Katja reacts very harshly.'
+					if npc_vag['A14'] = 0:
+						katjaQW['horny'] -= rand(10,15)
+						katjaQW['slut'] -= 7
+						'"Loosing my hymen has nothing to do with if I''m a woman or not, what cave did you crawl out of" she says in a shard voice. Artem is clearly taken aback by her outburst and freezes.'
+						'"He did not mean anything by it Katja, it i just stupid talk that goes around in boys world isn''t it Artem?" you quickly say to try to deflate the tension.'
+						'"I''m very sorry Katja, that is just though talk tat guys do. I shouldn''t have said it. Please accept my apologies" Artem answers. "Okay. Apology accepted, you can go ahead" Katja says.'
+						'He slowly pushes his cock into her and stops when he hit her hymen. After a moment he says "I''m going to push though your hymen now. It might cause a little pain. Are you ready" Artem asks.' 
+						'Katja looks ar you and says "I''m ready" and Artem pushes his cock as far in as he can in one smooth move. Katja let out a small shriek of pain. "I''ll keep still for now so you can get used to it. Let me know when you are ready for me to move" Artem says.'
+					elseif 2*npc_vag['A14'] < dick:
+						katjaQW['horny'] -= rand(5,10)
+						katjaQW['slut'] -= 5
+						'"I''ve been fucked before by <<$pcs_nickname>> and having sex has  nothing todo with if I''m a woman or not, what cave did you crawl out of" she says in a shard voice. Artem is clearly taken aback by her outburst and freezes.'
+						'"He did not mean anything by it Katja, it i just stupid talk that goes around in boys world isn''t it Artem?" you quickly say to try to deflate the tension.'
+						'"I''m very sorry Katja, that is just though talk tat guys do. I shouldn''t have said it. Please accept my apologies" Artem answers. "Okay. Apology accepted, you can go ahead" Katja says.'
+						'He slowly pushes his cock into her and is very careful when he can feel the great resistance of her tight pussy. But he manage to push it all the way to the base without causing her any pain.'
+						'He then stops and says "I''m now al the way in Katja, let me know when you are ready for me to move."'
+					else
+						katjaQW['slut'] -= 2
+						'"I''ve been fucked before by <<$pcs_nickname>> and having sex has  nothing todo with if I''m a woman or not, what cave did you crawl out of" she says in a shard voice. Artem is clearly taken aback by her outburst and freezes.'
+						'"He did not mean anything by it Katja, it i just stupid talk that goes around in boys world isn''t it Artem?" you quickly say to try to deflate the tension.'
+						'"I''m very sorry Katja, that is just though talk tat guys do. I shouldn''t have said it. Please accept my apologies" Artem answers. "Okay. Apology accepted, you can go ahead" Katja says.'
+						'He slowly pushes his cock into her ,and he manage to push it all the way to the base without causing her any pain.'
+						'He then stops and says "I''m now al the way in Katja, let me know when you are ready for me to move."'
+					end
+					*nl
+					katjaQW['horny'] += rand(5,10)
+					'After a short moment Katja says "It''s okay, you can start to move" and he does that.'
+					'He then starts to pick up pace and gets rougher and rougher, but never so rough that it becomes painful for Katja, and  and she starts to moan loudly.'
+				else
+					'Artem moves behind Katja and places his cock at the entrance of her vagina. "Are you ready to feel a big cock in your tight pussy, Katja?" he ask seeming very confident of his sex skill.'
+					if npc_vag['A14'] = 0:
+						katjaQW['horny'] -= rand(5,10)
+						katjaQW['slut'] -= 5
+						'"Please be careful Artem, I''ve never had anything bigger than a finger in there" Katja says, "I promise that I will be as gentle as promise. I probably can''t avoid causing you a little pain, but I will try to make it a little as possible" Artem answers.'
+						'He slowly pushes his cock into her and stops when he hit her hymen. After a moment he says "I''m going to push though your hymen now. It might cause a little pain. Are you ready" Artem asks.' 
+						'Katja looks ar you and says "I''m ready" and Artem pushes his cock as far in as he can in one smooth move. Katja let out a small shriek of pain. "I''ll keep still for now so you can get used to it. Let me know when you are ready for me to move" Artem says.'
+					elseif 2*npc_vag['A14'] < dick:
+						katjaQW['horny'] -= rand(0,5)
+						'"Please be careful Artem, i''ve been fucked before by <<$pcs_nickname>>, but your cock seem very big." Katja says, "I promise that I will be as gentle as promise, and you wont feel any pain" Artem answers.'
+						'He slowly pushes his cock into her and is very careful when he can feel the great resistance of her tight pussy. But he manage to push it all the way to the base without causing her any pain.'
+						'He then stops and says "I''m now all the way in Katja, let me know when you are ready for me to move."'
+					else
+						'"I''ve been fucked before by <<$pcs_nickname>> so your cock does not scare me" Katja says.'
+						'Artem then slowly pushes his cock into her ,and he manage to push it all the way to the base without causing her any pain.'
+						'He then stops and says "I''m now al the way in Katja, let me know when you are ready for me to move."'
+					end
+					*nl
+					katjaQW['horny'] += rand(5,10)
+					'After a short moment Katja says "It''s okay, you can start to move" and he does that.'
+					'He then starts to pick up pace and fucks her fast and hard, but never so rough that it becomes painful for Katja, and  and she starts to moan loudly.'
+				end
+			end
+			act 'Change of position': gt 'artem_katja_sex', 'first_time_next'
+		end
+	else
+		act 'Katja''s turn':
+			*clr & cla
+			gs 'arousal', 'foreplay_give', 3
+			gs 'stat'
+			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/first_time_7.jpg"></center>'
+			'After getting pounded for some time with Katja looking on exited she says "I think now it is time for me to try Artem''s cock."'
+			if artemQW['confidence'] < 15:
+				'Artem pulls out of you, but clearly isn''t ready to take imitative and just stand there looking lost while Katja takes your place and you get down on the floor next to the chair.'
+				'"Come on Artem, fuck her tight wet pussy" you say to make him take some initiative.'
+				if artemQW['confidence'] < 10:
+					if 2*npc_vag['A14'] < dick:
+						katjaQW['horny'] -= rand(5,10)
+						'Artem does not say anything just nods and slowly walk behind Katja and very slowly enters her and stops when he meets some resistance because how tight Katja is.'
+						'Katja the tells him "Come on Artem, you can fuck me, push it all the way in" and does that in on sharp moment and Katja let out a shriek of pain. "Oh. I''m sorry" Artem says "Don''t be. Just keep it still for a moment" Katja says.'
+					else
+						'Artem does not say anything just nods and slowly walk behind Katja and very slowly enters her and only stops when he his cock is completely buried inside her.'
+					end
+					*nl
+					'After a short moment Katja says "Come on Artem, move, fuck me" and he does that.'
+					if artemQW['artem_dom'] > 4:
+						'Artem starts slowly to move in and out of Katja, but soon he starts to pickup speed he gets rougher and rougher.'
+						if npc_vag['A14'] < dick:
+							katjaQW['horny'] -= rand(10,20)
+							katjaQW['slut'] -= 5
+							'What starts out as small moans from Katja turns into sounds of pain as Artem starts to pound her like a cheap slut.'
+						else
+							katjaQW['horny'] += rand(5,10)
+							'Katja starts with small moans but as he picks up his speed the get higher and higher.'
+						end
+					else
+						'Artem starts slowly to move in and out of Katja, and does not seem to pick up speed.'
+						if npc_vag['A14'] < dick:
+							katjaQW['horny'] -= rand(0,5)
+							'Since you can see that Katja clearly is feeling some pain from this, Katja asks him to slow down and he continue very slowly. This makes Katja''s pain seem to go away, and by the end she is moaning quietly.'
+						else
+							katjaQW['horny'] += rand(5,10)
+							'Since Katja don''t seem to feel any pain but clearly also not much satisfaction, you tell Artem "Go, faster. You can fuck her harder." He does what you say and soon he is pounding her and she starts to moan loudly.'
+						end
+					end
+				else
+					if 2*npc_vag['A14'] < dick:
+						katjaQW['horny'] -= rand(5,10)
+						'Artem does not say anything just nods and slowly walk behind Katja and very slowly enters her and stops when he meets some resistance because how tight Katja is.'
+						'"Is it okay" Artem ask and Katja answers him "it is okay. You can push further" and does that in on sharp moment and Katja let out a shriek of pain. "Oh. I''m sorry" Artem says "Don''t be . Just keep it still for a moment" Katja says.'
+					else
+						'Artem just nods and slowly walk behind Katja and says "Here it come Katja" very slowly enters her and only stops when he his cock is completely buried inside her.'
+					end
+					*nl
+					'After a short moment Katja says "Come on Artem, move, fuck me" and he does that.'
+					if artemQW['artem_dom'] > 4:
+						'Artem starts slowly to move in and out of Katja, but soon he starts to pickup speed he gets rougher and rougher.'
+						if npc_vag['A14'] < dick:
+							katjaQW['horny'] -= rand(5,10)
+							'What starts out as small moans from Katja turns into sounds of pain as Artem starts to pound her like a cheap slut. He notice this after a little while and says "I''m very sorry" Katja, and then slows down almost to much.'
+						else
+							katjaQW['horny'] += rand(5,10)
+							'Katja starts with small moans but as he picks up his speed the get higher and higher.'
+						end
+					else
+						'Artem starts slowly to move in and out of Katja, but starts to pick up some speed.'
+						if npc_vag['A14'] < dick:
+							'This makes Katja feel some pain which Artem quickly notice. "I''m sorry Katja. I will be more careful" he says and slows down. This makes Katja''s pain seem to go away, and by the end she is moaning quietly.'
+						else
+							katjaQW['horny'] += rand(5,10)
+							'AS he goes faster Katja''s moans becomes large, and the makes Artem pick up more speed. By the end he is pounding her hard  and she moan very loudly.'
+						end
+					end
+				end
+			else
+				'Artem pulls out of you, and says "Come Katja take <<$pcs_nickname>> place, I want to try your tight pussy". You get down on the floor next to the chair to give space for Katja.' 
+				'"Great. '+iif( katjaQW['slut']  > 80 , 'My extremely wet pussy need to be filled by something hard', 'let''s get to ir')+'" Katja says and take your place on the chair.'
+				if artemQW['artem_dom'] > 4:
+					'Artem moves behind Katja and places his cock at the entrance of her vagina. "Okay bitch, get ready to be pounded like a cheep whore" he says sounding like he is in a bad porn movie, and Katja reacts very harshly.'
+					'"What the fuck Artem. Why the hell do you think that any girl wants to fuck a pig that says things like that, what cave did you crawl out of" she says in a shard voice. Artem is clearly taken aback by her outburst and freezes.'
+					if artemQW['nush3some'] >= 3:
+						'"He did not mean anything by it Katja, it is just stupid talk that goes around in boys world isn''t it Artem?" you quickly say to try to deflate the tension.'
+						'"Sorry Katja, I thought you might like it." He pauses a moment before continuing "It is just that Nush likes it when I talk like that. So I thought you would to, sorry." Artem answers.' 
+						'Katja still looks very horny and she says "Just because a girl that opens her legs for everybody thinks it is fine to look down on women, doesn''t make it so", Artem starts to reply but Katja quickly cuts in "Just stop talking an fuck me already."'
+					else
+						'"He did not mean anything by it Katja, it is just stupid talk that goes around in boys world isn''t it Artem?" you quickly say to try to deflate the tension.'
+						'"I''m very sorry Katja, that is just tough talk that guys do. I shouldn''t have said it. Please accept my apologies" Artem answers. Katja still looks very horny and she says "Okay. Apology accepted, you can go ahead".'
+					end
+					if 2*npc_vag['A14'] < dick:
+						katjaQW['horny'] -= rand(5,10)
+						'He slowly pushes his cock into her and is very careful when he can feel the great resistance of her tight pussy. But he manage to push it all the way to the base without causing her any pain.'
+					else
+						'He slowly pushes his cock into her ,and he manage to push it all the way to the base without causing her any pain.'
+					end
+					*nl
+					katjaQW['horny'] += rand(5,10)
+					'He then starts to pick up pace and gets rougher and rougher, but never so rough that it becomes painful for Katja, and  and she starts to moan loudly.'
+				else
+					'Artem moves behind Katja and places his cock at the entrance of her vagina. "Are you ready to feel a big cock in your tight pussy, Katja?" he ask seeming very confident of his sex skill.'
+					if 2*npc_vag['A14'] < dick:
+						katjaQW['horny'] -= rand(5,10)
+						'"Please be careful Artem, I''ve been fucked before, but your cock seem very big." Katja says, "I promise that I will be as gentle as promise, and you wont feel any pain" Artem answers.'
+						'He slowly pushes his cock into her and is very careful when he can feel the great resistance of her tight pussy. But he manage to push it all the way to the base without causing her any pain.'
+					else
+						'"Yes come on Artem, give me that big hard cock of yours" Katja says.'
+						'Artem then pushes his cock into her ,and he manage to push it all the way to the base without causing her any pain.'
+					end
+					*nl
+					katjaQW['horny'] -= rand(10,15)
+					'He then starts to pick up pace and fucks her fast and hard, but never so rough that it becomes painful for Katja, and  and she starts to moan loudly.'
+				end
+			end
+			act 'Change of position': gt 'artem_katja_sex', 'first_time_next'
+		end
+	end
+end
+
+if $ARGS[0] = 'first_time_next':
+	if artemQW['confidence'] < 10:
+		if katjaQW['titjob'] > 0 or katjaQW['slut'] > 80:
+			gt 'artem_katja_sex', 'first_time_katja_titjob'
+		else
+			gt 'artem_katja_sex', 'first_time_cowgirl'
+		end
+	else
+		gt 'artem_katja_sex', 'first_time_on_table'
+	end
+end
+
+if $ARGS[0] = 'first_time_on_table':
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/first_time_8.jpg"></center>'
+	'"My pussy needs a break" Katja says and Artem pulls out and Katja get up from the chair. "Get you ass on the table <<$pcs_nickname>>, time for you the get fucked some more" Artem says in a commanding voice.'
+	'You take a pillow and lies down on you back on the table having you ash just over the edge. Artem then jam his cock into you and starts to pound you.'
+	'Katja doesn''t want to be completely left out, so she crawls up on the table and start to lick your boobs.'
+	gs 'arousal', 'vaginal', 3
+	gs 'arousal', 'foreplay', -2
+	gs 'stat'
+	act 'Katja''s turn again':
+		*clr & cla
+		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/first_time_9.jpg"></center>'
+		katjaQW['horny'] += rand(10,15)
+		'After pounding for some minutes Artem asks "Katja are you ready again for some more cock?" and she answers "yes I want some more."'
+		'Artem then pulls out of you and you and Katja change places. He starts to fuck, this time he is completely aware of how to treat her so she only feels pleasure and she is very soon moaning loudly.'
+		'Not wanting to be left out you start to suck on Katja''s very nice breast.'
+		gs 'arousal', 'foreplay', 3
+		gs 'stat'	
+		act 'Change position again':
+			if katjaQW['titjob'] > 0 or katjaQW['slut'] > 80:
+				gt 'artem_katja_sex', 'first_time_katja_titjob'
+			else
+				gt 'artem_katja_sex', 'first_time_cowgirl'
+			end
+		end
+	end
+end
+
+if $ARGS[0] = 'first_time_katja_titjob':
+	gs 'arousal', 'foreplay_give', 3
+	gs 'stat'
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/first_time_10a.jpg"></center>'
+	'"Let''s change position" Katja says, "that  good since I''m getting tired" Artem answers. "Why don''t you lie down and we will take care of you" you suggest.'
+	'He pulls his cock of Katja''s pussy and then lies down on his back on the floor. You and Katja gets on you knees next to him and Katja looks like she has an idea.'
+	if katjaQW['titjob'] = 0:
+		'"So I''ve heard of this thing called a titjob and I want to try it" Katja says "Why don''t you give his cock a few lick <<$pcs_nickname>> so his cock is very slippery" she continue.'
+		'You do that while she spits between her breast to lubed them up. "I think he is ready" you say, "Okay. Here goes the try" Katja says.'
+		'She then moves between Artem''s legs and bend forward to enclose his dick with her nice c almost d-cup tits. He let out a loud moan as she used her hands to push her tits together for a tight grip'
+		'She then starts to move her tits up and down along his shaft. You move in close to see what she is doing.'
+		'It is clear that it is her first time, her rhythm is not perfect and his dick does get loose of the grip of her breast a few times. But Artem does seem to enjoy it a lot.'
+	else
+		'"I wanna give you a titjob Artem" Katja says "Why don''t you give his cock a few lick <<$pcs_nickname>> so his cock is very slippery" she continues.'
+		'You do that while she spits between her breast to lubed them up. "I think he is ready" you say, "Okay. Here goes the try" Katja says.'
+		'She then moves between Artem''s legs and bend forward to enclose his dick with her nice c almost d-cup tits. He let out a loud moan as she used her hands to push her tits together for a tight grip'
+		'She then starts to move her tits up and down along his shaft. You move in close to see what she is doing.'
+		if katjaQW['titjob'] < 5:
+			'She clearly have some experience, her rhythm is pretty good but his dick does get loose of the grip of her breast a few times. But Artem does seem to enjoy it a lot.'
+		else
+			'She clearly have knows what she is doing, her rhythm is perfect and she keeps his cock in the tight grip of her breast all the time. Artem looks very satisfied.'
+		end
+	end
+	katjaQW['titjob'] += 1
+	'After a couple of minutes Katja says "Okay that is enough" and let his cock pop out from her tits.'
+	if pcs_cupsize > 15:
+		act 'Give Artem a titjob':
+			*clr & cla
+			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/first_time_10b.jpg"></center>'
+			'"Let me take over" you tell Katja and she moves aside and let you take her place between Artem''s legs.'
+			'You then use your spit to make your breast slippery, and then bend down and press your tits together in a tight grip around Artem''s cock.'
+			'You the start to move your tits up and down along Artem''s hard rod, while Katja get down next to you and help you make your movements smooth.'
+			'Artem so moaning loudly and after a few minutes he says "Pleas stop <<$pcs_nickname>>, else you make me come, and I want to try your pussies one more time"'
+			'You do as he says and let go of your grip on his cock.'
+			gs 'arousal', 'titjob', 2
+			gs 'stat'
+			act 'Ride Artem': gt 'artem_katja_sex', 'first_time_ride', 1
+		end
+	end
+	act 'Ride Artem': gt 'artem_katja_sex', 'first_time_ride', 1
+end
+
+if $ARGS[0] = 'first_time_ride':
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/first_time_11.jpg"></center>'
+	if $ARGS[1] = 1:
+		'"You go first" Katja says and you climb onto his still extremely hard cock.'
+	else
+		'"Let''s change position" Katja says, "that  good since I''m getting tired" Artem answers. "Why don''t you lie down and we will take care of you" you suggest.'
+		'He pulls his cock of Katja''s pussy and then lies down on his back on the floor. You then climb onto his still extremely hard cock.'
+	end
+	'You then start to ride him while Katja sits nex to you, one had playing with your boob and the other with her own pussy.'
+	gs 'arousal', 'foreplay', -3
+	gs 'arousal', 'vaginal', 3
+	gs 'stat'
+	'After a short while of riding him Artem says "I want to try Katja''s tight pussy one more time before I come."'
+	act 'Katja''s turn to ride Artem': 	
+		*clr & cla
+		gs 'arousal', 'foreplay_give', 3
+		gs 'stat'
+		katjaQW['horny'] += rand(10,20)
+		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/first_time_12.jpg"></center>'
+		'You get of Artem''s cock and Katja takes your place '+iif(katjaQW['QWstage'] = 5, '"You don''t you ride him with your back to hism, in what is called reverse cowgirl" you tell Katja and she does what you say.', '"I''m gonna ride you real good Artem" Katja says as she sits on his dick in reverse cowgirl position.')
+		'You then grab her but cheeks and help her ride Artem hard.'
+		if katjaQW['horny'] >= 100:
+			katjaQW['horny'] = 0
+			if katjaQW['QWstage'] = 5:
+				katjaQW['simultanous_boys'] = 1	
+				if npc_vag['A14'] = 0:
+					katjaQW['slut'] += 10
+					if artemQW['confidence'] < 7:
+						artemQW['confidence'] += 4
+					elseif artemQW['confidence'] < 12:
+						artemQW['confidence'] += 3
+					elseif artemQW['confidence'] < 19:
+						artemQW['confidence'] += 2			
+					end
+				else
+					katjaQW['slut'] += 7
+					if artemQW['confidence'] < 14:
+						artemQW['confidence'] += 2
+					elseif artemQW['confidence'] < 20:
+						artemQW['confidence'] += 1			
+					end					
+				end
+			else
+				katjaQW['slut'] += 5
+				if artemQW['confidence'] < 9:
+					artemQW['confidence'] += 2 
+				elseif artemQW['confidence'] < 20:
+					artemQW['confidence'] += 1 			
+				end	
+			end
+			'Katja''s moans get louder and louder, and after riding him for a few minutes she comes with a huge scream which leaves know in doubt that she had an orgasm.' 
+			'Shortly after Artem says "I''m coming very soon" and she gets of him.'
+		else
+			if katjaQW['horny'] = 0: katjaQW['horny'] = 30
+			if katjaQW['QWstage'] = 5:
+				katjaQW['simultanous_boys'] = 1
+				if npc_vag['A14'] = 0:
+					katjaQW['slut'] += 5
+					if artemQW['confidence'] < 9:
+						artemQW['confidence'] += 2
+					elseif artemQW['confidence'] < 15:
+						artemQW['confidence'] += 1			
+					end
+				else
+					katjaQW['slut'] += 3
+					if artemQW['confidence'] < 10:
+						artemQW['confidence'] += 1
+					end					
+				end
+			else
+				katjaQW['slut'] += 2
+				if artemQW['confidence'] < 10:
+					artemQW['confidence'] += 1
+				end		
+			end
+			'Katja''s moans get louder and louder, but after riding him for a few minutes  Artem says "I''m coming very soon" and she gets off him.'
+		end
+		if artemQW['threesome'] = 0: artemQW['threesome'] = 1
+		katjaQW['Artem_pussy'] = 1
+		artemQW['katja_threesome'] = 2
+		act 'Artem comes':
+			*clr & cla
+			gs 'arousal', 'end'
+			gs 'cum_call', 'face', 'A2', 1
+			gs 'stat'
+			minut += 3
+			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/first_time_13.jpg"></center>'
+			'You and Katja quickly gets your heads close to Artem''s cock, and soon he starts to spray his cum over your faces. You guide his cock such that most of his cum ends up in Katja''s mouth.'
+			'She dosen''t swallow and soon he cum is running out of her mouth down along his cock. When he finish you start to clean up yourself, Artem and Katja.'
+			if artemQW['confidence'] < 15:
+				'Artem looks at you and says to Katja "That was really good. I feel completely satisfied. I hope I was good for you to Katja?"'
+			else
+				'Artem looks at you and says to Katja "That was was fantastic. You are great at handling a cock Katja"'
+			end
+			if katjaQW['horny'] = 0:
+				if katjaQW['QWstage'] = 5:
+					if npc_vag['A14'] = 0:
+						'"That was fantastic. I was quite nervous before, since I had not take any thing big in my pussy before. But you managed not only to make my first time not to painful, you also gave me a fantastic orgasm. I could not have wished for my first time to be better." Katja says.'
+					else
+						'"That was great. You managed not only to make my first time wit a boy very good, but you also gave me a fantastic orgasm. I could not have wished for my first time with a boy to be better." Katja says.'
+					end
+				else
+					'"That was great. You are a great lover Artem, '+iif(katjaQW['simultanous_boys'] = 1, 'not that I have that much much experience.', ' and I have some experience')+' with men" Katja says.'
+				end
+			else
+				'"That was good" Katja says, but you can see that she is not completely satisfied, but you don''t bring it up now.'
+			end
+			'You finish getting dressed up, and collect you homework. Soon you and Artem are saying goodbuy to Katja and start to walk towards Five Eight Estate.' 
+			if npc_vag['A14'] < dick: npc_vag['A14'] += 1
+			if 2*npc_vag['A14'] < dick: npc_vag['A14'] += 1
+			act 'Walk home': minut +=10 & gt 'artem_katja_sex', 'first_time_walking_home'
+		end
+	end
+end
+
+if $ARGS[0] = 'first_time_walking_home':
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/artem/sex/katja/going_home_with_artem.jpg"></center>'
+	'As the two of you walk home, Artem talks about how much fun he had with you and Katja. While he doesn''t get into details he does wax on about how much he enjoyed having a threesome with her. Thanking you several times for the nice surprise.'
+	if artemQW['confidence'] >= 15:
+		if artemQW['nush3some'] >= 3:
+			'When you are nearing your building, he looks over at you and smiles. "So you think she would be up for it again? I would love to do it again."'
+			'You can see he is about to ask something more. "You know what would be even more fun? If Nush wanted to join in as well."'
+			*nl
+			'You are surprised for a moment when it hits you he is asking for a three girl foursome. "Really?"'
+			'He shrugs a little with a confident smile. "Yeah... I mean why not?"'
+			'You smile to him. "I will think about it and if... if I decide to, I will talk to her about it and let you know." He nods after a moment, you can tell he was just hoping for you to say yes and that be it.'
+		else
+			'When you are nearing your building, he looks over at you and smiles. "So you think she would be up for it again? I would love to do it again."'
+			'You smile to him. "I will think about it and if... if I decide to, I will talk to her about it and let you know." He nods after a moment, you can tell he was just hoping for you to say yes and that be it.'
+		end
+	else
+		if artemQW['nush3some'] >= 3:
+			'When you are nearing your building, he looks over at you shyly and blushes bright red, you can tell he is about to ask you something he is not comfortable with. "I had a lot of fun... I wouldn''t mind doing it again... if you ... and her want too that is." He stammers the last part, obviously wanting to but also equally afraid of making you or Katja mad for even suggesting it.'
+			'You can see he is about to ask something more, you wait for him to finally work up the nerve to ask. "You think... maybe... her... and Nush... might be interested in ... you know..."'
+			*nl
+			'You are surprised for a moment when it hits you he is asking for a three girl foursome. "Really?"'
+			'He blushes and looks down at his face. "I mean... I don''t know... maybe if you guys wanted... to that is..."'
+			'You smile to him. "I will think about it and if... if I decide to, I will talk to them about it and let you know." He smiles and seems happy with the answer.'
+		else
+			'When you are nearing your building, he looks over at you shyly and blushes bright red, you can tell he is about to ask you something he is not comfortable with. "I had a lot of fun... I wouldn''t mind doing it again... if you ... and her want too that is." He stammers the last part, obviously wanting to but also equally afraid of making you or Katja mad for even suggesting it.'
+			'You smile to him. "I will think about it and if... if I decide to, I will talk to her about it and let you know." He smiles and seems happy with the answer.'
+		end
+	end
+	'The two of you finally get back the your apartment building, Artem tells you bye before heading into his apartment.'
+	act 'Alone': gt 'pod_ezd', 'etaj_1'
+end
+
+--- artem_katja_sex ---------------------------------
+

+ 64 - 106
locations/bank.qsrc

@@ -31,7 +31,7 @@ if $ARGS[0] = 'start':
 				bankAccount = 1
 				karta = 5000
 				bankDebtLimit = 5000
-				'You are led to on open office and a member of the bank staff goes through your details and ID, then takes 50 <b>₽</b> from you before setting up your account'
+				'You''re led to an open office where a member of the bank staff goes through your details and ID, then takes 50 <b>₽</b> from you before setting up your account.'
 				'"Your account is now open with your 50 <b>₽</b> and an overdraft protection of 5,000 <b>₽</b>"'
 				gs 'stat'
 
@@ -53,12 +53,12 @@ if $ARGS[0] = 'start':
 					karta += kartaIN
 					money -= kartaIN
 
-					'<br>You deposited <<kartaIN>> <b>₽</b>, your account balance is now ' + iif(karta >= bankDebtLimit, '<<karta - bankDebtLimit>>', '<font color="red"><<bankDebtLimit - karta>></font>') + ' <b>₽</b>.'
+					'<br>You deposit <<kartaIN>> <b>₽</b>. Your account balance is now ' + iif(karta >= bankDebtLimit, '<<karta - bankDebtLimit>>', '<font color="red"><<bankDebtLimit - karta>></font>') + ' <b>₽</b>.'
 				end
 				killvar 'kartaIN'
 				gs 'stat'
 
-				act 'Walk away':gt 'bank', 'start'
+				act 'Walk away': gt 'bank', 'start'
 			end
 		end
 
@@ -84,7 +84,7 @@ if $ARGS[0] = 'start':
 				killvar 'kartaOUT'
 				gs 'stat'
 
-				act 'Walk away':gt 'bank', 'start'
+				act 'Walk away': gt 'bank', 'start'
 			end
 
 			if bankDebtLimitRaised = 0 and karta >= 15000:
@@ -92,9 +92,8 @@ if $ARGS[0] = 'start':
 					if $region = 'city':
 						gt 'bank', 'loan_officer', 'start'
 					else
-						'You approach the teller and say, “Hello, I''d like to talk to someone about increasing my credit limit.”'
-						*nl
-						'The teller nods and tells you, “Unfortunately our credit limit functions are being handled through our Saint Petersburg branch. I''m sure they''d be happy to help you there.”'
+						'You approach the teller. "Hello. I''d like to talk to someone about increasing my credit limit."'
+						'The teller nods. "Unfortunately, our credit limit functions are being handled through our Saint Petersburg branch. I''m sure they''d be happy to help you there."'
 						delact 'See about increasing your credit limit'
 					end
 				end
@@ -118,7 +117,7 @@ if $ARGS[0] = 'start':
 			minut += 15
 			BurgerQW['BankTask'] = 2
 			gs 'stat'
-			'You went to the office and showed the required documents to the manager.'
+			'You enter the office and show the required documents to the manager.'
 
 			act 'Leave': minut += 5 & gt 'bank', 'leave'
 		end
@@ -132,54 +131,49 @@ if $ARGS[0] = 'loan_officer':
 		menu_off = 1
 		minut += 15
 		gs 'stat'
-
-		'<center><b><font color="maroon">Mr. Karpenko</font></b></center>'
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/bank/sex/001.jpg"></center>'
 		'You speak to the teller, who tells you to have a seat in the waiting room.'
-		'After waiting about 15 minutes, you are called back to an office, where a handsome young executive awaits.'
-		'Standing, he extends his hand and says, "Hello, Miss <<$pcs_lastname>>, my name is Filip Karpenko. I''m the Loan Officer here at VTB Bank. How can I help you today?"'
+		'After waiting about 15 minutes, you''re called back to an office where a handsome young executive awaits.'
+		'He extends his hand. "Hello, Miss <<$pcs_lastname>>, I''m Filip Karpenko, the Loan Officer here at VTB Bank. How can I help you today?"'
 
-		act 'I''d like to talk about increasing my credit limit, please.':
+		act 'Talk about increasing your credit limit':
 			*clr & cla
-			'<center><b><font color="maroon">Mr. Karpenko</font></b></center>'
 			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/bank/sex/002.jpg"></center>'
-			'Karpenko nods and asks, "How large a loan were you thinking of taking out?"'
-			'Marshaling your nerve and trying to appear confident, you say, "I was thinking of maybe... 50.000 rubles?"'
+			'Karpenko nods. "How large a loan were you thinking of taking out?"'
+			'You try to appear confident. "I was thinking of maybe... 50,000 <b>₽</b>?"'
 			*nl
-			'"Let me just review your information for a moment," Karpenko says, typing into his computer.'
-			'He reads what appears on his monitor, a ghost of a frown appearing on his face. Suddenly you feel rather foolish for asking for so much money when you''re a young girl not even established in the world yet!'
+			'"Let me just review your information for a moment," he replies and starts typing into his computer.'
+			'He reads what appears on his monitor, a ghost of a frown appearing on his face as you suddenly feel rather foolish for asking for so much money.'
 			*nl
-			'You shift in your chair, and the next couple of minutes seem very long indeed before Karpenko finally looks up from his screen and says, "I''m sorry, but you seem to have very little in the way of assets or collateral, and you''re very young to be taking out such a significant loan. I''m afraid the bank can''t take a risk on this proposition at this time."'
+			'You shift in your chair and the next few minutes seem to drag in before Karpenko finally looks up from his screen. "I''m sorry, but you seem to have very little in the way of assets or collateral, and you''re very young to be taking out such a significant loan. I''m afraid the bank can''t take a risk on this proposition at this time."'
 			gs 'stat'
 
-			act 'Isn''t there some way you could reconsider, Mr. Karpenko?':
+			act 'Try and seduce him':
 				*clr & cla
-				'<center><b><font color="maroon">Mr. Karpenko</font></b></center>'
 				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/bank/sex/003.jpg"></center>'
-				'"I''m sorry, Miss <<$pcs_lastname>>, but my decision is final," Karpenko says firmly.'
+				'"I''m sorry, Miss <<$pcs_lastname>>, but my decision is final," he says firmly.'
 				*nl
-				'You rise from your chair, but you don''t turn and walk away. Instead you approach the loan officer and lean in, giving him an excellent view of your cleavage.'
-				'"It''s true I don''t have any real collateral" you tell him in a soft, sultry voice, "but that doesn''t mean I don''t have something you want. I think if we put our minds to it, we can come up with conditions that benefit us both."'
+				'You rise from your chair, but you don''t turn and walk away. Instead, you approach him and lean in, giving him an excellent view of your cleavage.'
+				'"It''s true I don''t have any real collateral," you tell him in a soft, sultry voice. "but that doesn''t mean I don''t have something you want. If we put our minds to it, we can come up with conditions that benefit us both..."'
 				*nl
-				'Karpenko stares at your breasts as they strain against your top, then looks into your eyes. "I suppose there may be some way we can work out a deal, if you''re willing to be... cooperative."'
+				'Karpenko stares at your breasts, then looks into your eyes. "I suppose there may be some way we can work out a deal, if you''re willing to be... cooperative."'
 
 				gs 'bank', 'loan_officer', 'sex_start'
 			end
 
-			act 'Sadly rise and head for the door':
+			act 'Leave':
 				*clr & cla
-				'<center><b><font color="maroon">Mr. Karpenko</font></b></center>'
 				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/bank/sex/004.jpg"></center>'
 				'"Wait, Miss <<$pcs_lastname>>," Karpenko says as you turn away. "You seem like a trustworthy young lady. There may be a way I can arrange this loan if you''re willing to be... cooperative."'
 				*nl
-				'You''re young, but even so there''s little doubt about what sort of cooperation he''s talking about – the way his eyes are undressing you as you stand before him makes his intentions quite plain.'
+				'You''re young, but even so there''s little doubt about what sort of cooperation he''s implying. The way his eyes are undressing you as you stand before him makes his intentions quite plain.'
 				'He wants you to use your body as collateral! Is that really something you would consider? Is the loan really worth that much to you?'
 
 				gs 'bank', 'loan_officer', 'sex_start'
 			end
 		end
 
-		act 'Actually, I''ve changed my mind. Sorry to bother you.':
+		act 'Change your mind':
 			minut += 3
 			gt 'bank', 'start'
 		end
@@ -190,7 +184,7 @@ if $ARGS[0] = 'loan_officer':
 		if pcs_inhib >= 35 and stat['vaginal'] ! 0:
 			gs 'willpower', 'sex', 'self', 'medium'
 			if will_cost <= pcs_willpwr:
-				act 'I think you''ll find that I can be very cooperative, Mr. Karpenko..." (<<will_cost>> Willpower)':
+				act 'Co-operate (<<will_cost>> Willpower)':
 					*clr & cla
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -203,41 +197,29 @@ if $ARGS[0] = 'loan_officer':
 					$npc_notes[$npclastgenerated] = 'A young Loan Officer for VTB Bank'
 					gs 'npcpreservec', $npclastgenerated
 					$boy = $npclastsaved
-
-					'<center><b><font color="maroon">Mr. Karpenko</font></b></center>'
 					'<center><img <<$set_imgh>> src="images/locations/city/citycenter/bank/sex/005.jpg"></center>'
 					'"Time to put your mouth where my money is, girl," Karpenko says with a grin that''s just a little unnerving. You start to get the sense that you might just be in for more than you bargained for with this man, but it''s too late to back out now.'
-					*nl
 					'Affecting your sultriest walk and your hungriest gaze, you approach him as he rises from his chair. You open your mouth to say some sophisticated-sounding banter, but Karpenko cuts you off by grabbing your waist and pulling you toward him, stopping your speech by filling your mouth with his probing tongue.'
-					*nl
-					'You gasp involuntarily at his forceful approach, but after a moment you regain some sense of composure. You know what you have to do, so you might as well do it. And who knows? You might actually like it too. You begin kissing him back, alternately probing his mouth and sucking his tongue like a miniature cock.'
-					*nl
-
+					'You gasp involuntarily at his forceful approach, but after a moment you regain some sense of composure. You begin kissing him back, alternately probing his mouth and sucking his tongue like a miniature cock.'
 					gs 'arousal', 'kiss', 10, 'sub'
 					gs 'stat'
 
-					act 'Get his cock ready to fuck you':
+					act 'Get his cock ready':
 						*clr & cla
-						'<center><b><font color="maroon">Mr. Karpenko</font></b></center>'
 						'<center><img <<$set_imgh>> src="images/locations/city/citycenter/bank/sex/007.jpg"></center>'
-						'After a few moments of tangling tongues, Karpenko sits down in his chair with a nasty grin and says, "You came in here to beg for a loan, didn''t you? I think sluts beg best on their knees with their mouths full."'
-						*nl
-						'"Yes, sir," you murmur as you sink to your knees and crawl under the table to go between his legs. Fifty thousand rubles is a lot of money, and if Karpenko wants you to perform like a submissive whore for it, then that''s exactly what you''ll do. And if your pussy is getting a little wet at this treatment, well, you can''t be blamed for that. It is rather thrilling!'
-						*nl
-						'His cock is already hard in his pants as you undo his zipper and fish it out. You pause only for a moment to admire the tool – at 21 thick, glorious centimeters, it is worthy of a little admiration – before putting your skilled mouth to work. You run your tongue up the thick vein on the underside, feeling his heat and tasting his salty flavor, until you come to his flaring mushroom head. Your eyes lock with his as you swirl your tongue around the glans before you swallow him into your throat. You spend the next several minutes on your knees and he spends the next several minutes loving your attentions.'
+						'After a few minutes, Karpenko sits on his chair with a nasty grin. "You came in here to beg for a loan, didn''t you? I think sluts beg best on their knees with their mouths full."'
+						'"Yes, sir," you murmur as you sink to your knees and crawl under the table.'
+						'His cock is already hard in his pants as you undo his zipper and fish it out. You pause only for a moment to admire the tool – at 21 thick, glorious centimeters, it''s worthy of a little admiration – before putting your skilled mouth to work. You run your tongue up the thick vein on the underside, feeling his heat and tasting his salty flavor until you come to his flaring head. Your eyes lock with his as you swirl your tongue around the glans before you swallow him into your throat.'
 						*nl
-						'Finally your efforts bear fruit as Karpenko says, "Let''s move over to the sofa. Time to put that pussy of yours to work!"'
-
+						'Finally your efforts bear fruit. "Let''s move over to the sofa. Time to put that pussy of yours to work!"'
 						gs 'arousal', 'bj', 15, 'sub'
 						gs 'stat'
 
 						act 'Lie on your side':
 							*clr & cla
-							'<center><b><font color="maroon">Mr. Karpenko</font></b></center>'
 							'<center><img <<$set_imgh>> src="images/locations/city/citycenter/bank/sex/008.jpg"></center>'
-							'Karpenko leads you to the leather-covered sofa in his room and lies down on it, pulling you in to spoon with him. You barely get settled before he turns your head and puts his mouth on yours, and you''re still kissing him when, a few moments later, he pushes his cock into your tight, hungry pussy. In a single, swift movement he has buried himself into you up to the balls, its thick length making you gasp into his mouth. Without a pause he begins to fuck you, his hips pushing forward into your ass as he plunders your depths, and before long you lose yourself in the pleasure and find yourself pushing back into him to take every millimeter into you.'
-							*nl
-
+							'Karpenko leads you to the leather-covered sofa and lies down on it, pulling you in to spoon with him. You barely get settled before he turns your head and starts kissing you. A few minutes later, he pushes his cock into your pussy.'
+							'In a single, swift movement, he has buried himself in you, his thick length making you gasp into his mouth as he starts to fuck you, his hips pushing forward into your ass. Before long, you lose yourself in the pleasure and find yourself pushing back into him.'
 							gs 'arousal', 'kiss', -5, 'sub'
 							gs 'arousal', 'vaginal', 15, 'sub'
 							gs 'stat'
@@ -246,37 +228,28 @@ if $ARGS[0] = 'loan_officer':
 								*clr & cla
 								'<center><b><font color="maroon">Mr. Karpenko</font></b></center>'
 								'<center><img <<$set_imgh>> src="images/locations/city/citycenter/bank/sex/009.jpg"></center>'
-								'With a growled, “I want you on top, you sweet little whore,” Karpenko pulls his dick out of you and rolls to his back. You swing atop him, and he holds your hips as you reach between your legs and grasp his cock to hold it upright, and both of you gasp in unison as you settle down on it and feel it fill your hungry cunt. You take it all the way down until you''re sitting on his balls and then, eyes closed begin to ride him.'
-								*nl
-								'"You''re a dirty little slut, Miss <<$pcs_lastname>>," Karpenko muses as you bounce on him, and you can''t really argue the point since you''re fucking him to get a bank loan. And damn but it feels good, with his thick cock stretching you and finding wonderful depths to your pussy. You grind your hips against him putting friction on your clit, then start riding him again, making yourself gasp every time you take him to the hilt.'
-								*nl
-
+								'"I want you on top, you sweet little whore," he growls as pulls his dick out of you and rolls onto his back. You swing atop him, and he holds your hips as you reach between your legs and grasp his cock. Both of you gasp in unison as you settle down on it and feel it fill your pussy once again. You take it all inside you and then, eyes closed, begin to ride him.'
+								'"You''re a dirty little slut, Miss <<$pcs_lastname>>," Karpenko muses as you bounce on him, his thick cock stretching you and finding wonderful depths to your pussy. You grind your hips against him, putting friction on your clit as you take him to the hilt.'
 								gs 'arousal', 'vaginal', 15, 'sub'
 								gs 'stat'
 
-								act 'Taking it like a bitch': gt 'bank', 'loan_officer', 'sex_finish'
+								act 'Take it': gt 'bank', 'loan_officer', 'sex_finish'
 							end
 						end
 
 						act 'Get on top':
 							*clr & cla
-							'<center><b><font color="maroon">Mr. Karpenko</font></b></center>'
 							'<center><img <<$set_imgh>> src="images/locations/city/citycenter/bank/sex/009.jpg"></center>'
-							'Karpenko leads you to the plush leather sofa and lies down on his back, and you waste no time climbing atop him. He holds your hips as you reach between your legs and grasp his cock to hold it upright, and both of you gasp in unison as you settle down on it and feel it fill your hungry cunt. You take it all the way down until you''re sitting on his balls and then, eyes closed begin to ride him.'
-							*nl
-							'"You''re a dirty little slut, Miss <<$pcs_lastname>>," Karpenko muses as you bounce on him, and you can''t really argue the point since you''re fucking him to get a bank loan. And damn but it feels good, with his thick cock stretching you and finding wonderful depths to your pussy. You grind your hips against him putting friction on your clit, then start riding him again, making yourself gasp every time you take him to the hilt.'
-							*nl
-
+							'Karpenko leads you to the plush leather sofa and lies down on his back. You waste no time climbing atop him and he holds your hips as you reach between your legs and grasp his cock. Both of you gasp in unison as you settle down on it and feel it fill your pussy once again. You take it all inside you and then, eyes closed, begin to ride him.'
+								'"You''re a dirty little slut, Miss <<$pcs_lastname>>," Karpenko muses as you bounce on him, his thick cock stretching you and finding wonderful depths to your pussy. You grind your hips against him, putting friction on your clit as you take him to the hilt.'
 							gs 'arousal', 'vaginal', 15, 'sub'
 							gs 'stat'
 
 							act 'Spoon-fucking':
 								*clr & cla
-								'<center><b><font color="maroon">Mr. Karpenko</font></b></center>'
 								'<center><img <<$set_imgh>> src="images/locations/city/citycenter/bank/sex/008.jpg"></center>'
-								'"On your side now," Karpenko tells you gruffly. You clamber off and let him adjust himself against the back of the sofa before moving to join him. He grabs you roughly, pulling you in to spoon with him. You barely get settled before he turns your head and puts his mouth on yours, and you''re still kissing him when, a few moments later, he pushes his cock into your tight, hungry pussy. In a single, swift movement he has buried himself into you up to the balls, its thick length making you gasp into his mouth. Without a pause he begins to fuck you, his hips pushing forward into your ass as he plunders your depths, and before long you find yourself pushing back into him to take every millimeter into you.'
-								*nl
-
+								'"On your side now," Karpenko tells you gruffly and you clamber off and let him adjust himself against the back of the sofa before moving to join him. He grabs you roughly, pulling you in to spoon with him. You barely get settled before he turns your head and starts kissing you. A few minutes later, he pushes his cock into your pussy.'
+								'In a single, swift movement, he has buried himself in you, his thick length making you gasp into his mouth as he starts to fuck you, his hips pushing forward into your ass. Before long, you lose yourself in the pleasure and find yourself pushing back into him.'
 								gs 'arousal', 'kiss', -5
 								gs 'arousal', 'vaginal', 15, 'sub'
 								gs 'stat'
@@ -287,21 +260,19 @@ if $ARGS[0] = 'loan_officer':
 					end
 				end
 			else
-				act 'I think you''ll find that I can be very cooperative, Mr. Karpenko..." (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+				act 'Co-operate(<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 'No, sleeping with a man for money is not something you''re willing to do!':
+		act 'Refuse':
 			*clr & cla
-			'<center><b><font color="maroon">Mr. Karpenko</font></b></center>'
 			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/bank/sex/006.jpg"></center>'
-			'"I''m sorry, Mr. Karpenko," you say as you pull away, "but I really can''t do this after all I''m just not that sort of girl. I''m sorry to waste your time."'
+			'"I''m sorry," you say as you pull away, "I''m just not that sort of girl. Sorry to waste your time."'
 			'You turn and head for the door, but Karpenko''s voice stops you before you reach it. "Wait a moment, Miss <<$pcs_lastname>>. Before you go, I want you to know that this offer remains open. If you change your mind, you can return at any time and we can arrange the loan you desire."'
-			'"I... will keep that in mind," you mutter as you throw open the door and run back to the safety of the lobby.'
-			*nl
+			'"I''ll... Keep that in mind," you mutter as you throw the door open and run back to the safety of the lobby.'
 			gs 'stat'
 
-			act 'Flee the room':
+			act 'Flee':
 				minut += 10
 				gt 'bank', 'start'
 			end
@@ -309,41 +280,28 @@ if $ARGS[0] = 'loan_officer':
 
 	elseif $ARGS[1] = 'sex_finish':
 		*clr & cla
-		'<center><b><font color="maroon">Mr. Karpenko</font></b></center>'
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/bank/sex/010.jpg"></center>'
-		'After several long, wonderful minutes of railing you hard, Karpenko swats your ass loudly and says, "I want to fuck you from behind now. Bend over the table."'
-		*nl
-		'He''s ordering you around like a whore he paid for, but the whole thing is quite thrilling – and he really knows how to use that big dick he''s swinging! You almost jump off the couch and run to the table, bending over and swinging one leg up onto the surface to brace yourself. An instant later Karepenko''s hands are on your upturned ass and then his cock is back inside you – and this time he''s not holding back a bit! He thrusts so fiercely that your whole body shakes every time his hips collide with your ass, and your pussy sucks fiercely at his rod as it hammers in and out.'
-		*nl
-		'You''re trying to be quiet – it would be mortifying if anyone outside this room heard you being screwed like a cheap prostitute! – but he is too forceful and too skilled, and soon you are giving a loud, moaning gasp with every thrust, too lost in the bliss he is giving you to care a damn what happens after he''s done with you. You don''t even know how long that state lasts, lost in pleasure as you are, but you suddenly become aware that he has given you one last particularly deep thrust and is now still as his cock leaps and jumps inside you.'
-		*nl
-
+		'After several minutes, Karpenko smacks your ass. "I want to fuck you from behind now. Bend over the table."'
+		'You slide off the couch and move to bend over, swinging one leg up onto the surface to brace yourself. An instant later, Karepenko''s hands are on your ass and his cock is back inside you. He thrusts so fiercely that your whole body shakes every time his hips collide with your ass and your pussy clenches tightly around him as he hammers in and out.'
+		'You''re trying to be quiet, but he''s too forceful and you''re soon letting out loud, moaning gasps with every thrust, too lost in the bliss he''s giving you to care what happens. You don''t know how long this lasts, lost in pleasure as you are, but you suddenly become aware that he has given you one last particularly deep thrust and suddenly feel his cock twitching inside you.'
 		gs 'arousal', 'vaginal', 15, 'sub'
 		gs 'stat'
 
 		act 'What did you do?!':
 			*clr & cla
-			'<center><b><font color="maroon">Mr. Karpenko</font></b></center>'
 			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/bank/sex/011.jpg"></center>'
-			'Sudden panic surges in you chest and dispels the pleasure-cobwebs in an instant as you demand, "Did you just come inside me?!?"'
-			*nl
-			'Karpenko steps back and a flood of his spunk pours out of your pussy to run down your thighs, but you have no delusions that all of it came out. With a smug grin he grabs a tissue from his desk and starts wiping his dick off, saying, "You just got a loan of 50.000 rubles. Did you really think I would authorize that sort of loan to a girl like you and not finish inside?"'
-			*nl
+			'Sudden panic surges in your chest and dispels the pleasure in an instant. "Did you just cum inside me?!?"'
+			'Karpenko steps back and you feel his cum dribbling out of your pussy and down your thigh as he pants loudly. "You just got a loan of 50,000 <b>₽</b>. Did you really think I would authorize that sort of loan to a girl like you and not finish inside?"'
 			'"But I could get pregnant!" you object.'
 			*nl
-			'"You can afford a hell of a lot of morning after pills," he says with a shrug as he tucks his cock away and sits back at his desk. "Remember, you will need to pay this loan back like any other, and don''t think you can come back for another loan like it in the future. Now, if you''ll excuse me, I have work to do. I trust you can see yourself out."'
-			*nl
-			'Feeling humiliated but richer, you adjust your clothing and open the office door to step out into the hallway. The first thing you see is a cluster of three female bank employees looking at you, and you can see from their smirks and how they whisper to each other that they know exactly what you were up to with the loan officer. Cheeks burning with shame, you hurry away.'
-			*nl
-
+			'"You can afford a hell of a lot of morning after pills," he says with a shrug as he tucks his cock away and sits back at his desk. "Remember, you''ll need to pay this loan back like any other, and don''t think you can come back for another loan like it in the future. Now, if you''ll excuse me, I have work to do. I trust you can see yourself out."'
+			'Feeling humiliated, you adjust your clothing and open the office door to step out into the hallway. The first thing you see is a cluster of three female bank employees looking at you, and you can see from their smirks and how they whisper to each other that they know exactly what you were up to with the loan officer. Cheeks burning with shame, you hurry away.'
 			gs 'cum_call', '', $boy, 1, '', '', 110
 			gs 'cuminsidereact', 'Mr. Karpenko'
 			gs 'fame', 'city', 'sex', 3
 			gs 'arousal', 'end'
-
 			bankDebtLimit += 45000
 			money += 45000
-
 			bankDebtLimitRaised = 1
 			minut += 30
 			gs 'stat'
@@ -500,10 +458,10 @@ if $ARGS[0] = 'cikl':
 		if mey_vika['mey_vika_qw'] >= 35 and mey_tamara['qw_end'] = 0:
 			if mey_tamara['help_count'] < 10:
 				karta += 10000
-				'<b><font color=green>For your efforts aunt Tamara gave you 10,000 rubles</font></b>'
+				'<b><font color=green>Aunt Tamara gave you 10,000 rubles for your efforts</font></b>'
 			else
 				karta += 15000
-				'<b><font color=green>For your efforts aunt Tamara gave you 15,000 rubles</font></b>'
+				'<b><font color=green>Aunt Tamara gave you 15,000 rubles for your efforts</font></b>'
 			end
 			mey_tamara['help_count'] = 0
 		end
@@ -537,7 +495,7 @@ if $ARGS[0] = 'cikl':
 			karta += pay
 			smenaSalon = 0
 			nopaysalon = 1
-			'<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your work in a beauty salon.</font></b>'
+			'<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your work in the beauty salon.</font></b>'
 		end
 
 		if tanwork = 1 and nopaytanwork = 0:
@@ -588,28 +546,28 @@ if $ARGS[0] = 'cikl':
 		if func('homes_properties', 'get_owned_homes_count') > 0 and electroday = 0:
 			gs 'housing', 'util'
 			if bankAccount = 1 and karta - bankDebtLimit >= elektro:
-				'<b><font color="green"><<elektro>> <b>₽</b> for utilities, has been automatically deducted from your bank account.</font></b>'
+				'<b><font color="green"><<elektro>> <b>₽</b> for utilities has been automatically deducted from your bank account.</font></b>'
 				electroday = 1
 				if elektro >= 2000:
-					elektro = 2000 + rand(0, 100)
+					elektro = 2000 + rand(0,100)
 					karta -= elektro * hcount_util
 				end
 			elseif bankAccount = 1 and karta >= elektro:
-				'<b><font color="green"><<elektro>> <b>₽</b> for utilities, has been automatically deducted from your bank account and overdraw facility. Please contact your bank.</font></b>'
+				'<b><font color="green"><<elektro>> <b>₽</b> for utilities has been automatically deducted from your bank account and overdraw facility. Please contact your bank.</font></b>'
 				electroday = 1
 				if elektro >= 2000:
-					elektro = 2000 + rand(0, 100)
+					elektro = 2000 + rand(0,100)
 					karta -= elektro * hcount_util
 				end
 			elseif bankAccount = 0 and money >= elektro:
-				'<b><font color="red">You currently do not have a bank account setup for automatic utilities payments. <<elektro>> <b>₽</b> has been deducted from your cash holdings.</font></b>'
+				'<b><font color="red">You currently do not have a bank account set up for automatic utilities payments. <<elektro>> <b>₽</b> has been deducted from your cash holdings.</font></b>'
 				electroday = 1
 				if elektro >= 2000:
-					elektro = 2000 + rand(0, 100)
+					elektro = 2000 + rand(0,100)
 					money -= elektro * hcount_util
 				end
 			else
-				'<b><font color="red">Your card was declined during automatic debit of <<elektro>> <b>₽</b>, for automatic utilities payment.</font></b>'
+				'<b><font color="red">Your card was declined during automatic debit of <<elektro>> <b>₽</b> for automatic utilities payment.</font></b>'
 			end
 		end
 
@@ -617,15 +575,15 @@ if $ARGS[0] = 'cikl':
 		if kabel > 0 and kabelday = 0:
 			gs 'housing', 'cable'
 			if bankAccount = 1 and karta - bankDebtLimit >= (300 * hcount_cable):
-				'<b><font color="green">300 <b>₽</b> has been deducted from your bank account, for you cable TV subscription.</font></b>'
+				'<b><font color="green">300 <b>₽</b> has been deducted from your bank account for your cable TV subscription.</font></b>'
 				kabelday = 1
 				karta -= 300 * hcount_cable
 			elseif bankAccount = 1 and karta >= (300 * hcount_cable):
-				'<b><font color="green">300 <b>₽</b> has been deducted from your bank account and overdraw facility, for you cable TV subscription.</font></b>'
+				'<b><font color="green">300 <b>₽</b> has been deducted from your bank account and overdraw facility for your cable TV subscription.</font></b>'
 				kabelday = 1
 				karta -= 300 * hcount_cable
 			elseif bankAccount = 0 and money >= (300 * hcount_cable):
-				'<b><font color="red">You currently do not have a bank account setup for automatic payment of your cable TV subscription. 300 <b>₽</b> has been deducted from your cash holdings.</font></b>'
+				'<b><font color="red">You currently do not have a bank account set up for automatic payment of your cable TV subscription. 300 <b>₽</b> has been deducted from your cash holdings.</font></b>'
 				kabelday = 1
 				money -= 300 * hcount_cable
 			else

+ 3 - 1
locations/bras.qsrc

@@ -208,6 +208,7 @@ if $ARGS[0] = 'view_bra_item':
 	!! ARGS 1 = action type (wardrobe, bathroom, shop)
 	!! ARGS 2 - bra type
 	!! ARGS 3 - bra index
+	!! ARGS 4 - price modifier (0-100, taken as %) {OPTIONAL}
 
 	cla
 	'<center><img src="<<FUNC(''$bra_image'',  $ARGS[2], ARGS[3])>>"></center>'
@@ -224,7 +225,7 @@ if $ARGS[0] = 'view_bra_item':
 			'You already own this item.'
 			act 'Leave': gt $loc, $loc_arg
 		else
-			price = BraPrice
+			price = BraPrice + (BraPrice * ARGS[4]) / 100
 			'Price: <<BraPrice>> <b>₽</b>'
 			act 'Leave': gt $loc, $loc_arg
 			if money >= price:
@@ -253,6 +254,7 @@ if $ARGS[0] = 'view_bra_item':
 				else
 					'You do not own the matching panties, you can buy this bra and them as a set.'
 					price_set = BraPrice*18/10
+					price_set += (price_set * ARGS[4]) / 100
 					'Price for set: <<price_set>> <b>₽</b>'
 					if money >= price_set:
 						act 'Buy set (cash)':

+ 50 - 48
locations/clothing.qsrc

@@ -102,7 +102,7 @@ $clothing_list_line = {
 	else
 		clothing_temp = 100 & !clothing widdefault to 100
 	end
-	$RESULT +='<TD><a href="exec:gt ''clothing'', ''view_clothing_item'', ''<<$ARGS[1]>>'', <<ARGS[2]>>, ''<<$ARGS[0]>>''"><img src="<<FUNC(''$clothing_image'', $ARGS[1], ARGS[2])>>" width="<<clothing_temp>>"></a></TD>'
+	$RESULT +='<TD><a href="exec:gt ''clothing'', ''view_clothing_item'', ''<<$ARGS[0]>>'', ''<<$ARGS[1]>>'', <<ARGS[2]>>"><img src="<<FUNC(''$clothing_image'', $ARGS[1], ARGS[2])>>" width="<<clothing_temp>>"></a></TD>'
 	killvar 'clothing_temp'
 	$swimwear_description = ''
 	gs 'clothing_attributes', $ARGS[1], ARGS[2]
@@ -1468,27 +1468,28 @@ end
 
 if $ARGS[0] = 'view_clothing_item':
 	!! ARGS 0 - view_clothing_item
-	!! ARGS 1 - clothing type
-	!! ARGS 2 - clothing index
-	!! ARGS 3 = action type (wardrobe, shop, sell, resize)
+	!! ARGS 1 - action type (wardrobe, shop, sell, resize)
+	!! ARGS 2 - clothing type
+	!! ARGS 3 - clothing index
+	!! ARGS 4 - price modifier (0-100, taken as %) {OPTIONAL}
 
 	$swimwear_description = ''
 
 	cla
-	'<center><img src="<<FUNC(''$clothing_image'', $ARGS[1], ARGS[2])>>"></center>'
-	gs 'clothing_attributes', $ARGS[1], ARGS[2]
+	'<center><img src="<<FUNC(''$clothing_image'', $ARGS[2], ARGS[3])>>"></center>'
+	gs 'clothing_attributes', $ARGS[2], ARGS[3]
 
-	$RESULT = FUNC('$short_description', $ARGS[1], CloStyle2)
-	$RESULT += '<<ARGS[2]>>'
+	$RESULT = FUNC('$short_description', $ARGS[2], CloStyle2)
+	$RESULT += '<<ARGS[3]>>'
 	'<<$RESULT>>'
-	if $ARGS[1] = 'misc_outfits' and ARGS[2] = 1:
+	if $ARGS[2] = 'misc_outfits' and ARGS[3] = 1:
 		'A hessian sack the hunters gave you.'
 	elseif $swimwear_description = '':
 		gs 'clothing_descriptions'
 		'<<$description>>'
-		if hypnoClothes > 0 and (CloThinness >= 6 or $ARGS[1] = 'salacious_outfits' or $ARGS[1] = 'salacious_dress' _
-		or (($ARGS[1] = 'eroto_outfits' or $ARGS[1] = 'eroto_dress' or $ARGS[1] = 'eroto_strip') and CloThinness >= 3) _
-		or ($ARGS[1] = 'danilovich_outfits' and CloThinness >= 5)):
+		if hypnoClothes > 0 and (CloThinness >= 6 or $ARGS[2] = 'salacious_outfits' or $ARGS[2] = 'salacious_dress' _
+		or (($ARGS[2] = 'eroto_outfits' or $ARGS[2] = 'eroto_dress' or $ARGS[2] = 'eroto_strip') and CloThinness >= 3) _
+		or ($ARGS[2] = 'danilovich_outfits' and CloThinness >= 5)):
 			nl & '<I>You have a strange feeling about this outfit. You <b>really</b> want to wear it.</i>'
 		end
 	else
@@ -1520,28 +1521,29 @@ if $ARGS[0] = 'view_clothing_item':
 		'This is sport clothing.'
 	end
 
-	if $ARGS[3] ! 'shop' and ($ARGS[1] ! 'gm_school' or ARGS[2] ! 6):
+	if $ARGS[1] ! 'shop' and ($ARGS[2] ! 'gm_school' or ARGS[3] ! 6):
 		$RESULT = '(strength '
-		dynamic '$RESULT += <<$ARGS[1]>>_h[<<ARGS[2]>>]'
-		if $ARGS[1] ! 'danilovich_outfits' and $ARGS[1] ! 'coat' and CloStyle ! 5:
+		dynamic '$RESULT += <<$ARGS[2]>>_h[<<ARGS[3]>>]'
+		if $ARGS[2] ! 'danilovich_outfits' and $ARGS[2] ! 'coat' and CloStyle ! 5:
 			$RESULT += ', hip size '
-			dynamic '$RESULT += <<$ARGS[1]>>_b[<<ARGS[2]>>]'
+			dynamic '$RESULT += <<$ARGS[2]>>_b[<<ARGS[3]>>]'
 		end
 		$RESULT += ')'
 		'<<$RESULT>>'
 	end
 
-	if $ARGS[3] = 'shop':
-		if dyneval('RESULT = <<$ARGS[1]>>[<<ARGS[2]>>]') = 1:
+	if $ARGS[1] = 'shop':
+		if dyneval('RESULT = <<$ARGS[2]>>[<<ARGS[3]>>]') = 1:
 			'You already own this item.'
 			act 'Leave': gt $loc, $loc_arg
 		else
-			if $ARGS[1] = 'coat' and ARGS[2] = 5:
+			if $ARGS[2] = 'coat' and ARGS[3] = 5:
 				price = CloPrice
 			else
-				price = (CloPrice * ((5 * CloQuality) + 100) / 100) * 1000 / (1250 - Clothingstock[ARGS[2]]) * 3 / 2
+				price = (CloPrice * ((5 * CloQuality) + 100) / 100) * 1000 / (1250 - Clothingstock[ARGS[3]]) * 3 / 2
 				price = price / 50 * 50
 			end
+			price += (ClorPrice * ARGS[4]) / 100
 			'Price: <<price>> <b>₽</b>'
 			act 'Leave': gt $loc, $loc_arg
 			if CloInhibit > pcs_inhib:
@@ -1556,7 +1558,7 @@ if $ARGS[0] = 'view_clothing_item':
 						if CloStyle = 5:h = 20
 						h += (3 * CloQuality)
 						money -= price
-						gs 'clothing', 'view_clothing_item_buy', $ARGS[3], $ARGS[1], ARGS[2]
+						gs 'clothing', 'view_clothing_item_buy', $ARGS[1], $ARGS[2], ARGS[3]
 					end
 				end
 				if karta >= Price:
@@ -1566,17 +1568,17 @@ if $ARGS[0] = 'view_clothing_item':
 						if CloStyle = 5:h = 20
 						h += (3 * CloQuality)
 						karta -= price
-						gs 'clothing', 'view_clothing_item_buy', $ARGS[3], $ARGS[1], ARGS[2]
+						gs 'clothing', 'view_clothing_item_buy', $ARGS[1], $ARGS[2], ARGS[3]
 					end
 				end
 			end
 		end
-	elseif $ARGS[3] = 'wardrobe':
+	elseif $ARGS[1] = 'wardrobe':
 		act 'Return':gt 'clothing', 'clothing_list', '<<$ward_list_store>>'
 
-		if $ARGS[1] ! 'gm_school' or ARGS[2] ! 6:
+		if $ARGS[2] ! 'gm_school' or ARGS[3] ! 6:
 			!! if the clothing is worn out
-			if dyneval('RESULT = <<$ARGS[1]>>_h[<<ARGS[2]>>]') <= 0:
+			if dyneval('RESULT = <<$ARGS[2]>>_h[<<ARGS[3]>>]') <= 0:
 				'This item is worn and is not suitable for further wear.'
 				if pcs_sewng >= 60 and mc_inventory['sewing_fabric'] > 0:
 					cla
@@ -1587,7 +1589,7 @@ if $ARGS[0] = 'view_clothing_item':
 							cla
 							mc_inventory['sewing_fabric'] -= 1
 							minut += 30
-							dynamic $ARGS[1] + '_h[<<ARGS[2]>>] += 30'
+							dynamic $ARGS[2] + '_h[<<ARGS[3]>>] += 30'
 							'<center><img <<$set_imgh>> src="images/pc/activities/sewing/fix' + rand(1,2) + '.jpg"></center>'
 							'You spend 30 minutes fixing the outfit.'
 							act 'Return':gt 'clothing', 'clothing_list', '<<$ward_list_store>>'
@@ -1596,7 +1598,7 @@ if $ARGS[0] = 'view_clothing_item':
 							cla
 							mc_inventory['sewing_fabric'] += 3
 							minut += 30
-							dynamic $ARGS[1] + '[<<ARGS[2]>>] = 0'
+							dynamic $ARGS[2] + '[<<ARGS[3]>>] = 0'
 							'<center><img <<$set_imgh>> src="images/pc/activities/sewing/fix' + rand(1,2) + '.jpg"></center>'
 							'Despite your skill with a needle, this outfit has proved beyond repair. All that is left of it is only good for your cloth pile.'
 							act 'Return': gt 'clothing', 'clothing_list', '<<$ward_list_store>>'
@@ -1609,9 +1611,9 @@ if $ARGS[0] = 'view_clothing_item':
 			end
 
 			!! if the clothing is a type that checks for hip size
-			if $ARGS[1] ! 'danilovich_outfits' and CloStyle ! 5:
+			if $ARGS[2] ! 'danilovich_outfits' and CloStyle ! 5:
 				!! if the hipsize is too far from your hipsize
-				dynamic 'RESULT = <<$ARGS[1]>>_b[<<ARGS[2]>>]'
+				dynamic 'RESULT = <<$ARGS[2]>>_b[<<ARGS[3]>>]'
 				if RESULT < pcs_hips - 8 or RESULT > pcs_hips + 8:
 					if RESULT < pcs_hips:
 						'This item is too small for you to wear.'
@@ -1626,7 +1628,7 @@ if $ARGS[0] = 'view_clothing_item':
 							cla
 							mc_inventory['sewing_fabric'] -= 1
 							minut += 30
-							dynamic $ARGS[1] + '_b[<<ARGS[2]>>] = pcs_hips'
+							dynamic $ARGS[2] + '_b[<<ARGS[3]>>] = pcs_hips'
 							'You spend 30 minutes resizing the outfit.'
 							act 'Return':gt 'clothing', 'clothing_list', '<<$ward_list_store>>'
 						end
@@ -1637,7 +1639,7 @@ if $ARGS[0] = 'view_clothing_item':
 							act 'Resize item':
 								minut += 15
 								money -= 500
-								dynamic $ARGS[1] + '_b[<<ARGS[2]>>] = pcs_hips'
+								dynamic $ARGS[2] + '_b[<<ARGS[3]>>] = pcs_hips'
 								*nl
 								'You hand the clothing over to the tailor who takes it into the back. Fifteen minutes later, he presents your clothing back to you, adjusted to fit you perfectly.'
 								act 'Return':gt 'clothing', 'clothing_list', '<<$ward_list_store>>'
@@ -1652,73 +1654,73 @@ if $ARGS[0] = 'view_clothing_item':
 			end
 		end
 
-		if $ARGS[1] ! 'danilovich_swimsuit' and $ARGS[1] ! 'scandalicious_bikinis' and $ARGS[1] ! 'scandalicious_swimsuit' and $ARGS[1] ! 'allure_bikinis' and $ARGS[1] ! 'allure_bikinis':
+		if $ARGS[2] ! 'danilovich_swimsuit' and $ARGS[2] ! 'scandalicious_bikinis' and $ARGS[2] ! 'scandalicious_swimsuit' and $ARGS[2] ! 'allure_bikinis' and $ARGS[2] ! 'allure_bikinis':
 
 			if CloInhibit > pcs_inhib:
 				'You don''t feel daring enough to wear an outfit this revealing.'
-			elseif ARRPOS('$CloLosTyp', $ARGS[1]) ! -1 and ARRPOS('CloLosNum',ARGS[2]) ! -1 :
+			elseif ARRPOS('$CloLosTyp', $ARGS[2]) ! -1 and ARRPOS('CloLosNum',ARGS[3]) ! -1 :
 				'You lost these clothes somewhere, maybe you can find them again?.'
 			else
 				act 'Wear':
-					gs 'clothing', 'wear', $ARGS[1], ARGS[2]
+					gs 'clothing', 'wear', $ARGS[2], ARGS[3]
 
 					gt 'clothing', 'view_clothing_list', '<<$ward_list_page>>', '<<$ward_list_store>>'
 				end
 			end
 		end
-	elseif $ARGS[3] = 'store' or $ARGS[3] = 'unwanted':
+	elseif $ARGS[1] = 'store' or $ARGS[1] = 'unwanted':
 		act 'Return':gt 'clothing', 'clothing_list', '<<$ward_list_store>>'
 
-		if $ARGS[1] ! 'coat':
+		if $ARGS[2] ! 'coat':
 			act 'Move back to wardrobe':
-				dynamic $ARGS[1] + '_s[<<ARGS[2]>>] = 0'
+				dynamic $ARGS[2] + '_s[<<ARGS[3]>>] = 0'
 				gt 'clothing', 'clothing_list', '<<$ward_list_store>>'
 			end
 		end
 
-	elseif $ARGS[3] = 'sell':
-		$ward_list_page = $ARGS[3]
+	elseif $ARGS[1] = 'sell':
+		$ward_list_page = $ARGS[1]
 		act 'Keep item':gt 'clothing', 'clothing_list', '<<$ward_list_store>>'
 
 		!! value is based on the strength remaining
-		dynamic 'RESULT = <<$ARGS[1]>>_h[<<ARGS[2]>>]'
+		dynamic 'RESULT = <<$ARGS[2]>>_h[<<ARGS[3]>>]'
 		if RESULT > 45:
 			'You can sell this item for 500 <b>₽</b>.'
 			act 'Sell':
-				dynamic '<<$ARGS[1]>>[<<ARGS[2]>>] = 0'
+				dynamic '<<$ARGS[2]>>[<<ARGS[3]>>] = 0'
 				money += 500
 				gt 'clothing', 'clothing_list', '<<$ward_list_store>>'
 			end
 		elseif RESULT > 30:
 			'You can sell this item for 300 <b>₽</b>.'
 			act 'Sell':
-				dynamic '<<$ARGS[1]>>[<<ARGS[2]>>] = 0'
+				dynamic '<<$ARGS[2]>>[<<ARGS[3]>>] = 0'
 				money += 300
 				gt 'clothing', 'clothing_list', '<<$ward_list_store>>'
 			end
 		elseif RESULT > 0:
 			'You can sell this item for 100 <b>₽</b>.'
 			act 'Sell':
-				dynamic '<<$ARGS[1]>>[<<ARGS[2]>>] = 0'
+				dynamic '<<$ARGS[2]>>[<<ARGS[3]>>] = 0'
 				money += 100
 				gt 'clothing', 'clothing_list', '<<$ward_list_store>>'
 			end
 		else
 			'This item is too worn to have any sale value.'
 			act 'Throw it away':
-				dynamic '<<$ARGS[1]>>[<<ARGS[2]>>] = 0'
+				dynamic '<<$ARGS[2]>>[<<ARGS[3]>>] = 0'
 				gt 'clothing', 'clothing_list', '<<$ward_list_store>>'
 			end
 		end
-	elseif $ARGS[3] = 'resize':
+	elseif $ARGS[1] = 'resize':
 		act 'Leave item alone':gt 'clothing', 'view_clothing_list', '<<$ward_list_page>>', '<<$ward_list_store>>'
 
-		if $ARGS[1] ! 'danilovich_outfits' and $ARGS[1] ! 'coat' and CloStyle ! 5:
-			if dyneval('RESULT = <<$ARGS[1]>>_b[<<ARGS[2]>>]') ! pcs_hips and money >= 500:
+		if $ARGS[2] ! 'danilovich_outfits' and $ARGS[2] ! 'coat' and CloStyle ! 5:
+			if dyneval('RESULT = <<$ARGS[2]>>_b[<<ARGS[3]>>]') ! pcs_hips and money >= 500:
 				'You can have this resized for 500 <b>₽</b>.'
 				act 'Resize':
 					money -= 500
-					dynamic '<<$ARGS[1]>>_b[<<ARGS[2]>>] = pcs_hips'
+					dynamic '<<$ARGS[2]>>_b[<<ARGS[3]>>] = pcs_hips'
 					gt 'clothing', 'view_clothing_list', 'resize'
 				end
 			end

+ 2 - 1
locations/coats.qsrc

@@ -144,6 +144,7 @@ if $ARGS[0] = 'view_coat_item':
 	!! ARGS 1 = action type (draw, shop)
 	!! ARGS 2 - coat type
 	!! ARGS 3 - coat index
+	!! ARGS 4 - price modifier (0-100, taken as %) {OPTIONAL}
 
 	cla
 	'<center><img src="<<FUNC(''$coat_image'',  $ARGS[2], ARGS[3])>>"></center>'
@@ -156,7 +157,7 @@ if $ARGS[0] = 'view_coat_item':
 			'You already own this item.'
 			act 'Leave': gt $loc, $loc_arg
 		else
-			price = CoatPrice
+			price = CoatPrice + (CoatPrice * ARGS[4]) / 100
 			'Price: <<CoatPrice>> <b>₽</b>'
 			act 'Leave': gt $loc, $loc_arg
 			if money >= price:

+ 2 - 2
locations/gad_market.qsrc

@@ -238,8 +238,8 @@ if $ARGS[0] = 'swimsuit_cart':
 	end
 end
 
-if $ARGS[0] = 'bikini1': gt 'clothing', 'view_clothing_item', 'scandalicious_bikinis', i, 'shop'
-if $ARGS[0] = 'swim1': gt 'clothing', 'view_clothing_item', 'scandalicious_swimsuit', i, 'shop'
+if $ARGS[0] = 'bikini1': gt 'clothing', 'view_clothing_item', 'shop', 'scandalicious_bikinis', i
+if $ARGS[0] = 'swim1': gt 'clothing', 'view_clothing_item', 'shop', 'scandalicious_swimsuit', i
 
 
 

+ 9 - 1
locations/gschool_lessonsev1.qsrc

@@ -40,15 +40,18 @@ if $ARGS[0] = 'fiz_rand':
 			'You''re training with some free weights today. As you do your routine, you notice that the class has grown awfully quiet and glance over to see most of them gawking at Albina, who has bent over while also working out with weights and is showing off her toned bubble butt to everyone watching. She soon straightens back up and gives all of them a dirty look.'
 		end
 	elseif fizperand = 6:
+		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/gymfight.jpg"></center>'
 		'You hear a commotion from the other side of the room and look over to see Dan and Roman shoving each other. Roman shoves Dan again and it quickly starts escalating. A few punches are thrown and the two of them are soon down on the ground fighting. The coach rushes over and quickly pulls them apart before sending them to the principal.'
 	elseif fizperand = 7:
+		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/tinydick.jpg"></center>'
 		'During a break in gym class, you and several other girls are talking when Igor wanders over and tries to chat you all up. You find his efforts amusing at best and you can tell they aren''t working on the other girls either, yet he seems to think he''s oozing cool and keeps chatting up the lot of you before Vitek suddenly rushes up behind him, grabs his shorts and yanks them down to his ankles.'
 		'Unfortunately for Igor, his underwear went with the shorts and now he''s standing half naked in front of a bunch of girls. What''s worse is that now everyone can see how tiny his dick is, making you and the others gasp and giggle, several girls even pointing and laughing loudly. The whole class is soon in stitches as Igor desperately tries to pull up his shorts and fails, all while cursing at Vitek and calling him all kinds of names. You almost feel sorry for him; not only is he a terrible flirt, but the whole class has seen his tiny dick.'
 	elseif fizperand = 8 and $pantyworntype ! 'none':
 		gt 'gschool_lessonsev1', 'fiz8'
 	elseif fizperand = 9:
+		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/hanging.jpg"></center>'
 		'During class, Albina gives you a tap on the shoulder, giggling and pointing at Vitek. You look over and see the tip of his dick hanging out the leg of his shorts. You giggle as well, but you are also quite impressed and maybe just a little turned on at the sight; he''s certainly very well endowed.'
 		'It takes him a while to notice the girls giggling at him and even longer to figure out why. Once he does, he makes a show of tucking his dick away by adjusting his shorts, all with a huge smile on his face.'
@@ -57,21 +60,27 @@ if $ARGS[0] = 'fiz_rand':
 	elseif fizperand = 10 and pcs_hotcat >= 5 and fame['pav_slut'] >= 150:
 		gt 'gschool_lessonsev1', 'fiz10'
 	elseif fizperand = 11:
+		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/bendoverff.jpg"></center>'
 		'During class, Lina notices Ivan watching Lariska and moves up behind her before pushing her forward at the shoulders, making her bend over. She proceeds to pretend to hump Lariska, obviously trying to mimic Ivan''s voice and speech. "Oh Lariska, I want to fuck your ass!" This causes several of the other students to laugh, even Ivan, but it''s quickly broken up by Mr. Nikolaevich.'
 	elseif fizperand = 12:
+		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/doublebutt.jpg"></center>'
 		'During class, Lina and Lariska are whispering and giggling about something. After some time, they pull down the back of their shorts to flash their panty-clad asses at several of the more popular jock boys.'
 	elseif fizperand = 13:
+		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/dry3some.jpg"></center>'
 		'Near the end of class, some girls are chatting when they notice some boys looking their way and start horsing around. One buries her face in her friend''s breasts as the third pretends to hump her. After a few seconds, once several guys are watching, they stop and laugh as they move away.'
 	elseif fizperand = 14:
+		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/hardon.jpg"></center>'
 		'At the end of class, everyone is allowed to do their own thing so long as they''re doing something physical. You see Fedor using the bench press and notice that he''s sporting a serious hardon, with several of the other girls having noticed as well and giggling about it.'
 	elseif fizperand = 15:
+		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/stretchhump.jpg"></center>'
 		'Lina is on the floor doing the splits when Lariska comes up behind her and lays on top of her, pretending to hump her. Lina laughs before they break it up.'
 	elseif fizperand = 16:
+		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/teaseboys' + rand(1,2) + '.jpg"></center>'
 		'Lena and Lera notice several of the boys watching them and start teasing them by pretending to make out in front of them. Knowing them, they''re likely doing it for more than the laughs.'
 	else
@@ -2006,4 +2015,3 @@ if $ARGS[0] = 'russian':
 end
 
 --- gschool_lessonsev1 ---------------------------------
-

+ 60 - 49
locations/katja_dorm.qsrc

@@ -126,60 +126,71 @@ if $ARGS[0] = 'talk':
 			act 'Leave Katja''s dorm room': minut += 2 & gt 'uni_dorm', 'second_floor'
 		end
 	else
-		if (katjaQW['lazer_pussy_talk'] = 0 or (katjaQW['lazer_pussy_talk'] = 2 and katjaQW['knows_sex'] = 1 and rand(0,4) = 0)) and katjaQW['lazer_pussy'] = 0 and katjaQW['boy_block'] = 0 and katjaQW['slut'] >= 50 and katjaQW['horny'] >= 40 and katjaQW['lazar_uni_meet'] = 1 and npc_sex['A14'] > 0 and katjaQW['sex_clossedness'] = 0:
-			!!If Katja have been corrupted enough, have had sex with the player and Lazar have hit on her and Sveta at the uni cafe. She will if she is horny ask the player if the should have sex with him, provided they have not already done so before.
-			gt 'Katja_dorm', 'lazar_pussy_talk'
+		!!if katjaQW['knows_artem_is_boyfreind'] = 0 and artemQW['bf'] = 1:
+		!!			!!Katja have heard that Artem is the boyfriend of the player character and wants to discuss that . Not implemented yet since the uni content for Aremt and Katja is not done. The break up talk is still there so you can get on with Katja if you start dating Artem in school and break up in uni.
+		!!			gt 'KatjaHomeTalk', 'Artem_talk'
+	
+		!!elseif  katjaQW['knows_artem_is_boyfreind'] = 1 and artemQW['artembrokenheart'] = 1:
+		if  katjaQW['knows_artem_is_boyfreind'] = 1 and artemQW['artembrokenheart'] = 1:
+			!!Katja have heard that Artem and the player character have broke up 
+			gt 'KatjaHomeTalk', 'Artem_break_up_talk'
+
 		else
-			if katjaQW['lazer_anal_talk'] = 0 and katjaQW['lazer_anal'] = 0 and katjaQW['boy_block'] = 0 and katjaQW['slut'] >= 60 and katjaQW['lazar_uni_meet'] = 1 and katjaQW['horny'] >= 40 and npc_sex['A14'] > 0 and katjaQW['sex_clossedness'] = 0:
-				!!If Katja have been corrupted enough, have had sex with the player and Lazar have hit on her and Sveta at the uni cafe. She will if she is horny ask the player if the should have anal sex with him, provided they have not already done so before.
-				gt 'Katja_dorm', 'lazar_anal_talk'
+			if (katjaQW['lazer_pussy_talk'] = 0 or (katjaQW['lazer_pussy_talk'] = 2 and katjaQW['knows_sex'] = 1 and rand(0,4) = 0)) and katjaQW['lazer_pussy'] = 0 and katjaQW['boy_block'] = 0 and katjaQW['slut'] >= 50 and katjaQW['horny'] >= 40 and katjaQW['lazar_uni_meet'] = 1 and npc_sex['A14'] > 0 and katjaQW['sex_clossedness'] = 0:
+				!!If Katja have been corrupted enough, have had sex with the player and Lazar have hit on her and Sveta at the uni cafe. She will if she is horny ask the player if the should have sex with him, provided they have not already done so before.
+				gt 'Katja_dorm', 'lazar_pussy_talk'
 			else
-				if min(katjaQW['horny'],100) > rand(40,400) or (katjaQW['QWstage'] = 2 and katjaQW['boy_block'] = 0 and min(katjaQW['horny'],100) > rand(40,160)) and katjaQW['sex_clossedness'] < 2:
-					if katjaQW['lazer_anal'] + katjaQW['lazer_pussy'] >= 2 and katjaQW['lazar_day'] ! daystart and rand(0,6) = 0 and katjaQW['sex_clossedness'] = 0:
-						!! Katja want to have a threesome with Lazar
-						gt 'katja_dorm', 'lazar_kiss'
-					elseif katjaQW['QWstage'] > 2:
-						!!The standard start of her sex scenes at home.
-						gt 'KatjaHomeTalk', 'hornykiss'
-					else
-						!!This only triggers if the player have never kissed Katja.
-						gt 'KatjaHomeTalk', 'tender_kiss'
-					end
+				if katjaQW['lazer_anal_talk'] = 0 and katjaQW['lazer_anal'] = 0 and katjaQW['boy_block'] = 0 and katjaQW['slut'] >= 60 and katjaQW['lazar_uni_meet'] = 1 and katjaQW['horny'] >= 40 and npc_sex['A14'] > 0 and katjaQW['sex_clossedness'] = 0:
+					!!If Katja have been corrupted enough, have had sex with the player and Lazar have hit on her and Sveta at the uni cafe. She will if she is horny ask the player if the should have anal sex with him, provided they have not already done so before.
+					gt 'Katja_dorm', 'lazar_anal_talk'
 				else
-					if katjaQW['coke_day_ask'] ! daystart and katjaQW['coke_day'] ! daystart and rand(6,12) <=  katjaQW['coke_stage']:
-						!! Katja want to do cocaine
-						gt 'katja_dorm',  'cocain_offer'
+					if min(katjaQW['horny'],100) > rand(40,400) or (katjaQW['QWstage'] = 2 and katjaQW['boy_block'] = 0 and min(katjaQW['horny'],100) > rand(40,160)) and katjaQW['sex_clossedness'] < 2:
+						if katjaQW['lazer_anal'] + katjaQW['lazer_pussy'] >= 2 and katjaQW['lazar_day'] ! daystart and rand(0,6) = 0 and katjaQW['sex_clossedness'] = 0:
+							!! Katja want to have a threesome with Lazar
+							gt 'katja_dorm', 'lazar_kiss'
+						elseif katjaQW['QWstage'] > 2:
+							!!The standard start of her sex scenes at home.
+							gt 'KatjaHomeTalk', 'hornykiss'
+						else
+							!!This only triggers if the player have never kissed Katja.
+							gt 'KatjaHomeTalk', 'tender_kiss'
+						end
 					else
-						if npc_pregtalk['A14'] = 0 and (KatjaConflict = 0 or katjaconflict = 2) and func('body_din','pregnancyVisibility') = 1:
-							!! If Katja can see you are pregant and you haven''t already told her this will create a conflict with to different responses depending on if Katja is pregnant or not.
-							if kid > 0:
-								cla
-								gs 'stat'
-								minut += 5
-								KatjaConflict = 1
-								KatConCheck = daystart
-								'"You''re pregnant again?" Her face turns red, and she glares at you with an intensity you''ve never seen before. "After everything, you still didn''t trust me enough to tell me?"'
-								'You try to speak up, but she folds her arms and turns her back to you.'
-								'"I thought there was something special between us..." Something wet glistens on her cheek, which she wipes away dismissively. "Get out. I don''t want to see you right now."'
-							elseif knowKatjaPreg = 1:
-								cla
-								gs 'stat'
-								minut += 5
-								KatjaConflict = 1
-								KatConCheck = daystart
-								'"Are you pregnant?" Katja looks at you, betrayal in her eyes. "Why didn''t you tell me? I thought we were closer than that. I told you when I got pregnant. I need to think. We''ll talk later."'
+						if katjaQW['coke_day_ask'] ! daystart and katjaQW['coke_day'] ! daystart and rand(6,12) <=  katjaQW['coke_stage']:
+							!! Katja want to do cocaine
+							gt 'katja_dorm',  'cocain_offer'
+						else
+							if npc_pregtalk['A14'] = 0 and (KatjaConflict = 0 or katjaconflict = 2) and func('body_din','pregnancyVisibility') = 1:
+								!! If Katja can see you are pregant and you haven''t already told her this will create a conflict with to different responses depending on if Katja is pregnant or not.
+								if kid > 0:
+									cla
+									gs 'stat'
+									minut += 5
+									KatjaConflict = 1
+									KatConCheck = daystart
+									'"You''re pregnant again?" Her face turns red, and she glares at you with an intensity you''ve never seen before. "After everything, you still didn''t trust me enough to tell me?"'
+									'You try to speak up, but she folds her arms and turns her back to you.'
+									'"I thought there was something special between us..." Something wet glistens on her cheek, which she wipes away dismissively. "Get out. I don''t want to see you right now."'
+								elseif knowKatjaPreg = 1:
+									cla
+									gs 'stat'
+									minut += 5
+									KatjaConflict = 1
+									KatConCheck = daystart
+									'"Are you pregnant?" Katja looks at you, betrayal in her eyes. "Why didn''t you tell me? I thought we were closer than that. I told you when I got pregnant. I need to think. We''ll talk later."'
+								else
+									cla
+									*nl
+									minut += 5
+									KatjaConflict = 1
+									KatConCheck = daystart
+									'"Are you pregnant? Why didn''t you tell me? I thought we were closer than that. I need to think. We''ll talk later."'
+								end
+								act 'Leave Katja''s dorm room': minut += 2 & gt 'uni_dorm', 'second_floor'
 							else
-								cla
-								*nl
-								minut += 5
-								KatjaConflict = 1
-								KatConCheck = daystart
-								'"Are you pregnant? Why didn''t you tell me? I thought we were closer than that. I need to think. We''ll talk later."'
+								!!If no events triggers they you go to the part where the player can choose things to do with Katja.
+								gt 'katja_dorm', 'chat'
 							end
-							act 'Leave Katja''s dorm room': minut += 2 & gt 'uni_dorm', 'second_floor'
-						else
-							!!If no events triggers they you go to the part where the player can choose things to do with Katja.
-							gt 'katja_dorm', 'chat'
 						end
 					end
 				end
@@ -231,7 +242,7 @@ if $ARGS[0] = 'chat':
 			'Katja talks about her university subjects, cosmetics, the latest fashion trends and other things she considers very important.'
 			act 'Continue': gt 'katja_dorm', 'talk'
 		else
-			gs 'KatjaHomeTalk', 'Sextalk'
+			gs 'katja_sex_talk', 'Sextalk'
 		end
 	end
 

+ 1 - 1
locations/katja_meynold_schedule.qsrc

@@ -54,7 +54,7 @@
 !! locat['katja'] = 51 Dormroom - Getting ready to see a movie
 !! locat['katja'] = 52 Dormroom - watching a movie
 !! locat['katja'] = 53 At city nightclub.
-!! locat['katja'] = 54 Gone home with a guy and/girl (possible together with the player character), used to make sure she wont return to the location she left.
+!! locat['katja'] = 54 Gone home with a guy and/or girl (possible together with the player character), used to make sure she wont return to the location she left.
 
 locat['katja'] = 0
 

+ 6 - 1
locations/katja_procedural.qsrc

@@ -76,7 +76,8 @@
 !! npc_ass['A14'] The capacity for Katja to take a dick (or dildo) in her ass. (KatjaAnus)
 !! katjaQW['pussy_sex'] = 1 Katja have had pussy sex with guy where the player character wasn''t present.
 !! katjaQW['anal_sex'] = 1 Katja have had anal sex with guy where the player character wasn''t present.
-!! katjaQW['deepthroat'] Number of time Katja have deepthroated
+!! katjaQW['deepthroat'] Number of times Katja have deepthroated
+!! katjaQW['titjob'] Number of times Katja have given a titjob to a guy
 !! katjaQW['dp'] the number of times Katja have been double penetrated.
 !! katjaQW['creampie'] number of creampies Katja have received
 !!  katjaQW['bondage_sex']  number of times Katja and the player character have had sex where the player character was bound and/or blindfolded.
@@ -93,6 +94,10 @@
 !! katjaQW['marcus_disco'] = 1 Katja and the player character have had a threesome with Marcus at the community center disco.
 !! katjaQW['lazar_pussy'] = 1 Katja has taken Lazar''s cock in her pussy.
 !! katjaQW['lazar_anal'] = 1 Katja has taken Lazar''s cock in her ass.
+!! katjaQW['Artem_pussy'] = 1 Katja has taken Artem''s cock in her pussy.
+
+!!katjaQW['knows_artem_is_boyfreind'] = 1 Katja knows that Artem is the player characters boyfriend and will not ask for sex with other boys (What actually prevents from sex with outer boys is done by setting katjaQW['boy_block'] = 1)
+!!katjaQW['knows_artem_is_boyfreind'] = 2 Katja knows the player characters has broken up with Artem and will again ask for sex with other boys.
 
 !! katjaQW['lazar_pussy_talk'] = 1 Katja and the player character have talked about having sex with Lazar.
 !! katjaQW['lazar_anal_talk'] = 1 Katja and the player character have talked about having anal sex with Lazar.

+ 567 - 0
locations/katja_sex_talk.qsrc

@@ -0,0 +1,567 @@
+# katja_sex_talk
+!2024/11/08
+
+!!This files have the content for talking with Katja about sex, used to be part of KatjaHomeTalk but that file grew to large.
+
+if $ARGS[0] = 'Sextalk':
+	'After talking for some time Katja looks at you thoughtfully while her head is turning completely red.'
+	if katjaQW['boy_block'] = 1:
+		kattalkrand = rand(3, 4)
+	else
+		kattalkrand = rand(0, 4)
+	end
+
+	if kattalkrand = 0:
+		if stat['bj'] > 0:
+			gs 'katja_sex_talk', 'bj_talk1'
+		else
+			if katjaQW['knows_BJ'] > 0:
+				'"<<$pcs_nickname>>, tell me, how are you at sucking dick?"'
+			else
+				'"<<$pcs_nickname>>, have you ever given a guy a blowjob?"'
+			end
+			act 'You''ve never given a blowjob':
+				*clr & cla
+				minut += 3
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+				'You tell Katja that you have never given a blowjob to a guy. She admits that she hasn''t either. "Vicky talks about how good it is all the time, but I don''t know. Guys usually smell bad and I''m sure it would taste awful."'
+				act 'Continue talking':
+					minut += 5
+					if $loc = 'katja_dorm':
+						gt 'katja_dorm', 'talk'
+					else
+						gt 'KatjaHomeTalk'
+					end
+				end
+			end
+		end
+
+		act 'Tell Katja you are not into boys <br><font color="red">(blocks further contents with Katja and boys)</font>': gt 'KatjaHomeTalk',  'boy_no'
+
+	elseif kattalkrand = 1:
+		if katjaQW['knows_sex'] > 0:
+			'"<<$pcs_nickname>>, tell me. Have you ever fucked someone?"'
+		else
+			'"<<$pcs_nickname>>, have you ever had sex with a guy?"'
+		end
+
+		if stat['vaginal'] > 0:
+			act 'Talk about sex':
+				*clr & cla
+				minut += 3
+				katjaQW['horny'] += 5
+				katjaQW['knows_sex'] = 1
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+				'You tell Katja about the times you''ve had sex and how it felt. She blushes and bites her lip.'
+				if katjaQW['pussy_sex'] > 0:
+					if npc_sex['A14'] > 0: katjaQW['QWstage'] = 6
+					'Katja also tells you a story of how she had sex with a boy she picked up as a one-night stand.'
+				end
+				act 'Continue talking':
+					minut += 5
+					if $loc = 'katja_dorm':
+						gt 'katja_dorm', 'talk'
+					else
+						gt 'KatjaHomeTalk'
+					end
+				end
+			end
+		else
+			act 'No':
+				*clr & cla
+				minut += 3
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+				if katjaQW['pussy_sex'] = 0:
+					'You tell Katja that you''ve never had sex with a guy, and she admits that she''s also still a virgin. "That probably makes us the only non-nerds who haven''t had sex! Vicky does it all the time with Vanya. She won''t shut up about it!"'
+				else
+					if npc_sex['A14'] > 0: katjaQW['QWstage'] = 6
+					'You tell Katja that you''ve never had sex with a guy, and she is very surprised. "What you have never had sex with a guy? Even I have had that. I thought I was the last girl from school to lose my virginity. Vicky definitely make it seems like I was abnormal not finding somebody to fuck in school. She wouldn''t stop pushing to find a guy. It was so annoying."'
+				end
+
+				act 'Continue talking':
+					minut += 5
+					if $loc = 'katja_dorm':
+						gt 'katja_dorm', 'talk'
+					else
+						gt 'KatjaHomeTalk'
+					end
+				end
+			end
+		end
+
+		act 'Tell Katja you are not into boys <br><font color="red">(blocks further contents with Katja and boys)</font>': gt 'KatjaHomeTalk',  'boy_no'
+
+	elseif kattalkrand = 2:
+		if katjaQW['knows_anal'] > 0:
+			'"<<$pcs_nickname>>, what''s anal sex like?"'
+		else
+			'"<<$pcs_nickname>>, have you ever had a guy stick it in your ass?"'
+		end
+
+		if stat['anal'] > 0:
+			act 'Talk about anal':
+				*clr & cla
+				minut += 3
+				katjaQW['horny'] += 5
+				katjaQW['knows_anal'] = 1
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+				'You tell Katja about the times you''ve had anal sex and what it feels like. She blushes and bites her lip.'
+				if katjaQW['anal_sex'] > 0:
+					if npc_sex['A14'] > 0: katjaQW['anal_quest'] = 3
+					'Katja also tells you a story of anal sex she had with a boy a boy you don''t know she picked up one night se went out.'
+				end
+
+				act 'Continue talking':
+					minut += 5
+					if $loc = 'katja_dorm':
+						gt 'katja_dorm', 'talk'
+					else
+						gt 'KatjaHomeTalk'
+					end
+				end
+			end
+		else
+			act 'You''ve never had anal sex':
+				*clr & cla
+				minut += 3
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+				if katjaQW['anal_sex'] = 0:
+					'You tell Katja that you''ve never had anal sex. She says that she heard that a lot of girls in your class do, some more than others.'
+				else
+					if npc_sex['A14'] > 0: katjaQW['anal_quest'] = 3
+					'You tell Katja that you''ve never had anal sex. "You havn''t?" she asks rhetorically "It''s actually quite good. You should try it."'
+				end
+
+				act 'Continue talking':
+					minut += 5
+					if $loc = 'katja_dorm':
+						gt 'katja_dorm', 'talk'
+					else
+						gt 'KatjaHomeTalk'
+					end
+				end
+			end
+		end
+
+		act 'Tell Katja you are not into boys <br><font color="red">(blocks further contents with Katja and boys)</font>': gt 'KatjaHomeTalk',  'boy_no'
+
+	elseif kattalkrand = 3:
+		if katjaQW['knows_cuni'] > 0 or npc_sex['A14'] > 0:
+			'"<<$pcs_nickname>>, tell me how you lick pussy."'
+		else
+			'"<<$pcs_nickname>>, have you gone down on a girl?"'
+		end
+
+		if stat['cuni_give'] > 0:
+			act 'Talk about licking pussy':
+				*clr & cla
+				minut += 3
+				katjaQW['horny'] += 5
+				katjaQW['knows_cuni'] = 1
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+				'You tell Katja about the times you''ve gone down on another girl and how it feels. She blushes and bites her lip.'
+				
+				if katjaQW['horny'] > 50 and katjaQW['slut'] >= 40 and rand(-30,30) < katjaQW['dom'] and npc_sex['A14'] > 0:
+					'Katja asks you to show her how you lick pussy.'
+
+					act 'Show her':
+						*clr & cla
+						katjaQW['horny'] = 0
+						katjaQW['slut'] += 1
+						katjaQW['dom'] += 2
+						if npc_sex['A14'] = 0: npc_sex['A14'] = 1 & girl += 1
+						gs 'stat'
+						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/sex/school/kuni2.jpg"></center>'
+						'You''re a little confused at first before you notice her pulling her panties off. Once she has them off, she opens her legs wide. "Go on, <<$pcs_nickname>>. Show me how you do it, please."'
+						'You pause, more in surprise than anything, but her glistening wet pussy is enough to convince you. You lean forward place your face between her legs and start licking.'
+						'You suck on her clit and slip your tongue inside of her, working her pussy for all you''re worth. She begins to moan loudly and buck her hips, grinding your face into her crotch. As she gets close to orgasm, she grabs your hair and holds your face against her pussy, rubbing herself against you as much as you are licking her, leaving your face coated in her juices.'
+						'Her orgasm hits her hard, leaving her unable to talk as her body spasms. Once her orgasm passes, you lick her clean of all her pussy juices, making sure not to miss a single spot. When you look up at Katja, she has a confident smile on her face. "Well aren''t you just a good little girl?" She then kisses you deeply before you start to lean back and spread your legs, but she''s already shaking her head.'
+						'"Sorry <<$pcs_nickname>>, maybe next time. We need to finish our homework," she says sweetly. You pause before nodding in understanding. You watch the new confident look intensify on her face as she smiles and the two of you finish your homework.'
+
+						gs 'arousal', 'cuni_give', 15, 'sub', 'lesbian'
+						gs 'arousal', 'end'
+						gs 'stat'
+
+						act 'Continue talking':
+							if $loc = 'katja_dorm':
+								gt 'katja_dorm', 'talk'
+							else
+								gt 'KatjaHomeTalk'
+							end
+						end
+					end
+					act 'Ignore her':
+						minut += 5
+						if $loc = 'katja_dorm':
+							gt 'katja_dorm', 'talk'
+						else
+							gt 'KatjaHomeTalk'
+						end
+					end
+				else
+					act 'Continue talking':
+						minut += 5
+						if $loc = 'katja_dorm':
+							gt 'katja_dorm', 'talk'
+						else
+							gt 'KatjaHomeTalk'
+						end
+					end
+				end
+			end
+		else
+			act 'No':
+				*clr & cla
+				minut += 3
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+				if katjaQW['simultanous_girls'] > 0:
+					'"I''ve never gone down on a girl before," you say and Katja looks quite surprised. "Never? Is it something that you have thought about?" she asks in a curious tone.'
+					act 'I''ve thought about it':
+						cla
+						minut += 3
+						katjaQW['horny'] += 20
+						'"I''ve thought about it, alright it''s just the situation never came up" you tell Katja. "So it is something you want to try" Katja asks.'
+						if katjaQW['horny'] >= 50 and katjaQW['QWstage'] > 2 and katjaQW['slut'] >= 20:
+							'"So what would you do if that situation was to come up. For example right now?" Katja asks in a seductive voice.'
+							act 'See what Katja does': gt 'katjaHomeTalk', 'hornykiss'
+							act 'Stop her from doing anything':
+								cla
+								gs 'npc_relationship', 'modify', 'A14', 'dislike'
+								'"It would definitely not happen right now. Rigth?" you say a little unsure of how Katja will react.'
+								'"Of course not. Nothing happens here you don''t want to," she says clearly looking disappointed. She quickly changes the subject.'
+								act 'Continue talking':
+									minut += 5
+									if $loc = 'katja_dorm':
+										gt 'katja_dorm', 'talk'
+									else
+										gt 'KatjaHomeTalk'
+									end
+								end							
+							end
+						else
+							'"Well. I think that you should find a chance to try it. It is quite good" Katja says with a wink, but then changes the subject.'
+							act 'Continue talking':
+								minut += 5
+								if $loc = 'katja_dorm':
+									gt 'katja_dorm', 'talk'
+								else
+									gt 'KatjaHomeTalk'
+								end
+							end
+						end
+					end
+					act 'I''m not into girls':
+						cla
+						minut += 3
+						gs 'npc_relationship', 'modify', 'A14', 'dislike'
+						gs 'stat'
+						'"I''m not into girls" you tell Katja. "Really?" Katja says surprised "Too bad for you. You are really missing out on something. Making love to girls is really something, they are '+iif(katjaQW['knows_sex'] +katjaQW['knows_BJ'] + katjaQW['knows_anal'] > 0, 'much more tender than boys', 'so tender')+'."'
+						'"I really think that you should give it a thought" she continues seemingly a little disappointed in your response. She then changes the subject.'
+						act 'Continue talking':
+							minut += 5
+							if $loc = 'katja_dorm':
+								gt 'katja_dorm', 'talk'
+							else
+								gt 'KatjaHomeTalk'
+							end
+						end
+					end
+				else
+					'You tell Katja that you''ve never gone down on a girl. She seems a little surprised and you get the feeling that this was not what she wanted to hear.'
+				end
+				act 'Continue talking':
+					minut += 5
+					if $loc = 'katja_dorm':
+						gt 'katja_dorm', 'talk'
+					else
+						gt 'KatjaHomeTalk'
+					end
+				end
+			end
+		end
+	elseif kattalkrand = 4:
+		if katjaQW['knows_masturbation'] > 0:
+			'"<<$pcs_nickname>>, tell me how you masturbate."'
+		else
+			'"<<$pcs_nickname>>, do you masturbate?"'
+		end
+
+		if stat['mast'] > 0:
+			act 'Talk about masturbation':
+				*clr & cla
+				minut += 3
+				katjaQW['horny'] += 5
+				katjaQW['knows_masturbation'] = 1
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+				'You tell Katja how you masturbate in the bathroom and she blushes and bites her lip.'
+
+				if katjaQW['masturbates'] = 0:
+					act 'Continue talking':
+						minut += 5
+						if $loc = 'katja_dorm':
+							gt 'katja_dorm', 'talk'
+						else
+							gt 'KatjaHomeTalk'
+						end
+					end
+				else
+					act 'Katja responds':
+						*clr & cla
+						minut += 5
+						katjaQW['horny'] += 10
+						gs 'stat'
+						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/sex/school/mastr.jpg"></center>'
+						'Katja tells you she also masturbates, right here in this room, fondling herself between her legs.'
+
+						act 'Continue talking':
+							minut += 5
+							if $loc = 'katja_dorm':
+								gt 'katja_dorm', 'talk'
+							else
+								gt 'KatjaHomeTalk'
+							end
+						end
+					end
+				end
+			end
+
+			if stat['self_fisting'] > 0:
+				act 'Tell her how you pushed your hand into your pussy':
+					*clr & cla
+					minut += 3
+					katjaQW['horny'] += 10
+
+					gs 'stat'
+					'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+					'You tell Katja how you '+iif(stat['self_fisting'] = 1, 'once', 'sometimes')+' put your whole fist into your pussy, and how it felt doing it.'
+					'Katja looks '+iif(katjaQW['knows_self_fisting'] = 0, 'completely shocked, but', 'excited, and')+' her head turns even redder as she bites her lip.'
+
+					if katjaQW['knows_self_fisting'] = 0: katjaQW['knows_self_fisting'] = 1
+
+					act 'Continue talking':
+						if katjaQW['fisted_vag'] = 0 and npc_vag['A14'] > 3 and katjaQW['slut'] >= 70 and katjaQW['horny'] >= 50 and npc_sex['A14'] > 0:
+							gt 'katjaHomeTalk', 'fisting_ask'
+						else
+							minut += 5
+							if $loc = 'katja_dorm':
+								gt 'katja_dorm', 'talk'
+							else
+								gt 'KatjaHomeTalk'
+							end
+						end
+					end
+				end
+			end
+
+			if stat['self_fisting_anal'] > 0:
+				act 'Tell her how you fisted your ass':
+					*clr & cla
+					minut += 3
+					katjaQW['horny'] += 10
+
+					if katjaQW['knows_self_fisting_anal'] = 0: katjaQW['knows_self_fisting_anal'] = 1
+
+					gs 'stat'
+					'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+					'You tell Katja how you masturbate anally and even managed to stretch it so much that you could shove your fist into it.'
+					'She blushes and bites her lip.'
+
+					act 'Continue talking':
+						minut += 5
+						if $loc = 'katja_dorm':
+							gt 'katja_dorm', 'talk'
+						else
+							gt 'KatjaHomeTalk'
+						end
+					end
+				end
+			end
+		else
+			act 'You''ve never masturbated':
+				*clr & cla
+				minut += 3
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+				if katjaQW['masturbates'] > 0:
+					'"What!!" Katja says surprised. "You never masturbated. Why? I thought that everybody does it, even I do it and I''m usually the last to do anything" she continues'
+					'You then try to explain why you have never masturbated.'
+				else
+					'You tell Katja that you''ve never masturbated. She seems surprised at your answer.'
+				end
+				act 'Continue talking':
+					minut += 5
+					if $loc = 'katja_dorm':
+						gt 'katja_dorm', 'talk'
+					else
+						gt 'KatjaHomeTalk'
+					end
+				end
+			end
+		end
+	end
+
+	act 'Refuse to talk about such topics':
+		cla
+		minut += 1
+		gs 'stat'
+		'You refuse to talk about such topics with her and she looks down in confusion and mumbles. "Sorry, <<$pcs_nickname>>, I didn''t mean to pry."'
+
+		act 'Continue talking':
+			minut += 5
+			if $loc = 'katja_dorm':
+				gt 'katja_dorm', 'talk'
+			else
+				gt 'KatjaHomeTalk'
+			end
+		end
+	end
+end
+
+if $ARGS[0] = 'bj_talk1':
+	minut += 3
+	if katjaQW['knows_BJ'] > 0:
+		'"<<$pcs_nickname>>!" she says, a sparkle in her eye. "Tell me what it''s like to suck dick again."'
+	elseif katjaQW['knows_BJ']= 0:
+		'"<<$pcs_nickname>>, have you ever given a guy a blowjob?"'
+	end
+
+	if stat['bj'] > 0:
+		if katjaQW['knows_BJ'] = 0:
+			act 'No (lie)':
+				cla & *clr
+				minut += 3		
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+				'"No," you shake your head before shamelessly lying through your teeth. "I''ve never given a blowjob before."'
+				'"Oh." She sits back, looking disappointed for some reason.'
+				act 'Continue':
+					minut += 5
+					if $loc = 'katja_dorm':
+						gt 'katja_dorm', 'talk'
+					else
+						gt 'KatjaHomeTalk'
+					end
+				end
+			end
+			act'Yes':
+				minut += 3
+				cla & *clr
+				katjaQW['horny'] += 5
+				katjaQW['knows_BJ'] = 1
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+				'"Yeah. I''ve given a few," you admit.'
+				'"What''s it like?" Katja asks, eyes wide with excitement.'
+				gs 'katja_sex_talk', 'bj_talk2'
+			end
+		elseif stat['bj'] > 0:
+			minut += 3
+			katjaQW['horny'] += 5
+			gs 'katja_sex_talk', 'bj_talk2'
+		end
+	else
+		act 'No':
+			cla & *clr
+			minut += 3
+			gs 'stat'
+			'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+			'"No," you shake your head. "I''ve never given a blowjob before."'
+			'"Oh." She sits back, looking disappointed for some reason. "Guess we''re both clueless then, huh?"'
+			act 'Continue':
+				minut += 5
+				if $loc = 'katja_dorm':
+					gt 'katja_dorm', 'talk'
+				else
+					gt 'KatjaHomeTalk'
+				end
+			end
+		end
+		!!act'I''ve given a few (lie)':
+	end
+end
+
+if $ARGS[0] = 'bj_talk2':
+	act'It tastes funny':
+		cla & *nl
+		'"It tastes funny," you wrinkle your nose. "It''s like, kinda salty? But also sort of... musty? I don''t think I mind the act itself that much, but dick has a weird flavor."'
+		'Katja seems taken aback, almost disappointed. You guess this isn''t the answer she was hoping for.'
+		act 'Continue':
+			minut += 5
+			if $loc = 'katja_dorm':
+				gt 'katja_dorm', 'talk'
+			else
+				gt 'KatjaHomeTalk'
+			end
+		end
+	end
+	
+	act'It''s fun':
+		cla & *nl
+		katjaQW['horny'] += 5
+		'"It''s fun!" you grin. "I''m not really sure what it is, but something about having a dick in your mouth is really entertaining. It''s like, totally alive! And you can feel it making all these tiny movements when it''s on your tongue. I really like giving head."'
+		'Katja hangs on your every word, nodding excitedly for you to keep describing your experiences with oral sex to her.'
+		act 'Continue':
+			minut += 5
+			if $loc = 'katja_dorm':
+				gt 'katja_dorm', 'talk'
+			else
+				gt 'KatjaHomeTalk'
+			end
+		end
+	end
+	
+	act'It''s whatever':
+		cla & *nl
+		'"I don''t mind doing it but I don''t love it either," you say. "Dick doesn''t really taste like anything if it''s clean. Kinda salty if it isn''t. I don''t know. It''s whatever I guess."'
+		'You shrug.'
+		'Katja seems taken aback, almost disappointed. You guess this isn''t the answer she was hoping for.'
+		act 'Continue':
+			minut += 5
+			if $loc = 'katja_dorm':
+				gt 'katja_dorm', 'talk'
+			else
+				gt 'KatjaHomeTalk'
+			end
+		end
+	end
+	
+	act'It''s boring':
+		cla & *nl
+		'"It''s boring," you roll your eyes. "You have to keep sucking the whole time and after a while, my jaw just starts to ache with the motion. It''s a dick in your mouth, I don''t know what to tell you."'
+		'Katja seems taken aback, looking almost worried. You guess you just shattered some impressions she had about giving head.'
+		act 'Continue':
+			minut += 5
+			if $loc = 'katja_dorm':
+				gt 'katja_dorm', 'talk'
+			else
+				gt 'KatjaHomeTalk'
+			end
+		end
+	end
+	
+	act'It turns me on':
+		cla & *nl
+		katjaQW['horny'] += 5
+		'"It turns me on so much," you admit, biting your lip in a lusty smile. "When someone''s in your mouth, you can make them feel <i>really</i> good. And they''ll respond to what you do. If you take their whole length, they''ll squirm. If you lick the head, it''ll twitch under your touch. Just knowing you can make someone else feel that way... Ugh, just <i>thinking</i> about it gets me wet!"'
+		'Katja hangs on your every word, nodding along with wide eyes as you describe what it is you love so much about giving head. A faint blush also comes to her cheeks and you notice her unconsciously rubbing her thighs together.'
+		act 'Continue':
+			minut += 5
+			if $loc = 'katja_dorm':
+				gt 'katja_dorm', 'talk'
+			else
+				gt 'KatjaHomeTalk'
+			end
+		end
+	end	
+end
+
+--- katja_sex_talk ---------------------------------
+

+ 11 - 10
locations/newspaper_pages.qsrc

@@ -67,26 +67,27 @@ end
 	!!=======================================================!!
 
 if $ARGS[0] = 'generic_0':
-	'<center>Mysterious lights over pushkin</center>'
+	'<center>Mysterious lights over Pushkin</center>'
 	*nl
-	'Last night there was several reports of floating lights over Pushkin lake, authorities have dismissed it as light bouncing off the water into low mist. However eye witness reports and photographs discredit the official report.'
+	'Last night saw several reports of floating lights over Pushkin lake. Authorities have dismissed eyewitness reports and photographs as light bouncing off the water into low mist.'
 	'Read more on page 4.'
 end
 
 if $ARGS[0] = 'generic_1':
 	'<center>Missing cosmonaut found living in cave in Vladivostok</center>'
 	*nl
-	'Former cosmonaut Valentin Vitalyevich Lebedev (82) had been reported missing 3 weeks ago after he failed to turn up for a state function celebrating the 25th anniversary of the Scientific Geoinformation Center of the Russian Academy of Science which Valentin started and is the director of. He was found in a cave with only basic amenities and a small supply of food. When asked why he was there he simply said he''d grown sick of fancy dinners and red tape. He plans to return to his home and duties next week.'
+	'Former cosmonaut Valentin Vitalyevich Lebedev (82), who was reported missing 3 weeks ago after he failed to turn up for a state function celebrating the 25th anniversary of the Scientific Geoinformation Center of the Russian Academy of Science (of which he is the director) was found in a cave with only basic amenities and a small supply of food.'
+	'When asked why he was there, he simply said he''d grown sick of fancy dinners and red tape. He plans to return to his home and duties next week.'
 end
 
 if $ARGS[0] = 'generic_2':
 	'<center>Help advance medical research today</center>'
 	*nl
-	'A St. Petersburg based medical clinic is offering significant payments to those that are willing to take part in their medical trials. We have interviewed various participants.'
+	'A St. Petersburg based medical clinic is offering significant payments to those who are willing to take part in their medical trials. We have interviewed various participants.'
 	'"All I had to do was swallow a pill and report back a week later. Took me less than 10 minutes and haven''t regretted it!"'
-	'"The staff is very friendly and helpful. My hair grew 20 cm, and even got paid for it! That''s a steal if you ask me."'
+	'"The staff are very friendly and helpful. My hair grew 20 cm and I got paid for it! That''s a steal if you ask me."'
 	'[Redacted]'
-	'"I''ve taken part in multiple trials now, and I haven''t had any complaints! Best decision of my life to take part."'
+	'"I''ve taken part in multiple trials now, and I haven''t had any complaints! Best decision of my life!"'
 	*nl
 	'Signup for a medical trial today, and help build a brighter future!'
 
@@ -106,14 +107,14 @@ end
 if $ARGS[0] = 'Gad_missing':
 	'<center>More missing people in Gadukino</center>'
 	*nl
-	'Today <<$NewspaperVars[''gad_missing_name'']>> name, <<NewspaperVars[''gad_missing_age'']>> has been reported missing in Gadukino. They was last seen four days ago foraging in the forest. This makes this the <<NewspaperVars[''gad_missing_counter'']>> person that has gone missing in recent months and the authorities are at a loss in trying to locate to what has happened to them.'
+	'<<$NewspaperVars[''gad_missing_name'']>>, <<NewspaperVars[''gad_missing_age'']>>, has been reported missing in Gadukino. Last seen four days ago while foraging in the forest, they are the <<NewspaperVars[''gad_missing_counter'']>> person who has disappeared from the village in recent months and authorities are at a loss in trying to locate them.'
 end
 
 if $ARGS[0] = 'boris_arrested':
-	'<center>Mayor Election Scandal</center>'
+	'<center>Mayoral Candidate Disgraced</center>'
 	*nl
-	'In a shocking turn of events the Mayoral candidate Boris Barlovsky has been arrested and is under investigation for numerous offences including running an escort services in Pavlosk.'
-	'We can exclusively reveal the full scandal on page 3.'
+	'In a turn of events that has shocked many, mayoral candidate Boris Barlovsky has been arrested following an extensive investigation carried out by FSB agents. The once popular Pavlovsk businessman (57) was charged with bribery, fraud and embezzlement among a string of other offences.'
+	'Read the exclusive story on page 3.'
 end
 
 

+ 3 - 1
locations/panties.qsrc

@@ -209,6 +209,7 @@ if $ARGS[0] = 'view_panty_item':
 	!! ARGS 1 = action type (draw, shop)
 	!! ARGS 2 - panty type
 	!! ARGS 3 - panty index
+	!! ARGS 4 - price modifier (0-100, taken as %) {OPTIONAL}
 	
 	cla
 	'<center><img src="<<FUNC(''$panty_image'',  $ARGS[2], ARGS[3])>>"></center>'
@@ -225,7 +226,7 @@ if $ARGS[0] = 'view_panty_item':
 			'You already own this item.'
 			act 'Leave': gt $loc, $loc_arg
 		else
-			price = PanPrice
+			price = PanPrice + (PanPrice * ARGS[4]) / 100
 			'Price: <<PanPrice>> <b>₽</b>'
 			act 'Leave': gt $loc, $loc_arg
 			if money >= price:
@@ -254,6 +255,7 @@ if $ARGS[0] = 'view_panty_item':
 				else
 					'You do not own the matching bra, you can buy it and these panties together as a set.'
 					price_set = PanPrice*18/10
+					price_set += (price_set * ARGS[4]) / 100
 					'Price for set: <<price_set>> <b>₽</b>'
 					if money >= price_set:
 						act 'Buy set (cash)':

+ 8 - 0
locations/piercing_attributes.qsrc

@@ -0,0 +1,8 @@
+# piercing_attributes
+
+PirFirst = 0
+PirPrice = 0
+
+gs '$attributes_piercing_<<$ARGS[0]>>', ARGS[1]
+
+--- piercing_attributes ---------------------------------

+ 71 - 0
locations/piercing_management.qsrc

@@ -114,7 +114,78 @@ if $ARGS[0] = 'count':
 end
 
 
+! [1] - payment method
+! [2] - slot
+! [3] - index
+if $ARGS[0] = 'buy':
+	if pcs_piercings[$ARGS[2]] = 0:
+		*clr
+		'<center><img src="<<func(''piercing_management'', ''<<$ARGS[2]>>_image'', ARGS[3])>>"></center>'
+		'The tattooist disinfects the area, pierces your <<$ARGS[2]>> and inserts your chosen piercing.'
+	else
+		'You buy the piercing.'
+	end
+
+	if $ARGS[1] = 'money': 
+		money -= price 
+	else 
+		karta -= price
+	end
+
+	gs 'piercing_management', 'add', $ARGS[2], ARGS[3]
+	gs 'piercing_management', 'count'
+	gs 'stat'
 
+	act 'Return': gt $loc, $loc_arg
+end
+
+
+! [1] - action type
+! [2] - slot
+! [3] - index
+! [4] - price modifier (0-100, taken as a %)
+if $ARGS[0] = 'view_item':
+	msg 'in item'
+	gs 'piercing_attributes', $ARGS[2], ARGS[3]
+
+	'<center><img src="<<func(''piercing_management'', ''<<$ARGS[2]>>_image'', ARGS[3])>>"></center>'
+
+	if $ARGS[1] = 'shop':
+		if pcs_piercings['<<$ARGS[2]>>_<<ARGS[3]>>_owned'] = 1:
+			'You already own this piercing.'
+			act 'Return': gt $loc, $loc_arg
+
+		else
+			price = PirPrice + (PirPrice * ARGS[4]) / 100
+			if pcs_piercings[$ARGS[2]] = 0:
+				price += PirFirst
+				if max(money, karta) < price:
+					'You cannot afford to get your <<$ARGS[2]>> pierced with this piercing.'
+				else
+					if money >= price:
+						act 'Get your <<$ARGS[2]>> pierced and buy this piercing for for <<price>> <b>₽</b> (cash)': gt 'piercing_management', 'buy', 'money', $ARGS[2], ARGS[3]
+					end
+					if karta >= price:
+						act 'Get your <<$ARGS[2]>> pierced and buy this piercing for for <<price>> <b>₽</b> (card)': gt 'piercing_management', 'buy', 'karta', $ARGS[2], ARGS[3]
+					end
+				end
+
+			else
+				if max(money, karta) < price:
+					'You don''t have enough money for this piercing.'
+				else
+					if money >= price:
+						act 'Buy this piercing for <<price>> <b>₽</b> (cash)': gt 'piercing_management', 'buy', 'money', $ARGS[2], ARGS[3]
+					end
+					if karta >= price:
+						act 'Buy this piercing for <<price>> <b>₽</b> (card)': gt 'piercing_management', 'buy', 'karta', $ARGS[2], ARGS[3]
+					end
+				end
+			end
+			act 'Return': gt $loc, $loc_arg
+		end
+	end
+end
 
 
 

+ 116 - 1649
locations/pirsingsalon.qsrc

@@ -74,9 +74,9 @@ if $ARGS[0] = 'shop_menu':
 	$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>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 0 & 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>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 1 & gt ''pirsingsalon'', ''piercing_ears''">Ear - 1,000 <b>₽</b></a>'
 	end
 	$temp_table +=		'</td>'
 	$temp_table +=	'</tr>'
@@ -90,9 +90,9 @@ if $ARGS[0] = 'shop_menu':
 	$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>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 0 & 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>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 1 & gt ''pirsingsalon'', ''piercing_nose''">Nose - 2,000 <b>₽</b></a>'
 	end
 	$temp_table +=		'</td>'
 	$temp_table +=	'</tr>'
@@ -106,9 +106,9 @@ if $ARGS[0] = 'shop_menu':
 	$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>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 0 & 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>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 1 & gt ''pirsingsalon'', ''piercing_brow''">Eyebrow - 2,000 <b>₽</b></a>'
 	end
 	$temp_table +=		'</td>'
 	$temp_table +=	'</tr>'
@@ -122,9 +122,9 @@ if $ARGS[0] = 'shop_menu':
 	$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>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 0 & 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>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 1 & gt ''pirsingsalon'', ''piercing_lip''">Lip - 3,000 <b>₽</b></a>'
 	end
 	$temp_table +=		'</td>'
 	$temp_table +=	'</tr>'
@@ -138,9 +138,9 @@ if $ARGS[0] = 'shop_menu':
 	$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>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 0 & 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>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 1 & gt ''pirsingsalon'', ''piercing_tongue''">Tongue - 4,000 <b>₽</b></a>'
 	end
 	$temp_table +=		'</td>'
 	$temp_table +=	'</tr>'
@@ -154,9 +154,9 @@ if $ARGS[0] = 'shop_menu':
 	$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>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 0 & 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>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 1 & gt ''pirsingsalon'', ''piercing_navel''">Navel - 5,000 <b>₽</b></a>'
 	end
 	$temp_table +=		'</td>'
 	$temp_table +=	'</tr>'
@@ -170,9 +170,9 @@ if $ARGS[0] = 'shop_menu':
 	$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>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 0 & 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>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 1 & gt ''pirsingsalon'', ''piercing_nipples''">Nipple - 6,000 <b>₽</b></a>'
 	end
 	$temp_table +=		'</td>'
 	$temp_table +=	'</tr>'
@@ -186,9 +186,9 @@ if $ARGS[0] = 'shop_menu':
 	$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>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 0 & 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>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 1 & gt ''pirsingsalon'', ''piercing_pussy''">Pussy - 10,000 <b>₽</b></a>'
 	end
 	$temp_table +=		'</td>'
 	$temp_table +=	'</tr>'
@@ -222,749 +222,148 @@ end
 	!!----- Ears --------------------------------------------------
 
 if $ARGS[0] = 'piercing_ears':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'piercing_ears'
 	menu_off = 1
 	gs 'stat'
 
-	ps_total = func('piercing_management', 'totals', 'ears')
-	
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-	
-	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 += step
-	if ps_i <= ps_total: jump 'loopears_pir'
-end
-
-if $ARGS[0] = 'piercing_ears2':
-	'<center><img src="<<func(''piercing_management'', ''ears_image'', ARGS[1])>>"></center>'
-
-	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:
-				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:
-				dynamic "
-					act 'Get your ears pierced with these earrings for 3,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_ears3', <<ARGS[1]>>, 'karta'
-				"
-			end
-		end
-
-	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
-			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
+	if salon_temp_state = 0 and pcs_piercings['ears'] ! 0:
 		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.'
-
+		salon_temp_state = 1
 		gs 'pain', 1, 'ears', 'pierce'
-
-	else
-		'You buy the piercing.'
 	end
 
-	if $ARGS[2] = 'money': money -= 1000 else karta -= 1000
-	gs 'piercing_management', 'add', 'ears', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'piercing_management', 'ears', 1, 'ears_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': killvar 'salon_temp_state' & gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Nose --------------------------------------------------
 
 if $ARGS[0] = 'piercing_nose':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'piercing_nose'
 	menu_off = 1
 	gs 'stat'
 
-	ps_total = func('piercing_management', 'totals', 'nose')
-	
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-	
-	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 += step
-	if ps_i <= ps_total: jump 'loopnose_pir'
-end
-
-if $ARGS[0] = 'piercing_nose2':
-	'<center><img src="<<func(''piercing_management'', ''nose_image'', ARGS[1])>>"></center>'
-
-	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 >= 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 >= 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
-
-	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
-			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
+	if salon_temp_state = 0 and pcs_piercings['nose'] ! 0:
 		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 buy the piercing.'
+		salon_temp_state = 1
+		gs 'pain', 1, 'nose', 'pierce'
 	end
 
-	if $ARGS[2] = 'money': money -= 2000 else karta -= 2000
-	gs 'piercing_management', 'add', 'nose', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'piercing_management', 'nose', 1, 'nose_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': killvar 'salon_temp_state' & gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Brow --------------------------------------------------
 
 if $ARGS[0] = 'piercing_brow':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'piercing_brow'
 	menu_off = 1
 	gs 'stat'
 
-	ps_total = func('piercing_management', 'totals', 'brow')
-	
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-	
-	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 += step
-	if ps_i <= ps_total: jump 'loopbrow_pir'
-end
-
-if $ARGS[0] = 'piercing_brow2':
-	'<center><img src="<<func(''piercing_management'', ''brow_image'', ARGS[1])>>"></center>'
-
-	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 >= 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 >= 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
-
-	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
-			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
+	if salon_temp_state = 0 and pcs_piercings['brow'] ! 0:
 		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 buy the piercing.'
+		salon_temp_state = 1
+		gs 'pain', 1, 'eyebrows', 'pierce'
 	end
 
-	if $ARGS[2] = 'money': money -= 2000 else karta -= 2000
-	gs 'piercing_management', 'add', 'brow', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'piercing_management', 'brow', 1, 'brow_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': killvar 'salon_temp_state' & gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Lip --------------------------------------------------
 
 if $ARGS[0] = 'piercing_lip':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'piercing_lip'
 	menu_off = 1
 	gs 'stat'
 
-	ps_total = func('piercing_management', 'totals', 'lip')
-	
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	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 += step
-	if ps_i <= ps_total: jump 'looplip_pir'
-end
-
-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'
-
-	elseif pcs_piercings['lip'] = 0:
-		if max(money, karta) < 6000:
-			'You cannot afford to get your lip pierced with this piercing.'
-		else
-			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 >= 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
-
-	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
-			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
+	if salon_temp_state = 0 and pcs_piercings['lip'] ! 0:
 		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 buy the piercing.'
+		salon_temp_state = 1
+		gs 'pain', 1, 'lips', 'pierce'
 	end
 
-	if $ARGS[2] = 'money': money -= 3000 else karta -= 3000
-	gs 'piercing_management', 'add', 'lip', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'piercing_management', 'lip', 1, 'lip_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': killvar 'salon_temp_state' & gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Tongue --------------------------------------------------
 
 if $ARGS[0] = 'piercing_tongue':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'piercing_tongue'
 	menu_off = 1
 	gs 'stat'
 
-	ps_total = func('piercing_management', 'totals', 'tongue')
-	
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-	
-	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 += step
-	if ps_i <= ps_total: jump 'looptongue_pir'
-end
-
-if $ARGS[0] = 'piercing_tongue2':
-	menu_off = 1
-	gs 'stat'
-
-	'<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 >= 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 >= 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
-
-	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
-			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
+	if salon_temp_state = 0 and pcs_piercings['tongue'] ! 0:
 		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 buy the piercing.'
+		salon_temp_state = 1
+		gs 'pain', 1, 'tongue', 'pierce'
 	end
 
-	if $ARGS[2] = 'money': money -= 4000 else karta -= 4000
-	gs 'piercing_management', 'add', 'tongue', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'piercing_management', 'tongue', 1, 'tongue_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': killvar 'salon_temp_state' & gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Navel --------------------------------------------------
 
 if $ARGS[0] = 'piercing_navel':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'piercing_navel'
 	menu_off = 1
 	gs 'stat'
 
-	ps_total = func('piercing_management', 'totals', 'navel')
-	
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-	
-	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 += step
-	if ps_i <= ps_total: jump 'loopbelly_pir'
-end
-
-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_navel'
-
-	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 >= 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 >= 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
-
-	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
-			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
+	if salon_temp_state = 0 and pcs_piercings['navel'] ! 0:
 		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.'
+		salon_temp_state = 1
 		gs 'pain', 1, 'tummy', 'pierce'
-
-	else
-		'You buy the piercing.'
 	end
 
-	if $ARGS[2] = 'money': money -= 5000 else karta -= 5000
-	gs 'piercing_management', 'add', 'navel', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'piercing_management', 'navel', 1, 'navel_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': killvar 'salon_temp_state' & gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Nipples --------------------------------------------------
 
 if $ARGS[0] = 'piercing_nipples':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'piercing_nipples'
 	menu_off = 1
 	gs 'stat'
 
-	ps_total = func('piercing_management', 'totals', 'nipples')
-	
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-	
-	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 += step
-	if ps_i <= ps_total: jump 'loopnip_pir'
-end
-
-if $ARGS[0] = 'piercing_nipples2':
-	'<center><img src="<<func(''piercing_management'', ''nipples_image'', ARGS[1])>>"></center>'
-
-	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 >= 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 >= 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
-
-	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
-			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
+	if salon_temp_state = 0 and pcs_piercings['nipples'] ! 0:
 		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 buy the piercing.'
+		salon_temp_state = 1
+		gs 'pain', 1, 'nipples', 'pierce'
 	end
 
-	if $ARGS[2] = 'money': money -= 6000 else karta -= 6000
-	gs 'piercing_management', 'add', 'nipples', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'piercing_management', 'nipples', 1, 'nipples_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': killvar 'salon_temp_state' & gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Pussy --------------------------------------------------
 
 if $ARGS[0] = 'piercing_pussy':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'piercing_pussy'
 	menu_off = 1
 	gs 'stat'
 
-	ps_total = func('piercing_management', 'totals', 'pussy')
-	
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-	
-	ps_i = 1
-	: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 += step
-	if ps_i <= ps_total: jump 'looppubic_pir'
-end
-
-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'
-
-	elseif pcs_piercings['pussy'] = 0:
-		if max(money, karta) < 25000:
-			'You cannot afford to get your pussy pierced with this piercing.'
-		else
-			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 >= 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
-
-	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
-			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
+	if salon_temp_state = 0 and pcs_piercings['pussy'] ! 0:
 		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 buy the piercing.'
+		salon_temp_state = 1
+		gs 'pain', 1, 'pubic', 'pierce'
 	end
 
-	if $ARGS[2] = 'money': money -= 10000 else karta -= 10000
-	gs 'piercing_management', 'add', 'pussy', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'piercing_management', 'pussy', 1, 'pussy_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': killvar 'salon_temp_state' & gt 'pirsingsalon', 'start'
 end
 
 
-
-
 	!!========================================================================!!
 	!!                                                                        !!
 	!!                                TATTOOS                                 !!
@@ -975,1149 +374,217 @@ end
 	!!----- Ankle --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_ankle':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_ankle'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	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 += step
-		if ps_i <= ps_total: jump 'looptatfoot'
-		*nl
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'ankle', 1, 'ankle_image', 'shop'
 
-	else
-		'<center><img src="<<func(''tattoo_management'', ''ankle_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_ankle2':
-	'<center><img src="<<func(''tattoo_management'', ''ankle_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 8000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 8000:
-			dynamic "
-				act 'Get this tattoo 8,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_ankle3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 8000:
-			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'
+	act 'Return': gt 'pirsingsalon', 'start'
 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'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
-end
-
-
 	!!----- Arm --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_arm':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_arm'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_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 += step
-		if ps_i <= ps_total: jump 'looptatarm'
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''arm_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_arm2':
-	'<center><img src="<<func(''tattoo_management'', ''arm_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 8000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 8000:
-			dynamic "
-				act 'Get this tattoo 8,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_arm3', <<ARGS[1]>>, 'money'
-			"
-		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
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'arm', 1, 'arm_image', 'shop'
 
-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'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Ass --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_ass':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_ass'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['ass'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'ass')
-		ps_i = 1
-		:looptatass
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_ass2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''ass_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatass'
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''ass_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_ass2':
-	'<center><img src="<<func(''tattoo_management'', ''ass_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 10000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 10000:
-			dynamic "
-				act 'Get this tattoo 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_ass3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 10000:
-			dynamic "
-				act 'Get this tattoo 10,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_ass3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'ass', 1, 'ass_image', 'shop'
 
-	act 'Return': gt 'pirsingsalon', 'tattoo_ass'
+	act 'Return': gt 'pirsingsalon', 'start'
 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'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
-end
-
-
 	!!----- Back --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_back':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_back'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	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 += step
-		if ps_i <= ps_total: jump 'looptatback'
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''back_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_back2':
-	'<center><img src="<<func(''tattoo_management'', ''back_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 10000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 10000:
-			dynamic "
-				act 'Get this tattoo 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_back3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 10000:
-			dynamic "
-				act 'Get this tattoo 10,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_back3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'back', 1, 'back_image', 'shop'
 
-	act 'Return': gt 'pirsingsalon', 'tattoo_back'
+	act 'Return': gt 'pirsingsalon', 'start'
 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'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
-end
-
-
 	!!----- Belly --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_belly':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_belly'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	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 += step
-		if ps_i <= ps_total: jump 'looptatbelly'
-		*nl
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''belly_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_belly2':
-	'<center><img src="<<func(''tattoo_management'', ''belly_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 10000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 10000:
-			dynamic "
-				act 'Get this tattoo 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_belly3', <<ARGS[1]>>, 'money'
-			"
-		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
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'belly', 1, 'belly_image', 'shop'
 
-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'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Breast --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_breast':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_breast'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	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 += step
-		if ps_i <= ps_total: jump 'looptatbreast'
-		*nl
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''breast_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_breast2':
-	'<center><img src="<<func(''tattoo_management'', ''breast_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 15000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 15000:
-			dynamic "
-				act 'Get this tattoo 15,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_breast3', <<ARGS[1]>>, 'money'
-			"
-		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'
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'breast', 1, 'breast_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Chest --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_chest':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_chest'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'chest', 1, 'chest_image', 'shop'
 
-	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 += step
-		if ps_i <= ps_total: jump 'looptatchest'
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''chest_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_chest2':
-	'<center><img src="<<func(''tattoo_management'', ''chest_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 12000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 12000:
-			dynamic "
-				act 'Get this tattoo 12,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_chest3', <<ARGS[1]>>, 'money'
-			"
-		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'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Face --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_face':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_face'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'face', 1, 'face_image', 'shop'
 
-	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 += step
-		if ps_i <= ps_total: jump 'looptatface'
-		*nl
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''face_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_face2':
-	'<center><img src="<<func(''tattoo_management'', ''face_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 10000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 10000:
-			dynamic "
-				act 'Get this tattoo 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_face3', <<ARGS[1]>>, 'money'
-			"
-		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'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Hand --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_hand':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_hand'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['hand'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'hand')
-		ps_i = 1
-		:looptathand
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_hand2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''hand_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptathand'
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''hand_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_hand2':
-	'<center><img src="<<func(''tattoo_management'', ''hand_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 7000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 7000:
-			dynamic "
-				act 'Get this tattoo 7,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_hand3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 7000:
-			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'
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'hand', 1, 'hand_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Leg --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_leg':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_leg'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['leg'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'leg')
-		ps_i = 1
-		: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 += step
-		if ps_i <= ps_total: jump 'looptatleg'
-		*nl
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''leg_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_leg2':
-	'<center><img src="<<func(''tattoo_management'', ''leg_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 10000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 10000:
-			dynamic "
-				act 'Get this tattoo 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_leg3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 10000:
-			dynamic "
-				act 'Get this tattoo 10,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_leg3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'leg', 1, 'leg_image', 'shop'
 
-	act 'Return': gt 'pirsingsalon', 'tattoo_leg'
+	act 'Return': gt 'pirsingsalon', 'start'
 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'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
-end
-
-
 	!!----- Lip --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_lip':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_lip'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['lip'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'lip')
-		ps_i = 1
-		:looptatlip
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_lip2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''lip_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatlip'
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'lip', 1, 'lip_image', 'shop'
 
-	else
-		'<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] = 'tattoo_lip2':
-	'<center><img src="<<func(''tattoo_management'', ''lip_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 5000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 5000:
-			dynamic "
-				act 'Get this tattoo 5,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_lip3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 5000:
-			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'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
-end
-
-
 	!!----- Neck --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_neck':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_neck'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['neck'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'neck')
-		ps_i = 1
-		:looptatneck
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_neck2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''neck_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatneck'
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''neck_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_neck2':
-	'<center><img src="<<func(''tattoo_management'', ''neck_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 8000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 8000:
-			dynamic "
-				act 'Get this tattoo 8,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_neck3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 8000:
-			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'
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'neck', 1, 'neck_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Pussy --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_pussy':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_pussy'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['pussy'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'pussy')
-		ps_i = 1
-		:looptatvag
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_pussy2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''pussy_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatvag'
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''pussy_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_pussy2':
-	'<center><img src="<<func(''tattoo_management'', ''pussy_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 20000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 20000:
-			dynamic "
-				act 'Get this tattoo 20,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_pussy3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 20000:
-			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'
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'pussy', 1, 'pussy_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- shoulder --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_shoulder':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_shoulder'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'shoulder', 1, 'shoulder_image', 'shop'
 
-	if pcs_tattoos['shoulder'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'shoulder')
-		ps_i = 1
-		:looptatlech
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_shoulder2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''shoulder_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatlech'
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''shoulder_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_shoulder2':
-	'<center><img src="<<func(''tattoo_management'', ''shoulder_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 8000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 8000:
-			dynamic "
-				act 'Get this tattoo 8,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_shoulder3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 8000:
-			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'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Side --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_side':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_side'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['side'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'side')
-		ps_i = 1
-		:looptatside
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_side2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''side_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatside'
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''side_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_side2':
-	'<center><img src="<<func(''tattoo_management'', ''side_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 12000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 12000:
-			dynamic "
-				act 'Get this tattoo 12,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_side3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 12000:
-			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'
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'side', 1, 'side_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Tramp --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_tramp':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_tramp'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['tramp'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'tramp')
-		ps_i = 1
-		: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 += step
-		if ps_i <= ps_total: jump 'looptatupb'
-		*nl
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''tramp_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_tramp2':
-	'<center><img src="<<func(''tattoo_management'', ''tramp_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 12000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 12000:
-			dynamic "
-				act 'Get this tattoo 12,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_tramp3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 12000:
-			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'
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'tramp', 1, 'tramp_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Under --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_under':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_under'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['under'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'under')
-		ps_i = 1
-		: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 += step
-		if ps_i <= ps_total: jump 'looptatunder'
-		*nl
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'under', 1, 'under_image', 'shop'
 
-	else
-		'<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] = 'tattoo_under2':
-	'<center><img src="<<func(''tattoo_management'', ''under_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 12000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 12000:
-			dynamic "
-				act 'Get this tattoo 12,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_under3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 12000:
-			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'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
-end
-
-
 	!!----- Wrist --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_wrist':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_wrist'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['wrist'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'wrist')
-		ps_i = 1
-		:looptatwrist
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_wrist2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''wrist_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatwrist'
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'wrist', 1, 'wrist_image', 'shop'
 
-	else
-		'<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] = 'tattoo_wrist2':
-	'<center><img src="<<func(''tattoo_management'', ''wrist_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 7000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 7000:
-			dynamic "
-				act 'Get this tattoo 7,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_wrist3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 7000:
-			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_wrist3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 12000 else karta -= 12000
-	gs 'tattoo_management', 'add', 'wrist', ARGS[1]
-	gs 'stat'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
-end
-
-
-
-! Cleanup
-
-killvar 'ps_i'
-killvar 'ps_total'
-
-
 --- pirsingsalon ---------------------------------

+ 2 - 1
locations/purses.qsrc

@@ -149,6 +149,7 @@ if $ARGS[0] = 'view_purse_item':
 	!! ARGS 1 = action type (home, shop)
 	!! ARGS 2 - purse type
 	!! ARGS 3 - purse index
+	!! ARGS 4 - price modifier (0-100, taken as %) {OPTIONAL}
 
 	cla
 	'<center><img src="<<FUNC(''$purse_image'',  $ARGS[2], ARGS[3])>>"></center>'
@@ -161,7 +162,7 @@ if $ARGS[0] = 'view_purse_item':
 			'You already own this purse.'
 			act 'Leave': gt $loc, $loc_arg
 		else
-			price = PursePrice
+			price = PursePrice + (PursePrice * ARGS[4]) / 100
 			'Price: <<PursePrice>> <b>₽</b>'
 			act 'Leave': gt $loc, $loc_arg
 			if money >= price:

+ 2 - 0
locations/shoes.qsrc

@@ -305,6 +305,7 @@ if $ARGS[0] = 'view_shoe_item':
 	!! ARGS 1 = action type (wardrobe, shop, sell)
 	!! ARGS 2 - shoes type
 	!! ARGS 3 - shoes index
+	!! ARGS 4 - price modifier (0-100, taken as %) {OPTIONAL}
 
 	cla
 	'<center><img src="<<FUNC(''$shoe_image'', $ARGS[2], ARGS[3])>>"></center>'
@@ -327,6 +328,7 @@ if $ARGS[0] = 'view_shoe_item':
 		else
 			price = (ShoPrice * ((5 * ShoQuality) + 100) / 100) * 1000 / (1250 - Clothingstock[ARGS[3]]) * 3 / 2
 			price = price / 50 * 50
+			price += (price * ARGS[4]) / 100
 			'Price: <<price>> <b>₽</b>'
 			act 'Leave': gt $loc, $loc_arg
 			if money < price and karta < price:

+ 7 - 5
locations/shop_dolls.qsrc

@@ -47,6 +47,8 @@ if $ARGS[0] = 'browse':
 	''
 	'The store has a small front on a side street, but one glance is all you need to tell this is not your average clothing store. Inside the store, shelves and racks of alternative clothes are crammed into every available space - anybody setting out to find an inch of wall would have their work cut out for them. The checkout counter is near the entrance.'
 
+	if anushkaQW['dolls'] = 2: anushkaQW['discount'] = -10
+
 	act 'View dresses': gt 'shop_dolls', 'dress'
 	act 'View other outfits': gt 'shop_dolls', 'clothing'
 	act 'View shoes': gt 'shop_dolls', 'shoes'
@@ -65,7 +67,7 @@ if $ARGS[0] = 'dress':
 	'<center><b><font color="maroon">Viewing Patchwork Dolls dresses</font></b></center>'
 	*nl
 
-	gs 'shop_utils', 'display_clothes', 'dolls_dress', 3, 'dolls/dress', 'shop', Clothingstock mod 3
+	gs 'shop_utils', 'display_clothes', 'dolls_dress', 3, 'dolls/dress', 'shop', Clothingstock mod 3, anushkaQW['discount']
 
 	act 'Return': minut += 5 & gt 'shop_dolls', 'browse'
 end
@@ -78,7 +80,7 @@ if $ARGS[0] = 'clothing':
 	'<center><b><font color="maroon">Viewing Patchwork Dolls clothing</font></b></center>'
 	*nl
 
-	gs 'shop_utils', 'display_clothes', 'dolls_outfits', 2, 'dolls/outfits', 'shop', (Clothingstock / 3) mod 2
+	gs 'shop_utils', 'display_clothes', 'dolls_outfits', 2, 'dolls/outfits', 'shop', (Clothingstock / 3) mod 2, anushkaQW['discount']
 
 	act 'Return': cla & minut += 5 & gt 'shop_dolls', 'browse'
 end
@@ -91,7 +93,7 @@ if $ARGS[0] = 'shoes':
 	'<center><b><font color="maroon">Viewing G&M shoes</font></b></center>'
 	*nl
 
-	gs 'shop_utils', 'display_shoes', 'dolls', 1, 'dolls/shoes', 'shop'
+	gs 'shop_utils', 'display_shoes', 'dolls', 1, 'dolls/shoes', 'shop', 0, anushkaQW['discount']
 
 	act 'Return': minut += 5 & gt 'shop_dolls', 'browse'
 end
@@ -101,7 +103,7 @@ if $ARGS[0] = 'purses':
 	menu_off = 0
 	gs 'stat'
 
-	gs 'shop_utils', 'display_purses', 'dolls', 1, 'dolls/purses', 'shop'
+	gs 'shop_utils', 'display_purses', 'dolls', 1, 'dolls/purses', 'shop', 0, anushkaQW['discount']
 
 	act 'Return': minut += 5 & gt 'shop_dolls', 'browse'
 end
@@ -111,7 +113,7 @@ if $ARGS[0] = 'coats':
 	menu_off = 0
 	gs 'stat'
 
-	gs 'shop_utils', 'display_coats', 'dolls', 1, 'dolls/coats', 'shop'
+	gs 'shop_utils', 'display_coats', 'dolls', 1, 'dolls/coats', 'shop', 0, anushkaQW['discount']
 
 	act 'Return': minut += 5 & gt 'shop_dolls', 'browse'
 end

+ 70 - 8
locations/shop_utils.qsrc

@@ -10,7 +10,7 @@ if $ARGS[0] = 'shop':
 
 			if (clothingfilter['quality'] = 0 and CloQuality = shop_display['clo_i']) or (clothingfilter['inhibition'] = 0 and CloInhibit = shop_display['clo_i']) or clothingfilter['number'] = 0:
 				if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1:
-					$result = '<a href="exec: gt ''clothing'', ''view_clothing_item'', ''<<$shop_display[''variable'']>>'', <<shop_display[''i'']>>, ''shop''"><img height="250" src="<<$shop_display[''item_img_path'']>>/<<shop_display[''i'']>>.jpg"></a>'
+					$result = '<a href="exec: gt ''clothing'', ''view_clothing_item'', ''shop'', ''<<$shop_display[''variable'']>>'', <<shop_display[''i'']>>, <<shop_display[''price_modifier'']>>"><img height="250" src="<<$shop_display[''item_img_path'']>>/<<shop_display[''i'']>>.jpg"></a>'
 				end
 			end
 		end
@@ -22,7 +22,7 @@ if $ARGS[0] = 'shop':
 
 			if (Shofilter['quality'] = 0 and ShoQuality = shop_display['clo_i']) or Shofilter['number'] = 0:
 				if Shofilter['inc'] = 1 and Shofilter['only'] = 1:
-					$result = '<a href="exec: gt ''shoes'', ''view_shoe_item'', ''shop'', ''<<$shop_display[''variable'']>>'', <<shop_display[''i'']>>"><img height="250" src="<<$shop_display[''item_img_path'']>>/<<shop_display[''i'']>>.jpg"></a>'
+					$result = '<a href="exec: gt ''shoes'', ''view_shoe_item'', ''shop'', ''<<$shop_display[''variable'']>>'', <<shop_display[''i'']>>, <<shop_display[''price_modifier'']>>"><img height="250" src="<<$shop_display[''item_img_path'']>>/<<shop_display[''i'']>>.jpg"></a>'
 				end
 			end
 		end
@@ -32,7 +32,7 @@ if $ARGS[0] = 'shop':
 			gs 'underwear_attributes', $shop_display['variable'], shop_display['i']
 
 			if (clothingfilter['quality'] = 0 and BraQuality = shop_display['clo_i']) or clothingfilter['number'] = 0:
-				$result = '<a href="exec: gt ''bras'', ''view_bra_item'', ''shop'', ''<<$shop_display[''variable'']>>'', <<shop_display[''i'']>>"><img height="250" src="<<$shop_display[''item_img_path'']>>/<<shop_display[''i'']>>.jpg"></a>'
+				$result = '<a href="exec: gt ''bras'', ''view_bra_item'', ''shop'', ''<<$shop_display[''variable'']>>'', <<shop_display[''i'']>>, <<shop_display[''price_modifier'']>>"><img height="250" src="<<$shop_display[''item_img_path'']>>/<<shop_display[''i'']>>.jpg"></a>'
 			end
 		end
 
@@ -41,7 +41,7 @@ if $ARGS[0] = 'shop':
 			gs 'underwear_attributes', $shop_display['variable'], shop_display['i']
 
 			if (clothingfilter['quality'] = 0 and PanQuality = shop_display['clo_i']) or clothingfilter['number'] = 0:
-				$result = '<a href="exec: gt ''panties'', ''view_panty_item'', ''shop'', ''<<$shop_display[''variable'']>>'', <<shop_display[''i'']>>"><img height="250" src="<<$shop_display[''item_img_path'']>>/<<shop_display[''i'']>>.jpg"></a>'
+				$result = '<a href="exec: gt ''panties'', ''view_panty_item'', ''shop'', ''<<$shop_display[''variable'']>>'', <<shop_display[''i'']>>, <<shop_display[''price_modifier'']>>"><img height="250" src="<<$shop_display[''item_img_path'']>>/<<shop_display[''i'']>>.jpg"></a>'
 			end
 		end
 
@@ -50,19 +50,23 @@ if $ARGS[0] = 'shop':
 			gs 'underwear_attributes', $shop_display['variable'], shop_display['i']
 
 			if (clothingfilter['quality'] = 0 and BraQuality = shop_display['clo_i']) or clothingfilter['number'] = 0:
-				$result = '<a href="exec: gt ''underwear_bodysuits'', ''view_bodysuit_item'', ''shop'', ''<<$shop_display[''variable'']>>'', <<shop_display[''i'']>>"><img height="250" src="<<$shop_display[''item_img_path'']>>/<<shop_display[''i'']>>.jpg"></a>'
+				$result = '<a href="exec: gt ''underwear_bodysuits'', ''view_bodysuit_item'', ''shop'', ''<<$shop_display[''variable'']>>'', <<shop_display[''i'']>>, <<shop_display[''price_modifier'']>>"><img height="250" src="<<$shop_display[''item_img_path'']>>/<<shop_display[''i'']>>.jpg"></a>'
 			end
 		end
 
 	elseif $ARGS[1] = 'coats':
 		if dyneval('result = <<$shop_display[''variable'']>>_coats[shop_display[''i'']]') = 0:
-			$result = '<a href="exec: gt ''coats'', ''view_coat_item'', ''shop'', ''<<$shop_display[''variable'']>>'', <<shop_display[''i'']>>"><img height="250" src="<<$shop_display[''item_img_path'']>>/<<shop_display[''i'']>>.jpg"></a>'
+			$result = '<a href="exec: gt ''coats'', ''view_coat_item'', ''shop'', ''<<$shop_display[''variable'']>>'', <<shop_display[''i'']>>, <<shop_display[''price_modifier'']>>"><img height="250" src="<<$shop_display[''item_img_path'']>>/<<shop_display[''i'']>>.jpg"></a>'
 		end
 
 	elseif $ARGS[1] = 'purses':
 		if dyneval('result = <<$shop_display[''variable'']>>_purses[shop_display[''i'']]') = 0:
-			$result = '<a href="exec: gt ''purses'', ''view_purse_item'', ''shop'', ''<<$shop_display[''variable'']>>'', <<shop_display[''i'']>>"><img height="250" src="<<$shop_display[''item_img_path'']>>/<<shop_display[''i'']>>.jpg"></a>'
+			$result = '<a href="exec: gt ''purses'', ''view_purse_item'', ''shop'', ''<<$shop_display[''variable'']>>'', <<shop_display[''i'']>>, <<shop_display[''price_modifier'']>>"><img height="250" src="<<$shop_display[''item_img_path'']>>/<<shop_display[''i'']>>.jpg"></a>'
 		end
+
+	elseif $ARGS[1] = 'func_managed':
+		$result = '<a href="exec: gt ''<<$shop_display[''main_func_name'']>>'', ''view_item'', ''shop'', ''<<$shop_display[''item_type'']>>'', <<shop_display[''i'']>>, <<shop_display[''price_modifier'']>>"><img height="250" src="<<func($shop_display[''main_func_name''], $shop_display[''img_func_name''], shop_display[''i''])>>"></a>'
+	
 	end
 
 	exit
@@ -99,7 +103,8 @@ end
 ! [2] - loop step
 ! [3] - img path
 ! [4] - link type - shop, wardrode, cheat
-! [5] - loop index start offset
+! [5] - loop index start offset {OPTIONAL, defaults to 0}
+! [6] - price modifier {OPTIONAL, defaults to 0}
 ! Populate the 'shop_display_exceptions[]' array with the index of the outfits you want excluded from the display.
 ! gs 'shop_utils', 'display_clothes', 'shop_type', 1, 'path', 'link_type'
 if $ARGS[0] = 'display_clothes':
@@ -113,6 +118,8 @@ if $ARGS[0] = 'display_clothes':
 		$shop_display['item_img_path'] = 'images/pc/items/' + $ARGS[3]
 	end
 
+	shop_display['price_modifier'] = ARGS[6]
+	
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', $shop_display['variable']
 
@@ -152,6 +159,8 @@ if $ARGS[0] = 'display_shoes':
 		$shop_display['item_img_path'] = 'images/pc/items/' + $ARGS[3]
 	end
 
+	shop_display['price_modifier'] = ARGS[6]
+	
 	gs 'shoes', 'shop_filter_header'
 	gs 'shoes', 'totals', '<<$shop_display[''variable'']>>_shoes'
 
@@ -191,6 +200,8 @@ if $ARGS[0] = 'display_bras':
 		$shop_display['item_img_path'] = 'images/pc/items/' + $ARGS[3]
 	end
 
+	shop_display['price_modifier'] = ARGS[6]
+	
 	gs 'bras', 'shop_filter_header'
 	gs 'bras', 'totals', '<<$shop_display[''variable'']>>_bras'
 
@@ -230,6 +241,8 @@ if $ARGS[0] = 'display_panties':
 		$shop_display['item_img_path'] = 'images/pc/items/' + $ARGS[3]
 	end
 
+	shop_display['price_modifier'] = ARGS[6]
+	
 	gs 'panties', 'shop_filter_header'
 	gs 'panties', 'totals', '<<$shop_display[''variable'']>>_panties'
 
@@ -269,6 +282,8 @@ if $ARGS[0] = 'display_bodysuits':
 		$shop_display['item_img_path'] = 'images/pc/items/' + $ARGS[3]
 	end
 
+	shop_display['price_modifier'] = ARGS[6]
+	
 	gs 'underwear_bodysuits', 'shop_filter_header'
 	gs 'underwear_bodysuits', 'totals', '<<$shop_display[''variable'']>>_bodysuits'
 
@@ -308,6 +323,8 @@ if $ARGS[0] = 'display_coats':
 		$shop_display['item_img_path'] = 'images/pc/items/' + $ARGS[3]
 	end
 
+	shop_display['price_modifier'] = ARGS[6]
+
 	gs 'coats', 'totals', '<<$shop_display[''variable'']>>_coats'
 
 	if total <= 0:
@@ -340,6 +357,8 @@ if $ARGS[0] = 'display_purses':
 		$shop_display['item_img_path'] = 'images/pc/items/' + $ARGS[3]
 	end
 
+	shop_display['price_modifier'] = ARGS[6]
+	
 	gs 'purses', 'totals', '<<$shop_display[''variable'']>>_purses'
 
 	if total <= 0:
@@ -360,5 +379,48 @@ if $ARGS[0] = 'display_purses':
 	killvar 'shop_display'
 end
 
+! The file managing your item MUST implement the following funcitons
+!	- 'totals' which returns the max number of items of the specified type
+! 	- 'view_item' which takes 3 arguments and handles displaying, buying and any other related fuctionalities 
+!		- 'action_type' (shop, wardrobe, etc)
+! 		- 'type' 
+!		- 'index'
+!		- 'price modifier' (0-100, taken as percentage. used for increases/decreases in price)
+! 	- individual functons for each type that return an image of the item based on its index
+! 
+! Arguments for this function are:
+! [1] - name of file that manages the item
+! [2] - item type
+! [3] - loop step
+! [4] - image function name
+! [5] - link type
+! [6] - loop index start offset {OPTIONAL}
+! [7] - price modifier {OPTIONAL}
+! Populate the 'shop_display_exceptions[]' array with the index of the outfits you want excluded from the display.
+if $ARGS[0] = 'display_func_managed':
+	$shop_display['main_func_name'] = $ARGS[1]
+	$shop_display['item_type'] = $ARGS[2]
+	$shop_display['img_func_name'] = $ARGS[4]
+
+	shop_display['price_modifier'] = ARGS[7]
+
+
+	total = func($shop_display['main_func_name'], 'totals', $ARGS[2])
+
+	if total <= 0:
+		killvar 'shop_display'
+		exit
+	end
+
+	shop_display['i'] = 1 + ARGS[6]
+	:func_managed_main_loop
+	if shop_display['i'] <= total:
+		if arrpos('shop_display_exception', shop_display['i']) < 0:
+			*p func('shop_utils', $ARGS[5], 'func_managed')
+		end
+		shop_display['i'] += ARGS[3]
+		jump 'func_managed_main_loop'
+	end
+end
 
 --- shop_utils ---------------------------------

+ 7 - 0
locations/tattoo_attributes.qsrc

@@ -0,0 +1,7 @@
+# tattoo_attributes
+
+TatPrice = 0
+
+gs '$attributes_tattoo_<<$ARGS[0]>>', ARGS[1]
+
+--- tattoo_attributes ---------------------------------

+ 42 - 0
locations/tattoo_management.qsrc

@@ -88,6 +88,48 @@ if $ARGS[0] = 'count':
 end
 
 
+! [1] - payment method
+! [2] - slot
+! [3] - index
+if $ARGS[0] = 'buy':
+	if $ARGS[1] = 'money': 
+		money -= price 
+	else 
+		karta -= price
+	end
+
+	gs 'tattoo_management', 'add', $ARGS[2], ARGS[3]
+	gs 'tattoo_management', 'count'
+	gs 'stat'
+
+	gt $loc, $loc_arg
+end
+
+! [1] - action_type
+! [2] - slot
+! [3] - index
+! [4] - pric
+if $ARGS[0] = 'view_item':
+	gs 'tattoo_attributes', $ARGS[2], ARGS[3]
+
+	'<center><img src="<<func(''tattoo_management'', ''<<$ARGS[2]>>_image'', ARGS[3])>>"></center>'
+
+	price = TatPrice + (TatPrice * ARGS[4]) / 100
+
+	if max(money, karta) < price:
+		'You cannot afford this tattoo.'
+		act 'Return': gt $loc, $loc_arg
+	else
+		if money >= price:
+			act 'Get this tattoo <<price>> <b>₽</b> (cash)': gt 'tattoo_management', 'buy', 'money', $ARGS[2], ARGS[3]
+		end
+		if karta >= price:
+			act 'Get this tattoo <<price>> <b>₽</b> (card)': gt 'tattoo_management', 'buy', 'karta', $ARGS[2], ARGS[3]
+		end
+		act 'Return': gt $loc, $loc_arg
+	end
+end
+
 if $ARGS[0] = 'ankle_image':
 	if ARGS[1] = 0: ARGS[1] = pcs_tattoos['ankle']
 	if ARGS[1] < 0: ARGS[1] = -ARGS[1]

+ 2 - 1
locations/underwear_bodysuits.qsrc

@@ -166,6 +166,7 @@ if $ARGS[0] = 'view_bodysuit_item':
 	!! ARGS 1 = action type (draw, shop)
 	!! ARGS 2 - bodysuit type
 	!! ARGS 3 - bodysuit index
+	!! ARGS 4 - price modifier (0-100, taken as %) {OPTIONAL}
 	
 	cla
 	'<center><img src="<<FUNC(''$pcs_outfit_image'', $ARGS[2]+''_bodysuits'', ARGS[3])>>"></center>'
@@ -177,7 +178,7 @@ if $ARGS[0] = 'view_bodysuit_item':
 			'You already own this item.'
 			act 'Leave': gt $loc, $loc_arg
 		else
-			price = PanPrice
+			price = PanPrice + (PanPrice * ARGS[4]) / 100
 			'Price: <<PanPrice>> <b>₽</b>'
 			act 'Leave': gt $loc, $loc_arg
 			if money >= price:

+ 2 - 1
locations/vasilyhome.qsrc

@@ -31,11 +31,13 @@ if $ARGS[0] = 'home':
 			'You knock on the door, but no one comes to answer. It seems like nobody is home.'
 			if npc_rel['A112'] >= 70: 'You could still enter with the key that Sergey gave you.' & act 'Unlock the door and enter':gt 'vasilyhome', 'hallway'
 		elseif hour >= 16 and hour <= 19:
+			*clr & cla
 			'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big112.jpg"></center>'
 			'When you knock on the door, <<$serg_obr>> Sergey answers it.'
 			'"Oh, hello <<$pcs_nickname>>," he shrugs. "If you''re looking for Vasily, he''s not here, and I don''t know when he''ll be back."'
 			if npc_rel['A112'] >= 50: '"You can come in and wait for him if you want," he offers.' & act 'Enter':gt 'vasilyhome', 'hallway'
 		elseif (week = 5 or week = 6) and hour >= 20:
+			*clr & cla
 			'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big112.jpg"></center>'
 			'When you knock on the door, <<$serg_obr>> Sergey answers it.'
 			'"Oh, hello <<$pcs_nickname>>," he shrugs. "If you''re looking for Vasily, he''s not here. He''s probably at the disco with everyone else."'
@@ -1371,4 +1373,3 @@ if $ARGS[0] = 'vasily_asleep2':
 end
 
 --- vasilyhome ---------------------------------
-