CharacterTweakData = CharacterTweakData or class()

function CharacterTweakData:_init_security(presets)
	self.security = deep_clone(presets.base)
	self.security.tags = {
		"law"
	}
	self.security.experience = {}
	self.security.weapon = presets.weapon.good
	self.security.detection = presets.detection.guard
	self.security.HEALTH_INIT = 4
	self.security.headshot_dmg_mul = 2
	self.security.headshot_dmg_mul = 2
	self.security.move_speed = presets.move_speed.very_fast
	self.security.crouch_move = nil
	self.security.surrender_break_time = {
		20,
		30
	}
	self.security.suppression = presets.suppression.easy
	self.security.surrender = presets.surrender.always
	self.security.ecm_vulnerability = 1
	self.security.ecm_hurts = {
		ears = {
			max_duration = 10,
			min_duration = 8
		}
	}
	self.security.weapon_voice = "3"
	self.security.experience.cable_tie = "tie_swat"
	self.security.speech_prefix_p1 = "l"
	self.security.speech_prefix_p2 = "n"
	self.security.speech_prefix_count = 4
	self.security.access = "security"
	self.security.rescue_hostages = false
	self.security.use_radio = nil
	self.security.silent_priority_shout = "f37"
	self.security.dodge = presets.dodge.poor
	self.security.deathguard = false
	self.security.chatter = presets.enemy_chatter.cop
	self.security.has_alarm_pager = true
	self.security.melee_weapon = "baton"
	self.security.steal_loot = nil

	table.insert(self._enemy_list, "security")

	self.security_undominatable = deep_clone(self.security)
	self.security_undominatable.suppression = nil
	self.security_undominatable.surrender = nil

	table.insert(self._enemy_list, "security_undominatable")

	self.mute_security_undominatable = deep_clone(self.security)
	self.mute_security_undominatable.suppression = nil
	self.mute_security_undominatable.surrender = nil
	self.mute_security_undominatable.has_alarm_pager = false
	self.mute_security_undominatable.chatter = presets.enemy_chatter.no_chatter
	self.mute_security_undominatable.weapon_voice = "3"
	self.mute_security_undominatable.speech_prefix_p1 = "bb"
	self.mute_security_undominatable.speech_prefix_p2 = "n"
	self.mute_security_undominatable.speech_prefix_count = 1

	table.insert(self._enemy_list, "mute_security_undominatable")

	self.security_mex = deep_clone(self.security)
	self.security_mex.speech_prefix_p1 = "m"
	self.security_mex.radio_prefix = "mex_"

	table.insert(self._enemy_list, "security_mex")

	self.security_mex_no_pager = deep_clone(self.security)
	self.security_mex_no_pager.speech_prefix_p1 = "m"
	self.security_mex_no_pager.radio_prefix = "mex_"
	self.security_mex_no_pager.has_alarm_pager = false

	table.insert(self._enemy_list, "security_mex_no_pager")
end

function CharacterTweakData:_init_gensec(presets)
	self.gensec = deep_clone(presets.base)
	self.gensec.tags = {
		"law"
	}
	self.gensec.experience = {}
	self.gensec.weapon = presets.weapon.good
	self.gensec.detection = presets.detection.guard
	self.gensec.HEALTH_INIT = 4
	self.gensec.headshot_dmg_mul = 2
	self.gensec.move_speed = presets.move_speed.very_fast
	self.gensec.crouch_move = nil
	self.gensec.surrender_break_time = {
		20,
		30
	}
	self.gensec.suppression = presets.suppression.hard
	self.gensec.surrender = presets.surrender.always
	self.gensec.ecm_vulnerability = 1
	self.gensec.ecm_hurts = {
		ears = {
			max_duration = 10,
			min_duration = 8
		}
	}
	self.gensec.weapon_voice = "3"
	self.gensec.experience.cable_tie = "tie_swat"
	self.gensec.speech_prefix_p1 = "l"
	self.gensec.speech_prefix_p2 = "n"
	self.gensec.speech_prefix_count = 4
	self.gensec.access = "security"
	self.gensec.rescue_hostages = false
	self.gensec.use_radio = nil
	self.gensec.silent_priority_shout = "f37"
	self.gensec.dodge = presets.dodge.athletic
	self.gensec.deathguard = false
	self.gensec.chatter = presets.enemy_chatter.cop
	self.gensec.has_alarm_pager = true
	self.gensec.melee_weapon = "baton"
	self.gensec.steal_loot = nil

	table.insert(self._enemy_list, "gensec")
end

function CharacterTweakData:_init_cop(presets)
	self.cop = deep_clone(presets.base)
	self.cop.tags = {
		"law"
	}
	self.cop.experience = {}
	self.cop.weapon = presets.weapon.good
	self.cop.detection = presets.detection.normal
	self.cop.HEALTH_INIT = 4
	self.cop.headshot_dmg_mul = 2
	self.cop.move_speed = presets.move_speed.very_fast
	self.cop.surrender_break_time = {
		10,
		15
	}
	self.cop.suppression = presets.suppression.easy
	self.cop.surrender = presets.surrender.always
	self.cop.ecm_vulnerability = 1
	self.cop.ecm_hurts = {
		ears = {
			max_duration = 10,
			min_duration = 8
		}
	}
	self.cop.weapon_voice = "1"
	self.cop.experience.cable_tie = "tie_swat"
	self.cop.speech_prefix_p1 = self._prefix_data_p1.swat()
	self.cop.speech_prefix_p2 = "n"
	self.cop.speech_prefix_count = 4
	self.cop.access = "cop"
	self.cop.silent_priority_shout = "f37"
	self.cop.dodge = presets.dodge.average
	self.cop.deathguard = true
	self.cop.chatter = presets.enemy_chatter.cop
	self.cop.melee_weapon = "baton"
	self.cop.steal_loot = true

	table.insert(self._enemy_list, "cop")

	self.cop_scared = deep_clone(self.cop)
	self.cop_scared.surrender = presets.surrender.always
	self.cop_scared.surrender_break_time = nil

	table.insert(self._enemy_list, "cop_scared")

	self.cop_female = deep_clone(self.cop)
	self.cop_female.speech_prefix_p1 = "fl"
	self.cop_female.speech_prefix_p2 = "n"
	self.cop_female.speech_prefix_count = 1

	table.insert(self._enemy_list, "cop_female")
end

function CharacterTweakData:_init_fbi(presets)
	self.fbi = deep_clone(presets.base)
	self.fbi.tags = {
		"law"
	}
	self.fbi.experience = {}
	self.fbi.weapon = presets.weapon.good
	self.fbi.detection = presets.detection.normal
	self.fbi.HEALTH_INIT = 8
	self.fbi.headshot_dmg_mul = 2
	self.fbi.move_speed = presets.move_speed.very_fast
	self.fbi.surrender_break_time = {
		7,
		12
	}
	self.fbi.suppression = presets.suppression.hard_def
	self.fbi.surrender = presets.surrender.always
	self.fbi.ecm_vulnerability = 1
	self.fbi.ecm_hurts = {
		ears = {
			max_duration = 10,
			min_duration = 8
		}
	}
	self.fbi.weapon_voice = "2"
	self.fbi.experience.cable_tie = "tie_swat"
	self.fbi.speech_prefix_p1 = "l"
	self.fbi.speech_prefix_p2 = "n"
	self.fbi.speech_prefix_count = 4
	self.fbi.silent_priority_shout = "f37"
	self.fbi.access = "fbi"
	self.fbi.dodge = presets.dodge.athletic
	self.fbi.deathguard = true
	self.fbi.no_arrest = true
	self.fbi.chatter = presets.enemy_chatter.cop
	self.fbi.steal_loot = true

	table.insert(self._enemy_list, "fbi")
end

function CharacterTweakData:_init_medic(presets)
	self.medic = deep_clone(presets.base)
	self.medic.tags = {
		"law",
		"medic",
		"special"
	}
	self.medic.experience = {}
	self.medic.weapon = presets.weapon.good
	self.medic.detection = presets.detection.normal
	self.medic.HEALTH_INIT = 30
	self.medic.headshot_dmg_mul = 2
	self.medic.damage.hurt_severity = presets.hurt_severities.no_hurts
	self.medic.suppression = presets.suppression.no_supress
	self.medic.surrender = presets.surrender.always
	self.medic.move_speed = presets.move_speed.very_fast
	self.medic.surrender_break_time = {
		7,
		12
	}
	self.medic.ecm_vulnerability = 1
	self.medic.ecm_hurts = {
		ears = {
			max_duration = 10,
			min_duration = 8
		}
	}
	self.medic.weapon_voice = "2"
	self.medic.experience.cable_tie = "tie_swat"
	self.medic.speech_prefix_p1 = self._prefix_data_p1.medic()
	self.medic.speech_prefix_count = nil
	self.medic.spawn_sound_event = self._prefix_data_p1.medic() .. "_entrance"
	self.medic.silent_priority_shout = "f37"
	self.medic.access = "swat"
	self.medic.dodge = presets.dodge.athletic
	self.medic.deathguard = true
	self.medic.no_arrest = true
	self.medic.chatter = {
		contact = true,
		aggressive = true
	}
	self.medic.steal_loot = false
	self.medic.priority_shout = "f47"
	self.medic.priority_shout_max_dis = 700

	table.insert(self._enemy_list, "medic")
end

function CharacterTweakData:_init_swat(presets)
	self.swat = deep_clone(presets.base)
	self.swat.tags = {
		"law"
	}
	self.swat.experience = {}
	self.swat.weapon = presets.weapon.good
	self.swat.detection = presets.detection.normal
	self.swat.HEALTH_INIT = 8
	self.swat.headshot_dmg_mul = 2
	self.swat.move_speed = presets.move_speed.very_fast
	self.swat.surrender_break_time = {
		6,
		10
	}
	self.swat.suppression = presets.suppression.hard_agg
	self.swat.surrender = presets.surrender.always
	self.swat.ecm_vulnerability = 1
	self.swat.ecm_hurts = {
		ears = {
			max_duration = 10,
			min_duration = 8
		}
	}
	self.swat.weapon_voice = "2"
	self.swat.experience.cable_tie = "tie_swat"
	self.swat.speech_prefix_p1 = self._prefix_data_p1.swat()
	self.swat.speech_prefix_p2 = self._speech_prefix_p2
	self.swat.speech_prefix_count = 4
	self.swat.access = "swat"
	self.swat.dodge = presets.dodge.athletic
	self.swat.no_arrest = true
	self.swat.chatter = presets.enemy_chatter.swat
	self.swat.melee_weapon = "knife_1"
	self.swat.melee_weapon_dmg_multiplier = 1
	self.swat.steal_loot = true

	table.insert(self._enemy_list, "swat")
end

function CharacterTweakData:_init_heavy_swat(presets)
	self.heavy_swat = deep_clone(presets.base)
	self.heavy_swat.tags = {
		"law"
	}
	self.heavy_swat.experience = {}
	self.heavy_swat.weapon = presets.weapon.good
	self.heavy_swat.detection = presets.detection.normal
	self.heavy_swat.HEALTH_INIT = 16
	self.heavy_swat.headshot_dmg_mul = 2
	self.heavy_swat.damage.explosion_damage_mul = 1
	self.heavy_swat.move_speed = presets.move_speed.very_fast
	self.heavy_swat.surrender_break_time = {
		6,
		8
	}
	self.heavy_swat.suppression = presets.suppression.hard_agg
	self.heavy_swat.surrender = presets.surrender.always
	self.heavy_swat.ecm_vulnerability = 1
	self.heavy_swat.ecm_hurts = {
		ears = {
			max_duration = 10,
			min_duration = 8
		}
	}
	self.heavy_swat.weapon_voice = "2"
	self.heavy_swat.experience.cable_tie = "tie_swat"
	self.heavy_swat.speech_prefix_p1 = self._prefix_data_p1.heavy_swat()
	self.heavy_swat.speech_prefix_p2 = self._speech_prefix_p2
	self.heavy_swat.speech_prefix_count = 4
	self.heavy_swat.access = "swat"
	self.heavy_swat.dodge = presets.dodge.heavy
	self.heavy_swat.no_arrest = true
	self.heavy_swat.chatter = presets.enemy_chatter.swat
	self.heavy_swat.steal_loot = true
	self.heavy_swat_sniper = deep_clone(self.heavy_swat)
	self.heavy_swat_sniper.weapon = presets.weapon.good
	self.heavy_swat_sniper.misses_first_player_shot = true
	self.heavy_swat_sniper.shooting_death = false
	self.heavy_swat_sniper.speech_prefix_p2 = "d"

	table.insert(self._enemy_list, "heavy_swat")
	table.insert(self._enemy_list, "heavy_swat_sniper")
end

function CharacterTweakData:_init_fbi_swat(presets)
	self.fbi_swat = deep_clone(presets.base)
	self.fbi_swat.tags = {
		"law"
	}
	self.fbi_swat.experience = {}
	self.fbi_swat.weapon = presets.weapon.good
	self.fbi_swat.detection = presets.detection.normal
	self.fbi_swat.HEALTH_INIT = 8
	self.fbi_swat.headshot_dmg_mul = self.fbi_swat.HEALTH_INIT / 4
	self.fbi_swat.move_speed = presets.move_speed.very_fast
	self.fbi_swat.surrender_break_time = {
		6,
		10
	}
	self.fbi_swat.suppression = presets.suppression.hard_def
	self.fbi_swat.surrender = presets.surrender.always
	self.fbi_swat.ecm_vulnerability = 1
	self.fbi_swat.ecm_hurts = {
		ears = {
			max_duration = 10,
			min_duration = 8
		}
	}
	self.fbi_swat.weapon_voice = "2"
	self.fbi_swat.experience.cable_tie = "tie_swat"
	self.fbi_swat.speech_prefix_p1 = self._prefix_data_p1.heavy_swat()
	self.fbi_swat.speech_prefix_p2 = self._speech_prefix_p2
	self.fbi_swat.speech_prefix_count = 4
	self.fbi_swat.access = "swat"
	self.fbi_swat.dodge = presets.dodge.athletic
	self.fbi_swat.no_arrest = true
	self.fbi_swat.chatter = presets.enemy_chatter.swat
	self.fbi_swat.melee_weapon = "knife_1"
	self.fbi_swat.steal_loot = true

	table.insert(self._enemy_list, "fbi_swat")
end

function CharacterTweakData:_init_fbi_heavy_swat(presets)
	self.fbi_heavy_swat = deep_clone(presets.base)
	self.fbi_heavy_swat.tags = {
		"law"
	}
	self.fbi_heavy_swat.experience = {}
	self.fbi_heavy_swat.weapon = presets.weapon.good
	self.fbi_heavy_swat.detection = presets.detection.normal
	self.fbi_heavy_swat.HEALTH_INIT = 16
	self.fbi_heavy_swat.headshot_dmg_mul = 2
	self.fbi_heavy_swat.damage.explosion_damage_mul = 0.9
	self.fbi_heavy_swat.move_speed = presets.move_speed.very_fast
	self.fbi_heavy_swat.surrender_break_time = {
		6,
		8
	}
	self.fbi_heavy_swat.suppression = presets.suppression.hard_agg
	self.fbi_heavy_swat.surrender = presets.surrender.always
	self.fbi_heavy_swat.ecm_vulnerability = 1
	self.fbi_heavy_swat.ecm_hurts = {
		ears = {
			max_duration = 10,
			min_duration = 8
		}
	}
	self.fbi_heavy_swat.weapon_voice = "2"
	self.fbi_heavy_swat.experience.cable_tie = "tie_swat"
	self.fbi_heavy_swat.speech_prefix_p1 = self._prefix_data_p1.heavy_swat()
	self.fbi_heavy_swat.speech_prefix_p2 = self._speech_prefix_p2
	self.fbi_heavy_swat.speech_prefix_count = 4
	self.fbi_heavy_swat.access = "swat"
	self.fbi_heavy_swat.dodge = presets.dodge.heavy
	self.fbi_heavy_swat.no_arrest = true
	self.fbi_heavy_swat.chatter = presets.enemy_chatter.swat
	self.fbi_heavy_swat.steal_loot = true

	table.insert(self._enemy_list, "fbi_heavy_swat")
end

function CharacterTweakData:_init_city_swat(presets)
	self.city_swat = deep_clone(presets.base)
	self.city_swat.tags = {
		"law"
	}
	self.city_swat.experience = {}
	self.city_swat.weapon = presets.weapon.good
	self.city_swat.detection = presets.detection.normal
	self.city_swat.HEALTH_INIT = 8
	self.city_swat.headshot_dmg_mul = 2
	self.city_swat.move_speed = presets.move_speed.very_fast
	self.city_swat.surrender_break_time = {
		6,
		10
	}
	self.city_swat.suppression = presets.suppression.hard_def
	self.city_swat.surrender = presets.surrender.always
	self.city_swat.ecm_vulnerability = 1
	self.city_swat.ecm_hurts = {
		ears = {
			max_duration = 10,
			min_duration = 8
		}
	}
	self.city_swat.weapon_voice = "2"
	self.city_swat.experience.cable_tie = "tie_swat"
	self.city_swat.silent_priority_shout = "f37"
	self.city_swat.speech_prefix_p1 = self._prefix_data_p1.heavy_swat()
	self.city_swat.speech_prefix_p2 = self._speech_prefix_p2
	self.city_swat.speech_prefix_count = 4
	self.city_swat.access = "swat"
	self.city_swat.dodge = presets.dodge.athletic
	self.city_swat.chatter = presets.enemy_chatter.swat
	self.city_swat.melee_weapon = "knife_1"
	self.city_swat.steal_loot = true
	self.city_swat.has_alarm_pager = true

	table.insert(self._enemy_list, "city_swat")
end

function CharacterTweakData:_init_sniper(presets)
	self.sniper = deep_clone(presets.base)
	self.sniper.tags = {
		"law",
		"sniper",
		"special"
	}
	self.sniper.experience = {}
	self.sniper.weapon = presets.weapon.sniper
	self.sniper.detection = presets.detection.sniper
	self.sniper.HEALTH_INIT = 4
	self.sniper.headshot_dmg_mul = 2
	self.sniper.move_speed = presets.move_speed.very_fast
	self.sniper.shooting_death = true
	self.sniper.no_move_and_shoot = false
	self.sniper.move_and_shoot_cooldown = 0
	self.sniper.suppression = presets.suppression.easy
	self.sniper.ecm_vulnerability = 1
	self.sniper.ecm_hurts = {
		ears = {
			max_duration = 10,
			min_duration = 8
		}
	}
	self.sniper.weapon_voice = "1"
	self.sniper.experience.cable_tie = "tie_swat"
	self.sniper.speech_prefix_p1 = "l"
	self.sniper.speech_prefix_p2 = "n"
	self.sniper.speech_prefix_count = 4
	self.sniper.priority_shout = "f34"
	self.sniper.access = "sniper"
	self.sniper.no_retreat = true
	self.sniper.no_arrest = true
	self.sniper.chatter = presets.enemy_chatter.no_chatter
	self.sniper.steal_loot = nil
	self.sniper.rescue_hostages = false

	table.insert(self._enemy_list, "sniper")
end

function CharacterTweakData:_init_marshal_marksman(presets)
	self.marshal_marksman = deep_clone(presets.base)
	self.marshal_marksman.tags = {
		"law"
	}
	self.marshal_marksman.experience = {
		cable_tie = "tie_swat"
	}
	self.marshal_marksman.detection = presets.detection.normal
	self.marshal_marksman.weapon = deep_clone(presets.weapon.expert)
	self.marshal_marksman.weapon.is_rifle = {
		melee_speed = 1,
		miss_dis = 40,
		RELOAD_SPEED = 0.5,
		spread = 5,
		melee_dmg = 1,
		focus_dis = 100,
		focus_delay = 0.0,
		aim_delay = {
			0.0,
			0.0
		},
		melee_retry_delay = {
			1,
			2
		},
		range = {
			optimal = 2500,
			far = 7000,
			close = 500
		},
		FALLOFF = {
			{
				dmg_mul = 1,
				r = 100,
				acc = {
					0.3,
					1
				},
				recoil = {
					0.3,
					0.3
				},
				mode = {
					1,
					0,
					0,
					0
				}
			},
			{
				dmg_mul = 2,
				r = 500,
				acc = {
					0.5,
					1
				},
				recoil = {
					0.5,
					0.5
				},
				mode = {
					1,
					0,
					0,
					0
				}
			},
			{
				dmg_mul = 3,
				r = 1000,
				acc = {
					0.6,
					1
				},
				recoil = {
					1.3,
					1.6
				},
				mode = {
					1,
					0,
					0,
					0
				}
			},
			{
				dmg_mul = 4,
				r = 2000,
				acc = {
					0.8,
					1
				},
				recoil = {
					1.4,
					1.6
				},
				mode = {
					1,
					0,
					0,
					0
				}
			},
			{
				dmg_mul = 3,
				r = 3000,
				acc = {
					0.5,
					1
				},
				recoil = {
					1.5,
					2
				},
				mode = {
					1,
					0,
					0,
					0
				}
			}
		}
	}
	self.marshal_marksman.misses_first_player_shot = false
	self.marshal_marksman.HEALTH_INIT = 6
	self.marshal_marksman.headshot_dmg_mul = 2
    self.marshal_marksman.surrender = presets.surrender.always
	self.marshal_marksman.surrender_break_time = {
		10,
		15
	}
	self.marshal_marksman.move_speed = presets.move_speed.very_fast
	self.marshal_marksman.shooting_death = true
	self.marshal_marksman.ecm_vulnerability = 1
	self.marshal_marksman.ecm_hurts = {
		ears = {
			max_duration = 10,
			min_duration = 8
		}
	}
	self.marshal_marksman.weapon_voice = "1"
	self.marshal_marksman.speech_prefix_p1 = "l"
	self.marshal_marksman.speech_prefix_p2 = "n"
	self.marshal_marksman.speech_prefix_count = 4
	self.marshal_marksman.priority_shout = "f34"
	self.marshal_marksman.access = "swat"
	self.marshal_marksman.no_retreat = true
	self.marshal_marksman.no_arrest = true
	self.marshal_marksman.chatter = presets.enemy_chatter.swat
	self.marshal_marksman.steal_loot = nil
	self.marshal_marksman.rescue_hostages = false

	table.insert(self._enemy_list, "marshal_marksman")
end

function CharacterTweakData:_init_marshal_shield(presets)
	self.marshal_shield = deep_clone(presets.base)
	self.marshal_shield.tags = {
		"law",
		"shield"
	}
	self.marshal_shield.experience = {}
	self.marshal_shield.weapon = deep_clone(presets.weapon.normal)
	self.marshal_shield.detection = presets.detection.normal
	self.marshal_shield.HEALTH_INIT = 16
	self.marshal_shield.headshot_dmg_mul = 2
	self.marshal_shield.allowed_stances = {
		cbt = true
	}
	self.marshal_shield.allowed_poses = {
		crouch = true
	}
	self.marshal_shield.always_face_enemy = true
	self.marshal_shield.move_speed = presets.move_speed.very_fast
	self.marshal_shield.no_run_start = true
	self.marshal_shield.no_run_stop = true
	self.marshal_shield.no_retreat = true
	self.marshal_shield.no_arrest = true
	self.marshal_shield.surrender = nil
	self.marshal_shield.ecm_vulnerability = 0
	self.marshal_shield.ecm_hurts = {
		ears = {
			max_duration = 0,
			min_duration = 0
		}
	}
	self.marshal_shield.rescue_hostages = false
	self.marshal_shield.deathguard = false
	self.marshal_shield.no_equip_anim = true
	self.marshal_shield.wall_fwd_offset = 100
	self.marshal_shield.damage.explosion_damage_mul = 0.8
	self.marshal_shield.calls_in = nil
	self.marshal_shield.ignore_medic_revive_animation = true
	self.marshal_shield.shooting_death = false
	self.marshal_shield.damage.hurt_severity = presets.hurt_severities.no_hurts
	self.marshal_shield.damage.shield_knocked = false
	self.marshal_shield.immune_to_concussion = true
	self.marshal_shield.damage.immune_to_knockback = true
	self.marshal_shield.immune_to_knock_down = true
	self.marshal_shield.use_animation_on_fire_damage = false
	self.marshal_shield.flammable = true
	self.marshal_shield.weapon.is_pistol = {
		aim_delay = {
			0,
			0.0
		},
		focus_delay = 0,
		focus_dis = 250,
		spread = 60,
		miss_dis = 15,
		RELOAD_SPEED = 0.5,
		melee_speed = nil,
		melee_dmg = nil,
		melee_retry_delay = nil,
		range = {
			optimal = 900,
			far = 3000,
			close = 500
		},
		FALLOFF = {
			{
				dmg_mul = 4,
				r = 0,
				acc = {
					0.5,
					0.9
				},
				recoil = {
					0.25,
					0.55
				},
				mode = {
					0,
					0,
					1,
					0
				}
			},
			{
				dmg_mul = 3,
				r = 700,
				acc = {
					0.4,
					0.6
				},
				recoil = {
					0.35,
					0.45
				},
				mode = {
					0,
					1,
					0,
					0
				}
			},
			{
				dmg_mul = 2.5,
				r = 1000,
				acc = {
					0.3,
					0.5
				},
				recoil = {
					0.35,
					0.55
				},
				mode = {
					1,
					0,
					0,
					0
				}
			},
			{
				dmg_mul = 1.25,
				r = 2000,
				acc = {
					0.2,
					0.4
				},
				recoil = {
					0.35,
					0.75
				},
				mode = {
					1,
					0,
					0,
					0
				}
			},
			{
				dmg_mul = 1,
				r = 3000,
				acc = {
					0,
					0.25
				},
				recoil = {
					0.35,
					1.5
				},
				mode = {
					1,
					0,
					0,
					0
				}
			}
		}
	}
	self.marshal_shield.weapon_voice = "3"
	self.marshal_shield.experience.cable_tie = "tie_swat"
	self.marshal_shield.speech_prefix_p1 = "l"
	self.marshal_shield.speech_prefix_p2 = self._speech_prefix_p2
	self.marshal_shield.speech_prefix_count = 4
	self.marshal_shield.priority_shout = "f31"
	self.marshal_shield.access = "shield"
	self.marshal_shield.chatter = presets.enemy_chatter.shield
	self.marshal_shield.announce_incomming = "incomming_shield"
	self.marshal_shield.steal_loot = nil

	table.insert(self._enemy_list, "marshal_shield")

	self.marshal_shield_break = deep_clone(self.marshal_shield)
	self.marshal_shield_break.tags = {
		"law"
	}
	self.marshal_shield_break.HEALTH_INIT = 64
	self.marshal_shield_break.allowed_stances = nil
	self.marshal_shield_break.allowed_poses = nil
	self.marshal_shield_break.no_equip_anim = nil
	self.marshal_shield_break.no_run_start = nil
	self.marshal_shield_break.no_run_stop = nil
	self.marshal_shield_break.always_face_enemy = nil
	self.marshal_shield_break.wall_fwd_offset = nil
	self.marshal_shield_break.priority_shout = nil
	self.marshal_shield_break.access = "swat"
	self.marshal_shield_break.chatter = presets.enemy_chatter.swat
	self.marshal_shield_break.announce_incomming = nil
	self.marshal_shield_break.damage.hurt_severity = presets.hurt_severities.base
	self.marshal_shield_break.damage.explosion_damage_mul = 1
	self.marshal_shield_break.use_animation_on_fire_damage = nil
	self.marshal_shield_break.damage.shield_knocked = nil
	self.marshal_shield_break.modify_health_on_tweak_change = true
	self.marshal_shield_break.tmp_invulnerable_on_tweak_change = 3
	self.marshal_shield_break.weapon.is_shotgun_mag = {
		aim_delay = {
			0.0,
			0.0
		},
		focus_delay = 0,
		focus_dis = 200,
		spread = 20,
		miss_dis = 40,
		RELOAD_SPEED = 0.5,
		melee_speed = 1,
		melee_dmg = 2,
		melee_retry_delay = {
			1,
			2
		},
		range = {
			optimal = 400,
			far = 2000,
			close = 200
		},
		FALLOFF = {
			{
				dmg_mul = 6,
				r = 0,
				acc = {
					0.7,
					0.9
				},
				recoil = {
					0.25,
					0.45
				},
				mode = {
					0,
					1,
					2,
					0
				}
			},
			{
				dmg_mul = 5.25,
				r = 700,
				acc = {
					0.7,
					0.8
				},
				recoil = {
					0.35,
					0.55
				},
				mode = {
					1,
					2,
					1,
					0
				}
			},
			{
				dmg_mul = 4.5,
				r = 1000,
				acc = {
					0.4,
					0.7
				},
				recoil = {
					0.35,
					0.55
				},
				mode = {
					1,
					0,
					0,
					0
				}
			},
			{
				dmg_mul = 2,
				r = 2000,
				acc = {
					0.3,
					0.5
				},
				recoil = {
					0.45,
					1
				},
				mode = {
					1,
					0,
					0,
					0
				}
			},
			{
				dmg_mul = 1.5,
				r = 3000,
				acc = {
					0.2,
					0.3
				},
				recoil = {
					0.35,
					1.5
				},
				mode = {
					1,
					0,
					0,
					0
				}
			}
		}
	}

	table.insert(self._enemy_list, "marshal_shield_break")
end

function CharacterTweakData:_init_gangster(presets)
	self.gangster = deep_clone(presets.base)
	self.gangster.experience = {}
	self.gangster.weapon = presets.weapon.good
	self.gangster.detection = presets.detection.normal
	self.gangster.HEALTH_INIT = 8
	self.gangster.headshot_dmg_mul = 2
	self.gangster.move_speed = presets.move_speed.very_fast
	self.gangster.suspicious = nil
	self.gangster.suppression = presets.suppression.easy
	self.gangster.surrender = nil
	self.gangster.ecm_vulnerability = 1
	self.gangster.ecm_hurts = {
		ears = {
			max_duration = 10,
			min_duration = 8
		}
	}
	self.gangster.no_arrest = true
	self.gangster.no_retreat = true
	self.gangster.weapon_voice = "3"
	self.gangster.experience.cable_tie = "tie_swat"
	self.gangster.speech_prefix_p1 = "l"
	self.gangster.speech_prefix_p2 = "n"
	self.gangster.speech_prefix_count = 4
	self.gangster.silent_priority_shout = "f37"
	self.gangster.access = "gangster"
	self.gangster.rescue_hostages = false
	self.gangster.use_radio = nil
	self.gangster.dodge = presets.dodge.average
	self.gangster.challenges = {
		type = "gangster"
	}
	self.gangster.chatter = presets.enemy_chatter.no_chatter
	self.gangster.melee_weapon = "fists"
	self.gangster.steal_loot = nil

	table.insert(self._enemy_list, "gangster")
end

function CharacterTweakData:_init_biker(presets)
	self.biker = deep_clone(self.gangster)
	self.biker.calls_in = true

	table.insert(self._enemy_list, "biker")
end

function CharacterTweakData:_init_triad(presets)
	self.triad = deep_clone(self.gangster)
	self.triad.detection = presets.detection.guard
	self.triad.radio_prefix = "fri_"
	self.triad.suspicious = true
	self.triad.weapon.is_pistol.range = {
		optimal = 900,
		far = 3000,
		close = 500
	}
	self.triad.crouch_move = nil
	self.triad.no_arrest = false
	self.triad.access = "gangster"
	self.triad.calls_in = true

	table.insert(self._enemy_list, "triad")
end

function CharacterTweakData:_init_triad_boss(presets)
	self.triad_boss = deep_clone(presets.base)
	self.triad_boss.experience = {}
	self.triad_boss.weapon = deep_clone(presets.weapon.good)
	self.triad_boss.weapon.is_flamethrower.melee_speed = nil
	self.triad_boss.weapon.is_flamethrower.melee_dmg = nil
	self.triad_boss.weapon.is_flamethrower.melee_retry_delay = nil
	self.triad_boss.detection = presets.detection.normal
	self.triad_boss.HEALTH_INIT = 540
	self.triad_boss.headshot_dmg_mul = 2
	self.triad_boss.damage.hurt_severity = presets.hurt_severities.no_hurts
	self.triad_boss.damage.explosion_damage_mul = 0.5
	self.triad_boss.can_be_tased = false
	self.triad_boss.suppression = nil
	self.triad_boss.move_speed = presets.move_speed.slow
	self.triad_boss.allowed_stances = {
		cbt = true
	}
	self.triad_boss.allowed_poses = {
		stand = true
	}
	self.triad_boss.crouch_move = false
	self.triad_boss.no_run_start = true
	self.triad_boss.no_run_stop = true
	self.triad_boss.no_retreat = true
	self.triad_boss.no_arrest = true
	self.triad_boss.surrender = nil
	self.triad_boss.ecm_vulnerability = 0
	self.triad_boss.ecm_hurts = {
		ears = {
			max_duration = 0,
			min_duration = 0
		}
	}
	self.triad_boss.weapon_voice = "3"
	self.triad_boss.experience.cable_tie = "tie_swat"
	self.triad_boss.access = "gangster"
	self.triad_boss.speech_prefix_p1 = "bb"
	self.triad_boss.speech_prefix_p2 = "n"
	self.triad_boss.speech_prefix_count = 1
	self.triad_boss.die_sound_event = "Play_yuw_pent_death"
	self.triad_boss.rescue_hostages = false
	self.triad_boss.melee_weapon_dmg_multiplier = 2.5
	self.triad_boss.steal_loot = nil
	self.triad_boss.calls_in = nil
	self.triad_boss.chatter = presets.enemy_chatter.no_chatter
	self.triad_boss.use_radio = nil
	self.triad_boss.use_animation_on_fire_damage = false
	self.triad_boss.flammable = false
	self.triad_boss.immune_to_knock_down = true
	self.triad_boss.immune_to_concussion = true
	self.triad_boss.can_reload_while_moving_tmp = true
	self.triad_boss.no_headshot_add_mul = true
	self.triad_boss.bullet_damage_only_from_front = true
	self.triad_boss.player_health_scaling_mul = 1.5
	self.triad_boss.throwable = "molotov"
	self.triad_boss.aoe_damage_data = {
		verification_delay = 0.3,
		activation_range = 300,
		activation_delay = 1,
		env_tweak_name = "triad_boss_aoe_fire",
		play_voiceline = true,
		check_player = true,
		check_npc_slotmask = {
			"criminals",
			-2,
			-3
		}
	}
	self.triad_boss.invulnerable_to_slotmask = {
		"enemies",
		17
	}

	table.insert(self._enemy_list, "triad_boss")

	self.triad_boss_no_armor = deep_clone(self.gangster)
	self.triad_boss_no_armor.suspicious = nil
	self.triad_boss_no_armor.detection = presets.detection.normal
	self.triad_boss_no_armor.damage.hurt_severity = presets.hurt_severities.no_hurts
	self.triad_boss_no_armor.move_speed = presets.move_speed.very_fast
	self.triad_boss_no_armor.dodge = presets.dodge.athletic
	self.triad_boss_no_armor.crouch_move = nil
	self.triad_boss_no_armor.suppression = nil
	self.triad_boss_no_armor.can_be_tased = false
	self.triad_boss_no_armor.no_retreat = true
	self.triad_boss_no_armor.no_arrest = true
	self.triad_boss_no_armor.surrender = nil
	self.triad_boss_no_armor.ecm_vulnerability = 0
	self.triad_boss_no_armor.ecm_hurts = {
		ears = {
			max_duration = 0,
			min_duration = 0
		}
	}
	self.triad_boss_no_armor.rescue_hostages = false
	self.triad_boss_no_armor.steal_loot = nil
	self.triad_boss_no_armor.calls_in = nil
	self.triad_boss_no_armor.chatter = presets.enemy_chatter.no_chatter
	self.triad_boss_no_armor.use_radio = nil
	self.triad_boss_no_armor.radio_prefix = "fri_"
	self.triad_boss_no_armor.use_animation_on_fire_damage = false
	self.triad_boss_no_armor.immune_to_knock_down = true
	self.triad_boss_no_armor.immune_to_concussion = true

	table.insert(self._enemy_list, "triad_boss_no_armor")
end

function CharacterTweakData:_init_snowman_boss(presets)
	self.snowman_boss = deep_clone(presets.base)
	self.snowman_boss.experience = {}
	self.snowman_boss.tags = {
		"tank",
		"snowman",
		"special"
	}
	self.snowman_boss.weapon = deep_clone(presets.weapon.good)
	self.snowman_boss.weapon.is_flamethrower.melee_speed = nil
	self.snowman_boss.weapon.is_flamethrower.melee_dmg = nil
	self.snowman_boss.weapon.is_flamethrower.melee_retry_delay = nil
	self.snowman_boss.detection = presets.detection.normal
	self.snowman_boss.HEALTH_INIT = 435
	self.snowman_boss.headshot_dmg_mul = 2
	self.snowman_boss.damage.hurt_severity = presets.hurt_severities.no_hurts
	self.snowman_boss.damage.explosion_damage_mul = 0.5
	self.snowman_boss.can_be_tased = false
	self.snowman_boss.suppression = nil
	self.snowman_boss.move_speed = presets.move_speed.slow
	self.snowman_boss.allowed_stances = {
		cbt = true
	}
	self.snowman_boss.allowed_poses = {
		stand = true
	}
	self.snowman_boss.crouch_move = false
	self.snowman_boss.no_run_start = true
	self.snowman_boss.no_run_stop = true
	self.snowman_boss.no_retreat = true
	self.snowman_boss.no_arrest = true
	self.snowman_boss.surrender = nil
	self.snowman_boss.ecm_vulnerability = 0
	self.snowman_boss.ecm_hurts = {
		ears = {
			max_duration = 0,
			min_duration = 0
		}
	}
	self.snowman_boss.weapon_voice = "3"
	self.snowman_boss.experience.cable_tie = "tie_swat"
	self.snowman_boss.access = "tank"
	self.snowman_boss.speech_prefix_p1 = "bb"
	self.snowman_boss.speech_prefix_p2 = "n"
	self.snowman_boss.speech_prefix_count = 1
	self.snowman_boss.priority_shout = "f30"
	self.snowman_boss.rescue_hostages = false
	self.snowman_boss.melee_weapon_dmg_multiplier = 2.5
	self.snowman_boss.steal_loot = nil
	self.snowman_boss.calls_in = nil
	self.snowman_boss.chatter = presets.enemy_chatter.no_chatter
	self.snowman_boss.use_radio = nil
	self.snowman_boss.use_animation_on_fire_damage = false
	self.snowman_boss.flammable = false
	self.snowman_boss.immune_to_knock_down = true
	self.snowman_boss.immune_to_concussion = true
	self.snowman_boss.can_reload_while_moving_tmp = true
	self.snowman_boss.no_headshot_add_mul = true
	self.snowman_boss.player_health_scaling_mul = 1.5
	self.snowman_boss.aoe_damage_data = {
		verification_delay = 0.3,
		activation_range = 300,
		activation_delay = 1,
		env_tweak_name = "snowman_boss_aoe_fire",
		check_player = true,
		check_npc_slotmask = {
			"criminals",
			-2,
			-3
		}
	}

	table.insert(self._enemy_list, "snowman_boss")
end

function CharacterTweakData:_init_captain(presets)
	self.captain = deep_clone(self.gangster)
	self.captain.calls_in = true
	self.captain.immune_to_knock_down = true
	self.captain.immune_to_concussion = true
	self.captain.no_retreat = true
	self.captain.no_arrest = true
	self.captain.surrender = nil
	self.captain.damage.hurt_severity = presets.hurt_severities.no_hurts
	self.captain.can_be_tased = false
	self.captain.flammable = false
	self.captain.suppression = nil

	table.insert(self._enemy_list, "captain")
end

function CharacterTweakData:_init_biker_escape(presets)
	self.biker_escape = deep_clone(self.gangster)
	self.biker_escape.melee_weapon = "knife_1"
	self.biker_escape.move_speed = presets.move_speed.very_fast
	self.biker_escape.HEALTH_INIT = 8
	self.biker_escape.suppression = nil

	table.insert(self._enemy_list, "biker_escape")
end

function CharacterTweakData:_init_mobster(presets)
	self.mobster = deep_clone(self.gangster)
	self.mobster.calls_in = nil

	table.insert(self._enemy_list, "mobster")
end

function CharacterTweakData:_init_mobster_boss(presets)
	self.mobster_boss = deep_clone(presets.base)
	self.mobster_boss.experience = {}
	self.mobster_boss.weapon = deep_clone(presets.weapon.good)
	self.mobster_boss.weapon.is_rifle = {
		aim_delay = {
			0.1,
			0.2
		},
		focus_delay = 4,
		focus_dis = 200,
		spread = 20,
		miss_dis = 40,
		RELOAD_SPEED = 1,
		melee_speed = 1,
		melee_dmg = 25,
		melee_retry_delay = {
			1,
			2
		},
		range = {
			optimal = 2500,
			far = 5000,
			close = 1000
		},
		autofire_rounds = {
			20,
			30
		},
		FALLOFF = {
			{
				dmg_mul = 5,
				r = 100,
				acc = {
					0.6,
					0.9
				},
				recoil = {
					0.4,
					0.7
				},
				mode = {
					0,
					0,
					0,
					1
				}
			},
			{
				dmg_mul = 4,
				r = 500,
				acc = {
					0.5,
					0.7
				},
				recoil = {
					0.4,
					0.7
				},
				mode = {
					0,
					1,
					2,
					8
				}
			},
			{
				dmg_mul = 3.5,
				r = 1000,
				acc = {
					0.4,
					0.6
				},
				recoil = {
					0.45,
					0.8
				},
				mode = {
					1,
					3,
					6,
					6
				}
			},
			{
				dmg_mul = 3,
				r = 2000,
				acc = {
					0.2,
					0.5
				},
				recoil = {
					0.45,
					0.8
				},
				mode = {
					1,
					2,
					2,
					1
				}
			},
			{
				dmg_mul = 3,
				r = 3000,
				acc = {
					0.1,
					0.35
				},
				recoil = {
					1,
					1.2
				},
				mode = {
					4,
					2,
					1,
					0
				}
			}
		}
	}
	self.mobster_boss.detection = presets.detection.normal
	self.mobster_boss.HEALTH_INIT = 350
	self.mobster_boss.headshot_dmg_mul = 2
	self.mobster_boss.damage.explosion_damage_mul = 1
	self.mobster_boss.damage.hurt_severity = presets.hurt_severities.base_no_poison
	self.mobster_boss.can_be_tased = false
	self.mobster_boss.move_speed = presets.move_speed.very_slow
	self.mobster_boss.allowed_poses = {
		stand = true
	}
	self.mobster_boss.no_retreat = true
	self.mobster_boss.no_arrest = true
	self.mobster_boss.surrender = nil
	self.mobster_boss.ecm_vulnerability = 0.85
	self.mobster_boss.ecm_hurts = {
		ears = {
			max_duration = 9,
			min_duration = 7
		}
	}
	self.mobster_boss.weapon_voice = "3"
	self.mobster_boss.experience.cable_tie = "tie_swat"
	self.mobster_boss.access = "gangster"
	self.mobster_boss.speech_prefix_p1 = "l"
	self.mobster_boss.speech_prefix_p2 = "n"
	self.mobster_boss.speech_prefix_count = 4
	self.mobster_boss.rescue_hostages = false
	self.mobster_boss.melee_weapon = "fists"
	self.mobster_boss.melee_weapon_dmg_multiplier = 2.5
	self.mobster_boss.steal_loot = nil
	self.mobster_boss.calls_in = nil
	self.mobster_boss.chatter = presets.enemy_chatter.no_chatter
	self.mobster_boss.use_radio = nil
	self.mobster_boss.immune_to_concussion = true

	table.insert(self._enemy_list, "mobster_boss")
end

function CharacterTweakData:_init_biker_boss(presets)
	self.biker_boss = deep_clone(presets.base)
	self.biker_boss.experience = {}
	self.biker_boss.weapon = deep_clone(presets.weapon.good)
	self.biker_boss.weapon.is_rifle = {
		aim_delay = {
			0.1,
			0.2
		},
		focus_delay = 4,
		focus_dis = 200,
		spread = 20,
		miss_dis = 40,
		RELOAD_SPEED = 1,
		melee_speed = 1,
		melee_dmg = 25,
		melee_retry_delay = {
			1,
			2
		},
		range = {
			optimal = 2500,
			far = 5000,
			close = 1000
		},
		autofire_rounds = {
			20,
			30
		},
		FALLOFF = {
			{
				dmg_mul = 3,
				r = 100,
				acc = {
					0.6,
					0.9
				},
				recoil = {
					0.4,
					0.7
				},
				mode = {
					0,
					0,
					0,
					1
				}
			},
			{
				dmg_mul = 3,
				r = 500,
				acc = {
					0.5,
					0.7
				},
				recoil = {
					0.4,
					0.7
				},
				mode = {
					0,
					1,
					2,
					8
				}
			},
			{
				dmg_mul = 1.5,
				r = 1000,
				acc = {
					0.4,
					0.6
				},
				recoil = {
					0.45,
					0.8
				},
				mode = {
					1,
					3,
					6,
					6
				}
			},
			{
				dmg_mul = 1,
				r = 2000,
				acc = {
					0.2,
					0.5
				},
				recoil = {
					0.45,
					0.8
				},
				mode = {
					1,
					2,
					2,
					1
				}
			},
			{
				dmg_mul = 1,
				r = 3000,
				acc = {
					0.1,
					0.35
				},
				recoil = {
					1,
					1.2
				},
				mode = {
					4,
					2,
					1,
					0
				}
			}
		}
	}
	self.biker_boss.detection = presets.detection.normal
	self.biker_boss.HEALTH_INIT = 350
	self.biker_boss.headshot_dmg_mul = 2
	self.biker_boss.damage.explosion_damage_mul = 1
	self.biker_boss.damage.hurt_severity = presets.hurt_severities.no_hurts
	self.biker_boss.can_be_tased = false
	self.biker_boss.move_speed = presets.move_speed.very_slow
	self.biker_boss.allowed_poses = {
		stand = true
	}
	self.biker_boss.no_retreat = true
	self.biker_boss.no_arrest = true
	self.biker_boss.surrender = nil
	self.biker_boss.ecm_vulnerability = 0
	self.biker_boss.ecm_hurts = {
		ears = {
			max_duration = 0,
			min_duration = 0
		}
	}
	self.biker_boss.weapon_voice = "3"
	self.biker_boss.experience.cable_tie = "tie_swat"
	self.biker_boss.access = "gangster"
	self.biker_boss.speech_prefix_p1 = "bb"
	self.biker_boss.speech_prefix_p2 = "n"
	self.biker_boss.speech_prefix_count = 1
	self.biker_boss.rescue_hostages = false
	self.biker_boss.melee_weapon = "fists"
	self.biker_boss.melee_weapon_dmg_multiplier = 2.5
	self.biker_boss.steal_loot = nil
	self.biker_boss.calls_in = nil
	self.biker_boss.chatter = presets.enemy_chatter.no_chatter
	self.biker_boss.use_radio = nil
	self.biker_boss.DAMAGE_CLAMP_BULLET = 80
	self.biker_boss.DAMAGE_CLAMP_EXPLOSION = 80
	self.biker_boss.use_animation_on_fire_damage = false
	self.biker_boss.flammable = true
	self.biker_boss.immune_to_knock_down = true
	self.biker_boss.immune_to_concussion = true

	table.insert(self._enemy_list, "biker_boss")
end

function CharacterTweakData:_init_chavez_boss(presets)
	self.chavez_boss = deep_clone(presets.base)
	self.chavez_boss.experience = {}
	self.chavez_boss.weapon = deep_clone(presets.weapon.good)
	self.chavez_boss.weapon.akimbo_pistol = {
		aim_delay = {
			0.1,
			0.2
		},
		focus_delay = 4,
		focus_dis = 200,
		spread = 20,
		miss_dis = 40,
		RELOAD_SPEED = 1,
		melee_speed = 1,
		melee_dmg = 25,
		melee_retry_delay = {
			1,
			2
		},
		range = {
			optimal = 2500,
			far = 5000,
			close = 1000
		},
		autofire_rounds = {
			20,
			30
		},
		FALLOFF = {
			{
				dmg_mul = 3,
				r = 100,
				acc = {
					0.6,
					0.9
				},
				recoil = {
					0.4,
					0.7
				},
				mode = {
					0,
					0,
					0,
					1
				}
			},
			{
				dmg_mul = 3,
				r = 500,
				acc = {
					0.5,
					0.7
				},
				recoil = {
					0.4,
					0.7
				},
				mode = {
					0,
					1,
					2,
					8
				}
			},
			{
				dmg_mul = 1.5,
				r = 1000,
				acc = {
					0.4,
					0.6
				},
				recoil = {
					0.45,
					0.8
				},
				mode = {
					1,
					3,
					6,
					6
				}
			},
			{
				dmg_mul = 1,
				r = 2000,
				acc = {
					0.2,
					0.5
				},
				recoil = {
					0.45,
					0.8
				},
				mode = {
					1,
					2,
					2,
					1
				}
			},
			{
				dmg_mul = 1,
				r = 3000,
				acc = {
					0.1,
					0.35
				},
				recoil = {
					1,
					1.2
				},
				mode = {
					4,
					2,
					1,
					0
				}
			}
		}
	}
	self.chavez_boss.detection = presets.detection.normal
	self.chavez_boss.HEALTH_INIT = 550
	self.chavez_boss.headshot_dmg_mul = 2
	self.chavez_boss.damage.explosion_damage_mul = 1
	self.chavez_boss.can_be_tased = false
	self.chavez_boss.move_speed = presets.move_speed.fast
	self.chavez_boss.allowed_poses = {
		stand = true
	}
	self.chavez_boss.no_retreat = true
	self.chavez_boss.no_arrest = true
	self.chavez_boss.surrender = nil
	self.chavez_boss.ecm_vulnerability = 0
	self.chavez_boss.ecm_hurts = {
		ears = {
			max_duration = 0,
			min_duration = 0
		}
	}
	self.chavez_boss.weapon_voice = "1"
	self.chavez_boss.experience.cable_tie = "tie_swat"
	self.chavez_boss.access = "gangster"
	self.chavez_boss.speech_prefix_p1 = "bb"
	self.chavez_boss.speech_prefix_p2 = "n"
	self.chavez_boss.speech_prefix_count = 1
	self.chavez_boss.rescue_hostages = false
	self.chavez_boss.melee_weapon = "fists"
	self.chavez_boss.melee_weapon_dmg_multiplier = 2.5
	self.chavez_boss.steal_loot = nil
	self.chavez_boss.calls_in = nil
	self.chavez_boss.chatter = presets.enemy_chatter.no_chatter
	self.chavez_boss.use_radio = nil
	self.chavez_boss.DAMAGE_CLAMP_BULLET = 80
	self.chavez_boss.DAMAGE_CLAMP_EXPLOSION = 80
	self.chavez_boss.use_animation_on_fire_damage = false
	self.chavez_boss.flammable = true
	self.chavez_boss.immune_to_knock_down = true
	self.chavez_boss.immune_to_concussion = true

	table.insert(self._enemy_list, "chavez_boss")
end

function CharacterTweakData:_init_hector_boss(presets)
	self.hector_boss = deep_clone(self.mobster_boss)
	self.hector_boss.DAMAGE_CLAMP_BULLET = 320
	self.hector_boss.DAMAGE_CLAMP_EXPLOSION = 550
	self.hector_boss.melee_weapon_dmg_multiplier = 2.5
	self.hector_boss.HEALTH_INIT = 900
	self.hector_boss.can_be_tased = false
	self.hector_boss.weapon.is_shotgun_mag = {
		aim_delay = {
			0.1,
			0.1
		},
		focus_delay = 4,
		focus_dis = 200,
		spread = 20,
		miss_dis = 40,
		RELOAD_SPEED = 0.5,
		melee_speed = 1,
		melee_dmg = 25,
		melee_retry_delay = {
			1,
			2
		},
		range = {
			optimal = 2000,
			far = 5000,
			close = 1000
		},
		autofire_rounds = presets.weapon.deathwish.is_rifle.autofire_rounds,
		FALLOFF = {
			{
				dmg_mul = 2.2,
				r = 200,
				acc = {
					0.6,
					0.9
				},
				recoil = {
					0.4,
					0.7
				},
				mode = {
					0,
					1,
					2,
					1
				}
			},
			{
				dmg_mul = 1.75,
				r = 500,
				acc = {
					0.6,
					0.9
				},
				recoil = {
					0.4,
					0.7
				},
				mode = {
					0,
					3,
					3,
					1
				}
			},
			{
				dmg_mul = 1.5,
				r = 1000,
				acc = {
					0.4,
					0.8
				},
				recoil = {
					0.45,
					0.8
				},
				mode = {
					1,
					2,
					2,
					0
				}
			},
			{
				dmg_mul = 1.25,
				r = 2000,
				acc = {
					0.4,
					0.55
				},
				recoil = {
					0.45,
					0.8
				},
				mode = {
					3,
					2,
					2,
					0
				}
			},
			{
				dmg_mul = 1,
				r = 3000,
				acc = {
					0.1,
					0.35
				},
				recoil = {
					1,
					1.2
				},
				mode = {
					3,
					1,
					1,
					0
				}
			}
		}
	}

	table.insert(self._enemy_list, "hector_boss")
end

function CharacterTweakData:_init_hector_boss_no_armor(presets)
	self.hector_boss_no_armor = deep_clone(self.fbi)
	self.hector_boss_no_armor.damage.hurt_severity = presets.hurt_severities.base_no_poison
	self.hector_boss_no_armor.can_be_tased = false
	self.hector_boss_no_armor.no_retreat = true
	self.hector_boss_no_armor.no_arrest = true
	self.hector_boss_no_armor.surrender = nil
	self.hector_boss_no_armor.access = "gangster"
	self.hector_boss_no_armor.rescue_hostages = false
	self.hector_boss_no_armor.steal_loot = nil
	self.hector_boss_no_armor.calls_in = nil
	self.hector_boss_no_armor.chatter = presets.enemy_chatter.no_chatter
	self.hector_boss_no_armor.use_radio = nil
	self.hector_boss_no_armor.immune_to_concussion = true

	table.insert(self._enemy_list, "hector_boss_no_armor")
end

function CharacterTweakData:_init_bolivian_indoors_mex(presets)
	self.bolivian_indoors_mex = deep_clone(self.gangster)
	self.bolivian_indoors_mex.detection = presets.detection.guard
	self.bolivian_indoors_mex.access = "gangster"
	self.bolivian_indoors_mex.radio_prefix = "fri_"
	self.bolivian_indoors_mex.suspicious = true
	self.bolivian_indoors_mex.weapon.is_pistol.range = {
		optimal = 900,
		far = 3000,
		close = 500
	}
	self.bolivian_indoors_mex.crouch_move = nil
	self.bolivian_indoors_mex.no_arrest = false
	self.bolivian_indoors_mex.has_alarm_pager = true

	table.insert(self._enemy_list, "bolivian_indoors_mex")
end

function CharacterTweakData:_init_bolivians(presets)
	self.bolivian = deep_clone(self.gangster)
	self.bolivian.detection = presets.detection.guard
	self.bolivian.access = "security"
	self.bolivian.radio_prefix = "fri_"
	self.bolivian.suspicious = true
	self.bolivian.weapon.is_pistol.range = {
		optimal = 900,
		far = 3000,
		close = 500
	}
	self.bolivian.crouch_move = nil
	self.bolivian.no_arrest = false

	table.insert(self._enemy_list, "bolivian")

	self.bolivian_indoors = deep_clone(self.bolivian)
	self.bolivian_indoors.has_alarm_pager = true

	table.insert(self._enemy_list, "bolivian_indoors")
end

function CharacterTweakData:_init_drug_lord_boss(presets)
	self.drug_lord_boss = deep_clone(presets.base)
	self.drug_lord_boss.experience = {}
	self.drug_lord_boss.weapon = deep_clone(presets.weapon.good)
	self.drug_lord_boss.weapon.is_rifle = {
		aim_delay = {
			0.1,
			0.2
		},
		focus_delay = 4,
		focus_dis = 200,
		spread = 20,
		miss_dis = 40,
		RELOAD_SPEED = 1,
		melee_speed = 1,
		melee_dmg = 25,
		melee_retry_delay = {
			1,
			2
		},
		range = {
			optimal = 2500,
			far = 5000,
			close = 1000
		},
		autofire_rounds = {
			20,
			30
		},
		FALLOFF = {
			{
				dmg_mul = 3,
				r = 100,
				acc = {
					0.6,
					0.9
				},
				recoil = {
					0.4,
					0.7
				},
				mode = {
					0,
					0,
					0,
					1
				}
			},
			{
				dmg_mul = 3,
				r = 500,
				acc = {
					0.5,
					0.7
				},
				recoil = {
					0.4,
					0.7
				},
				mode = {
					0,
					1,
					2,
					8
				}
			},
			{
				dmg_mul = 1.5,
				r = 1000,
				acc = {
					0.4,
					0.6
				},
				recoil = {
					0.45,
					0.8
				},
				mode = {
					1,
					3,
					6,
					6
				}
			},
			{
				dmg_mul = 1,
				r = 2000,
				acc = {
					0.2,
					0.5
				},
				recoil = {
					0.45,
					0.8
				},
				mode = {
					1,
					2,
					2,
					1
				}
			},
			{
				dmg_mul = 1,
				r = 3000,
				acc = {
					0.1,
					0.35
				},
				recoil = {
					1,
					1.2
				},
				mode = {
					4,
					2,
					1,
					0
				}
			}
		}
	}
	self.drug_lord_boss.detection = presets.detection.normal
	self.drug_lord_boss.HEALTH_INIT = 350
	self.drug_lord_boss.headshot_dmg_mul = 2
	self.drug_lord_boss.damage.explosion_damage_mul = 1
	self.drug_lord_boss.can_be_tased = false
	self.drug_lord_boss.move_speed = presets.move_speed.normal
	self.drug_lord_boss.allowed_poses = {
		stand = true
	}
	self.drug_lord_boss.no_retreat = true
	self.drug_lord_boss.no_arrest = true
	self.drug_lord_boss.surrender = nil
	self.drug_lord_boss.ecm_vulnerability = 0
	self.drug_lord_boss.ecm_hurts = {
		ears = {
			max_duration = 0,
			min_duration = 0
		}
	}
	self.drug_lord_boss.weapon_voice = "3"
	self.drug_lord_boss.experience.cable_tie = "tie_swat"
	self.drug_lord_boss.access = "gangster"
	self.drug_lord_boss.speech_prefix_p1 = "bb"
	self.drug_lord_boss.speech_prefix_p2 = "n"
	self.drug_lord_boss.speech_prefix_count = 1
	self.drug_lord_boss.rescue_hostages = false
	self.drug_lord_boss.silent_priority_shout = "f37"
	self.drug_lord_boss.melee_weapon = "fists"
	self.drug_lord_boss.melee_weapon_dmg_multiplier = 2.5
	self.drug_lord_boss.steal_loot = nil
	self.drug_lord_boss.calls_in = nil
	self.drug_lord_boss.chatter = presets.enemy_chatter.no_chatter
	self.drug_lord_boss.use_radio = nil
	self.drug_lord_boss.DAMAGE_CLAMP_BULLET = 80
	self.drug_lord_boss.DAMAGE_CLAMP_EXPLOSION = 80
	self.drug_lord_boss.use_animation_on_fire_damage = false
	self.drug_lord_boss.flammable = true
	self.drug_lord_boss.immune_to_knock_down = true
	self.drug_lord_boss.immune_to_concussion = true

	table.insert(self._enemy_list, "drug_lord_boss")
end

function CharacterTweakData:_init_drug_lord_boss_stealth(presets)
	self.drug_lord_boss_stealth = deep_clone(presets.base)
	self.drug_lord_boss_stealth.experience = {}
	self.drug_lord_boss_stealth.weapon = deep_clone(presets.weapon.good)
	self.drug_lord_boss_stealth.weapon.is_rifle = {
		aim_delay = {
			0.1,
			0.2
		},
		focus_delay = 4,
		focus_dis = 200,
		spread = 20,
		miss_dis = 40,
		RELOAD_SPEED = 1,
		melee_speed = 1,
		melee_dmg = 25,
		melee_retry_delay = {
			1,
			2
		},
		range = {
			optimal = 2500,
			far = 5000,
			close = 1000
		},
		autofire_rounds = {
			20,
			30
		},
		FALLOFF = {
			{
				dmg_mul = 3,
				r = 100,
				acc = {
					0.6,
					0.9
				},
				recoil = {
					0.4,
					0.7
				},
				mode = {
					0,
					0,
					0,
					1
				}
			},
			{
				dmg_mul = 3,
				r = 500,
				acc = {
					0.5,
					0.7
				},
				recoil = {
					0.4,
					0.7
				},
				mode = {
					0,
					1,
					2,
					8
				}
			},
			{
				dmg_mul = 1.5,
				r = 1000,
				acc = {
					0.4,
					0.6
				},
				recoil = {
					0.45,
					0.8
				},
				mode = {
					1,
					3,
					6,
					6
				}
			},
			{
				dmg_mul = 1,
				r = 2000,
				acc = {
					0.2,
					0.5
				},
				recoil = {
					0.45,
					0.8
				},
				mode = {
					1,
					2,
					2,
					1
				}
			},
			{
				dmg_mul = 1,
				r = 3000,
				acc = {
					0.1,
					0.35
				},
				recoil = {
					1,
					1.2
				},
				mode = {
					4,
					2,
					1,
					0
				}
			}
		}
	}
	self.drug_lord_boss_stealth.detection = presets.detection.normal
	self.drug_lord_boss_stealth.HEALTH_INIT = 50
	self.drug_lord_boss_stealth.headshot_dmg_mul = 2
	self.drug_lord_boss_stealth.damage.explosion_damage_mul = 1
	self.drug_lord_boss_stealth.can_be_tased = false
	self.drug_lord_boss_stealth.move_speed = presets.move_speed.normal
	self.drug_lord_boss_stealth.allowed_poses = {
		stand = true
	}
	self.drug_lord_boss_stealth.no_retreat = true
	self.drug_lord_boss_stealth.no_arrest = true
	self.drug_lord_boss_stealth.surrender = nil
	self.drug_lord_boss_stealth.ecm_vulnerability = 0
	self.drug_lord_boss_stealth.ecm_hurts = {
		ears = {
			max_duration = 0,
			min_duration = 0
		}
	}
	self.drug_lord_boss_stealth.weapon_voice = "3"
	self.drug_lord_boss_stealth.experience.cable_tie = "tie_swat"
	self.drug_lord_boss_stealth.access = "gangster"
	self.drug_lord_boss_stealth.speech_prefix_p1 = "bb"
	self.drug_lord_boss_stealth.speech_prefix_p2 = "n"
	self.drug_lord_boss_stealth.speech_prefix_count = 1
	self.drug_lord_boss_stealth.rescue_hostages = false
	self.drug_lord_boss_stealth.silent_priority_shout = "f37"
	self.drug_lord_boss_stealth.melee_weapon = "fists"
	self.drug_lord_boss_stealth.melee_weapon_dmg_multiplier = 2.5
	self.drug_lord_boss_stealth.steal_loot = nil
	self.drug_lord_boss_stealth.calls_in = nil
	self.drug_lord_boss_stealth.chatter = presets.enemy_chatter.no_chatter
	self.drug_lord_boss_stealth.use_radio = nil
	self.drug_lord_boss_stealth.DAMAGE_CLAMP_BULLET = 80
	self.drug_lord_boss_stealth.DAMAGE_CLAMP_EXPLOSION = 80
	self.drug_lord_boss_stealth.use_animation_on_fire_damage = false
	self.drug_lord_boss_stealth.flammable = true
	self.drug_lord_boss_stealth.immune_to_knock_down = true
	self.drug_lord_boss_stealth.immune_to_concussion = true

	table.insert(self._enemy_list, "drug_lord_boss_stealth")
end

function CharacterTweakData:_init_tank(presets)
	self.tank = deep_clone(presets.base)
	self.tank.tags = {
		"law",
		"tank",
		"special"
	}
	self.tank.experience = {}
	self.tank.damage.tased_response = {
		light = {
			down_time = 0,
			tased_time = 1
		},
		heavy = {
			down_time = 0,
			tased_time = 2
		}
	}
	self.tank.weapon = deep_clone(presets.weapon.good)
	self.tank.weapon.is_shotgun_pump.FALLOFF[1].dmg_mul = 6.5
	self.tank.weapon.is_shotgun_pump.FALLOFF[2].dmg_mul = 4.5
	self.tank.weapon.is_shotgun_pump.FALLOFF[3].dmg_mul = 2
	self.tank.weapon.is_shotgun_pump.RELOAD_SPEED = 0.5
	self.tank.weapon.is_shotgun_mag = {
		aim_delay = {
			0.0,
			0.0
		},
		focus_delay = 0,
		focus_dis = 200,
		spread = 20,
		miss_dis = 40,
		RELOAD_SPEED = 0.5,
		melee_speed = 1,
		melee_dmg = 25,
		melee_retry_delay = {
			1,
			2
		},
		range = {
			optimal = 2000,
			far = 5000,
			close = 1000
		},
		autofire_rounds = presets.weapon.deathwish.is_rifle.autofire_rounds,
		FALLOFF = {
			{
				dmg_mul = 2,
				r = 100,
				acc = {
					0.6,
					0.9
				},
				recoil = {
					0.4,
					0.7
				},
				mode = {
					0,
					3,
					3,
					1
				}
			},
			{
				dmg_mul = 1.75,
				r = 500,
				acc = {
					0.6,
					0.9
				},
				recoil = {
					0.4,
					0.7
				},
				mode = {
					0,
					3,
					3,
					1
				}
			},
			{
				dmg_mul = 1.5,
				r = 1000,
				acc = {
					0.4,
					0.8
				},
				recoil = {
					0.45,
					0.8
				},
				mode = {
					1,
					2,
					2,
					0
				}
			},
			{
				dmg_mul = 1.25,
				r = 2000,
				acc = {
					0.4,
					0.55
				},
				recoil = {
					0.45,
					0.8
				},
				mode = {
					3,
					2,
					2,
					0
				}
			},
			{
				dmg_mul = 1,
				r = 3000,
				acc = {
					0.1,
					0.35
				},
				recoil = {
					1,
					1.2
				},
				mode = {
					3,
					1,
					1,
					0
				}
			}
		}
	}
	self.tank.weapon.is_rifle = {
		aim_delay = {
			0.0,
			0.0
		},
		focus_delay = 0,
		focus_dis = 800,
		spread = 20,
		miss_dis = 40,
		RELOAD_SPEED = 0.5,
		melee_speed = 1,
		melee_dmg = 25,
		melee_retry_delay = {
			1,
			2
		},
		range = {
			optimal = 2500,
			far = 5000,
			close = 1000
		},
		autofire_rounds = {
			20,
			40
		},
		FALLOFF = {
			{
				dmg_mul = 5,
				r = 100,
				acc = {
					0.6,
					0.9
				},
				recoil = {
					0.4,
					0.7
				},
				mode = {
					0,
					0,
					0,
					1
				}
			},
			{
				dmg_mul = 4,
				r = 500,
				acc = {
					0.5,
					0.7
				},
				recoil = {
					0.4,
					0.7
				},
				mode = {
					0,
					1,
					2,
					8
				}
			},
			{
				dmg_mul = 3.5,
				r = 1000,
				acc = {
					0.4,
					0.6
				},
				recoil = {
					0.45,
					0.8
				},
				mode = {
					1,
					3,
					6,
					6
				}
			},
			{
				dmg_mul = 3,
				r = 2000,
				acc = {
					0.2,
					0.5
				},
				recoil = {
					0.45,
					0.8
				},
				mode = {
					1,
					2,
					2,
					1
				}
			},
			{
				dmg_mul = 3,
				r = 3000,
				acc = {
					0.1,
					0.35
				},
				recoil = {
					1,
					1.2
				},
				mode = {
					4,
					2,
					1,
					0
				}
			}
		}
	}
	self.tank.detection = presets.detection.normal
	self.tank.HEALTH_INIT = 200
	self.tank.headshot_dmg_mul = 5
	self.tank.damage.explosion_damage_mul = 1.1
	self.tank.move_speed = presets.move_speed.slow
	self.tank.allowed_stances = {
		cbt = true
	}
	self.tank.allowed_poses = {
		stand = true
	}
	self.tank.crouch_move = false
	self.tank.no_run_start = true
	self.tank.no_run_stop = true
	self.tank.no_retreat = true
	self.tank.no_arrest = true
	self.tank.surrender = nil
	self.tank.ecm_vulnerability = 0.85
	self.tank.ecm_hurts = {
		ears = {
			max_duration = 3,
			min_duration = 1
		}
	}
	self.tank.weapon_voice = "3"
	self.tank.experience.cable_tie = "tie_swat"
	self.tank.access = "tank"
	self.tank.speech_prefix_p1 = self._prefix_data_p1.bulldozer()
	self.tank.speech_prefix_p2 = nil
	self.tank.speech_prefix_count = nil
	self.tank.priority_shout = "f30"
	self.tank.rescue_hostages = false
	self.tank.deathguard = true
	self.tank.melee_weapon = "fists"
	self.tank.melee_weapon_dmg_multiplier = 2.5
	self.tank.melee_anims = {
		"cbt_std_melee"
	}
	self.tank.critical_hits = {
		damage_mul = self.tank.headshot_dmg_mul * 1
	}
	self.tank.die_sound_event = "bdz_x02a_any_3p"
	self.tank.damage.hurt_severity = presets.hurt_severities.no_hurts
	self.tank.can_be_tased = false
	self.tank.chatter = {
		retreat = true,
		aggressive = true,
		contact = true
	}
	self.tank.announce_incomming = "incomming_tank"
	self.tank.kill_taunt = "post_kill_taunt"
	self.tank.steal_loot = nil
	self.tank.calls_in = nil
	self.tank.use_animation_on_fire_damage = false
	self.tank.flammable = true
	self.tank.immune_to_knock_down = true
	self.tank.immune_to_concussion = true
	self.tank.no_headshot_add_mul = true
	self.tank_hw = deep_clone(self.tank)
	self.tank_hw.move_speed = {
		stand = {
			walk = {
				ntl = {
					strafe = 60,
					fwd = 72,
					bwd = 56
				},
				hos = {
					strafe = 60,
					fwd = 72,
					bwd = 56
				},
				cbt = {
					strafe = 60,
					fwd = 72,
					bwd = 56
				}
			},
			run = {
				hos = {
					strafe = 70,
					fwd = 72,
					bwd = 56
				},
				cbt = {
					strafe = 50,
					fwd = 72,
					bwd = 60
				}
			}
		},
		crouch = {
			walk = {
				hos = {
					strafe = 60,
					fwd = 72,
					bwd = 56
				},
				cbt = {
					strafe = 60,
					fwd = 72,
					bwd = 56
				}
			},
			run = {
				hos = {
					strafe = 65,
					fwd = 72,
					bwd = 56
				},
				cbt = {
					strafe = 50,
					fwd = 72,
					bwd = 60
				}
			}
		}
	}
	self.tank_hw.HEALTH_INIT = 200
	self.tank_hw.headshot_dmg_mul = 1
	self.tank_hw.ignore_headshot = true
	self.tank_hw.damage.explosion_damage_mul = 1
	self.tank_hw.use_animation_on_fire_damage = false
	self.tank_hw.flammable = true
	self.tank_medic = deep_clone(self.tank)

	table.insert(self.tank_medic.tags, "medic")

	self.tank_mini = deep_clone(self.tank)
	self.tank_mini.weapon.mini = {}
	self.tank_mini.move_speed = {
		stand = {
			walk = {
				ntl = {
					strafe = 60,
					fwd = 72,
					bwd = 56
				},
				hos = {
					strafe = 60,
					fwd = 72,
					bwd = 56
				},
				cbt = {
					strafe = 60,
					fwd = 72,
					bwd = 56
				}
			},
			run = {
				hos = {
					strafe = 70,
					fwd = 72,
					bwd = 56
				},
				cbt = {
					strafe = 50,
					fwd = 72,
					bwd = 60
				}
			}
		},
		crouch = {
			walk = {
				hos = {
					strafe = 60,
					fwd = 72,
					bwd = 56
				},
				cbt = {
					strafe = 60,
					fwd = 72,
					bwd = 56
				}
			},
			run = {
				hos = {
					strafe = 65,
					fwd = 72,
					bwd = 56
				},
				cbt = {
					strafe = 50,
					fwd = 72,
					bwd = 60
				}
			}
		}
	}
	self.tank_mini.weapon.mini.aim_delay = {
		0.0,
		0.0
	}
	self.tank_mini.weapon.mini.focus_delay = 0
	self.tank_mini.weapon.mini.focus_dis = 800
	self.tank_mini.weapon.mini.spread = 20
	self.tank_mini.weapon.mini.miss_dis = 40
	self.tank_mini.weapon.mini.RELOAD_SPEED = 0.5
	self.tank_mini.weapon.mini.melee_speed = 1
	self.tank_mini.weapon.mini.melee_dmg = 25
	self.tank_mini.weapon.mini.melee_retry_delay = {
		1,
		2
	}
	self.tank_mini.weapon.mini.range = {
		optimal = 2500,
		far = 5000,
		close = 1000
	}
	self.tank_mini.weapon.mini.autofire_rounds = {
		50,
		100
	}
	self.tank_mini.weapon.mini.FALLOFF = {
		{
			dmg_mul = 5,
			r = 100,
			acc = {
				0.1,
				0.15
			},
			recoil = {
				2,
				2
			},
			mode = {
				0,
				0,
				0,
				1
			},
			autofire_rounds = {
				500,
				700
			}
		},
		{
			dmg_mul = 4,
			r = 500,
			acc = {
				0.05,
				0.1
			},
			recoil = {
				1.5,
				1.75
			},
			mode = {
				0,
				0,
				0,
				1
			},
			autofire_rounds = {
				500,
				500
			}
		},
		{
			dmg_mul = 3.5,
			r = 1000,
			acc = {
				0.04,
				0.075
			},
			recoil = {
				1.2,
				1.5
			},
			mode = {
				0,
				0,
				0,
				1
			},
			autofire_rounds = {
				300,
				500
			}
		},
		{
			dmg_mul = 3,
			r = 2000,
			acc = {
				0.025,
				0.05
			},
			recoil = {
				0.7,
				1
			},
			mode = {
				0,
				0,
				0,
				1
			},
			autofire_rounds = {
				100,
				300
			}
		},
		{
			dmg_mul = 3,
			r = 3000,
			acc = {
				0.01,
				0.025
			},
			recoil = {
				0.5,
				0.7
			},
			mode = {
				0,
				0,
				0,
				1
			},
			autofire_rounds = {
				40,
				100
			}
		}
	}

	table.insert(self._enemy_list, "tank")
	table.insert(self._enemy_list, "tank_hw")
	table.insert(self._enemy_list, "tank_medic")
	table.insert(self._enemy_list, "tank_mini")
end

function CharacterTweakData:_init_spooc(presets)
	self.spooc = deep_clone(presets.base)
	self.spooc.tags = {
		"law",
		"spooc",
		"special"
	}
	self.spooc.experience = {}
	self.spooc.weapon = deep_clone(presets.weapon.good)
	self.spooc.detection = presets.detection.normal
	self.spooc.HEALTH_INIT = 60
	self.spooc.headshot_dmg_mul = 6
	self.spooc.move_speed = presets.move_speed.lightning
	self.spooc.no_retreat = true
	self.spooc.no_arrest = true
	self.spooc.damage.hurt_severity = presets.hurt_severities.only_fire_and_poison_hurts
	self.spooc.surrender_break_time = {
		4,
		6
	}
	self.spooc.suppression = nil
	self.spooc.surrender = presets.surrender.always
	self.spooc.priority_shout = "f33"
	self.spooc.priority_shout_max_dis = 700
	self.spooc.rescue_hostages = false
	self.spooc.spooc_attack_timeout = {
		10,
		10
	}
	self.spooc.spooc_attack_beating_time = {
		3,
		3
	}
	self.spooc.spooc_attack_use_smoke_chance = 1
	self.spooc.weapon_voice = "3"
	self.spooc.experience.cable_tie = "tie_swat"
	self.spooc.speech_prefix_p1 = self._prefix_data_p1.cloaker()
	self.spooc.speech_prefix_count = nil
	self.spooc.access = "spooc"
	self.spooc.use_animation_on_fire_damage = false
	self.spooc.flammable = true
	self.spooc.dodge = presets.dodge.ninja
	self.spooc.dodge_with_grenade = {
		smoke = {
			duration = {
				10,
				20
			}
		},
		check = function (t, nr_grenades_used)
			local delay_till_next_use = math.lerp(17, 45, math.min(1, (nr_grenades_used or 0) / 4))
			local chance = math.lerp(1, 0.5, math.min(1, (nr_grenades_used or 0) / 10))

			if math.random() < chance then
				return true, t + delay_till_next_use
			end

			return false, t + delay_till_next_use
		end
	}
	self.spooc.chatter = presets.enemy_chatter.no_chatter
	self.spooc.steal_loot = nil
	self.spooc.spawn_sound_event = "cloaker_presence_loop"
	self.spooc.die_sound_event = "cloaker_presence_stop"
	self.spooc.spooc_sound_events = {
		detect_stop = "cloaker_detect_stop",
		detect = "cloaker_detect_mono"
	}

	table.insert(self._enemy_list, "spooc")
end

function CharacterTweakData:_init_shadow_spooc(presets)
	self.shadow_spooc = deep_clone(presets.base)
	self.shadow_spooc.tags = {
		"law"
	}
	self.shadow_spooc.experience = {}
	self.shadow_spooc.weapon = deep_clone(presets.weapon.good)
	self.shadow_spooc.detection = presets.detection.normal
	self.shadow_spooc.HEALTH_INIT = 100
	self.shadow_spooc.headshot_dmg_mul = 6
	self.shadow_spooc.move_speed = presets.move_speed.lightning
	self.shadow_spooc.no_retreat = true
	self.shadow_spooc.no_arrest = true
	self.shadow_spooc.damage.hurt_severity = presets.hurt_severities.only_fire_and_poison_hurts
	self.shadow_spooc.surrender_break_time = {
		4,
		6
	}
	self.shadow_spooc.suppression = nil
	self.shadow_spooc.surrender = nil
	self.shadow_spooc.silent_priority_shout = "f37"
	self.shadow_spooc.priority_shout_max_dis = 700
	self.shadow_spooc.rescue_hostages = false
	self.shadow_spooc.spooc_attack_timeout = {
		10,
		10
	}
	self.shadow_spooc.spooc_attack_beating_time = {
		3,
		3
	}
	self.shadow_spooc.spooc_attack_use_smoke_chance = 0
	self.shadow_spooc.weapon_voice = "3"
	self.shadow_spooc.experience.cable_tie = "tie_swat"
	self.shadow_spooc.speech_prefix_p1 = "uno_clk"
	self.shadow_spooc.speech_prefix_count = nil
	self.shadow_spooc.access = "spooc"
	self.shadow_spooc.use_radio = nil
	self.shadow_spooc.use_animation_on_fire_damage = false
	self.shadow_spooc.flammable = false
	self.shadow_spooc.dodge = presets.dodge.ninja
	self.shadow_spooc.chatter = presets.enemy_chatter.no_chatter
	self.shadow_spooc.do_not_drop_ammo = true
	self.shadow_spooc.steal_loot = nil
	self.shadow_spooc.spawn_sound_event = "uno_cloaker_presence_loop"
	self.shadow_spooc.die_sound_event = "uno_cloaker_presence_stop"
	self.shadow_spooc.spooc_sound_events = {
		detect_stop = "uno_cloaker_detect_stop",
		taunt_during_assault = "",
		taunt_after_assault = "",
		detect = "uno_cloaker_detect"
	}

	table.insert(self._enemy_list, "shadow_spooc")
end

function CharacterTweakData:_init_shield(presets)
	self.shield = deep_clone(presets.base)
	self.shield.tags = {
		"law",
		"shield",
		"special"
	}
	self.shield.experience = {}
	self.shield.weapon = deep_clone(presets.weapon.good)
	self.shield.detection = presets.detection.normal
	self.shield.HEALTH_INIT = 8
	self.shield.headshot_dmg_mul = 2
	self.shield.allowed_stances = {
		cbt = true
	}
	self.shield.allowed_poses = {
		crouch = true
	}
	self.shield.always_face_enemy = true
	self.shield.move_speed = presets.move_speed.very_fast
	self.shield.no_run_start = true
	self.shield.no_run_stop = true
	self.shield.no_retreat = true
	self.shield.no_arrest = true
	self.shield.surrender = nil
	self.shield.ecm_vulnerability = 0.9
	self.shield.ecm_hurts = {
		ears = {
			max_duration = 9,
			min_duration = 7
		}
	}
	self.shield.priority_shout = "f31"
	self.shield.rescue_hostages = false
	self.shield.deathguard = false
	self.shield.no_equip_anim = true
	self.shield.wall_fwd_offset = 100
	self.shield.damage.explosion_damage_mul = 0.8
	self.shield.calls_in = nil
	self.shield.ignore_medic_revive_animation = true
	self.shield.damage.hurt_severity = presets.hurt_severities.only_explosion_hurts
	self.shield.damage.shield_knocked = true
	self.shield.use_animation_on_fire_damage = false
	self.shield.flammable = true
	self.shield.weapon.is_smg = {
		aim_delay = {
			0,
			0.0
		},
		focus_delay = 0,
		focus_dis = 250,
		spread = 60,
		miss_dis = 15,
		RELOAD_SPEED = 0.5,
		melee_speed = nil,
		melee_dmg = nil,
		melee_retry_delay = nil,
		range = {
			optimal = 1200,
			far = 3000,
			close = 500
		},
		autofire_rounds = presets.weapon.normal.is_smg.autofire_rounds,
		FALLOFF = {
			{
				dmg_mul = 4,
				r = 0,
				acc = {
					0.7,
					0.95
				},
				recoil = {
					0.35,
					0.55
				},
				mode = {
					0.2,
					2,
					4,
					10
				}
			},
			{
				dmg_mul = 3.5,
				r = 700,
				acc = {
					0.5,
					0.75
				},
				recoil = {
					0.35,
					0.55
				},
				mode = {
					0.2,
					2,
					4,
					10
				}
			},
			{
				dmg_mul = 3,
				r = 1000,
				acc = {
					0.45,
					0.65
				},
				recoil = {
					0.35,
					0.55
				},
				mode = {
					0.2,
					2,
					4,
					10
				}
			},
			{
				dmg_mul = 3,
				r = 2000,
				acc = {
					0.3,
					0.5
				},
				recoil = {
					0.35,
					1.2
				},
				mode = {
					2,
					5,
					6,
					4
				}
			},
			{
				dmg_mul = 2,
				r = 3000,
				acc = {
					0.1,
					0.25
				},
				recoil = {
					0.35,
					1.5
				},
				mode = {
					6,
					4,
					2,
					0
				}
			}
		}
	}
	self.shield.weapon.is_pistol = {
		aim_delay = {
			0,
			0.0
		},
		focus_delay = 0,
		focus_dis = 250,
		spread = 60,
		miss_dis = 15,
		RELOAD_SPEED = 0.5,
		melee_speed = nil,
		melee_dmg = nil,
		melee_retry_delay = nil,
		range = {
			optimal = 900,
			far = 3000,
			close = 500
		},
		FALLOFF = {
			{
				dmg_mul = 4,
				r = 0,
				acc = {
					0.5,
					0.9
				},
				recoil = {
					0.35,
					0.55
				},
				mode = {
					1,
					0,
					0,
					0
				}
			},
			{
				dmg_mul = 3,
				r = 700,
				acc = {
					0.5,
					0.8
				},
				recoil = {
					0.35,
					0.55
				},
				mode = {
					1,
					0,
					0,
					0
				}
			},
			{
				dmg_mul = 2.5,
				r = 1000,
				acc = {
					0.4,
					0.6
				},
				recoil = {
					0.35,
					0.55
				},
				mode = {
					1,
					0,
					0,
					0
				}
			},
			{
				dmg_mul = 2,
				r = 2000,
				acc = {
					0.15,
					0.5
				},
				recoil = {
					0.35,
					0.75
				},
				mode = {
					1,
					0,
					0,
					0
				}
			},
			{
				dmg_mul = 2,
				r = 3000,
				acc = {
					0,
					0.25
				},
				recoil = {
					0.35,
					1.5
				},
				mode = {
					1,
					0,
					0,
					0
				}
			}
		}
	}
	self.shield.weapon_voice = "3"
	self.shield.experience.cable_tie = "tie_swat"
	self.shield.speech_prefix_p1 = "l"
	self.shield.speech_prefix_p2 = self._speech_prefix_p2
	self.shield.speech_prefix_count = 4
	self.shield.access = "shield"
	self.shield.chatter = presets.enemy_chatter.shield
	self.shield.announce_incomming = "incomming_shield"
	self.shield.steal_loot = nil
	self.shield.use_animation_on_fire_damage = false
	self.shield.die_sound_event = "shd_x02a_any_3p_01"

	table.insert(self._enemy_list, "shield")
end

function CharacterTweakData:_init_phalanx_minion(presets)
	self.phalanx_minion = deep_clone(self.shield)
	self.phalanx_minion.experience = {}
	self.phalanx_minion.weapon = deep_clone(presets.weapon.normal)
	self.phalanx_minion.detection = presets.detection.normal
	self.phalanx_minion.headshot_dmg_mul = 5
	self.phalanx_minion.HEALTH_INIT = 150
	self.phalanx_minion.DAMAGE_CLAMP_BULLET = 70
	self.phalanx_minion.DAMAGE_CLAMP_EXPLOSION = self.phalanx_minion.DAMAGE_CLAMP_BULLET
	self.phalanx_minion.damage.explosion_damage_mul = 6
	self.phalanx_minion.damage.hurt_severity = presets.hurt_severities.no_hurts
	self.phalanx_minion.can_be_tased = false
	self.phalanx_minion.damage.shield_knocked = false
	self.phalanx_minion.damage.immune_to_knockback = true
	self.phalanx_minion.immune_to_knock_down = true
	self.phalanx_minion.immune_to_concussion = true
	self.phalanx_minion.ignore_medic_revive_animation = true
	self.phalanx_minion.ecm_vulnerability = 1
	self.phalanx_minion.ecm_hurts = {
		ears = {
			max_duration = 3,
			min_duration = 2
		}
	}
	self.phalanx_minion.priority_shout = "f45"

	table.insert(self._enemy_list, "phalanx_minion")
end

function CharacterTweakData:_init_phalanx_vip(presets)
	self.phalanx_vip = deep_clone(self.phalanx_minion)

	table.insert(self.phalanx_vip.tags, "phalanx_vip")

	self.phalanx_vip.LOWER_HEALTH_PERCENTAGE_LIMIT = 1
	self.phalanx_vip.FINAL_LOWER_HEALTH_PERCENTAGE_LIMIT = 0.2
	self.phalanx_vip.HEALTH_INIT = 300
	self.phalanx_vip.DAMAGE_CLAMP_BULLET = 100
	self.phalanx_vip.DAMAGE_CLAMP_EXPLOSION = self.phalanx_vip.DAMAGE_CLAMP_BULLET
	self.phalanx_vip.can_be_tased = false
	self.phalanx_vip.immune_to_knock_down = true
	self.phalanx_vip.immune_to_concussion = true

	table.insert(self._enemy_list, "phalanx_vip")
end

function CharacterTweakData:_init_taser(presets)
	self.taser = deep_clone(presets.base)
	self.taser.tags = {
		"law",
		"taser",
		"special"
	}
	self.taser.experience = {}
	self.taser.weapon = {
		is_rifle = {
			melee_speed = 0.5,
			miss_dis = 40,
			RELOAD_SPEED = 0.5,
			spread = 20,
			tase_sphere_cast_radius = 30,
			melee_dmg = 10,
			tase_distance = 1500,
			focus_dis = 200,
			focus_delay = 0,
			aim_delay = {
				0.0,
				0.0
			},
			melee_retry_delay = {
				1,
				2
			},
			aim_delay_tase = {
				0,
				0
			},
			range = {
				optimal = 2000,
				far = 5000,
				close = 1000
			},
			autofire_rounds = presets.weapon.normal.is_rifle.autofire_rounds,
			FALLOFF = {
				{
					dmg_mul = 3,
					r = 100,
					acc = {
						0.6,
						0.9
					},
					recoil = {
						0.4,
						0.7
					},
					mode = {
						0,
						3,
						3,
						1
					}
				},
				{
					dmg_mul = 2.5,
					r = 500,
					acc = {
						0.75,
						0.95
					},
					recoil = {
						0.35,
						0.7
					},
					mode = {
						0,
						3,
						3,
						1
					}
				},
				{
					dmg_mul = 2,
					r = 1000,
					acc = {
						0.65,
						0.95
					},
					recoil = {
						0.35,
						0.75
					},
					mode = {
						1,
						2,
						2,
						0
					}
				},
				{
					dmg_mul = 1.25,
					r = 2000,
					acc = {
						0.65,
						0.8
					},
					recoil = {
						0.4,
						1.2
					},
					mode = {
						3,
						2,
						2,
						0
					}
				},
				{
					dmg_mul = 1,
					r = 3000,
					acc = {
						0.45,
						0.6
					},
					recoil = {
						1.5,
						3
					},
					mode = {
						3,
						1,
						1,
						0
					}
				}
			}
		}
	}
	self.taser.detection = presets.detection.normal
	self.taser.HEALTH_INIT = 30
	self.taser.headshot_dmg_mul = 2
	self.taser.move_speed = presets.move_speed.very_fast
	self.taser.no_retreat = true
	self.taser.no_arrest = true
	self.taser.surrender = presets.surrender.always
	self.taser.ecm_vulnerability = 0.9
	self.taser.ecm_hurts = {
		ears = {
			max_duration = 8,
			min_duration = 6
		}
	}
	self.taser.surrender_break_time = {
		4,
		6
	}
	self.taser.suppression = nil
	self.taser.weapon_voice = "3"
	self.taser.experience.cable_tie = "tie_swat"
	self.taser.speech_prefix_p1 = self._prefix_data_p1.taser()
	self.taser.speech_prefix_p2 = nil
	self.taser.speech_prefix_count = nil
	self.taser.access = "taser"
	self.taser.dodge = presets.dodge.athletic
	self.taser.priority_shout = "f32"
	self.taser.rescue_hostages = false
	self.taser.deathguard = true
	self.taser.chatter = {
		retreat = true,
		aggressive = true,
		contact = true
	}
	self.taser.announce_incomming = "incomming_taser"
	self.taser.steal_loot = nil
	self.taser.special_deaths = {
		bullet = {
			[("head"):id():key()] = {
				sequence = "kill_tazer_headshot",
				special_comment = "x01",
				weapon_id = "model70",
				character_name = "bodhi"
			}
		}
	}

	table.insert(self._enemy_list, "taser")
end
