Преглед изворни кода

New body shape system and functions from Vaelon

KevinSmarts пре 8 година
родитељ
комит
2b08ce00b8

+ 1 - 0
glife-notepad++

@@ -80,6 +80,7 @@
             <File name="locations\BnameGen" />
             <File name="locations\bobka" />
             <File name="locations\body" />
+            <File name="locations\body_shape" />
             <File name="locations\boilerroom" />
             <File name="locations\bordel" />
             <File name="locations\bordelv" />

+ 1 - 0
glife.qproj

@@ -42,6 +42,7 @@
     </Folder>
     <Folder name="Stats">
       <Location name="body"/>
+      <Location name="body_shape"/>
       <Location name="cikl"/>
       <Location name="pain"/>
       <Location name="daystart"/>

+ 0 - 1
locations/BurgerTip

@@ -227,7 +227,6 @@ if $ARGS[0] = 'work':
 								horny += 15
 								water = 100
 								energy = 100
-								salo += 2
 								fat += 4
 								gs 'stat'
 								'<center><img src="images/qwest/sosed/kafe.jpg"></center>'

+ 25 - 0
locations/Cheatmenu_din

@@ -340,6 +340,8 @@ $cheatmenu['looks'] = {
 	if throat <= 31:pl'<a href="exec:throat += 5 & dynamic $cheatmenu[''looks'']">Increase throat capacity</a>'
 	if throat >= 5:pl'<a href="exec:throat -= 5 & dynamic $cheatmenu[''looks'']">Decrease throat capacity</a>'
 	pl''
+	pl'<a href="exec:dounsplkil = 2 & gs ''body_shape'', ''hardreset''">Hard Reset body shape</a>'
+	pl''
 	pl'<a href="exec:dynamic $cheatmenu[''looks2'']">Go to page 2</a>                <a href="exec:dynamic $cheatmenu[''looks3'']">Go to page 3</a>'
 }
 	
@@ -439,6 +441,29 @@ $cheatmenu['parameters'] = {
 	pl'<<silicone>> - silicone'
 	pl'<<grudi>> - <<talia>> - <<bedra>>, <<$titsize>> breasts, the difference between the hips and waist <<bedra-talia>> cm'
 	pl'Muscularity <<musle>> - musle, <<salo>> - salo, <<fat>> - fat'
+	pl''
+	pl'Variables used in ''new'' body shape code'
+	pl'agilbuf = <<agilbuf>>'
+	pl'grutal = <<grutal>>'
+	pl'vhips = <<vhips>>'
+	pl'vhtmp = <<vhtmp>>'
+	pl'wratio = <<wratio>>'
+	pl'bratio = <<bratio>>'
+	pl'hratio = <<hratio>>'
+	pl'vofat = <<vofat>>'
+	pl'nbsize = <<nbsize>>'
+	pl'magicf2b = <<magicf2b>>'
+	pl'genbsize = <<genbsize>>'
+	pl'salocatnow = <<salocatnow>>'
+	pl'salocatlast = <<salocatlast>>'
+	pl'magf2bdo = <<magf2bdo>>'
+	pl'mgf2bnocnt = <<mgf2bnocnt>>'
+	pl'magtarcup = <<magtarcup>>'
+	pl'normbuffpick = <<normbuffpick>>'
+	pl'nrmbfpckct = <<nrmbfpckct>>'
+	pl'btwarn = <<btwarn>>'
+	pl'salolast = <<salolast>>'
+	pl'sftrstflag = <<sftrstflag>>'
 }
 
 $cheatmenu['tatoo'] = {

+ 0 - 1
locations/Gadsarai

@@ -281,7 +281,6 @@ else
 			minut += 60
 			beg += RAND(0,1)
 			speed += rand (0,2)
-			if salo > 0:salo -= 1
 			fat -= rand(2, 7)
 			manna+=5
 			sweat+=2

+ 22 - 1
locations/bed2

@@ -62,7 +62,11 @@ if $args[0] = '':
 				end
 			end
 			gs 'clothing', 'strip'
-			gt 'bed2', 'sleep'
+			if magf2bdo = 2:
+				gt 'bed2', 'magbstchoice'
+			else
+				gt 'bed2', 'sleep'
+			end
 		end
 	end
 
@@ -302,5 +306,22 @@ if $ARGS[0] = 'succubinit':
 	act 'Finish': gt $locM, $metkaM
 end
 
+if $ARGS[0] = 'magbstchoice':
+	cls
+	cla
+	tittmp = tits + 1
+	'<center><img src="images/body/t<<tittmp>>.jpg"></center>'
+	killvar 'tittmp'
+	'You have an odd dream where you are looking at your naked chest in a mirror and your breasts seem larger...'
+	'As the dream starts to drift away, you find yourself gazing at the reflection of your breasts and think:'
+	act 'Nice, I wish my breasts really would grow.':
+		magf2bdo = 1
+		magtarcup += 1
+		killvar 'mgf2bnocnt'
+		gt 'bed2', 'sleep'
+	end
+	act 'Eh, I don''t like them like that.': magf2bdo = 0 & mgf2bnocnt += 1 & gt 'bed2', 'sleep'
+end
+
 --- bed2 ---------------------------------
 

+ 35 - 38
locations/body

@@ -104,54 +104,42 @@ end
 !!!!!SIZE AND WEIGHT!!!
 !!!!!!!!!!!!!!!!
 if dounspell = 0:
-	strenbuf = stren / 2
-	vitalbuf = vital / 2
-	vmeat = (strenbuf + vitalbuf) / 8
-	vfat = salo / 10
-	Kves = vmeat + vfat
-	krost = rost - 130
-	ves = Kves + krost - (agilbuf / 10)
-	talia = ves - (agilbuf / 10)
-	grudi = talia + 10 + vfat + silicone + nbsize
-	grutal = talia
-	bedra = talia + 15 + (vmeat / 2) + vfat
-	titK = grudi - talia
-	if (bedra - talia) > 45 and musle < salo:
-		if ves < 70:koefvesbt = 0
-		if ves >= 70:koefvesbt = ves - 70
-
-		koefbt = koefvesbt + ((bedra - talia) - 45)
-		talia += koefbt
-	end
-
-	if titK <= 10:
+	bedra = (rost * hratio) / 100 + vhips
+	talia = (bedra * wratio) / 100 + vofat
+	grutal = (talia * bratio) / 100 + vofat
+	grudi = (talia * bratio) / 100 + nbsize + magicf2b + silicone
+	titK = grudi - grutal
+!!This is just a quick abstration for weight and will change
+	ves = talia
+
+	if titK <= 5:
 		tits = 0
 		$titsize = 'A cup'
-	elseif titK <= 15:
+	elseif titK <= 10:
 		tits = 1
 		$titsize = 'B cup'
-	elseif titK <= 20:
+	elseif titK <= 15:
 		tits = 2
 		$titsize = 'C cup'
-	elseif titK <= 25:
+	elseif titK <= 20:
 		tits = 3
 		$titsize = 'D cup'
-	elseif titK <= 30:
+	elseif titK <= 25:
 		tits = 4
 		$titsize = 'E cup'
-	elseif titK <= 35:
+	elseif titK <= 30:
 		tits = 5
 		$titsize = 'F cup'
-	elseif titK <= 40:
+	elseif titK <= 35:
 		tits = 6
 		$titsize = 'G cup'
-	elseif titK <= 45:
+	elseif titK <= 40:
 		tits = 7
 		$titsize = 'H cup'
-	elseif titK <= 50:
+	elseif titK <= 45:
 		tits = 8
 		$titsize = 'I cup'
-	elseif titK <= 55:
+	elseif titK <= 50:
 		tits = 9
 		$titsize = 'J cup'
 	else
@@ -403,16 +391,18 @@ $milk_me = {
 ! WD: Move missing Image ~ "hpussy.jpg" from "images/picb" to "images/body"
 if lobok > 2:lobkoef = 0 & $lobok = 'You have a full triangle of thick <a href="exec:view''images/body/hpussy.jpg''">pubic hair</a>. <<$pirspiz>><br><<$clitsize>>'
 
-bodytipe = bedra - talia
-if bodytipe < 20:bodykoef = 0
-if bodytipe >= 20 and bodytipe < 25:bodykoef = 2
-if bodytipe >= 25 and bodytipe < 30:bodykoef = 4
-if bodytipe >= 30 and bodytipe < 35:bodykoef = 8
-if bodytipe >= 35:bodykoef = 4
+If dounspell = 1:
+	bodytipe = bedra - talia
+	if bodytipe < 20: bodykoef = 0
+	if bodytipe >= 20 and bodytipe < 25: bodykoef = 2
+	if bodytipe >= 25 and bodytipe < 30: bodykoef = 4
+	if bodytipe >= 30 and bodytipe < 35: bodykoef = 8
+	if bodytipe >= 35: bodykoef = 4
+end
+
 if tan > 0:tanKoef = 1
 if tan = 0:tanKoef = 0
 
-
 ! WD: Add braids (Maruda Hair Mod) to bonus to vnesh
 if curly > 0 or hbraids > 0:
 	curlykoef = 1
@@ -495,7 +485,14 @@ end
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !!!!!!!!BODY
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-musle = strenbuf + vitalbuf
+
+If dounspell = 1:
+	musle = strenbuf + vitalbuf
+elseif normbuffpick = 2:
+	musle = salo + 1
+else
+	musle = salo - 1
+end
 
 if musle >= salo:
 	!!muscular type

+ 273 - 0
locations/body_shape

@@ -0,0 +1,273 @@
+# 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 
+!!normbuffpick = sets the status of using normal or buff body images and calculation
+!!nrmbfpckct = used to count the number of times a switch to buff was turned down and stop asking after 3
+!!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
+
+if $ARGS[0] = '':
+!!Fall of muscularity over time
+	if stren >= 26 and vital >= 26 and sftrstflag = 0:
+		if downmusl >= 5:
+			downmusl = 0
+			stren -= 1
+			vital -= 1
+			agil -= 1
+			fat += 5
+		else
+			downmusl += rand (0,1)
+		end
+	end
+
+!!This controls the gradual change in stat to -buf
+	if strenbuf > stren: strenbuf -= 1
+	if strenbuf < stren: strenbuf += 1
+	if vitalbuf > vital: vitalbuf -= 1
+	if vitalbuf < vital: vitalbuf += 1
+	if agilbuf > agil: agilbuf -= 1
+	if agilbuf < 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
+	if (vitalbuf + strenbuf + agilbuf) /3 < 11:
+		wratio = 85 + (11 - (vitalbuf + strenbuf + agilbuf)/3)
+	elseif (vitalbuf + strenbuf + agilbuf) /3 > 100:
+		wratio = 70 - ((vitalbuf + strenbuf)/2 - agilbuf)/5
+	end
+
+	wrtemp = ((2 * vitalbuf + strenbuf + agilbuf) /4)
+	if wrtemp >= 11 and wrtemp < 20: wratio = 85
+	if wrtemp >= 20 and wrtemp < 35: wratio = 85 - (wrtemp - 20) / 3
+	if wrtemp >= 35 and wrtemp < 55: wratio = 80 - (wrtemp - 35) / 4
+	if wrtemp >= 55 and wrtemp < 80: wratio = 75 - (wrtemp - 55) / 5
+	if wrtemp >= 80 and (vitalbuf + strenbuf + agilbuf) /3 <= 100: wratio = 70
+
+	if wratio < 65: wratio = 65
+	killvar 'wrtemp'
+
+!!Setting the vnesh bonus based on wratio
+	if wratio >= 85: bodykoef = 0
+	if wratio < 85 and wratio >= 80: bodykoef = 2
+	if wratio < 80 and wratio >= 75: bodykoef = 4
+	if wratio < 75 and wratio >= 70: bodykoef = 8
+	If wratio <= 69: bodykoef = 4
+
+!!For band to waist ratio
+	brtemp = (2 * strenbuf + vitalbuf + agilbuf) /4
+	if brtemp < 10: bratio = 105
+	if brtemp >= 10 and brtemp =< 23: bratio = 106
+	if brtemp > 23 and brtemp =< 80: bratio = 106 + (brtemp - 23) / 3
+	if brtemp > 80: bratio = 125
+	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
+	if hrtemp >= 35 and hrtemp < 45: hratio = 59
+	if hrtemp >= 45 and hrtemp < 60: hratio = 58
+	if hrtemp >= 60 and hrtemp < 80: hratio = 57
+	if hrtemp >= 80: hratio = 56
+	killvar 'hrtemp'
+
+!!Salo Handling
+	if salo > fat: salo -= 1
+	if salo < fat: salo += 1
+
+!!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 controls the movement of salo to/from bust in order of precedence
+	if salobustdo = 0 and nbsize < genbsize and salocatnow > 2:
+		nbsize += 1
+		salo -= 3
+		salobustdo = 1
+		jump 'salocatloop'
+	end
+
+	if salobustdo = 0 and magf2bdo = 1 and salocatnow > salocatlast and manna >= mannamax / 2:
+		magicf2b += 1
+		salo -= 3
+		salobustdo = 1
+		if magicf2b >= 2 + magtarcup * 5: magf2bdo = 0
+		if magik < 20:
+			manna -= 2000 / magik
+		else
+			mana -= 100
+		end
+		jump 'salocatloop'
+	end
+
+	if salobustdo = 0 and salocatnow < 2 and salocatlast >= 2 and magicf2b > 0:
+		magicf2b -= 1
+		salo += 3
+		salobustdo = 1
+		magf2bdo = 1
+		jump 'salocatloop'
+	end
+
+	if salobustdo = 0 and salocatnow < 2 and salocatlast >= 2 and nbsize > 0:
+		nbsize -= 1
+		salo += 3
+		salobustdo = 1
+		jump 'salocatloop'
+	end
+
+!!This is for switching to and from the normal and buff image sets (& vital resisting salo w/ buff set)
+	if normbuffpick = 0 and salocatnow <= 2 and (strenbuf + agilbuf) >= 50: normbuffpick = 1
+	if normbuffpick = 1 and nrmbfpckct >= 3: normbuffpick = -1
+	if normbuffpick >= 1 and salocatnow > 2 and vitalbuf >= 25:
+		if vitalbuf / 25 > tempvct:
+			tempvct += 1
+			salo -= 1
+			jump 'salocatloop'
+		else
+			normbuffpick = 0
+		end
+	end
+!!Note: normbuffpick = 1 will trigger the bathing option scene and three nos there will set normbuffpick = -1; until a choice is made, will behave as =2
+
+!!This is if salo is still < 1 (will add code for Succubus here later)
+	if salo < 1:
+		if fat >= 1:
+			salo = 1
+			if fat > 1: fat -= 1
+		elseif fat <= 0 and stren + vital > 0:
+			stren -= 1
+			vital -= 1
+			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)
+	if normbuffpick = 2:
+		vhtmp = (strenbuf - agilbuf) / 2
+	else
+		vhtmp = (salo - 80) / 2
+	end
+	if vhips > vhtmp: vhips -= 1
+	if vhips < vhtmp: vhips += 1
+
+	if (rost * hratio) / 100 + vhips > (rost * 72) / 100:
+		vofat = ((rost * hratio) / 100 + vhips - (rost * 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 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
+	if salolast > salo: salolast -= 1
+	if salolast < salo: salolast += 1
+
+!!This accounts for higher Stats burning more fat during the day (the plus 5 is to give some working room)
+	if salo + 5 < fat:
+		if salo + 5 < fat - ((agilbuf + strenbuf + vitalbuf)/30):
+			fat -= (agilbuf + strenbuf + vitalbuf)/30
+		else
+			fat = salo + 5
+		end
+	end
+
+end
+
+if $ARGS[0] = 'softreset':
+!!This is for use in immediately updating shape if something has forced salo = fat by
+!!cycling the main code the number of times it would have normally w/ a change in fat
+	sftrstflag = 1
+	:resetloop
+	if fat ! salo:
+		gs 'body_shape'
+		jump 'resetloop'
+	end
+!!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:
+		fat = 12 & salo = 12
+		agilbuf = agil & strenbuf = stren & vitalbuf = vital
+		salobustdo = 1 & sftrstflag = 1 & normbuffpick = -1
+		gs 'body_shape'
+		salo = (bedra * 2) - ((rost * hratio) / 50) + 80
+		fat = salo
+		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 >= 30:
+				genbsize = 30
+			else
+				genbsize = nbsize - nbsize mod 5
+			end
+		elseif genbsize = 0 and nbsize = 0 and silicone >= 20:
+			genbsize = 10 & nbsize = 10 & silicone -= 10
+		end
+		sftrstflag = 0 & normbuffpick = 0 & btwarn = 0 & magf2bdo = 0
+		killvar 'dounsplkil'
+		dounspell = 0
+		gs 'body_shape'
+		gs 'stat'
+	else
+		'If you''re seeing this, something odd happened.'
+	end
+end
+
+--- body_shape ---------------------------------
+

+ 25 - 101
locations/cikl

@@ -308,7 +308,7 @@ if suhbelo > 0:suhbelo2 = suhbelo & suhbelo = 0
 
 if fbreath = 1:fbreath = 0
 
-if cheatNoEat = 1:fat += 15
+if cheatNoEat = 1 and dounspell = 1:fat += 15
 
 manna -= 10
 
@@ -322,23 +322,6 @@ elseif beg >= 100:
 	beg -= 1
 end
 
-!'
-if salo > fat:
-	salo -= 1
-	fat += 1
-else
-	salo += 1
-	fat -= 1
-end
-
-if strenbuf > stren:strenbuf -= 1
-if strenbuf < stren:strenbuf += 1
-if vitalbuf > vital:vitalbuf -= 1
-if vitalbuf < vital:vitalbuf += 1
-if agilbuf > agil:agilbuf -= 1
-if agilbuf < agil:agilbuf += 1
-'!
-
 !STD check
 if SifacOnce = 1:Sifilis += 1
 if GerpesOnce = 1:Gerpes += 1
@@ -454,19 +437,6 @@ end
 
 if horny < 0:horny = 0
 
-if musle >= salo and stren >= 10 and vital >= 10 and dounspell = 0:
-	!!Fall muscularity
-	if downmusl >= 5:
-		downmusl = 0
-		stren -= 1
-		vital -= 1
-		fat += 4
-		salo += 4
-	else
-		downmusl += 1
-	end
-end
-
 !counter for Dimka avoidance
 if nodimka = 1:
 	nodimkaK += 1
@@ -603,76 +573,30 @@ if GspravkaT = 1:Gspravka -= 1
 if IvanPodstavaQW = 2 and PodpiskaNeviezd = 30:IvanPodstavaQW = 3
 if IvanPodstavaQW = 2 and PodpiskaNeviezd > 0 and PodpiskaNeviezd < 30:PodpiskaNeviezd += 1
 
-if salo > (fat + 40):
-	salo -= 3
-	fat += 3
-elseif salo > (fat + 20):
-	salo -= 1
-	fat += 1
-elseif salo > (fat + 10):
-	fatD2roll = rand(0,1)
-	salo -= fatD2roll
-	fat += fatD2roll
-end
-
-if fat > (salo + 40):
-	salo += 3
-	fat -= 3
-elseif fat > (salo + 20):
-	salo += 1
-	fat -= 1
-elseif fat > (salo + 10):
-	fatD2roll = rand(0,1)
-	salo += fatD2roll
-	fat -= fatD2roll
-end
-
-if salo > 240:
-	salo = 240
-elseif salo > 180:
-	salo -= 3
-elseif salo > 120:
-	salo -= 2
-elseif salo > 60:
-	salo -= 1
-elseif salo < 30: 
-	salo += 3
-elseif salo < 60:
-	salo += 2
-end
-
-if fat > 240:
-	fat = 240
-elseif fat > 180:
-	fat -= 3
-elseif fat > 120:
-	fat -= 2
-elseif fat > 60:
-	fat -= 1
-elseif fat < 30:
-	fat += 3
-elseif fat < 60:
-	fat += 2
-end
-
-if strenbuf > 90:
-	strenbuf -= 2
-elseif strenbuf > 80:
-	strenbuf -= 1
-end
-
-if vitalbuf > 90:
-	vitalbuf -= 2
-elseif vitalbuf > 80:
-	vitalbuf -= 1
-end
-
-if strenbuf > stren:strenbuf -= 1
-if strenbuf < stren:strenbuf += 1
-if vitalbuf > vital:vitalbuf -= 1
-if vitalbuf < vital:vitalbuf += 1
-if agilbuf > agil:agilbuf -= 1
-if agilbuf < agil:agilbuf += 1
+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 > stren:strenbuf -= 1
+	if strenbuf < stren:strenbuf += 1
+	if vitalbuf > vital:vitalbuf -= 1
+	if vitalbuf < vital:vitalbuf += 1
+	if agilbuf > agil:agilbuf -= 1
+	if agilbuf < agil:agilbuf += 1
+else
+	gs 'body_shape'
+end
+
+
 if husband > 0 and husbandrink ! 11:husbandrink = rand(0, 10)
 
 inWorkYoungShop = 0

+ 21 - 0
locations/din_van

@@ -154,6 +154,18 @@ $bath = {
 			dynamic $brother_voyeurism
 		end
 
+		if btwarn > 0:
+			if btwarn = 1: $weightwarn = 'losing'
+			if btwarn = 2: $weightwarn = 'gaining'
+			'<font color="red"><b>You seem to be <<$weightwarn>> weight.</b></font>'
+			killvar '$weightwarn' & btwarn = 0
+		end
+		if normbuffpick = 1:
+			''
+			'<b>You notice that your muscles are starting to show through your skin.</b>'
+			act 'Examine yourself closer while drying off and getting dressed...': gt 'din_van', 'buffpick'
+		end
+
 		if leghair > 0 and stanok > 0 or lobok > 0:
 			act 'Get razor':dynamic $brit
 		end
@@ -767,5 +779,14 @@ if $ARGS[0] = 'misery':
         end
     end
 end
+
+if $ARGS[0] = 'buffpick':
+	'<center><img src="images/body/fit2.jpg"></center>'
+	'While drying off and getting dressed you examine the sleek muscles that are showing through your skin.'
+	'As you do so you think about how you look and decide:'
+	act: 'You like how you look.': normbuffpick = 2 & mirror_steam = hour & gt $locM, $metkaM
+	act: 'You don''t like how you look.': nrmbfpckct += 1 & normbuffpick = 0 & mirror_steam = hour & gt $locM, $metkaM
+end
+
 --- din_van ---------------------------------
 

+ 6 - 1
locations/food

@@ -146,8 +146,13 @@ if $ARGS[0] = 'l_meal':
 	gs 'cum_cleanup'
 	fbreath = 0
 	'<center><img src="images/pics/food.jpg"></center>'
-
+	if plcooked = 1:
+		'You gladly eat the cooked meal. You feel sated.'
+		'You accompany it with a mug of tea.'
+		act 'Finish': killvar 'plcooked' & gt $locM, $metkaM
+	end
 end
+
 if $ARGS[0] = 'bag_lunch':
 	cla
 	*clr

+ 0 - 2
locations/gdksport

@@ -554,8 +554,6 @@ if $ARGS[0] = 'racing2':
 	speed += rand(1, 3)
 	manna -= 5
 
-	if salo > 0:salo -= 1
-
 	fat -= 5
 	sweat += 3
 	beg += rand(0,2)

+ 0 - 1
locations/gskver

@@ -131,7 +131,6 @@ if $clothingworntype = 'exercise' and hour > 5 and hour < 22 and daybegskver ! d
 	act 'Go for a run in the park (1:00)':
 		cls
 		minut += 60
-		if salo > 3:salo -= rand(1, 3)
 		fat -= rand(2, 7)
 		beg += rand(0, 2)
 		sweat += 2

+ 19 - 3
locations/kit_din

@@ -349,6 +349,19 @@ $dirtarm = {
 }
 
 $edagotd = {
+	cla
+	*clr
+	gs 'stat'
+	'<center><img src="images/pics/cook.jpg"></center>'
+	'What kind of meal would you like to make?'
+
+	act 'Prepare a light meal (0:30)': $edameal = 's_meal' & dynamic $edagotpk
+	act 'Prepare a normal meal (0:30)': $edameal = 'm_meal' & dynamic $edagotpk
+	act 'Prepare a hearty meal (0:30)': $edameal = 'l_meal' & plcooked = 1 & dynamic $edagotpk
+	act 'Nevermind':gt $locM, $metkaM
+}
+
+$edagotpk = {
 	cla
 	*clr
 	minut += 30
@@ -360,7 +373,7 @@ $edagotd = {
 	manna -= 5
 	gs 'stat'
 	'<center><img src="images/pics/cook.jpg"></center>'
-	'You prepare a meal.'
+	'You prepare the meal.'
 
 	act 'Eat cooked food (0:30)':dynamic $edahotd
 	act 'Leave the meal':gt $locM, $metkaM
@@ -372,7 +385,9 @@ $edahotd = {
 	edahot = 0
 	dirttarelka += 1
 	manna += 20
-	gs 'food', 'm_meal'
+	if $edameal = '': $edameal = 'm_meal'
+	gs 'food', $edameal
+	killvar '$edameal'
 }
 
 $eatout = {
@@ -444,7 +459,8 @@ $fatdel = {
 			if fat > salo:fat = salo
 			fatdel -= 1
 			fat -= 25
-			if fat < 0:fat = 0
+			if fat < 11: fat = 11
+			gs 'body_shape', 'softreset'
 
 			'You drink the fat burning capsule. These capsules are quick release and results can be seen immediately.'
 

+ 2 - 1
locations/kuhrPar

@@ -107,7 +107,8 @@ if fatdel > 0:
 		fatdel -= 1
 		fat -= 25
 
-		if fat < 0:fat = 0
+		if fat < 11: fat = 11
+		gs 'body_shape', 'softreset'
 
 		'You throw the capsule of fat burners in a glass, add some water and drink it. You''re amazed at how fast the capsule works, feeling your body slim down almost immediately.'
 

+ 7 - 4
locations/poli

@@ -1206,7 +1206,7 @@ if $ARGS[0] = 'cosmetic1':
 		else
 		'Eye enlargement surgery - 30000'
 	end
-	if money >= 150000 and fat + salo ! 0:
+	if money >= 150000 and salo > 40:
 		'<a href="exec:gt ''poli'', ''lyposuction''">Lyposuction</a> - 150000'
 		else
 		'Lyposuction - 150000'
@@ -1324,10 +1324,13 @@ end
 if $ARGS[0] = 'lyposuction':
 	cls
 	minut += 60
-	fat = 0
-	salo = 0
+	fat -= 40
+	salo -= 40
+	if fat < 11: fat = 11
+	if salo < 11: salo = 11
 	money -= 150000
-	gs 'stat'
+	gs 'body_shape', 'softreset'
+	gs 'stat''
 	'<center><img src="images/etogame/cosmeticsur.jpg"></center>'
 	'Surgeon has you strip, put on a gown and lie down on the table. He gives you a mask and tells you to breathe in. By the time you wake up procedure is complete.'
 

+ 0 - 1
locations/salon

@@ -96,7 +96,6 @@ end
 
 if $ARGS[0] = 'ozdormas':
 	minut += 60
-	salo -= 2
 	vidageday += 3
 	money -= 5000
 	gs 'stat'

+ 0 - 1
locations/saunaroom

@@ -28,7 +28,6 @@ if workDolg > 0:
 		energy += 60
 		water += 60
 		fat += 3
-		! salo += 1
 		frost = 0
 		gs 'stat'
 		'<center><img src="images/pics/food.jpg"></center>'

+ 10 - 5
locations/stat

@@ -441,8 +441,8 @@ if minut >= 60:
 			if volleyboll > 0:volleyboll -= 1
 			
 			if alko >= 6:
-				if stren > 10:stren -= 1 & salo += 3
-				if vital > 10:vital -= 1 & salo += 3
+				if stren > 10:stren -= 1
+				if vital > 10:vital -= 1
 				if intel > 10:intel -= 1
 
 				alko -= rand (1, 2)
@@ -499,7 +499,7 @@ if minut >= 60:
 	end
 
 	if energy > 100:
-		fat += (energy - 100) / 2
+		fat += (energy - 100) / 8
 		energy = 100
 	end
 
@@ -819,8 +819,13 @@ end
 
 if succubusflag = 1:
 	if energy < 0:
-		energy += 8 + succublvl
-		sucexcess -= (8+succublvl) * (6-succublvl)
+		if fat >= 1:
+			fat -= 2
+			energy += 8 + succublvl
+		else
+			energy += 8 + succublvl
+			sucexcess -= (8+succublvl) * (6-succublvl)
+		end
 	end
 	if health < 0:
 		health = 10

+ 1 - 1
locations/trFatherMisha

@@ -205,7 +205,7 @@ elseif trfatherMishaQW = 2:
 		act 'Buy cotton candy':
 			cls
 			minut += 15
-			salo += 1
+			fat += 2
 			manna += 500
 			gs'stat'
 			'<center><img src="images/qwest/alter/trfatherqw/trfatherqw_25.jpg"></center>'