#### COMBAT TACTICS ###########################################################
#
# NOTE: tactics must start with "tactic_" in their name to work with techs.
###############################################################################

phases = { # phase = no is the standard phase
	close_combat
	tactical_withdrawal
	seize_bridge
	hold_bridge
	city_outskirts
	inner_city
	seize_fort
	take_city
}

tactic_basic_attack = {

	is_attacker = yes
	trigger = { # combined scope for both country and combatant
		is_attacker = yes
		phase = no
	}
	
	active = yes

	base =  { factor = 4 }
	picture = attack
	
	countered_by = tactic_counterattack

	attacker = 0.05
}

tactic_basic_defend = {
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = no
	}
	
	active = yes
	
	base =  { factor = 4 }
	picture = defend
	
	defender = 0.05
}

tactic_multiple_lines = {
	is_attacker = no
	trigger = {
		phase = no
		is_attacker = no
		AND = {
			defense_skill_level < 6
			planning_skill_level < 6
		}
	}
	
	active = yes
	
	base =  { factor = 2 }
	picture = multiple_lines
	
	defender = 0.10
}

tactic_multiple_lines_2 = {
	is_attacker = no
	trigger = {
		phase = no
		is_attacker = no
		OR = {
			defense_skill_level > 4
			planning_skill_level > 4
		}
	}
	
	active = yes
	
	base =  { factor = 2 }
	picture = multiple_lines_2
	
	defender = 0.15
}

tactic_extensive_minefields = {
	is_attacker = no
	trigger = {
		phase = no
		is_attacker = no
		OWNER = { has_template_containing_unit = engineer }
	}

	active = yes

	base = {
		factor = 2
	}

	picture = extensive_minefields

	defender = 0.00
	attacker_movement_speed = -0.3
}


tactic_counterattack = { # counters basic attack, assault
	is_attacker = no
	trigger = {
		is_attacker = no
		skill_advantage > 0
		phase = no
	}
	
	active = yes
	
	base =  {
		factor = 4
		modifier = {
			add = 4
			has_trait = unyielding_defender
		}
	}
	
	picture = counterattack
	
	countered_by = tactic_elastic_offensive
	
	defender = 0.25
}


tactic_assault = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = no
	}
	
	active = yes
	
	base =  {
		factor = 2
		modifier = {
			add = 2

			has_trait = aggressive_assaulter
		}

		modifier = {
			factor = 0.2

			NOT = { is_fighting_in_terrain = urban }
		}

	} #Revisit ideally this should be more common in urban terrain
	
	picture = assault
	countered_by = tactic_counterattack
	
	phase = close_combat #changes phase to close combat
	
	attacker = 0.25			#attacker gets a bonus to doing damage
}
###close combat tactics here
tactic_cc_attack = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = close_combat
	}
	
	active = yes
	
	base =  { factor = 4 }
	picture = cc_attack
	display_phase = close_combat

	attacker = 0.1			#attacker gets a bonus to doing damage
	defender = 0.05
}
tactic_cc_defend = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = close_combat
	}
	
	active = yes
	
	base =  { factor = 4 }
	picture = cc_defend
	display_phase = close_combat

	attacker = 0.05
	defender = 0.1			#defender gets a bonus to doing damage
}
tactic_cc_storm = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = close_combat
	}
	
	active = yes
	
	base =  { factor = 2 }
	picture = cc_storm
	display_phase = close_combat

	attacker = 0.2			#attacker gets a bonus to doing damage
	defender = 0.2
}
tactic_cc_local_strong_point = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = close_combat
	}
	
	active = yes
	display_phase = close_combat

	base =  { factor = 2 }
	picture = cc_local_strong_point
	
	attacker = -0.2			#attacker gets a penalty to doing damage
}
tactic_cc_withdraw = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = close_combat
	}
	
	active = yes
	
	base =  { factor = 1 }
	picture = cc_withdraw
	display_phase = close_combat

	phase = no #changes phase to no
	
	attacker = -0.05
	defender = -0.05
}

tactic_terrain_attack = {
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = no
		OR = {
			AND = {
				is_fighting_in_terrain = marsh
				has_trait = swamp_fox
			}
			AND = {
				is_fighting_in_terrain = desert
				has_trait = desert_fox
			}
			AND = {
				is_fighting_in_terrain = hills
				has_trait = hill_fighter
			}
			AND = {
				is_fighting_in_terrain = forest
				has_trait = ranger
			}
		}
	}
	
	active = yes
	
	base =  { factor = 4 }
	picture = terrain_attack

	attacker = 0.10
	defender = -0.10
	attacker_movement_speed = 0.15
}

tactic_terrain_defense = {
	is_attacker = no
	trigger = {
		is_attacker = no #only god knows why it wants it twice
		phase = no
		OR = {
			AND = {
				is_fighting_in_terrain = marsh
				has_trait = swamp_fox
			}
			AND = {
				is_fighting_in_terrain = desert
				has_trait = desert_fox
			}
			AND = {
				is_fighting_in_terrain = hills
				has_trait = hill_fighter
			}
			AND = {
				is_fighting_in_terrain = forest
				has_trait = ranger
			}
		}
	}
	
	active = yes
	
	base =  { factor = 4 }
	picture = terrain_defense

	attacker = -0.10
	defender = 0.10
	attacker_movement_speed = -0.15
}

tactic_encirclement = {
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = no
		frontage_full = yes
		has_reserves = yes
		OR = {
			skill_advantage > 0
			has_trait = panzer_leader
			has_trait = trickster
		}
	}
	
	active = yes
	
	base =  { 
		factor = 4
		modifier = {
			add = 4
			OR = {
				has_trait = panzer_expert
				has_trait = combined_arms_expert
			}
		}
	}
	
	picture = encircle
	countered_by = tactic_tactical_withdrawal

	combat_width = 0.5		#increased combat_width
	attacker = 0.25
	defender = 0.05
}

tactic_delay = {
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = no
	}
	
	active = no
	
	base =  {
		factor = 4
	}
	picture = delay
	
	countered_by = tactic_shock
	countered_by = tactic_mechanized_assault
	countered_by = tactic_piecemeal_attack
	
	attacker_movement_speed = -0.25		#
	attacker = -0.25
	defender = -0.15
}

tactic_shock = { #counters delay
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = no
	}
	
	active = yes
	
	base =  {
		factor = 4
		modifier = {
			add = 4
			has_trait = aggressive_assaulter
		}
	}
	picture = shock
	countered_by = tactic_ambush
	
	defender = -0.25
}

tactic_tactical_withdrawal = { #counters encirclement
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = no
		OR = {
			skill_advantage > 0
			has_trait = trickster
		}
	}
	
	active = no
	
	base =  {
		factor = 4
	}
	picture = withdraw
	
	phase = tactical_withdrawal
	
	countered_by = tactic_infantry_charge
	
	combat_width = -0.25
	attacker = -0.25
	defender = -0.05
}
###tactical withdrawal tactics
tactic_tw_attack = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = tactical_withdrawal
	}
	
	base =  { factor = 4 }
	picture = tw_attack
	display_phase = tactical_withdrawal
	
	combat_width = -0.25	
	attacker = -0.25
	defender = -0.1
}
tactic_tw_defend = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = tactical_withdrawal
	}
	
	base =  { factor = 4 }
	picture = tw_defend
	display_phase = tactical_withdrawal
	
	combat_width = -0.25		
	attacker = -0.3
	defender = -0.05
}
tactic_tw_chase = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = tactical_withdrawal
	}
	
	base =  { factor = 4 }
	picture = tw_chase
	display_phase = tactical_withdrawal
	
	
	combat_width = -0.25		
	attacker = -0.15
	defender = -0.05
}
tactic_tw_evade = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = tactical_withdrawal
	}
	
	base =  { factor = 4 }
	picture = tw_evade
	display_phase = tactical_withdrawal
	
	
	combat_width = -0.25		
	attacker = -0.4
	defender = -0.1
}
tactic_tw_intercept = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = tactical_withdrawal
	}
	
	base =  { factor = 4 }
	picture = tw_intercept
	display_phase = tactical_withdrawal
	
	phase = no
		
	attacker = -0.05
	defender = -0.1
}



tactic_breakthrough = { #counters ambush
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = no
		OR = {
			hardness > 0.5
			skill_advantage > 1
		}
	}
	
	active = no
	
	base =  { factor = 4 }
	picture = breakthrough
	
	countered_by = tactic_backhand_blow
	
	attacker_movement_speed = 0.5
	attacker = 0.25
	defender = -0.15
}

tactic_ambush = { #counters shock
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = no
		OR = {
			skill_advantage > 1
			skill > 2
			has_trait = trickster
		}
	}
	
	active = yes
	
	base =  { factor = 4 }
	picture = ambush
	countered_by = tactic_breakthrough
	
	attacker = -0.25
}

tactic_blitz = {
	is_attacker = yes
	trigger = {
		is_attacker = yes
		hardness > 0.5
		phase = no
		OR = {
			skill > 2
			has_trait = panzer_leader
			skill_advantage > 1
		}
		OWNER = { NOT = { has_tech = masterful_blitz } } #Soviet improved version of blitz will replace this
	}
	
	active = no
	
	base =  { 
		factor = 4
		modifier = {
			add = 4
			OR = {
				has_trait = panzer_expert
				has_trait = combined_arms_expert
			}
		}
	}
	
	picture = blitz
	countered_by = tactic_elastic_defense
	
	attacker_movement_speed = 0.5
	attacker = 0.15
	defender = -0.15
}


tactic_elastic_defense = { #counters blitz
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = no
		OR = {
			has_trait = defensive_doctrine
			skill > 2
		}
	}
	
	active = no
	
	base =  {
		factor = 4
	}
	picture = elastic_defence
	
	countered_by = tactic_mechanized_assault
	
	countered_by = tactic_jungle_infiltration
	
	countered_by = tactic_relentless_assault
	
	attacker_movement_speed = -0.25
	attacker = -0.15
	defender = 0.10
}

tactic_backhand_blow = { #counters breakthrough
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = no
		OR = {
			skill > 4
			AND = {
				has_trait = defensive_doctrine
				skill > 3
			}
		}
	}
	
	active = no
	
	base =  { factor = 4 }
	picture = backhand_blow
	
	attacker_movement_speed = -0.3
	attacker = -0.2
	defender = 0.25
}

tactic_seize_bridge = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		has_combat_modifier = river_crossing
		phase = no
		OR = {
			skill > 3
			AND = {
				has_trait = offensive_doctrine
				skill > 2
			}
		}
	}
	
	base =  {
		factor = 2
	}
	picture = seize_bridge
	
	phase = seize_bridge
	
	attacker_movement_speed = 0.1
	combat_width = -0.25
	attacker = 0.2
	defender = -0.05
}
tactic_attacker_sb_hold = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = seize_bridge
	}
	
	base =  { factor = 4 }
	picture = attacker_sb_hold
	display_phase = seize_bridge
	
	combat_width = -0.25
	attacker = 0.2
}
tactic_attacker_sb_skillful_defence = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = seize_bridge
		skill > 4
	}
	
	base =  { factor = 4 }
	picture = attacker_sb_skillful_defence
	display_phase = seize_bridge

	combat_width = -0.25
	attacker = 0.2
	defender = -0.1
}
tactic_defender_sb_assault = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = seize_bridge
	}
	
	base =  { factor = 4 }
	picture = defender_sb_assault
	display_phase = seize_bridge

	combat_width = -0.25
	defender = -0.05
}
tactic_defender_sb_reckless_assault = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = seize_bridge
		skill < 3
	}
	
	base =  { factor = 4 }
	picture = defender_sb_reckless_assault
	display_phase = seize_bridge

	combat_width = -0.25
	attacker = 0.25
	defender = -0.1
}
tactic_defender_sb_retake_bridge = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = seize_bridge
		OR = {
			skill > 2
			has_trait = trickster
		}
	}
	
	countered_by = tactic_attacker_sb_skillful_defence
	phase = hold_bridge
	
	base =  { factor = 4 }
	picture = defender_sb_retake_bridge
	display_phase = seize_bridge

	combat_width = -0.25
	attacker = 0.1
	defender = -0.05
}

tactic_hold_bridge = { 
	is_attacker = no
	trigger = {
		has_combat_modifier = river_crossing
		is_attacker = no
		phase = no
		OR = {
			skill > 2
			has_trait = defensive_doctrine
		}
	}
	
	base =  { factor = 2 }
	picture = tactic_hold_bridge
	
	phase = hold_bridge
	
	attacker_movement_speed = 0.1
	combat_width = -0.25
	attacker = 0.2
	defender = -0.05
}
tactic_attacker_hb_attack = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = hold_bridge
	}
	
	base =  { factor = 4 }
	picture = attacker_hb_attack
	display_phase = hold_bridge

	combat_width = -0.25
	attacker = 0.1
}
tactic_attacker_hb_rush = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = hold_bridge
		skill > 4
	}
	
	base =  { factor = 4 }
	picture = attacker_hb_rush
	display_phase = hold_bridge

	combat_width = -0.25
	attacker = 0.2
}
tactic_attacker_hb_storm = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = hold_bridge
	}
	
	base =  { factor = 2 }
	picture = attacker_hb_storm
	display_phase = hold_bridge

	countered_by = tactic_defender_hb_skillful_defence
	
	phase = seize_bridge
	
	combat_width = -0.25
	attacker = 0.2
	defender = 0.05
}
tactic_defender_hb_hold = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = hold_bridge
		skill < 3
	}
	
	base =  { factor = 2 }
	picture = defender_hb_hold
	display_phase = hold_bridge

	combat_width = -0.25
	attacker = 0.2
	defender = -0.1
}
tactic_defender_hb_skillful_defence = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = hold_bridge
		OR = {
			skill > 2
			has_trait = trickster
		}
	}
	
	base =  { factor = 2 }
	picture = defender_hb_skillful_defence
	display_phase = hold_bridge
	
	combat_width = -0.25
	attacker = 0.1
	defender = 0.05
}
#Anti-Partisan, purpose is to counter guerrilla 
#default phase so everyone can counter meme roaching
#is otherwise identical to normal attack, so that rolling it outside of countering has little impact
##tactic_partisan_sweeps = {
##
##   is_attacker = yes
##    trigger = { # combined scope for both country and combatant
##        is_attacker = yes
##        phase = no
##    }
##    
##    active = yes
##
##   base =  { factor = 2 } #ideally doesn't show up except when countering guerrila warfare
##    
##    picture = partisan_sweeps
##    
##    countered_by = tactic_counterattack #keep so that is otherwise identical to attack
##    attacker = 0.05
##}

tactic_guerrilla_tactics = { #People's army defender tactic. also for German volksturm branch.
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = no
		OR = {
			skill > 2
			has_trait = trickster
		}
	}
	
	active = no
	
	base =  {
		factor = 4
	}
	picture = tactic_guerrilla_tactics
	
	countered_by = tactic_partisan_sweeps
	
	combat_width = -0.5
	attacker = -0.7
	defender = -0.6
}

tactic_human_wave_tactics = { #People's army attacker tactic
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = no
		frontage_full = yes
		has_reserves = yes
	}
	
	active = no
	
	base =  {
		factor = 4
	}
	picture = tactic_human_wave_tactics
	
	countered_by = tactic_grit_defense
	
	combat_width = 0.5
	attacker = 0.1 
	defender = 0.1
}

tactic_banzai_charge = { #Special Japan attacker tactic
	is_attacker = yes
	trigger = {
		tag = JAP
		is_attacker = yes
		phase = no
	}
	
	active = yes
	
	countered_by = tactic_overwhelming_fire
	
	base =  { factor = 4 }
	picture = tactic_banzai_charge
	
	attacker_movement_speed = 0.1
	attacker = 0.25 
	defender = 0.1
}

tactic_infantry_charge = { #GBP -> Infantry attacker tactic
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = no
	}
	
	active = no
	
	base =  {
		factor = 4
	}
	picture = tactic_infantry_charge
		
	attacker = 0.1 
	defender = -0.15
	
}

tactic_planned_attack = { #GBP -> Armor attacker tactic
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = no
	}
	
	active = no
	
	base =  {
		factor = 4
	}
	picture = tactic_planned_attack
	
	attacker = 0.15 
}

tactic_relentless_assault = { #Deep battle attacker tactic
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = no
	}
	
	active = no
	
	base =  {
		factor = 4
	}
	picture = tactic_relentless_assault
	
	attacker_movement_speed = 0.15
	attacker = 0.3
	defender = 0.1	
}

tactic_unexpected_thrust = { #Mobile warfare attacker tactic
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = no
	}
	
	active = no
	
	base =  {
		factor = 4
	}
	picture = tactic_unexpected_thrust
	
	countered_by = tactic_force_in_being
	
	attacker_movement_speed = 0.15
	attacker = 0.15 
}

tactic_overwhelming_fire = { # Counters Banzai charge
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = no
	}
	
	active = no
	
	base =  {
		factor = 2
	}
	picture = tactic_overwhelming_fire
	
	attacker = -0.1
	defender = 0.1
}

tactic_barrage = { #Superior firepower attacker tactic
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = no
	}
	
	active = no
	
	base =  {
		factor = 4
	}
	picture = tactic_barrage
	
	countered_by = tactic_invisible_positions	
	countered_by = tactic_counterbattery_fire
	
	attacker = 0.1
	defender = -0.2	
}

tactic_masterful_blitz = { #Improved version of Blitz for Soviets
	only_show_for = SOV
	
	is_attacker = yes
	trigger = {
		is_attacker = yes
		hardness > 0.5
		phase = no
		OR = {
			skill > 2
			has_trait = panzer_leader
			skill_advantage > 1
		}
	}
	
	active = no
	
	base =  { 
		factor = 4
		modifier = {
			add = 4
			OR = {
				has_trait = panzer_expert
				has_trait = combined_arms_expert
			}
		}
	}
	
	picture = SOV_tank_desant_blitz
	countered_by = tactic_elastic_defense
	
	attacker_movement_speed = 0.5
	combat_width = 0.1
	attacker = 0.2
	defender = -0.2
}

tactic_piecemeal_attack = { #
	
	is_attacker = yes
	trigger = {
		is_attacker = yes
		is_fighting_in_weather = snow
		phase = no
		OWNER = {
			OR = {
				has_tech = ski_troops
			}
		}
		OR = {
			skill > 2
			has_trait = winter_specialist
			skill_advantage > 1
		}
	}
	
	active = yes
	
	base =  { 
		factor = 4
		modifier = {
			add = 4
			OR = {
				has_trait = guerilla_fighter
				has_trait = camouflage_expert
			}
		}
		modifier = {
			add = 4
			OR = {
				has_trait = winter_specialist
			}
		}
	}
	
	picture = piecemeal_attack
	#countered_by = tactic_elastic_defense
	
	attacker_movement_speed = -0.1	
	#combat_width = 0.1
	attacker = 0.2
	defender = -0.05
}

tactic_elastic_offensive = { #
	
	is_attacker = yes
	trigger = {
		is_attacker = yes
		OR = {
			is_fighting_in_terrain = desert
			is_fighting_in_terrain = plains
		}
		phase = no
		OR = {
			skill > 2
			has_trait = desert_fox
			skill_advantage > 1
		}
	}
	
	active = no
	
	base =  { 
		factor = 4
		modifier = {
			add = 4
			OR = {
				has_trait = panzer_leader
				has_trait = combined_arms_expert
			}
		}
		modifier = {
			add = 4
			OR = {
				has_trait = desert_fox
			}
		}
	}
	
	picture = elastic_offensive
	
	countered_by = tactic_tactical_withdrawal
	
	attacker_movement_speed = 0.5	
	#combat_width = 0.1
	attacker = 0.2
	defender = -0.1
}

tactic_jungle_infiltration = { #
	
	is_attacker = yes
	trigger = {
		is_attacker = yes
		is_fighting_in_terrain = jungle
		phase = no
		OWNER = {
			OR = {
				has_tech = TOA_jungle_pioneers_support_tech
				has_tech = marines_jungle_troops
			}
		}
		OR = {
			skill > 2
			has_trait = jungle_rat
			skill_advantage > 1
		}
	}
	
	active = yes
	
	base =  { 
		factor = 4
		modifier = {
			add = 4
			OR = {
				has_trait = guerilla_fighter
				has_trait = camouflage_expert
			}
		}
		modifier = {
			add = 4
			OR = {
				has_trait = jungle_rat
			}
		}
	}
	
	picture = jungle_infiltration
	#countered_by = tactic_tactical_withdrawal
	
	attacker_movement_speed = -0.25	
	combat_width = -0.2
	attacker = 0.3
	defender = -0.1
}

tactic_mechanized_assault = { #
	
	is_attacker = yes
	trigger = {
		is_attacker = yes
		hardness > 0.5
		hardness < 0.79		
		phase = no		
	}
	
	active = no
	
	base =  { 
		factor = 4
		modifier = {
			add = 4
			OR = {
				has_trait = cavalry_expert
				has_trait = combined_arms_expert
			}
		}
	}
	
	picture = mechanized_assault
	#countered_by = tactic_elastic_defense
	
	attacker_movement_speed = 0.3	
	combat_width = 0.1
	attacker = 0.1
	defender = -0.2
}

tactic_modern_blitz = { 
	
	is_attacker = yes
	trigger = {
		is_attacker = yes
		hardness > 0.5
		phase = no
		OR = {
			skill > 2
			has_trait = panzer_leader
			skill_advantage > 1
		}
	}
	
	active = no
	
	base =  { 
		factor = 4
		modifier = {
			add = 4
			OR = {
				has_trait = panzer_leader
				has_trait = combined_arms_expert
			}
		}
		modifier = {
			add = 4
			OR = {
				has_trait = panzer_expert
			}
		}
	}
	
	picture = modern_blitz
	
	#countered_by = tactic_mobile_defense
	#countered_by = tactic_elastic_defense
	
	attacker_movement_speed = 0.5
	combat_width = 0.15
	attacker = 0.25
	defender = -0.1
}

tactic_paradrop_infiltration = { 
	
	is_attacker = yes
	trigger = {
		is_attacker = yes
		has_combat_modifier = paradrop
		phase = no
		OR = {
			skill > 2
			has_trait = paratrooper
			skill_advantage > 1
		}
	}
	
	active = no
	
	base =  { 
		factor = 4
		modifier = {
			add = 4
			OR = {
				has_trait = paratrooper
				has_trait = trickster
			}
		}
	}
	
	picture = paradrop_infiltration
		
	#attacker_movement_speed = 0.5
	combat_width = -0.5
	attacker = 0.3
	defender = -0.1
}

# tactic_vertical_envelopment = { 
	
	# is_attacker = yes
	# trigger = {
		# is_attacker = yes
		# phase = no
		# unit_trigger = {
			# division_has_majority_template = airmobile
		# }
	# }
	
	# active = yes
	
	# base =  { 
		# factor = 4
	# }
	
	# picture = vertical_envelopment
		
	# attacker_movement_speed = 0.3
	# combat_width = -0.5
	# attacker = 0.3
	# defender = 0.15
# }

# tactic_airmobile_flanking = { 
	
	# is_attacker = yes
	# trigger = {
		# is_attacker = yes
		# fastest_unit > 6
		# hardness < 0.50
		# phase = no
		# OR = {
			# skill > 2
			# skill_advantage > 1
		# }
	# }
	
	# active = no
	
	# base =  { 
		# factor = 4
		# modifier = {
			# add = 4
			# OR = {
				# has_trait = combined_arms_expert
			# }
		# }
	# }
	
	# picture = airmobile_flanking
		
	# attacker_movement_speed = 0.3
	# #combat_width = -0.5
	# attacker = 0.3
	# #defender = 0.15
# }

# tactic_airmobile_shock = { 
	
	# is_attacker = yes
	# trigger = {
		# is_attacker = yes
		# fastest_unit > 6
		# hardness < 0.50
		# phase = no
		# OR = {
			# skill > 2
			# skill_advantage > 1
		# }
	# }
	
	# active = no
	
	# base =  { 
		# factor = 4
		# modifier = {
			# add = 4
			# OR = {
				# has_trait = offensive_doctrine
			# }
		# }
	# }
	
	# picture = airmobile_shock
		
	# attacker_movement_speed = 0.3
	# combat_width = -0.2
	# attacker = 0.2
	# #defender = 0.15
# }

# tactic_airmobile_invasion = { 
	
	# is_attacker = yes
	# trigger = {
		# is_attacker = yes
		# fastest_unit > 6
		# hardness < 0.50
		# phase = no
		# has_combat_modifier = amphibious_attack
	# }
	
	# active = no
	
	# base =  { 
		# factor = 4
		# modifier = {
			# add = 4
			# OR = {
				# has_trait = commando
				# has_trait = invader
			# }
		# }
	# }
	
	# picture = airmobile_invasion
		
	# attacker_movement_speed = 0.1
	# #combat_width = -0.2
	# attacker = 0.15
	# defender = -0.1
# }

# tactic_air_cavalry_charge = { 
	
	# is_attacker = yes
	# trigger = {
		# is_attacker = yes
		# fastest_unit > 6
		# hardness < 0.50
		# phase = no
		# OR = {
			# is_fighting_in_terrain = desert
			# is_fighting_in_terrain = plains
		# }
	# }
	
	# active = no
	
	# base =  { 
		# factor = 4
		# modifier = {
			# add = 4
			# OR = {
				# has_trait = combined_arms_expert
				# has_trait = offensive_doctrine
			# }
		# }
	# }
	
	# picture = air_cavalry_charge
		
	# attacker_movement_speed = 0.2
	# #combat_width = -0.2
	# attacker = 0.15
	# #defender = -0.1
# }

tactic_paradrop_seize_bridge = { 
	
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = seize_bridge
		has_combat_modifier = paradrop
	}
	
	active = no
	
	base =  { 
		factor = 4
		modifier = {
			add = 4
			OR = {
				has_trait = paratrooper
				has_trait = commando
			}
		}
	}
	
	picture = paradrop_seize_bridge
	
	phase = seize_bridge
	
	#attacker_movement_speed = 0.2
	combat_width = -0.25
	attacker = 0.3
	defender = 0.1
}

tactic_river_fording = { 
	
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = no
		has_combat_modifier = river_crossing
	}
	
	active = yes
	
	base =  { 
		factor = 4
		modifier = {
			add = 4
			OR = {
				has_trait = reckless
				has_trait = harsh_leader
			}
		}
	}
	
	picture = river_fording
		
	attacker_movement_speed = 0.2
	#combat_width = -0.2
	attacker = 0.05
	defender = 0.1
}

# tactic_airmobile_seize_bridge = { 
	
	# is_attacker = yes
	# trigger = {
		# is_attacker = yes
		# phase = no
		# has_combat_modifier = river_crossing
		# fastest_unit > 6
		# hardness < 0.50
		# has_tech = utility_helicopter_1
	# }
	
	# active = no
	
	# base =  { 
		# factor = 4
		# modifier = {
			# add = 4
			# OR = {
				# has_trait = commando
				# has_trait = combined_arms_expert
			# }
		# }
	# }
	
	# picture = airmobile_seize_bridge
	
	# phase = seize_bridge
	
	# attacker_movement_speed = 0.2
	# combat_width = -0.25
	# attacker = 0.2
	# #defender = 0.1
# }


tactic_seize_fort = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		has_combat_modifier = fort_attack
	}
	
	base =  { 
		factor = 16
	}
	
	phase = seize_fort
		
	picture = fort_attack
					
	active = yes
	
	countered_by = tactic_sf_danger_close_support
	
	attacker_movement_speed = -0.1
	combat_width = -0.4
	attacker = 0.1
	defender = 0.2
}

tactic_sf_fort_attack = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = seize_fort
	}
	
	base =  { 
		factor = 4 
	}
		
	picture = fort_attack
					
	active = yes
	
	display_phase = seize_fort
	
	countered_by = tactic_sf_danger_close_support
	
	#attacker_movement_speed = -0.2
	combat_width = -0.3
	#attacker = 0.1
	defender = 0.2
}

tactic_sf_rush_fort = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = seize_fort
	}
	
	base =  { 
		factor = 4 
		modifier = {
			add = 4
			OR = {
				has_trait = harsh_leader
			}
		}
	}
		
	active = yes
		
	picture = rush_fort
			
	display_phase = seize_fort
		
	countered_by = tactic_sf_danger_close_support
	
	attacker_movement_speed = 0.1
	combat_width = -0.3
	attacker = 0.05
	defender = 0.3
}

tactic_sf_storm_fort = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = seize_fort
	}
	
	base =  { 
		factor = 3 
		modifier = {
			add = 4
			OR = {
				has_trait = reckless
			}
		}
	}
		
	active = yes
		
	picture = storm_fort
	
	countered_by = tactic_sf_danger_close_support
	
	display_phase = seize_fort
		
	attacker_movement_speed = 0.2
	combat_width = -0.3
	attacker = 0.1
	defender = 0.4
}

tactic_sf_meticulous_approach = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = seize_fort
	}
	
	base =  { 
		factor = 4 
		modifier = {
			add = 4
			OR = {
				has_trait = fortress_buster
				has_trait = engineer
				has_trait = organizer
				has_trait = cautious
			}
		}
	}
		
	active = yes
		
	countered_by = tactic_sf_danger_close_support

	picture = storm_fort
	
	#countered_by = tactic_sf_fort_counterattack
	
	phase = no
	
	display_phase = seize_fort
		
	attacker_movement_speed = -0.2
	combat_width = -0.3
	attacker = 0.15
	defender = 0.2
}

tactic_sf_firepower_shock = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = seize_fort
	}
	
	base =  { 
		factor = 4 
		modifier = {
			add = 4
			OR = {
				has_trait = fortress_buster
				has_trait = engineer
			}
		}
	}
		
	active = no
		
	picture = firepower_shock
	
	##countered_by = tactic_sf_fort_counterattack
	
	phase = no
	
	display_phase = seize_fort
		
	#attacker_movement_speed = -0.2
	combat_width = -0.3
	attacker = 0.2
	defender = 0.1
}

tactic_sf_paradrop_fort_defenses = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = seize_fort
		has_combat_modifier = paradrop
	}
	
	base =  { 
		factor = 4 
		modifier = {
			add = 12
			OR = {
				has_trait = paratrooper
			}
		}
	}
		
	active = yes
		
	picture = paradrop_fort_defenses
	
	##countered_by = tactic_sf_fort_counterattack
	
	phase = no
	
	display_phase = seize_fort
		
	#attacker_movement_speed = -0.2
	combat_width = -0.3
	attacker = 0.2
	defender = 0.15
}

tactic_attacker_hb_bridgelayer_bypass = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = hold_bridge
		OWNER = {
			OR = {
				has_tech = marines_commandoes_mechanised_non_mtg
				has_tech = marines_commandoes_mechanised
			}
		}
		OR = {
			skill_advantage > 0
			skill > 1
		}
	}
	
	active = no
	
	base =  { factor = 4 
		modifier = {
			add = 4
			OR = {
				has_trait = engineer
				has_trait = commando
				has_trait = trickster
				has_trait = invader
			}
		}
		modifier = {
			add = 4
			OR = {
				has_trait = expert_improviser
			}
		}
	}
	
	picture = bridgelayer_bypass
	
	display_phase = hold_bridge
	
	phase = no
	
	combat_width = 0.1
	attacker = 0.15
}

tactic_grit_defense = { #
	
	is_attacker = no
	trigger = {
		is_attacker = no
		is_fighting_in_weather = snow
		phase = no
		dig_in > 0.5
		OR = {
			skill > 2
			has_trait = winter_specialist
			skill_advantage > 1
		}
		OWNER = {
			has_tech = ski_troops
		}
	}
	
	active = no
	
	base =  { 
		factor = 4
		modifier = {
			add = 4
			OR = {
				has_trait = guerilla_fighter
				has_trait = camouflage_expert
			}
		}
		modifier = {
			add = 4
			OR = {
				has_trait = winter_specialist
			}
		}
	}
	
	picture = grit_defense
	#countered_by = tactic_elastic_defense
	
	attacker_movement_speed = -0.3
	combat_width = -0.5
	attacker = -0.3
	defender = 0.4
}

tactic_force_in_being = { #
	
	is_attacker = no
	trigger = {
		is_attacker = no
		OR = {
			is_fighting_in_terrain = desert
			is_fighting_in_terrain = plains
		}
		phase = no
		OR = {
			skill > 1
			has_trait = desert_fox
			skill_advantage > 0
		}
	}
	
	active = no
	
	base =  { 
		factor = 4
		modifier = {
			add = 4
			OR = {
				has_trait = ambusher
				has_trait = organizer
			}
		}
		modifier = {
			add = 4
			OR = {
				has_trait = desert_fox
			}
		}
	}
	
	phase = tactical_withdrawal
	
	picture = force_in_being
	#countered_by = tactic_elastic_defense
	
	attacker_movement_speed = -0.3
	combat_width = -0.25
	attacker = 0.1
	defender = 0.25
}

tactic_invisible_positions = { #
	
	is_attacker = no
	trigger = {
		is_attacker = no
		is_fighting_in_terrain = jungle
		phase = no
		dig_in > 0.5
		OR = {
			skill > 2
			has_trait = jungle_rat
			skill_advantage > 1
		}
		OWNER = {
			OR = {
				has_tech = TOA_jungle_pioneers_support_tech
				has_tech = marines_jungle_troops
			}
		}
	}
	
	active = yes
	
	base =  { 
		factor = 4
		modifier = {
			add = 4
			OR = {
				has_trait = guerilla_fighter
				has_trait = camouflage_expert
			}
		}
		modifier = {
			add = 4
			OR = {
				has_trait = jungle_rat
			}
		}
	}
	
	phase = close_combat
	
	picture = invisible_positions
	#countered_by = tactic_elastic_defense
	
	attacker_movement_speed = -0.2
	combat_width = -0.5
	attacker = -0.5
	defender = 0.5
}

tactic_mechanized_counterattack = { #
	
	is_attacker = no
	trigger = {
		is_attacker = no
		hardness > 0.50
		hardness < 0.79
		phase = no
	}
	
	active = no
	
	base =  { 
		factor = 4
		modifier = {
			add = 4
			OR = {
				has_trait = cavalry_expert
				has_trait = combined_arms_expert
			}
		}
	}
	
	picture = mechanized_counterattack
	#countered_by = tactic_elastic_defense
	
	#attacker_movement_speed = -0.2
	#combat_width = -0.5
	attacker = -0.2
	defender = 0.2
}

# tactic_mobile_defense = { #
	
	# is_attacker = no
	# trigger = {
		# is_attacker = no
		# fastest_unit > 10
		# phase = no
	# }
	
	# active = no
	
	# base =  { 
		# factor = 4
		# modifier = {
			# add = 4
			# OR = {
				# has_trait = cavalry_expert
				# has_trait = combined_arms_expert
			# }
		# }
	# }
	
	# picture = mobile_defense
	
	# countered_by = tactic_human_wave_tactics
	
	# phase = tactical_withdrawal
	
	# attacker_movement_speed = -0.25
	# #combat_width = -0.5
	# attacker = 0.15
	# defender = -0.15
# }

tactic_dispersed_drop = { #
	
	is_attacker = no
	trigger = {
		is_attacker = no
		OWNER = { has_template_majority_unit = paratrooper }
		phase = no
	}
	
	active = no
	
	base =  { 
		factor = 4
		modifier = {
			add = 4
			OR = {
				has_trait = paratrooper
				has_trait = trickster
			}
		}
	}
	
	picture = dispersed_drop
	
	#countered_by = tactic_elastic_defense
	
	
	attacker_movement_speed = -0.25
	combat_width = -0.5
	attacker = 0.2
	defender = 0.2
}

tactic_counterbattery_fire = { #
	
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = no
		OR = {
			skill > 2
			skill_advantage > 1
		}
	}
	
	active = no
	
	base =  { 
		factor = 1
		modifier = {
			add = 8
			OR = {
				has_trait = expert_improviser
				has_trait = defensive_doctrine
			}
		}
	}
	
	picture = counterbattery_fire
	
	#countered_by = tactic_elastic_defense
		
	#attacker_movement_speed = -0.25
	#combat_width = -0.5
	attacker = -0.3
	#defender = 0.2
}

# tactic_aerial_withdraw = { #
	
	# is_attacker = no
	# trigger = {
		# is_attacker = no
		# phase = no
		# fastest_unit > 6
		# hardness < 0.50
		# has_tech = utility_helicopter_1
	# }
	
	# active = no
	
	# base =  { 
		# factor = 4
		# modifier = {
			# add = 8
			# OR = {
				# has_trait = defensive_doctrine
			# }
		# }
	# }
	
	# picture = aerial_withdraw
	
	# #countered_by = tactic_elastic_defense
		
	# attacker_movement_speed = -0.2
	# combat_width = -0.5
	# attacker = -0.5
	# defender = -0.2
# }

# tactic_airmobile_reinforcements = { #
	
	# is_attacker = no
	# trigger = {
		# dig_in > 0.5
		# is_attacker = no
		# phase = no
		# fastest_unit > 6
		# hardness < 0.50
		# has_tech = utility_helicopter_1
	# }
	
	# active = no
	
	# base =  { 
		# factor = 4
		# modifier = {
			# add = 8
			# OR = {
				# has_trait = defensive_doctrine
			# }
		# }
	# }
	
	# picture = airmobile_reinforcements
	
	# #countered_by = tactic_elastic_defense
		
	# attacker_movement_speed = -0.2
	# combat_width = -0.2
	# attacker = -0.1
	# defender = 0.3
# }

tactic_cc_invisible_positions = { #
	
	is_attacker = no
	trigger = {
		is_attacker = no
		is_fighting_in_terrain = jungle
		phase = close_combat
		dig_in > 0.5
		OR = {
			skill > 2
			has_trait = jungle_rat
			skill_advantage > 1
		}
		OWNER = {
			OR = {
				has_tech = TOA_jungle_pioneers_support_tech
				has_tech = marines_jungle_troops
			}
		}
	}
	
	active = yes
	
	base =  { 
		factor = 4
		modifier = {
			add = 4
			OR = {
				has_trait = guerilla_fighter
				has_trait = camouflage_expert
			}
		}
		modifier = {
			add = 4
			OR = {
				has_trait = jungle_rat
			}
		}
	}
	
	phase = close_combat
	
	picture = invisible_positions_close_combat
	#countered_by = tactic_elastic_defense
	
	attacker_movement_speed = -0.25
	combat_width = -0.5
	attacker = -0.5
	defender = 0.5
}

tactic_co_prepared_defenses = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = city_outskirts
		is_fighting_in_terrain = urban
		dig_in > 0.5
	}
	
	base =  { 
		factor = 4 
		modifier = {
			add = 4
			OR = {
				has_trait = organizer
				has_trait = cautious
			}
		}
		modifier = {
			add = 4
			OR = {
				has_trait = defensive_doctrine
			}
		}
		modifier = {
			add = 4
			OR = {
				skill > 2
				skill_advantage > 1
			}
		}
	}
	
	picture = prepared_defenses	
	
	active = yes
	
	#countered_by = tactic_co_prepared_defenses
	
	display_phase = city_outskirts
		
	attacker_movement_speed = -0.2
	combat_width = -0.25
	#attacker = 0.1
	defender = 0.2
}


tactic_ic_urban_guerilla = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = inner_city
		is_fighting_in_terrain = urban
	}
	
	base =  { 
		factor = 4 
		modifier = {
			add = 4
			OR = {
				has_trait = guerilla_fighter
				has_trait = ambusher
				has_trait = skirmisher
			}
		}
	}
	
	active = yes
	
	picture = urban_guerilla
	
	#countered_by = tactic_co_prepared_defenses
		
	display_phase = inner_city
		
	attacker_movement_speed = -0.2
	combat_width = -0.5
	attacker = -0.4
	defender = 0.4
}

tactic_ic_urban_elastic_defense = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = inner_city
		is_fighting_in_terrain = urban
	}
	
	base =  { 
		factor = 4 
		modifier = {
			add = 4
			OR = {
				has_trait = trickster
			}
		}
	}
	
	active = yes
	
	picture = urban_elastic_defense
	
	#countered_by = tactic_co_prepared_defenses
		
	display_phase = inner_city
		
	attacker_movement_speed = -0.1
	combat_width = -0.5
	attacker = -0.15
	defender = -0.05
}

tactic_ic_expel_invaders = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = inner_city
		is_fighting_in_terrain = urban
	}
	
	base =  { 
		factor = 4 
		modifier = {
			add = 4
			OR = {
				skill > 2
				skill_advantage > 1
			}
		}
	}
	
	active = yes
	
	picture = expel_invaders
	
	#countered_by = tactic_co_prepared_defenses
		
	display_phase = inner_city

	phase = city_outskirts
		
	#attacker_movement_speed = -0.1
	combat_width = -0.5
	attacker = -0.1
	defender = 0.2
}

tactic_sf_integrated_defenses = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = seize_fort
	}
	
	base =  { 
		factor = 4 
		modifier = {
			add = 4
			has_trait = engineer
		}
	}
	
	active = yes
		
	picture = integrated_defenses
			
	display_phase = seize_fort
		
	attacker_movement_speed = -0.2
	combat_width = -0.3
	attacker = 0.1
	defender = 0.3
}

tactic_sf_hold_fort = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = seize_fort
	}
	
	base =  { 
		factor = 4 
		modifier = {
			add = 4
			has_trait = defensive_doctrine
		}
	}
	
	active = yes
		
	picture = hold_fort
			
	display_phase = seize_fort
		
	attacker_movement_speed = -0.1
	combat_width = -0.3
	#attacker = 0.1
	defender = 0.2
}

tactic_sf_danger_close_support = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = seize_fort
	}
	
	base =  { 
		factor = 4 
		modifier = {
			add = 4
			has_trait = trickster
		}
	}
	
	active = yes
		
	picture = danger_close_support
			
	display_phase = seize_fort
		
	#attacker_movement_speed = -0.1
	combat_width = -0.3
	attacker = 0.3
	defender = 0.4
}

tactic_sf_fort_counterattack = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = seize_fort
		has_reserves = yes
	}
	
	base =  { 
		factor = 4 
		modifier = {
			add = 4
			has_trait = trickster
		}
	}
	
	display_phase = seize_fort
	
	active = yes
		
	picture = fort_counterattack
			
	#display_phase = default
		
	#attacker_movement_speed = -0.1
	combat_width = -0.15
	attacker = 0.2
	defender = 0.2
}

tactic_slow_tank_attack = { #Unique Aquileian tank attack tactic
	is_attacker = yes
	trigger = {
		is_attacker = yes
		hardness > 0.5
		phase = no
		OR = {
			skill > 2
			has_trait = panzer_leader
			skill_advantage > 1
		}
	}

	active = no

	base =  {
		factor = 4
		modifier = {
			add = 4
			has_trait = panzer_expert
		}
	}

	picture = blitz
	#countered_by = tactic_elastic_defense

	attacker_movement_speed = -0.5
	attacker = 0.25
	defender = -0.25
}

tactic_unyielding_defense = {	#Unique Aquileian infantry defense tactic
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = no
		OR = {
			has_trait = defensive_doctrine
			skill > 2
		}
	}

	active = no

	base =  {
		factor = 4
		modifier = {
			add = 4
			has_trait = unyielding_defender
		}
	}
	picture = elastic_defence
	#countered_by = tactic_encirclement
	
	attacker = 0.15
	defender = 0.35
}

tactic_inspired_assault = { #Unique Aquileian infantry attack tactic
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = no
	}

	active = no

	base =  {
		factor = 2
		modifier = {
			add = 2

			has_trait = aggressive_assaulter
		}

	}

	picture = assault
	#countered_by = tactic_counterattack

	attacker = 0.30
	attacker_movement_speed = 0.10
}

tactic_poison_ammo_ambush = { #zebra tactics
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = no
	}
	
	active = no

	base =  { 
		factor = 4 
		modifier = {
			factor = 0
			NOT = {
				is_fighting_in_terrain = jungle
				is_fighting_in_terrain = forest
				is_fighting_in_terrain = urban
			}
		}
	}

	picture = ambush

	combat_width = -0.2
	attacker = -0.3
}
tactic_zebra_steppe_charge = { #zebra tactics
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = no
	}
	
	active = no

	base =  { 
		factor = 4 
		modifier = {
			factor = 0
			NOT = {
				is_fighting_in_terrain = plains
				is_fighting_in_terrain = desert
			}
		}
	}

	picture = tactic_human_wave_tactics

	attacker_movement_speed = 0.25
	combat_width = 0.25
	attacker = 0.2
	defender = 0.05
}

tactic_motti_tactics = {
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = no
	}

	active = no

	base =  { factor = 4 }
	picture = tactic_guerrilla_tactics

	combat_width = -0.5
	attacker = -0.8
	defender = -0.5
}

########################
# URBAN ENTRY TACTICS #
########################

tactic_seize_city = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		is_fighting_in_terrain = urban
		phase = no

		# Only switch to city phases once battle is actually engaged
		OR = {
			frontage_full = yes
			has_reserves = yes
		}
	}
	
	base =  {
		factor = 30
	}
	picture = seize_city
		
	active = yes

	phase = city_outskirts
	
	attacker_movement_speed = -0.2
	combat_width = -0.25
	defender = 0.1
}

tactic_hold_city = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		is_fighting_in_terrain = urban
		phase = city_outskirts
	}
	
	base =  {
		factor = 30
	}
	picture = hold_city
		
	active = yes

	#phase = city_outskirts
	
	attacker_movement_speed = -0.2
	combat_width = -0.25
	defender = 0.1
}

########################
# CITY OUTSKIRTS      #
########################

tactic_co_direct_assault = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = city_outskirts
		is_fighting_in_terrain = urban
	}
	
	base =  { 
		factor = 4 
		modifier = {
			add = 4
			OR = {
				has_trait = reckless
				has_trait = old_guard
			}
		}
	}
		
	active = yes
	
	picture = direct_assault
	
	countered_by = tactic_co_prepared_defenses
	
	display_phase = city_outskirts
		
	combat_width = -0.25
	attacker = 0.1
	defender = 0.2
}

tactic_co_overwhelming_attack = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = city_outskirts
		is_fighting_in_terrain = urban

		# Need proper build-up to push into inner city
		frontage_full = yes
		has_reserves = yes
		OR = {
			skill > 3
			skill_advantage > 0
			has_trait = urban_assault_specialist
		}
	}
	
	base =  { 
		factor = 2 
		modifier = {
			add = 3
			OR = { has_trait = urban_assault_specialist }
		}
	}
		
	active = yes
	
	picture = overwhelming_attack
	
	phase = inner_city
	
	display_phase = city_outskirts
		
	combat_width = -0.25
	attacker = 0.2
	defender = 0.3
}

tactic_co_urban_aerial_insertion = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = city_outskirts
		has_combat_modifier = paradrop
		is_fighting_in_terrain = urban
		OR = {
			skill > 2
			has_trait = paratrooper
			has_trait = commando
		}
	}
	
	base =  { 
		factor = 2
		modifier = {
			add = 3
			has_trait = paratrooper
		}
	}
	
	active = yes

	picture = urban_aerial_insertion
	
	phase = inner_city
	
	display_phase = city_outskirts
		
	combat_width = -0.25
	attacker = 0.25
	defender = 0.25
}

tactic_co_prepared_defenses = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = city_outskirts
		is_fighting_in_terrain = urban
		dig_in > 0.5
	}
	
	base =  { 
		factor = 4 
		modifier = {
			add = 4
			OR = {
				has_trait = organizer
				has_trait = cautious
			}
		}
		modifier = {
			add = 4
			OR = { has_trait = defensive_doctrine }
		}
		modifier = {
			add = 4
			OR = {
				skill > 2
				skill_advantage > 1
			}
		}
	}
	
	picture = prepared_defenses	
	
	active = yes
	
	display_phase = city_outskirts
		
	attacker_movement_speed = -0.2
	combat_width = -0.25
	defender = 0.2
}

tactic_co_unprepared_defenses = { 
    is_attacker = no

    trigger = {
        is_attacker = no
        phase = city_outskirts
        is_fighting_in_terrain = urban

        # Defender is NOT properly set up
        dig_in < 0.5

        # And either lacking skill OR lacking reserves
        OR = {
            skill < 3
            NOT = { has_reserves = yes }
        }
    }

    base = { 
        factor = 3
    }

    active = yes

    picture = unprepared_defenses

    countered_by = tactic_co_overwhelming_attack

    # Collapse deeper into the city
    phase = inner_city

    display_phase = city_outskirts

    attacker_movement_speed = -0.1
    combat_width = -0.25
    attacker = 0.1
    defender = 0.1
}

########################
# INNER CITY: ENTRY   #
########################

tactic_urban_defense = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		is_fighting_in_terrain = urban
		phase = inner_city
		#province_vp > 3
	}
	
	active = yes
	
	base =  {
		factor = 2
		modifier = {
			factor = 0
			NOT = { is_fighting_in_terrain = urban }
		}
		modifier = {
			factor = 2
			province_vp > 5
		}
		modifier = {
			factor = 3
			has_trait = urban_assault_specialist
		}
		modifier = {
			factor = 1.5
			has_trait = trait_engineer
		}
	} 
	
	picture = tactic_urban_defense
	
	phase = inner_city
	
	attacker = -0.1
	defender = 0.1
	attacker_movement_speed = -0.1
	attacker_org_damage_modifier = -0.2
}

########################
# INNER CITY: ATTACK  #
########################

tactic_ic_door_to_door_advance = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = inner_city
	}
	
	base =  { 
		factor = 4 
		modifier = {
			add = 2
			OR = {
				has_trait = cautious
				has_trait = old_guard
			}
		}
	}
		
	active = yes
	
	countered_by = tactic_ic_urban_elastic_defense
	
	picture = door_to_door_advance
	
	display_phase = inner_city
		
	attacker_movement_speed = -0.3
	combat_width = -0.35
	attacker = 0.3
	defender = 0.3
}

tactic_ic_urban_infiltration = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = inner_city
		OR = {
			has_trait = urban_assault_specialist
			has_trait = trickster
		}
	}
	
	base =  { 
		factor = 3 
		modifier = {
			add = 3
			OR = {
				has_trait = urban_assault_specialist
				has_trait = trickster
			}
		}
	}
		
	active = yes
	
	countered_by = tactic_ic_urban_guerilla
	
	picture = urban_infiltration
		
	display_phase = inner_city
		
	attacker_movement_speed = -0.2
	combat_width = -0.35
	attacker = 0.4
	defender = 0.3
}

tactic_ic_meticulous_advance = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = inner_city

		has_reserves = yes
		frontage_full = no
		OR = {
			skill > 3
			skill_advantage > 1
			has_trait = organizer
			has_trait = urban_assault_specialist
		}
	}
	
	base =  { 
		factor = 1 
		modifier = {
			add = 3
			OR = {
				has_trait = organizer
				has_trait = cautious
			}
		}
		modifier = {
			add = 2
			has_reserves = yes
		}
	}
		
	active = yes
		
	picture = meticulous_advance
	
	phase = take_city
	
	display_phase = inner_city
		
	attacker_movement_speed = -0.5
	combat_width = -0.35
	attacker = 0.3
	defender = 0.2
}

# Street-fighting attacker tactics

tactic_sf_storm = { # Basic urban assault
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = inner_city
	}
	
	active = yes
	display_phase = inner_city
	
	base =  {
		factor = 3
	}
	picture = tactic_sf_storm
	
	attacker = 0.1
	defender = 0.2
	defender_org_damage_modifier = -0.1
	combat_width = 0.1
}

tactic_sf_barrage = { # Heavy artillery barrage
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = inner_city
		has_artillery_ratio > 0.2
	}
	
	active = yes
	display_phase = inner_city
	
	base =  {
		factor = 4        # from 2 → 4, now a real option

		modifier = {
			factor = 1.5
			has_artillery_ratio > 0.35   # proper tube spam
		}
		modifier = {
			factor = 1.5
			OR = {
				has_trait = artillery_officer
				has_trait = offensive_doctrine
			}
		}
	}

	picture = tactic_sf_barrage
	
	attacker = 0.2
	defender = -0.1
	combat_width = -0.1
	defender_org_damage_modifier = -0.2
}


tactic_sf_armor_supported_assault = { # Flame tanks & friends
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = inner_city
		custom_trigger_tooltip = {
			tooltip = has_flame_tank_units
			OR = {
				has_unit_type = light_flame_tank
				has_unit_type = medium_flame_tank
				has_unit_type = heavy_flame_tank
			}
		}
	}
	
	active = yes 
	display_phase = inner_city
	
	base =  {
		factor = 3      # from 1 → 3, strong but still special

		modifier = {
			factor = 1.7
			OR = {
				has_unit_type = medium_flame_tank
				has_unit_type = heavy_flame_tank
			}
		}
		modifier = {
			factor = 1.5
			OR = {
				has_trait = panzer_leader
				has_trait = urban_assault_specialist
			}
		}
	}

	picture = tactic_sf_armor_supported_assault
	
	attacker = 0.3
	combat_width = -0.2
	defender_org_damage_modifier = -0.2
}


tactic_sf_mouse_holing = { # House-to-house, avoiding open streets
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = inner_city
		OR = {
			has_unit_type = engineer
			has_unit_type = pioneer_support
		}
	}
	
	active = yes
	display_phase = inner_city
	
	base =  {
		factor = 2
	}
	picture = tactic_sf_mouse_holing
	
	defender = -0.2
	attacker_movement_speed = -0.1
	defender_org_damage_modifier = -0.2
}

########################
# INNER CITY: DEFENSE  #
########################

tactic_sf_defense = { # Basic urban defense
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = inner_city
	}
	
	active = yes
	display_phase = inner_city
	
	base =  {
		factor = 3
	}
	picture = tactic_sf_defense
	
	attacker = -0.1
	defender = 0.2	
	attacker_org_damage_modifier = -0.2
}

tactic_sf_fortify = { # Static strongpoints, countered by mouse-holing
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = inner_city
		dig_in > 0.3
		NOT = { has_reserves = yes }
	}
	
	active = yes
	display_phase = inner_city
	
	base =  {
		factor = 2
	}
	picture = tactic_sf_fortify
	countered_by = tactic_sf_mouse_holing
	
	attacker = -0.2
	defender = 0.1
	attacker_org_damage_modifier = -0.3
}

tactic_sf_ambush = { # Elite nasty surprise
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = inner_city
		OR = {
			skill > 3
			skill_advantage > 1
			has_trait = guerilla_fighter
			has_trait = ambusher
		}
	}
	
	active = yes
	display_phase = inner_city
	
	base =  {
		factor = 1
	}
	picture = tactic_sf_ambush
	
	defender = 0.5
	attacker_org_damage_modifier = -0.20
}

tactic_ic_urban_guerilla = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = inner_city
		is_fighting_in_terrain = urban
	}
	
	base =  { 
		factor = 4 
		modifier = {
			add = 4
			OR = {
				has_trait = guerilla_fighter
				has_trait = ambusher
				has_trait = skirmisher
			}
		}
	}
	
	active = yes
	
	picture = urban_guerilla
		
	display_phase = inner_city
		
	attacker_movement_speed = -0.2
	combat_width = -0.5
	attacker = -0.4
	defender = 0.4
}

tactic_ic_urban_elastic_defense = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = inner_city
		is_fighting_in_terrain = urban
	}
	
	base =  { 
		factor = 4 
		modifier = {
			add = 4
			OR = { has_trait = trickster }
		}
	}
	
	active = yes
	
	picture = urban_elastic_defense
		
	display_phase = inner_city
		
	attacker_movement_speed = -0.1
	combat_width = -0.5
	attacker = -0.15
	defender = -0.05
}

tactic_ic_expel_invaders = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = inner_city
		is_fighting_in_terrain = urban
		OR = {
			skill > 3
			skill_advantage > 1
		}
	}
	
	base =  { 
		factor = 2 
		modifier = {
			add = 4
			OR = {
				skill > 4
				skill_advantage > 2
			}
		}
	}
	
	active = yes
	
	picture = expel_invaders
		
	display_phase = inner_city

	phase = city_outskirts
		
	combat_width = -0.5
	attacker = -0.1
	defender = 0.2
}

########################
# TAKE CITY (ENDGAME) #
########################

tactic_tc_secure_outskirts = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = take_city
	}
	
	base =  { 
		factor = 3 
		modifier = {
			add = 3
			OR = { has_trait = cautious }
		}
	}
		
	active = yes
		
	picture = secure_outskirts
		
	display_phase = take_city
		
	attacker_movement_speed = -0.1
	combat_width = -0.25
	attacker = 0.1
	defender = 0.2
}

tactic_tc_mop_up_operations = { 
	is_attacker = yes
	trigger = {
		is_attacker = yes
		phase = take_city
		has_reserves = yes
	}
	
	base =  { 
		factor = 3 
		modifier = {
			add = 4
			OR = { has_trait = urban_assault_specialist }
		}
	}
		
	active = yes
		
	picture = mop_up_operations
			
	display_phase = take_city
		
	attacker_movement_speed = -0.2
	combat_width = -0.25
	attacker = 0.1
	defender = 0.1
}

tactic_tc_decisive_counterattack = { 
	is_attacker = no
	trigger = {
		is_attacker = no
		phase = take_city
		is_fighting_in_terrain = urban
		has_reserves = yes
		OR = {
			skill > 3
			skill_advantage > 0
		}
	}
	
	base =  { 
		factor = 2 
	}
	
	active = yes
	
	picture = decisive_counterattack
		
	display_phase = take_city
	
	phase = inner_city
	
	combat_width = -0.25
	attacker = -0.1
	defender = 0.3
}

tactic_tc_last_stand = { 
    is_attacker = no

    trigger = {
        is_attacker = no
        phase = take_city
        is_fighting_in_terrain = urban
        # No extra conditions -> safe fallback, works whether "encircled" or not
    }

    active = yes

    picture = rush_reinforcements   # reuse whatever GFX you want

    display_phase = take_city

    base = {
        factor = 4           # Reliable default in take_city for defender
    }

    # "Normal" last stand:
    # City isn't fully encircled, but defenders are digging in hard in key blocks.
    # Still organized enough to fight, not just isolated pockets.

    attacker = -0.10                     # Attacker push is harder
    defender = 0.10                      # Defender fights with determination
    attacker_org_damage_modifier = -0.15 # Attacker spends more org clearing positions
    defender_org_damage_modifier = 0.05  # Defender bleeds org a bit slower
    combat_width = -0.15                 # Some narrowing of effective frontage, but not extreme
    attacker_movement_speed = -0.10      # Slower, but not "frozen in concrete"
}