24 Commits bd97751261 ... 0abcf853b5

Author SHA1 Message Date
  Kevin_Smarts 0abcf853b5 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 1 year ago
  Kevin_Smarts a0d6206daa [removed] Relationship data cleared from main menu as it is all in journal now 1 year ago
  rachels 65c402db30 [fixed] open the events 1 year ago
  rachels dd558a6150 [fixed] typos 1 year ago
  Kevin_Smarts 1d653794ba [fixed] Some legacy swallow variable usage and switching the events they are in to use cum_call for the swallowing 1 year ago
  Kevin_Smarts 6bb31080f4 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 1 year ago
  Kevin_Smarts 0df7190f63 [fixed] Swimsuit message printing to main screen and not added to $body_image string for use in stat window 1 year ago
  bgkjdgbizgblzdgbr 881bfbc4d9 [fixed] Mistahes in starts to use the prober values for teeth. By nutluck (both mistakes and fix) 1 year ago
  Kevin_Smarts c95da634f1 Merge remote-tracking branch 'LadyAlexa/master' 1 year ago
  bgkjdgbizgblzdgbr 18c64918fc [fixed] I had aperently forgot to run the analyser before my last comit. 1 year ago
  bgkjdgbizgblzdgbr b53f1360f7 [added/change] Chnaged the clinincs to work with the new options for bad teeth, and cahnge the valirabel names to the new usage. 1 year ago
  Kevin_Smarts 7d7e97f614 [Fixed] Missing actio at end of scene spotted by Salvelinus 1 year ago
  Kevin_Smarts 85075e8e71 [fixed] Missing "aware" in arousal call spotted by Hooded Silence 1 year ago
  Kevin_Smarts 83ab775fed [added] Links to Metro in acts 1 year ago
  Kevin_Smarts 1f737d46fc [added] Missing title from Hooded Silence 1 year ago
  Kevin_Smarts 2dcca27087 [changed] Sports shop items to new payment system by Hooded Silence 1 year ago
  Kevin_Smarts 139a77c846 [fixed] Added missing anti-fungal to city pharmacy from Hooded Silence 1 year ago
  Kevin_Smarts dd43ffe241 [fixed] Truckers using 2 condoms instead of 1 as spotted by BBZ01 and code was shit (technical term for in need of refactoring) 1 year ago
  Kevin_Smarts c9dca3a58d [fixed] Could somehow slip through gaps in logic on Russian version so made it all direct links to prevent 1 year ago
  Kevin_Smarts f7ff31ac02 [added] Some feedback to let player know why they can't race on Saturday if they have already that day or they don't have the minimum skill 1 year ago
  Kevin_Smarts 35f8c1fe20 [manual revert] Changes to appearance incorrectly resolved in conflict last week 1 year ago
  Kevin_Smarts 786d74bd6c Merge remote-tracking branch 'origin/master' 1 year ago
  Kevin_Smarts 3e3a6a6970 [fixed] Length of job still wrong when applying and lunch on the job was lacking a little especially on the water. 1 year ago
  rachels 6d5f90689f [fixed] move code out of cikl procedure and fixed some stuff related to booty calls 1 year ago
45 changed files with 831 additions and 854 deletions
  1. 48 38
      locations/ApperanceSystem.qsrc
  2. 1 4
      locations/BDsex.qsrc
  3. 3 8
      locations/Club2.qsrc
  4. 2 2
      locations/Gnpc2.qsrc
  5. 9 9
      locations/Komp.qsrc
  6. 7 7
      locations/_body_image.qsrc
  7. 1 4
      locations/andrey.qsrc
  8. 268 0
      locations/bank.qsrc
  9. 4 6
      locations/bedr.qsrc
  10. 6 4
      locations/booty_call.qsrc
  11. 1 1
      locations/booty_call_after.qsrc
  12. 2 2
      locations/booty_call_cum.qsrc
  13. 1 3
      locations/cfnm.qsrc
  14. 6 411
      locations/cikl.qsrc
  15. 7 2
      locations/city_center.qsrc
  16. 69 44
      locations/city_clinic.qsrc
  17. 1 3
      locations/city_drugden.qsrc
  18. 5 0
      locations/city_industrial.qsrc
  19. 5 0
      locations/city_island.qsrc
  20. 1 4
      locations/city_kafe2.qsrc
  21. 3 12
      locations/city_kafeevents3.qsrc
  22. 6 16
      locations/city_marketsex.qsrc
  23. 2 7
      locations/city_nightclub.qsrc
  24. 1 3
      locations/city_park.qsrc
  25. 3 2
      locations/city_pharmacy.qsrc
  26. 5 0
      locations/city_residential.qsrc
  27. 4 0
      locations/city_suburbs.qsrc
  28. 6 18
      locations/dimaEv.qsrc
  29. 1 4
      locations/event.qsrc
  30. 24 4
      locations/fit.qsrc
  31. 13 15
      locations/furi.qsrc
  32. 34 19
      locations/furisex.qsrc
  33. 150 0
      locations/gaddvor.qsrc
  34. 1 0
      locations/gschool_nerd_chats.qsrc
  35. 2 2
      locations/intro_city_select.qsrc
  36. 1 1
      locations/intro_sg_select.qsrc
  37. 21 13
      locations/kompMFCtwo.qsrc
  38. 1 1
      locations/npcgeneratec.qsrc
  39. 12 19
      locations/obj_din.qsrc
  40. 70 46
      locations/pav_clinic.qsrc
  41. 18 115
      locations/sportShop.qsrc
  42. 1 1
      locations/stat.qsrc
  43. 1 1
      locations/therapist.qsrc
  44. 3 3
      locations/tour_guide.qsrc
  45. 1 0
      locations/zaprFWash.qsrc

+ 48 - 38
locations/ApperanceSystem.qsrc

@@ -95,7 +95,7 @@ if $ARGS[0] = 'CalcFaceBonus':
 end
 
 if $ARGS[0] = 'CalcAttributeBonus':
-	tempAttributeBonus = (pcs_agil / 4) + (pcs_vital / 4)
+	tempAttributeBonus = (pcs_agil / 5) + (pcs_vital / 5)
 
 	result = func($this, 'AdjustFromBMI', tempAttributeBonus)
 	killvar 'tempAttributeBonus'
@@ -103,30 +103,30 @@ end
 
 if $ARGS[0] = 'CalcVisibleAgePenalty':
 	if vidage < 20:
-		tempAttributePenelty =  5*(20 - vidage)
+		tempAttributePenalty =   func('shortgs','round_divide', (5*(20 - vidage)), 2)
 	else
-		tempAttributePenelty = 0
+		tempAttributePenalty = 0
 	end
 
-	result = func($this, 'AdjustFromBMI', tempAttributePenelty)
-	killvar 'tempAttributePenelty'
+	result = func($this, 'AdjustFromBMI', tempAttributePenalty)
+	killvar 'tempAttributePenalty'
 end
 
 if $ARGS[0] = 'CalcTeethPenalty':
 	if pcs_teeth > 0:
-		tempAttributePenelty =  10 * pcs_teeth
+		tempAttributePenalty =  10 * pcs_teeth
 	elseif pcs_teeth = 0:
-		tempAttributePenelty = 5
+		tempAttributePenalty = 5
 	else
-		tempAttributePenelty = 0
+		tempAttributePenalty = 0
 	end
 
 	if pcs_missing_teeth > 0:
-		tempAttributePenelty +=  10 * pcs_missing_teeth
+		tempAttributePenalty +=  10 * pcs_missing_teeth
 	end
 
-	result = func($this, 'AdjustFromBMI', tempAttributePenelty)
-	killvar 'tempAttributePenelty'
+	result = func($this, 'AdjustFromBMI', tempAttributePenalty)
+	killvar 'tempAttributePenalty'
 end
 
 if $ARGS[0] = 'SetBodyShapeBonus':
@@ -147,13 +147,13 @@ if $ARGS[0] = 'SetBodyShapeBonus':
 	else
 		if pcs_bmi < 16:
 			!! severely underweight
-			tempBodyShapeBonus = -5
+			tempBodyShapeBonus = -10
 		elseif pcs_bmi < 19:
 			!! underweight
 			tempBodyShapeBonus = 25
 		elseif pcs_bmi < 25:
 			!! healthy weight
-			tempBodyShapeBonus = 40
+			tempBodyShapeBonus = 50
 		elseif pcs_bmi < 30:
 			!! overweight
 			tempBodyShapeBonus = 25
@@ -162,29 +162,39 @@ if $ARGS[0] = 'SetBodyShapeBonus':
 			tempBodyShapeBonus = 10
 		elseif pcs_bmi < 40:
 			!! severely obese
-			tempBodyShapeBonus = -10
+			tempBodyShapeBonus = -15
 		elseif pcs_bmi < 45:
 			!! very severely obese
 			tempBodyShapeBonus = -40
 		else
 			!! morbidly obese
-			tempBodyShapeBonus = -45
+			tempBodyShapeBonus = -80
 		end
 
-		if strenbuf <= 5 or strenbuf > 95:
-			tempBodyShapeBonus -= 20
-		elseif strenbuf <= 10 or strenbuf > 90:
-			tempBodyShapeBonus -= 15
-		elseif strenbuf <= 15 or strenbuf > 85:
-			tempBodyShapeBonus -= 10
-		elseif strenbuf <= 25 or strenbuf > 75:
-			tempBodyShapeBonus -= 5
-		elseif strenbuf <= 35 or strenbuf > 65:
-			tempBodyShapeBonus += 0
-		elseif strenbuf <= 45 or strenbuf > 60:
-			tempBodyShapeBonus += 5
-		else
+		if succubusflag = 1:
 			tempBodyShapeBonus += 10
+		else
+			if strenbuf > 180:
+				tempBodyShapeBonus -= 70
+			elseif strenbuf > 160:
+				tempBodyShapeBonus -= 50
+			elseif strenbuf > 140:
+				tempBodyShapeBonus -= 30
+			elseif strenbuf <= 5 or strenbuf > 120:
+				tempBodyShapeBonus -= 20
+			elseif strenbuf <= 10 or strenbuf > 100:
+				tempBodyShapeBonus -= 15
+			elseif strenbuf <= 15 or strenbuf > 95:
+				tempBodyShapeBonus -= 10
+			elseif strenbuf <= 25 or strenbuf > 85:
+				tempBodyShapeBonus -= 5
+			elseif strenbuf <= 35 or strenbuf > 75:
+				tempBodyShapeBonus += 0
+			elseif strenbuf <= 45 or strenbuf > 60:
+				tempBodyShapeBonus += 5
+			else
+				tempBodyShapeBonus += 10
+			end
 		end
 
 		!!This modifies bodykoef for high or low salo values
@@ -257,7 +267,7 @@ end
 
 if $ARGS[0] = 'CalcGroomingBonus':
 
-	makeupBonus = pcs_makupskl/4 - 5
+	makeupBonus = pcs_makupskl/5 - 5
 	if pcs_makeup = 0: makeupBonus = -5
 	if pcs_makeup = 1: makeupBonus = 0
 	if pcs_makeup = 5: makeupBonus = 30
@@ -288,7 +298,7 @@ if $ARGS[0] = 'CalcGroomingPenalty':
 	end
 
 	!!Small penalty for not wearing deodorant, if pcs_sweat is low enough
-	if deodorant_on = 0 or pcs_sweat < 20: deodorantPenalty = 5
+	if deodorant_on = 0 or pcs_sweat >= 20: deodorantPenalty = 5
 
 	if pcs_sweat < 22:
 		sweatPenalty = 0
@@ -343,21 +353,21 @@ if $ARGS[0] = 'CalcAppearance':
 end
 
 if $ARGS[0] = 'ConvertToHotcat':
-	if pcs_apprnc <= 60:
+	if pcs_apprnc <= 40:
 		result = 1
-	elseif pcs_apprnc <= 80:
+	elseif pcs_apprnc <= 60:
 		result = 2
-	elseif pcs_apprnc <= 100:
+	elseif pcs_apprnc <= 80:
 		result = 3
-	elseif pcs_apprnc <= 120:
+	elseif pcs_apprnc <= 100:
 		result = 4
-	elseif pcs_apprnc <= 140:
+	elseif pcs_apprnc <= 125:
 		result = 5
-	elseif pcs_apprnc <= 155:
+	elseif pcs_apprnc <= 150:
 		result = 6
-	elseif pcs_apprnc <= 170:
+	elseif pcs_apprnc <= 165:
 		result = 7
-	elseif pcs_apprnc <= 185:
+	elseif pcs_apprnc <= 180:
 		result = 8
 	elseif pcs_apprnc <= 199:
 		result = 9

+ 1 - 4
locations/BDsex.qsrc

@@ -480,10 +480,7 @@ if $ARGS[0] = 'swallow':
 		sexcontra = 0
 	else
 		'Thick jets of sharply smelling sperm fill your mouth.'
-		spafinloc = 12
-		sexpartkno = 1
-		gs 'cum_manage'
-		swallow += 1
+		gs 'cum_call', 'mouth_swallow', $boy, 1
 	end
 	gs 'stat'
 	act 'Brush up':gt 'BDsex', 'end'

+ 3 - 8
locations/Club2.qsrc

@@ -41,9 +41,7 @@ if $ARGS[0] = 'toilet1':
 		
 			act 'Swallow':
 				*clr & cla
-				swallow += 1
-				spafinloc = 12
-				gs 'cum_manage'
+				gs 'cum_call', 'mouth_swallow', $boy
 				money += 1000
 				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/nightclub/sex/glory3.jpg"></center>'
 				*nl
@@ -171,15 +169,12 @@ if $ARGS[0] = 'toilet2':
 						'2,000 RUB pokes through the hole.'
 
 						guy += 2
-						swallow += 2
 						gs 'npcgeneratec', 0, 'Gloryhole Client', rand(18,60)
 						gs 'boyStat', $npclastgenerated
-						spafinloc = 12
-						gs 'cum_manage'
+						gs 'cum_call', 'mouth_swallow', $boy
 						gs 'npcgeneratec', 0, 'Gloryhole Client', rand(18,60)
 						gs 'boyStat', $npclastgenerated
-						spafinloc = 12
-						gs 'cum_manage'
+						gs 'cum_call', 'mouth_swallow', $boy
 						gs 'arousal', 'end'
 						gs 'stat'
 						

+ 2 - 2
locations/Gnpc2.qsrc

@@ -118,7 +118,7 @@ $din_gboy_go_to_disco = {
 											'You push back the Gopnik with all your strength and he stumbles backwards, hitting his head on the floor. But the second Gopnik turns to you and swings his fist towards your face.'
 											if pcs_agil < 60:
 												pcs_mood -= 30
-												pcs_teeth += 1
+												pcs_missing_teeth += 1
 												gs 'pain', 8, 'mouth', 'hit'
 												gs 'stat'
 												*pl $looseTooth
@@ -135,7 +135,7 @@ $din_gboy_go_to_disco = {
 													cla
 													if pcs_agil >= 40:
 														pcs_mood -= 30
-														pcs_teeth += 1
+														pcs_missing_teeth += 1
 														gs 'pain', 8, 'mouth', 'hit'
 														gs 'pain', 6, 'face', 'hit'
 														gs 'pain', 6, 'nose', 'hit'

+ 9 - 9
locations/Komp.qsrc

@@ -1377,55 +1377,55 @@ if $ARGS[0] = 'waitclients':
 	if webpopular >= 15 and pcs_ass >= 15 and clientask = 89:
 		menu_off = 1
 		*clr & cla
-		gt 'kompMFCtwo'
+		gt 'kompMFCtwo', 89
 	end
 
 	if webpopular < 50 and clientask = 88:
 		menu_off = 1
 		*clr & cla
-		gt 'kompMFCtwo'
+		gt 'kompMFCtwo', 88
 	end
 
 	if webpopular >= 50 and pcs_vag >= 35 and clientask = 87:
 		menu_off = 1
 		*clr & cla
-		gt 'kompMFCtwo'
+		gt 'kompMFCtwo', 87
 	end
 
 	if webpopular >= 35 and pcs_vag >= 25 and alko >= 4 and clientask = 86:
 		menu_off = 1
 		*clr & cla
-		gt 'kompMFCtwo'
+		gt 'kompMFCtwo', 86
 	end
 	
 	if webpopular >= 50 and pcs_vag + pcs_ass > 0 and alko >= 4 and clientask = 85:
 		menu_off = 1
 		*clr & cla
-		gt 'kompMFCtwo'
+		gt 'kompMFCtwo', 85
 	end
 
 	if backmfc = 0 and webpopular >= 25 and pcs_vag + pcs_ass >= 30 and alko >= 4 and clientask = 84:
 		menu_off = 1
 		*clr & cla
-		gt 'kompMFCtwo'
+		gt 'kompMFCtwo', 84
 	end
 
 	if backmfc = 0 and pcs_vag > 20 and clientask = 83:
 		menu_off = 1
 		*clr & cla
-		gt 'kompMFCtwo'
+		gt 'kompMFCtwo', 83
 	end
 
 	if webpopular > 25 and backmfc = 0 and sub > 25 and pcs_vag > 10 and prezik > 0 and clientask = 82:
 		menu_off = 1
 		*clr & cla
-		gt 'kompMFCtwo'
+		gt 'kompMFCtwo', 82
 	end
 
 	if backmfc = 0 and webpopular >= 50 and pcs_ass > 25 and clientask = 81:
 		menu_off = 1
 		*clr & cla
-		gt 'kompMFCtwo'
+		gt 'kompMFCtwo', 81
 	end
 
 	if backmfc = 0 and clientask < 80 and clientask >= 77:

+ 7 - 7
locations/_body_image.qsrc

@@ -81,25 +81,25 @@ if $ARGS[0] = 'clothes':
 		else
 			if $clothingworntype = 'danilovich_swimsuit':
 				FUNC('$attributes_danilovich_swim_one', $clothingworntype, clothingwornnumber)
-				$swimwear_description
+				$body_image_msg += $swimwear_description
 			elseif $clothingworntype = 'scandalicious_swimsuit':
 				FUNC('$attributes_scandalicious_swim_one', $clothingworntype, clothingwornnumber)
-				$swimwear_description
+				$body_image_msg += $swimwear_description
 			elseif $clothingworntype = 'scandalicious_bikinis':
 				FUNC('$attributes_scandalicious_swim_two', $clothingworntype, clothingwornnumber)
-				$swimwear_description
+				$body_image_msg += $swimwear_description
 			elseif $clothingworntype = 'allure_swimsuit':
 				FUNC('$attributes_allure_swim_one', $clothingworntype, clothingwornnumber)
-				$swimwear_description
+				$body_image_msg += $swimwear_description
 			elseif $clothingworntype = 'allure_bikinis':
 				FUNC('$attributes_allure_swim_two', $clothingworntype, clothingwornnumber)
-				$swimwear_description
+				$body_image_msg += $swimwear_description
 			elseif $clothingworntype = 'nerdvana_swimsuit':
 				FUNC('$attributes_nerdvana_swim_one', $clothingworntype, clothingwornnumber)
-				$swimwear_description
+				$body_image_msg += $swimwear_description
 			elseif $clothingworntype = 'nerdvana_bikinis':
 				FUNC('$attributes_nerdvana_swim_two', $clothingworntype, clothingwornnumber)
-				$swimwear_description
+				$body_image_msg += $swimwear_description
 			end
 		end
 

+ 1 - 4
locations/andrey.qsrc

@@ -426,11 +426,8 @@ if $ARGS[0] = 'fired1':
 	*clr
 	menu_off = 1
 	if sobulaginsex = 0:sobulaginsex = 1 & guy += 1
-	swallow += 1
 	gs 'boyStat', 'A101'
-	sexpartkno = 1
-	spafinloc = 12
-	gs 'cum_manage'
+	gs 'cum_call', 'mouth_swallow', $boy, 1
 	young_shop_miss = 0
 	young_shop_salary = 1
 	young_shop_bonus = 2

+ 268 - 0
locations/bank.qsrc

@@ -358,5 +358,273 @@ if $ARGS[0] = 'loan_officer':
 	end
 end
 
+if $ARGS[0] = 'cikl':
+	!!------------------------------------------------------------------------------------------------------------
+	!!	Banking
+	!!------------------------------------------------------------------------------------------------------------
+
+	!!MJ: Add some (daily) interest to the bank account.
+	!!Not very realistic but won''t make anyone too rich.
+
+	if bankAccount = 1:
+		kartatotal = karta
+		:kartaloop
+		if kartatotal > 20000000:
+			kartacount += 1
+			largekarta[kartacount] = 20000000
+			kartatotal -= 20000000
+			jump 'kartaloop'
+		else
+			largekarta[0] = kartatotal
+		end
+		if karta >= 2000000:
+			!! yearly interest of 2.3% recalculated into daily interest = 0.006% daily
+			intrate = 60
+		elseif karta >= 0:
+			!! yearly interest of 1.15% recalculated into daily interest = 0.003% daily
+			intrate = 30
+		else
+			!! yearly overdraft interest of 20% recalculated into daily interest = 0.055% daily
+			intrate = 550
+		end
+		:intloop
+		if kartacount > 0:
+			smallmoneypos += (largekarta[kartacount] * intrate)
+			if smallmoneypos >= 1000000 or smallmoneypos <= -1000000: karta += smallmoneypos / 1000000 & smallmoneypos = smallmoneypos mod 1000000
+			largekarta[kartacount] = 0
+			kartacount -= 1
+			jump 'intloop'
+		else
+			smallmoneypos += (largekarta[0] * intrate)
+			largekarta[0] = 0
+			if kartacount ! 0: kartacount = 0
+		end
+
+		if smallmoneypos >= 1000000 or smallmoneypos <= -1000000:
+			karta += smallmoneypos / 1000000
+			smallmoneypos = smallmoneypos mod 1000000
+		end
+
+		if atmDeposit > 0 and atmDepositDate <= daystart:
+			karta += atmDeposit
+			atmDeposit = 0
+		end
+	end
+
+	!!------------------------------------------------------------------------------------------------------------
+	!!	Payments
+	!!------------------------------------------------------------------------------------------------------------
+
+	if day = 25:
+		!! meynold payment
+		if	mey_vika['mey_vika_qw'] >= 35 and mey_tamara['help_count'] < 10 and mey_tamara['qw_end'] = 0:
+			karta += 10000
+			'<b><font color=green>For your efforts aunt Tamara gave you 10,000 rubles</font></b>'
+			mey_tamara['help_count'] = 0
+		elseif mey_vika['mey_vika_qw'] >= 35 and mey_tamara['help_count'] >= 10 and mey_tamara['qw_end'] = 0:
+			karta += 15000
+			'<b><font color=green>For your efforts aunt Tamara gave you 15,000 rubles</font></b>'
+			mey_tamara['help_count'] = 0
+		end
+
+		if BurgerQW['Secretary'] = 1 and BurgerQW['SecretaryTimesWorked'] > 0 and paydaybistrosec = 0:
+			Pay = BurgerQW['SecretaryTimesWorked'] * 1250
+			BurgerQW['SecretaryTimesWorked'] = 0
+			karta += Pay
+			paydaybistrosec = 1
+			'<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your job as a secretary.</font></b>'
+		end
+
+		if workKafe['job'] = 1 and paydayKafe = 0:
+			paydayKafe = 1
+			pay = smenaKafe * 600
+			karta += pay
+			smenaKafe = 0
+			'<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your job as a waitress in a cafe.</font></b>'
+		end
+
+		if workhosp = 1 and nopaypoly = 0:
+			pay = smena * 1000
+			karta += pay
+			smena = 0
+			nopaypoly = 1
+			'<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your work in the clinic.</font></b>'
+		end
+
+		if worksalon = 1 and nopaysalon = 0:
+			pay = smenaSalon * 1560
+			karta += pay
+			smenaSalon = 0
+			nopaysalon = 1
+			'<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your work in a beauty salon.</font></b>'
+		end
+
+		if tanwork = 1 and nopaytanwork = 0:
+			nopaytanwork = 1
+			karta += 10000
+			'<b><font color="green">Your salary of 10,000 <b>₽</b> has been paid into your bank account for your work as a house maid.</font></b>'
+		end
+
+		if workSec = 1 and paydaySec = 0:
+			paydaySec = 1
+			pay = sekDay * 1500
+
+			karta += pay
+			sekDay = 0
+			'<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your job as a secretary.</font></b>'
+		end
+
+		if workFabrika = 1:
+			pay = smenaFabrika * 600
+			smenaFabrika = 0
+			karta += pay
+			'<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your job at the garment factory.</font></b>'
+		end
+
+		if husband > 0 and paydayHusb = 0:
+			paydayHusb = 1
+
+			if husbFin = 0:huspay = 20000
+			if husbFin = 1:huspay = 30000
+			if husbFin = 2:huspay = 40000
+
+			karta += huspay
+			'<b><font color="green">Your husband has paid <<huspay>> <b>₽</b> into your bank account.</font></b>'
+		end
+
+		if func('uniutil', 'scholarship' , 'is_active') and scholarshipday = 0:
+			scholarshipday = 1
+			karta += func('uniutil', 'scholarship', 'get')
+			'<b><font color="green">You have received '+func('uniutil', 'scholarship', 'get')+' <b>₽</b> from your scholarship.</font></b>'
+		end
+
+		! Utilities for all apartments.
+		if (home_owned[1] = 1 or home_owned[1] = 2 or home_owned[4] > 0 or home_owned[5] = 2) and electroday = 0:
+			gs 'housing', 'util'
+			if bankAccount = 1 and karta >= elektro:
+				'<b><font color="green"><<elektro>> <b>₽</b> for utilities, has been automatically deducted from your bank account.</font></b>'
+				electroday = 1
+				if elektro >= 2000:
+					elektro = 2000 + rand(0, 100)
+					karta -= elektro * hcount_util
+				end
+			elseif bankAccount = 1 and karta + bankDebtLimit >= elektro:
+				'<b><font color="green"><<elektro>> <b>₽</b> for utilities, has been automatically deducted from your bank account and overdraw facility. Please contact your bank.</font></b>'
+				electroday = 1
+				if elektro >= 2000:
+					elektro = 2000 + rand(0, 100)
+					karta -= elektro * hcount_util
+				end
+			elseif bankAccount = 0 and money >= elektro:
+				'<b><font color="red">You currently do not have a bank account setup for automatic utilities payments. <<elektro>> <b>₽</b> has been deducted from your cash holdings.</font></b>'
+				electroday = 1
+				if elektro >= 2000:
+					elektro = 2000 + rand(0, 100)
+					money -= elektro * hcount_util
+				end
+			else
+				'<b><font color="red">Your card was declined during automatic debit of <<elektro>> <b>₽</b>, for automatic utilities payment.</font></b>'
+			end
+		end
+
+		! Cable for all apartments
+		if kabel > 0 and kabelday = 0:
+			gs 'housing', 'cable'
+			if bankAccount = 1 and karta >= (300 * hcount_cable):
+				'<b><font color="green">300 <b>₽</b> has been deducted from your bank account, for you cable TV subscription.</font></b>'
+				kabelday = 1
+				karta -= 300 * hcount_cable
+			elseif bankAccount = 1 and karta + bankDebtLimit >= (300 * hcount_cable):
+				'<b><font color="green">300 <b>₽</b> has been deducted from your bank account and overdraw facility, for you cable TV subscription.</font></b>'
+				kabelday = 1
+				karta -= 300 * hcount_cable
+			elseif bankAccount = 0 and money >= (300 * hcount_cable):
+				'<b><font color="red">You currently do not have a bank account setup for automatic payment of your cable TV subscription. 300 <b>₽</b> has been deducted from your cash holdings.</font></b>'
+				kabelday = 1
+				money -= 300 * hcount_cable
+			else
+				'<b><font color="red">Your card was declined during automatic debit of 300 <b>₽</b> for cable TV subscription.</font></b>'
+			end
+		end
+	end
+
+	if day ! 25:
+		if paydayHusb = 1:paydayHusb = 0
+		if workKafe['job'] = 1 and paydayKafe = 1:paydayKafe = 0
+		if workSec = 1 and paydaySec = 1:paydaySec = 0
+		if (home_owned[1] = 1 or home_owned[4] > 0) and haday = 1:haday = 0
+		if (home_owned[1] > 0 or home_owned[4] > 0 or home_owned[5] = 2) and electroday = 1:electroday = 0
+		if (home_owned[1] > 0 or home_owned[4] > 0 or home_owned[5] = 3) and kabel > 0 and kabelday = 1:kabelday = 0
+		if scholarshipday = 1:scholarshipday = 0
+		if nopaytanwork = 1:nopaytanwork = 0
+		if nopaypoly = 1:nopaypoly = 0
+		if nopaysalon = 1:nopaysalon = 0
+		if paydaybistrosec = 1:paydaybistrosec = 0
+	end
+
+	if sdaday = day and sdamonth = month and home_owned[1] = 3:
+		home_owned[1] = 2
+		'<b><font color="red">Your tenants have moved out and your apartment is now vacant.</font></b>'
+		!msg 'Your tenants have moved out and your apartment is now vacant.'
+	end
+
+	!!----------------------------------------
+	!! Rent
+	!!----------------------------------------
+
+	if home_owned[1] = 1 or home_owned[4] > 0:
+		gs 'housing', 'rent'
+		! Rent for the city apartment
+		if home_owned[1] = 1:
+			if ArendHouseSL <= 2:
+				!From bank
+				if bankAccount = 1 and karta >= home_rent[1]:
+					'<b><font color="green">Your rent payment of <<home_rent[1]>> <b>₽</b> for your city apartment, has automatically been deducted from your bank account.</font></b>'
+					karta -= home_rent[1]
+					ArendHouseSL += ArendHouseSL_due
+				elseif bankAccount = 1 and karta + bankDebtLimit >= home_rent[1]:
+					'<b><font color="green">Your rent payment of <<home_rent[1]>> <b>₽</b> for your city apartment, has automatically been deducted from your bank account and overdraw facility. Please contact your bank regarding your overdraw repayment.</font></b>'
+					karta -= home_rent[1]
+					ArendHouseSL += ArendHouseSL_due
+				elseif bankAccount = 0:
+					'<b><font color="red">You currently do not have a bank account setup for automatic rent deduction of <<home_rent[1]>> <b>₽</b> for your city apartment. To avoid eviction, please make manual payment as soon as possible.</font></b>'
+				else
+					nl
+					'<b><b><font color="red">Your card was declined during automatic rent deduction of <<home_rent[1]>> <b>₽</b> for your city apartment. To avoid eviction, please rectify as soon as possible.</font></b>'
+				end
+			end
+		end
+
+		! Rent for the Pushkin apartment
+		if home_owned[4] > 0:
+			if ArendHouseSL4 <= 2:
+				!From bank
+				if bankAccount = 1 and karta >= home_rent[4]:
+					'<b><font color="green">Your rent payment of <<home_rent[4]>> <b>₽</b> for your Pushkin apartment, has automatically been deducted from your bank account.</font></b>'
+					karta -= home_rent[4]
+					ArendHouseSL4 += ArendHouseSL_due
+				elseif bankAccount = 1 and karta + bankDebtLimit >= home_rent[4]:
+					'<b><font color="green">Your rent payment of <<home_rent[4]>> <b>₽</b> for your Pushkin apartment, has automatically been deducted from your bank account and overdraw facility. Please contact your bank regarding your overdraw repayment.</font></b>'
+					karta -= home_rent[4]
+					ArendHouseSL4 += ArendHouseSL_due
+				elseif bankAccount = 0:
+					'<b><font color="red">You currently do not have a bank account setup for automatic rent deduction of <<home_rent[4]>> <b>₽</b> for your Pushkin apartment. To avoid eviction, please make manual payment as soon as possible.</font></b>'
+				else
+					nl
+					'<b><b><font color="red">Your card was declined during automatic rent deduction of <<home_rent[4]>> <b>₽</b> for your Pushkin apartment. To avoid eviction, please rectify as soon as possible.</font></b>'
+				end
+			end
+		end
+	end
+
+	if home_owned[1] = 1 and ArendHouseSL <= 0: ArendHouseSL = 0 & home_owned[1] = 0
+	if home_owned[4] > 0 and ArendHouseSL4 <= 0: ArendHouseSL4 = 0 & home_owned[4] = 0
+
+	if home_owned[1] = 1: ArendHouseSL -= 1
+	if home_owned[4] > 0: ArendHouseSL4 -= 1
+
+	!!------------------------------------------------------------------------------------------------------------
+
+end
 --- bank ---------------------------------
 

+ 4 - 6
locations/bedr.qsrc

@@ -150,9 +150,8 @@ if husbandrink = 10 and hour > 20 and hour < 23 and husbanstrapon = 0:
 					*clr
 					menu_off = 1
 					husbanstrapon = 2
-					swallow += 1
-					spafinloc = 12
-					gs 'cum_manage'
+					gs 'boyStat', $HusID
+					gs 'cum_call', 'mouth_swallow', $boy, 1
 					'<center><img <<$set_imgh>> src="images/characters/city/husband/sex/h1.jpg"></center>'
 					'You pull out the plug and replace with it with a dildo, <<$husName>> did not even budge. You slowly move the dildo in and out, trying not to wake him up. You notice his cock starts to get rock hard, and <<$husName>> starts to moan softly, but is still asleep. With the dildo in his ass, his dick starts to throb, it seems like he is going to cum. You take his dick in your mouth and you don''t need to suck on it for long. He starts to cum, you swallow it and completely clean his cock. You carefully put back on his underpants.'
 
@@ -173,9 +172,8 @@ if husbandrink = 10 and hour > 20 and hour < 23 and husbanstrapon = 0:
 					menu_off = 1
 					minut += 20
 					husbanstrapon = 3
-					swallow += 1
-					spafinloc = 12
-					gs 'cum_manage'
+					gs 'boyStat', $HusID
+					gs 'cum_call', 'mouth_swallow', $boy, 1
 					pcs_horny += 30
 					'<center><img <<$set_imgh>> src="images/characters/city/husband/sex/h2.jpg"></center>'
 					'You put on the strapon and pull out the butt plug. You gently move the shaft of the strapon inside his ass, <<$husName>>  moves but doesn''t wake up. You continue to slowly move it in and out, trying not to wake him. You notice his cock is getting rock hard and <<$husName>> starts to moan softly, still not waking up. Hopeing that he won''t wake up, you increase your speed and push the entire length of the strapon into his has. You see his hard dick and you start to stroke it in addition to pounding him like a little bitch. Realizing he is not far from cumming, you pull out and finish him by giving him a blowjob. He cums inside it, you swallow it down and clean his cock. You carefully put back on his underpants.'

+ 6 - 4
locations/booty_call.qsrc

@@ -1,11 +1,11 @@
 # booty_call
 if $ARGS[0] = 'scheduler':
+	!! clear SMS
+	!! clear schedule
+	killvar 'booty_call_time'
 	i = 0
 	:booty_call_time_sched_loop
 	if i < ARRSIZE('$FuckBuddy'):
-		!! clear SMS
-		!! clear schedule
-		killvar 'booty_call_time'
 		if (rand(1,10) <= npc_sexdrive[$FuckBuddy[i]]) and (rand(1,npc_rel[$FuckBuddy[i]]) > 0):
 			booty_call_time[$FuckBuddy[i]] = 900 + rand(0,210)
 		else
@@ -20,10 +20,12 @@ if $ARGS[0] = 'SMS raiser':
 	i = 0
 	:booty_call_sms_raiser_loop
 	if i < ARRSIZE('$FuckBuddy'):
-		if booty_call_time[$FuckBuddy[i]] < hour*24+minut:
+		if booty_call_time[$FuckBuddy[i]] < hour*60+minut:
 			gs 'booty_call_sms', 'start',$FuckBuddy[i]
 			gs 'booty_call_sms', 'Add SMS', $FuckBuddy[i]
 			booty_call_time[$FuckBuddy[i]] = 2000
+			!! this is a bit superfluous, but it makes the code run fater.
+			booty_call['A0'] = daystart
 		end
 		i += 1
 		jump 'booty_call_sms_raiser_loop'

+ 1 - 1
locations/booty_call_after.qsrc

@@ -898,7 +898,7 @@ if $ARGS[0] = 'cum_clean':
 		act'Lick your fingers clean':
 			gs'stat'
 			gs 'cum_cleanup', 'cleanloc'
-			swallow += 1
+			stat['swallow'] += 1
 			cla & *clr
 			'<center><b><font color="maroon"><<$npc_firstname[$boy]>>''s Bedroom</font></b></center>'
 			$npc_apt_bedroom[$boy]

+ 2 - 2
locations/booty_call_cum.qsrc

@@ -645,7 +645,7 @@ if $ARGS[0] = 'facial_tongue_swallow':
 		end
 		act'Gulp':
 			cla & *clr
-			swallow += 1
+			stat['swallow'] += 1
 			'<center><video autoplay loop src="images/shared/sex/cum/facial/facial26.mp4"></video></center>'
 			if orgasm > booty_call['orgasm']:
 				'A few seconds go by and no more spurts of cum land on you so you close your mouth and swallow, gulping down the entire load. You pant heavily in the aftershocks of your orgasm, looking up at <<$npc_firstname[$boy]>> through cum-glazed eyes.'
@@ -861,7 +861,7 @@ if $ARGS[0] = 'cum_mouth':
 			booty_call['swallow'] = 1
 			booty_call['swallow_count'] += 1
 			$booty_call['last_cum'] = 'swallow'
-			swallow += 1
+			stat['swallow'] += 1
 			cla & *clr
 			'<center><video autoplay loop src="images/shared/sex/cum/mouth/swallow3.mp4"></video></center>'
 			'Taking a step back, you open your mouth again to show <<$npc_firstname[$boy]>> how much cum is still inside it. With a deep breath, you swallow the entire load in one gulp, sticking your tongue back out again to show him that it''s all gone.'

+ 1 - 3
locations/cfnm.qsrc

@@ -132,9 +132,7 @@ end
 
 if $ARGS[0] = 'blow3':
 	*clr & cla
-	spafinloc = 12
-	gs 'cum_manage'
-	swallow += 1
+	gs 'cum_call', 'mouth_swallow', $boy, 1
 	fotoCFNMblowjobCum += 1
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/city/redlight/stripclub/sex/swallow.jpg"></center>'

+ 6 - 411
locations/cikl.qsrc

@@ -88,6 +88,10 @@ if (film > 0 or pornstack = 1) and pfilmNO = 0 and pfilmSTOP = 0:
 	gs 'pornschedule', 'schedule'
 end
 
+!! set the time when the SMS will be send
+gs 'booty_call', 'scheduler'
+
+
 !!------------------------------------------------------------------------------------------------------------
 !!	Job Stuff
 !!------------------------------------------------------------------------------------------------------------
@@ -706,271 +710,8 @@ if temprel < aarraynumber:
 	jump 'toptemprel'
 end
 killvar 'temprel'
-!!------------------------------------------------------------------------------------------------------------
-!!	Banking
-!!------------------------------------------------------------------------------------------------------------
-
-!!MJ: Add some (daily) interest to the bank account.
-!!Not very realistic but won''t make anyone too rich.
-
-if bankAccount = 1:
-	kartatotal = karta
-	:kartaloop
-	if kartatotal > 20000000:
-		kartacount += 1
-		largekarta[kartacount] = 20000000
-		kartatotal -= 20000000
-		jump 'kartaloop'
-	else
-		largekarta[0] = kartatotal
-	end
-	if karta >= 2000000:
-		!! yearly interest of 2.3% recalculated into daily interest = 0.006% daily
-		intrate = 60
-	elseif karta >= 0:
-		!! yearly interest of 1.15% recalculated into daily interest = 0.003% daily
-		intrate = 30
-	else
-		!! yearly overdraft interest of 20% recalculated into daily interest = 0.055% daily
-		intrate = 550
-	end
-	:intloop
-	if kartacount > 0:
-		smallmoneypos += (largekarta[kartacount] * intrate)
-		if smallmoneypos >= 1000000 or smallmoneypos <= -1000000: karta += smallmoneypos / 1000000 & smallmoneypos = smallmoneypos mod 1000000
-		largekarta[kartacount] = 0
-		kartacount -= 1
-		jump 'intloop'
-	else
-		smallmoneypos += (largekarta[0] * intrate)
-		largekarta[0] = 0
-		if kartacount ! 0: kartacount = 0
-	end
-
-	if smallmoneypos >= 1000000 or smallmoneypos <= -1000000:
-		karta += smallmoneypos / 1000000
-		smallmoneypos = smallmoneypos mod 1000000
-	end
-
-	if atmDeposit > 0 and atmDepositDate <= daystart:
-		karta += atmDeposit
-		atmDeposit = 0
-	end
-end
-
-!!------------------------------------------------------------------------------------------------------------
-!!	Payments
-!!------------------------------------------------------------------------------------------------------------
-
-if day = 25:
-	!! meynold payment
-	if	mey_vika['mey_vika_qw'] >= 35 and mey_tamara['help_count'] < 10 and mey_tamara['qw_end'] = 0:
-		karta += 10000
-		'<b><font color=green>For your efforts aunt Tamara gave you 10,000 rubles</font></b>'
-		mey_tamara['help_count'] = 0
-	elseif mey_vika['mey_vika_qw'] >= 35 and mey_tamara['help_count'] >= 10 and mey_tamara['qw_end'] = 0:
-		karta += 15000
-		'<b><font color=green>For your efforts aunt Tamara gave you 15,000 rubles</font></b>'
-		mey_tamara['help_count'] = 0
-	end
-
-	if BurgerQW['Secretary'] = 1 and BurgerQW['SecretaryTimesWorked'] > 0 and paydaybistrosec = 0:
-		Pay = BurgerQW['SecretaryTimesWorked'] * 1250
-		BurgerQW['SecretaryTimesWorked'] = 0
-		karta += Pay
-		paydaybistrosec = 1
-		'<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your job as a secretary.</font></b>'
-	end
-
-	if workKafe['job'] = 1 and paydayKafe = 0:
-		paydayKafe = 1
-		pay = smenaKafe * 600
-		karta += pay
-		smenaKafe = 0
-		'<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your job as a waitress in a cafe.</font></b>'
-	end
-
-	if workhosp = 1 and nopaypoly = 0:
-		pay = smena * 1000
-		karta += pay
-		smena = 0
-		nopaypoly = 1
-		'<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your work in the clinic.</font></b>'
-	end
-
-	if worksalon = 1 and nopaysalon = 0:
-		pay = smenaSalon * 1560
-		karta += pay
-		smenaSalon = 0
-		nopaysalon = 1
-		'<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your work in a beauty salon.</font></b>'
-	end
-
-	if tanwork = 1 and nopaytanwork = 0:
-		nopaytanwork = 1
-		karta += 10000
-		'<b><font color="green">Your salary of 10,000 <b>₽</b> has been paid into your bank account for your work as a house maid.</font></b>'
-	end
-
-	if workSec = 1 and paydaySec = 0:
-		paydaySec = 1
-		pay = sekDay * 1500
-
-		karta += pay
-		sekDay = 0
-		'<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your job as a secretary.</font></b>'
-	end
-
-	if workFabrika = 1:
-		pay = smenaFabrika * 600
-		smenaFabrika = 0
-		karta += pay
-		'<b><font color="green">Your salary of <<pay>> <b>₽</b> has been paid into your bank account for your job at the garment factory.</font></b>'
-	end
-
-	if husband > 0 and paydayHusb = 0:
-		paydayHusb = 1
-
-		if husbFin = 0:huspay = 20000
-		if husbFin = 1:huspay = 30000
-		if husbFin = 2:huspay = 40000
-
-		karta += huspay
-		'<b><font color="green">Your husband has paid <<huspay>> <b>₽</b> into your bank account.</font></b>'
-	end
-
-	if func('uniutil', 'scholarship' , 'is_active') and scholarshipday = 0:
-		scholarshipday = 1
-		karta += func('uniutil', 'scholarship', 'get')
-		'<b><font color="green">You have received '+func('uniutil', 'scholarship', 'get')+' <b>₽</b> from your scholarship.</font></b>'
-	end
 
-	! Utilities for all apartments.
-	if (home_owned[1] = 1 or home_owned[1] = 2 or home_owned[4] > 0 or home_owned[5] = 2) and electroday = 0:
-		gs 'housing', 'util'
-		if bankAccount = 1 and karta >= elektro:
-			'<b><font color="green"><<elektro>> <b>₽</b> for utilities, has been automatically deducted from your bank account.</font></b>'
-			electroday = 1
-			if elektro >= 2000:
-				elektro = 2000 + rand(0, 100)
-				karta -= elektro * hcount_util
-			end
-		elseif bankAccount = 1 and karta + bankDebtLimit >= elektro:
-			'<b><font color="green"><<elektro>> <b>₽</b> for utilities, has been automatically deducted from your bank account and overdraw facility. Please contact your bank.</font></b>'
-			electroday = 1
-			if elektro >= 2000:
-				elektro = 2000 + rand(0, 100)
-				karta -= elektro * hcount_util
-			end
-		elseif bankAccount = 0 and money >= elektro:
-			'<b><font color="red">You currently do not have a bank account setup for automatic utilities payments. <<elektro>> <b>₽</b> has been deducted from your cash holdings.</font></b>'
-			electroday = 1
-			if elektro >= 2000:
-				elektro = 2000 + rand(0, 100)
-				money -= elektro * hcount_util
-			end
-		else
-			'<b><font color="red">Your card was declined during automatic debit of <<elektro>> <b>₽</b>, for automatic utilities payment.</font></b>'
-		end
-	end
-
-	! Cable for all apartments
-	if kabel > 0 and kabelday = 0:
-		gs 'housing', 'cable'
-		if bankAccount = 1 and karta >= (300 * hcount_cable):
-			'<b><font color="green">300 <b>₽</b> has been deducted from your bank account, for you cable TV subscription.</font></b>'
-			kabelday = 1
-			karta -= 300 * hcount_cable
-		elseif bankAccount = 1 and karta + bankDebtLimit >= (300 * hcount_cable):
-			'<b><font color="green">300 <b>₽</b> has been deducted from your bank account and overdraw facility, for you cable TV subscription.</font></b>'
-			kabelday = 1
-			karta -= 300 * hcount_cable
-		elseif bankAccount = 0 and money >= (300 * hcount_cable):
-			'<b><font color="red">You currently do not have a bank account setup for automatic payment of your cable TV subscription. 300 <b>₽</b> has been deducted from your cash holdings.</font></b>'
-			kabelday = 1
-			money -= 300 * hcount_cable
-		else
-			'<b><font color="red">Your card was declined during automatic debit of 300 <b>₽</b> for cable TV subscription.</font></b>'
-		end
-	end
-end
-
-if day ! 25:
-	if paydayHusb = 1:paydayHusb = 0
-	if workKafe['job'] = 1 and paydayKafe = 1:paydayKafe = 0
-	if workSec = 1 and paydaySec = 1:paydaySec = 0
-	if (home_owned[1] = 1 or home_owned[4] > 0) and haday = 1:haday = 0
-	if (home_owned[1] > 0 or home_owned[4] > 0 or home_owned[5] = 2) and electroday = 1:electroday = 0
-	if (home_owned[1] > 0 or home_owned[4] > 0 or home_owned[5] = 3) and kabel > 0 and kabelday = 1:kabelday = 0
-	if scholarshipday = 1:scholarshipday = 0
-	if nopaytanwork = 1:nopaytanwork = 0
-	if nopaypoly = 1:nopaypoly = 0
-	if nopaysalon = 1:nopaysalon = 0
-	if paydaybistrosec = 1:paydaybistrosec = 0
-end
-
-if sdaday = day and sdamonth = month and home_owned[1] = 3:
-	home_owned[1] = 2
-	'<b><font color="red">Your tenants have moved out and your apartment is now vacant.</font></b>'
-	!msg 'Your tenants have moved out and your apartment is now vacant.'
-end
-
-!!----------------------------------------
-!! Rent
-!!----------------------------------------
-
-if home_owned[1] = 1 or home_owned[4] > 0:
-	gs 'housing', 'rent'
-	! Rent for the city apartment
-	if home_owned[1] = 1:
-		if ArendHouseSL <= 2:
-			!From bank
-			if bankAccount = 1 and karta >= home_rent[1]:
-				'<b><font color="green">Your rent payment of <<home_rent[1]>> <b>₽</b> for your city apartment, has automatically been deducted from your bank account.</font></b>'
-				karta -= home_rent[1]
-				ArendHouseSL += ArendHouseSL_due
-			elseif bankAccount = 1 and karta + bankDebtLimit >= home_rent[1]:
-				'<b><font color="green">Your rent payment of <<home_rent[1]>> <b>₽</b> for your city apartment, has automatically been deducted from your bank account and overdraw facility. Please contact your bank regarding your overdraw repayment.</font></b>'
-				karta -= home_rent[1]
-				ArendHouseSL += ArendHouseSL_due
-			elseif bankAccount = 0:
-				'<b><font color="red">You currently do not have a bank account setup for automatic rent deduction of <<home_rent[1]>> <b>₽</b> for your city apartment. To avoid eviction, please make manual payment as soon as possible.</font></b>'
-			else
-				nl
-				'<b><b><font color="red">Your card was declined during automatic rent deduction of <<home_rent[1]>> <b>₽</b> for your city apartment. To avoid eviction, please rectify as soon as possible.</font></b>'
-			end
-		end
-	end
-
-	! Rent for the Pushkin apartment
-	if home_owned[4] > 0:
-		if ArendHouseSL4 <= 2:
-			!From bank
-			if bankAccount = 1 and karta >= home_rent[4]:
-				'<b><font color="green">Your rent payment of <<home_rent[4]>> <b>₽</b> for your Pushkin apartment, has automatically been deducted from your bank account.</font></b>'
-				karta -= home_rent[4]
-				ArendHouseSL4 += ArendHouseSL_due
-			elseif bankAccount = 1 and karta + bankDebtLimit >= home_rent[4]:
-				'<b><font color="green">Your rent payment of <<home_rent[4]>> <b>₽</b> for your Pushkin apartment, has automatically been deducted from your bank account and overdraw facility. Please contact your bank regarding your overdraw repayment.</font></b>'
-				karta -= home_rent[4]
-				ArendHouseSL4 += ArendHouseSL_due
-			elseif bankAccount = 0:
-				'<b><font color="red">You currently do not have a bank account setup for automatic rent deduction of <<home_rent[4]>> <b>₽</b> for your Pushkin apartment. To avoid eviction, please make manual payment as soon as possible.</font></b>'
-			else
-				nl
-				'<b><b><font color="red">Your card was declined during automatic rent deduction of <<home_rent[4]>> <b>₽</b> for your Pushkin apartment. To avoid eviction, please rectify as soon as possible.</font></b>'
-			end
-		end
-	end
-end
-
-if home_owned[1] = 1 and ArendHouseSL <= 0: ArendHouseSL = 0 & home_owned[1] = 0
-if home_owned[4] > 0 and ArendHouseSL4 <= 0: ArendHouseSL4 = 0 & home_owned[4] = 0
-
-if home_owned[1] = 1: ArendHouseSL -= 1
-if home_owned[4] > 0: ArendHouseSL4 -= 1
-
-!!------------------------------------------------------------------------------------------------------------
+gs 'bank', 'cikl'
 
 killvar 'holyday'
 killvar 'kanikuli'
@@ -1252,153 +993,7 @@ elseif mentats_dose > 1:
 end
 
 
-
-!! vovan, from 1.2.5
-hunters_check = 0
-mushroom_pickers = 0
-mira_go_river = 0
-forestpicnic = 0
-if Mira_no > 0: Mira_no -= 1
-if Mira_no < 0: Mira_no = 0
-
-!! new grandparent chore stuff, for 0.8.0
-if gadstay = 1 and lost_girl = 0:
-	if daystart > (grandmaQW['last_day_helped'] + 3) and daystart > (grandpaQW['last_day_helped'] + 3):
-		if (daystart - grandmaQW['last_day_helped']) <= (daystart - grandpaQW['last_day_helped']):
-			'You haven''t helped your grandparents with any chores in <<daystart - grandmaQW[''last_day_helped'']>> days. You should help out more regularly to stay on your grandparents'' good side.'
-		else
-			'You haven''t helped your grandparents with any chores in <<daystart - grandpaQW[''last_day_helped'']>> days. You should help out more regularly to stay on your grandparents'' good side.'
-		end
-		grandmaQW['help_amount'] -= 1
-	end
-end
-
-!! disappointing grandma
-if grandmaQW['chore_clean_floor'] = 1 or grandmaQW['chore_clean_floor'] = 2:
-	grandmaQW['chore_clean_floor'] = 0
-	grandmaQW['disappointment'] = 1
-elseif grandmaQW['chore_wash_clothes'] = 1 or grandmaQW['chore_wash_clothes'] = 2:
-	grandmaQW['chore_wash_clothes'] = 0
-	grandmaQW['disappointment'] = 1
-elseif grandmaQW['chore_milk_cow'] = 1 or grandmaQW['chore_milk_cow'] = 2:
-	grandmaQW['chore_milk_cow'] = 0
-	grandmaQW['disappointment'] = 1
-elseif grandmaQW['chore_groceries'] = 1 or grandmaQW['chore_groceries'] = 2:
-	grandmaQW['chore_groceries'] = 0
-	grandmaQW['disappointment'] = 1
-elseif grandmaQW['chore_can_mushrooms'] = 1 or grandmaQW['chore_can_mushrooms'] = 2:
-	grandmaQW['chore_can_mushrooms'] = 0
-	grandmaQW['disappointment'] = 1
-elseif grandmaQW['chore_can_berries'] = 1 or grandmaQW['chore_can_berries'] = 2:
-	grandmaQW['chore_can_berries'] = 0
-	grandmaQW['disappointment'] = 1
-elseif grandmaQW['chore_can_veggies'] = 1 or grandmaQW['chore_can_veggies'] = 2:
-	grandmaQW['chore_can_veggies'] = 0
-	grandmaQW['disappointment'] = 1
-elseif grandmaQW['chore_feed_chickens'] = 1 or grandmaQW['chore_feed_chickens'] = 2:
-	grandmaQW['chore_feed_chickens'] = 0
-	grandmaQW['disappointment'] = 1
-elseif grandmaQW['chore_work_in_garden'] = 1 or grandmaQW['chore_work_in_garden'] = 2:
-	grandmaQW['chore_work_in_garden'] = 0
-	grandmaQW['disappointment'] = 1
-elseif grandmaQW['chore_water_garden'] = 1 or grandmaQW['chore_water_garden'] = 2:
-	grandmaQW['chore_water_garden'] = 0
-	grandmaQW['disappointment'] = 1
-elseif grandmaQW['chore_collect_strawberries'] = 1 or grandmaQW['chore_collect_strawberries'] = 2:
-	grandmaQW['chore_collect_strawberries'] = 0
-	grandmaQW['disappointment'] = 1
-elseif grandmaQW['chore_collect_fruit'] = 1 or grandmaQW['chore_collect_fruit'] = 2:
-	grandmaQW['chore_collect_fruit'] = 0
-	grandmaQW['disappointment'] = 1
-elseif grandmaQW['chore_harvest_garden'] = 1 or grandmaQW['chore_harvest_garden'] = 2:
-	grandmaQW['chore_harvest_garden'] = 0
-	grandmaQW['disappointment'] = 1
-elseif grandmaQW['chore_gather_mushrooms'] = 1 or grandmaQW['chore_gather_mushrooms'] = 2:
-	grandmaQW['disappointment'] = 2
-elseif grandmaQW['chore_gather_mushrooms'] = 1 or grandmaQW['chore_gather_mushrooms'] = 2 and grandmaQW['disappointment'] = 2:
-	grandmaQW['chore_gather_mushrooms'] = 0
-	grandmaQW['chore_mushroom_quantity'] = 0
-	grandmaQW['disappointment'] = 1
-elseif grandmaQW['chore_gather_berries'] = 1 or grandmaQW['chore_gather_berries'] = 2:
-	grandmaQW['disappointment'] = 2
-elseif grandmaQW['chore_gather_berries'] = 1 or grandmaQW['chore_gather_berries'] = 2 and grandmaQW['disappointment'] = 2:
-	grandmaQW['chore_gather_berries'] = 0
-	grandmaQW['chore_berry_quantity'] = 0
-	grandmaQW['disappointment'] = 1
-elseif grandmaQW['chore_gather_both'] = 1 or grandmaQW['chore_gather_both'] = 2:
-	grandmaQW['disappointment'] = 2
-elseif grandmaQW['chore_gather_both'] = 1 or grandmaQW['chore_gather_both'] = 2 and grandmaQW['disappointment'] = 2:
-	grandmaQW['chore_gather_both'] = 0
-	grandmaQW['chore_mushroom_quantity'] = 0
-	grandmaQW['chore_berry_quantity'] = 0
-	grandmaQW['disappointment'] = 1
-end
-
-!! disappointing grandpa
-if grandpaQW['chore_fetch_firewood'] = 1 or grandpaQW['chore_fetch_firewood'] = 2:
-	grandpaQW['chore_fetch_firewood'] = 0
-	grandpaQW['disappointment'] = 1
-elseif grandpaQW['chore_feed_horse'] = 1 or grandpaQW['chore_feed_horse'] = 2:
-	grandpaQW['chore_feed_horse'] = 0
-	grandpaQW['disappointment'] = 1
-elseif grandpaQW['chore_feed_cow'] = 1 or grandpaQW['chore_feed_cow'] = 2:
-	grandpaQW['chore_feed_cow'] = 0
-	grandpaQW['disappointment'] = 1
-elseif grandpaQW['chore_clean_yard'] = 1 or grandpaQW['chore_clean_yard'] = 2:
-	grandpaQW['chore_clean_yard'] = 0
-	grandpaQW['disappointment'] = 1
-elseif grandpaQW['chore_feed_boar'] = 1 or grandpaQW['chore_feed_boar'] = 2:
-	grandpaQW['chore_feed_boar'] = 0
-	grandpaQW['disappointment'] = 1
-elseif grandpaQW['chore_bathe_horse'] = 1 or grandpaQW['chore_bathe_horse'] = 2:
-	grandpaQW['chore_bathe_horse'] = 0
-	grandpaQW['chore_bathe_horse_prog'] = 0
-	grandpaQW['disappointment'] = 1
-elseif grandpaQW['chore_brush_horse'] = 1 or grandpaQW['chore_brush_horse'] = 2:
-	grandpaQW['chore_brush_horse'] = 0
-	grandpaQW['disappointment'] = 1
-elseif grandpaQW['chore_lead_horse_to_field'] = 1 or grandpaQW['chore_lead_horse_to_field'] = 2:
-	grandpaQW['chore_lead_horse_to_field'] = 0
-	grandpaQW['disappointment'] = 1
-elseif grandpaQW['chore_herd_cattle'] = 1 or grandpaQW['chore_herd_cattle'] = 2:
-	grandpaQW['chore_herd_cattle'] = 0
-	grandpaQW['disappointment'] = 1
-elseif grandpaQW['chore_lead_cow_to_field'] = 1 or grandpaQW['chore_lead_cow_to_field'] = 2:
-	grandpaQW['chore_lead_cow_to_field'] = 0
-	grandpaQW['disappointment'] = 1
-elseif grandpaQW['chore_gather_mushrooms'] = 1 or grandpaQW['chore_gather_mushrooms'] = 2:
-	grandpaQW['disappointment'] = 2
-elseif grandpaQW['chore_gather_mushrooms'] = 1 or grandpaQW['chore_gather_mushrooms'] = 2 and grandpaQW['disappointment'] = 2:
-	grandpaQW['chore_gather_mushrooms'] = 0
-	grandpaQW['chore_mushroom_quantity'] = 0
-	grandpaQW['disappointment'] = 1
-elseif grandpaQW['chore_gather_berries'] = 1 or grandpaQW['chore_gather_berries'] = 2:
-	grandpaQW['disappointment'] = 2
-elseif grandpaQW['chore_gather_berries'] = 1 or grandpaQW['chore_gather_berries'] = 2 and grandpaQW['disappointment'] = 2:
-	grandpaQW['chore_gather_berries'] = 0
-	grandpaQW['chore_berry_quantity'] = 0
-	grandpaQW['disappointment'] = 1
-elseif grandpaQW['chore_gather_both'] = 1 or grandpaQW['chore_gather_both'] = 2:
-	grandpaQW['disappointment'] = 2
-elseif grandpaQW['chore_gather_both'] = 1 or grandpaQW['chore_gather_both'] = 2 and grandpaQW['disappointment'] = 2:
-	grandpaQW['chore_gather_both'] = 0
-	grandpaQW['chore_mushroom_quantity'] = 0
-	grandpaQW['chore_berry_quantity'] = 0
-	grandpaQW['disappointment'] = 1
-elseif grandpaQW['chore_bale_hay'] = 1 or grandpaQW['chore_bale_hay'] = 2:
-	grandpaQW['chore_bale_hay'] = 0
-	grandpaQW['disappointment'] = 1
-end
-
-!! grandparents use root cellar
-if boletus_stored > 0: boletus_stored -= rand(0,1)
-if bilberry_stored > 0: bilberry_stored -= rand(0,1)
-if boletus_stored < 0: boletus_stored = 0
-if bilberry_stored < 0: bilberry_stored = 0
-!! end of new grandparent chore stuff, for 0.8.0
-
-if catout ! 0: catout = 0
-if feedcat ! 0: feedcat = 0
+gs 'gaddvor','cikl'
 
 loc_count = ARRSIZE('$CloLosLoc')
 i = loc_count - 1

+ 7 - 2
locations/city_center.qsrc

@@ -1,4 +1,5 @@
 # city_center
+! 14-09-22 Added Metro link to navigation line 130
 
 $loc_arg = $ARGS[0]
 $loc = 'city_center'
@@ -125,8 +126,12 @@ end
 
 if car > 0 and cardrive = 2:'In the parking stands your <a href="exec:GS ''carF'', ''start''"><<$car>></a>.'
 
-act 'Walk to the central park (0:35)': minut += 35 & gt 'city_park', 'start'
-act 'Walk to the train station (0:05)': minut += 5 & gt 'city_train', 'start'
+act 'Walk to the central park (035)': minut += 35 & gt 'city_park', 'start'
+act 'Walk to the train station (005)': minut += 5 & gt 'city_train', 'start'
+if hour = 4 and hour = 23:
+	act 'Walk to the Metro':  minut += 5 & gt 'metro', 'start'
+end
+
 
 act 'Wait':gs 'obj_din', 'wait'
 

+ 69 - 44
locations/city_clinic.qsrc

@@ -201,59 +201,84 @@ if $ARGS[0] = 'start':
 
 	if katjob > 0:act 'Visit the chief doctor': gt 'city_clinic', 'glavdoc'
 
-	if pcs_teeth > -1:
+	if (pcs_teeth > -1 and dentistday + 90 < daystart) or (pcs_missing_teeth > 0  and pcs_brace = 0):
 		act 'Go to the dentist':
 			*clr & cla
 			menu_off = 1
-			zubpay = pcs_teeth * 30000
+			minut += 15
 			gs 'stat'
-			if pcs_teeth = 0:
-				zubpay = 30000
-				'The dentist examines you and says, it will cost you <<zubpay>> <b>₽</b> to straighten and polish your teeth.'
-			elseif pcs_teeth = 1:
-				'The dentist examines you and says, it will cost you <<zubpay>> <b>₽</b> to replace your tooth'
+			
+			if pcs_brace = 1:
+				pcs_brace = 0
+				pcs_teeth -= 1
+				dentistday = daystart
+				'The dentist spends 15 minutes to take of you brace and clean up. You look at the mirror afterward and you teeth are '+iif(pcs_teeth = 0, 'now straight', 'straighter, but can still use some more work.')
+				gs 'AppearanceSystem', 'UpdateBaseAppearnce'
+				gs 'stat'
 			else
-				'The dentist examines you and says, it will cost you <<zubpay>> <b>₽</b> to fill the gaps'
-			end
+				if pcs_missing_teeth = 1:
+					zubpay = 3000
+					'The dentist examines you and says, it will cost you <<3000>> <b>₽</b> to replace your tooth'
+				elseif pcs_missing_teeth > 1:
+					zubpay = pcs_missing_teeth * 30000
+					'The dentist examines you and says, it will cost you <<pcs_missing_teeth * 30000>> <b>₽</b> to fill the gaps'
+				elseif pcs_teeth = 0:
+					zubpay = 3000
+					'The dentist examines you and says, it will cost you <<3000>> <b>₽</b> to brighten and polish your teeth.'
+				elseif pcs_teeth > 0:
+					zubpay = 45000
+					'The dentist examinees you and says, it will cost you <<4500>><b>₽</b> to straighten your teeth and you will have to wear a brace for three months and he can''t promise they will be completely straight after one treatment.'
+				end
 
-			if money < zubpay and karta < zubpay:
-				*nl
-				'You do not have enough money to fix your teeth.'
-			else
-				if money >= zubpay:
-					act 'Sort out your teeth (cash)':
-						*clr & cla
-						money -= zubpay
-						minut += 60
-						gs 'AppearanceSystem', 'UpdateBaseAppearnce'
-						gs 'stat'
-						if pcs_teeth > 0:
-							pcs_teeth = 0
-							'You pay the dentist to fix your teeth, within an hour he has restored your winning smile.'
-						else
-							pcs_teeth = -1
-							'You pay the dentist to straighten and polish your teeth, an hour later your smile is much brighter and more attractive.'
-						end
+				if money < zubpay and karta < zubpay:
+					*nl
+					'You do not have enough money to fix your teeth.'
+				else
+					if money >= zubpay:
+						act 'Sort out your teeth (cash)':
+							*clr & cla
+							money -= zubpay
+							minut += 60
+							if pcs_missing_teeth > 0:
+								pcs_missing_teeth = 0
+								'You pay the dentist to fix your teeth, within an hour he has restored your winning smile.'
+							elseif pcs_teeth > 0:
+								dentistday = daystart
+								pcs_brace = 1
+								'You pay the dentist to straighten your teeth. After and hour of work he have attached a brace to teeth and tells you to comeback it three months to have it taken of.'
+							else
+								dentistday = daystart
+								pcs_teeth = -1
+								'You pay the dentist to brighten and polish your teeth, an hour later your smile is much brighter and more attractive.'
+							end
+							gs 'AppearanceSystem', 'UpdateBaseAppearnce'
+							gs 'stat'
 
-						act 'Leave the clinic': minut += 5 & gt 'city_residential'
-					end
-				end
-				if karta >= zubpay:
-					act 'Sort out your teeth (card)':
-						*clr & cla
-						karta -= zubpay
-						minut += 60
-						gs 'AppearanceSystem', 'UpdateBaseAppearnce'
-						gs 'stat'
-						if pcs_teeth > 0:
-							pcs_teeth = 0
-							'You pay the dentist to fix your teeth, within an hour he has restored your winning smile.'
-						else
-							pcs_teeth = -1
-							'You pay the dentist to straighten and polish your teeth, an hour later your smile is much brighter and more attractive.'
+							act 'Leave the clinic': minut += 5 & gt 'city_residential'
 						end
+					end
+					if karta >= zubpay:
+						act 'Sort out your teeth (card)':
+							*clr & cla
+							money -= zubpay
+							minut += 60
+							if pcs_missing_teeth > 0:
+								pcs_missing_teeth = 0
+								'You pay the dentist to fix your teeth, within an hour he has restored your winning smile.'
+							elseif pcs_teeth > 0:
+								dentistday = daystart
+								pcs_brace = 1
+								'You pay the dentist to straighten your teeth. After and hour of work he have attached a brace to teeth and tells you to comeback it three months to have it taken of.'
+							else
+								pcs_teeth = -1
+								dentistday = daystart
+								'You pay the dentist to brighten and polish your teeth, an hour later your smile is much brighter and more attractive.'
+							end
+							gs 'AppearanceSystem', 'UpdateBaseAppearnce'
+							gs 'stat'
 
-						act 'Leave the clinic': minut += 5 & gt 'city_residential'
+							act 'Leave the clinic': minut += 5 & gt 'city_residential'
+						end
 					end
 				end
 			end

+ 1 - 3
locations/city_drugden.qsrc

@@ -423,10 +423,8 @@ if $ARGS[0] = 'drugslut':
 				act 'Suck his cock':
 					*clr & cla
 					guy += 1
-					swallow += 1
 					NarkShmaraTimes += 1
-					spafinloc = 12
-					gs 'cum_manage'
+					gs 'cum_call', 'mouth_swallow', $boy, 1
 					gs 'dinSex', 'std_trigger'
 					'<center><img <<$set_imgh>> src="images/characters/city/bobka/sex/bj.jpg"></center>'
 					'You need the drugs so badly, you drop to your knees automatically and quickly pull his pants down without even thinking of rejecting him. His cock is still flaccid but you close your lips around it anyway, doing the best you can to arouse him. You slowly feel his cock grow inside your mouth and suck him off obediently, until you feel several warm jets of sperm land on the back of your throat.'

+ 5 - 0
locations/city_industrial.qsrc

@@ -1,5 +1,7 @@
 # city_industrial
 !!2021/04/23
+! 14-09-22 Added Metro link to navigation line 49
+
 if $ARGS[0] = '':
 	$loc_arg = ''
 	$loc = 'city_industrial'
@@ -46,6 +48,9 @@ if $ARGS[0] = '':
 	act 'Walk to the Red Light District (0:05)': minut += 5 & gt 'city_redlight', 'start'
 	act 'Walk to the central park (1:00)': minut += 60 & gt 'city_park', 'start'
 	act 'Walk to the industrial train station (0:15)': minut += 15 & gt 'city_industrial_train', 'outside'
+	if hour >= 4 and hour <= 23:
+		act 'Walk to the Metro': minut += 5 & gt 'metro', 'start'
+	end
 
 	act 'Wait':gs 'obj_din', 'wait'
 

+ 5 - 0
locations/city_island.qsrc

@@ -1,5 +1,7 @@
 # city_island
 
+! 14-09-22 Added Metro link to navigation line 49
+
 $loc_arg = ''
 $loc = 'city_island'
 $region = 'city_island'
@@ -46,6 +48,9 @@ if home_owned[11] = 1:act '<b>GO HOME</b> (University dorm)':gt 'uni_dorm', 'sta
 
 if car > 0 and cardrive = 25:'In the parking stands your <a href="exec:GS ''carF'', ''start''"><<$car>></a>.'
 
+if hour >= 4 and hour <= 23:
+	act 'Walk to the Metro': gt 'metro', 'start'
+end
 
 act 'Wait':gs 'obj_din', 'wait'
 

+ 1 - 4
locations/city_kafe2.qsrc

@@ -133,11 +133,8 @@ if $ARGS[0] = 'givi':
 						act 'Continue to suck.':
 							cla
 							*clr
-							swallow += 1
 							gs 'boyStat', 'A41'
-							sexpartkno = 1
-							spafinloc = 12
-							gs 'cum_manage'
+							gs 'cum_call', 'mouth_swallow', $boy, 1
 							gs 'stat'
 							'<center><img <<$set_imgh>> src="images/shared/sex/cum/mouth/cum31.jpg"></center>'
 							'A hot jet of sperm hits the back of your throat. You start to swallow cum, and Givi continues to cum in your mouth. Finally the flow of hot, pungent liquid stops.'

+ 3 - 12
locations/city_kafeevents3.qsrc

@@ -48,12 +48,9 @@ if $ARGS[0] = 'house':
 					gs 'stat'
 					gs 'dinSex', 'std_trigger_oral'
 					'Finally, the guy fills your mouth with his hot sperm you have nowhere to go so you swallow it. The taxi stopped and <<$boydesc>> you puts you out on the street.'
-					swallow += 1
-					sexpartkno = 1
-					spafinloc = 12
+					gs 'cum_call', 'mouth_swallow', $boy, 1
 					gs 'arousal', 'end'
 					gs 'stat'
-					gs 'cum_manage'
 
 					act 'Leave':gt 'city_residential'
 				end
@@ -198,10 +195,7 @@ if $ARGS[0] = '0':
 				'You feel like a hot jet of sperm hits you in the throat. You have a mouth full of sperm.'
 				act 'Swallow':
 					cla
-					swallow += 1
-					sexpartkno = 1
-					spafinloc = 12
-					gs 'cum_manage'
+					gs 'cum_call', 'mouth_swallow', $boy, 1
 					gs 'arousal', 'end'
 					gs 'stat'
 					'<<$boydesc>> looks at you as you swallow his sperm.'
@@ -332,10 +326,7 @@ if $ARGS[0] = 'toilet':
 			'You feel like a hot jet of sperm hits you in the throat. You have a mouth full of sperm.'
 			act 'Swallow':
 				cla
-				swallow += 1
-				sexpartkno = 1
-				spafinloc = 12
-				gs 'cum_manage'
+				gs 'cum_call', 'mouth_swallow', $boy, 1
 				'<<$boydesc>> looks at you as you swallow his sperm.'
 				gs 'arousal', 'end'
 				gs 'stat'

+ 6 - 16
locations/city_marketsex.qsrc

@@ -103,14 +103,12 @@ if $ARGS[0] = 'the_beginning':
 						if hasansex = 0:hasansex = 1 & guy += 1
 						
 						pcs_vag += 1
-						swallow +=1
 						gang += 1
 						gs 'boyStat', 'A91'
 						spafinloc = 4
 						gs 'cum_manage'
 						gs 'boyStat', 'A92'
-						spafinloc = 12
-						gs 'cum_manage'
+						gs 'cum_call', 'mouth_swallow', $boy, 1
 						
 						money += 5000
 						'<center><img <<$set_imgh>> src="images/shared/sex/group/rinkrug.jpg"></center>'
@@ -142,9 +140,7 @@ if $ARGS[0] = 'the_beginning':
 			if palevorin = 0:palevorin = 1 & guy += 1
 
 			gs 'boyStat', 'A73'
-			swallow +=1
-			spafinloc = 12
-			gs 'cum_manage'
+			gs 'cum_call', 'mouth_swallow', $boy, 1
 			'<center><img <<$set_imgh>> src="images/shared/sex/blowjob/deep4.jpg"></center>'
 			'You kneel down in front of Arthur as he takes his <<dick>>cm <<$dick_girth>> cock out. You take it into your mouth and start sucking it, Arthur letting you guide the action and do all the work, only occasionally thrusting himself down your throat and making you gag.'
 
@@ -194,13 +190,10 @@ if $ARGS[0] = 'the_beginning':
 						if hasansex = 0:hasansex = 1 & guy += 1
 
 						gang += 1
-						swallow +=1
 						gs 'boyStat', 'A91'
-						spafinloc = 12
-						gs 'cum_manage'
+						gs 'cum_call', 'mouth_swallow', $boy, 1
 						gs 'boyStat', 'A92'
-						spafinloc = 12
-						gs 'cum_manage'
+						gs 'cum_call', 'mouth_swallow', $boy, 1
 						money += 5000
 						'<center><img <<$set_imgh>> src="images/shared/sex/blowjob/rintri.jpg"></center>'
 						'You nod your head and the two men immediately walk over and pull their dicks out. You start sucking them in turn, but they sometimes force you to suck both at the same time.'
@@ -241,14 +234,11 @@ if $ARGS[0] = 'group':
 		'<center><img <<$set_imgh>> src="images/shared/sex/group/triplep.jpg"></center>'
 		'Satisfied with this, Abdul stops and lies down on a couch, pulling you over with him. You straddle him and feel his <<dick>>cm <<$dick_girth>> dick slide inside your pussy as Arthur stands to the side and pulls your head towards him.'
 		
-		swallow +=1
 		gang += 1
 		anal += 1
-		spafinloc = 12
-		gs 'cum_manage'
+		gs 'cum_call', 'mouth_swallow', $boy, 1
 		gs 'boyStat', 'A73'
-		spafinloc = 12
-		gs 'cum_manage'
+		gs 'cum_call', 'mouth_swallow', $boy, 1
 		spafinloc = 11
 		gs 'cum_manage'
 		'You open your mouth and start sucking his <<dick>>cm <<$dick_girth>> dick while Hassan kneels down behind you and you feel the tip of his cock rubbing against your asshole. You groan in pain as he forces his dick into your ass.'

+ 2 - 7
locations/city_nightclub.qsrc

@@ -416,11 +416,8 @@ if $ARGS[0] = 'dance':
 								*clr & cla
 								pcs_horny += 10
 								minut += 10
-								swallow += 1
 								gs 'boystat', 'A81'
-								sexpartkno = 1
-								spafinloc = 12
-								gs 'cum_manage'
+								gs 'cum_call', 'mouth_swallow', $boy, 1
 								gs 'stat'
 								'<center><img <<$set_imgh>> src="images/shared/sex/cum/mouth/cum<<rand(34, 47)>>.jpg"></center>'
 								'Streams of sperm hit you in the mouth and began to run down your <<$pc_desc[''lips'']>> lips. Alexei wiped his dick on your <<$pc_desc[''lips'']>> lips and put it away in his pants.'
@@ -837,9 +834,7 @@ if $ARGS[0] = 'sex':
 		act 'Swallow his cum':
 			cla
 			*clr
-			swallow += 1
-			spafinloc = 12
-			gs 'cum_manage'
+			gs 'cum_call', 'mouth_swallow', $boy
 			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/nightclub/sex/clubswallow.jpg"></center>'
 			'The guy came in your mouth, you can feel his hot and salty semen pouring into it. Without hesitation you swallow it, you can''t tell why, but somehow you start to enjoy the taste of fresh, warm sperm.'
 

+ 1 - 3
locations/city_park.qsrc

@@ -605,9 +605,7 @@ if $ARGS[0] = 'prost':
 				gs 'npcgeneratec', 0, 'Client', rand(15,30)
 				gs 'boyStat', $npclastgenerated
 				if prezik = 0:
-					swallow += 1
-					spafinloc = 12
-					gs 'cum_manage'
+					gs 'cum_call', 'mouth_swallow', $boy
 					'Client started cumming in your mouth, you continued to suck and swallow his hot, tart sperm.'
 					gs 'dinSex', 'std_trigger_oral'
 				elseif prezik > 0:

+ 3 - 2
locations/city_pharmacy.qsrc

@@ -55,8 +55,9 @@ if $ARGS[0] = 'shop' or $ARGS[0] = '':
 	if preziktype = 1 or preziktype = 2: *P func ('$stock_item', 5, 'Condoms', 500, 'prezikcount', $curloc, $ARGS[0])
 	*P func ('$stock_item', 1, 'Pregnancy test', 530, 'pregtest', $curloc, $ARGS[0])
 	if therapistFuckedPussyStage < 2:
-		*P func ('$stock_item', 1, 'Birth control pills', 1870, 'tabletki', $curloc, $ARGS[0])
-	end
+	  *P func ('$stock_item', 1, 'Birth control pills', 1870, 'tabletki', $curloc, $ARGS[0])
+    end
+    *P func ('$stock_item', 1, 'Morning after pill', 740, 'morning_after_pill',  $curloc, $ARGS[0])
 	*P func ('$stock_item', 10, 'Antibiotics', 580, 'lekarstvo', $curloc, $ARGS[0])
 	*P func ('$stock_item', 30, 'Vitamins', 130, 'vitamin', $curloc, $ARGS[0])
 	*P func ('$stock_item', 50, 'Painkillers', 435, 'painkiller', $curloc, $ARGS[0])

+ 5 - 0
locations/city_residential.qsrc

@@ -1,5 +1,7 @@
 # city_residential
 
+! 14-09-22 Added Metro link to navigation line 88
+
 music_loop = 0
 CLOSE ALL
 $loc_arg = ''
@@ -85,6 +87,9 @@ if home_owned[1] > 0:
 		gt 'korr'
 	end
 end
+if hour >= 4 and hour <= 23:
+	act 'Walk to the Metro': minut += 5 & gt 'metro', 'start'
+end
 
 act 'Walk to the central park (0:20)': minut += 20 & gt 'city_park', 'start'
 act 'Walk to the lake': minut += 40 & gt 'city_lake', 'start'

+ 4 - 0
locations/city_suburbs.qsrc

@@ -1,4 +1,5 @@
 # city_suburbs
+! 14-09-22 Added Metro link to navigation line 41
 
 $location_type = 'public_outdoors'
 
@@ -40,6 +41,9 @@ if $ARGS[0]='start':
 	act 'View the creepy old building': minut += 2 & gt 'city_suburbs', 'ps2'
 
 	act 'Walk to the main road':nroad = 1 & minut += 15 & gt 'road'
+	if hour >= 4 and hour <= 23:
+		act 'Walk to the Metro': minut += 5 & gt 'metro', 'start'
+	end
 
 	if AlexandriaQW = 6:
 		gs 'willpower', 'misc', 'self', 'easy'

+ 6 - 18
locations/dimaEv.qsrc

@@ -120,9 +120,7 @@ if $ARGS[0] = 'firstvisitsex':
 		if dimadalrand = 0:
 			act 'Further':
 				*clr & cla
-				spafinloc = 12
-				gs 'cum_manage'
-				swallow += 1
+				gs 'cum_call', 'mouth_swallow', $boy, 1
 				dimasexday = daystart
 				gs 'stat'
 				'<center><video autoplay loop src="images/characters/pavlovsk/school/boy/dimka/sex/bjcum.mp4"></video></center>'
@@ -149,9 +147,7 @@ if $ARGS[0] = 'firstvisitsex':
 		elseif dimadalrand = 2:
 			act 'Further':
 				*clr & cla
-				spafinloc = 12
-				gs 'cum_manage'
-				swallow += 1
+				gs 'cum_call', 'mouth_swallow', $boy, 1
 				if pcs_throat < 16: pcs_throat += 1
 				if pcs_makeup ! 1: pcs_makeup = 0
 				if maxdra = 2: maxdra = 3
@@ -404,9 +400,7 @@ if $ARGS[0] = 'dimkaabuse0':
 		'Your mouth is being held widely open by the ring and Dimka seems a little blurry due to your eyes watering. It tastes like the ring in your mouth was dipped in lemon juice and your saliva begins streaming from your mouth. Dimka takes a moment to admire you then he takes out his iron hard <<dick>>cm <<$dick_girth>> cock and shoves it into your mouth.'
 		act 'Further':
 			*clr & cla
-			spafinloc = 12
-			gs 'cum_manage'
-			swallow += 1
+			gs 'cum_call', 'mouth_swallow', $boy, 1
 			if pcs_makeup ! 1: pcs_makeup = 0
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/dimka/sex/gagbj.jpg"></center>'
 			'Dimka''s cock enters your mouth through the ring and drives it to the entrance to your throat. The ring prevents you from doing anything to stop him except to try to use your tongue to force him out. The actions of your tongue on his cock only seem to excite him further. You gag as the head of his dick presses up against the soft palate at the back of your mouth. Dimka pulls his cock back then with all his strength drives it deep into your throat. You choke and gag as drool flows from your mouth, mixing with your tears and snot on your face as you struggle to breath through your nose. Dimka fiercely drives his penis in your mouth, fucking your throat until it burns like fire. You almost faint from suffocation as you choke on the cock jammed deeply inside of you as it spews its slimy load down your throat. To your relief, Dimka''s cock begins to soften and he pulls it out of you. He then takes the gag out of your mouth and uncuffs your wrists.'
@@ -422,9 +416,7 @@ end
 if $ARGS[0] = 'dimkaabuse1':
 	*clr & cla
 	if maxdradrug = 1: maxdradrug = 2
-	spafinloc = 12
-	gs 'cum_manage'
-	swallow += 1
+	gs 'cum_call', 'mouth_swallow', $boy, 1
 	if pcs_makeup ! 1: pcs_makeup = 0
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/dimka/sex/ab.jpg"></center>'
 	'Dimka roughly pulls off your panties and puts them on your head. He inserts his penis into your mouth and begins to fuck you hard in the mouth. Your throat is burning with fire from the fact that his <<dick>>cm <<$dick_girth>> cock penetrates you nearly to the balls on every thrust. Dimka growls at you "A cocksucker''s mouth is her second pussy, and what should be done with a pussy? Fuck it hard, right to the uterus!" Dimka slaps you on the cheek with his hand "Take it in your mouth pussy!" The dick in your mouth starts to cum and fills your mouth with sperm, you swallow.'
@@ -560,9 +552,7 @@ end
 if $ARGS[0] = 'dimkaabuse9':
 	*clr & cla
 	bja += 1
-	spafinloc = 12
-	gs 'cum_manage'
-	swallow += 1
+	gs 'cum_call', 'mouth_swallow', $boy, 1
 	dimaFilm = 1
 	gs 'boyStat', 'A1'
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/dimka/sex/filming.jpg"></center>'
@@ -591,9 +581,7 @@ if $ARGS[0] = 'dimkaabuse10':
 		gs 'stat'
 		act 'Further':
 			*clr & cla
-			spafinloc = 12
-			gs 'cum_manage'
-			swallow += 1
+			gs 'cum_call', 'mouth_swallow', $boy, 1
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/dimka/sex/gagbj.jpg"></center>'
 			'Dimka slips his <<dick>>cm <<$dick_girth>> dick through the ring in your mouth and rams it down your throat. You''re choking a bit, Dimka then drives his dick as far down your throat as it will go. Drool flows from your mouth, tears from your eyes and snot from your nose. Dimka furiously drives his penis in your mouth, causing your throat to feel like it is burning.'
 			'Finally, he groans and with his cock balls deep in your mouth, he begins to cum in your throat. You almost faint from suffocation. Finally Dimka pulls his dick out of your mouth, then he takes the ring-gag out of your mouth and uncuff your hands.'

+ 1 - 4
locations/event.qsrc

@@ -64,9 +64,7 @@ if $ARGS[0] = 'blow':
 	gs 'stat'
 	act 'Continue sucking.':
 		cla
-		swallow += 1
-		spafinloc = 12
-		gs 'cum_manage'
+		gs 'cum_call', 'mouth_swallow', $boy, 1
 		'<center><img <<$set_imgh>> src="images/shared/sex/cum/mouth/cum30.jpg"></center>'
 		'A jet of hot sperm hits you in the mouth. You begin to swallow cum, and <<$loverdesc[lover_number]>> continues to cum in your mouth. Finally, the flow of hot pungent liquid stops.'
 
@@ -208,7 +206,6 @@ if $ARGS[0] = 'dima4':
 	cls
 	guy += 2
 	pcs_throat += 1
-	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/city/dmitry/sex/dima.jpg"></center>'
 	'They stand next to the bed, you kneel down and take Alexs dick in your mouth then Dimas. First you suck and lick the heads, then start swallowing right down the shaft.'
 	'Dima takes you by the chin, spits in your mouth and begins to slap his cock against your cheeks, then sitting on the bed, grabs you by the hair and begins to roughly fuck you in the mouth, periodically slaping your cheeks.'

+ 24 - 4
locations/fit.qsrc

@@ -187,13 +187,33 @@ if $ARGS[0] = 'dressing room':
 			end
 		elseif $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and pcs_stam >= 40 and pcs_energy >= 20:
 			act 'Go to team practice':gt 'beg', 'start'
-			if week = 6 and pcs_run >= 20 and run_comp_day ! daystart:
-				act '<b>Enter competition race</b>':run_comp_day = daystart & gt 'beg1', 'start'
+			if week = 6:
+				if pcs_run >= 20:
+					if run_comp_day ! daystart:
+						act '<b>Enter competition race</b>':run_comp_day = daystart & gt 'beg1', 'start'
+					else
+						*nl
+						'You have already run in a competition race today and cannot run another until next Saturday.'
+					end
+				else
+					*nl
+					'Your running skill is too low to enter a competition race.'
+				end
 			end
 		elseif $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and pcs_stam >= 40:
 			act 'Go to team practice': '<br><font color="red">You don''t have enough energy to use this action.</font>'
-			if week = 6 and pcs_run >= 20 and run_comp_day ! daystart:
-				act '<b>Enter competition race</b>': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+			if week = 6:
+				if pcs_run >= 20:
+					if run_comp_day ! daystart:
+						act '<b>Enter competition race</b>': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+					else
+						*nl
+						'You have already run in a competition race today and cannot run another until next Saturday.'
+					end
+				else
+					*nl
+					'Your running skill is too low to enter a competition race.'
+				end
 			end
 		end
 	end

+ 13 - 15
locations/furi.qsrc

@@ -98,7 +98,7 @@ act 'Try to get a lift':
 					'"Yeah I do," you grin. "Is there anything I can do to make it up to you? Anything I can... help with?" you ask, miming an inappropriate motion.'
 					'"There sure is. But with your mouth, not your hand," he says, climbing into the driver''s seat.'
 					'"Of course!" you smile, pulling yourself into the passenger''s seat beside him. "Why would I use anything else?"'
-					act 'Get into the truck': furisex = 100 & gt 'furisex'
+					act 'Get into the truck': gt 'furisex', 100
 				end
 			elseif furibj >= 50:
 				act'Another blowjob today?':
@@ -106,14 +106,14 @@ act 'Try to get a lift':
 					'<center><img <<$set_imgh>> src="images/locations/highway/furi.jpg"></center>'
 					'"Yup!" you say smiling and matter-of-fact-ly. "Care for another blowjob today?"'
 					'He flicks his cigarette away and climbs into the driver''s seat, you following into the passenger''s.'
-					act 'Get into the truck': furisex = 100 & gt 'furisex'
+					act 'Get into the truck': gt 'furisex', 100
 				end
 			else
 				act'Nod meekly':
 					cla & *clr
 					'<center><img <<$set_imgh>> src="images/locations/highway/furi.jpg"></center>'
 					'You nod meekly and his grin widens. Without saying anything, you step up to the passenger side and he flicks away his cigarette to climb into the driver''s seat.'
-					act 'Get into the truck': furisex = 100 & gt 'furisex'
+					act 'Get into the truck': gt 'furisex', 100
 				end
 			end
 		elseif furibj >= 150:
@@ -132,7 +132,7 @@ act 'Try to get a lift':
 			else
 				act'Change your mind (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 			end
-			act 'Get into the truck': furisex = 100 & gt 'furisex'
+			act 'Get into the truck': gt 'furisex', 100
 		elseif furibj >= 100:
 			'He continues to look at you for a moment longer before saying, "Maybe. Are you road head girl?"'
 			if furibj = 100:
@@ -155,7 +155,7 @@ act 'Try to get a lift':
 				else
 					act'Change your mind (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 				end
-				act 'Get into the truck': furisex = 100 & gt 'furisex'
+				act 'Get into the truck': gt 'furisex', 100
 			else
 				act'Uhh...':
 					cla & *clr
@@ -175,7 +175,7 @@ act 'Try to get a lift':
 					else
 						act'Change your mind (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 					end
-					act 'Get into the truck': furisex = 100 & gt 'furisex'
+					act 'Get into the truck': gt 'furisex', 100
 				end
 				act'That''s me!':
 					cla & *clr
@@ -195,7 +195,7 @@ act 'Try to get a lift':
 					else
 						act'Change your mind (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 					end
-					act 'Get into the truck': furisex = 100 & gt 'furisex'
+					act 'Get into the truck': gt 'furisex', 100
 				end
 			end
 		elseif furibj >= 50:
@@ -219,7 +219,7 @@ act 'Try to get a lift':
 				else
 					act'Change your mind (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 				end
-				act 'Get into the truck': furisex = 100 & gt 'furisex'
+				act 'Get into the truck': gt 'furisex', 100
 			end
 			act'That''s me!':
 				cla
@@ -240,7 +240,7 @@ act 'Try to get a lift':
 				else
 					act'Change your mind (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 				end
-				act 'Get into the truck': furisex = 100 & gt 'furisex'
+				act 'Get into the truck': gt 'furisex', 100
 			end			
 		else
 			'"I could... But that depends on how you''re going to return the favor. Actually, wait a minute, you don''t happen to be that girl who shows up by the road and sucks drivers off for a lift do you? We get a lot of girls who do that but not so many repeat customers and someone said she looked like you."'
@@ -262,7 +262,7 @@ act 'Try to get a lift':
 				else
 					act'Change your mind (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 				end
-				act 'Get into the truck': furisex = 100 & gt 'furisex'
+				act 'Get into the truck': gt 'furisex', 100
 			end
 			act'That''s me!':
 				cla
@@ -283,7 +283,7 @@ act 'Try to get a lift':
 				else
 					act'Change your mind (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 				end
-				act 'Get into the truck': furisex = 100 & gt 'furisex'
+				act 'Get into the truck': gt 'furisex', 100
 			end		
 		end
 	else
@@ -357,7 +357,7 @@ act 'Try to get a lift':
 					else
 						act'Change your mind and leave (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 					end
-					act 'Get into the truck':minut += 5 & furisex = 100 & gt 'furisex'
+					act 'Get into the truck':minut += 5 & gt 'furisex', 100
 				end
 			end
 
@@ -383,9 +383,7 @@ act 'Try to get a lift':
 					end
 					act 'Get into the truck':
 						minut += 5 
-						furisex = 0
-						prezik -= 1
-						gt 'furisex'
+						gt 'furisex', 0
 					end
 				end
 			end

+ 34 - 19
locations/furisex.qsrc

@@ -5,16 +5,20 @@ menu_off = 1
 minut += 5
 gs 'stat'
 
-if furisex = 0:
+if ARGS[0] = 0:
 	'The driver climbs into his seat and starts the engine. The two of you drive off, and chat casually for fifteen minutes.'
 	'Then, the driver spots another roadside parking lot and stops his truck.'
 
-	act 'Look at the driver':furisex = 1 & gt $curloc
-elseif furisex = 1:
+	act 'Look at the driver':gt 'furisex', 1
+end
+
+if ARGS[0] = 1:
 	'When you look at the driver questioningly, he has a greedy grin on his face. He says: "Now, it''s time for you to fulfill your part of the deal. Undress and go to my sleeping compartment, I want to look at your naked body while you blow me."'
 
-	act 'Do as he says':furisex = 2 & gt $curloc
-elseif furisex = 2:
+	act 'Do as he says':gt 'furisex', 2
+end
+
+if ARGS[0] = 2:
 	'You nod and take off your clothes. You squeeze past him into the sleeping compartment behind the chairs, and the driver follows you. When he takes off his pants, his cock jumps free. It''s not particularly large, but still a bit above average size.'
 	'When you reach out to touch it, he playfully slaps it away and says: "Put on the condom first, girl! I don''t take risks with slutty hitchhikers."'
 	if prezik > 0:
@@ -23,19 +27,25 @@ elseif furisex = 2:
 		'Your search through your pile of clothes becomes more and more frantic; you''d swear you had a condom with you! When you turn to the trucker to tell him you can''t find one, he wordlessly hands you one from his pocket before you can say anything.'
 	end
 	
-	act 'Put on the condom with your hands':furisex = 3 & gt $curloc
-	act 'Put on the condom with your mouth':furisex = 4 & gt $curloc
-elseif furisex = 3:
+	act 'Put on the condom with your hands':gt 'furisex', 3
+	act 'Put on the condom with your mouth':gt 'furisex', 4
+end
+
+if ARGS[0] = 3:
 	'<center><img <<$set_imgh>> src="images/locations/highway/sex/condomput.jpg"></center>'
 	'You quickly take the condom out of its wrapper and roll it down the man''s erection.'
 
-	act 'Suck his dick':furisex = 5 & gt $curloc
-elseif furisex = 4:
+	act 'Suck his dick':gt 'furisex', 5
+end
+
+if ARGS[0] = 4:
 	'<center><img <<$set_imgh>> src="images/locations/highway/sex/condomput2.jpg"></center>'
 	'You quickly take the condom out of its wrapper and place it between your lips. It takes you a while to put the condom on his penis using only your mouth, but eventually you manage. The truck driver laughs when he sees you struggle at first, but you can tell he''s impressed when you actually succeed.'
 
-	act 'Suck his dick':furisex = 5 & gt $curloc
-elseif furisex = 5:
+	act 'Suck his dick':gt 'furisex', 5
+end
+
+if ARGS[0] = 5:
 	guy += 1
 	furibj += 1
 	'<center><img <<$set_imgh>> src="images/locations/highway/sex/condombj.jpg"></center>'
@@ -45,8 +55,10 @@ elseif furisex = 5:
 	gs 'arousal', 'bj', 15, 'sub'
 	gs 'stat'
 
-	act 'Put your clothes back on':furisex = 6 & gt $curloc
-elseif furisex = 6:
+	act 'Put your clothes back on':gt 'furisex', 6
+end
+
+if ARGS[0] = 6:
 	'The truck driver ties a knot in the condom and flings it out the window without another thought, before he puts his clothes back on and takes place behind the wheel again.'
 	'He drives you to where you wanted to go, not talking much on the way there.'
 
@@ -57,7 +69,9 @@ elseif furisex = 6:
 	if nroad ! 0: act 'Have him drop you off in St. Petersburg': gt 'city_industrial'
 	if nroad ! 20: act 'Have him drop you off in Pavlovsk': gt 'pav_commercial'
 	if nroad ! 10: act 'Have him drop you off in Gadukino': gt 'gadukino'
-elseif furisex = 100:
+end
+
+if ARGS[0] = 100:
 	if furibj >= 5:
 		'The driver starts the engine and unzips his trousers. His semi-hard cock flops out and without further instruction you reach over and jerk him a few times to get him properly stiff.'
 		if (furibj / 10) >= furi_driver:
@@ -71,14 +85,15 @@ elseif furisex = 100:
 		else
 			'You''re an expert hitchhiker at this point and trading road head for rides is as natural to you as breathing. You know what you need to do'
 		end
-		act 'Blow him':furisex = 101 & gt $curloc
+		act 'Blow him':gt 'furisex', 101
 	else
 		'The driver climbs into his seat and starts the engine. The two of you drive off, and chat casually for a few minutes.'
 		'Then he nods at his groin, and says: "I believe you owe me something! I don''t have much time, so just do it while I''m driving. Oh, and take off your clothes. I want to look at your tits while you suck me off."'
-		act 'Do as he says':furisex = 101 & gt $curloc
+		act 'Do as he says':gt 'furisex', 101
 	end
-	
-elseif furisex = 101:
+end
+
+if ARGS[0] = 101:
 	gs 'npcgeneratec', 0, 'Truck Driver', rand(30,40)
 	gs 'boyStat', $npclastgenerated
 	guy += 1

+ 150 - 0
locations/gaddvor.qsrc

@@ -249,5 +249,155 @@ if $ARGS[0] = 'chickens':
 	end
 end
 
+if $ARGS[0] = 'cikl':
+	!! vovan, from 1.2.5
+	hunters_check = 0
+	mushroom_pickers = 0
+	mira_go_river = 0
+	forestpicnic = 0
+	if Mira_no > 0: Mira_no -= 1
+	if Mira_no < 0: Mira_no = 0
+
+	!! new grandparent chore stuff, for 0.8.0
+	if gadstay = 1 and lost_girl = 0:
+		if daystart > (grandmaQW['last_day_helped'] + 3) and daystart > (grandpaQW['last_day_helped'] + 3):
+			if (daystart - grandmaQW['last_day_helped']) <= (daystart - grandpaQW['last_day_helped']):
+				'You haven''t helped your grandparents with any chores in <<daystart - grandmaQW[''last_day_helped'']>> days. You should help out more regularly to stay on your grandparents'' good side.'
+			else
+				'You haven''t helped your grandparents with any chores in <<daystart - grandpaQW[''last_day_helped'']>> days. You should help out more regularly to stay on your grandparents'' good side.'
+			end
+			grandmaQW['help_amount'] -= 1
+		end
+	end
+
+	!! disappointing grandma
+	if grandmaQW['chore_clean_floor'] = 1 or grandmaQW['chore_clean_floor'] = 2:
+		grandmaQW['chore_clean_floor'] = 0
+		grandmaQW['disappointment'] = 1
+	elseif grandmaQW['chore_wash_clothes'] = 1 or grandmaQW['chore_wash_clothes'] = 2:
+		grandmaQW['chore_wash_clothes'] = 0
+		grandmaQW['disappointment'] = 1
+	elseif grandmaQW['chore_milk_cow'] = 1 or grandmaQW['chore_milk_cow'] = 2:
+		grandmaQW['chore_milk_cow'] = 0
+		grandmaQW['disappointment'] = 1
+	elseif grandmaQW['chore_groceries'] = 1 or grandmaQW['chore_groceries'] = 2:
+		grandmaQW['chore_groceries'] = 0
+		grandmaQW['disappointment'] = 1
+	elseif grandmaQW['chore_can_mushrooms'] = 1 or grandmaQW['chore_can_mushrooms'] = 2:
+		grandmaQW['chore_can_mushrooms'] = 0
+		grandmaQW['disappointment'] = 1
+	elseif grandmaQW['chore_can_berries'] = 1 or grandmaQW['chore_can_berries'] = 2:
+		grandmaQW['chore_can_berries'] = 0
+		grandmaQW['disappointment'] = 1
+	elseif grandmaQW['chore_can_veggies'] = 1 or grandmaQW['chore_can_veggies'] = 2:
+		grandmaQW['chore_can_veggies'] = 0
+		grandmaQW['disappointment'] = 1
+	elseif grandmaQW['chore_feed_chickens'] = 1 or grandmaQW['chore_feed_chickens'] = 2:
+		grandmaQW['chore_feed_chickens'] = 0
+		grandmaQW['disappointment'] = 1
+	elseif grandmaQW['chore_work_in_garden'] = 1 or grandmaQW['chore_work_in_garden'] = 2:
+		grandmaQW['chore_work_in_garden'] = 0
+		grandmaQW['disappointment'] = 1
+	elseif grandmaQW['chore_water_garden'] = 1 or grandmaQW['chore_water_garden'] = 2:
+		grandmaQW['chore_water_garden'] = 0
+		grandmaQW['disappointment'] = 1
+	elseif grandmaQW['chore_collect_strawberries'] = 1 or grandmaQW['chore_collect_strawberries'] = 2:
+		grandmaQW['chore_collect_strawberries'] = 0
+		grandmaQW['disappointment'] = 1
+	elseif grandmaQW['chore_collect_fruit'] = 1 or grandmaQW['chore_collect_fruit'] = 2:
+		grandmaQW['chore_collect_fruit'] = 0
+		grandmaQW['disappointment'] = 1
+	elseif grandmaQW['chore_harvest_garden'] = 1 or grandmaQW['chore_harvest_garden'] = 2:
+		grandmaQW['chore_harvest_garden'] = 0
+		grandmaQW['disappointment'] = 1
+	elseif grandmaQW['chore_gather_mushrooms'] = 1 or grandmaQW['chore_gather_mushrooms'] = 2:
+		grandmaQW['disappointment'] = 2
+	elseif grandmaQW['chore_gather_mushrooms'] = 1 or grandmaQW['chore_gather_mushrooms'] = 2 and grandmaQW['disappointment'] = 2:
+		grandmaQW['chore_gather_mushrooms'] = 0
+		grandmaQW['chore_mushroom_quantity'] = 0
+		grandmaQW['disappointment'] = 1
+	elseif grandmaQW['chore_gather_berries'] = 1 or grandmaQW['chore_gather_berries'] = 2:
+		grandmaQW['disappointment'] = 2
+	elseif grandmaQW['chore_gather_berries'] = 1 or grandmaQW['chore_gather_berries'] = 2 and grandmaQW['disappointment'] = 2:
+		grandmaQW['chore_gather_berries'] = 0
+		grandmaQW['chore_berry_quantity'] = 0
+		grandmaQW['disappointment'] = 1
+	elseif grandmaQW['chore_gather_both'] = 1 or grandmaQW['chore_gather_both'] = 2:
+		grandmaQW['disappointment'] = 2
+	elseif grandmaQW['chore_gather_both'] = 1 or grandmaQW['chore_gather_both'] = 2 and grandmaQW['disappointment'] = 2:
+		grandmaQW['chore_gather_both'] = 0
+		grandmaQW['chore_mushroom_quantity'] = 0
+		grandmaQW['chore_berry_quantity'] = 0
+		grandmaQW['disappointment'] = 1
+	end
+
+	!! disappointing grandpa
+	if grandpaQW['chore_fetch_firewood'] = 1 or grandpaQW['chore_fetch_firewood'] = 2:
+		grandpaQW['chore_fetch_firewood'] = 0
+		grandpaQW['disappointment'] = 1
+	elseif grandpaQW['chore_feed_horse'] = 1 or grandpaQW['chore_feed_horse'] = 2:
+		grandpaQW['chore_feed_horse'] = 0
+		grandpaQW['disappointment'] = 1
+	elseif grandpaQW['chore_feed_cow'] = 1 or grandpaQW['chore_feed_cow'] = 2:
+		grandpaQW['chore_feed_cow'] = 0
+		grandpaQW['disappointment'] = 1
+	elseif grandpaQW['chore_clean_yard'] = 1 or grandpaQW['chore_clean_yard'] = 2:
+		grandpaQW['chore_clean_yard'] = 0
+		grandpaQW['disappointment'] = 1
+	elseif grandpaQW['chore_feed_boar'] = 1 or grandpaQW['chore_feed_boar'] = 2:
+		grandpaQW['chore_feed_boar'] = 0
+		grandpaQW['disappointment'] = 1
+	elseif grandpaQW['chore_bathe_horse'] = 1 or grandpaQW['chore_bathe_horse'] = 2:
+		grandpaQW['chore_bathe_horse'] = 0
+		grandpaQW['chore_bathe_horse_prog'] = 0
+		grandpaQW['disappointment'] = 1
+	elseif grandpaQW['chore_brush_horse'] = 1 or grandpaQW['chore_brush_horse'] = 2:
+		grandpaQW['chore_brush_horse'] = 0
+		grandpaQW['disappointment'] = 1
+	elseif grandpaQW['chore_lead_horse_to_field'] = 1 or grandpaQW['chore_lead_horse_to_field'] = 2:
+		grandpaQW['chore_lead_horse_to_field'] = 0
+		grandpaQW['disappointment'] = 1
+	elseif grandpaQW['chore_herd_cattle'] = 1 or grandpaQW['chore_herd_cattle'] = 2:
+		grandpaQW['chore_herd_cattle'] = 0
+		grandpaQW['disappointment'] = 1
+	elseif grandpaQW['chore_lead_cow_to_field'] = 1 or grandpaQW['chore_lead_cow_to_field'] = 2:
+		grandpaQW['chore_lead_cow_to_field'] = 0
+		grandpaQW['disappointment'] = 1
+	elseif grandpaQW['chore_gather_mushrooms'] = 1 or grandpaQW['chore_gather_mushrooms'] = 2:
+		grandpaQW['disappointment'] = 2
+	elseif grandpaQW['chore_gather_mushrooms'] = 1 or grandpaQW['chore_gather_mushrooms'] = 2 and grandpaQW['disappointment'] = 2:
+		grandpaQW['chore_gather_mushrooms'] = 0
+		grandpaQW['chore_mushroom_quantity'] = 0
+		grandpaQW['disappointment'] = 1
+	elseif grandpaQW['chore_gather_berries'] = 1 or grandpaQW['chore_gather_berries'] = 2:
+		grandpaQW['disappointment'] = 2
+	elseif grandpaQW['chore_gather_berries'] = 1 or grandpaQW['chore_gather_berries'] = 2 and grandpaQW['disappointment'] = 2:
+		grandpaQW['chore_gather_berries'] = 0
+		grandpaQW['chore_berry_quantity'] = 0
+		grandpaQW['disappointment'] = 1
+	elseif grandpaQW['chore_gather_both'] = 1 or grandpaQW['chore_gather_both'] = 2:
+		grandpaQW['disappointment'] = 2
+	elseif grandpaQW['chore_gather_both'] = 1 or grandpaQW['chore_gather_both'] = 2 and grandpaQW['disappointment'] = 2:
+		grandpaQW['chore_gather_both'] = 0
+		grandpaQW['chore_mushroom_quantity'] = 0
+		grandpaQW['chore_berry_quantity'] = 0
+		grandpaQW['disappointment'] = 1
+	elseif grandpaQW['chore_bale_hay'] = 1 or grandpaQW['chore_bale_hay'] = 2:
+		grandpaQW['chore_bale_hay'] = 0
+		grandpaQW['disappointment'] = 1
+	end
+
+	!! grandparents use root cellar
+	if boletus_stored > 0: boletus_stored -= rand(0,1)
+	if bilberry_stored > 0: bilberry_stored -= rand(0,1)
+	if boletus_stored < 0: boletus_stored = 0
+	if bilberry_stored < 0: bilberry_stored = 0
+	!! end of new grandparent chore stuff, for 0.8.0
+
+	if catout ! 0: catout = 0
+	if feedcat ! 0: feedcat = 0
+
+end
+
 --- gaddvor ---------------------------------
 

+ 1 - 0
locations/gschool_nerd_chats.qsrc

@@ -138,6 +138,7 @@ if $ARGS[0] = 'petka':
 				'You see him blush bright red and he looks around, afraid someone might have overheard. "Please! I learned my lesson!"'
 				'You scoff at his reaction. "Please! We both know you liked it. Besides, a deal''s a deal." You get up and head to your next class.'
 			end
+			act 'Go to your next class': gt 'gschool_lessons', 'short_break'
 		end
 	end
 end

+ 2 - 2
locations/intro_city_select.qsrc

@@ -963,7 +963,7 @@ if $ARGS[0] = 'gopnikstart':
 		gs 'npc_relationship', 'socialgroup_setting', -10, -10, -10, 5, -10, -10
 		alterstrtimg = 18
 		pcs_stren = 75
-		pcs_teeth = -1
+		pcs_teeth = 1
 		pcs_vital = 45
 		pcs_jab = 35
 		pcs_punch = 35
@@ -1229,7 +1229,7 @@ if $ARGS[0] = 'uglyduckling':
 		gm_purses[8] = 1
 		bag = 1
 		salo = 130
-		pcs_teeth = -2
+		pcs_teeth = 2
 		willpowermax = 70
 		gs 'grades', 'grade_award', 'school', 'math', 55
 		gs 'grades', 'grade_award', 'school', 'rus', 25

+ 1 - 1
locations/intro_sg_select.qsrc

@@ -1403,7 +1403,7 @@ if $ARGS[0] = 'uglyduckling':
 		genbsize = 28
 !!e cup for ideal bmi
 		pcs_inhib = 5
-		pcs_teeth = -2
+		pcs_teeth = 2
 		if player_avatar = 0:
 			pcs_eyesize = 0
 			pcs_lip = 0

+ 21 - 13
locations/kompMFCtwo.qsrc

@@ -3,7 +3,7 @@
 ! the gotos to this location are already gated by ifs
 ! to prevent further blank pages only clientask is used here
 
-if clientask = 89:
+if ARGS[0] = 89:
 	cls
 	gs 'stat'
 	'One of the visitors makes several comments on how badly he wants to fuck your ass, and then offers you tokens to show your asshole to him...'
@@ -58,8 +58,9 @@ if clientask = 89:
 	else
 		act 'Ignore him (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 	end
+end
 
-elseif clientask = 88:
+if ARGS[0] = 88:
 	cls
 	gs 'stat'
 	'One of the visitors has a rather unusual request: "Time for you to quiet down for a while! Gag yourself by putting your panties into your mouth..."'
@@ -103,7 +104,9 @@ elseif clientask = 88:
 		act 'Ignore him (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 	end
 
-elseif clientask = 87:
+end
+
+if ARGS[0] = 87:
 	cls
 	gs 'stat'
 	'One of the visitors challenges you: "Put something in your vagina. Anything. Impress me."'
@@ -142,8 +145,9 @@ elseif clientask = 87:
 	else
 		act 'Ignore him (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 	end
+end
 
-elseif clientask = 86:
+if ARGS[0] = 86:
 	cls
 	gs 'stat'
 	'One of the visitors, noticing how drunk you are, asks in chat: "How much would it take for you to shove a bottle in your vagina? That would be so hot..."'
@@ -162,8 +166,9 @@ elseif clientask = 86:
 		'After a while reality kicks in, and that reality is that the cold bottle really doesn''t feel comfortable inside your snatch! Nevertheless, your viewers loved it and sing your praises when you slowly let the bottle slide out of your stretched pussy and crack the bottle open.'
 		act'Further':gt'komp','waitclients'
 	end
+end
 
-elseif clientask = 85:
+if ARGS[0] = 85:
 	cls
 	gs 'stat'
 	'One of the visitors, noticing how drunk you are, asks in chat: "Hey, <<$pcs_nickname>>! Show us something unusual! Anything!"'
@@ -342,8 +347,9 @@ elseif clientask = 85:
 			end
 		end
 	end
+end
 
-elseif clientask = 84:
+if ARGS[0] = 84:
 	cls
 	gs 'stat'
 	if pcs_vag >= pcs_ass:
@@ -398,8 +404,9 @@ elseif clientask = 84:
 		end
 		act'Continue':gt'komp','waitclients'
 	end
+end
 
-elseif clientask = 83:
+if ARGS[0] = 83:
 	'One of the visitors asks you: "Fuck yourself with something! But not a dildo... be creative! Use your imagination and surprise us!"'
 	act 'Use the wooden knob on your bed':
 		cls
@@ -451,8 +458,9 @@ elseif clientask = 83:
 	else
 		act 'Ignore him (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 	end
+end
 
-elseif clientask = 82:
+if ARGS[0] = 82:
 	cls
 	gs 'stat'
 	'One of the regulars asks: "You know, I really love it when girls stick something in their urethra! Could you do that for me? It doesn''t have to be big!"'
@@ -495,8 +503,9 @@ elseif clientask = 82:
 	else
 		act 'Ignore him (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 	end
+end
 
-elseif clientask = 81:
+if ARGS[0] = 81:
 	cls
 	gs 'stat'
 	'One of the regulars says: "I''ve always been curious what the inside of a girl''s ass looks like. How about you show me? I''ve got a bunch of tokens with your name on it! ;)"'
@@ -539,9 +548,10 @@ elseif clientask = 81:
 		end
 	else
 		act 'Ignore him (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-	end	
+	end
+end
 
-elseif clientask = 80:
+if ARGS[0] = 80:
 	cls
 	gs 'stat'
 	'When one of your loyal visitors speaks up, you feel a weird knot in your throat. He''s usually making rather insensitive comments and seems to enjoy watching you squirm, but he pays well.'
@@ -591,8 +601,6 @@ elseif clientask = 80:
 	else
 		act 'Ignore him (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 	end
-else
-	msg 'ERROR: unknown clientask in location "kompMFCtwo". Debug variables: backmfc = <<backmfc>>; webpopular = <<webpopular>>; pcs_ass = <<pcs_ass>>; pcs_vag = <<pcs_vag>>; sub = <<sub>>; alko = <<alko>>; clientask = <<clientask>>; prezik = <<prezik>>.'
 end
 
 --- kompMFCtwo ---------------------------------

+ 1 - 1
locations/npcgeneratec.qsrc

@@ -236,7 +236,7 @@ npc_love[$npclastgenerated] = 0
 npc_occupation[$npclastgenerated] = 0
 npc_outfit[$npclastgenerated] = 0
 
-! {Unspecified dad and <<$npc_nickname[''A29'']>>.
+! Unspecified dad and <<$npc_nickname[''A29'']>>.
 if npctempgsex = 1 or npctempgsex = 2:
    !! A female face
    $npc_pic[$npclastgenerated] = 'icon_bf' + rand(31, 60) + '.png'

+ 12 - 19
locations/obj_din.qsrc

@@ -311,9 +311,16 @@ if $ARGS[0] = 'description':
 
 	if salo < 10 and strenbuf > 0 and dounspell = 0: '<b><font color="red">You are showing signs of malnourishment. You should probably eat more and more often.</font></b>'
 	if salo < 10 and strenbuf = 0 and dounspell = 0: '<b><font color="red">You are dangerously malnourished, which has led to a loss in muscle mass. You''re in a critical condition and likely to pass out!</font></b>'
-	if pcs_teeth = 1:$zuba = ' tooth'
-	if pcs_teeth >= 2:$zuba = ' teeth'
-	if pcs_teeth > 0: 'You have lost <<pcs_teeth>><<$zuba>>.'
+	if pcs_missing_teeth = 1:$zuba = ' tooth'
+	if pcs_missing_teeth >= 2:$zuba = ' teeth'
+	if pcs_missing_teeth > 0: 'You have lost <<pcs_missing_teeth>><<$zuba>>.'
+	if pcs_teeth = -1:
+		'You have a perfect white smile.'
+	elseif pcs_teeth > 0:
+		'Your teeth are not straight at all. It might be a good idea to see a dentist to straighten them.'
+	else
+		'Your teeth are miscoloured. It might be a good idea to see a dentist to get them cleaned up.'
+	end
 
 	!! 'pcs_apprnc <<pcs_apprnc>>'
 	!! 'curlykoef <<curlykoef>> a maximum of 1'
@@ -635,22 +642,8 @@ if $ARGS[0] = 'stats':
 	end
 	if workPTU > 1: 'Reputation as a teacher <<teachlevel>>'
 	*nl
-	if npc_QW['A192'] > 0: 'Friendship with Nastya <<npc_QW[''A192'']>>'
-	if npc_rel['A218'] > 0: 'Friendship with Tanya <<npc_rel[''A218'']>>'
-	if npc_rel['A219'] > 0: 'Friendship with Kat <<npc_rel[''A219'']>>'
-	if npc_rel['A220'] > 0: 'Friendship with Vika <<npc_rel[''A220'']>>'
-	if npc_rel['A93'] > 0: 'Friendship with Ira <<npc_rel[''A93'']>>'
-	if npc_rel['A43'] > 0: 'Friendship with Tamara <<npc_rel[''A43'']>>'
-	if alla > 0: 'Friendship with Alla <<alla>>'
-	if masha > 0: 'Friendship with Masha <<masha>>'
-	if npc_rel['A41'] > 0: 'Friendship with Givi K. <<npc_rel[''A41'']>>'
-	if npc_rel['A42'] > 0: 'Friendship with Ashot <<npc_rel[''A42'']>>'
-	if Dmitry > 0: 'Friendship with Dima <<Dmitry>>'
-	if npc_rel['A69'] > 0:'Friendship with Mikhail Nikolaevich	<<npc_rel[''A69'']>>'
-
-	!!!WD: Formatting
-	if (npc_rel['A93'] + npc_rel['A41'] + npc_rel['A42'] + npc_rel['A43'] + gosh + npc_rel['A220'] + npc_rel['A219'] + npc_QW['A192'] + npc_rel['A218']) > 0:*nl
-	*nl
+	
+	'<center><b>Sports Career</b></center>'
 	if KikWinPro > 0 or KikLossPro > 0 or KikDrawPro > 0:
 		'Professional Kickboxing Record:Win (Victory KO) - Loss (Defeat KO) - Draw'
 		'<<KikWinPro>> (<<KikWinProKO>>KO) - <<KikLossPro>> (<<KikLossProKO>>KO) - <<KikDrawPro>>'

+ 70 - 46
locations/pav_clinic.qsrc

@@ -138,63 +138,87 @@ if $ARGS[0] = '':
 			end
 		end
 
-		if pcs_teeth > -1:
+		if (pcs_teeth > -1 and dentistday + 90 < daystart) or (pcs_missing_teeth > 0  and pcs_brace = 0):
 			act 'Go to the dentist':
 				*clr & cla
 				menu_off = 1
-				zubpay = pcs_teeth * 30000
+				minut += 15
 				gs 'stat'
-				if pcs_teeth = 0:
-					zubpay = 30000
-					'The dentist examines you and says, it will cost you <<zubpay>> <b>₽</b> to straighten and polish your teeth.'
-				elseif pcs_teeth = 1:
-					'The dentist examines you and says, it will cost you <<zubpay>> <b>₽</b> to replace your tooth'
+			
+				if pcs_brace = 1:
+					pcs_brace = 0
+					pcs_teeth -= 1
+					dentistday = daystart
+					'The dentist spends 15 minutes to take of you brace and clean up. You look at the mirror afterward and you teeth are '+iif(pcs_teeth = 0, 'now straight', 'straighter, but can still use some more work.')
+					gs 'AppearanceSystem', 'UpdateBaseAppearnce'
+					gs 'stat'
 				else
-					'The dentist examines you and says, it will cost you <<zubpay>> <b>₽</b> to fill the gaps'
-				end
+					if pcs_missing_teeth = 1:
+						zubpay = 3000
+						'The dentist examines you and says, it will cost you <<3000>> <b>₽</b> to replace your tooth'
+					elseif pcs_missing_teeth > 1:
+						zubpay = pcs_missing_teeth * 30000
+						'The dentist examines you and says, it will cost you <<pcs_missing_teeth * 30000>> <b>₽</b> to fill the gaps'
+					elseif pcs_teeth = 0:
+						zubpay = 3000
+						'The dentist examines you and says, it will cost you <<3000>> <b>₽</b> to brighten and polish your teeth.'
+					elseif pcs_teeth > 0:
+						zubpay = 45000
+						'The dentist examinees you and says, it will cost you <<4500>><b>₽</b> to straighten your teeth and you will have to wear a brace for three months and he can''t promise they will be completely straight after one treatment.'
+					end
 
-				if money < zubpay and karta < zubpay:
-					*nl
-					'You do not have enough money to fix your teeth.'
-				else
-					if money >= zubpay:
-						act 'Sort out your teeth (cash)':
-							*clr & cla
-							money -= zubpay
-							minut += 60
-							gs 'AppearanceSystem', 'UpdateBaseAppearnce'
-							gs 'stat'
-							if pcs_teeth > 0:
-								pcs_teeth = 0
-								'You pay the dentist to fix your teeth, within an hour he has restored your winning smile.'
-							else
-								pcs_teeth = -1
-								'You pay the dentist to straighten and polish your teeth, an hour later your smile is much brighter and more attractive.'
-							end
+					if money < zubpay and karta < zubpay:
+						*nl
+						'You do not have enough money to fix your teeth.'
+					else
+						if money >= zubpay:
+							act 'Sort out your teeth (cash)':
+								*clr & cla
+								money -= zubpay
+								minut += 60
+								if pcs_missing_teeth > 0:
+									pcs_missing_teeth = 0
+									'You pay the dentist to fix your teeth, within an hour he has restored your winning smile.'
+								elseif pcs_teeth > 0:
+									dentistday = daystart
+									pcs_brace = 1
+									'You pay the dentist to straighten your teeth. After and hour of work he have attached a brace to teeth and tells you to comeback it three months to have it taken of.'
+								else
+									dentistday = daystart
+									pcs_teeth = -1
+									'You pay the dentist to brighten and polish your teeth, an hour later your smile is much brighter and more attractive.'
+								end
+								gs 'AppearanceSystem', 'UpdateBaseAppearnce'
+								gs 'stat'
 
-							act 'Leave the clinic': minut += 5 & gt 'pav_commercial'
-						end
-					end
-					if karta >= zubpay:
-						act 'Sort out your teeth (card)':
-							*clr & cla
-							karta -= zubpay
-							minut += 60
-							gs 'AppearanceSystem', 'UpdateBaseAppearnce'
-							gs 'stat'
-							if pcs_teeth > 0:
-								pcs_teeth = 0
-								'You pay the dentist to fix your teeth, within an hour he has restored your winning smile.'
-							else
-								pcs_teeth = -1
-								'You pay the dentist to straighten and polish your teeth, an hour later your smile is much brighter and more attractive.'
+								act 'Leave the clinic': minut += 5 & gt 'pav_commercial'
 							end
+						end
+						if karta >= zubpay:
+							act 'Sort out your teeth (card)':
+								*clr & cla
+								money -= zubpay
+								minut += 60
+								if pcs_missing_teeth > 0:
+									pcs_missing_teeth = 0
+									'You pay the dentist to fix your teeth, within an hour he has restored your winning smile.'
+								elseif pcs_teeth > 0:
+									dentistday = daystart
+									pcs_brace = 1
+									'You pay the dentist to straighten your teeth. After and hour of work he have attached a brace to teeth and tells you to comeback it three months to have it taken of.'
+								else
+									pcs_teeth = -1
+									dentistday = daystart
+									'You pay the dentist to brighten and polish your teeth, an hour later your smile is much brighter and more attractive.'
+								end
+								gs 'AppearanceSystem', 'UpdateBaseAppearnce'
+								gs 'stat'
 
-							act 'Leave the clinic': minut += 5 & gt 'pav_commercial'
+								act 'Leave the clinic': minut += 5 & gt 'pav_commercial'
+							end
 						end
 					end
-				end				
-					
+				end
 				act 'Leave the clinic': minut += 5 & gt 'pav_commercial'
 			end
 		end

+ 18 - 115
locations/sportShop.qsrc

@@ -1,6 +1,6 @@
 # sportShop
 !2022/06/20
-if $ARGS[0] = 'start':
+if $ARGS[0] = 'start' or $ARGS[0] = '':
 	killvar 'clothingfilter'
     $location_type = 'public_indoors'
 	cls
@@ -12,17 +12,10 @@ if $ARGS[0] = 'start':
 	*nl
 	'As soon as you enter, a high energy song with a thumping baseline fills your eardrums, making you feel pumped and awake. The store is sleek and professional, the walls and floors advertising all different kinds of sporting equipment and attire. The room is filled with beautifully fit people shopping, their bodies varying from big and muscular to lean and trim. If they don''t inspire you to want to work out, the posters advertising past and present famous athletes are motivating as hell.'
 	*nl
-	if refillable_bottle = 0:
-		if (money < 1000 and karta < 1000) or bag = 0:
-			'The shop sells high-quality water bottles for 1,000 <b>₽</b>. You could carry one around in '+iif(bag > 0, 'your', 'a')+' purse.'
-		else
-			if money >= 1000: 
-				'You could buy a high-quality <a href="exec:minut += 5 & money -= 1000 & refillable_bottle = 1 & gt ''sportShop'', ''start''">water bottle (1000 <b>₽</b> cash)</a> that you can carry around in your purse.'
-			end
-			if karta >= 1000: 
-				'You could buy a high-quality <a href="exec:minut += 5 & karta -= 1000 & refillable_bottle = 1 & gt ''sportShop'', ''start''">water bottle (1000 <b>₽</b> card)</a> that you can carry around in your purse.'
-			end
-		end
+	if refillable_bottle = 0 and money >= 1000 and bag > 0: 
+		'You could buy a high-quality <a href="exec:minut += 5 & money -= 1000 & refillable_bottle = 1 & gt ''sportShop'', ''start''">water bottle (1000 <b>₽</b>)</a> that you can carry around in your purse.'
+	elseif refillable_bottle = 0 and (money < 1000 or bag = 0):
+		'The shop sells high-quality water bottles for 1,000 <b>₽</b>. You could carry one around in '+iif(bag > 0, 'your', 'a')+' purse.'
 	end
 	
 	act 'Leave':minut += 3 & gt 'torgcentr'
@@ -41,113 +34,23 @@ if $ARGS[0] = 'start':
 
 	act 'View coats': minut += 5 & gt 'sportshop', 'coats'
 
-	if skak = 0:
-		if money < 500 and karta < 500:
-			act 'Buy a skipping rope (<font color="red">500 <b>₽</b></font>)': '<br><font color="red">You don''t have enough money to buy that.</font>'
-		else
-			if money >= 500:
-				act 'Buy a skipping rope (500 <b>₽</b>) cash':
-					cla
-					minut += 5
-					money -= 500
-					skak = 1
-
-					act 'Pick up a package':gt 'sportshop', 'start'
-				end
-			end
-			if karta >= 500:
-				act 'Buy a skipping rope (500 <b>₽</b>) card':
-					cla
-					minut += 5
-					karta -= 500
-					skak = 1
-
-					act 'Pick up a package':gt 'sportshop', 'start'
-				end
-			end
-		end
+	*pl '<center><table align="center" width=80%>'
+	if skak = 0 and money >= 500:
+		*p func ('$single_stock_item', 1, 'Skipping Rope', 500, 'skak', 'sportshop', 'start')
 	end
-
-	if obruch = 0:
-		if money < 1500 and karta < 1500:
-			act 'Buy a hula hoop (<font color="red">1500 <b>₽</b></font>)': '<br><font color="red">You don''t have enough money to buy that.</font>'
-		else
-			if money >= 1500:
-				act 'Buy a hula hoop (1,500 <b>₽</b>) cash':
-					cla
-					minut += 5
-					money -= 1500
-					obruch = 1
-
-					act 'Pick up a package':gt 'sportshop', 'start'
-				end
-			end
-			if karta >= 1500:
-				act 'Buy a hula hoop (1,500 <b>₽</b>) card':
-					cla
-					minut += 5
-					karta -= 1500
-					obruch = 1
-
-					act 'Pick up a package':gt 'sportshop', 'start'
-				end
-			end
-		end
+	if obruch = 0 and money >= 1500:
+		*p func ('$single_stock_item', 1, 'Hula Hoop', 1500, 'obruch', 'sportshop', 'start')
 	end
-
-	if bookYog = 0:
-		if money < 1500 and karta < 1500:
-			act 'Buy "Benefits of yoga" (<font color="red">1500 <b>₽</b></font>)': '<br><font color="red">You don''t have enough money to buy that.</font>'
-		else
-			if money >= 1500:
-				act 'Buy "Benefits of yoga" (1,500 <b>₽</b>)':
-					cla
-					minut += 5
-					money -= 1500
-					bookYog = 1
-
-					act 'Pick up a package':gt 'sportshop', 'start'
-				end
-			end
-			if karta >= 1500:
-				act 'Buy "Benefits of yoga" (1,500 <b>₽</b>)':
-					cla
-					minut += 5
-					karta -= 1500
-					bookYog = 1
-
-					act 'Pick up a package':gt 'sportshop', 'start'
-				end
-			end
-		end
+	if bookYog = 0 and money >= 1500:
+		*P func ('$single_stock_item', 1, 'Book on Yoga', 1500, 'bookyog', 'sportshop', 'start')
 	end
-
-	if konki = 0:
-		if money < 3000 and karta < 3000:
-			act 'Buy some ice skates (<font color="red">3000 <b>₽</b></font>)': '<br><font color="red">You don''t have enough money to buy that.</font>'
-		else
-			if money >= 3000:
-				act 'Buy some ice skates (3000 <b>₽</b>)':
-					cla
-					minut += 5
-					money -= 3000
-					konki = 1
-
-					act 'Pick up a package':gt 'sportshop', 'start'
-				end
-			end
-			if karta >= 3000:
-				act 'Buy some ice skates (3000 <b>₽</b>)':
-					cla
-					minut += 5
-					karta -= 3000
-					konki = 1
-
-					act 'Pick up a package':gt 'sportshop', 'start'
-				end
-			end
-		end
+	if konki = 0 and money >= 3000:
+		*p func ('$single_stock_item', 1, 'Ice Skates', 3000, 'konki', 'sportshop', 'start')
+	end
+	if refillable_bottle = 0 and money >= 1000 and bag > 0: 
+		*p func ('$single_stock_item', 1, 'Refillable Water Bottle', 1000, 'refillable_bottle', 'sportshop', 'start')		
 	end
+	*p '</table></center>'
 end
 
 if $ARGS[0] = 'clo':

+ 1 - 1
locations/stat.qsrc

@@ -1264,7 +1264,7 @@ end
 
 !!--------------------------Booty Call SMSs--------------------------------
 
-if (hour >= 15 and hour <= 19) and arrsize('$fuckbuddy') > 0 : gs 'booty_call_start','draw'
+if (hour >= 15 and hour <= 20) and arrsize('$fuckbuddy') > 0 : gs 'booty_call', 'SMS raiser'
 
 --- stat ---------------------------------
 

+ 1 - 1
locations/therapist.qsrc

@@ -1130,7 +1130,7 @@ if $ARGS[0] = 'fuck':
 	end
 	$hypnofuck2
 
-	gs 'arousal', 'vaginal', 20
+	gs 'arousal', 'vaginal', 20, 'unaware'
 	gs 'stat'
 
 	if rand(0,2) = 0:

+ 3 - 3
locations/tour_guide.qsrc

@@ -16,7 +16,7 @@ if $ARGS[0] = 'tourstart':
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/palace/office/tour_office.jpg"></center>'
 		'You see an ad posted in the park for summer only tour guides needed and decide to inquire about it at an office outside the old Imperial Palace.'
 		*nl
-		'You answer a few questions the management team asks you and are offered a summer position at 100 <b>₽</b> an hour, 6 hours a day. Fresh uniforms are provided daily and training will be you shadowing another guide for the first couple of days to make sure you know the details required to lead your groups.'
+		'You answer a few questions the management team asks you and are offered a summer position at 100 <b>₽</b> an hour, 8 hours a day. Fresh uniforms are provided daily and training will be you shadowing another guide for the first couple of days to make sure you know the details required to lead your groups.'
 		'Like any teenager your only questions are about breaks and days off. The manager smiles, not surprised, and tells you that working is voluntary. If you do not show up then obviously you will not make any money that day, but otherwise no daily commitment is required from you. Breaks will be allowed if there are no groups to lead at that time and you will be given a small lunch everyday that you choose to work.'
 		act 'Accept the position':
 			if cheatWork = 1:
@@ -42,8 +42,8 @@ if $ARGS[0] = 'tourstart':
 		act 'Eat lunch and get back to work':
 			minut += 240
 			pcs_health += 10
-			pcs_energy += 40
-			pcs_hydra += 40
+			pcs_energy += 50
+			pcs_hydra += 100
 			gs 'stat'
 			gt 'tour_guide', 'tourran' + rand(1, 8)
 		end

+ 1 - 0
locations/zaprFWash.qsrc

@@ -768,6 +768,7 @@ if $ARGS[0] = 'blowjobEndMouthSwallow':
 	'You gulp down the mouthful of sperm and then present your tongue as proof that all of his seed is now in your belly.'
 	'The man smiles, slaps you mildly on your face and says: "What a nice young slut you are. Next time I need a refill, I''ll be sure to stop by."'
 	
+	stat['swallow'] += 1
 	gs 'arousal', 'end'
 	gs 'stat'