CK3 DatabaseCrusader Kings III · 1.20.1.2 “Crozier” · unofficial
Silk & Silverout Tue, Nov 17What's free, what needs the DLC, price →

Scripted trigger

is_character_not_specialized_in_terrain

is_character_not_specialized_in_terrain = yes

game/common/scripted_triggers/00_travel_triggers.txt, line 26 (113 lines). No parameters.

is_character_not_specialized_in_terrain is a scripted trigger in Crusader Kings III, written at line 26 of its file. It takes no parameters: is_character_not_specialized_in_terrain = yes (or no). The game's script calls it in 2 places, among them … the Scenic Route (event pilgrimage.2006) and Danger: Familiar Trees (event travel_danger_events.1006). Patch 1.20.1.2, from game/common/scripted_triggers/00_travel_triggers.txt.

What it checks

  • is_location_valid_for_travel_event_on_land = yes
  • Their location › Depending on terrain:
    • When terrain is Jungle › scope:character_in_terrain:
    • When terrain is Desert › scope:character_in_terrain:
    • When terrain is Drylands › scope:character_in_terrain:
    • When terrain is Desert Mountains › scope:character_in_terrain:
    • When terrain is Oasis › scope:character_in_terrain:
    • When terrain is Mountains › scope:character_in_terrain:
    • When terrain is Wetlands › scope:character_in_terrain:
    • When terrain is Hills › scope:character_in_terrain:
    • When terrain is Farmlands › scope:character_in_terrain:
    • When terrain is Plains › scope:character_in_terrain:
    • When terrain is Steppe › scope:character_in_terrain:
    • When terrain is Forest › scope:character_in_terrain:
    • When terrain is Taiga › scope:character_in_terrain:

• the game's own tooltip text · ◦ our reading of the script line · code the script where neither exists

“They” is whatever it runs on (the scope it is called in). The scripted triggers and effects it calls link to their own pages; $PARAMETERS$ stay as written: each call fills them in.

The script as written (113 lines of game script)
is_character_not_specialized_in_terrain = { #Used in character scope
	save_temporary_scope_as = character_in_terrain
	is_location_valid_for_travel_event_on_land = yes
	location = { #Is it reasonable for us to get lost, etc in this type of terrain?
		switch = {
			trigger = terrain
			jungle = {
				scope:character_in_terrain = {
					NOT = { has_trait = jungle_stalker }
					current_travel_plan.travel_leader ?= {
						NOT = { has_trait = jungle_stalker }
					}
				}
			}
			desert = {
				scope:character_in_terrain = {
					NOT = { has_trait = desert_warrior }
					current_travel_plan.travel_leader ?= {
						NOT = { has_trait = desert_warrior }
					}
				}
			}
			drylands = {
				scope:character_in_terrain = {
					NOT = { has_trait = desert_warrior }
					current_travel_plan.travel_leader ?= {
						NOT = { has_trait = desert_warrior }
					}
				}
			}
			desert_mountains = {
				scope:character_in_terrain = {
					NOT = { has_trait = desert_warrior }
					current_travel_plan.travel_leader ?= {
						NOT = { has_trait = desert_warrior }
					}
				}
			}
			oasis = {
				scope:character_in_terrain = {
					NOT = { has_trait = desert_warrior }
					current_travel_plan.travel_leader ?= {
						NOT = { has_trait = desert_warrior }
					}
				}
			}
			mountains = {
				scope:character_in_terrain = {
					NOT = { has_trait = desert_warrior }
					current_travel_plan.travel_leader ?= {
						NOT = { has_trait = desert_warrior }
					}
				}
			}
			wetlands = {
				scope:character_in_terrain = {
					NOT = { has_trait = desert_warrior }
					current_travel_plan.travel_leader ?= {
						NOT = { has_trait = desert_warrior }
					}
				}
			}
			hills = {
				scope:character_in_terrain = {
					NOT = { has_trait = desert_warrior }
					current_travel_plan.travel_leader ?= {
						NOT = { has_trait = desert_warrior }
					}
				}
			}
			farmlands = {
				scope:character_in_terrain = {
					NOT = { has_trait = open_terrain_expert }
					current_travel_plan.travel_leader ?= {
						NOT = { has_trait = open_terrain_expert }
					}
				}
			}
			plains = {
				scope:character_in_terrain = {
					NOT = { has_trait = open_terrain_expert }
					current_travel_plan.travel_leader ?= {
						NOT = { has_trait = open_terrain_expert }
					}
				}
			}
			steppe = {
				scope:character_in_terrain = {
					NOT = { has_trait = open_terrain_expert }
					current_travel_plan.travel_leader ?= {
						NOT = { has_trait = open_terrain_expert }
					}
				}
			}
			forest = {
				scope:character_in_terrain = {
					NOT = { has_trait = forest_fighter }
					current_travel_plan.travel_leader ?= {
						NOT = { has_trait = forest_fighter }
					}
				}
			}
			taiga = {
				scope:character_in_terrain = {
					NOT = { has_trait = forest_fighter }
					current_travel_plan.travel_leader ?= {
						NOT = { has_trait = forest_fighter }
					}
				}
			}
		}
	}
}

As written in game/common/scripted_triggers/00_travel_triggers.txt.

Where it is used

Every place in common/, events/ and history/ that calls is_character_not_specialized_in_terrain.

Events (2)

Source: game/common/scripted_triggers/00_travel_triggers.txt and every file of common/, events/ and history/ that calls it, Crusader Kings III 1.20.1.2.

Spotted a mistake on this page?