Browse Source

Merge branch 'master' of https://git.catrenelle.com/Kevin_Smarts/glife

bgkjdgbizgblzdgbr 2 năm trước cách đây
mục cha
commit
8ef90debbe
46 tập tin đã thay đổi với 4275 bổ sung2061 xóa
  1. 6 1
      changes from 0_8_5 to 0_8_6.txt
  2. 3 1
      glife.qproj
  3. 378 0
      locations/ApperanceSystem.qsrc
  4. 21 21
      locations/Cheatmenu_din.qsrc
  5. 9 9
      locations/UnitAppearance.qsrc
  6. 20 20
      locations/beg1.qsrc
  7. 464 388
      locations/body.qsrc
  8. 51 9
      locations/body_desc.qsrc
  9. 0 639
      locations/body_shape.qsrc
  10. 285 279
      locations/brothel.qsrc
  11. 5 96
      locations/cikl.qsrc
  12. 3 7
      locations/city_clinic.qsrc
  13. 40 36
      locations/dachain.qsrc
  14. 1 1
      locations/dachamy.qsrc
  15. 3 3
      locations/din_van.qsrc
  16. 2 2
      locations/etoexhib.qsrc
  17. 10 10
      locations/foto.qsrc
  18. 1 1
      locations/gadhouse.qsrc
  19. 8 8
      locations/gschool_grounds.qsrc
  20. 132 468
      locations/intro_city.qsrc
  21. 13 0
      locations/intro_city_m.qsrc
  22. 1551 0
      locations/intro_city_select.qsrc
  23. 525 0
      locations/intro_city_tg.qsrc
  24. 5 20
      locations/intro_customization.qsrc
  25. 1 1
      locations/intro_initialization.qsrc
  26. 383 0
      locations/intro_initialization_city.qsrc
  27. 2 0
      locations/intro_sg.qsrc
  28. 2 0
      locations/intro_sg_m.qsrc
  29. 6 8
      locations/intro_sg_select.qsrc
  30. 9 15
      locations/intro_sg_tg.qsrc
  31. 258 0
      locations/intro_uni.qsrc
  32. 13 0
      locations/intro_uni_m.qsrc
  33. 13 0
      locations/intro_uni_tg.qsrc
  34. 1 1
      locations/lover_change.qsrc
  35. 0 2
      locations/music_actions.qsrc
  36. 2 2
      locations/music_bedroompractice.qsrc
  37. 2 0
      locations/npcstatic2.qsrc
  38. 16 0
      locations/npcstatic5.qsrc
  39. 1 1
      locations/obj_din.qsrc
  40. 2 2
      locations/pav_clinic.qsrc
  41. 1 1
      locations/pav_lake.qsrc
  42. 1 1
      locations/pav_market.qsrc
  43. 1 1
      locations/preCUST.qsrc
  44. 5 5
      locations/salon.qsrc
  45. 19 1
      locations/stat.qsrc
  46. 1 1
      locations/tatiana_lab.qsrc

+ 6 - 1
changes from 0_8_5 to 0_8_6.txt

@@ -24,6 +24,8 @@ pav_beach_chat
 katja_lake			<- split from katjaEv
 
 body_desc
+AppearanceSystem               <- body
+body                           <- body_shape
 
 === deleted locations ===
 
@@ -39,7 +41,8 @@ rex_party_boys_events
 rex_party_girls_events
 rex_party_sister_events
 $phone_theme
-
+body                                 -> AppearanceSystem
+body_shape                           -> body
 
 
 Variables:
@@ -56,6 +59,7 @@ $lips1
 
 $pcdes_<bodypart>random
 $pcdes_<bodypart>
+bmi_calc                                  -> pcs_bmi
 
 === Added variables ===
 
@@ -64,3 +68,4 @@ $pcdes_<bodypart>
 [String variables]
 $pc_desc[] <- Hold descriptive words for PC's body parts
 $pc_descWordy[] <- Hold more descriptive words for PC's body parts
+pcs_bmi <- New variable for bmi

+ 3 - 1
glife.qproj

@@ -65,8 +65,8 @@
 		<Location name="grades"/>
 	</Folder>
 	<Folder name="Body">
+		<Location name="ApperanceSystem"/>
 		<Location name="body"/>
-		<Location name="body_shape"/>
 		<Location name="body_desc"/>
 		<Location name="lact_lib"/>
 		<Location name="lact_bp"/>
@@ -234,9 +234,11 @@
 		<Location name="intro_uni_m"/>
 		<Location name="intro_uni_tg"/>
 		<Location name="intro_initialization"/>
+		<Location name="intro_initialization_uni"/>
 		<Location name="intro_customization"/>
 		<Location name="intro_sg_select"/>
 		<Location name="intro_sg_select_custom"/>
+		<Location name="intro_city_select"/>
 	</Folder>
 	<Folder name="NPCManage">
 		<Location name="npccleanc"/>

+ 378 - 0
locations/ApperanceSystem.qsrc

@@ -0,0 +1,378 @@
+# AppearanceSystem
+$this = 'AppearanceSystem'
+
+if $ARGS[0] = '':
+	!{
+        PC's appearance is updated regularly in stat.qsrc.
+        Note: A huge part of PC's appearance is from base appearance, which is updated once a day. Because it's
+        a global variable, it does not show in this function in particular, but it's used in 'CalcAppearance'
+    }
+	if pcs_makeup = 6 and bimbolevel >= 2: extra_supnatvnesh = 2*bimbolevel - 2
+
+	!STD check. STD will make appearance automatically -10
+	if Gerpes >= 3 or Sifilis >= 21 or Triper > 2:
+		pcs_apprnc = -10
+	else:
+		clothingBonus = func($this, 'CalcClothingBonus')
+		accessoriesBonus = func($this, 'CalcAccessoriesBonus', bonusZ, PShoQuality)
+		groomingBonus = func($this, 'CalcGroomingBonus')
+		groomingPenalty = func($this, 'CalcGroomingPenalty')
+		pcs_apprnc = func($this, 'CalcAppearance', (supnatvnesh + extra_supnatvnesh))
+		Hotcat = func($this, 'ConvertToHotcat')
+	end
+
+	killvar 'clothingBonus'
+	killvar 'accessoriesBonus'
+	killvar 'groomingBonus'
+	killvar 'groomingPenalty'
+end
+
+if $args[0] = 'UpdateBaseAppearnce':
+	!{
+		Base Appearance is updated once a day at midnight and called from cikl
+		Base Appearance is calculated from:
+			vidage, skin, body shape (fat and strength), face (lip size, eyes size, and eyelashes)
+			attributes (endurance and agility)
+	}
+	faceBonus = func($this, 'CalcFaceBonus')
+	attributeBonus = func($this, 'CalcAttributeBonus')
+
+	!!	Setting vidageBonus
+	if vidage < 20: 
+		vidageBonus = 60 + (2 * vidage)
+	elseif vidage > 30: 
+		vidageBonus = 160 - (2 * vidage)
+	else
+		vinageBonus = 100
+	end
+
+	skinBonus = (pcs_skin * 2 / 5)
+	bodyShapeBonus = func($this, 'SetBodyShapeBonus')
+
+	! Calculte base appearance
+	pcs_apprncbase = (vidageBonus * (skinBonus + bodyShapeBonus + faceBonus + attributeBonus) / 100) + supnatvnesh
+
+	killvar 'vidageBonus'
+	killvar 'skinBonus'
+	killvar 'bodyShapeBonus'
+	killvar 'faceBonus'
+	killvar 'attributeBonus'
+end 
+
+if $ARGS[0] = 'CalcFaceBonus':
+	!!	Setting Eyelashes bonus
+	if pcs_lashes <= 0:
+		eyelashesBonus = 0
+	elseif pcs_lashes = 1:
+		eyelashesBonus = 2
+	elseif pcs_lashes = 2:
+		eyelashesBonus = 5
+	elseif pcs_lashes = 3:
+		eyelashesBonus = 7
+	elseif pcs_lashes = 4:
+		eyelashesBonus = 8
+	elseif pcs_lashes = 5:
+		eyelashesBonus = 10
+	else
+		eyelashesBonus = 0		
+	end
+	eyelashesBonus = FUNC($this, 'AdjustFromBMI', eyelashesBonus)
+
+	!!	Setting Eye Size bonus
+	if pcs_eyesize = 1:
+		eyeSizeBonus = 1
+	elseif pcs_eyesize = 2:
+		eyeSizeBonus = 3
+	elseif pcs_eyesize = 3:
+		eyeSizeBonus = 2
+	else
+		eyeSizeBonus = 0
+	end
+	eyeSizeBonus = FUNC($this, 'AdjustFromBMI', eyeSizeBonus)
+
+	!!	Setting the Lip size bonus
+	if pcs_lip = 0:
+		lipBonus = -2
+	elseif pcs_lip = 1:
+		lipBonus = 0
+	elseif pcs_lip = 2:
+		lipBonus = 3
+	elseif pcs_lip = 3:
+		lipBonus = 5
+	else
+		lipBonus = 3
+	end
+	lipBonus = FUNC($this, 'AdjustFromBMI', lipBonus)
+
+	result = eyelashesBonus + eyeSizeBonus + lipBonus
+
+	killvar 'eyelashesBonus'
+	killvar 'eyeSizeBonus'
+	killvar 'lipBonus'
+end
+
+if $ARGS[0] = 'CalcAttributeBonus':
+	tempAttributeBonus = (pcs_agil / 10) + (pcs_vital / 10)
+
+	result = func($this, 'AdjustFromBMI', tempAttributeBonus)
+	killvar 'tempAttributeBonus'
+end
+
+if $ARGS[0] = 'SetBodyShapeBonus':
+	! Magic uses a different calculation
+	if dounspell = 1:
+		bodytipe = pcs_hips - pcs_waist
+		if bodytipe < 20:
+			result = 0
+		elseif bodytipe >= 20 and bodytipe < 25:
+			result = 2
+		elseif (bodytipe >= 25 and bodytipe < 30) or bodytipe >=35:
+			result = 4
+		elseif bodytipe >= 30 and bodytipe < 35:
+			result = 8
+		end
+
+	!!Setting the pcs_apprnc bonus based on fat and strength
+	else
+		if pcs_bmi < 16:
+			!! severely underweight
+			tempBodyShapeBonus = 30
+		elseif pcs_bmi < 19:
+			!! underweight
+			tempBodyShapeBonus = 65
+		elseif pcs_bmi < 25:
+			!! healthy weight
+			tempBodyShapeBonus = 85
+		elseif pcs_bmi < 30:
+			!! overweight
+			tempBodyShapeBonus = 75
+		elseif pcs_bmi < 35:
+			!! moderately obese
+			tempBodyShapeBonus = 45
+		elseif pcs_bmi < 40:
+			!! severely obese
+			tempBodyShapeBonus = 25
+		elseif pcs_bmi < 45:
+			!! very severely obese
+			tempBodyShapeBonus = 5
+		else
+			!! morbidly obese
+			tempBodyShapeBonus = 0
+		end
+
+		if (strenbuf >= 40 and strenbuf < 60) or strenbuf >= 80:
+			tempBodyShapeBonus += 8
+		elseif strenbuf >= 60:
+			tempBodyShapeBonus += 10
+		elseif strenbuf >= 20:
+			tempBodyShapeBonus += 5
+		end
+
+		!!This modifies bodykoef for high or low salo values
+		if salocatnow = 0 or salocatnow >= 7:
+			tempBodyShapeBonus -= 8
+		elseif salocatnow = 1 or salocatnow = 6:
+			tempBodyShapeBonus -= 4
+		end
+
+		if vofat > 0: tempBodyShapeBonus -= vofat
+
+		result = tempBodyShapeBonus
+
+		killvar 'tempBodyShapeBonus'
+	end
+end
+
+if $ARGS[0] = 'CalcClothingBonus':
+	if $clothingworntype = 'nude':
+		if pcs_bmi >= 19 and pcs_bmi < 30:
+			! Healthy and overweight
+			tempRevealing = 405
+			PCloQuality = 3
+		else
+			tempRevealing = 0
+			PCloQuality = 1
+		end
+	else
+		if pcs_bmi < 19:
+			!Skinny and severely skinny
+			tempRevealing = ((400 - PXCloThinness) + (500 - PXCloTopCut) + (400 - PXCloBottomShortness))/2
+		elseif pcs_bmi >= 19 and pcs_bmi < 30:
+			!Healthy and overweight
+			tempRevealing = (PXCloThinness + PXCloTopCut + PXCloBottomShortness)/2
+		elseif pcs_bmi >= 30:
+			!Moderately overweight and above
+			tempRevealing = ((400 - PXCloThinness) + (500 - PXCloTopCut) + (400 - PXCloBottomShortness)) * 3/4
+		end
+	end
+
+	result = tempRevealing/ 76 * PCloQuality
+	killvar 'tempRevealing'
+
+end
+
+if $ARGS[0] = 'CalcAccessoriesBonus':
+	coatQualityBonus = ARGS[1] & !! bonusZ
+	shoesQualityBonus = ARGS[2] & !! PShoQuality
+	
+	!!bonuses for certain underwear
+	if $pantyworntype = 'boutique':
+		pantyBonus = 4
+	elseif $pantyworntype = 'fashionista':
+		pantyBonus = 2
+	end
+
+	if $braworntype = 'boutique':
+		braBonus = 4
+	elseif $braworntype = 'fashionista':
+		braBonus = 2
+	end
+
+	result = coatQualityBonus + shoesQualityBonus + pantyBonus + braBonus
+
+	killvar 'coatQualityBonus'
+	killvar 'shoesQualityBonus'
+	killvar 'pantyBonus'
+	killvar 'braBonus'
+end
+
+if $ARGS[0] = 'CalcGroomingBonus':
+	if pcs_lipbalm > 0:
+		lipBalmBonus = 5
+	else
+		lipBalmBonus = 0
+	end
+
+	makeupBonus = pcs_makupskl / 5
+	if pcs_makeup = 0: makeupBonus = -5
+	if pcs_makeup = 1: makeupBonus = 0
+	if pcs_makeup = 5: makeupBonus = 30
+
+	hairBonus = pcs_hairbsh * 10
+
+	breathBonus = pcs_breath * 5
+
+	tempGroomingBonus = makeupBonus + hairBonus + lipBalmBonus + breathBonus
+
+	!!Small bonus for wearing deodorant, if pcs_sweat is low enough
+	if deodorant_on = 1 and pcs_sweat < 20: tempGroomingBonus += 5
+
+	!result = tempGroomingBonus
+	result = func($this, 'AdjustFromBMI', tempGroomingBonus)
+
+	killvar 'lipBalmBonus'
+	killvar 'makeupBonus'
+	killvar 'hairBonus'
+	killvar 'breathBonus'
+	killvar 'tempGroomingBonus'
+end
+
+if $ARGS[0] = 'CalcGroomingPenalty':
+	!! buzzcut penalty to pcs_apprnc
+	if pcs_hairlng < 10:
+		buzzCutPenalty = 10
+	else
+		buzzCutPenalty = 0
+	end
+
+	if pcs_sweat < 22:
+		sweatPenalty = 0
+	elseif temppcs_sweat < 38:
+		sweatPenalty = (pcs_sweat - 10) / 4
+	elseif temppcs_sweat < 54:
+		sweatPenalty = (pcs_sweat - 10) / 2
+	else
+		sweatPenalty = 3 * (pcs_sweat - 10) / 4
+	end
+
+	!Glasses Penalty
+	if glass >= 2 or glass = 0:
+		glassesPenalty = 0
+	elseif glass = 1:
+		glassesPenalty = 10
+	end
+
+	!hair color fade penalty
+	if pcs_haircol ! nathcol:
+		if dyefade > 0 and dyefade < 7: hairDyePenalty = 5
+		if dyefade = 0: hairDyePenalty = 15
+	end
+
+	! Leg hair penalty
+	if pcs_leghair <= 0:
+		legPenalty = 0
+	elseif pcs_leghair <= 3:
+		legPenalty = 3
+	elseif pcs_leghair <= 6:
+		legPenalty = 6
+	else
+		legPenalty = 9 
+	end
+
+	result = sweatPenalty + glassesPenalty + hairDyePenalty + buzzCutPenalty + legPenalty
+
+
+	killvar 'sweatPenalty'
+	killvar 'glassesPenalty'
+	killvar 'hairDyePenalty'
+	killvar 'buzzCutPenalty'
+	killvar 'legPenalty'
+end
+
+
+if $ARGS[0] = 'CalcAppearance':
+	superNaturalBonus = ARGS[1] & !! supnatvnesh
+
+	temp_apprnc = pcs_apprncbase + clothingBonus + accessoriesBonus + groomingBonus - groomingPenalty
+
+	if temp_apprnc >= 200: temp_apprnc = 200 
+	if temp_apprnc < 0: temp_apprnc = 0
+
+	!Any super natural bonuses are allowed to go above the max scale
+	result = temp_apprnc + superNaturalBonus
+	
+	killvar 'superNaturalBonus'
+	killvar 'temp_apprnc'
+end
+
+if $ARGS[0] = 'ConvertToHotcat':
+	if pcs_apprnc <= 200:
+		result = pcs_apprnc / 20
+	else
+		result = 10
+	end
+end
+
+if $ARGS[0] = 'AdjustFromBMI':
+	tempValue = ARGS[1] & !!value to be adjusted
+
+	if pcs_bmi < 16:
+		!! severely underweight
+		tempValue = tempValue * 50 / 100
+    elseif pcs_bmi < 19:
+		!! underweight
+		tempValue = tempValue * 95 / 100
+    elseif pcs_bmi < 25:
+		!! healthy weight
+		!! normal bonus
+    elseif pcs_bmi < 30:
+		!! overweight
+		tempValue = tempValue * 95 / 100
+    elseif pcs_bmi < 35:
+		!! moderately obese
+		tempValue = tempValue * 80 / 100
+    elseif pcs_bmi < 40:
+		!! severely obese
+		tempValue = tempValue * 55 / 100
+    elseif pcs_bmi < 45:
+		!! very severely obese
+		tempValue = tempValue * 50 / 100
+    else
+		!!morbidly obese
+		tempValue = tempValue * 40 / 100
+    end
+
+	result = tempValue
+	killvar 'tempValue'
+end
+--- AppearanceSystem ---------------------------------

+ 21 - 21
locations/Cheatmenu_din.qsrc

@@ -206,68 +206,68 @@ $cheatmenu['bodyMod'] = {
 		'starving (No, you may not select ''starving'', it''s here to show where the scale starts)'
 		''
 		if salocatnow ! 1:
-			'<a href="exec:salo = 20 & gs ''body_shape'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 1)]>></a>'
+			'<a href="exec:salo = 20 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 1)]>></a>'
 			''
 		end
 		if salocatnow ! 2:
-			'<a href="exec:salo = 40 & gs ''body_shape'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 2)]>></a>'
+			'<a href="exec:salo = 40 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 2)]>></a>'
 			''
 		end
 		if salocatnow ! 3:
-			'<a href="exec:salo = 60 & gs ''body_shape'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 3)]>></a>'
+			'<a href="exec:salo = 60 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 3)]>></a>'
 			''
 		end
 		if salocatnow ! 4:
-			'<a href="exec:salo = 80 & gs ''body_shape'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 4)]>></a>'
+			'<a href="exec:salo = 80 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 4)]>></a>'
 			''
 		end
 		if salocatnow ! 5:
-			'<a href="exec:salo = 100 & gs ''body_shape'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 5)]>></a>'
+			'<a href="exec:salo = 100 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 5)]>></a>'
 			''
 		end
 		if salocatnow ! 6:
-			'<a href="exec:salo = 120 & gs ''body_shape'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 6)]>></a>'
+			'<a href="exec:salo = 120 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 6)]>></a>'
 			''
 		end
 		if salocatnow ! 7:
-			'<a href="exec:salo = 140 & gs ''body_shape'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 7)]>></a>'
+			'<a href="exec:salo = 140 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 7)]>></a>'
 			''
 		end
 	else
 		if (pregchem < 2688) = 0:
-			'<a href="exec:pregchem = 100 & pregtime = 4 & gs ''body_shape'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10))]>></a>'
+			'<a href="exec:pregchem = 100 & pregtime = 4 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10))]>></a>'
 			''
 		end
 		if (pregchem >= 2688 and pregchem < 3192) = 0:
-			'<a href="exec:pregchem = 2688 & pregtime = 112 & gs ''body_shape'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 1)]>></a>'
+			'<a href="exec:pregchem = 2688 & pregtime = 112 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 1)]>></a>'
 			''
 		end
 		if (pregchem >= 3192 and pregchem < 3696) = 0:
-			'<a href="exec:pregchem = 3192 & pregtime = 133 & gs ''body_shape'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 2)]>></a>'
+			'<a href="exec:pregchem = 3192 & pregtime = 133 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 2)]>></a>'
 			''
 		end
 		if (pregchem >= 3696 and pregchem < 4200) = 0:
-			'<a href="exec:pregchem = 3696 & pregtime = 154 & gs ''body_shape'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 3)]>></a>'
+			'<a href="exec:pregchem = 3696 & pregtime = 154 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 3)]>></a>'
 			''
 		end
 		if (pregchem >= 4200 and pregchem < 4704) = 0:
-			'<a href="exec:pregchem = 4200 & pregtime = 175 & gs ''body_shape'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 4)]>></a>'
+			'<a href="exec:pregchem = 4200 & pregtime = 175 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 4)]>></a>'
 			''
 		end
 		if (pregchem >= 4704 and pregchem < 5208) = 0:
-			'<a href="exec:pregchem = 4704 & pregtime = 196 & gs ''body_shape'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 5)]>></a>'
+			'<a href="exec:pregchem = 4704 & pregtime = 196 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 5)]>></a>'
 			''
 		end
 		if (pregchem >= 5208 and pregchem < 5712) = 0:
-			'<a href="exec:pregchem = 5208 & pregtime = 217 & gs ''body_shape'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 6)]>></a>'
+			'<a href="exec:pregchem = 5208 & pregtime = 217 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 6)]>></a>'
 			''
 		end
 		if (pregchem >= 5712 and pregchem < 6216) = 0:
-			'<a href="exec:pregchem = 5712 & pregtime = 238 & gs ''body_shape'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 7)]>></a>'
+			'<a href="exec:pregchem = 5712 & pregtime = 238 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 7)]>></a>'
 			''
 		end
 		if (pregchem >= 6216) = 0:
-			'<a href="exec:pregchem = 6216 & pregtime = 259 & gs ''body_shape'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 8)]>></a>'
+			'<a href="exec:pregchem = 6216 & pregtime = 259 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<$bodimgsets[((bodset * 10) + 8)]>></a>'
 			''
 		end
 	end
@@ -799,8 +799,8 @@ $cheatmenu['looks'] = {
 	if pcs_lip > 0:'<a href="exec:pcs_lip -= 1 & dynamic $cheatmenu[''looks'']">Shrink lips</a>'
 	*nl
 	'<<$skin>>'
-	if pcs_skin < 100: '<a href="exec:pcs_skin += 20 & gs ''body_shape'', ''basebeautycalc'', 1 & dynamic $cheatmenu[''looks'']">Improve skin</a>'
-	if pcs_skin > 0: '<a href="exec:pcs_skin -= 20 & gs ''body_shape'', ''basebeautycalc'', 1 & dynamic $cheatmenu[''looks'']">Worsen skin</a>'
+	if pcs_skin < 100: '<a href="exec:pcs_skin += 20 & gs ''body'', ''UpdateBaseAppearnce'' & dynamic $cheatmenu[''looks'']">Improve skin</a>'
+	if pcs_skin > 0: '<a href="exec:pcs_skin -= 20 & gs ''body'', ''UpdateBaseAppearnce'' & dynamic $cheatmenu[''looks'']">Worsen skin</a>'
 	if pcs_tan >= 0:'<a href="exec:pcs_tan += 10 & dynamic $cheatmenu[''looks'']">Become tanned</a>'
 	if pcs_tan > 0:'<a href="exec:pcs_tan = 0 & dynamic $cheatmenu[''looks'']">Remove tan</a>'
 	*nl
@@ -809,7 +809,7 @@ $cheatmenu['looks'] = {
 	if pcs_throat >= 5:'<a href="exec:pcs_throat -= 5 & dynamic $cheatmenu[''looks'']">Decrease throat capacity</a>'
 	if dounspell = 1:
 		*nl
-		'<a href="exec:dounsplkil = 2 & gs ''body_shape'', ''hardreset''">Hard Reset body shape</a>'
+		'<a href="exec:dounsplkil = 2 & gs ''body'', ''hardreset''">Hard Reset body shape</a>'
 	end
 
 	'</td><td width="33%" cellpadding="20" valign="top">'
@@ -840,7 +840,7 @@ $cheatmenu['looks'] = {
 	*nl
 	if dounspell = 0:
 		if fat ! 0: '<a href="exec:fat = 0 & dynamic $cheatmenu[''looks'']">Zero fat</a>'
-		'Body Fat = (<<salo>>): <a href="exec:salo -= 10 & gs ''body_shape'', ''softreset'' & dynamic $cheatmenu[''looks'']">-10</a> <a href="exec:salo -= 5 & gs ''body_shape'', ''softreset'' & dynamic $cheatmenu[''looks'']">-5</a> <a href="exec:salo -= 1 & gs ''body_shape'', ''softreset'' & dynamic $cheatmenu[''looks'']">-1</a> <a href="exec:salo += 1 & gs ''body_shape'', ''softreset'' & dynamic $cheatmenu[''looks'']">+1</a> <a href="exec:salo += 5 & gs ''body_shape'', ''softreset'' & dynamic $cheatmenu[''looks'']">+5</a> <a href="exec:salo += 10 & gs ''body_shape'', ''softreset'' & dynamic $cheatmenu[''looks'']">+10</a>'
+		'Body Fat = (<<salo>>): <a href="exec:salo -= 10 & gs ''body'', ''softreset'' & dynamic $cheatmenu[''looks'']">-10</a> <a href="exec:salo -= 5 & gs ''body'', ''softreset'' & dynamic $cheatmenu[''looks'']">-5</a> <a href="exec:salo -= 1 & gs ''body'', ''softreset'' & dynamic $cheatmenu[''looks'']">-1</a> <a href="exec:salo += 1 & gs ''body'', ''softreset'' & dynamic $cheatmenu[''looks'']">+1</a> <a href="exec:salo += 5 & gs ''body'', ''softreset'' & dynamic $cheatmenu[''looks'']">+5</a> <a href="exec:salo += 10 & gs ''body'', ''softreset'' & dynamic $cheatmenu[''looks'']">+10</a>'
 		'Note: You need some Body Fat to survive, any value under 11 is clasified as "starving" and a value of 0 can lead to a Game Over.'
 	end
 	*nl
@@ -956,7 +956,7 @@ $cheatmenu['parameters'] = {
 	'agilbuf = <<agilbuf>>'
 	'strenbuf = <<strenbuf>>'
 	'vitalbuf = <<vitalbuf>>'
-	'BMI (bmi_calc) = <<bmi_calc>>'
+	'BMI (pcs_bmi) = <<pcs_bmi>>'
 	'weight (pcs_weight) = <<pcs_weight>> kg'
 	'bust (pcs_bust) = <<pcs_bust>>'
 	'band (pcs_band) = <<pcs_band>>'

+ 9 - 9
locations/UnitAppearance.qsrc

@@ -37,11 +37,11 @@ if $ARGS[0] = 'GenRowBreak':
 end 
 
 if $ARGS[0] = 'calcHotcat':
-	unitbmi_calc = FUNC('body_shape', 'bmicalc', unitsalo, unitpcs_hgt)
-	unitbodykoef = FUNC('body_shape', 'setbodykoef', unitbmi_calc, unitstrenbuf, unitsalocatnow, unitvofat)
-	unitHeadBonus = FUNC('body_shape', 'calcHeadBonus', unitpcs_lashes, unitpcs_eyesize, unitpcs_lip, unitpcs_teeth, unitbmi_calc)
-	unitAttributeBonus = FUNC('body_shape', 'calcAttributeBonus', unitpcs_agil, unitpcs_vital, unitbmi_calc)
-	unitpcs_apprncbase = FUNC('body_shape', 'basebeautycalc2', unitResetBase, unitvidage, unitpcs_skin, unitbodykoef, unitHeadBonus, unitAttributeBonus, unitpcs_apprncbase)
+	unitbmi_calc = FUNC('body', 'bmicalc', unitsalo, unitpcs_hgt)
+	unitbodykoef = FUNC('body', 'setbodykoef', unitbmi_calc, unitstrenbuf, unitsalocatnow, unitvofat)
+	unitHeadBonus = FUNC('body', 'calcHeadBonus', unitpcs_lashes, unitpcs_eyesize, unitpcs_lip, unitpcs_teeth, unitbmi_calc)
+	unitAttributeBonus = FUNC('body', 'calcAttributeBonus', unitpcs_agil, unitpcs_vital, unitbmi_calc)
+	unitpcs_apprncbase = FUNC('body', 'basebeautycalc2', unitResetBase, unitvidage, unitpcs_skin, unitbodykoef, unitHeadBonus, unitAttributeBonus, unitpcs_apprncbase)
 	unitclothingbonus = FUNC('body', 'calcClothesBonus', unitPXCloThinness, unitPXCloTopCut, unitPXCloBottomShortness, unitPCloQuality, $unitclothingworntype, unitbmi_calc)
 	unitAccessoriesBonus = FUNC('body', 'calcAccessoriesBonus', unitbonusZ, unitPShoQuality, $unitpantyworntype, $unitbraworntype)
 	unitGroomingBonus = FUNC('body', 'calcGroomingBonus', unitpcs_lipbalm, unitmopkoef, unitpcs_hairbsh, unitpcs_breath, unitdeodorant_on, unitbmi_calc)
@@ -77,7 +77,7 @@ if $ARGS[0] = 'HeadBonusCalc':
 end
 
 if $ARGS[0] = 'GenHeadRow':
-    unitHeadBonus = FUNC('body_shape', 'calcHeadBonus', ARGS[1], ARGS[2], ARGS[3], ARGS[4])
+    unitHeadBonus = FUNC('body', 'calcHeadBonus', ARGS[1], ARGS[2], ARGS[3], ARGS[4])
     '<tr>'
         '<td><<unitHeadBonus>></td>'
         '<td><<ARGS[1]>></td>'
@@ -110,7 +110,7 @@ if $ARGS[0] = 'AttribBonusCalc':
 end
 
 if $ARGS[0] = 'GenAttribRow':
-    unitAttribBonus = FUNC('body_shape', 'calcAttributeBonus', ARGS[1], ARGS[2])
+    unitAttribBonus = FUNC('body', 'calcAttributeBonus', ARGS[1], ARGS[2])
     '<tr>'
         '<td><<unitAttribBonus>></td>'
         '<td><<ARGS[1]>></td>'
@@ -1119,14 +1119,14 @@ if $ARGS[0] = 'CalcSaloVars':
     unitvofat = ((unitpcs_hgt * unithratio) / 100 + unitvhips - (unitpcs_hgt * 72) / 100) / 2
 
     unitsalocatnow = 1 + (unitsalo - 10) / 20
-    unitbmi_calc = FUNC('body_shape', 'bmicalc', unitsalo, unitpcs_hgt)
+    unitbmi_calc = FUNC('body', 'bmicalc', unitsalo, unitpcs_hgt)
     gs 'UnitAppearance', 'GetClothThick', unitbmi_calc
 end
 
 if $ARGS[0] = 'GenerateSvetaOptions':
     gs 'UnitAppearance', 'SaveBase'
     gs 'UnitAppearance', 'GenRowBreak', $ARGS[1]
-    unitbmi_calc = FUNC('body_shape', 'bmicalc', unitsalo, unitpcs_hgt)
+    unitbmi_calc = FUNC('body', 'bmicalc', unitsalo, unitpcs_hgt)
 
     $svetadesc = 'Current Clothes'
     

+ 20 - 20
locations/beg1.qsrc

@@ -52,10 +52,10 @@ if $ARGS[0] = 'br':
 	gs 'exercise', 'tier2', 30, 'run_exp'
 
     begminus = 0
-    if bmi_calc > 25: 
-        begminus = ((bmi_calc - 25)*4)
-    elseif bmi_calc < 18:
-        begminus = ((25 - bmi_calc)*6)
+    if pcs_bmi > 25: 
+        begminus = ((pcs_bmi - 25)*4)
+    elseif pcs_bmi < 18:
+        begminus = ((25 - pcs_bmi)*6)
     end
     begresult = pcs_run - begminus
     
@@ -104,10 +104,10 @@ if $ARGS[0] = 'kms':
 	gs 'exercise', 'tier2', 30, 'run_exp'
 
     begminus = 0
-    if bmi_calc > 25: 
-        begminus = ((bmi_calc - 25)*4)
-    elseif bmi_calc < 18:
-        begminus = ((25 - bmi_calc)*6)
+    if pcs_bmi > 25: 
+        begminus = ((pcs_bmi - 25)*4)
+    elseif pcs_bmi < 18:
+        begminus = ((25 - pcs_bmi)*6)
     end
     begresult = pcs_run - begminus
     
@@ -158,10 +158,10 @@ if $ARGS[0] = 'ross':
 	gs 'exercise', 'tier2', 30, 'run_exp'
 
 	begminus = 0
-    if bmi_calc > 25: 
-        begminus = ((bmi_calc - 25)*4)
-    elseif bmi_calc < 18:
-        begminus = ((25 - bmi_calc)*6)
+    if pcs_bmi > 25: 
+        begminus = ((pcs_bmi - 25)*4)
+    elseif pcs_bmi < 18:
+        begminus = ((25 - pcs_bmi)*6)
     end
     begresult = pcs_run - begminus
     
@@ -215,10 +215,10 @@ if $ARGS[0] = 'kval':
     minut += 60
     
     begminus = 0
-    if bmi_calc > 25: 
-        begminus = ((bmi_calc - 25)*4)
-    elseif bmi_calc < 18:
-        begminus = ((25 - bmi_calc)*6)
+    if pcs_bmi > 25: 
+        begminus = ((pcs_bmi - 25)*4)
+    elseif pcs_bmi < 18:
+        begminus = ((25 - pcs_bmi)*6)
     end
     begresult = pcs_run - begminus
     
@@ -273,10 +273,10 @@ if $ARGS[0] = 'evro':
     minut += 120
     
     begminus = 0
-    if bmi_calc > 25: 
-        begminus = ((bmi_calc - 25)*4)
-    elseif bmi_calc < 18:
-        begminus = ((25 - bmi_calc)*6)
+    if pcs_bmi > 25: 
+        begminus = ((pcs_bmi - 25)*4)
+    elseif pcs_bmi < 18:
+        begminus = ((25 - pcs_bmi)*6)
     end
     begresult = pcs_run - begminus
     

+ 464 - 388
locations/body.qsrc

@@ -1,144 +1,424 @@
 # body
 
-!! I have gone through and added a new category of string variables, standardised to be used for descriptive writing. You will notice some duplication here -- this is for purposes of backwards compatibility, as if I completely rename and discard some of these strings,
-!! extant saved games will irreparably break, and this would be Bad. One day down the line, most of the duplicated variables here can be culled, when there is a new release that warrants new saves being used, but until then the duplication needs to stay. Use of
-!! strings for descriptions that do not begin with $pcdesc_ should be avoided, as it would be best to have everything standardised when moving forward into the present and future.
-!! Available strings follow this format: $pcdesc_type, $pcdesc_typewordy, and $pcdesc_typerandom. The last will give a new string each time, to allow for repeatedly referencing something accurately without it becoming repetitive.  Not EVERYTHING has a wordy 
-!! or even random variation, but these should work regardless -- they just may use a non-wordy, or non-random version, if it is something that does not really warrant such. 
-!! There is also a special string, $pcdesc_typeinsertive, that follows the format " , descriptive text" as in, " , invitingly-glossed". Please check the master string document to see if this exists for the string you need. - xerya, July 2017
-
-if $ARGS[0] = '':
-	!!!!!!!!!!!!!!!!
-	!!!!!SIZE AND WEIGHT!!!
-	!!!!!!!!!!!!!!!!
+!!vhips = derived from salo in body_shape
+!!vhtmp = slows the change to vhips in body_shape
+!!wratio = waist to hips ratio set in body_shape
+!!bratio = band to waist ratio set in body_shape
+!!hratio = hip to height ratio set in body_shape
+!!vofat = used as a place to put extra salo at extreme high values (i.e. really, really fat) set in body_shape
+!!nbsize = starts at a set genetic bust size, but can be adjusted down if salo drops too low
+!!magicf2b = set in body_shape for the fat moved to bust
+!!genbsize = the set genetic bust size
+!!salocatnow = the current category of salo
+!!salocatlast = the previous category of salo
+!!magf2bdo = flag for magic bust increase; 0, ready; 1, do it; 2, ask; 3, no
+!!mgf2bnocnt = used to count the number of times a bust increase was turned down and stop asking after 3
+!!magtarcup = set in the dream code as the target cup size 
+!!btwarn = used to flag if to display the gaining/losing weight message when bathing
+!!salolast = used when doing a soft rest to control the cycling of the main code
+!!sftrstflag = used to prevent a code chunk from firing on a soft reset
+!!Image set variables
+!! bodset = body image and descriptor control variable, used to indicate which image and descriptor set is in use
+!! $bodimgsets[x] = body shape descriptors, tens place is the set (using bodset), 0 - 7 the descriptors (using salocatnow), 8 filler, 9 is the folder name
+!! bdsetlock = flag to indicate set control override, 0 is use the formula to pick a set, 1 is use a fixed set
+!! fixbodset = the identification number of the fixed image set
+!! bodsetcnt = the number of sets present
+!! imgset6ovr[x] and imgset7ovr[x] = a flag to indicate that an image set (x) has its own image 6 and/or 7
+!! extended lash functionality; pcs_lashes = n are: {2, largest natural size}, {3, with temporary false lashes on or basic 2D lash extensions}, {4, with ornate false lashes on or lavish 4D extensions}, {5, with extremely ornate, 6D-style extensions} - xerya
+
+$this = 'body'
+
+if $ARGS[0] = 'RegularUpdate':
 	if dounspell = 0:
-		pcs_hips = (pcs_hgt * hratio) / 100 + vhips
-		pcs_waist = (pcs_hips * wratio) / 100 + vofat
-		pcs_band = (pcs_waist * bratio) / 100 + vofat
-		pcs_bust = (pcs_waist * bratio) / 100 + nbsize + magicf2b + silicone
-		pcs_butt = (pcs_hips / 10) + silicone_butt + butt_cheat
-		pcs_cupsize = pcs_bust - pcs_band
-		
-		!!pcs_weight: Svetas weight in kg 
-		!!Optimal Weight (170cm): 60kg, 60 salo
-		!!This is an approximation, so that a sveta with a different height has the same BMI for the same salo values.
-		!!The default height of 170 cm is used as a starting point. The bmi deviates by 0.06 for a deviation of 10cm and 0.4 for a deviation of 20cm. 
-		
-		pcs_weight = 30 + salo / 2 + (pcs_hgt - 170) * 7 / 10
-		
-		!!Do not remove (julzor)
-		!!This is the old more complex function, but it doesn''t work correctly.
-		!!This variable is actually only used ONCE (except for the BMI calculation), when stripping, to see if you fall off the pole from being too heavy. I am reluctant to touch it, since the math is not explained. Maybe later.
-		!!Weight = (height in cm x bottom of average weight in kilos for a 170cm female / 170cm + (hip modifier + 2 x overrun fat)/4 + cup size
-		
-		!!pcs_weight = (pcs_hgt * 62 / 170) + (vhips + (vofat * 2)) / 4 + tits
-			
-		!!BMI Calculation
-
-		bmi_calc = FUNC('body_shape', 'bmicalc', salo, pcs_hgt)
-
-		!!BMI Descriptions
-		if bmi_calc < 16:
-			$bmi_desc = 'You are severely underweight.'
-		elseif bmi_calc >= 16 and bmi_calc < 19:
-			$bmi_desc = 'You are underweight'
-		elseif bmi_calc >= 19 and bmi_calc < 25:
-			$bmi_desc = 'You have a normal, healthy weight.'
-		elseif bmi_calc >= 25 and bmi_calc < 30:
-			$bmi_desc = 'You are overweight.'
-		elseif bmi_calc >= 30 and bmi_calc < 35:
-			$bmi_desc = 'You are moderately obese.'
-		elseif bmi_calc >= 35 and bmi_calc < 40:
-			$bmi_desc = 'You are severely obese.'
-		elseif bmi_calc >= 40 and bmi_calc < 45:
-			$bmi_desc = 'You are very severely obese.'
-		elseif bmi_calc >= 45:
-			$bmi_desc = 'You are morbidly obese.'
-		end
+		gs $this, 'UpdateBodyMeasurement'
+		pcs_weight = func($this, 'CalcWeight')
+		pcs_bmi = func($this, 'CalcBMI')
 	end
 
-	gs 'body_desc'
-
-	!! Skin1 is only used in the foto location, and can be replaced at a later date. From here on out, do not use it.
 	if pcs_skin > 100:
 		pcs_skin = 100
 	elseif pcs_skin < 0:
 		pcs_skin = 0
 	end
+	
+	!!Since "musle" is used all over the place
+	musle = strenbuf
+end
 
-	mopkoef = pcs_makupskl / 5
-	if pcs_makeup = 0: mopkoef = -5
-	if pcs_makeup = 1: mopkoef = 0
-	if pcs_makeup = 5: mopkoef = 30
-	if pcs_makeup = 6 and bimbolevel >= 2: extra_supnatvnesh = 2*bimbolevel - 2
-
+if $ARGS[0] = 'DailyUpdate':
+	!{
+		Update once a day and called from cikl
+	}
 	if dounspell = 1:
-		bodytipe = pcs_hips - pcs_waist
-		if bodytipe < 20:
-			bodykoef = 0
-		elseif bodytipe >= 20 and bodytipe < 25:
-			bodykoef = 2
-		elseif bodytipe >= 25 and bodytipe < 30:
-			bodykoef = 4
-		elseif bodytipe >= 30 and bodytipe < 35:
-			bodykoef = 8
-		elseif bodytipe >= 35:
-			bodykoef = 4
+		if strenbuf > 90:
+			strenbuf -= 2
+		elseif strenbuf > 80:
+			strenbuf -= 1
+		end
+	
+		if vitalbuf > 90:
+			vitalbuf -= 2
+		elseif vitalbuf > 80:
+			vitalbuf -= 1
+		end
+	
+		if strenbuf > pcs_stren: strenbuf -= 1
+		if strenbuf < pcs_stren: strenbuf += 1
+		if vitalbuf > pcs_vital: vitalbuf -= 1
+		if vitalbuf < pcs_vital: vitalbuf += 1
+		if agilbuf > pcs_agil: agilbuf -= 1
+		if agilbuf < pcs_agil: agilbuf += 1
+	else
+		gs $this
+	end
+
+	gs $this, 'UpdateBodyImage'
+
+	!!---- Calculation of lash extension degradation and false lash removal
+	if pcs_lashes > 2:
+		if lashextensionstyle >= 1:
+			lashextensionduration -= 1
+			if lashextensionduration >= 1 and lashextensionduration <= 4:
+				'It''s time for you to do your maintenance on your lash extensions; you should go to the salon or you risk growing them all out.'
+			end
+			if lashextensionduration <= 0:
+				'You waited too long to do maintenance on your lash extensions; there''s too little there to notice or work with at this point.'
+				pcs_lashes = pcs_naturallashes
+				killvar 'lashextensionstyle'
+				killvar 'lashextensionduration'
+				killvar 'lashextensionnew'
+			end
+		end
+		if false_lashes > 0:
+			false_lashes -= 1
+			if false_lashes = 0:
+				'Your false lashes came off in the night; there''s no recovering them now.'
+				pcs_lashes = pcs_naturallashes
+			else
+				'Somehow, your lashes managed to stay attached throughout the night. You might be able to get away with wearing them another day straight.'
+			end
 		end
 	end
 
-	!!This is to force a base update if teeth changed since that is immediate
-	if zublast ! pcs_teeth:
-		gs 'body_shape', 'basebeautycalc', 1
-		zublast = pcs_teeth
+	!! Max. Hair length 600mm, or 60cm, which should be somewhere in the lower back area.
+	!! Hair grows 1mm each day, it takes 20 months (1 month = 30 days) to regrow the hair from 0.
+	if pcs_hairlng < 1001 and hairgrowcht = 0:pcs_hairlng += 1
+
+	! Hair colour change
+	if pcs_haircol ! nathcol:
+		dyefade -=1
+		if dyefade < 0: dyefade = 0
 	end
 
-	!! Calculate hotcat etc
-	tempclothingbonus = FUNC('body', 'calcClothesBonus', PXCloThinness, PXCloTopCut, PXCloBottomShortness, PCloQuality, $clothingworntype, bmi_calc)
-	tempAccessoriesBonus = FUNC('body', 'calcAccessoriesBonus', bonusZ, PShoQuality, $pantyworntype, $braworntype)
-	tempGroomingBonus = FUNC('body', 'calcGroomingBonus', pcs_lipbalm, mopkoef, pcs_hairbsh, pcs_breath, deodorant_on, bmi_calc)
-	tempGroomingPenalty = FUNC('body', 'calcGroomingPenalty', pcs_hairlng, pcs_sweat, glassvnesh, dyevmod, legkoef)
-	Hotcat = FUNC('body', 'calcHotcat', pcs_apprncbase, (supnatvnesh + extra_supnatvnesh), tempclothingbonus, tempAccessoriesBonus, tempGroomingBonus, tempGroomingPenalty)
-	pcs_apprnc = temppcs_apprnc & killvar 'temppcs_apprnc' & killvar 'temppcs_maxapprnc'
+	!!pubic hair colouring
+	!! pcs_pubecol = natural colour
+	!! pcs_pubecol[1] = flag for saveupdate
+	!! pcs_pubecol[2] = actual colour
+	!! pcs_pubecol[3] = countdown timer for dye
+	if pcs_pubecol[2] ! pcs_pubecol:
+		pcs_pubecol[3] -=1
+		if pcs_pubecol[3] < 0: pcs_pubecol[3] = 0
+		if pcs_pubecol[3] = 0: pcs_pubecol[2] = pcs_pubecol
+	end
 
+	if pcs_pubes < 2: pcs_pubecol[2] = pcs_pubecol
 
-	if StrongNarkota <= 0:
-		if SNarkTimes >= 3 and SLomka = 0:SLomka = 1
-		if Gerpes >= 3 or Sifilis >= 21 or Triper > 2:pcs_apprnc = -10
+	if hscrunch > 0:
+		hscrunchrand = rand(1, 100)
+
+		if hscrunchrand <= 8:hscrunch -= 1
 	end
 
-	if amphCount > 3 and amphHigh <= 0:
-		addictChance = rand(1,10)
-		if addictChance > 8:
-			amphWithdrawl = 2
+	! Leg and pubes hair growth
+	if lashair ! 1:
+		pcs_leghair += 1
+		!!Pubic hair growth at 1/2 per night
+		if pcs_pubes['growth'] > 1:
+			pcs_pubes['growth'] = 0
+			pcs_pubes += 1
 		end
+		pcs_pubes['growth'] += 1
+	end
+	
+	if age < 18 and rand (0,2) = 0 and pcs_leghair > 0: pcs_leghair -= 1
+end
+
+if $ARGS[0] = '':
+	!!This controls the gradual change in stat to -buf
+	if strenbuf > pcs_stren: strenbuf -= 1
+	if strenbuf < pcs_stren: strenbuf += 1
+	if vitalbuf > pcs_vital: vitalbuf -= 1
+	if vitalbuf < pcs_vital: vitalbuf += 1
+	if agilbuf > pcs_agil: agilbuf -= 1
+	if agilbuf < pcs_agil: agilbuf += 1
+
+	!!All the ratios were rounded to 2 digits and there are divide 100s at the final calc points
+	!!Waist to hip ratio
+
+	wrtemp = ((2 * vitalbuf + strenbuf + agilbuf) /4)
+
+	!!	Primary wratio handling
+	if wrtemp < 11:
+		wratio = 85 + (11 - (vitalbuf + strenbuf + agilbuf)/3)
+	elseif wrtemp < 20:
+		wratio = 85
+	elseif wrtemp < 35:
+		wratio = 85 - (wrtemp - 20) / 3
+	elseif wrtemp < 55:
+		wratio = 80 - (wrtemp - 35) / 4
+	elseif wrtemp < 80:
+		wratio = 75 - (wrtemp - 55) / 5
+	elseif wrtemp >= 80:
+		wratio = 70
+	end
+
+	!!	High stat value edge case handling
+	if (vitalbuf + strenbuf + agilbuf) /3 > 100: wratio -= ((vitalbuf + strenbuf)/2 - agilbuf)/5
+
+	!!	This is the oops and high stat gone overboard handling
+	if wratio < 65: wratio = 65
+
+	killvar 'wrtemp'
+
+	!!For band to waist ratio
+	brtemp = (2 * strenbuf + vitalbuf + agilbuf) /4
+
+	if brtemp < 10:
+		bratio = 105
+	elseif brtemp =< 23:
+		bratio = 106
+	elseif brtemp =< 80:
+		bratio = 106 + (brtemp - 23) / 3
+	else
+		bratio = 125
+	end
+
+	killvar 'brtemp'
+
+	!!For hip to height ratio which is used to set the center point
+	hrtemp = (2 * agilbuf + vitalbuf + strenbuf) /4
+
+	if hrtemp < 35:
+		hratio = 60
+	elseif hrtemp < 45:
+		hratio = 59
+	elseif hrtemp < 60:
+		hratio = 58
+	elseif hrtemp < 80:
+		hratio = 57
+	else
+		hratio = 56
+	end
+
+	killvar 'hrtemp'
+
+	!!Salo Handling; the first part is because during a reset fat is not used and should be cleared
+	if sftrstflag = 1 or cheatNoFat = 1:
+		fat = 0
+	else
+		if fat > (17 + vitalbuf / 25): salo += 1 & fat = 0
+		if fat < (-2 - (vitalbuf / 10)): salo -= 1 & fat = 0
+	end
+
+	!!This is the salo cap for the weight approximation
+	if salo > 250: salo = 250
+		
+	!!This calculates the current salo category; ranges are 20 points, seemed to balance best if the range is x10 the hip devisor
+	:salocatloop
+	if salo < 10:
+		salocatnow = 0
+	else
+		salocatnow = 1 + (salo - 10) / 20
+	end
+
+	!!This resets the genetic bust size (genbsize) when the cheat is used to reduce breast size (maybe other things later)
+	if titreduc = 1:
+		killvar 'titreduc'
+		if genbsize > nbsize:
+			genbsize = 2 + nbsize - nbsize mod 5
+		end
+	end
+
+	!!This controls the movement of salo to/from bust in order of precedence
+	if salobustdo = 0 and nbsize < genbsize and salocatnow > 2:
+		if sftrstflag = 0:'<b>Your breasts seem fuller.</b>'
+		nbsize += 1
+		salo -= 3
+		salobustdo = 1
+		jump 'salocatloop'
+	end
+
+	if salobustdo = 0 and magf2bdo = 1 and salocatnow > salocatlast and pcs_mana >= manamax / 2 and magikDostup = 0:
+		if sftrstflag = 0:'<b>Your breasts seem fuller.</b>'
+		magicf2b += 1
+		salo -= 3
+		salobustdo = 1
+		if magicf2b >= 2 + magtarcup * 5: magf2bdo = 0
+		if pcs_magik < 20:
+			pcs_mana -= 2000 / pcs_magik
+		else
+			mana -= 100
+		end
+		jump 'salocatloop'
+	end
+
+	if salobustdo = 0 and salocatnow < 2 and salocatlast >= 2 and magicf2b > 0 and magikDostup = 0:
+		if sftrstflag = 0:'<b>Your breasts seem to be getting smaller.</b>'
+		magicf2b -= 1
+		salo += 3
+		salobustdo = 1
+		magf2bdo = 1
+		jump 'salocatloop'
+	end
+
+	if salobustdo = 0 and salocatnow < 1 and salocatlast >= 1 and nbsize > 0:
+		if sftrstflag = 0:'<b>Your breasts seem to be getting smaller.</b>'
+		nbsize -= 1
+		salo += 3
+		salobustdo = 1
+		jump 'salocatloop'
+	end
+
+	!!This is if a Succubus has salo < 1
+	if succubusflag = 1 and salo < 1:
+		sucexcess -= 1
+		salo += 3
+	end
+
+	!!This is if salo is still < 1
+	if salo < 1:
+		if fat >= 1:
+			salo = 1
+			fat -= 1
+		elseif fat <= 0 and pcs_stren + pcs_vital > 0:
+			stren_deg -= 1000
+			vital_deg -= 1000
+			salo = 1
+		else
+			if Enable_nogameover = 0:
+				over = 3
+				gt 'gameover'
+				exit
+			else
+				pl '<font color=red><B>You starved to death, but Cheat Mode keeps you Alive.</B></font>'
+				salo = 1
+			end
+		end
+	end
+
+	killvar 'tempvct' & killvar 'salobustdo'
+
+	!!This is the hip calcs, 80 is the center of the current max-min range (10 - 130)
+	vhtmp = (salo - 80) / 2
+	
+	if vhips > vhtmp: vhips -= 1
+	if vhips < vhtmp: vhips += 1
+	!!	Because a reset should be updating hip size instantly (this set is a bit redundant anyway)
+	if sftrstflag = 1: vhips = vhtmp
+
+	if (pcs_hgt * hratio) / 100 + vhips > (pcs_hgt * 72) / 100:
+		vofat = ((pcs_hgt * hratio) / 100 + vhips - (pcs_hgt * 72) / 100) / 2
+		vhips -= vofat * 2
 	end
 
-	if StrongNarkota > 0:
-		if SLomka > 0:SLomka = 0
-		pcs_mood = 100
+	!!This will trigger the warning notices in the bathing code (the +/- 12 should always be +/- 11 + the max change to salo w/ fat)
+	if salolast > salo and salo <= 12 + (20 * (salocatnow - 1)): btwarn = 1
+	if salolast < salo and salo >= (20 * (salocatnow + 1)) - 12: btwarn = 2
+
+	!!This will trigger the dream for the option to use magic to increase bust
+	!!Three nos at the dream will lock it out (1 yes resets the count)
+	if pcs_magik >= 5 and MagikDostup = 0 and magf2bdo = 0:
+		if salolast < salo and salo >= (20 * (salocatnow + 1)) - 11 and tits < 10:
+			if mgf2bnocnt < 3:
+				magf2bdo = 2
+			else
+				magf2bdo = 3 & killvar 'mgf2bnocnt'
+			end
+		end
 	end
 
-	if pcs_apprnc = -10:
-		$pcs_apprnc = 'Your looks are even worse than terrible. It''s god-awful. No one wants to see or talk to you and people avoid you at any cost.'
-	elseif pcs_apprnc < 20:
-		$pcs_apprnc = 'Your looks are terrible. People try to avoid looking and talking to you.'
-	elseif pcs_apprnc < 60:
-		$pcs_apprnc = 'You''re a wallflower. Hardly anyone notices you.'
-	elseif pcs_apprnc < 120:
-		$pcs_apprnc = 'You have good looks. Men and women check you out when they think you aren''t looking.'
-	elseif pcs_apprnc < 160:
-		$pcs_apprnc = 'You''re unquestionably gorgeous. Men constantly get caught staring at you by their girlfriends.'
-	elseif pcs_apprnc < 200:
-		$pcs_apprnc = 'You have a simply stunning appearance. Other girls are a bit jealous and guys constantly check you out.'
+	!!This is to deal with the possibility that salocatnow changed by more than 1 (fat burners, vitamins, plastic surgery, etc.)
+	if salocatnow < salocatlast: salocatlast -= 1
+	if salocatnow > salocatlast: salocatlast += 1
+
+	!!This is for use in the warning code and as part of the reset routines
+	if salolast > salo: salolast -= 1
+	if salolast < salo: salolast += 1
+
+	!!Setting the pcs_apprnc bonus based on fat and strength
+	pcs_bmi = FUNC($this, 'CalcBMI')
+
+	!!This is to clean up unused variables
+	killvar 'normbuffpick' & killvar 'nrmbfpckct'
+	killvar 'vmeat' & killvar 'vfat' & killvar 'Kves' & killvar 'krost'
+	killvar 'koefvesbt' & killvar 'koefbt'
+end
+
+if $ARGS[0] = 'UpdateBodyMeasurement':
+	pcs_hips = (pcs_hgt * hratio) / 100 + vhips
+	pcs_waist = (pcs_hips * wratio) / 100 + vofat
+	pcs_band = (pcs_waist * bratio) / 100 + vofat
+	pcs_bust = (pcs_waist * bratio) / 100 + nbsize + magicf2b + silicone
+	pcs_butt = (pcs_hips / 10) + silicone_butt + butt_cheat
+	pcs_cupsize = pcs_bust - pcs_band
+
+	! Update tits size
+	if pcs_cupsize <= 5:
+		tits = 0
+		$titsize = 'AA cup'
+	elseif pcs_cupsize <= 10:
+		tits = 1
+		$titsize = 'A cup'
+	elseif pcs_cupsize <= 15:
+		tits = 2
+		$titsize = 'B cup'
+	elseif pcs_cupsize <= 20:
+		tits = 3
+		$titsize = 'C cup'
+	elseif pcs_cupsize <= 25:
+		tits = 4
+		$titsize = 'D cup'
+	elseif pcs_cupsize <= 30:
+		tits = 5
+		$titsize = 'E cup'
+	elseif pcs_cupsize <= 35:
+		tits = 6
+		$titsize = 'F cup'
+	elseif pcs_cupsize <= 40:
+		tits = 7
+		$titsize = 'G cup'
+	elseif pcs_cupsize <= 45:
+		tits = 8
+		$titsize = 'H cup'
+	elseif pcs_cupsize <= 50:
+		tits = 9
+		$titsize = 'I cup'
+	elseif pcs_cupsize <= 55:
+		tits = 10
+		$titsize = 'J cup'
 	else
-		$pcs_apprnc = 'Your appearance is divine! No one is able to take his or her eyes off of you.'
+		tits = 11
+		$titsize = 'K cup'
 	end
+end
 
-	!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-	!!!!!!!!BODY
-	!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+if $ARGS[0] = 'CalcWeight':
+	!{pcs_weight: Svetas weight in kg 
+	Optimal Weight (170cm): 60kg, 60 salo
+	This is an approximation, so that a sveta with a different height has the same BMI for the same salo values.
+	The default height of 170 cm is used as a starting point. The bmi deviates by 0.06 for a deviation of 10cm and 0.4 for a deviation of 20cm.}
+	result = 30 + salo / 2 + (pcs_hgt - 170) * 7 / 10
+
+	!{Do not remove (julzor)
+	This is the old more complex function, but it doesn''t work correctly.
+	This variable is actually only used ONCE (except for the BMI calculation), when stripping, to see if you fall off the pole from being too heavy. I am reluctant to touch it, since the math is not explained. Maybe later.
+	Weight = (height in cm x bottom of average weight in kilos for a 170cm female / 170cm + (hip modifier + 2 x overrun fat)/4 + cup size}
+	
+	!result = (pcs_hgt * 62 / 170) + (vhips + (vofat * 2)) / 4 + tits
+end
 
+if $ARGS[0] = 'UpdateBodyImage':
+	!Update body image set
 	if dounspell = 1:
 		salocatnow = (pcs_hips / 10) - 5
 		if bdsetlock = 0:
@@ -164,8 +444,9 @@ if $ARGS[0] = '':
 		else
 			bodset = 1
 		end
-	end 
+	end
 
+	! Update body description
 	if (knowpreg = 1 or (preg = 1 and thinkpreg = 1) or (preg = 1 and PregChem > 3600)) and bodset = 3:
 		if PregChem > 6216:
 			$body = $bodimgsets[((bodset * 10) + 8)]
@@ -179,295 +460,90 @@ if $ARGS[0] = '':
 	else
 		$body = $bodimgsets[((bodset * 10) + 7)]
 	end
-
-	!!Since "musle" is used all over the place
-	musle = strenbuf
-
-
-	!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-	!! kill temporary variables
-	killvar 'rand_breasts'
-	killvar 'rand_hairmess'
-	killvar 'rand_hairword'
-	killvar 'rand_bangs'
-	killvar 'rand_hair'
-	killvar 'rand_hairstyle'
-	killvar 'rand_hairobject'
-	killvar 'rand_hairlength'
-	killvar 'rand_tongue'
-	killvar 'rand_eyecol'
-	killvar 'rand_lashes'
-	killvar 'rand_vision'
-	killvar 'rand_eyesize'
-	killvar 'rand_makeup'
-	killvar 'rand_legs'
-	killvar 'rand_clit'
-	killvar 'rand_pubes'
-	killvar 'rand_nipples'
-	killvar 'tempclothingbonus'
-	killvar 'tempAccessoriesBonus'
-	killvar 'tempGroomingBonus'
-	killvar 'tempGroomingPenalty'
 end
 
-if $ARGS[0] = 'calcClothesBonus':
-	!! Note there is a limit of 9 args
-	tempPXCloThinness = ARGS[1] & !! PXCloThinness
-	tempPXCloTopCut = ARGS[2] & !! PXCloTopCut
-	tempPXCloBottomShortness = ARGS[3] & !! PXCloBottomShortness
-	tempPCloQuality = ARGS[4] & !! PCloQuality
-	$tempclothingworntype = $ARGS[5] & !!$clothingworntype
-	tempbmi_calc = ARGS[6] & !! bmi_calc
-
-	if tempbmi_calc < 16:
-		!!severely underweight
-		if $tempclothingworntype = 'nude':
-			tempRevealing = 0
-			tempPCloQuality = 1
-		else
-			tempRevealing = (400 - tempPXCloThinness) + (500 - tempPXCloTopCut) + (400 - tempPXCloBottomShortness)
-			tempRevealing = tempRevealing / 2
-		end
-	elseif tempbmi_calc >= 16 and tempbmi_calc < 19:
-		!!underweight
-		if $tempclothingworntype = 'nude':
-			tempRevealing = 0
-			tempPCloQuality = 1
-		else
-			tempRevealing = (400 - tempPXCloThinness) + (500 - tempPXCloTopCut) + (400 - tempPXCloBottomShortness)
-			tempRevealing = tempRevealing / 2
-		end
-	elseif tempbmi_calc >= 19 and tempbmi_calc < 25:
-		!!normal, healthy weight
-		if $tempclothingworntype = 'nude':
-			tempRevealing = 405
-			tempPCloQuality = 3
-		else
-			tempRevealing = tempPXCloThinness + tempPXCloTopCut + tempPXCloBottomShortness
-			tempRevealing = tempRevealing / 2
-		end
-	elseif tempbmi_calc >= 25 and tempbmi_calc < 30:
-		!!overweight
-		if $tempclothingworntype = 'nude':
-			tempRevealing = 405
-			tempPCloQuality = 3
-		else
-			tempRevealing = tempPXCloThinness + tempPXCloTopCut + tempPXCloBottomShortness
-			tempRevealing = tempRevealing / 2
-		end
-	elseif tempbmi_calc >= 30 and tempbmi_calc < 35:
-		!!moderately obese
-		if $tempclothingworntype = 'nude':
-			tempRevealing = 0
-			tempPCloQuality = 1
-		else
-			tempRevealing = (400 - tempPXCloThinness) + (500 - tempPXCloTopCut) + (400 - tempPXCloBottomShortness)
-			tempRevealing = tempRevealing * 3 / 4
-		end
-	elseif tempbmi_calc >= 35 and tempbmi_calc < 40:
-		!!severely obese
-		if $tempclothingworntype = 'nude':
-			tempRevealing = 0
-			tempPCloQuality = 1
-		else
-			tempRevealing = (400 - tempPXCloThinness) + (500 - tempPXCloTopCut) + (400 - tempPXCloBottomShortness)
-			tempRevealing = tempRevealing * 3 / 4
-		end
-	elseif tempbmi_calc >= 40 and tempbmi_calc < 45:
-		!!very severely obese
-		if $tempclothingworntype = 'nude':
-			tempRevealing = 0
-			tempPCloQuality = 1
-		else
-			tempRevealing = (400 - tempPXCloThinness) + (500 - tempPXCloTopCut) + (400 - tempPXCloBottomShortness)
-			tempRevealing = tempRevealing * 3 / 4
-		end
-	elseif tempbmi_calc >= 45:
-		!!morbidly obese
-		if $tempclothingworntype = 'nude':
-			tempRevealing = 0
-			tempPCloQuality = 1
-		else
-			tempRevealing = (400 - tempPXCloThinness) + (500 - tempPXCloTopCut) + (400 - tempPXCloBottomShortness)
-			tempRevealing = tempRevealing * 3 / 4
-		end
-	end
-
-	tempRevealing = tempRevealing / 76
-
-	tempCloAdjustedBeauty = tempRevealing * tempPCloQuality
-
-	!!if $tempclothingworntype = 'danilovich_outfits': tempCloAdjustedBeauty = tempCloAdjustedBeauty * 2 / 3
-
-	result = tempCloAdjustedBeauty
-
-	killvar 'tempPXCloThinness'
-	killvar 'tempPXCloTopCut'
-	killvar 'tempPXCloBottomShortness'
-	killvar 'tempPCloQuality'
-	killvar '$tempclothingworntype'
-	killvar 'tempRevealing'
-	killvar 'tempCloAdjustedBeauty'
-	killvar 'tempbmi_calc'
+if $ARGS[0] = 'CalcBMI':
+	result = 10000 * (30 + salo / 2 + (pcs_hgt - 170) * 7 / 10) / (pcs_hgt * pcs_hgt)
 end
 
-if $ARGS[0] = 'calcAccessoriesBonus':
-	tempcoatbonus = ARGS[1] & !! bonusZ
-	tempPShoQuality = ARGS[2] & !! PShoQuality
-	$temppantyworntype = $ARGS[3] & !! $pantyworntype
-	$tempbraworntype = $ARGS[4] & !! $braworntype
-	
-	!!bonuses for certain underwear
-	if $temppantyworntype = 'boutique':
-		temppantybounus = 4
-	elseif $temppantyworntype = 'fashionista':
-		temppantybounus = 2
-	end
-
-	if $tempbraworntype = 'boutique':
-		tempbrabounus = 4
-	elseif $tempbraworntype = 'fashionista':
-		tempbrabounus = 2
+if $ARGS[0] = 'softreset':
+	!!This is for use in immediately updating shape if something has caused a large change in salo, primarily fat burners and plastic surgery
+	sftrstflag = 1
+	:resetloop
+	if salo ! salolast:
+		if gmstrtflag = 1: salobustdo = 1
+		gs 'body'
+		jump 'resetloop'
 	end
-
-	tempAccessoriesBonus = tempcoatbonus + tempPShoQuality + temppantybounus + tempbrabounus
-
-	result = tempAccessoriesBonus
-	killvar 'tempcoatbonus'
-	killvar 'tempPShoQuality'
-	killvar 'temppantybounus'
-	killvar 'tempbrabounus'
-	killvar '$temppantyworntype'
-	killvar '$tempbraworntype'
-	killvar 'tempAccessoriesBonus'
+	!!Updates pcs_apprncbase after a reset
+	gs 'AppearanceSystem', 'UpdateBaseAppearnce'
+	!!Clears the warning and reset status flags if they were set
+	sftrstflag = 0
+	btwarn = 0
 end
 
-if $ARGS[0] = 'calcGroomingBonus':
-	!! Note there is a limit of 9 args
-	temppcs_lipbalm = ARGS[1] & !! pcs_lipbalm
-	tempmakeupkoef = ARGS[2] & !! mopkoef 
-	temppcs_hairbsh = ARGS[3] & !! pcs_hairbsh
-	temppcs_breath = ARGS[4] & !! pcs_breath
-	tempdeodorant_on = ARGS[5] & !! deodorant_on
-	tempbmi_calc = ARGS[6] & !! bmi_calc
-
-	if temppcs_lipbalm > 0:
-		lipbalmKoef = 5
+if $ARGS[0] = 'hardreset':
+	!!This is primarily for canceling out "dounspell" and setting salo to whatever value will result in the current hip size then balancing everything out.
+	!!Also could be built in as a means to in-game undo "dounspell", other than the cheat.
+	if dounspell = 1 and dounsplkil > 0:
+		salo = 12
+		fat = 0
+		agilbuf = pcs_agil & strenbuf = pcs_stren & vitalbuf = pcs_vital
+		salobustdo = 1 & sftrstflag = 1 & normbuffpick = -1
+		gs 'body'
+		salo = (pcs_hips * 2) - ((pcs_hgt * hratio) / 50) + 80
+		if salo < 10:
+			salocatnow = 0
+		else
+			salocatnow = 1 + (salo - 10) / 20
+		end
+		salocatlast = salocatnow
+		salolast = salo
+		vhtmp = (salo - 80) / 2
+		vhips = vhtmp
+		if genbsize = 0 and nbsize > 0:
+			If nbsize >= 27:
+				genbsize = 27
+			else
+				genbsize = 2 + nbsize - nbsize mod 5
+			end
+		elseif genbsize = 0 and nbsize = 0 and silicone >= 20:
+			genbsize = 12 & nbsize = 12 & silicone -= 10
+		end
+		sftrstflag = 0 & normbuffpick = 0 & btwarn = 0 & magf2bdo = 0
+		killvar 'dounsplkil'
+		newbdsp = 1
+		dounspell = 0
+		gs 'AppearanceSystem', 'UpdateBaseAppearnce'
+		gs 'body'
+		gs 'stat'
 	else
-		lipbalmKoef = 0
+		'If you''re seeing this, something odd happened. Please make a bug report that the body shape hard reset improperly triggered and what you were doing.'
 	end
-
-	tempHairBonus = temppcs_hairbsh * 10
-
-	tempBreathBonus = temppcs_breath * 5
-
-	tempGroomingBonus = tempmakeupkoef + tempHairBonus + lipbalmKoef + tempBreathBonus
-
-	!!Small bonus for wearing deodorant, if pcs_sweat is low enough
-	if tempdeodorant_on = 1 and temppcs_sweat < 20: tempGroomingBonus += 5
-
-	tempGroomingBonus = FUNC('body_shape', 'bmiadjust', tempGroomingBonus, tempbmi_calc)
-
-	result = tempGroomingBonus
-
-	killvar 'temppcs_lipbalm'
-	killvar 'tempmakeupkoef'
-	killvar 'temppcs_hairbsh'
-	killvar 'temppcs_breath'
-	killvar 'tempdeodorant_on'
-	killvar 'tempHairBonus'
-	killvar 'tempBreathBonus'
-	killvar 'tempGroomingBonus'
-
-!! commented out as not used in the original calc
-!!Removed as primary appearance factors; will be eventually used in an NPC preference system instead; tanKoef = suntan
-!!	if temppcs_tan > 0:
-!!		tanKoef = 1
-!!	else
-!!		tanKoef = 0
-!!	end
-
 end
 
-if $ARGS[0] = 'calcGroomingPenalty':
-	temppcs_hairlng = ARGS[1] & !! pcs_hairlng
-	temppcs_sweat = ARGS[2] & !! pcs_sweat
-	tempglassvnesh = ARGS[3] & !! glassvnesh
-	tempdyevmod = ARGS[4] & !! dyevmod
-	templegkoef = ARGS[5] & !! legkoef
-
-	!! buzzcut penalty to pcs_apprnc
-	if temppcs_hairlng < 10:
-		hairkoef = 10
+if $ARGS[0] = 'initial':
+	!!	Sets the genetic bust size if it was not set in the start routines
+	if genbsize = 0:
+		genbsize = 12 & nbsize = 12
 	else
-		hairkoef = 0
+		nbsize = genbsize
 	end
-
-	if temppcs_sweat < 22:
-		sweatKoef = 0
-	elseif temppcs_sweat < 38:
-		sweatKoef = (temppcs_sweat - 10) / 4
-	elseif temppcs_sweat < 54:
-		sweatKoef = (temppcs_sweat - 10) / 2
-	else
-		sweatKoef = 3 * (temppcs_sweat - 10) / 4
-	end
-
-	tempGroomingPenalty = sweatKoef + tempglassvnesh + tempdyevmod + hairkoef + templegkoef
-
-	result = tempGroomingPenalty
-
-	killvar 'temppcs_hairlng'
-	killvar 'temppcs_sweat'
-	killvar 'tempglassvnesh'
-	killvar 'tempdyevmod'
-	killvar 'templegkoef'
-	killvar 'tempGroomingPenalty'
+	agilbuf = pcs_agil & strenbuf = pcs_stren & vitalbuf = pcs_vital
+	normbuffpick = -1 & gmstrtflag = 1
+	!!	Calling soft reset will cause the main code to cycle up to the starting value of salo
+	gs 'body', 'softreset'
+	!!	This sets/resets the controler variables
+	salocatlast = salocatnow
+	normbuffpick = 0 & magf2bdo = 0
+	killvar 'gmstrtflag'
+	newbdsp = 1
+	!!	This does all the body shape setting before the first stat call
+	gs $this, 'UpdateBodyMeasurement'
+	pcs_weight = func($this, 'CalcWeight')
+	pcs_bmi = func($this, 'CalcBMI')
+	gs 'body_desc', 'BMI'
 end
 
-
-if $ARGS[0] = 'calcHotcat':
-	!!Appearance factors; hairkoef = very short hair / mopkoef = makeup bonus / legkoef = shaved legs / CloAdjustedBeauty = clothes / pcs_hairbsh = Hair brushed / lipbalmKoef = lip balm / pcs_breath = freash breath / sweatKoef = pcs_sweat / glassvnesh = glasses / dyevmod = hair dye fading
-	!!Moved to base calculation in "body_shape"; bimbobeauty = Bimbo bonus; pcs_lip = lip size; skin = skin condition; pcs_lashes = eyelashes; pcs_eyesize = eyes; bodykoef = hips:waist ratio; pcs_teeth = missing teeth; vidagebonus = youth
-	temppcs_apprncbase = ARGS[1] & !! pcs_apprncbase
-	tempsupnatvnesh = ARGS[2] & !! supnatvnesh
-	tempCloAdjustedBeauty = ARGS[3] & !! result of calcClothesBonus
-	tempAccessoriesBonus = ARGS[4] & !! result of calcAccessoriesBonus
-	tempGroomingBonus = ARGS[5] & !! result of calcGroomingBonus
-	tempGroomingPenalty = ARGS[6] & !! result of calcGroomingPenalty
-
-	temppcs_apprnc = temppcs_apprncbase + tempCloAdjustedBeauty + tempAccessoriesBonus + tempGroomingBonus - tempGroomingPenalty
-	!!adjustment to make max achievable
-	!!temppcs_maxapprnc = temppcs_apprnc*200/170
-	temppcs_maxapprnc = temppcs_apprnc
-
-	if temppcs_maxapprnc >= 200: 
-		temppcs_apprnc = 200
-	else
-		temppcs_apprnc = temppcs_maxapprnc
-	end 
-
-	temppcs_apprnc = temppcs_apprnc + tempsupnatvnesh
-
-	if temppcs_apprnc < 0: temppcs_apprnc = 0
-
-	!!This sets the "hotness catagory" varibale for use in checks
-	if temppcs_apprnc <= 200:
-		temphotcat = temppcs_apprnc / 20
-	else
-		temphotcat = 10
-	end
-
-	result = tempHotcat
-	!! do not kill temppcs_apprnc this is used as a second returned variable set pcs_apprnc = temppcs_apprnc and kill temppcs_apprnc after calling it
-	killvar 'tempsupnatvnesh'
-	killvar 'temppcs_apprncbase'
-	killvar 'tempCloAdjustedBeauty'
-	killvar 'tempGroomingBonus'
-	killvar 'tempGroomingBonus'
-	killvar 'tempGroomingPenalty'
-end 
-
-
 --- body ---------------------------------
+

+ 51 - 9
locations/body_desc.qsrc

@@ -1,11 +1,20 @@
 # body_desc
 
+!{
+	I have gone through and added a new category of string variables, standardised to be used for descriptive writing. You will notice some duplication here -- this is for purposes of backwards compatibility, as if I completely rename and discard some of these strings,
+	extant saved games will irreparably break, and this would be Bad. One day down the line, most of the duplicated variables here can be culled, when there is a new release that warrants new saves being used, but until then the duplication needs to stay. Use of
+	strings for descriptions that do not begin with $pcdesc_ should be avoided, as it would be best to have everything standardised when moving forward into the present and future.
+	Available strings follow this format: $pc_desc['type'], $pc_descWordy['type']
+	Available 'type':
+		throat, pussy, anus, butt, breasts, lips, lip size, lip gloss  hair, hair style, hair status, hair length, hair colour, hair texture, hair bang tan, skin, eye color, eyelashes, glasses, eye size, makeup, nipples, clit, pubes, legs
+}
+
 if $ARGS[0] = '':
     $this = 'body_desc'
     gs $this, 'throat'
     gs $this, 'pussy'
     gs $this, 'anus'
-	if dounspell = 0: gs $this, 'butt' & gs $this, 'breasts'
+	if dounspell = 0: gs $this, 'butt' & gs $this, 'breasts' & gs $this, 'BMI'
 	gs $this, 'lips'
 	gs $this, 'hair'
     gs $this, 'tan'
@@ -19,6 +28,7 @@ if $ARGS[0] = '':
     gs $this, 'clit'
     gs $this, 'pubes'
     gs $this, 'legs'
+	gs $this, 'appearance'
 end
 
 if $ARGS[0] = 'ChooseDescWord':
@@ -176,6 +186,27 @@ if $ARGS[0] = 'anus':
 	end
 end
 
+if $ARGS[0] = 'BMI':
+	!!BMI Descriptions
+	if pcs_bmi < 16:
+		$bmi_desc = 'You are severely underweight.'
+	elseif pcs_bmi >= 16 and pcs_bmi < 19:
+		$bmi_desc = 'You are underweight'
+	elseif pcs_bmi >= 19 and pcs_bmi < 25:
+		$bmi_desc = 'You have a normal, healthy weight.'
+	elseif pcs_bmi >= 25 and pcs_bmi < 30:
+		$bmi_desc = 'You are overweight.'
+	elseif pcs_bmi >= 30 and pcs_bmi < 35:
+		$bmi_desc = 'You are moderately obese.'
+	elseif pcs_bmi >= 35 and pcs_bmi < 40:
+		$bmi_desc = 'You are severely obese.'
+	elseif pcs_bmi >= 40 and bmi_pcs_bmicalc < 45:
+		$bmi_desc = 'You are very severely obese.'
+	elseif pcs_bmi >= 45:
+		$bmi_desc = 'You are morbidly obese.'
+	end
+end
+
 if $ARGS[0] = 'breasts':
 	!! If the PC has vastly less breast tissue than she does silicone, use a slightly more derogatory term. There is actually not a great way to calculate this; silicone counts almost the same on all body types, even though an increase of 200cc, for example, would be vastly
 	!! more noticeable on a thinner body than a heavier one. I have experimented with moving where the silicone is factored in to the body shape calculations, but ultimately there is just no better way to do it than how it is now, given the things that increase the amount
@@ -572,16 +603,13 @@ if $ARGS[0] = 'glasses':
 		$pc_desc['vision'] = func($this, 'ChooseDescWord', 'glasses', 'lenses')
 		$pc_descWordy['vision'] = 'chic, stylish glasses'
 		$glass = ' You wear glasses.'
-		glassvnesh = 0
 	elseif glass = 1:
 		$pc_desc['vision'] = func($this, 'ChooseDescWord', 'glasses', 'lenses', 'dorky glasses', 'geeky lenses')
 		$pc_descWordy['vision'] = 'cheap, utilitarian glasses'
 		$glass = ' You wear silly glasses in a cheap frame.'
-		glassvnesh = 10
 	else
 		glass = 0
 		$glass = ''
-		glassvnesh = 0
 	end
 end
 
@@ -884,22 +912,18 @@ if $ARGS[0] = 'legs':
     if pcs_leghair <= 0:
 		$pc_desc['legs'] = func($this, 'ChooseDescWord', 'smooth', 'silky', 'soft')
 		$pc_descWordy['legs'] = 'soft and silky-smooth'
-		legkoef = 0
 		$pcs_leghair = 'You have smooth legs.'
 	elseif pcs_leghair <= 3:
 		$pc_desc['legs'] = func($this, 'ChooseDescWord', 'slightly scratchy', 'faintly stubbly')
 		$pc_descWordy['legs'] = 'slightly rough, invisibly-stubbled'
-		legkoef = 3
 		$pcs_leghair = 'You can''t see any hair, but your legs feel rough to the touch.'
 	elseif pcs_leghair <= 6:
 		$pc_desc['legs'] = func($this, 'ChooseDescWord', 'somewhat hairy', 'lightly-furred')
 		$pc_descWordy['legs'] = 'lightly-furred, soft-haired'
-		legkoef = 6
 		$pcs_leghair = 'You have light and just barely visible hair on your legs.'
 	else
 		$pc_desc['legs'] = func($this, 'ChooseDescWord', 'hairy', 'unshaven', 'ungroomed')
 		$pc_descWordy['legs'] = 'hairy, unshaven'
-		legkoef = 9
 		$pcs_leghair = 'Your legs are hairy.'
 	end
 end
@@ -1183,8 +1207,26 @@ if $ARGS[0] = 'hair':
 	end
 
 	!! A pair of ready-made long strings for writers to pull from for descriptions
-	$pc_des['hair'] = '<<$pc_desc[''hair status'']>>, <<$pc_desc[''hair length'']>> <<$pc_desc[''hair colour'']>> <<$pc_descWordy[''hair texture'']>>'
+	$pc_desc['hair'] = '<<$pc_desc[''hair status'']>>, <<$pc_desc[''hair length'']>> <<$pc_desc[''hair colour'']>> <<$pc_descWordy[''hair texture'']>>'
 	$pc_descWordy['hair'] = '<<$pc_desc[''hair status'']>>, <<$pc_descWordy[''hair length'']>> <<$pc_descWordy[''hair texture'']>> of <<$pc_descWordy[''hair colour'']>>'
 end
 
+if $ARGS[0] = 'appearance':
+	if pcs_apprnc = -10:
+		$pcs_apprnc = 'Your looks are even worse than terrible. It''s god-awful. No one wants to see or talk to you and people avoid you at any cost.'
+	elseif pcs_apprnc < 20:
+		$pcs_apprnc = 'Your looks are terrible. People try to avoid looking and talking to you.'
+	elseif pcs_apprnc < 60:
+		$pcs_apprnc = 'You''re a wallflower. Hardly anyone notices you.'
+	elseif pcs_apprnc < 120:
+		$pcs_apprnc = 'You have good looks. Men and women check you out when they think you aren''t looking.'
+	elseif pcs_apprnc < 160:
+		$pcs_apprnc = 'You''re unquestionably gorgeous. Men constantly get caught staring at you by their girlfriends.'
+	elseif pcs_apprnc < 200:
+		$pcs_apprnc = 'You have a simply stunning appearance. Other girls are a bit jealous and guys constantly check you out.'
+	else
+		$pcs_apprnc = 'Your appearance is divine! No one is able to take his or her eyes off of you.'
+	end
+end
+
 --- body_desc ---------------------------------

+ 0 - 639
locations/body_shape.qsrc

@@ -1,639 +0,0 @@
-# body_shape
-
-!!vhips = derived from salo in body_shape
-!!vhtmp = slows the change to vhips in body_shape
-!!wratio = waist to hips ratio set in body_shape
-!!bratio = band to waist ratio set in body_shape
-!!hratio = hip to height ratio set in body_shape
-!!vofat = used as a place to put extra salo at extreme high values (i.e. really, really fat) set in body_shape
-!!nbsize = starts at a set genetic bust size, but can be adjusted down if salo drops too low
-!!magicf2b = set in body_shape for the fat moved to bust
-!!genbsize = the set genetic bust size
-!!salocatnow = the current category of salo
-!!salocatlast = the previous category of salo
-!!magf2bdo = flag for magic bust increase; 0, ready; 1, do it; 2, ask; 3, no
-!!mgf2bnocnt = used to count the number of times a bust increase was turned down and stop asking after 3
-!!magtarcup = set in the dream code as the target cup size 
-!!btwarn = used to flag if to display the gaining/losing weight message when bathing
-!!salolast = used when doing a soft rest to control the cycling of the main code
-!!sftrstflag = used to prevent a code chunk from firing on a soft reset
-!!Image set variables
-!! bodset = body image and descriptor control variable, used to indicate which image and descriptor set is in use
-!! $bodimgsets[x] = body shape descriptors, tens place is the set (using bodset), 0 - 7 the descriptors (using salocatnow), 8 filler, 9 is the folder name
-!! bdsetlock = flag to indicate set control override, 0 is use the formula to pick a set, 1 is use a fixed set
-!! fixbodset = the identification number of the fixed image set
-!! bodsetcnt = the number of sets present
-!! imgset6ovr[x] and imgset7ovr[x] = a flag to indicate that an image set (x) has its own image 6 and/or 7
-!! extended lash functionality; pcs_lashes = n are: {2, largest natural size}, {3, with temporary false lashes on or basic 2D lash extensions}, {4, with ornate false lashes on or lavish 4D extensions}, {5, with extremely ornate, 6D-style extensions} - xerya
-
-if $ARGS[0] = '':
-	!!This controls the gradual change in stat to -buf
-	if strenbuf > pcs_stren: strenbuf -= 1
-	if strenbuf < pcs_stren: strenbuf += 1
-	if vitalbuf > pcs_vital: vitalbuf -= 1
-	if vitalbuf < pcs_vital: vitalbuf += 1
-	if agilbuf > pcs_agil: agilbuf -= 1
-	if agilbuf < pcs_agil: agilbuf += 1
-
-	!!All the ratios were rounded to 2 digits and there are divide 100s at the final calc points
-	!!Waist to hip ratio
-
-	wrtemp = ((2 * vitalbuf + strenbuf + agilbuf) /4)
-
-	!!	Primary wratio handling
-	if wrtemp < 11:
-		wratio = 85 + (11 - (vitalbuf + strenbuf + agilbuf)/3)
-	elseif wrtemp < 20:
-		wratio = 85
-	elseif wrtemp < 35:
-		wratio = 85 - (wrtemp - 20) / 3
-	elseif wrtemp < 55:
-		wratio = 80 - (wrtemp - 35) / 4
-	elseif wrtemp < 80:
-		wratio = 75 - (wrtemp - 55) / 5
-	elseif wrtemp >= 80:
-		wratio = 70
-	end
-
-	!!	High stat value edge case handling
-	if (vitalbuf + strenbuf + agilbuf) /3 > 100: wratio -= ((vitalbuf + strenbuf)/2 - agilbuf)/5
-
-	!!	This is the oops and high stat gone overboard handling
-	if wratio < 65: wratio = 65
-
-	killvar 'wrtemp'
-
-	!!For band to waist ratio
-	brtemp = (2 * strenbuf + vitalbuf + agilbuf) /4
-
-	if brtemp < 10:
-		bratio = 105
-	elseif brtemp =< 23:
-		bratio = 106
-	elseif brtemp =< 80:
-		bratio = 106 + (brtemp - 23) / 3
-	else
-		bratio = 125
-	end
-
-	killvar 'brtemp'
-
-	!!For hip to height ratio which is used to set the center point
-	hrtemp = (2 * agilbuf + vitalbuf + strenbuf) /4
-
-	if hrtemp < 35:
-		hratio = 60
-	elseif hrtemp < 45:
-		hratio = 59
-	elseif hrtemp < 60:
-		hratio = 58
-	elseif hrtemp < 80:
-		hratio = 57
-	else
-		hratio = 56
-	end
-
-	killvar 'hrtemp'
-
-	!!Salo Handling; the first part is because during a reset fat is not used and should be cleared
-	if sftrstflag = 1 or cheatNoFat = 1:
-		fat = 0
-	else
-		if fat > (17 + vitalbuf / 25): salo += 1 & fat = 0
-		if fat < (-2 - (vitalbuf / 10)): salo -= 1 & fat = 0
-	end
-
-	!!This is the salo cap for the weight approximation
-	if salo > 250: salo = 250
-		
-	!!This calculates the current salo category; ranges are 20 points, seemed to balance best if the range is x10 the hip devisor
-	:salocatloop
-	if salo < 10:
-		salocatnow = 0
-	else
-		salocatnow = 1 + (salo - 10) / 20
-	end
-
-	!!This resets the genetic bust size (genbsize) when the cheat is used to reduce breast size (maybe other things later)
-	if titreduc = 1:
-		killvar 'titreduc'
-		if genbsize > nbsize:
-			genbsize = 2 + nbsize - nbsize mod 5
-		end
-	end
-
-	!!This controls the movement of salo to/from bust in order of precedence
-	if salobustdo = 0 and nbsize < genbsize and salocatnow > 2:
-		if sftrstflag = 0:'<b>Your breasts seem fuller.</b>'
-		nbsize += 1
-		salo -= 3
-		salobustdo = 1
-		jump 'salocatloop'
-	end
-
-	if salobustdo = 0 and magf2bdo = 1 and salocatnow > salocatlast and pcs_mana >= manamax / 2 and magikDostup = 0:
-		if sftrstflag = 0:'<b>Your breasts seem fuller.</b>'
-		magicf2b += 1
-		salo -= 3
-		salobustdo = 1
-		if magicf2b >= 2 + magtarcup * 5: magf2bdo = 0
-		if pcs_magik < 20:
-			pcs_mana -= 2000 / pcs_magik
-		else
-			mana -= 100
-		end
-		jump 'salocatloop'
-	end
-
-	if salobustdo = 0 and salocatnow < 2 and salocatlast >= 2 and magicf2b > 0 and magikDostup = 0:
-		if sftrstflag = 0:'<b>Your breasts seem to be getting smaller.</b>'
-		magicf2b -= 1
-		salo += 3
-		salobustdo = 1
-		magf2bdo = 1
-		jump 'salocatloop'
-	end
-
-	if salobustdo = 0 and salocatnow < 1 and salocatlast >= 1 and nbsize > 0:
-		if sftrstflag = 0:'<b>Your breasts seem to be getting smaller.</b>'
-		nbsize -= 1
-		salo += 3
-		salobustdo = 1
-		jump 'salocatloop'
-	end
-
-	!!This sets which image set is to be used when the override is not set
-	if bdsetlock = 0:
-		if (knowpreg = 1 or (preg = 1 and thinkpreg = 1) or (preg = 1 and PregChem > 3600)):
-			bodset = 3
-		elseif strenbuf >= 70:
-			bodset = 2
-		elseif strenbuf <= 40:
-			bodset = 0
-		else
-			bodset = 1
-		end
-	else
-		bodset = fixbodset
-	end
-
-	!!This is if a Succubus has salo < 1
-	if succubusflag = 1 and salo < 1:
-		sucexcess -= 1
-		salo += 3
-	end
-
-	!!This is if salo is still < 1
-	if salo < 1:
-		if fat >= 1:
-			salo = 1
-			fat -= 1
-		elseif fat <= 0 and pcs_stren + pcs_vital > 0:
-			stren_deg -= 1000
-			vital_deg -= 1000
-			salo = 1
-		else
-			if Enable_nogameover = 0:
-				over = 3
-				gt 'gameover'
-				exit
-			else
-				pl '<font color=red><B>You starved to death, but Cheat Mode keeps you Alive.</B></font>'
-				salo = 1
-			end
-		end
-	end
-
-	killvar 'tempvct' & killvar 'salobustdo'
-
-	!!This is the hip calcs, 80 is the center of the current max-min range (10 - 130)
-	vhtmp = (salo - 80) / 2
-	
-	if vhips > vhtmp: vhips -= 1
-	if vhips < vhtmp: vhips += 1
-	!!	Because a reset should be updating hip size instantly (this set is a bit redundant anyway)
-	if sftrstflag = 1: vhips = vhtmp
-
-	if (pcs_hgt * hratio) / 100 + vhips > (pcs_hgt * 72) / 100:
-		vofat = ((pcs_hgt * hratio) / 100 + vhips - (pcs_hgt * 72) / 100) / 2
-		vhips -= vofat * 2
-	end
-
-	!!This will trigger the warning notices in the bathing code (the +/- 12 should always be +/- 11 + the max change to salo w/ fat)
-	if salolast > salo and salo <= 12 + (20 * (salocatnow - 1)): btwarn = 1
-	if salolast < salo and salo >= (20 * (salocatnow + 1)) - 12: btwarn = 2
-
-	!!This will trigger the dream for the option to use magic to increase bust
-	!!Three nos at the dream will lock it out (1 yes resets the count)
-	if pcs_magik >= 5 and MagikDostup = 0 and magf2bdo = 0:
-		if salolast < salo and salo >= (20 * (salocatnow + 1)) - 11 and tits < 10:
-			if mgf2bnocnt < 3:
-				magf2bdo = 2
-			else
-				magf2bdo = 3 & killvar 'mgf2bnocnt'
-			end
-		end
-	end
-
-	!!This is to deal with the possibility that salocatnow changed by more than 1 (fat burners, vitamins, plastic surgery, etc.)
-	if salocatnow < salocatlast: salocatlast -= 1
-	if salocatnow > salocatlast: salocatlast += 1
-
-	!!This is for use in the warning code and as part of the reset routines
-	if salolast > salo: salolast -= 1
-	if salolast < salo: salolast += 1
-
-	!!Setting the pcs_apprnc bonus based on fat and strength
-	bmi_calc = FUNC('body_shape', 'bmicalc')
-	bodykoef = FUNC('body_shape', 'setbodykoef')
-
-	!!This is to clean up unused variables
-	killvar 'normbuffpick' & killvar 'nrmbfpckct'
-	killvar 'vmeat' & killvar 'vfat' & killvar 'Kves' & killvar 'krost'
-	killvar 'koefvesbt' & killvar 'koefbt'
-end
-
-if $ARGS[0] = 'setbodykoef':
-	!!Setting the pcs_apprnc bonus based on fat and strength
-
-	if bmi_calc < 16:
-		!! severely underweight
-		tempbodykoef = 30
-    elseif bmi_calc < 19:
-		!! underweight
-		tempbodykoef = 65
-    elseif bmi_calc < 25:
-		!! healthy weight
-		tempbodykoef = 85
-    elseif bmi_calc < 30:
-		!! overweight
-		tempbodykoef = 75
-    elseif bmi_calc < 35:
-		!! moderately obese
-		tempbodykoef = 45
-    elseif bmi_calc < 40:
-		!! severely obese
-		tempbodykoef = 25
-    elseif bmi_calc < 45:
-		!! very severely obese
-		tempbodykoef = 5
-    else
-		!! morbidly obese
-		tempbodykoef = 0
-    end
-
-	if strenbuf >= 80:
-		tempbodykoef += 8
-	elseif strenbuf >= 60:
-		tempbodykoef += 10
-	elseif strenbuf >= 40:
-		tempbodykoef += 8
-	elseif strenbuf >= 20:
-		tempbodykoef += 5
-	else
-		tempbodykoef += 2
-	end
-
-	!!This modifies bodykoef for high or low salo values
-	if salocatnow = 0 or salocatnow >= 7:
-		tempbodykoef -= 8
-	elseif salocatnow = 1 or salocatnow = 6:
-		tempbodykoef -= 4
-	end
-
-	if vofat > 0: tempbodykoef -= vofat
-
-	result = tempbodykoef
-
-	killvar 'tempbodykoef'
-end
-
-if $ARGS[0] = 'bmicalc':
-	result = 10000 * (30 + salo / 2 + (pcs_hgt - 170) * 7 / 10) / (pcs_hgt * pcs_hgt)
-end
-
-if $ARGS[0] = 'bmiadjust':
-	tempValue = ARGS[1] & !!value to be adjusted
-	tempadjbmi_calc = ARGS[2] & !!bmi_calc
-
-	if tempadjbmi_calc < 16:
-		!! severely underweight
-		tempValue = tempValue * 50 / 100
-    elseif tempadjbmi_calc < 19:
-		!! underweight
-		tempValue = tempValue * 95 / 100
-    elseif tempadjbmi_calc < 25:
-		!! healthy weight
-		!! normal bonus
-    elseif tempadjbmi_calc < 30:
-		!! overweight
-		tempValue = tempValue * 95 / 100
-    elseif tempadjbmi_calc < 35:
-		!! moderately obese
-		tempValue = tempValue * 80 / 100
-    elseif tempadjbmi_calc < 40:
-		!! severely obese
-		tempValue = tempValue * 55 / 100
-    elseif tempadjbmi_calc < 45:
-		!! very severely obese
-		tempValue = tempValue * 50 / 100
-    else
-		!!morbidly obese
-		tempValue = tempValue * 40 / 100
-    end
-
-	result = tempValue
-	killvar 'tempValue'
-	killvar 'tempadjbmi_calc'
-end
-
-if $ARGS[0] = 'softreset':
-	!!This is for use in immediately updating shape if something has caused a large change in salo, primarily fat burners and plastic surgery
-	sftrstflag = 1
-	:resetloop
-	if salo ! salolast:
-		if gmstrtflag = 1: salobustdo = 1
-		gs 'body_shape'
-		jump 'resetloop'
-	end
-	!!Updates pcs_apprncbase after a reset
-	gs 'body_shape', 'basebeautycalc', 1
-	!!Clears the warning and reset status flags if they were set
-	sftrstflag = 0
-	btwarn = 0
-end
-
-if $ARGS[0] = 'hardreset':
-	!!This is primarily for canceling out "dounspell" and setting salo to whatever value will result in the current hip size then balancing everything out.
-	!!Also could be built in as a means to in-game undo "dounspell", other than the cheat.
-	if dounspell = 1 and dounsplkil > 0:
-		salo = 12
-		fat = 0
-		agilbuf = pcs_agil & strenbuf = pcs_stren & vitalbuf = pcs_vital
-		salobustdo = 1 & sftrstflag = 1 & normbuffpick = -1
-		gs 'body_shape'
-		salo = (pcs_hips * 2) - ((pcs_hgt * hratio) / 50) + 80
-		if salo < 10:
-			salocatnow = 0
-		else
-			salocatnow = 1 + (salo - 10) / 20
-		end
-		salocatlast = salocatnow
-		salolast = salo
-		vhtmp = (salo - 80) / 2
-		vhips = vhtmp
-		if genbsize = 0 and nbsize > 0:
-			If nbsize >= 27:
-				genbsize = 27
-			else
-				genbsize = 2 + nbsize - nbsize mod 5
-			end
-		elseif genbsize = 0 and nbsize = 0 and silicone >= 20:
-			genbsize = 12 & nbsize = 12 & silicone -= 10
-		end
-		sftrstflag = 0 & normbuffpick = 0 & btwarn = 0 & magf2bdo = 0
-		killvar 'dounsplkil'
-		newbdsp = 1
-		dounspell = 0
-		gs 'body_shape', 'basebeautycalc', 1
-		gs 'body_shape'
-		gs 'stat'
-	else
-		'If you''re seeing this, something odd happened. Please make a bug report that the body shape hard reset improperly fired and what you were doing.'
-	end
-end
-
-if $ARGS[0] = 'initial':
-	!!	Sets the genetic bust size if it was not set in the start routines
-	if genbsize = 0:
-		genbsize = 12 & nbsize = 12
-	else
-		nbsize = genbsize
-	end
-	agilbuf = pcs_agil & strenbuf = pcs_stren & vitalbuf = pcs_vital
-	normbuffpick = -1 & gmstrtflag = 1
-	!!	Calling soft reset will cause the main code to cycle up to the starting value of salo
-	gs 'body_shape', 'softreset'
-	!!	This sets/resets the controler variables
-	salocatlast = salocatnow
-	normbuffpick = 0 & magf2bdo = 0
-	killvar 'gmstrtflag'
-	newbdsp = 1
-	!!	This does all the body shape setting before the first stat call
-	pcs_hips = (pcs_hgt * hratio) / 100 + vhips
-	pcs_waist = (pcs_hips * wratio) / 100 + vofat
-	pcs_band = (pcs_waist * bratio) / 100 + vofat
-	pcs_bust = (pcs_waist * bratio) / 100 + nbsize + magicf2b + silicone
-	pcs_cupsize = pcs_bust - pcs_band
-	if pcs_cupsize <= 5:
-		tits = 0
-		$titsize = 'AA cup'
-	elseif pcs_cupsize <= 10:
-		tits = 1
-		$titsize = 'A cup'
-	elseif pcs_cupsize <= 15:
-		tits = 2
-		$titsize = 'B cup'
-	elseif pcs_cupsize <= 20:
-		tits = 3
-		$titsize = 'C cup'
-	elseif pcs_cupsize <= 25:
-		tits = 4
-		$titsize = 'D cup'
-	elseif pcs_cupsize <= 30:
-		tits = 5
-		$titsize = 'E cup'
-	elseif pcs_cupsize <= 35:
-		tits = 6
-		$titsize = 'F cup'
-	elseif pcs_cupsize <= 40:
-		tits = 7
-		$titsize = 'G cup'
-	elseif pcs_cupsize <= 45:
-		tits = 8
-		$titsize = 'H cup'
-	elseif pcs_cupsize <= 50:
-		tits = 9
-		$titsize = 'I cup'
-	elseif pcs_cupsize <= 55:
-		tits = 10
-		$titsize = 'J cup'
-	else
-		tits = 11
-		$titsize = 'K cup'
-	end
-		
-	!!pcs_weight: Svetas weight in kg 
-	!!Optimal Weight for a 170cm sveta (BMI: 20.76): 60 salo / 60kg
-	!!This is an approximation, so that a sveta with a different height has the same BMI for the same salo values.
-	!!The default height of 170 cm is used as a starting point for the approximation. The BMI deviates by 0.06 for a deviation of 10cm and 0.4 for a deviation of 20cm. 
-	
-	pcs_weight = 30 + salo / 2 + (pcs_hgt - 170) * 7 / 10
-	
-	!!Do not remove (julzor)
-	!!This is the old more complex function, but it doesn''t work correctly.
-	!!This variable is actually only used ONCE (except for the BMI calculation), when stripping, to see if you fall off the pole from being too heavy. I am reluctant to touch it, since the math is not explained. Maybe later.
-	!!Weight = (height in cm x bottom of average weight in kilos for a 170cm female / 170cm + (hip modifier + 2 x overrun fat)/4 + cup size
-	
-	!!pcs_weight = (pcs_hgt * 62 / 170) + (vhips + (vofat * 2)) / 4 + tits
-	
-	!!BMI Calculation
-	bmi_calc = FUNC('body_shape', 'bmicalc')
-	
-	!!BMI Descriptions
-	if bmi_calc < 16:
-		$bmi_desc = 'You are severely underweight.'
-	elseif bmi_calc >= 16 and bmi_calc < 19:
-		$bmi_desc = 'You are underweight'
-	elseif bmi_calc >= 19 and bmi_calc < 25:
-		$bmi_desc = 'You have a normal, healthy weight.'
-	elseif bmi_calc >= 25 and bmi_calc < 30:
-		$bmi_desc = 'You are overweight.'
-	elseif bmi_calc >= 30 and bmi_calc < 35:
-		$bmi_desc = 'You are moderately obese.'
-	elseif bmi_calc >= 35 and bmi_calc < 40:
-		$bmi_desc = 'You are severely obese.'
-	elseif bmi_calc >= 40 and bmi_calc < 45:
-		$bmi_desc = 'You are very severely obese.'
-	elseif bmi_calc >= 45:
-		$bmi_desc = 'You are morbidly obese.'
-	end
-end
-
-if $args[0] = 'basebeautycalc':
-	if pcs_lashes <= 0: pcs_lashes = 0
-	pcs_HeadBonus = FUNC('body_shape', 'calcHeadBonus')
-	tempAttributeBonus = FUNC('body_shape', 'calcAttributeBonus')
-	pcs_apprncbase = FUNC('body_shape', 'basebeautycalc2', ARGS[1])
-
-	if ARGS[1] = 0:
-	!!	This is the rate of change limiter
-		if pcs_apprncbase > vneshtemp:
-			if pcs_apprncbase - 5 > vneshtemp:
-				pcs_apprncbase -= 5
-			elseif pcs_apprncbase - 3 > vneshtemp:
-				pcs_apprncbase -= 3
-			else
-				pcs_apprncbase -= 1
-			end
-		elseif pcs_apprncbase < vneshtemp:
-			if pcs_apprncbase + 5 < vneshtemp:
-				pcs_apprncbase += 5
-			elseif pcs_apprncbase + 3 < vneshtemp:
-				pcs_apprncbase += 3
-			else
-				pcs_apprncbase += 1
-			end
-		end
-		killvar 'vneshtemp'
-	end
-
-	killvar 'pcs_HeadBonus'
-	killvar 'tempAttributeBonus'
-end 
-
-if $ARGS[0] = 'calcHeadBonus':
-
-	!!	Setting Eyelashes bonus
-	if pcs_lashes <= 0:
-		resnicbonus = 0
-	elseif pcs_lashes = 1:
-		resnicbonus = 2
-	elseif pcs_lashes = 2:
-		resnicbonus = 5
-	elseif pcs_lashes = 3:
-		resnicbonus = 7
-	elseif pcs_lashes = 4:
-		resnicbonus = 8
-	elseif pcs_lashes = 5:
-		resnicbonus = 10
-	else
-		resnicbonus = 0		
-	end
-	resnicbonus = FUNC('body_shape', 'bmiadjust', resnicbonus, bmi_calc)
-
-	!!	Setting Eye Size bonus
-	if pcs_eyesize = 1:
-		glarazbonus = 1
-	elseif pcs_eyesize = 2:
-		glarazbonus = 3
-	elseif pcs_eyesize = 3:
-		glarazbonus = 2
-	else
-		glarazbonus = 0
-	end
-	glarazbonus = FUNC('body_shape', 'bmiadjust', glarazbonus, bmi_calc)
-
-	!!	Setting the Lip size bonus
-	if pcs_lip = 0:
-		lipbonus = -2
-	elseif pcs_lip = 1:
-		lipbonus = 0
-	elseif pcs_lip = 2:
-		lipbonus = 3
-	elseif pcs_lip = 3:
-		lipbonus = 5
-	else
-		lipbonus = 3
-	end
-	lipbonus = FUNC('body_shape', 'bmiadjust', lipbonus, bmi_calc)
-	
-	teethcalc = (5 * pcs_teeth)
-	if teethcalc < 0: teethcalc = FUNC('body_shape', 'bmiadjust', teethcalc, bmi_calc)
-
-	result = resnicbonus + glarazbonus + lipbonus - teethcalc
-
-end
-
-if $ARGS[0] = 'calcAttributeBonus':
-	tempAttributeBonus = (pcs_agil / 10) + (pcs_vital / 10)
-
-	result = FUNC('body_shape', 'bmiadjust', tempAttributeBonus, bmi_calc)
-	killvar 'tempAttributeBonus'
-end
-
-	!!This is the calculation for the base appearance if calling for testing always set ARGS[1] to 1
-if $args[0] = 'basebeautycalc2':
-	!!ARGS[1] reset pcs_apprncbase
-	!! result of pcs_HeadBonus
-	!! result of calcAttributeBonus
-
-
-	!!	Setting vidagebonus
-	vidagebonus = 100
-	if vidage < 20: vidagebonus = 60 + (2 * vidage)
-	if vidage > 30: vidagebonus = 160 - (2 * vidage)
-
-	!!	Preforming the calculation
-	skincalc = (pcs_skin * 2 / 5)
-	vneshtemp = vidagebonus * (skincalc + bodykoef + tempAttributeBonus + pcs_HeadBonus) / 100
-
-	!!	pcs_skin = skin condition, corrected to a 0 to 40 range; bodykoef set in main body_shape; pcs_teeth is missing teeth or cosmetically improved teeth (-1)
-
-	!!	This is the first limiter
-		!!if vneshtemp > 100: vneshtemp = 100
-
-	!!	This adds the supernatural pcs_apprnc bonus; currently Bimbo and Succubus
-	vneshtemp += supnatvnesh
-
-	!!	This is for use when a reset is called for by setting args[1] = 1
-	if args[1] = 1: pcs_apprncbase = vneshtemp & killvar 'vneshtemp'
-
-	result = pcs_apprncbase
-
-	!!	This is to clean up variables only used here
-		!!do not kill vneshtemp here it gets killed in basebeautycalc
-	killvar 'skincalc'
-	killvar 'vidagebonus'
-	killvar 'tempHeadBonus'
-	killvar 'tempAttributeBonus'
-
-	!!	This is to unload old variables
-	killvar 'CloNaturalBeauty'
-	killvar 'CloBaseBeauty'
-	killvar 'skin'
-	killvar 'bimbobeauty'
-end
-
---- body_shape ---------------------------------
-

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


+ 5 - 96
locations/cikl.qsrc

@@ -341,18 +341,6 @@ gs 'fertility', 'birth_control'
 
 !!------------------------------------------------------------------------------------------------------------
 
-if lashair ! 1:
-	pcs_leghair += 1
-	!!Pubic hair growth at 1/2 per night
-	if pcs_pubes['growth'] > 1:
-		pcs_pubes['growth'] = 0
-		pcs_pubes += 1
-	end
-	pcs_pubes['growth'] += 1
-end
-
-if age < 18 and rand (0,2) = 0 and pcs_leghair > 0: pcs_leghair -= 1
-
 if pcs_breath = 1:pcs_breath = 0
 
 if cheatNoEat = 1 and dounspell = 1:fat += 15
@@ -530,40 +518,6 @@ gs 'fame', 'deg'
 gs 'traits', 'overnight'
 
 
-!!------------------------------------------------------------------------------------------------------------
-!!	Maruda hair mod
-!!------------------------------------------------------------------------------------------------------------
-!! Max. Hair length 600mm, or 60cm, which should be somewhere in the lower back area.
-!! Hair grows 1mm each day, it takes 20 months (1 month = 30 days) to regrow the hair from 0.
-if pcs_hairlng < 1001 and hairgrowcht = 0:pcs_hairlng += 1
-
-if pcs_haircol ! nathcol:
-	dyefade -=1
-	if dyefade < 0: dyefade = 0
-	if dyefade > 0 and dyefade < 7: dyevmod = 5
-	if dyefade = 0: dyevmod = 15
-end
-
-!!pubic hair colouring
-!! pcs_pubecol = natural colour
-!! pcs_pubecol[1] = flag for saveupdate
-!! pcs_pubecol[2] = actual colour
-!! pcs_pubecol[3] = countdown timer for dye
-
-if pcs_pubecol[2] ! pcs_pubecol:
-	pcs_pubecol[3] -=1
-	if pcs_pubecol[3] < 0: pcs_pubecol[3] = 0
-	if pcs_pubecol[3] = 0: pcs_pubecol[2] = pcs_pubecol
-end
-
-if pcs_pubes < 2: pcs_pubecol[2] = pcs_pubecol
-
-if hscrunch > 0:
-	hscrunchrand = rand(1, 100)
-
-	if hscrunchrand <= 8:hscrunch -= 1
-end
-
 !!------------------------------------------------------------------------------------------------------------
 
 !! Clothing wear and tear
@@ -640,32 +594,6 @@ elseif painpub = 1:
 	end
 end
 
-!!---- Calculation of lash extension degradation and false lash removal
-if pcs_lashes > 2:
-	if lashextensionstyle >= 1:
-		lashextensionduration -= 1
-		if lashextensionduration >= 1 and lashextensionduration <= 4:
-			'It''s time for you to do your maintenance on your lash extensions; you should go to the salon or you risk growing them all out.'
-		end
-		if lashextensionduration <= 0:
-			'You waited too long to do maintenance on your lash extensions; there''s too little there to notice or work with at this point.'
-			pcs_lashes = pcs_naturallashes
-			killvar 'lashextensionstyle'
-			killvar 'lashextensionduration'
-			killvar 'lashextensionnew'
-		end
-	end
-	if false_lashes > 0:
-		false_lashes -= 1
-		if false_lashes = 0:
-			'Your false lashes came off in the night; there''s no recovering them now.'
-			pcs_lashes = pcs_naturallashes
-		else
-			'Somehow, your lashes managed to stay attached throughout the night. You might be able to get away with wearing them another day straight.'
-		end
-	end
-end
-
 
 prezikProver += 1
 if pirs_pain_ton > 0:pirs_pain_ton -= 1
@@ -699,28 +627,10 @@ inhib_flr = inhib_lvl
 
 gs 'stat_sklattrib', 'daycall'
 
-if dounspell = 1:
-	if strenbuf > 90:
-		strenbuf -= 2
-	elseif strenbuf > 80:
-		strenbuf -= 1
-	end
-
-	if vitalbuf > 90:
-		vitalbuf -= 2
-	elseif vitalbuf > 80:
-		vitalbuf -= 1
-	end
-
-	if strenbuf > pcs_stren: strenbuf -= 1
-	if strenbuf < pcs_stren: strenbuf += 1
-	if vitalbuf > pcs_vital: vitalbuf -= 1
-	if vitalbuf < pcs_vital: vitalbuf += 1
-	if agilbuf > pcs_agil: agilbuf -= 1
-	if agilbuf < pcs_agil: agilbuf += 1
-else
-	gs 'body_shape'
-end
+!Update body measurements and base appearnce
+gs 'body', 'DailyUpdate'
+gs 'AppearanceSystem', 'UpdateBaseAppearnce'
+gs 'body_desc'
 
 
 if husband > 0 and husbandrink ! 11:husbandrink = rand(0, 10)
@@ -1317,8 +1227,7 @@ elseif mentats_dose > 1:
 	mentats_dose = 0
 end
 
-!!Appearance base calculation call
-gs 'body_shape', 'basebeautycalc'
+
 
 !! vovan, from 1.2.5
 hunters_check = 0

+ 3 - 7
locations/city_clinic.qsrc

@@ -225,7 +225,7 @@ if $ARGS[0] = 'start':
 						*clr & cla
 						money -= zubpay
 						minut += 60
-						gs 'body_shape', 'basebeautycalc', 1
+						gs 'AppearanceSystem', 'UpdateBaseAppearnce'
 						gs 'stat'
 						if pcs_teeth > 0:
 							pcs_teeth = 0
@@ -243,7 +243,7 @@ if $ARGS[0] = 'start':
 						*clr & cla
 						karta -= zubpay
 						minut += 60
-						gs 'body_shape', 'basebeautycalc', 1
+						gs 'AppearanceSystem', 'UpdateBaseAppearnce'
 						gs 'stat'
 						if pcs_teeth > 0:
 							pcs_teeth = 0
@@ -1424,7 +1424,6 @@ if $ARGS[0] = 'lipPlus':
 	minut += 60
 	pcs_lip += 1
 	money -= 25000
-	gs 'body_shape', 'basebeautycalc', 1
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/city/residential/clinic/cosmeticsur.jpg"></center>'
 	'The surgeon has you strip, put on a gown and lie down on the table. He gives you a mask and tells you: "Just breathe in deeply... we''ll be done before you know it."'
@@ -1438,7 +1437,6 @@ if $ARGS[0] = 'lipMin':
 	minut += 60
 	pcs_lip -= 1
 	money -= 30000
-	gs 'body_shape', 'basebeautycalc', 1
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/city/residential/clinic/cosmeticsur.jpg"></center>'
 	'The surgeon has you strip, put on a gown and lie down on the table. He gives you a mask and tells you: "Just breathe in deeply... we''ll be done before you know it."'
@@ -1452,7 +1450,6 @@ if $ARGS[0] = 'eyePlus':
 	minut += 60
 	pcs_eyesize += 1
 	money -= 90000
-	gs 'body_shape', 'basebeautycalc', 1
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/city/residential/clinic/cosmeticsur.jpg"></center>'
 	'The surgeon has you strip, put on a gown and lie down on the table. He gives you a mask and tells you: "Just breathe in deeply... we''ll be done before you know it."'
@@ -1466,7 +1463,6 @@ if $ARGS[0] = 'eyeMin':
 	minut += 60
 	pcs_eyesize -= 1
 	money -= 90000
-	gs 'body_shape', 'basebeautycalc', 1
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/city/residential/clinic/cosmeticsur.jpg"></center>'
 	'The surgeon has you strip, put on a gown and lie down on the table. He gives you a mask and tells you: "Just breathe in deeply... we''ll be done before you know it."'
@@ -1481,7 +1477,7 @@ if $ARGS[0] = 'lyposuction':
 	salo -= 40
 	if salo < 11: salo = 11
 	money -= 75000
-	gs 'body_shape', 'softreset'
+	gs 'body', 'softreset'
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/city/residential/clinic/cosmeticsur.jpg"></center>'
 	'The surgeon has you strip, put on a gown and lie down on the table. He gives you a mask and tells you: "Just breathe in deeply... we''ll be done before you know it."'

+ 40 - 36
locations/dachain.qsrc

@@ -1,21 +1,18 @@
 # dachain
 
-$loc = 'dachain'
-$locM = 'dachain'
-$menu_loc = 'dachain'
-
-gs 'stat'
-gs 'themes', 'indoors'
-
-if $args[0] = '':
+if $args[0] = 'start':
 	$location_type = 'private'
-	$loc_arg = ''
-	$locM_arg = ''
-	$menu_arg = ''
+	$loc = 'dachain'
+	$loc_arg = 'start'
+	$locM = 'dachain'
+	$locM_arg = 'start'
+	$menu_loc = 'dachain'
+	$menu_arg = 'start'
 	menu_off = 0
 	internetS = internet
 
 	killvar '$locclass'
+	gs 'themes', 'indoors'
 	*clr & cla
 	gs 'stat'
 	'<center><b><font color="maroon">Cottage</font></b></center>'
@@ -41,6 +38,20 @@ if $args[0] = '':
 	if hour >= 6 and hour <= 20 and etoexhib = 12:'Leave in <a href="exec:gt ''etoexhib'', ''pos11''">garden in lingerie and robe.</a>'
 	if hour >= 6 and hour <= 20 and etoexhib = 13 and temp ! daystart:'I wonder how to <a href="exec:gt ''etoexhib'', ''pos12''">garden</a>'
 
+	act 'Go outside':
+		if $clothingworntype ! 'nude':
+			minut += 5 & gt 'dachamy'
+		else
+			msg'<b><font color = red>You can''t leave the house naked! You need to get dressed first.</font></b>'
+			gt 'dachain', 'start'
+		end
+	end
+
+	act 'Go to the Bathroom':  gt 'dachain', 'dachabath'
+	act 'Go to the kitchen alcove': gt 'dachain', 'dachakit'
+	act 'Get in the bed': gt 'bed', 'start'
+	act 'Lie on the couch': gt 'divan', 'start'
+
 !!-------------------------------------------------------------------------------------------------------------------------------------
 !!------------------------------------------------------- Music related actions come here ---------------------------------------------
 !!-------------------------------------------------------------------------------------------------------------------------------------
@@ -50,13 +61,13 @@ if $args[0] = '':
 		act 'Place the guitar next to your desk': 
 			ml_guitar['carried'] = 0
 			$ml_guitar['location'] = $curloc
-			gt 'dachain', ''
+			gt 'dachain', 'start'
 		end
 	elseif ml_guitar['hasguitar'] and ml_guitar['carried'] = 0:
 		act 'Pick up the guitar':
 			ml_guitar['carried'] = 1
 			$ml_guitar['location'] = ''
-			gt 'dachain', ''
+			gt 'dachain', 'start'
 		end
 	end
 
@@ -144,7 +155,6 @@ if $args[0] = '':
 		end
 	end
 
-
 	!!Uploading recorded music if there are any not uploaded yet
 	if ml_uploadablemusic > 0 and internet > 0 and ml_online['account'] = 1:
 		if pcs_inhib < 30:
@@ -167,29 +177,18 @@ if $args[0] = '':
 		act 'Upload music': gt 'music_onlinemusic', 'uploadallmusic'
 	end
 
-	act 'Lie on the couch': gt 'divan', 'start'
-	act 'Go to the kitchen alcove': gt 'dachain', 'dachakit'
-	act 'Go to the Bathroom':  gt 'dachain', 'dachavann'
-	act 'Get in the bed': gt 'bed', 'start'
-
-	act 'Go outside':
-		if $clothingworntype ! 'nude':
-			minut += 5 & gt 'dachamy'
-		else
-			msg'<b><font color = red>You can''t leave the house naked! You need to get dressed first.</font></b>'
-			gt 'dachain'
-		end
-	end
-
 	if curr_home ! 3:
-		act 'Set this cottage as your main home':gs 'set_home', 3 & gt 'dachain'
+		act 'Set this cottage as your main home':gs 'set_home', 3 & gt 'dachain', 'start'
 	end
 end
 
 if $args[0] = 'dachakit':
 	$location_type = 'private'
+	$loc = 'dachain'
 	$loc_arg = 'dachakit'
+	$locM = 'dachain'
 	$locM_arg = 'dachakit'
+	$menu_loc = 'dachain'
 	$menu_arg = 'dachakit'
 	menu_off = 0
 	$locclass = 'kitr'
@@ -203,7 +202,7 @@ if $args[0] = 'dachakit':
 		'<center><img <<$set_imgh>> src="images/locations/suburban/cottage/dachakit1.jpg"></center>'
 	end
 	
-	act 'Go into the main room': gt 'dachain', ''
+	act 'Go into the main room': gt 'dachain', 'start'
 
 	if cltarelka > 0:
 		'<b><<cltarelka>></b> clean plates are stored in the cupboard.'
@@ -263,14 +262,17 @@ if $args[0] = 'dachakit':
 
 end
 
-if $args[0] = 'dachavann':
-	$loc_arg = 'dachavann'
-	$locM_arg = 'dachavann'
-	$menu_arg = 'dachavann'
+if $args[0] = 'dachabath':
+	$loc = 'dachain'
+	$loc_arg = 'dachabath'
+	$locM = 'dachain'
+	$locM_arg = 'dachabath'
+	$menu_loc = 'dachain'
+	$menu_arg = 'dachabath'
 	menu_off = 0
 	$location_type = 'bathroom'
 	$bathtype = 'bathtub shower'
-	killvar '$locclass'
+
 	*clr & cla
 	gs 'stat'
 	'<center><b><font color="maroon">Cottage Bathroom</font></b></center>'
@@ -279,9 +281,11 @@ if $args[0] = 'dachavann':
 	else
 		'<center><img <<$set_imgh>> src="images/locations/suburban/cottage/dachavan1.jpg"></center>'
 	end
+
+	act 'Go into the main room': gt 'dachain', 'start'
+
 	gs'selfplay','suction_dildo'
 	gs 'din_van', 'private'
-	act 'Go into the main room': gt 'dachain', ''
 end
 
 --- dachain ---------------------------------

+ 1 - 1
locations/dachamy.qsrc

@@ -17,7 +17,7 @@ gs 'stat'
 
 act 'Exit the alley':minut += 15 & gt 'dachi'
 
-act 'Go into the house':gt 'dachain'
+act 'Go into the house':gt 'dachain', 'start'
 
 if sunWeather = 1:
 	if pcs_stam >=15 or (pcs_stam >= 10 and bookYog + obruch > 0):

+ 3 - 3
locations/din_van.qsrc

@@ -36,7 +36,7 @@ $showerdin = {
 			'Unfortunately, your false lashes don''t make it through the shower.'
 			false_lashes = 0
 			pcs_lashes = pcs_naturallashes
-			gs 'body_shape', 'basebeautycalc', 1
+			gs 'AppearanceSystem', 'UpdateBaseAppearnce'
 		end
 	end
 }
@@ -837,7 +837,7 @@ $basin = {
 			pcs_lashes = pcs_naturallashes
 			false_lashes = 0
 			minut += 5
-			gs 'body_shape', 'basebeautycalc', 1
+			gs 'AppearanceSystem', 'UpdateBaseAppearnce'
 			act 'Finish':menu_off = 0 & gt $loc, $loc_arg
 		end
 	end
@@ -1090,7 +1090,7 @@ if $ARGS[0] = 'private':
 		dynamic $toymanage
 	end
 
-	'<a href="exec:msg ''<center>Your weight is <<pcs_weight>> kg<br>Your body mass index (BMI) is <<bmi_calc>>.<br><<$bmi_desc>></center>''">Check weight on the scales</a>'
+	'<a href="exec:msg ''<center>Your weight is <<pcs_weight>> kg<br>Your body mass index (BMI) is <<pcs_bmi>>.<br><<$bmi_desc>></center>''">Check weight on the scales</a>'
 
 	gs 'din_van', 'prvt_pee'
 

+ 2 - 2
locations/etoexhib.qsrc

@@ -437,7 +437,7 @@ if $ARGS[0] = 'pos13':
 
 			'When it was over, you picked your clothes up, put them on and went back into the house.'
 
-			act 'Next':gt 'dachain'
+			act 'Next':gt 'dachain', 'start'
 		end
 	end
 end
@@ -484,7 +484,7 @@ if $ARGS[0] = 'pos14':
 
 			'When it was over, you picked your clothes up, put them on and ran into the house.'
 
-			act 'Next':gt 'dachain'
+			act 'Next':gt 'dachain', 'start'
 		end
 	end
 end

+ 10 - 10
locations/foto.qsrc

@@ -299,12 +299,12 @@ if $ARGS[0] = 'studio':
 			elseif pcs_skin < 40:
 				'"Girl, your face is covered in acne unless you improve your appearance there is no chance of working here."'
 				act 'Leave':minut += 1 & gt 'city_center'
-			elseif bmi_calc >= foto_weight and foto_weight > 0:
+			elseif pcs_bmi >= foto_weight and foto_weight > 0:
 				'You walk up to the front desk and find the same man who interviewed you previously. He looks up at you from his computer as you approach and frowns.'
 				'Before you can say anything, he sternly says, "Girl, I told you to lose weight, not put it on! Now get out of here until you slim down some!"'
 				'The comment turns your face bright red and you stop in your tracks. He stares at you angrily until you slowly start to back up and head towards the door.'
 				act 'Leave':minut += 1 & gt 'city_center'
-			elseif bmi_calc < foto_weight and foto_weight > 0:
+			elseif pcs_bmi < foto_weight and foto_weight > 0:
 				gt'foto','interview2'
 			elseif fotofakepassport = 1 and age < 18:
 				'You walk up to the front desk and find the same man who "interviewed" you previously. He looks up at you from his computer as you approach.'
@@ -489,7 +489,7 @@ if $ARGS[0] = 'interview2':
 		gs 'willpower', 'skill', 'pcs_inhib', 'hard'
 	end
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
-	if bmi_calc < foto_weight:
+	if pcs_bmi < foto_weight:
 		'You walk up to the front desk and find the same man who interviewed you previously. He looks up at you from his computer as you approach.'
 		'"Hmm..." he says appraisingly. "You look like you lost some weight since the last time I saw you."'
 		'"Yes I did!" You smile brightly at him.'
@@ -539,8 +539,8 @@ if $ARGS[0] = 'interview2':
 			gs 'clothing', 'strip_all'
 			gs 'stat'
 			'<center><video autoplay loop src="images/locations/city/citycenter/photo/strip1.mp4"></video><video autoplay loop src="images/locations/city/citycenter/photo/strip2.mp4"></video></center>'
-			if bmi_calc < foto_weight and foto_weight > 0:
-				foto_weight = bmi_calc
+			if pcs_bmi < foto_weight and foto_weight > 0:
+				foto_weight = pcs_bmi
 				if foto_weight < 25: fotofit = 1
 				'You strip off your clothing for the photographer once again, holding your breath and hoping that you''ve slimmed down enough to work here now.'
 				'Just like before, he circles you, asks you to adjust your pose for him, carefully inspecting every aspect of your nude body.'
@@ -559,7 +559,7 @@ if $ARGS[0] = 'interview2':
 					'You nod in understanding.'
 				end
 				act'Continue':
-					if bmi_calc < 25 or hotcat >= 6:
+					if pcs_bmi < 25 or hotcat >= 6:
 						gt'foto','job_offer'
 					else
 						gt'foto','job_decline'
@@ -574,7 +574,7 @@ if $ARGS[0] = 'interview2':
 				'He circles you slowly, occasionally asking you to adjust your pose slightly, carefully inspecting every aspect of your nude body. Your <<$pcs_eyecol>> eyes framed by your <<$pcs_haircol>> hair, your <<$pc_desc[''lip size'']>>lip, your <<$titsize>> breasts, your <<$skin1>> <<$pcs_tan>> skin, your thighs, even your <<$pcdesc_pubes>> pussy...'
 				'He spends several minutes doing this without saying anything. Several people walk by while he does, including several beautiful and nude women who glance at you, whispering to each other before moving on.'
 				act'Continue':
-					if bmi_calc < 25 or hotcat >= 6:
+					if pcs_bmi < 25 or hotcat >= 6:
 						gt'foto','job_offer'
 					else
 						gt'foto','job_decline'
@@ -595,7 +595,7 @@ if $ARGS[0] = 'interview2':
 			'He spends several minutes doing this without saying anything. Several people walk by while he does, including several beautiful and nude women who glance at you, whispering to each other before moving on.'
 			'You blush furiously at the attention, both his and the other models.'
 			act'Continue':
-				if bmi_calc < 25 or hotcat >= 6:
+				if pcs_bmi < 25 or hotcat >= 6:
 					gt'foto','job_offer'
 				else
 					gt'foto','job_decline'
@@ -627,7 +627,7 @@ if $ARGS[0] = 'job_decline':
 			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 			'You glumly pick your clothes up off the floor and get dressed before leaving. As you do, you stop at the door and look back in.'
 			'<i>Is this it for me? Am I ever going to be able to lose enough weight to work here?</i>'
-			foto_weight = bmi_calc
+			foto_weight = pcs_bmi
 			foto_cupsize = tits
 			gs 'clothing', 'wear_last_worn'
 			gs 'underwear', 'wear'
@@ -640,7 +640,7 @@ if $ARGS[0] = 'job_decline':
 			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 			'You nod at him, feeling a bit dejected but more determined than ever. You get dressed with purpose and head to the door. As you do, you think to yourself...'
 			'<i>I will be able to do this! I''ll get in shape and I''ll work here one day! I''m not going to lose my shot at this!</i>'
-			foto_weight = bmi_calc
+			foto_weight = pcs_bmi
 			foto_cupsize = tits
 			gs 'clothing', 'wear_last_worn'
 			gs 'underwear', 'wear'

+ 1 - 1
locations/gadhouse.qsrc

@@ -305,7 +305,7 @@ if $ARGS[0] = 'main':
 	*nl
 	'A fairly simple cottage in the village of Gadukino which your grandparents call home. In the main room there is a huge <a href="exec:gt ''wardrobe'', ''start''">wardrobe</a> (where you can choose outfits and organize your clothing), and a <a href="exec:gad = 1 & gt ''bed'', ''start''">bed</a> where you can rest. The bed is more comfortable than it looks.'
 	'There is an old <a href="exec:gt ''TV'',''gad''">television</a> in the living room. It''s positioned next to a body length <a href="exec:gt ''mirror'', ''start''">mirror</a>.'
-	'You can check your weight on your grandma''s old mechanical <a href="exec:msg ''<center>Your weight is <<pcs_weight>> kg<br>Your body mass index (BMI) is <<bmi_calc>>.<br><<$bmi_desc>></center>''">scales</a>.'
+	'You can check your weight on your grandma''s old mechanical <a href="exec:msg ''<center>Your weight is <<pcs_weight>> kg<br>Your body mass index (BMI) is <<pcs_bmi>>.<br><<$bmi_desc>></center>''">scales</a>.'
 
 	if hour < 8:
 		temp = rand(0,9)

+ 8 - 8
locations/gschool_grounds.qsrc

@@ -519,10 +519,10 @@ if $ARGS[0] = 'SchoolRun':
 		wait 725
 
 		begminus = 0
-		if bmi_calc > 25: 
-			begminus = ((bmi_calc - 25)*4)
-		elseif bmi_calc < 18:
-			begminus = ((25 - bmi_calc)*6)
+		if pcs_bmi > 25: 
+			begminus = ((pcs_bmi - 25)*4)
+		elseif pcs_bmi < 18:
+			begminus = ((25 - pcs_bmi)*6)
 		end
         begresult = pcs_run - begminus
 		
@@ -631,10 +631,10 @@ if $ARGS[0] = 'SchoolRun2':
 		wait 725
 
 		begminus = 0
-		if bmi_calc > 25: 
-			begminus = ((bmi_calc - 25)*4)
-		elseif bmi_calc < 18:
-			begminus = ((25 - bmi_calc)*6)
+		if pcs_bmi > 25: 
+			begminus = ((pcs_bmi - 25)*4)
+		elseif pcs_bmi < 18:
+			begminus = ((25 - pcs_bmi)*6)
 		end
         begresult = pcs_run - begminus
 		

+ 132 - 468
locations/intro_city.qsrc

@@ -66,10 +66,12 @@ if $ARGS[0] = 'start':
 	$start_type = 'nt'
 	NTstart = 1
 	
-	gt 'intro_city', '2'
+	gt 'intro_city', 'city_intro'
 end
 
-if $ARGS[0] = '2':
+if $ARGS[0] = 'city_intro':
+	!! Intro to starting city
+	!!variables for apartment living
 	pcs_hairlng = 100
 	!!Default Names
 	$pcs_firstname = 'Svetlana'
@@ -92,6 +94,17 @@ if $ARGS[0] = '2':
 	if $pcs_nickname = '':$pcs_nickname = '<<$temp_nickname>>'
 	killvar '$temp_nickname'
 
+	*clr & cla
+	!!pic of apartment or Gazelle?
+	'The big day has finally arrived! Your family piled into your stepfather''s Gazelle pickup and you all traveled from your hometown, Pavlovsk, to the big city of St. Petersburg. Today is the day you move into your own apartment and start this new phase of your life.'
+	'You think back to your school days and what kind of student you were...'
+
+	act 'Continue': gt 'intro_city', 'vlad_intro'
+end
+
+if $ARGS[0] = '2':
+	$loc = 'intro_city'
+	$loc_args = '2'
 !!	Just hair and eye color here for now; the dialog will be update as more options are added
 	'<center><b><font color = maroon>CHARACTER CUSTOMIZATION</font></b></center>'
 	'<center><b>Allows you to alter hair and eyes, use to match fixed profile picture if in use.</b></center>'
@@ -100,494 +113,145 @@ if $ARGS[0] = '2':
 	'You are fairly tall.'
 	*nl
 	'<center>Customize your:</center>'
-	'<center><a href="exec:gs ''intro_city'', ''hair''"><img src="images/system/1_openings/shared/icon_hair.png"></a> <a href="exec:gs ''begin'', ''eyes''"><img src="images/system/1_openings/shared/icon_eye.png"></a></center>'
+	'<center><a href="exec:gs ''intro_customization'', ''hair''"><img src="images/system/1_openings/shared/icon_hair.png"></a> <a href="exec:gs ''intro_customization'', ''eyes''"><img src="images/system/1_openings/shared/icon_eye.png"></a></center>'
 	
-	act 'Done': gt 'intro_city', '3'
+	act 'Done': gt 'intro_city', 'city_intro'
 end
 
-if $ARGS[0] =  '3':
-	*clr & cla
-	menu_off = 1
+if $ARGS[0] = 'vlad_intro':
 	gs 'intro_initialization'
 	gs'stat'
-	'<center><b><h4><font color=#FF00CC><<"<<$pcs_firstname>> [<<$pcs_nickname>>] <<$pcs_lastname>>">></font></h4></b></center>'
-	*pl '<center><img src="<<FUNC(''$face_image'')>>"></center>'
-	'You close the cabinet in front of you, displaying a mirror as you prepare yourself to tell your mother that you are leaving for good.'
-	'You look at your new lease while thinking to yourself: <font color=#FF00CC>It is time for me to finally be able to live my own life. I can finally make my own decisions, choose my own path and I can finally bring guys home without having to hear...</font> You suddenly hear banging on the bathroom door with your mother shouting, "<<$pcs_firstname>> what on earth is taking you so long? We need to get going!" You take a deep breath then turn to walk out of the restroom.'
+	!! Intro to your stepfather
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big28.jpg"></center>'
+	!!basic desc of Vlad, maybe a preset is used somewhere in game already? If not already in the intro (I think it is.)
+	'Having spent almost an hour in the cramped truck, you jump out as soon as you arrive. Vlad gets out and stretches a bit, before heading to the back of the Gazelle to start unloading your stuff.'
 
-	act 'Walk out of the bathroom':
-		*clr & cla
-		minut += 7
-		gs'stat'
-		'<center><b><font color=#00FF9C><<"Natasha [Mother] <<$pcs_lastname>>">></font></b></center>'
-		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/prost1.jpg"></center>'
-		'You step out of the bathroom to a scorn from your mother. "You don''t even have your sweater on. You know how cold it is going to be today." Your mother grabs your sweater then quickly forces you into it while pulling you toward the door where you place your coat on and leave the apartment. Your mother walks you down the side walk while you ask her, "What is so important that I have to leave this early?"'
-		*nl
-		'Your mother responds, "What''s important is your future and I''m not going to have a daughter who sits at home all day doing god know what. We are getting you a job in the pharmacy here in Pavlovsk. I need to keep a close eye on you or else you will get into trouble." You recoil in shock as you think to yourself, <font color=#FF00CC>I can''t stay at home with my parents anymore. I need to tell her now.</font>'
-
-		act 'Tell her that you are moving out':
-			*clr & cla
-			minut += 3
-			gs'stat'
-			'<center><b><font color=#00FF9C><<"Natasha [Mother] <<$pcs_lastname>>">></font></b></center>'
-			'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_Natasha_2.jpg"></center>'
-			'You pull away from her then say, "<<$npc_nickname[''A29'']>>... I''m moving out." Your mother grabs your hand then begins pulling you forward while saying, "Stop playing around, I promised Luda that we would be there before seven and we are already running late." You pull away again. "I mean it this time. I have rented a new apartment and purchased train tickets." You mother crosses her arms and says, "You did what? How could you afford a new home? What kind of favors have you been performing behind my back?" You reply, "No favors. I have been working for aunt Luda and I have been saving up my earnings."'
-			*nl
-			'Your mother''s voice gets louder as she responds, "So aunt Luda has been working you behind my back and you spent your money on a new apartment instead of college? HAVE YOU LOST YOUR MIND!?" You recoil for a second before mustering your courage, "Maybe I don''t want to go to college. Maybe i just want to live my own life." Your mother pinches your ear as she says, "You ungrateful brat! Have I not done everything for you? I raised you in my home. I kept you fed. I protected you from the boys who would just take advantage of you. I even put up with your occasional attitude while showing you the right way to live your life."'
-
-			act 'Tell her how you truly feel':
-				*clr & cla
-				minut += 3
-				gs'stat'
-				'<center><b><h4><font color=#FF00CC><<"<<$pcs_firstname>> [<<$pcs_nickname>>] <<$pcs_lastname>>">></font></h4></b></center>'
-				*pl '<center><img src="<<FUNC(''$face_image'')>>"></center>'
-				'You quickly reply, "You''re smothering me! You won''t let me make my own decisions. You don''t let me make my own mistakes. You won''t let me live my own life. I need to be free of you. I want to live for myself. I want to go out and meet new people, instead of staying at home doing homework and chores. I want to go out and meet boys. Maybe get a boyfrie..." Your mother cuts you off, "Those boys will only use you. You are too gullible. You need to find a good boy in church. I would have introduced you to a nice boy named..." You cut her off, "You see? You always make the choices for me. I never have any say in the matter. This is why I need to leave."'
-				*nl
-				'Your mother replies, "You don''t realise how dangerous boys can be! They can rape and even kill you!" You quickly respond, "You''re right! I don''t know. How can I ever know anything about boys when you work so hard to keep me away from them? You have no idea what how hard it is to be the only girl without a date on Valentines day, to be the only girl who couldn''t go to the prom because her mother kept her home for "Her own safety"" You can feel tears streaming down your face as you continue screaming, "I CAN NEVER MAKE NEW FRIENDS! I CAN NEVER TAKE RISKS AND I CAN NEVER FALL IN LOVE! WHY CAN''T I FALL IN LOVE MOTHER!? WHY DO YOU HATE ME SO MUCH!? WHY DON''T YOU LEAVE ME ALONE!?" Your mother stares at you in shock as you both stare at each other in silence.'
-				'<center><b><font color=#00FF9C><<"Natasha [Mother] <<$pcs_lastname>>">></font></b></center>'
-				'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_Natasha_2.jpg"></center>'
-
-				act 'Say goodbye':
-					*clr & cla
-					minut += 12
-					gs'stat'
-					'<center><b><h4><font color=#FF00CC><<"<<$pcs_firstname>> [<<$pcs_nickname>>] <<$pcs_lastname>>">></font></h4></b></center>'
-					*pl '<center><img src="<<FUNC(''$face_image'')>>"></center>'
-					'You take a few seconds to wipe your tears away before saying, "I''m leaving mother and for once in my life, I am going to be happy." You look toward your mother in blind hatred. "And you... can''t control me... anymore." You then turn around and walk back to your parents''s apartment to collect your things. You walk into the bedroom you share with your older sister Anya where your bags are laid out. You open one of them up to check if you have packed everything while you hear your mother arrive back home.'
-					*nl
-					'You peek out the doorway while feeling your heart pounding, not wanting to get into another argument, you try to check your things quietly while you mother calls someone on the phone. As soon as you finish your packing, you quietly walk toward the front door before hearing your mother leave the kitchen with the phone still in her hand.'
-					'<center><b><font color=#00FF9C><<"Natasha [Mother] <<$pcs_lastname>>">></font></b></center>'
-					'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_Natasha_2.jpg"></center>'
-
-					act 'Turn to face her':
-						*clr & cla
-						minut += 2
-						gs'stat'
-						'<center><b><font color=#00FF9C><<"Natasha [Mother] <<$pcs_lastname>>">></font></b></center>'
-						'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_Natasha_2.jpg"></center>'
-						'Your mother takes one look at you then says, "I''ll call you back." before hanging up the phone. She then walks up to you and says, "If you are really committed to this then go, but when the boys use you and break your heart then don''t say that I didn''t warn you." She then opens the door and holds it open for you. You begin walking out before you hear her say, "And if you get knocked up by someone you don''t even know then don''t bring any babies back here expecting me to take care of them. You have made your choice and I hope to god that you don''t ruin your life. May god watch over you." Not wanting to have another argument, you turn and walk away toward the train station.'
-
-						act 'Head to the train station':
-							*clr & cla
-							minut += 10
-							gs'stat'
-							'<center><img <<$set_imgh>> src="images/locations/pavlovsk/trainstation/vokzal.jpg"></center>'
-							'You arrive at the train station then walk toward your train, still thinking about the argument that you just had, wondering if you were justified in what you have said until you end up bumping into a man, causing you to drop your bags. The man leans forward to pick up your bags as he says, "Oh how clumsy of me. I should have payed better attention. I''m sorry about that. Here let me carry your bags for you." You give him a nod and he gives you a smile before lifting your bags. He then asks, "What is your name?" You lightly bite your lip, still feeling nervous around men.'
-							'<center><b><font color=#0060FF><<"?">></font></b></center>'
-							'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/nightout/date/albert1.jpg"></center>'
-
-							act 'Tell him your name':
-								*clr & cla
-								minut += 3
-								gs'stat'
-								'<center><b><h4><font color=#FF00CC><<"<<$pcs_firstname>> [<<$pcs_nickname>>] <<$pcs_lastname>>">></font></h4></b></center>'
-								*pl '<center><img src="<<FUNC(''$face_image'')>>"></center>'
-								'You give him a smile as you say, "My name is <<$pcs_firstname>>. It is nice to meet you." Then man returns the smile as he replies, "The pleasure is all mine, but where are my manners? My name is Albert." You respond, "Well hello Albert, what brings you here?" Albert replies, "I came here to pick up my sister, she is taking a trip to the city to start her track career. She has been training months for this and I am always happy to support her when she needs." You nod then say, "That is so sweet of you. Are you waiting for her now?"'
-								*nl
-								'He replies, "Yes but I arrived very early, she won''t be here for another 30 minutes or so. Are you waiting for someone?" You shake your head, "No I''m just heading to my new home." Albert then asks, "Would you like a ride? The city is not far, I could drive there and back before my sister arrives." You take a few seconds to think to yourself, <font color=#FF00CC>Should I go with him? He is handsome and sweet, but <<$npc_nickname[''A29'']>> did say that I was too trusting. Should I take a chance or play it safe?</font>'
-								'<center><b><font color=#0060FF><<"Albert Sokolov">></font></b></center>'
-								'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/nightout/date/albert3.jpg"></center>'
-
-								act 'Accept Albert''s offer':gt 'preNT', '4'
-
-								act 'Decline Albert''s offer':
-									*clr & cla
-									minut += 2
-									gs'stat'
-									'<center><b><font color=#0060FF><<"Albert Sokolov">></font></b></center>'
-									'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/nightout/date/albert1.jpg"></center>'
-									'Not wanting to take a chance of being abused or kidnapped, you calmly say, "That is very sweet of you to offer but I''d prefer taking the train." Albert understandingly nods his head before responding, "I understand, riding on a train can be relaxing sometimes." Albert then motions you to follow him as he says, "We should get you to your train before you end up missing it." You give him an approving nod before following him to the train. Albert places your bags on the ground next to the train then places his hands in his pockets as he says, "I hope that you have everything set from here."'
-									*nl
-									'You nod as you reply, "I do, thank you very much Albert. I hope that everything works out for your sister." Albert replies, "Thank you <<$pcs_firstname>> and I hope that everything goes well with your new place." Albert then bows his head as he turns around then walks away. You pick up your bags then look around for an isolated seat, hoping not to be disturbed.'
-
-									act 'Ride the train':gt 'preNT', 'Train'
-								end
-							end
-
-							act 'Remain silent':
-								*clr & cla
-								minut += 2
-								gs'stat'
-								'<center><b><font color=#0060FF><<"?">></font></b></center>'
-								'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/nightout/date/albert2.jpg"></center>'
-								'Still feeling shy around men, you remain silent, not knowing what to say until he says, "It''s alright, you don''t need to tell me. I am a stranger after all." He then motions you to follow him as he says, "Let''s get you to your train. I wouldn''t want you to be late." You give him an approving nod before following him to the train. The man places your bags on the ground next to the train then places his hands in his pockets as he says, "I hope that you have everything set from here." You nod as you reply, "I do, thank you mister." The man bows his head as he turns around then walks away. You pick up your bags then look around for an isolated seat, hoping not to be disturbed.'
-
-								act 'Remain silent':gt 'preNT', 'Train'
-							end
-						end
-					end
-				end
-			end
-		end
-	end
+	act 'Check Kolka': gt 'intro_city', 'kolka_intro'
 end
 
-if $ARGS[0] =  '4':
+if $ARGS[0] = 'kolka_intro':
+	!! Intro to Kolka
 	*clr & cla
-	minut += 2
-	gs'stat'
-	'<center><b><font color=#0060FF><<"Albert Sokolov">></font></b></center>'
-	'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/nightout/date/albert3.jpg"></center>'
-	'<font color=#FF00CC>I can''t be shy my whole life. I need to take some chances. I need to prove my mother wrong.</font> You confidently nod as you say, "That would be great. Thank you." Albert returns the nod as he responds, "It''s no trouble at all." He then motions you to follow him before leading you to his car, where he packs your bags into the trunk and opens the door for you before sitting down and firing up the engine.'
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big34.jpg"></center>'
+	!!basic desc of Kolka, maybe a preset is used somewhere in game already? If not already in the intro (I think it is.)
+	'Your brother, caught up in the excitement of seeing the city, tries to slide past Vlad unnoticed but is called back to help unload. He sighs and shuffles his feet a bit before turning around to help his dad get your stuff.'
+	'Giving him a smile to encourage him, you thank him for helping. Your effort pays off, his chest puffs out a bit as he starts to help his father.'
+
+	act 'Head inside': gt 'intro_city', 'anya_intro'
+end
+
+if $ARGS[0] = 'anya_intro':
+	!! Intro to Anya
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big33.jpg"></center>'
+	!!basic desc of Anya, maybe a preset is used somewhere in game already? If not already in the intro (I think it is.)
+	'Your sister comes up to you, links her arm with yours, and pulls you forward. "Come on, <<$pcs_nickname>>! I want to see this place."'
+	'Already knowing the answer, you ask anyway "Why don''t you have your own apartment then?"'
+	'"I''m comfortable where I am right now. When I''m ready, maybe I will."'
+	'Rolling your eyes, you let her keep pulling on your arm.'
+
+	act 'Enter the apartment': gt 'intro_city', 'apartment_intro'
+end
+
+if $ARGS[0] = 'apartment_intro'
+	$temp_nickname = input('<center>What name do you address your mother by?<br>Mother (default), Mum, Mom, Mama, etc.</center>')
+	if $temp_nickname ! '':$npc_nickname['A29'] = '<<$temp_nickname>>'
+	killvar '$temp_nickname'
+
+	!! Intro to apartment
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/locations/city/residential/apartment/home/korr.jpg"></center>'
+	'Once you get inside you look around, already trying to decide where things should go. Anya sees this, and laughing, drags you through each room to check them out.'
+	'By the time you''re done Kolka and Vladimir have started bringing boxes in. "Your <<$npc_nickname[''A29'']>> is staying outside for a bit to keep an eye on your stuff. I don''t think she likes the neighborhood much," he says with a shrug.'
+	'Both you and Anya pick up the boxes they set down and take them to the rooms they were labeled for, while your brother and stepfather bring it all inside.'
+
+	act 'Greet <<$npc_nickname[''A29'']>>': gt 'intro_city', 'mom_intro'
+end
+
+if $ARGS[0] = 'mom_intro':
+	!! Intro to Mom - answer sets relationship level
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big29.jpg"></center>'
+	'Your <<$npc_nickname[''A29'']>> comes inside finally, carrying food she made ahead of time to feed everybody.'
+	'"<<$pcs_nickname>>, this is a pretty rough neighborhood. You need to be really careful of those boys outside. The sooner University starts the better, so you can get out of here. I don''t know why you couldn''t just wait until summer ended to move to the city."'
+	act 'I will be fine (neutral response)':
+		gs 'npc_relationship', 'set', 'A29', '50'
+		*clr & cla
+		'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big29.jpg"></center>'
+		'"Everything will be fine, <<$npc_nickname[''A29'']>>. I will look into university prices and decide then."'
+		'She gives you a hug before going to the kitchen to start setting up everybody with a plate of food.'
 
-	act 'Sit back and relax':
+		act 'Have lunch': gt 'intro_city', 'lunch_break'
+	end
+	act 'Give it a rest (angry response)':
+		gs 'npc_relationship', 'set', 'A29', '30'
 		*clr & cla
-		minut -= 2
-		gs'stat'
-		'<center><b><h4><font color=#FF00CC><<"<<$pcs_firstname>> [<<$pcs_nickname>>] <<$pcs_lastname>>">></font></h4></b></center>'
-		*pl '<center><img src="<<FUNC(''$face_image'')>>"></center>'
-		'You rest your head on the headrest while looking out the window. Albert begins driving as you relax. You both continue driving until the car suddenly hits a pothole causing you to bounce up, slamming your knee on the glove compartment. Albert slows down then says, "Where did that thing come from? I hope that didn''t shake you up." he gives you a quick smile before turning back to the road. You start leaning back when you feel something resting on your leg. You look down to see the glove compartment open with something on top of a few letters.'
-		'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/nightout/date/car.jpg"></center>'
-
-		act 'Take a closer look':
-			*clr & cla
-			minut -= 2
-			gs'stat'
-			'<center><img <<$set_imgh>> src="images/system/1_openings/5_nit/1.jpg"></center>'
-			'You immediately recognize it as a firearm. You suddenly feel your heart sink as your thoughts race. <font color=#FF00CC>OH NO! Mother was right. I was too trusting. He is going to kidnap me isn''t he? What do I do? Do I take the gun? Is the safety on? I don''t know if I can even shoot it. Maybe I''m overreacting.</font> You carefully watch Albert while shaking until you see him reach toward his back and scratch his side, lifting his shirt just high enough for you to see something shiny. You look closer at it and realize that it is a police badge. You take a huge sigh of relief as you carefully close the glove compartment. You continue relaxing until you catch Albert, in the corner of your eye, staring at your legs.'
-			*nl
-			'You watch him at the corner of your vision while he continues to stare at your legs while you pretend not to notice. After a minute you notice him begin firmly rubbing on his crotch. You start feeling a little hot, not entirely sure why. <font color=#FF00CC>Why is it so hot all of a sudden? Maybe it is the way he is looking at me. He must really want me. He keeps rubbing that... Bulge. Maybe I should touch it for him. I bet his dick is big if his bulge is that big, but what if he doesn''t want it? That would be so embarrassing, but if he does want it then this is my chance to finally be with a real man, but am I ready?</font>'
-
-			gs 'willpower', 'hj', 'self'
-			if will_cost <= pcs_willpwr:
-				act 'Reach out for his crotch (<<will_cost>> Willpower)':
-					*clr & cla
-					gs 'willpower', 'pay', 'self'
-					minut -= 2
-					gs'stat'
-					'<center><img <<$set_imgh>> src="images/system/1_openings/5_nit/hj1.jpg"></center>'
-					'You can feel your heart pounding as you slowly reach out then begin lightly rubbing Albert''s crotch through his pants. To your surprise, he doesn''t seem to react, so you continue stroking it until you find the zipper of his pants then reach inside, feeling his really warm penis tensing up like a tree stump. You pull it out of his pants then begin firmly stroking it as Albert starts lightly moaning. You can feel your body heating up and your cheeks growing red as you think of how far you have gone. You continue stroking his dick until you feel his hand on the back of your head.'
-					*nl
-					'You look up at Albert to see a lustful look on his face. He moves his lips close to yours before sharing a passionate kiss for a few seconds until he pauses then turns around to see if any other cars are around before you feel his hand lightly pulling you down to his rock hard penis.'
-					'<center><video autoplay loop src="images/system/1_openings/5_nit/kiss.mp4"></video></center>'
-					gs 'arousal', 'hj', 5, 'dom'
-					gs 'stat'
-
-					gs 'willpower', 'bj', 'resist'
-					if will_cost <= pcs_willpwr:
-						act 'Continue jerking him (<<will_cost>> Willpower)':
-							*clr & cla
-							gs 'willpower', 'pay', 'resist'
-							guy += 1
-							minut += 4
-							gs'stat'
-							'<center><video autoplay loop src="images/system/1_openings/5_nit/hj2.mp4"></video></center>'
-							'Despite Albert''s intentions, you continue stroking his penis, feeling it occasionally throb in your hand. Albert lowers his hand from your head realizing that you aren''t going to suck his dick. Something about the way he just gave up to you makes you feel a sort of exhilarated rush while you think to yourself, <font color=#FF00CC>He just let go of me. He let me decide what to do. Mother always told me that men are all controlling pigs, but I feel in control here. His dick is mine to use as I see fit. His moans are mine to control. Ohh mother, how wrong you were about everything. This is my new life now. My time to choose who I can be with and what i can do. This man is at my mercy. I control his pleasure and I can choo...</font>'
-							gs 'arousal', 'hj', 5, 'dom'
-							gs 'stat'
-
-							act 'Continue':
-								*clr & cla
-								minut += 4
-								gs'stat'
-								'<center><video autoplay loop src="images/system/1_openings/5_nit/hj3.mp4"></video></center>'
-								'You suddenly see Alberts head jerk back as his cock begins throbbing in your hands. You feel a little nervous while you think to yourself, <font color=#FF00CC>What is going on? Is he in pain? Did i do something wrong? What is this warm liquid leaking out of his penis?</font> You slowly bring your hand to your face then smell the liquid and almost gag at the smell, as you quickly grab a nearby tissue and wipe some of the cum off of your hand, leaving your hand feeling sticky. You turn to Albert and see a satisfied smile on his face as he strokes your cheek then continues driving.'
-								gs 'cum_call', 'hands', 'Albert'
-								gs 'arousal', 'hj', 5, 'dom'
-								gs 'stat'
-								gs 'arousal', 'end'
-
-								act 'Lay back and relax':
-									cla
-									*clr
-									minut += 2
-									gs'stat'
-									'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/nightout/date/car.jpg"></center>'
-									'You lay back feeling very confident with yourself and after a few minutes of silence, the car stops and you realize that you have arrived at your building. Albert turns to your with a smile and says, "Here we are. I hope that you enjoyed the ride as much as I did." You can''t help but giggle a bit before replying, "I had a wonderful time. Thank you Albert." Albert chuckles before saying, "Anytime <<$pcs_firstname>>."'
-									*nl
-									'He then steps out of the car then heads to the trunk while you get out and begin stretching your legs. Albert brings out your bags then places them next to you before placing his hand on your hip then giving you a kiss on the cheek, followed by a wink. Albert returns to his car as you wave goodbye then turn to your new home.'
-									'<center><b><font color=#0060FF><<"Albert Sokolov">></font></b></center>'
-									'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/nightout/date/albert3.jpg"></center>'
-
-									act 'Walk toward your new home':
-										*clr & cla
-										minut += 4
-										if sound = 0:
-											if month >=11 and month <= 12 or month >=1 and month <=3:
-												if hour >= 8 and hour <= 23: PLAY 'sound/street2.mp3',30 & PLAY 'sound/street7.mp3',30 & PLAY 'sound/zima.mp3',30
-												if hour >= 0 and hour <= 7: PLAY 'sound/street_night.mp3',30 & PLAY 'sound/zima.mp3',30
-											else
-												if hour >= 8 and hour <= 23: PLAY 'sound/street2.mp3',30 & PLAY 'sound/street7.mp3',30 & PLAY 'sound/street_leto.mp3',30
-												if hour >= 0 and hour <= 7: PLAY 'sound/street_night_leto.mp3' & PLAY 'sound/street_night.mp3',30
-											end
-										end
-										gs'stat'
-										if month >= 11 or month <= 3:
-											if hour >= 8 and hour <= 21:
-												'<center><img <<$set_imgh>> src="images/locations/city/residential/streetw.jpg"></center>'
-											else
-												'<center><img <<$set_imgh>> src="images/locations/city/residential/streetwn.jpg"></center>'
-											end
-										else
-											if hour >= 8 and hour <= 21:
-												'<center><img <<$set_imgh>> src="images/locations/city/residential/street.jpg"></center>'
-											else
-												'<center><img <<$set_imgh>> src="images/locations/city/residential/street_night.jpg"></center>'
-											end
-										end
-										'You begin heading in the direction of your new home when you notice some gopniks harassing a woman. One of the gopniks is whistling at her while the other is lifting up her skirt. You try your best to ignore them as you continue toward you apartment when you suddenly trip over something. You reach down and pick it up realizing that it is a news paper. You take a quick moment to open it up then look through the job listings.'
-
-										act 'Look at the job listings':gt 'preNT', 'Listings'
-									end
-								end
-							end
-						end
-					else
-						act 'Continue jerking him (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-					end
-					act 'Suck his dick':
-						*clr & cla
-						minut -= 2
-						gs'stat'
-						'<center><img <<$set_imgh>> src="images/system/1_openings/5_nit/bj1.jpg"></center>'
-						'Realizing what he wants, you lower your head to his penis then light kiss the tip before looking up at him, as he gives you an approving nod, signalling you to continue. You wrap your lips around the tip then give it a light suck before rubbing it with your tongue. You enjoy the warmth of it in your mouth while you slide it in deeper. You begin thoroughly sucking his cock while he takes a quick look around to see if anyone is watching before he continues driving with his dick in your mouth. You can feel your underwear growing wet, causing you to think to yourself,'
-						*nl
-						'<font color=#FF00CC>Why am I so wet? Did I pee myself? Am I really doing this? Is this really happening? I''m sucking this man''s dick and I don''t even know him, but I feel so hot. I want more. I want him to put his dick inside of me. I want him so bad. What is wrong with me? i just met him...</font>'
-						'<center><video autoplay loop src="images/system/1_openings/5_nit/bj2.mp4"></video></center>'
-						gs 'arousal', 'bj', 5, 'sub'
-						gs 'stat'
-
-						act 'Continue':
-							*clr & cla
-							guy += 1
-							minut -= 2
-							gs'stat'
-							'<center><video autoplay loop src="images/characters/pavlovsk/school/boy/fedor/fedorev2/home/bedroom/sex/bj2.mp4"></video></center>'
-							'You suddenly feel his penis throbbing in your mouth, filling it with a warm liquid. <font color=#FF00CC>What is going on? what is this liquid? Did he pee or something? Should I spit it out? No I will get it all over his floor. I should just swallow it quickly.</font> You swallow the liquid and suddenly feel the sting as it goes down your throat. You try not to gag as you look up at Albert and see a very satisfied smile on his face as he lightly strokes your cheek. You slowly sit back in your seat embarrassed at what you just did and not knowing what to say to him.'
-							'<center><b><font color=#0060FF><<"Albert Sokolov">></font></b></center>'
-							'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/nightout/date/albert3.jpg"></center>'
-							gs 'cum_call', 'mouth', 'Albert'
-							gs 'arousal', 'bj', 5, 'sub'
-							gs 'stat'
-							gs 'arousal', 'end'
-
-							act 'Continue riding in silence':
-								*clr & cla
-								minut += 4
-								gs'stat'
-								'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/nightout/date/car.jpg"></center>'
-								'You lay back trying to relax while still feeling the sting of his cum in your mouth. After a few minutes of silence, the car stops and you realize that you have arrived at your building. Albert turns to your with a smile and says, "Here we are. I hope that you enjoyed the ride as much as I did." You can''t help but giggle a bit before replying, "I had a wonderful time. Thank you Albert." Albert chuckles before saying, "Anytime <<$pcs_firstname>>."'
-								*nl
-								'He then steps out of the car then heads to the trunk while you get out and begin stretching your legs. Albert brings out your bags then places them next to you before placing his hand on your hip then giving you a kiss on the cheek, followed by a wink. Albert returns to his car as you wave goodbye then turn to your new home."'
-								'<center><b><font color=#0060FF><<"Albert Sokolov">></font></b></center>'
-								'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/nightout/date/albert3.jpg"></center>'
-
-								act 'Walk toward your new home':
-									*clr & cla
-									minut += 4
-									if sound = 0:
-										if month >=11 and month <= 12 or month >=1 and month <=3:
-											if hour >= 8 and hour <= 23: PLAY 'sound/street2.mp3',30 & PLAY 'sound/street7.mp3',30 & PLAY 'sound/zima.mp3',30
-											if hour >= 0 and hour <= 7: PLAY 'sound/street_night.mp3',30 & PLAY 'sound/zima.mp3',30
-										else
-											if hour >= 8 and hour <= 23: PLAY 'sound/street2.mp3',30 & PLAY 'sound/street7.mp3',30 & PLAY 'sound/street_leto.mp3',30
-											if hour >= 0 and hour <= 7: PLAY 'sound/street_night_leto.mp3' & PLAY 'sound/street_night.mp3',30
-										end
-									end
-									gs'stat'
-									if month >= 11 or month <= 3:
-										if hour >= 8 and hour <= 21:
-											'<center><img <<$set_imgh>> src="images/locations/city/residential/streetw.jpg"></center>'
-										else
-											'<center><img <<$set_imgh>> src="images/locations/city/residential/streetwn.jpg"></center>'
-										end
-									else
-										if hour >= 8 and hour <= 21:
-											'<center><img <<$set_imgh>> src="images/locations/city/residential/street.jpg"></center>'
-										else
-											'<center><img <<$set_imgh>> src="images/locations/city/residential/street_night.jpg"></center>'
-										end
-									end
-									'You begin heading in the direction of your new home when you notice some gopniks harassing a woman. One of the gopniks is whistling at her while the other is lifting up her skirt. You try your best to ignore them as you continue toward you apartment when you suddenly trip over something. You reach down and pick it up realizing that it is a news paper. You take a quick moment to open it up then look through the job listings.'
-
-									act 'Look at the job listings':gt 'preNT', 'Listings'
-								end
-							end
-						end
-					end
-				end
-			else
-				act 'Reach out for his crotch (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-			end
-
-			act 'Pretend not to notice it':
-				*clr & cla
-				minut += 8
-				gs'stat'
-				'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/nightout/date/car.jpg"></center>'
-				'Not wanting to take a chance of offending him, you turn away then look out of the window while thinking to yourself, <font color=#FF00CC>So my new life is starting. My chance to try new things, but yet I don''t feel too confident. I want to be more daring, but I just hesitate too much. Will I ever be able to break out of my shell, or will I grow up to be just like my mother planned for me to be? Boring and normal.</font>'
-
-				act 'Continue':
-					*clr & cla
-					minut += 2
-					gs'stat'
-					'<center><b><h4><font color=#FF00CC><<"<<$pcs_firstname>> [<<$pcs_nickname>>] <<$pcs_lastname>>">></font></h4></b></center>'
-					*pl '<center><img <<$set_imgh>> src="<<FUNC(''$face_image'')>>"></center>'
-					'You notice your new building in front of you as the car stops and Albert says, "Wakey wakey, We''re here." He then steps out of the car and heads to the trunk while you get out of the car and begin stretching your legs. Albert places your bags down next to you then says, "I hope everything works for you." You reply, "Thank you for everything Albert and I hope everything works out with your sister too." Albert gives you an approving nob as he walks back to his car and you turn toward your new home.'
-					'<center><img <<$set_imgh>> src="images/shared/home/bedroom/dream/nightout/date/car.jpg"></center>'
-
-					act 'Walk toward your new home':
-						*clr & cla
-						minut += 4
-						if sound = 0:
-							if month >=11 and month <= 12 or month >=1 and month <=3:
-								if hour >= 8 and hour <= 23: PLAY 'sound/street2.mp3',30 & PLAY 'sound/street7.mp3',30 & PLAY 'sound/zima.mp3',30
-								if hour >= 0 and hour <= 7: PLAY 'sound/street_night.mp3',30 & PLAY 'sound/zima.mp3',30
-							else
-								if hour >= 8 and hour <= 23: PLAY 'sound/street2.mp3',30 & PLAY 'sound/street7.mp3',30 & PLAY 'sound/street_leto.mp3',30
-								if hour >= 0 and hour <= 7: PLAY 'sound/street_night_leto.mp3' & PLAY 'sound/street_night.mp3',30
-							end
-						end
-						gs'stat'
-						if month >= 11 or month <= 3:
-							if hour >= 8 and hour <= 21:
-								'<center><img <<$set_imgh>> src="images/locations/city/residential/streetw.jpg"></center>'
-							else
-								'<center><img <<$set_imgh>> src="images/locations/city/residential/streetwn.jpg"></center>'
-							end
-						else
-							if hour >= 8 and hour <= 21:
-								'<center><img <<$set_imgh>> src="images/locations/city/residential/street.jpg"></center>'
-							else
-								'<center><img <<$set_imgh>> src="images/locations/city/residential/street_night.jpg"></center>'
-							end
-						end
-						'You begin heading in the direction of your new home when you notice some gopniks harassing a woman. One of the gopniks is whistling at her while the other is lifting up her skirt. You try your best to ignore them as you continue toward you apartment when you suddenly trip over something. You reach down and pick it up realizing that it is a news paper. You take a quick moment to open it up then look through the job listings.'
-
-						act 'Look at the job listings':gt 'preNT', '5'
-					end
-				end
-			end
-		end
+		'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big29.jpg"></center>'
+		'"Just stop <<$npc_nickname[''A29'']>>! I''m an adult now, and I will do whatever I want with who I want!"'
+		'Her eyes flash in anger, but she doesn''t say anything. She goes to the kitchen to start setting up everybody with a plate of food.'
+
+		act 'Have lunch': gt 'intro_city', 'lunch_break'
+	end
+	act 'Don''t worry (loving response)':
+		gs 'npc_relationship', 'set', 'A29', '70'
+		*clr & cla
+		'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big29.jpg"></center>'
+		'"I know, don''t worry so much <<$npc_nickname[''A29'']>>. I will be very careful, I promise. It''s only for a few months."'
+		'She gives you a big hug before going to the kitchen to start setting up everybody with a plate of food.'
+
+		act 'Have lunch': gt 'intro_city', 'lunch_break'
 	end
 end
 
-if $ARGS[0] =  '5':
+if $ARGS[0] = 'lunch_break':
 	*clr & cla
-	minut += 2
-	gs'stat'
-	'<center><img <<$set_imgh>> src="images/system/1_openings/5_nit/2.jpg"></center>'
-	'Clothing Saleswoman at the marketplace (Residential Area).'
-	'Waitress at the Roadhouse (Residential Area).'
-	'Office Secretary at Titran-Express (City Center).'
-	'Salon Masseuse at Beauty Bar in the Galeria Mall (City Center).'
-	'Store Clerk at Pussy Cats in the Galeria Mall (City Center).'
-	'Fashion Model at Aphrodite Photography (City Center).'
-	'Mercy Clinic is looking for volunteers to help with elderly patients (City Industrial Region).'
-	'Stripper in the Red Light District (City Industrial Region).'
-
-	act 'Continue toward your apartment':
-		*clr & cla
-		music_loop = 0
-		close all
-		minut += 5
-		gs'stat'
-		'<center><b><font color="maroon">Corridor</font></b></center>'
-		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/korr.jpg"></center>'
-		'You begin heading to your apartment before opening the door to your new home. After entering your home, you hang up your jacket then place your bags down before walking up to the window and opening it, letting in the fresh air while taking a few moments to think to yourself: <font color=#FF00CC>So this is my new life. A life where I can make MY OWN decisions on how to live it. I can be whatever I want to be. I can be a waitress, a model, a secretary or even a stripper if I wanted to but... I don''t think that I have the courage to work a job like that, maybe I will feel more confident about that in the months to come.</font>'
-		*nl
-		'<font color=#FF00CC>Anyway I have a new city to explore and enough money for another two months of rent. I can look for a job or maybe stop by the mall for some new clothes... Although I have heard of a rather risque clothing shop in the city center, but there is no way that I would have enough confidence to wear such clothes.</font> You quickly shake your head before taking a deep breath, ready to start your new life.'
-		'<center><b><h4><font color=#FF00CC><<"<<$pcs_firstname>> [<<$pcs_nickname>>] <<$pcs_lastname>>">></font></h4></b></center>'
-		*pl '<center><img src="<<FUNC(''$face_image'')>>"></center>'
-
-		act 'Start your new life':
-			cla
-			showstat 1
-			showobjs 1
-			gs 'obj_din', 'old'
-			gt 'korr'
-		end
+	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/dinnerhome.jpg"></center>'
+	if npc_rel['A29'] >= 60:
+		'<<$npc_nickname[''A29'']>> hands you a plate with a big smile as you all sit down at your kitchen table.'
+	elseif npc_rel['A29'] <= 30:
+		'Lunch is a little tense at first, but for the most part everybody is used to you and your <<$npc_nickname[''A29'']>> fighting.'
+	else
+		'<<$npc_nickname[''A29'']>> hands plates of food as you all sit down at your kitchen table.'
 	end
+	'Before long, you are all laughing and joking with each other as you eat. You are still looking forward to being on your own, but you know times like this meal will become pretty rare once they head home.'
+	'Once the meal is done and <<$npc_nickname[''A29'']>> cleans up the mess, everybody stands up to say goodbye.'
+
+	act 'Say goodbye to your family': gt 'intro_city', 'family_goodbye'
 end
 
-if $ARGS[0] =  'Train':
+if $ARGS[0] = 'family_goodbye':
+	!! Say goodbye to your family
 	*clr & cla
-	gs'stat'
-	'<center><img <<$set_imgh>> src="images/locations/city/shared/metro/metro.jpg"></center>'
-	'You sit down in one of the corner seats then suddenly feel something pressed against your bottom. You quickly reach down then pull out a news paper. You must have sat on it. You drop it on the chair next to you then begin looking out of the window while thinking to yourself, <font color=#FF00CC>I''m actually doing this. This is actually happening. I am finally going to live on my own. I wonder what life would have been like if my papa never passed away. He was always out in military bases training and honing his skills. His letters always brought me comfort, just knowing that he was thinking of me. Would he be proud of me now? I hope so. I know that he only enlisted to keep us safe and fed.</font>'
+	'<center><img <<$set_imgh>> src="images/locations/city/residential/apartment/home/korr.jpg"></center>'
+	'Anya gives a big hug, congratulates you on getting your own place, and then steps back to give the rest of your family room to do the same. Your brother gives you an awkward hug and whispers to text him what it''s like before stepping back too.'
+	'Vladimir comes over and hugs you too, tells you how proud he is to be your stepfather and to call if you need anything.'
+	if npc_rel['A29'] >= 60:
+		'Your <<$npc_nickname[''A29'']>> finishes what she is doing and comes over, tears in her eyes. Wrapping you in a big hug, she reminds you again to stay away from the boys outside, before joining the rest of the family by the door.'
+	elseif npc_rel['A29'] <= 30:
+		'Your <<$npc_nickname[''A29'']>> finishes what she is doing and comes over and gives you an awkward hug, saying she is sorry for fighting with you on your big day, before joining the rest of the family by the door.'
+	else
+		'Your <<$npc_nickname[''A29'']>> finishes what she is doing and comes over and gives you a hug and reminds you to stay away from the boys outside, before joining the rest of the family by the door.'
+	end
 	*nl
-	'<font color=#FF00CC>I wonder what life would have been like if he were still around. Would <<$npc_nickname[''A29'']>> be so controlling or would she release the reigns and give me space? I can''t think about this now. I need to focus on my new life. That is all that matters now.</font> You turn to the news paper then unfold it, checking the latest job listings.'
-	'<center><b><h4><font color=#FF00CC><<"<<$pcs_firstname>> [<<$pcs_nickname>>] <<$pcs_lastname>>">></font></h4></b></center>'
-	*pl '<center><img src="<<FUNC(''$face_image'')>>"></center>'
+	'They all wave and head out, leaving you alone for the first time. You spend some time unpacking your stuff, before you stop and stretch, deciding you can finish later.'
 
-	act 'Look at the job listings':
-		*clr & cla
-		minut += 2
-		gs'stat'
-		'<center><img <<$set_imgh>> src="images/system/1_openings/5_nit/2.jpg"></center>'
-		'Clothing Saleswoman at the marketplace (Residential Area).'
-		'Waitress at the Roadhouse (Residential Area).'
-		'Office Secretary at Titran-Express (City Center).'
-		'Salon Masseuse at Beauty Bar in the Galeria Mall (City Center).'
-		'Store Clerk at Pussy Cats in the Galeria Mall (City Center).'
-		'Fashion Model at Aphrodite Photography (City Center).'
-		'Mercy Clinic is looking for volunteers to help with elderly patients (City Industrial Region).'
-		'Stripper in the Red Light District (City Industrial Region).'
-
-		act 'Finish reading':
-			*clr & cla
-			minut += 2
-			gs'stat'
-			'<center><img <<$set_imgh>> src="images/locations/city/shared/metro/metro.jpg"></center>'
-			'You lower the paper then lay back as you roll it back up and place it back on the seat next to you. The train reaches the next stop and you recognize it as your stop. You reach down, picking up your bags then stand next to the door when it suddenly opens, releasing a gust of wind on your face, which you find somewhat comforting. You then walk out of the train station.'
-
-			act 'Head toward your new apartment building':
-				*clr & cla
-				minut += 2
-				if sound = 0:
-					if month >=11 and month <= 12 or month >=1 and month <=3:
-						if hour >= 8 and hour <= 23: PLAY 'sound/street2.mp3',30 & PLAY 'sound/street7.mp3',30 & PLAY 'sound/zima.mp3',30
-						if hour >= 0 and hour <= 7: PLAY 'sound/street_night.mp3',30 & PLAY 'sound/zima.mp3',30
-					else
-						if hour >= 8 and hour <= 23: PLAY 'sound/street2.mp3',30 & PLAY 'sound/street7.mp3',30 & PLAY 'sound/street_leto.mp3',30
-						if hour >= 0 and hour <= 7: PLAY 'sound/street_night_leto.mp3' & PLAY 'sound/street_night.mp3',30
-					end
-				end
-				gs'stat'
-				if month >= 11 or month <= 3:
-					if hour >= 8 and hour <= 21:
-						'<center><img <<$set_imgh>> src="images/locations/city/residential/streetw.jpg"></center>'
-					else
-						'<center><img <<$set_imgh>> src="images/locations/city/residential/streetwn.jpg"></center>'
-					end
-				else
-					if hour >= 8 and hour <= 21:
-						'<center><img <<$set_imgh>> src="images/locations/city/residential/street.jpg"></center>'
-					else
-						'<center><img <<$set_imgh>> src="images/locations/city/residential/street_night.jpg"></center>'
-					end
-				end
-				'You begin heading in the direction of your new home when you notice some gopniks harassing a woman. One of the gopniks is whistling at her while the other is lifting up her skirt. You try your best to ignore them as you continue toward you apartment.'
-
-				act 'Continue toward your apartment':
-					*clr & cla
-					music_loop = 0
-					close all
-					minut += 5
-					gs'stat'
-					'<center><b><font color="maroon">Corridor</font></b></center>'
-					'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/korr.jpg"></center>'
-					'You approach your apartment then begin opening the door to your new home. After entering your home, you hang up your jacket then place your bags down before walking up to the window and opening it, letting in the fresh air while taking a few moments to think to yourself: <font color=#FF00CC>So this is my new life. A life where I can make MY OWN decisions on how to live it. I can be whatever I want to be. I can be a waitress, a model, a secretary or even a stripper if I wanted to but... I don''t think that I have the courage to work a job like that, maybe I will feel more confident about that in the months to come. Anyway I have a new city to explore and enough money for another two months of rent.</font>'
-					*nl
-					'<font color=#FF00CC>I can look for a job or maybe stop by the mall for some new clothes... Although I have heard of a rather risque clothing shop in the city center, but there is no way that I would have enough confidence to wear such clothes.</font> You quickly shake your head before taking a deep breath, ready to start your new life.'
-					'<center><b><h4><font color=#FF00CC><<"<<$pcs_firstname>> [<<$pcs_nickname>>] <<$pcs_lastname>>">></font></h4></b></center>'
-					*pl '<center><img src="<<FUNC(''$face_image'')>>"></center>'
-
-					act 'Start your new life':
-						showstat 1
-						showobjs 1
-						gs 'obj_din', 'old'
-						cla
-						*clr
-						'<center><img <<$set_imgh>> src="images/system/1_openings/5_nit/start_nit.jpg"></center>'
-						'Welcome to the New in Town start! You are finally free of your mother and ready to face all the freedoms and challenges that entails. Your options are nearly unlimited and now it''s time to go out and discover them all.'
-						act 'Begin': gt 'korr'
-					end
-				end
-			end
-		end
-	end
+	act 'Continue': gt 'intro_city', 'welcome_intro'
 end
 
+if $ARGS[0] = 'welcome_intro':
+	!! Welcome to Girl Life speech
+	showstat 1
+	showobjs 1
+	gs 'obj_din', 'old'
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/system/1_openings/5_city/city_start.jpg"></center>'
+	'Welcome to Girl Life. You are finally free of your parents and ready to face all the freedoms and challenges that entails. Your options are nearly unlimited and now it''s time to go out and discover them all.'
+	'Don''t forget to enroll in university during August, if that''s a goal you want to pursue.'
+
+	act 'Start the game': gt 'korr'
+end
+
+
 --- intro_city ---------------------------------
 

+ 13 - 0
locations/intro_city_m.qsrc

@@ -0,0 +1,13 @@
+# intro_city_m
+
+music_loop = 0
+CLOSE ALL
+gs 'themes', 'indoors'
+$start_type = 'city_m'
+
+'Not yet available!!'
+
+act 'Return': gt 'begin', 'start'
+
+--- intro_city_m ---------------------------------
+

+ 1551 - 0
locations/intro_city_select.qsrc

@@ -0,0 +1,1551 @@
+# intro_city_select
+
+if $ARGS[0] = 'start':
+	ml_update_1 = 1
+	birthyear = 1999
+	yearlefttemp = 1
+
+	if player_avatar = 0:
+		birthmonth = 4
+		birthday = 1
+		pcs_haircol = 1
+		pcs_eyesize = 2
+		pcs_lip = 1
+		pcs_lashes = 1
+	end
+
+!!	Body
+	pcs_hgt = 170
+	salo = 80
+	dick = 0
+	pcs_energy = 60
+	pcs_hydra = 60
+	pcs_sleep = 70
+!!	Stats
+	pcs_stren = 30
+	strenbuf = 10
+	pcs_agil = 30
+	agilbuf = 10
+	pcs_vital = 30
+	vitalbuf = 10
+	pcs_intel = 30
+	pcs_sprt = 30
+	pcs_react = 30
+	pcs_chrsm = 30
+	pcs_prcptn = 30
+	pcs_magik = 0
+
+	pcs_heels = 5
+	pcs_makupskl = 20
+	pcs_pubes = 30
+	pcs_leghair = 12
+	pcs_makeup = 1
+
+	money = 2000
+	prezikProver = 3
+	brothersawpirsF = 0
+	dynamic $currentpursetype + '_purses[<<currentpursenumber>>] = 1'
+
+	!!Default Names
+	$pcs_firstname = 'Svetlana'
+	$pcs_lastname = 'Lebedev'
+	$pcs_nickname = 'Sveta'
+
+	!!Player names are set here
+	$temp_firstname = '<<$pcs_firstname>>'
+	$pcs_firstname = input("What is your first name? (Leave blank for Svetlana)")
+	if $pcs_firstname = '':$pcs_firstname = '<<$temp_firstname>>'
+	killvar '$temp_firstname'
+
+	$temp_lastname = '<<$pcs_lastname>>'
+	$pcs_lastname = input("What is your family name? (Leave blank for Lebedev)")
+	if $pcs_lastname = '':$pcs_lastname = '<<$temp_lastname>>'
+	killvar '$temp_lastname'
+
+	$temp_nickname = '<<$pcs_nickname>>'
+	$pcs_nickname = input("What is your nickname? (Leave blank for Sveta)")
+	if $pcs_nickname = '':$pcs_nickname = '<<$temp_nickname>>'
+	killvar '$temp_nickname'
+
+	gs 'npcstatic1'
+	gs 'npcstatic2'
+	gs 'npcstatic3'
+	gs 'npcstatic4'
+	gs 'npcstatic5'
+
+	$pcs_dna = func('dna','generate',$npc_dna['A29'],$npc_dna['A35'])
+
+	home_owned[2] = 1
+	gs 'set_home', 2
+
+	killvar 'class_list_institution'
+	killvar 'class_list_name'
+
+	'<center><img <<$set_imgh>> src="images/system/1_openings/shared/pre_1.jpg"></center>'
+	'Your name is <<$pcs_firstname>> <<$pcs_lastname>>, friends and family often calling you <<$pcs_nickname>>. Your mother''s name is <<$npc_firstname[''A29'']>> and your biological father left when you were a baby. Your mother married your stepfather, <<$npc_firstname[''A28'']>>, shortly afterwards. <<$npc_firstname[''A33'']>> is your older sister. She is two years older than you and is still living at home while working at the local grocery store. She chose not to attend university and instead spends most of her free time drinking with her friends and going to parties, much to your mother''s dismay. You also have a younger half-brother, <<$npc_firstname[''A34'']>>, who is really into sports, especially football, and is shaping up to be a fine athlete. He is a year younger than you and his father is your stepfather.'
+
+	act 'Re-enter name/s': gt 'intro_city_select', 'SGStart'
+	act 'Continue':	gt 'intro_city_select', 'SGStart2'
+end
+
+if $ARGS[0] = 'SGStart2':
+	$locM = 'intro_city_select'
+	$loc_argsM = 'SGStart2'
+!!make sure this image shows up above the text that shows your birthday
+	!date_toggle = args[1]
+	'<center><img <<$set_imgh>> src="images/system/1_openings/shared/pre_2.jpg"></center>'
+	if birthday < 10 and birthmonth < 10:
+		$startdob = 'Your birthday: <B>0<<birthmonth>>/0<<birthday>>/<<birthyear>></B> (MM/DD/YYYY)'
+	elseif birthday < 10 and birthmonth >= 10:
+		$startdob = 'Your birthday: <B><<birthmonth>>/0<<birthday>>/<<birthyear>></B> (MM/DD/YYYY)'
+	elseif birthday >= 10 and birthmonth < 10:
+		$startdob = 'Your birthday: <B>0<<birthmonth>>/<<birthday>>/<<birthyear>></B> (MM/DD/YYYY)'
+	elseif birthday >= 10 and birthmonth >= 10:
+		$startdob = 'Your birthday: <B><<birthmonth>>/<<birthday>>/<<birthyear>></B> (MM/DD/YYYY)'
+	end
+
+	'<a href="exec:gt ''intro_customization'', ''birthday''"><<$startdob>></a>.'
+
+	act 'Confirm':
+		cls
+		killvar '$startdob'
+		gt 'intro_city_select', 'charselect'
+	end
+end
+
+if $ARGS[0] = 'charselect':
+	killvar '$locM'
+	killvar '$loc_argsM'
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/system/1_openings/shared/pre_4.jpg"></center>'
+	'Select your personality/social group. Your social group will have a major defining impact upon your life in school and will determine your starting friends, starting traits and overall look. While you can always change groups later on, it takes time and effort, so choose wisely. Your five choices of social group are.'
+	*nl
+	'Nerds, geeks and good students. - These students tend to do well in school and are well liked by teachers and other adults and your parents will also be more proud of you. They tend to not have many friends outside of their own social group, however, and are also sometimes picked on or bullied. They are subpar athletically and place less value on looks and social skills than other cliques.'
+	*nl
+	'Jocks and natural athletes. - These students are gifted in their chosen sport and are very athletically inclined. This means that they tend to be fit and in good shape, often making them better looking than many of the other students. They get along with other jocks and are respected by the cool kids of the school while being feared by the nerds, geeks and losers. They don''t value academic achievements and can come into conflict with the gopniks and other troublemakers.'
+	*nl
+	'The popular, cool and beautiful. - These students are typically socially-gifted and are often blessed with natural good looks. They are envied by many because of this, and most other kids want to be their friends. More than any of the other cliques, they have the ability to ruin someone''s reputation and make them social outcasts, which earns them the fear of many students. Being cool and good looking is all they value, so they tend to be subpar athletically and academically.'
+	*nl
+	'Gopniks, rebels, punks and troublemakers. - These students don''t play by the rules and, in fact, will often happily piss on them if given half a chance. They are in decent shape from all of their fighting and troublemaking, but their predilection for drinking, smoking and drugs often counteracts this to a point. They are not the most well-liked students; teachers and parents alike take a dim view of them, as does the local police. Most other students fear them, either from the years of bullying or from the gopniks'' willingness to fight. Some students secretly envy their carefree attitude and apparent ability to sneer and wave off many of the social pitfalls that other students face.'
+	*nl
+	'Losers, teachers'' pets, sluts and the ugly. - These students are the outcasts - the kids no one likes to spend time with, other than to pick on or bully them. Perhaps they are just socially awkward and never made many friends, broke one of the unwritten social school rules, are ugly, a snitch, a slut and/or an outed gay boy. Either way, they all have one thing in common: they are easy targets to bully and mock.'
+
+	act 'Full custom setup': gt 'intro_customization', 'start'
+
+	act 'Nerd, Geek, Student':
+		*clr & cla
+		gs 'intro_city_select', 'nerdinfo'
+		act 'I am the Queen of the Nerds!': gt 'intro_city_select', 'nerdqueen'
+		act 'I am a good student': gt 'intro_city_select', 'goodstudent'
+		act 'I am a computer geek': gt 'intro_city_select', 'computergeek'
+		act 'I am an avid chess player': gt 'intro_city_select', 'chessplayer'
+
+	end
+
+	act 'Athlete, Jock':
+		*clr & cla
+		gs 'intro_city_select', 'jockinfo'
+		act 'Avid volleyball player': gt 'intro_city_select', 'volleyball'
+		act 'Avid dancer': gt 'intro_city_select', 'dancer'
+		act 'Avid runner': gt 'intro_city_select', 'runner'
+		act 'Avid football player.': gt 'intro_city_select', 'football'
+	end
+
+	act 'Popular, Cool, Beautiful':
+!!if we can do school uniforms gets an appropriate or borderline uniform.
+		*clr & cla
+		gs 'intro_city_select', 'popularinfo'
+		act 'I have a lot of friends': gt 'intro_city_select', 'socialite'
+		act 'I am beautiful': gt 'intro_city_select', 'beautiful'
+	end
+
+	act 'Gopnik, Rebel, Punk, Troublemaker':
+!!If you can do uniforms then they can choose inappropriate or borderline
+!!can pick 1-3 tattoos at start
+		*clr & cla
+		gs 'intro_city_select', 'gopnikinfo'
+		act 'A gopnik': gt 'intro_city_select', 'gopnikstart'
+		act 'A punk or troublemaker': gt 'intro_city_select', 'troublemaker'
+		act '<<$npc_nickname[''A9'']>>''s girlfriend':  gt 'intro_city_select', 'vitekgf'
+		act 'An alternative, party girl or rebel': gt 'intro_city_select', 'alternative'
+	end
+
+	act 'Outcast, Loser, Goth, Ugly':
+		*clr & cla
+		gs 'intro_city_select', 'outcastinfo'
+		act 'I have no friends': gt 'intro_city_select', 'friendless'
+		act 'I am an ugly duckling': gt 'intro_city_select', 'uglyduckling'
+		act 'I am a good girl': gt 'intro_city_select', 'goodgirl'
+		act 'I am a slut': gt 'intro_city_select', 'slut'
+		act 'I am the resident goth': gt 'intro_city_select', 'goth'
+	end
+
+	act 'Random personality':
+!! This allows the player to select a random personality.
+		*clr & cla
+		persrand = rand(0, 18)
+		if persrand <= 3:
+		!! Nerd
+			gs 'intro_city_select', 'nerdinfo'
+			if persrand = 0:
+				killvar 'persrand'
+				gs 'intro_city_select', 'nerdqueen'
+			elseif persrand = 1:
+				killvar 'persrand'
+				gs 'intro_city_select', 'goodstudent'
+			elseif persrand = 2:
+				killvar 'persrand'
+				gs 'intro_city_select', 'computergeek'
+			elseif persrand = 3:
+				killvar 'persrand'
+				gs 'intro_city_select', 'chessplayer'
+			end
+		elseif persrand <= 7:
+		!! Jock
+			gs 'intro_city_select', 'jockinfo'
+			if persrand = 4:
+				killvar 'persrand'
+				gs 'intro_city_select', 'volleyball'
+			elseif persrand = 5:
+				killvar 'persrand'
+				gs 'intro_city_select', 'dancer'
+			elseif persrand = 6:
+				killvar 'persrand'
+				gs 'intro_city_select', 'runner'
+			elseif persrand = 7:
+				killvar 'persrand'
+				gs 'intro_city_select', 'football'
+			end
+		elseif persrand <= 9:
+		!! Popular
+			gs 'intro_city_select', 'popularinfo'
+			if persrand = 8:
+				killvar 'persrand'
+				gs 'intro_city_select', 'socialite'
+			elseif persrand = 9:
+				killvar 'persrand'
+				gs 'intro_city_select', 'beautiful'
+			end
+		elseif persrand <= 13:
+		!! Gopnik
+			gs 'intro_city_select', 'gopnikinfo'
+			if persrand = 10:
+				killvar 'persrand'
+				gs 'intro_city_select', 'gopnikstart'
+			elseif persrand = 11:
+				killvar 'persrand'
+				gs 'intro_city_select', 'troublemaker'
+			elseif persrand = 12:
+				killvar 'persrand'
+				gs 'intro_city_select', 'vitekgf'
+			elseif persrand = 13:
+				killvar 'persrand'
+				gs 'intro_city_select', 'alternative'
+			end
+		elseif persrand <= 18:
+		!! Outcast
+			gs 'intro_city_select', 'outcastinfo'
+			if persrand = 14:
+				killvar 'persrand'
+				gs'intro_city_select', 'friendless'
+			elseif persrand = 15:
+				killvar 'persrand'
+				gs 'intro_city_select', 'uglyduckling'
+			elseif persrand = 16:
+				killvar 'persrand'
+				gs 'intro_city_select', 'goodgirl'
+			elseif persrand = 17:
+				killvar 'persrand'
+				gs 'intro_city_select', 'slut'
+			elseif persrand = 18:
+				killvar 'persrand'
+				gs 'intro_city_select', 'goth'
+			end
+		end
+	end
+end
+
+if $ARGS[0] = 'nerdinfo':
+	'<center><h4><font color="maroon">Nerd</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/nerd_0.jpg"></center>'
+	'While you were growing up, you spent virtually all of your free time at home, pursuing various cerebral pursuits. These might have included reading comics, fantasy or sci-fi books, learning about chess or computers or playing cards, board games, or RPGs with the other nerds in addition to faithfully going to school. While you have gained a huge amount of knowledge from this, your lack of interest in exercising as a child has left your body a little frail.'
+	*nl
+	'The long nights of trying to read in poor light have taken a toll on your eyesight as well, and you now need glasses to be able to read. Your cerebral pursuits have also had somewhat of a negative impact on your friendship with <<$npc_firstname[''A11'']>>: as you grew up. He became a gopnik and the two of you slowly started hanging out less and less, although you still consider each other to be friends. On the plus side, doing well in school has made your parents happy and has left you with some extra spending money as a reward for your hard work. Now...'
+	*nl
+end
+
+if $ARGS[0] = 'jockinfo':
+	'<center><h4><font color="maroon">Jock</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/jock_0.jpg"></center>'
+	'While you were growing up, you spent virtually all of your free time outdoors. You loved playing sports, running, biking, horseback riding, hiking and most other outdoor activities. This has kept you in fairly good shape as well as decently socially active in a variety of team sports over the years. Doing this, however, negatively impacted your friendship with <<$npc_firstname[''A11'']>> somewhat. As you grew up, he became a gopnik and the two of you slowly started hanging out less and less, though you still consider each other to be friends. From all the sports available, you are an...'
+	*nl
+end
+
+if $ARGS[0] = 'popularinfo':
+	'<center><h4><font color="maroon">Popular</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/popular_0.jpg"></center>'
+	'You spent most of your childhood outdoors, playing with other girls and boys. As a result, you''re quite healthy. You''re also pretty strong verbally, with a keen understanding about how to get yourself out of trouble (or shifting the blame to someone else). You were never very interested in school or sports, however, and are only a sub-par student. Your popularity has negatively impacted your relationship with <<$npc_firstname[''A11'']>> somewhat, and you are not as close as you once were. Now...'
+	*nl
+end
+
+if $ARGS[0] = 'gopnikinfo':
+	'<center><h4><font color="maroon">Gopnik</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/gopnik_0.jpg"></center>'
+	'You spent most of your childhood outdoors, playing with the other girls and boys. As a result, you''re quite healthy. As you got older you lost any interest you might have once had with fitting in - now you do your own thing, and you’’re ready to tell anyone where they can stick it if they have a problem with that.'
+	'As you and <<$npc_firstname[''A11'']>> walked a similar path, your bond of friendship only deepened. This has had some repercussions on your school performance; you''re a sub-par student. It has also had some less enjoyable consequences leading you into more than your fair share of fights, into all sorts of problems at home, landing you in trouble and often punished at school, and even into a few run-ins with the local police. Now most consider you...'
+	*nl
+end
+
+if $ARGS[0] = 'outcastinfo':
+	'<center><h4><font color="maroon">Outcast</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/outcast_0.jpg"></center>'
+	'You never really fit in. You’’re just one of those individuals who, by choice or circumstance, never really clicked with the other kids. As you got older things only got worse, and now you are seen as an outcast. This breaks one of the most important social rules among your peers, and you are now considered in the same vein as sluts, losers, gay boys and the like.'
+	'Being an outcast has also had a somewhat negative impact on your friendship with <<$npc_firstname[''A11'']>>. As you grew up, he became a gopnik and the two of you slowly started hanging out less and less, although you still consider each other to be friends - if just barely. You have no other real friends, and you get bullied and made fun of all the time because...'
+	*nl
+end
+
+if $ARGS[0] = 'nerd':
+	pcs_tan = 0
+	pcs_gaming = 20
+	if player_avatar ! 1: pcs_haircol = 1
+	if player_avatar ! 1: pcs_eyecol = 0
+	fantasybook = 5
+	grupTipe=3
+	money += 3000
+	shampoo = 20
+	if player_avatar = 0:
+		pcs_eyesize = 1
+		pcs_lip = 1
+		pcs_lashes = 0
+	end
+	pcs_skin = 20
+	pcs_inhib = 10
+	pcs_heels = 10
+	pcs_makupskl = 15
+	gs 'npc_relationship', 'socialgroup_setting', -10, 0, 25, 0, 5, 20
+	npc_rel['A129'] += 10
+	npc_rel['A28'] += 10
+	npc_rel['A29'] += 10
+	grupvalue[1] = 200
+	grupvalue[2] = 100
+	grupvalue[3] = 700
+	grupvalue[4] = 100
+	grupvalue[6] = 600
+	genbsize = 22
+	traits['nerd_points'] = 60
+	traits['nerd_status'] = 2
+	traits['nerd_lernHome'] = 5
+end
+
+if $ARGS[0] = 'nerdqueen':
+	'<center><h4><font color="maroon">Queen of the nerds</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/nerd_1.jpg"></center>'
+	'While you love all things nerdy or geeky, what you love the most is hanging out with your fellow nerds and doing nerdy things together. This has made you fairly social for a nerd and more general in your areas of knowledge. As you got older and started to develop as a girl, it also made you much more aware of your sexuality than most nerds are comfortable with. As such, you cultivated that awareness more than most and are now more at ease with your body than most of the other nerds. By the usual nerd standards you are confident, dynamic and attractive. This has lead to you being the leader of your group of friends, and you are more acceptable to other social groups as a result, especially the cool kids who seem to respect your social skills and looks.'
+	act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		gs 'intro_city_select', 'nerd'
+		alterstrtimg = 8
+		pcs_intel = 40
+		pcs_chrsm = 40
+		pcs_sprt = 40
+		pcs_icesktng = 10
+		pcs_humint = 10
+		pcs_persuas = 10
+		pcs_makupskl = 30
+		pcs_inhib = 20
+		pcs_heels = 25
+		pirsC = 2
+		PirsC2_owned = 1
+		$currentpursetype = 'fashionista'
+		currentpursenumber = 13
+		fashionista_purses[13] = 1
+		bag = 1
+		gs 'npc_relationship', 'socialgroup_setting', 10, 5, 10, 5, 5, 5
+		npc_rel['A18'] = 1
+!!make sure this coming after the gs code above will still set christina to a 1 relationship, if I did this code correctly, if not look for this code in other spots and fix it pls
+		grupvalue[1] = 300
+		grupvalue[3] = 800
+		grupvalue[6] = 700
+		kosmetica = 10
+		stanok = 10
+		if player_avatar = 0:
+			pcs_hairlng = 300
+			pcs_eyesize = 3
+			pcs_lip = 2
+			pcs_lashes = 1
+		end
+		pcs_skin = 50
+		genbsize = 17
+		salo = 87
+		willpowermax = 90
+		gs 'grades', 'grade_award', 'school', 'math', 75
+		gs 'grades', 'grade_award', 'school', 'rus', 90
+		gs 'grades', 'grade_award', 'school', 'lit', 80
+		gs 'grades', 'grade_award', 'school', 'art', 75
+		gs 'grades', 'grade_award', 'school', 'bio', 75
+		gs 'grades', 'grade_award', 'school', 'pe', 70
+		gs 'grades', 'grade_award', 'school', 'eng', 80
+		gs 'grades', 'grade_award', 'school', 'geo', 75
+		gs 'grades', 'grade_award', 'school', 'sci', 75
+		gs 'grades', 'grade_award', 'school', 'shop', 55
+		gs 'grades', 'grade_award', 'school', 'comp', 75
+		gs 'grades', 'grade_award', 'school', 'mus', 75
+		gs 'grades', 'grade_award', 'school', 'his', 75
+		gt $loc, $loc_args
+	end
+end
+
+if $ARGS[0] = 'goodstudent':
+	'<center><h4><font color="maroon">Good student</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/nerd_2.jpg"></center>'
+	'You just love school, and your grades are more than good enough to attend the university of your choosing after graduation - all you have to do is not let your grades slip. You have always tried to absorb every bit of knowledge possible and have done everything you could to excel in school. While this attitude has gained you a lot of respect from the other nerds, it did not earn you a lot of friends and you never found the time for sports. You are often asked to be a tutor and sometimes find yourself forced to do others'' homework for them. You have excellent grades, and your mother is very proud of you. She has shown her appreciation for your hard work by rewarding you with money.'
+	act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		gs 'intro_city_select', 'nerd'
+		traits['nerd_points'] = 100
+		traits['nerd_status'] = 3
+		alterstrtimg = 9
+		if glass < 1 : glass = 1
+		pcs_intel = 50
+		pcs_instrmusic = 10
+		pcs_artskls = 10
+		money += 2000
+		pcs_skin = 20
+		salo = 115
+		grupvalue[3] = 750
+		grupvalue[6] = 700
+		gs 'npc_relationship', 'socialgroup_setting', 0, 0, 5, 0, 0, 0
+		npc_rel['A29'] += 20
+		if player_avatar ! 1: pcs_hairlng = 200
+		willpowermax = 80
+		gs 'grades', 'grade_award', 'school', 'math', 90
+		gs 'grades', 'grade_award', 'school', 'rus', 90
+		gs 'grades', 'grade_award', 'school', 'lit', 90
+		gs 'grades', 'grade_award', 'school', 'art', 90
+		gs 'grades', 'grade_award', 'school', 'bio', 90
+		gs 'grades', 'grade_award', 'school', 'pe', 55
+		gs 'grades', 'grade_award', 'school', 'eng', 90
+		gs 'grades', 'grade_award', 'school', 'geo', 90
+		gs 'grades', 'grade_award', 'school', 'sci', 90
+		gs 'grades', 'grade_award', 'school', 'shop', 55
+		gs 'grades', 'grade_award', 'school', 'comp', 90
+		gs 'grades', 'grade_award', 'school', 'mus', 90
+		gs 'grades', 'grade_award', 'school', 'his', 90
+		gt $loc, $loc_args
+	end
+end
+
+if $ARGS[0] = 'computergeek':
+	'<center><h4><font color="maroon">Computer geek</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/nerd_3.jpg"></center>'
+	'You were always into computers, whether it be by playing video games, taking computers apart or learning programing and even hacking. You love everything about computers, but this passion left you little time to make friends - real-life friends, at least. You have managed to befriend many online players that you talk to while you play various video games, however, and you rarely spend any time outdoors, nor money on clothes or other girly stuff. You are far more interested in saving your money for a better computer in order to play even better games. You have considered hosting a web series of video games or vlogs - you even took the time to learn how to video edit - but you aren’’t sure if you want to put yourself out there like that.'
+	act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		gs 'intro_city_select', 'nerd'
+		alterstrtimg = 10
+		if glass < 1 : glass = 1
+		pcs_intel = 55
+		pcs_compskl = 40
+		pcs_comphckng = 20
+		pcs_gaming = 30
+		internet = 20
+		pcs_skin = 30
+		salo = 38
+		pcs_inhib = 20
+		npc_rel['A152'] += 10
+		npc_rel['A153'] += 10
+		npc_rel['A142'] += 15
+		npc_rel['A129'] += 10
+		komp = 1
+		if player_avatar ! 1: pcs_hairlng = 120
+		willpowermax = 90
+		gs 'grades', 'grade_award', 'school', 'math', 90
+		gs 'grades', 'grade_award', 'school', 'rus', 85
+		gs 'grades', 'grade_award', 'school', 'lit', 85
+		gs 'grades', 'grade_award', 'school', 'art', 85
+		gs 'grades', 'grade_award', 'school', 'bio', 85
+		gs 'grades', 'grade_award', 'school', 'pe', 65
+		gs 'grades', 'grade_award', 'school', 'eng', 85
+		gs 'grades', 'grade_award', 'school', 'geo', 85
+		gs 'grades', 'grade_award', 'school', 'sci', 85
+		gs 'grades', 'grade_award', 'school', 'shop', 55
+		gs 'grades', 'grade_award', 'school', 'comp', 95
+		gs 'grades', 'grade_award', 'school', 'mus', 85
+		gs 'grades', 'grade_award', 'school', 'his', 85
+		gt $loc, $loc_args
+	end
+end
+
+if $ARGS[0] = 'chessplayer':
+	'<center><h4><font color="maroon">Avid chess player</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/nerd_4.jpg"></center>'
+	'You were always into chess as a child, and you have studied all the great chess masters. You can even name them all as well as their favorite strategies! You find nothing more interesting than matching your wits against someone else’’s in a game of chess. It has left you with the ability to often see the consequences of your actions better than most as you are used to looking several moves ahead. All of this has left you with little time to make many friends, and you rarely spend any time outdoors.'
+	act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		gs 'intro_city_select', 'nerd'
+		alterstrtimg = 11
+		pcs_intel = 55
+		pcs_prcptn = 40
+		pcs_react = 40
+		pcs_chess = 40
+		pcs_skin = 35
+		salo = 120
+		pcs_inhib = 15
+		chessyear = year
+		chessmonth = month
+		npc_rel['A151'] += 20
+		if player_avatar ! 1: pcs_hairlng = 200
+		willpowermax = 90
+		gs 'grades', 'grade_award', 'school', 'math', 90
+		gs 'grades', 'grade_award', 'school', 'rus', 90
+		gs 'grades', 'grade_award', 'school', 'lit', 90
+		gs 'grades', 'grade_award', 'school', 'art', 85
+		gs 'grades', 'grade_award', 'school', 'bio', 85
+		gs 'grades', 'grade_award', 'school', 'pe', 55
+		gs 'grades', 'grade_award', 'school', 'eng', 85
+		gs 'grades', 'grade_award', 'school', 'geo', 85
+		gs 'grades', 'grade_award', 'school', 'sci', 85
+		gs 'grades', 'grade_award', 'school', 'shop', 55
+		gs 'grades', 'grade_award', 'school', 'comp', 85
+		gs 'grades', 'grade_award', 'school', 'mus', 80
+		gs 'grades', 'grade_award', 'school', 'his', 85
+		gt $loc, $loc_args
+	end
+end
+
+if $ARGS[0] = 'jock':
+	pcs_sprt = 40
+	pcs_stren = 40
+	pcs_vital = 40
+	pcs_react = 40
+	pcs_agil = 40
+	genbsize = 17
+	kosmetica = 10
+	stanok = 10
+	shampoo = 20
+	tampon = 20
+	pcs_run = 20
+	pcs_bushcraft = 5
+	pcs_ftbll = 10
+	pcs_vball = 10
+	pcs_danc = 10
+	pcs_icesktng = 20
+	pcs_humint = 10
+	pcs_makupskl = 30
+	pcs_heels = 20
+	pcs_inhib = 20
+	swim_start = 1
+	pirsC = 1
+	PirsC1_owned = 1
+	$currentpursetype = 'fashionista'
+	currentpursenumber = 11
+	fashionista_purses[11] = 1
+	bag = 1
+	grupvalue[1] = 400
+	grupvalue[2] = 700
+	grupvalue[3] = 100
+	grupvalue[4] = 300
+	grupvalue[6] = 200
+	gs 'npc_relationship', 'socialgroup_setting', 10, 25, -5, 0, -10, 0
+	npc_rel['A129'] -= 10
+	npc_rel['A18'] = 1
+	hscrunch = 10
+	hscrunchw = 0
+	pcs_tan = 20
+	if player_avatar = 0:
+		pcs_hairlng = 55
+		pcs_haircol = 3
+		pcs_eyecol = 3
+		pcs_eyesize = 3
+		pcs_lip = 2
+		pcs_lashes = 1
+	end
+	npc_rel['A34'] += 10
+	grupTipe=2
+end
+
+if $ARGS[0] = 'volleyball':
+	'<center><h4><font color="maroon">Volleyball player</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/jock_1.jpg"></center>'
+	'Ever since the first time you played volleyball, you have been in love with the sport. You spent a lot of your free time trying to improve your ability, and it paid off; you''re actually quite good now! Your obsession with volleyball, however, has had some repercussions on your school performance. You''re a sub-par student, and you haven''t made many friends other than your fellow jocks. You are especially close with <<$npc_firstname[''A13'']>> and your coach.'
+	act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		gs 'intro_city_select', 'jock'
+		alterstrtimg = 12
+		pcs_react = 50
+		pcs_vital = 50
+		pcs_stren = 45
+		pcs_agil = 50
+		pcs_skin = 50
+		salo = 68
+		pcs_vball = 50
+		gsAboVolley += 30
+		npc_rel['A13'] += 10
+		npc_rel['A69'] += 10
+		willpowermax = 140
+		school_clothing = 7
+		gs 'grades', 'grade_award', 'school', 'math', 55
+		gs 'grades', 'grade_award', 'school', 'rus', 55
+		gs 'grades', 'grade_award', 'school', 'lit', 55
+		gs 'grades', 'grade_award', 'school', 'art', 55
+		gs 'grades', 'grade_award', 'school', 'bio', 55
+		gs 'grades', 'grade_award', 'school', 'pe', 95
+		gs 'grades', 'grade_award', 'school', 'eng', 55
+		gs 'grades', 'grade_award', 'school', 'geo', 55
+		gs 'grades', 'grade_award', 'school', 'sci', 55
+		gs 'grades', 'grade_award', 'school', 'shop', 55
+		gs 'grades', 'grade_award', 'school', 'comp', 55
+		gs 'grades', 'grade_award', 'school', 'mus', 55
+		gs 'grades', 'grade_award', 'school', 'his', 55
+		gt $loc, $loc_args
+	end
+end
+
+if $ARGS[0] = 'dancer':
+	'<center><h4><font color="maroon">Avid dancer</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/jock_2.jpg"></center>'
+	'You fell in love with dancing at an early age and never looked back. You spent a lot of your free time trying to improve your skills, and it paid off; you''re actually quite good now! <<$npc_firstname[''A11'']>> helpfully pointed out that an added benefit of dance was a greater increase in your flexibility (that is, of course, typical of <<$npc_firstname[''A11'']>>). Your obsession with dancing, however, has had some repercussions on your school performance. You''re a sub-par student, and you haven''t made many friends other than your fellow jocks.'
+	*nl
+	'You are particularly close with <<$npc_firstname[''A23'']>>, who is just as passionate about dancing as you are. You trained a lot together as children and have a mutual respect for each other''s abilities.'
+	act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		gs 'intro_city_select', 'jock'
+		alterstrtimg = 13
+		pcs_sprt = 45
+		pcs_vital = 50
+		pcs_react = 50
+		pcs_agil = 55
+		pcs_chrsm = 35
+		pcs_perform = 35
+		pcs_makupskl = 40
+		pcs_skin = 80
+		pcs_tan = 5
+		salo = 50
+		genbsize = 12
+		if player_avatar = 0:
+			pcs_hairlng = 200
+			pcs_eyesize = 2
+			pcs_lip = 2
+			pcs_lashes = 1
+		end
+		pcs_skin = 60
+		pcs_danc = 50
+		pcs_heels = 30
+		pcs_inhib = 25
+		pcs_makupskl = 35
+		gsAboDance += 30
+		gs 'npc_relationship', 'socialgroup_setting', 5, 0, 0, -5, 0, 0
+		npc_rel['A23'] += 25
+		npc_rel['A144'] += 10
+		grupvalue[1] = 500
+		willpowermax = 140
+		school_clothing = 7
+		gs 'grades', 'grade_award', 'school', 'math', 55
+		gs 'grades', 'grade_award', 'school', 'rus', 55
+		gs 'grades', 'grade_award', 'school', 'lit', 55
+		gs 'grades', 'grade_award', 'school', 'art', 55
+		gs 'grades', 'grade_award', 'school', 'bio', 55
+		gs 'grades', 'grade_award', 'school', 'pe', 95
+		gs 'grades', 'grade_award', 'school', 'eng', 55
+		gs 'grades', 'grade_award', 'school', 'geo', 55
+		gs 'grades', 'grade_award', 'school', 'sci', 55
+		gs 'grades', 'grade_award', 'school', 'shop', 55
+		gs 'grades', 'grade_award', 'school', 'comp', 55
+		gs 'grades', 'grade_award', 'school', 'mus', 80
+		gs 'grades', 'grade_award', 'school', 'his', 55
+		gt $loc, $loc_args
+	end
+end
+
+if $ARGS[0] = 'runner':
+	'<center><h4><font color="maroon">Track runner</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/jock_3.jpg"></center>'
+	'Ever since you first tried track, you have been in love with the sport. When you’re running, the rest of the world fades away and you experience a natural high like no other. You spent a lot of your free time trying to get better at it, and it paid off; you''re actually quite good now! Your obsession with running, however, has had some repercussions on your school performance. You''re a sub-par student, and you haven''t made many friends other than your fellow jocks and your coach.'
+	act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		gs 'intro_city_select', 'jock'
+		alterstrtimg = 14
+		pcs_vital = 60
+		pcs_agil = 50
+		pcs_stren = 45
+		pcs_inhib = 25
+		salo = 58
+		pcs_skin = 40
+		genbsize = 12
+		pcs_run = 50
+		gsAboBeg += 30
+		npc_rel['A3'] += 10
+		npc_rel['A5'] += 10
+		npc_rel['A8'] += 5
+		npc_rel['A18'] = 1
+		npc_rel['A131'] += 10
+		grupvalue[2] = 750
+		willpowermax = 140
+		school_clothing = 7
+		gs 'grades', 'grade_award', 'school', 'math', 55
+		gs 'grades', 'grade_award', 'school', 'rus', 55
+		gs 'grades', 'grade_award', 'school', 'lit', 55
+		gs 'grades', 'grade_award', 'school', 'art', 55
+		gs 'grades', 'grade_award', 'school', 'bio', 75
+		gs 'grades', 'grade_award', 'school', 'pe', 95
+		gs 'grades', 'grade_award', 'school', 'eng', 55
+		gs 'grades', 'grade_award', 'school', 'geo', 55
+		gs 'grades', 'grade_award', 'school', 'sci', 55
+		gs 'grades', 'grade_award', 'school', 'shop', 55
+		gs 'grades', 'grade_award', 'school', 'comp', 55
+		gs 'grades', 'grade_award', 'school', 'mus', 55
+		gs 'grades', 'grade_award', 'school', 'his', 55
+		gt $loc, $loc_args
+	end
+end
+
+if $ARGS[0] = 'football':
+	'<center><h4><font color="maroon">Football player</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/jock_4.jpg"></center>'
+	'Ever since your first football game, you have been in love with the sport. You spent a lot of your free time trying to get better at it, and it paid off; you''re actually quite good now! Your obsession with football has had some repercussions on your school performance, however, and you''re now a sub-par student. You haven''t made many friends other than your fellow jocks, especially <<$npc_firstname[''A149'']>> and your coach.'
+	act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		gs 'intro_city_select', 'jock'
+		alterstrtimg = 15
+		pcs_stren = 50
+		pcs_react = 50
+		pcs_vital = 50
+		salo = 80
+		pcs_skin = 50
+		pcs_kick = 20
+		pcs_ftbll = 50
+		npc_rel['A131'] += 10
+		npc_rel['A149'] += 10
+		npc_rel['A34'] += 10
+		grupvalue[2] = 800
+		willpowermax = 140
+		$currentpursetype = 'fashionista'
+		currentpursenumber = 11
+		fashionista_purses[11] = 1
+		bag = 1
+		school_clothing = 7
+		gs 'grades', 'grade_award', 'school', 'math', 55
+		gs 'grades', 'grade_award', 'school', 'rus', 55
+		gs 'grades', 'grade_award', 'school', 'lit', 55
+		gs 'grades', 'grade_award', 'school', 'art', 55
+		gs 'grades', 'grade_award', 'school', 'bio', 55
+		gs 'grades', 'grade_award', 'school', 'pe', 95
+		gs 'grades', 'grade_award', 'school', 'eng', 55
+		gs 'grades', 'grade_award', 'school', 'geo', 55
+		gs 'grades', 'grade_award', 'school', 'sci', 55
+		gs 'grades', 'grade_award', 'school', 'shop', 55
+		gs 'grades', 'grade_award', 'school', 'comp', 55
+		gs 'grades', 'grade_award', 'school', 'mus', 55
+		gs 'grades', 'grade_award', 'school', 'his', 55
+		gt $loc, $loc_args
+	end
+end
+
+if $ARGS[0] = 'cool':
+	pcs_sprt = 40
+	pcs_chrsm = 40
+	pcs_prcptn = 40
+	pcs_icesktng = 10
+	pcs_danc = 10
+	pcs_persuas = 30
+	pcs_inhib = 20
+	swim_start = 99
+	kosmetica = 20
+	shampoo = 20
+	stanok = 20
+	tampon = 20
+	money += 1000
+	grupvalue[1] = 700
+	grupvalue[2] = 300
+	grupvalue[3] = 100
+	grupvalue[4] = 200
+	grupvalue[6] = 300
+	gs 'npc_relationship', 'socialgroup_setting', 25, 15, 0, -10, -20, 0
+	npc_rel['A129'] -= 20
+	npc_rel['A144'] += 10
+	npc_rel['A18'] = 1
+	if player_avatar ! 1: pcs_haircol = 2
+	if player_avatar ! 1: pcs_eyecol = 2
+	pcs_tan = 30
+	if player_avatar = 0:
+		pcs_eyesize = 2
+		pcs_lip = 2
+		pcs_lashes = 1
+	end
+	pcs_skin = 50
+	pcs_tan = 5
+	npc_rel['A33'] += 10
+	grupTipe=1
+end
+
+if $ARGS[0] = 'socialite':
+	'<center><h4><font color="maroon">Sociable</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/popular_1.jpg"></center>'
+	'You have a ton of friends! You''re friends with all of the important kids at school, anyways, which is what really matters. You were very social growing up and enjoyed being around others, often becoming the center of attention. You have always had a knack of knowing the right thing to say at the right moment, which led to many other students wanting to be your friend. You can with a little work get along with nearly anyone if you put your mind to it.'
+	act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		gs 'intro_city_select', 'cool'
+		alterstrtimg = 16
+		pcs_chrsm = 45
+		genbsize = 32
+		pcs_humint = 40
+		pcs_makupskl = 35
+		pcs_heels = 30
+		pcs_perform = 20
+		pirsC = 1
+		PirsC1_owned = 1
+		$currentpursetype = 'fashionista'
+		currentpursenumber = 4
+		fashionista_purses[4] = 1
+		bag = 1
+		school_clothing = 6
+		if player_avatar ! 1: pcs_hairlng = 200
+		npc_rel['A140'] += 10
+		salo = 68
+		willpowermax = 110
+		gs 'grades', 'grade_award', 'school', 'math', 65
+		gs 'grades', 'grade_award', 'school', 'rus', 90
+		gs 'grades', 'grade_award', 'school', 'lit', 65
+		gs 'grades', 'grade_award', 'school', 'art', 65
+		gs 'grades', 'grade_award', 'school', 'bio', 65
+		gs 'grades', 'grade_award', 'school', 'pe', 65
+		gs 'grades', 'grade_award', 'school', 'eng', 80
+		gs 'grades', 'grade_award', 'school', 'geo', 65
+		gs 'grades', 'grade_award', 'school', 'sci', 65
+		gs 'grades', 'grade_award', 'school', 'shop', 55
+		gs 'grades', 'grade_award', 'school', 'comp', 65
+		gs 'grades', 'grade_award', 'school', 'mus', 65
+		gs 'grades', 'grade_award', 'school', 'his', 65
+		gt $loc, $loc_args
+	end
+end
+
+if $ARGS[0] = 'beautiful':
+	'<center><h4><font color="maroon">Beautiful</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/popular_2.jpg"></center>'
+	'You might not be the smartest and you might not be the most social or have the toughest attitude - but what you do have are natural good looks. That’s not something you can earn! You blossomed earlier than most girls and the boys took note, especially <<$npc_firstname[''A11'']>>, who started acting differently around you. You know he is attracted to you, but who can blame him? After all, you''re fairly certain that all of the boys (and even some of the girls) lust after you either openly or secretly. As you got older your looks only improved, and you are often considered one of the best looking girls in the room wherever you go. You are especially popular with the cool kids and jocks.'
+	act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		gs 'intro_city_select', 'cool'
+		alterstrtimg = 17
+		pcs_humint = 20
+		pcs_makupskl = 50
+		pcs_heels = 40
+		if player_avatar = 0:
+			pcs_hairlng = 300
+			pcs_eyesize = 2
+			pcs_lip = 3
+			pcs_lashes = 2
+		end
+		school_clothing = 6
+		pcs_skin = 70
+		pcs_tan = 50
+		genbsize = 37
+		pcs_inhib = 25
+		kosmetica = 50
+		falselashesplain = 10
+		falselashesmink = 2
+		$currentpursetype = 'fashionista'
+		currentpursenumber = 9
+		fashionista_purses[9] = 1
+		bag = 1
+		gs 'obj_din', 'old'
+		greben = 1
+		kosmetitka = 10
+		krem = 10
+		pirsC = 2
+		PirsC2_owned = 1
+		gs 'npc_relationship', 'socialgroup_setting_boys', 10, 10, 10, 10, 10, 0
+		salo = 63
+		grupvalue[1] = 800
+		grupvalue[4] = 300
+		gs 'fame', 'pav', 'sex', 20
+		willpowermax = 110
+		gs 'grades', 'grade_award', 'school', 'math', 60
+		gs 'grades', 'grade_award', 'school', 'rus', 60
+		gs 'grades', 'grade_award', 'school', 'lit', 60
+		gs 'grades', 'grade_award', 'school', 'art', 60
+		gs 'grades', 'grade_award', 'school', 'bio', 60
+		gs 'grades', 'grade_award', 'school', 'pe', 60
+		gs 'grades', 'grade_award', 'school', 'eng', 60
+		gs 'grades', 'grade_award', 'school', 'geo', 60
+		gs 'grades', 'grade_award', 'school', 'sci', 60
+		gs 'grades', 'grade_award', 'school', 'shop', 55
+		gs 'grades', 'grade_award', 'school', 'comp', 60
+		gs 'grades', 'grade_award', 'school', 'mus', 60
+		gs 'grades', 'grade_award', 'school', 'his', 60
+		gt $loc, $loc_args
+	end
+end
+
+if $ARGS[0] = 'gopnik':
+	pcs_sprt = 35
+	pcs_stren = 35
+	pcs_vital = 35
+	pcs_react = 35
+	pcs_agil = 35
+	genbsize = 22
+	pcs_inhib = 25
+	pcs_heels = 10
+	pcs_makupskl = 25
+	kosmetica = 10
+	shampoo = 20
+	stanok = 10
+	siga = 20
+	fakepassport = 1
+	pirsC = 1
+	PirsC1_owned = 1
+	grupvalue[1] = 100
+	grupvalue[2] = 300
+	grupvalue[3] = 100
+	grupvalue[4] = 700
+	grupvalue[6] = 100
+	gs 'npc_relationship', 'socialgroup_setting', 0, 0, -10, 25, 0, 0
+	npc_rel['A129'] -= 30
+	npc_rel['A11'] += 10
+	tampon = 20
+	pcs_run = 20
+	pcs_humint = 10
+	pcs_tan = 10
+	if player_avatar = 0:
+		pcs_hairlng = 120
+		pcs_haircol = 0
+		pcs_eyecol = 1
+		pcs_eyesize = 3
+		pcs_lip = 2
+		pcs_lashes = 1
+	end
+	pcs_skin = 40
+	pcs_vag = 1
+	pcs_throat = 1
+	stat['hj'] = 10
+	stat['bj'] = 5
+	stat['vaginal'] = 1
+	Gspassed = 0
+	gs 'fame', 'pav', 'sex', 30
+	grupTipe=4
+end
+
+if $ARGS[0] = 'gopnikstart':
+	'<center><h4><font color="maroon">Gopnik</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/gopnik_1.jpg"></center>'
+	'You are a gopnik. While you are still low in the gopnik pecking order, you have already proven yourself to them and most fully accept you as an equal. You have problems at home and school due to your antisocial behavior. This is especially true with your mother and stepfather, who see you going down the wrong path. The teachers and the police all know you''re one of the local gopniks. The jocks have a not so friendly rivalry with you and the other gopniks, while you don''t get along much, have some mutal respect for you.'
+	act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		gs 'intro_city_select', 'gopnik'
+		gs 'npc_relationship', 'socialgroup_setting', -10, -10, -10, 20, -10, 0
+		alterstrtimg = 18
+		pcs_stren = 40
+		pcs_vital = 40
+		pcs_jab = 35
+		pcs_punch = 35
+		pcs_kick = 35
+		pcs_def = 35
+		salo = 80
+		school_clothing = 5
+		npc_rel['A9'] += 10
+		npc_rel['A10'] += 10
+		npc_rel['A11'] += 10
+		npc_rel['A20'] += 10
+		npc_rel['A21'] += 10
+		npc_rel['A24'] += 10
+		npc_rel['A28'] -= 10
+		npc_rel['A29'] -= 20
+		npc_rel['A33'] -= 10
+		npc_rel['A34'] -= 10
+		grupvalue[4] = 800
+		willpowermax = 130
+		gs 'grades', 'grade_award', 'school', 'math', 25
+		gs 'grades', 'grade_award', 'school', 'rus', 25
+		gs 'grades', 'grade_award', 'school', 'lit', 25
+		gs 'grades', 'grade_award', 'school', 'art', 25
+		gs 'grades', 'grade_award', 'school', 'bio', 25
+		gs 'grades', 'grade_award', 'school', 'pe', 80
+		gs 'grades', 'grade_award', 'school', 'eng', 25
+		gs 'grades', 'grade_award', 'school', 'geo', 25
+		gs 'grades', 'grade_award', 'school', 'sci', 25
+		gs 'grades', 'grade_award', 'school', 'shop', 80
+		gs 'grades', 'grade_award', 'school', 'comp', 25
+		gs 'grades', 'grade_award', 'school', 'mus', 25
+		gs 'grades', 'grade_award', 'school', 'his', 25
+		gt $loc, $loc_args
+	end
+end
+
+if $ARGS[0] = 'troublemaker':
+	'<center><h4><font color="maroon">Troublemaker</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/gopnik_2.jpg"></center>'
+	'You are a troublemaker. Nothing makes you happier than causing problems, whether it be petty larceny, getting into fights or vandalism. You live for the thrill of breaking the rules. You get along fairly well with the gopniks and they accept you as a kindred spirit. They seem to love your willingness to jump head first into any and all trouble you run across - and if you can''t find any, you will happily make your own, which keeps things lively. You have problems at home and school due to your antisocial behavior. This is especially true with your mother and stepfather, who see you going down the wrong path. The teachers and the police all know who you are.'
+	act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		traits['nerd_points'] = -50
+		gs 'intro_city_select', 'gopnik'
+		alterstrtimg = 19
+		pcs_stren = 40
+		pcs_react = 40
+		pcs_jab = 20
+		pcs_punch = 20
+		pcs_kick = 20
+		pcs_def = 20
+		pcs_humint = 10
+		pcs_persuas = 10
+		pcs_skin = 40
+		salo = 75
+		pirsD = 4
+		PirsD4_owned = 1
+		$currentpursetype = 'dolls'
+		currentpursenumber = 16
+		dolls_purses[16] = 1
+		bag = 1
+		school_clothing = 5
+		if player_avatar ! 1: pcs_hairlng = 55
+		gs 'npc_relationship', 'socialgroup_setting', 0, 0, -10, 0, -10, -10
+		npc_rel['A24'] += 10
+		npc_rel['A155'] += 15
+		npc_rel['A157'] += 10
+		npc_rel['A143'] += 10
+		npc_rel['A144'] += 15
+		npc_rel['A145'] += 10
+		npc_rel['A28'] -= 10
+		npc_rel['A29'] -= 20
+		npc_rel['A33'] -= 10
+		npc_rel['A34'] -= 10
+		grupvalue[4] = 750
+		willpowermax = 120
+		gs 'grades', 'grade_award', 'school', 'math', 25
+		gs 'grades', 'grade_award', 'school', 'rus', 25
+		gs 'grades', 'grade_award', 'school', 'lit', 25
+		gs 'grades', 'grade_award', 'school', 'art', 25
+		gs 'grades', 'grade_award', 'school', 'bio', 25
+		gs 'grades', 'grade_award', 'school', 'pe', 80
+		gs 'grades', 'grade_award', 'school', 'eng', 25
+		gs 'grades', 'grade_award', 'school', 'geo', 25
+		gs 'grades', 'grade_award', 'school', 'sci', 25
+		gs 'grades', 'grade_award', 'school', 'shop', 80
+		gs 'grades', 'grade_award', 'school', 'comp', 25
+		gs 'grades', 'grade_award', 'school', 'mus', 25
+		gs 'grades', 'grade_award', 'school', 'his', 25
+		gt $loc, $loc_args
+	end
+end
+
+if $ARGS[0] = 'vitekgf':
+	'<center><h4><font color="maroon">Vitek''s girlfriend</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/gopnik_3.jpg"></center>'
+	'You are <<$npc_nickname[''A9'']>>''s girlfriend. You love the thrill and danger of hanging out with the gopniks, even if you lack the true attitude yourself. You met <<$npc_nickname[''A9'']>> after he and <<$npc_firstname[''A11'']>> became friends. There was something about his bad boy attitude that drew you in, and you soon found yourself falling for him.'
+	'As you developed, he started to take an interest in you as well. Soon thereafter the two of you started dating. You''re not technically a gopnik - you are considered more of a wannabe - but the rest of the gopniks seem to accept you anyways. You’’re not sure what would happen if you ever broke up with <<$npc_nickname[''A9'']>>, however, as being his girlfriend and hanging out with the other gopniks has cost you any real, close friends outside of their group.'
+	act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		traits['nerd_points'] = -10
+		gs 'intro_city_select', 'gopnik'
+		alterstrtimg = 20
+		pcs_sprt = 30
+		pcs_stren = 30
+		pcs_vital = 30
+		pcs_react = 30
+		pcs_agil = 30
+		pcs_chrsm = 40
+		genbsize = 32
+		pcs_humint = 20
+		pcs_makupskl = 30
+		pcs_heels = 30
+		pcs_jab = 10
+		pcs_punch = 10
+		pcs_kick = 10
+		pcs_def = 10
+		pirsD = 3
+		PirsD3_owned = 1
+		$currentpursetype = 'dolls'
+		currentpursenumber = 19
+		dolls_purses[19] = 1
+		bag = 1
+		npc_rel['A9'] += 50
+		npc_rel['A10'] += 5
+		npc_rel['A11'] += 5
+		npc_rel['A24'] -= 10
+		npc_rel['A28'] -= 10
+		npc_rel['A29'] -= 20
+		npc_rel['A33'] -= 10
+		grupvalue[4] = 600
+		if player_avatar = 0:
+			pcs_hairlng = 200
+			pcs_eyesize = 2
+			pcs_lip = 2
+			pcs_lashes = 1
+		end
+		pcs_skin = 50
+		pcs_tan = 5
+		pcs_vag = 1
+		pcs_throat = 1
+		salo = 87
+		stat['hj'] = 10
+		stat['bj'] = 5
+		stat['vaginal'] = 2
+		gs 'grades', 'grade_award', 'school', 'math', 55
+		gs 'grades', 'grade_award', 'school', 'rus', 55
+		gs 'grades', 'grade_award', 'school', 'lit', 55
+		gs 'grades', 'grade_award', 'school', 'art', 55
+		gs 'grades', 'grade_award', 'school', 'bio', 55
+		gs 'grades', 'grade_award', 'school', 'pe', 55
+		gs 'grades', 'grade_award', 'school', 'eng', 55
+		gs 'grades', 'grade_award', 'school', 'geo', 55
+		gs 'grades', 'grade_award', 'school', 'sci', 55
+		gs 'grades', 'grade_award', 'school', 'shop', 55
+		gs 'grades', 'grade_award', 'school', 'comp', 55
+		gs 'grades', 'grade_award', 'school', 'mus', 55
+		gs 'grades', 'grade_award', 'school', 'his', 55
+
+!! Vitek;s relationship
+		Gspassed = 0
+		kotovLoveQW = 1
+		vitekvisit = 5
+		npc_sex['A9'] += 5
+		willpowermax = 100
+		gt $loc, $loc_args
+	end
+end
+
+if $ARGS[0] = 'alternative':
+!!can choose two more starting tattoo''s
+	'<center><h4><font color="maroon">Alternative</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/gopnik_4.jpg"></center>'
+	'You march to your own tune. You’’re not a follower - you’’re a leader! You just have no desire to actually lead anything. You do what you want when you want and you do it with a fuck-it-all attitude. The local gopniks respect you and for the most part you get along with them. You''re not one of them, however, but rather a kindred spirit looking to walk your own path and raise a little hell along the way.'
+	*nl
+	'Unlike the gopniks, you have far less interest in fighting or causing problems, instead just looking for a good time - you love to party more than anything else. The cool kids don''t completely look down their nose at you. Even if they don''t approve of your clothes, they respect your love of looking nice and having a good time. You have problems at home and school due to your behavior. This is especially true with your mother and stepfather, who see you going down the wrong path.'
+	act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		traits['nerd_points'] = -20
+		pcs_exhib = 25
+		Exhibitionist_lvl = 1
+		addictive_exp = 1
+		addictive_trait_lvl = 1
+		gs 'intro_city_select', 'gopnik'
+		alterstrtimg = 21
+		pcs_vital = 40
+		pcs_agil = 40
+		pcs_react = 40
+		salo = 50
+		pcs_chrsm = 35
+		pcs_humint = 20
+		pcs_persuas = 10
+		pcs_makupskl = 40
+		pcs_danc = 20
+		pcs_heels = 20
+		falselashesplain = 5
+		kosmetica = 20
+		pirsD = 5
+		PirsD5_owned = 1
+		pirsA = 2
+		PirsA2_owned = 1
+		$currentpursetype = 'dolls'
+		currentpursenumber = 15
+		dolls_purses[15] = 1
+		bag = 1
+		if player_avatar = 0:
+			pcs_eyesize = 2
+			pcs_lip = 2
+			pcs_lashes = 1
+		end
+		school_clothing = 4
+		pcs_skin = 60
+		pcs_tan = 5
+		pcs_inhib = 35
+		pcs_vag = 1
+		pcs_ass = 1
+		pcs_throat = 5
+		stat['hj'] = 15
+		stat['bj'] = 10
+		stat['vaginal'] = 3
+		stat['anal'] = 1
+		stat['vaginal_finger'] = 5
+		stat['vaginal_finger_give'] = 5
+		stat['cuni'] = 3
+		stat['cuni_give'] = 3
+		gs 'fame', 'pav', 'sex', 40
+		Gspassed = 0
+		npc_rel['A154'] += 10
+		npc_rel['A155'] += 10
+		npc_rel['A156'] += 10
+		npc_rel['A158'] += 10
+		npc_rel['A143'] += 10
+		npc_rel['A144'] += 20
+		npc_rel['A28'] -= 10
+		npc_rel['A29'] -= 10
+		npc_rel['A33'] += 10
+		grupvalue[1] = 200
+		grupvalue[2] = 400
+		willpowermax = 120
+		gs 'grades', 'grade_award', 'school', 'math', 25
+		gs 'grades', 'grade_award', 'school', 'rus', 25
+		gs 'grades', 'grade_award', 'school', 'lit', 25
+		gs 'grades', 'grade_award', 'school', 'art', 25
+		gs 'grades', 'grade_award', 'school', 'bio', 25
+		gs 'grades', 'grade_award', 'school', 'pe', 80
+		gs 'grades', 'grade_award', 'school', 'eng', 25
+		gs 'grades', 'grade_award', 'school', 'geo', 25
+		gs 'grades', 'grade_award', 'school', 'sci', 25
+		gs 'grades', 'grade_award', 'school', 'shop', 55
+		gs 'grades', 'grade_award', 'school', 'comp', 25
+		gs 'grades', 'grade_award', 'school', 'mus', 55
+		gs 'grades', 'grade_award', 'school', 'his', 25
+		gt $loc, $loc_args
+	end
+end
+
+if $ARGS[0] = 'outcast':
+	pcs_prcptn = 35
+	pcs_inhib = 10
+	pcs_makupskl = 0
+	grupvalue[1] = 100
+	grupvalue[2] = 100
+	grupvalue[3] = 300
+	grupvalue[4] = 100
+	grupvalue[6] = 200
+	gs 'npc_relationship', 'socialgroup_setting', -10, -5, 0, -5, 0, 0
+	npc_rel['A133'] += 20
+	npc_rel['A11'] -= 10
+	npc_rel['A33'] -= 10
+	npc_rel['A34'] -= 10
+	if player_avatar = 0:
+		pcs_hairlng = 200
+		pcs_haircol = 1
+		pcs_eyecol = 0
+		pcs_eyesize = 1
+		pcs_lip = 1
+		pcs_lashes = 0
+	end
+	pcs_skin = 0
+	pcs_tan = 0
+	grupTipe=5
+	shampoo = 20
+end
+
+if $ARGS[0] = 'friendless':
+	'<center><h4><font color="maroon">Friendless</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/outcast_1.jpg"></center>'
+	'You were never very social and never learned how to make friends. You were often made fun of or bullied by the other kids as you grew up. As such, you naturally shielded away from them, an action that only served to isolate you even further. Now, years later, you have yet to make any real friends - even Vasily, who is your closest friend, wouldn''t be considered a particularly close one. In public, he scorns you like all the rest, but is a little nicer in private.'
+	act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		gs 'intro_city_select', 'outcast'
+		gs 'npc_relationship', 'socialgroup_setting', -10, -10, -10, -10, -10, 0
+		alterstrtimg = 22
+		genbsize = 17
+		pcs_chrsm = 20
+		pcs_observ = 20
+		pcs_skin = 10
+		pcs_makupskl = 10
+		npc_rel['A11'] -= 20
+		grupvalue[1] = 50
+		grupvalue[3] = 200
+		willpowermax = 80
+		salo = 68
+		gs 'grades', 'grade_award', 'school', 'math', 55
+		gs 'grades', 'grade_award', 'school', 'rus', 25
+		gs 'grades', 'grade_award', 'school', 'lit', 55
+		gs 'grades', 'grade_award', 'school', 'art', 55
+		gs 'grades', 'grade_award', 'school', 'bio', 55
+		gs 'grades', 'grade_award', 'school', 'pe', 55
+		gs 'grades', 'grade_award', 'school', 'eng', 25
+		gs 'grades', 'grade_award', 'school', 'geo', 55
+		gs 'grades', 'grade_award', 'school', 'sci', 55
+		gs 'grades', 'grade_award', 'school', 'shop', 55
+		gs 'grades', 'grade_award', 'school', 'comp', 55
+		gs 'grades', 'grade_award', 'school', 'mus', 55
+		gs 'grades', 'grade_award', 'school', 'his', 55
+		gt $loc, $loc_args
+	end
+end
+
+if $ARGS[0] = 'uglyduckling':
+	'<center><h4><font color="maroon">Ugly duckling</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/outcast_2.jpg"></center>'
+	'Some girls blossom early and some have natural good looks... you got neither. In fact, you seem to have been cursed with an androgynous face and body. You have been mistaken for a boy more times than you would care to admit. You have never learned to use makeup, but maybe you should. It might help make people realize you are indeed a girl.'
+	*nl
+	'Your body seemed to have grown out of sync, leaving you looking odd and, at best, unattractive for most of your life. Now in your teens, your body is starting to even out in growth but you are still very androgynous and you are still considered by most to be ugly. Your lack of good looks has made you a social pariah. Nobody seems to like you or want to spend time with you unless they are making fun of you.'
+	act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		gs 'intro_city_select', 'outcast'
+		gs 'npc_relationship', 'socialgroup_setting_boys', -10, -10, -10, -10, 0, 0
+		grupvalue[1] = 0
+		uglyduck_flag = 1
+		alterstrtimg = 23
+		if glass < 1 : glass = 1
+		genbsize = 2
+		pcs_inhib = 5
+		pcs_skin = 1
+		if player_avatar = 0:
+			pcs_eyesize = 0
+			pcs_lip = 0
+			pcs_lashes = 2
+		end
+		school_clothing = 3
+		salo = 210
+		willpowermax = 70
+		gs 'grades', 'grade_award', 'school', 'math', 55
+		gs 'grades', 'grade_award', 'school', 'rus', 25
+		gs 'grades', 'grade_award', 'school', 'lit', 55
+		gs 'grades', 'grade_award', 'school', 'art', 55
+		gs 'grades', 'grade_award', 'school', 'bio', 55
+		gs 'grades', 'grade_award', 'school', 'pe', 25
+		gs 'grades', 'grade_award', 'school', 'eng', 55
+		gs 'grades', 'grade_award', 'school', 'geo', 55
+		gs 'grades', 'grade_award', 'school', 'sci', 55
+		gs 'grades', 'grade_award', 'school', 'shop', 55
+		gs 'grades', 'grade_award', 'school', 'comp', 55
+		gs 'grades', 'grade_award', 'school', 'mus', 55
+		gs 'grades', 'grade_award', 'school', 'his', 55
+		gt $loc, $loc_args
+	end
+end
+
+if $ARGS[0] = 'goodgirl':
+	'<center><h4><font color="maroon">Good girl</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/outcast_3.jpg"></center>'
+	'You are a good girl. The kind parents, teachers and adults love, but the other kids hate. You always reminded the teacher to give out homework and you would tell on anyone for doing anything. You love the attention you get from adults, and while you can feel lonely at times, you are still pretty happy knowing you''re a good girl. You also regularly attend church just like any good girl should. The nerds seem to tolerate you the most, probably because they almost never misbehave and always do their homework anyways.'
+	act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		traits['nerd_points'] = 100
+		traits['nerd_status'] = 3
+		traits['nerd_lernHome'] = 5
+		gs 'intro_city_select', 'outcast'
+		gs 'npc_relationship', 'socialgroup_setting', -5, -5, 0, -20, 0, 0
+		npc_rel['A25'] -= 5
+		npc_rel['A28'] += 10
+		npc_rel['A29'] += 10
+		npc_rel['A11'] -= 20
+		grupvalue[3] = 400
+		alterstrtimg = 24
+		pcs_intel = 35
+		pcs_sprt = 60
+		pcs_inhib = 5
+		pcs_makupskl = 10
+		money += 1000
+		shampoo = 10
+		pcs_skin = 30
+		$currentpursetype = 'gm'
+		currentpursenumber = 6
+		dolls_purses[6] = 1
+		bag = 1
+		if player_avatar = 0:
+			pcs_hairlng = 300
+			pcs_eyesize = 3
+			pcs_lip = 2
+			pcs_lashes = 1
+		end
+		school_clothing = 3
+		salo = 48
+		genbsize = 17
+		willpowermax = 150
+		gs 'grades', 'grade_award', 'school', 'math', 80
+		gs 'grades', 'grade_award', 'school', 'rus', 80
+		gs 'grades', 'grade_award', 'school', 'lit', 80
+		gs 'grades', 'grade_award', 'school', 'art', 80
+		gs 'grades', 'grade_award', 'school', 'bio', 80
+		gs 'grades', 'grade_award', 'school', 'pe', 55
+		gs 'grades', 'grade_award', 'school', 'eng', 80
+		gs 'grades', 'grade_award', 'school', 'geo', 80
+		gs 'grades', 'grade_award', 'school', 'sci', 80
+		gs 'grades', 'grade_award', 'school', 'shop', 55
+		gs 'grades', 'grade_award', 'school', 'comp', 80
+		gs 'grades', 'grade_award', 'school', 'mus', 55
+		gs 'grades', 'grade_award', 'school', 'his', 80
+		gt $loc, $loc_args
+	end
+end
+
+if $ARGS[0] = 'slut':
+	'<center><h4><font color="maroon">Slut</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/outcast_4.jpg"></center>'
+	'You were the first girl at your age to lose her virginity, to your childhood friend Vasily. You became curious about sex far sooner than other kids your age and started masturbating long before the others in your year. You also found a desire for pornography and would masturbate to it. You loved the sensation so much that you wanted to find out how good sex would feel. Once you tried it, you learned that you loved it - you really love everything about it.'
+	*nl
+	'The boys took advantage of your sexual needs and made you give them handjobs, which then led to blowjobs under the bleachers during recess and after school (sometimes they would return the favour by fingering you or a few times even eating you out) You always savored swallowing their cum, and you even love how it tastes. The only thing you like more than sucking cock and swallowing cum is getting fucked by a huge cock while sucking on another one.'
+	*nl
+	'However, your sex addiction has made you a social pariah. The girls all despise you and the boys publicly mock you, although they don''t mind using you. The nerds completely avoid you, while the gopniks seem to tolerate you the most (likely because they enjoy your blowjobs)'
+	act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		trait['commando_lvl'] = 2
+		trt_cumeater = 1 and cumeater_cheat = 1
+		pcs_exhib = 40
+		Exhibitionist_lvl = 1
+		gs 'intro_city_select', 'outcast'
+		gs 'npc_relationship', 'socialgroup_setting', -10, -10, -10, -10, 0, 0
+		gs 'npc_relationship', 'socialgroup_setting_boys', 10, 10, 0, 15, 0, 0
+		npc_rel['A11'] += 20
+		npc_rel['A25'] += 30
+		npc_rel['A28'] -= 20
+		npc_rel['A29'] -= 30
+		npc_rel['A33'] -= 10
+		npc_rel['A34'] -= 10
+		npc_rel['A144'] += 10
+		grupvalue[1] = 0
+		grupvalue[2] = 50
+		grupvalue[3] = 50
+		grupvalue[4] = 100
+		alterstrtimg = 25
+		pcs_makupskl = 50
+		pcs_heels = 50
+		genbsize = 32
+		kosmetica = 30
+		falselashesplain = 20
+		$currentpursetype = 'cats'
+		currentpursenumber = 10
+		cats_purses[10] = 1
+		bag = 1
+		gs 'obj_din', 'old'
+		greben = 1
+		kosmetitka = 10
+		salfetka = 10
+		stanok = 10
+		shampoo = 20
+		pirsC = 2
+		PirsC2_owned = 1
+		motherKnowSpravka = 1
+		if player_avatar = 0:
+			pcs_hairlng = 120
+			pcs_eyesize = 2
+			pcs_lip = 2
+			pcs_lashes = 1
+		end
+		school_clothing = 2
+		pcs_perform = 20
+		pcs_skin = 60
+		pcs_tan = 20
+		pcs_vag = 10
+		pcs_ass = 10
+		pcs_throat = 10
+		pcs_inhib = 60
+		gs 'fame', 'pav', 'sex', 600
+		GspravkaT = 2
+		motherKnowSpravka = 2
+		Gspassed = 0
+		salo = 110
+		stat['porn'] = 75
+		stat['mast'] = 100
+		stat['hj'] = 70
+		stat['bj'] = 50
+		stat['vaginal_finger'] = 20
+		stat['cuni'] = 5
+		stat['vaginal'] = 30
+		stat['anal'] = 20
+		stat['group'] = 5
+		guy = 15
+		orgasm = 120
+		swallow = 40
+		trt_cumeater = 1
+		grupvalue[4] = 100
+		willpowermax = 50
+		motherKnowWhore = 1
+		gs 'grades', 'grade_award', 'school', 'math', 55
+		gs 'grades', 'grade_award', 'school', 'rus', 55
+		gs 'grades', 'grade_award', 'school', 'lit', 55
+		gs 'grades', 'grade_award', 'school', 'art', 55
+		gs 'grades', 'grade_award', 'school', 'bio', 55
+		gs 'grades', 'grade_award', 'school', 'pe', 55
+		gs 'grades', 'grade_award', 'school', 'eng', 55
+		gs 'grades', 'grade_award', 'school', 'geo', 55
+		gs 'grades', 'grade_award', 'school', 'sci', 55
+		gs 'grades', 'grade_award', 'school', 'shop', 55
+		gs 'grades', 'grade_award', 'school', 'comp', 55
+		gs 'grades', 'grade_award', 'school', 'mus', 55
+		gs 'grades', 'grade_award', 'school', 'his', 55
+		gt $loc, $loc_args
+	end
+end
+
+if $ARGS[0] = 'goth':
+	'<center><h4><font color="maroon">Goth</font></h4></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/outcast_5.jpg"></center>'
+	'There is always an oddball, the weirdo at every school and at yours, it seems you are the one. You have always felt different, like a person standing outside looking in at the world. You never felt like you fit in, at least until you watched some American movies, saw some goths and suddenly you felt like you belonged. You quickly used all the allowance you had to buy new clothes and makeup so you could finally feel good about yourself. Your family doesn''t approve, hell no one seems to approve but you don''t care.'
+	*nl
+    'You are the school''s resident Goth. The Dark Temptress that all the boys secretly dream of, weaver of bad poetry and suicide covenants... Yep, people have too much imagination. Most adults think that you are going to sacrifice their children. In fact, everyone seems to think you are going to sacrifice someone or commit suicide. The school''s kids aren''t better, with the so-called "cool girls" leading an ostracism campaign against you... Sigh... Fortunately, not everyone is a brainwashed sheep happily following all along, a few think for themselves. The nerds like your reading proclivity and that you are into some of the same things they are; you think they might even invite you to their game one day. A couple of the Gopniks like your party attitude, specifically the kids in the band Pizdá Buysto, who seem to respect your artistic disposition. Or maybe their lead singer just wants to get in your panties, it''s hard to tell.'
+    act 'Select another': gt 'intro_city_select', 'charselect'
+	act 'Confirm this option':
+		traits['nerd_points'] = -10
+		gs 'intro_city_select', 'outcast'
+		gs 'npc_relationship', 'socialgroup_setting', -5, 0, 0, +5, 0, -10
+        npc_rel['A28'] -= 20
+	    npc_rel['A29'] -= 20
+		npc_rel['A33'] -= 20
+	    npc_rel['A34'] -= 20
+	    npc_rel['A144'] += 10
+		npc_rel['A155'] += 5
+		grupvalue[4] = 300
+        alterstrtimg = 28
+		genbsize = 17
+		salo = 45
+		pcs_chrsm = 35
+		pcs_intel = 35
+		pcs_sprt = 45
+		pcs_observ = 5
+		pcs_heels = 30
+		pcs_makupskl = 50
+		pcs_artskls = 10
+		pcs_sewng = 20
+		pcs_skin = 50
+	    pcs_inhib = 25
+		willpowermax = 100
+		if player_avatar = 0:
+		    pcs_hairlng = 265
+            pcs_haircol = 0
+			pcs_eyesize = 3
+			pcs_eyecol = 1
+			pcs_lashes = 1
+        end
+		school_clothing = 1
+        kosmetica = 25
+		stanok = 20
+		tampon = 10
+        $currentpursetype = 'dolls'
+		currentpursenumber = 18
+		dolls_purses[18] = 1
+		bag = 1
+		umbrella = 1
+		money -= 1000
+		gs 'grades', 'grade_award', 'school', 'math', 55
+		gs 'grades', 'grade_award', 'school', 'rus', 55
+		gs 'grades', 'grade_award', 'school', 'lit', 80
+		gs 'grades', 'grade_award', 'school', 'art', 80
+		gs 'grades', 'grade_award', 'school', 'bio', 55
+		gs 'grades', 'grade_award', 'school', 'pe', 70
+		gs 'grades', 'grade_award', 'school', 'eng', 55
+		gs 'grades', 'grade_award', 'school', 'geo', 55
+		gs 'grades', 'grade_award', 'school', 'sci', 55
+		gs 'grades', 'grade_award', 'school', 'shop', 55
+		gs 'grades', 'grade_award', 'school', 'comp', 55
+		gs 'grades', 'grade_award', 'school', 'mus', 80
+		gs 'grades', 'grade_award', 'school', 'his', 55
+		gt $loc, $loc_args
+	end
+end
+
+
+if $ARGS[0] = 'sg_settings':
+	gm_school[6] = 1
+	sisboyday = -2
+	home_owned[1] = 0
+	cltarelka = 0
+	fairy = 0
+	eda = 0
+	poroshok = 0
+	shampoo = 0
+
+	hcolmotherremember = pcs_haircol
+	hcolfatherremember = pcs_haircol
+	hcolfronce = 1
+
+	!!Setting Kolkas birthday based off the PCs
+	koldobtmp_d = rand(1,28)
+	koldobtmp_y = birthyear
+	koldobtmp_m = birthmonth + 11
+	if koldobtmp_m > 12:
+		koldobtmp_y += 1
+		koldobtmp_m -= 12
+	end
+	npc_dob['A34'] = koldobtmp_y * 10000
+	npc_dob['A34'] += koldobtmp_m * 100
+	npc_dob['A34'] += koldobtmp_d
+	killvar 'koldobtmp_d' & killvar 'koldobtmp_m' & killvar 'koldobtmp_y'
+end
+
+--- intro_city_select ---------------------------------
+

+ 525 - 0
locations/intro_city_tg.qsrc

@@ -0,0 +1,525 @@
+# intro_city_tg
+
+music_loop = 0
+CLOSE ALL
+gs 'themes', 'indoors'
+$start_type = 'city_tg'
+
+if $ARGS[0] = 'start':
+	menu_off = 1
+	'<center><b><font color="maroon">Apartment</font></b></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/1_tf/1.jpg"></center>'
+	'You wake up to the sound of your alarm clock. You hear Luda, your wife, mumbling next to you, "Don''t want to, it''s too early." She pulls her blanket up and rolls over. You reach over and turn the clock off.'
+	*nl
+	'<i>There are days when I just want to keep on sleeping</i>, you think to yourself. <i>But I can''t, not today.</i>'
+	act 'Go to the bathroom':
+		*clr & cla
+		'<center><img <<$set_imgh>> src="images/system/1_openings/1_tf/mikhail_2.jpg"></center>'
+		'Quietly, so that you don''t wake up your daughter, you go to the bathroom and take care of your morning routine.'
+		act 'Leave the apartment':
+			*clr & cla
+			'<center><img <<$set_imgh>> src="images/system/1_openings/1_tf/3.jpg"></center>'
+			'In a parking lot near your house sits your car. You unlock it with the remote key and climb in.'
+			act 'Go to work':
+				*clr & cla
+				'<center><img <<$set_imgh>> src="images/system/1_openings/1_tf/4.jpg"></center>'
+				'You turn the key and the engine roars to life. As you drive to work the roads are filled with traffic, but it''s the morning rush hour, so it''s no surprise. You drive for what feels like an eternity, give or take an hour, but you eventually reach the office. The music on the radio was pleasant, at least.'
+				act 'Park at the office':
+					*clr & cla
+					'<center><img <<$set_imgh>> src="images/system/1_openings/1_tf/5.jpg"></center>'
+					'You pull into a parking lot near the building and manage to find a good spot. You greet the security guard on your way in to the building, and then go upstairs to your office. Shortly after you sit down at your desk and boot up your computer, your boss''s secretary comes in and hands you a folder with several travel documents.'
+					*nl
+					'"Am I going on a business trip or something?" you ask her.'
+					*nl
+					'"Yes, the director said it had something to do with a construction project, out in the middle of nowhere, but that''s pretty much all I know," Oksana says.'
+					*nl
+					'After she leaves, you read over the travel documents and fill them out. Time to go to the director.'
+					act 'Go and see your boss':
+						*clr & cla
+						'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_roman.jpg"></center>'
+						'You head into the directors'' office, greet him and hand him the papers to sign. The director, Roman Gromov, scans through the text before signing off on it with a broad, sweeping stroke.'
+						*nl
+						'"Ms. Glavbukh is in her office. Go get some travel money while I make a few calls. We''ll discuss your trip when you get back."'
+						act 'Go to the chief accountant':
+							*clr & cla
+							'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_marina.jpg"></center>'
+							'Marina is indeed already in her office. After filing your signed travel documents, she grumbles about antiquated systems as she counts out the money.'
+							act 'Return to the director':
+								*clr & cla
+								'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_roman.jpg"></center>'
+								'Roman is busy talking on the phone when you re-enter the his office, he gestures for you to sit down on one of the chairs across from him.'
+								*nl
+								'"Yes, I understand... yes. I will send Mikhail over ASAP, he''ll represent me... Yes... Tell your men to work on some other parts of the project in the meantime. Have Igor guard the pit and let no one make any fuss, and make sure nobody gets wind of this and, you know, try to halt the construction... Okay, we''ll keep in touch."'
+								*nl
+								'Roman hangs up and turns to you.'
+								*nl
+								'"Last night, while excavating for the foundations, the workers stumbled upon something; one of the excavators dug into a hollow space of some sort. Luckily Igor was on site and he halted the excavation.'
+								*nl
+								'"It''s not clear what exactly it is, yet. Maybe an abandoned bunker or a cave. But in any case, if there are any more chambers under the foundation, we might not be able to build on the land. So what I want you to do, is to go to the construction site, figure out exactly what the problem is and solve this whole mess as quickly as possible."'
+								act 'Remind him of the correct procedures':
+									*clr & cla
+									'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_roman.jpg"></center>'
+									'"Firstly we need to talk to..." you start to say, but are quickly interrupted by your boss.'
+									*nl
+									'"Mikhail, do you realize what''s at stake here? We''re near the end of our credit line, we still have unfinalized agreements on the project''s contract, and we already have guys digging the pit. If there is a too big hole under the foundation, and we can''t build on the site, that could bankrupt the company. So this mysterious structure must be addressed immediately and I have to hold the fort here and keep a lid on things."'
+									act 'Doesn''t look like you have a choice': gt 'intro_city_tg', 'roadPRE'
+								end
+							end
+						end
+					end
+				end
+			end
+		end
+	end
+end
+
+if $ARGS[0] = 'roadPRE':
+	music_loop = 0
+	CLOSE ALL
+	'<center><img <<$set_imgh>> src="images/system/1_openings/1_tf/4.jpg"></center>'
+	'You leave the office and from your car phone your wife Luda. You explain the situation to her and as soon as you finish the call, you drive off to the construction site.'
+	act 'Drive':
+		*clr & cla
+		'<center><img <<$set_imgh>> src="images/system/1_openings/shared/site_working.jpg"></center>'
+		'You''ve been on the highway for hours before you arrive at the town near the site, leaving you feeling tired. But before you can check into a hotel and get some sleep, you need to get an understanding of the magnitude of the problem you''re dealing with. You follow the directions to the site. Igor calls on the way and tells you that you won''t have to go through a security check.'
+		*nl
+		'You arrive and park your car at the site. You see Igor waving at you from a distance and you walk up to him.'
+		act 'Greet Igor':
+			*clr & cla
+			'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_igor.jpg"></center>'
+			'Igor greets you. He is obviously concerned about the situation and without delay leads you to the pit''s fenced-off entrance. It rained earlier so the ground is all muddy, you''re going to have to clean your shoes when you get back to the hotel.'
+			*nl
+			'"The ladder''s over there," Igor informs you, while pointing to your left.'
+			*nl
+			'You reach the hole in the ground and peek inside using the small flashlight from your keychain. "There seems to be a floor about 5 meters down."'
+			*nl
+			'"Well, what do you think Mikhail? Shall we go down?" Igor says with a faint glimmer of adventure in his eyes.'
+			act 'Descend':
+				*clr & cla
+				'<center><img <<$set_imgh>> src="images/system/1_openings/shared/site_cave_1.jpg"></center>'
+				'Igor hands you a powerful flashlight and tells the guard to get the ladder over here. Igor is the first one to go down, once he reaches the bottom, he holds the ladder so you can safely climb down as well.'
+				*nl
+				'The cave smells musty and looks all gloomy, but you can breathe freely and the light from your flashlight illuminates the walls. You shoot a beam of light into the corridor and in the distance see something that resembles a door.'
+				*nl
+				'"Damn. If any historians hear about this, they''ll be all over this construction site." Igor mutters.'
+				*nl
+				'You walk up to the door and see drawings on it. Most of them resemble people, but with other stick figures as well.'
+				act 'Open the door':
+					*clr & cla
+					'<center><img <<$set_imgh>> src="images/system/1_openings/shared/site_cave_3.jpg"></center>'
+					'You lean against the door, it''s stiff but you manage to push it open.'
+					*nl
+					'"Oh shit...! Take a look over there. Human bones." Igor says nervously.'
+					*nl
+					'You take a look at what Igor is pointing at and see a pile of human bones with a skull on top.'
+					*nl
+					'"A tomb, I suppose." Igor mutters looking apprehensive.'
+					*nl
+					'"Probably", you nod. "We can''t rule anything out just yet."'
+					act 'Go further':
+						*clr & cla
+						'<center><img <<$set_imgh>> src="images/system/1_openings/shared/site_cave_5.jpg"></center>'
+						'Further into the cave, you reach a room that resembles some kind of archive, filled with dozens of old, dusty scrolls inside of racks built into the walls.'
+						*nl
+						'Igor takes one of the scrolls and carefully unrolls it. "What the hell? Look at this, it must be some kind of ancient language," Igor says. "I''ll take one with me, and see what I can find out about these, maybe I can get it deciphered. So we''ll know what we are dealing with."'
+						*nl
+						'Looking around, you notice another door on the other side of the chamber, you walk over and open it.'
+						act 'Enter the room':
+							*clr & cla
+							'<center><img <<$set_imgh>> src="images/system/1_openings/shared/site_cave_altar.jpg"></center>'
+							'There''s an altar in the center of the room, on it there are various pots, several gold amulets and even some stone figures. You continue looking around the room curiously, trying to figure out what it''s purpose was.'
+							*nl
+							'Looking closely at the altar, you notice a strange little amulet placed at the very top.'
+							act 'Examine the amulet':
+								*clr & cla
+								'<center><img <<$set_imgh>> src="images/system/1_openings/shared/item_amulet.jpg"></center>'
+								'You pick up the strange amulet and examine it. <i>This is clearly very old</i>, you think to yourself.'
+								*nl
+								'While holding the amulet, you realize that it''s getting warm, almost hot. Suddenly you feel heat coursing through your entire body. You feel a surge of strength inside you. It''s like you just finished a long jog, but without the fatigue.'
+								*nl
+								'Igor enters the room with one of the scrolls in his hands. "Huh. Interesting little room.", he says, glancing over the altar. "Well, we have to make a decision: either we fill the catacombs up to the brink with cement or we let someone into these rooms. Who knows what all this stuff is, maybe it''s worth more than it looks."'
+								act 'Consult you boss':
+									*clr & cla
+									'<center><img <<$set_imgh>> src="images/system/1_openings/shared/site_cave_altar.jpg"></center>'
+									'"I''ve got to think about it and consult the director before we do anything." You reply and without thinking about it, you put the small amulet into your pocket.'
+									*nl
+									'"Well, one thing''s for sure, you won''t get reception down here. Let''s go outside." Igor tells you.'
+									act 'Go back to the surface':
+										*clr & cla
+										'<center><img <<$set_imgh>> src="images/system/1_openings/shared/site_working.jpg"></center>'
+										'You walk together with Igor out of the strange chambers and up the ladder, back to the surface.'
+										*nl
+										'"We must have been down there longer than I thought, it''s already late. There will only be security on site now so there''s nothing we can do here until the morning, you should go to the hotel." Igor says.'
+										*nl
+										'With a hasty goodbye to Igor, you make your way back to your car.'
+										'<i>Damn</i>, you think, <i>tomorrow''s going to be a stressful day.</i>'
+										act 'Go to the hotel': gt 'intro_city_tg', 'otelPRE'
+									end
+								end
+							end
+						end
+					end
+				end
+			end
+		end
+	end
+end
+
+if $ARGS[0] = 'otelPRE':
+	$temp_firstname = '<<$pcs_firstname>>'
+	$temp_lastname = '<<$pcs_lastname>>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/1_tf/6.jpg"></center>'
+	'Your trip to the hotel is quite uneventful compared to your tomb raiding adventure.'
+	*nl
+	'You park your car and go to the receptionist to get a room. There are only double rooms available, but it''s going on the company card, so that just means you''ll get a bigger room. You swipe your company card and take your room key.'
+	act 'Head upstairs to your room':
+		*clr & cla
+		'<center><img <<$set_imgh>> src="images/system/1_openings/1_tf/7.jpg"></center>'
+		'Lying down on one of the beds, you start to wonder just who built that crypt and what it''s purpose was. Your thoughts drift to that amulet you found. The way that thing you touched half an hour ago is still making you feel wonderful baffles you.'
+		act 'Call the director':
+			*clr & cla
+			'<center><img <<$set_imgh>> src="images/system/1_openings/1_tf/7.jpg"></center>'
+			'You dial Romans'' number and after a few rings, he picks up. You report to him the details of what you found at the site with Igor: an ancient tomb, human bones, scrolls in a mysterious language and the altar in that room.'
+			*nl
+			'The director stays silent while you give your report. A few moments later, he decides that it would be best to stop the construction. He tells you to stay and keep watch over the site until further notice.'
+			*nl
+			'You put the phone away. <i>Looks like this trip is going to last longer than expected</i>, you think to yourself.'
+			act 'Go to bed':
+				*clr & cla
+				'<center><img <<$set_imgh>> src="images/system/1_openings/1_tf/7.jpg"></center>'
+				'It doesn''t take you long to drift off to sleep'
+				*nl
+				'Images begin to form in your mind and you soon find yourself in a middle of a dream. The amulet stands before you and out of it comes a ghost of some sort. Before you even realize what you are doing, you find yourself staring deep into the ghost''s eyes which then turn into two planet earths.'
+				*nl
+				'"Looking at the world most just see the mundane, but there is more to it, much more and now you see that too. You have the potential to shape it all, but first, you have company."'
+				*nl
+				'Suddenly your senses return and you are aware of the hotel room around you, you can tell you are not alone.'
+				act 'Open your eyes':
+					*clr & cla
+					'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_reinhold.jpg"></center>'
+					'As you open your eyes, you see a man standing in your room. He is wearing a long black coat and his face looks weary; he is unshaven and reminds you of most police detectives in Hollywood films.'
+					*nl
+					'"Where is the amulet?" he approaches you.'
+					act 'Ask who he is':
+						*clr & cla
+						'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_reinhold.jpg"></center>'
+						'"Who are you?" you ask puzzledly. The man''s sudden appearance and a sense you never knew you had tell you something about him, that he is not of the world you know.'
+						*nl
+						'"Listen, don''t cause any problems now. Give me the amulet, close the construction site, and all will be fine. After all that place belongs to us," he says in a firm voice.'
+						*nl
+						'<i>Belongs to us?</i> His response leaves you bewildered, wondering who he is and what this is all about.'
+						*nl
+						'"Well, how about I give you a small taste of my power." the man says, and out of nowhere comes a burning desire to give him the amulet.'
+						act 'Give him the amulet':
+							*clr & cla
+							'<center><img <<$set_imgh>> src="images/system/1_openings/1_tf/7.jpg"></center>'
+							'You get out of the bed and give him the stone figure you had put in your pocket earlier. The man takes it, steps back, and without warning, something in his eyes begins to spin like a whirlwind, causing your own eyes to blur as if he was hypnotizing you. A few seconds later your vision clears with the man having somehow disappeared into thin air.'
+							*nl
+							'You rub your eyes, "What the hell is going on here? Was that a dream?. No, it can''t be. I wouldn''t walk around in a dream. I think." You say to no one in particular then check your pocket, the amulet is indeed gone. You sit down on the bed trying to make sense of what just happened.'
+							*nl
+							'While lost in thought, you hear a knock on the door. You get up to open the door, not even thinking why you would have visitors this late at night.'
+							'"...Who''s there?", you ask, still confused.'
+							*nl
+							'A woman''s voice responds that she''s the hotel receptionist and that she needs to talk to you on an urgent matter.'
+							act 'Answer the door':
+								*clr & cla
+								'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_tatiana.jpg"></center>'
+								'You open the door, but don''t recall the woman in front of you being at the reception desk; the woman from earlier didn''t have red hair and glasses. After entering the room she quickly examines the place, before locking her eyes on you.'
+								*nl
+								'"Mikhail, right?" You nod.'
+								*nl
+								'"Last night you went to a certain place and took out something very valuable and powerful." the woman speaks to you.'
+								act 'Another one?':
+									*clr & cla
+									'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_tatiana.jpg"></center>'
+									'<i>Again?</i>'
+									*nl
+									'You sigh, irritated that not only have you been disturbed in the middle of the night, but these idiots apparently cannot even agree among themselves which one of them should disturb you.'
+									*nl
+									'"Listen, you''re starting to bother me. That other guy already showed up asking for the damn amulet."'
+									*nl
+									'She looks at you with surprise. "What? Someone already came here? Who was it?"'
+									act 'Tell her':
+										*clr & cla
+										'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_tatiana.jpg"></center>'
+										'"It was some man in a navy cloak with ginger hair and a light beard, he didn''t tell me his name. He already took the amulet." You answer.'
+										*nl
+										'The girl''s face drops. "Damn it!" She looks into your eyes. "Okay... Mikhail, we have to go somewhere else, there are too many people that might get hurt here. Gustav, come here!" The girl calls out to the corridor.'
+										*nl
+										'A tall man enters the room'
+										StoryLine = 0
+										MagikDostup = 0
+										$pcs_firstname = 'Mikhail'
+										$pcs_lastname = 'Kuznetsov'
+										age = 35
+										vidage = 35
+										year = 2016
+										month = 5
+										week = 1
+										hour = 7
+										day = 25
+										!!body
+										pcs_hgt = 186
+										dick = 0
+										pcs_energy = 60
+										pcs_hydra = 60
+										pcs_sleep = 70
+										!!stats
+										pcs_stren = 160
+										pcs_agil = 50
+										pcs_vital = 160
+										pcs_intel = 50
+										pcs_sprt = 100
+										pcs_react = 50
+										pcs_kick = 20
+										pcs_punch = 20
+										pcs_jab = 20
+										pcs_health = pcs_vital * 10
+										pcs_willpwr = pcs_intel * 5 + pcs_sprt * 5
+										pcs_mana = (pcs_intel * pcs_magik) + pcs_vital * 5
+										birthday = 1
+										birthmonth = 4
+										birthyear = 1983
+										pcs_dob = 19830401
+										act 'Prepare to fight':
+											*clr & cla
+											'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_gustav.jpg"></center>'
+											'The man has a large tattoo across the left side of his face. He too has red hair'
+											$boy = 'Gustav'
+											gs 'fight','initFight',1
+
+											gs 'fight_npcdata', 'gustav'
+											fightEnding = 1
+
+											act 'Fight': gt 'fight', 'start'
+										end
+									end
+								end
+							end
+						end
+					end
+				end
+			end
+		end
+	end
+end
+
+if $ARGS[0] = 'tatianaPRE':
+	$pcs_firstname = '<<$temp_firstname>>'
+	$pcs_lastname = '<<$temp_lastname>>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_tatiana.jpg"></center>'
+	'You wake up in an unfamiliar room. Standing near you is the same red-haired girl that entered your hotel room.'
+	*nl
+	'"Ah, you''re awake," she chirps. "I told this jerk Gustav that he should have treated you more carefully, but he''s bad at listening. As a result I had to use some magic to stabilize you, he almost knocked you out permanently."'
+	*nl
+	'"While you were unconscious I did some research on you. Turns out the Amulet of Power passed to you. Must have happened when you touched it. Unfortunately, Reinhold, the guy in your room, he''s probably realized by now that the amulet no longer has the power and now he''s out to hunt you down."'
+	act 'What''s going on?':
+		*clr & cla
+		'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_tatiana.jpg"></center>'
+		'"What the hell is going on?" you respond. You try to move your hands, but you''re tied to the bed.'
+		*nl
+		'"Um, okay, I''ll start from the beginning," the girl says. "Magic exists and is real. Ages ago the world was not the same, the fae creatures who possess natural magic lived in balance but the succubus were free to breed with whom ever they wished."'
+		*nl
+		'"They breed with humans with that human magicians were born. The Sidhe as the most powerful of the fae feared the increasing numbers of human magicians and cast a very powerful spell to bind the succubus to them, this prevented either from being able to reproduce without the other."'
+		*nl
+		'"All magicians have some of that original fae blood in there bodies and it is through that that they are able to connect with the world of magic."'
+		*nl
+		'The redhead adjusts her glasses. "Most of the world simply ignore magic or are protected from it by magic''s natural desire to remain hidden."'
+		*nl
+		'"But last night there was a powerful burst of magical energy, strong enough to be clearly seen by any with magical connections. Can you guess where this surge came from? Yeah, that cave you found. Apparently the surge occurred when you opened the seal to the archive. Anyway, that was when we started to search, that source of power is desired by many, but it is extremely dangerous and in the wrong hands could do untold horrors."'
+		*nl
+		'She stops for a few seconds for you process that information. It seems really far fetched.'
+		*nl
+		'"As you can figure out, Reinhold wanted to prevent the amulet being misused, but he was not very thorough and didn''t check you over."'
+		act 'So, the whole world is just an illusion?':
+			*clr & cla
+			'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_tatiana.jpg"></center>'
+			'"So magic exists and is used by all these people and creatures, but the rest of us just don''t see it, or convince ourselves it didn''t happen?" You ask.'
+			*nl
+			'The girl nods. "Yes. You''re a quick study. Machines, apartments, television and the Internet, all this really does exist and is in the form in which people see it. But if I say, hurl a fireball, then people might see that I threw a grenade or shot from a flamethrower. The human mind can''t process magic, so it blocks it as a way to protect the person from going crazy."'
+			*nl
+			'"Hence such things as little green men, UFOs, poltergeists, spontaneous combustion, are when people encounter a difficult to hide phenomenon and the conclusion is flawed. In some cases, if someone''s mind can not cope with the spell they witness, they can be driven crazy and then no one believes them."'
+			act 'And who are you?':
+				*clr & cla
+				'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_tatiana.jpg"></center>'
+				'"And who are you?" you ask.'
+				*nl
+				'The girl smiled. "Me? I''m Tatiana, a young mage with an keen interest in magical phenomenon. I specialize in the treatment of mutations, and magic relating to the body. I have little combat skill, so I rely on the services of Gustav to provide some muscle. He''s a Mutant, his mutation is due to magical exposure and it gives him unmatched physical strength and he is a great tracker."'
+				*nl
+				'"The two of us run a detective agency for cover and money, but our real objective is studying magic and its effects."'
+				act 'What do you want form me?':
+					*clr & cla
+					'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_tatiana.jpg"></center>'
+					'"What do you want form me?" you ask.'
+					*nl
+					'"Hmm, well... the amulet obviously," Tatiana replies. "When I looked for you, I was hoping to get that object of power to study but Reinhold got to you first. The amulet will now be pretty much useless anyway, as its power passed on to you."'
+					*nl
+					'"But this is not good for you. You may think that since you have the amulets'' power, you can do anything. But in reality, you''re helpless without the skill to use it. Reinhold easily overpowered your will and forced you to obey, and Gustav beat you like a puppy."'
+					act 'What is this amulet? Where did it come from?':
+						*clr & cla
+						'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_tatiana.jpg"></center>'
+						'"And what is this amulet? Where did it come from?" you ask.'
+						'Tatiana thinks about it for a few moments. "It was made by the trickster Rikudo, one of the most powerful ancient magicians before he died, he taunted the only living mage who could control its immense power by cursing him to be stuck in a female form and making it only activate for a male mage."'
+						*nl
+						'"Great. So I''ve been thrown into this mess by the dead owner of that ancient tomb. Hang on I''m not a mage, how could the power be transferred to me?"'
+						*nl
+						'"It seems that its long time underground has caused it to malfunction and its power has entered your body. The bad news is it is far too powerful and will kill you." At this you are filled with fear and start to struggle against your bindings.'
+						*nl
+						'"You are lucky Reinhold didn''t realize this, he would have stopped you from accidentally wielding the power and killing yourself and who knows how many others by killing you in that hotel room. I have another way to save you, but you''re not going to like it."'
+						*nl
+						'You don''t say anything, so she continues, "I can feel the aura of power emanating from you, by drawing from that I can perform a powerful magic spell that will transform you into someone who is protected from the masculine alignment of the power."'
+						act 'Uh, I do not understand, what are you suggesting?':
+							*clr & cla
+							'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_tatiana.jpg"></center>'
+							'"Uh, I do not understand, what are you suggesting?" you ask her.'
+							*nl
+							'Tatiana runs a hand through her hair and giggles. "I''ll make you a pretty, young girl and the power will lie dormant saving you from blowing up a city or something."'
+							*nl
+							'Your eyes widen in shock.'
+							*nl
+							'"Well, there is another way, I can just stop your heart and let your power dissolve into nature, but you will die. I''m not Reinhold, I can take this risk and I don''t want to kill you. Maybe with more time doing research I can work out another solution, but I cannot leave you like this."'
+							act 'What about your family?':
+								*clr & cla
+								'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_tatiana.jpg"></center>'
+								'"Hey, I do not want to be a woman. I have a family, a wife, a daughter", you tell her, afraid.'
+								*nl
+								'Tatiana smiles. "Well the choice is simple, either you die or live without a penis for the time being."'
+								*nl
+								'"As for your family, not to worry. I''ll arrange everything. We will fabricate your death to get Reinhold off your back. To make your transition easier I''ll cover your memory of the family, they will only be ghostly memories, you won''t even remember where you lived. Don''t worry, I won''t erase your entire memory and leave you a useless vegetable."'
+								act 'There must be another way!':
+									*clr & cla
+									'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_tatiana.jpg"></center>'
+									'"There must be another way!" you panic. You tug at the restraints on the bed.'
+									*nl
+									'Tatiana''s face becomes serious. "Do not argue. It is the only way available to me. You will need a to use a new name, think it over in your dreams and tell me when you wake up, otherwise I will give you a pretty name. Now go to sleep." Says Tatiana as she puts her hand on your chest. Your vision immediately fades.'
+									act 'Sleep': gt 'intro_city_tg', 'custom'
+								end
+							end
+						end
+					end
+				end
+			end
+		end
+	end
+end
+
+if $ARGS[0] = 'custom':
+	$loc = 'intro_city_tg'
+	$loc_args = 'custom'
+!!	This is to bypass the next part if the avatar system was used
+!!	It will be changed to bypass the head options, once more body options are added
+
+!!	Just hair and eye color here for now; the dialog will be update as more options are added
+	'<center><b><font color = maroon>CHARACTER CUSTOMIZATION</font></b></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/shared/character_creation_2.jpg"></center>'
+	'As you drift in unconsciousness, an impression of a woman forms in your mind. Many aspects of her appearance are indistinct, but there are some things you can make out.'
+	'She is fairly tall.'
+	*nl
+	'<center>Customize your:</center>'
+	'<center><a href="exec:gs ''intro_customization'', ''hair''"><img src="images/system/1_openings/shared/icon_hair.png"></a> <a href="exec:gs ''intro_customization'', ''eyes''"><img src="images/system/1_openings/shared/icon_eye.png"></a></center>'
+	*nl
+	'Everything else about her is fuzzy...'
+
+	act 'Done': gt 'intro_city_tg', 'sleepPRE'
+end
+
+if $ARGS[0] = 'sleepPRE':
+	killobj
+	'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_tatiana.jpg"></center>'
+	'"You''re awake?." Tatiana says looking into your eyes.'
+	act 'Look at yourself':
+		cla
+		*clr
+		clr
+		'<center><img <<$set_imgh>> src="images/system/1_openings/1_tf/8.jpg"></center>'
+		'"Fuck," you say and immediately shut your mouth again. Your voice... it''s so feminine. Tatiana giggles.'
+		*nl
+		'"This is the first time I changed the gender of a person, therefore I just HAD to see your reaction. Totally worth it. But you turned out beautiful. For a first try that is of course. I miscalculated something, for example due to sharp hormonal change you have bad acme on your face and I failed to change your eyes and lips. On the bright side, your body will change much faster than one of a natural born woman. That means it will be easier to gain and lose weight and change facial features. All in all you turned quite well. By the way, your new ''equipment'' down there is fully functional, so if you don''t want to be a mother, you should think about using contraceptives."'
+		*nl
+		'You angrily look at Tatiana, "So you think I''m a complete woman? On the outside I''ll look like one, but guess what, I''m still the 34-years-old me."'
+		*nl
+		'"Well, yes. I won''t argue about that." Tatiana agrees. "It''s your life and you decide what you do with it, but for the time being, you cannot go back to your old life, so deal with it. On a side note, I already took care of an alibi. Today Mikhail crashed his car into the pit and died, it''s on the news." With these words, Tatiana picked up the remote and turned on the TV.'
+
+		!!Default Names
+		$pcs_firstname = 'Svetlana'
+		$pcs_lastname = 'Lebedev'
+		$pcs_nickname = 'Sveta'
+
+		!!Player names are set here
+		if $temp_firstname = '':
+			$temp_firstname = 'Svetlana'
+		else
+			$temp_firstname = '<<$pcs_firstname>>'
+		end
+		$pcs_firstname = input("What is your first name? (Leave blank for Svetlana)")
+		if $pcs_firstname = '':$pcs_firstname = '<<$temp_firstname>>'
+		killvar '$temp_firstname'
+
+		
+		if $temp_lastname = '':
+			$temp_lastname = 'Lebedev'
+		else
+			$temp_lastname = '<<$pcs_lastname>>'
+		end
+		$pcs_lastname = input("What is your family name? (Leave blank for Lebedev)")
+		if $pcs_lastname = '':$pcs_lastname = '<<$temp_lastname>>'
+		killvar '$temp_lastname'
+
+		if $temp_nickname = '':
+			$temp_nickname = 'Sveta'
+		else
+			$temp_nickname = '<<$pcs_nickname>>'
+		end
+		$pcs_nickname = input("What is your nickname? (Leave blank for Sveta)")
+		if $pcs_nickname = '':$pcs_nickname = '<<$temp_nickname>>'
+		killvar '$temp_nickname'
+
+		act 'Watch TV':
+			cla
+			*clr
+			clr
+			'<center><img <<$set_imgh>> src="images/system/1_openings/1_tf/9.jpg"></center>'
+			'On TV there is a news report about a businessman, who drove his car into a hole at a construction site. The man died later in hospital without regaining consciousness.'
+			*nl
+			'You look at Tatiana, with a bewildered look. She has an enigmatic smile, "Well, I''m still a magician and that''s something that I can do. Reinhold has definitely lost the trail. The body that ''died'' behind the wheel of the BMW was a perfect copy of your old self, from your absorbed amulet energy down to the placement of every single hair."'
+			*nl
+			'"Anyways, here are your new legal documents, including a new passport. Starting today, you are <<$pcs_nickname>> <<$pcs_lastname>>, 18 years old, female and live in the city. Nobody knows you, but you at least have an apartment to call home. This is a gift to you from Gustav. Here are the keys to it. Now get up, you''ve got to go to your new home and start a new life."'
+			*nl
+			'Gustav, the redhead with a tattoo on his face enters the room. He looks at you and says, "I''ll take you."'
+			act 'Go with Gustav':
+				cla
+				*clr
+				clr
+				'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_gustav.jpg"></center>'
+				'Gustav silently takes you to the garage and you enter the black jeep. Gustav gets behind the wheel and drives you into the city. You silently speculate about what to do now.'
+				*nl
+				'After a few minutes, while keeping his eyes on the road, Gustav speaks. "I''m sorry I beat you up. I have trouble controlling myself during a fight. You had a large build and for a second I thought you might be dangerous for me, so I ended up hitting you with my full force."'
+				*nl
+				'You look at him. "Forget it. Listen Gustav... what do I do now?"'
+				*nl
+				'Gustav nods and says, "Well, I would advise you to start by buying food, all sorts of washing powders, laundry detergents and dishes. There are very few supplies already in the apartment, but they''ll only last you a day or two. There''s no TV either. Then get a job. Not far from your new home is a small café, if I remember correctly there was a vacant waitress position not too long ago. You should talk to the owner of the café about the job. Don''t forget to monitor your health, keep your mood up and have a clear mind."'
+				*nl
+				'"Now your mind is very weak, if you don''t take care of yourself you will go crazy. You need to eat well, sleep regularly, have fun, do not generally become depressive or else you end up in a madhouse. Don''t go looking for Tatiana, you will not find her anyway, and secondly, if we need to contact you, we will find you."'
+				*nl
+				'You arrived at some five-story Khrushchev era buildings. Gustav stops the car and points a finger at the entrance. "Your apartment number 69, Tatiana already gave you the key. Now go. Remember don''t just give up, not everyone gets an entirely new chance at life. Tatiana and me will keep an eye out for you."'
+				*nl
+				'Also, you might want to steer clear of those Gopnik, they might just look like petty criminals having a drink, but they have connections and you''re just a pretty young girl now.'
+
+				act 'Out of the car':
+					cla
+					showstat 1
+					showobjs 1
+					gs 'obj_din', 'old'
+					cla
+					*clr
+					'<center><img <<$set_imgh>> src="images/system/1_openings/1_tf/start_tf.jpg"></center>'
+					'Welcome to the Transformation start! Although you have lost your masculinity and your old life, but new possibilities are opening up before your eyes, not least aided in your newfound knowledge of the magical nature of the world!'
+					act 'Begin': gt 'city_residential'
+				end
+			end
+		end
+	end
+end
+
+--- intro_city_tg ---------------------------------
+

+ 5 - 20
locations/intro_customization.qsrc

@@ -637,7 +637,7 @@ if $ARGS[0] = 'lip':
 	*nl
 	if pcs_lip < 4:'<center><a href="exec:pcs_lip += 1 & gs ''begin'', ''lip''">Bigger lips</a></center>'
 	if pcs_lip > 0:'<center><a href="exec:pcs_lip -= 1 & gs ''begin'', ''lip''">Smaller lips</a></center>'
-	act'<center><b>Done</b></center>': gt'begin','description_real_character'
+	act'<center><b>Done</b></center>': gt'$loc','$loc_args'
 end
 
 if $ARGS[0] = 'eyes':
@@ -679,16 +679,9 @@ if $ARGS[0] = 'eyes':
 	if pcs_eyesize > 0:'<center><a href="exec:pcs_eyesize -= 1 & gs ''begin'', ''eyes''">Smaller eyes</a></center>'
 	if glass = 0:'<center><a href="exec:glass = 1 & gs ''begin'', ''eyes''">Wear glasses</a></center>'
 	if glass = 1:'<center><a href="exec:glass = 0 & gs ''begin'', ''eyes''">Remove glasses</a></center>'
-
-	if $start_type = 'sg':
-		act'<center><b>Done</b></center>': gt 'intro_sg', 'four'
-	elseif $start_type = 'sg_m':
-		act'<center><b>Done</b></center>': gt 'intro_sg_m', 'six'
-	elseif $start_type = 'sg_tg':
-		act'<center><b>Done</b></center>': gt 'preCSB', 'intro_6_looks'
-	else
-		act'<center><b>Done</b></center>': gt 'preCUST', 'TGStart'
-	end
+	
+	
+	act'<center><b>Done</b></center>': gt'$loc','$loc_args'
 end
 
 if $ARGS[0] = 'eye color':
@@ -759,15 +752,7 @@ if $ARGS[0] = 'birthday':
 	'<center><a href="exec:birthmonth = 11 & gs ''begin'', ''birthday''">November</a></center>'
 	'<center><a href="exec:birthmonth = 12 & gs ''begin'', ''birthday''">December</a></center>'
 
-	if csb_start ! 1:
-		if player_avatar = 1:
-			act'<center><b>Done</b></center>': gt 'begin', 'description_real_character'
-		else
-			act'<center><b>Done</b></center>': gt 'intro_sg_select', 'SGStart2'
-		end
-	else
-		act'<center><b>Done</b></center>': gt 'intro_sg_select', 'CSBStart'
-	end
+	act'<center><b>Done</b></center>': $locM, $loc_argsM
 end
 
 --- intro_customization ---------------------------------

+ 1 - 1
locations/intro_initialization.qsrc

@@ -101,7 +101,7 @@ nathcol = pcs_haircol
 pcs_pubecol = pcs_haircol & pcs_pubecol[1] = 1
 oldsavepcs_haircol = 1
 
-gs 'body_shape', 'initial'
+gs 'body', 'initial'
 
 !! Adding underwear and default shoes and assigning them
 

+ 383 - 0
locations/intro_initialization_city.qsrc

@@ -0,0 +1,383 @@
+# intro_initialization_city
+!!*************************
+!!	Final Initializations
+!!	Top area for things that need to be done before setting the variables for either start
+
+day = 21
+month = 8
+year = 2017
+
+birthyear = 1999
+birthmonth = 4
+birthday = 1
+	
+BDSMfilm = 0
+pornstudio = 0
+pfilmSTOP = 0
+
+thinkpreg = 0
+denypreg = 0
+pertemp = 1
+pillcvrt = 1
+
+pcs_naturallashes = pcs_lashes
+
+!!	Initializing elasticity
+vshrink = 1
+vshrinkdays = 6
+ashrink = 1
+ashrinkdays = 3
+
+fairycurse = -1
+
+$excer_name[1] = 'Default 1'
+$excer_name[2] = 'Default 2'
+$excer_name[3] = 'Default 3'
+$excer_name[4] = 'Default 4'
+$excer_name[5] = 'Default 5'
+
+monthsend[1] = 31
+if ((year mod 4 = 0) and (year mod 100 ! 0)) or (year mod 400 = 0): 
+	Leapyear = 1 & monthsend[2] = 29
+else
+	Leapyear = 0 & monthsend[2] = 28
+end
+monthsend[3] = 31
+monthsend[4] = 30
+monthsend[5] = 31
+monthsend[6] = 30
+monthsend[7] = 31
+monthsend[8] = 31
+monthsend[9] = 30
+monthsend[10] = 31
+monthsend[11] = 30
+monthsend[12] = 31
+
+$monthName[1] = 'January'
+$monthName[2] = 'February'
+$monthName[3] = 'March'
+$monthName[4] = 'April'
+$monthName[5] = 'May'
+$monthName[6] = 'June'
+$monthName[7] = 'July'
+$monthName[8] = 'August'
+$monthName[9] = 'September'
+$monthName[10] = 'October' 
+$monthName[11] = 'November'
+$monthName[12] = 'December'
+$month = $monthName[month]
+
+gs 'telefon', 'setup'
+
+VersionCheck = 5030
+
+pcs_dob = birthyear * 10000
+pcs_dob += (birthmonth * 100)
+pcs_dob += birthday
+
+age = year - ((pcs_dob - (pcs_dob mod 10000)) / 10000)
+if ((month * 100) + day) < pcs_dob mod 10000: age -= 1
+
+vidage = age - 1
+
+vidageday = 300
+
+
+pcs_health = pcs_vital * 10 + pcs_stren * 5
+pcs_willpwr = pcs_intel * 5 + pcs_sprt * 5
+pcs_mana = (pcs_intel * pcs_magik) + pcs_magik * 100 + pcs_vital * 10 + rikudo
+pcs_mood = 100
+pcs_stam = 100
+
+nathcol = pcs_haircol
+pcs_pubecol = pcs_haircol & pcs_pubecol[1] = 1
+oldsavepcs_haircol = 1
+
+gs 'body_shape', 'initial'
+
+!! Adding underwear and default shoes and assigning them
+
+if $ARGS[1] ! 'CSB' and goth_clothing ! 1:
+	cheap_panties[1] = 1
+	cheap_bras[1] = 1
+	$pantyworntype = 'cheap'
+	pantywornnumber = 1
+	$braworntype = 'cheap'
+	brawornnumber = 1
+	gm_shoe[6] = 1
+	danilovich_shoe[21] = 1
+	$shoeworntype = 'gm'
+	shoewornnumber = 6
+end
+
+!!	Starting clothing set
+cheap_panties[12] = 1
+cheap_bras[12] = 1
+danilovich_outfits[81] = 1
+danilovich_outfits_h[81] = 100
+danilovich_shoe[21] = 1
+gm_shoe[9] = 1
+gm_outfits[30] = 1
+gm_outfits_h[30] = 100
+gm_outfits_b[30] = pcs_hips
+cats_dress[1] = 1
+cats_dress_h[1] = 100
+cats_dress_b[1] = pcs_hips
+if goth_clothing = 1:
+	kats_panties[28] = 1
+	kats_bras[28] = 1
+	$pantyworntype = 'kats'
+	pantywornnumber = 28
+	$braworntype = 'kats'
+	brawornnumber = 28
+	danilovich_outfits[91] = 1
+	danilovich_outfits_h[91] = 100
+	danilovich_shoe[21] = 1
+	gm_shoe[9] = 1
+	shoewornnumber = 9
+	$shoeworntype = 'gm'
+	bomba_outfits[16] = 1
+	bomba_outfits_h[16] = 100
+	bomba_outfits_b[16] = pcs_hips
+	bomba_outfits[37] = 1
+	bomba_outfits_h[37] = 100
+	bomba_outfits_b[37] = pcs_hips
+	sportsclothingnumber = 91
+	gs 'clothing', 'wear', 'bomba_outfits', 37
+elseif pcs_inhib < 5:
+	gm_outfits[30] = 1
+	gm_outfits_h[30] = 100
+	gm_outfits_b[30] = pcs_hips
+	danilovich_outfits[81] = 1
+	danilovich_outfits_h[81] = 100
+	cats_dress[1] = 1
+	cats_dress_h[1] = 100
+	cats_dress_b[1] = pcs_hips
+	sportsclothingnumber = 81
+	gs 'clothing', 'wear', 'cats_dress', 1
+elseif pcs_inhib < 10:
+	gm_outfits[15] = 1
+	gm_outfits_h[15] = 100
+	gm_outfits_b[15] = pcs_hips
+	danilovich_outfits[76] = 1
+	danilovich_outfits_h[76] = 100
+	gm_dress[4] = 1
+	gm_dress_h[4] = 100
+	gm_dress_b[4] = pcs_hips
+	sportsclothingnumber = 76
+	gs 'clothing', 'wear', 'gm_dress', 4
+elseif pcs_inhib < 15:
+	gm_outfits[58] = 1
+	gm_outfits_h[58] = 100
+	gm_outfits_b[58] = pcs_hips
+	danilovich_outfits[106] = 1
+	danilovich_outfits_h[106] = 100
+	gm_dress[7] = 1
+	gm_dress_h[7] = 100
+	gm_dress_b[7] = pcs_hips
+	sportsclothingnumber = 106
+	gs 'clothing', 'wear', 'gm_dress', 7
+elseif pcs_inhib < 20:
+	gm_outfits[55] = 1
+	gm_outfits_h[55] = 100
+	gm_outfits_b[55] = pcs_hips
+	danilovich_outfits[102] = 1
+	danilovich_outfits_h[102] = 100
+	gm_dress[7] = 1
+	gm_dress_h[7] = 100
+	gm_dress_b[7] = pcs_hips
+	sportsclothingnumber = 43
+	gs 'clothing', 'wear', 'gm_dress', 7
+elseif pcs_inhib < 25:
+	gm_outfits[58] = 1
+	gm_outfits_h[58] = 100
+	gm_outfits_b[58] = pcs_hips
+	danilovich_outfits[87] = 1
+	danilovich_outfits_h[87] = 100
+	gm_dress[39] = 1
+	gm_dress_h[39] = 100
+	gm_dress_b[39] = pcs_hips
+	sportsclothingnumber = 1
+	gs 'clothing', 'wear', 'gm_dress', 39
+elseif pcs_inhib < 30:
+	gm_outfits[91] = 1
+	gm_outfits_h[91] = 100
+	gm_outfits_b[91] = pcs_hips
+	danilovich_outfits[96] = 1
+	danilovich_outfits_h[96] = 100
+	gm_dress[57] = 1
+	gm_dress_h[57] = 100
+	gm_dress_b[57] = pcs_hips
+	sportsclothingnumber = 48
+	gs 'clothing', 'wear', 'gm_dress', 57
+elseif pcs_inhib < 35:
+	gm_outfits[95] = 1
+	gm_outfits_h[95] = 100
+	gm_outfits_b[95] = pcs_hips
+	danilovich_outfits[48] = 1
+	danilovich_outfits_h[48] = 100
+	gm_dress[63] = 1
+	gm_dress_h[63] = 100
+	gm_dress_b[63] = pcs_hips
+	sportsclothingnumber = 40
+	gs 'clothing', 'wear', 'gm_dress', 63
+elseif pcs_inhib < 40:
+	gm_outfits[124] = 1
+	gm_outfits_h[124] = 100
+	gm_outfits_b[124] = pcs_hips
+	danilovich_outfits[45] = 1
+	danilovich_outfits_h[45] = 100
+	gm_dress[89] = 1
+	gm_dress_h[89] = 100
+	gm_dress_b[89] = pcs_hips
+	sportsclothingnumber = 45
+	gs 'clothing', 'wear', 'gm_dress', 89
+elseif pcs_inhib < 45:
+	gm_outfits[131] = 1
+	gm_outfits_h[131] = 100
+	gm_outfits_b[131] = pcs_hips
+	danilovich_outfits[38] = 1
+	danilovich_outfits_h[38] = 100
+	gm_dress[109] = 1
+	gm_dress_h[109] = 100
+	gm_dress_b[109] = pcs_hips
+	sportsclothingnumber = 38
+	gs 'clothing', 'wear', 'gm_dress', 109
+elseif pcs_inhib < 50:
+	gm_outfits[145] = 1
+	gm_outfits_h[145] = 100
+	gm_outfits_b[145] = pcs_hips
+	danilovich_outfits[17] = 1
+	danilovich_outfits_h[17] = 100
+	gm_dress[123] = 1
+	gm_dress_h[123] = 100
+	gm_dress_b[123] = pcs_hips
+	sportsclothingnumber = 143
+	gs 'clothing', 'wear', 'gm_dress', 123
+else
+	gm_outfits[149] = 1
+	gm_outfits_h[149] = 100
+	gm_outfits_b[149] = pcs_hips
+	danilovich_outfits[15] = 1
+	danilovich_outfits_h[15] = 100
+	gm_dress[149] = 1
+	gm_dress_h[149] = 100
+	gm_dress_b[149] = pcs_hips
+	scandalicious_bikinis[55] = 1
+	scandalicious_bikinis_h[55] = 60
+	scandalicious_bikinis_b[55] = pcs_hips
+	sportsclothingnumber = 15
+	gs 'clothing', 'wear', 'gm_dress', 149
+end
+if swim_start = 99:
+	allure_swimsuit[99] = 1
+	allure_swimsuit_h[99] = 60
+	allure_swimsuit_b[99] = pcs_hips
+elseif swim_start = 1:
+	danilovich_swimsuit[1] = 1
+	danilovich_swimsuit_h[1] = 60
+	danilovich_swimsuit_b[1] = pcs_hips
+end
+
+if danilovich_shoe[17] = 1:
+	sportsshoenumber = 17
+else
+	sportsshoenumber = 21
+end
+$sportspursetype = $currentpursetype
+sportspursenumber = currentpursenumber
+$sports_clothing_name = 'default sports outfit'
+
+killvar 'swim_start'
+	
+!!	**********
+
+gs 'daystart'
+gs 'din_pav'
+gs 'din_npc'
+gs 'dinSex2'
+gs 'dina'
+gs 'din_van'
+gs 'din_bad'
+gs 'dinSex'
+!! KEY! I merged 'dinBoroda' with 'clener' and removed the dynamics. This line was at the end of dinBoroda, so I moved it here just in case. Sicaa
+rikudootvet = 1415
+gs 'BanSexType'
+
+gs 'outdoors', 'weather'
+
+menoage = rand(40,50)
+temprand = rand(0,10)
+
+if temprand = 0:
+	menoage += rand(0,5)
+
+elseif temprand < 4:
+	menoage += rand(3,10)
+
+elseif temprand < 9:
+	menoage += rand(5,12)
+
+else
+	menoage += rand(7,13)
+
+end
+
+!!Setting up period start and turning on auto tracking if not on hardcore difficulty
+daylastperiod = daystart
+temprand = rand(1,3)
+if temprand = 1:
+	cycle = 1
+	EggRH = rand(1,149)
+	FocH = EggRH + 4*24
+	mesec = 0
+	unfertegg = 0
+	ferteggage = 0
+	Ovulate = 0
+	LutH = 0
+	daylastperiod -= FocH/24
+elseif temprand = 2:
+	lastovulation = daystart
+	cycle = 2
+	unfertegg = 1
+	ferteggage = rand(0,44)
+	Ovulate = (rand(24,44) - ferteggage)
+	if Ovulate <= 0: Ovulate = 1
+	mesec = 0
+	EggRH = 0
+	FocH = 0
+	LutH = 0
+	daylastperiod -= 10+(ferteggage/24)
+elseif temprand = 3:
+	cycle = 3
+	LutH = rand(0,300)
+	ferteggage = 36 + LutH
+	mesec = 0
+	EggRH = 0
+	FocH = 0
+	unfertegg = 0
+	Ovulate = 0
+	daylastperiod -= 10+(ferteggage/24)
+end
+
+if daylastperiod + 4 > daystart:
+	lastmens = daylastperiod - 20
+else
+	lastmens = daylastperiod+4
+end
+
+if difficulty = 4:
+	cyccustom = 0
+else
+	cyccustom = 1
+end
+
+pcs_horny = 0
+killvar 'opPRE'
+killvar 'tgs_skipinto'
+gs 'stat'
+showstat 0
+showobjs 0
+
+--- intro_initialization_city ---------------------------------
+

+ 2 - 0
locations/intro_sg.qsrc

@@ -32,6 +32,8 @@ end
 if $ARGS[0] = 'four':
 	gs 'intro_sg_select', 'sg_settings'
 	gs 'intro_initialization'
+	$loc = 'intro_sg'
+	$loc_args = 'four'
 
 
 	'<center><b><font color = maroon>Character Face</font></b></center>'

+ 2 - 0
locations/intro_sg_m.qsrc

@@ -133,6 +133,8 @@ end
 if $ARGS[0] = 'six':
 	*clr & cla				
 	hour = 18
+	$loc = 'intro_sg_m'
+	$loc_args = 'six'
 	'<center><b><font color = maroon>Character Face</font></b></center>'
 	'<center><b>Allows you to alter hair and eyes, use to match fixed profile picture if in use.</b></center>'
 	'<center><img <<$set_imgh>> src="images/system/1_openings/shared/character_creation_2.jpg"></center>'

+ 6 - 8
locations/intro_sg_select.qsrc

@@ -6,14 +6,12 @@ if $ARGS[0] = 'start':
 	birthyear = 1999
 	yearlefttemp = 1
 
-	if player_avatar = 0:
-		birthmonth = 4
-		birthday = 1
-		pcs_haircol = 1
-		pcs_eyesize = 2
-		pcs_lip = 1
-		pcs_lashes = 1
-	end
+	birthmonth = 4
+	birthday = 1
+	pcs_haircol = 1
+	pcs_eyesize = 2
+	pcs_lip = 1
+	pcs_lashes = 1
 
 !!	Body
 	pcs_hgt = 170

+ 9 - 15
locations/intro_sg_tg.qsrc

@@ -180,14 +180,12 @@ if $ARGS[0] = 'settings':
 	home_owned[2] = 1
 	gs 'set_home', 2
 
-	if player_avatar = 0:
-		pcs_eyesize = 3
-		pcs_lip = 2
-		pcs_lashes = 1
-		pcs_haircol = 3
-		pcs_eyecol = 3
-		pcs_hairlng = 300
-	end
+	pcs_eyesize = 3
+	pcs_lip = 2
+	pcs_lashes = 1
+	pcs_haircol = 3
+	pcs_eyecol = 3
+	pcs_hairlng = 300
 
 	if birthmonth = 0: birthmonth = 4
 	if birthday = 0: birthday = 1
@@ -280,17 +278,13 @@ if $ARGS[0] = 'settings':
 		$startdob = 'Your birthday: <B><<birthmonth>>/<<birthday>>/<<birthyear>></B> (MM/DD/YYYY)'
 	end
 
-	if player_avatar = 0:
-		*nl
-		'<a href="exec:gt ''begin'', ''birthday''"><<$startdob>></a>.'
-	else
-		*nl
-		'<<$startdob>>'
-	end
+	*nl
 	gt 'intro_sg_tg', 'intro_6_looks'
 end
 
 if $ARGS[0] = 'intro_6_looks':
+	$loc = 'intro_sg_tg'
+	$loc_args = 'intro_6_looks'
 	*clr & cla
 	if player_avatar = 1:
 		'<center><img HEIGHT = 478 src="images/avatar.jpg"></center>'

+ 258 - 0
locations/intro_uni.qsrc

@@ -0,0 +1,258 @@
+# intro_uni
+
+music_loop = 0
+CLOSE ALL
+gs 'themes', 'indoors'
+$start_type = 'uni'
+
+!!if $ARGS[0] = 'elective_choice':
+!!	
+!!	
+!end
+
+if $ARGS[0] = 'start':
+	!! Intro to starting uni
+	$loc = 'intro_uni'
+	$loc_args = 'custom'
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/locations/city/island/university/uni_day.jpg"></center>'
+	'The big day has finally arrived! Your family piled into your stepfather''s Gazelle pickup and you all traveled from your hometown, Pavlovsk, to the big city of St. Petersburg. Today is the day you move into the University dorms to start this new phase of your life.'
+	'As you approach the city you thing back to your school days and recall what type of kid you were...'
+
+	act 'Continue': gt 'intro_city_select', 'start'
+end
+
+if $ARGS[0] = 'custom':
+	$loc = 'intro_uni'
+	$loc_args = 'custom'
+	pcs_hairlng = 100
+	!!Default Names
+	$pcs_firstname = 'Svetlana'
+	$pcs_lastname = 'Lebedev'
+	$pcs_nickname = 'Sveta'
+
+	!!Player names are set here
+	$temp_firstname = '<<$pcs_firstname>>'
+	$pcs_firstname = input("What is your first name? (Leave blank for Svetlana)")
+	if $pcs_firstname = '':$pcs_firstname = '<<$temp_firstname>>'
+	killvar '$temp_firstname'
+
+	$temp_lastname = '<<$pcs_lastname>>'
+	$pcs_lastname = input("What is your family name? (Leave blank for Lebedev)")
+	if $pcs_lastname = '':$pcs_lastname = '<<$temp_lastname>>'
+	killvar '$temp_lastname'
+
+	$temp_nickname = '<<$pcs_nickname>>'
+	$pcs_nickname = input("What is your nickname? (Leave blank for Sveta)")
+	if $pcs_nickname = '':$pcs_nickname = '<<$temp_nickname>>'
+	killvar '$temp_nickname'
+
+!!	Just hair and eye color here for now; the dialog will be update as more options are added
+	'<center><b><font color = maroon>CHARACTER CUSTOMIZATION</font></b></center>'
+	'<center><b>Allows you to alter hair and eyes, use to match fixed profile picture if in use.</b></center>'
+	'<center><img <<$set_imgh>> src="images/system/1_openings/shared/character_creation_2.jpg"></center>'
+	'As you look in the mirror, your face comes into focus. Some aspects of your appearance are already set, you can define the others now.'
+	'You are fairly tall.'
+	*nl
+	'<center>Customize your:</center>'
+	'<center><a href="exec:gs ''intro_customization'', ''hair''"><img src="images/system/1_openings/shared/icon_hair.png"></a> <a href="exec:gs ''intro_customization'', ''eyes''"><img src="images/system/1_openings/shared/icon_eye.png"></a></center>'
+	
+	act 'Done': gt 'intro_uni', 'vlad_intro'
+end
+
+if $ARGS[0] = 'vlad_intro':
+	!! Intro to your stepfather
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big28.jpg"></center>'
+	!!basic desc of Vlad, maybe a preset is used somewhere in game already? If not already in the intro (I think it is.)
+	'Having spent almost an hour in the cramped truck, you jump out as soon as you arrive. Vlad gets out, stretches a bit, then tells you to take your sister and find out where you''re staying, while the rest of the family unloads your stuff from the back of the truck.'
+	'Looking around, you see many people doing the same, the younger ones heading inside while the families unload the future students belongings to be taken inside.'
+
+	act 'Check Kolka': gt 'intro_uni', 'kolka_intro'
+end
+
+if $ARGS[0] = 'kolka_intro':
+	!! Intro to Kolka
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big34.jpg"></center>'
+	!!basic desc of Kolka, maybe a preset is used somewhere in game already? If not already in the intro (I think it is.)
+	'Your brother, caught up in the excitement of opening day, tries to slide past Vlad unnoticed but is called back to help unload. He sighs and shuffles his feet a bit before turning around to help his dad get your stuff. You feel a bit bad for him, but he will be able to get a better look around next year, when he graduates secondary school and starts here.'
+
+	act 'Head inside': gt 'intro_uni', 'anya_intro'
+end
+
+if $ARGS[0] = 'anya_intro':
+	!! Intro to Anya
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big33.jpg"></center>'
+	!!basic desc of Anya, maybe a preset is used somewhere in game already? If not already in the intro (I think it is.)
+	'Your sister comes up to you, links her arm with yours, and pulls you forward. "Come on, <<$pcs_nickname>>! I want to see this place."'
+	'Already knowing the answer, you ask anyway "Why aren''t you enrolled then?"'
+	'"I''m comfortable where I am right now. When I''m ready, maybe I will."'
+	'Rolling your eyes, you let her keep pulling on your arm.'
+
+	act 'Enter the University': gt 'intro_uni', 'diane_intro'
+end
+
+if $ARGS[0] = 'diane_intro':
+	!! Going into Uni quad to get escort - meeting Diane(Rex older sister)
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big253.jpg"></center>'
+	'Joining the crowd heading inside, you and Anya go into the main courtyard where the new students are being greeted by the older students.'
+	'A (color undecided)-haired girl comes up and introduces herself. "Welcome, I am Diane Borisyuk... Anya?"'
+	'Anya squeals with joy and runs to her and gives her a big hug. "Diane! I haven''t seen you in a long time. <<$pcs_nickname>>, this is Diane, Rex''s sister. She used to buy us booze for our parties when we were younger."'
+	'Diane laughs and says "that <b>was</b> a long time ago. So this is your sister? Nice to meet you. You''re going to have a lot of fun here. Let''s get you your dorm keys and get you set up!"'
+	'"By the way, what are you studying?"'
+
+	act 'Go get your key': gt 'intro_uni', 'degree_choice'
+end
+
+if $ARGS[0] = 'degree_choice':
+	!! Choose your degree here.
+	!!variables for attending UNI
+	university['prep_counter'] = 0
+	university['prep_enrolled'] = 0
+	university['student'] = 1
+	university['enrolled_in_semester'] = 1
+	home_owned[11] = 1
+	gs 'set_home', 11
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/system/1_openings/6_uni/degree_choice.jpg"></center>'
+	'This is where you decide your degree. For now this is just a placeholder to be expanded once we add in more degrees to choose from.'
+	
+	act 'Teaching':
+		!!variables for teaching degree
+		$university['enrolled_in']= 'teaching_studies'
+		gs 'grades', 'createclass', 'uni_teaching_studies_semester_1', 'general education 101', 3, 2, 'no', 'no', 1, 12
+		gs 'grades', 'createclass', 'uni_teaching_studies_semester_1', 'teaching methods 101', 3, 2, 'no', 'no', 1, 12
+		gs 'grades', 'createclass', 'uni_teaching_studies_semester_1', 'learning theories 101', 3, 2, 'no', 'no', 1, 12
+		gs 'grades', 'grade_award', 'uni_teaching_studies_semester_1', 'general education 101', 35
+		gs 'grades', 'grade_award', 'uni_teaching_studies_semester_1', 'teaching methods 101', 35
+		gs 'grades', 'grade_award', 'uni_teaching_studies_semester_1', 'learning theories 101', 35
+		!!gt 'intro_uni', 'elective_choice'
+		gt 'intro_uni', 'dorm_intro'
+	end
+end
+
+if $ARGS[0] = 'dorm_intro':
+	!! Going to the dorm to get the keys
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm.jpg"></center>'
+	'You follow Diane into the dorms building into the main hallway. An older woman, with a very unpleasant and judgmental look on her face sits in a room just off the main hallway.'
+	'Diane goes up to her and says "I need <<$pcs_firstname>> <<$pcs_lastname>>''s room key, please."'
+	'The woman looks your name up on her computer then finds your dorm key and hands it to you.'
+	'"Come on <<$pcs_nickname>>, I want to see your room." Anya drags you towards the elevators, with a smiling Diane following you.'
+
+	act 'Check your room': gt 'intro_uni', 'vika_intro'
+end
+
+if $ARGS[0] = 'vika_intro':
+	!! Visiting dorm room - meeting Vika
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big220.jpg"></center>'
+	'Getting out of the elevator on the tenth floor, you follow the number on your key to the door with the same number. Inside you find a blonde haired girl sitting on one of the two beds in the room. Looking around, you see there is a desk for each of you and a large wardrobe for your clothes.'
+	'The girl gets up and comes to greet you. "Hi, I''m Vika Kirilova. I guess one of you is my new roommate?" She looks between you and Anya, not sure which it is.'
+	'"Hello, Vika. I am <<$pcs_firstname>> <<$pcs_lastname>>. I''m your roommate, this is my sister, Anya." Anya gives her a smile and say hello, mostly checking out your room.'
+	'Diane kind of stays in the doorway, though you do notice a strange look she gives Vika before saying, "We should let your parents know which room you''re in so they can bring in your stuff, while I show you around the campus."'
+	'Once you get back out into the hallway, you ask why she doesn''t like your roommate. "There are a lot of nasty rumors about her. I am not exactly a prude or anything, but if any of those rumors are true, then she makes me look like a virgin living under a rock my whole life."'
+
+	act 'Find your parents': gt 'intro_uni', 'mom_intro'
+end
+
+if $ARGS[0] = 'mom_intro':
+	!! Back outside Intro to Mom - answer sets relationship level
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big29.jpg"></center>'
+	'Once you get back outside, you find your family standing around the piles of boxes with your stuff, surrounded by people coming and going. You tell your father which room and give him the key before your <<$npc_nickname[''A29'']>> pulls you to one side. Anya and Diane step away to catch up a bit and give you some privacy.'
+	'"Big day! Are you excited? I know I am." She gives you a proud look.'
+	'"Yeah, <<$npc_nickname[''A29'']>>! There is so much to do and see here."'
+	'"Well don''t forget to stay focused on your studies, and stay away from boys for now. There is plenty of time after you have finished school to think about that stuff."'
+	
+	act 'I will be fine (neutral response)':
+		gs 'npc_relationship', 'set', 'A29', '50'
+		*clr & cla
+		'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big29.jpg"></center>'
+		'"Everything will be fine, <<$npc_nickname[''A29'']>>. You got me here, I will do the rest."'
+		'She gives you a hug before going to stand over your pile of stuff to keep an eye on it.'
+		
+		act 'Go on tour': gt 'intro_uni', 'tour_intro'
+	end
+	act 'Give it a rest (angry response)':
+		gs 'npc_relationship', 'set', 'A29', '30'
+		*clr & cla
+		'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big29.jpg"></center>'
+		'"Just stop <<$npc_nickname[''A29'']>>! I''m an adult now, and I will do whatever I want with who I want!"'
+		'Her eyes flash in anger, but she doesn''t say anything. She goes and stands next to your pile to keep an eye on it.'
+		
+		act 'Go on tour': gt 'intro_uni', 'tour_intro'
+	end
+	act 'Don''t worry (loving response)':
+		gs 'npc_relationship', 'set', 'A29', '70'
+		*clr & cla
+		'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big29.jpg"></center>'
+		'"I know, don''t worry so much <<$npc_nickname[''A29'']>>. You got me here, I will do the rest."'
+		'She gives you a big hug before going to stand over your pile of stuff to keep an eye on it.'
+
+		act 'Go on tour': gt 'intro_uni', 'tour_intro'
+	end
+end
+
+if $ARGS[0] = 'tour_intro':
+	!! Taking a short tour - can be expanded as more buildings are added - sports arena/pool etc
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/locations/city/island/university/uni_day.jpg"></center>'
+	'You rejoin Anya and Diane, who begins to point out the main areas of the University.'
+	'"Right now you''re in the main courtyard. Most places can be found starting here. You already know where the dorms are, and I imagine you been to the admin building already, where you enrolled. Any paperwork stuff, or trouble you get into will be handled there, it has all the offices."'
+	*nl
+	'She takes you to the front of what must be the largest building on campus. "Most of your starting classes will be here, finding your way around inside is pretty easy despite its size, there are signs everywhere in there."'
+	*nl
+	'She takes you up to another large building, and says "This is the library. Most students without a computer come here to study. You can find me inside a lot, I''m studying to be a teacher and I would be happy to help if you need it."'
+	*nl
+	'"Well that''s the basic tour, the rest you will find as you go."'
+
+	act 'End the tour': gt 'intro_uni', 'tour_end'
+end
+
+if $ARGS[0] = 'tour_end':
+	!! End tour
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big253.jpg"></center>'
+	'The three of you walk back to the dorms, with you taking in the sights while Anya and Diane chat about Rex and the old days.'
+	'Once you get there, Diane reminds you to look for her in the library if you need anything before hugging Anya goodbye and heading back into the crowd of new students.'
+	'Not seeing your <<$npc_nickname[''A29'']>> or your pile of stuff, you head up to your room on the tenth floor.'
+
+	act 'Say goodbye to your family': gt 'intro_uni', 'family_goodbye'
+end
+
+if $ARGS[0] = 'family_goodbye':
+	!! Say goodbye to your family
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/locations/city/island/university/dorm/dorm_room/room.jpg"></center>'
+	'Inside you find your stuff piled on your bed and your <<$npc_nickname[''A29'']>> putting the last of your clothes into the wardrobe. You don''t see Vika, she must have left to give privacy or to avoid meeting them.'
+	'Anya gives a big hug, congratulates you on starting university, and then steps back to give the rest of your family room to do the same. Your brother gives you an awkward hug and whispers to text him what it''s like before stepping back too.'
+	'Vladimir comes over and hugs you too, tells you how proud he is to be your stepfather and to call if you need anything.'
+	if npc_rel['A29'] >= 60:
+		'Your <<$npc_nickname[''A29'']>> finishes what she is doing and comes over, tears in her eyes. Wrapping you in a big hug, she tells you how glad she is you decided to attend university and reminds you again to stay away from boys, before joining the rest of the family by the door.'
+	elseif npc_rel['A29'] <= 30:
+		'Your <<$npc_nickname[''A29'']>> finishes what she is doing and comes over and gives you an awkward hug, saying she is sorry for fighting with you on your big day, before joining the rest of the family by the door.'
+	else
+		'Your <<$npc_nickname[''A29'']>> finishes what she is doing and comes over and gives you a hug, telling how happy she is that you enrolled, before joining the rest of the family by the door.'
+	end
+	*nl
+	'They all wave and head out, leaving you alone in the room. You spend some time putting the rest of your stuff away or stashing under your bed for later, before deciding to explore.'
+
+	act 'Head outside': gt 'intro_uni', 'welcome_intro'
+end
+
+if $ARGS[0] = 'welcome_intro':
+	!! Welcome to Girl Life speech
+	*clr & cla
+	'<center><img <<$set_imgh>> src="images/system/1_openings/6_uni/uni_start.jpg"></center>'
+	'Welcome to Girl Life. Guide <<$pcs_nickname>> through the many challenges of University life. Manage schoolwork, a job, and relationships with the people you meet on your journey.'
+
+	act 'Start the game': gt 'uni_grounds', 'main'
+end
+
+
+--- intro_uni ---------------------------------
+

+ 13 - 0
locations/intro_uni_m.qsrc

@@ -0,0 +1,13 @@
+# intro_uni_m
+
+music_loop = 0
+CLOSE ALL
+gs 'themes', 'indoors'
+$start_type = 'uni_m'
+
+'Not yet available!!'
+
+act 'Return': gt 'begin', 'start'
+
+--- intro_uni_m ---------------------------------
+

+ 13 - 0
locations/intro_uni_tg.qsrc

@@ -0,0 +1,13 @@
+# intro_uni_tg
+
+music_loop = 0
+CLOSE ALL
+gs 'themes', 'indoors'
+$start_type = 'uni_tg'
+
+'Not yet available!!'
+
+act 'Return': gt 'begin', 'start'
+
+--- intro_uni_tg ---------------------------------
+

+ 1 - 1
locations/lover_change.qsrc

@@ -1098,7 +1098,7 @@ if $ARGS[0] = 'Figure':
 								salo = 20 * figurePrefMin + 1
 								if salo < 11: salo = 11
 
-								gs 'body_shape', 'softreset'
+								gs 'body', 'softreset'
 								!!'<<salocatnow>> is the value for salocatnow, the value for fat is <<fat>>, and the value for salo is <<salo>>.'
 								
 							if salocatnow > figurePrefMax:jump 'loopfatRemover'

+ 0 - 2
locations/music_actions.qsrc

@@ -19,8 +19,6 @@ if ARGS[0] = 'start':
         end
         if $ARGS[0] = 'sitr':
 			gt 'sitr'
-        elseif ARGS[0] = 'dachain':
-			gt 'dachain'
         else
 			gt ARGS[0], 'start'
 		end

+ 2 - 2
locations/music_bedroompractice.qsrc

@@ -34,7 +34,7 @@ if $ARGS[0] = 'guitar':
 	if $loc = 'sitr':
 		act 'Finish practice': gt $loc
 	else
-		act 'Finish practice': gt $loc, 'start'
+		act 'Finish practice': gt $loc, $loc_arg
 	end
 end
 
@@ -68,7 +68,7 @@ if $ARGS[0] = 'rehearsing':
 	ml_performance['set_quality'] += rand(1,(pcs_instrmusic + pcs_vokal + pcs_perform)/10)
 	ml_performance['set_lastpracticeday'] = daystart 
 		
-	act 'Finish practice': gt $loc, 'start'
+	act 'Finish practice': gt $loc, $loc_arg
 end
 
 

+ 2 - 0
locations/npcstatic2.qsrc

@@ -86,7 +86,9 @@ npc_dick['A<<npctemp>>'] = 17
 npctemp = 57
 $npc_dna['A<<npctemp>>'] = '1173276062 1427985989 1736266892 1028816280 1824359669 1132882533 1134471109'
 $npc_firstname['A<<npctemp>>'] = 'Rex'
+$npc_lastname['A<<npctemp>>'] = 'Borisyuk'
 $npc_usedname['A<<npctemp>>'] = 'Rex'
+$npc_notes['A<<npctemp>>'] = 'A good friend of your older sister, he throws parties almost every weekend.'
 npc_gender['A<<npctemp>>'] = 0
 gs 'npcstaticdefaults', 'defaults'
 gs 'npcstaticdefaults', 'group', 'friends'

+ 16 - 0
locations/npcstatic5.qsrc

@@ -818,6 +818,22 @@ npc_sexskill['A<<npctemp>>'] = 2
 npc_spermpot['A<<npctemp>>'] = 11000
 npc_haircol['A<<npctemp>>'] = 1
 
+npctemp = 253
+$npc_dna['A<<npctemp>>'] = '0'
+$npc_firstname['A<<npctemp>>'] = 'Diane'
+$npc_nickname['A<<npctemp>>'] = 'Diane'
+$npc_lastname['A<<npctemp>>'] = 'Borisyuk'
+$npc_usedname['A<<npctemp>>'] = 'Diane'
+$npc_notes['A<<npctemp>>'] = 'Diane is Rex''s older sister. She is going to University to be a teacher. She is the studious type and can often be found in the university library, despite a more wild past than one would think when meeting her.'
+npc_dob['A<<npctemp>>'] = 19961031
+npc_gender['A<<npctemp>>'] = 1
+gs 'npcstaticdefaults', 'defaults'
+npc_bust['A<<npctemp>>'] = 20
+hotcat_rating['A<<npctemp>>'] = 8
+npc_intel['A<<npctemp>>'] = 82
+!!$npc_body['A<<npctemp>>'] = 's3' - not a clue what this is for
+!!hair = undecided length and brown
+!!pubic hair = undecided
 
 !! {Keep this at the end of file of the npcstatics.}
 aarraynumber = npctemp

+ 1 - 1
locations/obj_din.qsrc

@@ -121,7 +121,7 @@ if $ARGS[0] = 'menu_disabled': '<font color="red"><b>Menu is disabled for this e
 if $ARGS[0] = 'description':
 	*clr & cla
 	gs 'obj_din','chartabs'
-	gs 'body'
+	gs 'AppearanceSystem'
 	gs 'body_desc'
 	!'<center><img src="images/system/icons/description.png"><br></center>'
 	'<center><h1>Character Description</h1></center>'

+ 2 - 2
locations/pav_clinic.qsrc

@@ -162,7 +162,7 @@ if $ARGS[0] = '':
 							*clr & cla
 							money -= zubpay
 							minut += 60
-							gs 'body_shape', 'basebeautycalc', 1
+							gs 'AppearanceSystem', 'UpdateBaseAppearnce'
 							gs 'stat'
 							if pcs_teeth > 0:
 								pcs_teeth = 0
@@ -180,7 +180,7 @@ if $ARGS[0] = '':
 							*clr & cla
 							karta -= zubpay
 							minut += 60
-							gs 'body_shape', 'basebeautycalc', 1
+							gs 'AppearanceSystem', 'UpdateBaseAppearnce'
 							gs 'stat'
 							if pcs_teeth > 0:
 								pcs_teeth = 0

+ 1 - 1
locations/pav_lake.qsrc

@@ -243,7 +243,7 @@ if temper >= 15 and month >= 5 and month <= 9 and hour >= 6 and hour <= 20:
 		elseif PCloswimwear = 1:
 			if pcs_hips >= 110:
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/lake/lake.walk.bikini.fat0,1.jpg"></center>'
-			elseif bmi_calc > 24:
+			elseif pcs_bmi > 24:
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/lake/lake.walk.bikini.fat0,0.jpg"></center>'
 			else
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/lake/lake.walk.bikini0,'+rand(0,3)+'.jpg"></center>'

+ 1 - 1
locations/pav_market.qsrc

@@ -34,7 +34,7 @@ else
 	end
 end
 *nl
-'Pavlovsk''s modest train station, is near the Pavlovsk market Square. You can enter the central hall of the <a href="exec:minut += 3 & gt ''pav_train_hall''">train station</a>. Down the street from the train station is the <a href="exec:minut += 5 & gt ''gkafe''">Borislav''s cafe</a>' + iif(storyline = 1,' where your mother works','') + '. Next to the train station you can see the <a href="exec:minut += 5 & gt ''pavstation'', ''station_outside''">Pavlovsk police station</a> where you can find Pavlovsk''s finest.'
+'Pavlovsk''s modest train station, is near the Pavlovsk market Square. You can enter the central hall of the <a href="exec:minut += 3 & gt ''pav_train_hall''">train station</a>. Down the street from the train station is the <a href="exec:minut += 5 & gt ''gkafe''">Borislav''s cafe</a>' + iif(storyline = 1,' where your mother works','') + '. Next to the train station you can see the <a href="exec:minut += 5 & gt ''pav_station'', ''station_outside''">Pavlovsk police station</a> where you can find Pavlovsk''s finest.'
 *nl
 'The other side of the train station is a large square, where you can find a <a href="exec:minut += 1 & gt ''pav_train_market'', ''start''">market</a> on most days.'
 *nl

+ 1 - 1
locations/preCUST.qsrc

@@ -366,7 +366,7 @@ if $ARGS[0] = 'Done':
 	pcs_pubecol = pcs_haircol & pcs_pubecol[1] = 1
 	oldsavepcs_haircol = 1
 
-	gs 'body_shape', 'initial'
+	gs 'body', 'initial'
 
 !! Adding underwear and default shoes and assigning them
 

+ 5 - 5
locations/salon.qsrc

@@ -1122,7 +1122,7 @@ if $ARGS[0] = 'lashTreatment':
 	else
 		money -= 5000
 	end
-	gs 'body_shape', 'basebeautycalc', 1
+	gs 'AppearanceSystem', 'UpdateBaseAppearnce'
 	
 	gs 'stat'
 	'The specialist collects your payment and moves you over to a chair with a headrest, which she has you tilt your head back up against.'
@@ -1155,7 +1155,7 @@ if $ARGS[0] = 'lashFalsies':
 		end
 		'She spends a few minutes selecting and trimming a set of ornate, dramatically-feathered false lashes to get them to line up neatly with your own natural set, and with practiced ease she glues them delicately in place, only having to give them one or two gentle, settling nudges.'
 	end
-	gs 'body_shape', 'basebeautycalc', 1
+	gs 'AppearanceSystem', 'UpdateBaseAppearnce'
 	gs 'stat'
 	'"There you go! You''re all set! Have fun with wherever you''re going!"'
 	act 'Leave':gt 'salon', 'start'
@@ -1262,7 +1262,7 @@ if $ARGS[0] = 'lashExtension':
 		killvar 'lashextensionduration'
 		killvar 'lashextensionstyle'
 	end
-	gs 'body_shape', 'basebeautycalc', 1
+	gs 'AppearanceSystem', 'UpdateBaseAppearnce'
 	gs 'stat'
 	'After what seems like forever, you''re finally allowed to open your eyes and take a look.'
 	act 'Leave':gt 'salon', 'start'
@@ -1577,7 +1577,7 @@ if $ARGS[0] = 'skin_care':
 	else
 		money -= 5000
 	end
-	gs 'body_shape', 'basebeautycalc', 1
+	gs 'AppearanceSystem', 'UpdateBaseAppearnce'
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/salon/facialmask.jpg"></center>'
 	'You get a beauty mask treatment, afterwards your face feels smooth and your skin tight.'
@@ -1594,7 +1594,7 @@ if $ARGS[0] = 'rejuvination':
 	else
 		money -= 25000
 	end
-	gs 'body_shape', 'basebeautycalc', 1
+	gs 'AppearanceSystem', 'UpdateBaseAppearnce'
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/salon/bodyscrub.jpg"></center>'
 	'You get a full body rejuvenation procedure, afterwards your skin feels soft and silky smooth.'

+ 19 - 1
locations/stat.qsrc

@@ -1031,9 +1031,27 @@ elseif rape > 0 and rape ! rape_count and orgasm > 0 and orgasm ! orgasm_count:
 	orgasm_count = orgasm
 	rape_count = rape
 end
+!! Drug stats
+if StrongNarkota <= 0:
+	if SNarkTimes >= 3 and SLomka = 0:SLomka = 1
+end
+
+if amphCount > 3 and amphHigh <= 0:
+	addictChance = rand(1,10)
+	if addictChance > 8:
+		amphWithdrawl = 2
+	end
+end
+
+if StrongNarkota > 0:
+	if SLomka > 0:SLomka = 0
+	pcs_mood = 100
+end
 
 !!Health, Willpower, Auto Birth Control pregnancy check
-gs 'body'
+gs 'body', 'RegularUpdate'
+gs 'AppearanceSystem'
+gs 'body_desc'
 
 if pcs_health >= healthmax:
 	$pcs_health = '<font color="green">You are very healthy.</font>'

+ 1 - 1
locations/tatiana_lab.qsrc

@@ -383,7 +383,7 @@ if $ARGS[0] = 'Tatiana':
 					cla
 					minut += 30
 					dounspell = 1
-					gs 'body_shape', 'hardreset'
+					gs 'body', 'hardreset'
 					gs 'stat'
 					'<center><img <<$set_imgh>> src="images/characters/city/tatiana/magiclook.jpg"></center>'
 					'Tatiana lowers her glasses and stares deeply into your eyes. It feels like time just stops being a thing and you are floating.'

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