Browse Source

Merge remote-tracking branch 'Anjuna/master'

Kevin_Smarts 4 months ago
parent
commit
a703c6426d

+ 18 - 18
locations/bed_events.qsrc

@@ -28,7 +28,7 @@ if $ARGS[0] = 'start' or $ARGS[0] = '':
 			$sleep_events[] = 'gs ''bed_events'', ''vor'' '
 		end
 
-		gt 'bed_events', 'mod_sleepevents'
+		xgt 'bed_events', 'mod_sleepevents'
 	end
 
 	gt 'bed_events', 'continue'
@@ -52,7 +52,7 @@ if $ARGS[0] = 'mod_sleepevents':
 	!! IT WILL ALMOST CERTIANLY END BADLY WHEN MORE THAN 1 MOD IS INVOLVED.
 
 	gs 'LOCA', 'bed_events', 'mod_sleepevents'
-	gt 'bed_events', 'event_handler'
+	xgt 'bed_events', 'event_handler'
 end
 
 
@@ -65,12 +65,12 @@ if $ARGS[0] = 'event_handler':
 		end
 	end
 
-	gt 'bed_events', 'continue'
+	xgt 'bed_events', 'continue'
 end
 
 if $ARGS[0] = 'event_handler2':
 	sleepVars['events_done'] += 1
-	
+
 	if $ARGS[1] = 'priority':
 		temp_slev_id = rand(0, arrsize('$sleep_events_priority')-1)
 		$temp_sleep_event_chosen = $sleep_events_priority[temp_slev_id]
@@ -84,7 +84,7 @@ if $ARGS[0] = 'event_handler2':
 	killvar 'temp_slev_id'
 	dynamic $temp_sleep_event_chosen
 
-	gs 'bed_events', 'event_end'
+	xgt 'bed_events', 'event_end'
 end
 
 
@@ -94,7 +94,7 @@ if $ARGS[0] = 'event_end':
 !!		gt 'bed_events', 'event_handler2', 'priority'
 !!	end
 
-	gt 'bed_events', 'event_handler'
+	xgt 'bed_events', 'event_handler'
 end
 
 
@@ -114,7 +114,7 @@ if $ARGS[0] = 'continue':
 	killvar 'temp_slev_id'
 	killvar '$temp_sleep_event_chosen'
 
-	gt 'bed2', 'start'
+	xgt 'bed2', 'start'
 end
 
 
@@ -158,7 +158,7 @@ if $ARGS[0] = 'rab2':
 
 		gs 'arousal', 'bj', 5, 'sub', 'lesbian'
 		gs 'stat'
-		
+
 		act 'Lie down':
 			*clr & cla
 			'<center><img <<$set_imgh>> src="images/characters/city/nicholas/sex/r2.jpg"></center>'
@@ -167,7 +167,7 @@ if $ARGS[0] = 'rab2':
 
 			gs 'arousal', 'bj', 5, 'sub', 'lesbian', 'rough'
 			gs 'stat'
-		
+
 			act 'Get up':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/characters/city/nicholas/sex/r3.jpg"></center>'
@@ -232,7 +232,7 @@ if $ARGS[0] = 'vor2':
 		act 'Scream': gt 'bed_events', 'vor3'
 
 	else
-		if dog_bravery = 0: 
+		if dog_bravery = 0:
 			dog_bravery = rand(1,100)
 		end
 
@@ -252,7 +252,7 @@ if $ARGS[0] = 'vor2':
 			act 'Check the lock':
 				cla
 				'You check the lock on the door and it appears to be intact. You''re not sure if you forgot to lock the door when you came in or if the lock was picked. Maybe you should have a second one installed...'
-				act 'Lock the door': 
+				act 'Lock the door':
 					gs 'bed_events', 'exit'
 					gt 'korr'
 				end
@@ -293,7 +293,7 @@ if $ARGS[0] = 'vor3':
 
 			gs 'arousal', 'bj', 15, 'rough', 'sub', 'group', 'bound'
 			gs 'stat'
-			
+
 			act 'Get up':
 				*clr & cla
 				orgasm += 1
@@ -314,8 +314,8 @@ if $ARGS[0] = 'vor3':
 				gs 'arousal', 'vaginal', 15, 'rough', 'sub', 'group', 'bound'
 				minut -= 15
 				gs 'stat'
-			
-				act 'Continue': 
+
+				act 'Continue':
 					picrand = 38
 					gs 'bed_events', 'exit'
 					xgt 'sexdvoe', 'var'
@@ -381,7 +381,7 @@ if $ARGS[0] = 'mast':
 				$orgasm_or = 'custom'
 				gs 'arousal', 'vaginal_dildo', 10, 'masturbate'
 				gs 'arousal', 'end'
-				
+
 				act 'Breathe': gs 'bed_events', 'event_end'
 
 			else
@@ -431,7 +431,7 @@ if $ARGS[0] = 'mast':
 								$orgasm_or = 'custom'
 								gs 'arousal', 'end'
 								gs 'stat'
-						
+
 								act 'Finish': gs 'bed_events', 'event_end'
 							end
 						end
@@ -499,7 +499,7 @@ if $ARGS[0] = 'mast':
 							gs 'arousal', 'vaginal_dildo', 10
 							gs 'arousal', 'bj', -10
 							gs 'stat'
-						
+
 							act 'Spread your legs ':
 								picrand = 89
 								gs 'bed_events', 'exit'
@@ -523,7 +523,7 @@ if $ARGS[0] = 'mast':
 								gs 'arousal', 'anal_dildo', 5
 								gs 'arousal', 'bj', -10
 								gs 'stat'
-								
+
 								act 'Offer your ass':
 									picrand = 89
 									gs 'bed_events', 'exit'

+ 4 - 4
locations/bed_get_out_events.qsrc

@@ -20,14 +20,14 @@ if $ARGS[0] = 'start' or $ARGS[0] = '':
 
 	if sleepVars['events_active'] = 1:
 		sleepVars['events_done'] = 0
-		
+
 		if vomit['morning_sick'] = 1 or vomit['hangover'] = 1 or vomit['unlucky'] = 1:
 			$sleep_events[] = 'gs ''bed_get_out_events'', ''vomit'' '
 		end
 
 		xgt 'bed_get_out_events', 'mod_sleepevents'
 	end
-	
+
 	xgt 'bed_get_out_events', 'continue'
 end
 
@@ -61,7 +61,7 @@ if $ARGS[0] = 'event_handler':
 		end
 	end
 
-	gs 'bed_get_out_events', 'continue'
+	xgt 'bed_get_out_events', 'continue'
 end
 
 if $ARGS[0] = 'event_handler2':
@@ -80,7 +80,7 @@ if $ARGS[0] = 'event_handler2':
 	killvar 'temp_slev_id'
 	dynamic $temp_sleep_event_chosen
 
-	gs 'bed_get_out_events', 'event_end'
+	xgt 'bed_get_out_events', 'event_end'
 end
 
 

+ 2 - 1
locations/city_experimental_trials.qsrc

@@ -45,6 +45,8 @@ if $ARGS[0] = 'front_desk' or $ARGS[0] = '':
 	if experimentQW['signed'] ! 0:
 		'She looks up as you walk in and warmly welcomes you inside. "Hello Miss <<$pcs_lastname>>, how can I help you today?"'
 
+		act 'Leave': gt 'city_clinic', 'start'
+
 		if $experimentQW['trial_active'] = '':
 			act 'Ask which clinical trials are available': gt 'city_experimental_trials_list', 'see_trials'
 		else
@@ -81,7 +83,6 @@ if $ARGS[0] = 'front_desk' or $ARGS[0] = '':
 			act 'Go to the experimental pharmacy': gt 'city_experimental_trials_pharmacy', 'counter'
 		end
 
-		act 'Leave': gt 'city_clinic', 'start'
 
 	else
 		'She looks up as you walk in and warmely welcomes you inside. "Hello miss, how can I help you?"'

+ 25 - 6
locations/city_experimental_trials_events.qsrc

@@ -59,6 +59,7 @@ elseif $experimentQW['trial_active'] = 'pill_red':
 	if experimentQW['random_option'] = 1:
 		if stren_lvl > 11:
 			stren_exp -= 2 * (stren_xpnxt - stren_xpprv)
+			stren_mem -= 2 * (stren_xpnxt - stren_xpprv)
 		end
 
 		'You seem to have lost a lot of mussle mass and feel weaker. This must have been that experimental pill you took.'
@@ -73,6 +74,7 @@ elseif $experimentQW['trial_active'] = 'pill_red':
 	elseif experimentQW['random_option'] = 3:
 		if agil_lvl > 11:
 			agil_exp -= 2 * (agil_xpnxt - agil_xpprv)
+			agil_mem -= 2 * (agil_xpnxt - agil_xpprv)
 		end
 
 		'Your agility has deminished and you feel slower. This must have been that experimental pill you took.'
@@ -87,6 +89,7 @@ elseif $experimentQW['trial_active'] = 'pill_red':
 	elseif experimentQW['random_option'] = 5:
 		if vital_lvl > 11:
 			vital_exp -= 2 * (vital_xpnxt - vital_xpprv)
+			vital_mem -= 2 * (vital_xpnxt - vital_xpprv)
 		end
 
 		'Your endurance has decreased! This must have been that experimental pill you took.'
@@ -134,6 +137,7 @@ elseif $experimentQW['trial_active'] = 'pill_blue':
 	if experimentQW['random_option'] = 1:
 		if intel_lvl > 11:
 			intel_exp -= 2 * (intel_xpnxt - intel_xpprv)
+			intel_mem -= 2 * (intel_xpnxt - intel_xpprv)
 		end
 
 		'Your intelligence has decreased and you feel dumber. This must have been that experimental pill you took.'
@@ -148,6 +152,7 @@ elseif $experimentQW['trial_active'] = 'pill_blue':
 	elseif experimentQW['random_option'] = 3:
 		if react_lvl > 11:
 			react_exp -= 2 * (react_xpnxt - react_xpprv)
+			react_mem -= 2 * (react_xpnxt - react_xpprv)
 		end
 
 		'Your reaction time has deminished and you feel slower. This must have been that experimental pill you took.'
@@ -162,6 +167,7 @@ elseif $experimentQW['trial_active'] = 'pill_blue':
 	elseif experimentQW['random_option'] = 5:
 		if chrsm_lvl > 11:
 			chrsm_exp -= 2 * (chrsm_xpnxt - chrsm_xpprv)
+			chrsm_mem -= 2 * (chrsm_xpnxt - chrsm_xpprv)
 		end
 
 		'You feel less charismatic. This must have been that experimental pill you took.'
@@ -176,6 +182,7 @@ elseif $experimentQW['trial_active'] = 'pill_blue':
 	elseif experimentQW['random_option'] = 7:
 		if prcptn_lvl > 11:
 			prcptn_exp -= 2 * (prcptn_xpnxt - prcptn_xpprv)
+			prcptn_mem -= 2 * (prcptn_xpnxt - prcptn_xpprv)
 		end
 
 		'You feel less perceptive. This must have been that experimental pill you took.'
@@ -283,14 +290,15 @@ elseif $experimentQW['trial_active'] = 'pill_orange':
 	end
 
 	if experimentQW['random_option'] = 1:
-		butt_tr_exp -= 10 * (butt_tr_xpnxt - butt_tr_xpprv)
+		butt_tr_exp -= 2 * (butt_tr_xpnxt - butt_tr_xpprv)
+		butt_tr_mem -= 2 * (butt_tr_xpnxt - butt_tr_xpprv)
 		if butt_tr_exp < 0: butt_tr_exp = 0
 
 		*nl
 		'You notice that your ass has shrunk! This must have been that experimental pill you took.'
 
 	else
-		butt_tr_exp += 10 * (butt_tr_xpnxt - butt_tr_xpprv)
+		butt_tr_exp += 2 * (butt_tr_xpnxt - butt_tr_xpprv)
 
 		*nl
 		'You notice that your ass has grown! This must have been that experimental pill you took.'
@@ -304,7 +312,7 @@ elseif $experimentQW['trial_active'] = 'pill_violet':
 		if rand(0,9) < 4:
 			experimentQW['random_option'] = 1
 
-		!! 60% chance of increasing your tits
+		!! 60% chance of increasing your inhib_exp
 		else
 			experimentQW['random_option'] = 2
 		end
@@ -312,13 +320,17 @@ elseif $experimentQW['trial_active'] = 'pill_violet':
 
 	if experimentQW['random_option'] = 1:
 		!! correct amount??
-		inhib_exp -= 50
+		inhib_exp -= 2 * (inhib_xpnxt - inhib_xpprv)
+		inhib_mem -= 2 * (inhib_xpnxt - inhib_xpprv)
+		inhib_lvl -= 2
+		inhib_flr -= 2
+		inhib_lvlst -= 2
 		*nl
 		'Your inhibition has lowered and you feel less outgoing and more ashamed. This must have been that experimental pill you took.'
 
 	else
 		!! correct amount??
-		inhib_exp += 50
+		inhib_exp += 2 * (inhib_xpnxt - inhib_xpprv)
 		*nl
 		'Your inhibition has increased and you feel more outgoing and less ashamed. This must have been that experimental pill you took.'
 	end
@@ -440,6 +452,11 @@ elseif $experimentQW['trial_active'] = 'pill_pink':
 	end
 end
 
+if mid($experimentQW['trial_active'],1, 4) = 'pill':
+	gs 'stat_sklattrib'
+	gs 'stat_sklattrib'
+end
+
 
 	!!=========================!!
 	!!                         !!
@@ -458,7 +475,7 @@ if $experimentQW['trial_active'] = 'breast_cream':
 	else
 		if lactation['active'] <= 0:
 			!! Permanent lactation
-			func('lact_lib', 'lact_switch')
+			gs 'lact_lib', 'lact_on'
 			lactation['milkprod_type'] = 0
 			*nl
 			'Your breasts have grown and have a fullness to them. This must have been that experimental breast cream.'
@@ -466,6 +483,7 @@ if $experimentQW['trial_active'] = 'breast_cream':
 			*nl
 			'Your breasts have grown and have become fuller. This must have been that experimental breast cream.'
 		end
+		if therapistQW['breast_cream'] = 2: therapistQW['breast_cream'] = 3
 	end
 end
 
@@ -594,6 +612,7 @@ end
 
 
 experimentQW['trial_duration'] -= 1
+experimentQW['event_day'] = daystart
 
 if experimentQW['trial_duration'] <= 0:
 	experimentQW['trial_duration'] = 0

+ 17 - 0
locations/city_experimental_trials_list.qsrc

@@ -55,6 +55,21 @@ $trial_sections[6]  = 'growth_hormones'
 Drugs
 }
 
+if therapistQW['breast_cream'] = 1 and experimentQW['times_participated_1'] = 0 and $ARGS[0] = 'see_trials':
+	$trial_names[1] = '<b>Breast Cream</b>'
+	cetl_i = 0
+	:therapist_overwrite_loop
+		$trial_names[cetl_i]     = $trial_names[1]
+		 trial_pays[cetl_i]      =  trial_pays[1]
+		$trial_sections[cetl_i]  = $trial_sections[1]
+		 trial_maxs[cetl_i]      =  trial_maxs[1]
+		cetl_i += 1
+	if cetl_i < arrsize('$trial_names'): jump 'therapist_overwrite_loop'
+end
+
+
+
+
 if $ARGS[0] = 'see_trials':
 	$menu_loc = 'city_experimental_trials_list'
 	$menu_arg = 'see_trials'
@@ -248,6 +263,8 @@ elseif $ARGS[0] = $trial_sections[1]:
 		$experimentQW['trial_active'] = $trial_sections[1]
 		 experimentQW['trial_duration'] = trial_durations[1]
 
+		if therapistQW['breast_cream'] = 1: therapistQW['breast_cream'] = 2
+
 		menu_off = 1
 		minut += 2
 		gs 'stat'

+ 59 - 59
locations/clothing_attributes.qsrc

@@ -19,17 +19,17 @@
 !!				2-1 are the same for cheap category.
 !! CloThinness = 1-6 scale, with higher values being made of thinner material and/or being more tightly fitting.
 !!		Notes:   Clothing with large cut-away sections or transparent sections should have a decreased CloThinness score
-!!		Ex: 	6 intentionally reveals breast or pubic areas, with translucent or transparent areas and should trigger some sort of indecent exposure/arrest event if worn in public without underwear. 
-!!				5 is thin enough to be seen through only in bright light, or is otherwise tight enough to show the body in detail if opaque (skin tight).  
-!!				4 is thin or tight enough to be flirty and fine in most places except the most conservative (church, court, etc). 
+!!		Ex: 	6 intentionally reveals breast or pubic areas, with translucent or transparent areas and should trigger some sort of indecent exposure/arrest event if worn in public without underwear.
+!!				5 is thin enough to be seen through only in bright light, or is otherwise tight enough to show the body in detail if opaque (skin tight).
+!!				4 is thin or tight enough to be flirty and fine in most places except the most conservative (church, court, etc).
 !!				3-2 is the range of clothing that is modest enough to be worn in all public places.
 !!				1 does not follow the curves of the body in great detail, and makes it hard to see the body shape.
 !!Top!!
 !! CloTopCut = 1-4 scale* (with an additional +0-3 based on player breast sizes, for an effective 1-7 scale). System is based on based on how much skin on the torso is shown (including navel, not just above the breasts), with larger breasts implicitly making the outfit smaller and more revealing.
-!!		Notes:   Need to add modifiers based on breast size, where larger breasts end up forcing the player to show more cleavage than those with smaller breasts. 
-!!		Ex: 	4 reveals over half the skin on the torso area, 
-!!				3 has a deep neckline that reaches the cleavage between the breasts, 
-!!				2 is a cut high enough to be considered appropriate in most places (above the cleavage, or just below where it starts), 
+!!		Notes:   Need to add modifiers based on breast size, where larger breasts end up forcing the player to show more cleavage than those with smaller breasts.
+!!		Ex: 	4 reveals over half the skin on the torso area,
+!!				3 has a deep neckline that reaches the cleavage between the breasts,
+!!				2 is a cut high enough to be considered appropriate in most places (above the cleavage, or just below where it starts),
 !!				1 is a neckline that ends very near the neck or higher.
 !! CloBra = 1 for on 2 for bare chest
 !!		Ex:		2 Your chest is not covered at all by the outfit, if you wear a bra that will be your top
@@ -37,11 +37,11 @@
 !!Bottoms!!
 !! CloSkirtShortness = 1-6 scale. Higher values are shorter.
 !!		Notes: 	 Loose skirts sometimes rank higher than tight skirts of the same length, since they are more likely to flash others.
-!!		Ex: 	6 is short enough to reveal pubic areas at all times 
-!!				5 is ~20% thigh length or less (micro-skirt), and can reveal underwear frequently 
-!!				4 is ~40% thigh length (miniskirt) and may show underwear if bending over 
-!!				3 is up to ~60% thigh length (skirt) and normally never reveals underwear 
-!!				2 is ending immediately above, at or below the knees (knee-length) 
+!!		Ex: 	6 is short enough to reveal pubic areas at all times
+!!				5 is ~20% thigh length or less (micro-skirt), and can reveal underwear frequently
+!!				4 is ~40% thigh length (miniskirt) and may show underwear if bending over
+!!				3 is up to ~60% thigh length (skirt) and normally never reveals underwear
+!!				2 is ending immediately above, at or below the knees (knee-length)
 !!				1 is ankle-length.
 !! CloPantsShortness = 1-6 scale. Higher values are shorter.
 !!		Notes: 	 Intentionally separate variable from skirt length to prevent wording confusion during events (e.g., lifting a dress or skirt versus pulling down pants or shorts)
@@ -56,32 +56,32 @@
 !! CloPanties = 1 for yes, 2 for no coverage eg. a harness
 !!		Ex:		1 The bottom of this outfit offers no more coverage than panties and it will replace your panties (if worn)
 !! CloOnePiece = 1
-!!		Notes:	 Flag for event writing; excludes skirted/dress outfits. Denotes that in order to have sex, the clothing must be pulled to the side, unlike shorts which can be pulled down, or skirts which may be lifted. 
+!!		Notes:	 Flag for event writing; excludes skirted/dress outfits. Denotes that in order to have sex, the clothing must be pulled to the side, unlike shorts which can be pulled down, or skirts which may be lifted.
 !! CloBimbo = 1
 !!		Notes:	 Flag for bimboification gain. All exceptionally slutty clothing (the kind almost never seen outside of porn, strip clubs, or on street hookers) should have this flag.
 !!
 !! The following are only applied if required, if the outfit covers these areas fully there is no need to add them
 !!
 !! CloCoverFront:1-4 scale not required to be set must expose the vagina at least partially
-!!		Ex: 	4 Pussy not covered at all 
+!!		Ex: 	4 Pussy not covered at all
 !!				3 Pussy is covered but the material is completely transparent, or wide fishnet
 !!				2 Pussy covered but still visible, inc. wide mesh
 !!				1 Pussy can barely be seen through material if you look hard enough, inc. fine mesh
 !!
 !! CloCoverBack:1-4 scale not required to be set exposure of the butt, the presence of a g-string or thong does not mean the butt is covered
-!!		Ex: 	4 Butt not covered at all 
+!!		Ex: 	4 Butt not covered at all
 !!				3 Butt is covered but the material is completely transparent, or wide fishnet
 !!				2 Butt covered but still visible, inc. wide mesh
 !!				1 Butt can barely be seen through material if you look hard enough, inc. fine mesh
 !!
 !! CloCoverTop:	1-4 scale not required to be set. Breast exposure, must be some nipple or the whole of the rest of the breast for it to count. Deep cleavage without nipple does not count.
-!!		Ex: 	4 Breasts not covered at all 
+!!		Ex: 	4 Breasts not covered at all
 !!				3 Breasts is covered but the material is completely transparent, or wide fishnet
 !!				2 Breasts covered but still visible, inc. wide mesh
 !!				1 Breasts can barely be seen through material if you look hard enough, inc. fine mesh
 !!
 !!	Figures for CloInhibit values, these are the maximums for each range. Currently all set to lowest figure in range but to add random element when time permits
-!!0:	dress:1					pants:1		top:2			thickness:2			
+!!0:	dress:1					pants:1		top:2			thickness:2
 !!5:	dress:2					pants:3		top:2			thickness:3
 !!10:	dress:3					pants:4		top:2			thickness:4
 !!15:	dress:3					pants:4		top:3			thickness:4
@@ -116,87 +116,87 @@ CloCoverBack = 0
 CloCoverTop = 0
 
 if $ARGS[0] = 'gm_outfits':
-	*P FUNC('$attributes_gm_outfits', $ARGS[0], ARGS[1])
+	gs '$attributes_gm_outfits', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'gm_dress':
-	*P FUNC('$attributes_gm_dress', $ARGS[0], ARGS[1])
+	gs '$attributes_gm_dress', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'misc_outfits':
-	*P FUNC('$attributes_misc_outfits', $ARGS[0], ARGS[1])
+	gs '$attributes_misc_outfits', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'cats_dress':
-	*P FUNC('$attributes_cats_dress', $ARGS[0], ARGS[1])
+	gs '$attributes_cats_dress', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'cats_outfits':
-	*P FUNC('$attributes_cats_outfits', $ARGS[0], ARGS[1])
+	gs '$attributes_cats_outfits', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'flamingos_outfits':
-	*P FUNC('$attributes_flamingos_outfits', $ARGS[0], ARGS[1])
+	gs '$attributes_flamingos_outfits', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'flamingos_dress':
-	*P FUNC('$attributes_flamingos_dress', $ARGS[0], ARGS[1])
+	gs '$attributes_flamingos_dress', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'coco_outfits':
-	*P FUNC('$attributes_coco_outfits', $ARGS[0], ARGS[1])
+	gs '$attributes_coco_outfits', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'coco_dress':
-	*P FUNC('$attributes_coco_dress', $ARGS[0], ARGS[1])
+	gs '$attributes_coco_dress', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'fashionista_dress':
-	*P FUNC('$attributes_fashionista_dress', $ARGS[0], ARGS[1])
+	gs '$attributes_fashionista_dress', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'fashionista_outfits':
-	*P FUNC('$attributes_fashionista_outfits', $ARGS[0], ARGS[1])
+	gs '$attributes_fashionista_outfits', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'moncheri_dress':
-	*P FUNC('$attributes_moncheri_dress', $ARGS[0], ARGS[1])
+	gs '$attributes_moncheri_dress', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'moncheri_gown':
-	*P FUNC('$attributes_moncheri_gown', $ARGS[0], ARGS[1])
+	gs '$attributes_moncheri_gown', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'gm_office':
-	*P FUNC('$attributes_office', $ARGS[0], ARGS[1])
+	gs '$attributes_office', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'gm_school':
-	*P FUNC('$attributes_school', $ARGS[0], ARGS[1])
+	gs '$attributes_school', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'danilovich_outfits':
-	*P FUNC('$attributes_danilovich_outfits', $ARGS[0], ARGS[1])
+	gs '$attributes_danilovich_outfits', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'eroto_dress':
-	*P FUNC('$attributes_eroto_dress', $ARGS[0], ARGS[1])
+	gs '$attributes_eroto_dress', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'eroto_outfits':
-	*P FUNC('$attributes_eroto_outfits', $ARGS[0], ARGS[1])
+	gs '$attributes_eroto_outfits', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'eroto_strip':
-	*P FUNC('$attributes_eroto_strip', $ARGS[0], ARGS[1])
+	gs '$attributes_eroto_strip', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'salacious_dress':
-	*P FUNC('$attributes_salacious_dress', $ARGS[0], ARGS[1])
+	gs '$attributes_salacious_dress', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'salacious_outfits':
-	*P FUNC('$attributes_salacious_outfits', $ARGS[0], ARGS[1])
+	gs '$attributes_salacious_outfits', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'gm_maid':
-	*P FUNC('$attributes_gm_maid', $ARGS[0], ARGS[1])
+	gs '$attributes_gm_maid', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'gm_server':
-	*P FUNC('$attributes_gm_server', $ARGS[0], ARGS[1])
+	gs '$attributes_gm_server', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'danilovich_swimsuit':
-	*P FUNC('$attributes_danilovich_swim_one', $ARGS[0], ARGS[1])
+	gs '$attributes_danilovich_swim_one', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'scandalicious_outfits':
-	*P FUNC('$attributes_scandalicious_outfits', $ARGS[0], ARGS[1])
+	gs '$attributes_scandalicious_outfits', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'scandalicious_dress':
-	*P FUNC('$attributes_scandalicious_dress', $ARGS[0], ARGS[1])
+	gs '$attributes_scandalicious_dress', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'scandalicious_swimsuit':
-	*P FUNC('$attributes_scandalicious_swim_one', $ARGS[0], ARGS[1])
+	gs '$attributes_scandalicious_swim_one', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'scandalicious_bikinis':
-	*P FUNC('$attributes_scandalicious_swim_two', $ARGS[0], ARGS[1])
+	gs '$attributes_scandalicious_swim_two', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'fancy_burlesque':
-	*P FUNC('$attributes_fancy_burlesque', $ARGS[0], ARGS[1])
+	gs '$attributes_fancy_burlesque', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'dolls_dress':
-	*P FUNC('$attributes_dolls_dress', $ARGS[0], ARGS[1])
+	gs '$attributes_dolls_dress', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'dolls_outfits':
-	*P FUNC('$attributes_dolls_outfits', $ARGS[0], ARGS[1])
+	gs '$attributes_dolls_outfits', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'bomba_dress':
-	*P FUNC('$attributes_bomba_dress', $ARGS[0], ARGS[1])
+	gs '$attributes_bomba_dress', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'bomba_outfits':
-	*P FUNC('$attributes_bomba_outfits', $ARGS[0], ARGS[1])
+	gs '$attributes_bomba_outfits', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'allure_swimsuit':
-	*P FUNC('$attributes_allure_swim_one', $ARGS[0], ARGS[1])
+	gs '$attributes_allure_swim_one', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'allure_bikinis':
-	*P FUNC('$attributes_allure_swim_two', $ARGS[0], ARGS[1])
+	gs '$attributes_allure_swim_two', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'market_outfits':
-	*P FUNC('$attributes_market_clothes', $ARGS[0], ARGS[1])
+	gs '$attributes_market_clothes', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'materinstvo_dress':
-	*P FUNC('$attributes_materinstvo_dress', $ARGS[0], ARGS[1])
+	gs '$attributes_materinstvo_dress', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'nerdvana_cosplay':
-	*P FUNC('$attributes_nerdvana_cosplay', $ARGS[0], ARGS[1])
+	gs '$attributes_nerdvana_cosplay', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'nerdvana_outfits':
-	*P FUNC('$attributes_nerdvana_outfits', $ARGS[0], ARGS[1])
+	gs '$attributes_nerdvana_outfits', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'nerdvana_bikinis':
-	*P FUNC('$attributes_nerdvana_swim_two', $ARGS[0], ARGS[1])
+	gs '$attributes_nerdvana_swim_two', $ARGS[0], ARGS[1]
 elseif $ARGS[0] = 'nerdvana_swimsuit':
-	*P FUNC('$attributes_nerdvana_swim_one', $ARGS[0], ARGS[1])
+	gs '$attributes_nerdvana_swim_one', $ARGS[0], ARGS[1]
 end
 
 if $ARGS[0] ! 'allure_swimsuit' and $ARGS[0] ! 'allure_bikinis' and $ARGS[0] ! 'scandalicious_swimsuit' and $ARGS[0] ! 'scandalicious_bikinis' and $ARGS[0] ! 'danilovich_swimsuit' and $ARGS[0] ! 'nerdvana_swimsuit' and $ARGS[0] ! 'nerdvana_bikinis':
@@ -280,6 +280,7 @@ end
 !! Adjusting the cleavage to the player characters breast size.
 if CloTopCut = 3 and tits >=4: CloTopCut = 4
 if CloTopCut = 2 and tits >=6: CloTopCut = 3
+
 !! This is the old version giving to drastic changes when the scal of CloTopCut is only 1-4
 !!if CloTopCut > 1:
 !!	if tits = 2 or tits = 3: CloTopCut += 1
@@ -289,4 +290,3 @@ if CloTopCut = 2 and tits >=6: CloTopCut = 3
 !!if CloTopCut > 4: CloTopCut = 4
 
 --- clothing_attributes ---------------------------------
-

+ 17 - 26
locations/dream_events.qsrc

@@ -49,7 +49,7 @@ if $ARGS[0] = 'start' or $ARGS[0] = '':
 			if blackmailQW['stage'] >= 1 and daystart >= blackmailQW['dreamday']: gs 'blackmailer', 'blackmail_dreams'
 		end
 
-		gt 'dream_events', 'mod_sleepevents'
+		xgt 'dream_events', 'mod_sleepevents'
 	end
 
 	xgt 'dream_events', 'continue'
@@ -72,16 +72,16 @@ if $ARGS[0] = 'mod_sleepevents':
 	!! IT WILL ALMOST CERTIANLY END BADLY WHEN MORE THAN 1 MOD IS INVOLVED.
 
 	gs 'LOCA', 'dream_events', 'mod_sleepevents'
-	gt 'dream_events', 'event_handler'
+	xgt 'dream_events', 'event_handler'
 end
 
 
 if $ARGS[0] = 'event_handler':
 	if sleepVars['events_done'] < 1:
 		if arrsize('$sleep_events_priority') > 0:
-			xgt 'dream_events', 'event_handler2', 'priority'
+			gt 'dream_events', 'event_handler2', 'priority'
 		elseif arrsize('$sleep_events') > 0:
-			xgt 'dream_events', 'event_handler2'
+			gt 'dream_events', 'event_handler2'
 		end
 	end
 
@@ -104,7 +104,7 @@ if $ARGS[0] = 'event_handler2':
 	killvar 'temp_slev_id'
 	dynamic $temp_sleep_event_chosen
 
-	gs 'dream_events', 'event_end'
+	xgt 'dream_events', 'event_end'
 end
 
 
@@ -177,19 +177,17 @@ end
 
 
 if $ARGS[0] = 'no_dream':
-	if $start_type[1] = 'tg':
-		temp = rand(1,10)
-		if temp = 1:
+	if $start_type[1] ! 'tg' or rand(0, 9) > 2:
+		'You sleep without dreaming.'
+	else
+		temp = rand(0, 2)
+		if temp = 0:
 			'You have hazy dreams about your past.'
-		elseif temp = 2:
+		elseif temp = 1:
 			'You dream about the moon looking at the world with his one bloody eye.'
-		elseif temp = 3:
-			'You dream that you are a man again.'
 		else
-			'You sleep without dreaming.'
+			'You dream that you are a man again.'
 		end
-	else
-		'You sleep without dreaming.'
 	end
 	gs 'dream_events', 'event_end'
 end
@@ -211,7 +209,6 @@ if $ARGS[0] = 'erotic_dream_switch':
 		if pcs_vag = 0 and stat['think_virgin'] = 1 and pcs_ass = 0 and stat['anal'] = 0 and stat['bj'] = 0 and stat['hj'] = 0 and stat['cuni'] = 0 and girl = 0 and guy = 0:
 			!dreams only for virgin
 			ivrand = rand(1, 5)
-
 		else
 			ivrand = rand(1, 6 + succublvl)
 		end
@@ -240,11 +237,7 @@ end
 
 if $ARGS[0] = 'd_dream_switch':
 	!! Roll between 1 and 12 if ClownQW = 0 and between 1 and 13 if clownQW = 1.
-	if clownQW = 1:
-		gs 'dream_events', 'd_dreams', rand(1, 13)
-	else
-		gs 'dream_events', 'd_dreams', rand(1, 12)
-	end
+	gs 'dream_events', 'd_dreams', rand(1, iif(clownQW ! 0, 13, 12))
 	gs 'dream_events', 'event_end'
 end
 
@@ -328,7 +321,6 @@ if $ARGS[0] = 'hypno_dreams':
 		end
 	elseif ARGS[1] = 4:
 		'<center><video autoplay loop src="images/locations/pavlovsk/clinic/therapist/sex/hypnoRide4.mp4"></video></center>'
-		
 		if dreamedOfTherapistFucking = 2:
 			'You dream that you''re riding your therapist''s cock. You keep slaming your pussy onto his massive rod as hard as you can, his huge cock bumping against your cervix. It feels wonderful and you feel a deep craving to feel his seed pump into you.'
 		else
@@ -399,7 +391,7 @@ end
 
 if $ARGS[0] = 'sex_dreams':
 	!only vaginal sex
-	ivrand = rand(1,5)
+	ivrand = rand(1, 5)
 	if ivrand = 1:
 		'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/sex/sex1.jpg"></center>'
 		'You dream about having sex at the poolside of an expensive mansion with an attractive athletic man. You bounce up and down on his cock while he firmly grasps your ass. He starts to groan and tense up so you increase the speed of your bouncing and...'
@@ -412,8 +404,7 @@ if $ARGS[0] = 'sex_dreams':
 	elseif ivrand = 4:
 		'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/sex/sex4.jpg"></center>'
 		'You dream that you''re bent over a couch with a man behind you pushing his cock in and out of you while firmly grasping your ass. You''re biting your lips from the pleasure.'
-		
-	elseif ivrand = 5:
+	else
 		'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/sex/sex5.jpg"></center>'
 		'You dream that you''re sitting on top of a guy, bouncing up and down on his cock.'
 	end
@@ -437,7 +428,7 @@ if $ARGS[0] = 'anal_dreams':
 		'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/sex/anal2.jpg"></center>'
 		'You dream that you''re laying on your side as a guy fucks your ass. You moan loudly from the sensation.'
 	end
-	
+
 	if stat['anal'] = 0 and pcs_ass = 0:
 		'You wake up feeling strange and excited. Even though you''ve never had anal sex, the dream felt very real.'
 	elseif stat['anal'] = 0:
@@ -479,7 +470,7 @@ if $ARGS[0] = 'ero_dreams':
 	elseif ivrand = 4:
 		'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/sex/ero4.jpg"></center>'
 		'You dream that you''re on a bed naked with a girl, kissing and caressing each other passionately,'
-	elseif ivrand = 5:
+	else
 		'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/sex/ero5.jpg"></center>'
 		'You dream that you''re naked while making out with a stranger.'
 	end

+ 5 - 1
locations/item_stock_db.qsrc

@@ -1390,7 +1390,11 @@ if $ARGS[0] = 'experimental_trials':
 	item_idx = 0
 	if experimentQW['times_participated_1'] > 0:
 		item_idx += 1
-		$item_curr_aisle['<<item_idx>>'] = 'Breast Cream'
+		if func('pcs_has_attr', 'OR', 'body_tits_big', 'body_tits_huge'):
+			$item_curr_aisle['<<item_idx>>'] = 'Breast Cream'
+		else
+			$item_curr_aisle['<<item_idx>>'] = '<b>Breast Cream</b>'
+		end
 		$var_curr_aisle['<<item_idx>>'] = 'breastcream'
 		$desc_curr_aisle['<<item_idx>>'] = 'A cream that enhances your breast mass.'
 		quantity_curr_aisle['<<item_idx>>'] = 10

+ 40 - 27
locations/lact_lib.qsrc

@@ -60,7 +60,7 @@ if $ARGS[0] = 'init_breasttissue':
 		!! During pregnancy most of the breast fat is getting replaced by conjuctive tissue and mammary glands. But the genetical breastsize also affects the total mammary gland growth. So for example, if Sveta is a chubby,
 		!! and has D cups with a breastdensitytype of 1, and she looses weight, her breast will shrink down to B cups. If her pcs_mass['bust_gen'] is D, then she will grow D cups or bigger during pregnancy. But that is part of another function.
 		lactation['breastcount'] = 2
-		
+
 		if lactation['breastdensitytype'] < 3:
 			lactation['breastdensitytype'] = rand(3,5)
 			lactation['lactlib_change'] = 1
@@ -94,7 +94,7 @@ if $ARGS[0] = 'init_breasttissue':
 		lactation['alveoliexpandlvl'] = 0
 		lactation['alveoliexpandlvl_change'] = 0
 	end
-	
+
 end
 
 if $ARGS[0] = 'bsizetoccm':
@@ -143,7 +143,7 @@ if $ARGS[0] = 'bsizetoccm':
 end
 
 if $ARGS[0] = 'bccmtosize':
-	!!	backwardsfunction of bsizetoccm. It just reverts breast ccm to "pcs_mass['bust'] + bodyVars['bust_lact'] + bodyVars['bust_magic'] + bodyVars['bust_silicone']" 
+	!!	backwardsfunction of bsizetoccm. It just reverts breast ccm to "pcs_mass['bust'] + bodyVars['bust_lact'] + bodyVars['bust_magic'] + bodyVars['bust_silicone']"
 	!!	func('lact_lib','bccmtosize',lactation['breastccm'])
 	if ARGS[1] < 0:
 		result = 0
@@ -201,8 +201,8 @@ if $ARGS[0] = 'lactationBreastGrowth':
 		elseif lactation['alveoliexpandlvl_change'] mod 3 = 0 and lactation['alveoliexpandlvl'] + 1 = lactation['alveoliexpandlvl_change'] and lactation['alveoliexpandlvl_change'] > 0 and bodyVars['bust_lact'] >= 5:
 			bodyVars['bust_lact'] -= 5
 			'<b>Your breasts seem to be getting smaller.</b>'
-		end	
-		lactation['alveoliexpandlvl_change'] = lactation['alveoliexpandlvl'] 	
+		end
+		lactation['alveoliexpandlvl_change'] = lactation['alveoliexpandlvl']
 	end
 	lactation['result'] = func('lact_lib','init_breasttissue')
 end
@@ -316,7 +316,7 @@ if $ARGS[0] = 'prod_milk':
 		end
 	else
 		result = 0
-	end	
+	end
 end
 
 !!	breast status messages - for use in stat_display. Explains itself basically.
@@ -441,7 +441,7 @@ if $ARGS[0] = 'breast_stat_icons':
 			$stat_lact_msg = 'Your breasts hurt and your nipples tingle a lot. Your top is drenched with a warm liquid.'
 			$statusIconBarTab += '<td><a href="exec:msg $stat_lact_msg"><img title="<<$stat_lact_msg>>" height = <<set_siconht>> src="images/system/icons/status/lactating_d100+.png"></a></td>'
 		elseif lactation['engorgement'] < 1 and lactation['breastmv'] > lactation['breastmm']*9/10:
-			$stat_lact_msg = 'Your breasts feel firm and under pressure.' 
+			$stat_lact_msg = 'Your breasts feel firm and under pressure.'
 			$statusIconBarTab += '<td><a href="exec:msg $stat_lact_msg"><img title="<<$stat_lact_msg>>" height = <<set_siconht>> src="images/system/icons/status/lactating_90.png"></a></td>'
 		elseif lactation['engorgement'] < 1 and lactation['breastmv'] > lactation['breastmm']*3/4:
 			$stat_lact_msg = 'Your breasts feel very heavy.'
@@ -497,9 +497,17 @@ if $ARGS[0] = 'breast_engorment':
 end
 
 !!	Lactation On/Off switch function
+!!	Usage gs 'lact_lib','lact_switch'
 if $ARGS[0] = 'lact_switch':
-	!!	Usage func('lact_lib','lact_switch')
-	if lactation['active'] <= 0:	
+	if lactation['active'] <= 0:
+		gs 'lact_lib', 'lact_on'
+	else
+		gs 'lact_lib', 'lact_off'
+	end
+end
+
+if $ARGS[0] = 'lact_on':
+	if lactation['active'] <= 0:
 		!!	Sveta is not aware of the lactation yet. She will notice when playing with her breasts or applying pressure to them. Or during pumping or when she starts to leak.
 		lactation['pc_aware'] = 0
 		!!	setting lactation to active
@@ -518,7 +526,12 @@ if $ARGS[0] = 'lact_switch':
 		if lactation['alveoliexpandlvl'] < 10: lactation['alveoliexpandlvl'] = 10
 		if lactation['alveoliexpandlvl_change'] < 10: lactation['alveoliexpandlvl_change'] = 10
 		lactation['milkprod_type'] = 1
-	else
+		lactation['result'] = func('lact_lib','breastcycle')
+	end
+end
+
+if $ARGS[0] = 'lact_off':
+	if lactation['active'] > 0:
 		!!	If lactation is on, the stuff below will switch it off again.
 		lactation['active'] = 0
 		lactation['lactaterate'] = 0
@@ -528,11 +541,11 @@ if $ARGS[0] = 'lact_switch':
 		lactation['prolactinlvl'] = 0
 		if lactation['nipgrowth'] > 0 and lactation['nipgrowth'] <= 10: pcs_nips -= lactation['nipgrowth'] & lactation['nipgrowth'] = 0
 		lactation['nipgrowth'] = 0
+		lactation['result'] = func('lact_lib','breastcycle')
 	end
-	!!	Always trigger the breastcycle after breast change, or the changes to svetas breasts will not happen.
-	lactation['result'] = func('lact_lib','breastcycle')
 end
 
+
 !!	new breast cycle function, replaced the monster lactation function in femcyc
 if $ARGS[0] = 'breastcycle':
 	!!if lactation['breasttissueinitiated'] <= 0: lactation['result'] = func('lact_lib','init_breasttissue')
@@ -684,7 +697,7 @@ if $ARGS[0] = 'breastcycle':
 		lactation['result'] = func('lact_lib','lactationBreastGrowth')
 		lactation['dailyoverdemand'] = 0
 		lactation['milkgrowday'] = daystart
-	end	
+	end
 end
 
 !! Used for switching off all lactation related content
@@ -742,7 +755,7 @@ if $ARGS[0] = 'get_suckflowrate':
 	else
 		!!	'suck flow else branch'
 		result = 10000
-	end	
+	end
 end
 
 !!	get max nipple flow rate function
@@ -752,12 +765,12 @@ if $ARGS[0] = 'get_maxnipflowrate':
 	!!	Result is base rate is 10ml/minute x 1000.
 	!!	Calculating the nip flow mod. The more svetas breasts were worked/sucked, the more milk can go through her nipples. Max cap is at 9000 (9ml/min).
 	!!   increased the cap 10 times
-	
+
 	if breastcounter > 0:
 		lactation['nip_flow_mod'] += breastcounter * 500
 		breastcounter = 0
 	end
-	!!	IT IS OVER 90000! 
+	!!	IT IS OVER 90000!
 	if lactation['nip_flow_mod'] > 90000: lactation['nip_flow_mod'] = 90000
 	!!	linear growth for the nip flowrate
 	if pcs_nips > 0:
@@ -800,7 +813,7 @@ end
 !! probably needs a tweak
 if $ARGS[0] = 'get_sorenessmod':
 	!!	lactation['soreness_mod'] = func('lact_lib','get_sorenessmod')
-	
+
 	if lactation['nipple_cream_applied'] > 0:
 		lactation['nipple_cream_applied'] = 0
 		if lactation['dailyoverdemand'] = 0:
@@ -970,7 +983,7 @@ if $ARGS[0] = '$get_breastmilk':
 		if lactation['breastmv'] >= lactation['max_sucktion_demand']:
 			!!	Checking if svetas nipple flow is enough to serve the demand. If yes - get the demand; If no - get what she is able to give us.
 			!!   we still should not be able to give more milk than we can for that time, so commenting "if"
-			
+
 			if lactation['max_nip_flow_rate'] >= lactation['suck_flow_rate']:
 				lactation['get_bm_milkedvolume'] = lactation['max_sucktion_demand']
 				lactation['breastmv'] -= lactation['max_sucktion_demand']
@@ -992,24 +1005,24 @@ if $ARGS[0] = '$get_breastmilk':
 					pumptime_left = ARGS[2] - (lactation['breastmv']/lactation['suck_flow_rate'])
 				else
 					pumptime_left = ARGS[2] - (lactation['breastmv']/lactation['max_nip_flow_rate'])
-				end	
+				end
 			end
-			
-			!! Next check is for cases when not only there is less milk than demanded, but also not enough max_nip_flow_rate 
-			if pumptime_left > 0: 
-				pumptime = ARGS[2] - pumptime_left + 1 
+
+			!! Next check is for cases when not only there is less milk than demanded, but also not enough max_nip_flow_rate
+			if pumptime_left > 0:
+				pumptime = ARGS[2] - pumptime_left + 1
 				!!	time to add the pumped lactation['breastmv'] to the milkedvolume and empty lactation['breastmv'].
 				lactation['get_bm_milkedvolume'] += lactation['breastmv']
 				lactation['breastmv'] = 0
 			else
 				pumptime_left = 0
 				pumptime = ARGS[2]
-				lactation['get_bm_milkedvolume'] += lactation['max_nip_flow_rate'] * ARGS[2] 
-				lactation['breastmv'] -= lactation['max_nip_flow_rate'] * ARGS[2] 							
-			end	
+				lactation['get_bm_milkedvolume'] += lactation['max_nip_flow_rate'] * ARGS[2]
+				lactation['breastmv'] -= lactation['max_nip_flow_rate'] * ARGS[2]
+			end
 			!!	Now we check if sveta was able to make it or not. If not we have milk overdemand which will be used in femcycle to make her produce more milk next day.
 !!			if temp_var > lactation['get_bm_milkedvolume']: lactation['dailyoverdemand'] += (temp_var - lactation['get_bm_milkedvolume'])
-			!! as we stop pumping when there is no more milk lets just add 1 minute of pumping for overdemand 
+			!! as we stop pumping when there is no more milk lets just add 1 minute of pumping for overdemand
 			if lactation['max_nip_flow_rate'] >= lactation['suck_flow_rate']:
 				if temp_var > lactation['get_bm_milkedvolume']: lactation['dailyoverdemand'] += (lactation['suck_flow_rate'] * pumptime - lactation['get_bm_milkedvolume'])
 			else

+ 1 - 1
locations/phone_selfies.qsrc

@@ -264,7 +264,7 @@ end
 if $ARGS[0] = 'camera_take_selfie':
 	minut += rand(5,7)
 	if $ARGS[1] ! '':
-		gs 'telefon', 'camera_selfie_image', $ARGS[1], $ARGS[2]
+		gs 'phone_selfies', 'camera_selfie_image', $ARGS[1], $ARGS[2]
 	else
 		phone_rand = RAND(1,selfieClotot[0])
 		dynamic '<<$selfieLoc[0]>>_closelfie[<<phone_rand>>] = 1'

+ 8 - 8
locations/pre_sleep_events.qsrc

@@ -43,10 +43,10 @@ if $ARGS[0] = 'start' or $ARGS[0] = '':
 
 		if daystart > sleepVars['sleep_reflection_day']: gs 'sleep_reflections', 'event_check'
 
-		gt 'pre_sleep_events', 'mod_sleepevents'
+		xgt 'pre_sleep_events', 'mod_sleepevents'
 	end
 
-	gt 'pre_sleep_events', 'continue'
+	xgt 'pre_sleep_events', 'continue'
 end
 
 if $ARGS[0] = 'mod_sleepevents':
@@ -67,7 +67,7 @@ if $ARGS[0] = 'mod_sleepevents':
 	!! IT WILL ALMOST CERTIANLY END BADLY WHEN MORE THAN 1 MOD IS INVOLVED.
 
 	gs 'LOCA', 'pre_sleep_events', 'mod_sleepevents'
-	gt 'pre_sleep_events', 'event_handler'
+	xgt 'pre_sleep_events', 'event_handler'
 end
 
 
@@ -80,7 +80,7 @@ if $ARGS[0] = 'event_handler':
 		end
 	end
 
-	gt 'pre_sleep_events', 'continue'
+	xgt 'pre_sleep_events', 'continue'
 end
 
 if $ARGS[0] = 'event_handler2':
@@ -99,7 +99,7 @@ if $ARGS[0] = 'event_handler2':
 	killvar 'temp_slev_id'
 	dynamic $temp_sleep_event_chosen
 
-	gs 'pre_sleep_events', 'event_end'
+	xgt 'pre_sleep_events', 'event_end'
 end
 
 
@@ -110,7 +110,7 @@ if $ARGS[0] = 'event_end':
 !!		gt 'bed_events', 'event_handler2', 'priority'
 !!	end
 
-	gt 'pre_sleep_events', 'event_handler'
+	xgt 'pre_sleep_events', 'event_handler'
 end
 
 
@@ -130,7 +130,7 @@ if $ARGS[0] = 'continue':
 	killvar 'temp_slev_id'
 	killvar '$temp_sleep_event_chosen'
 
-	gt 'pre_sleep', 'pre_sleep2'
+	xgt 'pre_sleep', 'pre_sleep2'
 end
 
 
@@ -271,7 +271,7 @@ if $ARGS[0] = 'magbstchoice':
 		killvar 'mgf2bnocnt'
 		gs 'pre_sleep_events', 'event_end'
 	end
-	act 'Eh, I don''t like them like that.': 
+	act 'Eh, I don''t like them like that.':
 		magf2bdo = 0
 		mgf2bnocnt += 1
 		gs 'pre_sleep_events', 'event_end'

+ 6 - 6
locations/sleep_events.qsrc

@@ -68,7 +68,7 @@ end
 
 if $ARGS[0] = 'event_handler2':
 	sleepVars['events_done'] += 1
-	
+
 	if $ARGS[1] = 'priority':
 		temp_slev_id = rand(0, arrsize('$sleep_events_priority')-1)
 		$temp_sleep_event_chosen = $sleep_events_priority[temp_slev_id]
@@ -82,7 +82,7 @@ if $ARGS[0] = 'event_handler2':
 	killvar 'temp_slev_id'
 	dynamic $temp_sleep_event_chosen
 
-	gs 'sleep_events', 'event_end', 'sleep'
+	xgt 'sleep_events', 'event_end', 'sleep'
 end
 
 
@@ -94,19 +94,19 @@ if $ARGS[0] = 'event_end':
 !!	end
 
 	if $ARGS[1] = 'dream':
-		gs 'sleep_events', 'continue', 'dream'
+		xgt 'sleep_events', 'continue', 'dream'
 
 	elseif $ARGS[1] = 'wake':
 		gs 'sleep_events', 'exit'
-		gs 'wakeup', 'start'
+		xgt 'wakeup', 'start'
 
 	elseif $ARGS[1] = 'no_interupt':
 		gs 'sleep_events', 'continue', 'no_interupt'
 
 	elseif $ARGS[1] = 'sleep':
-		gs 'sleep_events', 'continue', 'sleep'
+		xgt 'sleep_events', 'continue', 'sleep'
 	else
-		gs 'sleep_events', 'continue', 'sleep'
+		xgt 'sleep_events', 'continue', 'sleep'
 	end
 end
 

+ 178 - 160
locations/stat_sklattrib.qsrc

@@ -122,185 +122,203 @@ $traitattskl[2] = 'schlrly'
 !!This is sets _lvl and _exp based on the value of pcs_"name" the first time so that _lvl and _exp do not need to set on start.
 !!Theoretically this can be eventually deleted.
 if attsklupdate = 0:
-	i = 0 & x = 1
-	:rstloop
-	expadj = func('_difficulty','getexpadj')
-	tl = 0
-	:trtrstloop
-	tltp = 0
-	:trtrstinsdlp
-!!	Note this loop is done with a flag set in the dynamic that is checked outside; this is because testing showed inconsistent results when jumping from inside the dynamic and with the whole loop in the dynamic.
-	dynamic "
-		if <<$traitattskl[tl]>> > 0 and <<$traitattskl[tl]>>[tltp + 1] = x and <<$traitattskl[tl]>>[tltp + 2] = i and <<$traitattskl[tl]>>[tltp + 3] ! 0: expadj += <<$traitattskl[tl]>>[tltp + 3]
-		if <<$traitattskl[tl]>>[tltp + 11] ! 0: insdlpflag = 1
-		"
-	if insdlpflag = 1: tltp += 10 & insdlpflag = 0 & jump 'trtrstinsdlp'
-	tl += 1
-	if tl < arrsize ('$traitattskl'): jump 'trtrstloop'
-	killvar 'tl' & killvar 'tltp' & killvar 'insdlpflag'
-
-	if x = 1:
-		$attskltmp = $att_name[i]
-	else
-		$attskltmp = $skl_name[i]
-	end
-
-	dynamic "
-		if pcs_<<$attskltmp>> > 0 and <<$attskltmp>>_lvl = 0:
-			<<$attskltmp>>_exp = (expadj *73* (pcs_<<$attskltmp>> - 1) * (pcs_<<$attskltmp>> - 1) / 2730) + 1
-			<<$attskltmp>>_mem = <<$attskltmp>>_exp - 1
-			<<$attskltmp>>_lvl = pcs_<<$attskltmp>>
-			<<$attskltmp>>_lvlst = <<$attskltmp>>_lvl
-		end
-	"
-	killvar 'expadj' & killvar '$attskltmp'
-	i += 1
-	if (x = 1 and i < arrsize ('$att_name')) or (x = 2 and i < arrsize ('$skl_name')): jump 'rstloop'
-	i = 0 & x += 1
-	if x < 3: jump 'rstloop'
-	killvar 'i' & killvar 'x'
+	x = 1
+	:rstloop_outer
+		i = 0
+		:rstloop_inner
+			expadj = func('_difficulty','getexpadj')
+			tl = 0
+			:trtrstloop
+				tltp = 0
+				:trtrstinsdlp
+					!!	Note this loop is done with a flag set in the dynamic that is checked outside; this is because testing showed inconsistent results when jumping from inside the dynamic and with the whole loop in the dynamic.
+					dynamic "
+						if <<$traitattskl[tl]>> > 0 and <<$traitattskl[tl]>>[tltp + 1] = x and <<$traitattskl[tl]>>[tltp + 2] = i and <<$traitattskl[tl]>>[tltp + 3] ! 0: expadj += <<$traitattskl[tl]>>[tltp + 3]
+						if <<$traitattskl[tl]>>[tltp + 11] ! 0: insdlpflag = 1
+						"
+				if insdlpflag = 1: tltp += 10 & insdlpflag = 0 & jump 'trtrstinsdlp'
+				tl += 1
+			if tl < arrsize ('$traitattskl'): jump 'trtrstloop'
+			killvar 'tl' & killvar 'tltp' & killvar 'insdlpflag'
+
+			if x = 1:
+				$attskltmp = $att_name[i]
+			else
+				$attskltmp = $skl_name[i]
+			end
+
+			dynamic "
+				if pcs_<<$attskltmp>> > 0 and <<$attskltmp>>_lvl = 0:
+					<<$attskltmp>>_exp = (expadj *73* (pcs_<<$attskltmp>> - 1) * (pcs_<<$attskltmp>> - 1) / 2730) + 1
+					<<$attskltmp>>_mem = <<$attskltmp>>_exp - 1
+					<<$attskltmp>>_lvl = pcs_<<$attskltmp>>
+					<<$attskltmp>>_lvlst = <<$attskltmp>>_lvl
+				end
+			"
+			killvar 'expadj' & killvar '$attskltmp'
+			i += 1
+		if (x = 1 and i < arrsize ('$att_name')) or (x = 2 and i < arrsize ('$skl_name')): jump 'rstloop_inner'
+		x += 1
+	if x < 3: jump 'rstloop_outer'
 
 	attsklupdate = 1
 end
 
 !!This is the section that runs when the call is from cikl
 if $ARGS[0] = 'daycall':
-!!	Attribute XP with Skill XP gain
+	!!	Attribute XP with Skill XP gain
 	x = 0
 	:sklxploop
-	y = 1
-	:persklloop
-	dynamic "$attnamtmp = $att_name[<<$skl_name[x]>>[y]]"
-	dynamic "
-		if <<$skl_name[x]>>_exp > <<$skl_name[x]>>_mem: <<$attnamtmp>>_exp += (<<$skl_name[x]>>_exp - <<$skl_name[x]>>_mem) / 5
-		if <<$skl_name[x]>>[y + 1] = -1 or y >= 9: lpstopflg = 1
-		"
-	killvar '$attnamtmp'
-	if lpstopflg = 0: y += 1 & jump 'persklloop'
-	killvar 'lpstopflg'
-	x += 1
+		y = 1
+		:persklloop
+			dynamic "$attnamtmp = $att_name[<<$skl_name[x]>>[y]]"
+			dynamic "
+				if <<$skl_name[x]>>_exp > <<$skl_name[x]>>_mem: <<$attnamtmp>>_exp += (<<$skl_name[x]>>_exp - <<$skl_name[x]>>_mem) / 5
+				if <<$skl_name[x]>>[y + 1] = -1 or y >= 9: lpstopflg = 1
+				"
+			killvar '$attnamtmp'
+		if lpstopflg = 0: y += 1 & jump 'persklloop'
+		killvar 'lpstopflg'
+		x += 1
 	if x < arrsize ('$skl_name'): jump 'sklxploop'
 	killvar 'x' & killvar 'y' & killvar '$attnamtmp'
 
-!!	Degradation Loop
-	i = 0 & x = 1
-	:degloop
-	degadj = 60
-	if x = 2: degadj += 30
-	expadj = func('_difficulty','getexpadj')
-	tl = 0
-	:trtdegloop
-	tltp = 0
-	:trtdeginsdlp
-!!	Note this loop is done with a flag set in the dynamic that is checked outside; this is because testing showed inconsistent results when jumping from inside the dynamic and with the whole loop in the dynamic.
-	dynamic "
-		if <<$traitattskl[tl]>> > 0 and <<$traitattskl[tl]>>[tltp + 1] = x and <<$traitattskl[tl]>>[tltp + 2] = i and <<$traitattskl[tl]>>[tltp + 3] ! 0: expadj += <<$traitattskl[tl]>>[tltp + 3]
-		if <<$traitattskl[tl]>> > 0 and <<$traitattskl[tl]>>[tltp + 1] = x and <<$traitattskl[tl]>>[tltp + 2] = i and <<$traitattskl[tl]>>[tltp + 4] ! 0: degadj += <<$traitattskl[tl]>>[tltp + 4]
-		if <<$traitattskl[tl]>>[tltp + 11] ! 0: insdlpflag = 1
-		"
-	if insdlpflag = 1: tltp += 10 & insdlpflag = 0 & jump 'trtdeginsdlp'
-	tl += 1
-	if tl < arrsize ('$traitattskl'): jump 'trtdegloop'
-	killvar 'tl' & killvar 'tltp' & killvar 'insdlpflag'
-
-	if x = 1:
-		$attskltmp = $att_name[i]
-	else
-		$attskltmp = $skl_name[i]
-	end
-
-	dynamic "
-		if <<$attskltmp>>_lvl ! <<$attskltmp>>_lvlst: <<$attskltmp>>_lvl = <<$attskltmp>>_lvlst
-		if <<$attskltmp>>_lvl < 100:
-			degtmp = (102 - <<$attskltmp>>_lvl + <<$attskltmp>>_muta)
+	!!	Degradation Loop
+	x = 1
+	:degloop_outer
+		i = 0
+		:degloop_inner
+			degadj = 60
+			if x = 2: degadj += 30
+			expadj = func('_difficulty','getexpadj')
+			tl = 0
+			:trtdegloop
+				tltp = 0
+				:trtdeginsdlp
+					!!	Note this loop is done with a flag set in the dynamic that is checked outside; this is because testing showed inconsistent results when jumping from inside the dynamic and with the whole loop in the dynamic.
+					dynamic "
+						if <<$traitattskl[tl]>>[0] > 0:
+							if <<$traitattskl[tl]>>[tltp + 1] = x and <<$traitattskl[tl]>>[tltp + 2] = i:
+								if <<$traitattskl[tl]>>[tltp + 3] ! 0: expadj += <<$traitattskl[tl]>>[tltp + 3]
+								if <<$traitattskl[tl]>>[tltp + 4] ! 0: degadj += <<$traitattskl[tl]>>[tltp + 4]
+							end
+							if <<$traitattskl[tl]>>[tltp + 11] ! 0: insdlpflag = 1
+						end
+						"
+					if insdlpflag = 1: tltp += 10 & insdlpflag = 0 & jump 'trtdeginsdlp'
+					tl += 1
+				if tl < arrsize ('$traitattskl'): jump 'trtdegloop'
+				killvar 'tl' & killvar 'tltp' & killvar 'insdlpflag'
+
+				if x = 1:
+					$attskltmp = $att_name[i]
+				else
+					$attskltmp = $skl_name[i]
+				end
+
+				dynamic "
+					if <<$attskltmp>>_lvl ! <<$attskltmp>>_lvlst: <<$attskltmp>>_lvl = <<$attskltmp>>_lvlst
+					if <<$attskltmp>>_lvl < 100:
+						degtmp = (102 - <<$attskltmp>>_lvl + <<$attskltmp>>_muta)
+					else
+						degtmp = 2 + <<$attskltmp>>_muta
+					end
+
+					degtmp = degadj * degtmp / 60
+					if degtmp < 2: degtmp = 2
+
+					if <<$attskltmp>>_exp < <<$attskltmp>>_mem: <<$attskltmp>>_exp = <<$attskltmp>>_mem
+
+					if <<$attskltmp>>_exp = <<$attskltmp>>_mem:
+						<<$attskltmp>>_deg -= 1
+					else
+						<<$attskltmp>>_deg = degtmp
+					end
+
+					if <<$attskltmp>>_deg <= 0 and <<$attskltmp>>_lvl > <<$attskltmp>>_flr:
+						<<$attskltmp>>_lvl -= 1
+						<<$attskltmp>>_deg = degtmp
+
+						<<$attskltmp>>_xpnxt = expadj * 73 * <<$attskltmp>>_lvl * <<$attskltmp>>_lvl / 2730 + 1
+						<<$attskltmp>>_xpprv = expadj * 73 * (<<$attskltmp>>_lvl - 1) * (<<$attskltmp>>_lvl - 1) / 2730 + 1
+						exptmp = <<$attskltmp>>_exp - <<$attskltmp>>_xpnxt
+						if exptmp < 0: exptmp = 0
+						<<$attskltmp>>_exp = <<$attskltmp>>_xpprv + exptmp
+
+							!! This will only do anything if the PC builds exp well in excess of what is needed to level
+						if <<$attskltmp>>_exp >= <<$attskltmp>>_xpnxt: <<$attskltmp>>_exp -= (2 * <<$attskltmp>>_lvl - 1) / 10
+					end
+					<<$attskltmp>>_lvlst = <<$attskltmp>>_lvl
+					<<$attskltmp>>_mem = <<$attskltmp>>_exp
+					"
+				killvar 'degtmp' & killvar 'exptmp'
+				killvar 'degadj' & killvar 'expadj' & killvar '$attskltmp'
+				i += 1
+		if (x = 1 and i < arrsize ('$att_name')) or (x = 2 and i < arrsize ('$skl_name')): jump 'degloop_inner'
+		x += 1
+	if x < 3: jump 'degloop_outer'
+end
+
+!!Advancement Loop
+x = 1
+:advloop_outer
+	i = 0
+	:advloop_inner
+		expadj = func('_difficulty','getexpadj')
+		tl = 0
+		:trtadvloop
+			tltp = 0
+			:trtadvinsdlp
+				!!Note this loop is done with a flag set in the dynamic that is checked outside; this is because testing showed inconsistent results when jumping from inside the dynamic and with the whole loop in the dynamic.
+				dynamic "
+					if <<$traitattskl[tl]>>[0] > 0:
+						if <<$traitattskl[tl]>>[tltp + 1] = x and <<$traitattskl[tl]>>[tltp + 2] = i:
+							if <<$traitattskl[tl]>>[tltp + 3] ! 0: expadj += <<$traitattskl[tl]>>[tltp + 3]
+						end
+						if <<$traitattskl[tl]>>[tltp + 11] ! 0: insdlpflag = 1
+					end
+					"
+			if insdlpflag = 1: tltp += 10 & insdlpflag = 0 & jump 'trtadvinsdlp'
+			tl += 1
+		if tl < arrsize ('$traitattskl'): jump 'trtadvloop'
+		killvar 'tl' & killvar 'tltp' & killvar 'insdlpflag'
+
+		if x = 1:
+			$attskltmp = $att_name[i]
 		else
-			degtmp = 2 + <<$attskltmp>>_muta
+			$attskltmp = $skl_name[i]
 		end
 
-		degtmp = degadj * degtmp / 60
-		if degtmp < 2: degtmp = 2
+		dynamic "
+			if <<$attskltmp>>_lvl ! <<$attskltmp>>_lvlst: <<$attskltmp>>_lvl = <<$attskltmp>>_lvlst
+			if <<$attskltmp>>_lvl > 0: <<$attskltmp>>_xpprv = (expadj * 73 * (<<$attskltmp>>_lvl-1) * (<<$attskltmp>>_lvl-1) / 2730) + 1 else <<$attskltmp>>_xpprv = 0
+			<<$attskltmp>>_xpnxt = (expadj * 73 * <<$attskltmp>>_lvl * <<$attskltmp>>_lvl / 2730) + 1
 
-		if <<$attskltmp>>_exp < <<$attskltmp>>_mem: <<$attskltmp>>_exp = <<$attskltmp>>_mem
+			if <<$attskltmp>>_exp > <<$attskltmp>>_xpnxt: <<$attskltmp>>_lvl += 1
+			if <<$attskltmp>>_exp < <<$attskltmp>>_xpprv: <<$attskltmp>>_lvl -= 1
+			<<$attskltmp>>_lvlst = <<$attskltmp>>_lvl
 
-		if <<$attskltmp>>_exp = <<$attskltmp>>_mem:
-			<<$attskltmp>>_deg -= 1
-		else
-			<<$attskltmp>>_deg = degtmp
-		end
+			if <<$attskltmp>>_lvl / 5 > <<$attskltmp>>_flr: <<$attskltmp>>_flr = <<$attskltmp>>_lvl / 5
+			if <<$attskltmp>>_lvl > (100 + (<<$attskltmp>>_muta * 50)): <<$attskltmp>>_lvl = (100 + (<<$attskltmp>>_muta * 50))
 
-		if <<$attskltmp>>_deg <= 0 and <<$attskltmp>>_lvl > <<$attskltmp>>_flr:
-			exptmp = <<$attskltmp>>_exp - (expadj * 73*(<<$attskltmp>>_lvl - 1) * (<<$attskltmp>>_lvl - 1) / 2730)
-			if exptmp < 0: exptmp = 0
-			<<$attskltmp>>_lvl -= 1
-			<<$attskltmp>>_deg = degtmp
-			<<$attskltmp>>_exp = (expadj *73* (<<$attskltmp>>_lvl - 1) * (<<$attskltmp>>_lvl - 1) / 2730) + exptmp
-!!			This will only do anything if the PC builds exp well in excess of what is needed to level
-			if <<$attskltmp>>_exp > (expadj * 73*(<<$attskltmp>>_lvl) * (<<$attskltmp>>_lvl) / 2730): <<$attskltmp>>_exp -= (2 * <<$attskltmp>> - 1) / 10
-		end
-		<<$attskltmp>>_lvlst = <<$attskltmp>>_lvl
-		<<$attskltmp>>_mem = <<$attskltmp>>_exp
-		"
-	killvar 'degtmp' & killvar 'exptmp'
-	killvar 'degadj' & killvar 'expadj' & killvar '$attskltmp'
-	i += 1
-	if (x = 1 and i < arrsize ('$att_name')) or (x = 2 and i < arrsize ('$skl_name')): jump 'degloop'
-	i = 0 & x += 1
-	if x < 3: jump 'degloop'
-	killvar 'i' & killvar 'x'
-end
+			if <<$attskltmp>>_lvl > 0: <<$attskltmp>>_xpprv = (expadj * 73 * (<<$attskltmp>>_lvl-1) * (<<$attskltmp>>_lvl-1) / 2730) + 1 else <<$attskltmp>>_xpprv = 0
+			<<$attskltmp>>_xpnxt = (expadj * 73 * <<$attskltmp>>_lvl * <<$attskltmp>>_lvl / 2730) + 1
+			"
+		!! removed by rachels 17/10/23 to correct the "marksman" bug - belongs into preceding dynamic code
+		!!	if <<$attskltmp>>_exp > (expadj * (<<$attskltmp>>_lvl + 1) * (<<$attskltmp>>_lvl + 1) / 180) - 1:
+		!!		<<$attskltmp>>_exp = (expadj * (<<$attskltmp>>_lvl + 1) * (<<$attskltmp>>_lvl + 1) / 180) - 1
+		!!		<<$attskltmp>>_mem = <<$attskltmp>>_exp
+		!!	end
 
-!!Advancement Loop
-i = 0 & x = 1
-:advloop
-expadj = func('_difficulty','getexpadj')
-tl = 0
-:trtadvloop
-tltp = 0
-:trtadvinsdlp
-!!Note this loop is done with a flag set in the dynamic that is checked outside; this is because testing showed inconsistent results when jumping from inside the dynamic and with the whole loop in the dynamic.
-dynamic "
-	if <<$traitattskl[tl]>> > 0 and <<$traitattskl[tl]>>[tltp + 1] = x and <<$traitattskl[tl]>>[tltp + 2] = i and <<$traitattskl[tl]>>[tltp + 3] ! 0: expadj += <<$traitattskl[tl]>>[tltp + 3]
-	if <<$traitattskl[tl]>>[tltp + 11] ! 0: insdlpflag = 1
-	"
-if insdlpflag = 1: tltp += 10 & insdlpflag = 0 & jump 'trtadvinsdlp'
-tl += 1
-if tl < arrsize ('$traitattskl'): jump 'trtadvloop'
-killvar 'tl' & killvar 'tltp' & killvar 'insdlpflag'
-
-if x = 1:
-	$attskltmp = $att_name[i]
-else
-	$attskltmp = $skl_name[i]
-end
 
-dynamic "
-	if <<$attskltmp>>_lvl ! <<$attskltmp>>_lvlst: <<$attskltmp>>_lvl = <<$attskltmp>>_lvlst
-	if <<$attskltmp>>_lvl > 0: <<$attskltmp>>_xpprv = (expadj * 73 * (<<$attskltmp>>_lvl-1) * (<<$attskltmp>>_lvl-1) / 2730) + 1 else <<$attskltmp>>_xpprv = 0
-	<<$attskltmp>>_xpnxt = (expadj * 73 * <<$attskltmp>>_lvl * <<$attskltmp>>_lvl / 2730) + 1
-
-	if <<$attskltmp>>_exp > <<$attskltmp>>_xpnxt: <<$attskltmp>>_lvl += 1
-	if <<$attskltmp>>_exp < <<$attskltmp>>_xpprv: <<$attskltmp>>_lvl -= 1
-	<<$attskltmp>>_lvlst = <<$attskltmp>>_lvl
-
-	if <<$attskltmp>>_lvl / 5 > <<$attskltmp>>_flr: <<$attskltmp>>_flr = <<$attskltmp>>_lvl / 5
-	if <<$attskltmp>>_lvl > (100 + (<<$attskltmp>>_muta * 50)): <<$attskltmp>>_lvl = (100 + (<<$attskltmp>>_muta * 50))
-
-	if <<$attskltmp>>_lvl > 0: <<$attskltmp>>_xpprv = (expadj * 73 * (<<$attskltmp>>_lvl-1) * (<<$attskltmp>>_lvl-1) / 2730) + 1 else <<$attskltmp>>_xpprv = 0
-	<<$attskltmp>>_xpnxt = (expadj * 73 * <<$attskltmp>>_lvl * <<$attskltmp>>_lvl / 2730) + 1
-	"
-!! removed by rachels 17/10/23 to correct the "marksman" bug - belongs into preceding dynamic code
-!!	if <<$attskltmp>>_exp > (expadj * (<<$attskltmp>>_lvl + 1) * (<<$attskltmp>>_lvl + 1) / 180) - 1:
-!!		<<$attskltmp>>_exp = (expadj * (<<$attskltmp>>_lvl + 1) * (<<$attskltmp>>_lvl + 1) / 180) - 1
-!!		<<$attskltmp>>_mem = <<$attskltmp>>_exp
-!!	end
-
-
-killvar 'expadj' & killvar '$attskltmp'
-i += 1
-if (x = 1 and i < arrsize ('$att_name')) or (x = 2 and i < arrsize ('$skl_name')): jump 'advloop'
-i = 0 & x += 1
-if x < 3: jump 'advloop'
-killvar 'i' & killvar 'x'
+		killvar 'expadj' & killvar '$attskltmp'
+		i += 1
+	if (x = 1 and i < arrsize ('$att_name')) or (x = 2 and i < arrsize ('$skl_name')): jump 'advloop_inner'
+	x += 1
+if x < 3: jump 'advloop_outer'
+
+killvar 'i'
+killvar 'x'
 
 gs 'stat_sklattrib_lvlset'
 

+ 5 - 0
locations/therapist_hotel.qsrc

@@ -300,6 +300,11 @@ if $ARGS[0] = 'event3':
 		else
 			'You feel his eyes on you the entire time. "So, I have a friend in St. Petersberg, works in a clinic, that sells a cream that can make your breasts grow larger. I want you to go there and buy some and use it" he suggests. "It will help you relax and help you with that issue you told me about while you were under hypnosis a few weeks back" he lies and you nod your head. "If you think it will help." You tell him.'
 			if experimentQW['discovered'] < 2: experimentQW['discovered'] = 10
+			if experimentQW['times_participated_1'] > 0:
+				therapistQW['breast_cream'] = 3
+			else
+				therapistQW['breast_cream'] = 1
+			end
 		end
 
 		act 'Finish cleaning the room':

+ 5 - 4
locations/wakeup_events.qsrc

@@ -26,7 +26,7 @@ if $ARGS[0] = 'start' or $ARGS[0] = '':
 			$sleep_events[] = 'gs ''wakeup_events'', ''mother_sextalk'' '
 		end
 
-		if $experimentQW['trial_active'] ! '' and experimentQW['trial_duration'] > 0:
+		if $experimentQW['trial_active'] ! '' and experimentQW['trial_duration'] > 0 and daystart > experimentQW['event_day']:
 			$sleep_events_priority[] = 'gs ''wakeup_events'', ''experimental_trials'' '
 		end
 
@@ -90,7 +90,7 @@ if $ARGS[0] = 'event_handler':
 		end
 	end
 
-	gs 'wakeup_events', 'continue'
+	xgt 'wakeup_events', 'continue'
 end
 
 if $ARGS[0] = 'event_handler2':
@@ -109,7 +109,7 @@ if $ARGS[0] = 'event_handler2':
 	killvar 'temp_slev_id'
 	dynamic $temp_sleep_event_chosen
 
-	gs 'wakeup_events', 'event_end'
+	xgt 'wakeup_events', 'event_end'
 end
 
 
@@ -117,7 +117,7 @@ if $ARGS[0] = 'event_end':
 	killvar '$temp_sleep_event_chosen'
 
 	if arrsize('$sleep_events_priority') > 0:
-		gt 'wakeup_events', 'event_handler2', 'priority'
+		xgt 'wakeup_events', 'event_handler2', 'priority'
 	end
 
 	xgt 'wakeup_events', 'event_handler'
@@ -183,6 +183,7 @@ end
 
 
 if $ARGS[0] = 'marisha_ev_morning':
+	*clr
 	'<center><img src="images/characters/pavlovsk/resident/marisha/marisha.jpg"></center>'
 	'You wake up feeling relaxed then look over to see Marisha already up. She gives you a smile and says, "Thanks for everything <<$pcs_firstname>>. See you later." She then leaves as you continue getting up.'
 	MarishaQW['marisha_sleepover'] = 0