1
0

29 Commits 3294d214c9 ... 7c1446317c

Autor SHA1 Nachricht Datum
  Kevin_Smarts 7c1446317c Merge remote-tracking branch 'Lokplart/master' vor 2 Wochen
  f95Lok 533369a65f [added] implemented dolls discount from Anushka quest vor 2 Wochen
  f95Lok 3d2f0ef982 [added] generalized discount functionality through the display loop functions vor 2 Wochen
  Kevin_Smarts 028c100e19 Merge remote-tracking branch 'Hooded_Silence/master' vor 2 Wochen
  Kevin_Smarts 86554e06a3 Merge remote-tracking branch 'Lokplart/master' vor 2 Wochen
  Myles Croft (Hooded Silence) 8137bb1ea1 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife vor 2 Wochen
  Myles Croft (Hooded Silence) 5806717883 [Double or Nothing Edition] Some quick fixes to stop double vision when firing gym events. vor 2 Wochen
  f95Lok 226f23dfff [changed] arguments order for view_clothing_item to be in line with all other view_type_item functions vor 2 Wochen
  f95Lok 79d1973ea1 [changed] edited 'pirsingsalon' to use the generalized display loops vor 2 Wochen
  f95Lok 5c91e55206 [fixed] minor bugs in the newly implemented functions vor 2 Wochen
  f95Lok 4702a33ffd [changed] renamed one attribute file to match with function arguments vor 2 Wochen
  f95Lok cb43097084 [added] 'display_func_managed' function to 'shop_utils' vor 2 Wochen
  f95Lok 5bcd3e7039 [added] 'view_item' and 'buy' functions to 'tattoo_management' and 'piercing_management' vor 2 Wochen
  f95Lok 679da80089 [changed] renamed one attribute file to match with function arguments vor 2 Wochen
  f95Lok a21805a12c [changed] renamed attribute files to match with function arguments vor 2 Wochen
  f95Lok 9bfbde9fd2 [changed] renamed one attribute file to match with function arguments vor 2 Wochen
  f95Lok e11c649589 [changed] renamed one attribute file to match with function arguments vor 2 Wochen
  bgkjdgbizgblzdgbr d6444a401c [changed] Anuska in the city should behave like Anuska in Pav regarding the lastes changes vor 2 Wochen
  f95Lok ca32473bb6 [added] updated qproj vor 2 Wochen
  f95Lok 5172f1733e Merge remote-tracking branch 'kevin/master' vor 2 Wochen
  f95Lok 75e40c4d62 [added] attribute files for tattoos and piercings vor 2 Wochen
  Myles Croft (Hooded Silence) 2cb6d3a087 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife vor 2 Wochen
  Myles Croft (Hooded Silence) 81c0c853ff [Bug fix] clear unnecessary image when at Vasily home door. vor 2 Wochen
  Awesome 516882da9d [Fixed] Glamour spell running out caused massive appearance drop vor 2 Wochen
  bgkjdgbizgblzdgbr 9996fb3f55 [changed] Anushka is not that much of a slut, she does not have sex with on the first posibility possible, you need some time to open her up. vor 2 Wochen
  f95Lok 4507d1ea49 [changed] edited 'intro_customization' to use the generalized display loops for the clothing selector vor 2 Wochen
  f95Lok 937c70ef59 [fixed] purses display loop calling the wrong 'totals' function vor 2 Wochen
  f95Lok 35b365be6b [fixed/changed] removed price argument from clothing function arguments. fixed typo in argument referring to an item type. vor 2 Wochen
  f95Lok f9db23f7b7 [fixed/changed] removed price argument from more clothing functions. fixed wrong call to 'clothing_attributes' vor 2 Wochen
57 geänderte Dateien mit 2651 neuen und 1907 gelöschten Zeilen
  1. 32 0
      glife.qproj
  2. 1 0
      locations/AppearanceSystem.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. 2 2
      locations/anush_bedroom.qsrc
  30. 1 3
      locations/anush_bedroom_city.qsrc
  31. 1 1
      locations/anushapt.qsrc
  32. 1 1
      locations/anushapt_city.qsrc
  33. 16 13
      locations/anushkachat.qsrc
  34. 11 9
      locations/anushkachat_city.qsrc
  35. 4 4
      locations/anushkaev1.qsrc
  36. 3 3
      locations/anushkaev2.qsrc
  37. 3 1
      locations/bras.qsrc
  38. 55 55
      locations/clothing.qsrc
  39. 2 1
      locations/coats.qsrc
  40. 2 2
      locations/gad_market.qsrc
  41. 9 1
      locations/gschool_lessonsev1.qsrc
  42. 135 133
      locations/intro_customization.qsrc
  43. 6 6
      locations/katja_city.qsrc
  44. 3 1
      locations/panties.qsrc
  45. 4 4
      locations/pav_disco_gopniks.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. 71 9
      locations/shop_utils.qsrc
  53. 2 1
      locations/spell.qsrc
  54. 7 0
      locations/tattoo_attributes.qsrc
  55. 42 0
      locations/tattoo_management.qsrc
  56. 2 1
      locations/underwear_bodysuits.qsrc
  57. 2 1
      locations/vasilyhome.qsrc

+ 32 - 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"/>

+ 1 - 0
locations/AppearanceSystem.qsrc

@@ -34,6 +34,7 @@ if $args[0] = 'UpdateBaseAppearance':
 
 	! Calculte base appearance
 	pcs_apprncbase = skinBonus + bodyShapeBonus + attributeBonus - visibleAgePenalty - teethPenalty + supnatvnesh
+	if glamouractive = 1: pcs_apprncbase += 150
 
 end
 

+ 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 ---------------------------------

+ 2 - 2
locations/anush_bedroom.qsrc

@@ -329,7 +329,7 @@ if $ARGS[0] = 'night_stand':
 	if AnushkaLoc = 2:
 		*clr & cla
 		minut += 2
-		npc_rel['A144'] += 1
+		gs 'npc_relationship', 'modify', 'A144', 'like', 1, 'nighstand'
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/anushapt/anushroom/snoop.jpg"></center>'
 		'You decide to snoop, so you open the nightstand''s drawer to peek inside. There are a few mostly empty prescription bottles, a small baggy of blue pills, marijuana and a couple of rolled joints. You also notice a pair of scissors, razor blades, rolling papers, a lighter, a pack of cigarettes, condoms, lotion, lube, a vibrator, a dildo, a butt plug and even a strap-on harness.'
@@ -832,7 +832,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 watched 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 watched 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','anushroom'
 		elseif anushkaQW['guitar_play'] = 5:

+ 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.qsrc

@@ -1467,7 +1467,7 @@ if $ARGS[0] = 'nushlivroom':
 		'As she gets up and heads to her room, her brothers come running by on the way to theirs. They''re quickly followed by Valeria complaining about where they ate as Ed walks by and gives you a slight nod, then goes into the kitchen.'
 		act 'Follow Anushka to her room': gt 'anush_bedroom', 'anushroom'
 	end
-	if strapnumber > 0:
+	if strapnumber > 0 and npc_sex['A144'] > 0:
 		act 'Pull out your strap-on':
 			*clr & cla
 			gs 'stat'

+ 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'

+ 16 - 13
locations/anushkachat.qsrc

@@ -144,7 +144,7 @@ if $ARGS[0] = 'chat':
 	if OluQW['sex'] = 1 and OluQW['tell'] = 0:
 		act 'Tell her about Olu': gt 'anushkachat', 'tell_about_olu'
 	end
-	if OluQW['tell'] = 1 and OluQW['nush_inv'] = 0:
+	if OluQW['tell'] = 1 and OluQW['nush_inv'] = 0 and npc_sex['A144'] > 0:
 		act 'Invite to see Olu': gt 'anushkachat', 'invite_olu'
 	end
 	if npc_sex['A82'] > 0 and DjibrilQW['invite'] = 0 and DjibrilQW['tell'] = 0:
@@ -154,13 +154,13 @@ if $ARGS[0] = 'chat':
 			act 'Tell her about Djibril': gt 'anushkachat', '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', 'invite_djibril'
 	end
 	if DjibrilQW['nush_inv'] = 1 and DjibrilQW['tell'] = 1 and DjibrilQW['african_gangbang'] = 1:
 		act 'Tell her about Djibril gangbang': gt 'anushkachat', 'tell_about_djibril_gangbang'
 	end
-	if DjibrilQW['tell'] = 2 and DjibrilQW['nush_inv'] < 2:
+	if DjibrilQW['tell'] = 2 and DjibrilQW['nush_inv'] < 2 and npc_sex['A144'] > 0:
 		act 'Invite to Djibril gangbang': gt 'anushkachat', 'invite_djibril_gangbang'
 	end
 	if anushkaQW['dolls'] < 2:
@@ -353,8 +353,10 @@ 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
+			minut += 4
 			anushkaQW['sveta_love'] += 1
+			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>'
@@ -429,12 +431,13 @@ 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'
 			gs 'stat'
 			! Initialize the kiss counter
+			anushkaQW['kiss_day'] = daystart
 			if anushkaQW['kiss'] <= 0:
 				anushkaQW['kiss'] = 1
 			else
@@ -444,7 +447,7 @@ if $ARGS[0] = 'chat':
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/bedroom/brtkiss.jpg"></center>'
 			if pcs_hotcat >= 6:
 				'You look at her as you sit side by side. Maybe for too long, or maybe she just senses it, since she turns her head to look at you. Her face is not that far from yours and you can''t help it; she''s so damn pretty! You lean over to give her a kiss, a kiss she fully returns. The two of you kiss for a bit, but you are not sure she wants to do more yet or not. Perhaps you should press on or maybe you should wait and try some other time for more.'
-				gs 'arousal', 'foreplay', 1, 'lesbian'
+				gs 'arousal', 'kiss', 1, 'lesbian'
 				gs 'stat'
 				act 'Stop kissing and talk more': gt 'anushkachat', 'chat'
 				! We can only go further when kissing occured > 5 times
@@ -680,7 +683,7 @@ if $ARGS[0] = 'boyfriend_chat':
 		act 'Niko':
 			cla
 			'"Niko," you tell her.'
-			'She looks at you, concerned. "<<$pcs_nickname>>, he''s bad news and I don''t mean in the ''fun bad boy'' sort of way. I mean he isn''t what he seems." Noticing your facial expression from bad mouthing your boyfriend, she holds up her hand. "Hey, it''s your life so do what you want. Just... just be careful with him.'
+			'She looks at you, concerned. "<<$pcs_nickname>>, he''s bad news and I don''t mean in the ''fun bad boy'' sort of way. I mean he isn''t what he seems." Noticing your facial expression from bad mouthing your boyfriend, she holds up her hand. "Hey, it''s your life so do what you want. Just... just be careful with him."'
 			act 'Stop talking': gt 'anush_bedroom','anushroom'
 			act 'Keep talking': gt 'anushkachat', 'chat'
 		end
@@ -698,7 +701,7 @@ if $ARGS[0] = 'boyfriend_chat':
 				act 'Stop talking': gt 'anush_bedroom','anushroom'
 				act 'Keep talking': gt 'anushkachat', '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."'
@@ -766,7 +769,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."'
@@ -958,7 +961,7 @@ if $ARGS[0] = 'tell_about_olu':
 			if npc_sex['A82'] > 0 and DjibrilQW['nush_inv'] = 0:
 				act 'Tell her about Djibril': gt 'anushkachat', 'tell_about_djibril'
 			end
-			act 'Ask her if she wants join in': gt 'anushkachat', 'invite_olu'
+			if npc_sex['A144'] > 0: act 'Ask her if she wants join in': gt 'anushkachat', 'invite_olu'
 			act 'Tell her about your experiences with Olu':
 				*clr & cla
 				minut += 30
@@ -1026,7 +1029,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','anushroom'
 				act 'Talk about something else': gt 'anushkachat', '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', 'invite_djibril'
 				end
 			end
@@ -1086,7 +1089,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','anushroom'
 				act 'Talk about something else': gt 'anushkachat', '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', 'invite_djibril'
 				end
 			end
@@ -1152,7 +1155,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','anushroom'
 		act 'Talk about something else': gt 'anushkachat', 'chat'
-		act 'Ask her if she wants join in': gt 'anushkachat', 'invite_djibril_gangbang'
+		if npc_sex['A144'] > 0: act 'Ask her if she wants join in': gt 'anushkachat', 'invite_djibril_gangbang'
 	end
 end
 

+ 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 and npc_sex['A144'] > 0: act 'Ask her if she wants join in': gt 'anushkachat_city', 'invite_djibril_gangbang'
 	end
 end
 

+ 4 - 4
locations/anushkaev1.qsrc

@@ -8,7 +8,7 @@ if $ARGS[0] = 'strapon1':
 	gs 'npc_relationship', 'modify', 'A144', 'like'
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/anushapt/anushroom/strapon.jpg"></center>'
-	if pcs_hotcat >= 6:
+	if pcs_hotcat >= 6 and npc_sex['A144'] > 0:
 		if npc_sex['A144'] = 0:npc_sex['A144'] = 1 & girl += 1
 		if anushkaQW['dom_nush'] >= 100:
 			'You pull out the strap-on harness and hold it up. "Yeah, I like this... I''m going to use it to fuck you like the little slut you are."'
@@ -1654,7 +1654,7 @@ if $ARGS[0] = 'couch_strapon_get':
 	*clr & cla
 	menu_off = 1
 	minut += 2
-	if npc_sex['A144'] = 0:npc_sex['A144'] = 1 & girl += 1
+	if npc_sex['A144'] = 0: npc_sex['A144'] = 1 & girl += 1
 	gs 'npc_relationship', 'modify', 'A144', 'like'
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/sex/livingroom/couchstrap2.jpg"></center>'
@@ -1719,7 +1719,7 @@ end
 if $ARGS[0] = 'getpleasured':
 	*clr & cla
 	menu_off = 1
-	if npc_sex['A144'] = 0:npc_sex['A144'] = 1 & girl += 1
+	if npc_sex['A144'] = 0: npc_sex['A144'] = 1 & girl += 1
 	'<center><h4><font color="maroon">Anushka''s Room</font></h4></center>'
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/bedroom/sex/caughtmast/les3.jpg"></center>'
 	'After a bit of heated kissing and fondling while exploring each other''s naked bodies, you lie back on the bed and spread your legs. You place your hand on top of her head and gently guide her face toward your pussy. She really doesn''t need any encouragement and dives straight in. She gives your pussy one long lick from taint to clit and then starts flicking your clit with her tongue, switching to sucking and giving it a quick nibble now and then, before plunging her tongue deep between your wet pussy lips.'
@@ -1786,7 +1786,7 @@ if $ARGS[0] = 'buttplug':
 	gs 'stat'
 	'<center><h4><font color="maroon">Anushka''s Room</font></h4></center>'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/anushapt/anushroom/buttplug.jpg"></center>'
-	if pcs_hotcat >= 6:
+	if pcs_hotcat >= 6 and npc_sex['A144'] > 0:
 		'You pull out the butt plug and hold it up. "Yeah, I like this."'
 		'Her eyes widen ever so slightly. "Just what do you plan to do with that?"'
 		'You grin at her. "I was planning on sticking it up your ass."'

+ 3 - 3
locations/anushkaev2.qsrc

@@ -24,7 +24,7 @@ if $ARGS[0] = 'watch_nushrad':
 			gs 'arousal', 'voyeur_sex', 5
 			gs 'stat'
 			act 'Leave apartment': gs 'arousal', 'end' & gt 'pav_complex', 'start'
-			act 'Walk in and join them': gt 'anushkaev2', 'rad3some'
+			if npc_sex['A144'] > 0: act 'Walk in and join them': gt 'anushkaev2', 'rad3some'
 			act 'Keep watching':
 				*clr & cla
 				gs 'boyStat', 'A154'
@@ -452,7 +452,7 @@ if $ARGS[0] = 'watch_nushval':
 			gs 'arousal', 'voyeur', 8
 			gs 'stat'
 			act 'Leave apartment': gs 'arousal', 'end' & gt 'pav_complex', 'start'
-			act 'Walk in and join them': gt 'anushkaev2', 'val3some'
+			if npc_sex['A144'] > 0: act 'Walk in and join them': gt 'anushkaev2', 'val3some'
 			act 'Keep watching':
 				*clr & cla
 				if rand(1,5) = 1 and maksimQW['blackmail'] ! 1:
@@ -796,7 +796,7 @@ if $ARGS[0] = 'watch_nushmar':
 	gs 'arousal', 'voyeur', 5
 	gs 'stat'
 	act 'Leave apartment': gt 'pav_complex', 'start'
-	act 'Walk in and join them': gt 'anushkaev2', 'mar3some'
+	if npc_sex['A144'] > 0: act 'Walk in and join them': gt 'anushkaev2', 'mar3some'
 	act 'Keep watching':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/sex/spy/spymar2.jpg"></center>'

+ 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)':

+ 55 - 55
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
@@ -2054,27 +2056,25 @@ end
 !! Used to get price of an outfit uses the variable "price"
 !! $ARGS[1] set to outfit type
 !! ARGS[2] for outfit number
-!! ARGS[3] the store base price
 if $ARGS[0] = 'get_price':
-	gs 'clothing_attributes', '$ARGS[1]', ARGS[2]
-	price = (ARGS[3] * ((5 * CloQuality) + 100) / 100) * 1000 / (1250 - Clothingstock[ARGS[2]]) * 3 / 2
+	gs 'clothing_attributes', $ARGS[1], ARGS[2]
+	price = (CloPrice * ((5 * CloQuality) + 100) / 100) * 1000 / (1250 - Clothingstock[ARGS[2]]) * 3 / 2
 	price = price / 50 * 50
 end
 
 !! use to buy outfit automatically, use with gosub
 !! $ARGS[1] = item_type
 !! ARGS[2] = item number
-!! ARGS[3] = store price
 !! $ARGS[4] = 'money' or 'karta' for payment type
 if $ARGS[0] = 'quick_buy':
-	price = (ARGS[3] * ((5 * CloQuality) + 100) / 100) * 1000 / (1250 - Clothingstock[ARGS[2]]) * 3 / 2
+	price = (CloPrice * ((5 * CloQuality) + 100) / 100) * 1000 / (1250 - Clothingstock[ARGS[2]]) * 3 / 2
 	price = price / 50 * 50
 	h = 0
 	if CloStyle = 2:h = 10
 	if CloStyle = 5:h = 20
 	h += (3 * CloQuality)
-	if price > 0: dynamic '<<$ARGS[4]>> -= price'
-	gs 'clothing', 'view_clothing_item_buy', 'skip', $ARGS[1], ARGS[2], ARGS[3]
+	if price > 0: dynamic '<<$ARGS[3]>> -= price'
+	gs 'clothing', 'view_clothing_item_buy', 'skip', $ARGS[1], ARGS[2]
 end
 
 --- clothing ---------------------------------

+ 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 ---------------------------------
-

+ 135 - 133
locations/intro_customization.qsrc

@@ -3,13 +3,13 @@
 if $ARGS[0] = 'start':
 	'If you want to set your skills and attributes to a certain number, use the cheat menu to do it, the options to do it here were removed.'	
 
-	intro_custom_temp_money = -1
-	$intro_custom_temp_loc = ''
-	$intro_custom_temp_loc_arg = ''
-	$intro_custom_temp_loc_s = ''
-	$intro_custom_temp_args_s = ''
-	$intro_custom_temp_menu_loc = ''
-	$intro_custom_temp_menu_arg = ''
+	intro_custom['money'] = -1
+	$intro_custom['loc'] = ''
+	$intro_custom['loc_arg'] = ''
+	$intro_custom['loc_s'] = ''
+	$intro_custom['args_s'] = ''
+	$intro_custom['menu_loc'] = ''
+	$intro_custom['menu_arg'] = ''
 	
 	if pcs_mass['butt_gen'] = 0: pcs_mass['butt_gen'] = 22
 	if pcs_mass['bust_gen'] = 0: pcs_mass['bust_gen'] = 22
@@ -25,17 +25,8 @@ if $ARGS[0] = 'start':
 		gs 'intro_sg_select_custom', 'start'
 	else
 		act 'Confirm these options':
-			killvar $menu_name
-			killvar intro_custom_temp_money
-			killvar $intro_custom_temp_loc
-			killvar $intro_custom_temp_loc_arg
-			killvar $intro_custom_temp_loc_s
-			killvar $intro_custom_temp_args_s
-			killvar $intro_custom_temp_menu_loc
-			killvar $intro_custom_temp_menu_arg
-			killvar intro_custom_step
-			killvar intro_custom_noexcept
-			killvar intro_custom_shop_return
+			killvar 'intro_custom'
+			killvar 'menu_name'
 			if bag = 1:
 				!!using current combination should prevent having more than 1 bag at the start of game.
 				dynamic $currentpursetype + '_purses[<<currentpursenumber>>] = 1'
@@ -54,44 +45,42 @@ if $ARGS[0] = 'modclo_menu':
 	gs 'tattoo_management', 'count'
 	gs 'piercing_management', 'count'
 	
-	intro_custom_step = 1
-	intro_custom_noexcept = 1
-	intro_custom_shop_return = 1
-	if intro_custom_temp_money = -1: 
-		intro_custom_temp_money = money
+	if intro_custom['money'] = -1: 
+		intro_custom['money'] = money
 		money = 999999999
 	end
-	if $intro_custom_temp_loc = '':
-		$intro_custom_temp_loc = $loc
-		$intro_custom_temp_loc_arg = $loc_arg
-		$intro_custom_temp_loc_s = $loc_s
-		$intro_custom_temp_args_s = $args_s
-		$intro_custom_temp_menu_loc = $menu_loc
-		$intro_custom_temp_menu_arg = $menu_arg
+	if $intro_custom['loc'] = '':
+		$intro_custom['loc'] = $loc
+		$intro_custom['loc_arg'] = $loc_arg
+		$intro_custom['loc_s'] = $loc_s
+		$intro_custom['args_s'] = $args_s
+		$intro_custom['menu_loc'] = $menu_loc
+		$intro_custom['menu_arg'] = $menu_arg
+
+		intro_custom_shop_return = 1
+		intro_custom_step = 1
 	end
 
 	act 'Return': 
-		money = intro_custom_temp_money
-		intro_temp_money = -1
-		
-		intro_custom_step = 0
-		intro_custom_noexcept = 0
-		intro_custom_shop_return = 0
+		money = intro_custom['money']
+		intro_custom['money'] = -1
 		
-		$loc = $intro_custom_temp_loc
-		$loc_arg = $intro_custom_temp_loc_arg
-		$intro_custom_temp_loc = ''
-		$intro_custom_temp_loc_arg = ''
+		$loc = $intro_custom['loc']
+		$loc_arg = $intro_custom['loc_arg']
+		$intro_custom['loc'] = ''
+		$intro_custom['loc_arg'] = ''
 		
-		$menu_loc = $intro_custom_temp_menu_loc
-		$menu_arg = $intro_custom_temp_menu_arg
-		$intro_custom_temp_menu_loc = ''
-		$intro_custom_temp_menu_arg = ''
-
-		$loc_s = $intro_custom_temp_loc_s
-		$args_s = $intro_custom_temp_args_s
-		$intro_custom_temp_loc_s = ''
-		$intro_custom_temp_args_s = ''
+		$menu_loc = $intro_custom['menu_loc']
+		$menu_arg = $intro_custom['menu_arg']
+		$intro_custom['menu_loc'] = ''
+		$intro_custom['menu_arg'] = ''
+
+		$loc_s = $intro_custom['loc_s']
+		$args_s = $intro_custom['args_s']
+		$intro_custom['loc_s'] = ''
+		$intro_custom['args_s'] = ''
+
+		intro_custom_shop_return = 0
 	
 		gt 'intro_customization', 'start'
 	end
@@ -145,7 +134,6 @@ end
 
 if $ARGS[0] = 'modclo':
 	'Make sure to finalize appearance stats before choosing clothing otherwise they might not fit once the game starts.'
-	'<<$curloc>>'
 
 	$loc_s = 'intro_customization'
 	$args_s = 'modclo'
@@ -162,7 +150,7 @@ if $ARGS[0] = 'modclo':
 		act 'Flamingo''s':		$menu_name = 'flamingos' 	 & gt 'intro_customization', 'modclo'
 		act 'G&M': 				$menu_name = 'gm' 			 & gt 'intro_customization', 'modclo'
 		act 'Lusso Intimo': 	$menu_name = 'lusso' 		 & gt 'intro_customization', 'modclo'
-		act 'Market': 										   gt 'pav_train_market'   , 'clo'
+		act 'Market': 										   gt 'intro_customization', 'modclo_loop', 'display_clothes', 'market_outfits', 'market/clothes'
 		act 'Mommy Style':		$menu_name = 'materinstvo' 	 & gt 'intro_customization', 'modclo'
 		act 'Mon Cheri':		$menu_name = 'moncheri' 	 & gt 'intro_customization', 'modclo'
 		act 'Nerdvana':			$menu_name = 'nerdvana' 	 & gt 'intro_customization', 'modclo'
@@ -176,8 +164,8 @@ if $ARGS[0] = 'modclo':
 
 	elseif $menu_name = 'allure':
 		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
-		act 'View swimsuits': 			gt 'shop_allure', 'swim'
-		act 'View bikinis': 			gt 'shop_allure', 'bikinis'
+		act 'View swimsuits': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 'allure_swimsuit', 'allure/one'
+		act 'View bikinis': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 'allure_bikinis',  'allure/two'
 
 		'<center><b><font color="maroon">shop_allure</font></b></center>'
 		'<center><img src="images/locations/city/residential/lake/allure/shop.jpg"></center>'
@@ -185,9 +173,9 @@ if $ARGS[0] = 'modclo':
 		
 	elseif $menu_name = 'coco_carmen':
 		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
-		act 'View dresses': 			gt 'shop_coco_carmen', 'dress'
-		act 'View other outfits': 		gt 'shop_coco_carmen', 'outfits'
-		act 'View purses': 				gt 'shop_coco_carmen', 'purses'
+		act 'View dresses': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 'coco_dress', 	'coco/dress'
+		act 'View other outfits': 		gt 'intro_customization', 'modclo_loop', 'display_clothes', 'coco_outfits', 'coco/outfits'
+		act 'View purses': 				gt 'intro_customization', 'modclo_loop', 'display_purses', 	'coco', 		'coco/purses'
 
 		'<center><b><font color="maroon">Coco Carmen</font></b></center>'
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/coco/shop.jpg"></center>'
@@ -195,13 +183,13 @@ if $ARGS[0] = 'modclo':
 		
 	elseif $menu_name = 'danilovich':
 		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
-		act 'View sports clothing': 	gt 'shop_danilovich', 'clo'
-		act 'View sports bras': 		gt 'shop_danilovich', 'bras'
-		act 'View sports panties': 		gt 'shop_danilovich', 'panties'
-		act 'View exercise shoes': 		gt 'shop_danilovich', 'shoes'
-		act 'View swimwear': 			gt 'shop_danilovich', 'swim'
-		act 'View purses': 				gt 'shop_danilovich', 'purses'
-		act 'View coats': 				gt 'shop_danilovich', 'coats'
+		act 'View sports clothing': 	gt 'intro_customization', 'modclo_loop', 'display_clothes', 'danilovich_outfits', 	'danilovich/outfits'
+		act 'View swimwear': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 'danilovich_swimsuit', 	'danilovich/swimwear'
+		act 'View sports bras': 		gt 'intro_customization', 'modclo_loop', 'display_bras', 	'danilovich', 			'danilovich/bras'
+		act 'View sports panties': 		gt 'intro_customization', 'modclo_loop', 'display_panties', 'danilovich', 			'danilovich/panties'
+		act 'View exercise shoes': 		gt 'intro_customization', 'modclo_loop', 'display_shoes', 	'danilovich', 			'danilovich/shoes'
+		act 'View purses': 				gt 'intro_customization', 'modclo_loop', 'display_purses', 	'danilovich', 			'danilovich/purses'
+		act 'View coats': 				gt 'intro_customization', 'modclo_loop', 'display_coats', 	'danilovich', 			'danilovich/coats'
 
 		'<center><b><font color="maroon">Danilovich sporting goods</font></b></center>'
 		'<center><img src="images/locations/city/citycenter/mall/sportshop/sportshop.jpg"></center>'
@@ -212,12 +200,12 @@ if $ARGS[0] = 'modclo':
 	elseif $menu_name = 'erotomaniac':
 		act 'Return': $menu_name = '' & 			gt 'intro_customization', 'modclo'
 		act 'Adult toys & items': 					gt 'shop_erotomaniac', 'sexshop_menu'
-		act 'Look through the fetish dresses':  	gt 'shop_erotomaniac', 'dress'
-		act 'Look through the fetish outfits':  	gt 'shop_erotomaniac', 'outfits'
-		act 'Look through the stripper clothing':	gt 'shop_erotomaniac', 'strip'
-		act 'Look through the panties': 			gt 'shop_erotomaniac', 'panties'
-		act 'Look through the bras': 				gt 'shop_erotomaniac', 'bras'
-		act 'Look through the fetish shoes': 		gt 'shop_erotomaniac', 'shoes'
+		act 'Look through the fetish dresses':  	gt 'intro_customization', 'modclo_loop', 'display_clothes', 'eroto_dress', 	 'eroto/dress'
+		act 'Look through the fetish outfits':  	gt 'intro_customization', 'modclo_loop', 'display_clothes', 'eroto_outfits', 'eroto/outfits'
+		act 'Look through the stripper clothing':	gt 'intro_customization', 'modclo_loop', 'display_clothes', 'eroto_strip', 	 'eroto/strip'
+		act 'Look through the bras': 				gt 'intro_customization', 'modclo_loop', 'display_bras', 	'eroto', 		 'eroto/bras'
+		act 'Look through the panties': 			gt 'intro_customization', 'modclo_loop', 'display_panties', 'eroto', 		 'eroto/panties'
+		act 'Look through the fetish shoes': 		gt 'intro_customization', 'modclo_loop', 'display_shoes', 	'eroto', 		 'eroto/shoes'
 
 		$backimage=''
 		'<center><b><font color="maroon">The Erotomaniac</font></b></center>'
@@ -231,7 +219,7 @@ if $ARGS[0] = 'modclo':
 	
 	elseif $menu_name = 'fancy_pancy':
 		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
-		act 'View clothing': 			gt 'shop_fancy_pancy', 'clothes'
+		act 'View clothing': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 'fancy_burlesque', 'fancy/burlesque'
 
 		'<center><b><font color="maroon">Fancy Pancy</font></b></center>'
 		'<center><img <<$set_imgh>> src="images/locations/pushkin/fancypancy/shop.jpg"></center>'
@@ -240,11 +228,11 @@ if $ARGS[0] = 'modclo':
 	
 	elseif $menu_name = 'fashionista':
 		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
-		act 'View purses': 				gt 'shop_fashionista', 'purses'
-		act 'Try on dresses': 			gt 'shop_fashionista', 'dressingclothes'
-		act 'Try on outfits': 			gt 'shop_fashionista', 'dressingoutfit'
-		act 'Try on bra': 	  			gt 'shop_fashionista', 'dressingbra'
-		act 'Try on panties': 			gt 'shop_fashionista', 'dressingpanties'
+		act 'Try on dresses': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 'fashionista_dress', 	'fashionista/dress'
+		act 'Try on outfits': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 'fashionista_outfits', 	'fashionista/outfits'
+		act 'Try on bra': 	  			gt 'intro_customization', 'modclo_loop', 'display_bras', 	'fashionista', 			'fashionista/bras'
+		act 'Try on panties': 			gt 'intro_customization', 'modclo_loop', 'display_panties', 'fashionista', 			'fashionista/panties'
+		act 'View purses': 				gt 'intro_customization', 'modclo_loop', 'display_purses', 	'fashionista', 			'fashionista/purses'
 
 		'<center><b><font color="maroon">Fashionista</font></b></center>'
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/fashionista.jpg"></center>'
@@ -253,9 +241,9 @@ if $ARGS[0] = 'modclo':
 	
 	elseif $menu_name = 'flamingos':
 		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
-		act 'View dresses': 			gt 'shop_flamingos', 'dresses'
-		act 'View other clothing': 		gt 'shop_flamingos', 'clothes'
-		act 'View purses': 				gt 'shop_flamingos', 'purses'
+		act 'View dresses': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 'flamingos_dress', 	 'flamingos/dress'
+		act 'View other clothing': 		gt 'intro_customization', 'modclo_loop', 'display_clothes', 'flamingos_outfits', 'flamingos/outfits'
+		act 'View purses': 				gt 'intro_customization', 'modclo_loop', 'display_purses', 	'flamingos', 		 'flamingos/purses'
 
 		'<center><b><font color="maroon">Flamingo''s</font></b></center>'
 		'<center><img <<$set_imgh>> src="images/locations/city/island/flamingos/shop.jpg"></center>'
@@ -263,17 +251,17 @@ if $ARGS[0] = 'modclo':
 	
 	elseif $menu_name = 'gm':
 		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
-		act 'View clothing': 			gt 'shop_gm', 'clothes'
-		act 'View dresses': 			gt 'shop_gm', 'dresses'
-		act 'View office wear': 		gt 'shop_gm', 'office'
-		act 'View maid outfits': 		gt 'shop_gm', 'gm_maid'
-		act 'View server uniforms': 	gt 'shop_gm', 'gm_server'
-		act 'View school uniforms': 	gt 'shop_gm', 'school'
-		act 'View regular shoes': 		gt 'shop_gm', 'shoes'
-		act 'View panties': 			gt 'shop_gm', 'panties'
-		act 'View bras': 				gt 'shop_gm', 'bras'
-		act 'View purses': 				gt 'shop_gm', 'purses'
-		act 'View coats': 				gt 'shop_gm', 'coats'
+		act 'View clothing': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 'gm_outfits', 	'gm/outfits'
+		act 'View dresses': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 'gm_dress',		'gm/dress'
+		act 'View office wear': 		gt 'intro_customization', 'modclo_loop', 'display_clothes', 'gm_office', 	'gm/office'
+		act 'View maid outfits': 		gt 'intro_customization', 'modclo_loop', 'display_clothes', 'gm_maid', 		'gm/maid'
+		act 'View server uniforms': 	gt 'intro_customization', 'modclo_loop', 'display_clothes', 'gm_server', 	'gm/server'
+		act 'View school uniforms': 	gt 'intro_customization', 'modclo_loop', 'display_clothes', 'gm_school', 	'gm/school'
+		act 'View bras': 				gt 'intro_customization', 'modclo_loop', 'display_bras', 	'gm', 			'gm/bras'
+		act 'View panties': 			gt 'intro_customization', 'modclo_loop', 'display_panties', 'gm', 			'gm/panties'
+		act 'View shoes': 				gt 'intro_customization', 'modclo_loop', 'display_shoes', 	'gm', 			'gm/shoes'
+		act 'View purses': 				gt 'intro_customization', 'modclo_loop', 'display_purses',	'gm', 			'gm/purses'
+		act 'View coats': 				gt 'intro_customization', 'modclo_loop', 'display_coats', 	'gm', 			'gm/coats'
 
 		'<center><b><font color="maroon">Welcome to G & M - Clothes for all your needs</font></b></center>'
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/gandm/shop.jpg"></center>'
@@ -281,9 +269,9 @@ if $ARGS[0] = 'modclo':
 	
 	elseif $menu_name = 'lusso':
 		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
-		act 'View panties': 			gt 'shop_lusso', 'panties'
-		act 'View bras': 				gt 'shop_lusso', 'bras'
-		act 'View bodysuits':			gt 'shop_lusso', 'bodysuit'
+		act 'View bras': 				gt 'intro_customization', 'modclo_loop', 'display_bras', 		'lusso', 'lusso/bras'
+		act 'View panties': 			gt 'intro_customization', 'modclo_loop', 'display_panties',		'lusso', 'lusso/panties'
+		act 'View bodysuits':			gt 'intro_customization', 'modclo_loop', 'display_bodysuits', 	'lusso', 'lusso/bodysuits'
 
 		'<center><b><font color="maroon">Lusso Intimo</font></b></center>'
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/lusso/lusso.jpg"></center>'
@@ -292,20 +280,20 @@ if $ARGS[0] = 'modclo':
 	
 	elseif $menu_name = 'materinstvo':
 		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
-		act 'View clothes': 			gt 'shop_materinstvo', 'clothes'
+		act 'View clothes': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 'materinstvo_dress', 'mommy'
 
 		'<center><b><font color="maroon">Mommy Style</font></b></center>'
 		'<center><img src="images/locations/city/citycenter/mall/mommy/shop.jpg"></center>'
-		'This is a shop dedicated to all things pregnancy related.  Here you can buy Pregnancy Clothing or items to aid the process of getting through the day.'
+		'This is a shop dedicated to all things pregnancy related. Here you can buy Pregnancy Clothing or items to aid the process of getting through the day.'
 	
 	elseif $menu_name = 'moncheri':
 		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
-		act 'View shoes': gt 'shop_moncheri', 'shoes'
-		act 'View purses': gt 'shop_moncheri', 'purses'
-		act 'View coats': gt 'shop_moncheri', 'coats'
-		act 'Try on dresses': gt 'shop_moncheri', 'dresses'
-		act 'Try on gowns': gt 'shop_moncheri', 'gowns'
-		act 'Try on bodysuits': gt 'shop_moncheri', 'bodysuit'
+		act 'Try on gowns': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 	'moncheri_gown', 	'moncheri/gown'
+		act 'Try on dresses': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 	'moncheri_dress', 	'moncheri/dress'
+		act 'Try on bodysuits': 		gt 'intro_customization', 'modclo_loop', 'display_bodysuits', 	'moncheri', 		'moncheri/bodysuits'
+		act 'View shoes': 				gt 'intro_customization', 'modclo_loop', 'display_shoes', 		'moncheri', 		'moncheri/shoes'
+		act 'View purses': 				gt 'intro_customization', 'modclo_loop', 'display_purses', 		'moncheri', 		'moncheri/purses'
+		act 'View coats': 				gt 'intro_customization', 'modclo_loop', 'display_coats', 		'moncheri', 		'moncheri/coats'
 
 		'<center><b><font color="maroon">Mon Chéri</font></b></center>'
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/boutique/butik.jpg"></center>'
@@ -314,11 +302,11 @@ if $ARGS[0] = 'modclo':
 	
 	elseif $menu_name = 'nerdvana':
 		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
-		act 'View cosplay outfits': 	gt 'shop_nerdvana', 'cosplay'
-		act 'View other outfits':  		gt 'shop_nerdvana', 'outfits'
-		act 'View swimsuits': 			gt 'shop_nerdvana', 'swim'
-		act 'View bikinis': 			gt 'shop_nerdvana', 'bikinis'
-		act 'View purses': 				gt 'shop_nerdvana', 'purses'
+		act 'View cosplay outfits': 	gt 'intro_customization', 'modclo_loop', 'display_clothes', 'nerdvana_cosplay',  'nerdvana/cosplay'
+		act 'View other outfits':  		gt 'intro_customization', 'modclo_loop', 'display_clothes', 'nerdvana_outfits',  'nerdvana/outfits'
+		act 'View swimsuits': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 'nerdvana_swimsuit', 'nerdvana/swim/one'
+		act 'View bikinis': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 'nerdvana_bikinis',  'nerdvana/swim/two'
+		act 'View purses': 				gt 'intro_customization', 'modclo_loop', 'display_purses', 	'nerdvana', 		 'nerdvana/purses'
 
 		'<center><b><font color="maroon">Nerdvana</font></b></center>'
 		'<center><img <<$set_imgh>> src="images/locations/city/island/nerdvana/shop.jpg"></center>'
@@ -326,11 +314,11 @@ if $ARGS[0] = 'modclo':
 	
 	elseif $menu_name = 'dolls':
 		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
-		act 'View dresses': 			gt 'shop_dolls', 'dress'
-		act 'View other outfits': 		gt 'shop_dolls', 'clothing'
-		act 'View shoes': 				gt 'shop_dolls', 'shoes'
-		act 'View purses': 				gt 'shop_dolls', 'purses'
-		act 'View coats': 				gt 'shop_dolls', 'coats'
+		act 'View dresses': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 'dolls_dress', 	 'dolls/dress'
+		act 'View other outfits': 		gt 'intro_customization', 'modclo_loop', 'display_clothes', 'dolls_outfits', 'dolls/outfits'
+		act 'View shoes': 				gt 'intro_customization', 'modclo_loop', 'display_shoes', 	'dolls', 		 'dolls/shoes'
+		act 'View purses': 				gt 'intro_customization', 'modclo_loop', 'display_purses', 	'dolls', 		 'dolls/purses'
+		act 'View coats': 				gt 'intro_customization', 'modclo_loop', 'display_coats', 	'dolls', 		 'dolls/coats'
 
 		'<center><b><font color="maroon">Patch Work Dolls</font></b></center>'
 		'<center><img <<$set_imgh>> src="images/locations/city/island/dolls/dollsshop.jpg"></center>'
@@ -338,13 +326,13 @@ if $ARGS[0] = 'modclo':
 
 	elseif $menu_name = 'pussycats':
 		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
-		act 'View dresses': 			gt 'shop_pussycats', 'dress'
-		act 'View other outfits': 		gt 'shop_pussycats', 'clothes'
-		act 'View panties': 			gt 'shop_pussycats', 'panties'
-		act 'View bras': 				gt 'shop_pussycats', 'bras'
-		act 'View shoes': 				gt 'shop_pussycats', 'shoes'
-		act 'View purses': 				gt 'shop_pussycats', 'purses'
-		act 'View coats': 				gt 'shop_pussycats', 'coats'
+		act 'View dresses': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 'cats_dress', 	'cats/dress'
+		act 'View other outfits': 		gt 'intro_customization', 'modclo_loop', 'display_clothes', 'cats_outfits', 'cats/outfits'
+		act 'View bras': 				gt 'intro_customization', 'modclo_loop', 'display_bras', 	'cats', 		'cats/bras'
+		act 'View panties': 			gt 'intro_customization', 'modclo_loop', 'display_panties', 'cats', 		'cats/panties'
+		act 'View shoes': 				gt 'intro_customization', 'modclo_loop', 'display_shoes', 	'cats', 		'cats/shoes'
+		act 'View purses': 				gt 'intro_customization', 'modclo_loop', 'display_purses', 	'cats', 		'cats/purses'
+		act 'View coats': 				gt 'intro_customization', 'modclo_loop', 'display_coats', 	'cats', 		'cats/coats'
 
 		'<b><center><font size="4">Pussy-Cats</font></center></b>'
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/cats/young_shop.jpg"></center>'
@@ -352,12 +340,12 @@ if $ARGS[0] = 'modclo':
 	
 	elseif $menu_name = 'scandalicious':
 		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
-		act 'View clothing': 			gt 'shop_scandalicious', 'clothes'
-		act 'View dresses': 			gt 'shop_scandalicious', 'dresses'
-		act 'View shoes': 				gt 'shop_scandalicious', 'shoes'
-		act 'View swimsuits': 			gt 'shop_scandalicious', 'swim'
-		act 'View bikinis': 			gt 'shop_scandalicious', 'bikinis'
-		act 'View bodysuits': 			gt 'shop_scandalicious', 'bodysuit'
+		act 'View clothing': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 	'scandalicious_outfits',  	'scandalicious/outfits'
+		act 'View dresses': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 	'scandalicious_dress',  	'scandalicious/dress'
+		act 'View swimsuits': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 	'scandalicious_swimsuit', 	'scandalicious/swim/one'
+		act 'View bikinis': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 	'scandalicious_bikinis',  	'scandalicious/swim/two'
+		act 'View bodysuits': 			gt 'intro_customization', 'modclo_loop', 'display_bodysuits', 	'scandalicious', 		  	'scandalicious/bodysuits'
+		act 'View shoes': 				gt 'intro_customization', 'modclo_loop', 'display_shoes', 		'scandalicious', 	  	  	'scandalicious/shoes'
 
 		'<center><b><font color="maroon">Scandalicious</font></b></center>'
 		'<center><img src="images/locations/city/citycenter/mall/scandalicious/shop.jpg"></center>'
@@ -366,11 +354,11 @@ if $ARGS[0] = 'modclo':
 	
 	elseif $menu_name = 'exhibitionist':
 		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
-		act 'View outfits': 			gt 'shop_exhibitionist', 'outfits'
-		act 'View dresses': 			gt 'shop_exhibitionist', 'dresses'
-		act 'View panties': 			gt 'shop_exhibitionist', 'panties'
-		act 'View bras': 				gt 'shop_exhibitionist', 'bras'
-		act 'View bodysuits': 			gt 'shop_exhibitionist', 'bodysuit'
+		act 'View outfits': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 	'salacious_dress', 	 'salacious/dress'
+		act 'View dresses': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 	'salacious_outfits', 'salacious/outfits'
+		act 'View bras': 				gt 'intro_customization', 'modclo_loop', 'display_bras', 		'salacious', 		 'salacious/bras'
+		act 'View panties': 			gt 'intro_customization', 'modclo_loop', 'display_panties', 	'salacious', 		 'salacious/panties'
+		act 'View bodysuits': 			gt 'intro_customization', 'modclo_loop', 'display_bodysuits', 	'salacious', 		 'salacious/bodysuits'
 
 		'<center><b><font color="maroon">Simply Salacious</font></b></center>'
 		'<center><img <<$set_imgh>> src="images/locations/pushkin/exhibitshop/shop.jpg"></center>'
@@ -378,11 +366,11 @@ if $ARGS[0] = 'modclo':
 	
 	elseif $menu_name = 'tsar_bomba':
 		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
-		act 'View dresses': 			gt 'shop_tsar_bomba', 'dresses'
-		act 'View outfits': 			gt 'shop_tsar_bomba', 'clothes'
-		act 'View shoes': 				gt 'shop_tsar_bomba', 'shoes'
-		act 'View purses': 				gt 'shop_tsar_bomba', 'purses'
-		act 'View coats': 				gt 'shop_tsar_bomba', 'coats'
+		act 'View dresses': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 'bomba_dress', 	 'bomba/dress'
+		act 'View outfits': 			gt 'intro_customization', 'modclo_loop', 'display_clothes', 'bomba_outfits', 'bomba/outfits'
+		act 'View shoes': 				gt 'intro_customization', 'modclo_loop', 'display_shoes', 	'bomba', 		 'bomba/shoes'
+		act 'View purses': 				gt 'intro_customization', 'modclo_loop', 'display_purses', 	'bomba', 		 'bomba/purses'
+		act 'View coats': 				gt 'intro_customization', 'modclo_loop', 'display_coats', 	'bomba', 		 'bomba/coats'
 
 		'<center><b><font color="maroon">Tsar Bomba</font></b></center>'
 		'<center><img <<$set_imgh>> src="images/locations/pushkin/bomba/shop.jpg"></center>'
@@ -395,6 +383,20 @@ if $ARGS[0] = 'modclo':
 	end
 end
 
+if $ARGS[0] = 'modclo_loop':
+	if $intro_custom_shop['loop'] = '':
+		$intro_custom_shop['loop'] = $ARGS[1]
+		$intro_custom_shop['shop'] = $ARGS[2]
+		$intro_custom_shop['path'] = $ARGS[3]
+
+		gs 'shortgs', 'setloc', 'intro_customization', 'modclo_loop'
+	end
+
+	gs 'shop_utils', $intro_custom_shop['loop'], $intro_custom_shop['shop'], 1, $intro_custom_shop['path'], 'shop'
+
+	act 'Return': killvar '$intro_custom_shop' & gt 'intro_customization', 'modclo'
+end
+
 if $ARGS[0] = 'modapp':
 	cla & *clr
 	if pcs_mass['bust_gen'] = 0: pcs_mass['bust_gen'] = 12

+ 6 - 6
locations/katja_city.qsrc

@@ -247,7 +247,7 @@ if $ARGS[0] = 'Pussy-Cats':
 					'<center><img <<$set_imgh>> src="images/pc/items/cats/dress/<<numrand>>.jpg"></center>'
 					'You try on the dress Katja has picked for you while she looks on excitedly. She seems to like it, but it''s clear that she''s waiting for your reaction before saying anything.'
 
-					gs 'clothing', 'get_price', 'cats_dresss', numrand, 3000
+					gs 'clothing', 'get_price', 'cats_dress', numrand
 
 					act 'Tell her that you like it':
 						cla
@@ -259,7 +259,7 @@ if $ARGS[0] = 'Pussy-Cats':
 								cla
 								'"I''ll buy it, but only after you try on what I picked for you."'
 								'"That''s so great!" she says, looking really happy.'
-								gs 'clothing', 'quick_buy', 'cats_dress', numrand, 3000, 'money'
+								gs 'clothing', 'quick_buy', 'cats_dress', numrand, 'money'
 								act 'Katja''s turn': gt 'katja_city', 'pussy_cat_outfit<<rand(1,2)>>'
 							end
 						end
@@ -268,7 +268,7 @@ if $ARGS[0] = 'Pussy-Cats':
 								cla
 								'"I''ll buy it, but only after you try on what I picked for you."'
 								'"That''s so great!" she says, looking really happy.'
-								gs 'clothing', 'quick_buy', 'cats_dress', numrand, 3000, 'karta'
+								gs 'clothing', 'quick_buy', 'cats_dress', numrand, 'karta'
 								act 'Katja''s turn': gt 'katja_city', 'pussy_cat_outfit<<rand(1,2)>>'
 							end
 						end
@@ -310,7 +310,7 @@ if $ARGS[0] = 'Pussy-Cats':
 					'<center><img <<$set_imgh>> src="images/pc/items/cats/outfits/<<numrand>>.jpg"></center>'
 					'You try on the clothes Katja picked out for you while she looks on excitedly. She seems to like it, but it''s clear she''s waiting for your reaction before saying anything.'
 
-					gs 'clothing',  'get_price', 'cats_outfits', numrand, 3000
+					gs 'clothing',  'get_price', 'cats_outfits', numrand
 
 					act 'Tell her that you like it':
 						cla
@@ -322,7 +322,7 @@ if $ARGS[0] = 'Pussy-Cats':
 								cla
 								'"I''ll buy it, but only after you try on what I picked for you."'
 								'"That''s so great!" she says, looking really happy.'
-								gs 'clothing', 'quick_buy', 'cats_outfits', numrand, 3000, 'money'
+								gs 'clothing', 'quick_buy', 'cats_outfits', numrand, 'money'
 								act 'Katja''s turn': gt 'katja_city', 'pussy_cat_outfit<<rand(1,2)>>'
 							end
 						end
@@ -331,7 +331,7 @@ if $ARGS[0] = 'Pussy-Cats':
 								cla
 								'"I''ll buy it, but only after you try on what I picked for you."'
 								'"That''s so great!" she says, looking really happy.'
-								gs 'clothing', 'quick_buy', 'cats_outfits', numrand, 3000, 'karta'
+								gs 'clothing', 'quick_buy', 'cats_outfits', numrand, 'karta'
 								act 'Katja''s turn': gt 'katja_city', 'pussy_cat_outfit<<rand(1,2)>>'
 							end
 						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)':

+ 4 - 4
locations/pav_disco_gopniks.qsrc

@@ -1536,12 +1536,12 @@ if $ARGS[0] = 'anushka_dance':
 						act 'Dry hump her':
 							*clr & cla
 							gs 'stat'
-							if npc_rel['A144'] >= 50 and pcs_hotcat >= 6:
+							if npc_rel['A144'] >= 50 and pcs_hotcat >= 6 and anushkaQW['kiss'] > 5:
 								gs 'fame', 'pav', 'sex', 1
 								'<center><img <<$set_imgh>> src="images/locations/pavlovsk/community/disco/school_kids/anushka_dance4.jpg"></center>'
 								'As the two of you grind against each other, you grab her hips with your hands and disentangle your legs. With your legs now free of each other, you give her body a twist with your hands, keeping your hands on her hips until she''s facing away from you. She leans back to dance against you, with her back rubbing against your breasts. You slide your hands around towards the front of her hips as you take a step back before pulling her hips towards you.'
 								'She bends forward slightly as you start bouncing your hips against her ass. She loudly giggles at your antics and bucks her ass against you. This gets a lot of hoots and hollers from the boys watching, and by her movements you can tell she''s getting turned on. Maybe she would be up for bit of the real thing?'
-								if mc_inventory['strapon'] = 1:
+								if mc_inventory['strapon'] = 1 and npc_sex['A144'] > 0:
 									'You have your strapon in your purse. Maybe she would be up for getting one of her holes pounded?'
 								end
 								gs 'arousal', 'foreplay', 5, 'exhibitionism'
@@ -1571,7 +1571,7 @@ if $ARGS[0] = 'anushka_dance':
 										act 'Take her home': gt 'anushkaev1','bedroom_lesbian'
 									end
 								end
-								if mc_inventory['strapon'] = 1 and stat['think_virgin'] = 0 and PCLoSkirt > 0:
+								if mc_inventory['strapon'] = 1 and stat['think_virgin'] = 0 and PCLoSkirt > 0 and npc_sex['A144'] > 0:
 									act 'You want her to fuck you':
 										*clr & cla
 										'<center><img <<$set_imgh>> src="images/locations/pavlovsk/community/disco/school_kids/anushka_dance4.jpg"></center>'
@@ -1593,7 +1593,7 @@ if $ARGS[0] = 'anushka_dance':
 										end
 									end
 								end
-								if mc_inventory['strapon'] = 1 and PCLoSkirt > 0:
+								if mc_inventory['strapon'] = 1 and PCLoSkirt > 0 and npc_sex['A144'] > 0:
 									act 'You want to butt fuck her':
 										*clr & cla
 										'<center><img <<$set_imgh>> src="images/locations/pavlovsk/community/disco/school_kids/anushka_dance4.jpg"></center>'

+ 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

+ 71 - 9
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,7 +357,9 @@ if $ARGS[0] = 'display_purses':
 		$shop_display['item_img_path'] = 'images/pc/items/' + $ARGS[3]
 	end
 
-	gs 'coats', 'totals', '<<$shop_display[''variable'']>>_purses'
+	shop_display['price_modifier'] = ARGS[6]
+	
+	gs 'purses', 'totals', '<<$shop_display[''variable'']>>_purses'
 
 	if total <= 0:
 		killvar 'shop_display'
@@ -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 ---------------------------------

+ 2 - 1
locations/spell.qsrc

@@ -335,12 +335,13 @@ if $ARGS[0] = 'glamour':
 	if SuccessValue > 0:
 		! Add large bonus to appearance.
 		pcs_apprncbase += 150
+		glamouractive = 1
 		! Add Timer to remove Appearance bonus after 2 hours
 		!	spellName = 'glamour'
 		!	duration  = 120
 		!	CompCode = 'pcs_apprncbase -= 150' Remove bonus
 		!	TickCode = ''  Do nothing
-		gs 'spellTimer', 'add', 'glamour', 120, 'pcs_apprncbase -= 150', ''
+		gs 'spellTimer', 'add', 'glamour', 120, 'glamouractive = 0 & gs ''AppearanceSystem'', ''UpdateBaseAppearance''', ''
 		msg '<b><font color = <<$SplTxtColGood>>>You feel gorgeous. People will love you.</font></b>'
 		gs 'stat' 
 	else

+ 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 ---------------------------------
-