16 Commits d574e02b8b ... 63fb4c23d9

Author SHA1 Message Date
  bgkjdgbizgblzdgbr 63fb4c23d9 [changed/fixed] Changed Katja's raction to you telling her to have sex with others if she already is. 3 weeks ago
  bgkjdgbizgblzdgbr fdd06b496c Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 3 weeks ago
  bgkjdgbizgblzdgbr 6c6e7b1ede [fixed] Missing check for to much cleavage if you skirt is very short in the school clothing check. 3 weeks ago
  Kevin_Smarts f24aed6459 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 3 weeks ago
  bgkjdgbizgblzdgbr 4a7c2693e9 [Changed] Made the effect of breast size on cleavage smaller and fixed a bug where the cleavage of a dress was set outside of the allowable range. 3 weeks ago
  bgkjdgbizgblzdgbr 25b11dbe25 [change/added] People skill will now effect how many relationship points you get with npcs. At 100 it will double the gain and half the loss 3 weeks ago
  anjuna krokus 50c8244403 [changed] Migrated the remaining persistent mira variables 3 weeks ago
  anjuna krokus 5ed31003a4 [fixed] Some fixes spotted and suggested by Lurk Morrison 3 weeks ago
  anjuna krokus aca54ff88e [fixed] wrong amount of money subtracted for a bus pass. This update will lower the actual cost. Noticed by Honey 3 weeks ago
  Kevin_Smarts 96637e4793 Merge remote-tracking branch 'Netuttki/master' 3 weeks ago
  Kevin_Smarts 8d2131ed37 Merge remote-tracking branch 'Hooded_Silence/master' 3 weeks ago
  anjuna krokus b1ce63e466 [fixed] Hopefully cigarettes should not decrease if you bum one during the lover events 3 weeks ago
  Hooded Silence 37666b01ca [Bug Fixes] Resolved ballet npc's names not appearing, whitespace and removal and set a new default path variable for ballet npc portraits. ballet school now compliant with incoming code code changes, still untested to determine how it affects game play. 3 weeks ago
  netuttki bd154cff4f Merge remote-tracking branch 'keving-upstream/master' 3 weeks ago
  anjuna krokus a9de450f67 [changed] layout changes in saveupdater 3 weeks ago
  netuttki 8d2a15f7c6 Merge remote-tracking branch 'keving-upstream/master' 3 weeks ago

+ 1 - 0
.gitignore

@@ -45,4 +45,5 @@ glife.7z.tmp
 glife.7z
 
 *.test
+*.drawio
 missing_media.txt

+ 40 - 25
locations/ballet_npc.qsrc

@@ -1,8 +1,13 @@
 # ballet_npc
+!! Date Created: 17th Sept, 2022
+!! Modified date: 11th April, 2024
+!! Version: .01 - initial release
+!! Version: .02 - bug fixes, code refactor and new character variable $npc_img_path to link characters default profile image and related images.
+!! Author: Hooded Silence
+!!
+!! Set up dance school dramatis personae - Start at 3500 to avoid conflicts with main game.
 
-!! Set up dance school dramatis personae - Start at 3500 to avoid conflicts with main game...
-
-!! Students
+!! Pushkin Ballet School Students - Year one schoot start
 
 npctemp = 3501
 $npc_firstname['A<<npctemp>>'] = 'Maya'
@@ -24,27 +29,30 @@ $npc_haircolour['A<<npctemp>>'] = 'Blonde'
 $npc_eyecolour['A<<npctemp>>'] = 'blue'
 $npc_height['A<<npctemp>>'] = 160
 $npc_weight['A<<npctemp>>'] = 50 
+$npc_img_path['A<<npctemp>>'] = 'images/characters/pushkin/maya'
 
-!! NPC Temp: 3502 - Kima
+npctemp = 3502 
 !! Kima Agapova - The dance critic and fanatical to become a dancer, no matter the cost. Keeps a 'black book' of contacts and information. Arguably the best dancer in the school alongside Maya. She will try and gather information on Sveta's activities.
 !! will try and blackmail Sveta into either giving up if she learns if she's has dirty secrets such as prostitution, slut rep, etc or passing the information to Rudolph to destroy her career to remove her as competition.
+$npc_img_path['A<<npctemp>>'] = 'images/characters/ballet'
 
-!! NPC temp: 3503 - Tanis
+npctemp = 3503
 !! Tanis Komarova - Bitchy dancer who thinks she''s already the Principle Dancer. Age 17. Future concept as the class bully to other dancers and students.
+$npc_img_path['A<<npctemp>>'] = 'images/characters/ballet' 
 
-!! NPC temp: 3504 - Galina
+npctemp = 3504
 !! Galina Molchalina - Quiet and shy student, age 16. Highly secretive and doesn't engage with the class, she also has a nervous personality as if she's afraid. This comes from her family being marked as 'radicals' by the old KGB and under constant watch from FSB even to this day.
+$npc_img_path['A<<npctemp>>'] = 'images/characters/ballet' 
 
-!! NPC temp: 3505 - Taisiya
+npctemp = 3505 
 !! Taisiya Lebedeva - The eldest student, and an elegant beauty, Age 18. A quiet, but captivating beauty who has a enchanting charismatic presence that men can't keep their eyes off her leading to bitchy remarks from other girls. 
 !! She''s oblivous to her beauty instead focusing on acting and dance. (side note: surname is one of the most common in St P.), she's got a strong religous personality.
-!! Malta Aurelie
-
-!! NPC temp: 3506 - Nikita
-!! Nikita Volkova - Bronya''s daughter. Age 16. Keep fit fanatic, and does tap, ballet, etc. As Bronya's daughter she's been given privileged access to the school, whilst no great talent she's still one of the better dance students at the school but just not at ballet despite Bronya's wishes.
+!! Character model: Malta Aurelie
+$npc_img_path['A<<npctemp>>'] = 'images/characters/ballet'
 
-!! NPC temp: 3507 - Gasha
-!! Gasha Morozova - The youngest in the class at 15, close friend of Nikita as the grew up in the same village. Nikita and Galina are often seen in each others company in the local coffee shop and rarely seen alone leading to rumours. She''s a bit of a foodie, and love sweet things which conflicts with keeping in shape for her dance career.
+npctemp = 3506
+!! Nikita Volkova - Bronya''s daughter. Age 16. Keep fit fanatic, and does tap, ballet, etc. As Bronya's daughter she's been given privileged access to the school, whilst not a great talent she's still one of the best dance students at the school but just not at ballet despite Bronya's hopes.
+$npc_img_path['A<<npctemp>>'] = 'images/characters/ballet'
 
 npctemp = 3507
 $npc_firstname['A<<npctemp>>'] = 'Gasha'
@@ -66,14 +74,18 @@ $npc_haircolour['A<<npctemp>>'] = 'Brunette'
 $npc_eyecolour['A<<npctemp>>'] = 'Blue'
 $npc_height['A<<npctemp>>'] = 145
 $npc_weight['A<<npctemp>>'] = 40 
-
-
-!! NPC temp: 3508 - Calina
-!! NPC temp: 3509 - Ruza
+$npc_img_path['A<<npctemp>>'] = 'images/characters/pushkin/gasha'
+
+!! Calina
+npctemp = 3508 
+$npc_img_path['A<<npctemp>>'] = 'images/characters/ballet'
+!! Ruza
+npctemp = 3509 
+$npc_img_path['A<<npctemp>>'] = 'images/characters/ballet'
 !! Calina and Ruza Sokolova - Twin dancers. Not interested in ballet, but took the course to further their education into becoming dancers. Age 17. They also professional models with a Moscow agency. 
 !! Adel and Alina Fakhteeva twins?
 
-!! Staff
+!! Ballet Staff 
 
 npctemp = 3510
 $npc_firstname['A<<npctemp>>'] = 'Rudolf'
@@ -90,25 +102,27 @@ npc_sexskill['A<<npctemp>>'] = 2
 npc_intel['A<<npctemp>>'] = 67
 hotcat_rating['A<<npctemp>>'] = 8
 npc_spermpot['A<<npctemp>>'] = 15000
+$npc_img_path['A<<npctemp>>'] = 'images/characters/pushkin/rudolph'
 
-
-!! NPC temp: 3511 - Biserka
 !! class teacher: Biserka Ananiashvili
+npctemp = 3511
+$npc_img_path['A<<npctemp>>'] = 'images/characters/ballet'
 
-!! NPC temp: 3512 - Sofia
 !! class teacher/pianist: Sofia Solovyova
+npctemp = 3512
+$npc_img_path['A<<npctemp>>'] = 'images/characters/ballet'
 
-!! NPC temp: 3513 - Bronya 
 !! Residential Warden: Bronya Volkova and former violinist, strict but fair has two daughters with Nikita being the youngest training to be a ballet dancer and her eldest in Germany training to be a surgeon. 
-
-npc_temp = 3513
+npctemp = 3513 
 $npc_firstname['A<<npctemp>>'] = 'Bronya'
 $npc_nickname['A<<npctemp>>'] = 'Bronya '
 $npc_lastname['A<<npctemp>>'] = 'Volkova'
 $npc_usedname['A<<npctemp>>'] = 'Bronya'
+gs 'npcstaticdefaults', 'defaults'
+$npc_img_path['A<<npctemp>>'] = 'images/characters/ballet'
 
 !! NPC temp: 3514 - Physio - Pelageya Makarova
- 
+
 !! Make up teacher: Rada Egorova, the teacher never bothers to tell the class after a week. Former stage make up artist, beautician and scatterbrained.
 
 !! Staff Physio -  Syuzanna Zakharova / Klavdii Frolov (Klavdii is a pun)
@@ -117,6 +131,7 @@ $npc_usedname['A<<npctemp>>'] = 'Bronya'
 !! Names f: Boleslava Grigoreva, Esfir Mikhaylova, Gavriila Makarova (warrior),Yustina Vinogradova
 !! Names m: Ipatiy Novikov, Venedikt Sorokin, Ony Volkov, Kazimir Sokolov
 
+killvar 'npctemp'
 --- ballet_npc ---------------------------------
 
 

+ 24 - 9
locations/ballet_secrets.qsrc

@@ -4,7 +4,7 @@
 !! Version: .01
 !! Author: Hooded Silence
 !! A dance shop which includes ballet, gymnastics and physio-therapy sources. Alternative path to ballet or dance career in second year and first.
-!! TBC - NPCs to be created
+!! TODO: - NPCs to be created
 
 $default_img_path = 'locations/pushkin/ballet_secrets/'
 
@@ -37,7 +37,6 @@ if $ARGS[0] = 'init':
 			act 'Swipe membership card': gt 'ballet_secrets', 'reception'
 		end
 	end
-
 end
 
 !! Intro
@@ -55,7 +54,7 @@ if $ARGS[0] = 'first_visit':
 	'The woman smiles warmly, "Ah you are the new students for this year?" she claps her hands and then takes yours, "Come, come we must measure your feet and order your shoes"'
 	'Before you say anything she''s dragging you through the shop towards the back we are are greeted by a wall of shoes and there is pictures on the wall signed by dancers with shoes next to them. You look at the woman.'
 	'"Yes, they are all dancers who are or have been clients of our establishment", she noticed your gaze and explains with pride."We will only provide the best for the school."'
-	!! Set up gate for sponsored or not, not implemented system needs to be added to the end of year assessment.
+	!! TODO:  Set up gate for sponsored or not, not implemented system needs to be added to the end of year assessment.
 	'"But where are my manners I am Darya Pushkina, I am the owner of this shop and facilies" she exclaims, "now to your fitting grabbing a tape measure and fitting tools for your feet"'
 	'For the next hour Madam Pushkina bombards you with questions of whether you want leather or cotton fabric, how many satin shoes and a myriad other questions before she finally relents.'
 	'"Of course as you are aware the school is sponsoring these costs, but only for the first year she says and you will need to manage your own equipment after this.", Madame Pushkina advises.'
@@ -93,6 +92,7 @@ if $ARGS[0] = 'reception':
 		!! act 'Attend a gymnastics class.': gt 'ballet_secrets', 'gymnastics_courses'
 		!! act 'Attend a dance class': gt 'ballet_secrets', 'ballet_courses'
 		act 'Attend a yoga class': gt 'ballet_secrets', 'yoga_courses'
+		!! act 'Look at jobs board': gt 'ballet_secrets', 'jobs'
 	elseif hour >= 16:
 		'All the evening classes have started today, you need to be here before 16:00 to ensure you can attend.'
 	end
@@ -131,7 +131,7 @@ end
 if $ARGS[0] = 'changing_room':
 	menu_off = 0
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
-	$location_type = 'private'
+	$location_type = 'public'
 	$locclass = 'changingroom'
 	gs 'themes', 'indoors'
 	minut += 5
@@ -187,7 +187,7 @@ if $ARGS[0] = 'changing_room':
 			act 'Continue': menu_off = 0 & gt 'ballet_secrets', 'changing_room'
 		end
 	end
-	dynamic $tampon
+	gs 'core_library', 'bathroom'  
 end
 
 !! Physiotherapy
@@ -200,7 +200,7 @@ if $ARGS[0] = 'physio':
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
 
-	!! write attendance spiel 
+	!! TODO: write attendance spiel 
 	act 'Leave': gt 'pushkin_sq'
 end
 
@@ -215,11 +215,12 @@ if $ARGS[0] = 'gymnastics_courses':
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
 
-	!! write attendance spiel and some random reactions for post-exercise such that was a great workout, you didn''t feel you did well today
+	!! TODO: write attendance spiel and some random reactions for post-exercise such that was a great workout, you didn''t feel you did well today
 	act 'Leave': gt 'pushkin_sq'
 end
 
 !! Ballet Courses Easy, Intermediate and advanced
+
 if $ARGS[0] = 'ballet_courses':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
@@ -228,9 +229,19 @@ if $ARGS[0] = 'ballet_courses':
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
+	if balletqw['ballet_session'] ! daystart:
+		lesson_tier = rand(1,5)
+
+
+		killvar 'lesson_tier'
+		act 'Return to the studio reception': gt 'ballet_secrets', 'reception'
+	else 
+		'There is another fitness class in progress and no more ballet sessions today.'
+	end
+	act 'Return to the studio reception': gt 'ballet_secrets', 'reception'
 end
 
-	!! Gymnastics
+!! Yoga class
 
 if $ARGS[0] = 'yoga_courses':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
@@ -277,6 +288,10 @@ if $ARGS[0] = 'yoga_courses':
 	act 'Return to the studio reception': gt 'ballet_secrets', 'reception'
 end 
 
+if $ARGS[0] = 'jobs':
+	!! TODO: Add ad hoc dance or promo events.
+end
+
 !! Shopping
 if $ARGS[0] = 'clothing':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
@@ -289,7 +304,7 @@ if $ARGS[0] = 'clothing':
 	act 'Leave': gt 'pushkin_sq'
 end
 
-!! Custom Tutus for quests/shows, ballet shoe fitting, clothing, physio items, portable ballet equipment (barre) etc.
+!! TODO: Custom Tutus for quests/shows, ballet shoe fitting, clothing, physio items, portable ballet equipment (barre) etc.
 if $ARGS[0] = 'quest':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'

+ 2 - 3
locations/brother.qsrc

@@ -796,7 +796,6 @@ if $ARGS[0] = 'brotherSexStart':
 				*clr & cla
 				minut += 5
 				pcs_horny += 10
-				brotherfuck += 1
 				npc_rel['A34'] += 5
 				gs 'boyStat', 'A34'
 				gs 'cum_call', 'face', 'A34', 1
@@ -848,11 +847,11 @@ if $ARGS[0] = 'fuckvaginal':
 end
 
 if $ARGS[0] = 'fuckanal':
-	brotherfuck += 1
+	brotheranal += 1
 	npc_rel['A34'] += 5
 	*clr & cla
 	pcs_horny += 10
-	if brotherSex < 8:brotherSex = 8
+	if brotherSex < 8: brotherSex = 8
 	gs 'boyStat', 'A34'
 	gs 'arousal', 'anal', 5, 'incest'
 	gs 'arousal', 'end'

+ 1 - 1
locations/brother_shower_sex.qsrc

@@ -345,7 +345,7 @@ if $ARGS[0] = 'brother_shower_anal_vagv_analv':
 	'<center><img <<$set_imgh>> src="images/shared/home/bathroom/brothershowersex2.jpg"></center>'
 	'Kolka looks at you. You know he wants to go further, and you want to do more than a blowjob too, but you know you can''t.'
 	*nl
-	'"We have to stop. I want to do more, but if we continue... if I lose my virginity, then mother will kill me."' 
+	'"We have to stop. I want to do more, but if we continue... if I lose my virginity, then <<$npc_nickname[''A29'']>> will kill me."' 
 	'Kolka looks confused, and with a hint of pleading in his voice says "But... I don''t get it. How would she know?"'
 	'You are momentarily surprised he doesn''t know before realizing that he has no reason to know. "Why do you think I have to go to the doctors every month? I have to get checked."'
 	'Kolka thinks for a moment before smiling. "Are my grades good enough to become a doctor?"'

+ 1 - 1
locations/clothing.qsrc

@@ -1712,7 +1712,7 @@ if $args[0] = 'school_check':
 			'<font color="blue">This uniform complies with the school regulations on skirt length. Nobody in school would be offended by you wearing it.</font>'
 		end
 	elseif CloSkirtShortness = 5 and CloThinness < 5 and CloBra = 0:
-		if CloInhibit >= 35:
+		if CloInhibit >= 35 or CloTopCut = 4:
 			'<font color="red">This uniform slightly breaches the school uniform regulations and it is too risqué. Everybody in school apart from the gopniks will think that you''re a slut.</font>'
 		elseif CloStyle = 2:
 			'<font color="blue">This uniform slightly breaches the school regulations on skirt length and is of a style that only the Gopniks will approve of.</font>'	

+ 10 - 5
locations/clothing_attributes.qsrc

@@ -277,11 +277,16 @@ if $ARGS[0] ! 'allure_swimsuit' and $ARGS[0] ! 'allure_bikinis' and $ARGS[0] ! '
 	end
 end
 
-if CloTopCut > 1:
-	if tits = 2 or tits = 3: CloTopCut += 1
-	if tits >= 4: CloTopCut += 2
-	if CloTopCut > 2 and tits >=6: CloTopCut += 1
-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
+!!	if tits >= 4: CloTopCut += 2
+!!	if CloTopCut > 2 and tits >=6: CloTopCut += 1
+!!end
+!!if CloTopCut > 4: CloTopCut = 4
 
 --- clothing_attributes ---------------------------------
 

+ 5 - 5
locations/emp_functions.qsrc

@@ -115,8 +115,8 @@ if $ARGS[0] = 'gen_schedule':
 				end	
 				killvar '$transient_tb'
 			else
-				 i_day += 1
-				 jump 'jmp_day_create'
+				i_day += 1
+				jump 'jmp_day_create'
 			end
 			i_hour += 1
             if i_hour <=  mod_max_hour: jump 'jmp_hour_create'
@@ -242,11 +242,11 @@ if $ARGS[0] = 'disp_evt':
 		act_tracker = 0
 		act_found = 0
 		:jmp_act_create			
-			 if evt_hour[act_tracker] = hour or evt_hour[act_tracker] = (hour -1): 
+			if evt_hour[act_tracker] = hour or evt_hour[act_tracker] = (hour -1): 
 				act_found = 1
 				act_idx = act_tracker 				
-			 end
-			 act_tracker +=1 
+			end
+			act_tracker +=1 
 		if act_found = 0:
 			if act_tracker < arrsize('evt_event'): jump 'jmp_act_create'
 		end

+ 2 - 2
locations/gad_beach.qsrc

@@ -504,13 +504,13 @@ if $ARGS[0] = 'arrive_Mira_already_there':
 	gs 'stat'
 
 	act 'Continue':
-		if Miraswimday ! daystart:
+		if MiraVars['swimday'] ! daystart:
 			*clr & cla
 			'<center><img <<$set_imgh>> src="images/characters/gadukino/mira/mirariver.jpg"></center>'
 			*nl
 			'"<<$pcs_nickname>>, why are you moping about on the shore? Get in the water and swim with me?" - Mira called out to you as she waded into the river.'
 			minut += 1
-			Miraswimday = daystart
+			MiraVars['swimday'] = daystart
 			gs 'stat'
 			act 'Agree and get changed':
 				*clr & cla

+ 4 - 4
locations/gad_forest.qsrc

@@ -94,10 +94,10 @@ if $ARGS[0] = 'forest_edge':
 			gt 'gad_forest', 'forest_edge'
 		end
 	elseif locat['A60'] = 60:
-		if mirapickingtalk = 0 and miratalkday ! daystart: gt 'gad_forest_events', 'mira_picking_talk'
-		if miranudetalk = 0 and miratalkday ! daystart: gt 'gad_forest_events', 'mira_nude_talk'
+		if MiraVars['pickingtalk'] = 0 and MiraVars['talkday'] ! daystart: gt 'gad_forest_events', 'mira_picking_talk'
+		if MiraVars['nudetalk'] = 0 and MiraVars['talkday'] ! daystart: gt 'gad_forest_events', 'mira_nude_talk'
 		! stripping requires there to be no picnic going on, to have clothes on, for there to be no clothes already abandoned at the forest_edge, between april and october and already talked to Mira about being naked in the forest
-		if forestpicnic = 0 and $clothingworntype ! 'nude' and clothesAtLocation = 0 and month >= 4 and month <= 10 and hour >= 8 and hour <= 20 and miranudetalk = 1 and miratalkday ! daystart: gt 'gad_forest_events', 'mira_nude_event'
+		if forestpicnic = 0 and $clothingworntype ! 'nude' and clothesAtLocation = 0 and month >= 4 and month <= 10 and hour >= 8 and hour <= 20 and MiraVars['nudetalk'] = 1 and MiraVars['talkday'] ! daystart: gt 'gad_forest_events', 'mira_nude_event'
 	! Events without Mira
 	else
 		if npc_known['A60'] = 1 and locat['A60'] ! 60 and hour >= 8 and hour <= 10:
@@ -584,7 +584,7 @@ if $ARGS[0] = 'stripping':
 		! Mira only goes to the forest edge
 		if locat['A60'] = 60 and $forest_args1 = 'forest_edge':
 			! stripping with Mira requires completing talking to her about it already and doing their nude event in the forest already
-			if miranudetalk = 2:
+			if MiraVars['nudetalk'] = 2:
 				act 'Strip Naked with Mira (0:05)':
 					*clr & cla
 					menu_off = 1

+ 6 - 6
locations/gad_forest_events.qsrc

@@ -57,8 +57,8 @@ if $ARGS[0] = 'mira_picking_talk':
 	*clr & cla
 	menu_off = 1
 	minut += 15
-	mirapickingtalk = 1
-	miratalkday = daystart
+	MiraVars['pickingtalk'] = 1
+	MiraVars['talkday'] = daystart
 	npc_rel['A60'] += 2
 	gs 'gad_forest', 'bushcraft', 'forest_edge'
 	gs 'stat'
@@ -78,8 +78,8 @@ if $ARGS[0] = 'mira_nude_talk':
 	*clr & cla
 	menu_off = 1
 	minut += 15
-	miranudetalk = 1
-	miratalkday = daystart
+	MiraVars['nudetalk'] = 1
+	MiraVars['talkday'] = daystart
 	npc_rel['A60'] += 2
 	gs 'gad_forest', 'bushcraft', 'forest_edge'
 	gs 'stat'
@@ -97,8 +97,8 @@ if $ARGS[0] = 'mira_nude_event':
 	*clr & cla
 	menu_off = 1
 	minut += 15
-	miranudetalk = 2
-	miratalkday = daystart
+	MiraVars['nudetalk'] = 2
+	MiraVars['talkday'] = daystart
 	npc_rel['A60'] += 2
 	gs 'gad_forest', 'bushcraft', 'forest_edge'
 	pcs_horny += 10

+ 0 - 1
locations/gad_gpyard.qsrc

@@ -476,7 +476,6 @@ if $ARGS[0] = 'cikl':
 	!! vovan, from 1.2.5
 	hunters_check = 0
 	mushroom_pickers = 0
-	mira_go_river = 0
 	forestpicnic = 0
 
 	!! new grandparent chore stuff, for 0.8.0

+ 8 - 8
locations/gad_prostitutes.qsrc

@@ -22,7 +22,7 @@ if $ARGS[0] = 'start':
 	end
 
 	if locat['A60'] ! 80 and MiraVars['QW'] > 15: 'You look around for Mira but don''t see her here. So she must be doing something else right now.'
-	!if GadBoy['river_gang'] = 2 and (mirapimp = 0 or mirapimp = 2):
+	!if GadBoy['river_gang'] = 2 and (MiraVars['pimp'] = 0 or MiraVars['pimp'] = 2):
 	!	if PCloStyle <> 4:
 	!		'You are not wearing the right clothes to prostitute yourself.'
 	!	elseif pcs_sleep <= 0:
@@ -35,20 +35,20 @@ if $ARGS[0] = 'start':
 		'It is not a good time of day for prostitution. Try coming back later in the evening.'
 	else
 		! event to remove Sveta from being miras pimp if she becomes the boys slut, the village whore
-		if locat['A60'] = 80 and mirapimp = 1 and (npc_QW['A63'] >= 11 or GadBoy['river_gang'] = 2): 
+		if locat['A60'] = 80 and MiraVars['pimp'] = 1 and (npc_QW['A63'] >= 11 or GadBoy['river_gang'] = 2): 
 			gs 'gad_prostitutes', 'mira_rebels'
 		else
 			if locat['A60'] = 80:
 				'You see Mira standing below a streetlight a little way down the road.'
 
 				! event to become miras pimp if not the boys slut, not the village whore
-				if mirapimp = 0 and npc_QW['A63'] < 11 and GadBoy['river_gang'] = 0: gt 'gad_prostitutes', 'pimp_mira'
+				if MiraVars['pimp'] = 0 and npc_QW['A63'] < 11 and GadBoy['river_gang'] = 0: gt 'gad_prostitutes', 'pimp_mira'
 				
 				! events to prostitute just Mira
 				act 'Watch Mira prostitute herself': gt 'gad_prostitutes', 'just_mira'
 
 				! can do prostitution with Mira if Sveta is the village whore - this can be achieved by doing Mitka''s questline
-				!if GadBoy['river_gang'] = 2 and (mirapimp = 0 or mirapimp = 2) and PCloStyle = 4 and pcs_sleep > 0:
+				!if GadBoy['river_gang'] = 2 and MiraVars['pimp'] ! 0 and PCloStyle = 4 and pcs_sleep > 0:
 					! act 'Prostitute yourself with Mira':gt 'gad_prostitutes', 'with_mira'
 				!end
 			end
@@ -67,7 +67,7 @@ if $ARGS[0] = 'pimp_mira':
 		act 'Make Mira your prostitute (<<will_cost>> Willpower)':
 			*clr & cla
 
-			mirapimp = 1
+			MiraVars['pimp'] = 1
 			minut += 5
 			gs 'willpower', 'misc', 'force', 'hard'
 			gs 'willpower', 'pay', 'force'
@@ -92,7 +92,7 @@ end
 
 if $ARGS[0] = 'mira_rebels':
 	*clr & cla
-	mirapimp = 2
+	MiraVars['pimp'] = 2
 	gs 'prostitution_functions', 'set_gadukion_prostitute'	
  	minut += 5
 	gs 'stat'
@@ -192,7 +192,7 @@ if $ARGS[0] = 'watch_from_hiding':
 
 		act 'Finish':
 			*clr & cla
-			if mirapimp = 1: money += 200
+			if MiraVars['pimp'] = 1: money += 200
 			gs 'arousal', 'end'
 			gs 'stat'
 
@@ -222,7 +222,7 @@ if $ARGS[0] = 'watch_close':
 
 		act 'Finish':
 			*clr & cla
-			if mirapimp = 1: money += 200
+			if MiraVars['pimp'] = 1: money += 200
 			gs 'arousal', 'end'
 			gs 'stat'
 

+ 1 - 1
locations/gschool_lessons.qsrc

@@ -91,7 +91,7 @@ if $ARGS[0] = 'uniform_check':
 			'<font color="blue">This uniform complies with the school regulations on skirt length.</font>'
 		end
 	elseif PCloSkirt = 5 and PCloThinness < 5 and PCloBra = 0:
-		if PCloInhibit >= 35:
+		if PCloInhibit >= 35 or PCloTopCut = 4:
 			grupvalue[1] -= 1
 			grupvalue[2] -= 1
 			grupvalue[3] -= 1

+ 15 - 7
locations/katja_dorm.qsrc

@@ -1352,15 +1352,19 @@ if $ARGS[0] = 'relationship_talk':
 		act 'Friends with benefits':
 			cla & *clr
 			minut += 5
-			if katjaQW['liberated'] = 0: katjaQW['liberated'] = 1
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
 			'"Sure, and it''s fun. I want to continue doing that. We are what you call ''friends with benefits''," you tell her.'
 			'"Okay," she answers. "You have brought a lot of excitement into my life, and I would like that to continue."'
 			'"Great," you answer. "So, we will continue to be friends, have sex with each other and whomever else we like," you say.'
-			'Katja takes a moment before realizing the implication of what you just said. "Are you telling me that I should go out and find other people to have sex with?"'
-			'"If you want to; I''m not keeping you from doing that. I fuck other people and have fun with it. So should you, if you want," you answer.'
-			'"Okay. I will think about it. But now I want to go to bed," Katja replies.'
+			if katjaQW['liberated'] = 0:
+				katjaQW['liberated'] = 1
+				'Katja takes a moment before realizing the implication of what you just said. "Are you telling me that I should go out and find other people to have sex with?"'
+				'"If you want to; I''m not keeping you from doing that. I fuck other people and have fun with it. So should you, if you want," you answer.'
+				'"Okay. I will think about it. But now I want to go to bed," Katja replies.'
+			else
+				'"Remember to tell me any good stories about the people you fuck. Then I will do the same" Katja says.'
+			end
 			'You say your goodbyes and leave her room.' 
 			act 'Go to the hallway': minut += 2 & gt 'uni_dorm', 'second_floor'
 		end
@@ -1413,9 +1417,13 @@ if $ARGS[0] = 'relationship_talk':
 			'"Yes, sex is fun. No reason to limit it to just one person. Just because you''re my girlfriend doesn''t mean we have to stop having sex with other people." you say. "I want us to have what you call an ''open relationship''," you tell her.'
 			'"What do you mean by that?" Katja asks.'
 			'"An open relationship is when you are in a relationship but are not bound to only have sex with your partner. You can fuck whoever you like, whenever you like, with or without your girlfriend," you explain.' 
-			'"So, you want me to have sex with other people when you are not there?" Katja asks.'
-			'"Only if you want to. But I would love to hear you tell stories about your sexual escapades, just like you love hearing mine," you say, making Katja''s face turn red.'
-			'"'+iif(katjaQW['QWstage'] >= 6 or katjaQW['anal_quest'] >=3 or katjaQW['simultanous_girls'] > 1, 'I do love it when we have fun with somebody else.', 'I guess we should try to have sex with somebody else together first.')+' You have given me some things to think about, but now I need to go to bed," Katja says, getting up and giving you a quick kiss.'
+			if katjaQW['liberated'] = 0:
+				'"So, you want me to have sex with other people when you are not there?" Katja asks.'
+				'"Only if you want to. But I would love to hear you tell stories about your sexual escapades, just like you love hearing mine," you say, making Katja''s face turn red.'
+				'"'+iif(katjaQW['QWstage'] >= 6 or katjaQW['anal_quest'] >=3 or katjaQW['simultanous_girls'] > 1, 'I do love it when we have fun with somebody else.', 'I guess we should try to have sex with somebody else together first.')+' You have given me some things to think about, but now I need to go to bed," Katja says, getting up and giving you a quick kiss.'
+			else
+				'"Remember to tell me any good stories about the people you fuck. Then I will do the same, but now I need to go to bed," Katja says, getting up and giving you a quick kiss.'
+			end
 			'"Sleep tight, my girlfriend," you say as you leave leave her room.'
 			'"Good night, my love," Katja replies.'
 			act 'Go to the hallway': minut += 2 & gt 'uni_dorm', 'second_floor'

+ 1 - 1
locations/mirafather.qsrc

@@ -95,7 +95,7 @@ else
 			elseif locat['A60'] = 80:
 				'Mira''s father tells you that she''s not home. She left without telling him where she was going.'
 
-				if mirapimp = 1:
+				if MiraVars['pimp'] = 1:
 					'Mira is not home, but you know exactly where to find her. She has been working as your prostitute on the highway.'
 				elseif MiraVars['prostitute'] > 1:
 					'Mira is not home, but you know exactly where to find her. You have seen her working as a prostitute on the highway.'

+ 2 - 2
locations/miroslava.qsrc

@@ -134,11 +134,11 @@ if $ARGS[0] = 'Start' or $ARGS[0] = '':
 			act 'Offer to go to the river': gt 'miroslava', 'offer_go_river'
 		end
 
-		if sunWeather = 1 and temper >= 15 and month >= 5 and month <= 9 and locat['A60'] ! 60 and mirapickingtalk > 0 and npc_rel['A60'] >= 5:
+		if sunWeather = 1 and temper >= 15 and month >= 5 and month <= 9 and locat['A60'] ! 60 and MiraVars['pickingtalk'] > 0 and npc_rel['A60'] >= 5:
 			act 'Offer to go to the forest': gt 'miroslava', 'offer_go_forest'
 		end
 
-		if sunWeather = 1 and temper >= 15 and month >= 5 and month <= 9 and locat['A60'] = 60 and miranudetalk > 1 and npc_rel['A60'] >= 5 and $clothingworntype ! 'nude' and forestpicnic = 0:
+		if sunWeather = 1 and temper >= 15 and month >= 5 and month <= 9 and locat['A60'] = 60 and MiraVars['nudetalk'] > 1 and npc_rel['A60'] >= 5 and $clothingworntype ! 'nude' and forestpicnic = 0:
 			if pcs_inhib >= 25 or exhibitionist_lvl > 1:
 				act 'Offer to walk naked':
 					menu_off = 1

+ 10 - 0
locations/npc_relationship.qsrc

@@ -68,8 +68,10 @@ if $ARGS[0] = 'modify':
 		npcRelSetVal = rand(1,2)
 	elseif $ARGS[2] = 'love':
 		npcRelSetVal = rand(3,4)
+		gs 'exp_gain', 'humint', rand(0,1)
 	elseif $ARGS[2] = 'adore':
 		npcRelSetVal = rand(5,6)
+		gs 'exp_gain', 'humint', rand(1,2)
 	elseif $ARGS[2] = 'dislike':
 		npcRelSetVal = 0-rand(1,2)
 	elseif $ARGS[2] = 'hate':
@@ -80,6 +82,14 @@ if $ARGS[0] = 'modify':
 	else
 		npcRelSetVal = 0
 	end
+
+	!Modify for people skill
+	if npcRelSetVal > 0:
+		npcRelSetVal += (npcRelSetVal*pcs_humint)/100
+	elseif npcRelSetVal < 0:
+		npcRelSetVal -= (npcRelSetVal*pcs_humint)/200
+	end
+
 	!Make sure the new value fits within correct range
 	npcRelSetVal += npc_rel[$ARGS[1]]
 	if npcRelSetVal > 100: npcRelSetVal=100

+ 1 - 1
locations/prostitution_functions.qsrc

@@ -87,7 +87,7 @@ if $ARGS[0] = 'set_pavlovsk_prostitute':
 end
 
 if $ARGS[0] = 'set_gadukion_prostitute':
-	if GadBoy['river_gang'] = 2 and (mirapimp = 0 or mirapimp = 2) and prostitute['full_block'] = 0:
+	if GadBoy['river_gang'] = 2 and MiraVars['pimp'] ! 1 and prostitute['full_block'] = 0:
 		prostitute['gadukino'] = 1
 		prostitute['active'] = 1
 		prostitute['payment_method'] = 1

+ 1 - 1
locations/pushkin_ballet_center.qsrc

@@ -17,6 +17,6 @@ if $ARGS[0] = '' or $ARGS[0] = 'start':
 	'You can see the apartment block that''s been converted into a residential accomodation for the school. The street always seems to be packed with cars but there is few people on the street at this time.'
 
 	act 'Press the buzzer': gt 'pushkin_ballet_res', 'warden'
-	act 'Back to street': gt 'pushkin_sq'
+	act 'Back to street': gt 'pushkin'
 end
 --- pushkin_ballet_center ---------------------------------

+ 90 - 85
locations/saveupdater.qsrc

@@ -2668,91 +2668,91 @@ end
 
 if temp_current_save_version < 00090204:
 
-	if oleg_hj						 > 0:			Oleg['hj']						= oleg_hj						&killvar 'oleg_hj'
-	if oleg_bj						 > 0:			Oleg['bj']						= oleg_bj						&killvar 'oleg_bj'
-	if oleg_bjFail				  	 > 0:			Oleg['bjFail']					= oleg_bjFail					&killvar 'oleg_bjFail'
-	if oleg_bjDeep				  	 > 0:			Oleg['bjDeep']					= oleg_bjDeep					&killvar 'oleg_bjDeep'
-	if oleg_bjFailPuke			 	 > 0:			Oleg['bjFailPuke']				= oleg_bjFailPuke			  	&killvar 'oleg_bjFailPuke'
-	if oleg_bjFailFaint				 > 0:			Oleg['bjFailFaint']				= oleg_bjFailFaint			 	&killvar 'oleg_bjFailFaint'
-	if oleg_swall					 > 0:			Oleg['swall']					= oleg_swall					&killvar 'oleg_swall'
-	if oleg_vagCumInsideUnwanted	 > 0:			Oleg['vagCumInsideUnwanted']	= oleg_vagCumInsideUnwanted 	&killvar 'oleg_vagCumInsideUnwanted'
-	if oleg_vag					  	 > 0:			Oleg['vag']						= oleg_vag						&killvar 'oleg_vag'
-	if oleg_vagCumInside		  	 > 0:			Oleg['vagCumInside']			= oleg_vagCumInside				&killvar 'oleg_vagCumInside'
-	if oleg_anal					 > 0:			Oleg['anal']					= oleg_anal					  	&killvar 'oleg_anal'
-	if oleg_analCumInside		 	 > 0:			Oleg['analCumInside']			= oleg_analCumInside		  	&killvar 'oleg_analCumInside'
-	if oleg_vagCumInsideUnwanted	 > 0:			Oleg['vagCumInsideUnwanted']	= oleg_vagCumInsideUnwanted 	&killvar 'oleg_vagCumInsideUnwanted'
-	if oleg_piss					 > 0:			Oleg['piss']					= oleg_piss					  	&killvar 'oleg_piss'
-	if oleg_doPornpos			  	 > 0:			Oleg['doPornpos']				= oleg_doPornpos				&killvar 'oleg_doPornpos'
-	if oleg_pornPos				 	 > 0:			Oleg['pornPos']					= oleg_pornPos				 	&killvar 'oleg_pornPos'
-	if nestor_bj					 > 0:			Nestor['bj']					= nestor_bj						&killvar 'nestor_bj'
-	if nestor_bjFail				 > 0:			Nestor['bjFail']				= nestor_bjFail					&killvar 'nestor_bjFail'
-	if nestor_bjDeep				 > 0:			Nestor['bjDeep']				= nestor_bjDeep					&killvar 'nestor_bjDeep'
-	if nestor_bjFailPuke			 > 0:			Nestor['bjFailPuke']			= nestor_bjFailPuke			  	&killvar 'nestor_bjFailPuke'
-	if nestor_bjFailFaint			 > 0:			Nestor['bjFailFaint']			= nestor_bjFailFaint			&killvar 'nestor_bjFailFaint'
-	if nestor_swall					 > 0:			Nestor['swall']					= nestor_swall					&killvar 'nestor_swall'
-	if nestor_vagCumInsideUnwanted	 > 0:			Nestor['vagCumInsideUnwanted'] 	= nestor_vagCumInsideUnwanted 	&killvar 'nestor_vagCumInsideUnwanted'
-	if nestor_vag					 > 0:			Nestor['vag']					= nestor_vag					&killvar 'nestor_vag'
-	if nestor_vagCumInside		  	 > 0:			Nestor['vagCumInside']			= nestor_vagCumInside			&killvar 'nestor_vagCumInside'
-	if nestor_anal					 > 0:			Nestor['anal']					= nestor_anal					&killvar 'nestor_anal'
-	if nestor_analCumInside		 	 > 0:			Nestor['analCumInside']		  	= nestor_analCumInside		  	&killvar 'nestor_analCumInside'
-	if nestor_vagCumInsideUnwanted	 > 0:			Nestor['vagCumInsideUnwanted']	= nestor_vagCumInsideUnwanted 	&killvar 'nestor_vagCumInsideUnwanted'
-	if nestor_doPornpos			  	 > 0:			Nestor['doPornpos']				= nestor_doPornpos				&killvar 'nestor_doPornpos'
-	if nestor_pornPos				 > 0:			Nestor['pornPos']				= nestor_pornPos				&killvar 'nestor_pornPos'
-	if yakov_bj						 > 0:			Yakov['bj']						= yakov_bj						&killvar 'yakov_bj'
-	if yakov_bjFail				  	 > 0:			Yakov['bjFail']					= yakov_bjFail					&killvar 'yakov_bjFail'
-	if yakov_bjDeep				  	 > 0:			Yakov['bjDeep']					= yakov_bjDeep					&killvar 'yakov_bjDeep'
-	if yakov_bjFailPuke			 	 > 0:			Yakov['bjFailPuke']				= yakov_bjFailPuke			  	&killvar 'yakov_bjFailPuke'
-	if yakov_bjFailFaint			 > 0:			Yakov['bjFailFaint']			= yakov_bjFailFaint			 	&killvar 'yakov_bjFailFaint'
-	if yakov_swall					 > 0:			Yakov['swall']					= yakov_swall					&killvar 'yakov_swall'
-	if yakov_vagCumInsideUnwanted	 > 0:			Yakov['vagCumInsideUnwanted']	= yakov_vagCumInsideUnwanted 	&killvar 'yakov_vagCumInsideUnwanted'
-	if yakov_vag					 > 0:			Yakov['vag']					= yakov_vag						&killvar 'yakov_vag'
-	if yakov_vagCumInside		  	 > 0:			Yakov['vagCumInside']			= yakov_vagCumInside			&killvar 'yakov_vagCumInside'
-	if yakov_anal					 > 0:			Yakov['anal']					= yakov_anal					&killvar 'yakov_anal'
-	if yakov_analCumInside		 	 > 0:			Yakov['analCumInside']			= yakov_analCumInside		  	&killvar 'yakov_analCumInside'
-	if yakov_vagCumInsideUnwanted	 > 0:			Yakov['vagCumInsideUnwanted']	= yakov_vagCumInsideUnwanted 	&killvar 'yakov_vagCumInsideUnwanted'
-	if yakov_doPornpos			  	 > 0:			Yakov['doPornpos']				= yakov_doPornpos				&killvar 'yakov_doPornpos'
-	if yakov_pornPos				 > 0:			Yakov['pornPos']				= yakov_pornPos				  	&killvar 'yakov_pornPos'
-	if yakov_hj						 > 0:			Yakov['hj']						= yakov_hj						&killvar 'yakov_hj'
-	if yakov_dildo					 > 0:			Yakov['dildo']					= yakov_dildo					&killvar'yakov_dildo'
-	if rentLeft						 > 0:		  shared_apt['rentLeft'] 		 	= rentLeft						& killvar 'rentLeft'
-	if weekNum 						 > 0:		  shared_apt['weekNum'] 		 	= weekNum 						& killvar 'weekNum'
-	if rentWeekNum					 > 0:		  shared_apt['rentWeekNum']		 	= rentWeekNum 					& killvar 'rentWeekNum'
-	if servitudeLvl					 > 0:		  shared_apt['servitudeLvl']	 	= servitudeLvl 					& killvar 'servitudeLvl'
-	if servicePaid					 > 0:		  shared_apt['servicePaid']		 	= servicePaid 					& killvar 'servicePaid'
-	if cashPaid			 	 		 > 0:		  shared_apt['cashPaid']		 	= cashPaid 						& killvar 'cashPaid'
-	if pavSharedAptEnabled			 > 0: 		  shared_apt['enabled']			 	= pavSharedAptEnabled 			& killvar 'pavSharedAptEnabled'
-	if pavIntroStep					 > 0:		  shared_apt['pavIntroStep']	 	= pavIntroStep 					& killvar 'pavIntroStep'
-	if rentWeekly					 > 0:		  shared_apt['rentWeekly']		 	= rentWeekly 					& killvar 'rentWeekly'
-	if price						 > 0:		  shared_apt['price']			 	= price 						& killvar 'price'
-	if vcard						 > 0:		  mc_inventory['vintage_card']	 	= vcard 						& killvar 'vcard'
-	if card							 > 0:		  mc_inventory['card']			 	= card 							& killvar 'card'
-	if sexCh						 > 0:		  shared_apt['sexCh']			 	= sexCh 						& killvar 'sexCh'
-	if actionR						 > 0:		  shared_apt['actionR']			 	= actionR 						& killvar 'actionR'
-	if seenAd 						 > 0:		  shared_apt['seenAd']			 	= seenAd 						& killvar 'seenAd'
-	if gobelen						 > 0:		  mc_inventory['tapestry'] 		 	= gobelen 						& killvar 'gobelen'
-	if GarTorgItem					 > 0:		  mc_inventory['trinkets_garage']	= GarTorgItem 					& killvar 'GarTorgItem'
-	if TovarL						 > 0:		  mc_inventory['trinkets_home']  	= TovarL 						& killvar 'TovarL'
- 	if perenGarTov > 0: killvar 'perenGarTov'
-	if mc_inventory['refill_bottle'] > 0: 		mc_inventory['refill_bottle_water'] = mc_inventory['refill_bottle']	& mc_inventory['refill_bottle'] = 1
-    killvar'kuhdrova'
-	if Oleg['analCumInside']           > 0: Oleg['cumAnal']                  = Oleg['analCumInside']
-	if Oleg['analCumInside']           > 0: Oleg['analCumInside']           -= Oleg['analCumInsideUnwanted']
-	if Oleg['analCumInsideUnwanted']   > 0: Oleg['analCumInsideUnwanted']   -= Oleg['analCumInside']
-	if Nestor['analCumInside']         > 0: Nestor['cumAnal']                = Nestor['analCumInside']
-	if Nestor['analCumInside']         > 0: Nestor['analCumInside']         -= Nestor['analCumInsideUnwanted']
-	if Nestor['analCumInsideUnwanted'] > 0: Nestor['analCumInsideUnwanted'] -= Nestor['analCumInside']
-	if Yakov['analCumInside']          > 0: Yakov['cumAnal']                 = Yakov['analCumInside']
-	if Yakov['analCumInside']          > 0: Yakov['analCumInside']          -= Yakov['analCumInsideUnwanted']
-	if Yakov['analCumInsideUnwanted']  > 0: Yakov['analCumInsideUnwanted']  -= Yakov['analCumInside']
-	if Oleg['vagCumInside']            > 0: Oleg['cumVag']                   = Oleg['vagCumInside']
-	if Oleg['vagCumInside']            > 0: Oleg['vagCumInside']            -= Oleg['vagCumInsideUnwanted']
-	if Oleg['vagCumInsideUnwanted']    > 0: Oleg['vagCumInsideUnwanted']    -= Oleg['vagCumInside']
-	if Nestor['vagCumInside']          > 0: Nestor['cumVag']                 = Nestor['vagCumInside']
-	if Nestor['vagCumInside']          > 0: Nestor['vagCumInside']          -= Nestor['vagCumInsideUnwanted']
-	if Nestor['vagCumInsideUnwanted']  > 0: Nestor['vagCumInsideUnwanted']  -= Nestor['vagCumInside']
-	if Yakov['vagCumInside']           > 0: Yakov['cumVag']                  = Yakov['vagCumInside']
-	if Yakov['vagCumInside']           > 0: Yakov['vagCumInside']           -= Yakov['vagCumInsideUnwanted']
-	if Yakov['vagCumInsideUnwanted']   > 0: Yakov['vagCumInsideUnwanted']   -= Yakov['vagCumInside']
+	if oleg_hj						> 0:			Oleg['hj']						= oleg_hj						&killvar 'oleg_hj'
+	if oleg_bj						> 0:			Oleg['bj']						= oleg_bj						&killvar 'oleg_bj'
+	if oleg_bjFail					> 0:			Oleg['bjFail']					= oleg_bjFail					&killvar 'oleg_bjFail'
+	if oleg_bjDeep					> 0:			Oleg['bjDeep']					= oleg_bjDeep					&killvar 'oleg_bjDeep'
+	if oleg_bjFailPuke				> 0:			Oleg['bjFailPuke']				= oleg_bjFailPuke				&killvar 'oleg_bjFailPuke'
+	if oleg_bjFailFaint				> 0:			Oleg['bjFailFaint']				= oleg_bjFailFaint				&killvar 'oleg_bjFailFaint'
+	if oleg_swall					> 0:			Oleg['swall']					= oleg_swall					&killvar 'oleg_swall'
+	if oleg_vagCumInsideUnwanted	> 0:			Oleg['vagCumInsideUnwanted']	= oleg_vagCumInsideUnwanted 	&killvar 'oleg_vagCumInsideUnwanted'
+	if oleg_vag						> 0:			Oleg['vag']						= oleg_vag						&killvar 'oleg_vag'
+	if oleg_vagCumInside			> 0:			Oleg['vagCumInside']			= oleg_vagCumInside				&killvar 'oleg_vagCumInside'
+	if oleg_anal					> 0:			Oleg['anal']					= oleg_anal						&killvar 'oleg_anal'
+	if oleg_analCumInside			> 0:			Oleg['analCumInside']			= oleg_analCumInside			&killvar 'oleg_analCumInside'
+	if oleg_vagCumInsideUnwanted	> 0:			Oleg['vagCumInsideUnwanted']	= oleg_vagCumInsideUnwanted		&killvar 'oleg_vagCumInsideUnwanted'
+	if oleg_piss					> 0:			Oleg['piss']					= oleg_piss						&killvar 'oleg_piss'
+	if oleg_doPornpos				> 0:			Oleg['doPornpos']				= oleg_doPornpos				&killvar 'oleg_doPornpos'
+	if oleg_pornPos					> 0:			Oleg['pornPos']					= oleg_pornPos				 	&killvar 'oleg_pornPos'
+	if nestor_bj					> 0:			Nestor['bj']					= nestor_bj						&killvar 'nestor_bj'
+	if nestor_bjFail				> 0:			Nestor['bjFail']				= nestor_bjFail					&killvar 'nestor_bjFail'
+	if nestor_bjDeep				> 0:			Nestor['bjDeep']				= nestor_bjDeep					&killvar 'nestor_bjDeep'
+	if nestor_bjFailPuke			> 0:			Nestor['bjFailPuke']			= nestor_bjFailPuke				&killvar 'nestor_bjFailPuke'
+	if nestor_bjFailFaint			> 0:			Nestor['bjFailFaint']			= nestor_bjFailFaint			&killvar 'nestor_bjFailFaint'
+	if nestor_swall					> 0:			Nestor['swall']					= nestor_swall					&killvar 'nestor_swall'
+	if nestor_vagCumInsideUnwanted	> 0:			Nestor['vagCumInsideUnwanted'] 	= nestor_vagCumInsideUnwanted	&killvar 'nestor_vagCumInsideUnwanted'
+	if nestor_vag					> 0:			Nestor['vag']					= nestor_vag					&killvar 'nestor_vag'
+	if nestor_vagCumInside			> 0:			Nestor['vagCumInside']			= nestor_vagCumInside			&killvar 'nestor_vagCumInside'
+	if nestor_anal					> 0:			Nestor['anal']					= nestor_anal					&killvar 'nestor_anal'
+	if nestor_analCumInside			> 0:			Nestor['analCumInside']		  	= nestor_analCumInside			&killvar 'nestor_analCumInside'
+	if nestor_vagCumInsideUnwanted	> 0:			Nestor['vagCumInsideUnwanted']	= nestor_vagCumInsideUnwanted	&killvar 'nestor_vagCumInsideUnwanted'
+	if nestor_doPornpos				> 0:			Nestor['doPornpos']				= nestor_doPornpos				&killvar 'nestor_doPornpos'
+	if nestor_pornPos				> 0:			Nestor['pornPos']				= nestor_pornPos				&killvar 'nestor_pornPos'
+	if yakov_bj						> 0:			Yakov['bj']						= yakov_bj						&killvar 'yakov_bj'
+	if yakov_bjFail					> 0:			Yakov['bjFail']					= yakov_bjFail					&killvar 'yakov_bjFail'
+	if yakov_bjDeep					> 0:			Yakov['bjDeep']					= yakov_bjDeep					&killvar 'yakov_bjDeep'
+	if yakov_bjFailPuke				> 0:			Yakov['bjFailPuke']				= yakov_bjFailPuke				&killvar 'yakov_bjFailPuke'
+	if yakov_bjFailFaint			> 0:			Yakov['bjFailFaint']			= yakov_bjFailFaint				&killvar 'yakov_bjFailFaint'
+	if yakov_swall					> 0:			Yakov['swall']					= yakov_swall					&killvar 'yakov_swall'
+	if yakov_vagCumInsideUnwanted	> 0:			Yakov['vagCumInsideUnwanted']	= yakov_vagCumInsideUnwanted 	&killvar 'yakov_vagCumInsideUnwanted'
+	if yakov_vag					> 0:			Yakov['vag']					= yakov_vag						&killvar 'yakov_vag'
+	if yakov_vagCumInside			> 0:			Yakov['vagCumInside']			= yakov_vagCumInside			&killvar 'yakov_vagCumInside'
+	if yakov_anal					> 0:			Yakov['anal']					= yakov_anal					&killvar 'yakov_anal'
+	if yakov_analCumInside			> 0:			Yakov['analCumInside']			= yakov_analCumInside			&killvar 'yakov_analCumInside'
+	if yakov_vagCumInsideUnwanted	> 0:			Yakov['vagCumInsideUnwanted']	= yakov_vagCumInsideUnwanted	&killvar 'yakov_vagCumInsideUnwanted'
+	if yakov_doPornpos				> 0:			Yakov['doPornpos']				= yakov_doPornpos				&killvar 'yakov_doPornpos'
+	if yakov_pornPos				> 0:			Yakov['pornPos']				= yakov_pornPos					&killvar 'yakov_pornPos'
+	if yakov_hj						> 0:			Yakov['hj']						= yakov_hj						&killvar 'yakov_hj'
+	if yakov_dildo					> 0:			Yakov['dildo']					= yakov_dildo					&killvar'yakov_dildo'
+	if rentLeft						> 0:			shared_apt['rentLeft']			= rentLeft						& killvar 'rentLeft'
+	if weekNum						> 0:			shared_apt['weekNum']			= weekNum						& killvar 'weekNum'
+	if rentWeekNum					> 0:			shared_apt['rentWeekNum']		= rentWeekNum					& killvar 'rentWeekNum'
+	if servitudeLvl					> 0:			shared_apt['servitudeLvl']		= servitudeLvl					& killvar 'servitudeLvl'
+	if servicePaid					> 0:			shared_apt['servicePaid']		= servicePaid					& killvar 'servicePaid'
+	if cashPaid			 	 		> 0:			shared_apt['cashPaid']			= cashPaid						& killvar 'cashPaid'
+	if pavSharedAptEnabled			> 0: 			shared_apt['enabled']			= pavSharedAptEnabled			& killvar 'pavSharedAptEnabled'
+	if pavIntroStep					> 0:			shared_apt['pavIntroStep']		= pavIntroStep					& killvar 'pavIntroStep'
+	if rentWeekly					> 0:			shared_apt['rentWeekly']		= rentWeekly					& killvar 'rentWeekly'
+	if price						> 0:			shared_apt['price']				= price							& killvar 'price'
+	if vcard						> 0:			mc_inventory['vintage_card']	= vcard							& killvar 'vcard'
+	if card							> 0:			mc_inventory['card']			= card							& killvar 'card'
+	if sexCh						> 0:			shared_apt['sexCh']				= sexCh							& killvar 'sexCh'
+	if actionR						> 0:			shared_apt['actionR']			= actionR						& killvar 'actionR'
+	if seenAd 						> 0:			shared_apt['seenAd']			= seenAd						& killvar 'seenAd'
+	if gobelen						> 0:			mc_inventory['tapestry']		= gobelen						& killvar 'gobelen'
+	if GarTorgItem					> 0:			mc_inventory['trinkets_garage']	= GarTorgItem					& killvar 'GarTorgItem'
+	if TovarL						> 0:			mc_inventory['trinkets_home']	= TovarL						& killvar 'TovarL'
+	if perenGarTov > 0: killvar 'perenGarTov'
+	if mc_inventory['refill_bottle'] > 0:		mc_inventory['refill_bottle_water'] = mc_inventory['refill_bottle']	& mc_inventory['refill_bottle'] = 1
+	killvar'kuhdrova'
+	if Oleg['analCumInside']			> 0: Oleg['cumAnal']					 = Oleg['analCumInside']
+	if Oleg['analCumInside']			> 0: Oleg['analCumInside']				-= Oleg['analCumInsideUnwanted']
+	if Oleg['analCumInsideUnwanted']	> 0: Oleg['analCumInsideUnwanted']		-= Oleg['analCumInside']
+	if Nestor['analCumInside']			> 0: Nestor['cumAnal']					 = Nestor['analCumInside']
+	if Nestor['analCumInside']			> 0: Nestor['analCumInside']			-= Nestor['analCumInsideUnwanted']
+	if Nestor['analCumInsideUnwanted']	> 0: Nestor['analCumInsideUnwanted']	-= Nestor['analCumInside']
+	if Yakov['analCumInside']			> 0: Yakov['cumAnal']					 = Yakov['analCumInside']
+	if Yakov['analCumInside']			> 0: Yakov['analCumInside']				-= Yakov['analCumInsideUnwanted']
+	if Yakov['analCumInsideUnwanted']	> 0: Yakov['analCumInsideUnwanted']		-= Yakov['analCumInside']
+	if Oleg['vagCumInside']				> 0: Oleg['cumVag']						 = Oleg['vagCumInside']
+	if Oleg['vagCumInside']				> 0: Oleg['vagCumInside']				-= Oleg['vagCumInsideUnwanted']
+	if Oleg['vagCumInsideUnwanted']		> 0: Oleg['vagCumInsideUnwanted']		-= Oleg['vagCumInside']
+	if Nestor['vagCumInside']			> 0: Nestor['cumVag']					 = Nestor['vagCumInside']
+	if Nestor['vagCumInside']			> 0: Nestor['vagCumInside']				-= Nestor['vagCumInsideUnwanted']
+	if Nestor['vagCumInsideUnwanted']	> 0: Nestor['vagCumInsideUnwanted']		-= Nestor['vagCumInside']
+	if Yakov['vagCumInside']			> 0: Yakov['cumVag']					 = Yakov['vagCumInside']
+	if Yakov['vagCumInside']			> 0: Yakov['vagCumInside']				-= Yakov['vagCumInsideUnwanted']
+	if Yakov['vagCumInsideUnwanted']	> 0: Yakov['vagCumInsideUnwanted']		-= Yakov['vagCumInside']
 
 
 
@@ -3098,6 +3098,11 @@ if temp_current_save_version < 00090204:
 	if mira_go_blok		! 0:	MiraVars['follow_time']		= mira_go_blok			& killvar 'mira_go_blok'
 	if mira_guest		! 0:	MiraVars['guest']			= 1						& killvar 'mira_guest'
 	if mira_guestday	! 0:	MiraVars['guestday']		= mira_guestday			& killvar 'mira_guestday'
+	if miratalkday		! 0:	MiraVars['talkday']			= miratalkday			& killvar 'miratalkday'
+	if miranudetalk		! 0:	MiraVars['nudetalk']		= miranudetalk			& killvar 'miranudetalk'
+	if mirapickingtalk	! 0:	MiraVars['pickingtalk']		= mirapickingtalk		& killvar 'mirapickingtalk'
+	if mirapimp			! 0:	MiraVars['pimp']			= mirapimp				& killvar 'mirapimp'
+	if Miraswimday		! 0:	MiraVars['swimday']			= Miraswimday			& killvar 'Miraswimday'
 	if meadow > 0:
 		gad_meadow_found = 1
 		MiraVars['meadow'] = meadow -1

+ 13 - 11
locations/sex_ev_after.qsrc

@@ -2100,27 +2100,29 @@ end
 
 
 if $ARGS[0] = 'smoke_ciga1':
-	act'Never mind': cla & gs'sex_ev_after', 'after_sex2'
+	act 'Never mind': cla & gs 'sex_ev_after', 'after_sex2'
 
 	if mc_inventory['cigarettes'] > 0 and sex_ev['angry_after'] = 0:
-		act'One of yours':gt'sex_ev_after', 'smoke_ciga2'
+		act 'One of yours':
+			sex_ev['bum_cigarette'] = 0
+			gt 'sex_ev_after', 'smoke_ciga2'
+		end
 
-		act'Play with your phone':
+		act 'Play with your phone':
+			sex_ev['bum_cigarette'] = 0
 			sex_ev['phone'] = 2
-			gt'sex_ev_after', 'smoke_ciga2'
+			gt 'sex_ev_after', 'smoke_ciga2'
 		end
 	end
 	if sex_ev['boy_in_shower'] ! 1:
-		act'Bum a cigarette':
+		act 'Bum a cigarette':
 			sex_ev['bum_cigarette'] = 1
-			mc_inventory['cigarettes'] += 1
 			gt 'sex_ev_after', 'smoke_ciga_bum'
 		end
 		
-		act'Bum a cigarette and play with your phone':
+		act 'Bum a cigarette and play with your phone':
 			sex_ev['bum_cigarette'] = 1
 			sex_ev['cigarette'] = 3
-			mc_inventory['cigarettes'] += 1
 			gt 'sex_ev_after', 'smoke_ciga_bum'
 		end
 	end
@@ -2140,7 +2142,7 @@ if $ARGS[0] = 'smoke_ciga2':
 		'You pull a cigarette from your purse and place it in your mouth, sparking it with your lighter while inhaling deeply.'
 	end
 	
-	gs'sex_ev_after', 'smoke_ciga_act'
+	gs 'sex_ev_after', 'smoke_ciga_act'
 end
 
 if $ARGS[0] = 'smoke_ciga_bum':
@@ -2172,8 +2174,8 @@ end
 
 if $ARGS[0] = 'smoke_ciga_act':
 	act'Smoke':
-		gs 'drugs', 'smoke'
-		if sex_ev['phone'] = 2:gt'sex_ev_after', 'smoke_phone'
+		gs 'drugs', 'smoke', sex_ev['bum_cigarette']
+		if sex_ev['phone'] = 2: gt'sex_ev_after', 'smoke_phone'
 		cla & *clr
 		if sex_ev['boy_in_shower'] ! 1:
 			if npc_smoker[$boy] > 0 and sex_ev['boy_smoked'] ! 1:

+ 9 - 6
locations/sex_ev_events.qsrc

@@ -305,25 +305,28 @@ if $ARGS[0] = 'offer_ciga1':
 		end
 	end
 	
-	act'Yes please':
+	act 'Yes please':
 		cla & *clr
 		'<center><img <<$set_imgh>> src="images/shared/sex/after/bed_smoke0.jpg"></center>'
 		'"Sure," you smile. <<$npc_firstname[$boy]>> hands over one with his lighter and you accept gratefully, lighting up and inhaling deeply.'
-		gs'sex_ev_after', 'smoke_ciga_act'
+		sex_ev['bum_cigarette'] = 1
+		gs 'sex_ev_after', 'smoke_ciga_act'
 	end
 	
-	act'Love one':
+	act 'Love one':
 		cla & *clr
 		'<center><img <<$set_imgh>> src="images/shared/sex/after/bed_smoke0.jpg"></center>'
 		'"I''d love one," you smile. <<$npc_firstname[$boy]>> hands over one with his lighter and you accept gratefully, lighting up and inhaling deeply.'
-		gs'sex_ev_after', 'smoke_ciga_act'
+		sex_ev['bum_cigarette'] = 1
+		gs 'sex_ev_after', 'smoke_ciga_act'
 	end
 	
-	act'Read my mind':
+	act 'Read my mind':
 		cla & *clr
 		'<center><img <<$set_imgh>> src="images/shared/sex/after/bed_smoke0.jpg"></center>'
 		'"You read my mind," you grin as <<$npc_firstname[$boy]>> hands over one with his lighter and you accept gratefully, lighting up and inhaling deeply.'
-		gs'sex_ev_after', 'smoke_ciga_act'
+		sex_ev['bum_cigarette'] = 1
+		gs 'sex_ev_after', 'smoke_ciga_act'
 	end
 	
 	if drugVars['cigarettes_used'] = 0:

+ 4 - 4
locations/transport_functions.qsrc

@@ -395,7 +395,7 @@ if $ARGS[0] = 'buy_bus_pass':
 		if money >= 100:
 			dynamic 'act ''Buy a daily bus pass (1 day - 100 <b>₽</b>)'':
 				cla
-				money -= 250
+				money -= 100
 				transportVars[''buspass_day''] = daystart + 1
 				act ''Return'': gt ''<<$loc>>'', ''<<$loc_arg>>''
 			end'
@@ -404,7 +404,7 @@ if $ARGS[0] = 'buy_bus_pass':
 		if money >= 500:
 			dynamic 'act ''Buy a weekly bus pass (7 days - 500 <b>₽</b>)'':
 				cla
-				money -= 1500
+				money -= 500
 				transportVars[''buspass_day''] = daystart + 7
 				act ''Return'': gt ''<<$loc>>'', ''<<$loc_arg>>''
 			end'
@@ -413,7 +413,7 @@ if $ARGS[0] = 'buy_bus_pass':
 		if money >= 1500:
 			dynamic 'act ''Buy a monthly bus pass (30 days - 1500 <b>₽</b>)'':
 				cla
-				money -= 5500
+				money -= 1500
 				transportVars[''buspass_day''] = daystart + 30
 				act ''Return'': gt ''<<$loc>>'', ''<<$loc_arg>>''
 			end'
@@ -422,7 +422,7 @@ if $ARGS[0] = 'buy_bus_pass':
 		if money >= 13000:
 			dynamic 'act ''Buy a yearly bus pass (365 days - 13000 <b>₽</b>)'':
 				cla
-				money -= 75000
+				money -= 13000
 				transportVars[''buspass_day''] = daystart + 365
 				act ''Return'': gt ''<<$loc>>'', ''<<$loc_arg>>''
 			end'