namespace = VIKSOC

########################JOINING############################

#From on_character_ask_to_join_society
character_event = {
    id = VIKSOC.100
	hide_window = yes
    is_triggered_only = yes
    trigger = {
    	FROM = { leader = { society_member_of = viking_society } }
    }
    immediate = {
    	FROM = { leader = { character_event = { id = VIKSOC.101 } } } #target is the leader of the society
    }
}

#Ping event
character_event = {
    id = VIKSOC.101
	hide_window = yes
    is_triggered_only = yes
    immediate = {
    	FROM = { letter_event = { id = VIKSOC.102 } } #send event back 
    }
}

#Welcome letter
letter_event = {
    id = VIKSOC.102
    desc = EVTDESC_VIKSOC_102
    border = GFX_event_letter_frame_war
	
    is_triggered_only = yes

    option = { #join the society
        name = EVTOPTA_VIKSOC_102
		FROM = { ROOT = { join_prev_viking_society_society = yes } } #call the scripted_effect to join the society you requested. (see viking_society_scripted_effects.txt)
		
		#you can make it simplier with this and not use the scripted_effect:
		
		# join_society = viking_society
    }
    option = { #don't
        name = EVTOPTB_VIKSOC_102
    }
}

########################AI JOIN AND AI RANK UP###########################

character_event = { #force the AI to join a society
	id = VIKSOC.110
	hide_window = yes
	
	only_rulers = yes #leave that unless you want random courtiers in the society
	is_triggered_only = yes
	
	immediate = {
		if = {
			limit = { #if he's already a member, will force a rank up 25% of the time
				ai = yes
				prisoner = no
				NOT = { trait = incapable }
				society_member_of = viking_society
				society_rank <= 3
				society_can_rank_up = yes
			}
			random_list = {
				75 = {}
				25 = {
					society_rank_up = 1					
				}
			}
		}
		# any_courtier = {  #if you want courtier in the society enable this part
			# limit = {
				# ai = yes
				# prisoner = no
				# NOT = { trait = incapable }
				# is_adult = yes
				# is_in_society = no
				# controls_religion = no
				# block_general_event_trigger = no
			# }
			# character_event = { id = VIKSOC.111 }
		# }
		if = { #force the joining event on AI
			limit = {
				ai = yes
				prisoner = no
				NOT = { trait = incapable }
				is_adult = yes
				is_in_society = no
				controls_religion = no
				block_general_event_trigger = no
			}
			character_event = { id = VIKSOC.111 }
		}
	}
}

character_event = { #AI join event
	id = VIKSOC.111
	hide_window = yes
	
	is_triggered_only = yes
	
	immediate = {
		random_list = {
			90 = { # do nothing
			}
			10 = { # try to join a society 10% of the time
				trigger = { #meet the requirement
					can_join_society = viking_society
				}
				modifier = { #things that will make 10% of the time bigger, can be anything 
					factor = 2
					prestige = 200
				}
				join_society = viking_society #join the society
				random_list = { # Artificially increase society influence for balance purposes
					75 = {
						modifier = {
							factor = 0
							society_influence >= 30
						}
						add_mission_succeed_influence_effect = yes #complete a fake mission for AI
					}
					25 = {
					}
				}
				if = { # Make grandmaster is there is none
					limit = {
						NOT = {
							society = {
								any_society_member = {
									is_society_grandmaster = yes
								}
							}
						}
					}
					set_society_grandmaster = yes
				}
			}
		}
	}
}

#######################Rank UP#############################

# Hidden start: Send the rank-up request to the current Grandmaster (delayed event on self, from decision to rank up)
character_event = {
	id = VIKSOC.120

	hide_window = yes

	trigger = { #has pressed the button
		has_character_flag = has_sent_request_to_rank_up
	}
	
	is_triggered_only = yes

	immediate = {
		if = { #if he's still a member
			limit = { is_in_society = yes }
			random_society_member = { #will send the request to a random top rank member of the same society
				limit = {
					is_society_grandmaster = yes
					same_society_as = ROOT
				}
				character_event = { id = VIKSOC.121 } # send request to Grand Master.
			}
		}
		if = { #if he's not a member
			limit = { is_in_society = no }
			clr_character_flag = has_sent_request_to_rank_up
		}
	}
}

# Grandmaster gets the rank-up request
character_event = {
	id = VIKSOC.121
	
	hide_window = yes

	is_triggered_only = yes

	immediate = {
		event_target:rank_up_target = { letter_event = { id = VIKSOC.122 } } #send it back
	}
}

#Grand master approves my request
letter_event = {
	id = VIKSOC.122
	desc = EVTDESC_VIKSOC_122
	border = GFX_event_letter_frame_war

	trigger = {
		society_rank < 4 #cannot rank up past 4
		has_character_flag = has_sent_request_to_rank_up
	}
	
	is_triggered_only = yes

	#Rank up approved
	option = {
		name = EVTOPTA_VIKSOC_122
		if = { limit = { society_rank < 4 } #if not max rank, rank up
			society_rank_up = 1
		}
		clr_character_flag = has_sent_request_to_rank_up
	}
}

#################################MISSIONS######################################
####Contents####
###130: Quest Tombola
###140: Grandmaster Quest Return
###141-144: War Focus Quest

###130: Quest Tombola
character_event = {
    id = VIKSOC.130
    hide_window = yes

    is_triggered_only = yes
	is_in_society = yes
	only_capable = yes

	trigger = {
		society_member_of = viking_society
		has_any_quest = no #cannot have more than 1 shown
		NOT = { has_character_modifier = quest_cooldown_timer } #to avoid spam and delay it for people who refused a quest.
		NOT = { is_inaccessible_trigger = yes }
		prisoner = no
	}

    immediate = {
    	#Picks out mission giver
    	random_society_member = {
			limit = {
				is_society_grandmaster = yes
				same_society_as = ROOT
			}
			save_event_target_as = quest_collaborator
		}
		random_list = {
			25 = { #war focus quest
				modifier = { factor = 0 NOT = { has_dlc ="Way of Life" } }
				modifier = { factor = 0 has_focus = focus_war }
				modifier = { factor = 0 is_playable = no } # Only playable characters get focuses
				set_character_flag = viking_mission_war
			}
			25 = {	#hold great blot
				modifier = { factor = 0 NOT = { has_dlc ="The Old Gods" } }
				NOT = { has_character_modifier = held_blot_timer }
				NOT = {	has_character_flag = holding_blot }
				set_character_flag = viking_mission_blot
			}
			
			25 = {	#commission runestone
				modifier = { factor = 0 NOT = { has_dlc ="The Old Gods" } }
				modifier = { factor = 0 has_character_flag = commissioned_runestone }
				NOT = { year = 1150 }
				set_character_flag = viking_mission_runestone
			}
			
			25 = { # AI bypasses missions at times and goes directly to success/failure, increase the 50 if you add more mission or you could delete this whole { }.
				modifier = {
					factor = 0
					ai = no
				}
				random_list = {
					70 = { #success, harder the more influencial the society is
						modifier = {
							factor = 0.9
							society_influence >= 30
						}
						modifier = {
							factor = 0.9
							society_influence >= 40
						}
						modifier = {
							factor = 0.8
							society_influence >= 50
						}
						modifier = {
							factor = 0.7
							society_influence >= 70
						}
						modifier = {
							factor = 0.6
							society_influence >= 80
						}
						modifier = {
							factor = 0.5
							society_influence >= 90
						}
						add_mission_succeed_influence_effect = yes
					}
					30 = { #failure
						add_mission_fail_influence_effect = yes
					}
				}
			}
			
			85 = { #AI refuse mission
				modifier = {
					factor = 0
					ai = no
				}
			}
    	}
		event_target:quest_collaborator = { character_event = { id = VIKSOC.140 days = 7 random = 7 } } 
    }
}

###140: Grandmaster Quest Return
character_event = {
    id = VIKSOC.140
    hide_window = yes #instant event, no need to show it
	
    is_triggered_only = yes
	
    immediate = { 
		FROM = { 
			trigger_switch = {
				on_trigger = has_character_flag
				viking_mission_war = { 
					clr_character_flag = viking_mission_war
					society_quest_event = {
						id = VIKSOC.141
					}
				}
				viking_mission_blot = {
					clr_character_flag = viking_mission_blot
					society_quest_event = {
						id = VIKSOC.###
					}
				}
				viking_mission_runestone = {
					clr_character_flag = viking_mission_runestone
					society_quest_event = {
						id = VIKSOC.###
					}
				}
			}
		} 
	}
}

###141: War Focus Quest (Start)
society_quest_event = {
	id = VIKSOC.141
	desc = EVTDESC_VIKSOC_141
	picture = GFX_evt_viking_battle_oldgods
	
	is_triggered_only = yes
	
	trigger = {
		NOR = {
			has_focus = focus_war
			has_any_quest = yes
		}
	}
	
	option = {
		name = ACCEPT
		set_quest = quest_viking_war_focus
	}
	
	option = {
		name = DECLINE
		custom_tooltip = { text = decline_quest_tooltip }
		
		add_character_modifier = {
			name = quest_cooldown_timer
			hidden = yes
			days = 1000
		}
		
		ai_chance = { factor = 0 }
	}
}
###142: War Focus Quest	(Success)
character_event = {
	id = VIKSOC.142
	is_triggered_only = yes
	hide_window = yes
	
	immediate = {
		random_society_member = {
			limit = {
				same_society_as = ROOT
				is_society_grandmaster = yes
			}
			character_event = {
				id = VIKSOC.143
			}
		}
	}
}
###143: War Focus Quest
character_event = {
	id = VIKSOC.143
	is_triggered_only = yes
	hide_window = yes

	immediate = {
		FROM = {
			letter_event = {
				id = VIKSOC.144
			}
		}
	}
}
###144: War Focus Quest (End)
letter_event = {
	id = VIKSOC.144
	desc = EVTDESC_VIKSOC_144
	border = GFX_event_letter_frame

	is_triggered_only = yes


	option = {
		name = EVTOPT_VIKSOC_144
		
		clr_quest = quest_viking_war_focus
		
		add_society_currency_minor_effect = yes
	}

}

###145: Blot Quest	(Start)
society_quest_event = {
	id = VIKSOC.145
	desc = EVTDESC_VIKSOC_145
	picture = GFX_evt_midwinter_blot_oldgods
	
	is_triggered_only = yes
	
	trigger = {
		NOR = {
			has_character_modifier = held_blot_timer
			has_character_flag = holding_blot
		}
	}
	
	option = {
		name = ACCEPT
		set_quest = quest_viking_blot
	}
	
	option = {
		name = DECLINE
		custom_tooltip = { text = decline_quest_tooltip }
		
		add_character_modifier = {
			name = quest_cooldown_timer
			hidden = yes
			days = 1000
		}
		
		ai_chance = { factor = 0 }
	}
}
###146: Blot Quest	(Success)
character_event = {
	id = VIKSOC.146
	is_triggered_only = yes
	hide_window = yes
	
	immediate = {
		random_society_member = {
			limit = {
				same_society_as = ROOT
				is_society_grandmaster = yes
			}
			character_event = {
				id = VIKSOC.147
			}
		}
	}
}
###147: Blot Quest
character_event = {
	id = VIKSOC.147
	is_triggered_only = yes
	hide_window = yes

	immediate = {
		FROM = {
			letter_event = {
				id = VIKSOC.148
			}
		}
	}
}
###148: Blot Quest	(End)
letter_event = {
	id = VIKSOC.148
	desc = EVTDESC_VIKSOC_148
	border = GFX_event_letter_frame

	is_triggered_only = yes


	option = {
		name = EVTOPT_VIKSOC_148
		
		clr_quest = quest_viking_blot
		
		add_society_currency_minor_effect = yes
	}

}

###149: Runestone Quest	(Start)
society_quest_event = {
	id = VIKSOC.149
	desc = EVTDESC_VIKSOC_149
	picture = GFX_evt_runestone_raising_oldgods
	
	is_triggered_only = yes
	
	trigger = {
		NOR = {
			has_character_flag = commissioned_runestone
			year = 1150
		}
	}
	
	option = {
		name = ACCEPT
		set_quest = quest_viking_runestone
	}
	
	option = {
		name = DECLINE
		custom_tooltip = { text = decline_quest_tooltip }
		
		add_character_modifier = {
			name = quest_cooldown_timer
			hidden = yes
			days = 1000
		}
		
		ai_chance = { factor = 0 }
	}
}
###150: Runestone Quest	(Success)
character_event = {
	id = VIKSOC.150
	is_triggered_only = yes
	hide_window = yes
	
	immediate = {
		random_society_member = {
			limit = {
				same_society_as = ROOT
				is_society_grandmaster = yes
			}
			character_event = {
				id = VIKSOC.151
			}
		}
	}
}
###151: Runestone Quest
character_event = {
	id = VIKSOC.151
	is_triggered_only = yes
	hide_window = yes

	immediate = {
		FROM = {
			letter_event = {
				id = VIKSOC.152
			}
		}
	}
}
###152: Runestone Quest (End)
letter_event = {
	id = VIKSOC.152
	desc = EVTDESC_VIKSOC_152
	border = GFX_event_letter_frame

	is_triggered_only = yes


	option = {
		name = EVTOPT_VIKSOC_152
		
		clr_quest = quest_viking_runestone
		
		add_society_currency_minor_effect = yes
	}

}

####POWER (160-162): Invite viking warrior
character_event = {
	id = VIKSOC.160
	hide_window = yes
	
	is_triggered_only = yes
	
	trigger = { society_member_of = viking_society }
	
	immediate = {
		clr_character_flag = warrior_arriving
		random_list = {
			#shieldmaiden
			33 = {
				random_list = {
					25 = {
						create_character = {
							random_traits = yes
							dynasty = none
							religion = ROOT
							female = yes
							age = 20
						}
						new_character = { save_event_target_as = viking_warrior }
					}
					50 = {
						create_character = {
							random_traits = yes
							dynasty = none
							religion = ROOT
							female = yes
							age = 30
						}
						new_character = { save_event_target_as = viking_warrior }
					}
					25 = {
						create_character = {
							random_traits = yes
							dynasty = none
							religion = ROOT
							female = yes
							age = 40
						}
						new_character = { save_event_target_as = viking_warrior }
					}
				}				
			}		
			#viking
			66 = {
				random_list = {
					25 = {
						create_character = {
							random_traits = yes
							dynasty = none
							religion = ROOT
							female = no
							age = 20
						}
						new_character = { save_event_target_as = viking_warrior }
					}
					50 = {
						create_character = {
							random_traits = yes
							dynasty = none
							religion = ROOT
							female = no
							age = 30
						}
						new_character = { save_event_target_as = viking_warrior }
					}
					25 = {
						create_character = {
							random_traits = yes
							dynasty = none
							religion = ROOT
							female = no
							age = 40
						}
						new_character = { save_event_target_as = viking_warrior }
					}
				}					
			}
		}
		
		event_target:viking_warrior = {
			join_society = viking_society
			
			#correct education
			remove_education_effect = yes
			random_list = {
				70 = { add_trait = skilled_tactician }
				30 = { add_trait = brilliant_strategist }
			}
			
			#increase martial
			random_list = {
				33 = { change_martial = 2 }
				33 = { change_martial = 3 }
				33 = { change_martial = 4 }
			}
			#shieldmaiden cannot have these traits
			remove_trait = shy #gregarious
			remove_trait = content #ambitious
			remove_trait = slothful #diligent
			remove_trait = envious #kind
			remove_trait = gluttonous #temperate
			
			#warrior cannot be craven!
			remove_trait = craven
			
			#adding traits
			random_list = {
				50 = {
					add_trait = brave
				}
				50 = { }
			}
			random_list = {
				50 = {
					remove_trait = humble
					add_trait = proud
				}
				50 = { }
			}
			random_list = {
				25 = {
					add_trait = ambitious
				}
				75 = { }
			}
			random_list = {
				33 = {
					remove_trait = arbitrary
					add_trait = just
				}
				66 = { }
			}
			#random genetic traits
			random_list = {
				5 = {
					remove_trait = ugly
					add_trait = fair
				}
				5 = {
					remove_trait = imbecile
					remove_trait = genius
					remove_trait = slow
					add_trait = quick
				}
				5 = {
					remove_trait = imbecile
					remove_trait = quick
					remove_trait = slow
					add_trait = genius
				}
				10 = {
					remove_trait = weak
					add_trait = strong
				}
				75 = { }
			} #female shieldmaiden, male viking
			if = {
				limit = { is_female = yes }
				add_trait = shieldmaiden
			}
			if = {
				limit = { is_female = no }
				add_trait = viking
			} # warrior is also an adventurer 
			#10% chance of berserker trait
			random_list = {
				5 = {
					add_trait = adventurer
				}
				10 = {
					add_trait = berserker
				}
				95 = { }
			}
			#lifestyle
			remove_lifestyle_trait_effect = yes
			random_list = {
				80 = { }
				5 = { add_trait = hunter }
				5 = { add_trait = duelist }
				5 = { add_trait = strategist }
				5 = { add_trait = impaler }
			}
			character_event = { id = VIKSOC.161 }
		}
	}
}
#Ping for new warrior
character_event = {
	id = VIKSOC.161
	hide_window = yes
	
	is_triggered_only = yes
	
	immediate = {
		FROM = { character_event = { id = VIKSOC.162 } }
	}
}
#Introduction for new warrior
character_event = {
	id = VIKSOC.162
	desc = EVTDESC_VIKSOC_162
	picture = GFX_evt_viking_throneroom_oldgods
	
	is_triggered_only = yes

	option = {
		name = EVTOPTA_VIKSOC_162
		reverse_opinion = {
			who = FROM
			modifier = opinion_loyal_servant
		}
	}
}
