45 Commits f05d95aa4f ... 772e258a40

Author SHA1 Message Date
  bgkjdgbizgblzdgbr 772e258a40 [fixed/changed] Katja would tell you where her dorm room is, even if she was not ready to invite you home. Relationship could fire almost imeadetely in uni if you have started her quest but not had sex. Changed it such that you can tell her if you are going to study something else than to become a teacher. 2 months ago
  Kevin_Smarts 3bd9125445 [added] Next Anna scene 2 months ago
  anjuna krokus 1f51b8e299 [added] new lact_ev variable to keep track of the total amount of money erned through milk donations (both directly and through bottles) 2 months ago
  Lusticon 05ca0a0506 [fixed] >>mess<< 2 months ago
  Lusticon de4566cb10 [changed] razors use 2 months ago
  anjuna krokus 84d992dc0e [added] ability to donate milk bottles as requested by Kevin Smarts. Also a small simplification of lact_bp by extracting a `empty_milk_bottle` function (which empties a single bottle) and renaming `empty_milk_bottles` (note the s) to `empty_all_milk_bottles` 2 months ago
  Kevin_Smarts bb5ae24543 [changed] Hang outs return to same one each time and variable changed to unique name so it remains consistant for whole of the party 2 months ago
  Kevin_Smarts 8cc2fa6f12 [fixed] Time wasn't advancing so you could could replaying the band party to see all the chats. Now it works and you don't have to redo the party intro between chats. 2 months ago
  Kevin_Smarts c4b46399cc Merge branch 'sm_bf' of zaba/glife into master 2 months ago
  Kevin_Smarts b411f1c448 Merge branch 'master' of aesthete/glife into master 2 months ago
  Kevin_Smarts 1eb2b9bb79 [fixed] Wrong variable fixed by Sword 2 months ago
  Kevin_Smarts 0a56a5a177 {fixed] typo spotted by Sword 2 months ago
  Kevin_Smarts af266d1235 [fixed] those lines are needed, oops 2 months ago
  Kevin_Smarts 3aedd513c6 [fixed] Display for mansion image not set correctly, fixed by Sword 2 months ago
  Kevin_Smarts e8cb24711c Merge remote-tracking branch 'Anjuna/master' 2 months ago
  anjuna krokus 8480b757bb [fixed] dead in in marisha event 2 months ago
  Lusticon f04b43bc26 [changed] razors use 2 months ago
  Lusticon f8741236f9 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 2 months ago
  Lusticon 7af45e7321 [fixed] text 2 months ago
  Kevin_Smarts a40e36086b Merge remote-tracking branch 'Hooded_Silence/master' 2 months ago
  Kevin_Smarts 4f887d7117 Merge remote-tracking branch 'Anjuna/master' 2 months ago
  Kevin_Smarts e255d2cf7b Merge remote-tracking branch 'Lusticon/master' 2 months ago
  Kevin_Smarts 9c4c79068b [text edit] Too many uses of "band" 2 months ago
  Kevin_Smarts 4da406a1d9 [fixed] Could leave Meynold house naked, fix from Sword 2 months ago
  Hooded Silence 56de7d2bd1 [Bug Fix] Fix broken image links due to changes in core_library set_stage function. Ballet content may be broken in places for events. 2 months ago
  Hooded Silence 5a2f614425 [Bug Fix] Image path incorrect in {mc} bedroom in gad due to changes in core_library, added new leave function to take you to the dacha instead of yard and allow {mc} to have sexy times. 2 months ago
  Hooded Silence a7420991a1 [Bug Fixes] Fixed bathroom shower bug and KorrPar command order. The correct order of execution should be init, file paths, game loc and then quest trackers. 2 months ago
  anjuna krokus a1703894c1 [Added] weight scaling due to pregnancy. Could not just depend on `pcs_mass['body']` due to the highly unequal distrubution of pregnancy mass. 2 months ago
  anjuna krokus d498750a70 [fixed] typo didn't properly count transparent shoots for the trans_persuasion event in the model questline 2 months ago
  anjuna krokus aaf186cc5b [fixed/changed] Moved even more `salocatnow` to either pcs_mass['body'] or pcs_bmi. Still cannot fully remove it due to dependencies in `figurboy` 2 months ago
  Lusticon 3297b1eefe [fixed] text edit 2 months ago
  Lusticon f5a470cb46 [fixed] rape day count 2 months ago
  Lusticon 635bce9fbd [added] elastigirl trait check 2 months ago
  Hooded Silence 8f6ffde18a [Bug Fix] Fix scene transitioning time as suggested by bgkjdgbizgblzdgbr. 2 months ago
  Kevin_Smarts 1f4ec2c967 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 2 months ago
  Kevin_Smarts 928b1a7aa9 [added] new spell to make Sveta using a strapon feel like its her penis during sex scenes. Spell from Key Master, arousal update from me 2 months ago
  bgkjdgbizgblzdgbr 3e69a8df87 [changed] Leaving Katja inte Meynold home will now alway put you in the hallway and not outside the house. 2 months ago
  Hooded Silence ad7de1b918 [Missed Files] Added missing files to previous commit. 2 months ago
  Hooded Silence a14c699b7c [Code Refactor] Move repeated header commands to a new module - home_family_init to help reduce code bloat and standardise locations in preparation for pet integration. Any commands that affects multiple rooms should be routed through the init file. Migrated to the set_stage function for location banners and have variables managing location for base images in home_family_init. 2 months ago
  Hooded Silence 2797a5eb6b [Data Corruption] Fix merge corruption 2 months ago
  Hooded Silence 34cd6a97ac Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 2 months ago
  Hooded Silence c108eb2f8f Revert "[Bug Fix] Remove errant comment breaks in npcstatic files" 2 months ago
  aesthete 4d505bf8b2 [fixed] period can only be skipped if MC is taking birth control shots 2 months ago
  aesthete 1eaeb0c290 [fixed] resetting period warnings when the period has already started 2 months ago
  Mona.Lisa cca8ec35c5 vika also is not in the room sometimes 2 months ago
59 changed files with 1305 additions and 754 deletions
  1. 1 0
      glife.qproj
  2. 2 2
      locations/AppearanceSystem.qsrc
  3. 33 16
      locations/Cheatmenu_din.qsrc
  4. 30 58
      locations/KatjaHomeTalk.qsrc
  5. 1 1
      locations/Komp.qsrc
  6. 1 1
      locations/NikoEv2.qsrc
  7. 2 2
      locations/NikoWhore.qsrc
  8. 24 7
      locations/arousal.qsrc
  9. 27 3
      locations/ballet_npc.qsrc
  10. 10 10
      locations/ballet_secrets.qsrc
  11. 55 35
      locations/bedrPar.qsrc
  12. 41 27
      locations/bedrPar2.qsrc
  13. 68 19
      locations/body.qsrc
  14. 38 34
      locations/brother_voyeur.qsrc
  15. 144 9
      locations/city_clinic.qsrc
  16. 2 17
      locations/core_library.qsrc
  17. 15 11
      locations/din_van.qsrc
  18. 1 1
      locations/femcyc.qsrc
  19. 1 1
      locations/foto_shoot.qsrc
  20. 20 9
      locations/gadsarai.qsrc
  21. 1 1
      locations/gschool_lessons4.qsrc
  22. 46 0
      locations/home_family_init.qsrc
  23. 1 0
      locations/homes_properties_attr.qsrc
  24. 143 50
      locations/hotel_anna.qsrc
  25. 11 11
      locations/hotel_anna_sex.qsrc
  26. 1 1
      locations/hourly_events.qsrc
  27. 7 4
      locations/journal_quests.qsrc
  28. 12 47
      locations/katjaEvDin.qsrc
  29. 1 1
      locations/katja_dorm.qsrc
  30. 1 0
      locations/katja_uni.qsrc
  31. 41 19
      locations/korrPar.qsrc
  32. 37 28
      locations/kuhrPar.qsrc
  33. 21 31
      locations/lact_bp.qsrc
  34. 1 1
      locations/marisha_ev.qsrc
  35. 11 3
      locations/mey_home.qsrc
  36. 1 1
      locations/mother.qsrc
  37. 26 25
      locations/npcstatic1.qsrc
  38. 2 2
      locations/npcstatic3.qsrc
  39. 1 2
      locations/npcstatic4.qsrc
  40. 1 1
      locations/pav_complex.qsrc
  41. 1 1
      locations/pav_disco_classmates.qsrc
  42. 3 0
      locations/pav_residential.qsrc
  43. 6 6
      locations/pav_shared_nestor.qsrc
  44. 4 4
      locations/pav_shared_oleg.qsrc
  45. 4 4
      locations/pav_shared_yakov.qsrc
  46. 1 1
      locations/pav_station.qsrc
  47. 1 1
      locations/police_station.qsrc
  48. 182 96
      locations/praiders_garage.qsrc
  49. 1 1
      locations/pushkin_ballet_center.qsrc
  50. 35 41
      locations/pushkin_ballet_class.qsrc
  51. 34 29
      locations/pushkin_ballet_evt.qsrc
  52. 7 7
      locations/pushkin_ballet_init.qsrc
  53. 17 14
      locations/pushkin_ballet_res.qsrc
  54. 2 0
      locations/saveupdater.qsrc
  55. 48 29
      locations/sitrPar.qsrc
  56. 16 0
      locations/spell.qsrc
  57. 9 1
      locations/spellList.qsrc
  58. 4 1
      locations/uni_dorm.qsrc
  59. 48 27
      locations/vanrPar.qsrc

+ 1 - 0
glife.qproj

@@ -466,6 +466,7 @@
 		<Location name="misha"/>
 	</Folder>
 	<Folder name="Home-Parent's Apartment">
+		<Location name="home_family_init"/>
 		<Location name="bedrPar"/>
 		<Location name="bedrPar2"/>
 		<Location name="sitrPar"/>

+ 2 - 2
locations/AppearanceSystem.qsrc

@@ -141,9 +141,9 @@ if $ARGS[0] = 'SetBodyShapeBonus':
 		tempBodyShapeBonus = func('body_structure', 'appearance_bonus')
 
 		!!This modifies bodykoef for high or low pcs_mass['body'] values
-		if salocatnow = 0 or salocatnow >= 7:
+		if pcs_mass['body'] < 8 or pcs_mass['body'] >= 98:
 			tempBodyShapeBonus -= 8
-		elseif salocatnow = 1 or salocatnow = 6:
+		elseif pcs_mass['body'] < 23 or pcs_mass['body'] >= 83:
 			tempBodyShapeBonus -= 4
 		end
 

+ 33 - 16
locations/Cheatmenu_din.qsrc

@@ -226,39 +226,39 @@ $cheatmenu['bodyMod'] = {
 	''
 	if knowpreg = 1 or (preg = 1 and (thinkpreg = 1 or PregChem > 3600)):
 		if (pregchem < 2688) = 0:
-			'<a href="exec:pregchem = 100 & pregtime = 4 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 100)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_preg_body''], 100"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 100)>></a>'
 			''
 		end
 		if (pregchem >= 2688 and pregchem < 3192) = 0:
-			'<a href="exec:pregchem = 2688 & pregtime = 112 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 2688)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_preg_body''], 2688"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 2688)>></a>'
 			''
 		end
 		if (pregchem >= 3192 and pregchem < 3696) = 0:
-			'<a href="exec:pregchem = 3192 & pregtime = 133 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 3192)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_preg_body''], 3192"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 3192)>></a>'
 			''
 		end
 		if (pregchem >= 3696 and pregchem < 4200) = 0:
-			'<a href="exec:pregchem = 3696 & pregtime = 154 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 3696)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_preg_body''], 3696"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 3696)>></a>'
 			''
 		end
 		if (pregchem >= 4200 and pregchem < 4704) = 0:
-			'<a href="exec:pregchem = 4200 & pregtime = 175 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 4200)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_preg_body''], 4200"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 4200)>></a>'
 			''
 		end
 		if (pregchem >= 4704 and pregchem < 5208) = 0:
-			'<a href="exec:pregchem = 4704 & pregtime = 196 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 4704)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_preg_body''], 4704"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 4704)>></a>'
 			''
 		end
 		if (pregchem >= 5208 and pregchem < 5712) = 0:
-			'<a href="exec:pregchem = 5208 & pregtime = 217 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 5208)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_preg_body''], 5208"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 5208)>></a>'
 			''
 		end
 		if (pregchem >= 5712 and pregchem < 6216) = 0:
-			'<a href="exec:pregchem = 5712 & pregtime = 238 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 5712)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_preg_body''], 5712"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 5712)>></a>'
 			''
 		end
 		if (pregchem >= 6216) = 0:
-			'<a href="exec:pregchem = 6216 & pregtime = 259 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 6216)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_preg_body''], 6216"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 6216)>></a>'
 			''
 		end
 	else
@@ -266,31 +266,31 @@ $cheatmenu['bodyMod'] = {
 		'starving (No, you may not select ''starving'', it''s here to show where the scale starts)'
 		''
 		if (bs_temp_bs_class / 100) ! 1:
-			'<a href="exec: pcs_mass[''body''] = func(''body'', ''CalcOptBodyMass'', 170) & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', 17, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 170"><<func(''body_structure'', ''body_desc'', 17, strenbuf)>></a>'
 			''
 		end
 		if (bs_temp_bs_class / 100) ! 2:
-			'<a href="exec: pcs_mass[''body''] = func(''body'', ''CalcOptBodyMass'', 200) & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', 20, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 200"><<func(''body_structure'', ''body_desc'', 20, strenbuf)>></a>'
 			''
 		end
 		if (bs_temp_bs_class / 100) ! 3:
-			'<a href="exec: pcs_mass[''body''] = func(''body'', ''CalcOptBodyMass'', 230) & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', 23, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 230"><<func(''body_structure'', ''body_desc'', 23, strenbuf)>></a>'
 			''
 		end
 		if (bs_temp_bs_class / 100) ! 4:
-			'<a href="exec: pcs_mass[''body''] = func(''body'', ''CalcOptBodyMass'', 270) & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', 27, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 270"><<func(''body_structure'', ''body_desc'', 27, strenbuf)>></a>'
 			''
 		end
 		if (bs_temp_bs_class / 100) ! 5:
-			'<a href="exec: pcs_mass[''body''] = func(''body'', ''CalcOptBodyMass'', 320) & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', 32, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 320"><<func(''body_structure'', ''body_desc'', 32, strenbuf)>></a>'
 			''
 		end
 		if (bs_temp_bs_class / 100) ! 6:
-			'<a href="exec: pcs_mass[''body''] = func(''body'', ''CalcOptBodyMass'', 370) & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', 37, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 370"><<func(''body_structure'', ''body_desc'', 37, strenbuf)>></a>'
 			''
 		end
 		if (bs_temp_bs_class / 100) ! 7:
-			'<a href="exec: pcs_mass[''body''] = func(''body'', ''CalcOptBodyMass'', 420) & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', 42, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 420"><<func(''body_structure'', ''body_desc'', 42, strenbuf)>></a>'
 			''
 		end
 		killvar 'bs_temp_bs_class'
@@ -299,6 +299,23 @@ $cheatmenu['bodyMod'] = {
 	'</tr></table></b></center>'
 }
 
+$cheatmenu['set_preg_body'] = {
+	pregchem = ARGS[0]
+	pregtime = ARGS[0] / 24
+	gs 'body', 'reset_preg_mass'
+	gs 'body', 'softreset'
+	gs 'stat'
+	dynamic $cheatmenu['bodyMod']
+}
+
+$cheatmenu['set_body_class'] = {
+	pcs_mass['body'] = func('body', 'CalcOptBodyMass', ARGS[0])
+	gs 'body', 'softreset'
+	gs 'stat'
+	dynamic $cheatmenu['bodyMod']
+}
+
+
 $cheatmenu['addict'] = {
 	if drugVars['cheat_immune'] = 0:
 		drugVars['cheat_immune'] = 1

+ 30 - 58
locations/KatjaHomeTalk.qsrc

@@ -133,11 +133,7 @@ if $ARGS[0] = '':
 			end
 		end
 	end
-	if mey_vika['key'] = 1:
-		Act 'Leave the room': gt 'mey_home', 'start'
-	else
-		act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
-	end
+	act 'Leave the room': gt 'mey_home', 'start'
 end
 
 
@@ -430,11 +426,7 @@ if $ARGS[0] = 'chat':
 		act 'Tell Katja, that you have decided that boys are fun after all <br><font color="red">(Katja will start asking about sex with boys again)</font>': gt 'KatjaHomeTalk',  'boy_yes'
 	end
 
-	if mey_vika['key'] = 1:
-		Act 'Leave the room': gt 'mey_home', 'start'
-	else
-		act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
-	end
+	act 'Leave the room': gt 'mey_home', 'start'
 end
 
 if $ARGS[0] = 'shower':
@@ -785,11 +777,7 @@ if $ARGS[0] = 'homework':
 	'For half an hour you and Katja pour over your books, you fully learn the lessons and pretty well understand the material.'
 
 	act 'Finish': gt 'KatjaHomeTalk'
-	if mey_vika['key'] = 1:
-		act 'Leave the room': gt 'mey_home', 'start'
-	else
-		act 'Say goodbye and leave': minut += 5 & gt 'pav_residential'
-	end
+	act 'Leave the room': gt 'mey_home', 'start'
 end
 
 if $ARGS[0] = 'Sextalk':
@@ -1324,7 +1312,7 @@ if $ARGS[0] = 'bj_talk2':
 	
 	act'It''s boring':
 		cla & *nl
-		'"It''s boring," you roll your eyes. "You have to keep sucking the whole time and after a while, my jaw just starts to ache with the motion. It''s a dick in your mouth, I don''t know what to tell you.'
+		'"It''s boring," you roll your eyes. "You have to keep sucking the whole time and after a while, my jaw just starts to ache with the motion. It''s a dick in your mouth, I don''t know what to tell you."'
 		'Katja seems taken aback, looking almost worried. You guess you just shattered some impressions she had about giving head.'
 		act 'Continue':
 			minut += 5
@@ -1445,10 +1433,8 @@ if $ARGS[0] = 'tender_kiss':
 					end
 					if $loc = 'katja_dorm':
 						act 'Stop talking': gt 'katja_dorm', 'start'
-					elseif mey_vika['key'] = 1:
-						Act 'Leave the room': gt 'mey_home', 'start'
 					else
-						act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
+						act 'Leave the room': gt 'mey_home', 'start'
 					end
 				end
 			else
@@ -1493,10 +1479,8 @@ if $ARGS[0] = 'tender_kiss':
 					end
 					if $loc = 'katja_dorm':
 						act 'Stop talking': gt 'katja_dorm', 'start'
-					elseif mey_vika['key'] = 1:
-						act 'Leave the room': gt 'mey_home', 'start'
 					else
-						act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
+						act 'Leave the room': gt 'mey_home', 'start'
 					end
 				end
 			else
@@ -1784,11 +1768,7 @@ if $ARGS[0] = 'boy_discussion':
 		'You smile. "Okay, I''ll try to dance with him at the disco, and see if I can test him for you."'
 		'"You are the bestest friend!" she says with a huge smile and gives you a tight hug.'
 		act 'Talk about something else': gt 'KatjaHomeTalk'
-		if mey_vika['key'] = 1:
-			act 'Leave the room': gt 'mey_home', 'start'
-		else
-			act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
-		end
+		act 'Leave the room': gt 'mey_home', 'start'
 	end
 end
 
@@ -1812,11 +1792,7 @@ if $ARGS[0] = 'anal_discussion':
 		'"He trains in the gym at the community center in the late afternoon. You might have luck talking with him there. I''ve also heard a rumor that he sometimes uses the women''s shower there," she tells you.'
 		'You smile. "Okay, I''ll try to see if he''s up for something there and try him out for you."'
 		act 'Talk about something else': gt 'KatjaHomeTalk'
-		if mey_vika['key'] = 1:
-			act 'Leave the room': gt 'mey_home', 'start'
-		else
-			act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
-		end
+		act 'Leave the room': gt 'mey_home', 'start'
 	end
 end
 
@@ -1839,10 +1815,8 @@ if $ARGS[0] = 'preventation_talk':
 	end
 	if $loc = 'katja_dorm':
 		act 'Stop talking': gt 'katja_dorm', 'start'
-	elseif mey_vika['key'] = 1:
-		act 'Leave the room': gt 'mey_home', 'start'
 	else
-		act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
+		act 'Leave the room': gt 'mey_home', 'start'
 	end	
 end
 
@@ -1871,11 +1845,7 @@ if $ARGS[0] = 'random_park_sex_talk':
 				act 'Tell Katja that you think she should use birth control': gt 'KatjaHomeTalk', 'preventation_talk'
 			end
 			act 'Talk about something else': gt 'KatjaHomeTalk'
-			if mey_vika['key'] = 1:
-				act 'Leave the room': gt 'mey_home', 'start'
-			else
-				act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
-			end
+			act 'Leave the room': gt 'mey_home', 'start'
 		end
 	end
 end
@@ -2014,13 +1984,21 @@ end
 if $ARGS[0] = 'uni_tell':
 	*clr & cla
 	minut += 15
-	katjaQW['know_going_to_teaching_degree'] = 1
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
-	if katjaQW['know_katja_uni'] = 0:
-		'You tell Katja that you have enrolled at the university to study to become a teacher. She replies that she also plans to do the same and that it will be fun studying at the university together. She bombards you with questions about how your enrolment process went.'
+	if $university['enrolled_in'] = 'teaching_studies':
+		katjaQW['know_going_to_teaching_degree'] = 1
+		if katjaQW['know_katja_uni'] = 0:
+			'You tell Katja that you have enrolled at the university to study to become a teacher. She replies that she also plans to do the same and that it will be fun studying at the university together. She bombards you with questions about how your enrolment process went.'
+		else
+			'You tell Katja that you have also enrolled to study teaching at the university. She replies that it will be fun studying at the university together before you spend the next few minutes talking excitedly about what you know about the program.'
+		end
 	else
-		'You tell Katja that you have also enrolled to study teaching at the university. She replies that it will be fun studying at the university together before you spend the next few minutes talking excitedly about what you know about the program.'
+		if katjaQW['know_katja_uni'] = 0:
+			'You tell Katja that you have enrolled at the university to study <<func('uni_programs', 'program_name')>>. She replies that she plans to enroll to study to become a teacher, but that you will probably still see each other often there.'
+		else
+			'You tell Katja that you have also enrolled to study  <<func('uni_programs', 'program_name')>>. She replies that she is enrolled in the program to study become a teacher, but that you will probably still see each other often there.'
+		end	
 	end
 	if $loc = 'mey_home':
 		act 'Talk about something else': gt 'KatjaHomeTalk'
@@ -2036,16 +2014,16 @@ if $ARGS[0] = 'katja_uni_tell':
 	*clr & cla
 	minut += 15
 	katjaQW['know_katja_uni'] = 1
-	katjaQW['knows_dorm_room_number'] = 1
+	if katjaQW['QWstage'] = 2: katjaQW['knows_dorm_room_number'] = 1
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
 	if katjaQW['know_going_to_teaching_degree'] = 0:
-		'Katja excitedly tells you that she has been accepted into the university to study teaching. She then tells you about how great the program is. She also tells you that she is going to move into room 26 at the university dorm at the beginning of August.' 
-		if university['student'] = 1 and $university['enrolled_in'] = 'teaching_studies':
+		'Katja excitedly tells you that she has been accepted into the university to study teaching. She then tells you about how great the program is.'+iif(katjaQW['QWstage'] = 2, 'She also tells you that she is going to move into room 26 at the university dorm at the beginning of August.', '')
+		if university['student'] = 1:
 			act 'Tell Katja that you''re going to the university': gt 'KatjaHomeTalk', 'uni_tell'
 		end	
 	else
-		'Katja excitedly tells you that she has also been accepted into the university to study teaching and that it will be fun studying at the university together. She also tells you that she is going to move into room 26 at the university dorm at the beginning of August. You then spend the next few minutes talking excitedly about what you know about the program.'
+		'Katja excitedly tells you that she has also been accepted into the university to study teaching and that it will be fun studying at the university together.'+iif(katjaQW['QWstage'] = 2, 'She also tells you that she is going to move into room 26 at the university dorm at the beginning of August.', '')+'  You then spend the next few minutes talking excitedly about what you know about the program.'
 	end
 	if $loc = 'mey_home':
 		act 'Talk about something else': gt 'KatjaHomeTalk'
@@ -2076,10 +2054,8 @@ if $ARGS[0] = 'boy_no':
 	end
 	if $loc = 'katja_dorm':
 		act 'Stop talking': gt 'katja_dorm', 'start'
-	elseif mey_vika['key'] = 1:
-		act 'Leave the room': gt 'mey_home', 'start'
 	else
-		act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
+		act 'Leave the room': gt 'mey_home', 'start'
 	end
 end
 
@@ -2104,10 +2080,8 @@ if $ARGS[0] = 'boy_yes':
 	end
 	if $loc = 'katja_dorm':
 		act 'Stop talking': gt 'katja_dorm', 'start'
-	elseif mey_vika['key'] = 1:
-		act 'Leave the room': gt 'mey_home', 'start'
 	else
-		act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
+		act 'Leave the room': gt 'mey_home', 'start'
 	end
 end
 
@@ -2123,7 +2097,7 @@ if $ARGS[0] = 'fisting_ask':
 	'"But it does sound so hot!" she says. "Maybe... you could..." her voice trails off. After a moment, she continues. "Maybe you could show me..."' 
 	'"You want me to fist myself here in front of you?" you ask.' 
 	'"No, I want you... to..." her voice falters again.' 
-	'"You want me to fist you?" you ask. She doesn''t say anything, but slowly nods. "Right now?" Again she doesn''t say anything, but nods."'
+	'"You want me to fist you?" you ask. She doesn''t say anything, but slowly nods. "Right now?" Again she doesn''t say anything, but nods.'
 	act 'Show Katja how fisting is done': gt 'katja_sex', 'first_fisting'
 	act 'Say you will do it another time':
 		*clr & cla
@@ -2131,10 +2105,8 @@ if $ARGS[0] = 'fisting_ask':
 		'You tell Katja that you are not in the mood right now, but you might do it another time if she asks.'
 		if $loc = 'katja_dorm':
 			act 'Stop talking': gt 'katja_dorm', 'start'
-		elseif mey_vika['key'] = 1:
-			act 'Leave the room': gt 'mey_home', 'start'
 		else
-			act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
+			act 'Leave the room': gt 'mey_home', 'start'
 		end	
 	end
 end

+ 1 - 1
locations/Komp.qsrc

@@ -17,7 +17,7 @@ if $ARGS[0] = 'start':
 	act 'Play Solitaire (0:20)': gt 'komp', 'pasians'
 	
 	if AlbinaQW['flashdrive'] = 1:
-		if $loc = 'dachain' or $loc = 'sitr' or $loc = 'bedr' or $loc = 'bedr2x' or ($loc = 'uni_dorm' and $loc_arg = 'dorm_room') or ($loc = 'city_mansion_residence_2' and $loc_arg = 'yoffice') or ($loc = 'pav_shared_apt' and $loc_arg = 'pcsRoom') or ($loc = 'mey_home' and $loc_arg = '3') or ($loc = 'city_house_res_misc' and $loc_arg = 'livroom') or $loc = 'nichBedroomServant' or (locat['Anya_inroom'] = 0 and $loc = 'bedrPar'):
+		if $loc = 'dachain' or $loc = 'sitr' or $loc = 'bedr' or $loc = 'bedr2x' or ($loc = 'uni_dorm' and $loc_arg = 'dorm_room') or ($loc = 'city_mansion_residence_2' and $loc_arg = 'yoffice') or ($loc = 'pav_shared_apt' and $loc_arg = 'pcsRoom') or ($loc = 'mey_home' and $loc_arg = 'guest_bedroom') or ($loc = 'city_house_res_misc' and $loc_arg = 'livroom') or $loc = 'nichBedroomServant' or (locat['Anya_inroom'] = 0 and $loc = 'bedrPar'):
 			act 'Check Albina''s flash drive': gt 'albina_house_events', 'flash_drive'
 		end
 	end

+ 1 - 1
locations/NikoEv2.qsrc

@@ -718,7 +718,7 @@ if $ARGS[0] = 'Diner 1':
 									'<center><img <<$set_imgh>> src="images/pc/body/cum/cumface/blonde/15.jpg"></center>'
 									'"Wow, she walks around like that?" one of the bikers asks.'
 									'"Well she''s obviously a slut looking for customers," another replies.'
-									if salocatnow >= 5:
+									if pcs_bmi >= 26:
 										'"A slut, huh?" a trucker asks. "She looks more like a cow to me."'
 										'"Yeah, she looks like my old lady," another biker says. "But a pussy''s a pussy, I guess."'
 									else

+ 2 - 2
locations/NikoWhore.qsrc

@@ -152,7 +152,7 @@ if $ARGS[0] = 'Locker Room':
 															'"I told you she was a freak! She loves getting fucked. She was basically begging me to fuck her ass!" Dan laughs.'
 															'"Come on guys, we already have Sonia. We don''t need <<$pcs_nickname>> too," Vasily responds.'
 															'"She might be Sonia 2.0! It would be wrong for us <i>not</i> to show her off. Now is the perfect time too. The boys are still on the stairwell," Dan adds.'
-															if hotcat >= 7 and salocatnow < 5:
+															if hotcat >= 7 and pcs_bmi <= 25:
 																'"That sounds like a great idea. <<$pcs_nickname>> is much hotter than Sonia anyway. Let''s do it," Vitek responds before pulling you to your feet. "You''re coming with us."'
 															else
 																'"That sounds like a great idea. She looks like an overgrown pig, but we can always fuck her from behind. Alright, let''s do it," Vitek responds before pulling you to your feet. "You''re coming with us."'
@@ -331,7 +331,7 @@ if $ARGS[0] = 'Exposed':
 	'"What the fuck was she thinking? Why would she do this to herself? Is she that desperate for dick?" Lariska asks.'
 	'"I always thought she was a nice girl, but I guess she was just a whore all along. She hid it well," Lina responds.'
 	'Christina laughs. "You''re both so stupid! I knew she was a fucking whore all along, you just have to look at how she acts. So weak and pathetic and eager to please any boy that paid any attention to her." You hear several of the other girls agree with her.'
-	if hotcat >= 6 and salocatnow < 5:
+	if hotcat >= 6 and pcs_bmi <= 25:
 		'"Fuck yeah! I''ve been wanting to fuck <<$pcs_nickname>> since I first saw her drop that chalk in math class!" Roman laughs.'
 	else
 		'"I always thought about what it would be like to fuck <<$pcs_firstname>> since I first saw her drop that chalk in math class. If only she wasn''t so ugly..." Roman laughs.'

+ 24 - 7
locations/arousal.qsrc

@@ -14,8 +14,8 @@ It can be when receiving any of the following
 'erotic_nudity' - being aroused by nudity of others
 'trib' - rubbing pussy against another pussy
 'massage' - rubbing your body, back, feet, etc. with their hands/arms
-'cuni' - stimulation of your pussy by someones toungue
-'rimming' - stimulation of your anus by someones toungue
+'cuni' - stimulation of your pussy by someones tongue
+'rimming' - stimulation of your anus by someones tongue
 'vaginal' 'vaginal_finger' 'vaginal_fist' 'vaginal_dildo' 'vaginal_strap' 'vaginal_vibe' - stimulation of your vagina with a penis and various others
 'self_fisting' - fisting your own vagina
 'anal' 'anal_finger' 'anal_fist' 'anal_dildo' 'anal_strap' 'anal_vibe' - stimulation of your anus with a penis and various others
@@ -27,8 +27,8 @@ also when giving any of the following:
 'flashlite' - flashing underwear
 'flash' - flashing naked breasts/arse/vagina
 'massage_give' - rubbing their body, back, feet, etc. with your hands/arms
-'cuni_give' - stimulating someones pussy with your toungue
-'rimming_give' - stimulating someones anus with your toungue
+'cuni_give' - stimulating someones pussy with your tongue
+'rimming_give' - stimulating someones anus with your tongue
 'vaginal_finger_give' 'vaginal_fist_give' 'vaginal_dildo_give' 'vaginal_strap_give' 'vaginal_vibe_give' - stimulating someones vagina in various ways
 'clit_finger_give' - stimulating someones clit
 'anal_finger_give' 'anal_fist_give' 'anal_dildo_give' 'anal_vibe_give' 'anal_strap_give' - stimulating someones anus in various ways
@@ -38,10 +38,11 @@ also when giving any of the following:
 'titjob' - using boobs to jerk off a guy
 'footjob' - using feet to jerk off a guy
 'BDSM_give' - giving candle wax, flogging, leash play, bondage etc
-'pee_give' - peeing on somone
+'pee_give' - peeing on someone
 finally
 'foreplay' - receiving other stuff
 'foreplay_give' - giving other stuff
+'magicd_anal' 'magicd_vaginal' 'magicd_hj' 'magicd_bj' - to experience sex as if Sveta has a penis due to strapon and magic spell effect
 
 ARGS[1] for time taken in minutes - it is use partly for arousal calculation and partly for moving time ahead. If you want to calculate just the arousal and do not move time (simultaneous stimulation), use negative value.
 
@@ -171,8 +172,8 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 			end
 		end
 	end
-	!!	This is to allow a Succubus with the right skill level to handle any size then go back to original size
-	if succubusflag = 1 and sucskill >= 4:
+	!!	This is to allow a Succubus with the right skill level or elastigirl trait to handle any size then go back to original size
+	if (succubusflag = 1 and sucskill >= 4) or pcs_traits['elastigirl'] > 0:
 		if mid($ARGS[0],1,4) = 'vagi' and temp_dick ! pcs_vag:
 			if temp_dick < pcs_vag - 5 or temp_dick > pcs_vag + 5: pcs_mood -= 10
 			if sucvagorg = 0: sucvagorg = pcs_vag
@@ -706,6 +707,18 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		count['pee_give'] = 1
 		stim['act'] = 10
 		last_pee = totminut
+	elseif $ARGS[0] = 'magicd_anal':
+		count['magicd_anal'] = 1
+		stim['act'] = 80
+	elseif $ARGS[0] = 'magicd_vaginal':
+		count['magicd_vaginal'] = 1
+		stim['act'] = 90
+	elseif $ARGS[0] = 'magicd_hj':
+		count['magicd_hj'] = 1
+		stim['act'] = 50
+	elseif $ARGS[0] = 'magicd_bj':
+		count['magicd_bj'] = 1
+		stim['act'] = 60
 	end
 
 	!! anal acts
@@ -1218,6 +1231,10 @@ if $ARGS[0] = 'end':
 	gs 'arousal', 'count', 'BDSM_give'
 	gs 'arousal', 'count', 'pee_give'
 	gs 'arousal', 'count', 'massage_give'
+	gs 'arousal', 'count', 'magicd_anal'
+	gs 'arousal', 'count', 'magicd_vaginal'
+	gs 'arousal', 'count', 'magicd_hj'
+	gs 'arousal', 'count', 'magicd_bj'
 
 	gs 'arousal', 'count2', 'flashlite'
 	gs 'arousal', 'count2', 'flash'

+ 27 - 3
locations/ballet_npc.qsrc

@@ -12,13 +12,15 @@ $npc_usedname['A<<npctemp>>'] = 'Maya'
 $npc_notes['A<<npctemp>>'] = 'Maya is the daughter of Anitchka a freelance coryphée, she was encouraged to dance from a young age until she was nine when she started doing gymnastics. This changed when she was eleven when her mother became ill and she was asked to carry on the family tradition. Maya is a naturally gifted dancer and after six years is tipped to become one of Russia''s leading stars in the future.'
 npc_dob['A<<npctemp>>'] = 19990502
 npc_gender['A<<npctemp>>'] = 1
-gs 'npcstaticdefaults', 'defaults'
 npc_bust['A<<npctemp>>'] = 14
 npc_intel['A<<npctemp>>'] = 75
 hotcat_rating['A<<npctemp>>'] = 8
+gs 'npcstaticdefaults', 'defaults'
+gs 'npcstaticdefaults', 'skills', 'dance', 'sport'
+gs 'npcstaticdefaults', 'body', 'model'
 
 !! mod appearance NPC settings, height in cm, weight in kg
-$npc_haircolour['A<<npctemp>>'] = 'blonde'
+$npc_haircolour['A<<npctemp>>'] = 'Blonde'
 $npc_eyecolour['A<<npctemp>>'] = 'blue'
 $npc_height['A<<npctemp>>'] = 160
 $npc_weight['A<<npctemp>>'] = 50 
@@ -44,6 +46,28 @@ $npc_weight['A<<npctemp>>'] = 50
 !! NPC temp: 3507 - Gasha
 !! Gasha Morozova - The youngest in the class at 15, close friend of Nikita as the grew up in the same village. Nikita and Galina are often seen in each others company in the local coffee shop and rarely seen alone leading to rumours. She''s a bit of a foodie, and love sweet things which conflicts with keeping in shape for her dance career.
 
+npctemp = 3507
+$npc_firstname['A<<npctemp>>'] = 'Gasha'
+$npc_nickname['A<<npctemp>>'] = 'Gasha'
+$npc_lastname['A<<npctemp>>'] = 'Morozova'
+$npc_usedname['A<<npctemp>>'] = 'Gasha'
+$npc_notes['A<<npctemp>>'] = 'The youngest in the class at 15, close friend of Nikita as the grew up in the same village. Nikita and Galina are often seen in each others company in the local coffee shop and rarely seen alone leading to rumours. She''s a bit of a foodie, and love sweet things which conflicts with keeping in shape for her dance career.'
+npc_dob['A<<npctemp>>'] = 20000705
+npc_gender['A<<npctemp>>'] = 1
+npc_bust['A<<npctemp>>'] = 9
+npc_intel['A<<npctemp>>'] = 50
+hotcat_rating['A<<npctemp>>'] = 6
+gs 'npcstaticdefaults', 'defaults'
+gs 'npcstaticdefaults', 'skills', 'dance', 'sport'
+gs 'npcstaticdefaults', 'body', 'model'
+
+!! mod appearance NPC settings, height in cm, weight in kg
+$npc_haircolour['A<<npctemp>>'] = 'Brunette'
+$npc_eyecolour['A<<npctemp>>'] = 'Blue'
+$npc_height['A<<npctemp>>'] = 145
+$npc_weight['A<<npctemp>>'] = 40 
+
+
 !! NPC temp: 3508 - Calina
 !! NPC temp: 3509 - Ruza
 !! Calina and Ruza Sokolova - Twin dancers. Not interested in ballet, but took the course to further their education into becoming dancers. Age 17. They also professional models with a Moscow agency. 
@@ -63,7 +87,7 @@ gs 'npcstaticdefaults', 'defaults'
 $npc_thdick['A<<npctemp>>'] = 'slim'
 npc_dick['A<<npctemp>>'] = 10
 npc_sexskill['A<<npctemp>>'] = 2
-npc_intel['A<<npctemp>>'] = 57
+npc_intel['A<<npctemp>>'] = 67
 hotcat_rating['A<<npctemp>>'] = 8
 npc_spermpot['A<<npctemp>>'] = 15000
 

+ 10 - 10
locations/ballet_secrets.qsrc

@@ -13,7 +13,7 @@ if $ARGS[0] = 'init':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Ballet Secrets'
-	$setloc['StageImage'] =	'<<$default_img_path>>ballet-shop-window'
+	$setloc['StageImage'] =	'<<$default_img_path>>ballet-shop-window.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
@@ -45,7 +45,7 @@ end
 if $ARGS[0] = 'first_visit':
 	balletqw['ballet_secrets_visit'] = 1
 	balletqw['shoe_order'] = daystart + 14
-	$setloc['StageImage'] =	'<<$default_img_path>>ballet_secrets_fitting_1'
+	$setloc['StageImage'] =	'<<$default_img_path>>ballet_secrets_fitting_1.jpg'
 	minut += 60
 	gs 'core_library', 'stage_title'
 	gs 'stat'
@@ -71,7 +71,7 @@ if $ARGS[0] = 'reception':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Ballet Secrets - Reception'
-	$setloc['StageImage'] =	'<<$default_img_path>>reception'
+	$setloc['StageImage'] =	'<<$default_img_path>>reception.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
@@ -195,7 +195,7 @@ if $ARGS[0] = 'physio':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Ballet Secrets - Physio'
-	$setloc['StageImage'] =	'<<$default_img_path>>physio'
+	$setloc['StageImage'] =	'<<$default_img_path>>physio.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
@@ -210,7 +210,7 @@ if $ARGS[0] = 'gymnastics_courses':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Ballet Secrets - Gymnastics Class'
-	$setloc['StageImage'] =	'<<$default_img_path>>gymnastics'
+	$setloc['StageImage'] =	'<<$default_img_path>>gymnastics.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
@@ -224,7 +224,7 @@ if $ARGS[0] = 'ballet_courses':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Ballet Secrets - Courses'
-	$setloc['StageImage'] =	'<<$default_img_path>>ballet_class'
+	$setloc['StageImage'] =	'<<$default_img_path>>ballet_class.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
@@ -236,7 +236,7 @@ if $ARGS[0] = 'yoga_courses':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Ballet Secrets - Yoga Class'
-	$setloc['StageImage'] =	'<<$default_img_path>>yoga_class'
+	$setloc['StageImage'] =	'<<$default_img_path>>yoga_class.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
@@ -282,7 +282,7 @@ if $ARGS[0] = 'clothing':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Ballet Secrets - Dancewear'
-	$setloc['StageImage'] =	'<<$default_img_path>>sports_shop'
+	$setloc['StageImage'] =	'<<$default_img_path>>sports_shop.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
@@ -294,7 +294,7 @@ if $ARGS[0] = 'quest':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Ballet Secrets'
-	$setloc['StageImage'] =	'<<$default_img_path>>quest'
+	$setloc['StageImage'] =	'<<$default_img_path>>quest.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
@@ -305,7 +305,7 @@ if $ARGS[0] = 'food':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Food Court'
-	$setloc['StageImage'] =	'<<$default_img_path>>food_court'
+	$setloc['StageImage'] =	'<<$default_img_path>>food_court.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'

+ 55 - 35
locations/bedrPar.qsrc

@@ -1,26 +1,36 @@
 # bedrPar
+!! Date refactored: 31st March, 2024
+!! Author: Myles
+!!
+!! Version: .01 - initial refactoring
+!! 
+!! Desc: {MC} and sisters family bedroom links to family flat corridor
 
-*clr & cla
-fromoutside = iif($loc = 'bedrPar',0,1)
-menu_off = 0
-minut += 1
-!!day check so mom doesn''t think you have been out all night if you get up very early 
-motherworry[1] = daystart
-gs 'shortgs', 'setloc', 'bedrPar', $ARGS[0]
-$location_type = 'private'
-$locclass = 'bedr'
-gs 'themes', 'indoors'
-gs 'stat'
-gs 'family_schedule'
-!! ballet career
-gs 'core_library', 'init'
 
-!! This is runs only once, just to make sure that Sveta can sing from the start, does not have to wait a whole day for `cikl` to run.
-if ml_performance['max_perform_minutes'] = 0: ml_performance['max_perform_minutes'] = pcs_instrmusic + pcs_vokal
+!! Set up default image paths for npc and location:
+!! Start location initialisation
+!! Set location header - img path is set in init
+!! Paths are not set due to content structure
 
-if $ARGS[0] = '' or $ARGS[0] = 'start':
+
+!! Begin location content
+if $ARGS[0] = '' or $ARGS[0] = 'start':	
+	!! Call in location default actions
+	gs 'home_family_init', 'init'
+	!! Set location vars:
+	fromoutside = iif($loc = 'bedrPar',0,1)
+	
+	!!day check so mom doesn''t think you have been out all night if you get up very early 
+	motherworry[1] = daystart
+	!! This is runs only once, just to make sure that Sveta can sing from the start, does not have to wait a whole day for `cikl` to run.
+	if ml_performance['max_perform_minutes'] = 0: ml_performance['max_perform_minutes'] = pcs_instrmusic + pcs_vokal
+
+	!! Set up game location data
+	$locclass = 'bedr'
+	gs 'shortgs', 'setloc', 'bedrpar', $ARGS[0]
+	!! End location initialisation
 	if locat['Mother'] = 26 and fromoutside and func('homes_properties', 'can_live_here'):
-		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/prost1.jpg"></center>'
+		'<center><img <<$set_imgh>> src="<<$mother_img_path>>prost1.jpg"></center>'
 		if mc_inventory['equipped_condoms'] > 0 and rand(1,3) = 1 and mom['condoms'] = 0:
 			gt 'mother', 'condom_find'
 		elseif mc_inventory['dildo_small'] + mc_inventory['dildo_normal'] + mc_inventory['dildo_big'] + mc_inventory['dildo_large'] + mc_inventory['dildo_huge'] + mc_inventory['dildo_enormous'] + mc_inventory['dildo_gigantic'] > 0 and motherQW['seen_dildos'] ! 1 and rand(1,3) = 1:
@@ -80,15 +90,20 @@ if $ARGS[0] = '' or $ARGS[0] = 'start':
 		end
 		gs 'stat'
 
-		act 'Leave': gt 'korrPar'
+		act 'Leave': minut += 1 & gt 'korrPar'
 	else
 		if func('homes_properties', 'can_live_here'):
-			'<center><h1><font color="maroon">Your bedroom</font></h1></center>'
-		else
-			'<center><h1><font color="maroon">Your old bedroom</font></h1></center>'
+			$setloc['StageTitle'] = 'Your bedroom'
+		else		
+			$setloc['StageTitle'] = 'Your old bedroom'
+			
 		end
+		!! Display header and banner image
 		! WD: Correct Image path ~ "images/qwest/alter/<<$loc>>.jpg"
-		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/bedrpar.jpg"></center>'
+		$setloc['StageImage'] = '<<$default_img_path>>/bedrpar.jpg'
+		gs 'core_library', 'stage_title'
+
+		!! Location default description:
 		*nl
 		if func('homes_properties', 'is_current_home'):
 			'This is the small bedroom you share with your sister, Anya. On one side of the room is a <a href="exec:gt ''wardrobe'', ''start''">wardrobe</a> where you can choose outfits and organise your clothing.'
@@ -98,6 +113,8 @@ if $ARGS[0] = '' or $ARGS[0] = 'start':
 			'This small bedroom you used to share with your sister, Anya. The furniture is old and basic.'
 		end
 		*nl
+		*nl
+		!! End default Description
 		if $ml_guitar['location'] = $loc: 'Your guitar rests on its stand next to your bed.'
 
 		if ParrotQW['Owned2'] = 1 and func('homes_properties', 'is_current_home'):
@@ -311,13 +328,16 @@ end
 
 if $ARGS[0] = 'intro':
 	CLOSE ALL
+	$setloc['StageTitle'] = 'Your Bedroom'
+	$setloc['StageImage'] = 'characters/pavlovsk/resident/mom/prost4.jpg'
+	gs 'shortgs', 'setloc', 'bedrpar', 'start'
 	grandmaQW['last_month_paid'] = month
 	menu_off = 1
 	hour = 6
 	gs 'stat'
 	music_loop = 0
-	'<center><h1><font color="maroon">Your Bedroom</font></h1></center>'
-	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/prost4.jpg"></center>'
+	!! Display the header text and banner image
+	gs 'core_library', 'stage_title'
 	'You sudenly hear a familiar voice yelling out. "<<$pcs_nickname>>, time to get up! You can''t spend the whole day laying around!"'
 	wait 1000
 	$temp_nickname = input('<center>What name do you address your mother by?<br>Mother (default), Mum, Mom, Mama, etc.</center>')
@@ -327,8 +347,8 @@ if $ARGS[0] = 'intro':
 		cla & *clr
 		minut += 2
 		gs 'stat'
-		'<center><h1><font color="maroon">Your Bedroom</font></h1></center>'
-		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/prost5.jpg"></center>'
+		$setloc['StageImage'] = 'characters/pavlovsk/resident/mom/prost5.jpg'
+		gs 'core_library', 'stage_title'
 		'You tiredly open your eyes and see your mother standing over you. "Fifteen more minutes..." you mumble.'
 		'Your mother lets out a loud sigh. "No, up now!" she says as she yanks the covers off.'
 		'"<<$npc_nickname[''A29'']>>!" you exclaim as you feel a slightly cold breeze hit your body.'
@@ -337,24 +357,24 @@ if $ARGS[0] = 'intro':
 			cla & *clr
 			minut += 2
 			gs 'stat'
-			'<center><h1><font color="maroon">Your Bedroom</font></h1></center>'
-			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/prost4.jpg"></center>'
+			$setloc['StageImage'] = 'characters/pavlovsk/resident/mom/prost4.jpg'
+			gs 'core_library', 'stage_title'
 			'As soon as you get off your now coverless bed, your mother is quick to resume her nagging, repeating what you already heard from her a few moments ago. "Summer is no excuse to laze around all day. You can''t sleep in anymore, not even for another fifteen minutes." She''s not even looking at you while she talks, but luckily for you that means she misses you rolling your eyes.'
 			'"What are you going to do when school starts, or when you get a job? You better get into the habit of setting your alarm so you can wake up bright and early."'
 			act 'Continue':
 				cla & *clr
 				minut += 2
 				gs 'stat'
-				'<center><h1><font color="maroon">Your Bedroom</font></h1></center>'
-				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/prost5.jpg"></center>'
+				$setloc['StageImage'] = 'characters/pavlovsk/resident/mom/prost5.jpg'
+				gs 'core_library', 'stage_title'
 				'You let out an exasperated sigh. "Yeah yeah I know, you told me that already. So how early are we talking?"'
 				'Your mother shoots you a sharp look and you know to fix your attitude or else. "Well, that depends on what you plan to do in the morning. There''s breakfast, showering and brushing your teeth, doing your hair and then makeup and shaving if you really need to. If I remember right... Anya used to wake up at 06:00 for school."'
 				act 'Continue':
 					cla & *clr
 					minut += 2
 					gs 'stat'
-					'<center><h1><font color="maroon">Your Bedroom</font></h1></center>'
-					'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/prost4.jpg"></center>'
+					$setloc['StageImage'] = 'characters/pavlovsk/resident/mom/prost4.jpg'
+					gs 'core_library', 'stage_title'
 					'"You want me to wake up that early?!" you huff. "Can''t I wake up at like... 07:00?"'
 					'Your mother shrugs. "You could, but then you might have to cut corners or even end up running late to school, and I won''t be having any of that. Your teachers won''t either," she warns before making her way towards the kitchen.'
 					if stat['think_virgin'] = 1: '"Oh, don''t forget; you need to head down to the clinic and see the gynecologist for a check up. Not just once, but every month!" she adds quickly.'
@@ -363,8 +383,8 @@ if $ARGS[0] = 'intro':
 						cla & *clr
 						minut += 2
 						gs 'stat'
-						'<center><h1><font color="maroon">Your Bedroom</font></h1></center>'
-						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/prost5.jpg"></center>'
+						$setloc['StageImage'] = 'characters/pavlovsk/resident/mom/prost5.jpg'
+						gs 'core_library', 'stage_title'
 						'Before you can finish, she cuts you off. "I''m not going to have you running around town like so many of those other girls I see! Opening their legs for any boy that comes around..." She shakes her head in disgust. "I want a referral every month and it better tell me you''re still a virgin or else, understand?" she says before she storms out of the room without giving you a chance to respond.'
 						act 'I understand...':gt 'alarmclock', 'start'
 					end

+ 41 - 27
locations/bedrPar2.qsrc

@@ -1,23 +1,37 @@
 # bedrPar2
-!2021/04/26
-if $ARGS[0] = '':
-	CLOSE ALL
-	*clr & cla
-	$loc = 'bedrPar2'
-	$loc_arg = ''
-	$locclass = 'bedr'
-	$location_type = 'private'
-	$menu_loc = 'bedrPar2'
-	$menu_arg = ''
-	menu_off = 0
-	minut += 1
-	gs 'stat'
-	gs 'themes', 'indoors'
-	gs 'family_schedule'
-	'<center><h1><font color="maroon">Master bedroom</font></h1></center>'
-	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/bedrpar2.jpg"></center>'
+!! Date refactored: 31st March, 2024
+!! Author: Myles
+!!
+!! Version: .01 - initial refactoring
+!! 
+!! Desc: Paernts bedroom links to family flat corridor
+
+!! Call in location default actions
+gs 'home_family_init', 'init'
+
+!! Set location header - img path is set in init
+$setloc['StageTitle'] = 'Parents Bedroom'
+$setloc['StageImage'] = '<<$default_img_path>>/bedrpar2.jpg'
+
+!! Set location vars:
+
+
+!! Set up game location data
+$locclass = 'bedr'
+gs 'shortgs', 'setloc', 'bedrPar2', $ARGS[0]
+!! End location initialisation
+
+
+!! Begin location content
+
+if $ARGS[0] = '' or $ARGS[0] = 'start':
+	!! Display header and banner image
+	gs 'core_library', 'stage_title'
+	!! Location default description:
 	*nl
 	'The room in which your parents sleep. Their large bed, <a href="exec: gt ''bedrPar2'',''parents_wardrobe''">wardrobe</a> and other closets take up most of the space.'
+	*nl
+	!! End default Description
 	if locat['Fam_inGad'] = 0:
 		if locat['Mother'] = 1 and locat['Stepdad'] = 1:
 			'Your mother and stepfather are sleeping on the bed.'
@@ -28,7 +42,7 @@ if $ARGS[0] = '':
 		end
 	end
 
-	act 'Return to the hallway':gt 'korrPar'
+	act 'Return to the hallway':minut += 1 & gt 'korrPar'
 
 	if locat['Fam_inGad'] = 1 or (locat['Fam_inGad'] = 0 and hour > 6 and hour < 21):
 		if kamasutra_day ! daystart:
@@ -60,7 +74,7 @@ if $ARGS[0] = 'kamasutra':
 	*clr & cla
 	menu_off = 1
 	minut += 1
-	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/book.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<$default_img_path>>book.jpg"></center>'
 	'The cover says "Kama Sutra"'
 	act 'Leave': gt $loc, $loc_arg
 	act 'Read': kamasutra_page = 0 & kamasutra_day = daystart & gt 'bedrPar2', 'read_book'
@@ -81,7 +95,7 @@ end
 ! parent''s wardrobe
 if $ARGS[0] = 'parents_wardrobe':
 	*clr & cla
-	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/wardrobe.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<$default_img_path>>wardrobe.jpg"></center>'
 	'An old looking wardrobe, probably from the Soviet times.'
 	act 'Leave ': gt $loc, $loc_arg
 	act 'Rummage': gt 'bedrPar2', 'wardrobe_search'
@@ -95,14 +109,14 @@ if $ARGS[0] = 'wardrobe_search':
 		exit
 	end
 	if rand(1,100) > 75:
-		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/wardrobesearch'+rand(1,4)+'.jpg"></center>'
+		'<center><img <<$set_imgh>> src="<<$default_img_path>>wardrobesearch'+rand(1,4)+'.jpg"></center>'
 		$failwords[0]= 'You don''t find anything interesting.'
 		$failwords[1]= 'You find some clothes and underwear.'
 		$failwords[2]= 'You dig through your mother''s closet, but find nothing interesting except underwear.'
 		*pl $failwords[rand(0,2)]
 		killvar '$failwords'
 	else
-		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/wardrobetoy.jpg"></center>'
+		'<center><img <<$set_imgh>> src="<<$default_img_path>>wardrobetoy.jpg"></center>'
 		$findmomtoy[0]= 'Digging through the closet, you find a <a href="exec: gt ''bedrPar2'',''momtoy_play''">dildo</a>.'
 		$findmomtoy[1]= 'Rummaging through your mother''s lingerie, you find a small <a href="exec: gt ''bedrPar2'',''momtoy_play''">dildo</a>.'
 		$findmomtoy[2]= 'You find your mother''s <a href="exec: gt ''bedrPar2'',''momtoy_play''">toy</a>.'
@@ -131,7 +145,7 @@ if $ARGS[0] = 'peek':
 	parentsexday = daystart
 	minut += 2
 	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/sex/momvlad1.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<$mother_img_path>>sex/momvlad1.jpg"></center>'
 	'You crack the door open just a little and you see your mother and Vladimir near their bed. "Stop! The kids are here," your mother says as Vlad starts running his hands over her body.'
 	'He doesn''t seem to care about what she says as he doesn''t stop. "Come on, they won''t hear us and you know you want it."'
 	act 'Leave': gt 'korrPar'
@@ -139,7 +153,7 @@ if $ARGS[0] = 'peek':
 	act 'Keep peeking':
 		cla & *clr
 		gs 'stat'
-		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/sex/momvlad2.jpg"></center>'
+		'<center><img <<$set_imgh>> src="<<$mother_img_path>>sex/momvlad2.jpg"></center>'
 		'You mother seems to be loving the attention and doesn''t put up much of a fight as he starts to undress her. Once she''s mostly naked, he pushes her down on the bed so she''s sitting on it in front of him, her head about crotch height to him. Knowing what he wants, she opens the fly on his pants and pulls out his cock, stroking it a few times in her hand until he gets hard. She then takes his dick into her mouth and starts sucking it. He moans softly as she does. "Fuck, you''re the best cocksucker ever, Natasha."'
 		gs 'arousal', 'voyeur_sex', 3
 		gs 'stat'
@@ -149,7 +163,7 @@ if $ARGS[0] = 'peek':
 		act 'Keep peeking':
 			cla & *clr
 			gs 'stat'
-			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/sex/momvlad3.jpg"></center>'
+			'<center><img <<$set_imgh>> src="<<$mother_img_path>>sex/momvlad3.jpg"></center>'
 			'After spending several minutes sucking Vlad''s cock, she helps him strip while continuing to suck his dick. Once he''s naked, he lies down on the bed and she straddles him and quickly starts riding his dick reverse cowgirl style.'
 			'Both of them start moaning as they fuck. "Oh god Vlad, your dick feels so good in my pussy! It''s so big!"'
 			gs 'arousal', 'voyeur_sex', 5
@@ -160,7 +174,7 @@ if $ARGS[0] = 'peek':
 			act 'Keep peeking':
 				cla & *clr
 				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/sex/momvlad4.jpg"></center>'
+				'<center><img <<$set_imgh>> src="<<$mother_img_path>>sex/momvlad4.jpg"></center>'
 				'Vlad suddenly grabs her and throws her on her side on the bed. He turns on his side, lifting up her leg with one hand while using the other to guide his cock. He feels around until he places the head of his dick against her anus, then pushes it in, using only her pussy juices for lubrication. It slides in surprisingly easy and you can only guess that this is far from the first time your mother has had a dick in her ass. They both moan in pleasure and she rubs her clit as Vlad fucks her ass.'
 				gs 'arousal', 'voyeur_sex', 5
 				gs 'stat'
@@ -169,7 +183,7 @@ if $ARGS[0] = 'peek':
 				act 'Keep peeking':
 					cla & *clr
 					gs 'stat'
-					'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/sex/momvlad5.jpg"></center>'
+					'<center><img <<$set_imgh>> src="<<$mother_img_path>>sex/momvlad5.jpg"></center>'
 					'They keep going for several more minutes until Vlad starts to pant and buries his dick balls deep in your mother''s ass and lets out a loud moan as he twitches. After a few seconds, he pulls out of her and rolls off the bed as she gets on her back and spreads her ass, giving both you and Vlad a good view of her asshole as his cum starts leaking out of it.'
 					'"You''re such a nasty bitch, Natasha!" he laughs.'
 					'She smiles at him. "That''s why you love me," she replies. They start getting cleaned up and you decide it''s time to go before you get caught.'

+ 68 - 19
locations/body.qsrc

@@ -32,6 +32,13 @@
 !! imgset6ovr[x] and imgset7ovr[x] = a flag to indicate that an image set (x) has its own image 6 and/or 7
 !! extended lash functionality; pcs_lashes = n are: {2, largest natural size}, {3, with temporary false lashes on or basic 2D lash extensions}, {4, with ornate false lashes on or lavish 4D extensions}, {5, with extremely ornate, 6D-style extensions} - xerya
 
+
+!! Pregnancy weight gain:
+!! Weight gain in the first 5 weeks (roughly pregChem < 800. -> Pregtime = pregchem / 24) is negligable
+!! Afterwards we approximate the weight gain as mass = ((pregChem - 800)^2 * 33 / (7000 - 800)^2) approx (pregChem - 800)^2 / (1080)^2
+
+
+
 if $ARGS[0] = 'RegularUpdate':
 	if dounspell = 0:
 		gs 'body', 'UpdateBodyMeasurement'
@@ -58,7 +65,7 @@ if $ARGS[0] = 'UpdateBodyMeasurement':
 	pcs_hips  = (pcs_hgt   * bodyVars['hratio']) / 100 + bodyVars['vhips']
 	pcs_waist = (pcs_hips  * bodyVars['wratio']) / 100 + bodyVars['vofat']
 	pcs_band  = (pcs_waist * bodyVars['bratio']) / 100 + bodyVars['vofat']
-	pcs_bust  = (pcs_waist * bodyVars['bratio']) / 100 + pcs_mass['bust'] + bodyVars['bust_magic'] + bodyVars['bust_silicone'] + max(-10, min(bodyVars['bust_other'], 10))
+	pcs_bust  = (pcs_waist * bodyVars['bratio']) / 100 + pcs_mass['bust'] + bodyVars['bust_magic'] + bodyVars['bust_silicone'] + max(-10, min(bodyVars['bust_other'], 10)) + pcs_mass['preg'] / 5
 	pcs_butt  = min(pcs_mass['butt'], 50) + bodyVars['butt_bonus'] + bodyVars['butt_silicone'] + bodyVars['butt_cheat'] + pcs_butt_tr + max(-10, min(bodyVars['butt_other'], 10))
 
 	!! pcs_cupsize = pcs_mass['bust'] + bodyVars['bust_magic'] + bodyVars['bust_silicone'] - bodyVars['vofat']
@@ -71,7 +78,7 @@ if $ARGS[0] = 'CalcWeight':
 	This is an approximation, so that a sveta with a different height has the same BMI for the same pcs_mass['body'] values.
 	The default height of 170 cm is used as a starting point. The bmi deviates by 0.06 for a deviation of 10cm and 0.4 for a deviation of 20cm.}
 
-	result = (2820 + 33 * (pcs_mass['body'] + pcs_mass['bust'] + pcs_mass['butt']) + 70 * (pcs_hgt - 165)) / 100
+	result = (2820 + 33 * (pcs_mass['body'] + pcs_mass['bust'] + pcs_mass['butt'] + pcs_mass['preg']) + 70 * (pcs_hgt - 165)) / 100
 
 	!{Do not remove (julzor)
 	This is the old more complex function, but it doesn''t work correctly.
@@ -83,7 +90,7 @@ end
 
 if $ARGS[0] = 'CalcWeight2':
 	!! weight2 = 10 * weight
-	result = (2820 + 33 * (pcs_mass['body'] + pcs_mass['bust'] + pcs_mass['butt']) + 70 * (pcs_hgt - 165)) / 10
+	result = (2820 + 33 * (pcs_mass['body'] + pcs_mass['bust'] + pcs_mass['butt'] + pcs_mass['preg']) + 70 * (pcs_hgt - 165)) / 10
 	!result = (pcs_hgt * 62 / 17) + (10 * (vhips + (bodyVars['vofat'] * 2))) / 4 + 10 * tits
 end
 
@@ -322,15 +329,44 @@ if $ARGS[0] = 'Update_Body':
 	if bodyresetflag = 1 or cheatNoFat = 1:
 		fat = 0
 	else
-		if fat > (17 + vitalbuf / 25):
-			pcs_mass['body'] += 1
-			fat = 0
-		elseif fat < -(2 + vitalbuf / 10):
-			pcs_mass['body'] -= 1
-			fat = 0
+		if pregChem >= 800 and (pregChem - 800)*(pregChem - 800) >= bodyVars['pchem_next']:
+			pcs_mass['preg'] += 1
+			bodyVars['pchem_next'] += 1166400	& !! 1080 * 1080
+		elseif bodyVars['pchem_next'] > 0 and bodyVars['pchem_next'] - 1166400 >= (pregChem - 800) * (pregChem - 800):
+			if pcs_mass['preg'] > 0:
+				pcs_mass['preg'] -= 1
+				bodyVars['pchem_next'] -= 1166400	& !! 1080 * 1080
+			else
+				pcs_mass['preg'] = 0
+				bodyVars['pchem_next'] = 0
+			end
+		end
+		if pregChem >= 800:
+			if fat > (12 + vitalbuf / 25):
+				pcs_mass['body'] += 1
+				fat = 0
+			elseif fat < -(7 + vitalbuf / 10):
+				pcs_mass['body'] -= 1
+				fat = 0
+			else
+				if fat < 0:
+					fat = fat / 2
+				else
+					fat = fat / 6
+				end
+			end
 		else
-			fat = fat / 4
+			if fat > (17 + vitalbuf / 25):
+				pcs_mass['body'] += 1
+				fat = 0
+			elseif fat < -(2 + vitalbuf / 10):
+				pcs_mass['body'] -= 1
+				fat = 0
+			else
+				fat = fat / 4
+			end
 		end
+
 	end
 
 	!!This is the pcs_mass['body'] cap for the weight approximation
@@ -379,9 +415,9 @@ if $ARGS[0] = 'Update_Body':
 
 	!!This will trigger the warning notices in the bathing code (the +/- 12 should always be +/- 11 + the max change to pcs_mass['body'] w/ fat)
 
-!	if salolast > pcs_mass['body'] and pcs_mass['body'] <= (20 * (salocatnow - 1)) + 12:
+!	if salolast > pcs_mass['body'] + pcs_mass['butt'] and pcs_mass['body'] + pcs_mass['butt'] <= (20 * (salocatnow - 1)) + 12:
 !		bodyVars['weight_warning'] = 1
-!	elseif salolast < pcs_mass['body'] and pcs_mass['body'] >= (20 * (salocatnow + 1)) - 12:
+!	elseif salolast < pcs_mass['body'] + pcs_mass['butt'] and pcs_mass['body'] + pcs_mass['butt'] >= (20 * (salocatnow + 1)) - 12:
 !		bodyVars['weight_warning'] = 2
 !	end
 
@@ -398,7 +434,7 @@ if $ARGS[0] = 'Update_Body':
 	!!This will trigger the dream for the option to use magic to increase bust
 	!!Three nos at the dream will lock it out (1 yes resets the count)
 	if pcs_magik >= 5 and MagikDostup = 0 and magf2bdo = 0:
-		if tits < 10 and salolast < pcs_mass['body'] and pcs_mass['body'] >= (20 * (salocatnow + 1)) - 11:
+		if tits < 10 and salolast < pcs_mass['body'] + pcs_mass['butt'] and pcs_mass['body'] + pcs_mass['butt'] >= (20 * (salocatnow + 1)) - 11:
 			if mgf2bnocnt < 3:
 				magf2bdo = 2
 			else
@@ -412,8 +448,8 @@ if $ARGS[0] = 'Update_Body':
 	if salocatnow > salocatlast: salocatlast += 1
 
 	!!This is for use in the warning code and as part of the reset routines
-	if salolast > pcs_mass['body']: salolast -= 1
-	if salolast < pcs_mass['body']: salolast += 1
+	if salolast > pcs_mass['body'] + pcs_mass['butt']: salolast -= 1
+	if salolast < pcs_mass['body'] + pcs_mass['butt']: salolast += 1
 
 	!!Setting the pcs_apprnc bonus based on fat and strength
 	temp_bmi = func('body', 'CalcBMI2')
@@ -750,6 +786,17 @@ if $ARGS[0] = 'Reset_mass_distribution':
 	gs 'body', 'Update_vhips'
 end
 
+if $ARGS[0] = 'Reset_preg_mass':
+	bodyVars['pchem_next'] = 0
+	pcs_mass['preg'] = 0
+	:set_preg_body_loop
+	if pregChem >= 800 and (pregChem - 800) * (pregChem - 800) >= bodyVars['pchem_next']:
+		bodyVars['pchem_next'] += 1166400	& 1080 * 1080
+		pcs_mass['preg'] += 1
+		jump 'set_preg_body_loop'
+	end
+end
+
 
 if $ARGS[0] = 'Set_mass_distribution_using_body':
 	pcs_mass['body'] = ARGS[1]
@@ -847,7 +894,7 @@ if $ARGS[0] = 'softreset':
 	!!This is for use in immediately updating shape if something has caused a large change in pcs_mass['body'], primarily fat burners and plastic surgery
 	bodyresetflag = 1
 	:resetloop
-	if pcs_mass['body'] ! salolast:
+	if pcs_mass['body'] + pcs_mass['butt'] ! salolast:
 		if gamestartflag = 1:
 			salobustdo = 1
 		end
@@ -884,14 +931,14 @@ if $ARGS[0] = 'hardreset':
 		gs 'body', 'Update_Body'
 
 		pcs_mass['body'] = 60 + (2 * pcs_hips) - (pcs_hgt * bodyVars['hratio']) / 50
-		if pcs_mass['body'] < 10:
+		if pcs_mass['body'] + pcs_mass['butt'] < 10:
 			salocatnow = 0
 		else
-			salocatnow = 1 + (pcs_mass['body'] - 10) / 20
+			salocatnow = 1 + (pcs_mass['body'] + pcs_mass['butt'] - 10) / 20
 		end
 
 		salocatlast = salocatnow
-		salolast = pcs_mass['body']
+		salolast = pcs_mass['body'] + pcs_mass['butt']
 
 		if pcs_mass['butt_gen'] = 0:
 			pcs_mass['butt_gen'] = 20
@@ -917,6 +964,8 @@ if $ARGS[0] = 'hardreset':
 		pcs_mass['bust_message'] = pcs_mass['bust']
 		pcs_mass['butt_message'] = pcs_mass['butt']
 
+		gs 'body', 'reset_preg_mass'
+
 		bodyresetflag = 0
 		normbuffpick = 0
 		bodyVars['weight_warning'] = 0

+ 38 - 34
locations/brother_voyeur.qsrc

@@ -8,6 +8,10 @@ if (npc_dob['A34'] mod 10000)/100 = month and (npc_dob['A34'] mod 100) > day: br
 dick = npc_dick['A<<34>>']
 if npc_QW['A34'] > 20 and npc_QW['A34'] < 25: npc_QW['A34'] = 20
 
+razors_to_use['all']   = min(3, max(1, (pcs_leghair*4 + max(0, pcs_pubes-shave_length))/20))
+razors_to_use['pussy'] = min(2, max(1, (max(0, pcs_pubes-shave_length))/20))
+razors_to_use['legs']  = min(3, max(1, (pcs_leghair*4)/20))
+
 !! Variables used
 !! brothersawpirsF: Flag 0/1 Have your brother seen your nipple piercings
 !! npc_rel['A34']: relationship
@@ -687,7 +691,7 @@ if $ARGS[0] = 'brother_wash':
 			'As you rinse off, your brother gives a meaningful look at your lower body and you follow his gaze to your <<$pc_desc[''pubes'']>> pussy.'
 		end
 		'"Aren''t you going to shave?"'
-		if mc_inventory['razor'] =  0:
+		if mc_inventory['razor'] = 0:
 			act'"I can''t. I don''t have any razors"':
 				cla & *nl
 				brothershave[1] = daystart + 2
@@ -779,7 +783,7 @@ if $ARGS[0] = 'brother_shower_shave':
 		'"Yeah, you''re probably right. I should shave," you say looking down at yourself, frowning at the growing body hair.'
 	end
 	
-	if pcs_leghair > 3 and pcs_pubes > 3 and mc_inventory['razor'] =  1:
+	if pcs_leghair > 3 and pcs_pubes > 3 and mc_inventory['razor'] < razors_to_use['all']:
 		msg'As you pick up your razor, you realize that it''s probably only sharp enough for one more use. You''ll have to decide between a <<$pc_desc[''pubes'']>> pussy or <<$pc_desc[''legs'']>> legs.'
 	else
 		*nl
@@ -797,7 +801,7 @@ if $ARGS[0] = 'brother_shower_shave':
 end
 
 if $ARGS[0] = 'shave_both':
-	if mc_inventory['razor'] >= 2:
+	if mc_inventory['razor'] >= razors_to_use['all']:
 		if pcs_leghair > 3 and pcs_pubes > 3:
 			act 'Shave your legs and pussy (0:15)':
 				npc_rel['A34'] += 3
@@ -807,7 +811,7 @@ if $ARGS[0] = 'shave_both':
 				pcs_pubes = 0
 				pcs_horny += 5
 				brothershave += 1
-				mc_inventory['razor'] -=  2
+				mc_inventory['razor'] -= razors_to_use['all']
 				'<center><video autoplay loop src="images/shared/home/bathroom/shave.mp4"></center>'
 				'"Yeah, sure. Why not?" you smile.'
 				'You lather up your legs and crotch and then start carefully shaving them. Kolka stares at you and watches the process intently.'
@@ -846,21 +850,21 @@ if $ARGS[0] = 'shave_both':
 end
 
 if $ARGS[0] = 'shave_legs':
-	if pcs_leghair > 3:
+	if pcs_leghair > 3 and mc_inventory['razor'] >= razors_to_use['legs']:
 		act 'Shave your legs (0:05)':
 			npc_rel['A34'] += 2
 			cla & *clr
 			minut += 5
 			pcs_leghair = 0
 			pcs_horny += 5
-			mc_inventory['razor'] -=  1
+			mc_inventory['razor'] -= razors_to_use['legs']
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/shared/home/bathroom/shave2.jpg"></center>'
 			'You lather up your legs and then start carefully shaving them.'
 			*nl
 			if pcs_pubes > 3:
 				'Kolka frowns. "You''re not going to shave your '+iif(pcs_pubes <= 20, 'pussy?"', 'bush?"')
-				if mc_inventory['razor'] =  0:
+				if mc_inventory['razor'] < razors_to_use['pussy']:
 					act'"I can''t. Razor''s gone dull"':
 						cla & *nl
 						'"I couldn''t even if I wanted to," you say to him wistfully. He looks at you in confusion. "Razor''s gone dull." You thumb the razor to show him. Need a sharp razor to shave. <i>Especially</i> down there," you smile.'
@@ -890,7 +894,7 @@ if $ARGS[0] = 'shave_legs':
 
 						if brotherfuck > 0 or brotherbj > 0 or brotherwash > 5: gs 'brother_voyeur', 'get_frisky'
 					end
-					if pcs_pubes < 21:
+					if pcs_pubes < 21 or shave_length > 0:
 						act'"Nope! I''m thinking of growing it out"':
 							cla & *nl
 							'"Nope! I''m thinking about growing it out," you say cheerfully, smiling at him.'
@@ -956,7 +960,7 @@ if $ARGS[0] = 'shave_legs':
 						pcs_horny += 5
 						brothershave += 1
 						minut += 5
-						mc_inventory['razor'] -=  1
+						mc_inventory['razor'] -= razors_to_use['pussy']
 						gs 'stat'
 						'<center><video autoplay loop src="images/shared/home/bathroom/shave.mp4"></center>'
 						'"Hmm..." You think to yourself for a moment. "Maybe you''re right after all," you say and start lathering up your crotch.'
@@ -988,7 +992,7 @@ if $ARGS[0] = 'shave_legs':
 end
 
 if $ARGS[0] = 'shave_pussy':
-	if pcs_pubes > shave_trigger:
+	if pcs_pubes > shave_trigger and mc_inventory['razor'] >= razors_to_use['pussy']:
 		act 'Shave your pussy (0:05)':
 			npc_rel['A34'] += 3
 			cla & *clr
@@ -999,7 +1003,7 @@ if $ARGS[0] = 'shave_pussy':
 				pcs_pubes = 0
 			end
 			pcs_horny += 5
-			mc_inventory['razor'] -=  1
+			mc_inventory['razor'] -= razors_to_use['pussy']
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/shared/home/bathroom/shave3.jpg"></center>'
 			if brother_shower['shave_ask2'] = daystart:
@@ -1011,7 +1015,7 @@ if $ARGS[0] = 'shave_pussy':
 			
 			if pcs_leghair > 3:
 				'Kolka frowns. "You''re not going to shave your legs?"'
-				if mc_inventory['razor'] =  0:
+				if mc_inventory['razor'] < razors_to_use['legs']:
 					act'"I can''t. Razor''s gone dull"':
 						cla & *nl
 						'"I couldn''t even if I wanted to," you say to him wistfully. He looks at you in confusion. "Razor''s gone dull." You thumb the razor to show him. Need a sharp razor to shave. <i>Especially</i> down there," you smile.'
@@ -1032,7 +1036,7 @@ if $ARGS[0] = 'shave_pussy':
 						pcs_horny += 5
 						brothershave += 1
 						minut += 5
-						mc_inventory['razor'] -=  1
+						mc_inventory['razor'] -= razors_to_use['legs']
 						gs 'stat'
 						'<center><img <<$set_imgh>> src="images/shared/home/bathroom/shave2.jpg"></center>'
 						'"Hmm..." You think to yourself for a moment. "Maybe you''re right after all," you say and start lathering up your legs and begin carefully shaving them.'
@@ -1253,7 +1257,7 @@ if $ARGS[0] = 'shave':
 		elseif pcs_leghair > 3 and pcs_pubes <= 3:
 			'His lips twisted in thought, he says, "You''re looking a little hairy down there." You follow his gaze to look at your <<$pc_desc[''legs'']>> legs. "Aren''t you going to shave?"'
 		end
-		if mc_inventory['razor'] =  0:
+		if mc_inventory['razor'] = 0:
 			act'"I can''t. I don''t have any razors"':
 				cla
 				*nl
@@ -1263,7 +1267,7 @@ if $ARGS[0] = 'shave':
 			end
 
 		else
-			if pcs_leghair > 3 and pcs_pubes > 3 and mc_inventory['razor'] =  1:
+			if pcs_leghair > 3 and pcs_pubes > 3 and mc_inventory['razor'] < razors_to_use['all']:
 				msg 'As you pick up your razor, you realize that it''s probably only sharp enough for shaving one set of things. If you want to shave you''ll have to decide between keeping a <<$pc_desc[''pubes'']>> pussy or <<$pc_desc[''legs'']>> legs.'
 			end
 
@@ -1315,7 +1319,7 @@ if $ARGS[0] = 'shave':
 				end
 			end
 
-			if pcs_leghair > 3 and pcs_pubes > 3 and mc_inventory['razor'] > 1:
+			if pcs_leghair > 3 and pcs_pubes > 3 and mc_inventory['razor'] >= razors_to_use['all']:
 				act 'Shave your legs and pussy (0:15)':
 					cla & *clr
 					minut += 15
@@ -1323,7 +1327,7 @@ if $ARGS[0] = 'shave':
 					pcs_pubes = 0
 					pcs_horny += 5
 					brothershave += 1
-					mc_inventory['razor'] -=  2
+					mc_inventory['razor'] -= razors_to_use['all']
 					inhib_exp += rand(1,3)
 					gs 'stat'
 					'<center><video autoplay loop src="images/shared/home/bathroom/shave.mp4"></center>'
@@ -1340,13 +1344,13 @@ if $ARGS[0] = 'shave':
 				end
 			end
 
-			if pcs_leghair > 3:
+			if pcs_leghair > 3 and mc_inventory['razor'] >= razors_to_use['legs']:
 				act 'Shave your legs (0:05)':
 					*clr & cla
 					minut += 5
 					pcs_leghair = 0
 					pcs_horny += 5
-					mc_inventory['razor'] -=  1
+					mc_inventory['razor'] -= razors_to_use['legs']
 					inhib_exp += rand(1,2)
 					gs 'stat'
 					'<center><img <<$set_imgh>> src="images/shared/home/bathroom/shave2.jpg"></center>'
@@ -1354,7 +1358,7 @@ if $ARGS[0] = 'shave':
 					'You lather up your legs and then start carefully shaving them.'
 					if pcs_pubes > 3:
 						'Kolka frowns. "You''re not going to shave your pussy?"'
-						if mc_inventory['razor'] =  0:
+						if mc_inventory['razor'] < razors_to_use['pussy']:
 							act'"I can''t. Razor''s gone dull"':
 								cla
 								*nl
@@ -1371,7 +1375,7 @@ if $ARGS[0] = 'shave':
 								act'Dry off':gt'brother_voyeur','dryoff'
 							end
 
-							if pcs_pubes < 21:
+							if pcs_pubes < 21 or shave_length > 0:
 								act'"Nope! I''m thinking of growing it out"':
 									cla
 									*nl
@@ -1413,7 +1417,7 @@ if $ARGS[0] = 'shave':
 								pcs_horny += 5
 								brothershave += 1
 								minut += 5
-								mc_inventory['razor'] -=  1
+								mc_inventory['razor'] -= razors_to_use['pussy']
 								'<center><video autoplay loop src="images/shared/home/bathroom/shave.mp4"></center>'
 								if pcs_pubes < 11:
 									'<br>"Hmm..." You think to yourself for a moment. "Maybe you''re right after all," you say and start lathering up your crotch.<br>Kolka stares at you intensely as you carefully remove the bits of stubble from around your pussy.'
@@ -1436,8 +1440,8 @@ if $ARGS[0] = 'shave':
 					end
 				end
 			end
-			if pcs_pubes > shave_trigger:
-				act'"Hmm, maybe you''re right"':
+			if pcs_pubes > shave_trigger and mc_inventory['razor'] >= razors_to_use['pussy']:
+				act'Shave your pussy (0:10)':
 					cla & *clr
 					if pubestyle > 0 or pubestyle = 10:
 						pcs_pubes = shave_length
@@ -1447,7 +1451,7 @@ if $ARGS[0] = 'shave':
 					pcs_horny += 5
 					brothershave += 1
 					minut += 5
-					mc_inventory['razor'] -=  1
+					mc_inventory['razor'] -= razors_to_use['pussy']
 					inhib_exp += 1
 					gs 'stat'
 					'<center><video autoplay loop src="images/shared/home/bathroom/shave.mp4"></center>'
@@ -1500,11 +1504,11 @@ if $ARGS[0] = 'shave':
 		end
 	else
 		'<center><video autoplay loop src="images/shared/home/bathroom/brothershowertalk.mp4"></center>'
-		if pcs_leghair >= 4 and pcs_pubes >= shave_trigger and mc_inventory['razor'] > 0:
+		if pcs_leghair >= 4 and pcs_pubes >= shave_trigger and mc_inventory['razor'] >= razors_to_use['all']:
 			'While rinsing off, you notice your legs and pussy could use a shave. You look up and Kolka is still looking at the wall.'
-		elseif pcs_leghair < 4 and pcs_pubes >= shave_trigger and mc_inventory['razor'] > 0:
+		elseif pcs_leghair < 4 and pcs_pubes >= shave_trigger and mc_inventory['razor'] >= razors_to_use['pussy']:
 			'While rinsing off, you notice that your pussy could use a shave. You look up and Kolka is still looking at the wall.'
-		elseif pcs_leghair >= 4 and pcs_pubes < shave_trigger and mc_inventory['razor'] > 0:
+		elseif pcs_leghair >= 4 and mc_inventory['razor'] >= razors_to_use['legs']:
 			'While rinsing off, you notice your legs could use a shave. You look up and Kolka is still looking at the wall.'
 		end
 		'Do you want to shave right now?'
@@ -1515,7 +1519,7 @@ if $ARGS[0] = 'shave':
 			act'Dry off':gt'brother_voyeur','dryoff'
 		end
 
-		if mc_inventory['razor'] > 1 and pcs_leghair > 3 and pcs_pubes > 3:
+		if mc_inventory['razor'] >= razors_to_use['all'] and pcs_leghair > 3 and pcs_pubes > 3:
 			act'Shave your legs and pussy (0:15)':
 				cla & *clr
 				minut += 15
@@ -1526,7 +1530,7 @@ if $ARGS[0] = 'shave':
 					pcs_pubes = 0
 				end
 				pcs_horny += 5
-				mc_inventory['razor'] -=  2
+				mc_inventory['razor'] -= razors_to_use['all']
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/shared/home/bathroom/shave3.jpg"></center>'
 				'You casually continue the conversation with your brother while lathering up your legs and crotch before starting to carefully shave them. You notice your brother make a few curious peeks but decide not to say anything and simply continue on with your business and the conversation.'
@@ -1535,13 +1539,13 @@ if $ARGS[0] = 'shave':
 			end
 		end
 
-		if mc_inventory['razor'] > 0 and pcs_leghair > 3:
+		if mc_inventory['razor'] >= razors_to_use['legs'] and pcs_leghair > 3:
 			act'Shave your legs (0:05)':
 				*clr & cla
 				minut += 5
 				pcs_leghair = 0
 				pcs_horny += 5
-				mc_inventory['razor'] -=  1
+				mc_inventory['razor'] -= razors_to_use['legs']
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/shared/home/bathroom/shave2.jpg"></center>'
 				'You casually continue the conversation with your brother while lathering up your legs before starting to carefully shave them. You notice your brother make a few curious peeks but decide not to say anything and simply continue on with your business and the conversation.'
@@ -1550,7 +1554,7 @@ if $ARGS[0] = 'shave':
 			end
 		end
 
-		if mc_inventory['razor'] > 0 and pcs_pubes > 3:
+		if mc_inventory['razor'] >= razors_to_use['pussy'] and pcs_pubes > 3:
 			act'Shave your pussy (0:10)':
 				cla
 				*clr
@@ -1561,7 +1565,7 @@ if $ARGS[0] = 'shave':
 					pcs_pubes = 0
 				end
 				pcs_horny += 5
-				mc_inventory['razor'] -=  1
+				mc_inventory['razor'] -= razors_to_use['pussy']
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/shared/home/bathroom/shave3.jpg"></center>'
 				'You casually continue the conversation with your brother while lathering up the area between your legs before starting to carefully shave it. You notice your brother make a few curious peeks but you decide not to say anything and simply continue on with your business and the conversation.'

+ 144 - 9
locations/city_clinic.qsrc

@@ -9,6 +9,8 @@ if $ARGS[0] = 'start':
 	$location_type = 'indoors'
 	$menu_loc = 'city_clinic'
 	$menu_arg = 'start'
+	killvar 'temp_small_mbottle_ids'
+	killvar 'temp_medium_mbottle_ids'
 	menu_off = 0
 	*clr & cla
 	hosprand = rand(0, 10)
@@ -1668,14 +1670,10 @@ if $ARGS[0] = 'milk_bank':
 		'<br>----------------------------------------'
 		if lact_ev['poli_totalmilkdonation_count'] > 0:
 			'Total breast milk donation statistics'
-			if lact_ev['poli_totalmilkdonated'] < 100:
-				'Donated milk volume in liter: <<lact_ev[''poli_totalmilkdonated'']/1000>>.0<<lact_ev[''poli_totalmilkdonated''] mod 1000>>l'
-			else
-				'Donated milk volume in liter: <<lact_ev[''poli_totalmilkdonated'']/1000>>.<<lact_ev[''poli_totalmilkdonated''] mod 1000>>l'
-			end
+			'Donated milk volume in liter: <<lact_ev[''poli_totalmilkdonated'']/1000>>.<<$mid(1000 + (lact_ev[''poli_totalmilkdonated''] mod 1000), 2, 3)>>l'
 			'Donation count: <<lact_ev[''poli_totalmilkdonation_count'']>>'
-			'Average milk volume per donation in ml: <<lact_ev[''poli_totalmilkdonated'']/lact_ev[''poli_totalmilkdonation_count'']>>'
-			'Paid money: <<((lact_ev[''poli_totalmilkdonated'']/50)*100)>><b>₽</b>'
+			'Average milk volume per donation in ml: <<lact_ev[''poli_totalmilkdonated'']/lact_ev[''poli_totalmilkdonation_count'']>>.<<$mid(100 + ((100 * lact_ev[''poli_totalmilkdonated''] / lact_ev[''poli_totalmilkdonation_count'']) mod 100), 2, 2)>>'
+			'Paid money: <<lact_ev[''poli_totaldonatemoney'']>><b>₽</b>'
 			'<br>----------------------------------------'
 		end
 		act 'Leave': gt 'city_clinic', 'milk_donation_room'
@@ -1706,6 +1704,109 @@ if $ARGS[0] = 'milk_bank':
 			end
 		end
 	end
+
+	vmb_i = 0
+	:vmbloop
+	if vmb_i <= temp_var:
+		if mbarrloca[vmb_i] = 2 or mbarrloca[vmb_i] = 1:
+			gs 'lact_bp', 'update_mbottle', vmb_i
+			if $mbarrstat[vmb_i] = 'fresh' or $mbarrstat[vmb_i] = 'normal':
+				if mbarrfill[vmb_i] > 0:
+					if mbarrfill[vmb_i] <= 1500:
+						temp_small_mbottle_ids[] = vmb_i
+					else
+						temp_medium_mbottle_ids[] = vmb_i
+					end
+				end
+			end
+		end
+		vmb_i += 1
+		jump 'vmbloop'
+	end
+	killvar 'vmb_i'
+
+	if arrsize('temp_small_mbottle_ids') > 0:
+		act 'Donate a small bottle of milk':
+			*clr & cla
+			minut += 5
+			temp_total_pay = 0
+			temp_total_milk = 0
+			gs 'city_clinic', 'donate_milk_bottle', 'small'
+			gs 'stat'
+
+			!! IMAGE
+			!! TEXT
+			'You donated a <<temp_total_milk>> ml of milk and got paid <<temp_total_pay>><b>₽</b>.'
+
+			killvar 'temp_total_pay'
+			killvar 'temp_total_milk'
+			act 'Leave': minut += 5 & gt 'city_clinic', 'milk_donation_room'
+		end
+	end
+	if arrsize('temp_small_mbottle_ids') > 4:
+		act 'Donate 5 small bottles of milk':
+			*clr & cla
+			minut += 10
+			temp_total_pay = 0
+			temp_total_milk = 0
+			gs 'city_clinic', 'donate_milk_bottle', 'small'
+			gs 'city_clinic', 'donate_milk_bottle', 'small'
+			gs 'city_clinic', 'donate_milk_bottle', 'small'
+			gs 'city_clinic', 'donate_milk_bottle', 'small'
+			gs 'city_clinic', 'donate_milk_bottle', 'small'
+			gs 'stat'
+
+			!! IMAGE
+			!! TEXT
+			'You donated a <<temp_total_milk>> ml of milk and got paid <<temp_total_pay>><b>₽</b>.'
+
+			killvar 'temp_total_pay'
+			killvar 'temp_total_milk'
+			act 'Leave': minut += 5 & gt 'city_clinic', 'milk_donation_room'
+		end
+	end
+	if arrsize('temp_medium_mbottle_ids') > 0:
+		act 'Donate a medium bottle of milk':
+			*clr & cla
+			minut += 5
+			temp_total_pay = 0
+			temp_total_milk = 0
+			gs 'city_clinic', 'donate_milk_bottle', 'medium'
+			gs 'stat'
+
+			!! IMAGE
+			!! TEXT
+			'You donated a <<temp_total_milk>> ml of milk and got paid <<temp_total_pay>><b>₽</b>.'
+
+			killvar 'temp_total_pay'
+			killvar 'temp_total_milk'
+			act 'Leave': minut += 5 & gt 'city_clinic', 'milk_donation_room'
+		end
+	end
+	if arrsize('temp_medium_mbottle_ids') > 4:
+		act 'Donate 5 medium bottles of milk':
+			*clr & cla
+			minut += 10
+			temp_total_pay = 0
+			temp_total_milk = 0
+			gs 'city_clinic', 'donate_milk_bottle', 'medium'
+			gs 'city_clinic', 'donate_milk_bottle', 'medium'
+			gs 'city_clinic', 'donate_milk_bottle', 'medium'
+			gs 'city_clinic', 'donate_milk_bottle', 'medium'
+			gs 'city_clinic', 'donate_milk_bottle', 'medium'
+			gs 'stat'
+
+			!! IMAGE
+			!! TEXT
+			'You donated a <<temp_total_milk>> ml of milk and got paid <<temp_total_pay>><b>₽</b>.'
+
+			killvar 'temp_total_pay'
+			killvar 'temp_total_milk'
+			act 'Leave': minut += 5 & gt 'city_clinic', 'milk_donation_room'
+		end
+	end
+
+
 	act 'Leave': gt 'city_clinic','start'
 end
 
@@ -1761,7 +1862,7 @@ if $ARGS[0] = 'milk_donation':
 			end
 			lact_ev['poli_milkedvolume'] = 0
 			if lact_ev['poli_donationsessioncount'] > 0:
-				lact_ev['poli_donatemoney'] = (lact_ev['poli_donationsessioncount']*5)/10*10
+				lact_ev['poli_donatemoney'] = (lact_ev['poli_donationsessioncount'] / 2) * 10
 			else
 				lact_ev['poli_donatemoney'] = 0
 			end
@@ -1779,6 +1880,7 @@ if $ARGS[0] = 'milk_donation':
 				gs 'stat'
 				if lact_ev['poli_donationsessioncount'] > 0:
 					money += lact_ev['poli_donatemoney']
+					lact_ev['poli_totaldonatemoney'] += lact_ev['poli_donatemoney']
 					'You put your top back on and the employee hands you <<lact_ev[''poli_donatemoney'']>><b>₽</b> for your donated breast milk.'
 				else
 					'You put your top back on.'
@@ -1799,5 +1901,38 @@ if $ARGS[0] = 'milk_donation':
 	end
 end
 
---- city_clinic ---------------------------------
+if $ARGS[0] = 'donate_milk_bottle':
+	if $ARGS[1] = 'small':
+		temp_id = temp_small_mbottle_ids[0]
+	else
+		temp_id = temp_medium_mbottle_ids[0]
+	end
 
+	!! CHANGE PAY HERE
+	temp_pay = mbarrfill[temp_id] / 10			& !! Base pay = 1 rbl / ml for fresh milk
+	if $mbarrstat[temp_id] = 'normal': temp_pay = temp_pay / 2		& !! And 0.5 rbl / ml for normal milk
+	!!	if $mbarrtemp[temp_id] = 'hot' / 'warm' / 'lukewarm' / 'cold' / 'frozen':
+
+
+	temp_total_pay += temp_pay
+	money += temp_pay
+	lact_ev['poli_totaldonatemoney'] += temp_pay
+
+	temp_total_milk += mbarrfill[temp_id]
+	lact_ev['poli_totalmilkdonated'] += mbarrfill[temp_id]
+
+	gs 'lact_bp', 'empty_milk_bottle', temp_id
+
+	killvar 'temp_don_pay'
+	killvar 'temp_id'
+
+	if $ARGS[1] = 'small':
+		killvar 'temp_small_mbottle_ids', 0
+	else
+		killvar 'temp_medium_mbottle_ids', 0
+	end
+end
+
+
+
+--- city_clinic ---------------------------------

+ 2 - 17
locations/core_library.qsrc

@@ -14,7 +14,7 @@ if $ARGS[0] = 'init':
 
     !!  Summer School
     
-     !! $start_type['cat'] is the mc backstry, mod_ballet[beta] is a test variable to initiate regardless
+    !! $start_type['cat'] is the mc backstry, mod_ballet[beta] is a test variable to initiate regardless
     if $start_type['cat'] = 'dancer' or mod_ballet['beta'] = 1: 
         if daystart = 1:
             mod_ballet['blocker'] = 1
@@ -69,24 +69,9 @@ if $ARGS[0] = 'init':
 !! $setloc[''StageTitle'']: Var to set up $loc h1 header
 !! $setloc[''StageImage'']: Var to set up $loc image - set 1 to randomise
 if $ARGS[0] = 'stage_title':
-    if $ARGS[1] = '1': 
-        $temp_StageExt = 'gif'
-    elseif $ARGS[1] = '2':
-        $temp_StageExt = 'mp4'
-    else 
-        $temp_StageExt = 'jpg'
-    end
-    
-    if $ARGS[2] = '2':
-    !! Randomise header image	
-        !!dummyr
-    end
     *clr & cla
     '<center><h2><<$setloc[''StageTitle'']>></h2></center>'
-    '<center><img <<$set_imgh>> src="images/<<$setloc[''StageImage'']>>.<<$temp_StageExt>>"></center>'
-
-    !! Clean up
-    killvar '$temp_StageExt'
+    '<center><img <<$set_imgh>> src="images/<<$setloc[''StageImage'']>>"></center>'
 
     !! set indoor or outdoor location specific variables
 

+ 15 - 11
locations/din_van.qsrc

@@ -8,6 +8,10 @@
 !!mc_inventory['razor'] =  razor
 !!$brit = shaving dynamic
 
+razors_to_use['all']   = min(3, max(1, (pcs_leghair*4 + max(0, pcs_pubes-shave_length))/20))
+razors_to_use['pussy'] = min(2, max(1, (max(0, pcs_pubes-shave_length))/20))
+razors_to_use['legs']  = min(3, max(1, (pcs_leghair*4)/20))
+
 $showerdin = {
 	menu_off = 1
 	if hypnoAddict = 0:
@@ -310,9 +314,9 @@ $SkinCare = {
 }
 
 $brit = {
-	if lashair ! 1 and (pcs_shave['free_razor'] = 1 or mc_inventory['razor'] > 0):
+	if lashair ! 1 and pcs_shave['free_razor'] + mc_inventory['razor'] > 0:
 		!! if shave_menu = 1: legs and pussy
-		if shave_menu = 1 and mc_inventory['razor'] > 2:
+		if shave_menu = 1 and mc_inventory['razor'] >= razors_to_use['all']:
 			if pcs_leghair >= 3 or (pubestyle > 0 and pcs_pubes >= shave_trigger):
 				if pcs_leghair >= 3 and (pubestyle > 0 and pcs_pubes >= shave_trigger):
 					if daystart < 10 and $start_type[1] = 'tg':
@@ -392,7 +396,7 @@ $brit = {
 							if pcs_shave['free_razor'] = 1:
 								pcs_shave['free_razor'] = 0
 							else
-								mc_inventory['razor'] -= 3
+								mc_inventory['razor'] -= razors_to_use['all']
 							end
 							dynamic $dryOff
 							gs 'selfplay', 'bathtub_dildo_check'
@@ -406,7 +410,7 @@ $brit = {
 		end
 
 		!! if shave_menu = 2: pussy only
-		if (shave_menu = 2 or shave_menu = 1):
+		if (shave_menu = 2 or shave_menu = 1) and mc_inventory['razor'] >= razors_to_use['pussy']:
 			if pubestyle > 0 and pcs_pubes >= shave_trigger:
 				if pubestyle = 1:
 					$shave_act = 'Shave your pussy'
@@ -471,7 +475,7 @@ $brit = {
 						if pcs_shave['free_razor'] = 1:
 							pcs_shave['free_razor'] = 0
 						else
-							mc_inventory['razor'] -= 1
+							mc_inventory['razor'] -= razors_to_use['pussy']
 						end
 						'<<$shave_txt1>>'
 						*nl
@@ -485,7 +489,7 @@ $brit = {
 		end
 
 		!! if shave_menu = 3: legs only
-		if (shave_menu = 3 or shave_menu = 1) and mc_inventory['razor'] > 1:
+		if (shave_menu = 3 or shave_menu = 1) and mc_inventory['razor'] >= razors_to_use['legs']:
 			if pcs_leghair >= 3:
 				act 'Shave your legs (0:05)':
 					menu_off = 1
@@ -498,7 +502,7 @@ $brit = {
 					if pcs_shave['free_razor'] = 1:
 						pcs_shave['free_razor'] = 0
 					else
-						mc_inventory['razor'] -= 2
+						mc_inventory['razor'] -= razors_to_use['legs']
 					end
 					!! if $locM = 'uni_dorm' and rand(0, 5) = 5:gt 'vann', 'brit1'
 					'<center><img <<$set_imgh>> src="images/shared/home/bathroom/shave.jpg"></center>'
@@ -576,14 +580,14 @@ $quickwash = {
 
 	if cumloc[0]+cumloc[3] > 0 and hypnoAddict = 0:
 		if FUNC('Cum_Manage', 'check_innards', 0) = 1 or FUNC('Cum_Manage', 'check_innards', 3) = 1:
-			act 'Let the cum drain from your (0:10)':
+			act 'Let the cum drain from you (0:10)':
 				menu_off = 1
 				*clr & cla
 				cumspclnt = 15 & gs 'cum_cleanup'
 				minut += 10
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/pc/body/pee/wiping/no<<rand(3,4)>>.jpg"></center>'
-				'You spend minutes waiting between the sudden gushes of semen pouring out of your snatch.'
+				'You spend minutes waiting between the sudden gushes of semen pouring out of you.'
 
 				act 'Finish':menu_off = 0 & gt $loc, $loc_arg
 			end
@@ -826,14 +830,14 @@ $basin = {
 
 	if cumloc[0]+cumloc[3] > 0 and hypnoAddict = 0:
 		if FUNC('Cum_Manage', 'check_innards', 0) = 1 or FUNC('Cum_Manage', 'check_innards', 3) = 1:
-			act 'Let the cum drain from your (0:10)':
+			act 'Let the cum drain from you (0:10)':
 				menu_off = 1
 				*clr & cla
 				cumspclnt = 15 & gs 'cum_cleanup'
 				minut += 10
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/pc/body/pee/wiping/no<<rand(3,4)>>.jpg"></center>'
-				'You spend minutes waiting between the sudden gushes of semen pouring out of your snatch.'
+				'You spend minutes waiting between the sudden gushes of semen pouring out of you.'
 
 				act 'Finish':menu_off = 0 & gt $loc, $loc_arg
 			end

+ 1 - 1
locations/femcyc.qsrc

@@ -848,7 +848,7 @@ if $ARGS[0] = 'cyc3':
 			!! the setting of the max_time can be here although it can be changed in the future
 			FocH_Max = rand(312,360) & !! 13-15 days including menstruation
 			temprand = rand(0,10)
-			if pillcon >= 38000 or rand(1,24) = 1:
+			if pillcon >= 38000 or (pillcon > 0 and rand(1,24) = 1):
 				EggRH = 0
 				cycle = 1
 				mesec = 0

+ 1 - 1
locations/foto_shoot.qsrc

@@ -228,7 +228,7 @@ if $ARGS[0] = 'glamour_shoot':
 	act 'Sexy clothing':
 		*clr & cla
 		$modelfoto['shoot_type'] = 'sexy_clo'
-		if modelfoto['sexy'] >= 10 and modelfoto['trans_ling'] + modelfoto['trans_ling'] < 1 and modelfoto['nip'] < 1 and modelfoto['nude'] < 1: gt'foto_events','trans_persuasion'
+		if modelfoto['sexy'] >= 10 and modelfoto['transparent'] + modelfoto['trans_ling'] < 1 and modelfoto['nip'] < 1 and modelfoto['nude'] < 1: gt'foto_events','trans_persuasion'
 		if pcs_inhib < 30:
 			if modelfoto['sexy'] > 0:
 				'You think about asking to do this shoot but hesitate. You''ve done it before but still... Are you really comfortable with <i>more</i> of these kinds of pictures of you floating around?'

+ 20 - 9
locations/gadsarai.qsrc

@@ -301,8 +301,7 @@ end
 if $ARGS[0] = 'barn_room':
 	$location_type = 'private'
 	$setloc['StageTitle'] = 'Guest Room'
-	$setloc['StageImage'] =   '<<$default_img_path>>village/gad_room'
-	minut += 5
+	$setloc['StageImage'] =   '<<$default_img_path>>village/gad_room.jpg'
 	gs 'shortgs', 'setloc', 'gadsarai', $ARGS[0]
 	gs 'themes', 'indoors'
 	gs 'stat'
@@ -311,24 +310,36 @@ if $ARGS[0] = 'barn_room':
 	gs 'core_library', 'stage_title'
 	act '<b>Leave and go to the yard</b>':
 		if $clothingworntype ! 'nude':
+			minut += 5
 			gt 'gaddvor'
 		else
 			msg'<b><font color = red>You need to get dressed.</font></b>'
 			gt $loc, $loc_arg
 		end
 	end
+	act '<b>Leave and enter the dacha</b>':
+		if $clothingworntype ! 'nude':
+			minut += 5
+			gt 'gadhouse', 'start'
+		else
+			msg'<b><font color = red>You need to get dressed.</font></b>'
+			gt $loc, $loc_arg
+		end
+	end
 	
 	'A small rustic loft space converted from your grandparents barn. A pair of sleeping pallets of dubious comfort is laid out for guests. The room walls are whitewashed with some clothes lines to dry your clothes with some farming tools. It''s not much to look at but it''s somewhere you can call home and have some privacy.'
 
-
 	!! Activities - basic only. There is no internet so laptop is consigned to grandparents only. Room is too small for exercise, use yard or forest meadow.
-
-
 	gs 'events', 'read'
+	act 'Relax on your bed': gt 'bed', 'start'
+	if pcs_horny >= 50:
+		act 'Masturbate':gt 'selfplay', 'start'
+	end
+	if vcard > 0: act 'View your vintage porn cards':card_deck = 0 & gt 'card'
+	if card > 0: act 'View your new porn cards':card_deck = 1 & gt 'card'
 	gs 'music_actions', 'music_icon'
-
 	!! Activities End
-	act 'Relax on your bed': gt 'bed', 'start'
+	!! TODO: if winter create task for chopping wood for log stove.
 	!! act 'light log stove': gt  'gadsarai', 'log_stove' 
 
 	!! Game functions
@@ -337,9 +348,9 @@ if $ARGS[0] = 'barn_room':
 	'<table><tr><td valign="top">Your <a href="exec:gt ''alarmclock'', ''start''">alarm clock</a> is set to <<func(''alarmclock'', ''alarm_display'', alarmVars[''timerH''], alarmVars[''timerM''])>> during the week and <<func(''alarmclock'', ''alarm_display'', alarmVars[''timerEndH''], alarmVars[''timerEndM''])>> during the weekend. It is currently turned ' + iif(alarmVars['alarmOn'] = 0, '<a href="exec: alarmVars[''alarmOn''] = 1 & gt $loc, $loc_arg">OFF</a>.', '<a href="exec: alarmVars[''alarmOn''] = 0 & gt $loc, $loc_arg">ON</a>.')
 
 	if mc_inventory['contraceptive_pill'] > 0 and mc_inventory['equipped_condoms'] + mc_inventory['normal_condoms'] + mc_inventory['sabotaged_condoms'] > 0:
-		'Your <a href="exec:gt ''stol'', ''bc''">birth control</a> is hidden in one of your desk drawers, as are your <a href="exec:gt ''stol'', ''bc''">condoms</a>.'
+		'Your <a href="exec:gt ''stol'', ''bc''">birth control</a> are hidden a small nook, as are your <a href="exec:gt ''stol'', ''bc''">condoms</a>.'
 	elseif mc_inventory['contraceptive_pill'] > 0:
-		'Your <a href="exec:gt ''stol'', ''bc''">birth control</a> is hidden in a small box under your pallet.'
+		'Your <a href="exec:gt ''stol'', ''bc''">birth control</a> are hidden in a small box under your pallet.'
 	elseif mc_inventory['equipped_condoms'] + mc_inventory['normal_condoms'] + mc_inventory['sabotaged_condoms'] > 0:
 		'Your <a href="exec:gt ''stol'', ''bc''">condoms</a> are hidden behind a loose brick.'
 	end

+ 1 - 1
locations/gschool_lessons4.qsrc

@@ -225,7 +225,7 @@ if $ARGS[0] = 'math':
 			gs'stat'
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/phone.jpg"></center>'
 			'The day seems to be dragging in and you find yourself constantly staring at the clock, waiting for the class to finally be over. You decide to play on your phone to pass the time.'
-		    if VK = 1 and (christinaQW['fight'] = -1 or christinaQW['subpath'] >= 2) and salocatnow >= 5:
+		    if VK = 1 and (christinaQW['fight'] = -1 or christinaQW['subpath'] >= 2) and pcs_bmi >= 25:
 				gs 'npc_relationship', 'modify', 'A18', 'loathe'
 				'As you''re browsing the web, you receive a text message from Christina reading; "Hey there piggy, are you looking up discounts on Peremech so that you can shove them down your throat? Why don''t you lose some weight before the teachers decide to add bovine etiquette to the curriculum because they may feel it necessary to teach the students how to talk to a cow like you?" You can feel your face flushing in embarrassment while reading Christina''s hurtful comments. You quickly turn off your phone and try not to make eye contact with Christina for the rest of the lesson.'
 				act 'Wait for the end of the lesson': gt 'gschool_lessons', 'short_break'

+ 46 - 0
locations/home_family_init.qsrc

@@ -0,0 +1,46 @@
+# home_family_init
+!! Date Created: 31st March, 2024
+!! Author: Myles
+!!
+!! Version: .01 - initial release
+!! 
+!! Desc: Initialisation file for family residence in Pavlosk, default functions, tasks and misc for all internal rooms.
+!! Related files: 
+!! Internal rooms to location: BedrPar, BedrPar2, korrPar, kuhrPar, sitrPar, vanrPar
+!! External links to location: pav_residential, pod_ezd
+
+if $ARGS[0] = '' or $ARGS[0] = 'init':
+    !! Set up default image paths for npc and location:
+
+    $default_img_path = 'locations/pavlovsk/resident/apartment/home'
+    $mother_img_path = 'images/characters/pavlovsk/resident/mom/'
+
+    !! clear and initialise location for content:
+    *clr & cla
+    CLOSE ALL	
+    music_loop = 0
+    !! enable sidebar menu for locations
+    menu_off = 0
+    !! set internal location type
+    $location_type = 'private'
+    gs 'themes', 'indoors'
+    !! Update all initial stats for location
+    gs 'stat'
+    !! Display the header text and banner image
+    gs 'core_library', 'stage_title'
+    !! Now track quests, NPCs and any pets:
+    gs 'home_family_init', 'trackers'
+end
+
+!! Pull Quest trackers
+
+if $ARGS[0] = 'trackers':
+    !! Pull the family tracker
+    gs 'family_schedule'
+    !! TODO: Finish pet tracker. 
+    !! Pull pet schedule:
+    !! gs 'pet_init', 'init', 'mc'
+    !! Init ballet career quest tracker
+    gs 'core_library', 'init'
+end
+--- home_family_init ---------------------------------

+ 1 - 0
locations/homes_properties_attr.qsrc

@@ -313,6 +313,7 @@ if $ARGS[0] = 'get_property_attr':
 		$property['display_0'] = 'plot of land in the St. Petersburg''s suburbs'
 		$property['display_1'] = 'impressive mansion under construction in the St. Petersburg''s suburbs'
 		$property['display_2'] = 'impressive mansion in the St. Petersburg''s suburbs'
+		$property['display'] = $property['display_<<accessible_property["<<$args[1]>>-construction-status"]>>']
 		$property['region'] = 'city'
 		$property['town'] = 'city'
 		$property['location'] = 'city_mansion_entrance'

+ 143 - 50
locations/hotel_anna.qsrc

@@ -10,7 +10,7 @@ gs'stat'
 !minut += 10
 
 !!Check to prevent advancing beyond the current end of content
-if IgorevnaBDSM > 9: IgorevnaBDSM = 9
+if IgorevnaBDSM > 10: IgorevnaBDSM = 10
 
 if $ARGS[0] = 'meeting':
 	!gt'hotel_anna','meeting'
@@ -524,8 +524,8 @@ if ARGS[0] = 5:
 			end
 			act'Politely decline':
 				minut += 5
-				*clr & cla
 				gs 'stat'
+				*clr & cla
 				'"I''m sorry Anna, its a bit much for me." You do your best excuse to explain to Anna that you don''t feel comfortable with this proposal.'
 				'She seems to understand your apologies, and instead talks you through how the session would have gone.'
 				'She explains about the order of a proper intercourse, and the different way to approach it with the same results. Also, she gives you some more tips about D/s relationship, the correct way to refer to each partner and the behaviour that has to be assumed within the relationship.'
@@ -538,82 +538,175 @@ if ARGS[0] = 5:
 end
 
 if ARGS[0] = 6:
+	IgorevnaBDSM += 1
+	minut += 5
 	*clr & cla
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract03b.jpg"></center>'
-	'<font color = blue> "Ok party pooper...as you wish... . Feel free to move around, I''ll be back in no time</font> Anna seems a little disappointed, but doesn''t seem sad; she wink at you while she move to her room...maybe she really like your company....'
+	'Anna is waiting for you when you arrive: "Hello Sweetie!" She gives you a quick hug.'
+	'"Last time was a bit intense for me to just spring on you without warning but I didn''t know if I could set it up and when you''d visit. I have to setup the other room for a special client, can you wait here for about 15 minutes?"'
+	'You are getting free training so a 15 minute wait doesn''t seem too bad.'
+	'"Great, there''s another girl in there, don''t untie her. Or do, but then I will have to punish you." She flashes you a wicked smile before going to the next room.'
 
-	act'Move to the main room':
+	act 'Enter the room':
+		minut += 2
 		*clr & cla
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract04b.jpg"></center>'
-		'<font color = #DC143C> "OH! That''s a surprise...." </font> A middle age woman stands on the sofa bounded with ropes and with a tape that blocks her mouth'
-		act'Move the tape away':
+		'There is a woman bound and gagged on a chair in the room. A few weeks ago this would have been shocking to you but it''s become a lot more normal now that you are training with Anna.'
+		'The woman is tied in rope to restrict her movements, the knots are not great and look a bit rushed. She has gaffer tape across her mouth.'
+		'You sit down as you study her situation, she murmurs trying to communicate.'
+		act 'Move the tape away':
+			minut += 3
 			*clr & cla
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract05b0a.jpg"></center>'
-			'The tape was really glued to her mouth and it takes you a lot of your force to move it away; you best solution is to pull it away with a single hard pull. "Thank''s Ma''am..." She doesn''t seems to suffer about that anyway... <font color = #DC143C> "Hi...." </font>.'
-			act'Listen what she has to say':
+			'The tape was really stuck to her mouth and it takes a lot of force to remove. Slowly peeling it would probably be agony so you brace yourself and just rip it off.'
+			'"Thank you Ma''am." She doesn''t seems to react to the pain but the red mark shows you it must be sore.'
+			'"Hi, I''m <<$pcs_firstname>>" You say as introduction and think it might have been polite to have done so before tearing gaffer tape off her face.'
+			act 'Listen to her':
+				minut += 3
 				*clr & cla
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract05b1b.jpg"></center>'
-				'She doesn''t seem to be looking for you and she carefully avoids to look directly in your eyes. After some moment she speaks to you... "Ma''am...I think my arm got a cramp..."'
-				act'Try to free her':
-					*clr & cla
-					gs 'stat'
-					'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract05b1c.jpg"></center>'
-					'<font color = #DC143C> "Let me see what I can do...I''m <<$pcs_nickname>> anyway...who are you?" </font> You work on the ropes trying to set her free; it doesn''t seem a complicated pattern but the knots are quite tight; it will take some time for sure..."Thank you Ma''am <<$pcs_nickname>>; this slut''s name is Jeanine. this slut hope it will be no problem for Ma''am <<$pcs_nickname>>..."<br><font color = #DC143C> "....Uh??? Ahhh....ok.... . Jeanine, a beautiful name.... No...no...it seems I can handle them; they are tight for sure but it seems to be a simple wrap afterall...." </font><br>"...this slut...Ma''am <<$pcs_nickname>>...means... ....M-Mistress!...."'
-					act 'Turn': gt'hotel_anna_sex','spectator'
+				'She carefully avoids to look directly in your eyes mostly with her eyes cast downward.'
+				'After some time she speaks. "Ma''am. I think I have a cramp in my arm, could you untie me so I can stretch it out?"'
+				if AnnaQW['sub'] > 1:
+					act 'Free her':
+						AnnaQW['sub'] += 1
+						minut += 3
+						*clr & cla
+						gs 'stat'
+						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract05b1c.jpg"></center>'
+						'"Let me see what I can do, What''s your name?", You ask as you work on the ropes trying to set her free.'
+						'It doesn''t take long as the knots are so poorly tied. "Thank you <<$pcs_nickname>> this slut''s name is Jeanine."'
+						'"Jeanine, what a beautiful name, how did you end up like this?"'
+						'"Oh, I made a bet. I bet Anna I could get you in trouble. Didn''t I Anna?"'
+						act 'Turn around': gt'hotel_anna','spank'
+					end
 				end
-				act'I don''t think I should, I''m sorry':
-					*clr & cla
-					gs 'stat'
-					'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract05b1c.jpg"></center>'
-					'"...of course Ma''am..." You feel a little sorry about her, but probably this is the best choice for both of you...'
-					wait 400
-					act 'Wait': gt'hotel_anna_sex','spectator'
+				if AnnaQW['dom'] > 1:
+					act 'Fix her bindings':
+						AnnaQW['sub'] += 1
+						minut += 5
+						*clr & cla
+						gs 'stat'
+						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract05b1c.jpg"></center>'
+						'Instead of doing as she asks you decide it''d be a lot more comfortable if she was tied properly and re-do her bids correctly.'
+						'"Oh, that is much better. Thank you ma''am." Realising you had forgotten one thing, you reattach her tape gag and give her a kiss on her taped mouth.'
+						'You sit and wait for Anna to return.'
+						act 'Anna':
+							minut += 5
+							*clr & cla
+							gs 'stat'
+							'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract03b.jpg"></center>'
+							'"Sorry Sweetie, that took a little longer than I expected. Oh, you''ve fixed her ropes. That''s wonderful work and now Mistress Jeanie will have to stay tied up while I spend an hour with my client and regret betting against you."'
+							'Anna laughs for some time, clearly finding her friend''s misfortune far more amusing than you do. Perhaps they have some kind of rivalry?'
+							'"As you might have guessed this was something of a test for you Sweetie and it could not have gone better. Now I have work to do, I look forward to our next session."'
+							'Anna gives you a friendly kiss on the cheek as you pass her on your way to the door.'
+							act 'Leave': gt'pav_hotel'
+						end
+					end
 				end
-				act'Tape her again':
+				act 'Tape her mouth shut again':
+					minut += 5
 					*clr & cla
 					gs 'stat'
 					'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract05b1a.jpg"></center>'
-					'"...Thank you Ma''am to remind this slu.... " You immediately put the tape back on her mouth...<font color = #DC143C> "....That''s it. Babushka always tells me ''...if you find a stray dog on a leash never let it free, you will never know'' ...." </font>'
-					wait 400
-					act 'Wait': gt'hotel_anna_sex','spectator'
+					'"No, no. Please do..." You put the tape back on her mouth cutting her protest short and sit down to wait for Anna.'
+					'"Babushka always tells me ''If you find a stray dog on a leash never let it free, you will never know'' " You quote to her. It is an odd saying but common enough to the area that she will understand.'
+					act 'Finally':
+						minut += 5
+						*clr & cla
+						gs 'stat'
+						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract03b.jpg"></center>'
+						'"Sorry Sweetie, that took a little longer than I expected. I hope Mistress Jeanie enjoyed your company as she will have to stay tied up while I spend an hour with my client and regret betting against you."'
+						'Anna laughs for some time, clearly finding her friend''s misfortune far more amusing than you do. Perhaps they have some kind of rivalry?'
+						'"As you might have guessed this was something of a test for you Sweetie and I will at least fix those bindings as it must be uncomfortable. Now I have work to do, I look forward to our next session."'
+						'You make your way to the door.'
+						act 'Leave': gt'pav_hotel'
+					end
 				end
 			end
-			act'Tape her again':
+		end
+		if AnnaQW['dom'] > 1:
+			act 'Leave her taped up and wait for Anna':
+				minut += 5
 				*clr & cla
 				gs 'stat'
-				AnnaQW['dom'] += 1
-				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract05b1a.jpg"></center>'
-				'"...Thank you Ma''am to remind this slu.... " You immediately put the tape back again on her mouth...<font color = #DC143C> "....That''s it. Babushka always tells me ''...if you find a stray dog on a leash never let it free, you will never know'' ...." </font>'
-				wait 800
-				act 'Finally': gt'hotel_anna_sex','spectator'
+				AnnaQW['trust'] += 1
+				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract05b0b.jpg"></center>'
+				'You sit and wait for Anna trying to ignore the woman tied up on the chair near you but you keep hearing a rustling sound coming from her direction.'
+				'You look at the woman wriggling around trying to get comfortable.'
+				act'"Stop moving!"':
+					minut += 5
+					*clr & cla
+					gs 'stat'
+					'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract04b.jpg"></center>'
+					'You shout at her to stop moving and she sits back upright as she was when you entered and does not move again'
+					'You play around on your phone as you wait for Anna to get back from whatever she is doing next door.'
+					act 'Finally':
+						minut += 5
+						*clr & cla
+						gs 'stat'
+						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract03b.jpg"></center>'
+						'Anna returns, she looks to you and then to the woman, "Exactly as a I left her, no punishment for you Sweetie."'
+						'She walks over to the woman, "As for you Jeanie, you''ve got another hour of this while I entertain my client. Maybe spend that time reconsidering betting against <<$pcs_firstname>> again?"'
+						'Anna is laughing, "Well you''ve done well Sweetie but this little test was our session, I have to get to work so I will see you next time and we''ll do something a bit more hands on"'
+						'This was pretty disappointing but Anna has her ways and did seem very busy, you make your way to the door.'
+						act 'Leave': gt'pav_hotel'
+					end
+				end
 			end
 		end
-		act'Ummm.... maybe this is a test... better not touch her.':
-			*clr & cla
-			gs 'stat'
-			AnnaQW['trust'] += 1
-			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract05b0b.jpg"></center>'
-			'You look at the woman trying to find a better position for herself...that''s your impression at least...'
-			act'...she keeps struggling...':
-				*clr & cla
-				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract05b1a.jpg"></center>'
-				'<font color = #DC143C> "....Well I can see it''s quite hard for her to find some relief ...." </font>'
-				wait 1200
-				act 'Finally': gt'hotel_anna_sex','spectator'
+	end
+end
+
+if $ARGS[0] = 'spank':
+	minut += 2
+	*clr & cla
+	gs 'stat'
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract03b.jpg"></center>'
+	'Anna is standing there looking at you holding the ropes you had just untied from Jeanie, if that is even her name.'
+	'Well <<$pcs_firstname>>, I wonder if you did this because you wanted to be punished of if you simply don''t listen. Either way I gave you fair warning so get on my knee. Now!"'
+	'Anna has sat down and Jeanie is standing right behind you, her breath on your neck. It doesn''t look like you have a choice.'
+	act 'Comply':
+		*clr & cla
+		if $pantyworntype = 'none':
+			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract09a3b.jpg"></center>'
+			if PCloPanties = 0:
+				if CloDress  =  1:
+					'As you move toward Anna, Jeanie grabs the hem of your dress and pulls it over your head leaving you exposed.'
+				else
+					'As you move toward Anna, Jeanie grabs your ' + iif(CloSkirtShortness > 0, 'skirt and pulls it', 'pants and pulls them') + ' down, leaving you exposed.'
+				end
+			end
+		else
+			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract09a3a.jpg"></center>'
+			if PCloPanties = 0:
+				if CloDress  =  1:
+					'As you move toward Anna, Jeanie grabs the hem of your dress and pulls it over your head leaving you in just your underwear.'
+				else
+					'As you move toward Anna, Jeanie grabs your ' + iif(CloSkirtShortness > 0, 'skirt and pulls it', 'pants and pulls them') + ' down, leaving your panties exposed.'
+				end
 			end
 		end
-		act'Wait':
+		'Anna lays you across her lap and starts spanking your butt, hard. After the first 5 she stops and says, "You have to count them Sweetie, or they don''t count and I can''t be smacking you all night."'
+		'She resumes and you starting counting each strike hoping to end the humiliation and pain as quickly as you can.'
+		gs 'pain', 5, 'asscheeks', 'spank'
+		gs 'arousal', 'BDSM', 3, 'sub'
+		gs 'stat'
+		act 'Endure':
 			*clr & cla
+			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract09a3c.jpg"></center>'
+			if $pantyworntype ! 'none': 'Jeanie interrupts Anna and loudly states: "A smack must be on a bare butt." She proceeds to pull down your panties before Anna continues.'
+			'Eventually as you count to 30 Anna stops. "That''s enough for now Sweetie. I hope you have learnt more about how our world works. You will need time to think about it I''m sure."'
+			gs 'pain', 5, 'asscheeks', 'spank'
+			gs 'arousal', 'BDSM', 5, 'sub'
 			gs 'stat'
-			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractice/annapract05b1a.jpg"></center>'
-			'You really don''t know what to do. To find someone bounded and gagged normally means it''s a kidnapping; that''s not the case of course...'
-			wait 1800
-			act'Finally': gt'hotel_anna_sex','spectator'
+			'You get up and quickly re-dress, you butt really stings from the spanking. There is also some arousal building as a result and you realise Anna is correct it will take time to understand that mixed feeling.'
+			'Anna guides you to the door: "I look forward to our next session Sweetie." She then gives you a gentle pat on the butt reminding you of the pain as you walk past her.'
+			act 'Leave': gt'pav_hotel'
 		end
 	end
 end

+ 11 - 11
locations/hotel_anna_sex.qsrc

@@ -476,16 +476,16 @@ if $ARGS[0] = 'dresscontest_end':
 		'<font color = #DC143C>"Anna...is everything fine?"</font>'
 		if IgorevnaBDSM_statusdress_a = 1:
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractic1/Annapract17.jpg"></center>'
-			'<font color = blue>"Yes yes <<$pcs_nickname>>>...it''s only the film...you won''t believe it...They...uh? Wow! Stunning! It''s marvelous on you! But I didn''t remember to have the key...come here."</font> You approach Anna...<br><font color = #DC143C>"Is there something wrong?"</font><br><font color = blue>"Maybe...or maybe not. Let me check your wrist..."</font> With few simple movements Anna free your hands from the cuffs...<font color = blue>"I see...you are a difficult one...it should be interesting seeing you managing with high class restraint. Anyway, do you like it?"</font><br><font color = #DC143C>"Well...i didn''t see too much, wearing those clothes it''s time consuming..."</font><br><font color = Blue>"Haha...silly, i meant the dress... . About the film...you lost nothing..."</font><br><font color = #DC143C>"Mmmm...it''s not really comfortable, but it seem nice looking."</font><br> There were a couple of seconds of silence, without the film filling the empty space between your dialogue and then...<font color = blue>"Mmmm...say <<$pcs_nickname>>, do you think you will be comfortable to try a session with me? Much more light than the one with Jeanine and no sex allowed."</font>'
+			'<font color = blue>"Yes yes <<$pcs_nickname>>...it''s only the film...you won''t believe it...They...uh? Wow! Stunning! It''s marvelous on you! But I didn''t remember to have the key...come here."</font> You approach Anna...<br><font color = #DC143C>"Is there something wrong?"</font><br><font color = blue>"Maybe...or maybe not. Let me check your wrist..."</font> With few simple movements Anna free your hands from the cuffs...<font color = blue>"I see...you are a difficult one...it should be interesting seeing you managing with high class restraint. Anyway, do you like it?"</font><br><font color = #DC143C>"Well...i didn''t see too much, wearing those clothes it''s time consuming..."</font><br><font color = Blue>"Haha...silly, i meant the dress... . About the film...you lost nothing..."</font><br><font color = #DC143C>"Mmmm...it''s not really comfortable, but it seem nice looking."</font><br> There were a couple of seconds of silence, without the film filling the empty space between your dialogue and then...<font color = blue>"Mmmm...say <<$pcs_nickname>>, do you think you will be comfortable to try a session with me? Much more light than the one with Jeanine and no sex allowed."</font>'
 		elseif IgorevnaBDSM_statusdress_b = 1:
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractic1/Annapract17.jpg"></center>'
-			'<font color = blue>"Yes yes <<$pcs_nickname>>>...it''s only the film...you won''t believe it...They...uh? Wow! Stunning! It''s marvelous on you!"</font> <br><font color = #DC143C>"You saw nothing hehehe... "</font>You try to impress Anna swinging the whip, but with a poor result...<br><font color = blue>"<<$pcs_nickname>>>...pay attention to the eyes...even yours..."</font><br><font color = #DC143C>"Ok ok... "</font><br><font color = blue>"Hehehe...i assume you have fun right now. Anyway, do you like it?"</font><br><font color = #DC143C>"Well...i didn''t see too much, wearing those clothes it''s time consuming..."</font><br><font color = Blue>"Haha...silly, i meant the dress... . About the film...you lost nothing..."</font><br><font color = #DC143C>"Well...it''s sexy and nice looking; it will catch unwanted eyes outside this room i think...hehehe... that''s for sure."</font><br><font color = blue>"You got a point."</font> You both laugh for a couple of second then suddenly...<font color = blue>"Say <<$pcs_nickname>>, do you think you will be comfortable to try a session with me? Much more light than the one with Jeanine and no sex allowed."</font>'
+			'<font color = blue>"Yes yes <<$pcs_nickname>>...it''s only the film...you won''t believe it...They...uh? Wow! Stunning! It''s marvelous on you!"</font> <br><font color = #DC143C>"You saw nothing hehehe... "</font>You try to impress Anna swinging the whip, but with a poor result...<br><font color = blue>"<<$pcs_nickname>>...pay attention to the eyes...even yours..."</font><br><font color = #DC143C>"Ok ok... "</font><br><font color = blue>"Hehehe...i assume you have fun right now. Anyway, do you like it?"</font><br><font color = #DC143C>"Well...i didn''t see too much, wearing those clothes it''s time consuming..."</font><br><font color = Blue>"Haha...silly, i meant the dress... . About the film...you lost nothing..."</font><br><font color = #DC143C>"Well...it''s sexy and nice looking; it will catch unwanted eyes outside this room i think...hehehe... that''s for sure."</font><br><font color = blue>"You got a point."</font> You both laugh for a couple of second then suddenly...<font color = blue>"Say <<$pcs_nickname>>, do you think you will be comfortable to try a session with me? Much more light than the one with Jeanine and no sex allowed."</font>'
 		elseif IgorevnaBDSM_hooble_dressNO = 1 and IgorevnaBDSM_harness_dressNO = 1 and IgorevnaBDSM_statusdress_dressNO = 1:
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractic1/Annapract17a.jpg"></center>'
-			'<font color = blue>"Yes yes <<$pcs_nickname>>>...it''s only the film...you won''t believe it...They...uh? Well...just remember me to think twice before calling you to go shopping...ok?"</font><br><font color = #DC143C>"I''m sorry Anna at the end...i was thinking...and then..."</font><br><font color = blue>"Do not worry...but you own me a dress contest...  hehehe... . Anyway, i''m curious about your impressions..."</font><br><font color = #DC143C>"Well...i didn''t see too much, and you keep yelling...i think it''s not worth it..."</font><br><font color = blue>"Haha...silly, i meant the dresses... . About the film...you lost nothing..."</font><br><font color = #DC143C>"Ah...they seem sexy and nice looking; you will catch unwanted eyes outside this room i think...hehehe... that''s for sure."</font><br><font color = blue>"You got a point."</font> You both laugh for a couple of second then suddenly...<font color = blue>"Say <<$pcs_nickname>>, do you think you will be comfortable to try a session with me? Much more light than the one with Jeanine and no sex allowed."</font>'
+			'<font color = blue>"Yes yes <<$pcs_nickname>>...it''s only the film...you won''t believe it...They...uh? Well...just remember me to think twice before calling you to go shopping...ok?"</font><br><font color = #DC143C>"I''m sorry Anna at the end...i was thinking...and then..."</font><br><font color = blue>"Do not worry...but you own me a dress contest...  hehehe... . Anyway, i''m curious about your impressions..."</font><br><font color = #DC143C>"Well...i didn''t see too much, and you keep yelling...i think it''s not worth it..."</font><br><font color = blue>"Haha...silly, i meant the dresses... . About the film...you lost nothing..."</font><br><font color = #DC143C>"Ah...they seem sexy and nice looking; you will catch unwanted eyes outside this room i think...hehehe... that''s for sure."</font><br><font color = blue>"You got a point."</font> You both laugh for a couple of second then suddenly...<font color = blue>"Say <<$pcs_nickname>>, do you think you will be comfortable to try a session with me? Much more light than the one with Jeanine and no sex allowed."</font>'
 		else
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractic1/Annapract17a.jpg"></center>'
-			'<font color = blue>"Yes yes <<$pcs_nickname>>>...it''s only the film...you won''t believe it...They...uh? Well...i assume you didn''t want to try them..."</font><br><font color = #DC143C>"Well...i was thinking...but then..."</font><br><font color = blue>"Do not worry... Anyway, i''m curious about your impressions...what do you think?"</font><br><font color = #DC143C>"Well...i didn''t see too much, and you keep yelling...i think it''s not worth it..."</font><br><font color = blue>"Haha...silly, i meant the dresses... . About the film...you lost nothing..."</font><br><font color = #DC143C>"Ah...they seem sexy and nice looking; you will catch unwanted eyes outside this room i think...hehehe... that''s for sure."</font><br><font color = blue>"You got a point."</font> You both laugh for a couple of second then suddenly...<font color = blue>"Say <<$pcs_nickname>>, do you think you will be comfortable to try a session with me? Much more light than the one with Jeanine and no sex allowed."</font>'
+			'<font color = blue>"Yes yes <<$pcs_nickname>>...it''s only the film...you won''t believe it...They...uh? Well...i assume you didn''t want to try them..."</font><br><font color = #DC143C>"Well...i was thinking...but then..."</font><br><font color = blue>"Do not worry... Anyway, i''m curious about your impressions...what do you think?"</font><br><font color = #DC143C>"Well...i didn''t see too much, and you keep yelling...i think it''s not worth it..."</font><br><font color = blue>"Haha...silly, i meant the dresses... . About the film...you lost nothing..."</font><br><font color = #DC143C>"Ah...they seem sexy and nice looking; you will catch unwanted eyes outside this room i think...hehehe... that''s for sure."</font><br><font color = blue>"You got a point."</font> You both laugh for a couple of second then suddenly...<font color = blue>"Say <<$pcs_nickname>>, do you think you will be comfortable to try a session with me? Much more light than the one with Jeanine and no sex allowed."</font>'
 		end
 		act'...':
 			*clr & cla
@@ -677,7 +677,7 @@ if $ARGS[0] = 'Anna_path_choice':
 		!	IgorevnaBDSM -= 1
 		!	minut += 61
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpracticend/session_start0a.jpg"></center>'
-			'<font color = blue> "Understandable. Well in that case we can only talk about how things are going in the world..." </font> Both you and Anna spend an hour speaking of various thing, sometimes the arguments drop on the BDSM but mostly it''s unrelated to it... . It seems that Anna couldn''t teach you nothing more without practice... . At the end she lead you to the exit letting you know she''s avaible for further experimentation... <font color = blue> "...oh...<$pcs_nickname>>, the work will not be avaible anymore but we could find something else. Do not forget the all the roles will be avaible... ."</font> Then she give you two great kisses on your cheeck and you go on your own way...'
+			'<font color = blue> "Understandable. Well in that case we can only talk about how things are going in the world..." </font> Both you and Anna spend an hour speaking of various thing, sometimes the arguments drop on the BDSM but mostly it''s unrelated to it... . It seems that Anna couldn''t teach you nothing more without practice... . At the end she lead you to the exit letting you know she''s avaible for further experimentation... <font color = blue> "...oh...<<$pcs_nickname>>, the work will not be avaible anymore but we could find something else. Do not forget the all the roles will be avaible... ."</font> Then she give you two great kisses on your cheeck and you go on your own way...'
 			act'Thanks Anna, see you...': gt'HotelHole'
 		end
 	elseif IgorevnaBDSM_session_librarian = 2:
@@ -736,7 +736,7 @@ if $ARGS[0] = 'Anna_path_choice':
 			*clr & cla
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpracticend/session_start0Na.jpg"></center>'
-			'<font color = blue> "Hehehe...<$pcs_nickname>>, it''s not the we are on the cafe''..." </font><br><font color = #DC143C> "No...but...if i chose something i pleclude the other and the contrary...i don''t know...and we don''t have the time to do both...right?"</font><br><font color = blue> "It''s true that we don''t have the time rigth now to do both, but you won''t preclude nothing on the long term...well if that''s your intention... . Ummmhh...let me help you. Do you like my bum? Would you like the chance to squeeze it a little while giving me a good spanking? Or maybe you prefer to feel a soft flog that crawl on your butt..."</font><br>Anna is teasing you to know what could be better for you...your answer will lead you to the right choice...if something could be wrong... . But your though run to something else...<font color = #DC143C> "Oh! I see...but....mmmm...emmhh...what about boobs?"</font><br><font color = blue> "Uhmmm...I don''t think you will be able to fine "tune" them...yet... . And remember: no sex allowed."</font>'
+			'<font color = blue> "Hehehe...<<$pcs_nickname>>, it''s not the we are on the cafe''..." </font><br><font color = #DC143C> "No...but...if i chose something i pleclude the other and the contrary...i don''t know...and we don''t have the time to do both...right?"</font><br><font color = blue> "It''s true that we don''t have the time rigth now to do both, but you won''t preclude nothing on the long term...well if that''s your intention... . Ummmhh...let me help you. Do you like my bum? Would you like the chance to squeeze it a little while giving me a good spanking? Or maybe you prefer to feel a soft flog that crawl on your butt..."</font><br>Anna is teasing you to know what could be better for you...your answer will lead you to the right choice...if something could be wrong... . But your though run to something else...<font color = #DC143C> "Oh! I see...but....mmmm...emmhh...what about boobs?"</font><br><font color = blue> "Uhmmm...I don''t think you will be able to fine "tune" them...yet... . And remember: no sex allowed."</font>'
 			act'Well...how could the flog be "soft"?...':gt'hotel_anna','Anna_sub_session'
 			act'Well...you really have a great bum...':gt'hotel_anna_sex','Anna_dom_session'
 		end
@@ -746,7 +746,7 @@ if $ARGS[0] = 'Anna_path_choice':
 		!	IgorevnaBDSM -= 1
 		!	minut += 61
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpracticend/session_start0a.jpg"></center>'
-			'<font color = blue> "Well in that case we can only talk about how things are going in the world..." </font> Both you and Anna spend an hour speaking of various thing, sometimes the arguments drop on the BDSM but mostly it''s unrelated to it... . It seems that Anna couldn''t teach you nothing more without practice... . At the end she lead you to the exit letting you know she''s avaible for further experimentation... <font color = blue> "...Ok...<$pcs_nickname>>, take your time...i won''t run... . Do not forget: "Know Thy Yourself""</font> Then she give you two great kisses on your cheeck and you go on your own way...'
+			'<font color = blue> "Well in that case we can only talk about how things are going in the world..." </font> Both you and Anna spend an hour speaking of various thing, sometimes the arguments drop on the BDSM but mostly it''s unrelated to it... . It seems that Anna couldn''t teach you nothing more without practice... . At the end she lead you to the exit letting you know she''s avaible for further experimentation... <font color = blue> "...Ok...<<$pcs_nickname>>, take your time...i won''t run... . Do not forget: "Know Thy Yourself""</font> Then she give you two great kisses on your cheeck and you go on your own way...'
 			act'Thanks Anna, see you...': gt'HotelHole'
 		end
 	end	
@@ -759,7 +759,7 @@ if $ARGS[0] = 'slaveM':
 	AnnaQW['trust'] += 1
 	BDSM_Knowledge += 1
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpracticend/male/slaveM0.jpg"></center>'
-	'<font color = blue> "...You look good <<$pcs_nickname>>..." </font><br><font color = #DC143C> "...Oh thanks. Do you think that pink doesn''t suit with the session?"</font><br><font color = blue> "...Absolutely not: if another color could make you more confident with your self you could use it as a little help. Honestly it doesn''t matter: you could be dress as a farie and nonetheless subs have to obey; no matter what." </font><br><font color = #DC143C> "Got it."</font><br><font color = blue> "Before presentation <<$pcs_nickname>...is there something you would like to ask? Something you may want to improve ... or a last minutes tip?"</font>'
+	'<font color = blue> "...You look good <<$pcs_nickname>>..." </font><br><font color = #DC143C> "...Oh thanks. Do you think that pink doesn''t suit with the session?"</font><br><font color = blue> "...Absolutely not: if another color could make you more confident with your self you could use it as a little help. Honestly it doesn''t matter: you could be dress as a farie and nonetheless subs have to obey; no matter what." </font><br><font color = #DC143C> "Got it."</font><br><font color = blue> "Before presentation <<$pcs_nickname>>...is there something you would like to ask? Something you may want to improve ... or a last minutes tip?"</font>'
 	act'Control': 
 		*clr & cla
 		gs 'stat'
@@ -784,14 +784,14 @@ if $ARGS[0] = 'slaveM':
 		*clr & cla
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpracticend/male/slaveM1b.jpg"></center>'
-		'<font color = blue> "<<$pcs_nickname> this is worm, worm She is <<$pcs_nickname>, a new Mistress... . Obedience you said uh?</font> Without stop speaking Anna bend the man''s back with her knees...<font color = blue> Well there''s a lot to talk about that, we''ll limits for the moment... . I can quickly tell you that''s the result the Dom usually look for and obtain through Discipline: one of the basic of BDSM. Discipline, in short, stand on two pillars: to private for something, for example restriction, or to give something, for example a punishment. There''s also the reward system, but for the moment we''ll stop here...i''d like to start if you don''t mind..." </font><br><font color = #DC143C> "Wait...you said that obedience is what Dominant "usually" is looking for in a sub...what else could you want from a sub?"</font><br><font color = blue> "Well there are situation where Dominant isn''t looking for obedience. For example a sub who''s looking for a Dom, but Dom is full of obedient subs but lack in subbie workers...or within a couple to fullfill one part wish to be dominated...etc. Nothing incredible to be honest...it''s more for completness... . Shall we start?" </font> You nod'
+		'<font color = blue> "<<$pcs_nickname>> this is worm, worm She is <<$pcs_nickname>>, a new Mistress... . Obedience you said uh?</font> Without stop speaking Anna bend the man''s back with her knees...<font color = blue> Well there''s a lot to talk about that, we''ll limits for the moment... . I can quickly tell you that''s the result the Dom usually look for and obtain through Discipline: one of the basic of BDSM. Discipline, in short, stand on two pillars: to private for something, for example restriction, or to give something, for example a punishment. There''s also the reward system, but for the moment we''ll stop here...i''d like to start if you don''t mind..." </font><br><font color = #DC143C> "Wait...you said that obedience is what Dominant "usually" is looking for in a sub...what else could you want from a sub?"</font><br><font color = blue> "Well there are situation where Dominant isn''t looking for obedience. For example a sub who''s looking for a Dom, but Dom is full of obedient subs but lack in subbie workers...or within a couple to fullfill one part wish to be dominated...etc. Nothing incredible to be honest...it''s more for completness... . Shall we start?" </font> You nod'
 		act'Warm up...': gt'hotel_anna_sex','slaveM1'
 	end
 	act'Punishment': 
 		*clr & cla
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpracticend/male/slaveM1c.jpg"></center>'
-		'<font color = blue> "Punishment you said uh? Ok: show your ass and stop breathing." </font>Anna look at the man and give him an order. The man execute...<br><font color = #DC143C> "...Oh...well...i assume this is part of the punishment...but really: does she has to stop breating? "</font><br><font color = blue> "Uh? Honestly...that''s a little reward...it likes breath play. By the way, <<$pcs_nickname> this is worm, worm She is <<$pcs_nickname>, a new Mistress... . Punishment punishment...well: we''ll have fun! I can add something to your theory anyway... Not only punishment is used to dicipline a sub; you know a masochist love being punished...what you don''t know is that there''s a state called subspace that subs search while being punished: it''s an altered status that enhance all sub''s sensations...but we don''t have enough time right now to speak about it; and the existance of the so called painslut...subbies that can cum with punishment...again...we should really start right now. We''ll eventually return to those arguments...when you are ready order it to breath again...i don''t want it to cum..." </font>'
+		'<font color = blue> "Punishment you said uh? Ok: show your ass and stop breathing." </font>Anna look at the man and give him an order. The man execute...<br><font color = #DC143C> "...Oh...well...i assume this is part of the punishment...but really: does she has to stop breating? "</font><br><font color = blue> "Uh? Honestly...that''s a little reward...it likes breath play. By the way, <<$pcs_nickname>> this is worm, worm She is <<$pcs_nickname>>, a new Mistress... . Punishment punishment...well: we''ll have fun! I can add something to your theory anyway... Not only punishment is used to dicipline a sub; you know a masochist love being punished...what you don''t know is that there''s a state called subspace that subs search while being punished: it''s an altered status that enhance all sub''s sensations...but we don''t have enough time right now to speak about it; and the existance of the so called painslut...subbies that can cum with punishment...again...we should really start right now. We''ll eventually return to those arguments...when you are ready order it to breath again...i don''t want it to cum..." </font>'
 		act'"worm...start breath."': gt'hotel_anna_sex','slaveM1'
 	end
 	act'Nothing...': 
@@ -799,7 +799,7 @@ if $ARGS[0] = 'slaveM':
 		gs 'stat'
 		Anna_see_abrat += 1
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpracticend/male/slaveM1d.jpg"></center>'
-		'<font color = blue> "Right to the point uh? Do not forget you don''t have to rush things." </font><br><font color = #DC143C> "Ok...ok...he''s your toy afterall..."</font><br><font color = blue> "By the way, <<$pcs_nickname> this is worm, worm She is <<$pcs_nickname>, a new Mistress... . We can start..." </font>Anna start to pull down the man''s pants...<br><font color = #DC143C> "...Hey...it''s shaved..."</font><br><font color = blue> "...Well it''s a worm but it''s registered as a human being...yet... . You know the bear problem..." </font><br><font color = #DC143C> "I mean his butt..."</font><br><font color = blue> "Oh! its butt...well...BDSM session usually has actors play in "blend" modality, expecially subs. To be honest it''s almost a not written rule: only Dominant can let intimate area unshaved...that''s according personal a taste of course. While subbie should be always being shaved: the deep the relationship the silkiest (skin has to be silk) have to be skin. Into a M/s relationship, intimate cannot be less than silk at contact. Anyway, for completeness, any treatment that will have permanet effect must have both agreement, like the electrolisys body depilation. But stop talking..."  </font>'
+		'<font color = blue> "Right to the point uh? Do not forget you don''t have to rush things." </font><br><font color = #DC143C> "Ok...ok...he''s your toy afterall..."</font><br><font color = blue> "By the way, <<$pcs_nickname>> this is worm, worm She is <<$pcs_nickname>>, a new Mistress... . We can start..." </font>Anna start to pull down the man''s pants...<br><font color = #DC143C> "...Hey...it''s shaved..."</font><br><font color = blue> "...Well it''s a worm but it''s registered as a human being...yet... . You know the bear problem..." </font><br><font color = #DC143C> "I mean his butt..."</font><br><font color = blue> "Oh! its butt...well...BDSM session usually has actors play in "blend" modality, expecially subs. To be honest it''s almost a not written rule: only Dominant can let intimate area unshaved...that''s according personal a taste of course. While subbie should be always being shaved: the deep the relationship the silkiest (skin has to be silk) have to be skin. Into a M/s relationship, intimate cannot be less than silk at contact. Anyway, for completeness, any treatment that will have permanet effect must have both agreement, like the electrolisys body depilation. But stop talking..."  </font>'
 		act'Warm up...': gt'hotel_anna_sex','slaveM1'
 	end
 end

+ 1 - 1
locations/hourly_events.qsrc

@@ -138,7 +138,7 @@ elseif pcs_period['period_warning'] = 1 and LutH_Max-LutH <= 2:
 		msg'Your stomach twinges again. Another cramp of pain. It must mean your period is about to start. You really need to get a tampon in there ASAP.'
 	end
 elseif mesec > 0:
-	period['cramp'] = 0
+	pcs_period['period_warning'] = 0
 end
 
 

+ 7 - 4
locations/journal_quests.qsrc

@@ -639,18 +639,21 @@ if $start_type['cat'] = 'dancer' or (mod_ballet['letter'] > 0 or balletqw['schoo
 	'<center><h3>Pushkin Ballet School</h3></center>'
 	'<center><h4>Introit</h4></center>'
 	if mod_ballet['letter'] ! 1 and balletqw['school'] < 1:
-		'You have been a ballerina since a child and you have excelled in your dance class. Your name was put forward for the yearly entrance assessments for the Pushkin Ballet School which are being held during the summer and you are hoping for a invitation to the prestigious Pushkin Ballet Academy to your dream of being a ballerina.'
+		'You have been a ballerina since a child and you have excelled in your dance class. Your name was put forward by your dance teacher to the yearly entrance assessments for the Pushkin Ballet School which are being held during the summer and you are hoping for an invitation to the prestigious Pushkin Ballet Academy to fulfil your dream of being a ballerina.'
+		*nl
 	end
 	if 	mod_ballet['letter'] = 1 and balletqw['school'] < 1:
-		'You have accepted the opportunity at the Pushkin Ballet Academy. Transport is provided for the week long course from the Pavlosk Community Center. '
-		'Departure: 3rd July between 1600 and 1700.'
+		'You have accepted the invitation to the Pushkin Ballet Academy. Transport is provided to all students to the week long course from the Pavlosk Community Center. '
+		'Departure: Sunday, 3rd July between 1600 and 1700.'
+		*nl
 		'Ensure you have sufficient toiletries and work on your appearance, physical and dance skills. Note this is a residental school in Pushkin and has strict rules, ensure you have wrapped up any unfinished business before departing.'
+		*nl
 	end
 	if balletqw['school'] > 1:
 		'<center><h4>Act 1: Dreaming of stars.</h4></center>'
 	end
 	if balletqw['school'] > 1:
-		!! 'You failed the course, there may be other opportunities if you want to achieve your ambition of being a ballerina.'
+		!! 'You failed the course, there may be other opportunities if you want to achieve your ambition of being a ballerina.s'
 		'You have been accepted into the Pushkin Ballet School. End of Quest at present.'
 	elseif balletqw['school'] = 2:
 		'You was accepted into the without any noticeable distinction.'

+ 12 - 47
locations/katjaEvDin.qsrc

@@ -94,7 +94,7 @@ if $ARGS[0] = 'kiss':
 						gs 'stat'
 						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/sex/school/grab.jpg"></center>'
 						'You grab Katja firmly so she can''t back away.'
-!!{
+!{
 						if pcs_dom < KatjaQW['dom']:
 							gs 'arousal', 'end'
 							gs 'stat'
@@ -195,10 +195,8 @@ if $ARGS[0] = 'kiss':
 		end
 		if $loc = 'katja_dorm':
 			act 'Stop talking': gt 'katja_dorm', 'start'
-		elseif mey_vika['key'] = 1:
-			Act 'Smile and leave the room': gt 'mey_home', 'start'
 		else
-			act 'Say goodbye and leave':gt 'pav_residential'
+			act 'Leave the room': gt 'mey_home', 'start'
 		end
 	end
 end
@@ -252,14 +250,9 @@ if $ARGS[0] = 'strapon_main':
 	end
 	if $loc = 'katja_dorm':
 		act 'Get dressed and stop talking': gt 'katja_dorm', 'start'
-	elseif mey_vika['key'] = 1:
-		Act 'Smile and leave the room': 
-			gt 'mey_home', 'start'
-		end
 	else
-		act 'Say goodbye and leave':
-			minut += 5
-			gt 'pav_residential'
+		act 'Smile and leave the room': 
+			gt 'mey_home', 'start'
 		end
 	end
 end
@@ -442,14 +435,10 @@ if $ARGS[0] = 'sex':
 			end
 			if $loc = 'katja_dorm':
 				act 'Stop talking': gt 'katja_dorm', 'start'
-			elseif mey_vika['key'] = 1:
+			else
 				act 'Leave the room': 
 					gt 'mey_home', 'start'
 				end
-			else
-				act 'Say goodbye and go home':
-					gt 'pav_residential'
-				end
 			end
 		end
 	end
@@ -485,16 +474,11 @@ if $ARGS[0] = 'sex':
 					gs 'arousal', 'end'
 					gt 'katja_dorm', 'start'
 				end
-			elseif mey_vika['key'] = 1:
+			else
 				act 'Leave the room': 
 					gs 'arousal', 'end'
 					gt 'mey_home', 'start'
 				end
-			else
-				act 'Say goodbye and go home':
-					gs 'arousal', 'end'
-					gt 'pav_residential'
-				end
 			end
 		end
 	end
@@ -545,16 +529,11 @@ if $ARGS[0] = 'kuni':
 				gs 'arousal', 'end'
 				gt 'katja_dorm', 'start'
 			end
-		elseif mey_vika['key'] = 1:
+		else
 			act 'Leave the room': 
 				gs 'arousal', 'end'
 				gt 'mey_home', 'start'
 			end
-		else
-			act 'Say goodbye and go home':
-				gs 'arousal', 'end'
-				gt 'pav_residential'
-			end
 		end
 	end
 end
@@ -595,16 +574,11 @@ if $ARGS[0] = 'fisting':
 				gs 'arousal', 'end'
 				gt 'katja_dorm', 'start'
 			end
-		elseif mey_vika['key'] = 1:
+		else
 			act 'Leave the room': 
 				gs 'arousal', 'end'
 				gt 'mey_home', 'start'
 			end
-		else
-			act 'Say goodbye and go home':
-				gs 'arousal', 'end'
-				gt 'pav_residential'
-			end
 		end
 	end
 end
@@ -643,16 +617,11 @@ if $ARGS[0] = 'kuni_p':
 				gs 'arousal', 'end'
 				gt 'katja_dorm', 'start'
 			end
-		elseif mey_vika['key'] = 1:
+		else
 			act 'Leave the room': 
 				gs 'arousal', 'end'
 				gt 'mey_home', 'start'
 			end
-		else
-			act 'Say goodbye and go home':
-				gs 'arousal', 'end'
-				gt 'pav_residential'
-			end
 		end
 	end
 end
@@ -813,10 +782,8 @@ if $ARGS[0] = 'kuni_dom':
 								end
 								if $loc = 'katja_dorm':
 									act 'Stop talking': gt 'katja_dorm', 'start'
-								elseif mey_vika['key'] = 1:
-									Act 'Leave the room': gt 'mey_home', 'start'
 								else
-									act 'Say goodbye and go home':gt 'pav_residential'
+									act 'Leave the room': gt 'mey_home', 'start'
 								end
 							end
 						end
@@ -828,10 +795,8 @@ if $ARGS[0] = 'kuni_dom':
 		gs 'arousal', 'end'
 		if $loc = 'katja_dorm':
 			act 'Stop talking': gt 'katja_dorm', 'start'
-		elseif mey_vika['key'] = 1:
-			Act 'Leave the room': gt 'mey_home', 'start'
 		else
-			act 'Say goodbye and go home':gt 'pav_residential'
+			act 'Leave the room': gt 'mey_home', 'start'
 		end
 	end
 end
@@ -893,7 +858,7 @@ if $ARGS[0] = 'moron':
 			gs 'stat'
 
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/frenchkiss.jpg"></center>'
-			'Looking at Ivan, then at this idiot, it seems that Ivan didn''t notice him. You sigh. "Is that really necessary? She is my best friend and we want to kiss. You just seem jealous!'
+			'Looking at Ivan, then at this idiot, it seems that Ivan didn''t notice him. You sigh. "Is that really necessary? She is my best friend and we want to kiss. You just seem jealous!"'
 			'"Lesbians! Lesbians!" He continues to scream like a freak so much so that people begin to gather around to find out what''s happening. Ivan steps over next to you and puts his hand on your shoulder, giving the idiot a glare as well. Boosted by Ivan''s support, you continue. "We like boys, just not assholes like you!" With those words, you stand on your tiptoes and, clasping Ivan''s head in your hands, give him a long passionate kiss with lots of tongue.'
 
 			act 'Kiss again':

+ 1 - 1
locations/katja_dorm.qsrc

@@ -1162,7 +1162,7 @@ if $ARGS[0] = 'movie_talk2':
 end
 
 if $ARGS[0] = 'watch_movie':
-	if katjaQW['relationship_count_start'] + 350/(1+ katjaQW['boy_block']) < daystart and hour < 21 and katjaQW['relationship_talk'] = 0:
+	if katjaQW['relationship_count_start'] + 350/(1+ katjaQW['boy_block']) < daystart and hour < 21 and katjaQW['relationship_talk'] = 0 and katjaQW['relationship_count_start'] > 0:
 		gt 'katja_dorm', 'relationship_talk'
 	end
 	cla & *clr

+ 1 - 0
locations/katja_uni.qsrc

@@ -1212,6 +1212,7 @@ if $ARGS[0] = 'dorm_room_walk':
 			act 'Go to Katja''s room':
 				cla & *clr
 				katjaQW['QWstage'] = 2
+				katjaQW['knows_dorm_room_number'] = 1
 				gs 'arousal', 'voyeur', 3, 'lesbian'
 				gs 'arousal', 'end'
 				katjaQW['horny'] = 70

+ 41 - 19
locations/korrPar.qsrc

@@ -1,35 +1,48 @@
 # korrPar
+!! Date refactored: 31st March, 2024
+!! Author: Myles
+!!
+!! Version: .01 - initial refactoring
+!! 
+!! Desc: Family home kitchen links to family flat corridor
 
-music_loop = 0
-CLOSE ALL
-menu_off = 0
+!! Call in location default actions
+gs 'home_family_init', 'init'
 
-if sound = 0 and pavhome_enter = 1:
-	PLAY 'sound/korr.mp3',30
-	pavhome_enter = 0
-end
+!! Set location header - img path is set in init
+$setloc['StageTitle'] = 'Corridor'
+$setloc['StageImage'] = '<<$default_img_path>>/korrpar.jpg'
 
-gs 'shortgs', 'setloc', 'korrPar', $ARGS[0]
+!! Set location vars:
 killvar '$locclass'
-clr
+!! Unique vars - unknown status, legacy code
+!! TODO: Follow up and determine what these do and if they can be removed.
 popolaini = 0
 saunaYouRoom = 0
 boycherdaksex = 0
-minut += 1
 bonusZ = 0
 display_bb = 0
-$location_type = 'private'
-gs 'themes', 'indoors'
-gs 'family_schedule'
-gs 'stat'
-'<center><h1><font color="maroon">Corridor</font></h1></center>'
-'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/korrpar.jpg"></center>'
+!! Set up game location data
+gs 'shortgs', 'setloc', 'korrPar', $ARGS[0]
+
+!! Set up location trackers
+gs 'home_family_init', 'trackers'
+
+!! Enable location audio
+if sound = 0 and pavhome_enter = 1:
+	PLAY 'sound/korr.mp3',30
+	pavhome_enter = 0
+end
+
+!! Location default description:
 *nl
 'The corridor of your parent''s apartment. There are several doors which lead to the other rooms of the apartment, as well as the front door which leads outside to the stairwell.'
 *nl
 'A <a href="exec:gt ''mirror'', ''start''">mirror</a> hangs on the wall near the front door.'
 *nl
+!! End default Description
 
+!! Additional location content:
 if locat['Fam_inGad'] = 1:'With your parents away visiting your grandparents, the apartment seems quiet and empty.'
 
 gs 'courtletter'
@@ -40,6 +53,9 @@ if locat['Mother'] = 1 and hour = 22 and minut < 30 and motherQW['con_steal_talk
 
 act '<b>Leave and go to the stairwell</b>':
 	if $clothingworntype ! 'nude':
+		$default_img_path = 'reset'
+		killvar '$mother_img_path'
+		minut += 5
 		gt'pod_ezd','etaj_2'
 	else
 		msg'<b><font color = red>You need to get dressed.</font></b>'
@@ -54,11 +70,17 @@ act '<b>Leave and go to the courtyard</b>':
 			cla
 			act '<font color=red><b>Yes, go outside</b></font>': 
 				minut += 5 
+				!! Reset vars - temp until other parts of game migrated
+				killvar '$default_img_path'
+				killvar '$mother_img_path'
 				gt'pav_complex', 'start'
 			end
 			act 'No, stay inside':gt 'korrPar'
 		else
 			minut += 5
+			!! Reset vars - temp until other parts of game migrated
+			killvar '$default_img_path'
+			killvar '$mother_img_path'
 			gt'pav_complex', 'start'
 		end
 	else
@@ -129,7 +151,7 @@ elseif locat['Kolka'] = 10:
 elseif locat['Anya'] = 5:
 	act 'Go to the bathroom':msg'You try to open the bathroom door, but it immediately stops and bangs against the latch. You hear the water running and your sister yell "I''ll be done in a few minutes!"'
 else
-	act 'Go to the bathroom':minut += 1 & gt 'vanrPar'
+	act 'Go to the bathroom':minut += 1 & gt 'vanrPar', 'start'
 end
 
 if motherQW['bathroom_dildos'] > 0 and locat['Mom_athome'] = 1: gt'mother_sextalk','bathroom_dildos1'
@@ -169,7 +191,7 @@ else
 	end
 end
 
-$korrParMomHeader = '<center><h1><font color="maroon"><<$npc_nickname[''A29'']>></font></h1></center><center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/mother.jpg"></center><br />'
+$korrParMomHeader = '<center><h1><font color="maroon"><<$npc_nickname[''A29'']>></font></h1></center><center><img <<$set_imgh>> src="<<$mother_img_path>>mother.jpg"></center><br />'
 
 if hour >= 16 and hour <= 20 and locat['Fam_inGad'] = 0:
 	if artemvbrosvid = 1 and artemhakday ! daystart and npc_QW['A29'] < 2 and mothervideotalk = 0 or BrotherNo = 1 and BrotherNoDay ! daystart and BJvideoPublic = 0:
@@ -203,7 +225,7 @@ if hour >= 16 and hour <= 20 and locat['Fam_inGad'] = 0:
 			gs 'pain', 5, 'asscheeks', 'spank'
 			gs 'stat'
 			'<center><h1><font color="maroon"><<$npc_nickname[''A29'']>></font></h1></center>'
-			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/spank.jpg"></center>'
+			'<center><img <<$set_imgh>> src="<<$mother_img_path>>spank.jpg"></center>'
 			*nl
 			'You stand in the hallway staring at the floor, too embarrassed to say anything.'
 			'Your mother grabs you by the arm and pulls you into the living room. "Take off your pants and bend over!" You shake your head, not liking where this is going at all. Getting even angrier by your refusal, she shouts, "Vladimir, come and hold her down!"'

+ 37 - 28
locations/kuhrPar.qsrc

@@ -1,10 +1,34 @@
 # kuhrPar
-CLOSE ALL
-*clr & cla
+!! Date refactored: 31st March, 2024
+!! Author: Myles
+!!
+!! Version: .01 - initial refactoring
+!! 
+!! Desc: Family home kitchen links to family flat corridor
+
+!! Start location initialisation
+!! Call in location default actions
+gs 'home_family_init', 'init'
+!! Set location header - img path is set in init
+$setloc['StageTitle'] = 'Parents Kitchen'
+$setloc['StageImage'] = '<<$default_img_path>>/kuhrpar.jpg'
+
+!! Set location vars:
+
+!! Call in kitchen library:
+gs 'kit_din'
+
+!! Set up game location data
+gs 'shortgs', 'setloc', 'kuhrpar', $ARGS[0]
+!! End location initialisation
+
+
+!! Begin location content
+
 if fullmorrout = 1:
 	minut += 2
 	act '<font color = maroon><b>Leave the apartment and go outside</b></font>':
-		minut +=1
+		minut += 1
 		killvar 'fullmorrout'
 		gs 'korrPar'
 		gt'pav_residential'
@@ -13,27 +37,9 @@ end
 
 act 'Return to the hallway':
 	killvar 'fullmorrout'
+	minut += 1
 	gt 'korrPar'
 end
-
-$loc = 'kuhrPar'
-$loc_arg = ''
-$locclass = 'kitr'
-$menu_loc = 'kuhrPar'
-$menu_arg = ''
-menu_off = 0
-minut += 1
-gs 'stat'
-gs 'kit_din'
-gs 'themes', 'indoors'
-gs 'family_schedule'
-
-!! ballet career
-gs 'core_library', 'init'
-
-'<center><b><font color="maroon">Kitchen</font></b></center>'
-'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/kuhrpar.jpg"></center>'
-
 if func('homes_properties', 'can_live_here'):
 	if locat['Mother'] = 4:
 		if locat['Mom_kitchen_action'] = 1:
@@ -43,7 +49,7 @@ if func('homes_properties', 'can_live_here'):
 			cla & *clr
 			minut += 5
 			gs'stat'
-			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/gotovka.jpg"></center>'
+			'<center><img <<$set_imgh>> src="<<$mother_img_path>>gotovka.jpg"></center>'
 			'Your <<$npc_nickname[''A29'']>> turns to you. "<<$pcs_nickname>>, please set the table for breakfast." You sigh and grab the dishes.'
 			act 'Set the table for breakfast': gt 'kuhrPar'
 			exit
@@ -88,7 +94,7 @@ if func('homes_properties', 'can_live_here'):
 			act 'Eat breakfast with your family':
 				*clr & cla
 				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/prost6.jpg"></center>'
+				'<center><img <<$set_imgh>> src="<<$mother_img_path>>prost6.jpg"></center>'
 				'Your <<$npc_nickname[''A29'']>> catches you just before you sit down.'
 				'Your Mum glares at you and you realize you haven''t washed the cum stains off which makes you feel terrible.'
 				'"I''m so ashamed of you! Go and clean it off now! Get out of my sight you whore!"'
@@ -102,7 +108,7 @@ if func('homes_properties', 'can_live_here'):
 				npc_rel['A29'] += 1
 				breakfast_day = daystart
 				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/breakfasthome.jpg"></center>'
+				'<center><img <<$set_imgh>> src="<<$default_img_path>>/breakfasthome.jpg"></center>'
 				'As you sit down and join your family for breakfast, your stepfather engages you in conversation. "How are you doing in school <<$pcs_nickname>>?"'
 				if kanikuli = 0 and mid($start_type,1,2) = 'sg' and $home['current'] = 'parents_home' and SchoolBlock = 0:
 					if class['school_grade_average'] >= 80:
@@ -127,7 +133,7 @@ if func('homes_properties', 'can_live_here'):
 			act 'Eat breakfast with your family':
 				*clr & cla
 				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/breakfasthome.jpg"></center>'
+				'<center><img <<$set_imgh>> src="<<$default_img_path>>/breakfasthome.jpg"></center>'
 				'Everyone stares at you as you sit down for breakfast. "What?" you exclaim.'
 				*nl
 				'Your mother stands up from her seat, nearly knocking her chair over in the process. "What on God''s earth are you doing <<$pcs_nickname>>?! Have you have no shame? Get dressed immediately young lady!"'
@@ -145,7 +151,7 @@ if func('homes_properties', 'can_live_here'):
 				npc_rel['A29'] += 1
 				dinner_day = daystart
 				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/dinnerhome.jpg"></center>'
+				'<center><img <<$set_imgh>> src="<<$default_img_path>>/dinnerhome.jpg"></center>'
 				'You sit down and join your family for dinner and your stepfather starts teasing you. "So, do you have a boyfriend yet <<$pcs_nickname>>?"'
 				if fame['pav_slut'] > 150 and motherKnowSpravka = 0:
 					'You''re about to respond when your mother interrupts you. "Of course not! She''s still too young to be thinking about boys!"'
@@ -179,7 +185,7 @@ if func('homes_properties', 'can_live_here'):
 			act 'Eat dinner with your family':
 				*clr & cla
 				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/dinnerhome.jpg"></center>'
+				'<center><img <<$set_imgh>> src="<<$default_img_path>>/dinnerhome.jpg"></center>'
 				'Everyone stares at you as you sit down for dinner.  "What?" you exclaim.'
 				*nl
 				'Your mother stands up from her seat, nearly knocking her chair over in the process. "What on God''s earth are you doing <<$pcs_nickname>>?! Have you have no shame? Get dressed immediately young lady!"'
@@ -208,6 +214,9 @@ if func('homes_properties', 'can_live_here'):
 		act 'Eat a light meal (0:10)':gs 'food', 's_meal'
 	end
 
+
+	!! Call in meal and pill functions for location:
+
 	dynamic $edasnack
 	dynamic $sandwich
 	dynamic $driwater

+ 21 - 31
locations/lact_bp.qsrc

@@ -128,7 +128,7 @@ if $ARGS[0] = 'view_milk_bottles':
 		jump 'vmbloop'
 	end
 	if milkedvolume > 0:
-		'<br><a href="exec:gt''lact_bp'',''empty_milk_bottles''">Pour the milk into the sink</a>'
+		'<br><a href="exec:gt''lact_bp'',''empty_all_milk_bottles''">Pour the milk into the sink</a>'
 	end
 	act 'Back':gt 'lact_bp', 'bp_milking'
 end
@@ -145,30 +145,31 @@ if $ARGS[0] = 'drink_milk_bottles':
 	pcs_hydra += mbarrfill[ARGS[1]] / iif(pcs_hydra>=100,200,100)
 	minut += max(1,(mbarrfill[ARGS[1]]/1000) + 3)
 	act 'Finish':
-		mbarrfill[ARGS[1]] = 0
-		mbarrmage[ARGS[1]] = 0
-		mbarrcool[ARGS[1]] = 0
-		$mbarrstat[ARGS[1]] = 'none'
-		$mbarrtemp[ARGS[1]] = 'none'
+		gs 'lact_bp', 'empty_milk_bottle', ARGS[1]
 		gs 'stat'
 		menu_off = 0 & gs 'lact_bp', 'view_milk_bottles', 1
 	end
 end
 
+if $ARGS[0] = 'empty_milk_bottle':
+	mbarrfill[ARGS[1]] = 0
+	mbarrmage[ARGS[1]] = 0
+	mbarrcool[ARGS[1]] = 0
+	$mbarrstat[ARGS[1]] = 'none'
+	$mbarrtemp[ARGS[1]] = 'none'
+end
+
+
 !! empty bottle function
-if $ARGS[0] = 'empty_milk_bottles':
-	!! use gt 'lact_bp', 'empty_milk_bottles'
+if $ARGS[0] = 'empty_all_milk_bottles':
+	!! use gt 'lact_bp', 'empty_all_milk_bottles'
 	*clr
 	cla
 	temp_var = (mc_inventory['bottle_m'] + mc_inventory['bottle_s']) - 1
 	emb_i = 0
 	:emb_loop
 	if emb_i <= temp_var:
-		mbarrfill[emb_i] = 0
-		mbarrmage[emb_i] = 0
-		mbarrcool[emb_i] = 0
-		$mbarrstat[emb_i] = 'none'
-		$mbarrtemp[emb_i] = 'none'
+		gs 'lact_bp', 'empty_milk_bottle', emb_i
 		emb_i += 1
 		jump 'emb_loop'
 	end
@@ -239,7 +240,7 @@ if $ARGS[0] = 'update_mbottle':
 	!! mbarrmage: timestamp the milk was pumped.
 	!! mbarrcool: Is the milk cooled? 0 = no, 1 = normal cooler, 2 = deep freezer
 	!! $mbarrstat: State of the milk: fresh, normal, old, rancid
-	!! $mbarrtemp: Temperature of the milk: hot, warm, normal temparture, cold, frozen
+	!! $mbarrtemp: Temperature of the milk: hot, warm, lukewarm, cold, frozen
 	!! mbarrloca: Location of the bottle.
 	if mbarrfill[ARGS[1]] > 0:
 		if mbarrfill[ARGS[1]] > mbarrtype[ARGS[1]]: mbarrfill[ARGS[1]] = mbarrtype[ARGS[1]]
@@ -249,13 +250,13 @@ if $ARGS[0] = 'update_mbottle':
 				$mbarrtemp[ARGS[1]] = 'warm'
 				$mbarrstat[ARGS[1]] = 'fresh'
 			elseif (mbarrmage[ARGS[1]] + 60) < func('lact_bp','time_stamp') and (mbarrmage[ARGS[1]] + 360) >= func('lact_bp','time_stamp'):
-				$mbarrtemp[ARGS[1]] =  'normal temparture'
+				$mbarrtemp[ARGS[1]] =  'lukewarm'
 				$mbarrstat[ARGS[1]] = 'normal'
 			elseif (mbarrmage[ARGS[1]] + 360) < func('lact_bp','time_stamp') and (mbarrmage[ARGS[1]] + 1440) >= func('lact_bp','time_stamp'):
-				$mbarrtemp[ARGS[1]] = 'normal temparture'
+				$mbarrtemp[ARGS[1]] = 'lukewarm'
 				$mbarrstat[ARGS[1]] = 'old'
 			else
-				$mbarrtemp[ARGS[1]] = 'normal temparture'
+				$mbarrtemp[ARGS[1]] = 'lukewarm'
 				$mbarrstat[ARGS[1]] = 'rancid'
 			end
 		elseif mbarrcool[ARGS[1]] = 1:
@@ -291,10 +292,7 @@ if $ARGS[0] = 'update_mbottle':
 			$mbarrstat[ARGS[1]] = 'fresh'
 		end
 	else
-		$mbarrtemp[ARGS[1]] = 'none'
-		$mbarrstat[ARGS[1]] = 'none'
-		mbarrmage[ARGS[1]] = 0
-		mbarrfill[ARGS[1]] = 0
+		gs 'lact_bp', 'empty_milk_bottle', ARGS[1]
 	end
 end
 
@@ -751,11 +749,7 @@ if $ARGS[0] = 'reg_bottle_count':
 			reg_bottles_count += 1
 			rbc_index = (reg_bottlem_count + reg_bottles_count) - 1
 			mbarrtype[rbc_index] = 1500
-			mbarrfill[rbc_index] = 0
-			mbarrmage[rbc_index] = 0
-			mbarrcool[rbc_index] = 0
-			$mbarrstat[rbc_index] = 'none'
-			$mbarrtemp[rbc_index] = 'none'
+			gs 'lact_bp', 'empty_milk_bottle', rbc_index
 			mbarrloca[rbc_index] = 1
 			jump 'rbc_loop'
 		end
@@ -763,11 +757,7 @@ if $ARGS[0] = 'reg_bottle_count':
 			reg_bottlem_count += 1
 			rbc_index = (reg_bottlem_count + reg_bottles_count) - 1
 			mbarrtype[rbc_index] = 2500
-			mbarrfill[rbc_index] = 0
-			mbarrmage[rbc_index] = 0
-			mbarrcool[rbc_index] = 0
-			$mbarrstat[rbc_index] = 'none'
-			$mbarrtemp[rbc_index] = 'none'
+			gs 'lact_bp', 'empty_milk_bottle', rbc_index
 			mbarrloca[rbc_index] = 1
 			jump 'rbc_loop'
 		end

+ 1 - 1
locations/marisha_ev.qsrc

@@ -161,7 +161,7 @@ if $ARGS[0] = 'Mall':
 				$loc_arg = 'start'
 				MarishaQW["marisha_sleepover"] = 1
 				gs 'stat'
-				gt 'sleep_simple', 'simple'
+				gt 'pre_sleep', 'prepare_sleep'
 			end
 		end
 

+ 11 - 3
locations/mey_home.qsrc

@@ -78,7 +78,15 @@ if $ARGS[0] = 'start':
 	'A large and bright hall, this "hallway" stretches for quite a bit. You''ve never seen anything like this before! There is a mirror covering half of one of the walls. You see the kitchen from the hallway. There''s a big oval dining table.'
 	'There are stairs leading to the second floor. You can also see two doors where the signs say "Toilet" and "Bathroom".'
 
-	act 'Leave the house': minut += 5 & gt 'pav_residential'
+	act 'Leave the house':
+		if $clothingworntype ! 'nude':
+			minut += 5
+			gt 'pav_residential'
+		else
+			msg'<b><font color = red>You need to get dressed.</font></b>'
+			gt 'mey_home', 'start'
+		end
+	end
 
 	if mey_vika['mey_vika_qw'] = 30 and mey_vika['qw_day'] ! daystart and locat['Vicky'] = 15: gs 'mey_vika_events', 'case_gift'
 	if mey_vika['mey_vika_qw'] >= 32 and mey_vika['gym_day'] ! daystart and locat['Vicky'] = 12: gs 'mey_vika_events', 'gym0'
@@ -125,13 +133,13 @@ if $ARGS[0] = 'start':
 	end
 	act 'Kitchen': minut += 1 & gt 'mey_home', 'kitchen'
 	act 'Bathroom': minut += 1 & gt 'mey_home', 'bathroom'
-	act 'Guest room': minut += 1 & gt 'mey_home', 'guest_bedroom'
+	if mey_vika['mey_vika_qw'] >= 30: act 'Guest room': minut += 1 & gt 'mey_home', 'guest_bedroom'
 	act 'Lounge': minut += 1 & gt 'mey_home', 'lounge'
 	act 'Katja''s room': minut += 1 & gt 'mey_home', 'katja_bedroom'
 	act 'Vicky''s room': minut += 1 & gt 'mey_home', 'vicky_bedroom'
 	act 'Tamara Meynold''s room': minut += 1 & gt 'mey_home', 'tamara_bedroom'
 	act 'Garden': minut += 1 & gt 'mey_home', 'garden'
-	if func('homes_properties', 'is_current_home') = 0 and func('homes_properties', 'can_live_here'):
+	if func('homes_properties', 'is_current_home') = 0 and func('homes_properties', 'can_live_here') and mey_vika['mey_vika_qw'] >= 30:
 		act 'Set this household as your main home':gs 'homes_properties', 'set_home' & gt 'mey_home', 'start'
 	end
 

+ 1 - 1
locations/mother.qsrc

@@ -288,7 +288,7 @@ if $ARGS[0] = '':
 		end
       
 		!!Tell mother that you were raped and skip mother being angry at you for being sexualy active event
-		if rape_day+7 > daystart:
+		if rape_count > 0 and rape_day+7 > daystart:
 			act 'Tell her about your rape':
 				gt 'mother_chats', 'rape_talk'
 			end

+ 26 - 25
locations/npcstatic1.qsrc

@@ -24,6 +24,7 @@
 !!fat - fat
 !!obese - very fat
 
+!2022/01/03
 !{
 Empty number - 66(bandit), 100, 231
 
@@ -178,7 +179,7 @@ npc_rep['A<<npctemp>>'] = 260
 npc_intel['A<<npctemp>>'] = 57
 hotcat_rating['A<<npctemp>>'] =  8
 !!height_metric = 180cm
-!!height_imperial = 5foot 11inch
+!!height_imperial = 5ft 11in
 !!body_build = average
 !!hair = brown
 
@@ -208,7 +209,7 @@ npc_rep['A<<npctemp>>'] = 30
 npc_intel['A<<npctemp>>'] = 84
 hotcat_rating['A<<npctemp>>'] = 6
 !!height_metric = 177cm
-!!height_imperial = 5foot 10inch
+!!height_imperial = 5ft 10in
 !!body_build = average
 !!hair = black
 
@@ -238,7 +239,7 @@ npc_rep['A<<npctemp>>'] = 190
 npc_intel['A<<npctemp>>'] = 30
 hotcat_rating['A<<npctemp>>'] =  7
 !!height_metric = 181cm
-!!height_imperial = 5foot 11inch
+!!height_imperial = 5ft 11in
 !!body_build = muscular
 !!hair = black
 
@@ -270,7 +271,7 @@ npc_sexskill['A<<npctemp>>'] = 1
 npc_intel['A<<npctemp>>'] = 47
 hotcat_rating['A<<npctemp>>'] = 5
 !!height_metric = 170cm
-!!height_imperial = 5foot 6inch
+!!height_imperial = 5ft 6in
 !!body_build = skinny
 !!hair = blond
 
@@ -301,7 +302,7 @@ npc_rep['A<<npctemp>>'] = 160
 npc_intel['A<<npctemp>>'] = 41
 hotcat_rating['A<<npctemp>>'] = 7
 !!height_metric = 175cm
-!!height_imperial = 5foot 9inch
+!!height_imperial = 5ft 9in
 !!body_build = toned/athletic
 !!hair = brown
 
@@ -331,7 +332,7 @@ npc_rep['A<<npctemp>>'] = 10
 npc_intel['A<<npctemp>>'] = 67
 hotcat_rating['A<<npctemp>>'] = 4
 !!height_metric = 172cm
-!!height_imperial = 5foot 8inch
+!!height_imperial = 5ft 8in
 !!body_build = skinny
 !!hair = brown
 
@@ -361,7 +362,7 @@ npc_rep['A<<npctemp>>'] = 0
 npc_intel['A<<npctemp>>'] = 55
 hotcat_rating['A<<npctemp>>'] = 1
 !!height_metric = 174cm
-!!height_imperial = 5foot 9inch
+!!height_imperial = 5ft 9in
 !!body_build = skinny
 !!hair = black
 
@@ -391,7 +392,7 @@ npc_rep['A<<npctemp>>'] = 170
 npc_intel['A<<npctemp>>'] = 52
 hotcat_rating['A<<npctemp>>'] =  7
 !!height_metric = 179cm
-!!height_imperial = 5foot 10inch
+!!height_imperial = 5ft 10in
 !!body_build = muscular
 !!hair = brown
 
@@ -422,7 +423,7 @@ npc_sexskill['A<<npctemp>>'] = rand(0,2)
 npc_intel['A<<npctemp>>'] = 31
 hotcat_rating['A<<npctemp>>'] = 5
 !!height_metric = 189cm
-!!height_imperial = 6foot 2inch
+!!height_imperial = 6ft 2in
 !!body_build = muscular
 !!hair = brown
 
@@ -453,7 +454,7 @@ npc_sexskill['A<<npctemp>>'] = rand(0,2)
 npc_intel['A<<npctemp>>'] = 48
 hotcat_rating['A<<npctemp>>'] = 6
 !!height_metric = 184cm
-!!height_imperial = 6foot 1inch
+!!height_imperial = 6ft 1in
 !!body_build = wiry
 !!hair = black
 
@@ -484,7 +485,7 @@ npc_sexskill['A<<npctemp>>'] = rand(0,2)
 npc_intel['A<<npctemp>>'] = 33
 hotcat_rating['A<<npctemp>>'] =  4
 !!height_metric = 174cm
-!!height_imperial = 5foot 9inch
+!!height_imperial = 5ft 9in
 !!body_build = toned/athletic
 !!hair = blond
 
@@ -514,7 +515,7 @@ npc_rep['A<<npctemp>>'] = 10
 npc_intel['A<<npctemp>>'] = 80
 hotcat_rating['A<<npctemp>>'] = 7
 !!height_metric = 170cm
-!!height_imperial = 5foot 7inch
+!!height_imperial = 5ft 7in
 !!body_build = average
 !!hair = long brown hair just past her shoulders.
 !!pubic hair = Neatly trimmed landing strip
@@ -546,7 +547,7 @@ npc_bust['A<<npctemp>>'] = 8
 npc_rep['A<<npctemp>>'] = 40
 hotcat_rating['A<<npctemp>>'] = 6
 !!height_metric = 161cm
-!!height_imperial = 5foot 3inch
+!!height_imperial = 5ft 3in
 !!body_build = toned/athletic
 !!hair = short blonde hair.
 !!pubic hair = neatly trimmed small V
@@ -577,7 +578,7 @@ npc_rep['A<<npctemp>>'] = 20
 npc_intel['A<<npctemp>>'] = 77
 hotcat_rating['A<<npctemp>>'] = 7
 !!height_metric = 162cm
-!!height_imperial = 5foot 4inch
+!!height_imperial = 5ft 4in
 !!body_build = average
 !!hair = very long red hair reaching half way down her back.
 !!pubic hair = shaved
@@ -608,7 +609,7 @@ npc_intel['A<<npctemp>>'] = 52
 npc_rep['A<<npctemp>>'] = 90
 hotcat_rating['A<<npctemp>>'] = 7
 !!height_metric = 160cm
-!!height_imperial = 5foot 3inch
+!!height_imperial = 5ft 3in
 !!body_build = average
 !!hair = long red hair just past her shoulders.
 !!pubic hair = neatly trimmed triangle
@@ -639,7 +640,7 @@ npc_intel['A<<npctemp>>'] = 73
 npc_rep['A<<npctemp>>'] = 30
 hotcat_rating['A<<npctemp>>'] = 6
 !!height_metric = 166cm
-!!height_imperial = 5foot 5inch
+!!height_imperial = 5ft 5in
 !!body_build = average
 !!hair = very long light brown hair reaching half way down her back.
 !!pubic hair = neatly trimmed triangle
@@ -670,7 +671,7 @@ npc_intel['A<<npctemp>>'] = 44
 npc_rep['A<<npctemp>>'] = 60
 hotcat_rating['A<<npctemp>>'] = 8
 !!height_metric = 167cm
-!!height_imperial = 5foot 6inch
+!!height_imperial = 5ft 6in
 !!body_build = petite
 !!hair = long blonde hair just past her shoulders.
 !!pubic hair = neatly trimmed landing strip
@@ -702,7 +703,7 @@ npc_intel['A<<npctemp>>'] = 32
 npc_rep['A<<npctemp>>'] = 80
 hotcat_rating['A<<npctemp>>'] = 7
 !!height_metric = 163cm
-!!height_imperial = 5foot 4inch
+!!height_imperial = 5ft 4in
 !!body_build = muscular
 !!hair = long blonde hair just past her shoulders, almost always kept in a ponytail.
 !!pubic hair = neatly trimmed landing strip
@@ -733,7 +734,7 @@ npc_intel['A<<npctemp>>'] = 30
 npc_rep['A<<npctemp>>'] = 60
 hotcat_rating['A<<npctemp>>'] = 7
 !!height_metric = 165cm
-!!height_imperial = 5foot 5inch
+!!height_imperial = 5ft 5in
 !!body_build = toned/athletic
 !!hair = long brown hair just past her shoulders, almost always kept in a ponytail.
 !!pubic hair = neatly trimmed landing strip
@@ -764,7 +765,7 @@ npc_intel['A<<npctemp>>'] = 33
 hotcat_rating['A<<npctemp>>'] = 6
 npc_rep['A<<npctemp>>'] = 30
 !!height_metric = 173cm
-!!height_imperial = 5foot 8inch
+!!height_imperial = 5ft 8in
 !!body_build = toned/athletic
 !!hair = long dyed red hair just past her shoulders.
 !!pubic hair = neatly trimmed landing strip
@@ -795,7 +796,7 @@ npc_intel['A<<npctemp>>'] = 24
 hotcat_rating['A<<npctemp>>'] = 6
 npc_rep['A<<npctemp>>'] = 80
 !!height_metric = 162cm
-!!height_imperial = 5foot 4inch
+!!height_imperial = 5ft 4in
 !!body_build = average
 !!hair = long brown hair almost always kept in a ponytail.
 !!pubic hair = neatly trimmed small V
@@ -826,7 +827,7 @@ npc_intel['A<<npctemp>>'] = 36
 npc_rep['A<<npctemp>>'] = 90
 hotcat_rating['A<<npctemp>>'] = 9
 !!height_metric = 174cm
-!!height_imperial = 5foot 9inch
+!!height_imperial = 5ft 9in
 !!body_build = skinny
 !!hair = very long light brown hair reaching half way down her back.
 !!pubic hair = shaved
@@ -858,7 +859,7 @@ npc_intel['A<<npctemp>>'] = 46
 npc_rep['A<<npctemp>>'] = 70
 hotcat_rating['A<<npctemp>>'] = 8
 !!height_metric = 154cm
-!!height_imperial = 5foot 1inch
+!!height_imperial = 5ft 1in
 !!body_build = toned/athletic
 !!hair = very long dark brown hair reaching half way down her back.
 !!pubic hair = shaved
@@ -889,7 +890,7 @@ npc_intel['A<<npctemp>>'] = 42
 npc_rep['A<<npctemp>>'] = 90
 hotcat_rating['A<<npctemp>>'] = 5
 !!height_metric = 165cm
-!!height_imperial = 5foot 5inch
+!!height_imperial = 5ft 5in
 !!body_build = toned/athletic
 !!hair = long black hair just past her shoulders.
 !!pubic hair = neatly trimmed triangle
@@ -930,7 +931,7 @@ npc_bust['A<<npctemp>>'] = 9
 npc_intel['A<<npctemp>>']   = 54
 hotcat_rating['A<<npctemp>>'] = 6
 !!height_metric = 163cm
-!!height_imperial = 5foot 4inch
+!!height_imperial = 5ft 4in
 !!body_build = petite
 !!hair = long brown hair just past her shoulders.
 !!pubic hair = Neatly trimmed triangle

+ 2 - 2
locations/npcstatic3.qsrc

@@ -790,7 +790,7 @@ npc_intel['A<<npctemp>>'] = 49
 hotcat_rating['A<<npctemp>>'] = 7
 npc_rep['A<<npctemp>>'] = 0
 !!height_metric = 170cm
-!!height_imperial = 5foot 7inch
+!!height_imperial = 5feet 7inches
 !!body_build = toned/athletic
 !!hair = long dirty blonde hair just past her shoulders, almost always kept in a ponytail.
 !!pubic hair = Neatly trimmed triangle
@@ -945,7 +945,7 @@ npc_intel['A<<npctemp>>'] = 47
 npc_rep['A<<npctemp>>'] = 220
 hotcat_rating['A<<npctemp>>'] = 8
 !!height_metric = 185cm
-!!height_imperial = 6foot 1inch
+!height_imperial = 6foot 1inch
 !!body_build = toned/athletic
 !!hair = black
 

+ 1 - 2
locations/npcstatic4.qsrc

@@ -23,8 +23,7 @@ hotcat_rating['A<<npctemp>>'] = 4
 npc_rep['A<<npctemp>>'] = 110
 npc_intel['A<<npctemp>>'] = 26
 !!height_metric = 196cm
-!!height_imperial = 6foot 5inch
-!!body_build = bodybuilder
+!!height_imperial = 6foot 5inch!!body_build = bodybuilder
 !!hair = black
 
 

+ 1 - 1
locations/pav_complex.qsrc

@@ -161,7 +161,7 @@ if $ARGS[0] = 'garages':
 	'Along the back street is a row of garages available for the residents of the apartments to rent. The weather in Pavlovsk can be brutal, especially in the winter, so people who own a car often have a garage to put it away safely. Between the garages and the courtyard is a series of smaller storage buildings that can be rented, as well as the complex''s maintenance and laundry buildings. The layout of the buildings leaves a maze of walkways between them, which are a popular place for kids to play or for teenagers to hang out.'
 	*nl
 	if mid($start_type,1,2) = 'sg':'Your <a href="exec:minut += 5 & gt ''gargazel''">stepfather''s garage</a> is around here somewhere.'
-	if gopnikbandQW['practice_invite'] = 1:'The converted <a href="exec:minut += 5 & gt ''praiders_garage'', ''band_garage''">band garage</a> the band uses to practice in is around here.'
+	if gopnikbandQW['practice_invite'] = 1:'The converted <a href="exec:minut += 5 & gt ''praiders_garage'', ''band_garage''">garage</a> the band uses to practice in is around here.'
 	if gopnik_initiation = 1 and gopnik_initiation_day = daystart and hour = 20: act '<b>Meet Lena and Lera</b>': gt 'gopnik_initiation','initiation'
 	if ((week < 6 and hour => 18 and hour < 22) or (week >= 6 and hour >= 15 and hour < 22)) and ed_event_day ! daystart:
 		if anushkaQw['seen_ed'] = 0:

+ 1 - 1
locations/pav_disco_classmates.qsrc

@@ -196,7 +196,7 @@ if $ARGS[0] = 'atdisco':
 !!Andrey
 	gs 'pav_disco_classmates', 'atdisco10', 147
 !!Katja
-	if loact['Katja'] = 8:
+	if locat['Katja'] = 8:
 		gs 'pav_disco_classmates', 'atdisco10', 14
 	else
 		discoenable['A14'] = 0

+ 3 - 0
locations/pav_residential.qsrc

@@ -54,14 +54,17 @@ gs'street_event','pav_residential', 'extras'
 if flag_rape_1 = 1:
 	flag_rape_1 = 0
 	rape_count = rape
+	rape_day = daystart
 	'You stop under the dim light of a streetlight. Breathing heavy, you occasionally stop to wince from the pain coming from your pussy. You convince yourself not to tell anyone, and to just get home, clean up and go to bed as soon as possible. The sooner you do that, the sooner you can forget this ever happened.'
 elseif flag_rape_1 = 2:
 	flag_rape_1 = 0
 	rape_count = rape
+	rape_day = daystart
 	'Coming out of your daze, you find you''ve walked into the center of town without even realizing it. You feel a bit strange as you stop to think about why you aren''t upset about having been raped. Replaying the encounter in your head, you realize you actually enjoyed it a little. All in all, you''re not too worried about what happened.'
 elseif rape > rape_count:
 	!for normal rape. differ display with bimbolevel
 	rape_count = rape
+	rape_day = daystart
 	if bimbolevel > 2:
 		'You feel great after having sex, and don''t understand why they didn''t just ask. Silly man.'
 	elseif bimbolevel > 0:

+ 6 - 6
locations/pav_shared_nestor.qsrc

@@ -128,18 +128,18 @@ if $ARGS[0] = 'nestor_Chat':
 		if say = 1:
 			if $clothingworntype = 'nude':
 				'<<$npc_firstname[$boy]>> is scanning your nude body with his eyes.'
-				if salocatnow <= 2:
+				if pcs_bmi <= 18:
 					'He obviously enjoys the sight: <font color=#<<$nestor_font>>>"Nice body <<$pcs_firstname>>. Are you here to offer it?"</font>'
-				elseif salocatnow > 2 and salocatnow <= 4:
+				elseif pcs_bmi <= 25:
 					'He is not very content with the sight: <font color=#<<$nestor_font>>>"You should lose some weight, <<$pcs_firstname>>, you are getting fat."</font>'
 				else
 					'He seems almost disgusted by the sight: <font color=#<<$nestor_font>>>"Jeezus <<$pcs_firstname>>, stop eating you are beginning to look like an elephant!"</font>'
 				end
 				!panties on
-				if salocatnow <= 4 and $pantyworntype ! 'none':
+				if pcs_bmi <= 25 and $pantyworntype ! 'none':
 					'<font color=#<<$nestor_font>>>"Why did you leave those panties on <<$pcs_firstname>>? Such a shame."</font>'
 				!panties off, anal plug
-				elseif salocatnow <= 4 and $pantyworntype = 'none' and analplugIN = 1:
+				elseif pcs_bmi <= 25 and $pantyworntype = 'none' and analplugIN = 1:
 					'As you accidentally turn around, he gazes between your asscheeks on the plug stuck in your ass.'
 					'<font color=#<<$nestor_font>>>"Wow, you just can''t be a second without something filling your holes, do you?"</font>'
 					if rand(0, 100) < 30:
@@ -149,14 +149,14 @@ if $ARGS[0] = 'nestor_Chat':
 				end
 			elseif CloBimbo = 1:
 				'<<$npc_firstname[$boy]>> is scanning your outfit with his eyes.'
-				if salocatnow <= 4:
+				if pcs_bmi <= 25:
 					'<font color=#<<$nestor_font>>>"You know I like when you dress like a mindless bimbo. Not that you aren''t, but anyway, good job!"</font>'
 				else
 					'<font color=#<<$nestor_font>>>"I like girls dressed like bimbos, but they should have the body shape for it. Waste of good clothes on you."</font>'
 				end
 			elseif CloStyle = 4:
 				'<<$npc_firstname[$boy]>> is scanning your outfit with his eyes.'
-				if salocatnow <= 4:
+				if pcs_bmi <= 25:
 					'<font color=#<<$nestor_font>>>"Only thing that I like more than stupid bimbos are whores. I won''t pay you anyway, but good job!"</font>'
 				else
 					'<font color=#<<$nestor_font>>>"I literally love whores, but with your body shape you won''t be earning much money, darling."</font>'

+ 4 - 4
locations/pav_shared_oleg.qsrc

@@ -56,9 +56,9 @@ if $ARGS[0] = 'oleg_Chat':
 			!clothing and bodyshape reactions
 			if $clothingworntype = 'nude':
 				'<<$npc_firstname[$boy]>> is looking at your nude body with obvious shame, blurring.'
-				if salocatnow <= 1:
+				if pcs_bmi <= 15:
 					'He is not very content with the sight: <font color=#<<$oleg_font>>>"<<$pcs_firstname>>, you should eat more, it is unhealthy to be too thin."</font>'
-				elseif salocatnow > 1 and salocatnow <= 4:
+				elseif pcs_bmi <= 25:
 					'Even though he is ashamed, he is obviously pleased with the sight: <font color=#<<$oleg_font>>>"<<$pcs_firstname>>, you have a beautiful body you know... But please, put on some clothes!"</font>'
 				else
 					'He is not very content with the sight: <font color=#<<$oleg_font>>>"<<$pcs_firstname>>, you should eat less, it is unhealthy to be too fat."</font>'
@@ -79,14 +79,14 @@ if $ARGS[0] = 'oleg_Chat':
 				end
 			elseif CloBimbo = 1:
 				'<<$npc_firstname[$boy]>> is looking at your outfit with suspicion.'
-				if salocatnow >= 1 and salocatnow <= 4:
+				if pcs_bmi >= 12 and pcs_bmi <= 25:
 					'<font color=#<<$oleg_font>>>"You know nice girls like you should not wear so skimpy dresses. Some people can''t hold themselves, you know?"</font>'
 				else
 					'<font color=#<<$oleg_font>>>"Girls should not wear so skimpy dresses, it may be offending to other people, you know?"</font>'
 				end
 			elseif CloBimbo = 4:
 				'<<$npc_firstname[$boy]>> is looking at your outfit with suspicion.'
-				if salocatnow <= 4:
+				if pcs_bmi <= 25:
 					'<font color=#<<$oleg_font>>>"You know nice girls like you should not dress like whores. Some people can''t know that they actually are not, you know?"</font>'
 				else
 					'<font color=#<<$oleg_font>>>"Girls should not dress like a whores when they aren''t."</font>'

+ 4 - 4
locations/pav_shared_yakov.qsrc

@@ -56,9 +56,9 @@ if $ARGS[0] = 'yakov_Chat':
 			!clothing and bodyshape reactions
 			if $clothingworntype = 'nude':
 				'<<$npc_firstname[$boy]>> is looking at your nude body wondering...'
-				if salocatnow <= 1:
+				if pcs_bmi <= 15:
 					'He is not very content with the sight: <font color=#<<$yakov_font>>>"<<$pcs_firstname>>, are you not anorexic? Better not, it is a terrible thing."</font>'
-				elseif salocatnow > 1 and salocatnow <= 3:
+				elseif pcs_bmi >= 15 and pcs_bmi <= 20:
 					'<font color=#<<$yakov_font>>>"<<$pcs_firstname>>, you have nice bodyshape you know. Do you exercise or are you mp4ten from nature?"</font>'
 				else
 					'He is not very content with the sight: <font color=#<<$yakov_font>>>"<<$pcs_firstname>>, you should eat less, too much body fat is bad for your sports performance."</font>'
@@ -83,14 +83,14 @@ if $ARGS[0] = 'yakov_Chat':
 				end
 			elseif CloBimbo = 1:
 				'<<$npc_firstname[$boy]>> is looking at your outfit with suspicion.'
-				if salocatnow >= 1 and salocatnow <= 4:
+				if pcs_bmi >= 12 and pcs_bmi <= 25:
 					'<font color=#<<$yakov_font>>>"What a sexy dress are you wearing! Aren''t you afraid it is too sexy for some people in the town, though?"</font>'
 				else
 					'<font color=#<<$yakov_font>>>"Nice dress sweetie, but it would look better if you lost some fat, you know..."</font>'
 				end
 			elseif CloStyle = 4:
 				'<<$npc_firstname[$boy]>> is looking at your outfit with suspicion.'
-				if salocatnow <= 4:
+				if pcs_bmi <= 25:
 					'<font color=#<<$yakov_font>>>"I love sexy dresses on you sweetie, but this one makes you look like a... playgirl if you know what I mean."</font>'
 				else
 					'<font color=#<<$yakov_font>>>"Sweetie this dress one makes you look like a... playgirl if you know what I mean."</font>'

+ 1 - 1
locations/pav_station.qsrc

@@ -54,7 +54,7 @@ if $ARGS[0] = 'reception':
 		act 'Walk away from the clerk': minut += 2 & gt 'pav_station', 'station_inside'
 	end
 
-	if rape_day+2 > daystart: act 'Report a rape': gt 'pav_station', 'rape_report'
+	if rape_count > 0 and rape_day+2 > daystart: act 'Report a rape': gt 'pav_station', 'rape_report'
 end
 
 temp_tot_booked_pav = policeQW['shoplift_booked_pav'] + policeQW['prostitution_booked_pav']

+ 1 - 1
locations/police_station.qsrc

@@ -23,7 +23,7 @@ if $ARGS[0] = 'reception':
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityrec.jpg"></center>'
 	'Upon entering the station you''re welcomed by a reception desk. The officers sitting here are protected by thick glass and you see several monitors and computers keeping an eye on everything that''s happening inside and outside the building.'
 	
-	if rape_day+2 > daystart: act 'Report a rape': gt'police_station','rape_report'
+	if rape_count > 0 and rape_day+2 > daystart: act 'Report a rape': gt'police_station','rape_report'
 	act 'Return to the center': gt 'city_center'
 end
 

File diff suppressed because it is too large
+ 182 - 96
locations/praiders_garage.qsrc


+ 1 - 1
locations/pushkin_ballet_center.qsrc

@@ -8,7 +8,7 @@ if $ARGS[0] = '' or $ARGS[0] = 'start':
 	gs 'shortgs', 'setloc', 'ballet_pushkin_center', $ARGS[0]
 	$region = 'puskin'
 	$setloc['StageTitle'] = 'Pushkin Residential School'
-	$setloc['StageImage'] =  'pushkin/residence/residence'
+	$setloc['StageImage'] =  'pushkin/residence/residence.jpg'
 	menu_off = 0
 	if sound = 0:PLAY 'sound/street.mp3',30
 	gs'stat'

+ 35 - 41
locations/pushkin_ballet_class.qsrc

@@ -24,7 +24,7 @@ if $ARGS[0] = 'start':
 	*clr & cla
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Terpsichore Wing'
-	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/hall'
+	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/hall.jpg'
 
 	!! clear switch vars
 	killvar 'sharedmeal' 
@@ -69,7 +69,7 @@ if $ARGS[0] = 'start':
 	elseif balletqw['school'] ! 1 and ballet_day = 1:
 		'You are chaperoned to your school by Bronya. After a short journey, you were standing outside a classroom and told to wait by Bronya. You look around you at various photographs and artwork of dancers and performances.'
 		'You look at the girls you are with, with a few of them trying to catch your attention, but before you can talk to them, Bronya has come back from the classroom. "You can enter now, girls."'
-		 act 'Attend class': gt 'pushkin_ballet_class', 'pilates'
+		act 'Attend class': gt 'pushkin_ballet_class', 'pilates'
 	elseif balletqw['school'] ! 1 and ballet_day > 1:
 		'You head to school with your group, and you can see a few of your classmates gossiping up front, but you are left to your own thoughts. Before you realise it, you''re standing at the doors to your first lesson.'
 		act 'Attend class': gt 'pushkin_ballet_class', 'pilates'
@@ -82,7 +82,7 @@ if $ARGS[0] = 'pilates':
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	$setloc['StageTitle'] = 'Pilates'
-	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/pilates_2'
+	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/pilates_2.jpg'
 	nclass = 1
 	if ballet_day = 1:
 
@@ -153,7 +153,7 @@ if $ARGS[0] = 'first_lesson':
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	$setloc['StageTitle'] = 'Dance Class'
-	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_002'
+	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_002.jpg'
 	nclass = 2
 	gs 'stat'
 
@@ -211,7 +211,7 @@ if $ARGS[0] = 'first_lesson':
 		gs 'sweat', 'add', 30
 		gs 'pushkin_ballet_init', 'daily_assessment'
 		gs 'stat'
-		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_003'
+		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_003.jpg'
 		gs 'core_library', 'stage_title'
 
 		'As you enter the classroom, there''s an air of excitement this morning. You''re halfway through the week, and anticipation and nervousness are creeping in for the upcoming assessment.'
@@ -266,7 +266,7 @@ if $ARGS[0] = 'first_lesson':
 		gs 'sweat', 'add', 30
 		gs 'pushkin_ballet_init', 'daily_assessment'
 		gs 'stat'
-		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_005'
+		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_005.jpg'
 		gs 'core_library', 'stage_title'
 		'You''ve just finished the Pilates class, and enter your classroom dressed in Ballet Blanc. It''s the first time you''ve seen the group dressed as if you''re part of the Corp, which brings a sense of pride for being here.'
 		'<<$npc_firstname[''A3501'']>> grabs your attention, "Hey, <<$pcs_nickname>>, let''s check you over quickly.". <<$npc_firstname[''A3501'']>> quickly goes over your outfit and hair, ensuring that your presentation is perfect and you do the same for her.'
@@ -277,21 +277,21 @@ if $ARGS[0] = 'first_lesson':
 			'"Well done, class, you have done me proud. You have done exactly what I asked." It was rare praise from Biserka. "Now I want you to give me your best. I want you to dance like you never danced."'
 			'With that, she claps her hands. "Take your positions." Sofia starts to play. You lose yourself in the performance of all the lessons coming together from the last week, and you flow through the performance.'
 			'Biserka watches all the girls'' performances critically, taking notes as she goes. The minutes fly by, and before you know it, the first rehearsal is over. "And again," she calls out.'
-			 act 'Continue rehearsals':
+			act 'Continue rehearsals':
 				*clr & cla
-				$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_teach_1'
+				$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_teach_1.jpg'
 				gs 'core_library', 'stage_title'
 				'You rehearse several times before she''s happy, and then she hands critique notes to all the girls. When she gives you yours, she compliments you before gathering Maya and Kima aside for a private talk.'
 				'"Tomorrow your assessment will start at 09:00. You will enter the room in First Position and wait for the examiners'' instructions. Once you have performed the Entrance of the Swans, you will be asked to perform a Pas de Deux with your dance partner."'
 				'"Your final examination is a solo divertissement lasting no more than five minutes. This performance shows your ability to the judges and will be freeform."'
 				'"Any questions? If you have any tonight or need assistance, contact Bronya, and she will advise or help as needed."'
-					act 'Reverence':		
-						*clr & cla
-						$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/events/reverance'
-						gs 'core_library', 'stage_title'
-						'You and the girls all look at each other and start to perform a deep curtsy as part of the great reverence you agreed to the previous evening with the girls to pay respect to Biserka and Sofia for their teaching this week. '
-						'Both teachers look taken aback and have a smile on their faces. "Thank you, class. It''s been a pleasure to teach you this week," Biserka says, with Sofia nodding her agreement and repeating her words.'						   
-						act 'Go to the showers' : gt 'pushkin_ballet_class', 'shower'
+				act 'Reverence':		
+					*clr & cla
+					$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/events/reverance.jpg'
+					gs 'core_library', 'stage_title'
+					'You and the girls all look at each other and start to perform a deep curtsy as part of the great reverence you agreed to the previous evening with the girls to pay respect to Biserka and Sofia for their teaching this week. '
+					'Both teachers look taken aback and have a smile on their faces. "Thank you, class. It''s been a pleasure to teach you this week," Biserka says, with Sofia nodding her agreement and repeating her words.'						   
+					act 'Go to the showers' : gt 'pushkin_ballet_class', 'shower'
 				end
 			end
 		end
@@ -316,7 +316,6 @@ if $ARGS[0] = 'shower':
 			act 'Go to next lesson' : gt 'pushkin_ballet_class', 'music_theory'
 		end
 		gs 'core_library', 'bathroom'
-			 
 		'You enter the school showers after your lesson. You and your classmates don''t have much time to talk to each other, with you having little time until your next lesson.'
 		*nl
 	else 
@@ -335,7 +334,6 @@ if $ARGS[0] = 'shower':
 			end
 		end
 		gs 'core_library', 'bathroom'  
-
 	end
 end
 
@@ -348,7 +346,7 @@ if $ARGS[0] = 'makeup':
 		minut = 0
 	end
 	$setloc['StageTitle'] = 'Theatre Make Up'
-	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/first_mua'
+	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/first_mua.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	! set stats for make up gain - makupskl_lvl
@@ -368,13 +366,13 @@ if $ARGS[0] = 'makeup':
 		'<<$npc_firstname[''A3501'']>> slides in beside you and whispers, "A lot to take in?" You nod your head in agreement. She gives a quick wink before turning back to listen to the lesson.'
 	
 	elseif ballet_day = 2:
-		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/second_mua'
+		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/second_mua.jpg'
 		gs 'core_library', 'stage_title'
 		'Another day and your teacher still hasn''t introduced herself, instead telling the students to focus. "Did you read through the books I gave you last night?" she asks.'
 		'Everyone in the class looks at each other. "But Miss, you never told us to," Gasha replies.'
 		'"Do I have to tell you to study everything? You''re girls. You should have been learning make-up from your parents as a child!" the teacher snappishly replies.'
 		'"Fine, you''re to practice this look for the next hour, and you will show me the results of your practice tomorrow." She reaches for a remote. A projector lights up the wall of the make-up you''re to replicate.'
-   
+
 	elseif ballet_day = 3:
 		gs 'core_library', 'stage_title'
 		'"Today, I''m going to assess the results of your homework. You have 30 minutes to achieve this look." She then points to the make-up chart on the wall covering the details and colours required.'
@@ -386,7 +384,7 @@ if $ARGS[0] = 'makeup':
 		'Today, you''re learning hairstyles, and you''re all given small red tins. "This is your emergency box. Keep it with you at all times." You look inside and see a small comb, brush, spare hair bands, grips, slides, pins and kirby pins. There''s even a small sewing kit for the inevitable tears.'
 		'"When you do your exams and assessments, you must always look after your appearance. That''s why you always take this with you. You will be marked down if you aren''t presentable."'
 		'The rest of the lesson teaches professional basic hair care, styling, and tips and tricks to get the best results. It''s a surprisingly fun lesson and time flies by.'
-   
+
 	elseif ballet_day = 5:
 		gs 'core_library', 'stage_title'
 		'"Today, we''ll be going over how you present yourself for your assessment on Saturday. The assessors will judge your abilities as a dancer and how well you apply makeup and care for your hair."'
@@ -403,7 +401,7 @@ if $ARGS[0] = 'lunch':
 	*clr & cla
 	gs 'shortgs', 'setloc', 'pushkin_ballet_class', $ARGS[0]
 	$setloc['StageTitle'] = 'School Cafeteria'
-	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/cafeteria'
+	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/cafeteria.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	!! gs lunch events
@@ -420,8 +418,6 @@ if $ARGS[0] = 'lunch':
 		'You quickly fill your plate with a moderate portion and wolf down your dinner.'		
 		gs 'food', 'm_meal'  
 	end
-	
-	
 end
 
 if $ARGS[0] = 'second_lesson':
@@ -439,10 +435,9 @@ if $ARGS[0] = 'second_lesson':
 	gs 'stat'
 	$setloc['StageTitle'] = 'Dance Practice'
 	if mayaqw['grave'] = 4:
-		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/mirror_ballet'
-
+		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/mirror_ballet.jpg'
 	else
-		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/class_three'
+		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/class_three.jpg'
 	end
 	gs 'core_library', 'stage_title'
 	if ballet_day = 1 :
@@ -459,7 +454,7 @@ if $ARGS[0] = 'second_lesson':
 		'"Thanks, <<$pcs_nickname>>." She''s slightly out of breath from the grand allegro and pirouettes she''s just performed."'
 		'"Well done, <<$npc_firstname[''A3501'']>>, that was a wonderful performance." Birserka sounds impressed with <<$npc_firstname[''A3501'']>>''s performance. "You will go far with talent like that."'
 		'You momentarily look over the rest of the class and see Tanis'' face frowning, you think with jealousy.'
-	
+
 	elseif ballet_day = 2 :
 		'You stand next to <<$npc_firstname[''A3501'']>>  as you work through your barre exercises. Biserka leaves you alone today after yesterday''s impromptu performance. You and <<$npc_firstname[''A3501'']>> quickly finish your warm up and start to work through your pas de deux routine for your assessment.'
 		'"Remember <<$pcs_nickname>>, when doing your plié, your butt should be over your heels and you should balance your weight on the second toe.", <<$npc_firstname[''A3501'']>> chides you.'
@@ -499,10 +494,10 @@ if $ARGS[0] = 'second_lesson':
 	end
 	*nl
 	act 'Finish lesson': 
-		 *clr & cla
-		 $setloc['StageTitle'] = 'Reverance'
-		 $setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_006'
-		 gs 'core_library', 'stage_title'
+		*clr & cla
+		$setloc['StageTitle'] = 'Reverance'
+		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_006.jpg'
+		gs 'core_library', 'stage_title'
 		'You perform a reverence to Maya in thanks for her help, she returns the curtsey, and you head to the showers together.'
 
 		nclass = 4
@@ -517,7 +512,7 @@ if $ARGS[0] = 'music_theory':
 		minut = 0
 	end
 	$setloc['StageTitle'] = 'Music Theory'
-	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_004'
+	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_004.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	killvar 'nclass'
@@ -530,7 +525,6 @@ if $ARGS[0] = 'music_theory':
 	gs 'core_library', 'stage_title'
 	!! set stats for performance, music production and inst. music.
 
-
 	if ballet_day = 1 :
 		'You enter the classroom, and you see Sofia standing beside the door. "Welcome, girls. It''s a pleasure to see you all again. I hope you''ve enjoyed your first day?" She greets you in a warm and rich voice.'
 		'You and your classmates murmur a yes, unsure how to react. Sofia ignores the half-hearted response. "You''re probably wondering why you are here, as you''re not musicians. However, as a dancer, it''s essential to'
@@ -597,7 +591,7 @@ if $ARGS[0] = 'assessment':
 		minut = 0
 	end
 
-	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/hall'
+	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/hall.jpg'
 	gs 'core_library', 'stage_title'
 
 	'You arrive at the ballet school and can sense an air of anticipation and nervousness among your classmates. <<$npc_firstname[''A3501'']>> is standing close to you.'
@@ -613,20 +607,20 @@ if $ARGS[0] = 'assessment':
 		*clr & cla
 		minut += 20
 		gs 'stat'
-		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/exams/exam_1'
+		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/exams/exam_1.jpg'
 		gs 'core_library', 'stage_title'
 
 		'You all file into the room and assume the first position. An examiner is at the door checking each girl as they enter for any flaws in their outfits or their appearance.'
 		'"Welcome, students. You have been shortlisted for this year''s apprenticeship intake. Three of you will be allowed to join our school, you have been told what we expect of you today, and we will assess all aspects of your appearance, conduct and the elegance of your performance." An elderly man sits at the table continues to list the assessment requirements.'
 		'You recognise Biserka, two other teachers you''ve not seen before, and <<$npc_firstname[''A3502'']>>, all assessing you. <<$npc_firstname[''A3502'']>>  seems to have his eyes mostly on yourself, but you think you are imagining it.'
 		'"Excellent. Shall we start? Then take your positions and at a count of three, and begin!" At those words, you feel a sense of calmness, and your nerves fall away as you concentrate on your performance. The minutes fly by so quickly that the performance is over before you even realise it.'
-		'"Thank you, that was a most wonderful performance from you all," one of the female teachers says to the class. "Now we shall see how you perform a Pas de Deux with your partner. Please wait outside, and we will call you in."'
+		'"Thank you, that was a most wonderfful performance from you all," one of the female teachers says to the class. "Now we shall see how you perform a Pas de Deux with your partner. Please wait outside, and we will call you in."'
 
 		act 'Perform pas de deux': 
 			*clr & cla
 			minut += 60			
 			gs 'stat'
-			$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/exams/exam_2'
+			$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/exams/exam_2.jpg'
 			gs 'core_library', 'stage_title'
 
 			'You wait outside the classroom. You''ve put on your feet warmers to ensure they remain pliable and take the opportunity to drink some water and eat an energy bar. <<$npc_firstname[''A3501'']>> sits down beside you, lost in thought.'
@@ -643,20 +637,20 @@ if $ARGS[0] = 'assessment':
 				*clr & cla
 				minut += 120
 				gs 'stat'
-				$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/exams/solo_2'
+				$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/exams/solo_2.jpg'
 				gs 'core_library', 'stage_title'
 				'Back outside, you and <<$npc_firstname[''A3501'']>> do checks on your outfits. You notice a small tear on <<$npc_firstname[''A3501'']>>''s tights and get your needle and thread out to repair it. You then check each other''s hair and makeup, with <<$npc_firstname[''A3501'']>> applying some hairspray to tame your flyaway hairs.'
 				'There''s some fruit juice and some snacks on a table to eat whilst you wait for your examination performance. Then, you start doing some light exercises with <<$npc_firstname[''A3501'']>> to remain supple.'
 				'Shortly after you finish your snacks and stretches, you''re called in before <<$npc_firstname[''A3501'']>> .'
 				*nl
-				'"<<$pcs_firstname>> <<$pcs_lastname>>, this is your solo performance. You understand what is required of you?" You realise it''s the school''s Ballet Mistress attending the solo performances. Thankfully, <<$npc_firstname[''A3502'']>> isn''t assessing the solo exams.'
+				'"<<$pcs_firstname>> <<$pcs_lastname>>, this is your solo performance. You understand what is required of you?" You realise it''s the school''s Ballet Mistress attending the solo performances. Thankfully, <<$npc_firstname[''A3510'']>> isn''t assessing the solo exams.'
 				'You curtsy and reply, "Yes, Mistress, I''m ready."'
 				*nl
 				'"Very well, let us begin." With that, she taps the table with something you can''t see. Then, on the count of three, you start your performance. As the music starts, you perform the movements you have learned by rote over the last week. You feel you''ve never performed so well in your life, and everything flows together in a way it never has before.'
 				*nl
 				'At the end of the performance, you feel a sense of loss of something extraordinary. You realise the emotional high you''ve been riding has come to a crashing end, and you barely retain your sense of poise and perform the great reverence to your examiners before you are given permission to leave.'
 				
-			   !! gs 'pushkin_ballet_init', 'daily_assessment', 'grade'
+				!! gs 'pushkin_ballet_init', 'daily_assessment', 'grade'
 				act 'Finalé' : gt 'pushkin_ballet_class', 'start'
 			end
 		end

+ 34 - 29
locations/pushkin_ballet_evt.qsrc

@@ -113,7 +113,7 @@ if $ARGS[0] = 'res_events':
 	if $ARGS[1] = 'introductions':
 		!! Sunday night meet some of your classmates.
 
-		'You enter the communal area and are greeted by a gaggle of excited girls who immediately call out and surround you. You spot a small group sitting down and taking a selfie with a tablet and you look around and see Ms <<$npc_lastname[''A3513'']>> watching over the proceedings.'
+        'You enter the communal area and are greeted by a gaggle of excited girls who immediately call out and surround you. You spot a small group sitting down and taking a selfie with a tablet and you look around and see Madam <<$npc_lastname[''A3513'']>> watching over the proceedings.'
 
 		killvar '$mod_student_table'
 		killvar 'mod_table_count'
@@ -184,18 +184,18 @@ if $ARGS[0] = 'res_events':
 
 	if $ARGS[1] = 'homesick':
 
-		'You enter the communal area and see Gasha holding a study book with a sad expression. "Hello Gasha, everything okay?" you ask.'
-		'She looks up to you from the book, "I''m okay, <<$pcs_nickname>>, I''m just not used to being away from home or being in the city."'
-		'"You''re a friend of Nikita?" you ask her, trying to distract her.'
-		'"Yeah, we grew up in the same village and attended the same school until a few years ago when her mother got a job here. We''ve kept in touch, but it''s been difficult as I''ve been stuck in the village."'
-		'"I know what village life is like," you pause to remember your time in Gadukino, "I spent my summers in Gadukino with my grandparents."'
-		'Gasha looks at you with more interest, and you start to gossip and trade stories about your lives in rural Russia. After a while, she''s laughing at your own escapades and local mishaps.'
-		'"Thank you, <<$pcs_nickname>>, for telling me your stories and cheering me up. I''m glad I''m not the only one!" Gasha says with a broad smile on her face.'
-		'"Anytime, Gasha, if you''re feeling down, let me know."'
-	
-		act 'Leave room': gt 'pushkin_ballet_res', 'communal_area'
-	end
-	
+        'You enter the communal area and see Gasha holding a study book with a sad expression. "Hello Gasha, everything okay?" you ask.'
+        'She looks up to you from the book, "I''m okay, <<$pcs_nickname>>, I''m just not used to being away from home or being in the city."'
+        '"You''re a friend of Nikita?" you ask her, trying to distract her.'
+        '"Yeah, we grew up in the same village and attended the same school until a few years ago when her mother got a job here. We''ve kept in touch, but it''s been difficult as I''ve been stuck in the village."'
+        '"I know what village life is like," you pause to remember your time in Gadukino, "I spent my summers in Gadukino with my grandparents."'
+        'Gasha looks at you with more interest, and you start to gossip and trade stories about your lives in rural Russia. After a while, she''s laughing at your own escapades and local mishaps.'
+        '"Thank you, <<$pcs_nickname>>, for telling me your stories and cheering me up. I''m glad I''m not the only one!" Gasha says with a broad grin on her face.'
+        '"Anytime, Gasha, if you''re feeling down, let me know."'
+    
+        act 'Leave room': gt 'pushkin_ballet_res', 'communal_area'
+    end
+    
 
 	if $ARGS[1] = 'tanis_bully':
 		! Tanis tries to bully Sveta
@@ -219,23 +219,28 @@ if $ARGS[0] = 'res_events':
 	
 	!! Communal random events
 
-	if $ARGS[1] = '1':
-		 ! Chess game between Calina and Ruza
-		 'WIP - tbc'
-	end
-	if $ARGS[1] = '2':
-		! TV with Gasha and munchies
-		'WIP - tbc'
-	end
-	if $ARGS[1] = '3':
-		! Random girls doing barre training.
-		'WIP - tbc'
-	end
-	if $ARGS[1] = '4':
-		! Random girls doing yoga.
-		'WIP - tbc'
+    if $ARGS[1] = '1':
+		! Chess game between Calina and Ruza
+		$setloc['StageTitle'] = 'The Chess Match'
+		$setloc['StageImage'] =   '<<$default_img_path>>ballet_events/chess.jpg'
+		gs 'core_library', 'stage_title'
+		
+		'You enter the communal room you see the twins Calina and Ruza sitting in the corner intently staring at a chess board. You notice the game has just started and a few of the other residents had settled down to watch them.'
+		act 'Leave room': gt 'pushkin_ballet_res', 'communal_area'
 	end
-	if $ARGS[1] = '5':
+    if $ARGS[1] = '2':
+        ! TV with Gasha and munchies
+        'WIP - tbc'
+    end
+    if $ARGS[1] = '3':
+        ! Random girls doing barre training.
+        'WIP - tbc'
+    end
+    if $ARGS[1] = '4':
+        ! Random girls doing yoga.
+        'WIP - tbc'
+    end
+    if $ARGS[1] = '5':
 
 		'You enter the communal room and see Gasha at her favorite place watching TV. She looks at you nervously as you enter, you ask if you could join her.'
 		'"Are you going to bully me too?", she asks, her voice trembling..'

+ 7 - 7
locations/pushkin_ballet_init.qsrc

@@ -122,7 +122,7 @@ if $ARGS[0] = 'daily_assessment':
 		if pubestyle = 10: mod_grade_appearance[week] -= 1
 		if alko > 1: mod_grade_discipline[week] -= 1 
 		!!mod_daily_score[week] = mod_grade_mua[week] + mod_grade_attendance[week] + mod_grade_appearance[week] - mod_grade_discipline[week] 
-	   !! msg 'Attend: <<mod_grade_attendance[week]>>, MUA:<<mod_grade_mua[week]>>, Appear: <<mod_grade_appearance[week]>>, Discipline <<mod_grade_disciple[week]>>, <<pcs_hairbsh>>'
+		!! msg 'Attend: <<mod_grade_attendance[week]>>, MUA:<<mod_grade_mua[week]>>, Appear: <<mod_grade_appearance[week]>>, Discipline <<mod_grade_disciple[week]>>, <<pcs_hairbsh>>'
 	end
 	if nclass = 5 and  school_daily_check ! daystart:
 		mod_daily_score[week] = mod_grade_attendance[week] + mod_grade_mua[week] + mod_grade_appearance[week] + mod_homework[week] - mod_grade_discipline[week] 
@@ -134,17 +134,17 @@ if $ARGS[0] = 'daily_assessment':
 
 		!! Three score levels, fail, pass and merit. Fail is one route for corruption path, pass is either low or no pay, merit is low to low +10%. 
 		if final_score <= 40:
-			 balletqw[school] = 5
+			balletqw[school] = 5
 		elseif final_score >=41 and final_score < 60:
 			!! Interim pass until quest lines are created for Maya/Rudolph
 			balletqw[school] = 1
 			balletqw[rank] = 1
 		elseif final_score >= 61 and final_score <= 90:
-			 balletqw[school] = 1
-			 balletqw[rank] = 1
+			balletqw[school] = 1
+			balletqw[rank] = 1
 		elseif final_score >= 91:
-			 balletqw[school] = 4
-			 balletqw[rank] = 1
+			balletqw[school] = 4
+			balletqw[rank] = 1
 		end
 
 		if final_score > 60: gs 'pushkin_ballet_init', 'famemodifier', final_Score
@@ -209,7 +209,7 @@ end
 
 if $ARGS[0] = 'score_debug':   
 	debug_day = 1
-   :jmp_debug_score
+	:jmp_debug_score
 		'Day: <<debug_day>>' 
 		'Make-up Score: <<mod_grade_mua[debug_day]>>'
 		'Appearance: <<mod_grade_appearance[debug_day]>>'

+ 17 - 14
locations/pushkin_ballet_res.qsrc

@@ -42,7 +42,7 @@ if $ARGS[0] = 'bedroom':
 	*clr & cla
 	$location_type = 'private'
 	$setloc['StageTitle'] = 'Residential Bedroom'
-	$setloc['StageImage'] =   '<<$default_img_path>>ballet_residence/bedroom'
+	$setloc['StageImage'] =   '<<$default_img_path>>ballet_residence/bedroom.jpg'
 	gs 'shortgs', 'setloc', 'pushkin_ballet_res', $ARGS[0]
 	gs 'themes', 'indoors'
 	gs 'stat'
@@ -66,7 +66,8 @@ if $ARGS[0] = 'bedroom':
 		if komp = 1: 'Your <a href="exec: gt ''Komp'',''start''">computer</a> is on your desk.'
 		'<table><tr><td valign="top">Your <a href="exec:gt ''alarmclock'', ''start''">alarm clock</a> is set to <<func(''alarmclock'', ''alarm_display'', alarmVars[''timerH''], alarmVars[''timerM''])>> during the week and <<func(''alarmclock'', ''alarm_display'', alarmVars[''timerEndH''], alarmVars[''timerEndM''])>> during the weekend. It is currently turned ' + iif(alarmVars['alarmOn'] = 0, '<a href="exec: alarmVars[''alarmOn''] = 1 & gt $loc, $loc_arg">OFF</a>.', '<a href="exec: alarmVars[''alarmOn''] = 0 & gt $loc, $loc_arg">ON</a>.')
 		
-		if $clothingworntype ! 'nude':
+		gs 'core_library', 'clothing_status'
+		if $apparel['status'] ! 'nude':
 			act 'Go to the hallway': minut += 5 & gt 'pushkin_ballet_res', 'hallway'
 		else
 			act 'Go to the hallway':
@@ -105,7 +106,7 @@ end
 if $ARGS[0] = 'hallway':	
 	*clr & cla
 	$setloc['StageTitle'] = 'Residental Hallway'
-	$setloc['StageImage'] =  '<<$default_img_path>>/ballet_residence/hall'
+	$setloc['StageImage'] =  '<<$default_img_path>>/ballet_residence/hall.jpg'
 	$location_type = 'public_indoors'
 	gs 'shortgs', 'setloc', 'pushkin_ballet_res', $ARGS[0]
 	gs 'core_library', 'corridor'
@@ -119,8 +120,8 @@ if $ARGS[0] = 'hallway':
 		ballet_day = week
 	end
 	nclass = 0
-
-	if $clothingworntype ! 'nude':
+	gs 'core_library', 'clothing_status'
+	if $apparel['status'] ! 'nude' and ($apparel['status'] = 'sport' or $apparel['status'] = 'dance'):
 		if hour = 6 or (hour  = 7 and minut <=  30):
 			act 'Attend Ballet Classes': gt 'pushkin_ballet_class', 'start'
 		elseif hour = 7 and (minut > 30 and minut <= 59):
@@ -130,7 +131,7 @@ if $ARGS[0] = 'hallway':
 			act 'Leave Residence': minut += 5 & ballet_awol = 1 & gt 'pushkin_ballet_center', 'start'
 		end
 	else	   
-		msg '<b><font color = red>Whilst as a dancer you have less worries about showing yourself off Bronya would likely have a few choice words about your behaviour.</font></b>'
+		msg '<b><font color = red>Whilst as a dancer you have less inhibition than most, Bronya would likely have a few choice words about your clothing choices or lack thereof.</font></b>'
 		gt $loc, $loc_arg	
 	end
 
@@ -165,14 +166,16 @@ if $ARGS[0] = 'hallway':
 				'You hear someone playing the piano in the communal room. You don''t recognize the piece being played, but its soothing melody relaxes you.'
 			end
 		end
+		killvar 'amb_event'
 	end
+	
 end
 
 if $ARGS[0] = 'maya_room':
 	*clr & cla
 	$location_type = 'private'	
 	$setloc['StageTitle'] = 'Maya Room'
-	$setloc['StageImage'] =   '<<$default_img_path>>/ballet_residence/maya_room'
+	$setloc['StageImage'] =   '<<$default_img_path>>/ballet_residence/maya_room.jpg'
 	gs 'shortgs', 'setloc', 'pushkin_ballet_res', $ARGS[0]
 	gs 'themes', 'indoors'
 	gs 'stat'
@@ -187,7 +190,7 @@ if $ARGS[0] = 'communal_area':
 	*clr & cla
 
 	$setloc['StageTitle'] = 'Communal Room'
-	$setloc['StageImage'] =   '<<$default_img_path>>/ballet_residence/communal'
+	$setloc['StageImage'] =   '<<$default_img_path>>/ballet_residence/communal.jpg'
 	$location_type = 'public_indoors'
 	gs 'shortgs', 'setloc', 'pushkin_ballet_res', $ARGS[0]
 	gs 'themes', 'indoors'
@@ -215,7 +218,7 @@ if $ARGS[0] = 'kitchen':
 	*clr & cla
 	
 	$setloc['StageTitle'] = 'Residental Kitchen'
-	$setloc['StageImage'] =   '<<$default_img_path>>ballet_residence/kitchen'
+	$setloc['StageImage'] =   '<<$default_img_path>>ballet_residence/kitchen.jpg'
 	$location_type = 'private'
 	gs 'shortgs', 'setloc', 'pushkin_ballet_res', $ARGS[0]
 	gs 'themes', 'indoors'
@@ -286,7 +289,7 @@ if $ARGS[0] = 'warden_room':
 	
 	$location_type = 'private'
 	$setloc['StageTitle'] = 'Wardens Residence'
-	$setloc['StageImage'] =   '<<$default_img_path>>/ballet_residence/warden' 
+	$setloc['StageImage'] =   '<<$default_img_path>>/ballet_residence/warden.jpg' 
 	$location_type = 'public_indoors'
 	gs 'shortgs', 'setloc', 'pushkin_ballet_res', $ARGS[0]
 	gs 'themes', 'indoors'
@@ -337,7 +340,7 @@ if $ARGS[0] = 'radio':
 		mod_daily_score[week] += 1
 	end
 	$setloc['StageTitle'] = 'Radio'
-	$setloc['StageImage'] =   '<<$default_img_path>>ballet_residence/russian_radio'
+	$setloc['StageImage'] =   '<<$default_img_path>>ballet_residence/russian_radio.jpg'
 	gs 'stat'
 	gs 'core_library', 'stage_title'
 
@@ -364,7 +367,7 @@ if $ARGS[0] = 'feetcare':
 	feet_track = daystart
 	gs 'stat'
 	$setloc['StageTitle'] = 'Feet Care'
-	$setloc['StageImage'] =  '<<$default_img_path>>ballet_events/feet_soak'
+	$setloc['StageImage'] =  '<<$default_img_path>>ballet_events/feet_soak.jpg'
 	gs 'core_library', 'stage_title'
 
 	'After the long day at the ballet class, you diligently inspect your calves and feet for injuries, gently massaging Arnica Gel onto your calves and ankles to alleviate stiffness and swelling. Next, you carefully examine your calluses and check for any blisters.'
@@ -385,7 +388,7 @@ if $ARGS[0] = 'study':
 	mod_homework[week] += 1 
 	mod_daily_score[week] += 1
 	$setloc['StageTitle'] = 'Ballet Studies'
-	$setloc['StageImage'] =  '<<$default_img_path>>ballet_residence/study'
+	$setloc['StageImage'] =  '<<$default_img_path>>ballet_residence/study.jpg'
 	gs 'stat'
 	gs 'core_library', 'stage_title'
 	 'You gather your school books and notebook to begin studying ballet movements, history, and musical theory, diligently taking notes as you progress. After an hour of reading, you notice your eyes beginning to glaze over. Recognizing the need for a break, you decide to stand up and stretch.'
@@ -411,7 +414,7 @@ if $ARGS[0] = 'make_up':
 		end
 		gs 'stat'
 		$setloc['StageTitle'] = 'Make Up Practice'
-		$setloc['StageImage'] =  '<<$default_img_path>>/ballet_events/make-up'
+		$setloc['StageImage'] =  '<<$default_img_path>>/ballet_events/make-up.jpg'
 		gs 'core_library', 'stage_title'
 
 		if pcs_makupskl <= 30:

+ 2 - 0
locations/saveupdater.qsrc

@@ -2806,6 +2806,8 @@ if temp_current_save_version < 00090300:
 	if pants_out_full			> 0:	killvar 'pants_out_full'
 	if pants_out_full_hairy		> 0:	killvar 'pants_out_full_hairy'
 
+	!! Introduction of lact_ev['poli_totaldonatemoney']
+	if lact_ev['poli_totaldonatemoney'] <= 0 and lact_ev['poli_totalmilkdonated'] >= 5: lact_ev['poli_totaldonatemoney'] = (lact_ev['poli_totalmilkdonated'] / 5) * 10
 
 
 end

+ 48 - 29
locations/sitrPar.qsrc

@@ -1,37 +1,56 @@
 # sitrPar
+!! Date refactored: 31st March, 2024
+!! Author: Myles
+!!
+!! Version: .01 - initial refactoring
+!! 
+!! Desc: Family living room and Kolka''s bedroom links to family corridor
 
-if $ARGS[0] = '':
-	CLOSE ALL
-	$loc_arg = ''
-	$loc = 'sitrPar'
-	$menu_loc = 'sitrPar'
-	$menu_arg = ''
-	menu_off = 0
-	$location_type = 'private'
-	$locclass = 'livingr'
-	locat['Fam_livingroom'] = 0
-	minut += 1
-	gs 'stat'
-	gs 'themes', 'indoors'
-	gs 'family_schedule'
-	gs 'sitrPar', 'occupied'
-	*clr & cla
-	'<center><b><font color="maroon">Living Room</font></b></center>'
+if $ARGS[0] = '' or $ARGS[0] = 'start':
+	!! Call in location default actions
+	gs 'home_family_init', 'init'
+	!! Start location initialisation
+
+	!! Set location header - img path is set in init
+	$setloc['StageTitle'] = 'Parents Living Room'
 	if locat['Mother'] = 19 and locat['Stepdad'] = 10:
-		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/momvladtv.jpg"></center>'
+		$setloc['StageImage'] = '<<$default_img_path>>/momvladtv.jpg'
 	else
-		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/sitrpar.jpg"></center>'
+		$setloc['StageImage'] = '<<$default_img_path>>/sitrpar.jpg'
 	end
-	act 'Leave the room': gt 'korrPar'
-	act 'Sit on the sofa': gt 'sitrPar', 'sofa'
-	''
+	!! Sitting room variables:
+	$locclass = 'livingr'
+	locat['Fam_livingroom'] = 0
+
+	!! Set location vars:
+
+
+
+	
+	!! Check if anyone is in the room
+	gs 'sitrPar', 'occupied'
+
+
+	!! Set up game location data
+	gs 'shortgs', 'setloc', 'sitrPar', $ARGS[0]
+	!! End location initialisation
+
+	!! Begin location content
+	!! Display header and banner image
+	gs 'core_library', 'stage_title'
+
+	!! Location default description:
 	'The living room has a <a href="exec:gt ''TV'',''pav''">TV</a> near the window. In front of the TV is a <a href="exec:gt ''sitrPar'',''sofa''">sofa bed</a> on which your brother sleeps at night. A large tapestry covers one wall, while the other wall has several shelves on it, stocked with books and other things.'
 	*nl
+	!! End default Description
 	if locat['Fam_livingroom'] = 0 and locat['Mother'] ! 24 and locat['Mother'] ! 19:
 		'No one else is here right now, so you''re free to use the room how you like.'
 		gs 'exercise','start'
 	end
 
+	act 'Leave the room': minut += 1 & gt 'korrPar'
+	act 'Sit on the sofa': gt 'sitrPar', 'sofa'
+
 	if locat['Kolka'] = 2 and brothermorningsex = daystart:
 		'<a href="exec:gt ''brother'', ''start''">Kolka</a> is getting ready for school.'
 	elseif locat['Kolka'] = 1:
@@ -65,7 +84,7 @@ if $ARGS[0] = '':
 			'You sit at the festive table laid in front of the TV and celebrate the New Year with your family, the TV providing some background noise. At the table, people strike up a conversation and common problems are forgotten as everyone is has fun talking to each other. At midnight, everyone wishes one another a happy New Year and enjoys the champagne and fireworks outside as your mother gives you an envelope with a greeting card and 5000 <b>₽</b>.' 
 			'You continue to watch TV and enjoy the champagne and company of your family, but everyone eventually grows tired and they go to bed, one by one.'
 
-			act 'Leave': gt 'korrPar'
+			act 'Leave': 	minut += 1 & gt 'korrPar'
 		end
 	elseif month = 1 and day = 1:
 		act 'Eat some leftovers at the festive table':
@@ -92,7 +111,7 @@ if $ARGS[0] = '':
 		end
 	elseif locat['Mother'] = 24:
 		*clr & cla
-		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/uborka1.jpg"></center>'
+		'<center><img <<$set_imgh>> src="<<$mother_img_path>>uborka1.jpg"></center>'
 		if kanikuli = 0 and mid($start_type,1,2) = 'sg' and SchoolAtestat = 0 and SchoolBlock = 0 and week < 6:
 			if CloStyle2 = 4:
 				'As you walk into the living room, you see your mother sweeping the floor. She looks up and gives you a disappointed look. "What are you still doing here? Go to school, now!" She practically pushes you out of the apartment and closes the door.' 
@@ -109,7 +128,7 @@ if $ARGS[0] = '':
 		exit
 	elseif locat['Mother'] = 19 and locat['Stepdad'] = 10:
 		!! Watches TV with Vladimir
-		!!'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/momvladtv.jpg"></center>'
+		!!'<center><img <<$set_imgh>> src="<<$default_img_path>>/momvladtv.jpg"></center>'
 		'As you walk into the living room, you see your mother and Vladimir sitting on the couch watching TV.'
 		act 'Leave':gt 'korrPar'
 		
@@ -121,7 +140,7 @@ if $ARGS[0] = '':
 			npc_rel['A29'] += 1
 			npc_rel['A34'] += 1
 			gs 'stat'
-			!!'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/familytv.jpg"></center>'
+			!!'<center><img <<$set_imgh>> src="<<$default_img_path>>/familytv.jpg"></center>'
 			'You move over to join them, and your mother scoots away from Vladimir and pats the spot between her and him. You take a seat between them and Vlad barely even glances at you with a brief smile before he goes back to watching TV. Your mother pats you on the shoulder before returning her attention to the TV, apparently happy the family is spending time together.'
 			act 'Leave':gt 'korrPar'
 			
@@ -163,7 +182,7 @@ if $ARGS[0]= 'sofa':
 	gs 'family_schedule'
 	gs 'sitrPar', 'occupied'
 	*clr & cla
-	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/sofa.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<$default_img_path>>/sofa.jpg"></center>'
 	*nl
 	'<center>A small sofa bed, when not folded out into a bed, is just big enough for you to curl up on and take a nap.</center>'
 
@@ -203,7 +222,7 @@ if $ARGS[0] = 'TVfam':
 	minut += 30
 	gs 'family_schedule'
 	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/familytv.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<$default_img_path>>/familytv.jpg"></center>'
 	'You continue to watch TV with the family. Everyone seems very engrossed in the program and almost never says anything, though Kolka occasionally makes a crack about what is happening, often getting shushed by Vlad or your mother.'
 	if locat['Mother'] = 19: act 'Keep watching TV with your family': gt 'sitrPar', 'TVfam'
 	act 'Finish watching':gt 'sitrPar', 'TVend'
@@ -213,7 +232,7 @@ if $ARGS[0] = 'TVend':
 	cla & *clr
 	gs 'family_schedule'
 	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/familytv.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<$default_img_path>>/familytv.jpg"></center>'
 	'Once the show is over, Vladimir picks up the remote and turns the TV off. He gets up and stretches before he turns and walks out of the room, likely heading to bed. Your mother also gets up. "You should go to bed or at least go to your room so your brother can get his rest." She then turns to Kolka. "Don''t stay up, go to bed." She then ushers you out of the room. As you walk out, you see Kolka putting his pillow and sheet on the couch.'
 	act 'Leave': gt 'korrPar'
 end

+ 16 - 0
locations/spell.qsrc

@@ -444,6 +444,22 @@ if $ARGS[0] = 'cosmetica':
 	end
 end
 
+if $ARGS[0] = 'penisenvy':
+	if SuccessValue > 0:
+		! Set the variable to use real penis
+		penisEnvyVariable = 1
+		! Add Timer to remove Live Penis bonus after 30 minutes
+		!	spellName = 'penisenvy'
+		!	duration  = 30
+		!	CompCode = 'penisEnvyVariable = 0' Remove penis
+		!	TickCode = ''  Do nothing
+		gs 'spellTimer', 'add', 'penisenvy', 30, 'penisEnvyVariable = 0', ''
+		msg '<b><font color = <<$SplTxtColGood>>>You feel the strapon meld into your body. It feels wonderful.</font></b>'
+	else
+		msg '<b><font color="red">The spell fizzles. Nothing seems to happen.</b>'
+	end
+end
+
 !!!!!!!!!!!!!!!!!
 !! Combat Spells
 !!!!!!!!!!!!!!!!!

+ 9 - 1
locations/spellList.qsrc

@@ -425,6 +425,13 @@ spellDiff['greatflood'] = 10
 $spellName['greatflood'] = 'Great Flood'
 $spellDesc['greatflood'] = 'A huge flood of water fills the area, absorbing mana from the enemy and giving you additional protection.'
 $spellTarget['greatflood'] = 'enemy'
+!penisenvy
+spellMana['penisenvy'] = 1000
+spellTime['penisenvy'] = 1
+spellDiff['penisenvy'] = 50
+$spellName['penisenvy'] = 'Penis Envy'
+$spellDesc['penisenvy'] = 'Temporarily animate a strapon dildo, the casters experiences sexual sensations from the dildo, as if it was a real penis.'
+$spellTarget['penisenvy'] = 'self'
 
 
 !-------------------------------------------------------------------------------------------
@@ -514,7 +521,8 @@ $librarySpells[1] = 'shower'
 $librarySpells[2] = 'makeup'
 $librarySpells[3] = 'cosmetica'
 $librarySpells[4] = 'glamour'
-!$librarySpells[5] = 'alterself'
+$librarySpells[5] = 'penisenvy'
+!$librarySpells[6] = 'alterself'
 
 
 ! Elemental Spell Groups

+ 4 - 1
locations/uni_dorm.qsrc

@@ -165,7 +165,7 @@ if $ARGS[0] = 'second_floor':
 
 	act 'Elevator': gt 'uni_dorm', 'elevator'
 
-	if katjaQW['knows_dorm_room_number'] > 0 and yearstart > 1:
+	if katjaQW['knows_dorm_room_number'] > 0 and yearstart > 1 and katjaQW['QWstage'] >= 2:
 		act 'Katja''s room':
 			*clr & cla 
 			if locat['katja'] = 24 or locat['katja']  = 31 or locat['katja']  = 35 or locat['katja']  = 51 or locat['katja']  = 52:
@@ -644,6 +644,9 @@ if $ARGS[0] = 'dorm_room':
 			$vikatext = '<a href="exec:gt''Vika''">Vika</a> is sleeping in her bed after working hard in the brothel all night.'
 		end
 		gs 'music_actions', 'no_music'
+	else
+		vika_inroom = 0
+		vika_sleep = 0
 	end
 
 	if mc_inventory['tech_computer'] = 1:

+ 48 - 27
locations/vanrPar.qsrc

@@ -1,26 +1,43 @@
 # vanrPar
+!! Date refactored: 31st March, 2024
+!! Author: Myles
+!!
+!! Version: .01 - initial refactoring
+!! 
+!! Desc: Family home bathroom links to family flat corridor
 
-if $ARGS[0] = '':
-	CLOSE ALL
-	$locM = 'vanrPar'
-	$locM_arg = ''
-	$loc = 'vanrPar'
-	$loc_arg = ''
-	$menu_loc = 'vanrPar'
-	$menu_arg = ''
-	menu_off = 0
+
+if $ARGS[0] = '' or $ARGS[0] = 'start':
+	!! Start location initialisation
+
+	!! Call in location default actions
+	gs 'home_family_init', 'init'
+
+	!! Set location header - img path is set in init
+	$setloc['StageTitle'] = 'Parents Bathroom'
+	$setloc['StageImage'] = '<<$default_img_path>>/vanrpar.jpg'
+
+	!! Set location vars:
+
+	!! Set up game location data
 	$location_type = 'bathroom'
 	$bathtype = 'bathtub shower'
-	*clr & cla
-	gs 'stat'
-	gs 'family_schedule'
-	gs 'themes', 'indoors'
-	'<center><b><font color="maroon">Bathroom</font></b></center>'
-	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/vanrpar.jpg"></center>'
+
+	!! End location initialisation
+
+	!! prevent peek scene setting $loc_arg
+	gs 'shortgs', 'setloc', 'vanrPar', 'start'
+	!! Display header and banner image
+	gs 'core_library', 'stage_title'
+
+	!! Begin location content
+	
+	!! Location default description:
 	'The bathroom is very small and unimpressive. Nevertheless, it has everything you need.'
 	*nl
 	'There is a shower, toilet, sink, <a href="exec:gt ''mirror'',''start''">mirror</a> where you can ' + iif(pcs_hairbsh = 0,'<a href="exec:gt ''mirror'',''brush''">brush</a>','brush') + ' your hair, and even a bath tub.'
-
+	*nl
+	!! End default Description
 	if vanr_lock = 0:
 		'The door is not locked and does not close properly. <a href="exec:gt ''vanrPar'',''latch''">Latch the door</a> or <a href="exec:gt ''vanrPar'',''perm_latch''">Always latch the door</a>.'
 	elseif vanr_lock = 2:
@@ -44,12 +61,16 @@ if $ARGS[0] = '':
 
 	if vanr_lock = 0 or vanr_lock = 2:
 		if fullmorrout = 1:
-			act '<b>Finish and go to the kitchen</b>':gt 'kuhrPar'
+			act '<b>Finish and go to the kitchen</b>': minut += 1 & gt 'kuhrPar'
 		else
-			act '<b>Return to the hallway</b>': gt 'korrPar'
+			act '<b>Return to the hallway</b>':minut += 1 & gt 'korrPar'
 		end
 	elseif vanr_lock = 1:
-		act 'Unlatch the door and leave': vanr_lock = 0 & gt 'korrPar'
+		act 'Unlatch the door and leave': 
+			minut += 1 
+			vanr_lock = 0
+			gt 'korrPar'
+		end
 	end
 
 	gs 'din_van', 'private'
@@ -57,17 +78,17 @@ end
 
 if $ARGS[0] = 'latch':
 	vanr_lock = 1
-	gt 'vanrPar'
+	gt 'vanrPar', 'start'
 end
 
 if $ARGS[0] = 'unlatch':
 	vanr_lock = 0
-	gt 'vanrPar'
+	gt 'vanrPar', 'start'
 end
 
 if $ARGS[0] = 'perm_latch':
 	vanr_lock = 2
-	gt 'vanrPar'
+	gt 'vanrPar', 'start'
 end
 
 if $ARGS[0] = 'peek':
@@ -80,7 +101,7 @@ if $ARGS[0] = 'peek':
 			'<center><video autoplay loop src="images/characters/pavlovsk/resident/vladimir/sex/bath_voyer_0.mp4"></video></center>'
 			'As luck would have it, you hear footsteps at the door. Turning around, you catch a glimpse of your stepfather through the gap in the door right before he moves away, muttering something about the door. Once again alone, you find yourself feeling confused, and with a rapidly beating heart.'
 			stepdadqw += 1
-			act 'Finish': gt 'vanrPar'
+			act 'Finish': gt 'vanrPar', 'start'
 		else
 			if npc_sex['A28'] = 0 or stepdadqw < 5 or mesec > 0 or locat['Mom_athome'] = 1:
 				gs 'vanrPar', 'stepdad_nosex'
@@ -131,7 +152,7 @@ if $ARGS[0] = 'stepdad_nosex':
 	'<center><video autoplay loop src="images/characters/pavlovsk/resident/vladimir/sex/bath_voyer_2.mp4"></video></center>'
 	'You hear movement at the door and turn around. It''s your stepfather. It looks like he passed by and accidentally peeked in. Catching his glance, you feel mischievous and excited, so you blow him a kiss. Without a word, he disappears, yet you can''t help smiling and giggling as you continue drying your hair.'
 	stepdadqw += 1
-	act 'Finish': gt 'vanrPar'
+	act 'Finish': gt 'vanrPar', 'start'
 end
 
 if $ARGS[0] = 'stepdad_sex_no':
@@ -141,7 +162,7 @@ if $ARGS[0] = 'stepdad_sex_no':
 	'<center><img <<$set_imgh>> src="images/shared/home/bathroom/shower_coverup.jpg"></center>'
 	'He stands at the threshold for a moment, staring at you and nervously licking his lips. They way he is looking at your makes you feel exposed and you quickly cover yourself up. "Oh my god what you are doing? Get out and close the door." He looks surprised by your outburst, he looks like he is about to say something, but then he just shakes his head and walks out pulling the door closed behind him, letting you finish your shower in peace.'
 	stepdadqw -= 2
-	act 'Finish': gt 'vanrPar'
+	act 'Finish': gt 'vanrPar', 'start'
 end
 
 if $ARGS[0] = 'stepdad_sex':
@@ -326,7 +347,7 @@ if $ARGS[0] = 'stepdad_sex_end':
 		noshampoo = 1
 		dynamic $showerdin
 		gs 'stat'
-		gt 'vanrPar'
+		gt 'vanrPar', 'start'
 	end
 end
 
@@ -342,7 +363,7 @@ if $ARGS[0] = 'stepdad_sex_analend':
 		noshampoo = 1
 		dynamic $showerdin
 		gs 'stat'
-		gt 'vanrPar'
+		gt 'vanrPar', 'start'
 	end
 end
 

Some files were not shown because too many files changed in this diff