15 Commits 43942a535c ... bded40bd22

Author SHA1 Message Date
  Insomniac bded40bd22 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 8 months ago
  Insomniac c496e56855 Implement code to allow studying with Anushka after computers_101 in uni_lessons_electivesev1 8 months ago
  Kevin_Smarts 550e201d11 Merge remote-tracking branch 'Hooded_Silence/master' 8 months ago
  Kevin_Smarts c386ab3491 Merge remote-tracking branch 'Anjuna/master' 8 months ago
  Kevin_Smarts 8d963bbda0 Merge remote-tracking branch 'Hornguy6/master' 8 months ago
  Hooded Silence 9ec4711754 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 8 months ago
  Hooded Silence 912d89cb65 [Function update] Added checks to see if {mc} is wearing a bra or knickers and if true set respective variable. 8 months ago
  Insomniac 46c635adab Add nutluck's changes to add Artem and Anushka to uni_library 8 months ago
  Insomniac 1782cf3b88 Add nutluck's changes too add Artem to uni_cafe 8 months ago
  Kevin_Smarts db4abaf791 Merge branch 'sm_bf' of zaba/glife into master 8 months ago
  Mona.Lisa c895343398 more small bugfixes 8 months ago
  anjuna krokus 92fda9f43d [changed] More migration of `bodset` to the new body_structure system 8 months ago
  anjuna krokus 42f88338f0 [added/removed] added variable PregChem to body_structure. Removed dependence on succubusflag (which wasn't used anyway) 8 months ago
  anjuna krokus ae1a5ff5e5 [added] CalcOptBodyMass now supports a variable bmi setting 8 months ago
  hornguy6 679a549872 [added] Anya drunk in bed after attending a party 8 months ago

+ 38 - 36
locations/Cheatmenu_din.qsrc

@@ -224,74 +224,76 @@ $cheatmenu['bodyMod'] = {
 	''
 	'You may select from the following sizes:'
 	''
-	if bodset ! 3:
-		'starving (No, you may not select ''starving'', it''s here to show where the scale starts)'
-		''
-		if salocatnow ! 1:
-			'<a href="exec: pcs_mass[''body''] = 20 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 1)]>></a>'
+	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>'
 			''
 		end
-		if salocatnow ! 2:
-			'<a href="exec: pcs_mass[''body''] = 40 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 2)]>></a>'
+		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>'
 			''
 		end
-		if salocatnow ! 3:
-			'<a href="exec: pcs_mass[''body''] = 60 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 3)]>></a>'
+		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>'
 			''
 		end
-		if salocatnow ! 4:
-			'<a href="exec: pcs_mass[''body''] = 80 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 4)]>></a>'
+		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>'
 			''
 		end
-		if salocatnow ! 5:
-			'<a href="exec: pcs_mass[''body''] = 100 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 5)]>></a>'
+		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>'
 			''
 		end
-		if salocatnow ! 6:
-			'<a href="exec: pcs_mass[''body''] = 120 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 6)]>></a>'
+		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>'
 			''
 		end
-		if salocatnow ! 7:
-			'<a href="exec: pcs_mass[''body''] = 140 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 7)]>></a>'
+		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>'
 			''
 		end
-	else
-		if (pregchem < 2688) = 0:
-			'<a href="exec:pregchem = 100 & pregtime = 4 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10))]>></a>'
+		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>'
 			''
 		end
-		if (pregchem >= 2688 and pregchem < 3192) = 0:
-			'<a href="exec:pregchem = 2688 & pregtime = 112 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 1)]>></a>'
+		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>'
 			''
 		end
-		if (pregchem >= 3192 and pregchem < 3696) = 0:
-			'<a href="exec:pregchem = 3192 & pregtime = 133 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 2)]>></a>'
+	else
+		bs_temp_bs_class = func('body_structure', 'get_class', pcs_bmi, strenbuf)
+		'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>'
 			''
 		end
-		if (pregchem >= 3696 and pregchem < 4200) = 0:
-			'<a href="exec:pregchem = 3696 & pregtime = 154 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 3)]>></a>'
+		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>'
 			''
 		end
-		if (pregchem >= 4200 and pregchem < 4704) = 0:
-			'<a href="exec:pregchem = 4200 & pregtime = 175 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 4)]>></a>'
+		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>'
 			''
 		end
-		if (pregchem >= 4704 and pregchem < 5208) = 0:
-			'<a href="exec:pregchem = 4704 & pregtime = 196 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 5)]>></a>'
+		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>'
 			''
 		end
-		if (pregchem >= 5208 and pregchem < 5712) = 0:
-			'<a href="exec:pregchem = 5208 & pregtime = 217 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 6)]>></a>'
+		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>'
 			''
 		end
-		if (pregchem >= 5712 and pregchem < 6216) = 0:
-			'<a href="exec:pregchem = 5712 & pregtime = 238 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 7)]>></a>'
+		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>'
 			''
 		end
-		if (pregchem >= 6216) = 0:
-			'<a href="exec:pregchem = 6216 & pregtime = 259 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 8)]>></a>'
+		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>'
 			''
 		end
+		killvar 'bs_temp_bs_class'
 	end
 
 	'</tr></table></b></center>'

+ 2 - 2
locations/RimmaSexQW.qsrc

@@ -297,7 +297,7 @@ $rimmasexdi = {
 		'Your climax builds quickly - no surprise after almost half an hour of teasing - when you feel her second hand linger on your throat... and tightening around it. You open your eyes to look at her and while it''s harder to breathe, the passion in Rima''s eyes is infectious.'
 		'The orgasm hits you like a truck, the slight lack of air increasing its intensity by an order of magnitude, and by the looks of it, Rima is just about ready to come herself, getting off immensely on dominating you.'
 		$orgasm_or = 'yes'
-		gs 'arousal', 'anal_fist', 20, 'lesbian', 'sub'
+		gs 'arousal', 'vaginal_fist', 20, 'lesbian', 'sub'
 		gs 'stat'
 	elseif RimmaRandEvent = 6:
 		pcs_vag += 5
@@ -309,7 +309,7 @@ $rimmasexdi = {
 		'You barely even register when she sinks her whole hand into your depths - at that point, you are so desperately horny that you are literally begging her to make you cum, and this time, her fist inside you, she finally relents.' 
 		'From one moment to the next, she starts fucking you with her whole hand, pushing you right to the edge and over, then right to the next and over again. You can feel yourself twitching around her hand, gripping her like a vice, but the rest of your body is a shaking, screaming, sweating mess. That doesn''t change the fact, though, that Rima gave you a couple of incredible orgasms, though.'
 		$orgasm_or = 'yes'
-		gs 'arousal', 'anal_fist', 20, 'lesbian', 'sub'
+		gs 'arousal', 'vaginal_fist', 20, 'lesbian', 'sub'
 		gs 'stat'
 	elseif RimmaRandEvent = 5:
 		pcs_vag += 2

+ 2 - 2
locations/bedrPar.qsrc

@@ -182,9 +182,9 @@ if $ARGS[0] = '' or $ARGS[0] = 'start':
 				elseif locat['Anya'] = 26 or (locat['Anya'] = 1 and locat['Anya_party_day'] >= daystart - 1):
 					if sisboypartyQW = 1: sisboypartyQW = 2
 					if sisboyparty = -1: sisboyparty = 1
-					'A drunken Anya is sound asleep in her bed.'
+					!!'A drunken Anya is sound asleep in her bed.'
 					!! In the future should point to 'sistersleep', 'drunk_after_party' when that content is added again
-					!! 'A drunken <a href="exec:gt ''sistersleep'', ''drunk_after_party''">Anya</a> is sound asleep in her bed.'
+					'A drunken <a href="exec:gt ''sistersleep'', ''drunk_after_party''">Anya</a> is sound asleep in her bed.'
 				end
 			end
 		end

+ 2 - 1
locations/body.qsrc

@@ -99,7 +99,8 @@ end
 
 
 if $ARGS[0] = 'CalcOptBodyMass':
-	result = ((pcs_hgt * pcs_hgt * 225) - 2820000 - 70000 * (pcs_hgt - 165)) / (550 * (60 + pcs_mass['bust_gen'] + pcs_mass['butt_gen']))
+	if ARGS[1] = 0: ARGS[1] = 225
+	result = ((pcs_hgt * pcs_hgt * ARGS[1]) - 2820000 - 70000 * (pcs_hgt - 165)) / (550 * (60 + pcs_mass['bust_gen'] + pcs_mass['butt_gen']))
 end
 
 

+ 23 - 26
locations/body_structure.qsrc

@@ -98,12 +98,10 @@ end
 
 
 !	Get the appearance bonus
-!	Appearance_bonus = func('body_structure', 'appearance_bonus', pcs_bmi, strenbuf, succubusflag)
+!	Appearance_bonus = func('body_structure', 'appearance_bonus', pcs_bmi, strenbuf)
 if $ARGS[0] = 'appearance_bonus':
 	if arrsize('ARGS') = 1: ARGS[1] = pcs_bmi
 	if arrsize('ARGS') = 2: ARGS[2] = strenbuf
-	if arrsize('ARGS') = 3: ARGS[3] = succubusflag
-	if ARGS[3] = 1: ARGS[2] = 90
 
 	bs_temp_bs_class = func('body_structure', 'get_class', ARGS[1], ARGS[2])
 
@@ -199,25 +197,24 @@ end
 
 
 !	Get the body shape image
-!	$bodyVars['img'] = func('body_structure', 'body_img', pcs_bmi, strenbuf, succubusflag)
+!	$bodyVars['img'] = func('body_structure', 'body_img', pcs_bmi, strenbuf, PregChem)
 if $ARGS[0] = 'body_img':
+	if arrsize('ARGS') = 1: ARGS[1] = pcs_bmi
+	if arrsize('ARGS') = 2: ARGS[2] = strenbuf
+	if arrsize('ARGS') = 3: ARGS[3] = PregChem
 
 	! =======      Pregnant       ======= !
-	if bdsetlock = 0 and (knowpreg = 1 or (preg = 1 and (thinkpreg = 1 or PregChem > 3600))):
-		if PregChem <= 2687:
+	if bdsetlock = 0 and (knowpreg = 1 or (preg = 1 and (thinkpreg = 1 or ARGS[3] > 3600))):
+		if ARGS[3] <= 2687:
 			$result = 'images/pc/body/shape/default_preg/0.jpg'
-		elseif PregChem <= 6215:
-			$result = 'images/pc/body/shape/default_preg/<<((PregChem - 2184)/504)>>.jpg'
+		elseif ARGS[3] <= 6215:
+			$result = 'images/pc/body/shape/default_preg/<<((ARGS[3] - 2184)/504)>>.jpg'
 		else
 			$result = 'images/pc/body/shape/default_preg/8.jpg'
 		end
 		exit
 	end
 
-	if arrsize('ARGS') = 1: ARGS[1] = pcs_bmi
-	if arrsize('ARGS') = 2: ARGS[2] = strenbuf
-	if arrsize('ARGS') = 3: ARGS[3] = succubusflag
-	if ARGS[3] = 1: ARGS[2] = 80
 
 	bs_temp_bs_class = func('body_structure', 'get_class', ARGS[1], ARGS[2])
 
@@ -337,24 +334,28 @@ end
 
 
 !	Get the body description
-!	$bodyVars['desc'] = func('body_structure', 'body_desc', pcs_bmi, strenbuf, succubusflag)
+!	$bodyVars['desc'] = func('body_structure', 'body_desc', pcs_bmi, strenbuf, PregChem)
 if $ARGS[0] = 'body_desc':
-	if knowpreg = 1 or (preg = 1 and (thinkpreg = 1 or PregChem > 3600)):
-		if PregChem <= 2687:
+	if arrsize('ARGS') = 1: ARGS[1] = pcs_bmi
+	if arrsize('ARGS') = 2: ARGS[2] = strenbuf
+	if arrsize('ARGS') = 3: ARGS[3] = PregChem
+
+	if knowpreg = 1 or (preg = 1 and (thinkpreg = 1 or ARGS[3] > 3600)):
+		if ARGS[3] <= 2687:
 			$result = 'pregnant, but not showing'
-		elseif PregChem <= 3191:
+		elseif ARGS[3] <= 3191:
 			$result = 'glowing'
-		elseif PregChem <= 3695:
+		elseif ARGS[3] <= 3695:
 			$result = 'starting to show'
-		elseif PregChem <= 4199:
+		elseif ARGS[3] <= 4199:
 			$result = 'clearly showing'
-		elseif PregChem <= 4703:
+		elseif ARGS[3] <= 4703:
 			$result = 'fairly pregnant'
-		elseif PregChem <= 5207:
+		elseif ARGS[3] <= 5207:
 			$result = 'quite pregnant'
-		elseif PregChem <= 5711:
+		elseif ARGS[3] <= 5711:
 			$result = 'very pregnant'
-		elseif PregChem <= 6215:
+		elseif ARGS[3] <= 6215:
 			$result = 'extremely pregnant'
 		else
 			$result = 'ready to pop'
@@ -363,10 +364,6 @@ if $ARGS[0] = 'body_desc':
 	end
 
 
-	if arrsize('ARGS') = 1: ARGS[1] = pcs_bmi
-	if arrsize('ARGS') = 2: ARGS[2] = strenbuf
-	if arrsize('ARGS') = 3: ARGS[3] = succubusflag
-	if ARGS[3] = 1: ARGS[2] = 80
 
 	bs_temp_bs_class = func('body_structure', 'get_class', ARGS[1], ARGS[2])
 

+ 2 - 1
locations/core_library.qsrc

@@ -98,6 +98,8 @@ end
 !! clothing_status - fnct to determine clothing status
 
 if $ARGS[0] = 'clothing_status':
+    if $pantyworntype = 'none': $apparel['panty'] = 'pantyless'
+    if $braworntype = 'none': $apparel['bra'] = 'braless'
     if $clothingworntype =  'nude': $apparel['status'] = 'nude'
     if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich':  $apparel['status'] = 'sport'
     if $clothingworntype = 'ballet_secrets' and $shoeworntype = 'ballet_secrets':  $apparel['status'] = 'dance'
@@ -111,7 +113,6 @@ if $ARGS[0] = 'corridor':
     if $location_type = 'private':
     elseif $location_type = 'public':
     end
-    
 end
 
 if $ARGS[0] = 'bathroom':

+ 12 - 6
locations/foto_shoot.qsrc

@@ -874,13 +874,14 @@ end
 if $ARGS[0] = 'sportswear':
 	*clr & cla
 	minut += 120
-	modelpayfin = 300 + (modelpay) + (15*rand(0,5)) + (pcs_apprnc) + (fame['city_modelling']/2) + (pcs_mdlng/2 * 10) + (city_sport/2)
+	modelpayfin = 300 + (modelpay) + (15*rand(0,5)) + (pcs_apprnc) + (fame['city_modelling']/2) + (pcs_mdlng/2 * 10) + (fame['city_sport']/2)
 	modelfoto['fitness'] += 1
 	pcs_sweat = 60
 	gs 'exp_gain', 'mdlng', rand(2,4)
 	gs 'fame', 'city', 'modelling', 'small'
 	gs 'stat'
-	if bodset = 2 and salocatnow >= 2:
+	temp_bs_class = func('body_structure', 'get_class', pcs_bmi, strenbuf)
+	if temp_bs_class / 100 >= 2 and (temp_bs_class mod 100) >= 8:
 		*clr & cla
 		modelpayfin += 300
 		gs 'stat'
@@ -888,6 +889,7 @@ if $ARGS[0] = 'sportswear':
 	else
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fitness/FSV<<rand(1,4)>>.jpg"></center>'
 	end
+	killvar 'temp_bs_class'
 	*nl
 	'Modeling sportwear, is slighty different from other jobs. First, you are taken to the near-by Havanna Fitness Center, as the studio doesn''t have all the necessary props to do it. Second, you must look "dynamic", and that means do some warm-ups, and add some oil, to give that "sweaty" and "sporty" look. After that, you are ready to pose the next two hours for the photographer.'
 	*nl
@@ -902,14 +904,15 @@ end
 if $ARGS[0] = 'sports_underwear':
 	*clr & cla
 	minut += 120
-	modelpayfin = 325 + (modelpay) + (15*rand(0,5)) + (pcs_apprnc) + (fame['city_modelling']/2) + (pcs_mdlng/2 * 10) + (city_sport/2)
+	modelpayfin = 325 + (modelpay) + (15*rand(0,5)) + (pcs_apprnc) + (fame['city_modelling']/2) + (pcs_mdlng/2 * 10) + (fame['city_sport']/2)
 	modelfoto['fitness'] += 1
 	pcs_sweat = 60
 	gs 'fame', 'city', 'modelling', 'small'
 	gs 'exp_gain', 'mdlng', rand(3,6)
 	if pcs_inhib < 50:inhib_exp += 1
 	gs 'stat'
-	if bodset = 2 and salocatnow >= 2:
+	temp_bs_class = func('body_structure', 'get_class', pcs_bmi, strenbuf)
+	if temp_bs_class / 100 >= 2 and (temp_bs_class mod 100) >= 8:
 		*clr & cla
 		modelpayfin += 325
 		gs 'stat'
@@ -917,6 +920,7 @@ if $ARGS[0] = 'sports_underwear':
 	else
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fitness/FUV<<rand(1,4)>>.jpg"></center>'
 	end
+	killvar 'temp_bs_class'
 	*nl
 	'Modeling sport underwear, is slighty different from other jobs. First, you are taken to the Havanna Fitness Center, as the studio doesn''t have all the necessary props to do it. Second, you must look "dynamic", and that means do some warm-ups, and add some oil, to give that "sweaty" and "sporty" look. After that, you are ready to pose the next two hours for the photographer.'
 	*nl
@@ -927,7 +931,7 @@ end
 if $ARGS[0] = 'fitness_artistic_nude':
 	*clr & cla
 	minut += 120
-	modelpay = (pcs_mdlng/2 * 10) + fame['city_modelling'] + pcs_apprnc + city_sport
+	modelpay = (pcs_mdlng/2 * 10) + fame['city_modelling'] + pcs_apprnc + fame['city_sport']
 	modelpayfin = 600 + (modelpay * 2) + (15*rand(0,5))
 	modelfoto['fitness'] += 1
 	modelfoto['nude'] += 1
@@ -936,7 +940,8 @@ if $ARGS[0] = 'fitness_artistic_nude':
 	gs 'fame', 'city', 'modelling', 'small'
 	inhib_exp += 2
 	gs 'stat'	
-	if bodset = 2 and salocatnow >= 2:
+	temp_bs_class = func('body_structure', 'get_class', pcs_bmi, strenbuf)
+	if temp_bs_class / 100 >= 2 and (temp_bs_class mod 100) >= 8:
 		*clr & cla
 		modelpayfin += 600
 		gs 'stat'
@@ -944,6 +949,7 @@ if $ARGS[0] = 'fitness_artistic_nude':
 	else
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fitness/FNV<<rand(1,4)>>.jpg"></center>'
 	end
+	killvar 'temp_bs_class'
 	*nl
 	'Already naked, you do some warm-ups, work up a sweat, add some body-oil and step onto the set to begin the shoot.'
 	*nl

+ 1 - 1
locations/grades.qsrc

@@ -40,7 +40,7 @@
 !!For a class where there is optional opportunities to study outside class that can effect the characters grade ther is th following three calls.
 !! gs 'grades', 'optional_activity', 'institution', 'name', 'use of computer'
 !! gs 'grades', 'optional_activity_skill', 'institution', 'name', 'use of computer', skill
-!! gs 'grades', 'optional_activity_attributes', 'institution', 'use of computer', 'name', attribute
+!! gs 'grades', 'optional_activity_attributes', 'institution', 'name', 'use of computer', attribute
 !!The difference between the three is how it is modified. This work exactly as for gs 'grades', 'class_activity'.
 !! 'use of computer' is 'yes' if a computer use to make the activity, 'no' if not. This modifies the grade gain depending of what was choose when the class was created.
 !!These optional activities can be called as many time as one want. the are particularly made for repeatable activities.

+ 1 - 1
locations/natalia_pavlova.qsrc

@@ -41,7 +41,7 @@ if $ARGS[0] = 'first_chat':
 		'You smile. "I get that. Anyway, hello and welcome to our school. Maybe we''ll chat again at some point?"'
 		'"Yes, I''d like that," she answers. "See you later, <<$pcs_nickname>>."'
 	
-	elseif grupTipe = 5 and fame['slut'] < 175:
+	elseif grupTipe = 5 and fame['pav_slut'] < 175:
 		'You see Natalia sitting with the nerds, reading a book. When she notices you, she glances up at you.'
 		'You smile. "Hi, I''m <<$pcs_nickname>>."'
 		'Natalia turns to you. "Umm... Hi? What brings you here?"'

+ 13 - 0
locations/sistersleep.qsrc

@@ -493,5 +493,18 @@ if $ARGS[0] = 'sister_strapon_anal':
 	end
 end
 
+if $ARGS[0] = 'drunk_after_party':
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/rekshome/party/party_girls_party_gost_22.jpg"></center>'
+	'Your sister is totally wasted, evidenced by the fact that she didn''t undress, clean off her makeup, or even wipe away the cum she is currently drooling into her pillow.'
+	*nl
+	if sisboyparty = 0:
+		'<i>Is she really so drunk that she can''t even remember to wipe her mouth after blowing her boyfriend?</i>'
+	else
+		'<i>I wonder if that''s Roma''s cum or someone else''s...</i>'
+	end
+	act 'Move away': gt 'bedrPar'
+end
+
 --- sistersleep ---------------------------------
 

+ 30 - 3
locations/uni_cafe.qsrc

@@ -27,7 +27,7 @@ if $ARGS[0] = '':
 	
 	if week < 5 and hour = 10 and minut >= 30:
 !!is this correct for the 30 min lunch break during school days?
-		temp_rand = rand(1,7)
+		temp_rand = rand(1,10)
 		if $start_type['loc'] = 'sg' and yearstart = 2:
 			if temp_rand = 1:
 				'You see a familiar face sitting at one of the tables having lunch, your former classmate <a href="exec:gt ''uni_cafe'',''lazar''">Lazar.</a>'
@@ -35,9 +35,11 @@ if $ARGS[0] = '':
 				'You see a familiar face sitting at one of the tables having lunch, your former classmate <a href="exec:gt ''uni_cafe'',''dimka''">Dimka.</a>'
 			elseif temp_rand = 3:
 				'You see a familiar face sitting at one of the tables having lunch, your former classmate <a href="exec:gt ''uni_cafe'',''marcus''">Marcus.</a>'
+			elseif temp_rand = 4:
+				'You see a familiar face sitting at one of the tables having lunch, your former classmate <a href="exec:gt ''uni_cafe'',''artem''">Artem.</a>'
 			end
 		end
-		if temp_rand = 4:
+		elseif temp_rand = 5:
 			if meet_kendra = 1:
 				'You see <a href="exec:gt ''uni_cafe'', ''kendra''">Kendra</a> sitting at one of the tables having lunch.'
 			elseif kendraslave >= 1:
@@ -47,7 +49,7 @@ if $ARGS[0] = '':
 			else
 				'As you look around, you see a pretty young black woman sitting at one of the tables. She notices you and gives you a quick once-over before returning to what she was doing. After a few minutes, she finishes her drink before getting up and leaving.'
 			end
-		elseif temp_rand = 5:
+		elseif temp_rand = 6:
 			if DjibrilQW['meet'] = 1:
 				'You see a familiar face sitting at one of the tables having lunch, Olu''s nephew <a href="exec:gt ''uni_cafe'',''djibril''">Djibril.</a>'
 			elseif hotcat >= 5:
@@ -208,6 +210,31 @@ if $ARGS[0] = 'marcus':
 	act 'Leave': gt 'uni_grounds', 'main'
 end
 
+if $ARGS[0] = 'artem':
+	*clr & cla
+	$menu_loc = 'uni_cafe'
+	$menu_arg = 'artem'
+	menu_off = 0
+	minut += 5
+	gs 'npc_relationship', 'modify', 'A2', 'like', 1
+	gs 'stat'
+	'<center><h4><font color="maroon">University Cafeteria</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big2.jpg"></center>'
+	if fame['pav_slut'] > 250:
+		'You notice Artem sitting at a table having lunch. As you approach, he says "Hey you." You sit and talk to him for a few minutes but he just mutters some responses you can''t understand as he quickly finishes his lunch, then he mutters he has to go, before he gets up and quickly moves away. Seems that even moving to a new city can''t get you away from your reputation as a slut. He tells you where they live before he heads outside and walks away.'
+	else
+		if npc_rel['A146'] >= 50:
+			artemQW['knows_dorm_room_number'] = 1
+			'You notice Artem sitting at a table having lunch. He smiles as you approach. "Hey <<$pcs_nickname>>, how have you been?" You sit and talk to him for a few minutes before his phone buzzes. He looks at it and finishes his drink. "Sorry, but I need to go to class. I am in room 209, you should stop by sometime and we can hang out." He tells you before he heads outside and walks away.'
+		elseif npc_rel['A146'] <= 20:
+			'You notice Artem sitting at a table having lunch. As you approach, all he says is "Hey." You sit and talk to him for a few minutes, but he doesn''t say much to you before he checks his phone and finishes his drink. "Sorry, but I need to go." After that, he walks outside and walks away.'
+		else
+			'You notice Artem sitting at a table having lunch. "Hey <<$pcs_nickname>>, how have you been?" he asks as you approach. You sit and talk to him for a few minutes before his phone buzzes. He looks at it and finishes his drink. "Sorry, but I need to go. It was nice catching up. Maybe I''ll see you around?" he asks before he heads outside and walks away.'
+		end
+	end
+	act 'Leave': gt 'uni_grounds', 'main'
+end
+
 if $ARGS[0]= 'kendra':
 	*clr & cla
 	$menu_loc = 'uni_cafe'

+ 121 - 52
locations/uni_lessons_electivesev1.qsrc

@@ -188,23 +188,33 @@ if $ARGS[0] = 'computers_101':
 																			'You shake your head. "I really wanted to go have some fun and thought you might want to hang out or something..."'
 																			'She''s shaking her head before you finish. "Can''t. I need to get some studying done at the library before tonight."'
 																			'You sigh, dejected. "Oh, okay. Maybe some other time?"'
-																			'She nods. "Totally. Maybe over the weekend when I''ve got some free time? catch you later." She puts some extra sway in her hips as she walks away, really rocking her ass. You smile and shake your head before turning to leave yourself.'
+																			*nl
+																			if npc_rel['A144'] >= 60:
+																				anushkaCityQW['first_visit'] = 1
+																				'She nods. "Totally. Maybe over the weekend when I''ve got some free time? catch you later, but you should stop by my place sometime." She tells you where the apartment she shares with the boys from the band is. She puts some extra sway in her hips as she walks away, really rocking her ass. You smile and shake your head before turning to leave yourself.'
+																			else
+																				'She nods. "Totally. Maybe over the weekend when I''ve got some free time? catch you later." She puts some extra sway in her hips as she walks away, really rocking her ass. You smile and shake your head before turning to leave yourself.'
+																			end
 																			act 'Leave': gt 'uni_lessons', 'short_break'
 																		end
 																		act 'Ask if you can come along':
 																			*clr & cla
 																			gs 'npc_relationship', 'modify', 'A144', 'like'
-																			if hour = 13: minut += 285 - minut
-																			if hour = 14: minut += 225 - minut
-																			if hour = 15: minut += 165 - minut
-																			if hour = 16: minut += 105 - minut
-																			if hour = 17 and minut < 45: minut += 45 - minut
-																			gs 'stat'
+
+																			!! Evaluates time until 17:45 and grants study progress accordingly
+																			gs 'uni_lessons_electivesev1', 'study_with_friends'
+																			
 																			'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big144.jpg"></center>'
 																			'You smile. "Yeah, that sounds like a good idea. Mind if I come?"'
 																			'She shrugs. "Sure, if you want, but I really do have to study." Her tone makes it clear she doesn''t have time to mess around like she did back in Pavlovsk.'
 																			'"Yeah, I understand," you reply.'
-																			'The two of you walk over to the library and find a quiet spot to study. Anushka seems really intent on her studies and doesn''t talk much while the two of you study. After a few hours, her phone starts beeping. "I need to get going. See you later." With that, she gathers her stuff and leaves.'
+																			*nl
+																			if npc_rel['A144'] >= 60:
+																				anushkaCityQW['first_visit'] = 1
+																				'The two of you walk over to the library and find a quiet spot to study. Anushka seems really intent on her studies and doesn''t talk much while the two of you study. After a few hours, her phone starts beeping. "I need to get going. See you later, but you should stop by my place sometime." She tells you where the apartment is she shares with the boys from the band. With that, she gathers her stuff and leaves.'
+																			else
+																				'The two of you walk over to the library and find a quiet spot to study. Anushka seems really intent on her studies and doesn''t talk much while the two of you study. After a few hours, her phone starts beeping. "I need to get going. See you later." With that, she gathers her stuff and leaves.'
+																			end
 																			act 'Get up': gt 'uni_library', 'start'
 																		end
 																	else
@@ -221,23 +231,33 @@ if $ARGS[0] = 'computers_101':
 																			'You shake your head. "I really wanted to go have some fun and thought you might want to hang out or something..."'
 																			'She''s shaking her head before you finish. "Can''t. I need to get some studying done at the library before tonight."'
 																			'You sigh, dejected. "Oh, okay. Maybe some other time?"'
-																			'She nods. "Totally. Maybe over the weekend when I''ve got some free time? catch you later." She puts some extra sway in her hips as she walks away, really rocking her ass. You smile and shake your head before turning to leave yourself.'
+																			*nl
+																			if npc_rel['A144'] >= 60:
+																				anushkaCityQW['first_visit'] = 1
+																				'She nods. "Totally. Maybe over the weekend when I''ve got some free time? catch you later, but you should stop by my place sometime." She tells you where the apartment she shares with the boys from the band is. She puts some extra sway in her hips as she walks away, really rocking her ass. You smile and shake your head before turning to leave yourself.'
+																			else
+																				'She nods. "Totally. Maybe over the weekend when I''ve got some free time? catch you later." She puts some extra sway in her hips as she walks away, really rocking her ass. You smile and shake your head before turning to leave yourself.'
+																			end
 																			act 'Wait for the end of the lesson': gt 'uni_lessons', 'short_break'
 																		end
 																		act 'Ask if you can come along':
 																			*clr & cla
 																			gs 'npc_relationship', 'modify', 'A144', 'like'
-																			if hour = 13: minut += 285 - minut
-																			if hour = 14: minut += 225 - minut
-																			if hour = 15: minut += 165 - minut
-																			if hour = 16: minut += 105 - minut
-																			if hour = 17 and minut < 45: minut += 45 - minut
-																			gs 'stat'
+			
+																			!! Evaluates time until 17:45 and grants study progress accordingly
+																			gs 'uni_lessons_electivesev1', 'study_with_friends'
+																
 																			'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big144.jpg"></center>'
 																			'You smile. "Yeah, that sounds like a good idea. Mind if I come?"'
 																			'She shrugs. "Sure, if you want, but I really do have to study." Her tone makes it clear she doesn''t have time to mess around like she did back in Pavlovsk.'
 																			'"Yeah, I understand," you reply.'
-																			'The two of you walk over to the library and find a quiet spot to study. Anushka seems really intent on her studies and doesn''t talk much while the two of you study. After a few hours, her phone starts beeping. "I need to get going. See you later." With that, she gathers her stuff and leaves.'
+																			*nl
+																			if npc_rel['A144'] >= 60:
+																				anushkaCityQW['first_visit'] = 1
+																				'The two of you walk over to the library and find a quiet spot to study. Anushka seems really intent on her studies and doesn''t talk much while the two of you study. After a few hours, her phone starts beeping. "I need to get going. See you later, but you should stop by my place sometime." She tells you where the apartment she shares with the boys from the band is. With that, she gathers her stuff and leaves.'
+																			else
+																				'The two of you walk over to the library and find a quiet spot to study. Anushka seems really intent on her studies and doesn''t talk much while the two of you study. After a few hours, her phone starts beeping. "I need to get going. See you later." With that, she gathers her stuff and leaves.'
+																			end
 																			act 'Get up': gt 'uni_library', 'start'
 																		end
 																	end
@@ -274,27 +294,28 @@ if $ARGS[0] = 'computers_101':
 					'"Going to the library to study some before work. You want to come?" she asks while giving you a friendly smile and slowing down a little.'
 					act 'Let''s have fun instead':
 						*clr & cla
+						anushkaCityQW['first_visit'] = 1
 						'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big144.jpg"></center>'
 						'You shake your head. "I really wanted to go have some fun and thought you might want to hang out or something..."'
 						'She''s shaking her head before you finish. "Can''t. I need to get some studying done at the library before tonight."'
 						'You sigh, dejected. "Oh, okay. Maybe some other time?"'
-						'She nods. "Totally. Maybe over the weekend when I''ve got some free time? catch you later." She puts some extra sway in her hips as she walks away, really rocking her ass. You smile and shake your head before turning to leave yourself.'
+						'She nods. "Totally. Maybe over the weekend when I''ve got some free time? catch you later, but you should stop by my place sometime." She tells you where the apartment is she shares with the boys from the band. She puts some extra sway in her hips as she walks away, really rocking her ass. You smile and shake your head before turning to leave yourself.'
 						act 'Wait for the end of the lesson': gt 'uni_lessons', 'short_break'
 					end
 					act 'Agree to go':
 						*clr & cla
 						gs 'npc_relationship', 'modify', 'A144', 'like'
-						if hour = 13: minut += 285 - minut
-						if hour = 14: minut += 225 - minut
-						if hour = 15: minut += 165 - minut
-						if hour = 16: minut += 105 - minut
-						if hour = 17 and minut < 45: minut += 45 - minut
+			
+						!! Evaluates time until 17:45 and grants study progress accordingly
+						gs 'uni_lessons_electivesev1', 'study_with_friends'
+
+						anushkaCityQW['first_visit'] = 1
 						gs 'stat'
 						'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big144.jpg"></center>'
 						'You smile. "Yeah, that sounds like a good idea. Mind if I come?"'
 						'She shrugs. "Sure, if you want, but I really do have to study." Her tone makes it clear she doesn''t have time to mess around like she did back in Pavlovsk.'
 						'"Yeah, I understand," you reply.'
-						'The two of you walk over to the library and find a quiet spot to study. Anushka seems really intent on her studies and doesn''t talk much while the two of you study. After a few hours, her phone starts beeping. "I need to get going. See you later." With that, she gathers her stuff and leaves.'
+						'The two of you walk over to the library and find a quiet spot to study. Anushka seems really intent on her studies and doesn''t talk much while the two of you study. After a few hours, her phone starts beeping. "I need to get going. See you later, but you should stop by my place sometime." She tells you where the apartment she shares with the boys from the band is. With that, she gathers her stuff and leaves.'
 						act 'Get up': gt 'uni_library', 'start'
 					end
 				elseif npc_rel['A144'] <= 20:
@@ -322,11 +343,10 @@ if $ARGS[0] = 'computers_101':
 					act 'Ask if you can come along':
 						*clr & cla
 						gs 'npc_relationship', 'modify', 'A144', 'like'
-						if hour = 13: minut += 285 - minut
-						if hour = 14: minut += 225 - minut
-						if hour = 15: minut += 165 - minut
-						if hour = 16: minut += 105 - minut
-						if hour = 17 and minut < 45: minut += 45 - minut
+			
+						!! Evaluates time until 17:45 and grants study progress accordingly
+						gs 'uni_lessons_electivesev1', 'study_with_friends'
+
 						gs 'stat'
 						'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big144.jpg"></center>'
 						'You smile. "Yeah, that sounds like a good idea. Mind if I come?"'
@@ -364,27 +384,28 @@ if $ARGS[0] = 'computers_101':
 					'"Going to the library to study some before work. You want to come?" she asks while giving you a friendly smile and slowing down a little.'
 					act 'Let''s have fun instead':
 						*clr & cla
+						anushkaCityQW['first_visit'] = 1
 						'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big144.jpg"></center>'
 						'You shake your head. "I really wanted to go have some fun and thought you might want to hang out or something..."'
 						'She''s shaking her head before you finish. "Can''t. I need to get some studying done at the library before tonight."'
 						'You sigh, dejected. "Oh, okay. Maybe some other time?"'
-						'She nods. "Totally. Maybe over the weekend when I''ve got some free time? catch you later." She puts some extra sway in her hips as she walks away, really rocking her ass. You smile and shake your head before turning to leave yourself.'
+						'She nods. "Totally. Maybe over the weekend when I''ve got some free time? catch you later, but you should stop by my place sometime." She tells you where the apartment is she shares with the boys from the band. She puts some extra sway in her hips as she walks away, really rocking her ass. You smile and shake your head before turning to leave yourself.'
 						act 'Wait for the end of the lesson': gt 'uni_lessons', 'short_break'
 					end
 					act 'Ask if you can come along':
 						*clr & cla
 						gs 'npc_relationship', 'modify', 'A144', 'like'
-						if hour = 13: minut += 285 - minut
-						if hour = 14: minut += 225 - minut
-						if hour = 15: minut += 165 - minut
-						if hour = 16: minut += 105 - minut
-						if hour = 17 and minut < 45: minut += 45 - minut
+			
+						!! Evaluates time until 17:45 and grants study progress accordingly
+						gs 'uni_lessons_electivesev1', 'study_with_friends'
+
+						anushkaCityQW['first_visit'] = 1
 						gs 'stat'
 						'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big144.jpg"></center>'
 						'You smile. "Yeah, that sounds like a good idea. Mind if I come?"'
 						'She shrugs. "Sure, if you want, but I really do have to study." Her tone makes it clear she doesn''t have time to mess around like she did back in Pavlovsk.'
 						'"Yeah, I understand," you reply.'
-						'The two of you walk over to the library and find a quiet spot to study. Anushka seems really intent on her studies and doesn''t talk much while the two of you study. After a few hours, her phone starts beeping. "I need to get going. See you later." With that, she gathers her stuff and leaves.'
+						'The two of you walk over to the library and find a quiet spot to study. Anushka seems really intent on her studies and doesn''t talk much while the two of you study. After a few hours, her phone starts beeping. "I need to get going. See you later, but you should stop by my place sometime." She tells you where the apartment she shares with the boys from the band is. With that, she gathers her stuff and leaves.'
 						act 'Get up': gt 'uni_library', 'start'
 					end
 				elseif npc_rel['A144'] <= 20:
@@ -417,11 +438,10 @@ if $ARGS[0] = 'computers_101':
 					act 'Ask if you can come along':
 						*clr & cla
 						gs 'npc_relationship', 'modify', 'A144', 'like'
-						if hour = 13: minut += 285 - minut
-						if hour = 14: minut += 225 - minut
-						if hour = 15: minut += 165 - minut
-						if hour = 16: minut += 105 - minut
-						if hour = 17 and minut < 45: minut += 45 - minut
+			
+						!! Evaluates time until 17:45 and grants study progress accordingly
+						gs 'uni_lessons_electivesev1', 'study_with_friends'
+
 						gs 'stat'
 						'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big144.jpg"></center>'
 						'You smile. "Yeah, that sounds like a good idea. Mind if I come?"'
@@ -458,27 +478,28 @@ if $ARGS[0] = 'comp_nush':
 		'"Going to the library to study some before work. You want to come?" she asks while giving you a friendly smile and slowing down a little.'
 		act 'Let''s have fun instead':
 			*clr & cla
+			anushkaCityQW['first_visit'] = 1
 			'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big144.jpg"></center>'
 			'You shake your head. "I really wanted to go have some fun and thought you might want to hang out or something..."'
 			'She''s shaking her head before you finish. "Can''t. I need to get some studying done at the library before tonight."'
 			'You sigh, dejected. "Oh, okay. Maybe some other time?"'
-			'She nods. "Totally. Maybe over the weekend when I''ve got some free time? catch you later." She puts some extra sway in her hips as she walks away, really rocking her ass. You smile and shake your head before turning to leave yourself.'
+			'She nods. "Totally. Maybe over the weekend when I''ve got some free time? catch you later, but you should stop by my place sometime." She tells you where the apartment is she shares with the boys from the band. She puts some extra sway in her hips as she walks away, really rocking her ass. You smile and shake your head before turning to leave yourself.'
 			act 'Wait for the end of the lesson': gt 'uni_lessons', 'short_break'
 		end
 		act 'Agree to go':
 			*clr & cla
 			gs 'npc_relationship', 'modify', 'A144', 'like'
-			if hour = 13: minut += 285 - minut
-			if hour = 14: minut += 225 - minut
-			if hour = 15: minut += 165 - minut
-			if hour = 16: minut += 105 - minut
-			if hour = 17 and minut < 45: minut += 45 - minut
+			
+			!! Evaluates time until 17:45 and grants study progress accordingly
+			gs 'uni_lessons_electivesev1', 'study_with_friends'
+
+			anushkaCityQW['first_visit'] = 1
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big144.jpg"></center>'
 			'You smile. "Yeah, that sounds like a good idea. Mind if I come?"'
 			'She shrugs. "Sure, if you want, but I really do have to study." Her tone makes it clear she doesn''t have time to mess around like she did back in Pavlovsk.'
 			'"Yeah, I understand," you reply.'
-			'The two of you walk over to the library and find a quiet spot to study. Anushka seems really intent on her studies and doesn''t talk much while the two of you study. After a few hours, her phone starts beeping. "I need to get going. See you later." With that, she gathers her stuff and leaves.'
+			'The two of you walk over to the library and find a quiet spot to study. Anushka seems really intent on her studies and doesn''t talk much while the two of you study. After a few hours, her phone starts beeping. "I need to get going. See you later, but you should stop by my place sometime." She tells you where the apartment she shares with the boys from the band is. With that, she gathers her stuff and leaves.'
 			act 'Get up': gt 'uni_library', 'start'
 		end
 	elseif npc_rel['A144'] <= 20:
@@ -500,11 +521,10 @@ if $ARGS[0] = 'comp_nush':
 		act 'Ask if you can come along':
 			*clr & cla
 			gs 'npc_relationship', 'modify', 'A144', 'like'
-			if hour = 13: minut += 285 - minut
-			if hour = 14: minut += 225 - minut
-			if hour = 15: minut += 165 - minut
-			if hour = 16: minut += 105 - minut
-			if hour = 17 and minut < 45: minut += 45 - minut
+			
+			!! Evaluates time until 17:45 and grants study progress accordingly
+			gs 'uni_lessons_electivesev1', 'study_with_friends'
+
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big144.jpg"></center>'
 			'You smile. "Yeah, that sounds like a good idea. Mind if I come?"'
@@ -804,5 +824,54 @@ if $ARGS[0] = 'obey_kendra_takecum':
 	end
 end
 
+!! This is a modified copy of the regular study code from uni_library. 
+!! It will go down the list of classes to study, and determine if there is benefit from studying it
+!! If there isn''t, it will go down the list. If there are none left, it will give intel exp
+if $ARGS[0] = 'study_with_friends':
+
+	temp_hours_studied_with_friend = 1
+	if hour <= 13: 
+		minut += 285 - minut
+		temp_hours_studied_with_friend = 5
+	elseif hour = 14: 
+		minut += 225 - minut
+		temp_hours_studied_with_friend = 4
+	elseif hour = 15: 
+		minut += 165 - minut
+		temp_hours_studied_with_friend = 3
+	elseif hour = 16: 
+		minut += 105 - minut
+		temp_hours_studied_with_friend = 2
+	elseif hour = 17 and minut < 45: 
+		minut += 45 - minut
+		temp_hours_studied_with_friend = 1
+	end
+
+	if university['semester_week'] > 0:
+		i = 0
+		:study_with_friends_loop
+		if $class_list_institution[i] = 'uni_<<$university[''enrolled_in'']>>_semester_<<university[''enrolled_in_semester'']>>':
+
+			if dyneval ('RESULT = class[''<<$class_list_institution[i]>>_<<$class_list_name[i]>>_optional_weekly_grade_gain'']') < dyneval ('RESULT = class[''<<$class_list_institution[i]>>_<<$class_list_name[i]>>_optional_weekly_max'']'):
+				gs 'grades', 'optional_activity_attribute', '<<$class_list_institution[i]>>', '<<$class_list_name[i]>>', 'yes', '<<temp_hours_studied_with_friend>>'
+				
+			else
+				i += 1
+				if ARRSIZE('class_list_institution') >= i: jump 'study_with_friends_loop'
+				killvar 'i'
+				gs 'exp_gain', 'intel', rand(temp_hours_studied_with_friend - 1, (temp_hours_studied_with_friend + 1))
+			end
+
+		else 
+			i += 1
+			if ARRSIZE('class_list_institution') >= i: jump 'study_with_friends_loop'
+			killvar 'i'
+			gs 'exp_gain', 'intel', rand(temp_hours_studied_with_friend - 1, (temp_hours_studied_with_friend + 1))
+		end
+	end
+	
+	gs 'stat'
+	killvar 'temp_hours_studied_with_friend'
+end
 --- uni_lessons_electivesev1 ---------------------------------
 

+ 59 - 1
locations/uni_library.qsrc

@@ -1,5 +1,5 @@
 # uni_library
-
+!!march 18 2024
 !!This is the file containing the university library
 
 killvar '$downlibrary'
@@ -42,6 +42,10 @@ if $ARGS[0] = 'start' or $ARGS[0] = '':
 		'You see '+iif(katjaQW['know_katja_uni'] = 0 and ($start_type['loc'] ! 'sg' and $start_type['magic'] = 'tg'), 'a cute redheaded girl', '<a href="exec:gt ''katja_uni'', ''library''">Katja</a>')+' sitting at one of the desks with a laptop and a pile of books.'
 	end
 	
+	if locat['A144'] = 12:
+		'You see your former classmate <a href="exec:gt ''uni_library'', ''anushka''">Anushka</a> sitting at one of the tables studying some books.'
+	end
+	
 	!!if locat['albina'] = 6:
 		!!'You see '+iif(AlbinaQW['know_albina_uni'] = 0 and ($start_type['loc'] ! 'sg' and $start_type['magic'] = 'tg'), 'an attractive looking brunette', '<a href="exec:gt ''albina_uni'', ''library''">Albina</a>')+' searching the shelves for books.'
 	!!end
@@ -54,6 +58,10 @@ if $ARGS[0] = 'start' or $ARGS[0] = '':
 		end
 	end
 	
+	if yearstart > 1 and week <= 5 and hour >= 15 and hour < 17:
+		'You see your former classmate <a href="exec:gt ''uni_library'', ''artem''">Artem</a> sitting at one of the tables studying some books.'
+	end
+	
 	if $start_type['loc'] = 'sg' and yearstart > 1 and week > 5 and hour >= 12 and hour < 14:
 		if nataliaQW['library_day_check'] ! daystart:
 			nataliaQW['library_day_check'] = daystart
@@ -596,5 +604,55 @@ if $ARGS[0] = 'kendra':
 	end
 end
 
+if $ARGS[0] = 'artem':
+	*clr & cla
+	menu_off = 1
+	gs 'npc_relationship', 'modify', 'A2', 'like'
+	gs 'exp_gain', 'chrsm', rand(1,2)
+	minut += 5
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big2.jpg"></center>'
+	'You walk over to his table.'
+	if npc_rel['A2'] >= 50:
+		artemQW['knows_dorm_room_number'] = 1
+		minut += 10
+		'You sit next to Artem. The two of you talk about your classes, fellow students, roommates, and just life in general for awhile. Finally he says. "I don''t mean to be rude but I really need to finish this, but why don''t you come to my dorm room sometime and we can hangout then. I am on the second floor in room 209." You tell him you will, then say your goodbyes and leave him to study.'
+	elseif npc_rel['A2'] <= 20:
+		'You sit next to Artem when he looks over at you. "I''m busy and need to study, so please go sit somewhere else." You sigh and get up and move away.'
+	else
+		minut += 5
+		'You sit next to Artem. You try and have a conversation with him, but mostly you talk as he tries to study. Finally after a bit he says. "Look sorry but I really need to study this, maybe we can talk at the cafe sometime or something. But if you don''t mind." He indicates his book, you get the hint and leave him alone.'
+	end
+	act 'Leave Artem be':
+		minut += 2
+		gt 'uni_library', 'start'
+	end
+end
+
+if $ARGS[0] = 'anushka':
+	*clr & cla
+	menu_off = 1
+	gs 'npc_relationship', 'modify', 'A144', 'like'
+	gs 'exp_gain', 'chrsm', rand(1,2)
+	minut += 5
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big144.jpg"></center>'
+	'You walk over to her table.'
+	if npc_rel['A144'] >= 60:
+		anushkaCityQW['first_visit'] = 1
+		minut += 5
+		gs 'stat'
+		'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big144.jpg"></center>'
+		'You exchange greetings as you sit. Anushka seems really intent on her studies, at first she is polite and tries to respond but after a few minutes she mostly stops responding and just listening until she finally says. "I don''t mean to be rude but can you politely fuck off." She says in a teasing tone and a smile on her face. "But in all seriousness I really do need to get this done, this is one of the few times I have to be in the library. If you want to hang out, you can stop by the Coffee Hole sometimes or come by the boys'' and my apartment if you want." She tells you where the apartment she shares with the boys from the band is. With that, you get the hint and leave her alone.'
+	elseif npc_rel['A144'] <= 20:
+		'You sit next to Anushka when she looks over at you. "Go the fuck away, can''t you see I''m busy." You sigh and get up and move away.'
+	else
+		minut += 5
+		'You sit next to Anushka. You try and have a conversation with her, but mostly you talk as she tries to study. Finally after a bit he says. "Look I don''t have time to hang out, I got to get this studying done now while I have some free time, why don''t you stop by the Coffee Hole sometime if you want to talk, I sometimes have free time then." You get the hint and leave her alone.'
+	end
+	act 'Leave Anushka be':
+		minut += 2
+		gt 'uni_library', 'start'
+	end
+end
+
 --- uni_library ---------------------------------