anchor.diff:  			for(var/property in property_weights)
   				if(property in rule.property_weights)
   					property_weight += rule.property_weights[property] * property_weights[property]
  -			if(property_weight > 0)
  -				drafted_rules[rule] = rule.get_weight() + property_weight * rule.weight_mult
  +			var/calced_weight = (rule.get_weight() + property_weight) * rule.weight_mult
  +			if(calced_weight > 0)	
  +				drafted_rules[rule] = calced_weight
   	return drafted_rules
   
   
  
positive.code: 				for(var/property in property_weights)
  					if(property in rule.property_weights)
  						property_weight += rule.property_weights[property] * property_weights[property]
  				if(property_weight > 0)
  					var/threat_weight = 1
  					if(!(rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET))
  						var/cost_difference = abs(rule.cost-(mode.threat_level-mode.threat))
  						threat_weight = 1-abs(1-(LOGISTIC_FUNCTION(2,0.05,cost_difference,0)))
  					drafted_rules[rule] = rule.get_weight() * property_weight * rule.weight_mult * threat_weight
  	return drafted_rules
  
  /datum/dynamic_storyteller/proc/event_draft()
  
negative.code: 				for(var/property in property_weights)
  					if(property in rule.property_weights) // just treat it as 0 if it's not in there
  						property_weight += rule.property_weights[property] * property_weights[property]
  				var/threat_weight = 1
  				if(!(rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET)) // makes the traitor rulesets always possible anyway
  					var/cost_difference = abs(rule.cost-(mode.threat_level-mode.threat))
  					/*	Basically, the closer the cost is to the current threat-level-away-from-threat, the more likely it is to
  						pick this particular ruleset.
  						Let's use a toy example: there's 60 threat level and 10 threat spent.
  						We want to pick a ruleset that's close to that, so we run the below equation, on two rulesets.
  						Ruleset 1 has 30 cost, ruleset 2 has 5 cost.
  						When we do the math, ruleset 1's threat_weight is 0.538, and ruleset 2's is 0.238, meaning ruleset 1
  						is 2.26 times as likely to be picked, all other things considered.
  						Of course, we don't want it to GUARANTEE the closest, that's no fun, so it's just a weight.
  					*/
  					threat_weight = abs(1-abs(1-LOGISTIC_FUNCTION(2,0.05,cost_difference,0)))
  				var/calced_weight =  (rule.get_weight() + property_weight) * rule.weight_mult * threat_weight
  				if(calced_weight > 0)
  					drafted_rules[rule] = calced_weight
  	return drafted_rules
  
  /datum/dynamic_storyteller/proc/latejoin_draft(mob/living/carbon/human/newPlayer)
  