# exp_gain
!2022/08/07

! gosub that exp gain is run through to be able to modify exp gain by conditions of the player character

! use: gs 'exp_gain', 'skill', exp
! example: gs 'exp_gain', 'photoskl', rand(1,2)
! example: gs 'exp_gain', $ARGS[2], rand(3,5)

if ARGS[1] > 0:
!!	Prevents EXP gain for stren_plus if its 50 or higher and Sveta ISNT using steroids
	if $ARGS[0] = 'stren_plus' and stren_plus_lvl >= 50 and steroid_dose = 0:
		exit
	end

!!	Traits:
!!	- New Again
	if pcs_traits['new_again'] > 0: ARGS[1] *= 2

!!	Stats:
!!	- Exhaustion (lack of sleep and stamina)
	if pcs_stam <= 0:
		if pcs_condition['lack_of_sleep'] >= 20:
			ARGS[1] /= 8
		elseif pcs_condition['lack_of_sleep'] >= 10:
			ARGS[1] /= 4
		elseif pcs_condition['lack_of_sleep'] >= 5:
			ARGS[1] = ARGS[1] * 3 / 8
		elseif pcs_condition['lack_of_sleep'] >= 2:
			ARGS[1] = ARGS[1] * 9 / 20
		else
			ARGS[1] /= 2
		end
	elseif pcs_stam < stammax / 5:
		if pcs_condition['lack_of_sleep'] >= 20:
			ARGS[1] = ARGS[1] * 3 / 16
		elseif pcs_condition['lack_of_sleep'] >= 10:
			ARGS[1] = ARGS[1] * 3 / 8
		elseif pcs_condition['lack_of_sleep'] >= 5:
			ARGS[1] = ARGS[1] * 9 / 16
		elseif pcs_condition['lack_of_sleep'] >= 2 and ARGS[1] > 1:
			ARGS[1] = ARGS[1] * 27 / 40
		elseif ARGS[1] > 1:
			ARGS[1] = ARGS[1] * 3 / 4
		end
	else
		if pcs_condition['lack_of_sleep'] >= 20:
			ARGS[1] /= 4
		elseif pcs_condition['lack_of_sleep'] >= 10:
			ARGS[1] /= 2
		elseif pcs_condition['lack_of_sleep'] >= 5:
			ARGS[1] = ARGS[1] * 3 / 4
		elseif pcs_condition['lack_of_sleep'] >= 2 and ARGS[1] > 1:
			ARGS[1] = ARGS[1] * 9 / 10
		end
	end

!!	EXP Assignment
	dynamic "<<$ARGS[0]>>_exp += <<ARGS[1]>>"
end

--- exp_gain ---------------------------------

