Browse Source

Make sure you have enough mana to do magical things.

KeyMasterOfGozer 5 years ago
parent
commit
c7395ff067
3 changed files with 82 additions and 25 deletions
  1. 19 12
      locations/castSpell.qsrc
  2. 50 4
      locations/lab.qsrc
  3. 13 9
      locations/spellList.qsrc

+ 19 - 12
locations/castSpell.qsrc

@@ -54,26 +54,33 @@ if spellKnown[$SpellID] = 1:
 	else
 		manaCost = spellMana[$SpellID]
 	end
-	pcs_mana -= manaCost
-	!pcs_willpwr -= spellWill[$SpellID]
-	arouseVal = manaCost / 50
-	gs 'arousal', 'voyeur', arouseVal
-	minut -= arouseVal
-	killvar 'arouseVal'
-	killvar 'manaCost'
 
-end
+	if pcs_mana >= manaCost:
+		pcs_mana -= manaCost
+		!pcs_willpwr -= spellWill[$SpellID]
+		arouseVal = manaCost / 50
+		gs 'arousal', 'voyeur', arouseVal
+		minut -= arouseVal
+		killvar 'arouseVal'
+		killvar 'manaCost'
 
-minut += spellTime[$SpellID]
+		minut += spellTime[$SpellID]
 
-gs 'stat'
+		gs 'stat'
 
-$SpellExec = "gs 'spell', '<<$SpellID>>', '<<spellSuccess>>'<<$SpellArgs>>"
+		$SpellExec = "gs 'spell', '<<$SpellID>>', '<<spellSuccess>>'<<$SpellArgs>>"
 
-dynamic $SpellExec
+		dynamic $SpellExec
+	else
+		*pl "You realize you don't have enough mana for this spell."
+	end
+end
 
 killvar '$SpellID'
 killvar '$SpellArgs'
 killvar '$SpellExec'
+killvar 'spellSuccess'
+killvar 'arouseVal'
+killvar 'manaCost'
 
 --- castSpell ---------------------------------

+ 50 - 4
locations/lab.qsrc

@@ -187,6 +187,45 @@ if $ARGS[0] = 'Gustav':
 	end
 end
 
+if $ARGS[0] = 'BodyModActuate':
+	! Does the actual modification
+	!	$ARGS[1] = Mana cost
+	!	$ARGS[2] = Time for change
+	!	$ARGS[3] = property to set
+	!	$ARGS[4] = value to set
+	!	$ARGS[5] = Description of new val
+	!	$ARGS[6] = Body part name
+	!	$ARGS[7] = Body part for pain
+	bodyModMana = $ARGS[1]
+	bodyModTime = $ARGS[2]
+	$bodyModStat = $ARGS[3]
+	bodyModVal = $ARGS[4]
+	$bodyModDesc = $ARGS[5]
+	$bodyModType = $ARGS[6]
+	$bodyModPain = $ARGS[7]
+
+	if pcs_mana >= bodyModMana:
+		dynamic "<<$bodyModStat>> = <<bodyModVal>>"
+		pcs_mana -= bodyModMana
+		gs 'arousal', 'voyeur', 30
+		minut+=bodyModTime-30
+		pain[$bodyModPain] = 100
+		gs 'stat'
+		gt 'lab', 'BodyModded', $bodyModType, $bodyModDesc
+	else
+		*pl 'Tatiana says,"You don''t have enough mana to pull this off.  Rest and we can try again later."'
+	end
+
+	killvar 'bodyModMana'
+	killvar 'bodyModTime'
+	killvar '$bodyModStat'
+	killvar 'bodyModVal'
+	killvar '$bodyModDesc'
+	killvar '$bodyModType'
+	killvar '$bodyModPain'
+end
+
+
 if $ARGS[0] = 'ListBuilder':
 	! Builds a list of Attributes to be able to change
 	!  $ARGS[1] = Name of the attribute
@@ -259,7 +298,7 @@ if $ARGS[0] = 'ListBuilder':
 			bodymodValue = dyneval("result = <<$bodyModIndx>>[<<i>>]")
 		end
 		$bodyModDescX = dyneval('$result = <<$bodyModDesc>>[<<i>>]')
-		$ListStr = $ListStr + "<br><a href=""EXEC:<<$bodyModStat>> = <<bodymodValue>> & pcs_mana -= <<bodyModMana>> & gs 'arousal', 'voyeur', 30 & minut+=<<bodyModTime>>-30 & pain['<<$bodyModPain>>'] = 100 & gs 'stat' & gt 'lab', 'BodyModded', '<<$bodyModType>>', '<<$bodyModDescX>>'""><<$bodyModDescX>></a>"
+		$ListStr = $ListStr + "<br><a href=""EXEC:gs 'lab','BodyModActuate','<<bodyModMana>>','<<bodyModTime>>','<<$bodyModStat>>','<<bodymodValue>>','<<$bodyModDescX>>','<<$bodyModType>>','<<$bodyModPain>>'""><<$bodyModDescX>></a>"
 		i += 1
 		jump 'BodyModLoop'
 	end
@@ -267,6 +306,13 @@ if $ARGS[0] = 'ListBuilder':
 	killvar 'i'
 	killvar '$bodyModDescX'
 	killvar 'bodymodValue'
+	killvar '$bodyModType'
+	killvar 'bodyModMana'
+	killvar 'bodyModTime'
+	killvar '$bodyModDesc'
+	killvar '$bodyModIndx'
+	killvar '$bodyModStat'
+	killvar '$bodyModPain'
 	$result = $ListStr
 end
 
@@ -343,9 +389,9 @@ if $ARGS[0] = 'Tatiana':
 		$LipTab =        func('lab', 'ListBuilder', 'Lip Size',   '300', '120','$lipSize',   'i',         'pcs_lip',	'lip')
 		$BreastTab =     func('lab', 'ListBuilder', 'Breast Size','1000','240','$breastSize','breastSize','nbsize',		'breasts')
 
-		$SkinTab = "<a href=""EXEC:pcs_skin = 100 & pcs_mana -= 1000 & gs 'arousal', 'voyeur', 30 & minut+=240-30 & pain['back'] = 100 & pain['chest'] = 100 & gs 'stat' & gt 'lab', 'BodyModded', 'Skin', 'clear'"">Clear Skin</a>"
-		$VirginTab = "<a href=""EXEC:pcs_vag = 0 & pcs_mana -= 1000 & gs 'arousal', 'voyeur', 30 & minut+=120-30 & pain['vaginal'] = 100 & gs 'stat' & gt 'lab', 'BodyModded', 'Virginity', 'renewed'"">Renew Virginity</a>"
-		$SiliconeTab = "<a href=""EXEC:brSurTemp = 0 & stringimplant = 0 & fillimplant = 0 & pcs_mana -= 1000 & gs 'arousal', 'voyeur', 30 & minut+=240-30 & pain['breasts'] = 100 & gs 'stat' & gt 'lab', 'BodyModded', 'Boobs', 'natural again'"">Remove Silicone</a>"
+		$SkinTab = "<a href=""EXEC:gs 'lab','BodyModActuate','1000','240','pcs_skin','100','clear','Skin','chest'"">Clear Skin</a>"
+		$VirginTab = "<a href=""EXEC:gs 'lab','BodyModActuate','1000','120','pcs_vag','0','renewed','Virginity','vaginal'"">Renew Virginity</a>"
+		$SiliconeTab = "<a href=""EXEC:brSurTemp = 0 & stringimplant = 0 &gs 'lab','BodyModActuate','1000','240','fillimplant','0','natural again','Boobs','breasts>'"">Remove Silicone</a>"
 
 		$SpellListStr = "<CENTER>
 	<TABLE CELLPADDING = '5'>

+ 13 - 9
locations/spellList.qsrc

@@ -359,18 +359,22 @@ if $ARGS[0] = 'teacherActions':
 		if pcs_magik >= spellDifficulty and spellKnown[$ThisSpellName] = 0:
 			dynamic "act 'Learn <<$spellName[$ThisSpellName]>> (1:00)':
 				cla
-				pcs_mana -= 1000
-				minut += 60
+				if pcs_mana >= 1000:
+					pcs_mana -= 1000
+					minut += 60
 
-				spellLearn['<<$ThisSpellName>>'] += rand(1, 100/<<spellDifficulty>>)
+					spellLearn['<<$ThisSpellName>>'] += rand(1, 100/<<spellDifficulty>>)
 
-				if spellLearn['<<$ThisSpellName>>'] < 100:
-					'You diligently study the spell for an hour, but could not grasp it.'
+					if spellLearn['<<$ThisSpellName>>'] < 100:
+						'You diligently study the spell for an hour, but could not grasp it.'
+					else
+						spellKnown['<<$ThisSpellName>>'] = 1
+						'Finally you are able to grasp and learn the spell.'
+						*nl
+						'<<$spellName[$ThisSpellName]>>: <<$spellDesc[$ThisSpellName]>>'
+					end
 				else
-					spellKnown['<<$ThisSpellName>>'] = 1
-					'Finally you are able to grasp and learn the spell.'
-					*nl
-					'<<$spellName[$ThisSpellName]>>: <<$spellDesc[$ThisSpellName]>>'
+					*pl ""You don't have enough mana to learn this spell.""
 				end
 				act 'Move away':gt '<<$ExitLocation>>', '<<$ExitLocation2>>'
 			end"