7 次代碼提交 ad21c6eeb3 ... 94e64e2c2b

作者 SHA1 備註 提交日期
  KevinSmarts 94e64e2c2b Merge remote-tracking branch 'KeyMasterOfGozer/master' 5 年之前
  KeyMasterOfGozer ec9a7ca237 [Added] Seeded new fight parameters. Still no magic added. 5 年之前
  KeyMasterOfGozer c7c5c183c8 [Fixed] Fixed bugs in fight mechanism. Added initialization to sparring with Gustav in Tatiana's lab 5 年之前
  KeyMasterOfGozer 55c8d51f2c [Added] Fight Initialization processes. Arrays for magic combat attributes. 5 年之前
  julzor b5a4abc6e8 Merge branch 'master' of https://git.catrenelle.com/Jefke11/glife 5 年之前
  CroWke 6244c90892 [edit] willpower seeding 5 年之前
  CroWke 96d45f9b1c [edit] willpower seeding 5 年之前

+ 61 - 6
locations/Prostitute.qsrc

@@ -37,7 +37,7 @@ if $ARGS[0] = 'start':
 				minut += 15
 				gs 'npcgeneratec', 1, 'stoned prostitute', rand(18,28)
 				gs 'boyStat', $npclastgenerated
-				!!stats
+				!!stats{
 				strenV = 20
 				speedV = 30
 				agilV = 30
@@ -60,7 +60,25 @@ if $ARGS[0] = 'start':
 				prostitutFight = 1
 
 				if spellavtoklon = 1:klon = 3
-				if spellbefshild = 1:defence = 500
+				if spellbefshild = 1:defence = 500}
+
+				gs 'fight','initFight'
+
+				$opp_name[0] = 'Prostitute'
+				$opp_image[0] = 'images/locations/city/shared/streetwalker/working1.jpg'
+				opp_def[0] = 30
+				opp_run[0] = 30
+				opp_wrstlng[0] = 20
+				opp_kick[0] = 0
+				opp_punch[0] = 10
+				opp_jab[0] = 10
+				opp_stren[0] = 20
+				opp_agil[0] = 30
+				opp_vital[0] = 50
+				opp_react[0] = 30
+				opp_health[0] = (opp_vital[0] * 10 + opp_stren[0] * 5)
+				opp_willpwr[0] = 50
+				opp_shoot[0] = 10
 
 				gt 'fight', 'start'
 			end
@@ -129,7 +147,7 @@ if $ARGS[0] = 'start':
 								minut += 15
 								gs 'npcgeneratec', 0, 'Bandit', rand(18,45)
 								gs 'boyStat', $npclastgenerated
-								!!stats
+								!!stats{
 								strenV = 200
 								speedV = 30
 								agilV = 20
@@ -152,7 +170,25 @@ if $ARGS[0] = 'start':
 								prostitutFight = 2
 
 								if spellavtoklon = 1:klon = 3
-								if spellbefshild = 1:defence = 500
+								if spellbefshild = 1:defence = 500}
+
+								gs 'fight','initFight'
+
+								$opp_name[0] = 'Bandit'
+								$opp_image[0] = 'images/locations/shared/street/mugger.jpg'
+								opp_def[0] = 10
+								opp_run[0] = 30
+								opp_wrstlng[0] = 10
+								opp_kick[0] = 0
+								opp_punch[0] = 10
+								opp_jab[0] = 10
+								opp_stren[0] = 200
+								opp_agil[0] = 20
+								opp_vital[0] = 150
+								opp_react[0] = 20
+								opp_health[0] = (opp_vital[0] * 10 + opp_stren[0] * 5)
+								opp_willpwr[0] = 100
+								opp_shoot[0] = 10
 
 								gt 'fight', 'start'
 							end
@@ -184,7 +220,7 @@ if $ARGS[0] = 'start':
 								minut += 15
 								gs 'npcgeneratec', 1, 'prostitute', rand(18,28)
 								gs 'boyStat', $npclastgenerated
-								!!stats
+								!!stats{
 								strenV = 50
 								speedV = 50
 								agilV = 40
@@ -207,7 +243,26 @@ if $ARGS[0] = 'start':
 								prostitutFight = 3
 
 								if spellavtoklon = 1:klon = 3
-								if spellbefshild = 1:defence = 500
+								if spellbefshild = 1:defence = 500}
+
+
+								gs 'fight','initFight'
+
+								$opp_name[0] = 'Prostitute'
+								$opp_image[0] = 'images/locations/city/shared/streetwalker/working1.jpg'
+								opp_def[0] = 10
+								opp_run[0] = 50
+								opp_wrstlng[0] = 10
+								opp_kick[0] = 0
+								opp_punch[0] = 10
+								opp_jab[0] = 10
+								opp_stren[0] = 50
+								opp_agil[0] = 40
+								opp_vital[0] = 60
+								opp_react[0] = 30
+								opp_health[0] = (opp_vital[0] * 10 + opp_stren[0] * 5)
+								opp_willpwr[0] = 50
+								opp_shoot[0] = 10
 
 								gt 'fight', 'start'
 							end

+ 20 - 2
locations/bass.qsrc

@@ -78,7 +78,7 @@ if $ARGS[0] = 'a':
 			cla
 			pcs_horny += 10
 			gs 'boyStat', 'A40'
-			!!stats
+			!!stats {
 			strenV = 300
 			speedV = 100
 			agilV = 100
@@ -102,7 +102,25 @@ if $ARGS[0] = 'a':
 			klonV = 5
 			defenceV = 800
 
-			if spellavtoklon = 1:klon = 3
+			if spellavtoklon = 1:klon = 3}
+
+			gs 'fight','initFight'
+
+			$opp_name[0] = 'Kisame'
+			$opp_image[0] = 'images/characters/city/kisame/kisamev.jpg'
+			opp_def[0] = 100
+			opp_run[0] = 100
+			opp_wrstlng[0] = 75
+			opp_kick[0] = 0
+			opp_punch[0] = 100
+			opp_jab[0] = 100
+			opp_stren[0] = 200
+			opp_agil[0] = 100
+			opp_vital[0] = 200
+			opp_react[0] = 100
+			opp_health[0] = (opp_vital * 10 + opp_stren * 5)
+			opp_willpwr[0] = 100
+			opp_shoot[0] = 100
 
 			gt 'fight', 'start'
 		end

+ 20 - 2
locations/dimaRevenge.qsrc

@@ -280,7 +280,7 @@ if ARGS[0] = 3:
 								'He hears you walking up and turns to meet you. Before he can say anything you punch him as hard as you can in the face.'
 								'"Ow! My fucking nose!" He says while holding his nose, then he looks at you with anger in his eyes. "I''m going to beat your ass bitch."'
 								act 'Fight':
-									!!stats
+									!!stats{
 									gs 'boyStat', 'A1'
 									strenV = 100
 									speedV = 50
@@ -303,7 +303,25 @@ if ARGS[0] = 3:
 									program = 0
 									DimaFight = 1
 									if spellavtoklon = 1:klon = 3
-									if spellbefshild = 1:defence = 500
+									if spellbefshild = 1:defence = 500}
+									gs 'fight','initFight'
+
+									$opp_name[0] = 'Dimka'
+									$opp_image[0] = 'images/characters/pavlovsk/school/head/1.jpg'
+									opp_def[0] = 50
+									opp_run[0] = 50
+									opp_wrstlng[0] = 10
+									opp_kick[0] = 0
+									opp_punch[0] = 50
+									opp_jab[0] = 50
+									opp_stren[0] = 100
+									opp_agil[0] = 40
+									opp_vital[0] = 50
+									opp_react[0] = 40
+									opp_health[0] = (opp_vital[0] * 10 + opp_stren[0] * 5)
+									opp_willpwr[0] = 100
+									opp_shoot[0] = 100
+
 									gt 'fight', 'start'
 								end
 							end

+ 187 - 19
locations/fight.qsrc

@@ -12,28 +12,135 @@ opp_punch[0] = Power punch
 opp_jab[0] = Ligth punch
 opp_stren[0] = Strengh
 opp_agil[0] = Agility
-opp_vital[0] = Opponent health
-opp_react = Reactions
+opp_vital[0] = vitality
+opp_react[0] = Reactions
+opp_health[0] = Health
+opp_willpwr[0] = willpower
 opp_shoot[0] = opponent marksmanship (only required if they are armed)
 opp_magik[0] = only if they have magic
 opp_mana[0] = only if they have magic
+opp_fog[0] = (tuman): Obscures vision, makes hitting harder.
+opp_clone[0] = (klon): Copies of the char that absorb 1 hit and disappear.  A char may have some number of them.
+opp_shield[0] = (defence): Shielding that absorbs damage before hitpoints.
+opp_dambonus[0] = (magweapbonus): damage added to melee attacks
+opp_init[0] = (initBonus): attack faster/first
+opp_stun[0] = (stunner): make target unable to act for some amount of time
 }
 
+if $ARGS[0] = 'initFight':
+	!! Clear Opponents from previous battle
+	killvar '$opp_name'
+	killvar '$opp_image'
+	killvar 'opp_def'
+	killvar 'opp_run'
+	killvar 'opp_wrstlng'
+	killvar 'opp_kick'
+	killvar 'opp_punch'
+	killvar 'opp_jab'
+	killvar 'opp_stren'
+	killvar 'opp_agil'
+	killvar 'opp_vital'
+	killvar 'opp_react'
+	killvar 'opp_health'
+	killvar 'opp_willpwr'
+	killvar 'opp_shoot'
+	killvar 'opp_magik'
+	killvar 'opp_mana'
+	killvar 'opp_fog'
+	killvar 'opp_clone'
+	killvar 'opp_shield'
+	killvar 'opp_dambonus'
+	killvar 'opp_init'
+	killvar 'opp_stun'
+
+	!! Clear any allies from previous battle{
+	i = arrsize('pcs_def')
+	:ClearAllyLoop
+	if i > 0:
+		gs 'fight', 'clearPCSArray', i-1
+		i -= 1
+		jump 'ClearAllyLoop'
+	end
+	killvar 'i'}
+
+	!! Initialize $pcs_name for Sveta
+	$pcs_name[0] = 'You'
+end
+
+if $ARGS[0] = 'clearPCSArray':
+!{ Delete an Ally from the pcs data arrays
+	ARGS[1] = Which ally slot tot delete
+}
+	i = ARGS[1]
+
+	killvar '$pcs_name', i
+	killvar '$pcs_image', i
+	killvar 'pcs_def', i
+	killvar 'pcs_run', i
+	killvar 'pcs_wrstlng', i
+	killvar 'pcs_kick', i
+	killvar 'pcs_punch', i
+	killvar 'pcs_jab', i
+	killvar 'pcs_stren', i
+	killvar 'pcs_agil', i
+	killvar 'pcs_vital', i
+	killvar 'pcs_react', i
+	killvar 'pcs_health', i
+	killvar 'pcs_willpwr', i
+	killvar 'pcs_shoot', i
+	killvar 'pcs_magik', i
+	killvar 'pcs_mana', i
+	killvar 'pcs_fog', i
+	killvar 'pcs_clone', i
+	killvar 'pcs_shield', i
+	killvar 'pcs_dambonus', i
+	killvar 'pcs_init', i
+	killvar 'pcs_stun', i
+
+	killvar 'i'
+end
+
+if $ARGS[0] = 'randomOpp':
+!{ Generate a random Opponent
+	ARGS[1] = Optional, raise difficulty of the attacker, 0 - 50
+}
+	OppDiffBonus = ARGS[1]
+	i = arrsize('opp_def')
+	$opp_name[i] = 'Opponent 1'
+	$opp_image[i] = 'images/locations/shared/street/mugger.jpg'
+	opp_def[i] = rand(1,50) + OppDiffBonus
+	opp_run[i] = rand(1,50) + OppDiffBonus
+	opp_wrstlng[i] = rand(1,50) + OppDiffBonus
+	opp_kick[i] = rand(1,50) + OppDiffBonus
+	opp_punch[i] = rand(1,50) + OppDiffBonus
+	opp_jab[i] = rand(1,50) + OppDiffBonus
+	opp_stren[i] = rand(1,50) + OppDiffBonus
+	opp_agil[i] = rand(1,50) + OppDiffBonus
+	opp_vital[i] = rand(1,50) + OppDiffBonus
+	opp_health[i] = (opp_vital * 10 + opp_stren * 5)
+	opp_react[i] = rand(1,50) + OppDiffBonus
+	opp_willpwr[i] = rand(1,50) + OppDiffBonus
+	opp_shoot[i] = rand(1,50) + OppDiffBonus
+	killvar 'OppDiffBonus'
+	killvar 'i'
+end
+
+
 if $ARGS[0] = 'start':
 	menu_off = 1
 	inFight = 1
 	gs 'themes', 'indoors'
 	cla
-	
+
 	'<center><b><font color="maroon">Fight!</font></b></center>'
 	*nl
-	'<left><img <<$set_imgh>> src="<<FUNC(''$face_image'')>>"></left><right><<$opp_image[0]>></right>'
+	'<left><img <<$set_imgh>> src="<<FUNC(''$face_image'')>>"></left><right><img <<$set_imgh>> src="<<$opp_image[0]>>"></right>'
 	*nl
 	'<left><<$pcs_firstname>></left><center>vs.</center><right><<$opp_name[0]>></right>'
-	
+
 	pcs_timer = 100 - pcs_react
 	opp_timer = 100 - opp_react[0]
-	
+
 	act 'Engage': gt 'fight', 'main'
 end
 
@@ -50,15 +157,70 @@ if $ARGS[0] = 'main':
 	end
 end
 
+if $ARGS[0] = 'printStats':
+!{ Print the stats for a character
+	$ARGS[1] = The Type of char ('opp','pcs')
+	 ARGS[2] = The member of the party
+}
+	$fightPStats['CharType'] = $ARGS[1]
+	i = ARGS[2]
+
+	if $fightPStats['CharType'] = 'opp':
+		$fightPStats['Name'] = $opp_name[i]
+		fightPStats['Health'] = opp_health[i]
+		fightPStats['Mana'] = opp_mana[i]
+		fightPStats['Willpower'] = opp_willpwr[i]
+		fightPStats['Shield'] = opp_shield[i]
+		fightPStats['Fog'] = opp_fog[i]
+		fightPStats['Clone'] = opp_clone[i]
+	else
+		$fightPStats['Name'] = $pcs_name[i]
+		fightPStats['Health'] = pcs_health[i]
+		fightPStats['Mana'] = pcs_mana[i]
+		fightPStats['Willpower'] = pcs_willpwr[i]
+		fightPStats['Shield'] = pcs_shield[i]
+		fightPStats['Fog'] = pcs_fog[i]
+		fightPStats['Clone'] = pcs_clone[i]
+	end
+
+	'<b><<$fightPStats["Name"]>></b> life <b><font color = red><<fightPStats["Health"]>></font></b>, mana <b><font color = blue><<fightPStats["Mana"]>></font></b>, willpower <b><font color = green><<fightPStats["Willpower"]>></font></b>'
+	if fightPStats['Shield'] > 0:'<b><font color = red>Protection <<fightPStats["Shield"]>> units</font></b>'
+	if fightPStats['Clone'] > 0:'<b><font color = red>Clones active <<fightPStats["Clone"]>> </font></b>'
+	if fightPStats['Fog'] > 0:'<b><font color = red>Obscuring Fog <<fightPStats["Fog"]>> units</font></b>'
+	'<b>= = = = = = = = = = = = = = = = = = = = = = = = = = = = =</b>'
+
+	killvar 'i'
+	killvar 'fightPStats'
+	killvar '$fightPStats'
+end
+
+if $ARGS[0] = 'statDisplay':
+	'<b>= = = = = = = = = = = O p p o n e n t s = = = = = = = = = = =</b>'
+	i = 0
+	:OppLoopRC1
+	if i < arrsize('opp_health'):
+		gs 'fight', 'printStats', 'opp', i
+		i += 1
+		jump 'OppLoopRC1'
+	end
+	*nl
+	'<b>= = = = = = = = = = = = A l l i e s = = = = = = = = = = = = =</b>'
+	i = 0
+	:PCSLoopRC1
+	if i < arrsize('pcs_health'):
+		gs 'fight', 'printStats', 'pcs', i
+		i += 1
+		jump 'PCSLoopRC1'
+	end
+end
+
 if $ARGS[0] = 'result_check':
 !!cheat to auto-win fights check
 	if fight_cheat = 1:
 		xgt 'ender', 'win'
 		exit
 	end
-	
-!!	gs'defence'
-!!	gs'statBat'
+
 
 !!win/lose conditions
 	if pcs_health <= 0:
@@ -66,7 +228,7 @@ if $ARGS[0] = 'result_check':
 
 		xgt'ender','loss'
 		exit
-	elseif opp_vital[0] <= 0:
+	elseif opp_health[0] <= 0:
 		'<b><font color = green><<$boydesc>> You won!</font></b>'
 
 		xgt'ender','win'
@@ -77,7 +239,8 @@ if $ARGS[0] = 'result_check':
 		xgt'ender','loss'
 		exit
 	end
-	gt 'fight', 'main'
+	!gt 'fight', 'main'
+	killvar 'i'
 end
 
 !! Kick
@@ -128,13 +291,13 @@ $fight['Attack'] = {
 	fightAtk['MinDamage'] = AttackMin[fightAtk['Type']]
 	fightAtk['MaxDamage'] = AttackMax[fightAtk['Type']]
 
-	'<<$fightAtk["AttackerPronoun"]>> attempts a <<$fightAtk["Type"]>>!'
+	'<<$fightAtk["AttackerPronoun"]>> attempt a <<$fightAtk["Type"]>>!'
 	*nl
 	if fightAtk['AttackerSkillValue'] + rand(0,30) > fightAtk['TargetReactValue'] / 4 + 3 * fightAtk['TargetAgilValue'] / 4:
 		!!Calculate Damage
 		dynamic "fightAtk['Damage'] = <<$fightAtk['AttackerType']>>_stren[<<fightAtk['AttackerNumber']>>] * rand(<<fightAtk['MinDamage']>>,<<fightAtk['MaxDamage']>>) / 15"
 		!!Apply Damage
-		dynamic "<<$fightAtk['TargetType']>>_health -= fightAtk['Damage']"
+		dynamic "<<$fightAtk['TargetType']>>_health[<<fightAtk['TargetNumber']>>] -= fightAtk['Damage']"
 		if fightAtk['Damage'] > 10:
 			'The hit is hard and <<$fightAtk["TargetPronoun"]>> reel in pain.'
 		else
@@ -144,6 +307,7 @@ $fight['Attack'] = {
 		'<<$fightAtk["TargetPronoun"]>> avoid the blow.'
 	end
 	dynamic "<<$fightAtk['AttackerType']>>_timer += AttackTime[fightAtk['Type']]"
+	cla
 	act 'Next': gt 'fight', 'main'
 
 	killvar 'fightAtk'
@@ -151,6 +315,7 @@ $fight['Attack'] = {
 }
 
 if $ARGS[0] = 'opponent':
+	gs 'fight', 'statDisplay'
 	if opp_magik[0] > 0: gs 'fight', 'opp_spellcast'
 	if rand(0,opp_kick[0]) > 40:
 		dynamic $fight['Attack'], 'Kick', 'pcs', 0, 0
@@ -159,10 +324,13 @@ if $ARGS[0] = 'opponent':
 	else
 		dynamic $fight['Attack'], 'Jab', 'pcs', 0, 0
 	end
-end	
+end
 
 if $ARGS[0] = 'player':
-	if pcs_magik > 0: gs 'fight', 'spellcast'
+	gs 'fight', 'statDisplay'
+	if pcs_magik > 0:
+		act 'Cast a Spell': gs 'fight', 'spellcast'
+	end
 
 	act 'Kick them':
 		dynamic $fight['Attack'], 'Kick', 'opp', 0, 0
@@ -175,7 +343,7 @@ if $ARGS[0] = 'player':
 	act 'Jab them':
 		dynamic $fight['Attack'], 'Jab', 'opp', 0, 0
 	end
-end	
+end
 
 
 if $ARGS[0] = 'opp_spellcast':
@@ -470,14 +638,14 @@ end
 			act 'Surrender to your opponent': autocombat_surrender = 1 & gt 'ender', 'loss'
 		elseif autocombat_cheat = 1 and pcs_magick = 0:
 			xgt'boxing'
-		end		
+		end
 	elseif hod = 1:
 		!enemy attacks
 		'<font color = red><<$boydesc>> attacks</font>'
-		if autocombat_cheat = 0: 
+		if autocombat_cheat = 0:
 			act 'Continue': xgt'enemy','start'
 			act 'Surrender to your opponent': autocombat_surrender = 1 & gt 'ender', 'loss'
-		elseif autocombat_cheat = 1: 
+		elseif autocombat_cheat = 1:
 			xgt'enemy','start'
 		end
 	end

+ 19 - 2
locations/kisameQW.qsrc

@@ -53,7 +53,7 @@ if $ARGS[0] = 'start':
 			'<center><img <<$set_imgh>> src="images/characters/city/kisame/kisamev.jpg"></center>'
 			pcs_horny += 60
 			gs 'boyStat', 'A40'
-			!!stats
+			!!stats{
 			strenV = 300
 			speedV = 100
 			agilV = 100
@@ -78,7 +78,24 @@ if $ARGS[0] = 'start':
 			klonV = 5
 			!!defenceV = 10000
 			if spellavtoklon = 1:klon = 3
-			if spellbefshild = 1:defence = 500
+			if spellbefshild = 1:defence = 500}
+			gs 'fight','initFight'
+
+			$opp_name[0] = 'Kisame'
+			$opp_image[0] = 'images/characters/city/kisame/kisamev.jpg'
+			opp_def[0] = 100
+			opp_run[0] = 100
+			opp_wrstlng[0] = 75
+			opp_kick[0] = 0
+			opp_punch[0] = 100
+			opp_jab[0] = 100
+			opp_stren[0] = 200
+			opp_agil[0] = 100
+			opp_vital[0] = 200
+			opp_react[0] = 100
+			opp_health[0] = (opp_vital * 10 + opp_stren * 5)
+			opp_willpwr[0] = 100
+			opp_shoot[0] = 100
 
 			gt 'fight', 'start'
 			'You kick Kisame in the face. He shows his teeth, and his appearance begins to change. Instantaneously he has blue gills on his face and shark teeth. He whispers with a smile, "You wanna play baby? Let''s play!"'

+ 39 - 2
locations/lab.qsrc

@@ -47,6 +47,7 @@ if $ARGS[0] = 'start':
 			cla
 			judosparday = daystart
 			gs 'boyStat', 'A175'
+			!{
 			!!stats
 			strenV = 600
 			speedV = 60
@@ -68,6 +69,25 @@ if $ARGS[0] = 'start':
 			!!Programme of Action
 			program = 0
 			jugoFight = 2
+			}
+			gs 'fight','initFight'
+
+			$opp_name[0] = 'Gustav'
+			$opp_image[0] = 'images/characters/city/jugo/jugopre.jpg'
+			opp_def[0] = 100
+			opp_run[0] = 75
+			opp_wrstlng[0] = 75
+			opp_kick[0] = 75
+			opp_punch[0] = 85
+			opp_jab[0] = 75
+			opp_stren[0] = 250
+			opp_agil[0] = 60
+			opp_vital[0] = 200
+			opp_react[0] = 50
+			opp_health[0] = (opp_vital * 10 + opp_stren * 5)
+			opp_willpwr[0] = 50
+			opp_shoot[0] = 100
+
 			gt 'fight', 'start'
 		end
 	end
@@ -77,7 +97,7 @@ if $ARGS[0] = 'start':
 			cla
 			tatianasparday = daystart
 			gs 'boyStat', 'A176'
-			!!stats
+			!!stats{
 			strenV = 60
 			speedV = 100
 			agilV = 100
@@ -97,7 +117,24 @@ if $ARGS[0] = 'start':
 			BonusDefV = 0
 			!!Programme of Action
 			program = 4
-			tatianaFight = 1
+			tatianaFight = 1}
+			gs 'fight','initFight'
+
+			$opp_name[0] = 'Tatiana'
+			$opp_image[0] = 'images/characters/city/tatiana/magiclook.jpg'
+			opp_def[0] = 100
+			opp_run[0] = 75
+			opp_wrstlng[0] = 50
+			opp_kick[0] = 75
+			opp_punch[0] = 100
+			opp_jab[0] = 100
+			opp_stren[0] = 60
+			opp_agil[0] = 100
+			opp_vital[0] = 100
+			opp_react[0] = 60
+			opp_health[0] = (opp_vital * 10 + opp_stren * 5)
+			opp_willpwr[0] = 100
+			opp_shoot[0] = 100
 			gt 'fight', 'start'
 		end
 	end

+ 105 - 73
locations/natbelEv.qsrc

@@ -104,33 +104,47 @@ if $ARGS[0] = 'carrybooks':
 	'As you open the door you see Natasha sitting on her small sofa, pulling up her stockings'
 	'"Ready to go?" You ask her, as you put your bag next to her.'
 	if NatashaQW >= 7:
-		act 'Lift her skirt':
-			*clr & cla
-			'<center><img src="images/characters/pavlovsk/school/girl/natasha/skirt.jpg"></center>'
-			'You can''t stop yourself from pulling up her skirt as she turns to grab your bag. "Cute panties Natasha, they match the stockings."'
-			'Natasha looks over her shoulder at you with a faint blush on her cheeks. "I... Uhm... Thank you <<$pcs_nickname>>." She says, blushing at you prettily.'
-			'"We have some time before school." You tell her while you start pulling off her skirt and panties.'
-			'"Today you''ll be wearing them a little differently." You say, pushing her back on the couch. "Open your legs."'
-			'Natasha obediently opens her legs for you. showing off her pretty pussy. Not wasting any time you start playing with her, first rubbing her lips, then focussing more on her clit as you watch closely while Natasha''s pussy gets wetter and wetter.'
-			act 'Stuff her panties':
+		gs 'willpower', 'exhib', 'force', 'easy'
+		if will_cost <= pcs_willpwr:
+			act 'Lift her skirt (<<will_cost>> Willpower)':
+				gs 'willpower', 'exhib', 'force', 'easy'
+				gs 'willpower', 'pay', 'force'
 				*clr & cla
-				'<center><video <<$set_imgh>> src="images/characters/pavlovsk/school/girl/natasha/sex/stuffpanties.mp4"></center>'
-				'You stop playing with her pussy and grab her panties, handing them over to her. "Put them inside your pussy."'
-				'Natasha looks at you in confusion for a second but then starts to slowly push them into her pussy.'
-				'When there''s only enough left to easily grab on in case you''d want to pull them out she stops and looks at you expectantly. "Like this <<$pcs_nickname>>?"'
-				'You reach down and push the last bit inside as well, holding them in with your finger for a bit before pulling your finger out again.'
-				'"This is how you''ll wear your panties for me at school today Natasha." You tell her. "Now put your skirt back on or we''ll be late.'
-				act 'Go to school': gt 'natbelEv', 'schoolwalk'
+				'<center><img src="images/characters/pavlovsk/school/girl/natasha/skirt.jpg"></center>'
+				'You can''t stop yourself from pulling up her skirt as she turns to grab your bag. "Cute panties Natasha, they match the stockings."'
+				'Natasha looks over her shoulder at you with a faint blush on her cheeks. "I... Uhm... Thank you <<$pcs_nickname>>." She says, blushing at you prettily.'
+				'"We have some time before school." You tell her while you start pulling off her skirt and panties.'
+				'"Today you''ll be wearing them a little differently." You say, pushing her back on the couch. "Open your legs."'
+				'Natasha obediently opens her legs for you. showing off her pretty pussy. Not wasting any time you start playing with her, first rubbing her lips, then focussing more on her clit as you watch closely while Natasha''s pussy gets wetter and wetter.'
+				act 'Stuff her panties':
+					*clr & cla
+					'<center><video <<$set_imgh>> src="images/characters/pavlovsk/school/girl/natasha/sex/stuffpanties.mp4"></center>'
+					'You stop playing with her pussy and grab her panties, handing them over to her. "Put them inside your pussy."'
+					'Natasha looks at you in confusion for a second but then starts to slowly push them into her pussy.'
+					'When there''s only enough left to easily grab on in case you''d want to pull them out she stops and looks at you expectantly. "Like this <<$pcs_nickname>>?"'
+					'You reach down and push the last bit inside as well, holding them in with your finger for a bit before pulling your finger out again.'
+					'"This is how you''ll wear your panties for me at school today Natasha." You tell her. "Now put your skirt back on or we''ll be late.'
+					act 'Go to school': gt 'natbelEv', 'schoolwalk'
+				end
 			end
+		else
+			act 'Lift her skirt (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 		end
 	elseif NatashaQW > 5:
-		act 'Lift her skirt':
-			*clr & cla
-			'<center><img src="images/characters/pavlovsk/school/girl/natasha/skirt.jpg"></center>'
-			'You can''t stop yourself from pulling up her skirt as she turns to grab your bag. "Cute panties Natasha, they match the stockings."'
-			'Natasha looks over her shoulder at you with a faint blush on her cheeks. "I... Uhm... Thank you <<$pcs_nickname>>." She lets out in a whisper.'
-			'Not wanting to lose your mule to school you let her skirt fall down again and head to school.'
-			act 'Go to school': gt 'gschool_grounds', 'main'
+		gs 'willpower', 'exhib', 'force', 'easy'
+		if will_cost <= pcs_willpwr:
+			act 'Lift her skirt (<<will_cost>> Willpower)':
+				gs 'willpower', 'exhib', 'force', 'easy'
+				gs 'willpower', 'pay', 'force'
+				*clr & cla
+				'<center><img src="images/characters/pavlovsk/school/girl/natasha/skirt.jpg"></center>'
+				'You can''t stop yourself from pulling up her skirt as she turns to grab your bag. "Cute panties Natasha, they match the stockings."'
+				'Natasha looks over her shoulder at you with a faint blush on her cheeks. "I... Uhm... Thank you <<$pcs_nickname>>." She lets out in a whisper.'
+				'Not wanting to lose your mule to school you let her skirt fall down again and head to school.'
+				act 'Go to school': gt 'gschool_grounds', 'main'
+			end
+		else
+			act 'Lift her skirt (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 		end
 	else
 		'Natasha grabs both of your bags and you head to school.'
@@ -155,48 +169,59 @@ end
 
 !! This is the cucumber event in Natasha''s questline
 if $ARGS[0] = 'laundry':
-	$menu_loc = 'natbelapt'
+	$menu_loc = 'natbelEv'
 	$menu_arg = 'laundry'
 	menu_off = 0
 	CLOSE ALL
 	*clr & cla
-	$locclass = 'livingr'
+	$locclass = ''
 	minut += 1
 	gs 'stat'
 	'<center><b><font color = maroon>Laundry room</font></b></center>'
-! Needs image + description
+	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/natbelapt/sex/natlaundry.jpg"></center>'
+	'You walk in and see Natasha just turning on the machine. She turns around and sees you in the doorway.'
 	
 	if NatashaLoc = 7 and HaveCucumber = 1 and NatashaQW >= 10:
-		if NatashaQW = 10: NatashaQW = 11
-		HaveCucumber = 0
-		*clr & cla
-		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/natbelapt/sex/natashacucumber01.jpg"></center>'
-		'As you enter the building''s laundry room you see Natasha loading the washer. As she closes the lid and turns it on you move in and make her sit on top of it.'
-		'"I thought we could have some fun in here. The noise from the washer should prevent anyone from hearing." You tell her as you hand her the cucumber.'
-		'"What''s this for?" She asks you. "I Want to see you slide it in your pussy Natasha." You tell her with an excited grin on your face.'
-		'"It''s enormous, it won''t fit." She hesitantly tries to back out. "I''ve seen you take bigger. Now open those legs and get yourself ready or I''ll put it in myself right now." You hiss at her.'
-		act 'Further':
-			*clr & cla
-			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/natbelapt/sex/natashacucumber02.jpg"></center>'
-			'Natasha has a shocked look on her face as she scoots back a bit and obediently starts to play with her pussy. You can see she''s already wet. "Being dominated really turns her on." You think to yourself.'
-			'"T-The vibrations from the washer are ..." She starts moaning softly.'
-			'"You better start opening that pussy up or it''s going to sting bitch." You continue in the same threatening tone you used before. Natasha moans as she slips two fingers inside. "That went easy enough, now add a third." You order her, and to your delight she immediately forces a third finger inside her vagina.'
-			'"Good, now spread your pussy, I want to have a last look before the cucumber goes in." You hiss again, wanting to make sure she keeps takign your orders immediately.'
-			'You smile as you she opens her pussy for you with her hands, showing you just how dripping wet she is.'
-			act 'Now put it in':
+		gs 'willpower', 'mast', 'force', 'easy'
+		if will_cost <= pcs_willpwr:
+			act 'Make her play with a cucumber (<<will_cost>> Willpower)':
+				gs 'willpower', 'pay', 'force'
+				
+				if NatashaQW = 10: NatashaQW = 11
+				HaveCucumber = 0
 				*clr & cla
-				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/natbelapt/sex/natashacucumber03.jpg"></center>'
-				'Natasha lets out a loud moan as she forces the cucumber inside her pussy even though she was biting her lip to try and stay quiet. It slides about half way in on the first stroke. "You see, it wasn''t too big at all." You praise her. "Now I want to see you fuck yourself hard. Keep going."'
-				'She''s all too eager to obey. With a furious effort she rapidly strokes the big vegetable in and out of herself. Her moans growing louder and louder. Within a few minutes you are rewarded with the sight of her delicious orgasm. Her legs shake as she keeps fucking herself for a bit longer before she finally slides it all the way out and leans back. Her face sporting a deep red flush.'
-				'You lean in and kiss her passionately before telling her: "Let''s go to your room."'
-				act 'Go to her room': NatashaLoc = 2 & gt 'natbelapt', 'natroom'
+				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/natbelapt/sex/natashacucumber01.jpg"></center>'
+				'You move over and make her sit on top of it.'
+				'"I thought we could have some fun in here. The noise from the washer should prevent anyone from hearing." You tell her as you hand her the cucumber.'
+				'"What''s this for?" She asks you. "I Want to see you slide it in your pussy Natasha." You tell her with an excited grin on your face.'
+				'"It''s enormous, it won''t fit." She hesitantly tries to back out. "I''ve seen you take bigger. Now open those legs and get yourself ready or I''ll put it in myself right now." You hiss at her.'
+				act 'Further':
+					*clr & cla
+					'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/natbelapt/sex/natashacucumber02.jpg"></center>'
+					'Natasha has a shocked look on her face as she scoots back a bit and obediently starts to play with her pussy. You can see she''s already wet. "Being dominated really turns her on." You think to yourself.'
+					'"T-The vibrations from the washer are ..." She starts moaning softly.'
+					'"You better start opening that pussy up or it''s going to sting bitch." You continue in the same threatening tone you used before. Natasha moans as she slips two fingers inside. "That went easy enough, now add a third." You order her, and to your delight she immediately forces a third finger inside her vagina.'
+					'"Good, now spread your pussy, I want to have a last look before the cucumber goes in." You hiss again, wanting to make sure she keeps takign your orders immediately.'
+					'You smile as you she opens her pussy for you with her hands, showing you just how dripping wet she is.'
+					act 'Now put it in':
+						*clr & cla
+						'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/natbelapt/sex/natashacucumber03.jpg"></center>'
+						'Natasha lets out a loud moan as she forces the cucumber inside her pussy even though she was biting her lip to try and stay quiet. It slides about half way in on the first stroke. "You see, it wasn''t too big at all." You praise her. "Now I want to see you fuck yourself hard. Keep going."'
+						'She''s all too eager to obey. With a furious effort she rapidly strokes the big vegetable in and out of herself. Her moans growing louder and louder. Within a few minutes you are rewarded with the sight of her delicious orgasm. Her legs shake as she keeps fucking herself for a bit longer before she finally slides it all the way out and leans back. Her face sporting a deep red flush.'
+						'You lean in and kiss her passionately before telling her: "Let''s go to your room."'
+						act 'Go to her room': NatashaLoc = 2 & gt 'natbelapt', 'natroom'
+					end
+				end
 			end
+		else
+			act 'Make her play with a cucumber (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+			act 'Go to her room': NatashaLoc = 2 & gt 'natbelapt', 'natroom'
 		end
 	elseif NatashaLoc = 7:
-		'You walk in and see Natasha just turning on the machine. She turns around and sees you in the doorway.'
 		'"Oh hey <<$pcs_nickname>>, let''s go to my room"'
 		act 'Go to her room': NatashaLoc = 2 & gt 'natbelapt', 'natroom'
 	else
+		*clr & cla
 		'There is nobody here. This room isn''t exactly big enough to hang out in so you head back out.'
 		act 'Go to the hallway': gt 'natbelapt', 'hallway'
 	end
@@ -219,35 +244,42 @@ if $ARGS[0] = 'showerspy':
 	'You open the bathroom door as quietly as you can and peer through the crack to see Natasha sitting down in the shower while she''s shaving her pussy, completely absorbed in the her grooming.'
 	gs 'arousal', 'voyeur', 5
  	if NatashaQW >= 5:
-		act 'Get a closer look':
-			*clr & cla
-			'<center><img src="images/characters/pavlovsk/school/girl/natasha/sex/natshowerspy02.jpg"></center>'
-			'Wanting to get a better look you step into the bathroom and close the door behind you.'
-			'"Making yourself presentable I see." You say with a grin, which breaks Natasha out of her concentration, making her look up at you with an embarassed look on her face.'
-			'She then shrugs and gets back to her shaving. "I-It just feels nice... You know..." She lets out.'
-			'"Yeah, I understand. Freshly shaven skin is really nice to touch." You let her know as you keep watching while she finishes shaving.'
-			gs 'arousal', 'voyeur', 5
-			if NatashaQW >= 9:
-				act 'Keep chatting while she rinses off':
-					*clr & cla
-					'<center><img src="images/characters/pavlovsk/school/girl/natasha/sex/natshowerspy02.jpg"></center>'
-					'When Natasha is done she quickly rinses off the remaining shaving cream and then looks up at you with a mischievous grin on her face.'
-					'"This feels even nicer." She says as she spreads her pussylips with one hand and inserts the handle of her razor in her pussy, gently pushing it in and then slowly pulling it out a few times.'
-					'"Someone''s in a great mood today." You praise her as you feel your own pussy getting wet at the sight of Natasha playing with herself in the shower. "I think we should continue this in your room."'
-					'Natasha quickly gets up and rinses off her entire body and you hand her a towel as she steps out of the shower.'
-					'"Don''t take too long. I''ll be in your room." You tell her and leave the bathroom.'
-					gs 'arousal', 'voyeur', 5
+		gs 'willpower', 'voyeur', 'self', 'easy'
+		if will_cost <= pcs_willpwr:
+			act 'Get a closer look (<<will_cost>> Willpower)':
+				gs 'willpower', 'pay', 'self'
+				*clr & cla
+				'<center><img src="images/characters/pavlovsk/school/girl/natasha/sex/natshowerspy02.jpg"></center>'
+				'Wanting to get a better look you step into the bathroom and close the door behind you.'
+				'"Making yourself presentable I see." You say with a grin, which breaks Natasha out of her concentration, making her look up at you with an embarassed look on her face.'
+				'She then shrugs and gets back to her shaving. "I-It just feels nice... You know..." She lets out.'
+				'"Yeah, I understand. Freshly shaven skin is really nice to touch." You let her know as you keep watching while she finishes shaving.'
+				gs 'arousal', 'voyeur', 5
+				if NatashaQW >= 9:
+					act 'Keep chatting while she rinses off':
+						*clr & cla
+						'<center><img src="images/characters/pavlovsk/school/girl/natasha/sex/natshowerspy02.jpg"></center>'
+						'When Natasha is done she quickly rinses off the remaining shaving cream and then looks up at you with a mischievous grin on her face.'
+						'"This feels even nicer." She says as she spreads her pussylips with one hand and inserts the handle of her razor in her pussy, gently pushing it in and then slowly pulling it out a few times.'
+						'"Someone''s in a great mood today." You praise her as you feel your own pussy getting wet at the sight of Natasha playing with herself in the shower. "I think we should continue this in your room."'
+						'Natasha quickly gets up and rinses off her entire body and you hand her a towel as she steps out of the shower.'
+						'"Don''t take too long. I''ll be in your room." You tell her and leave the bathroom.'
+						gs 'arousal', 'voyeur', 5
+						gs 'arousal', 'end'
+						gs 'stat'
+						act 'Leave': gt 'natbelapt','natroom'
+					end
+				else
 					gs 'arousal', 'end'
 					gs 'stat'
+					'When Natasha is done she quickly rinses off the remaining shaving cream and you hand her a towel as she steps out of the shower.'
+					'"I''ll let you finish up in here. I''ll be in your room." You tell her and leave the bathroom.'
 					act 'Leave': gt 'natbelapt','natroom'
 				end
-			else
-				gs 'arousal', 'end'
-				gs 'stat'
-				'When Natasha is done she quickly rinses off the remaining shaving cream and you hand her a towel as she steps out of the shower.'
-				'"I''ll let you finish up in here. I''ll be in your room." You tell her and leave the bathroom.'
-				act 'Leave': gt 'natbelapt','natroom'
 			end
+		else
+			act 'Get a closer look (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+			act 'Leave': gt 'natbelapt','hallway'
 		end
 	else
 		'Not wanting to intrude any further you decide to leave her be and close the door again.'

+ 38 - 31
locations/natkolEv.qsrc

@@ -826,41 +826,48 @@ if $ARGS[0] = 'showerspy':
 	'You open the bathroom door as quietly as you can and peer through the crack to see Natasha on her knees sucking Kolka off while in the shower.'
 	gs 'arousal', 'voyeur', 5
  	if NatashaQW >= 5:
-		act 'Get a closer look':
-			*clr & cla
-			'<center><img src="images/characters/pavlovsk/school/girl/natasha/sex/natkolkashowerbj2.jpg"></center>'
-			'Wanting to get a better look you step into the bathroom and close the door behind you.'
-			'They''re so absorbed in eachother that they don''t even notice your entry.'
-			'"Taking private lessons Kolka?" You say with a grin on your face.'
-			'At the sound of your voice, they both startle visibly. Natasha''s face instantly turns crimson.'
-			'"Don''t stop on my account. I love watching you guys get each other off."'
-			gs 'arousal', 'voyeur', 5
-			act 'Make Kolka fuck her':
+		gs 'willpower', 'voyeur', 'self', 'easy'
+		if will_cost <= pcs_willpwr:
+			act 'Get a closer look (<<will_cost>> Willpower)':
+				gs 'willpower', 'pay', 'self'
 				*clr & cla
-				'<center><img src="images/characters/pavlovsk/school/girl/natasha/sex/natshowerfuck.jpg"></center>'
-				'"It looks like Natasha needs a dick in her pussy. Give her what she wants Kolka."'
-				'Obedience seems to be well trained into Natasha by now as she immediately gets up and offers her pussy to Kolka.'
-				'Kolka doesn''t waste any time and immediately plunges his full length inside her, making her moan loudly. He starts to move gently at first, but Natasha almost immediately starts begging him: "Please fuck me hard and fast Kolka. Yes... Like that... Keep going."'
-				'The bathroom is suddenly filled with the sounds of Natasha''s moaning and flesh smacking against flesh.'
-				'It doesn''t take long before Natasha''s moaning turns into pleading again, "Please... Yes... Almost..." before her legs start trembling in Kolka''s arms.'
-				'You squirm a bit yourself as you watch Natasha having what looks to be one hell of an orgasm.'
-				'It seems to take her forever to stop cumming, but eventually, she just can''t stay on her feet any longer and sinks down to the floor. Kolka looks like he''s on the edge himself.'
-				gs 'arousal', 'voyeur', 20
-				minut -= 15
-				gs 'stat'
-				act 'Let him cum on her face':
+				'<center><img src="images/characters/pavlovsk/school/girl/natasha/sex/natkolkashowerbj2.jpg"></center>'
+				'Wanting to get a better look you step into the bathroom and close the door behind you.'
+				'They''re so absorbed in eachother that they don''t even notice your entry.'
+				'"Taking private lessons Kolka?" You say with a grin on your face.'
+				'At the sound of your voice, they both startle visibly. Natasha''s face instantly turns crimson.'
+				'"Don''t stop on my account. I love watching you guys get each other off."'
+				gs 'arousal', 'voyeur', 5
+				act 'Make Kolka fuck her':
 					*clr & cla
-					'<center><img src="images/characters/pavlovsk/school/girl/natasha/sex/natshowercum.jpg"></center>'
-					'"Looks like you did her in Kolka." You say. "Come lie down here Natasha and let him cum on your face."'
-					'She looks dazed as she crawls out of the shower and lies down on her back. Kolka follows her out and straddles her chest. He immediately starts jerking off furiously over her face.'
-					'"Open your mouth. Here it comes." He tells her and seconds after that he starts shooting a huge load of his cum into her mouth and over her face.'
-					'By the time he''s done cumming Natasha''s mouth is overflowing, and half of her face is covered in cum.'
-					'"A true cum shower. Fitting." You say, unable to hold in your laughter. "Well, Kolka looks like it''s time for you to get going. I''ll help her get to her feet."'
-					'Kolka quickly gets dressed before he slips out of the bathroom. After he''s gone you pull Natasha to her feet and help her over to the sink to clean up.'
-					gs 'arousal', 'voyeur', 5
-					act 'Go to Natasha''s room': gt 'natbelapt','natroom'
+					'<center><img src="images/characters/pavlovsk/school/girl/natasha/sex/natshowerfuck.jpg"></center>'
+					'"It looks like Natasha needs a dick in her pussy. Give her what she wants Kolka."'
+					'Obedience seems to be well trained into Natasha by now as she immediately gets up and offers her pussy to Kolka.'
+					'Kolka doesn''t waste any time and immediately plunges his full length inside her, making her moan loudly. He starts to move gently at first, but Natasha almost immediately starts begging him: "Please fuck me hard and fast Kolka. Yes... Like that... Keep going."'
+					'The bathroom is suddenly filled with the sounds of Natasha''s moaning and flesh smacking against flesh.'
+					'It doesn''t take long before Natasha''s moaning turns into pleading again, "Please... Yes... Almost..." before her legs start trembling in Kolka''s arms.'
+					'You squirm a bit yourself as you watch Natasha having what looks to be one hell of an orgasm.'
+					'It seems to take her forever to stop cumming, but eventually, she just can''t stay on her feet any longer and sinks down to the floor. Kolka looks like he''s on the edge himself.'
+					gs 'arousal', 'voyeur', 20
+					minut -= 15
+					gs 'stat'
+					act 'Let him cum on her face':
+						*clr & cla
+						'<center><img src="images/characters/pavlovsk/school/girl/natasha/sex/natshowercum.jpg"></center>'
+						'"Looks like you did her in Kolka." You say. "Come lie down here Natasha and let him cum on your face."'
+						'She looks dazed as she crawls out of the shower and lies down on her back. Kolka follows her out and straddles her chest. He immediately starts jerking off furiously over her face.'
+						'"Open your mouth. Here it comes." He tells her and seconds after that he starts shooting a huge load of his cum into her mouth and over her face.'
+						'By the time he''s done cumming Natasha''s mouth is overflowing, and half of her face is covered in cum.'
+						'"A true cum shower. Fitting." You say, unable to hold in your laughter. "Well, Kolka looks like it''s time for you to get going. I''ll help her get to her feet."'
+						'Kolka quickly gets dressed before he slips out of the bathroom. After he''s gone you pull Natasha to her feet and help her over to the sink to clean up.'
+						gs 'arousal', 'voyeur', 5
+						act 'Go to Natasha''s room': gt 'natbelapt','natroom'
+					end
 				end
 			end
+		else
+			act 'Get a closer look (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+			act 'Leave': gt 'natbelapt','hallway'
 		end
 	else
 		'Not wanting to intrude any further you decide to leave them be and close the door again.'

+ 78 - 8
locations/park.qsrc

@@ -142,7 +142,7 @@ if $ARGS[0] = 'start':
 					gs 'boyStat', $npclastgenerated
 					act 'Fight':
 						cla
-						!!stats
+						!!stats{
 						strenV = 100
 						speedV = 50
 						agilV = 40
@@ -165,7 +165,24 @@ if $ARGS[0] = 'start':
 						RapistFight = 1
 
 						if spellavtoklon = 1:klon = 3
-						if spellbefshild = 1:defence = 500
+						if spellbefshild = 1:defence = 500}
+						gs 'fight','initFight'
+
+						$opp_name[0] = 'Rapist'
+						$opp_image[0] = 'images/locations/shared/street/rapist.jpg'
+						opp_def[0] = 50
+						opp_run[0] = 50
+						opp_wrstlng[0] = 10
+						opp_kick[0] = 0
+						opp_punch[0] = 50
+						opp_jab[0] = 50
+						opp_stren[0] = 100
+						opp_agil[0] = 40
+						opp_vital[0] = 50
+						opp_react[0] = 40
+						opp_health[0] = (opp_vital[0] * 10 + opp_stren[0] * 5)
+						opp_willpwr[0] = 100
+						opp_shoot[0] = 100
 
 						gt 'fight', 'start'
 					end
@@ -549,7 +566,7 @@ if $ARGS[0] = 'prost':
 		act 'Fuck you!':
 			cla
 			minut += 15
-			!!stats
+			!!stats {
 			strenV = 20
 			speedV = 30
 			agilV = 30
@@ -572,7 +589,25 @@ if $ARGS[0] = 'prost':
 			prostitutFight = 1
 
 			if spellavtoklon = 1:klon = 3
-			if spellbefshild = 1:defence = 500
+			if spellbefshild = 1:defence = 500}
+
+			gs 'fight','initFight'
+
+			$opp_name[0] = 'Prostitute'
+			$opp_image[0] = 'images/locations/city/shared/streetwalker/working1.jpg'
+			opp_def[0] = 30
+			opp_run[0] = 30
+			opp_wrstlng[0] = 20
+			opp_kick[0] = 0
+			opp_punch[0] = 10
+			opp_jab[0] = 10
+			opp_stren[0] = 20
+			opp_agil[0] = 30
+			opp_vital[0] = 50
+			opp_react[0] = 30
+			opp_health[0] = (opp_vital[0] * 10 + opp_stren[0] * 5)
+			opp_willpwr[0] = 50
+			opp_shoot[0] = 10
 
 			gt 'fight', 'start'
 		end
@@ -601,7 +636,7 @@ if $ARGS[0] = 'prost':
 					minut += 15
 					gs 'npcgeneratec', 0, 'Bandit', rand(18,40)
 					gs 'boyStat', $npclastgenerated
-					!!stats
+					!!stats{
 					strenV = 200
 					speedV = 30
 					agilV = 20
@@ -624,7 +659,25 @@ if $ARGS[0] = 'prost':
 					prostitutFight = 2
 
 					if spellavtoklon = 1:klon = 3
-					if spellbefshild = 1:defence = 500
+					if spellbefshild = 1:defence = 500}
+
+					gs 'fight','initFight'
+
+					$opp_name[0] = 'Bandit'
+					$opp_image[0] = 'images/locations/shared/street/mugger.jpg'
+					opp_def[0] = 10
+					opp_run[0] = 30
+					opp_wrstlng[0] = 10
+					opp_kick[0] = 0
+					opp_punch[0] = 10
+					opp_jab[0] = 10
+					opp_stren[0] = 200
+					opp_agil[0] = 20
+					opp_vital[0] = 150
+					opp_react[0] = 20
+					opp_health[0] = (opp_vital[0] * 10 + opp_stren[0] * 5)
+					opp_willpwr[0] = 100
+					opp_shoot[0] = 10
 
 					gt 'fight', 'start'
 				end
@@ -678,7 +731,7 @@ if $ARGS[0] = 'prost':
 					minut += 15
 					gs 'npcgeneratec', 0, 'Prostitute', rand(15,30)
 					gs 'boyStat', $npclastgenerated
-					!!stats
+					!!stats{
 					strenV = 50
 					speedV = 50
 					agilV = 40
@@ -701,7 +754,24 @@ if $ARGS[0] = 'prost':
 					prostitutFight = 3
 
 					if spellavtoklon = 1:klon = 3
-					if spellbefshild = 1:defence = 500
+					if spellbefshild = 1:defence = 500}
+					gs 'fight','initFight'
+
+					$opp_name[0] = 'Prostitute'
+					$opp_image[0] = 'images/locations/city/shared/streetwalker/working1.jpg'
+					opp_def[0] = 10
+					opp_run[0] = 50
+					opp_wrstlng[0] = 10
+					opp_kick[0] = 0
+					opp_punch[0] = 10
+					opp_jab[0] = 10
+					opp_stren[0] = 50
+					opp_agil[0] = 40
+					opp_vital[0] = 60
+					opp_react[0] = 30
+					opp_health[0] = (opp_vital[0] * 10 + opp_stren[0] * 5)
+					opp_willpwr[0] = 50
+					opp_shoot[0] = 10
 
 					gt 'fight', 'start'
 				end

+ 20 - 2
locations/parkivent.qsrc

@@ -47,7 +47,7 @@ if $ARGS[0] = '1':
 		gs 'boyStat', $npclastgenerated
 		act 'Fight him':
 			*clr & cla
-			!!stats
+			!!stats{
 			strenV = 100
 			speedV = 50
 			agilV = 40
@@ -70,7 +70,25 @@ if $ARGS[0] = '1':
 			RapistFight = 1
 
 			if spellavtoklon = 1:klon = 3
-			if spellbefshild = 1:defence = 500
+			if spellbefshild = 1:defence = 500}
+
+			gs 'fight','initFight'
+
+			$opp_name[0] = 'Rapist'
+			$opp_image[0] = 'images/locations/shared/street/rapist.jpg'
+			opp_def[0] = 50
+			opp_run[0] = 50
+			opp_wrstlng[0] = 10
+			opp_kick[0] = 0
+			opp_punch[0] = 50
+			opp_jab[0] = 50
+			opp_stren[0] = 100
+			opp_agil[0] = 40
+			opp_vital[0] = 50
+			opp_react[0] = 40
+			opp_health[0] = (opp_vital[0] * 10 + opp_stren[0] * 5)
+			opp_willpwr[0] = 100
+			opp_shoot[0] = 100
 
 			gt 'fight', 'start'
 		end

+ 20 - 2
locations/preTG.qsrc

@@ -280,7 +280,7 @@ if $ARGS[0] = 'otelPRE':
 											'<center><img <<$set_imgh>> src="images/characters/city/jugo/jugopre.jpg"></center>'
 											'The man has a large tattoo across the left side of his face. He too has red hair'
 											$boy = 'Gustav'
-											!!stats
+											!!stats{
 											strenV = 600
 											speedV = 60
 											agilV = 60
@@ -300,7 +300,25 @@ if $ARGS[0] = 'otelPRE':
 											BonusDefV = 0
 											!!Programme of Action
 											program = 0
-											jugoFight = 1
+											jugoFight = 1}
+											gs 'fight','initFight'
+
+											$opp_name[0] = 'Gustav'
+											$opp_image[0] = 'images/characters/city/jugo/jugopre.jpg'
+											opp_def[0] = 100
+											opp_run[0] = 75
+											opp_wrstlng[0] = 75
+											opp_kick[0] = 75
+											opp_punch[0] = 85
+											opp_jab[0] = 75
+											opp_stren[0] = 250
+											opp_agil[0] = 60
+											opp_vital[0] = 200
+											opp_react[0] = 50
+											opp_health[0] = (opp_vital * 10 + opp_stren * 5)
+											opp_willpwr[0] = 50
+											opp_shoot[0] = 100
+
 											act 'Fight': gt 'fight', 'start'
 										end
 									end

+ 19 - 2
locations/sexm.qsrc

@@ -826,7 +826,7 @@ if $ARGS[0] = 'gangrape':
 
 	act 'Start a fight':
 		cla
-		!!stats
+		!!stats{
 		strenV = 100
 		speedV = 20
 		agilV = 10
@@ -849,7 +849,24 @@ if $ARGS[0] = 'gangrape':
 		gangrapeFight = 1
 
 		if spellavtoklon = 1:klon = 3
-		if spellbefshild = 1:defence = 500
+		if spellbefshild = 1:defence = 500}
+		gs 'fight','initFight'
+
+		$opp_name[0] = 'Stranger'
+		$opp_image[0] = 'images/locations/shared/street/rapist.jpg'
+		opp_def[0] = 10
+		opp_run[0] = 20
+		opp_wrstlng[0] = 10
+		opp_kick[0] = 0
+		opp_punch[0] = 10
+		opp_jab[0] = 10
+		opp_stren[0] = 100
+		opp_agil[0] = 10
+		opp_vital[0] = 50
+		opp_react[0] = 10
+		opp_health[0] = (opp_vital[0] * 10 + opp_stren[0] * 5)
+		opp_willpwr[0] = 100
+		opp_shoot[0] = 100
 
 		gt 'fight', 'start'
 	end

+ 20 - 2
locations/stallion.qsrc

@@ -37,7 +37,7 @@ if $ARGS[0] = 'fight':
 	act 'Fight':
 		cla
 		$nameV = 'Naked Man'
-		!!stats
+		!!stats{
 		strenV = 100
 		speedV = 300
 		agilV = 300
@@ -59,7 +59,25 @@ if $ARGS[0] = 'fight':
 		program = 0
 		if spellavtoklon = 1:klon = 3
 		if spellbefshild = 1:defence = 500
-		stallionfight = 1
+		stallionfight = 1}
+		gs 'fight','initFight'
+
+		$opp_name[0] = 'Naked Man'
+		$opp_image[0] = 'images/locations/shared/street/rapist.jpg'
+		opp_def[0] = 100
+		opp_run[0] = 100
+		opp_wrstlng[0] = 100
+		opp_kick[0] = 100
+		opp_punch[0] = 100
+		opp_jab[0] = 100
+		opp_stren[0] = 100
+		opp_agil[0] = 300
+		opp_vital[0] = 200
+		opp_react[0] = 100
+		opp_health[0] = (opp_vital * 10 + opp_stren * 5)
+		opp_willpwr[0] = 100
+		opp_shoot[0] = 10
+
 		gt 'fight', 'start'
 	end
 end

+ 80 - 8
locations/street_event.qsrc

@@ -464,7 +464,7 @@ if $ARGS[1] = 'main':
 
 		act 'Fight':
 			cla
-			!!stats
+			!!stats{
 			strenV = 100
 			speedV = 50
 			agilV = 40
@@ -486,7 +486,25 @@ if $ARGS[1] = 'main':
 			program = 0
 			RapistFight = 1
 			if spellavtoklon = 1:klon = 3
-			if spellbefshild = 1:defence = 500
+			if spellbefshild = 1:defence = 500}
+			gs 'fight','initFight'
+
+			$opp_name[0] = 'Rapist'
+			$opp_image[0] = 'images/locations/shared/street/rapist.jpg'
+			opp_def[0] = 50
+			opp_run[0] = 50
+			opp_wrstlng[0] = 10
+			opp_kick[0] = 0
+			opp_punch[0] = 50
+			opp_jab[0] = 50
+			opp_stren[0] = 100
+			opp_agil[0] = 40
+			opp_vital[0] = 50
+			opp_react[0] = 40
+			opp_health[0] = (opp_vital[0] * 10 + opp_stren[0] * 5)
+			opp_willpwr[0] = 100
+			opp_shoot[0] = 100
+
 			gt 'fight', 'start'
 		end
 
@@ -561,7 +579,7 @@ if $ARGS[1] = 'main':
 				cla
 				gs 'npcgeneratec', 0, 'Robber', rand(18,45)
 				gs 'boyStat', $npclastgenerated
-				!!stats
+				!!stats{
 				strenV = 100
 				speedV = 50
 				agilV = 40
@@ -588,7 +606,25 @@ if $ARGS[1] = 'main':
 				end
 
 				if spellavtoklon = 1:klon = 3
-				if spellbefshild = 1:defence = 500
+				if spellbefshild = 1:defence = 500}
+				gs 'fight','initFight'
+
+				$opp_name[0] = 'Robber'
+				$opp_image[0] = 'images/locations/shared/street/mugger.jpg'
+				opp_def[0] = 50
+				opp_run[0] = 50
+				opp_wrstlng[0] = 10
+				opp_kick[0] = 0
+				opp_punch[0] = 50
+				opp_jab[0] = 50
+				opp_stren[0] = 100
+				opp_agil[0] = 40
+				opp_vital[0] = 50
+				opp_react[0] = 40
+				opp_health[0] = (opp_vital[0] * 10 + opp_stren[0] * 5)
+				opp_willpwr[0] = 100
+				opp_shoot[0] = 100
+
 				gt 'fight', 'start'
 			end
 		end
@@ -620,7 +656,7 @@ if $ARGS[1] = 'main':
 			else
 				gs 'npcgeneratec', 0, 'Purse Snatcher', rand(18,45)
 				gs 'boyStat', $npclastgenerated
-				!!stats
+				!!stats{
 				strenV = 100
 				speedV = 50
 				agilV = 40
@@ -642,10 +678,28 @@ if $ARGS[1] = 'main':
 				program = 0
 				ThiefFight = 1
 				if spellavtoklon = 1:klon = 3
-				if spellbefshild = 1:defence = 500
+				if spellbefshild = 1:defence = 500}
 				'<<$streetev_title>>'
 				'<center><img src="images/locations/shared/street/pursechase.jpg"></center>'
 				'You chase after him, screaming at him to stop or anyone to stop him. All that working out is paying off, you are gaining on him. He keeps glancing back as you get closer, he turns and ducks down an alley when you are nearly on top of him. He leaps over an overturned trash can, obviously still hoping to get away from you. You easily leap over it as well and a few steps later you tackle him, sending both of you rolling on the ground. You both get back to your feet at the same time, realising he can''t escape he lunges at you.'
+				gs 'fight','initFight'
+
+				$opp_name[0] = 'Purse Snatcher'
+				$opp_image[0] = 'images/locations/shared/street/pursesnatch.jpg'
+				opp_def[0] = 50
+				opp_run[0] = 50
+				opp_wrstlng[0] = 10
+				opp_kick[0] = 0
+				opp_punch[0] = 50
+				opp_jab[0] = 50
+				opp_stren[0] = 100
+				opp_agil[0] = 40
+				opp_vital[0] = 50
+				opp_react[0] = 40
+				opp_health[0] = (opp_vital[0] * 10 + opp_stren[0] * 5)
+				opp_willpwr[0] = 100
+				opp_shoot[0] = 100
+
 				act 'Fight':gt 'fight', 'start'
 			end
 		end
@@ -1249,7 +1303,7 @@ if $ARGS[1] = 'main':
 							$boydesc = 'The group of girls'
 							'<center><img <<$set_imgh>> src="images/locations/shared/street/girlgang.jpg"></center>'
 							'You give her a small shove, to force her to step back. "Bring it on then, bitch." The words barely leave your mouth before she jumps you, soon all of her friends join in, leaving you to fight them all.'
-							!!stats
+							!!stats{
 							strenV = 100
 							speedV = 50
 							agilV = 60
@@ -1272,7 +1326,25 @@ if $ARGS[1] = 'main':
 							BitchFight = 1
 
 							if spellavtoklon = 1:klon = 3
-							if spellbefshild = 1:defence = 500
+							if spellbefshild = 1:defence = 500}
+							gs 'fight','initFight'
+
+							$opp_name[0] = 'The group of girls'
+							$opp_image[0] = 'images/locations/shared/street/girlgang.jpg'
+							opp_def[0] = 50
+							opp_run[0] = 50
+							opp_wrstlng[0] = 10
+							opp_kick[0] = 0
+							opp_punch[0] = 50
+							opp_jab[0] = 50
+							opp_stren[0] = 100
+							opp_agil[0] = 60
+							opp_vital[0] = 60
+							opp_react[0] = 60
+							opp_health[0] = (opp_vital[0] * 10 + opp_stren[0] * 5)
+							opp_willpwr[0] = 100
+							opp_shoot[0] = 100
+
 							gt 'fight', 'start'
 						end
 					end