Browse Source

[changed] The cost of willpower call using the force type is now scaled with the player characters persuasion.

bgkjdgbizgblzdgbr 5 months ago
parent
commit
a51dd934cc
1 changed files with 38 additions and 34 deletions
  1. 38 34
      locations/willpower.qsrc

+ 38 - 34
locations/willpower.qsrc

@@ -33,7 +33,7 @@
 !!After Sveta has taken the willpower action the cost must be paid with: gs 'willpower', 'pay', 'type'
 !!Example: Sveta has to pay for resisting to do a blowjob: gs 'willpower', 'pay', 'resist'
 
-!!WARNING: When adding new options include gs 'willpower', 'difficulty', '<<$ARGS[2]>>' at the end of the ARGS to apply easy or hard.
+!!WARNING: When adding new options include gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>' at the end of the ARGS to apply easy or hard.
 !!WARNING: If you have two or more actions that need willpower at the same time, you have to recalculate the willpower cost before the costs are payed (see Code Example 2)
 
 !{ Code Example 1 (one action needs willpower)
@@ -168,7 +168,7 @@ if $ARGS[0] = 'voyeur':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'flash':
@@ -193,7 +193,7 @@ if $ARGS[0] = 'flash':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'mast':
@@ -218,7 +218,7 @@ if $ARGS[0] = 'mast':
 			will_cost = (100 + will_calc)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'hj':
@@ -245,7 +245,7 @@ if $ARGS[0] = 'hj':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'bj':
@@ -272,7 +272,7 @@ if $ARGS[0] = 'bj':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'cuni':
@@ -301,7 +301,7 @@ if $ARGS[0] = 'cuni':
 	end	
 	
 	killvar 'cuni_check'
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 	
 if $ARGS[0] = 'sex' or $ARGS[0] = 'vaginal':
@@ -328,7 +328,7 @@ if $ARGS[0] = 'sex' or $ARGS[0] = 'vaginal':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 	
 if $ARGS[0] = 'anal':
@@ -355,7 +355,7 @@ if $ARGS[0] = 'anal':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 	
 if $ARGS[0] = 'gangbang' or $ARGS[0] = 'group':
@@ -382,7 +382,7 @@ if $ARGS[0] = 'gangbang' or $ARGS[0] = 'group':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 	
 if $ARGS[0] = 'prostitution':
@@ -411,7 +411,7 @@ if $ARGS[0] = 'prostitution':
 		end
 		killvar 'prost_will'
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'humiliation':
@@ -434,7 +434,7 @@ if $ARGS[0] = 'humiliation':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'footjob':
@@ -459,7 +459,7 @@ if $ARGS[0] = 'footjob':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'titjob':
@@ -484,7 +484,7 @@ if $ARGS[0] = 'titjob':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'trib':
@@ -509,7 +509,7 @@ if $ARGS[0] = 'trib':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'rimming':
@@ -536,7 +536,7 @@ if $ARGS[0] = 'rimming':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'BDSM':
@@ -565,7 +565,7 @@ if $ARGS[0] = 'BDSM':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 ! For things like facials and other non-internal cum-receiving
@@ -591,7 +591,7 @@ if $ARGS[0] = 'cum_outside':
 			will_cost = (10 + cum_check + will_calc + will_arousal_mod)/10	
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'swallow':
@@ -614,7 +614,7 @@ if $ARGS[0] = 'swallow':
 			will_cost = (10 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'cum_inside':
@@ -639,7 +639,7 @@ if $ARGS[0] = 'cum_inside':
 			will_cost = (10 + creampie_count + will_calc + will_arousal_mod)/10	
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'cum_inside_anal':
@@ -662,7 +662,7 @@ if $ARGS[0] = 'cum_inside_anal':
 			will_cost = (10 + pcs_acp_known + will_calc + will_arousal_mod)/10	
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'kiss':
@@ -687,7 +687,7 @@ if $ARGS[0] = 'kiss':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'foreplay':
@@ -712,7 +712,7 @@ if $ARGS[0] = 'foreplay':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'pee':
@@ -739,7 +739,7 @@ if $ARGS[0] = 'pee':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 !! requires the skill to be named with the _lvl postfix
@@ -759,7 +759,7 @@ if $ARGS[0] = 'skill':
 		else
 			dynamic 'will_cost = (100 - <<$ARGS[1]>> + will_calc)/10'
 		end
-		gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+		gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 	end
 end
 
@@ -779,7 +779,7 @@ if $ARGS[0] = 'rape':
 			will_cost = (100 + rape + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'drink':
@@ -800,7 +800,7 @@ if $ARGS[0] = 'drink':
 			will_cost = (10 + alcohol_exp * 20 + will_calc)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 !!Drug needs already included in the will_calc so just a small base cost here
@@ -818,7 +818,7 @@ if $ARGS[0] = 'drugs':
 			will_cost = (10 + will_calc)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'crime':
@@ -829,7 +829,7 @@ if $ARGS[0] = 'crime':
 	else
 		will_cost = (60 + will_calc)/10
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'exhib':
@@ -842,7 +842,7 @@ if $ARGS[0] = 'exhib':
 	else
 		will_cost = (Exhibitionist_lvl * 25 + pcs_inhib/4 + will_calc)/10
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 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
@@ -851,7 +851,7 @@ if $ARGS[0] = 'sleep':
 	will_cost = 0
 	if pcs_sleep <= 5: will_cost = will_calc/10
 !! Not sure if this one belongs. It doesn''t look like it''s used anywhere.
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 !!Choose this if nothing else fits and for chore which is same thing but without gains for max willpower
@@ -875,7 +875,7 @@ if $ARGS[0] = 'misc' or $ARGS[0] = 'chore':
 			will_cost = (20 + will_calc)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 !!modifiers for drink an drugs
@@ -917,15 +917,18 @@ if $ARGS[0] = 'difficulty':
 !!Multiplier to make willpower cost more. Use if all total costs need adjusting.
 	will_cost = will_cost * 3 / 2
 
-	if $ARGS[1] = 'easy':
+	if $ARGS[2] = 'easy':
 		will_cost = will_cost * 2/3
 		if will_cost < 5: will_cost = 5
-	elseif $ARGS[1] = 'hard':
+	elseif $ARGS[2] = 'hard':
 		will_cost = will_cost * 3/2
 		if will_cost < 7: will_cost = 7
 	else
 		if will_cost < 6: will_cost = 6
 	end
+	if $ARGS[1] = 'force':
+		will_cost = will_cost*(200-pcs_persuas)/100
+	end
 	if cheatWillpower = 1: will_cost = 0
 end
 
@@ -937,6 +940,7 @@ if $ARGS[0] = 'pay':
 			will_counter += 10
 		end
 		if will_enforced < 20: will_enforced += 1
+		gs 'exp_gain', 'persuas', rand(1,2)
 	elseif $ARGS[1] ! 'chore':
 		if willpowermax < 150:
 			will_counter += 1