Browse Source

Merge branch 'dev' into galaMistress

Conflicts:
	locations/nichLivingroom.qsrc - resolved manually
Christine 5 năm trước cách đây
mục cha
commit
c43fdb8b7a

+ 1 - 0
glife.qproj

@@ -65,6 +65,7 @@
 		<Location name="body_shape"/>
 		<Location name="lact_lib"/>
 		<Location name="lact_bp"/>
+		<Location name="body_din"/>
 		<Location name="medical_din"/>
 	</Folder>
 	<Folder name="Stimulus">

+ 2 - 2
locations/_body_image.qsrc

@@ -110,9 +110,9 @@ if $ARGS[0] = 'panties':
 			if pubestyle = 8: $RESULT = $pubeimage
 			if pubestyle ! 8: $RESULT = 'images/pc/body/pussy/spussy.jpg'
 		elseif pcs_pubes > 20 and pcs_pubes <= 25:
-			$RESULT = 'images/pc/body/pussy/hpussy.jpg'
-		elseif pcs_pubes > 25 and pcs_pubes <= 30:
 			$RESULT = 'images/pc/body/pussy/shave/s_bush1.jpg'
+		elseif pcs_pubes > 25 and pcs_pubes <= 30:
+			$RESULT = 'images/pc/body/pussy/hpussy.jpg'
 		elseif pcs_pubes >= 31:
 			$RESULT = 'images/pc/body/pussy/hrypussy.jpg'
 		end

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 476 - 211
locations/body.qsrc


+ 40 - 0
locations/body_din.qsrc

@@ -0,0 +1,40 @@
+# body_din
+!! Medical procedures, such as abortions, are located at medical_din
+
+
+!! Determines whether a NPC sees that another character is pregnant.
+!! If ARGS 1-3 are not set the observed character is the player character (Sveta)
+!! Usage: visible = FUNC('body_din','pregnancyVisibility')
+!! Return values:
+!!				0: Has no reason to believe Sveta is pregnant
+!!				1: Believes Sveta is pregnant
+!! Parameters:
+!!				ARGS[1]; The current pregnancy state (default: pregchem)
+!!				$ARGS[2]: The worn clothing type (default $clothingworntype)
+!!				ARGS[3]: The worn clothing numer  (default: clothingwornnumber)
+
+if $ARGS[0] = 'pregnancyVisibility':
+	RESULT = 0
+	pregchemTemp = iif(ARGS[1] = 0,pregchem,ARGS[1])
+	$clothingworntypeTemp = iif(ARGS[2] = '',$clothingworntype,ARGS[2])
+	clothingwornnumberTemp = iif(ARGS[3] = 0,clothingwornnumber,ARGS[3])
+	
+	gs 'clothing_attributes',$clothingworntypeTemp,clothingwornnumberTemp
+	if (CloThinness >= 5 or $clothingworntypeTemp = 'nude') and pregchemTemp > 2000: 
+		RESULT = 1
+	elseif CloThinness = 4 and pregchemTemp > 3460: 
+		RESULT = 1
+	elseif CloThinness = 3 and pregchemTemp > 3990: 
+		RESULT = 1	
+	elseif CloThinness = 2 and pregchemTemp > 4200: 
+		RESULT = 1	
+	elseif pregchemTemp > 5200: 
+		RESULT = 1	
+	end
+
+	killvar 'pregchemTemp'
+	killvar '$clothingworntypeTemp'
+	killvar 'clothingwornnumberTemp'
+end
+
+--- body_din ---------------------------------

+ 7 - 7
locations/brother.qsrc

@@ -1460,22 +1460,22 @@ if $ARGS[0] = 'brother_voyeur_ev8':
 end
 
 if $ARGS[0] = 'pregreact':
-	if knowpreg = 1 and kid = 0:
-		if $clothingworntype = 'nude' and pregchem > 2000 and brotherSex < 7 and kid = 0:
+	if knowpreg = 1 and kid = 0 and FUNC('body_din','pregnancyVisibility') = 1:
+		if $clothingworntype = 'nude' and brotherSex < 7:
 			'Surprised, your brother looks at your stomach. "<<$pcs_nickname>>, are you pregnant? <<$npc_nickname[''A29'']>> and dad are going to be pissed!" After a moments pause he adds, "You do still look good, though."'
 			npc_pregtalk['A34'] = 1
 
 			act 'Continue' :gt 'sitrPar'
 		exit
 
-		elseif $clothingworntype ! 'nude' and pregchem > 3460 and brotherSex < 7 and kid = 0:
+		elseif $clothingworntype ! 'nude' and brotherSex < 7:
 			'Surprised, your brother looks at your stomach, "<<$pcs_nickname>>, why didn''t you tell me I''m going to be an uncle?"'
 			npc_pregtalk['A34'] = 1
 
 			act 'Continue' :gt 'sitrPar'
 			exit
-
-		elseif brotherSex >= 7 and kid = 0 and npc_pregtalk['A29'] = 0 and (($clothingworntype = 'nude' and pregchem > 2000) or ($clothingworntype ! 'nude' and pregchem >= 3460) or ($clothingworntype = 'nude' and pregchem < 2000) or ($clothingworntype ! 'nude' and pregchem < 3460)):
+		
+		elseif brotherSex >= 7 and npc_pregtalk['A29'] = 0:
 			cla
 			'Surprised, your brother looks at your stomach, "Are you really pregnant? It... it''s not mine, is it?"'
 			*nl
@@ -1490,7 +1490,7 @@ if $ARGS[0] = 'pregreact':
 			end
 			exit
 		end
-	elseif brotherSex < 7 and kid > 0 and (($clothingworntype = 'nude' and pregchem > 2000) or ($clothingworntype ! 'nude' and pregchem > 3460)):
+	elseif brotherSex < 7 and kid > 0 and FUNC('body_din','pregnancyVisibility') = 1:
 		'"You''re already pregnant again? This is starting to look like a new hobby," he laughs.'
 		'"You know what? Maybe it is," you joke back. "Some girls play sports, I get serially impregnated."'
 		'Kolka pokes his tongue out at you, "Well, congratulations on taking home the gold in getting knocked up."'
@@ -1500,7 +1500,7 @@ if $ARGS[0] = 'pregreact':
 		'You leave your brother to what he was doing before, glad that the two of you have the relationship that you do.'
 
 		act 'Continue' :npc_pregtalk['A34'] = 1 & gt 'sitrPar'
-	elseif brotherSex >= 7 and kid > 0 and npc_pregtalk['A29'] = 0 and (($clothingworntype = 'nude' and pregchem >= 2000) or ($clothingworntype ! 'nude' and pregchem >= 3460)):
+	elseif brotherSex >= 7 and kid > 0 and npc_pregtalk['A29'] = 0 and FUNC('body_din','pregnancyVisibility') = 1:
 		cla
 		'Kolka looks at your stomach for moment before asking, "Wow, you''re pregnant again? Is it mine?"'
 		*nl

+ 1 - 1
locations/korrPar.qsrc

@@ -90,7 +90,7 @@ if nodimkaK >= rand(7,10) and DimkaWarnedToday = 0:
 end
 
 !! is this vacation check correct?
-if NatashaQW >= 4 and week < 6 and hour = 7 and kanikuli = 0 and SchoolAtestat = 0 and SchoolBlock = 0:
+if NatashaQW >= 4 and week < 6 and hour = 7 and kanikuli = 0 and SchoolAtestat = 0 and SchoolBlock = 0 and $clothingworntype = 'school':
 	*nl
 	'Go pick up <a href="exec:gt ''natbelEv'', ''carrybooks''">Natasha</a> before school.'
 end

+ 10 - 0
locations/lact_lib.qsrc

@@ -117,6 +117,9 @@ if $ARGS[0] = 'init_breasttissue' and lactation['breasttissueinitiated'] <= 0:
 	lactation['breastdensitytype_start'] = lactation['breastdensitytype']
 	lactation['usablebtissue_start'] = lactation['usablebtissue']
 	lactation['usablebtissue_change'] = lactation['usablebtissue']
+	!!	Svetas breast can only shrink if there fat to go away. Mammary glands cannot shrink away. Setting minimum nbsize.
+	lactation['min_nbsize'] = func('lact_lib','bccmtosize',lactation['breastglandtissue'])
+	if lactation['min_nbsize'] < 1: lactation['min_nbsize'] = 1
 end
 
 if $ARGS[0] = 'bsizetoccm':
@@ -224,6 +227,9 @@ if $ARGS[0] = 'BreastGrowth':
 		!!	changes in nbsize, magicf2b or silicone?
 		if nbsize <> lactation['nbsizechange'] or magicf2b <> lactation['magicf2bchange'] or silicone <> lactation['siliconechange']:
 			!!	getting the new percentages
+			!!	nbsize checker. if nbsize is getting too small.
+			if lactation['min_nbsize'] < 1: lactation['min_nbsize'] = 1
+			if nbsize < lactation['min_nbsize']: nbsize = lactation['min_nbsize']
 			lactation['nbsizepercent'] = (nbsize*100/(nbsize + magicf2b + silicone)*100)/100
 			lactation['magicf2bpercent'] = (magicf2b*100/(nbsize + magicf2b + silicone)*100)/100
 			lactation['siliconepercent'] = (silicone*100/(nbsize + magicf2b + silicone)*100)/100
@@ -260,6 +266,9 @@ if $ARGS[0] = 'BreastGrowth':
 		lactation['siliconechange'] = silicone
 		!!	if sveta is lactating, we need to reset the breastmm too
 		if lactation['active'] > 0:	lactation['result'] = func('lact_lib','set_breastmm')
+		!!	Svetas breast can only shrink if there fat to go away. Mammary glands cannot shrink away. Setting minimum nbsize.
+		lactation['min_nbsize'] = func('lact_lib','bccmtosize',lactation['breastglandtissue'])
+		if lactation['min_nbsize'] < 1: lactation['min_nbsize'] = 1
 	end
 end
 
@@ -275,6 +284,7 @@ if $ARGS[0] = 'show_breast_stat':
 	'lactation[''breastcount''] = <<lactation[''breastcount'']>>'
 	'lactation[''breasttissueinitiated''] = <<lactation[''breasttissueinitiated'']>>'
 	'lactation[''breastccm''] = <<lactation[''breastccm'']>>'
+	'lactation[''min_nbsize''] = <<lactation[''min_nbsize'']>>'
 	'lactation[''maturebreast''] = <<lactation[''maturebreast'']>>'
 	'lactation[''alveolicount''] = <<lactation[''alveolicount'']>>'
 	'lactation[''prolactinlvl''] = <<lactation[''prolactinlvl'']>>'

+ 17 - 3
locations/nichApartment.qsrc

@@ -241,7 +241,6 @@ elseif $ARGS[0] = 'jobInterview':
 		end
 	end
 elseif $ARGS[0] = 'hiring':
-	*clr & cla
 	$location_type = 'event'
 	menu_off = 1
 	
@@ -261,6 +260,17 @@ elseif $ARGS[0] = 'hiring':
 		'"This is <<$pcs_nickname>>, the girl I told you about." Tanya says before sitting down next to her mother. You have the feeling that you are expected to keep standing.'
 	end
 	
+	if FUNC('body_din','pregnancyVisibility',0,'nude') = 1:
+		'Nicholas only takes a short look at you.'
+		'"I am sorry, but I can''t have a pregnant woman be my maid. You might apply again once you have given birth. If the position is still open then."'
+		if thinkpreg = 0 and knowpreg = 0:
+			'Pregnant? He can''t be serious! You are not pregnant!'
+		end
+		'You are escorted out of the apartment building.'
+		act 'Leave': gt 'down'
+		exit
+	end
+	
 	if CloInhibit > 20:
 		nichGalaOpinion = 1
 		if nichHireMode = 1:
@@ -287,7 +297,10 @@ elseif $ARGS[0] = 'hiring':
 		*nl
 		'Whether it''s a whiff of the smell or something he spotted - the cum on you cannot escape his senses; he wrinkles his nose and you can see is expression harden.'
 		'"I cannot believe you have the audacity to come before me like a prostitute after a busy night. Is that how you intend to leave a good impression with me?" He doesn''t give you time to respond, dismissively waving his hand: "I won''t hire anybody who can''t even clean herself up. Get out!"'
-		!!TODO: end event chain
+		'You are escorted out of the apartment building.'
+		!! TODO: prevent Sveta from applying again
+		act 'Leave': gt 'down'
+		exit
 	end
 	nichImperfections = 0
 	if ShoHeels < 4:
@@ -452,7 +465,8 @@ elseif $ARGS[0] = 'visitTanya':
 			'Not giving you a chance to say a word, she leads you to her room and pushes you on her bed.'
 			act 'Have sex with Tanya': gt 'nichTanya', 'sexL'
 		end
-	elseif nichTanyaFuckCounter > rand(3,5) and nichJobRefused < 1 and nichWork = 0:
+	elseif nichTanyaFuckCounter > rand(3,5) and nichJobRefused < 1 and nichWork = 0 and FUNC('body_din','pregnancyVisibility',0,'nude') = 0:
+		!! Tanya will only offer the job while she believes that Sveta is not pregnant. Note that it is assumed that Tanya knows how Sveta looks naked and bases her decision on that!
 		'<center><img <<$set_imgh>> src="images/characters/city/tanya/door_01.jpg"></center>'
 		'Tanya opens the door for you. As you look into her eyes, they seem to be sparkling with excitement, and her entire face lights up as she smiles at you.'
 		'"<<$pcs_nickname>>, it''s so good you are here. I have the best idea ever! Our maid left us recently, and my stepfather is looking for a replacement. I could suggest <b>you</b> to him! He pays really well, and all you gotta do is tidy up a bit, but you would be able to live right here with us!"'

+ 5 - 0
locations/nichBedroomServant.qsrc

@@ -152,6 +152,11 @@ if $ARGS[0] = '' or $ARGS[0] = 'start' or $ARGS[0] = 'return':
 	end
 	'You should start preparing breakfast before 7:15 during the week and before 8:15 on weekends.'
 	
+	if (thinkpreg > 0 or knowpreg > 0) and nichPregnancy = 0:
+		''
+		'<b>You are pregnant but Nicholas didn''t realize it yet. He wouldn''t allow you to continue working for him once he figures it out, that''s for sure. Maybe you should wear baggy clothes to hide your condition?</b>'
+	end
+	
 	if nichWork = 2:
 	
 		gs 'nichChore','inspect','servant'

+ 40 - 1
locations/nichLivingroom.qsrc

@@ -237,6 +237,13 @@ elseif $ARGS[0] = 'breakfast':
 		'Gala looks distressed today.'
 		'"<<$pcs_nickname>>, please talk to me after breakfast."'
 		nichAfterBFEvent = 5010
+	elseif preg > 0 and nichPregnancy = 0 and FUNC('body_din','pregnancyVisibility') = 1:
+		*nl
+		'Nicholas directs his attention at you.'
+		'"<<$pcs_nickname>>, there is something important we need to talk about after breakfast."'
+		'"Of course, Master Nicholas." You reply as is expected of you.'
+		nichPregnancy = 1
+		nichAfterBFEvent = 90
 	elseif nichTanyaUni = 0 and (nichRand <= 20 or nichDebug = 1):
 		*nl
 		'Nicholas starts to read the newspaper. After a while he puts it aside and looks at Tanya.'
@@ -253,7 +260,7 @@ elseif $ARGS[0] = 'breakfast':
 		'"Of course, Master Nicholas." You reply as is expected of you.'
 		nichTanyaUni = 1
 		nichAfterBFEvent = 1
-	elseif nichGalaKnowsPT = 1 and (nichRand <= 20 or nichDebug = 1):
+	elseif nichGalaKnowsPT = 1 and (nichRand <= 75 or nichDebug = 1):
 		*nl
 		'The family members are chatting with each other about topics of little interest to you.'
 		'One of your duties is to refill empty glasses.'
@@ -423,6 +430,38 @@ elseif $ARGS[0] = 'breakfast':
 					end 
 				end
 			end
+		elseif nichAfterBFEvent = 90:
+			'Nicholas figured out that Sveta is pregnant'
+			killvar 'nichAfterBFEvent'
+			*clr & cla
+			'<center><img <<$set_imgh>> src="images/characters/city/nicholas/01.jpg"></center>'
+			'After you are done cleaning up the table you go to Nicholas as requested.'
+			'"<<$pcs_nickname>>, I noticed something about you lately. Something about you changed. Then I realized it. You are obviously pregnant."'
+			if thinkpreg > 0 or knowpreg > 0:
+				'You are shocked. He figured out your little secret.'
+			else
+				'You are shocked. He can''t be serious! There is no way you are pregnant.'
+			end
+			'"Of course I can''t allow you to stay my maid. A kid is an huge responsibility and it is not compatible with living here."'
+			'He waits a second before he continues.'
+			if nichPerformance <= 40:
+				'"Even though you were a less than mediocre maid I will make sure you won''t end up without shelter. I transferred your next payment and a little extra to your bank account."'
+				nichTemp = nichSalaryNext + 5000
+			elseif nichPerformance >= 80:
+				'"You were an exceptional maid and I hate to have to do this. But I see no other option. Of course I will make sure you won''t end up without shelter. I transferred your next payment and a little bit extra to your bank account."'
+				nichTemp = nichSalaryNext + 20000
+			else
+				'"You were a decent maid and I hate to have to do this. But I see no other option. Of course I will make sure you won''t end up without shelter. I transferred your next payment and a little bit extra to your bank account."'
+				nichTemp = nichSalaryNext + 10000			
+			end
+			'Nicholas leads you to the entrace. Your stuff has already been packed by one of Nicholas'' employees.'
+			'"Good luck in your future."'
+			''
+			'You got <b><<nichTemp>></b> transferred to your bank account.'
+			
+			act 'Get fired':
+				gt 'nichUtil', 'fired'
+			end
 		elseif nichAfterBFEvent = 100:
 			!! Gala has hidden her necklace in the drawer of PC
 			killvar 'nichAfterBFEvent'

+ 13 - 10
locations/nichTanya.qsrc

@@ -409,8 +409,9 @@ elseif $ARGS[0] = 'bathroom':
 				end
 			end
 		end
-		act 'Leave': gt 'nichBathMaster','return'
+		
 	end
+	act 'Leave': gt 'nichBathMaster','return'
 elseif $ARGS[0] = 'bathroomMolestSuccess':
 	'<center><img <<$set_imgh>> src="images/characters/city/tanya/gym/shower1.jpg"></center>'
 	'Just as the both of you are about to get more intimate you hear Tanyas name being called from outside the bathroom. She is clearly afraid of being spotted in the shower with you and quickly gets out of it and starts dressing.'
@@ -789,8 +790,8 @@ elseif $ARGS[0] = 'desc':
 
 elseif $ARGS[0] = 'sexL':
 	!! lesbian sex between Tanya and PC
-	
-	minut += 1
+	nichTempArousal = 5
+	minut += nichTempArousal
 	
 	if $ARGS[1] = '' or $ARGS[1] = 'start':
 		!! the encounter starts here
@@ -819,41 +820,43 @@ elseif $ARGS[0] = 'sexL':
 		$nichTempPic = func('nichUtil','tanyaPic','sexL','aeatout')
 		'<center><img <<$set_imgh>> src="<<$nichTempPic>>"></center>'
 		'You begin by kissing her breasts, moving gradually down her body, lower and lower until you are facing her pussy. You start by gently caressing her swollen lips with up and down tongue lapping, up and down the swollen mound and moist slit, and getting ready to focus the tip of your tongue directly on her clitoris.  You part her outer lips with your fingers, spreading her pouty inner lips giving you full access to her puffy pink clitoris.'
-		gs 'arousal', 'cuni_give', -1, 'lesbian'
-		gs 'arousal', 'vaginal_finger_give', -1, 'lesbian'
+		gs 'arousal', 'cuni_give', -nichTempArousal, 'lesbian'
+		gs 'arousal', 'vaginal_finger_give', -nichTempArousal, 'lesbian'
 	elseif $ARGS[1] = 'peatout':
 		nichTanyaFuckPositions += 1
 		$nichTempPic = func('nichUtil','tanyaPic','sexL','peatout')
 		'<center><img <<$set_imgh>> src="<<$nichTempPic>>"></center>'
 		'Tanya begins by dragging her tongue up your thighs to your crotch and plants light kisses from the top of your slit down to the opening of your vagina.  Her tongue pushes into your slickened hole a few times, then slides back up your cunny to caress your tingling clitoris again.'
-		gs 'arousal', 'cuni', -1, 'lesbian'
+		gs 'arousal', 'cuni', -nichTempArousal, 'lesbian'
 	elseif $ARGS[1] = 'arimjob':
 		nichTanyaFuckPositions += 1
 		$nichTempPic = func('nichUtil','tanyaPic','sexL','arimjob')
 		'<center><img <<$set_imgh>> src="<<$nichTempPic>>"></center>'
 		'You kiss her buttocks in ever decreasing circles, eventually getting to the center where her puckered anus is waiting.  Reaching your goal, you lick all around the tender star to get it plenty moist, then firmly push your tongue forward, penetrating her ass with just the tip.  You retract it, again licking all around her anus, and repeating your tongue invasion into that most private entrance.'
-		gs 'arousal', 'rimming_give', -1, 'lesbian'
+		gs 'arousal', 'rimming_give', -nichTempArousal, 'lesbian'
 	elseif $ARGS[1] = 'primjob':
 		nichTanyaFuckPositions += 1
 		$nichTempPic = func('nichUtil','tanyaPic','sexL','primjob')
 		'<center><img <<$set_imgh>> src="<<$nichTempPic>>"></center>'
 		'Tanya kisses your buttocks in ever decreasing circles, eventually getting to the center where your puckered anus is waiting.  Reaching her goal, she licks all around the tender star to get it plenty moist, then firmly pushes her tongue forward, penetrating your ass with just the tip.  She retracts it, again licking all around your anus, and repeats her tongue invasion into that most private entrance.'
-		gs 'arousal', 'rimming', -1, 'lesbian'
+		gs 'arousal', 'rimming', -nichTempArousal, 'lesbian'
 	elseif $ARGS[1] = 'psovaginal':
 		nichTanyaFuckPositions += 1
 		$nichTempPic = func('nichUtil','tanyaPic','sexL','psovaginal')
 		'<center><img <<$set_imgh>> src="<<$nichTempPic>>"></center>'
 		'You watch as Tanya puts on the strap-on, adjusting it to her hips and centering the fake cock, and then she moves to you and inserts it slowly into your pussy.  You moan and grind back at her while she fucks you with it.'
 		dick = nichTanyaStrapon
-		gs 'arousal', 'vaginal_strap', -1, 'lesbian', 'sub'
+		gs 'arousal', 'vaginal_strap', -nichTempArousal, 'lesbian', 'sub'
 	elseif $ARGS[1] = 'asovaginal':
 		nichTanyaFuckPositions += 1
 		$nichTempPic = func('nichUtil','tanyaPic','sexL','astrapon')
 		'<center><img <<$set_imgh>> src="<<$nichTempPic>>"></center>'
 		'You put on the strap-on, adjusting it to your hips and centering it. You let Tanya suck on it to moisten it up, then you insert it slowly into her pussy.  She moans and grinds back at you while you fuck her with it.'
-		gs 'arousal', 'vaginal_strap_give', -1, 'lesbian', 'dom'
+		gs 'arousal', 'vaginal_strap_give', -nichTempArousal, 'lesbian', 'dom'
 	end
 	
+	killvar 'nichTempArousal'
+	
 	nichTanyaChanceDom = 20
 	nichTanyaChanceSub = 20
 		

+ 5 - 4
locations/nichUtil.qsrc

@@ -15,7 +15,8 @@
 !! nichSalaryNext
 !! nichSalaryOutstanding
 
-
+!! nichPregnancy:	0: Nicholas has not noticed that you are pregnant
+!!					1: Nicholas has noticed you being pregnant
 
 
 
@@ -438,7 +439,7 @@ if $ARGS[0] = 'updateNotice':
 	
 	act 'Stay hired':
 		gs 'nichUtil', 'hired'
-		nichPerformance = tan_work_rep * 5
+		nichPerformance = max(tan_work_rep * 5,10)
 		nichTanyaRelationship = 1
 		nichTanyaRelationshipState = 10
 		nichTanyaRelationshipBreakup = 0
@@ -456,6 +457,7 @@ if $ARGS[0] = 'checkOutfit':
 end
 
 !! Creates the actions for cleaning rooms
+!! DEPRECATED
 if $ARGS[0] = 'cleanOptions':
 	$nichTempPic = func('nichUtil','cleanPic',$nichChoreType,$nichChoreLoc)
 	
@@ -476,7 +478,6 @@ if $ARGS[0] = 'cleanOptions':
 		
 		act '(<<nichTimeNormal>> minutes) Clean normally':
 			*clr & cla
-			'DEBUG: '+$nichTempPic
 			'<center><img <<$set_imgh>> src="<<$nichTempPic>>"></center>'
 			minut += nichTimeNormal
 			nichChoreState[nichChoreID] = 0
@@ -573,7 +574,7 @@ if $ARGS[0] = 'cleanPic':
 	else
 		$RESULT = 'images/pc/activities/maidCleaning/'+$nichTempPic[rand(0,ARRSIZE('$nichTempPic')-1)]
 	end
-	'Debug: Picture '+$RESULT
+	if nichDebug = 1: 'Debug: Picture '+$RESULT
 	!!killvar 'nichTemp'
 	killvar '$nichTempPic'
 end

+ 256 - 3
locations/telefon.qsrc

@@ -1,6 +1,11 @@
 # telefon
 ! Draw screens for mobile phone.
 !
+! The base storage for Contacts is controlled by the Array "$contact". This array is a list of NPC identifiers
+! telling us which ones are in your contact list. There are several other ancillary arrays that support the functions
+! of a contact. Each of these has matching indexes to the $contact array. These are mostly used internally, but a
+! writer can make use of them if they need to.
+!
 ! ContactList arrays:
 ! $contact[]     = NPC code for contact. ('A129', 'A29', 'B13', 'C14')
 ! $contactIcon[] = Icon for the contact to use. If path is left off, standard phone icon folder is used. if file extension is left off, '.png' is used
@@ -12,9 +17,15 @@
 ! contactWeek[] = Calls from this contact this week
 ! contactLastCall[] = last time this Contact called
 !
-! Add a contact with AddContact, example, to Add Mother:
+! Add a contact with AddContact
+!	gs 'telefon', 'AddContact', <NPC Code>, <Icon for NPC>, <Code for Incoming Call>, <Limiter for Incoming Call>, <Code for Outgoing Call>, <Limiter for Outgoign Call>
+!  Example, to Add Mother:
 !	gs 'telefon', 'AddContact', 'A29', 'icon_npc1', "gs 'telefon', 'Phone_call'", "hour >= 8 and hour <= 20", "gs 'telefon', 'lover'", "hour >= 8 and hour <= 20"
-
+!
+! Remove a contact with DeleteContact
+!	gs 'telefon', 'DeleteContact', <NPC Code>
+!  Example, to delete Mom:
+!	gs 'telefon', 'DeleteContact', 'A29'
 
 ! Header for Phone Screen.  Keeps consistent and in one place
 $telefon['header'] = '<center>
@@ -122,7 +133,7 @@ if $ARGS[0] = 'IncomingCheck':
 
 	! Limit the number of calls per day
 	! right now allow every 60 minutes
-	if telefIncCheck['NewTotalMinutes'] - telefon['LastIncCallCheck'] > 60:
+	if telefIncCheck['NewTotalMinutes'] - telefon['LastIncCallCheck'] > 60 and menu_off = 0:
 		telefon['LastIncCallCheck'] = telefIncCheck['NewTotalMinutes']
 		gs 'telefon','IncomingCallChooser'
 	end
@@ -458,6 +469,248 @@ if $ARGS[0] = 'callingTheLover' and loverGender[ARGS[1]] = 0:
 	act 'Hangup':gt 'telefon', 'fin'
 end
 
+!! NPC Date
+!!	ARGS[1] = contactlist index
+!!	$ARGS[2] = Date Location
+if $ARGS[0] = 'NPCDate':
+
+	Call4Date["ContactIndex"] = ARGS[1]
+	$Call4Date["Location"] = $ARGS[2]
+
+	$Call4Date["NPC"] = $contact[Call4Date['ContactIndex']]
+	$Call4Date["CallerName"] = $npc_nickname[$Call4Date["NPC"]]
+
+	!! These variables are setup for certain downstream functions
+	$caller = $Call4Date["CallerName"]
+	$callerid = $contactIcon[Call4Date["ContactIndex"]]
+	$boydesc = $Call4Date["CallerName"]
+
+	pcs_mood += 10
+	npc_rel[$Call4Date["NPC"]] += 3
+
+	if $Call4Date["Location"] = 'park':
+		if npc_gender[$Call4Date["NPC"]] = 0:
+			gt 'dateM','datepark'
+		else
+			gt 'dateF','datepark'
+		end
+	elseif $Call4Date["Location"] = 'movie':
+		if npc_gender[$Call4Date["NPC"]] = 0:
+			gt 'dateM','datecinema'
+		else
+			!Not implemented yet
+			!gt 'dateF','datecinema'
+		end
+	elseif $Call4Date["Location"] = 'bar':
+		if npc_gender[$Call4Date["NPC"]] = 0:
+			gt 'dateM','datebar'
+		else
+			gt 'dateF','datebar'
+		end
+	elseif $Call4Date["Location"] = 'cafe':
+		if npc_gender[$Call4Date["NPC"]] = 0:
+			gt 'dateM','datecafe'
+		else
+			!Not implemented yet
+			!gt 'dateF','datecafe'
+		end
+	end
+
+	killvar 'Call4Date'
+	killvar '$Call4Date'
+end
+
+!! Sveta Calls the NPC
+!!	ARGS[1] = contactlist index
+if $ARGS[0] = 'SvetaCallsNPC':
+	cls
+	cla
+	Call4Date["ContactIndex"] = ARGS[1]
+	$Call4Date["NPC"] = $contact[Call4Date['ContactIndex']]
+	$Call4Date["CallerName"] = $npc_nickname[$Call4Date["NPC"]]
+	if npc_gender[$Call4Date["NPC"]] = 0:
+		$Call4Date["NPC-he"] = 'he'
+		$Call4Date["NPC-He"] = 'He'
+		$Call4Date["NPC-his"] = 'his'
+		$Call4Date["NPC-His"] = 'His'
+	else
+		$Call4Date["NPC-he"] = 'her'
+		$Call4Date["NPC-He"] = 'Her'
+		$Call4Date["NPC-his"] = 'hers'
+		$Call4Date["NPC-His"] = 'Hers'
+	end
+
+	!! These variables are setup for certain downstream functions
+	$caller = $Call4Date["CallerName"]
+	$callerid = $contactIcon[Call4Date["ContactIndex"]]
+
+	gs 'telefon','phone_balance'
+	gs 'telefon','phone_call_receive'
+
+	Call4Date["willAgree"] = (rand(0, 10) > 3)
+
+	'"Yes, I''m listening," says a voice from the speaker.'
+
+	if month > 5 and temper > 20 and sunWeather = 1:
+		act 'Invite to the park':
+			cla
+			'"Let''s go for a walk in the park."'
+
+			if Call4Date["willAgree"]:
+				'<<$Call4Date["CallerName"]>>, "See you in the park in an hour."'
+
+				act 'Go':gt 'telefon', 'NPCDate', Call4Date["ContactIndex"], 'park'
+			else
+				gs 'telefon','telotkaz',$Call4Date["CallerName"]
+			end
+		end
+	end
+
+	act 'Invite to a movie':
+		cla
+		'"Want to go see a movie?"'
+
+		if Call4Date["willAgree"]:
+			'<<$Call4Date["CallerName"]>>, "See you at the movie theater in an hour."'
+
+			act 'Go':gt gt 'telefon', 'NPCDate', Call4Date["ContactIndex"], 'movie'
+		else
+			gs 'telefon','telotkaz',$Call4Date["CallerName"]
+		end
+	end
+
+	if  $home_town = 'city':
+		act 'Invite to the bar':
+			cla
+			'"Let''s go to the bar."'
+
+			if Call4Date["willAgree"]:
+				'<<$Call4Date["CallerName"]>>, "See you at the bar in an hour."'
+
+				act 'Go':gt 'telefon', 'NPCDate', Call4Date["ContactIndex"], 'bar'
+			else
+				gs 'telefon','telotkaz',$Call4Date["CallerName"]
+			end
+		end
+	end
+
+	act 'Invite to the cafe':
+		cla
+		'"Let''s go to the cafe."'
+
+		if Call4Date["willAgree"]:
+			'<<$Call4Date["CallerName"]>>, "See you at the cafe in an hour."'
+
+			act 'Go':gt gt 'telefon', 'NPCDate', Call4Date["ContactIndex"], 'cafe'
+		else
+			gs 'telefon','telotkaz',$Call4Date["CallerName"]
+		end
+	end
+
+	act 'I think we should break up...':
+		cla
+		'<<$Call4Date["NPC-He"]>> sounds hurt, but you insist it is for the best. You both say goodbye and part ways.'
+		gs 'telefon', 'DeleteContact', $Call4Date["NPC"]
+
+		act 'Hangup':gt 'telefon', 'fin'
+	end
+
+	act 'Hangup':gt 'telefon', 'fin'
+
+	killvar 'Call4Date'
+	killvar '$Call4Date'
+	killvar '$DateNickName'
+end
+
+! NPC Calls Sveta for a Date
+!	ARGS[1] = $contact index number
+if $ARGS[0] = 'NPCCallsForDate':
+	cla
+	clr
+	Call4Date["ContactIndex"] = ARGS[1]
+	$Call4Date["NPC"] = $contact[Call4Date['ContactIndex']]
+
+	!!Pick a nickname that caller will use for Sveta
+	$DateNickName[0] = 'cutie'
+	$DateNickName[1] = 'honey'
+	$DateNickName[2] = 'sweetie'
+	$DateNickName[3] = 'baby'
+	$DateNickName[4] = 'hot stuff'
+	$DateNickName[5] = '<<$pcs_nickname>>'
+	$Call4Date['SvetaName'] = $DateNickName[rand(0, arrsize('$DateNickName'))]
+
+	$Call4Date['CallerName'] = $npc_nickname[$Call4Date["NPC"]]
+
+	!! These variables are setup for certain downstream functions
+	$caller = $Call4Date["CallerName"]
+	$callerid = $contactIcon[Call4Date["ContactIndex"]]
+
+	'Hey <<$Call4Date["SvetaName"]>>, it''s me, <<$Call4Date["CallerName"]>>. How''s it going?'
+
+	act 'Answer':
+		cla
+		'"Pretty good, you?"'
+		'<<$Call4Date["CallerName"]>>, "Great, but I kind of miss you, can we meet today?"'
+		if week > 1 and week < 5 and workKafe = 1:
+			act 'Sorry, I''m working today':
+				cla
+				'"Sorry, I''m working today."'
+				'<<$Call4Date["CallerName"]>>, "Okay, I''ll call tomorrow."'
+
+				act 'Hang up':gt 'telefon', 'fin'
+			end
+		end
+
+		act 'Tonight':
+			cla
+			npc_rel[$Call4Date["NPC"]] += 1
+			contMeetDay[Call4Date["ContactIndex"]] = daystart
+			'"How about this evening?"'
+			'<<$Call4Date["CallerName"]>>, "Sounds great! When can I come to pick you up?"'
+
+			act 'Pick a time':
+				cla
+				contMeetHour[Call4Date["ContactIndex"]] = input ("When do you want to be picked up. It is now <<$mid(100+hour,2,2)>>:<<$mid(100+minut,2,2)>>. [Enter the hour only 0 - 20]")
+				if contMeetHour[Call4Date["ContactIndex"]] <= hour or contMeetHour[Call4Date["ContactIndex"]] > 23:contMeetHour[Call4Date["ContactIndex"]] = 20
+
+				'"How about <<contMeetHour[Call4Date["ContactIndex"]]>>:00?."'
+				'<<$Call4Date["CallerName"]>>, "Okay <<$Call4Date["SvetaName"]>>, see you at <<contMeetHour[Call4Date["ContactIndex"]]>>:00."'
+
+				act 'Hang up':gt 'telefon', 'fin'
+			end
+		end
+
+		act 'Maybe tomorrow':
+			cla
+			npc_rel[$Call4Date["NPC"]] -= 1
+			'"I''m busy today. Call tomorrow."'
+
+			if npc_rel[$Call4Date["NPC"]] <= 0:'<<$Call4Date["CallerName"]>>, Are you fucking me, you know what. Suck my dick.' & gs 'telefon', 'DeleteContact', $Call4Date["NPC"]
+			if npc_rel[$Call4Date["NPC"]] > 0:'(<<$Call4Date["CallerName"]>>) -  Okay, I''ll call tomorrow.'
+
+			act 'Hang up': gt 'telefon', 'fin'
+		end
+
+		act 'I think we should break up...':
+			cla
+			'He sounds hurt, but you insist it is for the best. You both say goodbye and part ways.'
+			gs 'telefon', 'DeleteContact', $Call4Date["NPC"]
+
+			act 'Hang up': gt 'telefon', 'fin'
+		end
+	end
+
+	act 'Hang up (end relationship)':
+		cla
+		gs 'telefon', 'DeleteContact', $Call4Date["NPC"]
+		gt 'telefon', 'fin'
+	end
+
+	killvar 'Call4Date'
+	killvar '$Call4Date'
+	killvar '$DateNickName'
+end
+
 if $ARGS[0] = 'lover' and loverGender[ARGS[1]] = 0:
 	cla
 	clr

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác