Ver código fonte

[added] New willpower system, instructions in the willpower file

KevinSmarts 5 anos atrás
pai
commit
315c8cbef5
5 arquivos alterados com 298 adições e 7 exclusões
  1. 1 0
      glife.qproj
  2. 2 0
      locations/preCUST.qsrc
  3. 18 0
      locations/preSYS.qsrc
  4. 10 7
      locations/stat.qsrc
  5. 267 0
      locations/willpower.qsrc

+ 1 - 0
glife.qproj

@@ -56,6 +56,7 @@
 		<Location name="food"/>
 		<Location name="food_menu"/>
 		<Location name="virginity_call"/>
+		<Location name="willpower"/>
 	</Folder>
 	<Folder name="Body">
 		<Location name="body"/>

+ 2 - 0
locations/preCUST.qsrc

@@ -231,6 +231,7 @@ if $ARGS[0] = 'Done':
 		pcs_energy = 100
 		pcs_hydra = 100
 		pcs_sleep = 100
+		willpowermax = 150
 
 !!		Starting Option Adjustments
 !!		The TG Background options would be aplied here
@@ -297,6 +298,7 @@ if $ARGS[0] = 'Done':
 		pcs_energy = 100
 		pcs_hydra = 100
 		pcs_sleep = 100
+		willpowermax = 100
 
 !!		Starting Option Adjustments
 !!		The TG Background options would be aplied here

+ 18 - 0
locations/preSYS.qsrc

@@ -475,6 +475,7 @@ if $ARGS[0] = 'charselect':
 				pcs_skin = 40
 				genbsize = 17
 				salo = 60
+				willpowermax = 90
 				gt 'preCUST', 'SGStart'
 			end
 		end
@@ -495,6 +496,7 @@ if $ARGS[0] = 'charselect':
 				grupvalue[6] = 30
 				npc_rel['A29'] += 20
 				if player_avatar ! 1: pcs_hairlng = 200
+				willpowermax = 80
 				gt 'preCUST', 'SGStart'
 			end
 		end
@@ -519,6 +521,7 @@ if $ARGS[0] = 'charselect':
 				npc_rel['A129'] += 10
 				komp = 1
 				if player_avatar ! 1: pcs_hairlng = 120
+				willpowermax = 90
 				gt 'preCUST', 'SGStart'
 			end
 		end
@@ -540,6 +543,7 @@ if $ARGS[0] = 'charselect':
 				chessmonth = month
 				npc_rel['A151'] += 20
 				if player_avatar ! 1: pcs_hairlng = 200
+				willpowermax = 90
 				gt 'preCUST', 'SGStart'
 			end
 		end
@@ -568,6 +572,7 @@ if $ARGS[0] = 'charselect':
 				gsAboVolley += 30
 				npc_rel['A13'] += 10
 				npc_rel['A69'] += 10
+				willpowermax = 140
 				gt 'preCUST', 'SGStart'
 			end
 		end
@@ -602,6 +607,7 @@ if $ARGS[0] = 'charselect':
 				gsAboDance += 30
 				npc_rel['A23'] += 20
 				grupvalue[1] = 20
+				willpowermax = 140
 				gt 'preCUST', 'SGStart'
 			end
 		end
@@ -626,6 +632,7 @@ if $ARGS[0] = 'charselect':
 				npc_rel['A8'] += 5
 				npc_rel['A18'] -= 30
 				npc_rel['A131'] += 10
+				willpowermax = 140
 				gt 'preCUST', 'SGStart'
 			end
 		end
@@ -647,6 +654,7 @@ if $ARGS[0] = 'charselect':
 				npc_rel['A131'] += 10
 				npc_rel['A149'] += 10
 				npc_rel['A34'] += 10
+				willpowermax = 140
 				gt 'preCUST', 'SGStart'
 			end
 		end
@@ -679,6 +687,7 @@ if $ARGS[0] = 'charselect':
 				gs 'preSYS', 'socialgroup_setting', 10, 5, 0, 0, 0, 0
 				npc_rel['A140'] += 10
 				salo = 80
+				willpowermax = 110
 				gt 'preCUST', 'SGStart'
 			end
 		end
@@ -719,6 +728,7 @@ if $ARGS[0] = 'charselect':
 				gs 'preSYS', 'socialgroup_setting_boys', 20, 20, 20, 20, 20, 0
 				salo = 60
 				pav_sex = 20
+				willpowermax = 110
 				gt 'preCUST', 'SGStart'
 			end
 		end
@@ -759,6 +769,7 @@ if $ARGS[0] = 'charselect':
 				npc_rel['A33'] -= 10
 				npc_rel['A34'] -= 10
 				grupvalue[4] = 40
+				willpowermax = 130
 				gt 'preCUST', 'SGStart'
 			end
 		end
@@ -794,6 +805,7 @@ if $ARGS[0] = 'charselect':
 				npc_rel['A29'] -= 20
 				npc_rel['A33'] -= 10
 				npc_rel['A34'] -= 10
+				willpowermax = 120
 				gt 'preCUST', 'SGStart'
 			end
 		end
@@ -856,6 +868,7 @@ if $ARGS[0] = 'charselect':
 				kotovLoveQW = 1
 				vitekvisit = 5
 				npc_sex['A9'] += 5
+				willpowermax = 100
 				gt 'preCUST', 'SGStart'
 			end
 		end
@@ -915,6 +928,7 @@ if $ARGS[0] = 'charselect':
 				npc_rel['A28'] -= 10
 				npc_rel['A29'] -= 10
 				npc_rel['A33'] += 10
+				willpowermax = 120
 				gt 'preCUST', 'SGStart'
 			end
 		end
@@ -941,6 +955,7 @@ if $ARGS[0] = 'charselect':
 				pcs_observ = 20
 				pcs_skin = 10
 				npc_rel['A11'] -= 20
+				willpowermax = 80
 				gt 'preCUST', 'SGStart'
 			end
 		end
@@ -964,6 +979,7 @@ if $ARGS[0] = 'charselect':
 					pcs_lashes = 2
 				end
 				salo = 20
+				willpowermax = 70
 				gt 'preCUST', 'SGStart'
 			end
 		end
@@ -995,6 +1011,7 @@ if $ARGS[0] = 'charselect':
 				npc_rel['A28'] += 10
 				npc_rel['A29'] += 10
 				npc_rel['A11'] -= 20
+				willpowermax = 150
 				gt 'preCUST', 'SGStart'
 			end
 		end
@@ -1061,6 +1078,7 @@ if $ARGS[0] = 'charselect':
 				orgasm = 15
 				swallow = 20
 				trt_cumeater = 1
+				willpowermax = 50
 				gt 'preCUST', 'SGStart'
 			end
 		end

+ 10 - 7
locations/stat.qsrc

@@ -192,12 +192,11 @@ elseif pcs_inhib > 100:
 end
 
 healthmax = (pcs_vital * 10 + pcs_stren * 5)
-willpowermax = (pcs_intel * 5 + pcs_sprt * 5)
 stammax = 5 * (2 * pcs_vital + pcs_agil + pcs_stren) / 2
 mannamax = (pcs_intel * pcs_magik) + pcs_magik * 100 + pcs_vital * 10 + rikudo
 speed = (2 * (pcs_stren + pcs_agil) + pcs_vital) / 5
 if healthmax < 1: healthmax = 1
-if willpowermax < 1: willpowermax = 1
+if willpowermax < 50: willpowermax = 50
 if stammax < 1: stammax = 1
 if mannamax < 1: mannamax = 1
 
@@ -424,6 +423,10 @@ if minut >= 60:
 		pcs_sleep -= 4
 	end
 
+	pcs_willpwr += willpowermax/50
+	if pcs_willpwr > willpowermax: pcs_willpwr = willpowermax
+	if pcs_willpwr < 20: will_degrade += 1
+	if will_degrade >= 20: willpowermax -= 1 & will_degrade = 0
 	if pcs_stam > stammax: pcs_stam = stammax
 
 	gs 'femcyc'
@@ -935,15 +938,15 @@ else
 end
 
 if pcs_willpwr >= willpowermax:
-	$pcs_willpwr = '<font color="green">Your mind is clear.</font>'
+	$pcs_willpwr = '<font color="green">You feel in charge of your actions.</font>'
 elseif pcs_willpwr >= willpowermax * 75 / 100:
-	$pcs_willpwr = '<font color=#0064FF>You are mostly clear of mind.</font>'
+	$pcs_willpwr = '<font color=#0064FF>You are mostly in control.</font>'
 elseif pcs_willpwr >= willpowermax * 50 / 100:
-	$pcs_willpwr = '<font color="brown">You are depressed.</font>'
+	$pcs_willpwr = '<font color="brown">You might have to make some concessions.</font>'
 elseif pcs_willpwr >= willpowermax * 25 / 100:
-	$pcs_willpwr = '<font color="red">You have depression.</font>'
+	$pcs_willpwr = '<font color="red">You will have to toe the line.</font>'
 else
-	$pcs_willpwr = '<font color="red">You are on the verge of madness.</font>'
+	$pcs_willpwr = '<font color="red">You are completely at our people''s mercy.</font>'
 end
 
 !!stop auto birth control pill taking if the player believes they are pregnant or are pregnant

+ 267 - 0
locations/willpower.qsrc

@@ -0,0 +1,267 @@
+# willpower
+
+!!To use call with gs 'willpower', '<type>'
+!!type is the nature of the demand and can be any of the following:
+!!
+!!Sex acts, this is for the cost to refuse advances or force another to partake
+!!'hj', 'bj', 'sex', 'anal', 'gangbang', 'prostitution', 'swallow', 'cum_inside'
+!!Bridging a gap in skill, for succeeding when not quite meeting the required skill/attribute, must include skill with _lvl postfix in $ARGS[1]
+!!'skill'
+!!Standing up to unwanted sex
+!!'rape'
+!!Refusing peer pressure
+!!'drink', 'drugs', 'crime', 'exhib'
+!!Forcing Sveta to stay awake
+!!'sleep'
+!!The value returned as will_cost can be used to inform the player of cost and limit actions
+!!To apply the cost just call gs 'willpower', 'resist' or gs 'willpower', 'force'
+!!Force is for Sveta forcing someone else and will slowly increase the will stat, otherwise its the same as resist
+
+if $ARGS[0] = 'calc':
+	gs 'willpower', 'dnd'
+	will_calc = will_dnd
+!!fatigue
+	if pcs_sleep < 5:
+		will_calc += 50
+	elseif pcs_sleep < 10:
+		will_calc += 25
+	elseif pcs_sleep < 20:
+		will_calc += 10
+	elseif pcs_sleep < 30:
+		will_calc += 5
+	end
+!!hunger
+	if pcs_energy < 5:
+		will_calc += 50
+	elseif pcs_energy < 10:
+		will_calc += 25
+	elseif pcs_energy < 20:
+		will_calc += 10
+	elseif pcs_energy < 30:
+		will_calc += 5
+	end
+!!thirst
+	if pcs_hydra < 5:
+		will_calc += 50
+	elseif pcs_hydra < 10:
+		will_calc += 25
+	elseif pcs_hydra < 20:
+		will_calc += 10
+	elseif pcs_hydra < 30:
+		will_calc += 5
+	end
+!!Very horny
+	if pcs_horny >= 90: will_calc += 10
+!!Bad syphilis, you is mental
+	if Sifilis >= 50: will_calc += 100
+!!feeling sick
+	if sick > 72:
+		will_calc += 35
+	elseif sick > 48:
+		will_calc += 20
+	elseif sick > 24:
+		will_calc += 10
+	elseif sick > 1:
+		will_calc += 5
+	end
+
+end
+
+if $ARGS[0] = 'hj':
+	gs 'willpower', 'calc'
+	will_cost = 0
+	if stat['hj'] <= 90:
+		will_cost = ((100 - stat['hj']) + will_calc)/10
+	else
+		will_cost = (10 + will_calc)/10
+	end
+end
+
+if $ARGS[0] = 'bj':
+	gs 'willpower', 'calc'
+	will_cost = 0
+	if missCum >= timeTresh: will_calc += 100
+	if stat['bj'] <= 90:
+		will_cost = ((100 - stat['bj']) + will_calc)/10
+	else
+		will_cost = (10 + will_calc)/10
+	end
+end
+	
+if $ARGS[0] = 'sex':
+	gs 'willpower', 'calc'
+	will_cost = 0
+	if stat['vaginal'] <= 90:
+		will_cost = ((100 - stat['vaginal']) + will_calc)/10
+	else
+		will_cost = (10 + will_calc)/10
+	end
+end
+	
+if $ARGS[0] = 'anal':
+	gs 'willpower', 'calc'
+	will_cost = 0
+	if missCum >= timeTresh: will_calc += 100
+	if stat['anal'] <= 90:
+		will_cost = ((100 - stat['anal']) + will_calc)/10
+	else
+		will_cost = (10 + will_calc)/10
+	end
+end
+	
+if $ARGS[0] = 'gangbang':
+	gs 'willpower', 'calc'
+	will_cost = 0
+	if missCum >= timeTresh: will_calc += 100
+	if stat['group'] <= 90:
+		will_cost = ((100 - stat['group']) + will_calc)/10
+	else
+		will_cost = (10 + will_calc)/10
+	end
+end
+	
+if $ARGS[0] = 'prostitution':
+	gs 'willpower', 'calc'
+	will_cost = 0
+	if missCum >= timeTresh: will_calc += 100
+	prost_will = pav_prostitute + city_prostitute + oldtown_prostitute + village_prostitute
+	if prost_will <= 90:
+		will_cost = ((100 - prost_will) + will_calc)/10
+	else
+		will_cost = (10 + will_calc)/10
+	end
+end
+	
+if $ARGS[0] = 'swallow':
+	gs 'willpower', 'calc'
+	will_cost = 0
+	if trt_cumeater = 0:
+		will_cost = (100 + will_calc)/10
+	else
+		will_cost = (10 + will_calc)/10
+	end
+end
+
+!! no stat for this currently so just a baseline figure and reduction if cum already inside
+if $ARGS[0] = 'cum_inside':
+	gs 'willpower', 'calc'
+	will_cost = 0
+	if missCum >= timeTresh: will_calc += 100
+	if cumloc[0] <= 0:
+		will_cost = (100 + will_calc)/10
+	else
+		will_cost = (10 + will_calc)/10
+	end
+end
+
+!! requires the skill to be named with the _lvl postfix
+if $ARGS[0] = 'skill':
+	gs 'willpower', 'calc'
+	will_cost = 0
+	dynamic 'will_cost = <<$ARGS[1]>> + will_calc)/10'
+end
+	
+if $ARGS[0] = 'rape':
+	gs 'willpower', 'calc'
+	will_cost = 0
+	if missCum >= timeTresh: will_calc += 100
+	if stat['bj'] <= 90:
+		will_cost = ((100 - stat['bj']) + will_calc)/10
+	else
+		will_cost = (10 + will_calc)/10
+	end
+end
+
+if $ARGS[0] = 'drink':
+	gs 'willpower', 'calc'
+	will_cost = 0
+	if alko > 10:
+		will_cost = (60 + will_calc)/10
+	elseif alko > 6:
+		will_cost = (100 + will_calc)/10
+	elseif alko > 3:
+		will_cost = (80 + will_calc)/10
+	end
+end
+
+!!Drug needs already included in the will_calc so just a small base cost here
+if $ARGS[0] = 'drugs':
+	gs 'willpower', 'calc'
+	will_cost = 0
+	will_cost = (20 + will_calc)/10
+end
+
+!!There is no related stat so just a base cost of 6
+if $ARGS[0] = 'crime':
+	gs 'willpower', 'calc'
+	will_cost = 0
+	will_cost = (60 + will_calc)/10
+end
+
+if $ARGS[0] = 'exhib':
+	gs 'willpower', 'calc'
+	will_cost = 0
+	if stat['bj'] <= 90:
+	if Exhibitionist_lvl = 3:
+		will_cost = (0 + will_calc)/10
+	elseif Exhibitionist_lvl = 2:
+		will_cost = (1 + will_calc)/10
+	elseif Exhibitionist_lvl = 1:
+		will_cost = (2 + will_calc)/10
+	elseif pcs_inhib > 70:
+		will_cost = (3 + will_calc)/10
+	else
+		will_cost = (100 - pcs_inhib + will_calc)/10
+	end
+end
+
+!!this is to force you to stay wake so will cost nothing if you have more than 5 sleep, it has no base cost as there will always be a sleep cost in calc
+if $ARGS[0] = 'sleep':
+	gs 'willpower', 'calc'
+	will_cost = 0
+	if pcs_sleep <= 5: will_cost = will_calc/10
+end
+
+!!modifiers for drink an drugs
+if $ARGS[0] = 'dnd':
+	will_dnd = 0
+	if alko > 10:
+		will_dnd += 80
+	elseif alko > 6:
+		will_dnd += 40
+	elseif alko > 3:
+		will_dnd += 20
+	end
+
+	!!cigarettes
+	if smokerNeed > 10: will_dnd += 10
+	!!amphetamines
+	if amphWithdrawl > 2:
+		will_dnd += 40
+	elseif amphHigh > 0:
+		will_dnd += 60
+	end
+	!!heroine
+	if SLomka > 0:
+		will_dnd += 80
+	elseif StrongNarkota > 0:
+		will_dnd += 50
+	end
+	!!cocaine
+	if narkoman = 1:
+		will_dnd += 40
+	elseif nark < 0:
+		will_dnd -= 20
+	end
+end
+
+if $ARGS[0] = 'resist': pcs_willpwr -= will_cost
+
+if $ARGS[0] = 'force':
+	pcs_willpwr -= will_cost
+	will_counter += 1
+	if will_counter > 10: pcs_will += 1
+end
+
+--- willpower ---------------------------------
+