Procházet zdrojové kódy

Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife

Awesome před 6 měsíci
rodič
revize
e7b900314d

+ 1 - 0
glife.qproj

@@ -291,6 +291,7 @@
 		<Location name="intro_sg_select_custom"/>
 		<Location name="intro_city_select"/>
 		<Location name="intro_functions"/>
+		<Location name="stat_explanations"/>
 	</Folder>
 	<Folder name="NPCManage">
 		<Location name="npccleanc"/>

+ 236 - 22
locations/katja_nightclub.qsrc

@@ -9,6 +9,7 @@
 !! katjaQW['disco_loc'] = 6: Katja is dancing with two guys
 !! katjaQW['disco_loc'] = 7: Katja is in a VIP booth with a guy
 !! katjaQW['disco_loc'] = 8: Katja is in the restroom
+!! katjaQW['disco_loc'] = 9: Katja is in a VIP booth with two girls
 
 if $ARGS[0] = 'activity':
 	gs 'katja_meynold_schedule' 
@@ -60,13 +61,25 @@ if $ARGS[0] = 'activity':
 		elseif katjaQW['disco_loc'] = 2:
 			if katjaQW['disco_check_time'] + 15 < totminut:
 				katjaQW['disco_check_time'] = totminut
-					katjaQW['drinks'] += 1
+				katjaQW['drinks'] += 1
 				if rand(0,8) = 0:
 					katjaQW['disco_loc'] = 8
 				else
 					katjaQW['disco_loc'] = 1
 				end
 			end
+		elseif katjaQW['disco_loc'] = 7:
+			if katjaQW['disco_check_time'] + 60 < totminut:
+				katjaQW['disco_check_time'] = totminut
+				if rand(0,4) = 0:
+					katjaQW['disco_loc'] = 8
+				elseif rand(0,5) = 0:
+					katjaQW['disco_loc'] = 7
+					katjaQW['drinks'] += 1
+				else
+					katjaQW['disco_loc'] = 1
+				end
+			end
 		elseif katjaQW['disco_loc'] = 8:
 			if katjaQW['disco_check_time'] + 15 < totminut:
 				katjaQW['disco_check_time'] = totminut
@@ -76,13 +89,13 @@ if $ARGS[0] = 'activity':
 					katjaQW['disco_loc'] = 1
 				end
 			end
-		elseif katjaQW['disco_loc'] = 7:
+		elseif katjaQW['disco_loc'] = 9:
 			if katjaQW['disco_check_time'] + 60 < totminut:
 				katjaQW['disco_check_time'] = totminut
 				if rand(0,4) = 0:
 					katjaQW['disco_loc'] = 8
 				elseif rand(0,5) = 0:
-					katjaQW['disco_loc'] = 2
+					katjaQW['disco_loc'] = 9
 					katjaQW['drinks'] += 1
 				else
 					katjaQW['disco_loc'] = 1
@@ -343,8 +356,8 @@ if $ARGS[0] = 'dance':
 	gs 'exp_gain', 'danc', 1
 	frost = 0
 	gs 'stat'
-	temp_rand = rand(0,20)
-	if temp_rand = 1:
+	temp_rand = rand(1,20)
+	if temp_rand < 2:
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/disco_talking_on__dance_floor.jpg"></center>'
 		'A song that Katja loves comes on and she starts singing the lyrics as you join her.'
 		if katjaQW['drinks'] > 8:
@@ -354,7 +367,7 @@ if $ARGS[0] = 'dance':
 		else
 			'Katja clearly knows this song by heart, and sings it very well.'+iif(pcs_vokal > 50, ' Your singing skills mean you''re able to complement her perfectly.', ' You''re clearly not as good as her at singing.')
 		end
-	elseif temp_rand = 2:
+	elseif temp_rand = 3:
 		pcs_stam -= 10
 		gs 'sweat', 'add', 3
 		fat -= 1
@@ -366,8 +379,10 @@ if $ARGS[0] = 'dance':
 		elseif katjaQW['drinks'] > 4:
 			iif(alko > 4, 'You and Katja are drunkenly', 'Katja is drunkenly')+' bumping into other dancers, but they don''t seem to pay any notion to it.'
 		end
-	elseif temp_rand <= hotcat/2:
+	elseif temp_rand <= (hotcat+1)/2:
 		gt 'katja_nightclub', 'dance_two_guys1'
+	elseif temp_rand <= (2*hotcat+1)/3:
+		gt 'katja_nightclub', 'dance_two_girls1'
 	elseif temp_rand <= hotcat:
 		gt 'katja_nightclub', 'dance_guy1'
 	elseif temp_rand = 11 and func('katja_procedural', 'willing_to_be_naughty') > 30*(2 -npc_sex['A14']):
@@ -431,11 +446,11 @@ if $ARGS[0] = 'dance_end':
 				else
 					'"No. I really want a drink right now!" she insists, looking quite determined.'
 					if katjaQW['dom'] > 30:
-						gs 'willpower', '', 'force', 'hard'
+						gs 'willpower', 'drink', 'force', 'hard'
 					elseif katjaQW['dom'] < 0:
-						gs 'willpower', '', 'force', 'easy'
+						gs 'willpower', 'drink', 'force', 'easy'
 					else
-						gs 'willpower', '', 'force'
+						gs 'willpower', 'drink', 'force'
 					end
 					if will_cost <= pcs_willpwr:
 						act 'Convince her to keep dancing (<<will_cost>> Willpower)':
@@ -481,11 +496,11 @@ if $ARGS[0] = 'dance_end':
 				else
 					'"I really want to dance to this number, though! Come on, stay with me! Please?" she pleads.'
 					if katjaQW['dom'] > 30:
-						gs 'willpower', '', 'force', 'hard'
+						gs 'willpower', 'drink', 'force', 'hard'
 					elseif katjaQW['dom'] < 0:
-						gs 'willpower', '', 'force', 'easy'
+						gs 'willpower', 'drink', 'force', 'easy'
 					else
-						gs 'willpower', '', 'force'
+						gs 'willpower', 'drink', 'force'
 					end
 					if will_cost <= pcs_willpwr:
 						act 'Convince her to go to the bar (<<will_cost>> Willpower)':
@@ -980,11 +995,11 @@ if $ARGS[0] = 'bar_end':
 				else
 					'"I don''t want another drink, I want to dance!" she insists, looking quite determined.'
 					if katjaQW['dom'] > 30 or katjaQW['drinks'] < 4:
-						gs 'willpower', '', 'force', 'hard'
+						gs 'willpower', 'drink', 'force', 'hard'
 					elseif katjaQW['dom'] < 0 or katjaQW['drinks'] > 8:
-						gs 'willpower', '', 'force', 'easy'
+						gs 'willpower', 'drink', 'force', 'easy'
 					else
-						gs 'willpower', '', 'force'
+						gs 'willpower', 'drink', 'force'
 					end
 					if will_cost <= pcs_willpwr:
 						act 'Convince her to have another drink (<<will_cost>> Willpower)':
@@ -1197,11 +1212,11 @@ if $ARGS[0] = 'dance_guy3':
 							'"Come on, Katja. It''s going to be fun. He''s quite good-looking and '+iif(katjaQW['QWstage'] = 5, 'we talked about you trying to have sex with a guy,', 'I know you do like have a cock inside you,')+'" you whisper in her ear.'
 							'Her face turns red. "I don''t know... I''m not sure he''s right for us."'
 							if katjaQW['dom'] > 30:
-								gs 'willpower', '', 'force', 'hard'
+								gs 'willpower', 'sex', 'force', 'hard'
 							elseif katjaQW['dom'] < 0:
-								gs 'willpower', '', 'force', 'easy'
+								gs 'willpower', 'sex', 'force', 'easy'
 							else
-								gs 'willpower', '', 'force'
+								gs 'willpower', 'sex', 'force'
 							end
 							if will_cost <= pcs_willpwr:
 								act 'Push her a little more (<<will_cost>> Willpower)':
@@ -1437,11 +1452,11 @@ if $ARGS[0] = 'dance_two_guys3':
 						'"Come on, it''ll be fun! They look hot and '+iif(katjaQW['simultanous_boys'] <2, ' if you''ve never been with two guys, then you should defiantly try it.', 'I know you like to have several cocks to play with.')+'" you whisper in her ear.'
 						'Her face turns red. "I don''t know. I''m not sure '+iif(katjaQW['simultanous_boys'] <2, 'it''s the right time to try a foursome', 'they''re right for us')+'..."'
 						if katjaQW['dom'] > 30:
-							gs 'willpower', '', 'force', 'hard'
+							gs 'willpower', 'group', 'force', 'hard'
 						elseif katjaQW['dom'] < 0:
-							gs 'willpower', '', 'force', 'easy'
+							gs 'willpower', 'group', 'force', 'easy'
 						else
-							gs 'willpower', '', 'force'
+							gs 'willpower', 'group', 'force'
 						end
 						if will_cost <= pcs_willpwr:
 							act 'Push her a little more (<<will_cost>> Willpower)':
@@ -1611,5 +1626,204 @@ if $ARGS[0] = 'dance_two_guys3':
 	end
 end
 
+if $ARGS[0] = 'dance_two_girls1':
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/disco_dancing2.jpg"></center>'
+	'Two girls approach you and Katja and it''s clear that they want to join you. They''re pretty hot wearing very sexy dresses.'
+	act 'Let them join you': gt 'katja_nightclub', 'dance_two_girls2'
+	act 'Don''t let them join':
+		cla
+		'You make sure to let them know that you don''t want them to join you before you and Katja continue dancing alone, having a lot of fun.'
+		gs 'katja_nightclub', 'dance_end'
+	end
+end
+
+if $ARGS[0] = 'dance_two_girls2':
+	if hotcat < rand(5,12):
+		minut += 15
+		pcs_stam -= 5
+		gs 'sweat', 'add', 3
+		fat -= 1
+		gs 'exp_gain', 'danc', 1
+		frost = 0
+		gs 'stat'
+		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/disco_dancing_extra_girl.jpg"></center>'
+		'You dance through several songs, and while they''re '+iif(rand(0,1) = 0, 'fantastic', 'okay')+' dancers, they don''t try anything else than dancing.'
+		'After some time, they thank you for the dance and excuse themselves.'
+		'"That was fun," Katja says with a smile.'
+		gs 'katja_nightclub', 'dance_end'
+	else
+		gt 'katja_nightclub', 'dance_two_girls3'
+	end
+end
+
+if $ARGS[0] = 'dance_two_girls3':
+	minut += 15
+	pcs_stam -= 5
+	gs 'sweat', 'add', 3
+	fat -= 1
+	gs 'exp_gain', 'danc', 1
+	frost = 0
+	gs 'arousal', 'foreplay', rand(-5,0) 
+	katjaQW['horny'] += rand(0,10)
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/disco_dancing_extra_girl.jpg"></center>'
+	'You dance through several songs and they start to dance closer and closer to you and Katja, form time to time one of the girls will grind her butt at you.'
+	if hotcat < rand(0,12):
+		gs 'arousal', 'end'
+		gs 'stat'
+		'After some time, they thanks you for the dance and excuses themself, but tanks you for the dance at tell '+iif(pcs_danc < rand(50,75), 'That you are a great dancer and it was a pleasure', 'it was fun')+' dancing you you before they leave.' 
+		'"That was fun," Katja says with a smile.'
+		gs 'katja_nightclub', 'dance_end'
+	else
+		gs 'stat'
+		if rand(0,3) = 0:
+			'"This is great," the girl danicning with you in this moment says after you''ve danced for a while. "Let''s keep dancing," she says.'
+			'You look over at Katja and the other girl, and it seems that they''re also ready to dance some more.'  
+			act 'Keep dancing with them': gt 'katja_nightclub', 'dance_two_guys3'
+			act 'Find something else to do':
+				cla
+				gs 'arousal', 'end'
+				gs 'stat'
+				'"Thanks, but no thanks. We need to get going," you say and look at Katja, who seems to be fine with the idea. The girls look a little disappointed with your reply, but they don''t try to keep you.'
+				gs 'katja_nightclub', 'dance_end'
+			end
+		else
+			'After some time, when there is a break in the song, one of the girls suggest that you go to the private room to have some drinks.'
+
+			if katjaQW['sex_clossedness'] > 0 or func('katja_procedural', 'willing_to_be_naughty') + katjaQW['horny'] < rand (25,75):
+				*p '"No. We prefer to stay here and dance," Katja quickly replies quickly which makes the girls seem a little surprised. '
+				if npc_sex['A14'] > 0:
+					if katjaQW['simultanous_girls'] < 2:
+						'She then leans into you and whispers in your ear. "While the might just want to drink they might want to do more, and I''ve never been with several girls at once..."'
+					else
+						''
+					end
+					act 'Try to convince her to go with them':
+						*clr & cla
+						'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+						'"Come on, it''ll be fun! I was fun dancing with them so I''m sure it will be fun getting to know them a little better. '+iif(katjaQW['simultanous_boys'] <2, 'Also you should try more than one girl at some point so know might be a good time if that is what they want.', ' It might just be completely innocent drinking.')+'" you whisper in her ear.'
+						'Her she still seems a little skeptical. "I don''t know, I''m not really thisty and just wanna keep dancing." She replies'
+						if katjaQW['dom'] > 30:
+							gs 'willpower', 'group', 'force', 'hard'
+						elseif katjaQW['dom'] < 0:
+							gs 'willpower', 'group', 'force', 'easy'
+						else
+							gs 'willpower', 'group', 'force'
+						end
+						if will_cost <= pcs_willpwr:
+							act 'Push her a little more (<<will_cost>> Willpower)':
+								cla
+								gs 'npc_relationship', 'modify', 'A14', 'dislike'
+								gs 'willpower', 'pay', 'force'
+								katjaQW['dom'] -= rand(1,2)
+								katjaQW['horny'] += 10
+								gs 'stat'
+								minut += 10
+								'"Come on. I''m thirsty, so do that for mee please." you whisper in her ear pleadingly.'
+								'"Okay. Let''s go get that drink," she finally says out loud and the girls look happy.'
+								act 'Go to the private room': gt 'katja_nightclub_sex', 'privateroom_two_girls'
+							end
+						else
+							act 'Push her a little more (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+						end
+						act 'Let it go':
+							cla
+							katjaQW['dom'] += rand(2,3)
+							gs 'arousal', 'end'
+							gs 'stat'
+							'You resign yourself and accept Katja''s decision. "Sorry, but my friend is not thirsty, so we''re staying here to dance," you tell them and they say goodbye before walking away.' 
+							gs 'katja_nightclub', 'dance_end'
+						end
+					end
+				end
+
+				!! Create a linebreak which the *p purposefully did not create.
+				*nl
+
+				act 'Agree and say goodbye to them':
+					cla
+					gs 'arousal', 'end'
+					gs 'stat'
+					*nl
+					'You agree with Katja and say goodbye to the girls.'
+					gs 'katja_nightclub', 'dance_end'
+				end
+			else
+				if (func('katja_procedural', 'willing_to_be_naughty') >= 50 and katjaQW['horny'] >= 25 and katjaQW['dom'] >= 0) or (katjaQW['dom'] >= 25 and func('katja_procedural', 'willing_to_be_naughty') + katjaQW['horny'] >= 100):
+					'"That sounds like a good idea. I''m also getting thirsty," Katja says before you even have time to reply.'
+					act 'Agree to have a drink':
+						cla
+						minut += 10
+						'"Me too, lead the way" you say to the girls'
+						act 'Go to the private room': gt 'katja_nightclub_sex', 'privateroom_two_girls'
+					end
+					act 'You don''t have a drink':
+						*clr & cla
+						'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
+						'You lean into Katja and whisper in her ear. "I''m not thirsty. Let''s stay here dancing"'
+						'"I''m actually thirsty, and I would like to to know these girls a little better. '+iif(npc_sex['A14'] > 0 and katjaQW['simultanous_girls'] > 1,  'They are actually quite hot don''t you think?', 'I think it will be fun.')+'" she whispers back.'
+						if katjaQW['dom'] > 30:
+							gs 'willpower', 'sex', 'force', 'hard'
+						elseif katjaQW['dom'] < 0:
+							gs 'willpower', 'sex', 'force', 'easy'
+						else
+							gs 'willpower', 'sex', 'force'
+						end
+						if will_cost <= pcs_willpwr:
+							act 'Convince her not to go drinking with them (<<will_cost>> Willpower)':
+								cla
+								gs 'npc_relationship', 'modify', 'A14', 'dislike'
+								gs 'willpower', 'pay', 'force'
+								katjaQW['dom'] -= rand(1,2)
+								gs 'stat'										
+								'"I really don''t wanna go drinking with them. I get bad vibes. Like if we where going to go drinking with BELLA, Irena, Staysya nad Chtistina at the same time" you whisper.'
+								'Katja looks at the girls you were dancing with again and after a moment of thinking, she relents. "I don''t really get that feeling but if you want to stay we will stay," she answers.'
+								'She then turns to them. "Sorry, but my friend '+iif(func('katja_procedural', 'willing_to_be_naughty') + katjaQW['horny'] > 175, 'is boring', 'isn''t thirsty')+', so I''ll stay with her. Maybe another time?"'
+								'The two girls then leave heading for one of the private rooms.'
+								gs 'katja_nightclub', 'dance_end'
+							end
+						else
+							act 'Convince her not to go drinking with them (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+						end
+						act 'Relent and go with them':
+							cla
+							minut += 10
+							katjaQW['dom'] += rand(1,2)
+							'"Well, if you really want to," you say, and the girsl start leading you from the dance floor.'
+							act 'Go to the private room': gt 'katja_nightclub_sex', 'privateroom_two_girls'
+						end
+						if katjaQW['relationship_talk'] = 1 and katjaQW['faithful'] = 0:
+							act 'Let her go wihtout you':
+								'"You can go with them if you want, but I''m staying here," you shrug.'
+								katjaQW['nightclub_private_room_girls'] = 1
+								katjaQW['disco_loc'] = 9
+								katjaQW['disco_check_time'] = totminut
+								'She looks at you a little skeptical, but then turns to the men. "My friend '+iif(func('katja_procedural', 'willing_to_be_naughty') + katjaQW['horny'] > 175, 'is boring', 'isn''t thirsty')+', so she isn''t coming, but I''d love a  drink with you."'
+								'They all then leaves the dance floor for the private rooms, leaving you alone.'
+								act 'Continue': gt 'city_nightclub', 'dance'
+							end
+						end
+					end
+				else
+					'Katja looks at you, making it clear that it''s up to you to decide and that she''ll do whatever you choose.'
+					act 'Go drinking with the girls':
+						cla
+						minut += 10
+						'"That does sound like fun. Let''s go have some drinks," you say and the girls start to lead you towards the private rooms.'
+						act 'Go to the private room': gt 'katja_nightclub_sex', 'privateroom_two_girls'
+					end
+					act 'No thanks':
+						cla
+						gs 'arousal', 'end'
+						gs 'stat'
+						'"Thanks, but no thanks," you say. "We aren''t thirsty and prefer to stay here and dance."'
+						'The girls then say goodbye before walking towards the private rooms leaving you and Katja alone on the dance floor.'
+						gs 'katja_nightclub', 'dance_end'
+					end
+				end
+			end
+		end
+	end
+end
+
 --- katja_nightclub ---------------------------------
 

+ 437 - 17
locations/katja_nightclub_sex.qsrc

@@ -144,21 +144,20 @@ if $ARGS[0] = 'private_room1':
 							end
 							gs 'willpower', 'pay', 'force'
 							gs 'drugs', 'cocaine', 1
-							gs 'stat'
 							gs 'katja_procedural', 'take_cocaine'
-							gs 'stat'
+							gs 'stat'										
 							'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/dorm/joint_coke.jpg"></center>'
-							'"Come on, let''s do it together," you say as you take the tube from <<$npc_nickname[$npclastgenerated]>>.'
-							'She still looks skeptical. "I don''t know, <<$pcs_nickname>>... I''m not sure it''s a good idea," she replies.'
-							'"You liked it last time! It''ll be fine this time too," you continue.'
-							'"I''m not sure. '+iif(katjaQW['coke_stage'] = 2, 'I don''t want it to become a habit', 'I think one time was enough for me')+'," she says.' 
-							'"Don''t be such a bore! You know you''ll love it," you say.'
-							'She finally relents. "Fine, let''s do it."'
+							'"Come on, Katja. Let''s do it together," you say as you take the tube from <<$npc_nickname[$npclastgenerated]>>.'
+							'She still looks skeptical. "I don''t know, <<$pcs_nickname>>. I''m not sure it''s a good idea," she replies.'
+							'"You liked it last time! it will be fine this time, too," you continue.'
+							'"I''m not sure. '+iif(katjaQW['coke_stage'] = 2, 'I don''t want it to become a habit', 'I think the last time was enough for me')+'" she says.' 
+							'"Don''t be such a bore. You know you will love it," you say.'
+							'Katja finally relents. "OK. Let''s do it, together," she says.'
 							*nl
-							'<<$npc_nickname[$npclastgenerated]>> has already produced another tube and hands it to Katja, who takes it with unsteady hands before you both lower your heads to the table.'
-							'You sniff your lines at the same time. Katja '+iif(katjaQW['coke_stage'] = 2, 'has gotten used to it and it doesn''t itch her nostrils anymore.', 'is still getting itching nostrils and has to concentrate on not sneezing.')
+							'<<$npc_nickname[$npclastgenerated]>> has already produced another tube and hands it to Katja, who takes it with unsteady hands. You both lover your heads to the table.'
+							'Then at the same time, you sniff your lines. Katja '+iif(katjaQW['coke_stage'] = 2, 'has gotten used to it and it doesn''t itch her nostrils anymore.', 'is still getting itching nostrils and has to concentrate on not sneezing.')
 							*nl
-							'After a moment, it hits you both. You feel wonderful while Katja just sits there with wide-open eyes before she starts giggling, which turns into a laugh that lasts for some time.'
+							'After a moment, it hits you both. You feel wonderful while Katja just sits there with wide-open eyes. Then she starts giggling, which turns into a laugh that lasts for some time.'
 							act 'Continue talking': gt 'katja_nightclub_sex', 'private_room2', 3
 						end
 					else
@@ -378,6 +377,8 @@ if $ARGS[0] = 'private_room2':
 			if katjaQW['faithful'] = 0:
 				act 'Have sex with <<$npc_nickname[$npclastgenerated]>> without Katja': 
 					cla
+					katjaQW['disco_check_time'] = totminut
+					katjaQW['disco_loc'] = 1
 					'You accept his touch and place your hand on his thighs, moving it slowly towards his crotch. "Mmm. this is something I''m going to enjoy," you say as your hand reaches his cock.'
 					'"What are you doing, <<$pcs_nickname>>?" Katja asks while getting flustered. You just ignore her and continue to stroke <<$npc_nickname[$npclastgenerated]>>''s now hard cock through his pants.'
 					'He takes your groping as approval and starts pawing at your <<$pcs_desc[''breast'']>> breasts. You''re so into it, that you don''t even notice Katja get up and leave.'
@@ -401,10 +402,12 @@ if $ARGS[0] = 'private_room2':
 				act 'Convince Katja to stop (<<will_cost>> Willpower)':
 					cla
 					gs 'willpower', 'pay', 'force'
-					'"Stop teasing the poor guy, Katja! You''re making him think that he''s anywhere close to our standard," you say out loud to make sure that he hears you.'
-					'Katja looks at you a little puzzled, but then smiles and condescendingly pats his crotch. "You''re right. This isn''t going to satisfy us," she says and stands up before holding out her hand to you.'
-					'You take it and stand up, leaving guy behind looking completely confused and very frustrated.'
-					'When you get closer to the dance floor, Katja whispers in your ear. "I thought we would get a nice hard pounding in there, so you owe me an orgasm. But for now, let''s dance."'
+					'"Come on, Katja. Stop teasing the poor guy. You''re making him think that he''s anywhere close to our standard," you say out loud to make sure that he heard you.'
+					'Katja looks at you a little puzzled, but then smiles and condescendingly pats his crotch. "You''re right. This here isn''t going to be able to satisfy us," she says and she stands up before holding out her hand to you.'
+					'You take it and stand up, leaving the booth with the guy looking completely confused and very frustrated.'
+					if npc_sex['A14'] > 0:
+						'When you get closer to the dance floor, Katja whispers to you, "You owe me a big orgasm tonight. I thought we would get a nice hard pounding in there. But for now, let''s dance."'
+					end
 					act 'Follow Katja to the dance floor': gt 'katja_nightclub', 'dance'
 				end
 			else
@@ -413,6 +416,7 @@ if $ARGS[0] = 'private_room2':
 			if katjaQW['faithful'] = 0:
 				act 'Give them some privacy':
 					cla
+					katjaQW['disco_check_time'] = totminut
 					katjaQW['disco_loc'] = 7
 					gs 'katja_procedural', 'sex_set', 1
 					'You slowly get up to leave. "Have fun. Find me once you''re finished here."'
@@ -425,8 +429,11 @@ end
 
 if $ARGS[0] = 'private_booth_FFM':
 	menu_off = 1	
-	if npc_sex['A14'] = 0:
+	if npc_sex['A14'] = 0 and katjaQW['first_time_in_nightclub'] = 0:
 		katjaQW['first_time_in_nightclub'] = 1
+		katjaQW['knows_cuni'] = 1
+		katjaQW['knows_BJ'] = 1
+		katjaQW['knows_sex'] = 1
 		katjaQW['slut'] += 5
 		girl += 1
 		gs 'npc_relationship', 'modify', 'A14', 'adore'	
@@ -471,7 +478,7 @@ if $ARGS[0] = 'private_booth_FFM':
 			end
 			if KatjaQW['horny'] >= 100:
 				katjaQW['horny'] -= 100
-				if npc_sex['A14'] = 0:
+				if npc_sex['A14'] = 0 and katjaQW['first_time_in_nightclub'] < 2:
 					katjaQW['first_time_in_nightclub'] = 2
 					gs 'npc_relationship', 'modify', 'A14', 'adore'	
 				end
@@ -1183,5 +1190,418 @@ if $ARGS[0] = 'cheating_conversation':
 	end
 end
 
+if $ARGS[0] = 'privateroom_two_girls':
+	menu_off = 1
+	minut += 10
+	gs 'npcgeneratec', 1, '', rand(18,35), rand(2,4)
+	gs 'boystat', $npclastgenerated, 'a'
+	gs 'npcgeneratec', 1, '', rand(18,35), rand(2,4)
+	gs 'boystat', $npclastgenerated, 'b'
+	gs 'stat'
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/private_room_with_two_girls.jpg"></center>'
+	'You leave the dance floor and head for the private rooms upstairs. One of the girls talks with a bouncer and a waiter soon arrives and shows you into one of the rooms.'
+	'Once you''re seated, the waiter asks for your orders.'
+	$loc = 'katja_nightclub_sex'
+	$loc_arg = 'privateroom_two_girls_after_drinks'
+	gs 'food_menu', 'city_nightclub_only_cost'
+end
+
+if $ARGS[0] = 'privateroom_two_girls_after_drinks':
+	$loc = 'city_nightclub'
+	$loc_arg = 'bar'
+	$menu_loc = 'city_nightclub'
+	$menu_arg = 'bar'
+	menu_off = 1
+	minut += 15
+	gs 'stat'
+	katjaQW['drinks'] += rand(1,2)
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/private_room_with_two_girls.jpg"></center>'
+	if npc_rounds = 0:
+		'You get acquainted with the girls, who introduce themselves as <<$npc_nickname[$boy1]>> and <<$npc_nickname[$boy2]>>.'
+	end
+	'The drinks arrive and you sit at the small table chatting with <<$npc_nickname[$boy1]>>, while Katja and <<$npc_nickname[$boy2]>> occupy the couch.'
+	if hotcat + npc_horny[$npclastgenerated]/10 + npc_rounds < rand(6,16):
+		if rand(0,3)=0:
+			'Your drinks are soon finished. "It was nice talking with you, but we need to be going," <<npc_nickname[$boy1]>> says as she gets up and leaves with <<$npc_nickname[$boy2]>>.'
+			'Katja then suggests that you go dancing and you follow her to the dance floor.'
+			killvar 'npc_rounds'
+			act 'Go to the dance floor': gt 'katja_nightclub', 'dance'
+		else
+			'When your drinks are empty, <<$npc_nickname[$boy1]>> suggests you have another one.'
+			act 'Order another drink':
+				cla
+				npc_rounds +=1
+				'You look at Katja, who nods, and agree to order anther round.'
+				$loc = 'katja_nightclub_sex'
+				$loc_arg = 'privateroom_two_girls_after_drinks'
+				gs 'food_menu', 'city_nightclub_only_cost'			
+			end
+			act 'Say goodbye and go to the dance floor':
+				cla
+				killvar 'npc_rounds'
+				'You tell them that you want to go dancing and Katja agrees, so you say your goodbyes and head for the dance floor with Katja.'
+				act 'Go to the dance floor': gt 'katja_nightclub', 'dance'
+			end
+		end
+	else
+		'<<$npc_nickname[$boy1]>> is flirting with you and her hand occasionally touches your thigh.'
+		'"It''s getting pretty hot in here," she says as she finishes her drink. "I think we need to lose some clothes." Her look clearly states that a lot more touching is going to happen...'
+		if (npc_sex['A14'] = 0 and katjaQW['liberated'] = 0) or (katjaQW['simultanous_girls'] = 0 and npc_sex['A14'] = 0 and katjaQW['liberated'] = 1) or katjaQW['sex_clossedness'] = 2 or func('katja_procedural', 'willing_to_be_naughty') + katjaQW['horny'] < rand (50,125):
+			'You look at Katja and it''s clear that she''s not interested in going further with <<$npc_nickname[$boy1]>> and <<$npc_nickname[$boy2]>>.'
+			act 'Tell them that you and Katja want to go dancing':
+				cla
+				killvar 'npc_rounds'
+				'You tell them that you want to go dancing and Katja agrees. <<$npc_nickname[$boy1]>> and <<$npc_nickname[$boy2]>> look very disapointed as you say your goodbyes and head for the dance floor with Katja.'
+				act 'Go to the dance floor': gt 'katja_nightclub', 'dance'
+			end
+			if npc_sex['A14'] > 0 and katjaQW['sex_clossedness'] < 2:
+				if func('katja_procedural', 'willing_to_be_naughty') + katjaQW['horny'] > 100:
+					gs 'willpower', 'sex', 'force', 'easy'
+				else
+					gs 'willpower', 'sex', 'force'
+				end
+				if will_cost <= pcs_willpwr:
+					act 'Convince Katja to have sex with <<$npc_nickname[$boy1]>> and <<$npc_nickname[$boy2]>> (<<will_cost>> Willpower)':
+						cla
+						gs 'willpower', 'pay', 'force'
+						gs 'stat'			
+						'"Come on Katja, I''m sure these beautiful girls will look and feel even better without clothes on. '+iif(katjaQW['simultanous_girls'] < 3, 'It''s time that you expanded your horizon.', 'You''ve enjoyed several girls before.')+', It will be fun," you say as you let your hand glide down <<$npc_nickname[$boy1]>>''s body.'
+						'Katja squirms as her face turns very red. "You''re right, <<$pcs_nickname>>. It is too warm, so let''s get rid of these clothes..." she says in a seductive voice.'
+						act 'Have a foursome': gt 'katja_nightclub_sex', 'private_booth_FFFF'
+					end
+				else
+					act 'Convince Katja to have sex with <<$npc_nickname[$boy1]>> and <<$npc_nickname[$boy2]>> (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+				end
+			end
+			!!if katjaQW['faithful'] = 0:
+			!!	act 'Have sex with <<$npc_nickname[$boy1]>> and <<$npc_nickname[$boy2]>> without Katja': 
+			!!		cla
+			!!		act 'Have sex with <<$npc_nickname[$boy1]>> and <<$npc_nickname[$boy2]>>': 
+			!!	end
+			!!end
+		else
+			'You look at Katja, who''s clearly excited at the prospect of having sex with <<$npc_nickname[$boy1]>> and <<$npc_nickname[$boy2]>>.'
+			'"You''re right, <<$pcs_nickname>>. It is too warm, so let''s get rid of these clothes..." she says in a seductive voice while looking at you for your reaction.'
+			act 'Join Katja and have a foursome': gt 'katja_nightclub_sex', 'private_booth_FFFF'
+			if func('katja_procedural', 'willing_to_be_naughty') + katjaQW['horny'] > 200:
+				gs 'willpower', 'sex', 'force', 'hard'
+			elseif func('katja_procedural', 'willing_to_be_naughty') + katjaQW['horny'] > 100:
+				gs 'willpower', 'sex', 'force'
+			else
+				gs 'willpower', 'sex', 'force', 'easy'
+			end
+			if will_cost <= pcs_willpwr:
+				act 'Convince Katja to stop (<<will_cost>> Willpower)':
+					cla
+					gs 'willpower', 'pay', 'force'
+					killvar 'npc_rounds'
+					'"Come on Katja, we need to back to the dance floor. Don''t let the alcohol determine your actions," you tell her.'
+					'Katja looks at you a little puzzled, but smiles and gets up. "You''re right. We should get back to the dance floor," she says as she walks over to you and holds out her hand.'
+					'You take it and stand up before saying goodbye to <<$npc_nickname[$boy1]>> and <<$npc_nickname[$boy2]>> and leaving the booth, with the two girls looking very disappointed.'
+					if npc_sex['A14'] > 0:
+						'When you get closer to the dance floor, Katja leans into your ear. "You owe me a big orgasm tonight," she whispers. "It would have been fun playing around with those hot girls. But for now, let''s dance."'
+					end
+					act 'Follow Katja to the dance floor': gt 'katja_nightclub', 'dance'
+				end
+			else
+				act 'Convince Katja to stop (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+			end
+			if katjaQW['faithful'] = 0:
+				act 'Give them some privacy':
+					cla
+					killvar 'npc_rounds'
+					katjaQW['disco_check_time'] = totminut
+					katjaQW['disco_loc'] = 7
+					gs 'katja_procedural', 'sex_set', 0, 2
+					'You slowly get up. "Have fun. You can try to find me after you''ve finished here," you say to Katja as you leave.'
+					act 'Leave': gt 'city_nightclub', 'private_rooms'
+				end
+			end
+		end
+	end
+end
+
+if $ARGS[0] = 'private_booth_FFFF':
+	gs 'arousal', 'foreplay', 3, 'group', 'lesbian'
+	katjaQw['horny'] += rand(5,15)
+	if katjaQW['simultanous_girls'] < 3: katjaQW['simultanous_girls'] = 3
+	if npc_sex['A14'] = 0 and katjaQW['first_time_in_nightclub'] = 0:
+		katjaQW['knows_cuni'] = 1
+		katjaQW['first_time_in_nightclub'] = 3
+		katjaQW['slut'] += 5
+		girl += 1
+		gs 'npc_relationship', 'modify', 'A14', 'adore'	
+	end
+	gs 'stat'
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/sex/two_girls_private1.jpg"></center>'
+	if $pantyworntype = 'none':
+		'You slowly and sensually strip naked. <<$npc_nickname[$boy1]>> has stripped down to her underwear and gently starts exploring your <<$pc_descWordy[''breast'']>> with her hands.'
+	else
+		if $braworntype = 'none':
+			'You slowly and sensually strip down to your panties. <<$npc_nickname[$boy1]>> has stripped down to her underwear and gently starts exploring your <<$pc_descWordy[''breast'']>> with her hands.'
+		else
+			'You slowly and sensually strip down to your underwear. <<$npc_nickname[$boy1]>> has done the same and gently removes your bra before she starts exploring your <<$pc_descWordy[''breast'']>> with her hands.'
+		end
+	end
+	*nl
+	'You look over at Katja and <<$npc_nickname[$boy2]>> and see that Katja have also stripped down to her underwear.'
+	'She lies with her head in <<$npc_nickname[$boy2]>>''s lap, sucking on her breast while <<$npc_nickname[$boy2]>> has her hand down Katja''s panties, playing with her pussy.'
+	'"Why don''t we join them?" <<$npc_nickname[$boy1]>> suggests.'
+	act 'Join them':
+		*clr & cla
+		gs 'arousal', 'foreplay_give', 2, 'group', 'lesbian'
+		gs 'arousal', 'kiss', -2, 'group', 'lesbian'
+		gs 'stat'
+		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/sex/two_girls_private2.jpg"></center>'
+		'You walk over to Katja and <<$npc_nickname[$boy2]>> as <<$npc_nickname[$boy1]>> gets down on her knees and removes Katja''s head from <<$npc_nickname[$boy2]>>''s breast and starts to kiss her.'
+		'You follow and bend down to make out with <<$npc_nickname[$boy2]>> and fondle her breast.'
+		act 'Get into it':
+			*clr & cla
+			gs 'arousal', 'foreplay_give', 2, 'group', 'lesbian'
+			gs 'stat'
+			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/sex/two_girls_private3.jpg"></center>'
+			'You stop kissing <<$npc_nickname[$boy2]>> and move your head down to suck on her breast.'
+			'You see that <<$npc_nickname[$boy1]>> has moved her head to Katja''s crotch and started to lick her pussy, while Katja is removing <<$npc_nickname[$boy1]>>''s bra.' 
+			act 'See what <<$npc_nickname[$boy1]>> does':
+				*clr & cla
+				gs 'arousal', 'foreplay_give', 2, 'group', 'lesbian'
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/sex/two_girls_private4.jpg"></center>'
+				' <<$npc_nickname[$boy1]>> moves away from and Katja and looks for something in her purse.'
+				'While she''s doing this, '+iif($pantyworntype = 'none', 'you remove your panties and', ' ')+' <<$npc_nickname[$boy2]>> removes Katja''s bra.'
+				*nl		
+				'You play with Katja''s breast until <<$npc_nickname[$boy1]>> comes back holding a medium sized vibrator, clearly intending on stuffing it in Katja''s '+iif(npc_vag['A14'] <10, 'tight', 'well used')+' pussy.'
+				if npc_vag['A14'] = 0:
+					'Katja sees the vibrator and understands the intention. You can see the panic in her eyes. "No! I''m sorry, but I don''t want that in me!" she quickly blurts out.'
+					'"Okay. Then I''ll just have to use my tongue," <<$npc_nickname[$boy1]>> says a little disappointed.'
+					act 'Get Katja off':
+						*clr & cla
+						gs 'arousal', 'foreplay_give', 5, 'group', 'lesbian'
+						katjaQW['horny'] = 0
+						gs 'stat'
+						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/sex/two_girls_private5a.jpg"></center>'
+						'<<$npc_nickname[$boy1]>> puts the vibrator away and get her face down in Katja''s crotch to start eating her out.'
+						'You and <<$npc_nickname[$boy2]>> continue to play with Katja''s breast, but it gets harder as Katja starts to move around as she approaches an orgasm.'
+						*nl
+						'<<$npc_nickname[$boy1]>> really know how to use her tongue, and after a few minutes, Katja cums hard.'
+						act 'Your turn': gt 'katja_nightclub_sex', 'private_booth_FFFF_you'
+					end
+				else
+					if npc_vag['A14'] < 10:
+						'Katja sees the vibrator and understands the intention, but you can see that she''s a little nervous. "That''s big! I''m not used to such huge things in my pussy. Please be careful."'
+						'"Of course. I promise you that you won''t feel any pain," <<$npc_nickname[$boy1]>> says and licks the vibrator some more so it''s very wet.'
+					else
+						'When Katja sees the vibrator, her eyes light up. "That looks good. '+iif(katjaQW['slul'] < 100, 'I want you to fuck me with it', 'ram it into my wet cunt')+'."'
+						'"My pleasure. I promise that you''ll get the fucking you deserve," <<$npc_nickname[$boy1]>> says and licks the vibrator one more time.'
+					end
+					act 'Katja gets fucked':
+						*clr & cla
+						gs 'arousal', 'foreplay_give', 3, 'group', 'lesbian'
+						katjaQW['horny'] = 0
+						katjaQW['slut'] += 4
+						gs 'stat'
+						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/sex/two_girls_private5b.jpg"></center>'
+						'<<$npc_nickname[$boy1]>> stuffs the vibrator into Katja''s pussy and starts moving it in and out, occasionally getting down and using her tongue on Katja''s clit.'
+						'You and <<$npc_nickname[$boy2]>> continue to play with Katja''s breast, but it gets harder as Katja starts thrashing about as she approaches an orgasm.'
+						'<<$npc_nickname[$boy1]>> really knows how to use the vibrator, and after a few minutes, Katja cums hard with a huge scream.'
+						act 'Your turn': gt 'katja_nightclub_sex', 'private_booth_FFFF_you'
+					end
+				end
+			end
+		end
+	end
+end
+
+if $ARGS[0] = 'private_booth_FFFF_you':
+	gs 'arousal', 'vaginal_finger', 2, 'group', 'lesbian'
+	gs 'arousal', 'anal_finger', -2, 'group', 'lesbian'
+	gs 'arousal', 'foreplay_give', -2, 'group', 'lesbian'
+	katjaQw['horny'] += rand(5,15)
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/sex/two_girls_private6.jpg"></center>'
+	'"Your turn," <<$npc_nickname[$boy1]>> says after Katja finally comes down from her orgasm. She gets up and you crawl up on the couch on all fours.'
+	'<<$npc_nickname[$boy2]>> gets in front of you and you take her breast into your mouth once again while Katja and <<$npc_nickname[$boy1]>> play with your ass.'
+	'You feel several fingers probing both your pussy and your asshole when one of them suddenly disappears from behind you.'
+	gs 'stat'
+	*nl
+	'Shortly after, <<$npc_nickname[$boy1]>> shows you a giant black dildo. "This is going to go in your ass."'
+	act 'Accept the giant dildo in your ass':
+		*clr & cla		
+		gs 'boystat', 'D7', 'c'
+		gs 'arousal', 'vaginal_finger', 3, 'group', 'lesbian'
+		gs 'arousal', 'clit_finger', -3, 'group', 'lesbian'
+		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/sex/two_girls_private7.jpg"></center>'
+		if auto_anal_lube = 1:
+			if 3*dick3 < 4*pcs_ass:
+				if mc_inventory['lubricant'] > 0:
+					mc_inventory['lubricant'] -= 1
+					'"The lube is in my purse..." you smirk as you lift your ass into the air.'
+					'<<$npc_nickname[$boy1]>> finds your bottle and the girls spend several minutes lubing up your asshole while also playing with your pussy, and you yourself play with your clit.'
+				else
+					'"I''m out of lube..." you say, a little disapointed.'
+					'"No problem. We''ll just use mine," <<$npc_nickname[$boy1]>> says and grabs her bottle. The girls then spend a few minutes lubing up your asshole while also playing with your pussy, and you yourself play with your clit.'
+				end
+			elseif dick3 < 2*pcs_ass:
+				if mc_inventory['lubricant'] > 0:
+					mc_inventory['lubricant'] -= 1
+					'"It''s big, but I think I can take it. Better use a lot of lube first though. My bottle in my purse," you say a little nervously before you lift your ass into the air.'
+					'<<$npc_nickname[$boy1]>> finds your bottle and the girls spend several minutes lubing up your asshole while also playing with your pussy, and you yourself play with your clit.'
+				else
+					'"It''s big, but I think I can take it. I''m out of lube though..." you say little nervously.'
+					'"No problem. We''ll just use mine," <<$npc_nickname[$boy1]>> says and grabs her bottle. The girls then spend a few minutes lubing up your asshole while also playing with your pussy, and you yourself play with your clit.'
+				end
+			else
+				if mc_inventory['lubricant'] > 0:
+					mc_inventory['lubricant'] -= 1
+					'"It''s enormous! Promise me you''ll be very careful?" you ask.'
+					'"I''ll be as gentle as possible," <<$npc_nickname[$boy1]>> replies.'
+					'"Okay, but we need to use a lot of lube first! My bottle in my purse," you say a little nervously before you lift your ass into the air.'
+					'<<$npc_nickname[$boy1]>> finds your bottle and the girls spend several minutes lubing up your asshole while also playing with your pussy, and you yourself play with your clit.'
+				else
+					'"It''s enormous! Promise me you''ll be very careful?" you ask.' 
+					'"I''ll be as gentle as possible," <<$npc_nickname[$boy1]>> replies.'
+					'"Okay, but I''m out of lube..." you say very nervously.'
+					'"No problem. We''ll just use mine," <<$npc_nickname[$boy1]>> says and grabs her bottle. The girls then spend a few minutes lubing up your asshole while also playing with your pussy, and you yourself play with your clit.'
+				end
+			end
+			'Once you''re well lubed up, you can feel the tip of the monstrous dildo pushing against your anus.'
+			gs 'arousal', 'anal_finger', -3, 'lube', 'group', 'lesbian'
+		else
+			if 3*dick3 < 4*pcs_ass:
+				'"I can''t wait to take that monster in my ass!" you say excitedly as you lift your ass into the air.'
+				'<<$npc_nickname[$boy1]>> and the girls play with your asshole, using a lot of their spit to get it ready for the dildo. While they''re doing that, you play with your clit.'
+			elseif dick3 < 2*pcs_ass:
+				'"It''s big, but I think I can take it..." you say a little nervously before you lift your ass into the air.'
+				'<<$npc_nickname[$boy1]>> and the girls play with your asshole, using a lot of their spit to get it ready for the dildo. While they''re doing that you play with your clit.'
+			else
+				'"I''m not sure I can take that! Promise me you''ll be very careful?" you ask.' 
+				'"I''ll be as gentle as possible," <<$npc_nickname[$boy1]>> replies.'
+				'"Okay..." you say very nervously as you lift your ass into the air.'
+				'<<$npc_nickname[$boy1]>> and the girls play with your asshole, using a lot of their spit to get it ready for the dildo. While they''re doing that, you play with your clit.'
+			end
+			gs 'arousal', 'anal_finger', -3, 'group', 'lesbian'
+		end
+		gs 'stat'
+		act 'Get wrecked by the dildo':
+			*clr & cla		
+			silavag = rand(0,2)
+			gs 'arousal', 'anal_dildo', 3, 'dick3', 'group', 'lesbian'
+			gs 'arousal', 'clit_finger', -3, 'group', 'lesbian'
+			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/sex/two_girls_private8.jpg"></center>'		
+			if $lastpain = 'asshole' and lastpain > 40:
+				'You feel an intense pain as <<$npc_nickname[$boy1]>> slowly slides the massive dildo into your asshole. You try to distract yourself by rubbing your clit, but after a few minutes, it simply becomes too much and you have to tell <<$npc_nickname[$boy1]>> to stop.'
+				gs 'stat'
+				act 'No more dildo': gt 'katja_nightclub_sex', 'private_booth_FFFF_you_licking', 'after_some_dildo_in_as'
+			else
+				if $lastpain = 'asshole' and lastpain > 20:
+					'You feel a lot of pain as <<$npc_nickname[$boy1]>> slowly slides the massive dildo into your asshole. You try to distract yourself by rubbing your clit and it works. While you''re still feeling pain, you''re also getting pleasure out of it.'
+				elseif $lastpain = 'asshole' and lastpain > 0:
+					'You feel some pain as <<$npc_nickname[$boy1]>> slowly slides the massive dildo into your asshole, but you''re also getting pleasure out of it.'
+					'You continue to rub your clit and are soon feeling a nice mixture of pain and pleasure.'			
+				else
+					'You''re surprised as there''s no pain when <<$npc_nickname[$boy1]>> slowly slides the massive dildo into your asshole. To add to your pleasure, you continue to rub your clit.'
+				end
+				gs 'stat'
+				act 'More butt fucking':
+					*clr & cla		
+					katjaQw['horny'] += rand(0,5)
+					'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/sex/two_girls_private9.jpg"></center>'	
+					'"Time to change position," <<$npc_nickname[$boy1]>> says as she pulls the dildo out of your asshole. "Get on your back," she orders.'
+					'You do as she says and get down on the couch so that your ass is at the edge of it. <<$npc_nickname[$boy1]>> gets down on the floor in front of you and slides her finger into your pussy.'
+					'<<$npc_nickname[$boy2]>> leans in over you and you start to make out while Katja looks on, very excited. You then feel the massive dildo being gently inserted back in your ass once more.'
+					gs 'arousal', 'anal_dildo', -2, 'dick3', 'group', 'lesbian'
+					gs 'arousal', 'vaginal_finger', 3, 'group', 'lesbian'
+					gs 'arousal', 'kiss', -3, 'group', 'lesbian'
+					gs 'stat'
+					'"We need something bigger for her pussy," <<$npc_nickname[$boy1]>> says.'
+					act 'Get both holes stuffed':
+						*clr & cla		
+						katjaQw['horny'] += rand(5,15)
+						gs 'boystat', 'D5', 'd'
+						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/sex/two_girls_private10.jpg"></center>'	
+						'<<$npc_nickname[$boy2]>> moves away, but Katja quickly moves in and starts kissing you. You hear <<$npc_nickname[$boy2]>> say "Here it is," before you feel something hard getting stuffed into your pussy. "It''s better if you do this yourself <<$psc_nickname>>," <<$npc_nickname[$boy1]>> says and you feel your right hand being moved to grasp what you imagine is a dildo in your pussy.'
+						'It takes a few tries to get into the rhythm of using the dildo, but you soon feel the nice sensation of having the dildos in your pussy and ass moving in and out of you, alternating which is deepest.'
+						*nl
+						'After a short while, you''re close to orgasm and rub your clit to bring you over.'
+						'You have an explosive orgsam that takes you a few minutes to come down from, but you''re not left in peace for long.'
+						'"Your turn to do the work now," <<$npc_nickname[$boy1]>> says. "<<$npc_nickname[$boy2]>> needs to feel some pleasure too."'
+						orgsam = 'no'
+						gs 'arousal', 'kiss', -3, 'group', 'lesbian'
+						gs 'arousal', 'vaginal_dildo', -2, 'dick4', 'group', 'lesbian'
+						gs 'arousal', 'clit_finger', -1, 'group', 'lesbian'
+						orgsam = 'yes'
+						gs 'arousal', 'anal_dildo', 4, 'dick3', 'group', 'lesbian', 'no_orgasm_msg'
+						gs 'stat'					
+						act '<<$npc_nickname[$boy2]>>''s turn': gt 'katja_nightclub_sex', 'private_booth_FFFF_girls', 'dp'
+					end
+					act 'Tell her you don''t want anymore':
+						cla
+						*nl
+						'"I don''t want anymore," you reply.'
+						'"Okay," <$npc_nickname[$boy1]>> says. "Then it''s your turn to do the work. <<$npc_nickname[$boy2]>> needs to feel some pleasure too."'
+						act '<<$npc_nickname[$boy2]>>''s turn': gt 'katja_nightclub_sex', 'private_booth_FFFF_girls'
+					end
+				end
+			end
+		end
+	end
+	act 'Say you don''t want it in your ass': gt 'katja_nightclub_sex', 'private_booth_FFFF_you_licking'
+end
+
+if $ARGS[0] = 'private_booth_FFFF_you_licking':
+	katjaQw['horny'] += rand(0,5)
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/sex/two_girls_private_licking_alternative.jpg"></center>'
+	'"Okay, then get your ass down on the couch and present your pussy," <<$npc_nickname[$boy1]>> orders and you do as she says.'
+	'She then gets down in front of you and start licking your pussy while still holding the giant dildo in her right hand.'
+	*nl
+	'Katja and <<$npc_nickname[$boy2]>> play with your breasts while <<$npc_nickname[$boy1]>> licks you for several minutes, often getting the dildo very close to your ass.'
+	'She never tries to put it in'+iif($ARGS[1] = 'after_some_dildo_in_as',' again,',',')+' but the excitement helps get you off, and you soon cum from her skillful use of her tongue.'
+	'"Now it''s your turn to do the work. <<$npc_nickname[$boy2]>> needs to feel some pleasure too," <$npc_nickname[$boy1]>> says once you''ve come down.'
+	orgsam = 'yes'
+	gs 'arousal', 'cuni', 4, 'group', 'lesbian', 'no_orgasm_msg'
+	gs 'arousal', 'foreplay', -4, 'group', 'lesbian'
+	gs 'stat'
+	act '<<$npc_nickname[$boy2]>> ''s turn': gt 'katja_nightclub_sex', 'private_booth_FFFF_girls'
+end
+
+if $ARGS[0] = 'private_booth_FFFF_girls':
+	katjaQw['horny'] += rand(5,15)
+	gs 'arousal', 'vaginal_dildo_give', 4, 'group', 'lesbian'
+	gs 'stat'
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/sex/two_girls_private11.jpg"></center>'
+	'You get up from the couch and <<$npc_nickname[$boy2]>> takes your place. '+iif($ARGS[1] = 'dp', 'You still have the dildo that you used on your pussy in your hand', '<<$npc_nickname[$boy1]>> hands you a dildo')+', so you start to slowly guide it into her very wet pussy.'
+	'<<$npc_nickname[$boy1]>> hands Katja a wand vibrator, which she quickly starts to use with glee on <<$npc_nickname[$boy2]>>.'
+	*nl
+	'<<$npc_nickname[$boy2]>> is clearly very excited and it don''t take you long to get her off. She cums with a huge yell, which makes you wonder if they can hear her on the dance floor.'
+	'After <<$npc_nickname[$boy2]>> get her breath back, she get up. "Okay whore, now it''s your turn so get down on all fours," she says to <<$npc_nickname[boy1]>>.'
+	act 'See what happens':
+		katjaQw['horny'] += rand(0,5)
+		gs 'arousal', 'vaginal_dildo_give', 4, 'group', 'lesbian'
+		gs 'stat'
+		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/sex/two_girls_private12.jpg"></center>'
+		'<<$npc_nickname[$boy1]>> immediately does as she''s told and gets down on all fours on the couch. "Head down and ass up, slut!" <<$npc_nickname[$boy2]>> orders and <<$npc_nickname[$boy1]>> obeys.'
+		'<<$npc_nickname[$boy2]>> then sits on the back of the couch and places her foot on the side of <<$npc_nickname[$boy1]>> head. "So this tramp thought she could be in control? It''s time to show this bitch who''s actually is in charge. Ram that dildo up her slutty cunt, but push it far. Her hole is extremely loose since she opens it for everybody," <<$npc_nickname[$boy2]>> says to you.'
+		*nl
+		'You notice that <<$npc_nickname[$boy1]>> seems to get more excited when she''s demeaned and realize that this is part of their play acting.'
+		'You use the dildo on <<$npc_nickname[$boy1]>> while <<$npc_nickname[$boy2]>> keeps her foot on her head, saying one humiliating thing after the other about her or her body.'
+		'<<$npc_nickname[$boy1]>> soon cums with a powerful, squirting orgasm.'
+		act 'After sex':
+			gs 'arousal', 'kiss', 2, 'group', 'lesbian'
+			gs 'arousal', 'clit_finger_give', -1, 'group', 'lesbian'
+			minut += 4
+			gs 'stat'
+			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/nightclub/sex/two_girls_private13.jpg"></center>'		
+			'You remove the dildo and and <<$npc_nickname[$boy2]>> lifts her foot. <<$npc_nickname[$boy1]>> then slowly gets up and you start making out.'
+			'You gently rub <<$npc_nickname[$boy1]>>''s pussy and can hear Katja and <<$npc_nickname[$boy2]>> kissing.'
+			*nl
+			'After a while, you stop and start to get dressed. "That was great!" Katja says when she''s fully clothed.' 
+			'"Yes, it was. We were lucky to find two wild babes like the two of you," <<$npc_nickname[$boy1]>> replies.'
+			'"We need to clean our toys, so you two just go ahead and go back to the dance floor. We might see you later," <<$npc_nickname[$boy2]>> says.'
+			'"Okay. Thanks again for a good time," Katja says.'
+			'"Yeah, thanks," you chime in as the two of you head back to the public part of the club.'
+			act 'Go to the dance floor': minut +=6 & gt 'katja_nightclub', 'dance'
+		end
+	end
+end
+
 --- katja_nightclub_sex ---------------------------------
 

+ 5 - 1
locations/katja_procedural.qsrc

@@ -152,6 +152,10 @@ if $ARGS[0] = 'hourly':
 		katjaQW['nightclub_private_room_boy'] = 0
 		if rand(0,katjaQw['slut']/25) > 0: gs 'katja_procedural', 'sex_set', 1
 	end
+	if katjaQW['nightclub_private_room_girls'] = 1 and katjaQW['disco_loc'] ! 9:
+		katjaQW['nightclub_private_room_girls'] = 0
+		if rand(0,katjaQw['slut']/25) > 0: gs 'katja_procedural', 'sex_set', 0, 2
+	end
 end
 
 if $ARGS[0] = 'cikl':
@@ -234,7 +238,7 @@ if $ARGS[0] = 'cikl':
 	end
 
 	!! Check if she had sex with other after being at the disco alone
-	if katjaQW['liberated'] = 1 or (katjaQW['relationship_talk'] = 1 and katjaQW['faithful'] = 0):
+	if (katjaQW['liberated'] = 1 or katjaQW['relationship_talk'] = 1) and katjaQW['faithful'] = 0:
 		if locat['katja_save2'] = 53 and (katjaQW['disco_arrival'] + 600 < totminut or katjaQW['disco_met'] + 600 < totminut):
 			if (rand(1,15) <= (min(func('katja_procedural', 'willing_to_be_naughty'), 100) - 50)/10 and katjaQW['relationship_talk'] = 1 and katjaQW['faithful'] = 0) or (katjaQW['relationship_talk'] = 0 and katjaQW['liberated'] and rand(0,3) = 0):
 				gs 'katja_procedural', 'sex_set', rand(0,katjaQW['simultanous_boys'] + 1), rand(0,katjaQW['simultanous_girls']+1)

+ 27 - 20
locations/obj_din.qsrc

@@ -62,29 +62,32 @@ end
 if $ARGS[0] = 'settingtabs':
 	cla
 	!0: Gameplay
-	!1: Display
-	!2: Status
-	!3: Phone
-	!4: Mods
-	!5: About
+	!1: Glossary
+	!2: Display
+	!3: Status
+	!4: Phone
+	!5: Mods
+	!6: About
 	$tabsname[] = 'Gameplay Settings'
 	$tabsaction[] = 'menu_page = 0 & dynamic $cheatmenu[''setting'']'
+	$tabsname[] = 'Glossary'
+	$tabsaction[] = 'menu_page = 1 & gt ''stat_explanations'', ''start'''
 	$tabsname[] = 'Display Settings'
-	$tabsaction[] = 'menu_page = 1 & dynamic $cheatmenu[''display'']'
+	$tabsaction[] = 'menu_page = 2 & dynamic $cheatmenu[''display'']'
 	$tabsname[] = 'Status Window Settings'
-	$tabsaction[] = 'menu_page = 2 & dynamic $cheatmenu[''status'']'
+	$tabsaction[] = 'menu_page = 3 & dynamic $cheatmenu[''status'']'
 	if settingmode ! 1:
 		$tabsname[] = 'Phone Theme Settings'
-		$tabsaction[] = 'menu_page = 3 & dynamic $cheatmenu[''theme'']'
+		$tabsaction[] = 'menu_page = 4 & dynamic $cheatmenu[''theme'']'
 		$tabsname[] = 'Mods'
-		$tabsaction[] = 'menu_page = 4 & gt ''mod_setting'''
+		$tabsaction[] = 'menu_page = 5 & gt ''mod_setting'''
 		$tabsname[] = 'About'
-		$tabsaction[] = 'menu_page = 5 & dynamic $cheatmenu[''about'']'
+		$tabsaction[] = 'menu_page = 6 & dynamic $cheatmenu[''about'']'
 	else
 		$tabsname[] = 'Mods'
-		$tabsaction[] = 'menu_page = 3 & gt ''mod_setting'''
+		$tabsaction[] = 'menu_page = 4 & gt ''mod_setting'''
 		$tabsname[] = 'About'
-		$tabsaction[] = 'menu_page = 4 & dynamic $cheatmenu[''about'']'
+		$tabsaction[] = 'menu_page = 5 & dynamic $cheatmenu[''about'']'
 	end
 	gs 'tabhead',menu_page
 	if settingmode = 1:
@@ -712,14 +715,18 @@ if $ARGS[0] = 'stats':
 		*nl
 	end
 
-	if runnerQW['races_ran'] > 0: 'You have run in <<runnerQW[''races_ran'']>> races'
-	if runnerQW['pav_wins1'] >= 1: 'You have <<runnerQW[''pav_wins1'']/3>> trophies from local racing competitions'
-	if runnerQW['bronze_medals'] > 0: '<<runnerQW[''bronze_medals'']>> - bronze medals for running'
-	if runnerQW['silver_medals'] > 0: '<<runnerQW[''silver_medals'']>> - silver medals for running'
-	if runnerQW['gold_medals'] > 0: '<<runnerQW[''gold_medals'']>> - gold medals for running'
-	if runnerQW['champ_bronze'] > 0: '<<runnerQW[''champ_bronze'']>> times bronze medalist at the St. Petersburg Track Championship'
-	if runnerQW['champ_silver'] > 0: '<<runnerQW[''champ_silver'']>> times silver medalist at the St. Petersburg Track Championship'
-	if runnerQW['champ_gold'] > 0: '<<runnerQW[''champ_gold'']>> times St. Petersburg Track Champion.'
+	if runnerQW['races_ran'] > 0: 'You ran in <<runnerQW[''races_ran'']>> competitive race' + iif(runnerQW[''races_ran''] = 1, '','s')
+	if runnerQW['pav_wins2'] >= 3:
+		'You have won the school race trophy twice'
+	elseif runnerQW['pav_wins1'] >= 3:
+		'You have won a school race trophy'
+	end
+	if runnerQW['bronze_medals'] > 0: 'As a runner you have won <<runnerQW[''bronze_medals'']>> bronze medal' + iif(runnerQW[''bronze_medals''] = 1, '','s')
+	if runnerQW['silver_medals'] > 0: 'As a runner you have won <<runnerQW[''silver_medals'']>> silver medal' + iif(runnerQW[''silver_medals''] = 1, '','s')
+	if runnerQW['gold_medals'] > 0: 'As a runner you have won <<runnerQW[''gold_medals'']>> gold medal' + iif(runnerQW[''gold_medals''] = 1, '','s')
+	if runnerQW['bronze_medals'] > 0: 'In the St. Petersburg Track Championship race you have won <<runnerQW[''champ_bronze'']>> bronze medal' + iif(runnerQW[''champ_bronze''] = 1, '','s')
+	if runnerQW['champ_silver'] > 0: 'In the St. Petersburg Track Championship race you have won <<runnerQW[''champ_silver'']>> silver medal' + iif(runnerQW[''champ_silver''] = 1, '','s')
+	if runnerQW['champ_gold'] > 0: 'In the St. Petersburg Track Championship race you have won <<runnerQW[''champ_gold'']>> gold medal' + iif(runnerQW[''champ_gold''] = 1, '','s')
 	if runnerQW['prof_stage'] > 0:
 		if runnerQW['prof_stage'] = 1: 'You''re registered for a semi-professional''s race, in the junior squad'
 		if runnerQW['prof_stage'] = 2: 'You''re registered for a semi-professional''s race, in the veteran squad'

+ 305 - 0
locations/stat_explanations.qsrc

@@ -0,0 +1,305 @@
+# stat_explanations
+!2024/05/09
+
+if $ARGS[0] = 'start':
+	gs 'obj_din', 'settingtabs'
+	'<center><b><font color="maroon">Glossary</font></b></center>'
+	'Here we want to explain the different stats your player character has, and give other useful information about the play mechanics.'
+	*nl
+	'The glossary is divided over several pages explaining different aspect of the character stats. For a new player we recommend going true them in the order presented, but if you need some specific information, just go to the page containing it.'
+	*nl
+	'<a href="exec:gt ''stat_explanations'', ''icons''">The first page</a> includes the basic information and explanations of the different icons that appear in the stat display.'
+	*nl
+	'<a href="exec:gt ''stat_explanations'', ''attributes''">The second page</a> includes information about the basic attributes the player character have.'
+	*nl
+	'<a href="exec:gt ''stat_explanations'', ''skill''">The third page</a> includes information about the skills the player character have.'
+	*nl
+	'<a href="exec:gt ''stat_explanations'', ''status''">The fourth page</a> includes information about the different status effects like mood, hunger, and willpower the player character have.'
+end
+	
+if $ARGS[0] = 'icons':
+	gs 'obj_din', 'settingtabs'
+	cla
+	'<center><b><font color="maroon">Introduction and Icons</font></b></center>'
+	'We will go through the stat display, which is the window, that your QSP-player probably calls additional description. '
+	'It stats with an image of the weather '+$weatherImage+' followed by the the current temperature in Celsius. If you click on the picture you will get a pop-up with a more detailed description.'
+	'Below the weather image is a line that gives the current time and date, maybe followed by a line saying if you have vacation and how long time until the vacation ends.'
+	*nl
+	'Next is a line of important Icons. The first is character descriptions '+'<img title="Character description" height = <<set_miconht>> src="images/system/icons/menu/icon_character.png">'+' Clicking on the will take you to the Character description. You might not be able to do that right now '
+	'The Character description have '+iif($start_type[1] ! 'nomagic' , '6', '7')+' different tabs. The first tab "Character" gives a general overview of your character''s looks and physique. The second tab, "Skills" lists your skills. We will explain skills later in this introduction.'
+	'The third tab "Statistics" lists several achievements that the player character has made in the game. The fourth tab "Pain" has a detailed description of any pain the player character is experiencing.'
+	'The fifth tab "Traits" lists several traits the player characters have or can obtain, and how to obtain them. The sixth tab "Renown" has information about the player character''s reputation and fame.'+iif( $start_type[1] ! 'nomagic', 'The seventh tab "Magic" has information on which spells the player character knows.', '')
+	*nl
+	'Next icon of the looks '+'<img title="Looks (Face, body, clothing,...)"height = <<set_miconht>> src="images/system/icons/menu/icon_lookself.png">'+' which have pictures of your characters and the clothes and other apparel the wear.'
+	*nl
+	if bag > 0:
+		'The third icon is the purse '+'<img title="Your purse"height = <<set_miconht>> src="images/system/icons/menu/icon_purse.png">'+' which contains the thing you player character carries around, and by opening it you can interact with these things.'
+		*nl
+		'The fourth icon is the phone '+'<img title="Your phone" height = <<set_miconht>> src="images/system/icons/menu/<<iif(telefon[''UnreadSMS'']=0,''icon_phone.png'',''icon_phone_sms.gif'')>>">'+' which you can open if you receive messages or calls, to send messages and to take selfies.'
+		*nl
+		'The fifth icon is your journal '+'<img title="<<$journal_tooltip>>" height = <<set_miconht>> src="images/system/icons/menu/<<$journalIcon>>">'+'  which have many important tabs.'
+		if $start_type[1] ! 'nomagic':
+			'The first tab here is very important since it is from that tab, that you will be able to cast spells once you learn them.'
+		end
+		'This includes a tab for a description of where you live and the possibility to change this is you have several options. A tab with information about your work.'
+		'The "Quest" tab contains hints on how to start and proceed with several of the quests in the game. Not all quests are there yet, but this a good place to look if you want to know some of the things that are possible, and the first place you should look if you feel stuck in a quest.'
+		'The relations tab has information about how other NPC''s see the player characters. The value goes from 0 to 100. If it is below 20 it means they dislike or even hate you. Between 20 and 60 is generally neutral. From above 60 the NPC considers your player character a friend and above 80 is when they might fall in love with a character.'
+		'But each character is different, and some might never fall in love with the character and for some NPC''s it might not be enough to just get them to like you.'
+		'The game information tab includes a lot of information about the world. '+iif($start_type['loc'] = 'sg', 'The school subtab includes information about grades and the school cliques.', '')+iif( $start_type['loc'] = 'uni', 'The University subtab includes information about subjects and grades.', '') 
+		*nl
+		'The final icon '+'<img title="Menu & Cheatmenu" height = <<set_miconht>> src="images/system/icons/menu/icon_menu.png">'+' is the game settings menu, which can be used to change the game settings.'
+	else
+		'The third icon is the phone '+'<img title="Your phone" height = <<set_miconht>> src="images/system/icons/menu/<<iif(telefon[''UnreadSMS'']=0,''icon_phone.png'',''icon_phone_sms.gif'')>>">'+' which you can open if you receive messages or calls, to send messages and to take selfies.'
+		*nl
+		'The fourth icon is your journal '+'<img title="<<$journal_tooltip>>" height = <<set_miconht>> src="images/system/icons/menu/<<$journalIcon>>">'+'  which have many important tabs.'
+		if $start_type[1] ! 'nomagic':
+			'The first tab here is very important since it is from this tab, that you will be able to cast spells once you learn them.'
+		end
+		'This includes a tab for a description of where you live and the possibility to change this is you have several options. A tab with information about your work.'
+		'The "Quest" tab contains hints on how to start and proceed with several of the quests in the game. Not all quests are there yet, but this a good place to look if you want to know some of the things that are possible, and the first place you should look if you feel stuck in a quest.'
+		'The relations tab has information about how other npc''s see the player characters. The value goes from 0 to 100. If it is below 20 it means they dislike or even hate you. Between 20 and 60 is general neutral. From above 60 the NPC considers your player character a friend and above 80 is when they might fall in love with a character. But each character is different, and some might never fall in love with the character and others it might not be enough to just get them to like you.'
+		'The game information tab includes a lot of information about the world. '+iif($start_type['loc'] = 'sg', 'The school subtab includes information about grades and the school cliques.', '')+iif( $start_type['loc'] = 'uni', 'The University subtab includes information about subjects and grades.', '') 
+		*nl
+		'The final icon '+'<img title="Menu & Cheatmenu" height = <<set_miconht>> src="images/system/icons/menu/icon_menu.png">'+' is the game settings menu, which can be used to change the game settings.'
+		*nl
+		'If you player character owned a purse there would also be an icon for it in the line. Which can be used to interact with the things you are caring around. A purse can be bought in a shop, or maybe your player character''s grandparents have one that can be used lying among all their stuff.'
+	end
+	*nl
+	'Belove these Icons is a line that informs you how much money your player character has. But one them and on their bank account.'
+	*nl
+	'Next comes the Icon window, there will be different icons that inform you about the status of your character and things they have to do. These icons will display a text when you hover your mouse over them, and mist can be clicked for more information or to remedy the problem they warn about.'
+	'The first line has information mostly about your character''s looks. The second line has information about how the character is feeling. The third is about physical aspects of the player character which always includes an Icon '+' <img title="Click to open the cycle menu." height = <<set_siconht>> src="images/system/icons/status/vagina.png"></a></td>'+' with information about where you are in your fertility cycle.'
+	'Then there will be a line about things you have to do if you have any. The next line is mostly about clothes and below this can be a line with information about the player character''s state if they are drunk or on drugs.'
+	*nl
+	'Below the icons is a line where you can turn on and off information in the status display. The "text" will display the same information as the icons, but in text, and the "images" will add images of the character''s clothes and body.'
+	'We will wait with the discussion of the "status" part till later. for now make sure that the "attributes" tab is turned on, since this is the one we will explain next.'
+	act 'Continue with explanation of attributes': gt 'stat_explanations', 'attributes'
+	act 'Go back to the Glossary overview':  gt 'stat_explanations', 'start'
+	act 'Jump to the explanation of skills': gt 'stat_explanations', 'skill'
+	act 'Jump to the explanation of status effects': gt 'stat_explanations', 'status'
+	act 'Exit the menu': gs 'obj_din', 'menu_exit' & gt $menu_loc, $menu_arg
+end
+
+if $ARGS[0] = 'attributes':
+	gs 'obj_din', 'settingtabs'
+	cla
+	'<center><b><font color="maroon">Attributes</font></b></center>'
+	'Attributes are the basic stat of the player character. They with few exceptions explained below are on a scale from 1 to 100. 1 meaning the player character barely can do anything in that area and 100 means that the player character is one of the best in in that attribute in the area of the game.'
+	'This means that a maximum in strength does not make the player character the strongest in the world. Just one of the strongest girls in the St. Petersburg area of Russia.'
+	*nl
+	'All attributes with one exception are purely based on the experience point the player character has in that attribute. The experience point is earned by using that attribute.'
+	'If you don''t use the attribute for some time, meaning you do not earn any new experience points, then the number of experience points you have in the attribute will start to decrease.'
+	'Most attributes start at 30, and the game is calibrated such that it takes approximately 3 years of concentrated daily training to increase it from 30 to 100.'
+	*nl
+	'"Inhibition" reflects how much the player character cares about being seen naked. It indicates whether or not the player character is bothered by this.'
+	'It has nothing to do with the player character''s attitude towards sex. The player character can have 0 inhibition and still be completely asexual and even disgusted by sex.'
+	'Just to repeat, it is not a measure of the player character''s corruption.'
+	'This attribute is a little special since it is inverted: 0 experience points will give an inhibition of 100, while maximum experience points result in an inhibition of 0.'
+	'Experience points are earned by doing things the player character normally wouldn''t do. For example, if inhibition is above a certain threshold, the player character won''t sunbathe naked. If it is between two thresholds, experience points will be earned by sunbathing naked.'
+	'If inhibition is below that value, no experience points will be earned for sunbathing naked. The most common way to earn experience is by wearing clothes your character considers risqué but not too risqué. Whether your character considers clothes risqué or not can be seen in the wardrobe when dressing.'
+	*nl
+	'"Strength" is the attribute that describes how strong the player character is. It is used for many sports, and to determine how hard the player character hits. Getting experience point for it is mainly done by doing different kinds of sports or exercises.'
+	'This attribute is special in that through normal means it can only be raised to 100. But with doing dedicated weightlifting training (which will say so) you can increase it to 150, and if you take steroids while doing the weightlifting training it can be raised to 200.'
+	'This does have some negative impact on appearance which will be explained when that attribute is discussed below.'
+	*nl
+	'"Agility" is the attribute that describes how agile your player character is. It is used in sports and fights.'
+	'The primary way to gain experience in agility is by doing sports and other exercises.'
+	*nl
+	'"Endurance" is the physical resistance of the player character. It is used in sports, fights, and in determining the player character''s stamina, which will be explained later.'
+	'The primary way to gain experience in endurance is by doing sports and other exercises.'
+	*nl
+	'"Intelligence" is the overall stat that tells how good the player character is at solving mental problems and learning academic disciplines. It is also used as the knowledge of the player if there is not a special skill that covers it better.'
+	'It is especially important for getting good grades in school or at the university. There are many ways to earn experience for intelligence, but studying is the main one. This includes both studying at home or paying attention in class if your player character goes to school or studies at the university.'
+	*nl
+	'"Spirit" is the mental resilience of your character. It is used when you try to resist somebody forcing your player character to do something; succeeding in this will also reward experience for spirit. This will be explained in more detail when willpower is explained.'
+	'Another way to gain experience for spirit is by doing yoga exercises.'
+	*nl
+	'"Charisma" is the attribute that affects how people experience being around your player character and talking to them. Higher charisma makes better outcomes of social interactions more likely.'
+	'Experience for charisma is mainly earned by talking to other people and being active in social settings.'
+	*nl
+	'"Perception" is the player character''s ability to notice something. It is not an attribute that is used very much in the game. Gaining experience is also by noticing stuff happening, and there are currently not many places to do that.'
+	if $start_type[1] ! 'nomagic':
+		*nl
+		'"Magic" this is the stat that determines which spells you can learn, how powerful your spells are and how much mana you have.'+iif(tatiana_teach_escalation > 0 , 'Your experience point in Magic is equal to the number or orgasm you have had.', 'How to earn experience for magic will be revealed as the story unfolds.') 
+	end
+	*nl
+	'"Appearance" is how the average person perceives the player character''s look. This attribute ranges from 1 to 200 and is not gained by earning experience points. Instead, it is composed of many factors, with the most important being your BMI. To achieve the highest value, keep your BMI in the health range of 19 to 24.'
+	'Your physical attributes, Agility, Endurance, and Strength, also play a role. For all of them, 100 is the ideal value, so if your strength goes above 100 because of weightlifting training, it will detract from your appearance. Additionally, skincare is important. The nicer your skin, the better, so take care of it.'
+	'Other factors like bad teeth, ugly glasses, and so on have a minor effect. The clothes you wear modify this attribute, and wearing makeup also improves your appearance.'
+	'You don''t need to maximize appearance to experience the content of the game. With an appearance of 150, almost everybody will think your character is so hot that they want to be involved with her, and nothing is gated if you have 165. Of course, you might still receive better reactions with a higher appearance.'
+	'It should also be noted that many NPCs have their own preferences for what makes a girl hot, so your appearance might be modified depending on how well you match their preferences.'
+	*nl
+	'These are all the attributes. So next up are the skills. Make sure you have them open in the stat display.'
+	act 'Continue with explanation of skills': gt 'stat_explanations', 'skill'
+	act 'Go back to the Glossary overview':  gt 'stat_explanations', 'start'
+	act 'Jump back to the explanation of icons': gt 'stat_explanations', 'icons'
+	act 'Jump to the explanation of status effects': gt 'stat_explanations', 'status'
+	act 'Exit the menu': gs 'obj_din', 'menu_exit' & gt $menu_loc, $menu_arg
+end
+
+if $ARGS[0] = 'skill':
+	gs 'obj_din', 'settingtabs'
+	cla
+	'<center><b><font color="maroon">Skills</font></b></center>'
+	'In the stat display, skills are grouped into different categories: "Mental," "Sport," "Beauty," "Artistic," and "Jobs," so remember to have them all enabled. While the categories contain similar skills, they are just for display purposes. There are no mechanical aspects associated with the categories.'
+	*nl
+	'Skills, like attributes, are on a scale from 1 to 100. However, the skill is not solely determined by how many experience points you have in it, but also by one or more associated attributes. So it is possible to have a decent value in some skills without any experience points in them.'
+	'On the other hand, having maximum experience in a skill does not necessarily grant you a score of 100. That would also require all the associated attributes to be at 100. When we go through the skills below, we will mention which attributes are associated with a given skill.'
+	'In general, the experience in the skill will count for half your value, and the associated attributes will count for the other half.'
+	*nl
+	'Experience in a skill is gained by using the skill, and will also add a fraction of that experience to any associated attribute. Since for most skills their use is clear, we will only mention uses that are not obvious below.'
+	*nl
+	if $start_type[1] ! 'nomagic':
+	'"Spell Casting" associated attributes are Intelligence and Reaction.'
+	*nl
+	end
+	'"People Skill" associated attributes are Charisma, Perception, and Reaction. This skill involves understanding and improving interaction with others, hence affecting how quickly people warm up to the player character and make negative interactions less severe.'
+	'At 100 in People Skill, relationship points with NPCs are gained at twice the rate compared to the value at 0 and lost at half the rate.'
+	*nl
+	'"Persuasion" associated attributes are Charisma and Perception. This skill affects how adept the player character is at convincing people to do things. This will be explained in more detail when willpower is discussed.'
+	*nl
+	'"Observation" associated attributes are intelligence, perception and reaction. This skill is not used much in the game as it is right now.'
+	*nl
+	'"Jabs" associated attributes are agility and strength with agility counting twice as much as strength.'
+	*nl
+	'"Power Strikes" associated attributes are agility and strength with strength counting twice as much as agility.'
+	*nl
+	'"Kicks" associated attributes are agility and strength with strength counting three times as much as agility.'
+	*nl
+	'"Defense" associated attributes are agility, reaction and strength.'
+	*nl
+	'"Running" associated attributes are agility, endurance and strength with strength and agility counting twice as much as endurance.'
+	*nl
+	'"Volleyball" associated attributes are agility, endurance, reaction and strength with agility counting twice as much as each of the others.'
+	*nl
+	'"Football" associated attributes are agility, endurance and strength.'
+	*nl
+	'"Basketball" associated attributes are agility, endurance and strength.'
+	*nl
+	'"Wrestling" associated attributes are agility, endurance and strength with strength counting twice as much as each of the others.'
+	*nl
+	'"Marksmanship" associated attributes are agility and reaction.'
+	*nl
+	'"Bushcraft" associated attributes are agility, intelligence and strength.'
+	*nl
+	'"Chess" associated attribute is intelligence.'
+	*nl
+	'"Ice Skating" associated attributes are agility and strength with agility counting twice as much as strength.'
+	*nl
+	'"Gaming" associated attributes are intelligence and reaction with intelligence counting twice as much as reaction.'
+	*nl
+	'"Pool" associated attribute is intelligence, but experience in pool weights much higher than intelligence.'
+	*nl
+	'"Makeup Skill" associated attributes are Agility and Intelligence. This skill determines how much applying makeup enhances appearance, with a range from -5 with 0 in makeup skill to 20 with 100 in makeup skill.'
+	*nl
+	'"Modern Dancing" associated attributes are agility, endurance and reaction.'
+	*nl
+	'"Erotic Dancing" associated attributes are agility, charisma and endurance.'
+	*nl
+	'"Pole Dancing" associated attributes are agility charisma and strength.'
+	*nl
+	'"Cheerleading" associated attributes are agility, endurance and reaction.'
+	*nl
+	'"Modeling" associated attributes are agility and endurance but the experience in the skill is weighted higher than the attributes .'
+	*nl
+	'"Heels" this skill has no associated attributes. It determines if it is painful to wear a given high-heeled shoe or not. Experience is gained by wearing high-heeled shoes..'
+	*nl
+	'"Singing" associated attributes are charisma and intelligence.'
+	*nl
+	'"Instrumental Music" associated attributes are agility and intelligence with agility counting twice as much as intelligence.'
+	*nl
+	'"Photography" associated attributes are intelligence and reaction with intelligence counting twice as much as reaction.'
+	*nl
+	'"Artistic Skills" associated attributes are agility, intelligence and reaction.'
+	*nl
+	'"Performance" associated attributes are charisma and perception.'
+	*nl
+	'"Music Production" associated attributes are intelligence, perception and spirit.'
+	*nl
+	'"Cleaning Skill" associated attributes are endurance and intelligence.'
+	*nl
+	'"Computer Skill" associated attribute is intelligence.'
+	*nl
+	'"Hacking" associated attributes are intelligence and reaction.'
+	*nl
+	'"Handy-Work" associated attributes are agility and intelligence with agility counting twice as much as intelligence.'
+	*nl
+	'"Tailoring" associated attributes are agility and intelligence.'
+	*nl
+	'"Serving" associated attributes are endurance and intelligence.'
+	*nl
+	'"Medicine" associated attributes are intelligence, perception and reaction.'
+	*nl
+	'These are all the skills. Next we will explain the different statuses the player character can have. So move up in the stat display and make sure that status is shown.'
+	act 'Continue with explanation of status bars': gt 'stat_explanations', 'status'
+	act 'Go back to the Glossary overview':  gt 'stat_explanations', 'start'
+	act 'Jump back to the explanation of icons': gt 'stat_explanations', 'icons'
+	act 'Jump back to the explanation of attributes': gt 'stat_explanations', 'attributes'
+	act 'Exit the menu': gs 'obj_din', 'menu_exit' & gt $menu_loc, $menu_arg
+end
+
+if $ARGS[0] = 'status':
+	gs 'obj_din', 'settingtabs'
+	cla
+	'<center><b><font color="maroon">Status bars</font></b></center>'
+	'The status bars represent different parts of the player''s physical and mental status. They are different from attributes and skills in that they can fluctuate rapidly, acting as resources that the player uses and replenishes throughout gameplay. They are not tied to any experience points but generally have maximum values determined by different stats, which then decrease as they are used.'
+	'For a couple of them, the natural state is 0 and they increase as events happen to the player, then slowly decrease back to 0.'
+	'They are not governed by any unified mechanics, and each will therefore be explained in detail.'
+	*nl
+	'"Arousal": This measures how horny the player character is. It increases as the character experiences arousing stimuli, like watching porn or being touched in a sexual way.'
+	'The bar will appear full when arousal is at 100, at which point it is very easy for the character to orgasm with even slight stimulation. However, 100 is not the maximum; it can go higher.'
+	'Arousal is associated with orgasm, but arousal alone cannot trigger one; external stimuli are necessary.'
+	'It decreases over time, and if the player character has an orgasm, it generally returns to 0.'
+	'However, it''s possible for the player character to enter a state where multiple orgasms are possible. In this case, orgasms only reduce arousal, and it will not return to 0 until some time has passed without new stimulation.'
+	*nl
+	'Some actions, like masturbation, require a minimal level of arousal, but it is not very common for it to be a requirement for agreeing to sex.'
+	'Being very horny does affect the character''s ability to say no to sex, which will be explained in more detail below under willpower.'
+	*nl
+	'"Pain": This is the total accumulated pain the character is feeling. Pain can be gained from many sources, such as wearing high heels when the heels skill is not high enough, getting beat up in a fight, or engaging in very rough sex, especially trying to insert objects that are too large into the player character''s orifices.'
+	'Being in pain has several negative consequences, some of which are explained below. Pain decreases over time but can be temporarily alleviated by taking painkillers.'
+	*nl
+	'"Health": This represents the overall health of the character''s body. It is lost by taking damage in fights, being sick, starving, experiencing pain, and more.'
+	'Your maximum health is calculated as 10 times your endurance plus 5 times your strength. It slowly recovers when you sleep. If health ever becomes negative, you die, and the game is over.'
+	*nl
+	if $start_type[1] ! 'nomagic':
+		'"Mana" is the resource used to cast spells. It depends on magic, intelligence and endurance. At first it might seem like a limit on spell casting, but at medium levels of magic max mana becomes very large and since the regeneration rate is 5% of max mana every hour it is not important.'
+		*nl
+	end
+	'"Willpower" is the mental resource of the player character to resist being coerced into doing something or to attempt to coerce other characters into doing something.'
+	'During the game, you will encounter actions that have a willpower cost associated with them, and the action will clearly state this. If you have enough willpower, you can choose the action, and the cost is subtracted from your willpower.'
+	'The willpower cost depends on many things. First, each willpower check has a difficulty level associated with it: easy, normal, or hard. Second, each willpower check has a type: "Force" for trying to get others to do what you want, "Resist" for resisting coercion and "Self" for overcoming the player character''s inner reluctance.'
+	'The cost of a force willpower check is modified by the character''s Persuasion skill, such that the cost at 0 in persuasion is twice that of the cost at 100 in persuasion. Likewise, the cost of resist willpower checks is affected by the spirit attribute. Passing a force or resist willpower check will grant experience to the associated skill or attribute.'
+	'The willpower cost is further modified based on the player character''s condition. Checks of resist or self willpower for sex will be harder if the player is very aroused, but the cost of force willpower checks will be lower.'
+	'Being in pain, being very tired, being thirsty, being hungry, and having a low mood all increase the cost of willpower checks. Being drunk or on drugs can also affect the cost of willpower checks.'
+	*nl
+	'The maximum willpower of your character is set by the start you choose but can be increased up to 150. The way to increase the max willpower is by passing willpower checks other than chore actions  that is used for concentrating on boring tasks. Passing force checks makes it increase faster.'
+	'One needs to be careful; if your willpower goes below 25% of your max willpower too many times, your max willpower will decrease.'
+	'Willpower regains at a rate of 4% of max willpower every hour you are asleep and 4/3% every hour awake. You can also restore willpower by doing yoga.'
+	*nl
+	'"Stamina" is the reserve you have for physically strenuous activities. Doing sports and exercises costs stamina and generally should not be performed if your stamina is too low. Having low stamina will cause your mood to drop, and having negative stamina will make you more tired.'
+	'The maximum stamina is calculated as ((30 * (2 * endurance + agility + strength)) + 1000) / 13, subtracting an amount depending on how far along in your pregnancy you are if you are pregnant.'
+	'If you are not too hungry, you regain stamina at a rate that depends on how hungry you are, up to 20% of your max stamina per hour awake. During sleep, it regenerates much faster, especially if you wake up completely well-rested.'
+	*nl
+	'"Mood" describes your mental well-being. It ranges from 1 to 100. Many factors can decrease mood, such as being in pain, starving, being bullied, needing drugs you are addicted to, and more. There are also many ways to increase mood, such as experiencing happy moments, eating delicious things, having sex, doing drugs, and much more.'
+	'If mood is below 20 for longer periods, your max willpower will start to decrease. If your mood is reduced to below 1, then your health suffers, and if your mood is 1 and willpower is 0, then you go insane, resulting in a game over. One sure way to increase mood to 100 is to have an orgasm.'
+	*nl
+	'"Hunger" measures how hungry you are, ranging from 0 to 100. It decreases by 8 each hour awake and 4 each hour asleep, but many physical activities will also drain it. You can satisfy hunger by eating and drinking energy-rich drinks.'
+	'Eating or drinking can temporarily put hunger over 100, but each hour of excess hunger will result in weight gain. Low levels of hunger increase willpower costs and prevent you from doing sports and exercises.'
+	'If hunger goes below 0, you suffer health damage, and some of your excess fat will be converted to hunger. If you keep this going, your mood will decrease. If you have no excess fat, it will convert strength or endurance into fat. This can, in the extreme, result in death by starvation and game over.'
+	*nl
+	'"Thirst" measures how thirsty the player character is, ranging from 1 to 100. It decreases by 16 each hour awake and 8 each hour asleep, but many physical activities will also drain it. You can satisfy thirst by drinking.'
+	'If thirst goes below 1, you lose health, and if you don''t address it, your mood will also suffer. Having low thirst increases willpower costs.'
+	*nl
+	'"Sleep" measures how awake the player character is, ranging from 0 to 100. It decreases by 5 every hour awake and is regained by sleeping. A low sleep value makes willpower checks harder.'
+	'Staying awake if sleep is at 0 will decrease mood and earn your character debuffs that impair experience gain, up to halving the amount in the most severe level. These debuffs will only go away if you get a full night of rest.'
+	*nl
+	'This ends the basic description of the player characters stat.'
+	act 'Go back to the Glossary overview':  gt 'stat_explanations', 'start'
+	act 'Jump back to the explanation of icons': gt 'stat_explanations', 'icons'
+	act 'Jump back to the explanation of attributes': gt 'stat_explanations', 'attributes'
+	act 'Jump back to the explanation of skills': gt 'stat_explanations', 'skill'
+	act 'Exit the menu': gs 'obj_din', 'menu_exit' & gt $menu_loc, $menu_arg
+end
+
+--- stat_explanations ---------------------------------
+