guelph_pattern_for = {
	icon = 5
	pattern_type = for

    declare_war_interaction = {
		trait = guelph
		OR = {
			stored_token_trigger = guelphs_vs_ghibellines
			stored_token_trigger = overthrow_guelph_government
			stored_token_trigger = estabilish_ghibelline_government
		}
		FROMFROM = {
			NOT = { has_character_flag = guelph_cb }
		}
	}

	term_prolongation_0 = {
		trait = guelph
		FROM = { NOT = { trait = guelph } }
	}
	term_prolongation_1 = {
		trait = guelph
		FROM = {
			OR = {
				AND = {
					has_law = term_prolongation_0
					trait = guelph
				}
				AND = {
					NOT = { has_law = term_prolongation_0 }
					NOT = { trait = guelph }
				}
			}
		}
	}
	term_prolongation_2 = {
		trait = guelph
		FROM = {
			OR = {
				AND = {
					OR = {
						has_law = term_prolongation_0
						has_law = term_prolongation_1
					}
					trait = guelph
				}
				AND = {
					NOR = {
						has_law = term_prolongation_0
						has_law = term_prolongation_1
					}
					NOT = { trait = guelph }
				}
			}
		}
	}
	term_prolongation_3 = {
		trait = guelph
		FROM = {
			OR = {
				AND = {
					NOT = {
						has_law = term_prolongation_4
					}
					trait = guelph
				}
				AND = {
					has_law = term_prolongation_4
					NOT = { trait = guelph }
				}
			}
		}
	}
	term_prolongation_4 = {
		trait = guelph
		FROM = { trait = guelph }
	}

	guelph_government = { 
		trait = guelph
	}
	slightly_guelph_government = {
		trait = guelph
		FROM = { has_law = neutral_government }
	}
	neutral_government = {
		trait = guelph
		FROM = { has_law = slightly_ghibelline_government }
	}
	slightly_ghibelline_government = {
		trait = guelph
		FROM = { has_law = ghibelline_government }
	}
}

guelph_pattern_against = {
	icon = 7
	pattern_type = against

    declare_war_interaction = {
		trait = guelph
		OR = {
			stored_token_trigger = guelphs_vs_ghibellines
			stored_token_trigger = overthrow_guelph_government
			stored_token_trigger = estabilish_ghibelline_government
		}
		FROMFROM = {
			has_character_flag = guelph_cb
		}
	}

	term_prolongation_0 = {
		trait = guelph
		FROM = { trait = guelph }
	}
	term_prolongation_1 = {
		trait = guelph
		FROM = {
			OR = {
				AND = {
					NOT = { has_law = term_prolongation_0 }
					trait = guelph
				}
				AND = {
					NOT = { trait = guelph }
					has_law = term_prolongation_0
				}
			}
		}
	}
	term_prolongation_2 = {
		trait = guelph
		FROM = {
			OR = {
				AND = {
					NOR = {
						has_law = term_prolongation_0
						has_law = term_prolongation_1
					}
					trait = guelph
				}
				AND = {
					OR = {
						has_law = term_prolongation_0
						has_law = term_prolongation_1
					}
					NOT = { trait = guelph }
				}
			}
		}
	}
	term_prolongation_3 = {
		trait = guelph
		FROM = {
			OR = {
				NOT = {
					has_law = term_prolongation_4
					trait = guelph
				}
				AND = {
					has_law = term_prolongation_4
					trait = guelph
				}
			}
		}
	}
	term_prolongation_4 = {
		trait = guelph
		FROM = { NOT = { trait = guelph } }
	}
	slightly_guelph_government = {
		trait = guelph
		FROM = { has_law = guelph_government }
	}
	neutral_government = {
		trait = guelph
		FROM = { has_law = slightly_guelph_government }
	}
	slightly_ghibelline_government = {
		trait = guelph
		FROM = { has_law = neutral_government }
	}
	ghibelline_government = { 
		trait = guelph
	}
}