# 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', 'cuni', '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'
!!If no other option fits
!!'misc'
!!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 sveta forces herself to do something you can also use gs 'willpower', 'force', 'self' instead of 'resist'. This option is only available to avoid some confusion if sveta isn''t resisting

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 = (stat['hj'] + will_calc)/10
	else
		will_cost = (100 + 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 = (stat['bj'] + will_calc)/10
	else
		will_cost = (100 + will_calc)/10
	end
end

if $ARGS[0] = 'cuni':
	gs 'willpower', 'calc'
	will_cost = 0
	if missCum >= timeTresh: will_calc += 100
	cuni_check = (stat['cuni'] + stat['cuni_give']) / 2
	if cuni_check <= 90:
		will_cost = (cuni_check + will_calc)/10
	else
		will_cost = (100 + will_calc)/10
	end
	killvar 'cuni_check'
end
	
if $ARGS[0] = 'sex':
	gs 'willpower', 'calc'
	will_cost = 0
	if stat['vaginal'] <= 90:
		will_cost = (stat['vaginal'] + will_calc)/10
	else
		will_cost = (100 + 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 = (stat['anal'] + will_calc)/10
	else
		will_cost = (100 + 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 = (stat['group'] + will_calc)/10
	else
		will_cost = (100 + 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 = (10 + prost_will + will_calc)/10
	else
		will_cost = (100 + will_calc)/10
	end
end

if $ARGS[0] = 'humiliation':
	gs 'willpower', 'calc'
	will_cost = 0
	if missCum >= timeTresh: will_calc += 100
	if stat['humiliation'] <= 90:
		will_cost = (stat['humiliation'] + will_calc)/10
	else
		will_cost = (100 + will_calc)/10
	end
end
	
if $ARGS[0] = 'swallow':
	gs 'willpower', 'calc'
	will_cost = 0
	if trt_cumeater = 1 or cumloc[12] > 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 = (10 + will_calc)/10
	else
		will_cost = (100 + 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
	if $ARGS[1] = 'inhib_lvl':
		will_cost = (pcs_inhib + will_calc)/10
	else
		dynamic 'will_cost = <<$ARGS[1]>> + will_calc)/10'
	end
end
	
if $ARGS[0] = 'rape':
	gs 'willpower', 'calc'
	will_cost = 0
	if missCum >= timeTresh: will_calc += 100
	if rape = 0:
		will_cost = (5 + will_calc)/10
	else
		will_cost = (100 + rape + will_calc)/10
	end
end

if $ARGS[0] = 'drink':
	gs 'willpower', 'calc'
	will_cost = 0
	if alko > 10:
		will_cost = (20 + will_calc + (alcohol_exp * 40))/10
	elseif alko > 6:
		will_cost = (80 + will_calc + (alcohol_exp * 40))/10
	elseif alko > 3:
		will_cost = (60 + will_calc + (alcohol_exp * 40))/10
	else
		will_cost = (10 + will_calc + (alcohol_exp * 10))/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	
	if addictive_trait_lvl = 3:
		will_cost = (100 + will_calc)/10
	elseif addictive_trait_lvl = 2:
		will_cost = (40 + will_calc)/10
	elseif addictive_trait_lvl = 1:
		will_cost = (20 + will_calc)/10
	else
		will_cost = (10 + will_calc)/10
	end
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 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 = (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

!!Choose this if nothing else fits
if $ARGS[0] = 'misc':
	gs 'willpower', 'calc'
	will_cost = 0
	will_cost = (20 + 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
	!!weed
	if jointhigh > 0: 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' or ($ARGS[0] = 'force' and $ARGS[1] = 'self'): pcs_willpwr -= will_cost


if $ARGS[0] = 'force' and $ARGS[1] ! 'self':
	pcs_willpwr -= will_cost
	will_counter += 1
	if will_counter > 10: willpowermax += 1
end

--- willpower ---------------------------------

