<commit_before>//CITADEL EDIT
GLOBAL_LIST_EMPTY(objectives)
//END EDIT

/datum/objective
	var/datum/mind/owner				//The primary owner of the objective. !!SOMEWHAT DEPRECATED!! Prefer using 'team' for new code.
	var/datum/team/team					//An alternative to 'owner': a team. Use this when writing new code.
	var/name = "generic objective" 		//Name for admin prompts
	var/explanation_text = "Nothing"	//What that person is supposed to do.
	var/team_explanation_text			//For when there are multiple owners.
	var/datum/mind/target = null		//If they are focused on a particular person.
	var/target_amount = FALSE			//If they are focused on a particular number. Steal objectives have their own counter.
	var/completed = FALSE				//currently only used for custom objectives.
	var/completable = TRUE				//Whether this objective shows greentext when completed
	var/martyr_compatible = FALSE		//If the objective is compatible with martyr objective, i.e. if you can still do it while dead.

/datum/objective/New(var/text)
	GLOB.objectives += src // CITADEL EDIT FOR CRYOPODS
	if(text)
		explanation_text = text

/datum/objective/Destroy(force, ...)
	GLOB.objectives -= src
	if(owner)
		for(var/datum/antagonist/A in owner.antag_datums)
			if(locate(src) in A.objectives)
				A.objectives -= src
	if(team)
		team.objectives -= src
	. = ..()

/datum/objective/proc/get_owners() // Combine owner and team into a single list.
	. = (team && team.members) ? team.members.Copy() : list()
	if(owner)
		. += owner

/datum/objective/proc/admin_edit(mob/admin)
	return

//Shared by few objective types
/datum/objective/proc/admin_simple_target_pick(mob/admin)
	var/list/possible_targets = list("Free objective")
	var/def_value
	for(var/datum/mind/possible_target in SSticker.minds)
		if ((possible_target != src) && ishuman(possible_target.current))
			possible_targets += possible_target.current
<commit_msg>The locate isn't necessary<commit_after>//CITADEL EDIT
GLOBAL_LIST_EMPTY(objectives)
//END EDIT

/datum/objective
	var/datum/mind/owner				//The primary owner of the objective. !!SOMEWHAT DEPRECATED!! Prefer using 'team' for new code.
	var/datum/team/team					//An alternative to 'owner': a team. Use this when writing new code.
	var/name = "generic objective" 		//Name for admin prompts
	var/explanation_text = "Nothing"	//What that person is supposed to do.
	var/team_explanation_text			//For when there are multiple owners.
	var/datum/mind/target = null		//If they are focused on a particular person.
	var/target_amount = FALSE			//If they are focused on a particular number. Steal objectives have their own counter.
	var/completed = FALSE				//currently only used for custom objectives.
	var/completable = TRUE				//Whether this objective shows greentext when completed
	var/martyr_compatible = FALSE		//If the objective is compatible with martyr objective, i.e. if you can still do it while dead.

/datum/objective/New(var/text)
	GLOB.objectives += src // CITADEL EDIT FOR CRYOPODS
	if(text)
		explanation_text = text

/datum/objective/Destroy(force, ...)
	GLOB.objectives -= src
	if(owner)
		for(var/datum/antagonist/A in owner.antag_datums)
			A.objectives -= src
	if(team)
		team.objectives -= src
	. = ..()

/datum/objective/proc/get_owners() // Combine owner and team into a single list.
	. = (team && team.members) ? team.members.Copy() : list()
	if(owner)
		. += owner

/datum/objective/proc/admin_edit(mob/admin)
	return

//Shared by few objective types
/datum/objective/proc/admin_simple_target_pick(mob/admin)
	var/list/possible_targets = list("Free objective")
	var/def_value
	for(var/datum/mind/possible_target in SSticker.minds)
		if ((possible_target != src) && ishuman(possible_target.current))
			possible_targets += possible_target.current

{'fraction_non_alphanumeric': 0.10942087002935681, 'fraction_numerical': 0.0, 'mean_word_length': 3.792838874680307, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5302428', 'n_tokens_mistral': 1304, 'n_tokens_neox': 1223, 'n_words': 360}