Browse Source

Merge remote-tracking branch 'glife/master' into dev

Christine 5 years ago
parent
commit
1213e4408c
42 changed files with 980 additions and 473 deletions
  1. 15 0
      QSP/isample_mod/isample.qproj
  2. BIN
      QSP/isample_mod/isample.txt
  3. 47 0
      QSP/isample_mod/locations/mod_isample.qsrc
  4. 10 0
      QSP/isample_mod/locations/mod_isample_options.qsrc
  5. 7 0
      QSP/isample_mod/locations/mod_isample_pavResidential.qsrc
  6. 44 0
      QSP/isample_mod/locations/mod_isample_readme.qsrc
  7. 35 0
      QSP/isample_mod/locations/mod_isample_setup.qsrc
  8. 7 0
      QSP/isample_mod/locations/mod_isample_street.qsrc
  9. 44 0
      QSP/isample_mod/txtmerge.py
  10. 4 0
      glife.qproj
  11. 0 15
      locations/Cheatmenu_din.qsrc
  12. 2 2
      locations/Gadhouse.qsrc
  13. 2 2
      locations/Komp.qsrc
  14. 1 1
      locations/anushapt.qsrc
  15. 1 4
      locations/din_van.qsrc
  16. 50 13
      locations/events.qsrc
  17. 20 20
      locations/foto.qsrc
  18. 1 1
      locations/gdkin.qsrc
  19. 1 1
      locations/gevent.qsrc
  20. 2 2
      locations/gpoli.qsrc
  21. 19 17
      locations/gskino.qsrc
  22. 1 1
      locations/lab.qsrc
  23. 4 4
      locations/lact_bp.qsrc
  24. 3 0
      locations/lact_lib.qsrc
  25. 15 17
      locations/liames.qsrc
  26. 9 1
      locations/metro.qsrc
  27. 11 7
      locations/mod_setting.qsrc
  28. 2 4
      locations/narkopriton.qsrc
  29. 1 1
      locations/natbelEv.qsrc
  30. 73 0
      locations/natpimp.qsrc
  31. 354 205
      locations/pavaptcourtev.qsrc
  32. 1 5
      locations/pavtrainhall.qsrc
  33. 8 3
      locations/pornstudio.qsrc
  34. 110 112
      locations/selfplay.qsrc
  35. 30 1
      locations/shortgs.qsrc
  36. 18 18
      locations/soniaDisco.qsrc
  37. 2 1
      locations/stat.qsrc
  38. 3 2
      locations/stat_display.qsrc
  39. 1 1
      locations/street.qsrc
  40. 2 2
      locations/test.qsrc
  41. 11 9
      locations/treeCircle.qsrc
  42. 9 1
      locations/willpower.qsrc

+ 15 - 0
QSP/isample_mod/isample.qproj

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<QGen-project version="4.0.0 beta 1">
+  <Structure>
+    <Folder name="setup">
+      <Location name="mod_isample_options"/>
+      <Location name="mod_isample_setup"/>
+      <Location name="mod_isample_readme"/>
+      <Location name="mod_isample"/>
+    </Folder>
+    <Folder name="locations">
+      <Location name="mod_isample_pavResidential"/>
+      <Location name="mod_isample_street"/>
+    </Folder>
+  </Structure>
+</QGen-project>

BIN
QSP/isample_mod/isample.txt


+ 47 - 0
QSP/isample_mod/locations/mod_isample.qsrc

@@ -0,0 +1,47 @@
+# mod_isample
+!input mod entry point here. this will be checked on every location, please keep it clean and brief to avoid game lag
+
+
+!entry point 1: if player is on bed, create a new link to make her sleepy
+if $curloc = 'bed2' and $args[0] = '':
+	if pcs_sleep > 80:
+		'[mod]... But You can make yourself <a href="exec:pcs_sleep=0&gt $curloc">sleepy!</a>'
+	else
+		'[mod]... And you are already sleepy.'
+	end
+end
+
+
+!entry point 2: goto school directly from room
+!Note that location name are case sensetive. you can use lcase() or ucase() to prevent bug
+if lcase($curloc) = 'bedrpar' or ucase($curloc) = 'KORRPAR':
+		act '[mod]<font color = green><b>Go to school</b></font>': minut += 1 & gt 'gschool_grounds', 'main'
+end
+
+
+!entry point 3: replace exit room act in apartment
+
+if $curloc = 'bedrPar':
+	delact 'Exit the room'
+	act 'Exit the room':
+		msg 'Now mod isample will send you to school directly'
+		minut += 1 & gt 'gschool_grounds', 'main'
+	end
+end
+
+!entry point 4: access in-mod location
+if $curloc = 'pavResidential':
+	act '[mod]Chase the rabbit':
+		gt 'mod_isample_pavResidential'
+	end
+end
+
+if $curloc = 'street':
+	act '[mod]Jump into rabit hole':
+		*clr & cla
+		'[mod]Suddenly, everything blank out'
+		gs 'mod_isample_street'
+	end
+end
+--- mod_isample ---------------------------------
+

+ 10 - 0
QSP/isample_mod/locations/mod_isample_options.qsrc

@@ -0,0 +1,10 @@
+# mod_isample_options
+
+*clr&cla
+! This is where you place the configuration options for your mod.
+'There are currently no options available for this mod.'
+
+act 'return': gt 'mod_setting'
+
+--- mod_isample_options ---------------------------------
+

+ 7 - 0
QSP/isample_mod/locations/mod_isample_pavResidential.qsrc

@@ -0,0 +1,7 @@
+# mod_isample_pavResidential
+!mod event. remember to add a act to exit
+'[mod-isample]'
+'You try to chase the rabbit in town, sadly, this is only a sample mod, so there are no rabbit in sight.'
+act 'Back to town': gt 'pavResidential'
+--- mod_isample_pavResidential ---------------------------------
+

+ 44 - 0
QSP/isample_mod/locations/mod_isample_readme.qsrc

@@ -0,0 +1,44 @@
+# mod_isample_readme
+!input your mod detail readme here. you can use msg or detailed structure, just make sure to create act 'return': gt 'mod_setting'
+*clr&cla
+act 'return': gt 'mod_setting'
+
+'<center>Mod <b>isample</b></center>'
+'This is a sample for new mod system, please fill your own mod in this form
+1. Since QSP can not load location with same name, and there are no warning about this during adding new qsp files, please name ALL YOUR LOCATION NAME with <B>mod_name_xxx</B> to avoid duplication bug.
+
+2. please DO NOT use space or non-ascii character in location name. you can use use _ instead. -- this may cause bug on txtsplit function for git
+
+3. The first location MUST be named as "mod_name_setup", this system will call it and load necessary information from it.
+$mod_info[0] = mod name
+$mod_info[1] = mod version
+10203 will be displayed as version 1.2, fix3.
+40500 will be showen as version 4.5
+$mod_info[2] = author name
+$mod_info[3] = short description for this mod
+
+4. please create "mod_name_readme" location for mod detail readme (just like this location)
+  If you really have only one line for this, you can use a simple msg instead a long text.
+  
+5. put all your entry point in location "mod_name"
+You can use lots of condition check there, check this sample file yourself.
+Frequency used condition:'
+'<table>'
+*p "<tr><td>current location"
+"<td>if $curloc = '...'</td></tr>"
+*p "<tr><td>current stage"
+"<td>if $ARGS[0] = '...'</td></tr>"
+*p "<tr><td>variable value"
+"<td>if aaa > 10 </td></tr>"
+'</table>
+Please note that strings are case sensitive, you can use lcase() or ucase() to shft them before check.
+
+
+6. Due to techinque issue, this mod system CAN NOT recognition locations use value in ARGS (luckly, only system functions use this, so you shall not worry about this.)
+for example, gs ''indik'', ''2'', 100
+
+Have a nice day, and Welcome to join this Community!
+
+--- illume, 2018/1/25'
+--- mod_isample_readme ---------------------------------
+

+ 35 - 0
QSP/isample_mod/locations/mod_isample_setup.qsrc

@@ -0,0 +1,35 @@
+# mod_isample_setup
+!input basic mod information here. 
+!this location must be the first one
+
+$mod_info[0] = 'isample'
+!0=mod name, saved to $mod_name[i] array 
+
+$mod_info[1] = '10203'
+!1=mod version
+!this will be displayed as version 1.2, fix3.
+!if you input 40500, will be showen as version 4.5
+
+$mod_info[2] = 'illume'
+!2=mod author
+
+$mod_info[3] = 'This is a sample for new mod system, please fill your own mod in this form'
+!3=mod description, input a short brief here.
+
+$mod_info[4] = 'Options'
+!4=mod options/settings link name.
+
+
+if curloc = 'mod_<<$mod_info[0]>>_setup':
+	usehtml = 1
+	!this will be only showed if you exec mod file. This location should be only called by gs, so this line will not trigger on normal mod playing
+	'<center><h1><font color=red>ACCESS DENIED</font></h1></center>'
+	'<<$mod_info[0]>> is a mod for <b>Girl Life - English Community Version</b>, and can not be played individually.'
+	''
+	'You can find the main game in <a href="https://www.tfgamessite.com/index.php?module=viewgame&id=597">Tfgames site</a> (external link)'
+	''
+	'Our forum: <a href="https://tfgamessite.com/phpbb3/viewforum.php?f=70">Tfgames site</a> (external link)'
+end
+
+--- mod_isample_setup ---------------------------------
+

+ 7 - 0
QSP/isample_mod/locations/mod_isample_street.qsrc

@@ -0,0 +1,7 @@
+# mod_isample_street
+!mod event. remember to add a act to exit
+'[mod-isample]'
+'You try to jump into rabbit hole, sadly, this is only a sample mod, so you can not even find a hole to jump.'
+act 'Back to street': gt 'street'
+--- mod_isample_street ---------------------------------
+

+ 44 - 0
QSP/isample_mod/txtmerge.py

@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+# usage: txtmerge.py <input_dir> <output_file_name> 
+# does the exact opposite of txtsplit.py
+
+import os
+import sys
+import re
+import io 
+import xml.etree.ElementTree as ET
+
+assert len(sys.argv) == 3, "usage:\ntxtmerge.py <input_dir> <output_file_name>"
+idir = str(sys.argv[1])
+oname = str(sys.argv[2])
+
+# read the project xml file first
+# let's do this later in order to implement directory structure
+tree = ET.parse('isample.qproj')
+root = tree.getroot()
+
+
+ofile = io.open(oname, 'w', encoding='utf-16', newline='\r\n')
+
+for location in root.iter('Location'):
+    iname = location.attrib['name']
+    iname = iname.replace("$","_")
+
+    try:
+        ifile = io.open(os.path.join(idir,iname + '.qsrc'), 'rt', encoding='utf-8')
+        text = ifile.read()
+
+        # make sure there's a line at the end of file
+        # (why wouldn't there be one? WINDOWS!
+        if text[-1] != u'\n':
+            text += u'\n\n'
+
+        ofile.write(text)
+        ifile.close()
+    except IOError:
+        print("WARNING: missing location %s" % iname)
+        pass
+
+ofile.close()
+    
+        

+ 4 - 0
glife.qproj

@@ -706,6 +706,10 @@
 		<Location name="arturQW"/>
 	</Folder>
 	<Folder name="Natasha Belova 16">
+		<Location name="natbelapt"/>
+		<Location name="natbelEv"/>
+		<Location name="natkolEv"/>
+		<Location name="natpimp"/>
 		<Location name="NatBelGo"/>
 		<Location name="NatBelHome"/>
 		<Location name="NatBelVhod"/>

+ 0 - 15
locations/Cheatmenu_din.qsrc

@@ -128,17 +128,6 @@ $cheatmenu['health'] = {
 	end
 }
 
-$cheatmenu['Bandit'] = {
-	if cheatBandit = 0:
-		cheatBandit = 1
-		dynamic $cheatmenu['permanent']
-		exit
-	elseif cheatBandit = 1:
-		cheatBandit = 0
-		dynamic $cheatmenu['permanent']
-	end
-}
-
 $cheatmenu['fight'] = {
 	if fight_cheat = 0:
 		fight_cheat = 1
@@ -429,8 +418,6 @@ $cheatmenu['permanent'] = {
 	if cheatHorny = 1:$cheatHorny = 'Currently ON'
 	if bedvibrator = 0:$cheatVib = 'Currently OFF'
 	if bedvibrator = 1:$cheatVib = 'Currently ON'
-	if cheatBandit = 0:$cheatBandit = 'Currently OFF'
-	if cheatBandit = 1:$cheatBandit = 'Currently ON'
 	if fight_cheat = 0:$fight_cheat = 'Currently OFF'
 	if fight_cheat = 1:$fight_cheat = 'Currently ON'
 	if autocombat_cheat = 0:$autocombat_cheat = 'Currently OFF'
@@ -474,7 +461,6 @@ $cheatmenu['permanent'] = {
 	*nl
 	
 	'Enable sleeping with vibrator inserted: <a href="exec:dynamic $cheatmenu[''Vibrator'']"><<$cheatVib>></a>'
-	'Bandit always horny: <a href="exec:dynamic $cheatmenu[''Bandit'']"><<$cheatBandit>></a>'
 	
 	*nl
 	
@@ -2376,7 +2362,6 @@ $cheatmenu['vartracker'] = {
 	'Mira''s Father Quest (npc_QW[''A64'']): <<npc_QW[''A64'']>>'
 	'Mira''s Quest (npc_QW[''A60'']): <<npc_QW[''A60'']>>'
 	'mirasextimes: <<mirasextimes>>'
-	'Bandit Quest Level (npc_QW[''A66'']): <<npc_QW[''A66'']>>'
 	'Mira''s Relationship (npc_rel[''A60'']): <<npc_rel[''A60'']>>'
 	'Mitka''s Quest (npc_QW[''A63'']): <<npc_QW[''A63'']>>'
 	'mirabrosextime: <<mirabrosextime>>'

+ 2 - 2
locations/Gadhouse.qsrc

@@ -175,7 +175,7 @@ if $ARGS[0] = 'Main':
 	!{
 	!New family system, skip for now.
 	gs 'zz_family', 'father_sheduler'
-	if $father['location'] = $curloc:
+	if $father['location'] = $curloc and ParHomeBlock = 0:
 		'Your parents room.'
 		gs 'gadukino_event', 'go_home'
 	end
@@ -185,7 +185,7 @@ if $ARGS[0] = 'Main':
 	if indorf = 1:
 		'Your parents are relaxing inside.'
 
-		if staygad ! daystart: gs 'gadukino_event', 'go_home'
+		if staygad ! daystart and ParHomeBlock = 0: gs 'gadukino_event', 'go_home'
 	end
 
 	 if $clothingworntype ! 'nude':

+ 2 - 2
locations/Komp.qsrc

@@ -42,7 +42,7 @@ if $ARGS[0] = 'brows':
 		'<center><b>Browser</b></center>'
 		'<center><img <<$set_imgh>> src="images/shared/accessories/computer/eror.jpg"></center>'
 		'You have no prepaid internet access remaining. You need to buy more, before you can go online again.'
-		if camwhore = 1:
+		if camwhore = 1 and $loc ! 'shulga_room':
 			'Since MyFreeCams will cover the cost, you can still log on to do a cam show.'
 			act 'Go to MyFreeCams.org':gt 'Komp', 'mfc'
 		end
@@ -71,7 +71,7 @@ if $ARGS[0] = 'brows':
 
 		if shantfoto > 0:act 'Find the girl you took photos of in the park on "Assbook"':gt 'Komp', 'foto'
 		if gor_dorm = 7:act 'Read letter from Eugene':gt 'etoexhib', 'pos91'
-		if camwhore = 1:act 'Go to MyFreeCams.org':gt 'Komp', 'mfc'
+		if camwhore = 1 and $loc ! 'shulga_room':act 'Go to MyFreeCams.org':gt 'Komp', 'mfc'
 		if (storyline = 1 and SchoolAtestat = 0) or student > 0:act 'Spend time studying':gt 'Komp', 'study'
 		if sucpcinfo = 0 and succubxp > 0: act 'Research the strange feelings you''ve been having': gt 'succubus', 'kompresearch'
 	end

+ 1 - 1
locations/anushapt.qsrc

@@ -734,7 +734,7 @@ if $ARGS[0] = 'chat':
 			!!can you make the <<boyfriend>> be the name of who ever Sveta is dating? Vitek, Artem, etc? I have no clue how hard that would be to code but eventually we will need a code like that, for the expanded chats with NPC''s at school, home and the disco.
 				'You tell her. "I have a boyfriend you know."'
 				'She grins at you. "Right who are you dating again?"'
-				'"<<boyfriend>>" You tell her.'
+				iif(kotovloveQW > 0, '"Vitek', '"<<boyfriend>>')+'" You tell her.'
 				'"Really? Hmm think he would be up for a threesome?" She says as she makes a kissy face at you.'
 			end
 			act 'No':

+ 1 - 4
locations/din_van.qsrc

@@ -47,10 +47,7 @@ $bteeth = {
 }
 
 $dryOff = {
-	act 'Get out and dry off':
-		menu_off = 1
-		mirror_steam = hour & menu_off = 0 & gt $loc, $metka
-	end
+	act 'Get out and dry off': mirror_steam = hour & gt $loc, $metka
 }
 
 $shower = {

+ 50 - 13
locations/events.qsrc

@@ -272,21 +272,58 @@ if $ARGS[0] = 'snarkozaka':
 	'You walk to the end of the platform and see a man hiding undercover smoking a cigarette'
 	'Walking up to him you ask him if he has anything'
 	'He turns and looks you up and down, "That depends on what you want little lady?"'
-	act 'Heroin':
-		money -= 1500
-		StrongNarkota += 25
-		SNarkTimes += 1
-		narkozakday=day
-		gs'stat'
-		'You buy the drugs and without thinking twice you shoot up.'
-		gt 'events', 'snkayf'
+	act 'Leave': gt $loc, $metka
+	
+	if money >= 1500:
+		act 'Buy heroin (1500 <b>₽</b>)':
+			money -= 1500
+			StrongNarkota += 25
+			SNarkTimes += 1
+			narkozakday = day
+			gs'stat'
+			'You buy the drugs and without thinking twice you shoot up.'
+			gt 'events', 'snkayf'
+		end
+	else
+		'You don''t have enough money to buy heroin.'
 	end
-	act 'Amphetamines':
-		money -= 1000
-		amphetamine += 5
-		gt $loc, $metka
+	
+	if money >= 1000:
+		act 'Buy Amphetamine (5 for 1000 <b>₽</b>)':
+			money -= 1000
+			amphetamine += 5
+			gt $loc, $metka
+		end
+	else
+		'You don''t have enough money to buy amphetamine.'
+	end
+	
+	if money >= 50 and money < 500:
+		act 'Buy 1 joint (50 <b>₽</b>)':
+			money -= 50
+			drugUser = 1
+			joint += 1
+			minut += 5
+			gt $loc, $metka
+		end
+	elseif money >= 500:
+		act 'Buy 10 joints (500 <b>₽</b>)':
+			money -= 500
+			drugUser = 1
+			joint += 10
+			minut += 5
+			gt $loc, $metka
+		end
+		act 'Buy 1 (50 <b>₽</b>)':
+			money -= 50
+			drugUser = 1
+			joint += 1
+			minut += 5
+			gt $loc, $metka
+		end
+	else
+		'You don''t have enough money to buy a joint.'
 	end
-	act 'Leave': gt $loc, $metka
 end
 
 if $ARGS[0] = 'snkayf1':

+ 20 - 20
locations/foto.qsrc

@@ -1993,8 +1993,8 @@ if $ARGS[0] = 'model':
 					modelpayfin = 300 + (modelpay) + (15*rand(0,5)) + (pcs_apprnc) + (city_modelling/2) + (pcs_mdlng/2 * 10)
 					modelfoto_fashion += 1
 					mdlng_exp += rand(5,8)
-					gs 'fame', 'city', 'mdlng', rand(7,12)
-					gs 'fame', 'pav', 'mdlng', rand(1,city_modelling)/10
+					gs 'fame', 'city', 'modelling', rand(7,12)
+					gs 'fame', 'pav', 'modelling', rand(1,city_modelling)/10
 					fashionshoot = rand(1,2)
 					gs 'stat'
 					if fashionshoot = 1:
@@ -2021,8 +2021,8 @@ if $ARGS[0] = 'model':
 						minut += 120
 						modelpayfin = 325 + (modelpay) + (15*rand(0,5)) + (pcs_apprnc) + (city_modelling/2) + (pcs_mdlng/2 * 10)
 						modelfoto_bikini += 1
-						gs 'fame', 'city', 'mdlng', rand(7,12)
-						gs 'fame', 'pav', 'mdlng', rand(1,city_modelling)/10
+						gs 'fame', 'city', 'modelling', rand(7,12)
+						gs 'fame', 'pav', 'modelling', rand(1,city_modelling)/10
 						mdlng_exp += rand(6,10)
 						if pcs_inhib < 50:inhib_exp += 1
 						bikinishoot = rand(1,5)
@@ -2059,8 +2059,8 @@ if $ARGS[0] = 'model':
 						modelpayfin = 350 + (modelpay) + (15*rand(0,5)) + (pcs_apprnc) + (city_modelling/2) + (pcs_mdlng/2 * 10)
 						modelfoto_lingerie += 1
 						mdlng_exp += rand(6,10)
-						gs 'fame', 'city', 'mdlng', rand(7,13)
-						gs 'fame', 'pav', 'mdlng', rand(0,city_modelling)/10
+						gs 'fame', 'city', 'modelling', rand(7,13)
+						gs 'fame', 'pav', 'modelling', rand(0,city_modelling)/10
 						inhib_exp += 2
 						shoot_type = rand(1,2)
 						gs 'stat'
@@ -2147,8 +2147,8 @@ if $ARGS[0] = 'nude_shoot':
 				modelfoto_glamour += 1
 				modelfoto_ero_clo += 1
 				mdlng_exp += rand(5,10)
-				gs 'fame', 'city', 'mdlng', rand(7,12)
-				gs 'fame', 'pav', 'mdlng', rand(1,city_modelling)/10
+				gs 'fame', 'city', 'modelling', rand(7,12)
+				gs 'fame', 'pav', 'modelling', rand(1,city_modelling)/10
 				inhib_exp += 1
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/ero<<rand(2,4)>>.jpg"></center>'
@@ -2172,8 +2172,8 @@ if $ARGS[0] = 'nude_shoot':
 			modelfoto_glamour += 1
 			modelfoto_nip += 1
 			mdlng_exp += rand(6,10)
-			gs 'fame', 'city', 'mdlng', rand(7,13)
-			gs 'fame', 'pav', 'mdlng', rand(1,city_modelling)/10
+			gs 'fame', 'city', 'modelling', rand(7,13)
+			gs 'fame', 'pav', 'modelling', rand(1,city_modelling)/10
 			inhib_exp += rand(1,3)
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/seethru<<rand(1,6)>>.jpg"></center>'
@@ -2203,8 +2203,8 @@ if $ARGS[0] = 'nude_shoot':
 				modelfoto_nip += 1
 				modelfoto_lingerie += 1
 				mdlng_exp += rand(8,10)
-				gs 'fame', 'city', 'mdlng', rand(9,14)
-				gs 'fame', 'pav', 'mdlng', rand(0,city_modelling)/10
+				gs 'fame', 'city', 'modelling', rand(9,14)
+				gs 'fame', 'pav', 'modelling', rand(0,city_modelling)/10
 				inhib_exp += 4
 				gs 'stat'
 				'<center><video autoplay loop src="images/locations/city/citycenter/photo/lingerie_trans<<rand(1,3)>>.mp4"></video></center>'
@@ -2237,8 +2237,8 @@ if $ARGS[0] = 'nude_shoot':
 				modelfoto_nip += 1
 				modelfoto_topless += 1
 				mdlng_exp += rand(6,10)
-				gs 'fame', 'city', 'mdlng', rand(8,14)
-				gs 'fame', 'pav', 'mdlng', rand(1,city_modelling)/10
+				gs 'fame', 'city', 'modelling', rand(8,14)
+				gs 'fame', 'pav', 'modelling', rand(1,city_modelling)/10
 				inhib_exp += 3
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/topless<<rand(1,22)>>.jpg"></center>'
@@ -2269,8 +2269,8 @@ if $ARGS[0] = 'nude_shoot':
 				modelfoto_glamour += 1
 				modelfoto_nude += 1
 				mdlng_exp += rand(9,10)
-				gs 'fame', 'city', 'mdlng', rand(10,20)
-				gs 'fame', 'pav', 'mdlng', rand(0,city_modelling)/4
+				gs 'fame', 'city', 'modelling', rand(10,20)
+				gs 'fame', 'pav', 'modelling', rand(0,city_modelling)/4
 				inhib_exp += 5
 				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/nude<<rand(1,5)>>.jpg"></center>'
 				'	Already naked, you step onto the set and begin the shoot immediately.'
@@ -2300,8 +2300,8 @@ if $ARGS[0] = 'nude_shoot':
 				modelfoto_glamour += 1
 				modelfoto_nude += 1
 				mdlng_exp += rand(9,10)
-				gs 'fame', 'city', 'mdlng', rand(10,20)
-				gs 'fame', 'pav', 'mdlng', rand(0,city_modelling)/4
+				gs 'fame', 'city', 'modelling', rand(10,20)
+				gs 'fame', 'pav', 'modelling', rand(0,city_modelling)/4
 				inhib_exp += 5
 				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/nude<<rand(6,26)>>.jpg"></center>'
 				'	Already naked, you step onto the set and begin the shoot immediately.'
@@ -2335,8 +2335,8 @@ if $ARGS[0] = 'nude_shoot':
 				modelfoto_nip += 1
 				modelfoto_pussy += 1
 				mdlng_exp += rand(9,10)
-				gs 'fame', 'city', 'mdlng', rand(10,20)
-				gs 'fame', 'pav', 'mdlng', rand(10,15)
+				gs 'fame', 'city', 'modelling', rand(10,20)
+				gs 'fame', 'pav', 'modelling', rand(10,15)
 				inhib_exp += 5
 				if pcs_pubes <= 20:
 					'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/nude<<rand(27,35)>>.jpg"></center>'

+ 1 - 1
locations/gdkin.qsrc

@@ -16,7 +16,7 @@ if $ARGS[0] = '':
 
 	if music_on = 1:
 		$track_loop = 'sound/komb.mp3'
-		volume = 100
+		volume = 80
 		music_loop = 1
 		pl '<a href="exec: music_on = 0 & gt $loc">Turn off the music</a>'
 	else

+ 1 - 1
locations/gevent.qsrc

@@ -57,7 +57,7 @@ if $ARGS[0] = '1':
 				gs 'arousal', 'end'
 				gs 'stat'
 
-				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/misha/sex/cum.jpg"></center>'
+				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/misha/sex/cum.mp4"></center>'
 				'His sperm tastes quite bitter as it hits your tongue. Nevertheless, knowing it is what he expects you to do, you swallow it and lick your lips clean like an obedient girl.'
 				'"You swallowed it, girl?" he asks, melodramatically patting your head as a sign of approval. He continues: "Very nice. Go ahead and get dressed, I''ll give you a present for your efforts."'
 				'Uncle Misha leaves the room as you get dressed, and while you quickly put your clothes back on you hope that ''present'' is not more punishment in some shape or form. To your surprise, his present is actually a bank note worth 500 <b>₽</b>.'

+ 2 - 2
locations/gpoli.qsrc

@@ -1370,7 +1370,7 @@ if $ARGS[0] = 'maternity_ward':
 						end
 						'Donation count: <<pcs_gpoli_totalmilkdonation_count>>'
 						'Average milk volume per donation in ml: <<pcs_gpoli_totalmilkdonation/pcs_gpoli_totalmilkdonation_count>>'
-						'Paid money: <<(((pcs_gpoli_totalmilkdonation*10)/3)*75)/100>><b>₽</b>'
+						'Paid money: <<((pcs_gpoli_totalmilkdonation/50)*100)>><b>₽</b>'
 						'<br>----------------------------------------'
 					end
 					act 'Leave': gt 'gpoli', 'maternity_ward'
@@ -1819,7 +1819,7 @@ if $ARGS[0] = 'maternity_ward_donation':
 			end
 			lact_ev['gpoli_milkedvolume'] = 0
 			if pcs_gpoli_donationsessioncount > 0:
-				mward_donatemoney = (((pcs_gpoli_donationsessioncount*500)/3)*75)/100
+				mward_donatemoney = (pcs_gpoli_donationsessioncount*100)
 			else
 				mward_donatemoney = 0
 			end

+ 19 - 17
locations/gskino.qsrc

@@ -8,22 +8,11 @@ gs 'stat'
 '<center><img <<$set_imgh>> src="images/locations/pavlovsk/park/theater/kinoteatr.jpg"></center>'
 'Small cinema in which there is just one small screen. A movie ticket costs 100 <b>₽</b>.'
 
-$kinoevent = {
-	act 'Turn around and look':
-		cls
-		pcs_horny += 3
-		gs'stat'
-		'<center><img src="images/locations/pavlovsk/park/theater/sex/kino.mp4"></center>'
-		'You see on the back row a girl sucking a guy, nobody reacts to the loud smacking sound that can be heard by the whole cinema.'
-		'You turn back and watch the rest of the film.'
-		act 'Leave the cinema':gt 'gskver', 'start'		
-	end
-}
+act 'Leave the cinema':minut += 5 & gt 'gskver', 'start'
 
 if money >= 100:
 	act 'Go to the movies':
-		cla
-		*clr
+		*clr & cla
 		menu_off = 1
 		money -= 100
 		minut += 120
@@ -32,26 +21,39 @@ if money >= 100:
 			cla
 			'As you are watching the film a guy sits next to you and whispers in your ear, "Everyone knows you like to suck cock, I''ll pay you if you have a go on this."'
 			'Its dark, but you can just about see well enough to see that he is pointing at his dick.'
-			act 'Agree':gt 'gevent', '2'
 			act 'Reject':
 				cla
 				'You tell him you''d rather watch the film, he mutters something that sounded like bitch and leaves you to watch the rest of the movie in peace.'
 				act 'Leave the cinema':gt 'gskver', 'start'
 			end
+			act 'Agree':gt 'gevent', '2'
 			
 			exit
 		end
+		
+		act 'Leave the cinema':gt 'gskver', 'start'
+		
 		if rand(1,100) > 10:
 			'You quietly watch the film.'
 		else
-			'You quietly watch the movie, but suddenly behind you there is a strange sound.' & dynamic $kinoevent
+			'You quietly watch the movie, but suddenly behind you there is a strange sound.'
+			gs 'gskino', 'kinoevent'
 		end
+	end
+end
 
-		act 'Leave the cinema':gt 'gskver', 'start'
+if $ARGS[0] = 'kinoevent':
+	act 'Turn around and look':
+		*clr & cla
+		pcs_horny += 3
+		gs'stat'
+		'<center><video autoplay loop src="images/locations/pavlovsk/park/theater/sex/kino.mp4"></video></center>'
+		'You see on the back row a girl sucking a guy, nobody reacts to the loud smacking sound that can be heard by the whole cinema.'
+		'You turn back and watch the rest of the film.'
+		act 'Leave the cinema':gt 'gskver', 'start'		
 	end
 end
 
-act 'Leave the cinema':minut += 5 & gt 'gskver', 'start'
 
 --- gskino ---------------------------------
 

+ 1 - 1
locations/lab.qsrc

@@ -339,7 +339,7 @@ if $ARGS[0] = 'Tatiana':
 		$EyeColorTab =   func('lab', 'ListBuilder', 'Eye Color',  '40', '30', '$eyeColors', 'i',         'pcs_eyecol')
 		$EyeLashTab =    func('lab', 'ListBuilder', 'Eye Lashes', '40', '30', '$eyeLashes', 'i',         'pcs_lashes')
 		$LipTab =        func('lab', 'ListBuilder', 'Lip Size',   '40', '30', '$lipSize',   'i',         'pcs_lip')
-		$BreastTab =     func('lab', 'ListBuilder', 'Breast Size','40', '30', '$breastSize','breastSize','pcs_cupsize')
+		$BreastTab =     func('lab', 'ListBuilder', 'Breast Size','40', '30', '$breastSize','breastSize','nbsize')
 
 		$SkinTab = "<a href=""EXEC:pcs_skin = 100 & pcs_manna -= 40 & gs 'arousal', 'voyeur', 30 & gs 'stat' & gt 'lab', 'BodyModded', 'Skin', 'clear'"">Clear Skin</a>"
 		$VirginTab = "<a href=""EXEC:pcs_vag = 0 & pcs_manna -= 40 & gs 'arousal', 'voyeur', 30 & gs 'stat' & gt 'lab', 'BodyModded', 'Virginity', 'renewed'"">Renew Virginity</a>"

+ 4 - 4
locations/lact_bp.qsrc

@@ -337,7 +337,7 @@ if $ARGS[0] = 'bp_milking':
 		end
 
 		if lactation['breastmv'] > 0 and (func('lact_bp','useable_sbottle_count') > 0 or func('lact_bp','useable_mbottle_count') > 0):
-			pumptime = (func('lact_lib','$get_breastmilk_time', 3, (lactation['breastmv']/10)))
+			pumptime = (func('lact_lib','$get_breastmilk_time', 3, (lactation['breastmv']/1000)))
 			if pumptime > 5:
 				pumptime -= 2
 			end
@@ -370,7 +370,7 @@ if $ARGS[0] = 'bp_milking':
 				end
 			else
 				act 'Pump until breasts are empty':
-					pumptime = func('lact_lib','$get_breastmilk_time', 3, (lactation['breastmv']/10))
+					pumptime = func('lact_lib','$get_breastmilk_time', 3, (lactation['breastmv']/1000))
 					if pumptime > 5:
 						pumptime -= 2
 					end
@@ -437,7 +437,7 @@ if $ARGS[0] = 'man_milking':
 		'How long do you want to massage your breasts?'
 	end
 	if lactation['breastmv'] > 0:
-		pumptime = (func('lact_lib','$get_breastmilk_time', 5, (lactation['breastmv']/10)))
+		pumptime = (func('lact_lib','$get_breastmilk_time', 5, (lactation['breastmv']/1000)))
 		if pumptime > 60:
 			act 'Express until breasts are empty':
 				*clr
@@ -469,7 +469,7 @@ if $ARGS[0] = 'man_milking':
 			end
 		else
 			act 'Express until breasts are empty':
-				pumptime = func('lact_lib','$get_breastmilk_time', 5, (lactation['breastmv']/10))
+				pumptime = func('lact_lib','$get_breastmilk_time', 5, (lactation['breastmv']/1000))
 				gt 'lact_bp', 'hand_milking'
 			end
 		end

+ 3 - 0
locations/lact_lib.qsrc

@@ -927,6 +927,7 @@ if $ARGS[0] = '$get_breastmilk':
 			breastcounter += pumptime/10
 		end
 		lactation['dailyoverdemand'] += lactation['max_sucktion_demand']
+		func('lact_lib','breast_engorment')
 		result = 0
 	elseif lactation['active'] > 0:
 		!!	How much milk demand is applied to the breasts.
@@ -1054,6 +1055,8 @@ if $ARGS[0] = '$get_breastmilk':
 		else
 			breastcounter += pumptime/10
 		end
+		!!	checking for engorgement
+		func('lact_lib','breast_engorment')
 		!!	Done - Result is the milked volume.
 		result = lactation['get_bm_milkedvolume']
 	end

+ 15 - 17
locations/liames.qsrc

@@ -32,10 +32,13 @@ if hour >= 8 and hour <= 20:
 else
 	'There is a small local shop that is open 8:00 - 20:00 everyday. Currently closed.'
 end
+
 if hour >= 10 and hour <= 22:
 	'A <a href="exec:gt ''liamelkafe'',''start''">tiny cafe</a> displays a street sign outside its door.'
 else
 	'The tiny cafe here is close currently, it is open every day 10:00 - 22:00'
+end
+
 if exhibitionQW > 3:
 	if week < 7 and hour >= 8 and hour <= 18:
 		'<a href="exec:gt ''exhibitionistshop'',''start''">Expression of You</a> is just down a small side street from here.'
@@ -44,13 +47,9 @@ if exhibitionQW > 3:
 	end
 end
 
-if home_owned[4] = 1:
-	act '<b>Go home</b>':gt'korr2x'
-end
+if home_owned[4] = 1: act '<b>Go home</b>':gt'korr2x'
 
-if hour >= 8 and hour <= 17 and exhibitionQW = 3:
-	act 'Search for the shop on the card from Kseniya': gt 'exhibitionistshop', 'start'
-end
+if hour >= 8 and hour <= 17 and exhibitionQW = 3: act 'Search for the shop on the card from Kseniya': gt 'exhibitionistshop', 'start'
 
 act 'wait':gs 'obj_din', 'wait'
 
@@ -88,22 +87,21 @@ end
 
 
 temp = RAND(1,100)
-	if temp >= 90:
-		cls
-		minut += 5
-		gs'stat'
-
-		'<center><img <<$set_imgh>> src="images/locations/oldtown/liamhud1.jpg"></center>'
+if temp >= 90:
+	*clr & cla
+	minut += 5
+	gs'stat'
+	'<center><img <<$set_imgh>> src="images/locations/oldtown/liamhud1.jpg"></center>'
 
-		'You have seen both a sitting area-the artist, here the artist girl came and sat opposite him,and the artist began to paint it'
+	'You have seen both a sitting area-the artist, here the artist girl came and sat opposite him,and the artist began to paint it'
 
-		act 'Further':gt'liames'
-	end
+	act 'Further':gt'liames'
+end
 
 
 if hour >= 15 and hour <= 22 and tusa = 0:
 	act'Local Hangout':
-		cls
+		*clr & cla
 		gs'stat'
 		gs'dibodi'
 		minut += 20
@@ -118,7 +116,7 @@ end
 
 if hour >= 15 and hour <= 22 and tusa = 1 and tusnyakday ! daystart:
 	act'Local Hangout':
-		cls
+		*clr & cla
 		gs'stat'
 		gs'dibodi'
 		minut += 20

+ 9 - 1
locations/metro.qsrc

@@ -176,6 +176,7 @@ if $ARGS[0] = 'shop':
 	menu_off = 1
 	'<b>What''s it gonna be?</b>'
 	'He shows you a small box filled with red and blue pills. There is about two dozen of each pill inside.'
+	act 'Leave':gt 'metro','start'
 	if money >= 1000:
 		'<a href="exec:money -= 1000 & mentats_have += 20 & gt ''metro'', ''shop''">Buy neuroboosters</a> 1000 <b>₽</b>'
 	else
@@ -205,7 +206,14 @@ if $ARGS[0] = 'shop':
 		end
 		'Uses left: <<aphrodisiac_have>>'
 	end
-	act 'back':gt 'metro','start'
+	if money >= 50:
+		'<a href="exec:money -= 50 & joint += 1 & gt ''metro'', ''shop''">Buy a joint</a> for 50 <b>₽</b>'
+	elseif money >= 500:
+		'<a href="exec:money -= 50 & joint += 1 & gt ''metro'', ''shop''">Buy a joint</a> for 50 <b>₽</b>'
+		'<a href="exec:money -= 500 & joint += 10 & gt ''metro'', ''shop''">Buy ten joints</a> for 500 <b>₽</b>'
+	else
+		'Buy a joint 50 <b>₽</b> (You do not have enough money)'
+	end
 end
 
 if $ARGS[0] = 'dealer':

+ 11 - 7
locations/mod_setting.qsrc

@@ -17,19 +17,21 @@ end
 '<b>WARNING</b>: Game slowdown may occur when installing too many mods, or mods with bad structure.'
 if mod_list > 0:
 
-	'<table border=1><tr><td>id</td><td>Name</td><td>Version</td><td>Author</td><td>Description</td></tr>'
+	'<table border=1><tr><td>id</td><td>Name</td><td>Version</td><td>Author</td><td>Description</td><td>Options</td></tr>'
 	mod_i=1
 	:mod_alllist
 	if $mod_name[mod_i] ! '':
+		!name
 		gs 'mod_<<$mod_name[mod_i]>>_setup'
 		*p '<tr><td><<mod_i>></td><td><<$mod_info[0]>></td>'
-		!name
-		*p '<td><<val($mod_info[1])/10000>>.<<(val($mod_info[1]) mod 10000)/100>> <<iif(val($mod_info[1]) mod 100 > 0, ''fix <<val($mod_info[1]) mod 100>> '', '' '')>></td>'
 		!version
-		*p '<td><<$mod_info[2]>></td>'
+		*p '<td><<val($mod_info[1])/10000>>.<<(val($mod_info[1]) mod 10000)/100>> <<iif(val($mod_info[1]) mod 100 > 0, ''fix <<val($mod_info[1]) mod 100>> '', '' '')>></td>'
 		!author
-		*p '<td><a href="exec:gs ''mod_<<$mod_info[0]>>_readme''"><img src="images/system/icon/anptekainfo.jpg"></a> <<$mod_info[3]>></td></tr>'
+		*p '<td><<$mod_info[2]>></td>'
 		!description and readme
+		*p '<td><a href="exec:gs ''mod_<<$mod_info[0]>>_readme''"><img src="images/system/icon/anptekainfo.jpg"></a> <<$mod_info[3]>></td></tr>'
+		!mod options page
+		*p '<td>'+iif($mod_opt[mod_i] ! '','<a href="exec:gs ''mod_<<$mod_info[0]>>_options''"><<$mod_info[4]>></a>','')+'</td></tr>'
 	else
 		'ERROR loading mod id <<mod_i>>, no mod name available'
 	end
@@ -38,14 +40,14 @@ if mod_list > 0:
 		mod_i+=1
 		jump 'mod_alllist'
 	end
-	killvar 'mod_info'
+	killvar '$mod_info'
 	'</table>'
 else
 	'<br>You have no Mods activated.'
 end
 '</center>'
 act ''+iif(settingmode = 1, '<center><b>Install new mod</b></center>','Install new mod')+'':
-	killvar 'mod_info'
+	killvar '$mod_info'
 	$mod_temp=input('input mod name (as for the example image above, input <B>isample</B>)')
 	if $mod_temp='':exit
 	addqst 'mod/<<$mod_temp>>.qsp'
@@ -59,6 +61,7 @@ act ''+iif(settingmode = 1, '<center><b>Install new mod</b></center>','Install n
 	$mod_version[mod_list] = $mod_info[1]
 	$mod_author[mod_list] = $mod_info[2]
 	$mod_desc[mod_list] = $mod_info[3]
+	$mod_opt[mod_list] = $mod_info[4]
 	gt $loc, $metka
 end
 act ''+iif(settingmode = 1, '<center><b>Disable all mods</b></center>','Disable all mods')+'':
@@ -69,6 +72,7 @@ act ''+iif(settingmode = 1, '<center><b>Disable all mods</b></center>','Disable
 		killvar '$mod_version'
 		killvar '$mod_author'
 		killvar '$mod_desc'
+		killvar '$mod_opt'
 		'All mod disabled. You can re-install them later.'
 		cla
 		act 'Continue':gt $loc, $metka

+ 2 - 4
locations/narkopriton.qsrc

@@ -22,7 +22,7 @@ if $ARGS[0] = 'start':
 		act 'Leave the drug den': minut += 5 & gt 'street'
 		act 'Ask for heroin': gt 'narkopriton', 'heroin'
 		act 'Ask for amphetamine': gt 'narkopriton', 'amphetamine'
-		!!act 'Ask for joints': gt 'narkopriton', 'joint'
+		act 'Ask for weed': gt 'narkopriton', 'joint'
 	 if StoryLine = 1 and snarkozak = 0:
 			act 'Ask for a drop-off point in Pavlovsk':
 				minut +=5
@@ -35,7 +35,7 @@ if $ARGS[0] = 'start':
 		act 'Leave the drug den': minut += 5 & gt 'street'
 		act 'Ask for heroin': gt 'narkopriton', 'heroin'
 		act 'Ask for amphetamine': gt 'narkopriton', 'amphetamine'
-		!!act 'Ask for joints': gt 'narkopriton', 'joint'
+		act 'Ask for weed': gt 'narkopriton', 'joint'
 	elseif (StrongNarkota > 23 and ampHigh > 23) or ampHigh > 23 or StrongNarkota > 23:
 		gt 'narkopriton', 'kiteHigh'
 	end
@@ -110,7 +110,6 @@ if $ARGS[0] = 'joints':
 			drugUser = 1
 			joint += 20
 			minut += 5
-			gs 'stat'
 			gt 'narkopriton', 'joint'
 		end
 	end
@@ -120,7 +119,6 @@ if $ARGS[0] = 'joints':
 			drugUser = 1
 			joint += 10
 			minut += 5
-			gs 'stat'
 			gt 'narkopriton', 'joint'
 		end
 	end

+ 1 - 1
locations/natbelEv.qsrc

@@ -202,7 +202,7 @@ if $ARGS[0] = 'laundry':
 	end
 end
 
-!! This will become an event where Sveta can spy on Natasha in the shower
+!! This is an event where Sveta can spy on Natasha in the shower
 if $ARGS[0] = 'showerspy':
 	menu_off = 1
 	CLOSE ALL

+ 73 - 0
locations/natpimp.qsrc

@@ -0,0 +1,73 @@
+# natpimp
+
+!! Events where Sveta pimps out Natasha
+
+!! Sveta makes Natasha fuck Olu
+if $ARGS[0] = 'go_see_olu':
+	act 'Take her to see Olu for 500':
+		oluuosegunday = daystart
+		gs 'boystat', 'A55'
+		*clr & cla
+		pcs_dom += 2
+		NatDolg -= 500
+		minut += 5
+		natsub += 1
+		natfuck += 1
+		if NatashaQW = 11: NatashaQW = 12
+		gs 'stat'
+		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/head/16.jpg"></center>'
+		'You know you need to help out with Olu soon, but your ass is still too sore. Then you get a great idea, kill two birds with one stone. Have Natasha have sex with him, she owes you anyways, besides it might be fun to make the little bitch squeal.'
+		'"Since I know you don''t have my money, I have a way you can help me out and pay off some of that debt. We are going to see my Aunt''s boyfriend Olu, he has a massive... sex drive and she can''t keep up and I need a break too."'
+		'Natasha seems a little unsure about this and perhaps a bit confused but she nods her head, you smile to her and lead her across the hall to your Aunts place.'
+		act 'Introduce Olu':
+			*clr & cla
+			minut += 5
+			'<center><b><font color=maroon>Apartment Aunt</font></b></center>'
+			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/olu/olu.jpg"></center>'
+			'You take off your shoes and go straight to the living room, where you find Olu resting on the couch.'
+			'He looks at you, that perpetual smile still on his face. "Hi, <<$pcs_nickname>>! Who''s your friend?" He says in badly accented Russian'
+			'"Hello, Olu! This is my friend Natasha, she wants you to fuck her." You say to him, pointing at his crotch and then slapping Natasha on the ass. He seems to understand quickly and nods with a huge grin holding up the bottle of lube.'
+			'You glance at Natasha. "Well take off your clothes." She nods and does as you ask.'
+			act 'Undress Natasha':
+				*clr & cla
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/olu/sex/olu4.jpg"></center>'
+				'You can''t help but smile, when you glance over and see Olu already naked with his massive dick swinging. She looks up and catches sight of his huge dick and freezes looking at you with a slightly panicked look.'
+				'You smile at her. "Yep it''s huge I know, my ass needs a break and you need to pay me back so..." you trail off, it only takes a moment for Natasha to understand and then it hits her you said ass.'
+				'She squeaks a reply. "You want him to fuck me in the ass with that thing?" she says in disbelief.'
+				'"Yes I do, my ass could use a break and you owe me..."'
+				'After a moment she lowers her gaze and then nods her head. You pat her shoulder. "Good girl and it won''t be too bad, we have plenty of lube."'
+				gs 'arousal', 'voyeur', 5, 'dom'
+				gs 'stat'
+				act 'Let the fun begin':
+					*clr & cla
+					natanal += 1
+					pcs_horny += 10
+					Olu_pay += 1
+					gs 'stat'
+					'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/olu/sex/olu2.jpg"></center>'
+					'You help Natasha get undressed and then get her down on all fours in front of Olu, while he lubes up his dick and her ass, you get undressed as well. No reason he should have all the fun. You knee down beside Natasha and grab her butt cheeks with your hands and spread them wide for Olu. Not needing any more invitation than that, he kneels down behind her and lines his cock up, she squeals loudly as he forces <<dick>>cm <<$dick_girth>> cock in her ass.'
+					'He starts fucking her slowly at first but you encourage him to go faster and deeper, pulling on her hips. You feel your pussy getting wet listening to Natasha cry out and watching the <<dick>>cm <<$dick_girth>> cock rip up her ass. You start rubbing your clit as you watch.'
+					gs 'arousal', 'voyeur', 5, 'dom'
+					gs 'stat'
+					act 'Eat me':
+						*clr & cla
+						gs 'stat'
+						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/olu/sex/olunat.jpg"></center>'
+						'Getting up, you move to sit in front of Natasha and spread your legs, you pull her face to your pussy and she wastes no time and starts licking your pussy. You''re loving it, grinding your pussy into her face, her muffled cries as she eats you, while Olu pounds her ass. You keep encouraging Olu to fuck her harder. The more she squeals the more turned on you get. Before long you are cumming, apparently seeing this is a turn on for Olu as well. As he shoots his load deep in her ass with in a few moments of watching you cum.'
+						*nl
+						'With that you all get cleaned up and start getting dressed again. Once you are dressed you help Natasha back to her apartment, as she seems to be having a little trouble walking. You feel a little bad for her. "You did great, it gets better I promise. Next time it won''t hurt as much, I promise." Then you give her a passionate kiss on the lips. She gives you a smile at that and nods her head and goes back into her apartment walking quite painfully.'
+						gs 'arousal', 'voyeur', 5, 'dom'
+						gs 'arousal', 'cuni', 5, 'dom', 'lesbian'
+						minut - 5
+						gs 'arousal', 'end'
+						gs 'stat'
+						act 'Finish':gt 'pod_ezd','etaj_4'
+					end
+				end
+			end
+		end
+	end
+end
+
+--- natpimp ---------------------------------

+ 354 - 205
locations/pavaptcourtev.qsrc

@@ -10,11 +10,19 @@ if $ARGS[0] = 'bench':
 	$loc = 'pavaptcourtev'
 	$location_type = 'public_outdoors'
 	gs 'stat'
-	if month >=11 and month <= 12 or month >=1 and month <=3:
-		!!Winter
+	if music_on = 1:
+		$track_loop = 'sound/outsideschool.mp3'
+		volume = 80
+		music_loop = 1
+		pl '<a href="exec: music_on = 0 & gt $loc">Turn off the music</a>'
+	else
+		music_loop = 0
+		close all
+		pl '<a href="exec: music_on = 1 & gt $loc">Play music</a>'
+	end
+	if month >= 11 and month <= 12 or month >= 1 and month <= 3:
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/benchw.jpg"></center>'
 	else
-		!!Summer
 		if hour >= 8 and hour <= 23:
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/bench.jpg"></center>'
 		else
@@ -27,6 +35,7 @@ if $ARGS[0] = 'bench':
 	if cookmag = 1 or fashmag = 1 or compmag = 1 or biomag = 1 or knitmag = 1 or fitmag = 1: act 'Read a magazine': gt 'pavaptcourtev', 'read'
 	act 'Play on your phone': gt 'pavaptcourtev', 'phone'
 	if siga > 0: act 'Smoke': gt 'pavaptcourtev', 'smoke'
+	if joint > 0: act 'Smoke a joint': gt 'pavaptcourtev', 'smoke_joint'
 end
 
 if $ARGS[0] = 'wait':
@@ -90,6 +99,18 @@ if $ARGS[0] = 'smoke':
 	if siga > 0: act 'Have another cigarette': gt 'pavaptcourtev', 'smoke'
 end
 
+if $ARGS[0] = 'smoke_joint':
+	*clr & cla
+	menu_off = 1
+	pcs_mood += 10
+	minut += 10
+	gs 'shortgs','smoke_joint'
+	gs 'stat'
+	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/benchsmoke.jpg"></center>'
+	'You pull a joint of your purse and light it up. Trying to act like you are just smoking a cigarette. You take a long slow drag off it as you relax on the bench, before long you are feeling the effects.'
+	act 'Get up': gt 'pavComplex', 'start'
+end
+
 if $ARGS[0] = 'events1':
 	CLOSE ALL
 	*clr & cla
@@ -100,12 +121,14 @@ if $ARGS[0] = 'events1':
 	minut += 5
 	gs 'stat'
 	
-	!!rolanmeet > 0: Rolan story has started
-	if rolanmeet = 0: events = rand(0,17)
-	if rolanmeet > 0: events = rand(0,22)
-	
 	:reroll_jump1
 	
+	if rolanmeet = 0: 
+		events = rand(0,17)
+	else
+		events = rand(0,22)
+	end
+		
 	if anushkaFirstvisit = 0 and npc_rel['A144'] > 50 and rand(0,1) = 1 and anushka_met ! daystart:
 		if storyline ! 1: jump 'reroll_jump1'
 		*clr & cla
@@ -201,6 +224,8 @@ if $ARGS[0] = 'events1':
 		end
 		'You notice some young boys heading over, the oldest about your brothers age. They are all holding water balloons or large open bottles of water. As they get closer they suddenly run over and start throwing the water on you, they chase you across the courtyard pretty much getting you soaking wet until they break off, when they see a new victim to go drench in water.'
 !!ToDo: I don''t know if there is code for making Sveta wet and her clothes wet or not, if so please add it, if not maybe we should think about adding it. Since this would mess up the hair, could make wet clothes uncomfortable to wear and in winter greatly increase the odds of getting sick if Sveta doesn''t go change into dry clothes.
+		pcs_hairbsh = 0
+		gs 'stat'
 		act 'Move away':gt 'pavComplex', 'start'
 	elseif events = 13:
 		*clr & cla
@@ -212,7 +237,7 @@ if $ARGS[0] = 'events1':
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/sex/evbj' + rand(1,2) + '.jpg"></center>'
 		text_rand = rand(0,2)
 		if text_rand = 0 or storyline ! 1:
-			'You spot an extremely happy looking man leaned up against the wall near the storage buildings, and squatting in front of him is a girl giving him an enthusiastic blowjob. You''re not exactly sure which of the two is enjoying it more. You don''t know either of these people, but you''ve seen them around here before. After a few minutes, you hear the guy moan, his cock never leaving the girl''s mouth. She continues to milk him for another minute before standing up and the two walk off together.'
+			'You spot an extremely happy looking guy leaning up against the wall near the storage buildings, and squatting in front of him is a girl giving him an enthusiastic blowjob. You''re not exactly sure which of the two is enjoying it more. You don''t know either of these people, but you''ve seen them around here before. After a few minutes, you hear the guy moan, his cock never leaving the girl''s mouth. She continues to milk him for another minute before standing up and the two walk off together.'
 		elseif text_rand = 1:
 			'You see, between two of the storage buildings, Lena squatting down before Lavrenti as she sucks his dick. Lena seems to be enjoying this almost as much as Lavrenti is enjoying getting the blowjob. After a few minutes, you hear him moan, his cock never leaving her mouth. She continues to milk him for another minute before standing up and the two walk off together. You wonder if Vitek is aware of what his sister is getting up to, though you definitely aren''t going to ask him, knowing his reputation, when it comes to his sister.'
 		elseif text_rand = 2:
@@ -243,10 +268,29 @@ if $ARGS[0] = 'events1':
 		gs 'stat'
 		act 'Move away':gt 'pavComplex', 'start'
 	elseif events = 16:
+		*clr & cla
+		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/nushbench.jpg"></center>'
+		'As you walk through the courtyard you see Anushka sitting on one of the benches, she hasn''t noticed you yet.'
+		act 'Move away':gt 'pavComplex', 'start'
+		act 'Take a seat next to her':
+			*clr & cla
+			pcs_mood += 10
+			npc_rel['A144'] += 1
+			gs 'Stat'
+			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/nushbenchtalk.jpg"></center>'
+			'You stop and take a seat next to her, she glances over as you sit down. "Hey <<$pcs_nickname>> whats up?"'
+			'"Just killing time, kinda bored you know?" You tell her.'
+			'She nods a bit. "Yeah I know how that is, I was so bored I was making up little stories for what the people are doing." She pauses only a moment then indicates some old guy walking towards the garages. "Take him for example, he use to be part of the kgb. Now he is a freelance assasin and was just hired to go kill, that shrill of a old woman that is always sitting in the market yelling at every girl wearing a skirt higher than her ankle, you know the one."'
+			*nl
+			'You smile and nod that you know the one she means. "So did you hire him?"'
+			'That gets a laugh from her. "Ok your turn." You take a moment to spot someone else and start making up your own story. The two of you spend the next bit laughing and making up stories about the different people you see passing through the courtyard. Then she gets a message and jumps up with a huge grin. "Need to go, see you later." And with that she runs off.'
+			act 'Move away':gt 'pavComplex', 'start'
+		end
+	elseif events = 17:
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/boysmoke.jpg"></center>'
 		'You notice a couple of boys from the complex standing over near of the buildings by the garages smoking.'
-		act 'Move away':gt 'pavComplex', 'start'
+		act 'Move away': gt 'pavComplex', 'start'
 		act 'Ask for a cigarette':
 			*clr & cla
 			minut += 1
@@ -263,7 +307,13 @@ if $ARGS[0] = 'events1':
 				'Then he looks at you. "Sure you can have a cigarette if you suck our dicks first."'
 				'"What? Why the fuck would I do that?" you ask him.'
 				'He snorts a laugh. "Come on, everyone knows your a cocksucker. So get down on your knees and suck us off or get lost."'
-				act 'Move away':gt 'pavComplex', 'start'
+				gs 'willpower', 'bj'
+				if will_cost <= pcs_willpwr:
+					act 'Move away (<<will_cost>> Willpower)':
+						gs 'willpower', 'resist'
+						gt 'pavComplex', 'start' 
+					end
+				end
 				act 'Get down on your knees':gt 'pavaptcourtev', 'smokeblowjob'
 			else
 				'One of the boys nods and pulls a pack out of his pocket, he pulls a cigarette out and hands it to you.'
@@ -281,7 +331,7 @@ if $ARGS[0] = 'events1':
 				end
 			end
 		end
-	elseif events >= 17:
+	elseif events >= 18:
 		if storyline ! 1: jump 'reroll_jump1'
 		gt 'pavcomplexrolan'
 	end	
@@ -295,8 +345,6 @@ if $ARGS[0] = 'events2':
 	$loc = 'pavaptcourtev'
 	$location_type = 'public_outdoors'
 	gs 'stat'
-!!ToDo: Remove this and the next line if places are added to the game where sveta can smoke the joints (julzor)
-	:night_events_jump
 	:reroll_jump2
 	nightevents = rand(1,12)	
 	if nightevents = 1:
@@ -366,10 +414,10 @@ if $ARGS[0] = 'events2':
 		act 'Move away':gt 'pavComplex', 'start'
 	elseif nightevents = 8:
 		*clr & cla
-!!ToDo: Remove this and the next line if places are added to the game where sveta can smoke the joints (julzor)
-		jump 'night_events_jump'
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/weed.jpg"></center>'
 		'You turn at the sound of movement, just in time to see a guy slightly older than you walk up to you. He stops just short of you and is holding a joint in his hand. "You look like the type of girl that likes to have fun. Only fifty each or a dozen for five hundred. So what do you say?"'
+!!will add this later when I find a good image set for it (nutluck)
+!!act 'How about we party together?':	
 		act 'No thanks':
 			*clr & cla
 			'<center><img <<$set_imgh>> src="images/pc/no.jpg"></center>'
@@ -389,9 +437,9 @@ if $ARGS[0] = 'events2':
 			end
 		end
 		if money >= 500: 
-			act 'Sure I''ll take ten':
+			act 'Sure I''ll take a dozen':
 				*clr & cla
-				joint += 1
+				joint += 12
 				minut += 1
 				money -= 500
 				gs 'stat'
@@ -399,9 +447,7 @@ if $ARGS[0] = 'events2':
 				'You glance around to make sure no one is watching, then you pull out five hundred from your purse and hand it over to him. He hands you a small bag of weed with some wrapping paper, with a smile and walks off. "Enjoy."'
 				act 'Move away':gt 'pavComplex', 'start'
 			end
-		end
-!!will add this later when I find a good image set for it.
-!!act 'How about we party together?':				
+		end			
 	elseif nightevents = 9:
 		if storyline ! 1: jump 'reroll_jump2'
 		*clr & cla
@@ -421,7 +467,7 @@ if $ARGS[0] = 'events2':
 			end
 			'You walk over to them. "Hey guys."'
 			if grupTipe = 5:
-				'They give you a look of disgust. "Get lost!"'
+				'They give you a look of disgust. "Get lost loser!"'
 				act 'Move away':gt 'pavComplex', 'start'
 			elseif grupTipe = 4:
 				'Vasily smiles to you and scoots over giving you a spot to sit between him and Dan. As you sit down he offers you a beer.'
@@ -464,7 +510,7 @@ if $ARGS[0] = 'events2':
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/gopgirls.jpg"></center>'
 			'You walk over to them. "Hey guys, mind if I join you?"'
 			if grupTipe = 5:
-				'Lena and Lera give you a look of disgust. "Get lost!", while Alyona just ignores you.'
+				'Lena and Lera give you a look of disgust. "Get lost loser!", while Alyona just ignores you.'
 				act 'Move away':gt 'pavComplex', 'start'
 			elseif grupTipe = 4:
 				'They make some room on the bench. "Sure join us <<$pcs_nickname>>" Anushka says.'
@@ -500,7 +546,7 @@ if $ARGS[0] = 'events2':
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/lelepa.jpg"></center>'
 			'You walk over to them. "Hey guys, mind if I join you?"'
 			if grupTipe = 5:
-				'They all give you a look of disgust. "Get lost!", is what Paulina says and the way she says it makes you think she is about ready to kick your ass for even asking.'
+				'They all give you a look of disgust. "Get lost loser!", is what Paulina says and the way she says it makes you think she is about ready to kick your ass for even asking.'
 				act 'Move away':gt 'pavComplex', 'start'
 			elseif grupTipe = 4:
 				'They make some room on the bench. "Sure join us <<$pcs_nickname>>" Paulina says.'
@@ -542,8 +588,14 @@ if $ARGS[0] = 'events2':
 				'Then he looks at you. "Sure you can have a cigarette if you suck our dicks first."'
 				'"What? Why the fuck would I do that?" you ask him'
 				'He snorts a laugh. "Come on, everyone knows your a cocksucker. So get down on your knees and suck us off or get lost."'
+				gs 'willpower', 'bj'
+				if will_cost <= pcs_willpwr:
+					act 'Move away (<<will_cost>> Willpower)':
+						gs 'willpower', 'resist'
+						gt 'pavComplex', 'start'
+					end
+				end
 				act 'Get down on your knees':gt 'pavaptcourtev', 'smokeblowjob'
-				act 'Move away':gt 'pavComplex', 'start'
 			else
 				cla
 				'One of the boys nods and pulls a pack out of his pocket, he pulls a cigarette out and hands it to you.'
@@ -574,81 +626,111 @@ if $ARGS[0] = 'male_gopnik_beer':
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/drinkbeer.jpg"></center>'
 	'You take the offered beer, taking a swig of it. You listen to the boys talking about their latest ventures, which range from vandalizing, beating some guy up, to gang banging some slut. Occasionally you comment and as well, but you mostly just listen to them.'
-	act 'Stop drinking and leave':gt 'pavComplex', 'start'
-		act 'Drink more':
+	gs 'willpower', 'drink'
+	if will_cost <= pcs_willpwr:
+		act 'Stop drinking and leave(<<will_cost>> Willpower)':
+			gs 'willpower', 'resist'
+			gt 'pavComplex', 'start'
+		end
+	end
+	act 'Drink more':
+		*clr & cla
+		minut += 5
+		alko += 1
+		gs 'stat'
+		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/beer' + rand(1,2) + '.jpg"></center>'
+		'You grab another beer from the collection the boys have, they don''t seem to mind. You keep drinking as you continue to listen to them.'
+		gs 'willpower', 'drink'
+		if will_cost <= pcs_willpwr:
+			act 'Stop drinking and leave(<<will_cost>> Willpower)': 
+				gs 'willpower', 'resist'
+				gt 'pavComplex', 'start'
+			end
+		end
+		act 'Drink even more':
 			*clr & cla
 			minut += 5
 			alko += 1
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/beer' + rand(1,2) + '.jpg"></center>'
-			'You grab another beer from the collection the boys have, they don''t seem to mind. You keep drinking as you continue to listen to them.'
-			act 'Stop drinking and leave':gt 'pavComplex', 'start'
-			act 'Drink even more':
-				*clr & cla
-				minut += 5
-				alko += 1
-				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/beer' + rand(1,2) + '.jpg"></center>'
-				if pav_slut < 50 and grupTipe ! 4:
-					'After you drink that beer, you are starting to feel the effects of the beers, but Vasily keeps you from grabbing another beer. "It''s time for you to go <<$pcs_nickname>>, good girls don''t get wasted like this." He won''t take no for an answer and escorts you away from them, before turning and going back to join Vitek and Dan himself.'
-					act 'Stop drinking and leave':gt 'pavComplex', 'start'
-				elseif kotovLoveQW > 0:
-					'After you drink that beer, you are starting to feel the effects of the beers, but Vitek gets up and pulls you up as well. "It''s time for you to go <<$pcs_nickname>>, you are getting to drunk. So go home and I will see you later." He won''t take no for an answer and escorts you away from them, before turning and going back to join Vasily and Dan himself.'
-					act 'Stop drinking and leave':gt 'pavComplex', 'start'
-				else
-					'You are starting to feel the effects of the beers but you are having to much fun. So you grab another beer from the collection the boys have, they don''t seem to mind. You keep drinking as you continue to listen to them.'
-					act 'Stop drinking and leave':gt 'pavComplex', 'start'
-					act 'Grab another beer':
-						*clr & cla
-						minut += 5
-						alko += 1
-						gs 'stat'
-						'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/beer' + rand(1,2) + '.jpg"></center>'
-						'Now you are feeling pretty drunk, the guys seem to be amused by just how drunk you are. They exchange a few words that you can''t quite make out. Then Vasily speaks up. "Hey <<$pcs_nickname>> you really know how to drink." You nod at the compliment because it is coming from these three. "Yeah I do okay."'
-						*nl
-						'This seems to amuse them even more. "Yeah I bet you could down a beer faster than Vitek can, couldn''t you?" You give him a look wondering what he is up to but right now you feel like you could out drink anyone so you nod. "Yeah I think I could."'
-						'Vasily grins widely. "Great then how about we make a bet, if you can drink one down faster than Vitek we will buy you a case of beer, but if you lose. You got to walk around the complex completely naked. What do you say?"'
-						act 'Refuse bet':
+			if pav_slut < 50 and grupTipe ! 4:
+				'After you drink that beer, you are starting to feel the effects of the beers, but Vasily keeps you from grabbing another beer. "It''s time for you to go <<$pcs_nickname>>, good girls don''t get wasted like this." He won''t take no for an answer and escorts you away from them, before turning and going back to join Vitek and Dan himself.'
+				act 'Stop drinking and leave':gt 'pavComplex', 'start'
+			elseif kotovLoveQW > 0:
+				'After you drink that beer, you are starting to feel the effects of the beers, but Vitek gets up and pulls you up as well. "It''s time for you to go <<$pcs_nickname>>, you are getting to drunk. So go home and I will see you later." He won''t take no for an answer and escorts you away from them, before turning and going back to join Vasily and Dan himself.'
+				act 'Stop drinking and leave':gt 'pavComplex', 'start'
+			else
+				'You are starting to feel the effects of the beers but you are having to much fun. So you grab another beer from the collection the boys have, they don''t seem to mind. You keep drinking as you continue to listen to them.'
+				gs 'willpower', 'drink'
+				if will_cost <= pcs_willpwr:
+					act 'Stop drinking and leave(<<will_cost>> Willpower)': 
+						gs 'willpower', 'resist'
+						gt 'pavComplex', 'start'
+					end
+				end
+				act 'Grab another beer':
+					*clr & cla
+					minut += 5
+					alko += 1
+					gs 'stat'
+					'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/beer' + rand(1,2) + '.jpg"></center>'
+					'Now you are feeling pretty drunk, the guys seem to be amused by just how drunk you are. They exchange a few words that you can''t quite make out. Then Vasily speaks up. "Hey <<$pcs_nickname>> you really know how to drink." You nod at the compliment because it is coming from these three. "Yeah I do okay."'
+					*nl
+					'This seems to amuse them even more. "Yeah I bet you could down a beer faster than Vitek can, couldn''t you?" You give him a look wondering what he is up to but right now you feel like you could out drink anyone so you nod. "Yeah I think I could."'
+					'Vasily grins widely. "Great then how about we make a bet, if you can drink one down faster than Vitek we will buy you a case of beer, but if you lose. You got to walk around the complex completely naked. What do you say?"'
+					gs 'willpower', 'exhib'
+					if will_cost <= pcs_willpwr:
+						act 'Refuse bet(<<will_cost>> Willpower)':
 							*clr & cla
+							gs 'willpower', 'resist'
 							'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/dandick.jpg"></center>'
 							'You shake your head no. "No I don''t think so, I wouldn''t win so no reason for me to make that bet." You reach for another beer but Dan pulls it away before you can grab it. Then he stands up and pulls his dick out of his pants. "If you want another beer you have to suck my dick."'
-							act 'Refuse':
-								*clr & cla
-								'<center><img <<$set_imgh>> src="images/pc/no.jpg"></center>'
-								'You shake your head no. "I''m not sucking your dick for a beer Dan."'
-								'He laughs, "Then you''re not getting another beer." Knowing you won''t win this and you are not about to suck his dick for a beer you sigh and leave them.'
-								act 'Move away':gt 'pavComplex', 'start'
+							gs 'willpower', 'bj'
+							if will_cost <= pcs_willpwr:
+								act 'Refuse (<<will_cost>> Willpower)':
+									*clr & cla
+									gs 'willpower', 'resist'
+									'<center><img <<$set_imgh>> src="images/pc/no.jpg"></center>'
+									'You shake your head no. "I''m not sucking your dick for a beer Dan."'
+									'He laughs, "Then you''re not getting another beer." Knowing you won''t win this and you are not about to suck his dick for a beer you sigh and leave them.'
+									act 'Move away':gt 'pavComplex', 'start'
+								end
 							end
-											
-							act 'Agree':gt 'pavaptcourtev', 'suck3stooges'
-												
-							if grupTipe = 4:
-								act 'Threaten Dan':
-								*clr & cla
-								npc_rel['A10'] -= 2
-								grupvalue[4] += 1
-								alko += 1
-!!ToDo: code for adding willpower and or dom when we do something with them. This note is just so we remember to add it
-								'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/dandick.jpg"></center>'
-								'You smile to Dan and reach over and grab his dick, but instead of stroking it, you dig your nails deeply into it, making him squirm and yell. Trying to pull away which only makes it hurt more. "Fuck <<$pcs_nickname>> let go before you rip my dick off!" Vitek and Vasily howl in laughter at this.'
-								'You give him a sadist little smile. "Give me a beer and I will let go." He gives you a dirty look but winces as you dig your nails in even harder, with that he quickly hands you another beer. You take your time taking another drink before releasing him.'
-								*nl
-								'He puts his dick away and spends the next several minutes complaining about how much his dick hurts. With the last of the beers drank, the boys get up and telling you they will see you later and then they move off to go do who knows what. They don''t invite you to join them, so you take the hint.'
-								act 'Move away':gt 'pavComplex', 'start'
+							act 'Agree': gt 'pavaptcourtev', 'suck3stooges'
+							gs 'willpower', 'drink'
+							if grupTipe = 4 and will_cost <= pcs_willpwr:
+								act 'Threaten Dan (<<will_cost>> Willpower)':
+									*clr & cla
+									npc_rel['A10'] -= 2
+									grupvalue[4] += 1
+									alko += 1
+									gs 'willpower', 'force'
+									gs 'stat'
+									'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/dandick.jpg"></center>'
+									'You smile to Dan and reach over and grab his dick, but instead of stroking it, you dig your nails deeply into it, making him squirm and yell. Trying to pull away which only makes it hurt more. "Fuck <<$pcs_nickname>> let go before you rip my dick off!" Vitek and Vasily howl in laughter at this.'
+									'You give him a sadist little smile. "Give me a beer and I will let go." He gives you a dirty look but winces as you dig your nails in even harder, with that he quickly hands you another beer. You take your time taking another drink before releasing him.'
+									*nl
+									'He puts his dick away and spends the next several minutes complaining about how much his dick hurts. With the last of the beers drank, the boys get up and telling you they will see you later and then they move off to go do who knows what. They don''t invite you to join them, so you take the hint.'
+									act 'Move away':gt 'pavComplex', 'start'
+								end
 							end
 						end
-						act 'Make Bet':
-							*clr & cla
-							'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/beer' + rand(1,2) + '.jpg"></center>'
-							'You are feeling confident. "Fine you got a bet." The boys laugh, while Dan hands you and Vitek a beer and says. "Okay start drinking when I say so."'
-							'When both you and Vitek nod, Dan says. "Drink!"'
-							'You start guzzling the beer, you are keeping up with Vitek, maybe even winning. Just then Vasily pokes you in the stomach which causes you to sputter out some beer and slow you down. Before you can recover Vitek finishes.'
-							*nl
-							'Vasily laughs. "Okay, strip and pay up <<$pcs_nickname>>."'
-							'You give him a slight glare. "You cheated."'
-							'Holding up his hands. "We never said you couldn''t do something to make the other lose. So stop whining and pay up."'
-							act 'Refuse':
+					end
+					act 'Make bet':
+						*clr & cla
+						'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/beer' + rand(1,2) + '.jpg"></center>'
+						'You are feeling confident. "Fine you got a bet." The boys laugh, while Dan hands you and Vitek a beer and says. "Okay start drinking when I say so."'
+						'When both you and Vitek nod, Dan says. "Drink!"'
+						'You start guzzling the beer, you are keeping up with Vitek, maybe even winning. Just then Vasily pokes you in the stomach which causes you to sputter out some beer and slow you down. Before you can recover Vitek finishes.'
+						*nl
+						'Vasily laughs. "Okay, strip and pay up <<$pcs_nickname>>."'
+						'You give him a slight glare. "You cheated."'
+						'Holding up his hands. "We never said you couldn''t do something to make the other lose. So stop whining and pay up."'
+						gs 'willpower', 'exhib'
+						if will_cost <= pcs_willpwr:
+							act 'Refuse(<<will_cost>> Willpower)':
 								*clr & cla
+								gs 'willpower', 'resist'
 								npc_rel['A9'] -= 2
 								npc_rel['A10'] -= 2
 								npc_rel['A11'] -= 2
@@ -661,23 +743,23 @@ if $ARGS[0] = 'male_gopnik_beer':
 								'You know they will get over it eventually, most likely. You also know their is no point arguing with them, so you leave them to grumble about you welshing on your bet.'
 								act 'Move away':gt 'pavComplex', 'start'
 							end
-							act 'Payup':
-								*clr & cla
-								npc_rel['A9'] += 1
-								npc_rel['A10'] += 1
-								npc_rel['A11'] += 1
-								grupvalue[4] += 1
-								pav_sex += 2
-								gs 'flash', 'full', 'outdoors', 5
-								gs 'stat'
-								'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/nudewalkb.jpg"></center>'
-								'You strip off your clothes, while the boys hoot and whistle. Once you are completely naked Vitek points to the garages. "Come on, start over there and walk all the way around the whole complex." You nod and walk over, with the boys following you, Vasily stops to grab you purse and clothes.'
-								*nl
-								'They follow behind you, laughing and talking seeming to enjoy the view. Occasionally a car drives by, the headlights lighting up your naked body. You notice a couple of people see you, their reactions range from disgust to interest but none of them approach or say anything.'
-								*nl
-								'Just before you get back to where you started, you notice you can''t hear the boys anymore. You turn back to look and they are gone. They took your clothes and left, you start back hoping they just stopped for a moment, but when you see your purse hanging from a handle of one of the garage doors you know they ditched you and took you clothes. Gathering up your purse you know you need to somehow make it back to the apartments without getting spotted.'
-								act 'Go home':gt 'pavaptcourtev', 'homenaked'
-							end
+						end
+						act 'Payup':
+							*clr & cla
+							npc_rel['A9'] += 1
+							npc_rel['A10'] += 1
+							npc_rel['A11'] += 1
+							grupvalue[4] += 1
+							pav_sex += 2
+							gs 'flash', 'full', 'outdoors', 5
+							gs 'stat'
+							'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/nudewalkb.jpg"></center>'
+							'You strip off your clothes, while the boys hoot and whistle. Once you are completely naked Vitek points to the garages. "Come on, start over there and walk all the way around the whole complex." You nod and walk over, with the boys following you, Vasily stops to grab you purse and clothes.'
+							*nl
+							'They follow behind you, laughing and talking seeming to enjoy the view. Occasionally a car drives by, the headlights lighting up your naked body. You notice a couple of people see you, their reactions range from disgust to interest but none of them approach or say anything.'
+							*nl
+							'Just before you get back to where you started, you notice you can''t hear the boys anymore. You turn back to look and they are gone. They took your clothes and left, you start back hoping they just stopped for a moment, but when you see your purse hanging from a handle of one of the garage doors you know they ditched you and took you clothes. Gathering up your purse you know you need to somehow make it back to the apartments without getting spotted.'
+							act 'Go home':gt 'pavaptcourtev', 'homenaked'
 						end
 					end
 				end
@@ -698,7 +780,13 @@ if $ARGS[0] = 'female_gopnik_beer_1':
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/drinkbeerg' + rand(1,2) + '.jpg"></center>'
 	'You take the offered beer, taking a swig of it. You listen to the girls talking about their latest ventures, which range from vandalizing, beating some girl up, bulling some of the nerds and outcasts, or what boys they find cute. Occasionally you comment and as well, but you mostly just listen to them.'
-	act 'Stop drinking and leave':gt 'pavComplex', 'start'
+	gs 'willpower', 'drink'
+	if will_cost <= pcs_willpwr:
+		act 'Stop drinking and leave(<<will_cost>> Willpower)': 
+			gs 'willpower', 'resist'
+			gt 'pavComplex', 'start'
+		end
+	end
 	act 'Drink more':
 		*clr & cla
 		alko += 1
@@ -706,7 +794,13 @@ if $ARGS[0] = 'female_gopnik_beer_1':
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/beer' + rand(1,2) + '.jpg"></center>'
 		'You grab another beer from the collection the girls have, they don''t seem to mind. You keep drinking as you continue to listen to them.'
-		act 'Stop drinking and leave':gt 'pavComplex', 'start'
+		gs 'willpower', 'drink'
+		if will_cost <= pcs_willpwr:
+			act 'Stop drinking and leave(<<will_cost>> Willpower)':
+				gs 'willpower', 'resist'
+				gt 'pavComplex', 'start' 
+			end
+		end
 		act 'Drink even more':
 			*clr & cla
 			alko += 1
@@ -714,7 +808,13 @@ if $ARGS[0] = 'female_gopnik_beer_1':
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/beer' + rand(1,2) + '.jpg"></center>'
 			'You are starting to feel the effects of the beers but you are having to much fun. So you grab another beer from the collection the girls have, they don''t seem to mind. You keep drinking as you continue to listen to them.'
-			act 'Stop drinking and leave':gt 'pavComplex', 'start'
+			gs 'willpower', 'drink'
+			if will_cost <= pcs_willpwr:
+				act 'Stop drinking and leave(<<will_cost>> Willpower)': 
+					gs 'willpower', 'resist'
+					gt 'pavComplex', 'start'
+				end
+			end
 			act 'Grab another beer':
 				*clr & cla
 				alko += 1
@@ -725,7 +825,7 @@ if $ARGS[0] = 'female_gopnik_beer_1':
 				*nl
 				'This seems to amuse them even more. "Yeah I bet you could down a beer faster than Alyona can, couldn''t you?" You give her a look wondering what she is up to but right now you feel like you could out drink anyone so you nod. "Yeah I think I could."'
 				'Lena grins widely. "Great then how about we make a bet, if you can out down one faster than Alyona, Lera will walk around the complex naked, but if you lose. You got to walk around the complex completely naked. What do you say?" Lera gives Lena a look of surprise but Lena just nods and Lera doesn''t say anything.'
-				act 'Make Bet':
+				act 'Make bet':
 					*clr & cla
 					'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/beer' + rand(1,2) + '.jpg"></center>'
 					'You are feeling confident. "Fine you got a bet." The girls laugh, while Lena hands you and Alyona a beer and says. "Okay, start drinking when I say."'
@@ -735,20 +835,24 @@ if $ARGS[0] = 'female_gopnik_beer_1':
 					'They all laugh, while Lera taunts. "Okay, strip and pay up <<$pcs_nickname>>."'
 					'You give him a slight glare. "You cheated."'
 					'Holding up her hands. "We never said you couldn''t do something to make the other lose. So stop whining and pay up."'
-					act 'Refuse':
-						*clr & cla
-						npc_rel['A20'] -= 3
-						npc_rel['A21'] -= 3
-						npc_rel['A44'] -= 3
-						npc_rel['A144'] -= 2
-						grupvalue[4] -= 3
-						minut += 2
-						gs 'stat'
-						'<center><img <<$set_imgh>> src="images/pc/no.jpg"></center>'
-						'You shake your head no. "No you cheated."'
-						'Then Lera gives you a slight shove. "Then get the fuck out of here and don''t come back"'
-						'You know they will get over it eventually, most likely. You also know their is no point arguing with them, so you leave them to grumble about you welshing on your bet.'
-						act 'Move away':gt 'pavComplex', 'start'
+					gs 'willpower', 'exhib'
+					if will_cost <= pcs_willpwr:
+						act 'Refuse(<<will_cost>> Willpower)':
+							*clr & cla
+							gs 'willpower', 'resist'
+							npc_rel['A20'] -= 3
+							npc_rel['A21'] -= 3
+							npc_rel['A44'] -= 3
+							npc_rel['A144'] -= 2
+							grupvalue[4] -= 3
+							minut += 2
+							gs 'stat'
+							'<center><img <<$set_imgh>> src="images/pc/no.jpg"></center>'
+							'You shake your head no. "No you cheated."'
+							'Then Lera gives you a slight shove. "Then get the fuck out of here and don''t come back"'
+							'You know they will get over it eventually, most likely. You also know their is no point arguing with them, so you leave them to grumble about you welshing on your bet.'
+							act 'Move away':gt 'pavComplex', 'start'
+						end
 					end
 					act 'Payup':
 						*clr & cla
@@ -771,32 +875,43 @@ if $ARGS[0] = 'female_gopnik_beer_1':
 						act 'Go home':gt 'pavaptcourtev', 'homenaked'
 					end
 				end
-				act 'Refuse bet':
-					'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/eatmelera.jpg"></center>'
-					'You shake your head no. "No I don''t think so, I wouldn''t win so no reason for me to make that bet." You reach for another beer but Lera pulls it away before you can grab it. Then he stands up and pulls her pants down enough to show off her clit. "If you want another beer you have to eat me <<$pcs_nickname>>." She says with a smirk. The other girls perk up at this and seem interested in what you''re going to do.'
-					act 'Refuse':
-						'<center><img <<$set_imgh>> src="images/pc/no.jpg"></center>'
-						'You shake your head no. "I''m not licking your pussy for a beer Lera."'
-						'She laughs, "Then you''re not getting another beer." Knowing you won''t win this and you are not about to lick her pussy for a beer you sigh and leave them.'
-						act 'Move away':gt 'pavComplex', 'start'
-					end
-					act 'Agree':gt 'pavaptcourtev', 'eatlera'
-					if grupTipe = 4:
-						act 'Threaten Lera':
-							*clr & cla
-							npc_rel['A21'] -= 2
-							grupvalue[4] += 1
-							alko += 1
-							minut += 5
-							gs 'stat'
-!!code for adding willpower and or dom when we do something with them. This note is just so we remember to add it
-							'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/eatmelera.jpg"></center>'
-							'You smile to Lera and reach over and pinch her clit between your index finger and thumb, which makes her squeal in pain, she grabs your arm with her hands. Trying to pull your hand away only makes it hurt more. "Fuck <<$pcs_nickname>> let go before you rip my clit off!" The other girls howl in laughter at this.'
-							*nl
-							'You give her a sadist little smile. "Give me a beer and I will let go." She gives you a dirty look but winces as you dig your nails in even harder, with that he quickly hands you another beer. You take your time taking another drink before releasing her.'
-							*nl
-							'She pulls her pants back up and spends the next several minutes complaining about how much her clit hurts. With the last of the beers drank, the girls get up and tell each other and you night. Then they each go their own way.'
-							act 'Move away':gt 'pavComplex', 'start'
+				gs 'willpower', 'exhib'
+				if will_cost <= pcs_willpwr:
+					act 'Refuse bet':
+						*clr & cla
+						gs 'willpower', 'resist'
+						'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/eatmelera.jpg"></center>'
+						'You shake your head no. "No I don''t think so, I wouldn''t win so no reason for me to make that bet." You reach for another beer but Lera pulls it away before you can grab it. Then he stands up and pulls her pants down enough to show off her clit. "If you want another beer you have to eat me <<$pcs_nickname>>." She says with a smirk. The other girls perk up at this and seem interested in what you''re going to do.' 
+						gs 'willpower', 'bj'
+						if will_cost <= pcs_willpwr:
+							act 'Refuse(<<will_cost>> Willpower)':
+								*clr & cla
+								gs 'willpower', 'resist'
+								'<center><img <<$set_imgh>> src="images/pc/no.jpg"></center>'
+								'You shake your head no. "I''m not licking your pussy for a beer Lera."'
+								'She laughs, "Then you''re not getting another beer." Knowing you won''t win this and you are not about to lick her pussy for a beer you sigh and leave them.'
+								act 'Move away':gt 'pavComplex', 'start'
+							end
+						end
+						act 'Agree':gt 'pavaptcourtev', 'eatlera'
+						gs 'willpower', 'drink'
+						if grupTipe = 4 and will_cost <= pcs_willpwr:
+							act 'Threaten Lera (<<will_cost>> Willpower)':
+								*clr & cla
+								npc_rel['A21'] -= 2
+								grupvalue[4] += 1
+								alko += 1
+								minut += 5
+								gs 'willpower', 'force'
+								gs 'stat'
+								'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/eatmelera.jpg"></center>'
+								'You smile to Lera and reach over and pinch her clit between your index finger and thumb, which makes her squeal in pain, she grabs your arm with her hands. Trying to pull your hand away only makes it hurt more. "Fuck <<$pcs_nickname>> let go before you rip my clit off!" The other girls howl in laughter at this.'
+								*nl
+								'You give her a sadist little smile. "Give me a beer and I will let go." She gives you a dirty look but winces as you dig your nails in even harder, with that he quickly hands you another beer. You take your time taking another drink before releasing her.'
+								*nl
+								'She pulls her pants back up and spends the next several minutes complaining about how much her clit hurts. With the last of the beers drank, the girls get up and tell each other and you night. Then they each go their own way.'
+								act 'Move away':gt 'pavComplex', 'start'
+							end
 						end
 					end
 				end
@@ -816,7 +931,13 @@ if $ARGS[0] = 'female_gopnik_beer_2':
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/drinkbeerg' + rand(1,2) + '.jpg"></center>'
 	'You take the offered beer, taking a swig of it. You listen to the girls talking about their latest ventures, which range from vandalizing, beating some girl up, bulling some of the nerds and outcasts, gossip about other girls, which ones are sluts and the like, or what boys they find cute. Occasionally you comment and as well, but you mostly just listen to them.'
-	act 'Stop drinking and leave':gt 'pavComplex', 'start'
+	gs 'willpower', 'drink'
+	if will_cost <= pcs_willpwr:
+		act 'Stop drinking and leave(<<will_cost>> Willpower)': 
+			gs 'willpower', 'resist'
+			gt 'pavComplex', 'start'
+		end
+	end
 	act 'Drink more':
 		*clr & cla
 		minut += 5
@@ -824,7 +945,13 @@ if $ARGS[0] = 'female_gopnik_beer_2':
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/beer' + rand(1,2) + '.jpg"></center>'
 		'You grab another beer from the collection the girls have, they don''t seem to mind. You keep drinking as you continue to listen to them.'
-		act 'Stop drinking and leave':gt 'pavComplex', 'start'
+		gs 'willpower', 'drink'
+		if will_cost <= pcs_willpwr:
+			act 'Stop drinking and leave(<<will_cost>> Willpower)':
+				gs 'willpower', 'resist'
+				gt 'pavComplex', 'start' 
+			end
+		end
 		act 'Drink even more':
 			*clr & cla
 			minut += 5
@@ -832,7 +959,13 @@ if $ARGS[0] = 'female_gopnik_beer_2':
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/beer' + rand(1,2) + '.jpg"></center>'
 			'You are starting to feel the effects of the beers but you are having to much fun. So you grab another beer from the collection the girls have, they don''t seem to mind. You keep drinking as you continue to listen to them.'
-			act 'Stop drinking and leave':gt 'pavComplex', 'start'
+			gs 'willpower', 'drink'
+			if will_cost <= pcs_willpwr:
+				act 'Stop drinking and leave(<<will_cost>> Willpower)':
+					gs 'willpower', 'resist'
+					gt 'pavComplex', 'start'
+				end
+			end
 			act 'Grab another beer':
 				*clr & cla
 				minut += 5
@@ -840,6 +973,13 @@ if $ARGS[0] = 'female_gopnik_beer_2':
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/beer' + rand(1,2) + '.jpg"></center>'
 				'Now you are feeling pretty drunk, the girls seem to be amused by just how drunk you are. They exchange a few words that you can''t quite make out. Then Lena speaks up. "Hey <<$pcs_nickname>> have another." She says as she hands you another beer.'
+				gs 'willpower', 'drink'
+				if will_cost <= pcs_willpwr:
+					act 'Stop drinking and leave(<<will_cost>> Willpower)':
+						gs 'willpower', 'resist'
+						gt 'pavComplex', 'start' 
+					end
+				end
 				act 'Keep drinking':
 					*clr & cla
 					minut += 5
@@ -847,17 +987,21 @@ if $ARGS[0] = 'female_gopnik_beer_2':
 					gs 'stat'
 					'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/beer' + rand(1,2) + '.jpg"></center>'
 					'They keep passing you beers now before you even finish the previous one and encouraging you to drink faster.'
-					act 'Had enough':
-						*clr & cla
-						npc_rel['A20'] -= 1
-						npc_rel['A21'] -= 1
-						npc_rel['A24'] -= 1
-						grupvalue[4] -= 1
-						gs 'stat'
-						'<center><img <<$set_imgh>> src="images/pc/no.jpg"></center>'
-						'You shake your head no. "No thanks, I think I had enough. Thanks for the beers though."'
-						'With that you get up and stumble off, before you get really wasted.'
-						act 'Move away':gt 'pavComplex', 'start'
+					gs 'willpower', 'drink'
+					if will_cost <= pcs_willpwr:
+						act 'Had enough(<<will_cost>> Willpower)':
+							*clr & cla
+							gs 'willpower', 'resist'
+							npc_rel['A20'] -= 1
+							npc_rel['A21'] -= 1
+							npc_rel['A24'] -= 1
+							grupvalue[4] -= 1
+							gs 'stat'
+							'<center><img <<$set_imgh>> src="images/pc/no.jpg"></center>'
+							'You shake your head no. "No thanks, I think I had enough. Thanks for the beers though."'
+							'With that you get up and stumble off, before you get really wasted.'
+							act 'Move away':gt 'pavComplex', 'start'
+						end
 					end
 					act 'Try to keep up':
 						*clr & cla
@@ -870,17 +1014,21 @@ if $ARGS[0] = 'female_gopnik_beer_2':
 						gs 'stat'
 						'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/beer' + rand(1,2) + '.jpg"></center>'
 						'You are completely wasted now, yet they still keep handing your beers and encouraging you to drink up.'
-						act 'Had enough':
-							*clr & cla
-							npc_rel['A20'] -= 1
-							npc_rel['A21'] -= 1
-							npc_rel['A24'] -= 1
-							grupvalue[4] -= 1
-							gs 'stat'
-							'<center><img <<$set_imgh>> src="images/pc/no.jpg"></center>'
-							'You shake your head no. "No thanks, I think I had enough. Thanks for the beers though."'
-							'With that you get up and stumble off, barely able to walk at all.'
-							act 'Move away':gt 'pavComplex', 'start'
+						gs 'willpower', 'drink'
+						if will_cost <= pcs_willpwr:
+							act 'Had enough(<<will_cost>> Willpower)':
+								*clr & cla
+								gs 'willpower', 'resist'
+								npc_rel['A20'] -= 1
+								npc_rel['A21'] -= 1
+								npc_rel['A24'] -= 1
+								grupvalue[4] -= 1
+								gs 'stat'
+								'<center><img <<$set_imgh>> src="images/pc/no.jpg"></center>'
+								'You shake your head no. "No thanks, I think I had enough. Thanks for the beers though."'
+								'With that you get up and stumble off, barely able to walk at all.'
+								act 'Move away':gt 'pavComplex', 'start'
+							end
 						end
 						act 'Keep going':
 							*clr & cla
@@ -941,12 +1089,17 @@ if $ARGS[0] = 'follownush':
 				'You return the kiss and soon your hands are roaming all over each others bodies, before long she starts pulling her clothes off and encouraging you to do the same.'
 				gs 'arousal', 'foreplay', 5, 'lesbian', 'exhibitionism'
 				gs 'stat'
-				act 'This is going to far':
-					npc_rel['A144'] -= 1
-					'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/sex/complex/hey.jpg"></center>'
-					'You pull back from the kiss breaking it and pull back till her hands are no longer on you. "Uh sorry, but this is too public."'
-					'She rolls her eyes slightly. "Yeah whatever, anyways I should get going." With that she gets up and straightens up her clothes as she heads upstairs. Leaving you behind, with nothing to do but return to the courtyard.'
-					act 'Leave':gt 'pavComplex', 'start'
+				gs 'willpower', 'sex'
+				if will_cost <= pcs_willpwr:
+					act 'This is going to far(<<will_cost>> Willpower)':
+						*clr & cla
+						npc_rel['A144'] -= 1
+						gs 'willpower', 'resist'
+						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/sex/complex/hey.jpg"></center>'
+						'You pull back from the kiss breaking it and pull back till her hands are no longer on you. "Uh sorry, but this is too public."'
+						'She rolls her eyes slightly. "Yeah whatever, anyways I should get going." With that she gets up and straightens up her clothes as she heads upstairs. Leaving you behind, with nothing to do but return to the courtyard.'
+						act 'Leave':gt 'pavComplex', 'start'
+					end
 				end
 				act 'Undress':
 					*clr & cla
@@ -1180,6 +1333,12 @@ if $ARGS[0] = 'homenaked':
 		act 'Go upstairs':
 			*clr & cla
 			minut += 3
+			rand(1,10)
+			if nakedrand = 1: 
+				gt 'pavaptcourtev', 'two_boys'
+			elseif nakedrand = 2: 
+				gt 'pavaptcourtev', 'misha'
+			end
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/nakedhall2.jpg"></center>'
 			'Almost to the top of the stairs to your floor you hear voices. You freeze and look back down the stairs tempted to bolt back down them, but then the voices fade and you hear a door close. You sneak slowly up the stairs, glancing down the hall to make sure no one is around and you head for your apartment.'
@@ -1223,7 +1382,6 @@ if $ARGS[0] = 'naked_aptcomplex':
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/naked/aptstairsnaked.jpg"></center>'
 			'Once inside you sigh in relief, almost home finally. Taking a look around, you glance up the stairs and then slowly start creeping up them hoping no one suddenly comes out of their apartment or comes down the stairs, catching you naked.'
 			gs 'stat'
-
 			act 'Sneak to your apartment':
 				*clr & cla
 				minut += 22
@@ -1266,19 +1424,19 @@ if $ARGS[0] = 'two_boys':
 	'You turn around and see <<$boydesc[1]>> and <<$boydesc[2]>>, standing behind you. One of them taking your picture with his phone, while the other walks over and leans against your apartment door, so you open it. "Please guys, I just need to get inside. Please share those pictures."'
 	'The one taking the pictures laughs and keeps taking them, while his friends leers at you, looking over your whole body. "Well if you are going to run around like a whore, we should treat you like one. So how about you come over here and let us fuck you and we will keep your secret and you can be our little whore, what do you say?"'
 	gs 'stat'
-	
-	act 'Tell them no and go home':
-!!willpower
-		*clr & cla
-		pav_sex += 4
-		minut += 1
-		gs 'exhibitionism', 4
-		killvar 'pavapt_boyrand'
-		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/naked/homedoornaked.jpg"></center>'
-		'You shake your head no. "No, I''ll be your personal whore, now move out of my way."'
-		'He laughs and gets off the door. "Whatever you say, whore." With that, you pull open the door and go into your apartment, with their laughter echoing out in the hall. Nothing you can do now, hopefully, they share the images with anyone, or at least anyone you know. Sighing you walk down the hall to your bedroom.'
-		gs 'stat'
-		
+	gs 'willpower', 'gangbang'
+	if will_cost <= pcs_willpwr:
+		act 'Tell them no and go home(<<will_cost>> Willpower)':
+			*clr & cla
+			gs 'willpower', 'resist'
+			pav_sex += 4
+			minut += 1
+			gs 'exhibitionism', 4
+			killvar 'pavapt_boyrand'
+			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/naked/homedoornaked.jpg"></center>'
+			'You shake your head no. "No, I''ll be your personal whore, now move out of my way."'
+			'He laughs and gets off the door. "Whatever you say, whore." With that, you pull open the door and go into your apartment, with their laughter echoing out in the hall. Nothing you can do now, hopefully, they share the images with anyone, or at least anyone you know. Sighing you walk down the hall to your bedroom.'
+			gs 'stat'
 !!this option should only show up if Sveta has another uniform	
 !!		act 'Put on spare uniform and Go back to school':
 !!			*clr & cla
@@ -1288,9 +1446,9 @@ if $ARGS[0] = 'two_boys':
 !!			'You change into your other school uniform quickly and then rush back to school.'
 !!this should take Sveta back to school missing one period
 !!		end
-		act 'Stay home': gt 'bedrPar'
+			act 'Stay home': gt 'bedrPar'
+		end
 	end
-	
 	act 'Agree':
 		*clr & cla
 		pav_sex += 2
@@ -1300,7 +1458,6 @@ if $ARGS[0] = 'two_boys':
 		'"Well to fuck you like the whore you are, of course." He barks with a laugh, with that they take you to their apartment. Once inside one of them pushes you down to your knees and the stand on each side of you, with obvious bulges in their pants from having hard-ons.'
 		gs 'arousal', 'foreplay', 2, 'exhibitionism'
 		gs 'stat'
-		
 		act 'Suck dick':
 			*clr & cla
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/sex/apartment/nsuck1.jpg"></center>'
@@ -1309,7 +1466,6 @@ if $ARGS[0] = 'two_boys':
 			gs 'arousal', 'hj', 2, 'sub', 'group'
 			minut -= 2
 			gs 'stat'
-			
 			act 'Switch dicks':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/sex/apartment/nsuck2.jpg"></center>'
@@ -1319,7 +1475,6 @@ if $ARGS[0] = 'two_boys':
 				gs 'arousal', 'hj', 3, 'sub', 'group'
 				minut -= 3
 				gs 'stat'
-				
 				act 'Tell them you are a vigin':
 					*clr & cla
 					'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/sex/apartment/nanal1.jpg"></center>'
@@ -1334,7 +1489,6 @@ if $ARGS[0] = 'two_boys':
 					gs 'arousal', 'anal', 5, 'sub', 'group'
 					minut -= 5
 					gs 'stat'
-					
 					act 'Switch dicks':
 						*clr & cla
 						'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/sex/apartment/nanal2.jpg"></center>'
@@ -1343,7 +1497,6 @@ if $ARGS[0] = 'two_boys':
 						gs 'arousal', 'anal', 5, 'sub', 'group'
 						minut -= 5
 						gs 'stat'
-						
 						act 'Back on your knees':
 							*clr & cla
 							'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/events/sex/apartment/ncum.jpg"></center>'
@@ -1364,7 +1517,6 @@ if $ARGS[0] = 'two_boys':
 								minut +2
 								'<center><img <<$set_imgh>> src="images/locations/pavlovsk/naked/homedoornaked.jpg"></center>'
 								'You leave the apartment behind and walk back to your apartment. You unlock the door and walk down the hall to your bedroom and are finally able to get cleaned up and dressed.'
-								
 !!this option should only show up if Sveta has another uniform	
 !!								act 'Put on spare uniform and Go back to school':
 !!									*clr & cla
@@ -1374,7 +1526,6 @@ if $ARGS[0] = 'two_boys':
 !!									'You change into your other school uniform quickly and then rush back to school.'
 !!this should take Sveta back to school missing one period
 !!								end
-								
 								act 'Stay home': gt 'bedrPar'
 							end
 						end
@@ -1470,13 +1621,11 @@ if $ARGS[0] = 'misha':
 	'You blush as he stares at your naked body, having been caught by someone you know. "Some girls at school stole my clothes." You explain to him, he snorts a laugh and shakes his head.'
 	'"Well you best get inside then." He tells you, as you go unlock the door as quickly as you can, as you go inside you think you hear him say. "Where were girls like that when I was in school." Rushing down the hall you go to your bedroom.'
 	gs 'stat'
-	
 	act 'Go to your bedroom':
 		*clr & cla
 		minut += 2
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/naked/homedoornaked.jpg"></center>'
 		'You finally make it to your bedroom and are able to get dressed.'
-		
 !! this option should only show up if Sveta has another uniform
 !!		act 'Put on spare uniform and go back to school':
 !!			*clr & cla
@@ -1486,9 +1635,9 @@ if $ARGS[0] = 'misha':
 !!			'You change into your other school uniform quickly and then quickly rush back to school.'
 !!			!!this should take Sveta back to school missing one period
 !!		end
-		
 		act 'Stay home': gt 'bedrPar'
 	end
 end
+ 
 
 --- pavaptcourtev ---------------------------------

+ 1 - 5
locations/pavtrainhall.qsrc

@@ -46,11 +46,7 @@ if $ARGS[0] = '':
 		act 'Go to the ticket office': gt 'pavtrainhall', 'ticket'
 	end
 
-	if snarkozak = 1 and narkossista = 0 and narkozakday!day:
-		if money >= 1500:
-			act 'Find the drug dealer':gs 'events', 'snarkozaka'
-		end
-	end
+	if snarkozak = 1 and narkossista = 0 and narkozakday ! day and money >= 1500: act 'Find the drug dealer':gs 'events', 'snarkozaka'
 
 	if vokzalVork >= 1:
 		if cleZalDay ! daystart or cleMTDay ! daystart or cleWTDay ! daystart:

+ 8 - 3
locations/pornstudio.qsrc

@@ -27,9 +27,7 @@ if $ARGS[0] = 'start':
 
 	act 'Visit the managers PA':gt 'pornstudio', 'pa'
 
-	if bomzQW = 1 and week = 4 and workDisk = 0:
-		act 'Arrive for work':gt 'pornstudio', 'delivery'
-	end
+	if bomzQW = 1 and week = 4 and workDisk = 0: act 'Arrive for work':gt 'pornstudio', 'delivery'
 
 	if workDolg > 0 and money >= workDolg:
 		act 'Repay your debt':
@@ -368,6 +366,7 @@ if $ARGS[0] = 'manager':
 			killvar 'pfilmday'
 			killvar 'pornplan'
 			killvar 'porntaken'
+			killvar 'pornnow'
 			gt 'pornstudio', 'start'
 		end
 		exit
@@ -378,6 +377,7 @@ if $ARGS[0] = 'manager':
 		killvar 'pfilmday'
 		killvar 'pornplan'
 		killvar 'porntaken'
+		killvar 'pornnow'
 		'You did not come to the shoot. You fucked me, and you already owed me a lot of money! I paid a lot of money for assistants, actors, cameramen, plus studio rental, and you took it and threw it in my face.'
 		'No, I do not want to work with you and moreover, you''re blacklisted.'
 	elseif pfilmday[0] > 0 and hour >= 10 and hour <= 12:
@@ -869,6 +869,11 @@ if $ARGS[0] = 'medical':
 		if venera > 0:
 			pfilmNO = 1
 			pfilmNoVenera = 1
+			killvar 'prodcosttrue'
+			killvar 'pfilmday'
+			killvar 'pornplan'
+			killvar 'porntaken'
+			killvar 'pornnow'
 			'Your analysis showed an STD. The doctor tells you and calls Peter. Peter looks at the test results.'
 			'"Sorry, but as long as you have an STD you cannot make films."'
 			act 'Leave':gt 'pornstudio', 'start'

+ 110 - 112
locations/selfplay.qsrc

@@ -40,65 +40,7 @@ if $ARGS[0] = 'start':
 	if maddildo = 1:'You have a humongous dildo, which is 40 cm long.'
 	}!
 	if dildo + middildo + largedildo + bigdildo + extradildo + superdildo + maddildo ! 0:
-		if dildohand ! 0: *pl & *pl 'You are using a <<dildohand>>cm long dildo.'
-
-		*pl
-
-		if dildo = 1:
-			if dildohand = 10:
-				*pl '<a href="exec:dildohand = 0 & gt ''selfplay'', ''start''">Stop</a> using the 10cm long dildo.'
-			else
-				*pl '<a href="exec:dildohand = 10 & gt ''selfplay'', ''start''">Start</a> using the 10cm long dildo.'
-			end
-		end
-
-		if middildo = 1:
-			if dildohand = 15:
-				*pl '<a href="exec:dildohand = 0 & gt ''selfplay'', ''start''">Stop</a> using the 15cm long dildo.'
-			else
-				*pl '<a href="exec:dildohand = 15 & gt ''selfplay'', ''start''">Start</a> using the 15cm long dildo.'
-			end
-		end
-
-		if largedildo = 1:
-			if dildohand = 20:
-				*pl '<a href="exec:dildohand = 0 & gt ''selfplay'', ''start''">Stop</a> using the 20cm long dildo.'
-			else
-				*pl '<a href="exec:dildohand = 20 & gt ''selfplay'', ''start''">Start</a> using the 20cm long dildo.'
-			end
-		end
-
-		if bigdildo = 1:
-			if dildohand = 25:
-				*pl '<a href="exec:dildohand = 0 & gt ''selfplay'', ''start''">Stop</a> using the 25cm long dildo.'
-			else
-				*pl '<a href="exec:dildohand = 25 & gt ''selfplay'', ''start''">Start</a> using the 25cm long dildo.'
-			end
-		end
-
-		if extradildo = 1:
-			if dildohand = 30:
-				*pl '<a href="exec:dildohand = 0 & gt ''selfplay'', ''start''">Stop</a> using the 30cm long dildo.'
-			else
-				*pl '<a href="exec:dildohand = 30 & gt ''selfplay'', ''start''">Start</a> using the 30cm long dildo.'
-			end
-		end
-
-		if superdildo = 1:
-			if dildohand = 35:
-				*pl '<a href="exec:dildohand = 0 & gt ''selfplay'', ''start''">Stop</a> using the 35cm long dildo.'
-			else
-				*pl '<a href="exec:dildohand = 35 & gt ''selfplay'', ''start''">Start</a> using the 35cm long dildo.'
-			end
-		end
-
-		if maddildo = 1:
-			if dildohand = 40:
-				*pl '<a href="exec:dildohand = 0 & gt ''selfplay'', ''start''">Stop</a> using the 40cm long dildo.'
-			else
-				*pl '<a href="exec:dildohand = 40 & gt ''selfplay'', ''start''">Start</a> using the 40cm long dildo.'
-			end
-		end
+		gs 'selfplay', 'dildo_options', 'selfplay', 'start'
 	end
 
 	if pcs_horny > 0:
@@ -106,7 +48,7 @@ if $ARGS[0] = 'start':
 			cls
 			selfplaytime += 5
 			gs 'selfplay', 'sis_prov'
-			
+
 			!!if $loc = 'bedrPar':'<center><video autoplay loop src="images/shared/sex/mast/klit.mp4"></video></center>'
 
 			if $loc = 'vanrPar':
@@ -129,7 +71,7 @@ if $ARGS[0] = 'start':
 			gs 'stat'
 
 			'<<$AnjaMsg>>'
-			
+
 			act 'Stop touching yourself':gt $loc, $metka
 
 			if pcs_horny > 0:gs 'selfplay', 'fingering'
@@ -141,14 +83,14 @@ if $ARGS[0] = 'start':
 			cls
 			selfplaytime += 5
 			gs 'selfplay', 'sis_prov'
-			
+
 			!!if $loc = 'bedrPar':'<center><video autoplay loop src="images/shared/sex/mast/klit.mp4"></video></center>'
 			!!if $loc = 'vanrPar':'<center><img <<$set_imgh>> src="images/shared/sex/mast/klitvann.jpg"></center>'
 			'<center><img <<$set_imgh>> src="images/shared/sex/mast/1.jpg"></center>'
 
 			gs 'arousal', 'masturbate', 5
 			gs 'stat'
-				
+
 			if pcs_ass >= 5:
 				'You press a finger against your asshole and push it in. It slides in quite easily.'
 			else
@@ -160,19 +102,19 @@ if $ARGS[0] = 'start':
 
 			gs 'stat'
 			'<<$AnjaMsg>>'
-			
+
 			act 'Stop touching yourself':gt $loc, $metka
 
 			act 'Add a second finger':
 				cls
 				selfplaytime += 5
 				gs 'selfplay', 'sis_prov'
-				
+
 				'<center><img <<$set_imgh>> src="images/shared/sex/mast/2.jpg"></center>'
 
 				gs 'arousal', 'masturbate', 5
 				gs 'stat'
-				
+
 				if pcs_ass >= 10:
 					'You relax and squeeze a second finger in, alongside the first. It slides in fairly easily.'
 
@@ -207,10 +149,10 @@ if $ARGS[0] = 'start':
 					pcs_horny -= 50
 					'When you slide in the second finger, you feel a sharp pain in your anus. You may have tried too much, too fast.'
 				end
-				
+
 				gs 'stat'
 				'<<$AnjaMsg>>'
-				
+
 				act 'Stop touching yourself':gt $loc, $metka
 
 				if $loc = 'vanrPar' and selfplaytime >= 60:gs 'selfplay', 'van_vtor'
@@ -225,7 +167,7 @@ if $ARGS[0] = 'start':
 
 						gs 'arousal', 'masturbate', 5
 						gs 'stat'
-				
+
 						if pcs_ass >= 15:
 							'Your asshole is fairly loose, and you manage to slide three fingers in without much effort.'
 
@@ -268,18 +210,18 @@ if $ARGS[0] = 'start':
 						'<<$AnjaMsg>>'
 
 						act 'Stop touching yourself':gt $loc, $metka
-						
+
 						if pcs_horny > 0 and agape < 3:
 							act 'Push four fingers into your asshole':
 								cls
 								selfplaytime += 5
 								gs 'selfplay', 'sis_prov'
-								
+
 								'<center><img <<$set_imgh>> src="images/shared/sex/mast/4.jpg"></center>'
 
 								gs 'arousal', 'masturbate', 5
 								gs 'stat'
-				
+
 								if pcs_ass >= 20:
 									'Your asshole is very loose, and you manage to push four fingers into it.'
 
@@ -329,12 +271,12 @@ if $ARGS[0] = 'start':
 										SelfFisting += 1
 										selfplaytime += 5
 										gs 'selfplay', 'sis_prov'
-										
+
 										'<center><img <<$set_imgh>> src="images/shared/sex/mast/5.jpg"></center>'
 
 										gs 'arousal', 'masturbate', 5
 										gs 'stat'
-				
+
 										if pcs_ass >= 25:
 											'Slowly but surely, you manage to get your entire hand into your ass.'
 
@@ -374,7 +316,7 @@ if $ARGS[0] = 'start':
 										act 'Stop touching yourself':gt $loc, $metka
 
 										if $loc = 'vanrPar' and selfplaytime >= 60:gs 'selfplay', 'van_vtor'
-										
+
 										gs 'stat'
 										'<<$AnjaMsg>>'
 									end
@@ -390,21 +332,19 @@ if $ARGS[0] = 'start':
 	if pcs_horny > 10:
 		if dildo >= 1 or middildo = 1 or largedildo = 1 or bigdildo = 1 or extradildo = 1 or superdildo = 1 or maddildo = 1:
 
-			if dildohand > 0:
-				! WD: Fix Dildo choice Code ~ refer above
-				! 'In your hands <<dildohand>>five inch dildo'
+			if dildonumber > 0:
+				gs 'boyStat', 'd<<dildonumber>>'
+
 				if vgape <= 0:
 					act 'Use the dildo on your pussy':
-						if pcs_vag = 0 and dildohand >= 20:
+						if pcs_vag = 0 and dick >= 20:
 							'Are you sure? Doing so will most likely break your hymen.'
 							act 'Yes, do it':
 								cls
 								selfplaytime += 15
 								gs 'selfplay', 'sis_prov'
-								
+
 								if husband > 0 and housrA = 1 and husbandrink ! 10 and $loc = 'bedr': gt 'husbsex','husb_mastr_vtor'
-								
-								dick = dildohand
 
 								!!if $loc = 'bedrPar':'<center><img <<$set_imgh>> src="images/shared/sex/mast/dildo.jpg"></center>'
 								if $loc = 'vanrPar':
@@ -412,11 +352,11 @@ if $ARGS[0] = 'start':
 								else
 									'<center><img <<$set_imgh>> src="images/shared/sex/mast/dildo.jpg"></center>'
 								end
-								
+
 								gs 'dinsex2', 'd_vag_sex_dildo', 15
 								gs 'stat'
 								'<<$AnjaMsg>>'
-								
+
 								act 'Stop using the dildo':gt 'selfplay', 'start'
 							end
 							act 'On second thoughts, no': gt 'selfplay', 'start'
@@ -424,10 +364,8 @@ if $ARGS[0] = 'start':
 							cls
 							selfplaytime += 15
 							gs 'selfplay', 'sis_prov'
-							
+
 							if husband > 0 and housrA = 1 and husbandrink ! 10 and $loc = 'bedr': gt 'husbsex','husb_mastr_vtor'
-							
-							dick = dildohand
 
 							!!if $loc = 'bedrPar':'<center><img <<$set_imgh>> src="images/shared/sex/mast/dildo.jpg"></center>'
 							if $loc = 'vanrPar':
@@ -435,11 +373,11 @@ if $ARGS[0] = 'start':
 							else
 								'<center><img <<$set_imgh>> src="images/shared/sex/mast/dildo.jpg"></center>'
 							end
-							
+
 							gs 'dinsex2', 'd_vag_sex_dildo', 15
 							gs 'stat'
 							'<<$AnjaMsg>>'
-														
+
 							act 'Stop using the dildo':gt 'selfplay', 'start'
 						end
 					end
@@ -450,8 +388,6 @@ if $ARGS[0] = 'start':
 						cls
 						selfplaytime += 15
 						gs 'selfplay', 'sis_prov'
-						
-						dick = dildohand
 
 						!!if $loc = 'bedrPar':'<center><img <<$set_imgh>> src="images/shared/sex/mast/dildoanal.jpg"></center>'
 						if $loc = 'vanrPar':
@@ -469,35 +405,35 @@ if $ARGS[0] = 'start':
 				end
 			! WD: Fix Dildo choice Code  ~ refer above
 			!{
-			elseif dildohand = 0:
+			elseif dildonumber = 0:
 				'You do not have a dildo in your hand.'
 
 				if dildo = 1:
-					act 'Take the 10cm long dildo':dildohand = 10 & gt 'selfplay', 'start'
+					act 'Take the 10cm long dildo':dildonumber = 1 & gs 'boyStat', 'd<<dildonumber>>' & gt 'selfplay', 'start'
 				end
 
 				if middildo = 1:
-					act 'Take the 15cm long dildo':dildohand = 15 & gt 'selfplay', 'start'
+					act 'Take the 15cm long dildo':dildonumber = 2 & gs 'boyStat', 'd<<dildonumber>>' & gt 'selfplay', 'start'
 				end
 
 				if largedildo = 1:
-					act 'Take the 20cm long dildo':dildohand = 20 & gt 'selfplay', 'start'
+					act 'Take the 20cm long dildo':dildonumber = 3 & gs 'boyStat', 'd<<dildonumber>>' & gt 'selfplay', 'start'
 				end
 
 				if bigdildo = 1:
-					act 'Take the 25cm long dildo':dildohand = 25 & gt 'selfplay', 'start'
+					act 'Take the 25cm long dildo':dildonumber = 4 & gs 'boyStat', 'd<<dildonumber>>' & gt 'selfplay', 'start'
 				end
 
 				if extradildo = 1:
-					act 'Take the 30cm long dildo':dildohand = 30 & gt 'selfplay', 'start'
+					act 'Take the 30cm long dildo':dildonumber = 5 & gs 'boyStat', 'd<<dildonumber>>' & gt 'selfplay', 'start'
 				end
 
 				if superdildo = 1:
-					act 'Take the 35cm long dildo':dildohand = 35 & gt 'selfplay', 'start'
+					act 'Take the 35cm long dildo':dildonumber = 6 & gs 'boyStat', 'd<<dildonumber>>' & gt 'selfplay', 'start'
 				end
 
 				if maddildo = 1:
-					act 'Take the 40cm long dildo':dildohand = 40 & gt 'selfplay', 'start'
+					act 'Take the 40cm long dildo':dildonumber = 7 & gs 'boyStat', 'd<<dildonumber>>' & gt 'selfplay', 'start'
 				end
 			}!
 			end
@@ -527,10 +463,72 @@ if $ARGS[0] = 'start':
 	end
 end
 
+if $ARGS[0] = 'dildo_options':
+	if dildonumber ! 0: *pl & *pl 'You are using a <<dick>>cm long dildo.'
+
+	*pl
+
+	if dildo = 1:
+		if dildonumber = 10:
+			*pl '<a href="exec:dildonumber = 0 & gt $ARGS[1], $ARGS[2]">Stop</a> using the 10cm long dildo.'
+		else
+			*pl '<a href="exec:dildonumber = 1 & gs ''boyStat'', ''d<<dildonumber>>'' & gt $ARGS[1], $ARGS[2]">Start</a> using the 10cm long dildo.'
+		end
+	end
+
+	if middildo = 1:
+		if dildonumber = 15:
+			*pl '<a href="exec:dildonumber = 0 & gt $ARGS[1], $ARGS[2]">Stop</a> using the 15cm long dildo.'
+		else
+			*pl '<a href="exec:dildonumber = 2 & gs ''boyStat'', ''d<<dildonumber>>'' & gs ''boyStat'', ''d<<dildonumber>>'' &  gt $ARGS[1], $ARGS[2]">Start</a> using the 15cm long dildo.'
+		end
+	end
+
+	if largedildo = 1:
+		if dildonumber = 20:
+			*pl '<a href="exec:dildonumber = 0 & gt $ARGS[1], $ARGS[2]">Stop</a> using the 20cm long dildo.'
+		else
+			*pl '<a href="exec:dildonumber = 3 & gs ''boyStat'', ''d<<dildonumber>>'' & gt $ARGS[1], $ARGS[2]">Start</a> using the 20cm long dildo.'
+		end
+	end
+
+	if bigdildo = 1:
+		if dildonumber = 25:
+			*pl '<a href="exec:dildonumber = 0 & gt $ARGS[1], $ARGS[2]">Stop</a> using the 25cm long dildo.'
+		else
+			*pl '<a href="exec:dildonumber = 4 & gs ''boyStat'', ''d<<dildonumber>>'' & gt $ARGS[1], $ARGS[2]">Start</a> using the 25cm long dildo.'
+		end
+	end
+
+	if extradildo = 1:
+		if dildonumber = 30:
+			*pl '<a href="exec:dildonumber = 0 & gt $ARGS[1], $ARGS[2]">Stop</a> using the 30cm long dildo.'
+		else
+			*pl '<a href="exec:dildonumber = 5 & gs ''boyStat'', ''d<<dildonumber>>'' & gt $ARGS[1], $ARGS[2]">Start</a> using the 30cm long dildo.'
+		end
+	end
+
+	if superdildo = 1:
+		if dildonumber = 35:
+			*pl '<a href="exec:dildonumber = 0 & gt $ARGS[1], $ARGS[2]">Stop</a> using the 35cm long dildo.'
+		else
+			*pl '<a href="exec:dildonumber = 6 & gs ''boyStat'', ''d<<dildonumber>>'' & gt $ARGS[1], $ARGS[2]">Start</a> using the 35cm long dildo.'
+		end
+	end
+
+	if maddildo = 1:
+		if dildonumber = 40:
+			*pl '<a href="exec:dildonumber = 0 & gt $ARGS[1], $ARGS[2]">Stop</a> using the 40cm long dildo.'
+		else
+			*pl '<a href="exec:dildonumber = 7 & gs ''boyStat'', ''d<<dildonumber>>'' & gt $ARGS[1], $ARGS[2]">Start</a> using the 40cm long dildo.'
+		end
+	end
+end
+
 if $ARGS[0] = 'sis_prov':
-	
+
 	$AnjaMsg = ''
-	
+
 	if $loc = 'bedrPar' and (hour >= 7 or hour < 23):
 		gs 'family'
 
@@ -614,9 +612,9 @@ if $ARGS[0] = 'fingering':
 			gs 'arousal', 'masturbate', 2
 			gs 'stat'
 			'<<$AnjaMsg>>'
-			
+
 			gs 'selfplay', 'fingering2'
-			
+
 		elseif mesec > 0:
 			pcs_mood -= 5
 			'Your vagina has some dried up blood from your period on it. You attempt to shove your finger in, but then are kind of grossed out by the idea and reconsider.'
@@ -649,11 +647,11 @@ if $ARGS[0] = 'fingering2':
 		gs 'stat'
 
 		'<<$AnjaMsg>>'
-		
+
 		gs 'selfplay', 'fingering2', 1
 
 		if pcs_horny > 0 and pcs_vag > 0:gs 'selfplay', 'fingering3'
-			
+
 		act 'Stop touching yourself':gt $loc, $metka
 	end
 end
@@ -663,11 +661,11 @@ if $ARGS[0] = 'fingering3':
 		cls
 		selfplaytime += 2
 		gs 'selfplay', 'sis_prov'
-		
+
 		'<center><img <<$set_imgh>> src="images/shared/sex/mast/hand.jpg"></center>'
 
 		'You shove all your fingers inside your pussy.'
-		
+
 		if pcs_vag < 10:
 			if vgape = 2:vgape = 3
 			if vgape = 1:vgape = 2
@@ -692,12 +690,12 @@ if $ARGS[0] = 'fingering3':
 		gs 'stat'
 
 		'<<$AnjaMsg>>'
-		
+
 		act 'Fuck yourself with your fingers':
 			cls
 			selfplaytime += 10
 			gs 'selfplay', 'sis_prov'
-			
+
 			if pcs_vag < 10:
 				if vgape = 2:vgape = 3
 				if vgape = 1:vgape = 2
@@ -712,7 +710,7 @@ if $ARGS[0] = 'fingering3':
 
 			gs 'arousal', 'masturbate', 10
 			gs 'stat'
-		
+
 			if pcs_vag <= 15:pcs_horny -= 10 & pcs_mood -= 10 & 'You''re stretching your pussy to the point where it becomes rather painful, and don''t get any enjoyment out of it.'
 			if pcs_vag > 10:pcs_horny += rand(10, 20) & 'Your pussy walls are stretched nicely from the finger fucking, and you feel a pleasant warmth spread in your lower body.'
 
@@ -721,9 +719,9 @@ if $ARGS[0] = 'fingering3':
 			if pcs_vag < 20:vaginaTemp += 1
 
 			'<<$AnjaMsg>>'
-			
+
 			gs 'selfplay', 'fingering3'
-			
+
 			act 'Stop touching yourself':gt $loc, $metka
 		end
 	end

+ 30 - 1
locations/shortgs.qsrc

@@ -21,7 +21,36 @@ if $ARGS[0] = 'smoker':
 	end
 	if pcs_energy < 80: pcs_energy += 4
 	gs '$menu_obnovit'
-end &!--- smoker ---
+end
+
+!! smoke_joint - handles all changes which happen when PC smokes a joint
+!! use : gs 'shortgs', 'smoke_joint'
+if $ARGS[0] = 'smoke_joint':
+	joint -= 1
+	jointday = daystart
+	jointhour = hour
+	jointminut = minut + 5
+	if minut > 30:
+		jointhigh = 2
+	else
+		jointhigh = 1
+	end	
+	cumspclnt = 2
+	gs 'cum_cleanup'
+	pcs_breath = 0
+	pcs_mood += 100
+	if pcs_hydra >= 100:
+		pcs_hydra -= 5
+	else
+		pcs_hydra -= 10
+	end
+	if pcs_energy > 20: 
+		pcs_energy -= 20
+	else
+		pcs_energy = 0
+	end
+	gs 'stat'
+end
 
 !! following function counts the number of guys which PC slept with. 
 !! use func('shortgs','guy') or func('shortgs','guy',X) for subset (X can be 'A','B','C','AB','AC','BC')

+ 18 - 18
locations/soniaDisco.qsrc

@@ -9,7 +9,7 @@ if $ARGS[0] = '':
 	'Vitek notices you staring at the bottle and thinks for a second, before he decides to invite you along: "Hey, <<$pcs_nickname>>. We''re going out for a drink... want to join us?"'
 
 	act 'Have a drink with them':
-		cls
+		*clr & cla
 		alko += 2
 		cumspclnt = 2
 		gs 'cum_cleanup'
@@ -29,7 +29,7 @@ if $ARGS[0] = '':
 		'Sonia does have more, she''s totally wasted by now. With a slight slur in her voice and a cheeky grin on her face she says: "I want to go dancing! Let''s go back to the disco!"'
 
 		act 'Go back to the disco':
-			cls
+			*clr & cla
 			minut += 15
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/sonia/1.jpg"></center>'
@@ -39,7 +39,7 @@ if $ARGS[0] = '':
 	end
 
 	act 'Decline':
-		cls
+		*clr & cla
 		minut += 30
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/sonia/1.jpg"></center>'
@@ -51,7 +51,7 @@ if $ARGS[0] = '':
 end
 
 if $ARGS[0] = 'dance':
-	cls
+	*clr & cla
 	minut += 5
 	gs'stat'
 
@@ -77,7 +77,7 @@ if $ARGS[0] = 'dance':
 end
 
 if $ARGS[0] = 'dance1':
-	cls
+	*clr & cla
 	minut += 5
 	gs'stat'
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/sonia/1.jpg"></center>'
@@ -91,18 +91,18 @@ if $ARGS[0] = 'dance1':
 	'Sonia smiles at him and confesses: "Of course! I love popsicles! Bu-"'
 	'Vitek reaches for his pocket, and actually pulls out a popsicle. Sonia looks at him in awe for a moment, as if he is a magician that just made a bunny appear out of thin air. Then she tries to reach out for it, but Vitek pulls it away from her and says: "No, no hands. I''ll hold it, you only use your mouth."'
 	act 'Watch':
-	    cls
+	    *clr & cla
 		gs'stat'
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/sonia/sex/2.jpg"></center>'
 		'Sonia obediently pulls her hands away and opens her mouth, and Vitek slowly puts the popsicle against her lips and tongue. Then she closes her lips around it and sucks on it, while looking at Vitek seductively.'
 		'Vitek grins and lowers the popsicle further and further, until it is at the same level as his groin. All this time, Sonia has never taken her mouth off it, and eventually she gets down on her knees after bending over awkwardly and nearly falling over once or twice. The way she''s sucking and licking the popsicle definitely gets Vitek aroused, and you see his cock straining against the fabric of his pants. Meanwhile, Dan and Vasily are looking at the two of them with their mouths open, somewhat awkwardly hiding their erections.'
 		'Once the popsicle is mostly gone, Dan clears his throat and suggests: "Let''s go outside for a while."'
 		
-		gs 'arousal', 'voyeur', 3, 'group'
+		gs 'arousal', 'voyeur', 3
 		gs 'stat'
 		
 		act 'Stay at the disco':
-			cls
+			*clr & cla
 			minut += 15
 			danc_exp += 1
 			soniaPS = 1
@@ -124,7 +124,7 @@ if $ARGS[0] = 'dance1':
 end
 
 if $ARGS[0] = 'dance2':
-	cls
+	*clr & cla
 	gs'stat'
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/sonia/sex/3.jpg"></center>'
 	'You could go for some fresh air, and follow the group outside. It''s you, Sonia, Vitek, Dan, Vasily and two more guys you don''t know. Sonia is nearly tripping over her own legs as she walks, still clearly affected by the alcohol. After a few minutes the group halts to relax for a while, you assume. When Sonia finishes the popsicle that Vitek gave her, she asks: "That was yummy! Vitek, do you have another one?"'
@@ -133,31 +133,31 @@ if $ARGS[0] = 'dance2':
 	'When Sonia opens her eyes again, she recoils a bit from the hard cock right in front of her face. She giggles, but stays on her knees in front of him without any intentions of getting up.'
 	'Vitek softly says in a reassuring voice: "You can touch it if you want. It feels much nicer than a popsicle!"'
 	
-	gs 'arousal', 'voyeur', 3, 'group'
+	gs 'arousal', 'voyeur', 3
 	gs 'stat'
 		
 	act 'Watch':
-		cls
+		*clr & cla
 		gs'stat'
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/sonia/sex/4.jpg"></center>'
 		'Sonia stares at the erection in front of her face for a while, spellbound. Then she slowly extends her hand and pokes the cock with her finger. It twitches and some precum leaks from the head, making Sonia giggle with glee. Fascinated by it all, she hesitantly closes her slender fingers around the head and jerks him off carefully.'
 		'Vitek groans, totally not expecting his plan to actually get this far. He quickly clears his mind and tells her: "Now have a taste... I bet you will love it!"'
 		
-		gs 'arousal', 'voyeur', 3, 'group'
+		gs 'arousal', 'voyeur', 3
 		gs 'stat'
 		
 		act 'Watch':
-			cls
+			*clr & cla
 			gs'stat'
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/sonia/sex/5.jpg"></center>'
 			'Sonia nods and leans in closer, and sticks out her tongue before carefully licking the head. You can tell the other guys around you are getting restless, watching Vitek about to get a blowjob from one of the better looking girls in school... who, until now, had always behaved like a total prude.'
 			'Sonia slowly closes her lips around the head and begins to suck on it. The loud smacking sounds she makes while she''s sucking on the head of Vitek''s cock is the final straw for the other guys, and they all unbutton their pants too. They surround her, eager to get in on the action while she is too drunk to know better.'
 			
-			gs 'arousal', 'voyeur', 3, 'group'
+			gs 'arousal', 'voyeur', 3
 			gs 'stat'
 		
 			act 'Watch':
-				cls
+				*clr & cla
 				gs'stat'
 				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/sonia/sex/6.jpg"></center>'
 				'When the boys surround Sonia, to your surprise she stays calm and does not resist being in this position. In fact, she revels in it! She smiles at the guys, looking them in the eyes while she keeps sucking on Vitek''s cock like she had been.'
@@ -165,11 +165,11 @@ if $ARGS[0] = 'dance2':
 				'Too drunk to know better, she mumbles: "Sowwy," with a cock still in her mouth and puts her hands on two more. She does her best to please them all, sucking and stroking them in turns.'
 				'The boys don''t last long, and dump their warm loads of sperm all over her face one by one. By the time the last guy is finished, her face is covered completely.'
 				
-				gs 'arousal', 'voyeur', 3, 'group', 'humiliation'
+				gs 'arousal', 'voyeur', 3
 				gs 'stat'
 		
 				act 'Watch':
-					cls
+					*clr & cla
 					soniaPS = 1
 					soniaPSdays = daystart
 					grupTipe[25] = 5
@@ -181,7 +181,7 @@ if $ARGS[0] = 'dance2':
 					'Meanwhile, Sonia drunkenly rises to her feet and leans against a tree, trying to keep her balance. Thick gobs of cum are slowly dripping down from her face, and when you look closely you can see tears forming in the corners of her eyes. It looks like reality has finally caught up with her, and she now realizes what she just did. She softly whispers, more to herself than anyone else: "What have I done... I''m such an idiot!" between sobs.'
 					'She''s not given much time to recover from the initial shock. Vitek grabs her arm and announces to the other guys that it''s time to show her off. When he drags Sonia back to the disco with the rest of the boys in tow, you can''t help but feel a bit sorry for her. Knowing your classmates, they will judge her very harshly.'
 					
-					gs 'arousal', 'voyeur', 3, 'group', 'humiliation'
+					gs 'arousal', 'voyeur', 3
 					gs 'arousal', 'end'
 					gs 'stat'
 		

+ 2 - 1
locations/stat.qsrc

@@ -501,7 +501,8 @@ if minut >= 60:
 	if amphWithdrawl > 169: amphWithdrawl = 1 & amphetamineBonus = 1 & amphCount = 0
 	if SLomka > 0 and pcs_mood > 10:SLomka += 1 & pcs_mood -= pcs_mood / 10
 	if SLomka > 100 and StrongNarkota <= 0:SLomka = 0 & SNarkTimes = 0
-
+	if jointhigh > 0: jointhigh -= 1
+	
 	if narkoman = 1 and narkday ! daystart:
 		pcs_health -= 5
 		pcs_willpwr -= 5

+ 3 - 2
locations/stat_display.qsrc

@@ -649,7 +649,8 @@ elseif siga > 0:
 	$stat_msg += '<BR><a href="exec:gs ''shortgs'',''smoker''"><font color=#0064FF><b>You have <<siga>> cigarettes.</b></font></a><BR>'
 end
 
-if smokeHour = hour and smokeday = day and smokeminut >= minut:$stat_msg += '<BR><font color="green">You are smoking a cigarette.</font><BR>'
+if smokeHour = hour and smokeday = daystart and smokeminut >= minut: $stat_msg += '<BR><font color="green">You are smoking a cigarette.</font><BR>'
+if jointhour = hour and jointday = daystart and jointminut >= minut: $stat_msg += '<BR><font color="green">You are smoking a joint.</font><BR>'
 
 if cheatNoSweat = 0:
 	if pcs_sweat < 0 : pcs_sweat = 0
@@ -1232,7 +1233,7 @@ if hour < meethour[2] and svidanie[2] = 1:$stat_msg += '<BR><<$loverdesc[2]>> wi
 if hour = meethour[2] and svidanie[2] = 1:$stat_msg += '<BR><b><font color="red"><<$loverdesc[2]>> is waiting for you by <<$streetev_home>>.</font></b>'
 if meetday[2] < daystart and svidanie[2] = 1:pcs_lovers_rel[2] -= 10 & svidanie[2] = 0
 
-if StrongNarkota > 20:$stat_msg += '<BR><b><font color="red">You are stoned.</font></b>'
+if StrongNarkota > 20 or jointhigh > 0:$stat_msg += '<BR><b><font color="red">You are stoned.</font></b>'
 if amphHigh > 0: $stat_msg += '<BR><b><font color="red">You feel a little wired.</font></b>'
 
 if alko > 0:

+ 1 - 1
locations/street.qsrc

@@ -146,7 +146,7 @@ else
 	'In the courtyard of your <a href="exec: gt ''etoexhib'', ''pos51''">apartment building</a>, you see several <a href="exec: minut += 1 & gt ''trashplace''">trash bins</a>.'
 end
 
-if SNarkPriton > 0:'The <a href="exec:minut += 5 & gt ''narkopriton''">drug house</a> is clearly recognizeable by the syringes and the trash that lies in front of it.'
+if SNarkPriton > 0:'The <a href="exec:minut += 5 & gt ''narkopriton''">drug house</a> is clearly recognizable by the syringes and the trash that lies in front of it.'
 if hour >= 8 and hour <= 23 or saunaWorkWhore > 0 or workDisk = 2:'<a href="exec:minut += 10 & gt ''sauna''">The Sauna</a> is a 10 minute walk away. Rumors say the sauna is just the front for a brothel.'
 
 if hour >= 20 or hour <= 4:

+ 2 - 2
locations/test.qsrc

@@ -55,7 +55,7 @@ i = 0
 :CombatSpellTest
 $ThisSpellName = $combatSpells[i]
 if i < arrsize('$combatSpells'):
-	spellKnown[$ThisSpellName] = 1:
+	spellKnown[$ThisSpellName] = 1
 	i += 1
 	jump 'CombatSpellTest'
 end
@@ -63,7 +63,7 @@ i = 0
 :NonComSpellTest
 $ThisSpellName = $nonComSpells[i]
 if i < arrsize('$nonComSpells'):
-	spellKnown[$ThisSpellName] = 1:
+	spellKnown[$ThisSpellName] = 1
 	i += 1
 	jump 'NonComSpellTest'
 end

+ 11 - 9
locations/treeCircle.qsrc

@@ -75,15 +75,17 @@ if i < ARRSIZE('$tpLocations'):
 end
 killvar 'i'
 
-act 'Masturbate to clear your head.':
-	*nl
-	'<center><video autoplay loop src="images/locations/shared/park/tree_masturb.mp4"></center>'
-	*nl
-	'That''s better!'
-	$orgasm_or = 'yes'
-	gs 'arousal', 'masturbate', 15
-	gs 'arousal', 'end'
-	gs 'stat'
+if pcs_inhib >= 30:
+	act 'Masturbate to clear your head.':
+		*nl
+		'<center><video autoplay loop src="images/locations/shared/park/tree_masturb.mp4"></center>'
+		*nl
+		'That''s better!'
+		$orgasm_or = 'yes'
+		gs 'arousal', 'masturbate', 15
+		gs 'arousal', 'end'
+		gs 'stat'
+	end
 end
 
 --- treeCircle ---------------------------------

+ 9 - 1
locations/willpower.qsrc

@@ -158,7 +158,11 @@ end
 if $ARGS[0] = 'skill':
 	gs 'willpower', 'calc'
 	will_cost = 0
-	dynamic 'will_cost = <<$ARGS[1]>> + will_calc)/10'
+	if $ARGS[0] = 'inhib_lvl':
+		will_cost = (100 - pcs_inhib + will_calc)/10
+	else
+		dynamic 'will_cost = <<$ARGS[1]>> + will_calc)/10'
+	end
 end
 	
 if $ARGS[0] = 'rape':
@@ -181,6 +185,8 @@ if $ARGS[0] = 'drink':
 		will_cost = (100 + will_calc)/10
 	elseif alko > 3:
 		will_cost = (80 + will_calc)/10
+	else
+		will_cost = (10 + will_calc)/10
 	end
 end
 
@@ -234,6 +240,8 @@ if $ARGS[0] = 'dnd':
 
 	!!cigarettes
 	if smokerNeed > 10: will_dnd += 10
+	!!weed
+	if jointhigh > 0: will_dnd -= 10
 	!!amphetamines
 	if amphWithdrawl > 2:
 		will_dnd += 40