Browse Source

[changed] Updated the exercise gosub to use the time argument to calculate exp gain, fat burn and so on. Changed all looping of gs 'exercise', 'tier*', 0 to use the total time as argument. Reversed the fat burn of the tiers,and other small fixes.

bgkjdgbizgblzdgbr 2 years ago
parent
commit
18e64752e6

+ 2 - 14
locations/AlbStars.qsrc

@@ -254,13 +254,7 @@ if $ARGS[0] = 'starlets':
 
 	AlbinaQW['startletsday'] = daystart
 	starlets_practice = 0
-	timemult = 8
-	loopcount = 1
-	:starletstimeloop
-	gs 'exercise', 'tier2', 0, 'agil_exp', 'dancero_exp'
-	if loopcount < timemult: loopcount += 1 & jump 'starletstimeloop'
-	loopcount = 0
-	timemult = 0
+	gs 'exercise', 'tier2', 120, 'agil_exp', 'dancero_exp'
 	pcs_mood -= 5
 	inhib_exp += rand(2,4)
 	if perform_lvl < 35: perform_exp += 1
@@ -299,13 +293,7 @@ if $ARGS[0] = 'starlets':
 
 		act 'Do the show':
 			*clr & cla
-			timemult = 8
-			loopcount = 1
-			:showtimeloop
-			gs 'exercise', 'tier2', 0, 'agil_exp', 'danc_exp'
-			if loopcount < timemult: loopcount += 1 & jump 'showtimeloop'
-			loopcount = 0
-			timemult = 0
+			gs 'exercise', 'tier2', 120, 'agil_exp', 'danc_exp'
 			money += albpayrand * 1000
 			killvar 'albpayrand'
 			noShampoo = 1

+ 6 - 1
locations/abduction.qsrc

@@ -582,7 +582,12 @@ if $ARGS[0] = 'abdFood':
 	'There are some water bottles and dried food beneath your bed.'
 	'A half broken, dirty mirror provides some means to inspect your appearance.'
 	'In the corner is something remotely similar to a shower. It only has cold water though.'
-	'There''s enough space to do some basic <a href="exec:gt ''abduction'', ''abdexercise''">exercise</a>.'
+	if pcs_energy >= 20:
+		'There''s enough space to do some basic <a href="exec:gt ''abduction'', ''abdexercise''">exercise</a>.'
+	else
+		'There''s enough space to do some basic exercise if you had the energy.'
+	end
+
 	chainChance = rand(1,100)
 	if chainChance <= 20 and (rapeCount > 5 or tortureCount > 5):
 		'You spot a loose link on your chain. You try to manipulate it, and you manage to free yourself from the wall.'

+ 10 - 23
locations/albinahome.qsrc

@@ -242,22 +242,19 @@ end
 if $ARGS[0] = 'stripping':
 	*clr & cla
 	AlbinaQW['SportDay'] = daystart
-	minut += 120
-	fat -= 5
-	agil_exp += rand (1, 3)
 	npc_rel['A23'] += 1
-	gs 'sweat', 'add', 30
-	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/albinahome/stripdance.jpg"></center>'
 	if pcs_inhib < 60:inhib_exp += rand(2,3)
 
 	if pcs_danc >= 40:
-		dancero_exp += rand(2, 10)
+		gs 'exercise', 'tier2', 120, 'agil_exp', 'dancero_exp'
+		gs 'stat'
 		'Albina teaches you how to passionately dance to the music while stripping.'
 
 		if pcs_dancero >= 100:'You didn''t learn anything new since you already know everything she can teach you.'
 	else
-		danc_exp += rand(5, 15)
+		gs 'exercise', 'tier3', 120, 'agil_exp', 'danc_exp'
+		gs 'stat'
 		'A striptease is too complex for you. You''re not able to dance and strip at the same time.'
 		'Albina recommends that you start with learning to dance.'
 	end
@@ -270,11 +267,7 @@ if $ARGS[0] = 'poledancing':
 	npc_rel['A23'] += 1
 	if pcs_stren >= 40 and pcs_dancero > 50:
 		if pcs_inhib < 60:inhib_exp += rand(2,3)
-		loopcount = 1
-		:timeloop1
-		gs 'exercise', 'tier2', 0, 'stren_exp', 'vital_exp', 'dancpol_exp'
-		if loopcount < 8: loopcount += 1 & jump 'timeloop1'
-		killvar 'loopcount'
+		gs 'exercise', 'tier2', 120, 'stren_exp', 'vital_exp', 'dancpol_exp'
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/albinahome/poledance.jpg"></center>'
 		'Albina leads you down to the home gym, where she teaches you various acrobatic moves on the pole there and the two of you greatly enjoy yourselves.'
@@ -286,11 +279,7 @@ if $ARGS[0] = 'poledancing':
 		'You nod at her and she pulls you to your feet, checking your head. "It might bruise, but otherwise you look fine." she says.'
 		act 'Develop strength (2:00)':
 			*clr & cla
-			loopcount = 1
-			:timeloop2
-			gs 'exercise', 'tier2', 0, 'stren_exp', 'vital_exp'
-			if loopcount < 8: loopcount += 1 & jump 'timeloop2'
-			killvar 'loopcount'
+			gs 'exercise', 'tier2', 120, 'stren_exp', 'vital_exp'
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/albinahome/stren.jpg"></center>'
 			'Albina shows you how to develop your strength using various exercises.'
@@ -298,21 +287,19 @@ if $ARGS[0] = 'poledancing':
 			act 'Rest':gt 'albinahome', 'bedroom'
 		end
 	else
-		minut += 120
-		fat -= 5
-		agil_exp += rand (1, 3)
-		gs 'sweat', 'add', 30
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/albinahome/stripdance.jpg"></center>'
 		if pcs_inhib < 60:inhib_exp += rand(2,3)
 		'Albina grins "You still can''t strip well enough for poledancing. We should practice that first."'
 		if pcs_danc >= 40:
-			dancero_exp += rand(2, 10)
+			gs 'exercise', 'tier2', 120, 'agil_exp', 'dancero_exp'
+			gs 'stat'
 			'Albina teaches you how to passionately dance to the music while stripping.'
 
 			if pcs_dancero >= 100:'You didn''t learn anything new since you already know everything she can teach you.'
 		else
-			danc_exp += rand(5, 15)
+			gs 'exercise', 'tier3', 120, 'agil_exp', 'danc_exp'
+			gs 'stat'
 			'A striptease is too complex for you. You''re not able to dance and strip at the same time.'
 			'Albina recommends that you start with learning to dance.'
 		end

+ 1 - 5
locations/beg.qsrc

@@ -10,13 +10,9 @@ if $ARGS[0] = 'start':
 	act 'Do a couple of practice races':
 		cla
 		*clr
-		minut += 30
 		abonement -= 1
 		pcs_mood += 2
-		fat -= 2
-		gs 'sweat', 'add', 30
-		pcs_stam -= 30
-		run_exp += rand(2, 3)
+		gs 'exercise', 'tier2', 30, 'run_exp'
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/exercise/fit5.jpg"></center>'
 		'You spend half an hour practising 100 meter dashes to improve your speed, as well as doing several rounds around the stadium to work on your stamina. You are sweaty all over by the end of it, obviously, but you also feel that you''re a little better than before.'
 

+ 10 - 25
locations/beg1.qsrc

@@ -4,7 +4,7 @@ if $ARGS[0] = 'start':
     *clr & cla
     menu_off = 1
     gs 'stat'
-    minut += 60
+    minut += 30
     kolsorev += 1
     razdtumbler = 0
     begmon = month
@@ -49,11 +49,8 @@ end
 
 if $ARGS[0] = 'br':
     cla
-    run_exp += 1
-    fat -= 2
-    gs 'sweat', 'add', 30
-    pcs_stam -= 30
-    
+	gs 'exercise', 'tier2', 30, 'run_exp'
+
     begminus = 0
     if bmi_calc > 25: 
         begminus = ((bmi_calc - 25)*4)
@@ -104,11 +101,8 @@ end
 
 if $ARGS[0] = 'kms':
     cla
-    run_exp += 1
-    fat -= 2
-    gs 'sweat', 'add', 30
-    pcs_stam -= 30
-    
+	gs 'exercise', 'tier2', 30, 'run_exp'
+
     begminus = 0
     if bmi_calc > 25: 
         begminus = ((bmi_calc - 25)*4)
@@ -161,12 +155,9 @@ end
 
 if $ARGS[0] = 'ross':
     cla
-    run_exp += 1
-    fat -= 2
-    gs 'sweat', 'add', 30
-    pcs_stam -= 30
-    
-    begminus = 0
+	gs 'exercise', 'tier2', 30, 'run_exp'
+
+	begminus = 0
     if bmi_calc > 25: 
         begminus = ((bmi_calc - 25)*4)
     elseif bmi_calc < 18:
@@ -219,10 +210,7 @@ end
 
 if $ARGS[0] = 'kval':
     cla
-    run_exp += 1
-    fat -= 2
-    gs 'sweat', 'add', 30
-    pcs_stam -= 30
+	gs 'exercise', 'tier2', 30, 'run_exp'
     razradbeg += 1
     minut += 60
     
@@ -281,10 +269,7 @@ end
 
 if $ARGS[0] = 'evro':
     cla
-    run_exp += 1
-    fat -= 2
-    gs 'sweat', 'add', 30
-    pcs_stam -= 30
+	gs 'exercise', 'tier2', 30, 'run_exp'
     minut += 120
     
     begminus = 0

+ 3 - 3
locations/city_park.qsrc

@@ -117,14 +117,12 @@ if $ARGS[0] = 'start':
 		end
 	end
 
-	if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and hour > 5 and hour < 23 and parkrunday ! daystart:
+	if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and hour > 5 and hour < 23 and parkrunday ! daystart and pcs_energy >= 10:
 		act 'Go for a run in the park (1:00)':
 			*clr & cla
 			menu_off = 1
 			parkrunday = daystart
 			gs 'exercise', 'tier1', 60, 'run_exp'
-			fat -= rand(0, 4)
-			gs 'sweat', 'add', 5
 			'<center><b><font color="maroon">Park</font></b></center>'
 			'<center><img <<$set_imgh>> src="images/locations/shared/park/parkbeg.jpg"></center>'
 			'You choose paths randomly, running them up and down, and about an hour later, you are out of breath and heavily sweating.'
@@ -177,6 +175,8 @@ if $ARGS[0] = 'start':
 				end
 			end
 		end
+	elseif $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and hour > 5 and hour < 23 and parkrunday ! daystart:
+		act 'Go for a run in the park (1:00)': '<br><font color="red">You don''t have enough energy to use this action.</font>'
 	elseif hour > 5 and hour < 23 and parkrunday ! daystart:
 		'You could go for a run in the park if you were wearing sports clothes and shoes.'
 	end

+ 5 - 1
locations/city_sauna.qsrc

@@ -105,7 +105,11 @@ if $ARGS[0] = 'saunaroom':
 	'<br>The room has a thread bare <a href="exec:minut += 1 & gt ''bed2''">bed</a> and a cheap <a href="exec:gt ''wardrobe'', ''start''">wardrobe</a> where you can choose outfits and organize your clothing.'
 	*nl
 
-	'<br>Hanging on the wall is a dirty <a href="exec:gt ''mirror'', ''start''">mirror</a>. The floor is littered with dozens of porn magazines and a selection of sex toys are scattered throughout the room. There''s so much stuff lying around, there''s barely enough space to do some basic <a href="exec:gt ''city_sauna'', ''saunafitness''">exercise</a>.'
+	if pca_energy >= 20:
+		'<br>Hanging on the wall is a dirty <a href="exec:gt ''mirror'', ''start''">mirror</a>. The floor is littered with dozens of porn magazines and a selection of sex toys are scattered throughout the room. There''s so much stuff lying around, there''s barely enough space to do some basic <a href="exec:gt ''city_sauna'', ''saunafitness''">exercise</a>.'
+	else
+		'<br>Hanging on the wall is a dirty <a href="exec:gt ''mirror'', ''start''">mirror</a>. The floor is littered with dozens of porn magazines and a selection of sex toys are scattered throughout the room. There''s so much stuff lying around, there''s barely enough space to do some basic exercise if you had the energy.'
+	end
 	*nl
 
 	'Your <a href="exec:gt ''budilnik'', ''start''">alarm clock</a> is set to <b>'+iif(timer < 10,'0<<timer>>','<<timer>>')+':'+iif(timerM < 10,'0<<timerM>>','<<timerM>>')+'</b> during the week and <b>'+iif(timerEnd < 10,'0<<timerEnd>>','<<timerEnd>>')+':'+iif(timerEndM < 10,'0<<timerEndM>>','<<timerEndM>>')+'</b> during the weekend. It is currently turned '+iif(budilnikOn = 0, '<a href="exec: budilnikOn = 1 & gt ''city_sauna'', ''saunaroom''">OFF</a>.', '<a href="exec: budilnikOn = 0 & gt ''city_sauna'', ''saunaroom''">ON</a>.')

+ 46 - 42
locations/crossfit_north_box.qsrc

@@ -40,53 +40,57 @@ if $ARGS[0] = 'box':
 		end
 	end
 
-	act 'Start the exercise':
-		menu_off = 1
-		if last_crossfit_workout = daystart:
-			msg'<b><font color = red>You already did this workout today. That''s enough for one day.</font></b>'
-		else
-			*clr & cla
-			last_crossfit_workout = daystart
-			crossfit_first = 1
-			abonement -= 1
-			'You start with the workout.'
-			gs 'crossfit_north_wod', $todays_crossfit_wod
-			gs 'exercise', 'tier4', 20, 'stren_exp', 'vital_exp', 'agil_exp'
-			'<center><video autoplay loop src="<<$crossfit_north_image_dir>><<$wod_video[$todays_crossfit_wod]>>.mp4"></video></center>'
-			current_wod_score = max(1,(100 - ((100 * pcs_health * (rand(40,100) + pcs_sleep  + pcs_vital + pcs_agil + pcs_stren))/ (healthmax * 500))))
-			cla
-			act 'Check your score':
+	if pcs_energy >= 40:
+		act 'Start the exercise':
+			menu_off = 1
+			if last_crossfit_workout = daystart:
+				msg'<b><font color = red>You already did this workout today. That''s enough for one day.</font></b>'
+			else
+				*clr & cla
+				last_crossfit_workout = daystart
+				crossfit_first = 1
+				abonement -= 1
+				'You start with the workout.'
+				gs 'crossfit_north_wod', $todays_crossfit_wod
+				gs 'exercise', 'tier4', 20, 'stren_exp', 'vital_exp', 'agil_exp'
+				'<center><video autoplay loop src="<<$crossfit_north_image_dir>><<$wod_video[$todays_crossfit_wod]>>.mp4"></video></center>'
+				current_wod_score = max(1,(100 - ((100 * pcs_health * (rand(40,100) + pcs_sleep  + pcs_vital + pcs_agil + pcs_stren))/ (healthmax * 500))))
 				cla
-				$resultstring = func('crossfit_north_record', 'recordstring', $todays_crossfit_wod,  current_wod_score)
-				'You successfully finish the workout <<$pcs_nickname>> in <<$resultstring>>'
-				if personal_wod_record[$todays_crossfit_wod] = 0:
-					personal_wod_record[$todays_crossfit_wod] = current_wod_score
-				elseif current_wod_score < personal_wod_record[$todays_crossfit_wod]:
-					'This is a new personal record!'
-					personal_wod_record[$todays_crossfit_wod] = current_wod_score
-				end
-				if box_wod_record[$todays_crossfit_wod] = 0:
-					box_wod_record[$todays_crossfit_wod] = current_wod_score
-					$box_wod_record_holder[$todays_crossfit_wod] = $pcs_nickname
-				elseif current_wod_score < box_wod_record[$todays_crossfit_wod]:
-					'Not only that, it''s also a new best record for the whole box!'
-					$prevrecordstring = func('crossfit_north_record', 'recordstring', $todays_crossfit_wod, box_wod_record[$todays_crossfit_wod])
-					if $box_wod_record_holder[$todays_crossfit_wod] ! $pcs_nickname:
-						$previous_record_holder = $box_wod_record_holder[$todays_crossfit_wod]
-						'You beat <<$previous_record_holder>>''s record of <<$prevrecordstring>>'
-					else
-						'You beat your own old box record of <<$prevrecordstring>>'
+				act 'Check your score':
+					cla
+					$resultstring = func('crossfit_north_record', 'recordstring', $todays_crossfit_wod,  current_wod_score)
+					'You successfully finish the workout <<$pcs_nickname>> in <<$resultstring>>'
+					if personal_wod_record[$todays_crossfit_wod] = 0:
+						personal_wod_record[$todays_crossfit_wod] = current_wod_score
+					elseif current_wod_score < personal_wod_record[$todays_crossfit_wod]:
+						'This is a new personal record!'
+						personal_wod_record[$todays_crossfit_wod] = current_wod_score
+					end
+					if box_wod_record[$todays_crossfit_wod] = 0:
+						box_wod_record[$todays_crossfit_wod] = current_wod_score
+						$box_wod_record_holder[$todays_crossfit_wod] = $pcs_nickname
+					elseif current_wod_score < box_wod_record[$todays_crossfit_wod]:
+						'Not only that, it''s also a new best record for the whole box!'
+						$prevrecordstring = func('crossfit_north_record', 'recordstring', $todays_crossfit_wod, box_wod_record[$todays_crossfit_wod])
+						if $box_wod_record_holder[$todays_crossfit_wod] ! $pcs_nickname:
+							$previous_record_holder = $box_wod_record_holder[$todays_crossfit_wod]
+							'You beat <<$previous_record_holder>>''s record of <<$prevrecordstring>>'
+						else
+							'You beat your own old box record of <<$prevrecordstring>>'
+						end
+						killvar '$prevrecordstring'
+						box_wod_record[$todays_crossfit_wod] = current_wod_score
+						$box_wod_record_holder[$todays_crossfit_wod] = $pcs_nickname
+					end
+					killvar 'current_wod_score'
+					act 'Finish and go to the changing room':
+						gt 'fit', 'dressing room'
 					end
-					killvar '$prevrecordstring'
-					box_wod_record[$todays_crossfit_wod] = current_wod_score
-					$box_wod_record_holder[$todays_crossfit_wod] = $pcs_nickname
-				end
-				killvar 'current_wod_score'
-				act 'Finish and go to the changing room':
-					gt 'fit', 'dressing room'
 				end
 			end
 		end
+	else
+		act 'Start the exercise': '<br><font color="red">You don''t have enough energy to use this action.</font>'
 	end
 end
 

+ 50 - 46
locations/danceclass.qsrc

@@ -9,68 +9,72 @@ gs 'themes', 'indoors'
 '<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/dance/danceclass.jpg"></center>'
 'A big, open room with good lighting and huge mirrors, perfect for improving your dance skills.'
 
-act 'Modern dance class (0:30)':
-	*clr & cla
-	timemult = 2
-	loopcount = 1
-	:timeloop
-	gs 'exercise', 'tier2', 0, 'agil_exp', 'stren_exp', 'danc_exp'
-	if loopcount < timemult: loopcount += 1 & jump 'timeloop'
-	loopcount = 0
-	timemult = 0
-	abonement -= 1
-	if pcs_inhib < 40:inhib_exp += rand(1,2)
-	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/dance/moderndance.jpg"></center>'
-
-	if pcs_danc < 100:'You study modern dance, which is very popular in the clubs.'
-	if pcs_danc >= 100:'The day has finally come, you''ve been working hard, and you realize that you''ve learned everything you can from this class.'
-
-	act 'Leave':gt 'fit', 'dressing room'
-end
-
-act 'Burlesque class (0:30)':
-	*clr & cla
-	gs 'exercise', 'tier2', 0, 'agil_exp', 'stren_exp', 'danc_exp', 'dancero_exp'
-	abonement -= 1
-	if pcs_inhib < 60:inhib_exp += rand(1,2)
-	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/dance/burlesque.jpg"></center>'
+if pcs_energy >= 20:
+	act 'Modern dance class (0:30)':
+		*clr & cla
+		gs 'exercise', 'tier2', 30, 'agil_exp', 'stren_exp', 'danc_exp'
+		abonement -= 1
+		if pcs_inhib < 40:inhib_exp += rand(1,2)
+		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/dance/moderndance.jpg"></center>'
 
-	if pcs_danc >= 50:
-		gs 'exercise', 'tier2', 0, 'dancero_exp'
-		'You study the art of burlesque, imaging yourself stripping to the music.'
+		if pcs_danc < 100:'You study modern dance, which is very popular in the clubs.'
+		if pcs_danc >= 100:'The day has finally come, you''ve been working hard, and you realize that you''ve learned everything you can from this class.'
 
-		if pcs_dancero >= 100:'You''ve finally managed to master the art of burlesque, there is no need taking this class anymore.'
-	else
-		gs 'exercise', 'tier2', 0, 'danc_exp'
-		'This class isn''t just about taking your clothes off, it''s a difficult dance style and your basics aren''t sufficent. Instead, the teacher helps you with your basic modern dance steps.'
+		act 'Leave':gt 'fit', 'dressing room'
 	end
 
-	act 'Leave':gt 'fit', 'dressing room'
-end
-
-if pcs_stren >=40 or needstrength = 0:
-	act 'Pole dance class (0:30)':
+	act 'Burlesque class (0:30)':
 		*clr & cla
-		gs 'exercise', 'tier2', 0, 'agil_exp', 'stren_exp', 'dancpol_exp'
+		gs 'exercise', 'tier2', 0, 'agil_exp', 'stren_exp', 'danc_exp', 'dancero_exp'
 		abonement -= 1
 		if pcs_inhib < 60:inhib_exp += rand(1,2)
-		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/dance/poledance.jpg"></center>'
+		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/dance/burlesque.jpg"></center>'
 
-		if pcs_dancero >= 50 and pcs_stren >= 40:
-			gs 'exercise', 'tier2', 0, 'dancpol_exp'
-			'You study various acrobatics on the pole.'
+		if pcs_danc >= 50:
+			gs 'exercise', 'tier2', 0, 'dancero_exp'
+			'You study the art of burlesque, imaging yourself stripping to the music.'
 
-			if pcs_dancpol >= 100:'You''ve already mastered the art of pole dancing, there is nothing more left to teach you.'
+			if pcs_dancero >= 100:'You''ve finally managed to master the art of burlesque, there is no need taking this class anymore.'
 		else
-			'It doesn''t look sensual enough and you bang your head pretty hard on the pole. This is far harder than it looks. It would help if you improved your modern dancing skills or the burlesque one, but you did learn a little.'
-
-			if pcs_stren < 40:'The instructor tries to be patient with you, but it is clear that you are too weak for this sort of dance.' & needstrength = 1
+			gs 'exercise', 'tier2', 0, 'danc_exp'
+			'This class isn''t just about taking your clothes off, it''s a difficult dance style and your basics aren''t sufficent. Instead, the teacher helps you with your basic modern dance steps.'
 		end
 
 		act 'Leave':gt 'fit', 'dressing room'
 	end
+
+	if pcs_stren >=40 or needstrength = 0:
+		act 'Pole dance class (0:30)':
+			*clr & cla
+			gs 'exercise', 'tier2', 0, 'agil_exp', 'stren_exp', 'dancpol_exp'
+			abonement -= 1
+			if pcs_inhib < 60:inhib_exp += rand(1,2)
+			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/dance/poledance.jpg"></center>'
+
+			if pcs_dancero >= 50 and pcs_stren >= 40:
+				gs 'exercise', 'tier2', 0, 'dancpol_exp'
+				'You study various acrobatics on the pole.'
+
+				if pcs_dancpol >= 100:'You''ve already mastered the art of pole dancing, there is nothing more left to teach you.'
+			else
+				'It doesn''t look sensual enough and you bang your head pretty hard on the pole. This is far harder than it looks. It would help if you improved your modern dancing skills or the burlesque one, but you did learn a little.'
+
+				if pcs_stren < 40:'The instructor tries to be patient with you, but it is clear that you are too weak for this sort of dance.' & needstrength = 1
+			end
+
+			act 'Leave':gt 'fit', 'dressing room'
+		end
+	else
+		act 'Modern dance class (0:30)': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+		act 'Burlesque class (0:30)': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+		if pcs_stren >=40 or needstrength = 0:
+			act 'Pole dance class (0:30)': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+		end
+	end
 end
 
+act 'Leave':gt 'fit', 'dressing room'
+
 
 --- danceclass ---------------------------------
 

+ 79 - 63
locations/exercise.qsrc

@@ -335,11 +335,7 @@ end
 if $ARGS[0] = 'hula':
 	cla
 	*clr
-	loopcount = 1
-	:timeloophula
-	gs 'exercise', 'tier2', 0, 'agil_exp', 'react_exp'
-	if loopcount < timemult: loopcount += 1 & jump 'timeloophula'
-	loopcount = 0
+	gs 'exercise', 'tier2', (timemult*15), 'agil_exp', 'react_exp'
 	timemult = 0
 	if $clothingworntype ! 'nude':
 		if $location_type = 'secluded':
@@ -367,13 +363,14 @@ end
 
 if $ARGS[0] = 'yoga':
 	*clr & cla
-	loopcount = 1
-	:timeloopyoga
-	if willday_yoga ! daystart: willday_yoga = daystart & yoga_counter = 0	
-	gs 'exercise', 'tier2', 0, 'sprt_exp', 'agil_exp', iif(yoga_counter < 4, 'pcs_willpwr', '')	
-	yoga_counter += 1
-	if loopcount < timemult: loopcount += 1 & jump 'timeloopyoga'
-	loopcount = 0
+	if willday_yoga ! daystart: 
+		willday_yoga = daystart 
+		yoga_counter = 0	
+		:timeloopyoga
+		pcs_willpwr += rand(1,2)
+		if yoga_counter < min(timemult - 1,4): yoga_counter += 1 & jump 'timeloopyoga'
+	end
+	gs 'exercise', 'tier2', (timemult*15), 'sprt_exp', 'agil_exp'	
 	timemult = 0
 
 	if $clothingworntype ! 'nude':
@@ -400,11 +397,7 @@ end
 if $ARGS[0] = 'rope':
 	cla
 	*clr
-	loopcount = 1
-	:timelooprope
-	gs 'exercise', 'tier3', 0, 'agil_exp', 'react_exp'
-	if loopcount < timemult: loopcount += 1 & jump 'timelooprope'
-	loopcount = 0
+	gs 'exercise', 'tier3', (15*timemult), 'agil_exp', 'react_exp'
 	timemult = 0
 
 	if $clothingworntype ! 'nude':
@@ -427,11 +420,7 @@ end
 if $ARGS[0] = 'press':
 	cla
 	*clr
-	loopcount = 1
-	:timelooppress
-	gs 'exercise', 'tier3', 0, 'vital_exp'
-	if loopcount < timemult: loopcount += 1 & jump 'timelooppress'
-	loopcount = 0
+	gs 'exercise', 'tier3', (15*timemult), 'vital_exp'
 	timemult = 0
 
 	if $clothingworntype ! 'nude':
@@ -454,11 +443,7 @@ end
 if $ARGS[0] = 'push':
 	cla
 	*clr
-	loopcount = 1
-	:timelooppush
-	gs 'exercise', 'tier3', 0, 'stren_exp'
-	if loopcount < timemult: loopcount += 1 & jump 'timelooppush'
-	loopcount = 0
+	gs 'exercise', 'tier3', (15*timemult), 'stren_exp'
 	timemult = 0
 
 	if $clothingworntype ! 'nude':
@@ -491,18 +476,22 @@ end
 if $ARGS[0] = 'tier1':
 	if ARGS[1] = 0:
 		minut += 15
+		mult = 1
 	else
 		minut += ARGS[1]
+		mult = (ARGS[1]-1)/15 + 1
 	end
 
 	gs 'exercise', 'get_sport_clothes_exercise_bonus'
-	pcs_stam -= (5 * (10 - sport_clothes_exercise_bonus)) / 10
-
-	gs 'sweat', 'add', 3
-	fat -= 1
-	pcs_energy -= 1
-	pcs_hydra -= 2
-	pcs_mood += 3
+	pcs_stam -= (mult * (10 - sport_clothes_exercise_bonus)) / 2
+
+	gs 'sweat', 'add', (3*mult)
+	fat -= (4 + mult/2)
+	pcs_energy -= 1*mult
+	pcs_hydra -= 2*mult
+	pcs_mood += (3 + mult)
+	m = 0
+	:timeexploop1
 	if $ARGS[3] = '':
 		dynamic '<<$ARGS[2]>> += 1'
 		if $ARGS[2] = 'vital_exp' or $ARGS[2] = 'stren_exp':
@@ -521,26 +510,33 @@ if $ARGS[0] = 'tier1':
 			if steroidcheck = 1 and steroid_dose > 0 and rand(1,5) <= steroid_dose:clit_size += rand(0,1)
 			killvar 'steroidcheck'
 			killvar 'i'
-			exit
 		end
 	end
+	m += 1
+	if m < mult: jump 'timeexploop1'
+	killvar 'm'
+	killvar 'mult'
 end
 
 if $ARGS[0] = 'tier2':
 	if ARGS[1] = 0:
 		minut += 15
+		mult = 1
 	else
 		minut += ARGS[1]
+		mult = (ARGS[1]-1)/15 + 1
 	end
 
 	gs 'exercise', 'get_sport_clothes_exercise_bonus'
-	pcs_stam -= (10 * (10 - sport_clothes_exercise_bonus)) / 10
-
-	gs 'sweat', 'add', 10
-	fat -= 2
-	pcs_energy -= 2
-	pcs_hydra -= 4
-	pcs_mood += 5
+	pcs_stam -= (mult * (10 - sport_clothes_exercise_bonus))
+
+	gs 'sweat', 'add', (10*mult)
+	fat -= (3 + mult/2)
+	pcs_energy -= 2*mult
+	pcs_hydra -= 4*mult
+	pcs_mood += (5 + mult)
+	m = 0
+	:timeexploop2
 	if $ARGS[3] = '':
 		dynamic '<<$ARGS[2]>> += rand(2,3)'
 		if $ARGS[2] = 'vital_exp' or $ARGS[2] = 'stren_exp':
@@ -549,35 +545,43 @@ if $ARGS[0] = 'tier2':
 		end
 	else
 		i = 2
-		:exploop2
+		:exploop
 		if $ARGS[i] ! '':
 			dynamic '<<$ARGS[i]>> += rand(1,2)'
 			if $ARGS[i] = 'vital_exp' or $ARGS[i] = 'stren_exp': dynamic '<<$ARGS[i]>> += rand(0,steroid_dose) & steroidcheck = 1'
 			i += 1
-			jump 'exploop2'
+			jump 'exploop'
 		else
 			if steroidcheck = 1 and steroid_dose > 0 and rand(1,5) <= steroid_dose:clit_size += rand(0,1)
 			killvar 'steroidcheck'
 			killvar 'i'
 		end
 	end
+	m += 1
+	if m < mult: jump 'timeexploop2'
+	killvar 'm'
+	killvar 'mult'
 end
 
 if $ARGS[0] = 'tier3':
 	if ARGS[1] = 0:
-		minut += 12
+		minut += 15
+		mult = 1
 	else
 		minut += ARGS[1]
+		mult = (ARGS[1]-1)/15 + 1
 	end
 
 	gs 'exercise', 'get_sport_clothes_exercise_bonus'
-	pcs_stam -= (15 * (10 - sport_clothes_exercise_bonus)) / 10
-
-	gs 'sweat', 'add', 15
-	fat -= 3
-	pcs_energy -= 3
-	pcs_hydra -= 6
-	pcs_mood += 5
+	pcs_stam -= (3*mult * (10 - sport_clothes_exercise_bonus)) / 2
+
+	gs 'sweat', 'add', (15*mult)
+	fat -= (2 + mult/2)
+	pcs_energy -= 3*mult
+	pcs_hydra -= 6*mult
+	pcs_mood += (5 + mult)
+	m = 0
+	:timeexploop3
 	if $ARGS[3] = '':
 		dynamic '<<$ARGS[2]>> += rand(3,5)'
 		if $ARGS[2] = 'vital_exp' or $ARGS[2] = 'stren_exp':
@@ -586,35 +590,43 @@ if $ARGS[0] = 'tier3':
 		end
 	else
 		i = 2
-		:exploop3
+		:exploop
 		if $ARGS[i] ! '':
 			dynamic '<<$ARGS[i]>> += rand(2,3)'
 			if $ARGS[i] = 'vital_exp' or $ARGS[i] = 'stren_exp': dynamic '<<$ARGS[i]>> += rand(0,steroid_dose) & steroidcheck = 1'
 			i += 1
-			jump 'exploop3'
+			jump 'exploop'
 		else
 			if steroidcheck = 1 and steroid_dose > 0 and rand(1,5) <= steroid_dose:clit_size += rand(0,1)
 			killvar 'steroidcheck'
 			killvar 'i'
 		end
 	end
+	m += 1
+	if m < mult: jump 'timeexploop3'
+	killvar 'm'
+	killvar 'mult'
 end
 
 if $ARGS[0] = 'tier4':
 	if ARGS[1] = 0:
 		minut += 15
+		mult = 1
 	else
 		minut += ARGS[1]
+		mult = (ARGS[1]-1)/15 + 1
 	end
 
 	gs 'exercise', 'get_sport_clothes_exercise_bonus'
-	pcs_stam -= (25 * (10 - sport_clothes_exercise_bonus)) / 10
-
-	gs 'sweat', 'add', 25
-	fat -= 4
-	pcs_energy -= 4
-	pcs_hydra -= 12
-	pcs_mood += 5
+	pcs_stam -= (5*mult * (10 - sport_clothes_exercise_bonus))/2
+
+	gs 'sweat', 'add', (25*mult)
+	fat -= (1 + mult/2)
+	pcs_energy -= 4*mult
+	pcs_hydra -= 12*mult
+	pcs_mood += (5 + mult)
+	m = 0
+	:timeexploop4
 	if $ARGS[3] = '':
 		dynamic '<<$ARGS[2]>> += rand(7,10)'
 		if $ARGS[2] = 'vital_exp' or $ARGS[2] = 'stren_exp':
@@ -623,18 +635,22 @@ if $ARGS[0] = 'tier4':
 		end
 	else
 		i = 2
-		:exploop4
+		:exploop
 		if $ARGS[i] ! '':
 			dynamic '<<$ARGS[i]>> += rand(3,5)'
 			if $ARGS[i] = 'vital_exp' or $ARGS[i] = 'stren_exp': dynamic '<<$ARGS[i]>> += rand(0,steroid_dose) & steroidcheck = 1'
 			i += 1
-			jump 'exploop4'
+			jump 'exploop'
 		else
 			if steroidcheck = 1 and steroid_dose > 0 and rand(1,5) <= steroid_dose:clit_size += rand(0,1)
 			killvar 'steroidcheck'
 			killvar 'i'
 		end
 	end
+	m += 1
+	if m < mult: jump 'timeexploop4'
+	killvar 'm'
+	killvar 'mult'
 end
 
 if $ARGS[0] = 'timestring':

+ 100 - 153
locations/fit.qsrc

@@ -185,11 +185,16 @@ if $ARGS[0] = 'dressing room':
 
 				act 'Leave':gt 'fit', 'dressing room'
 			end
-		elseif $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and pcs_stam >= 40:
+		elseif $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and pcs_stam >= 40 and pcs_energy >= 20:
 			act 'Go to team practice':gt 'beg', 'start'
 			if week = 6 and pcs_run >= 20 and run_comp_day ! daystart:
 				act '<b>Enter competition race</b>':run_comp_day = daystart & gt 'beg1', 'start'
 			end
+		elseif $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and pcs_stam >= 40:
+			act 'Go to team practice': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+			if week = 6 and pcs_run >= 20 and run_comp_day ! daystart:
+				act '<b>Enter competition race</b>': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+			end
 		end
 	end
 	
@@ -334,128 +339,106 @@ if $ARGS[0] = 'gym':
 
 	gs 'fit', 'exercise end'
 
-	act 'Aerobics (Burn fat)':
-		cla
-		*clr
-		abonement -= 1
-		timemult = 2
-		loopcount = 1
-		:timeloop1
-		gs 'exercise', 'tier3', 0, 'vital_exp', 'react_exp'
-		if loopcount < timemult: loopcount += 1 & jump 'timeloop1'
-		loopcount = 0
-		timemult = 0
-		if pcs_inhib < 30:inhib_exp += rand(1,2)
+	if pcs_energy >= 30:
+		act 'Aerobics (Burn fat)':
+			cla
+			*clr
+			abonement -= 1
+			gs 'exercise', 'tier1', 30, 'vital_exp', 'react_exp'
+			fat -= rand(0,4)
+			if pcs_inhib < 30:inhib_exp += rand(1,2)
 
-		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/exercise/fit11.jpg"></center>'
-		'You do very vigorous exercises to the music, and burn some fat.'
+			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/exercise/fit11.jpg"></center>'
+			'You do very vigorous exercises to the music, and burn some fat.'
 
-		if pcs_stam < 30:
-			*nl
-			'You are too tired to do any more exercise and will have to rest and regain some stamina.'
-			gs 'fit', 'exercise end'
-		else
-			act'Continue': gt 'fit', 'gym'
+			if pcs_stam < 30:
+				*nl
+				'You are too tired to do any more exercise and will have to rest and regain some stamina.'
+				gs 'fit', 'exercise end'
+			else
+				act'Continue': gt 'fit', 'gym'
+			end
 		end
-	end
 
-	act 'Free weights (Build muscle)':
-		cla
-		*clr
-		abonement -= 1
-		timemult = 2
-		loopcount = 1
-		:timeloop2
-		gs 'exercise', 'tier3', 0, 'stren_exp'
-		if loopcount < timemult: loopcount += 1 & jump 'timeloop2'
-		loopcount = 0
-		timemult = 0
-		if pcs_inhib < 30:inhib_exp += rand(1,2)
-		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/exercise/fit2.jpg"></center>'
-		'You pump iron, building strength.'
-
-		if pcs_stam < 30:
-			*nl
-			'You are too tired to do any more exercise and will have to rest and regain some stamina.'
-			gs 'fit', 'exercise end'
-		else
-			act'Continue': gt 'fit', 'gym'
+		act 'Free weights (Build muscle)':
+			cla
+			*clr
+			abonement -= 1
+			gs 'exercise', 'tier3', 30, 'stren_exp'
+			if pcs_inhib < 30:inhib_exp += rand(1,2)
+			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/exercise/fit2.jpg"></center>'
+			'You pump iron, building strength.'
+
+			if pcs_stam < 30:
+				*nl
+				'You are too tired to do any more exercise and will have to rest and regain some stamina.'
+				gs 'fit', 'exercise end'
+			else
+				act'Continue': gt 'fit', 'gym'
+			end
 		end
-	end
-
-	act 'Cross trainer (endurance)':
-		cla
-		*clr
-		abonement -= 1
-		timemult = 2
-		loopcount = 1
-		:timeloop3
-		gs 'exercise', 'tier3', 0, 'vital_exp'
-		if loopcount < timemult: loopcount += 1 & jump 'timeloop3'
-		loopcount = 0
-		timemult = 0
-		if pcs_inhib < 30:inhib_exp += rand(1,2)
-		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/exercise/fit3.jpg"></center>'
-		'You spend a half hour doing reps on the cross trainer developing your endurance.'
 
-		if pcs_stam < 30:
-			*nl
-			'You are too tired to do any more exercise and will have to rest and regain some stamina.'
-			gs 'fit', 'exercise end'
-		else
-			act'Continue': gt 'fit', 'gym'
+		act 'Cross trainer (endurance)':
+			cla & *clr
+			abonement -= 1
+			gs 'exercise', 'tier3', 30, 'vital_exp'
+			if pcs_inhib < 30:inhib_exp += rand(1,2)
+			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/exercise/fit3.jpg"></center>'
+			'You spend a half hour doing reps on the cross trainer developing your endurance.'
+
+			if pcs_stam < 30:
+				*nl
+				'You are too tired to do any more exercise and will have to rest and regain some stamina.'
+				gs 'fit', 'exercise end'
+			else
+				act'Continue': gt 'fit', 'gym'
+			end
 		end
-	end
-
-	act 'Tennis practice (agility)':
-		cla
-		*clr
-		abonement -= 1
-		timemult = 2
-		loopcount = 1
-		:timeloop4
-		gs 'exercise', 'tier3', 0, 'agil_exp'
-		if loopcount < timemult: loopcount += 1 & jump 'timeloop4'
-		loopcount = 0
-		timemult = 0
-		if pcs_inhib < 30:inhib_exp += rand(1,2)
-		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/exercise/fit4.jpg"></center>'
-		'You run tennis exercises, concentrating on defensive drills.'
 
-		if pcs_stam < 30:
-			*nl
-			'You are too tired to do any more exercise and will have to rest and regain some stamina.'
-			gs 'fit', 'exercise end'
-		else
-			act'Continue': gt 'fit', 'gym'
+		act 'Tennis practice (agility)':
+			cla
+			*clr
+			abonement -= 1
+			gs 'exercise', 'tier3', 30, 'agil_exp'
+			if pcs_inhib < 30:inhib_exp += rand(1,2)
+			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/exercise/fit4.jpg"></center>'
+			'You run tennis exercises, concentrating on defensive drills.'
+
+			if pcs_stam < 30:
+				*nl
+				'You are too tired to do any more exercise and will have to rest and regain some stamina.'
+				gs 'fit', 'exercise end'
+			else
+				act'Continue': gt 'fit', 'gym'
+			end
 		end
-	end
-
-	act 'Tennis practice (reactions)':
-		cla
-		*clr
-		abonement -= 1
-		timemult = 2
-		loopcount = 1
-		:timeloop5
-		gs 'exercise', 'tier3', 0, 'react_exp'
-		if loopcount < timemult: loopcount += 1 & jump 'timeloop5'
-		loopcount = 0
-		timemult = 0
-		if pcs_inhib < 30:inhib_exp += rand(1,2)
-		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/exercise/fit4.jpg"></center>'
-		'You run tennis exercises, concentrating on court reactions.'
 
-		if pcs_stam < 30:
-			*nl
-			'You are too tired to do any more exercise and will have to rest and regain some stamina.'
-			gs 'fit', 'exercise end'
-		else
-			act'Continue': gt 'fit', 'gym'
+		act 'Tennis practice (reactions)':
+			cla
+			*clr
+			abonement -= 1
+			gs 'exercise', 'tier3', 30, 'react_exp'
+			if pcs_inhib < 30:inhib_exp += rand(1,2)
+			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/exercise/fit4.jpg"></center>'
+			'You run tennis exercises, concentrating on court reactions.'
+
+			if pcs_stam < 30:
+				*nl
+				'You are too tired to do any more exercise and will have to rest and regain some stamina.'
+				gs 'fit', 'exercise end'
+			else
+				act'Continue': gt 'fit', 'gym'
+			end
 		end
+		act 'Go to the kickboxing gym':gt 'fit', 'kickboxing'
+	else
+		act 'Aerobics (Burn fat)': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+		act 'Free weights (Build muscle)': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+		act 'Cross trainer (endurance)': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+		act 'Tennis practice (agility)': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+		act 'Tennis practice (reactions)': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+		act 'Go to the kickboxing gym': '<br><font color="red">You don''t have enough energy to use this action.</font>'
 	end
-
-	act 'Go to the kickboxing gym':gt 'fit', 'kickboxing'
 end
 
 if $ARGS[0] = 'exercise end':
@@ -605,13 +588,7 @@ if $ARGS[0] = 'kickboxing':
 		cla
 		*clr
 		abonement -= 1
-		timemult = 2
-		loopcount = 1
-		:timeloop6
-		gs 'exercise', 'tier3', 0, 'jab_exp', 'react_exp'
-		if loopcount < timemult: loopcount += 1 & jump 'timeloop6'
-		loopcount = 0
-		timemult = 0
+		gs 'exercise', 'tier3', 30, 'jab_exp', 'react_exp'
 		if pcs_inhib < 30:inhib_exp += rand(1,2)
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/kickboxing/kik1.jpg"></center>'
 		'You practice your jabs on the speed bag and double-end bag, straight punches with a step forward. These strikes are not so powerful, but they are fast.'
@@ -623,13 +600,7 @@ if $ARGS[0] = 'kickboxing':
 		cla
 		*clr
 		abonement -= 1
-		timemult = 2
-		loopcount = 1
-		:timeloop7
-		gs 'exercise', 'tier3', 0, 'stren_exp', 'punch_exp'
-		if loopcount < timemult: loopcount += 1 & jump 'timeloop7'
-		loopcount = 0
-		timemult = 0
+		gs 'exercise', 'tier3', 30, 'stren_exp', 'punch_exp'
 		if pcs_inhib < 30:inhib_exp += rand(1,2)
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/kickboxing/kik1.jpg"></center>'
 		'You practice your power punches on the heavy bag. These are high impact and powerful, but they are hard to get to their target.'
@@ -641,13 +612,7 @@ if $ARGS[0] = 'kickboxing':
 		cla
 		*clr
 		abonement -= 1
-		timemult = 2
-		loopcount = 1
-		:timeloop8
-		gs 'exercise', 'tier3', 0, 'stren_exp', 'kick_exp'
-		if loopcount < timemult: loopcount += 1 & jump 'timeloop8'
-		loopcount = 0
-		timemult = 0
+		gs 'exercise', 'tier3', 30, 'stren_exp', 'kick_exp'
 		if pcs_inhib < 30:inhib_exp += rand(1,2)
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/kickboxing/kik1.jpg"></center>'
 		'You practice your powerful kicks on a kickboxing bag. These impacts are very powerful and able to cut down an opponant, but are very difficult to hit with.'
@@ -659,13 +624,7 @@ if $ARGS[0] = 'kickboxing':
 		cla
 		*clr
 		abonement -= 1
-		timemult = 2
-		loopcount = 1
-		:timeloop9
-		gs 'exercise', 'tier3', 0, 'def_exp', 'agil_exp'
-		if loopcount < timemult: loopcount += 1 & jump 'timeloop9'
-		loopcount = 0
-		timemult = 0
+		gs 'exercise', 'tier3', 30, 'def_exp', 'agil_exp'
 		if pcs_inhib < 30:inhib_exp += rand(1,2)
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/kickboxing/kik1.jpg"></center>'
 		'You practice your defense movements.'
@@ -681,13 +640,7 @@ if $ARGS[0] = 'kickboxing':
 		act 'Pick a random partner':
 			abonement -= 1
 			pcs_mood += 2
-			timemult = 2
-			loopcount = 1
-			:timeloop10
-			gs 'exercise', 'tier3', 0, 'jab_exp', 'punch_exp', 'kick_exp', 'def_exp'
-			if loopcount < timemult: loopcount += 1 & jump 'timeloop10'
-			loopcount = 0
-			timemult = 0
+			gs 'exercise', 'tier3', 30, 'jab_exp', 'punch_exp', 'kick_exp', 'def_exp'
 			pointKik = 0
 			pointKikV = 0
 			round = 1
@@ -721,13 +674,7 @@ if $ARGS[0] = 'kickboxing':
 		act 'Amateur fight':
 			kickbox['amateur_fight_day'] = daystart
 			pcs_mood += 2
-			timemult = 2
-			loopcount = 1
-			:timeloop11
-			gs 'exercise', 'tier3', 0, 'jab_exp', 'punch_exp', 'kick_exp', 'def_exp'
-			if loopcount < timemult: loopcount += 1 & jump 'timeloop11'
-			loopcount = 0
-			timemult = 0
+			gs 'exercise', 'tier3', 30, 'jab_exp', 'punch_exp', 'kick_exp', 'def_exp'
 			pointKik = 0
 			pointKikV = 0
 			round = 1

+ 2 - 1
locations/gadfield.qsrc

@@ -65,7 +65,8 @@ if $ARGS[0] = 'field':
 				'Almost all of the villagers have shown up to help out with the fresh cut hay. You spend most of the day working hard and sweating as you help gather the fresh-cut hay. It is difficult, but you get a great workout and end the day feeling exhausted, but quite satisfied.'
 			end
 
-			gs 'exercise', 'tier1', 360, 'stren_exp', 'vital_exp'
+			gs 'exercise', 'tier1', 60, 'stren_exp', 'vital_exp'
+			minut += 300
 			if sunWeather = 1:pcs_tan += 1
 			grandpaQW['chore_bale_hay'] = 2
 			hndiwrk_exp += rand(0,8)

+ 40 - 69
locations/gdksport.qsrc

@@ -90,20 +90,36 @@ if $ARGS[0] = 'start':
 
 	if pcs_stam > 20 and $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and hour < 18:
 		if gsAboBeg > 0 and npc_pregtalk['A131'] = 0:
-			act 'Take a track lesson. You have <<gsAboBeg>> lessons remaining': gt 'gdksport', 'racing2'
+			if pcs_energy >= 40:
+				act 'Take a track lesson. You have <<gsAboBeg>> lessons remaining': gt 'gdksport', 'racing2'
+			else
+				act 'Take a track lesson. You have <<gsAboBeg>> lessons remaining': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+			end
 		end
 		if gsAboVolley > 0 and volleysostav = 0 and npc_pregtalk['A69'] = 0:
-			if week ! 5:
-				act 'Take a volleyball lesson. You have <<gsAboVolley>> lessons remaining': gt 'gdksport', 'vball2'
+			if pcs_energy >= 40:
+				if week ! 5:
+					act 'Take a volleyball lesson. You have <<gsAboVolley>> lessons remaining': gt 'gdksport', 'vball2'
+				else
+					act 'Take a volleyball lesson. You have <<gsAboVolley>> lessons remaining': gt 'gdksport', 'vball3'
+				end
 			else
-				act 'Take a volleyball lesson. You have <<gsAboVolley>> lessons remaining': gt 'gdksport', 'vball3'
+				act 'Take a volleyball lesson. You have <<gsAboVolley>> lessons remaining': '<br><font color="red">You don''t have enough energy to use this action.</font>'
 			end
 		end
 		if volleysostav > 0:
 			if week ! 6 and volkomday ! daystart:
-				act 'Play with the team': gt 'gdksport', 'vball4'
+				if pcs_energy >= 40:
+					act 'Play with the team': gt 'gdksport', 'vball4'
+				else
+					act 'Play with the team': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+				end
 			elseif week = 6 and sorevday ! daystart and hour <= 18:
-				act 'Play in Tournament': gt 'gdksport', 'vball5'
+				if pcs_energy >= 40:
+					act 'Play in Tournament': gt 'gdksport', 'vball5'
+				else
+					act 'Play in Tournament': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+				end
 			elseif week = 6 and sorevday ! daystart and hour > 18:
 				'As you look around, you don''t see anyone from the team. You suddenly realize that there was a tournament game today and you were supposed to be here at 18:00! You missed the bus and the coach is going to be furious!'
 				gs 'npc_relationship', 'modify', 'A69', -20
@@ -114,12 +130,16 @@ if $ARGS[0] = 'start':
 			end
 		end
 		if gsAboDance > 0 and AlbinaQW['StarletsJoined'] = 0 and npc_pregtalk['A23'] = 0:
-			act 'Take a dance lesson. You have <<gsAboDance>> lessons remaining':
-				if rand(0, 5) = 0:
-					gt 'danceGev'
-				else
-					gt 'gdksport', 'dance2'
+			if pcs_energy >= 40:
+				act 'Take a dance lesson. You have <<gsAboDance>> lessons remaining':
+					if rand(0, 5) = 0:
+						gt 'danceGev'
+					else
+						gt 'gdksport', 'dance2'
+					end
 				end
+			else
+				act 'Take a dance lesson. You have <<gsAboDance>> lessons remaining': '<br><font color="red">You don''t have enough energy to use this action.</font>'
 			end
 		elseif AlbinaQW['StarletsJoined'] > 0 and AlbinaQW['StarletsShutDown'] = 0 and npc_pregtalk['A23'] = 0 and AlbinaQW['startletsday'] ! daystart:
 			if hour = 15 and starlets_on = 1:
@@ -227,13 +247,7 @@ if $ARGS[0] = 'dance2':
 
 	if pcs_danc < 50:
 		gsAboDance -= 1
-		timemult = 8
-		loopcount = 1
-		:dancetimeloop
-		gs 'exercise', 'tier2', 0, 'agil_exp', 'danc_exp'
-		if loopcount < timemult: loopcount += 1 & jump 'dancetimeloop'
-		loopcount = 0
-		timemult = 0
+		gs 'exercise', 'tier2', 120, 'agil_exp', 'danc_exp'
 		if pcs_inhib < 40:inhib_exp += rand(1,2)
 
 		'You take a lesson in modern dance, which is very popular with people your age.'
@@ -248,13 +262,7 @@ if $ARGS[0] = 'dance2':
 		act 'Leave': gt 'gdksport', 'start'
 	else
 		gsAboDance -= 1
-		timemult = 8
-		loopcount = 1
-		:dancetimeloop2
-		gs 'exercise', 'tier2', 0, 'agil_exp'
-		if loopcount < timemult: loopcount += 1 & jump 'dancetimeloop2'
-		loopcount = 0
-		timemult = 0
+		gs 'exercise', 'tier2', 120, 'agil_exp'
 		if pcs_inhib < 40:inhib_exp += rand(1,2)
 		gs 'stat'
 
@@ -283,13 +291,7 @@ if $ARGS[0] = 'racing2':
 	*clr & cla
 	menu_off = 1
 	gsAboBeg -= 1
-	timemult = 8
-	loopcount = 1
-	:runtimeloop
-	gs 'exercise', 'tier2', 0, 'run_exp'
-	if loopcount < timemult: loopcount += 1 & jump 'runtimeloop'
-	loopcount = 0
-	timemult = 0
+	gs 'exercise', 'tier2', 120, 'run_exp'
 
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/shared/park/parkbeg.jpg"></center>'
@@ -304,21 +306,9 @@ if $ARGS[0] = 'vball2':
 	gsAboVolley -= 1
 	if alko < 2:
 		npc_rel['A69'] += rand(0,2)
-		timemult = 8
-		loopcount = 1
-		:vballtimeloop1
-		gs 'exercise', 'tier2', 0, 'vball_exp', 'run_exp', 'agil_exp', 'stren_exp', 'vital_exp'
-		if loopcount < timemult: loopcount += 1 & jump 'vballtimeloop1'
-		loopcount = 0
-		timemult = 0
+		gs 'exercise', 'tier2', 120, 'vball_exp', 'run_exp', 'agil_exp', 'stren_exp', 'vital_exp'
 	else
-		timemult = 8
-		loopcount = 1
-		:vballtimeloop2
-		gs 'exercise', 'tier1', 0, 'run_exp'
-		if loopcount < timemult: loopcount += 1 & jump 'vballtimeloop2'
-		loopcount = 0
-		timemult = 0
+		gs 'exercise', 'tier1', 120, 'run_exp'
 		if pcs_inhib < 40:inhib_exp += rand(0,1)
 	end
 	gs 'stat'
@@ -343,13 +333,7 @@ if $ARGS[0] = 'vball3':
 	'On Fridays they hold intramural competitions. Scouts for professional teams sometime come to see who the stronger and more talented players are.'
 
 	if alko < 2:
-		timemult = 8
-		loopcount = 1
-		:vballtimeloop3
-		gs 'exercise', 'tier2', 0, 'vball_exp', 'run_exp', 'agil_exp', 'stren_exp', 'vital_exp'
-		if loopcount < timemult: loopcount += 1 & jump 'vballtimeloop3'
-		loopcount = 0
-		timemult = 0
+		gs 'exercise', 'tier2', 120, 'vball_exp', 'run_exp', 'agil_exp', 'stren_exp', 'vital_exp'
 		if pcs_vball < 25:
 			'You were an absolutely lousy player and made constant mistakes. Eventually, the coach had enough and he removed you from the court.'
 		elseif pcs_vball < 50:
@@ -376,14 +360,7 @@ end
 if $ARGS[0] = 'vball4':
 	*clr & cla
 	menu_off = 1
-	volkomday = daystart
-	timemult = 8
-	loopcount = 1
-	:vballtimeloop4
-	gs 'exercise', 'tier2', 0, 'vball_exp', 'run_exp', 'agil_exp', 'stren_exp', 'vital_exp'
-	if loopcount < timemult: loopcount += 1 & jump 'vballtimeloop4'
-	loopcount = 0
-	timemult = 0
+	gs 'exercise', 'tier2', 120, 'vball_exp', 'run_exp', 'agil_exp', 'stren_exp', 'vital_exp'
 	npc_rel['A69'] += 1
 	if pcs_inhib < 40:inhib_exp += rand(0,1)
 	gs 'stat'
@@ -418,12 +395,7 @@ end
 if $ARGS[0] = 'vball5':
 	*clr & cla
 	menu_off = 1
-	timemult = 8
-!	loopcount = 1
-!	:vballtimeloop5
-!	gs 'exercise', 'tier2', 0, 'vball_exp', 'run_exp', 'agil_exp', 'stren_exp', 'vital_exp'
-!	if loopcount < timemult: loopcount += 1 & jump 'vballtimeloop5'
-!	loopcount = 0
+!	gs 'exercise', 'tier2', 120, 'vball_exp', 'run_exp', 'agil_exp', 'stren_exp', 'vital_exp'
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/community/gym/gdksport.jpg"></center>'
 	'The tournament starts at 19:00. Your bus departs at 18:00. You gather your things together with the rest of the team and get on a bus that takes you to the out of town match.'
@@ -441,8 +413,7 @@ end
 
 if $ARGS[0] = 'volley':
 	menu_off = 1
-	gs 'exercise', 'tier2', 0, 'vball_exp', 'run_exp', 'agil_exp', 'stren_exp', 'vital_exp'
-	gs 'exercise', 'tier2', 0, 'vball_exp', 'run_exp', 'agil_exp', 'stren_exp', 'vital_exp'
+	gs 'exercise', 'tier2', 30, 'vball_exp', 'run_exp', 'agil_exp', 'stren_exp', 'vital_exp'
 !	minut += 30
 	gs 'stat'
 

+ 2 - 9
locations/gschool_cheerleading.qsrc

@@ -141,8 +141,7 @@ if $ARGS[0] = 'tryouts':
 		act 'Try to follow Albina''s example':
 			*clr & cla
 			!! double cheer_exp so it progresses faster given that Sveta cant get it anywhere else
-			gs 'exercise', 'tier2', 0, 'agil_exp', 'vital_exp', 'cheer_exp', 'cheer_exp', 'danc_exp'
-			gs 'exercise', 'tier2', 0, 'agil_exp', 'vital_exp', 'cheer_exp', 'cheer_exp', 'danc_exp'
+			gs 'exercise', 'tier2', 30, 'agil_exp', 'vital_exp', 'cheer_exp', 'cheer_exp', 'danc_exp'
 			!! Success calculation - Contributing factors: social group, cool kids standing, Albina friendship, agility, endurance, dance skill, natural cheerleading talent
 			!!  New game character comparison:
 			!!  Cool kids would just about pass								~250 (100 cool + 55 friendship + 30 agi + 30 end + 20 dance + 15 talent)
@@ -323,14 +322,8 @@ if $ARGS[0] = 'practice':
 
 		act 'Follow the others into the hall':
 			*clr & cla
-			temp_time = 6
-			temp_count = 1
-			:cheerleading_practice_loop
 			!! double cheer_exp so it progresses faster given that Sveta cant get it anywhere else
-			gs 'exercise', 'tier2', 0, 'agil_exp', 'vital_exp', 'cheer_exp', 'cheer_exp', 'danc_exp'
-			if temp_count < temp_time: temp_count += 1 & jump 'cheerleading_practice_loop'
-			killvar 'temp_count'
-			killvar 'temp_time'
+			gs 'exercise', 'tier2', 90, 'agil_exp', 'vital_exp', 'cheer_exp', 'cheer_exp', 'danc_exp'
 
 			gs 'stat'
 			'<center><video autoplay loop src="images/locations/pavlovsk/school/afterschool/cheerleading/practice.mp4"></video></center>'

+ 1 - 2
locations/gschool_lessons4.qsrc

@@ -684,8 +684,7 @@ if $ARGS[0] = 'pe':
 			gs 'sweat', 'add', 30
 			run_exp += rand(1, 2)
 			gs 'grades', 'class_activity_skill', 'school', 'pe', pcs_run
-			gs 'exercise', 'tier2', 1, 'vital_exp'
-			gs 'exercise', 'tier2', 1, 'agil_exp'
+			gs 'exercise', 'tier2', 1, 'vital_exp', 'agil_exp'
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/fizra.jpg"></center>'
 			'After the roll call, Coach Pavlovich announces that you will be running.'
 			act 'Run':

+ 29 - 25
locations/gschool_socialchg1.qsrc

@@ -772,13 +772,11 @@ if $ARGS[0] = 'chris_dom':
 		'Lina''s eyebrows shoot up when she sees you''re naked, but she answers anyway. "I did horrible in the last race, so I... uh... asked Christina for help." Christina just nods, staring at her feet, too afraid to even look at you.'
 		'"Training is good, Lina. A much better plan than trying to suck the coach off, if you ask me." Christina''s cheeks flush a little, but she keeps looking down. Lina just smiles, but still seems too afraid of Christina to say anything against her.'
 		act 'Let them train in peace': gt 'pav_lake'
-		if swinbeg = 3 or swinbeggor = 3:
+		if swinbeg = 3 or swinbeggor = 3 and pcs_energy >= 10:
 			act 'Train Lina yourself':
 				cla & *clr
 				npc_rel['A19'] += rand(2,4)
 				gs 'exercise', 'tier1', 30, 'run_exp'
-				fat -= rand(0,2)
-				gs 'sweat', 'add', 3
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/lake/event/run_naked1.jpg"></center>'
 				'"Well, since I''m the better runner, I had better pitch in too. Strip, both of you." Lina immediately turns red and tries to stammer out a protest, but Christina doesn''t even hesitate. She just starts taking her clothes off and tossing them into a pile.'
@@ -787,6 +785,8 @@ if $ARGS[0] = 'chris_dom':
 				'Christina, on the other hand, looks like she''s going to die of embarrassment. You doubt her being naked in public is the problem. Your guess is that she doesn''t want people to see you taking charge of her. It''s too late though since her reputation is already in ruins.'
 				act 'Let them rest': gt 'pav_lake'
 			end
+		elseif swinbeg = 3 or swinbeggor = 3:
+			act 'Train Lina yourself': '<br><font color="red">You don''t have enough energy to use this action.</font>'
 		end
 	end
 end
@@ -805,17 +805,19 @@ if $ARGS[0] = 'Chris_Lina_park':
 		'You give them a friendly wave as they get closer and Christina calls out "Hey, girl! Come join us for a run."'
 		if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich':
 			if daybegskver ! daystart:
-				act 'Okay':
-					*clr & cla
-					menu_off = 1
-					gs 'exercise', 'tier1', 60, 'run_exp'
-					fat -= rand(0,4)
-					gs 'sweat', 'add', 5
-					daybegskver = daystart
-					gs 'stat'
-					'<center><img <<$set_imgh>> src="images/locations/shared/park/parkbeg.jpg"></center>'
-					'You spend the next hour running around the park with the girls. Christina sets a pretty grueling pace, but you''re able to keep up just fine. Once you''re done, you say your goodbyes and head back to the park entrance.'
-					act 'Continue':gt 'pav_park', 'start'
+				if pcs_energy >= 20:
+					act 'Okay':
+						*clr & cla
+						menu_off = 1
+						gs 'exercise', 'tier1', 60, 'run_exp'
+						daybegskver = daystart
+						gs 'stat'
+						'<center><img <<$set_imgh>> src="images/locations/shared/park/parkbeg.jpg"></center>'
+						'You spend the next hour running around the park with the girls. Christina sets a pretty grueling pace, but you''re able to keep up just fine. Once you''re done, you say your goodbyes and head back to the park entrance.'
+						act 'Continue':gt 'pav_park', 'start'
+					end
+				else
+					act 'Okay': '<br><font color="red">You don''t have enough energy to use this action.</font>'
 				end
 				act 'No thanks':
 					'"Sorry, I have a few things I still need to do. Next time though."'
@@ -839,17 +841,19 @@ if $ARGS[0] = 'Chris_Lina_park':
 		'Lina giggles, but doesn''t say anything.'
 		if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich':
 			if daybegskver ! daystart:
-				act 'Okay':
-					*clr & cla
-					menu_off = 1
-					gs 'exercise', 'tier1', 60, 'run_exp'
-					fat -= rand(0,4)
-					gs 'sweat', 'add', 5
-					daybegskver = daystart
-					gs 'stat'
-					'<center><img <<$set_imgh>> src="images/locations/shared/park/parkbeg.jpg"></center>'
-					'You spend the next hour running around the park with the girls. Christina sets a pretty grueling pace, but you''re able to keep up just fine. Once you''re done, you say your goodbyes and head back to the park entrance.'
-					act 'Continue':gt 'pav_park', 'start'
+				if pcs_energy >= 20:
+					act 'Okay':
+						*clr & cla
+						menu_off = 1
+						gs 'exercise', 'tier1', 60, 'run_exp'
+						daybegskver = daystart
+						gs 'stat'
+						'<center><img <<$set_imgh>> src="images/locations/shared/park/parkbeg.jpg"></center>'
+						'You spend the next hour running around the park with the girls. Christina sets a pretty grueling pace, but you''re able to keep up just fine. Once you''re done, you say your goodbyes and head back to the park entrance.'
+						act 'Continue':gt 'pav_park', 'start'
+					end
+				else
+					act 'Okay': '<br><font color="red">You don''t have enough energy to use this action.</font>'
 				end
 				act 'No thanks':
 					'"Sorry, I have a few things I still need to do. Next time though."'

+ 5 - 7
locations/mother.qsrc

@@ -697,12 +697,14 @@ if $ARGS[0] = 'check_workout':
 		act 'Ask <<$npc_nickname[''A29'']>> to workout sometime': gt 'mother', 'ask_mother_workout'
 	end
 
-	if (CloStyle = 5 or $clothingworntype = 'danilovich_outfits') and hour >= 6 and hour < 12 and motherQW['workout'] = 1 and motherQW['workout_day'] ! daystart:
+	if (CloStyle = 5 or $clothingworntype = 'danilovich_outfits') and hour >= 6 and hour < 12 and motherQW['workout'] = 1 and motherQW['workout_day'] ! daystart and pcs_energy >= 20:
 		if $loc = 'kuhrPar' or $loc = 'sitrPar':
 			act 'Ask <<$npc_nickname[''A29'']>> to workout': gt 'mother', 'mother_workout_pav'
 		elseif $loc = 'gadhouse':
 			act 'Ask <<$npc_nickname[''A29'']>> to workout': gt 'mother', 'mother_workout_gad'
 		end
+	elseif (CloStyle = 5 or $clothingworntype = 'danilovich_outfits') and hour >= 6 and hour < 12 and motherQW['workout'] = 1 and motherQW['workout_day'] ! daystart:
+		act 'Ask <<$npc_nickname[''A29'']>> to workout': '<br><font color="red">You don''t have enough energy to use this action.</font>'
 	end
 end
 
@@ -1926,8 +1928,6 @@ if $ARGS[0] = 'mother_jog_pav':
 	act 'Go Jogging': 
 		*clr & cla
 		gs 'exercise', 'tier1', 60, 'run_exp'
-		fat -= rand(2,6)
-		gs 'sweat', 'add', 5
 		gs 'stat'
 		'<center><img src="images/characters/pavlovsk/resident/mom/pavrun1.jpg"></center>'
 		'You and your <<$npc_nickname[''A29'']>> start jogging down one of the park paths. It''s not particularly taxing but you are glad to spend time with her. As you run you notice some men leering, but neither of you make a big deal out of it. Running through the park is quite refreshing overall, especially with company.'
@@ -1959,7 +1959,7 @@ if $ARGS[0] = 'mother_yoga_pav':
 		'You see your <<$npc_nickname[''A29'']>> has put on some very light clothing, and you head off towards the park - chatting as you go. It is not long before you arrive, so you quickly get ready to start your routine.'
 		act 'Do some yoga':
 			*clr & cla
-			minut += rand(20,30)
+			gs 'exercise', 'tier2', 30, 'sprt_exp', 'agil_exp'	
 			gs 'stat'
 			'<center><img src="images/characters/pavlovsk/resident/mom/pavyoga2.jpg"></center>'
 			'You and your <<$npc_nickname[''A29'']>> do some simple yoga routines together. It isn''t as pressing as when you do them by yourself, but you enjoy being able to spend time with her. Sometimes men walk by and leer at you both for awhile, seeming to enjoy the free show.'
@@ -1987,8 +1987,6 @@ if $ARGS[0] = 'mother_jog_gad':
 	act 'Let her take the lead': 
 		*clr & cla
 		gs 'exercise', 'tier1', 60, 'run_exp'
-		fat -= rand(2,6)
-		gs 'sweat', 'add', 5
 		gs 'stat'
 		'<center><img src="images/characters/pavlovsk/resident/mom/gadrun1.jpg"></center>'
 		'Your <<$npc_nickname[''A29'']>> leads you out of the house and into the countryside. You let her take the lead since she knows the area well. This also gives you the chance to chat with her as you jog along. You talk about a variety of topics and enjoy spending time with her, as well as getting the chance to jog around the countryside and see all the interesting routes your <<$npc_nickname[''A29'']>> knows about and enjoys taking.'
@@ -2020,7 +2018,7 @@ if $ARGS[0] = 'mother_yoga_gad':
 		'You see your <<$npc_nickname[''A29'']>> has put on some very light clothing and you both head off towards the meadow, chatting as you go. It''s not long before you arrive and you quickly get ready to start your routine.'
 		act 'Do some yoga':
 			*clr & cla
-			minut += rand(20,30)
+			gs 'exercise', 'tier2', 30, 'sprt_exp', 'agil_exp'	
 			gs 'stat'
 			'<center><img src="images/characters/pavlovsk/resident/mom/gadyoga2.jpg"></center>'
 			'You and your <<$npc_nickname[''A29'']>> do some simple yoga routines together. It isn''t as pressing as when you do them by yourself but you enjoy being able to spend time with her. The area is quite secluded and private, and you and your <<$npc_nickname[''A29'']>> are left to run your routine in peace and quiet. It is a nice experience and gives you plenty of time to talk whilst going through your poses and stretches.'

+ 3 - 1
locations/park_walkevents.qsrc

@@ -831,7 +831,7 @@ if $ARGS[0] = '9':
 end
 
 if $ARGS[0] = 'run':
-	if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and hour > 5 and hour < 23 and daybegskver ! daystart:
+	if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and hour > 5 and hour < 23 and daybegskver ! daystart and pcs_energy >= 20:
 		act 'Jog through the park (1:00)':
 			*clr & cla
 			menu_off = 1
@@ -866,6 +866,8 @@ if $ARGS[0] = 'run':
 				end
 			end
 		end
+	elseif $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and hour > 5 and hour < 23 and daybegskver ! daystart:
+		act 'Jog through the park (1:00)': '<br><font color="red">You don''t have enough energy to use this action.</font>'
 	elseif ($clothingworntype ! 'danilovich_outfits' or $shoeworntype ! 'danilovich') and hour > 5 and hour < 23 and daybegskver ! daystart:
 		'You could jog around the park if you were wearing sports clothes and shoes.'
 	end

+ 7 - 8
locations/tatiana_lab.qsrc

@@ -94,23 +94,22 @@ if $ARGS[0] = 'Gustav':
 
 	act 'Leave':gt 'tatiana_lab', 'start'
 
-	if gustavday ! daystart:
+	if gustavday ! daystart and pcs_energy >= 40:
 		act 'Develop strength (1:00)':gs 'tatiana_lab', 'GustavDevelop', 'stren_exp'
 		act 'Develop agility (1:00)':gs 'tatiana_lab', 'GustavDevelop', 'agil_exp'
 		act 'Develop reactions (1:00)':gs 'tatiana_lab', 'GustavDevelop', 'react_exp'
 		act 'Develop endurance (1:00)':gs 'tatiana_lab', 'GustavDevelop', 'vital_exp'
+	elseif gustavday ! daystart:
+		act 'Develop strength (1:00)': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+		act 'Develop agility (1:00)': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+		act 'Develop reactions (1:00)': '<br><font color="red">You don''t have enough energy to use this action.</font>'
+		act 'Develop endurance (1:00)': '<br><font color="red">You don''t have enough energy to use this action.</font>'
 	end
 end
 
 if $ARGS[0] = 'GustavDevelop':
 	cla
-	timemult = 4
-	loopcount = 1
-	:timeloop
-	gs 'exercise', 'tier2', 0, $ARGS[1]
-	if loopcount < timemult: loopcount += 1 & jump 'timeloop'
-	loopcount = 0
-	timemult = 0
+	gs 'exercise', 'tier2', 60, $ARGS[1]
 	gustavday = daystart
 	'You do exercises under the guidance of Gustav.'