2521 lines
48 KiB
Text
2521 lines
48 KiB
Text
######################
|
|
# TOURNAMENT STUFF
|
|
######################
|
|
|
|
# Contest Aptitude Values
|
|
|
|
contest_aptitude_fetch_value = {
|
|
value = 0
|
|
if = {
|
|
limit = { exists = var:contest_aptitude }
|
|
add = var:contest_aptitude
|
|
}
|
|
min = 1
|
|
}
|
|
|
|
contest_aptitude_fetch_half_value = {
|
|
value = contest_aptitude_fetch_value
|
|
divide = 2
|
|
min = 1
|
|
}
|
|
|
|
progress_to_victory_fetch_value = {
|
|
value = 0
|
|
if = {
|
|
limit = { exists = var:contest_aptitude }
|
|
add = var:contest_aptitude
|
|
}
|
|
min = 1
|
|
}
|
|
|
|
progress_to_victory_fetch_half_value = {
|
|
value = progress_to_victory_fetch_value
|
|
divide = 2
|
|
min = 1
|
|
}
|
|
|
|
progress_to_victory_fetch_team_a_half_value = {
|
|
value = var:team_a_ptv
|
|
divide = 2
|
|
min = 1
|
|
}
|
|
|
|
progress_to_victory_fetch_team_b_half_value = {
|
|
value = var:team_b_ptv
|
|
divide = 2
|
|
min = 1
|
|
}
|
|
|
|
progress_to_victory_total_ffa_current_active_phase = {
|
|
value = 0
|
|
involved_activity = {
|
|
every_guest_subset_current_phase = {
|
|
name = qualified
|
|
limit = { exists = var:progress_to_victory }
|
|
add = var:progress_to_victory
|
|
}
|
|
}
|
|
min = 1
|
|
}
|
|
|
|
progress_to_victory_own_team_ptv_value = {
|
|
value = 0
|
|
if = {
|
|
limit = {
|
|
is_in_guest_subset = { name = team_alpha }
|
|
}
|
|
add = involved_activity.var:team_a_ptv
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
is_in_guest_subset = { name = team_beta }
|
|
}
|
|
add = involved_activity.var:team_b_ptv
|
|
}
|
|
}
|
|
|
|
progress_to_victory_other_team_ptv_value = {
|
|
value = 0
|
|
if = {
|
|
limit = {
|
|
is_in_guest_subset = { name = team_alpha }
|
|
}
|
|
add = involved_activity.var:team_b_ptv
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
is_in_guest_subset = { name = team_beta }
|
|
}
|
|
add = involved_activity.var:team_a_ptv
|
|
}
|
|
}
|
|
|
|
progress_to_victory_total_team_current_active_phase = {
|
|
value = 0
|
|
if = {
|
|
limit = {
|
|
exists = involved_activity.var:team_a_ptv
|
|
exists = involved_activity.var:team_b_ptv
|
|
}
|
|
add = involved_activity.var:team_a_ptv
|
|
add = involved_activity.var:team_b_ptv
|
|
}
|
|
min = 1
|
|
}
|
|
|
|
progress_to_victory_versus_match_value = {
|
|
if = {
|
|
limit = {
|
|
involved_activity = { has_current_phase = tournament_phase_joust }
|
|
}
|
|
# Compare with correct rounds match
|
|
if = {
|
|
limit = { involved_activity.var:contest_versus_progress ?= 2 }
|
|
if = {
|
|
limit = { is_in_guest_subset = { name = winner } }
|
|
add = -100
|
|
}
|
|
else_if = {
|
|
limit = { exists = var:contest_finalist_match_joust.var:progress_to_victory }
|
|
add = var:contest_finalist_match_joust.var:progress_to_victory
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { involved_activity.var:contest_versus_progress ?= 1 }
|
|
if = {
|
|
limit = { is_in_guest_subset = { name = finalist } }
|
|
add = -100
|
|
}
|
|
else_if = {
|
|
limit = { exists = var:contest_semi_finalist_match_joust.var:progress_to_victory }
|
|
add = var:contest_semi_finalist_match_joust.var:progress_to_victory
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { involved_activity.var:contest_versus_progress ?= 0 }
|
|
if = {
|
|
limit = { is_in_guest_subset = { name = semi_finalist } }
|
|
add = -100
|
|
}
|
|
else_if = {
|
|
limit = { exists = var:contest_qualified_match_joust.var:progress_to_victory }
|
|
add = var:contest_qualified_match_joust.var:progress_to_victory
|
|
}
|
|
}
|
|
# Use own to make it 50% for UI as a fallback
|
|
else = { add = var:progress_to_victory }
|
|
}
|
|
if = {
|
|
limit = {
|
|
involved_activity = { has_current_phase = tournament_phase_duel }
|
|
}
|
|
# Compare with correct rounds match
|
|
if = {
|
|
limit = { involved_activity.var:contest_versus_progress ?= 2 }
|
|
if = {
|
|
limit = { is_in_guest_subset = { name = winner } }
|
|
add = -100
|
|
}
|
|
else_if = {
|
|
limit = { exists = var:contest_finalist_match_duel.var:progress_to_victory }
|
|
add = var:contest_finalist_match_duel.var:progress_to_victory
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { involved_activity.var:contest_versus_progress ?= 1 }
|
|
if = {
|
|
limit = { is_in_guest_subset = { name = finalist } }
|
|
add = -100
|
|
}
|
|
else_if = {
|
|
limit = { exists = var:contest_semi_finalist_match_duel.var:progress_to_victory }
|
|
add = var:contest_semi_finalist_match_duel.var:progress_to_victory
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { involved_activity.var:contest_versus_progress ?= 0 }
|
|
if = {
|
|
limit = { is_in_guest_subset = { name = semi_finalist } }
|
|
add = -100
|
|
}
|
|
else_if = {
|
|
limit = { exists = var:contest_qualified_match_duel.var:progress_to_victory }
|
|
add = var:contest_qualified_match_duel.var:progress_to_victory
|
|
}
|
|
}
|
|
# Use own to make it 50% for UI as a fallback
|
|
else = { add = var:progress_to_victory }
|
|
}
|
|
if = {
|
|
limit = {
|
|
involved_activity = { has_current_phase = tournament_phase_wrestling }
|
|
}
|
|
# Compare with correct rounds match
|
|
if = {
|
|
limit = { involved_activity.var:contest_versus_progress ?= 2 }
|
|
if = {
|
|
limit = { is_in_guest_subset = { name = winner } }
|
|
add = -100
|
|
}
|
|
else_if = {
|
|
limit = { exists = var:contest_finalist_match_wrestling.var:progress_to_victory }
|
|
add = var:contest_finalist_match_wrestling.var:progress_to_victory
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { involved_activity.var:contest_versus_progress ?= 1 }
|
|
if = {
|
|
limit = { is_in_guest_subset = { name = finalist } }
|
|
add = -100
|
|
}
|
|
else_if = {
|
|
limit = { exists = var:contest_semi_finalist_match_wrestling.var:progress_to_victory }
|
|
add = var:contest_semi_finalist_match_wrestling.var:progress_to_victory
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { involved_activity.var:contest_versus_progress ?= 0 }
|
|
if = {
|
|
limit = { is_in_guest_subset = { name = semi_finalist } }
|
|
add = -100
|
|
}
|
|
else_if = {
|
|
limit = { exists = var:contest_qualified_match_wrestling.var:progress_to_victory }
|
|
add = var:contest_qualified_match_wrestling.var:progress_to_victory
|
|
}
|
|
}
|
|
# Use own to make it 50% for UI as a fallback
|
|
else = { add = var:progress_to_victory }
|
|
}
|
|
if = {
|
|
limit = {
|
|
involved_activity = { has_current_phase = tournament_phase_board_game }
|
|
}
|
|
# Compare with correct rounds match
|
|
if = {
|
|
limit = { involved_activity.var:contest_versus_progress ?= 2 }
|
|
if = {
|
|
limit = { is_in_guest_subset = { name = winner } }
|
|
add = -100
|
|
}
|
|
else_if = {
|
|
limit = { exists = var:contest_finalist_match_board_game.var:progress_to_victory }
|
|
add = var:contest_finalist_match_board_game.var:progress_to_victory
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { involved_activity.var:contest_versus_progress ?= 1 }
|
|
if = {
|
|
limit = { is_in_guest_subset = { name = finalist } }
|
|
add = -100
|
|
}
|
|
else_if = {
|
|
limit = { exists = var:contest_semi_finalist_match_board_game.var:progress_to_victory }
|
|
add = var:contest_semi_finalist_match_board_game.var:progress_to_victory
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { involved_activity.var:contest_versus_progress ?= 0 }
|
|
if = {
|
|
limit = { is_in_guest_subset = { name = semi_finalist } }
|
|
add = -100
|
|
}
|
|
else_if = {
|
|
limit = { exists = var:contest_qualified_match_board_game.var:progress_to_victory }
|
|
add = var:contest_qualified_match_board_game.var:progress_to_victory
|
|
}
|
|
}
|
|
# Use own to make it 50% for UI as a fallback
|
|
else = { add = var:progress_to_victory }
|
|
}
|
|
min = 0
|
|
}
|
|
|
|
## Referenced to in the UI
|
|
# Returns the scoped character's chance of winning any contest based on the
|
|
# their PTV against the opposing PTV.
|
|
#
|
|
# Calculate as:
|
|
# team: team_ptv / ( team_ptv + opposing_team_ptv )
|
|
# ffa: root.var:ptv / ( sum( scope:all_qualified.var:ptv ) )
|
|
# 1v1: root.var:ptv / ( root.var:ptv + scope:opponent.var:ptv )
|
|
character_chance_of_victory = {
|
|
value = 0
|
|
if = {
|
|
limit = {
|
|
is_in_guest_subset = { name = qualified }
|
|
exists = var:progress_to_victory
|
|
}
|
|
# TEAM
|
|
if = {
|
|
limit = {
|
|
involved_activity = { has_current_phase = tournament_phase_melee }
|
|
}
|
|
# Fetch own team's PtV
|
|
add = progress_to_victory_own_team_ptv_value
|
|
# Divide by both team's PtV
|
|
divide = progress_to_victory_total_team_current_active_phase
|
|
}
|
|
# TURN/RACE
|
|
else_if = {
|
|
limit = {
|
|
involved_activity = {
|
|
OR = {
|
|
has_current_phase = tournament_phase_archery
|
|
has_current_phase = tournament_phase_recital
|
|
has_current_phase = tournament_phase_horse_race
|
|
}
|
|
}
|
|
}
|
|
# Fetch own PtV
|
|
add = var:progress_to_victory
|
|
# Divide by combined contestant's PtV
|
|
divide = progress_to_victory_total_ffa_current_active_phase
|
|
}
|
|
# VERSUS
|
|
else_if = {
|
|
limit = { exists = var:progress_to_victory }
|
|
# Fetch own PtV
|
|
add = var:progress_to_victory
|
|
# Divide by own + matches PtV
|
|
divide = {
|
|
value = var:progress_to_victory
|
|
add = progress_to_victory_versus_match_value
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
## Referenced in the Debug UI
|
|
# Returns the PTV of the scoped character's opponent in any situation.
|
|
# This is the pure PTV for the opponents, no their chance of victory.
|
|
#
|
|
# Return as:
|
|
# team: opposing_team_ptv
|
|
# ffa: sum( scope:all_qualified.var:ptv ) - root.var:ptv
|
|
# 1v1: scope:opponent.var:ptv
|
|
|
|
debug_opposing_progress_to_victory = {
|
|
value = 0
|
|
if = {
|
|
limit = {
|
|
is_in_guest_subset = { name = qualified }
|
|
}
|
|
# TEAM
|
|
if = {
|
|
limit = {
|
|
involved_activity = { has_current_phase = tournament_phase_melee }
|
|
}
|
|
# Fetch other team's PtV
|
|
add = progress_to_victory_other_team_ptv_value
|
|
}
|
|
# TURN/RACE
|
|
else_if = {
|
|
limit = {
|
|
exists = var:progress_to_victory
|
|
involved_activity = {
|
|
OR = {
|
|
has_current_phase = tournament_phase_archery
|
|
has_current_phase = tournament_phase_recital
|
|
has_current_phase = tournament_phase_horse_race
|
|
}
|
|
}
|
|
}
|
|
# Fetch combined contestant's PtV, except yours
|
|
add = progress_to_victory_total_ffa_current_active_phase
|
|
subtract = var:progress_to_victory
|
|
}
|
|
# VERSUS
|
|
# Fetch matched contestant's PtV
|
|
else = { add = progress_to_victory_versus_match_value }
|
|
}
|
|
min = 1
|
|
}
|
|
|
|
count_remaining_contestants = {
|
|
value = 0
|
|
involved_activity = {
|
|
every_guest_subset_current_phase = {
|
|
name = qualified
|
|
limit = {
|
|
AND = {
|
|
exists = var:progress_to_victory
|
|
var:progress_to_victory > 0
|
|
}
|
|
}
|
|
add = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
# The end result of this number MUST be between 0 and 5, otherwise the game
|
|
# will crash due to being used in the UI to allocate a segmented progress bar
|
|
contest_type_aptitude_wit = {
|
|
value = 0
|
|
# Score
|
|
if = {
|
|
limit = {
|
|
involved_activity ?= {
|
|
OR = {
|
|
has_current_phase = tournament_phase_board_game
|
|
has_current_phase = tournament_phase_recital
|
|
}
|
|
}
|
|
exists = var:progress_to_victory_score
|
|
var:progress_to_victory_score >= contest_progress_increase_medium_value
|
|
}
|
|
add = {
|
|
value = 1
|
|
if = {
|
|
limit = { var:progress_to_victory_score >= contest_progress_increase_massive_value }
|
|
add = 1
|
|
}
|
|
desc = tournament_aptitude.events
|
|
}
|
|
}
|
|
# Trait
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = wit
|
|
value >= 25
|
|
}
|
|
}
|
|
add = {
|
|
value = 1
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = wit
|
|
value >= 50
|
|
}
|
|
}
|
|
add = 1
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = wit
|
|
value >= 75
|
|
}
|
|
}
|
|
add = 1
|
|
}
|
|
desc = tourney_participant_wit
|
|
}
|
|
}
|
|
#Primary skill without Hastiludes
|
|
if = { # Diplomacy
|
|
limit = {
|
|
NOT = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = wit
|
|
value >= 25
|
|
}
|
|
}
|
|
diplomacy >= medium_skill_rating
|
|
}
|
|
add = {
|
|
value = 1
|
|
if = {
|
|
limit = { diplomacy >= high_skill_rating }
|
|
add = 1
|
|
}
|
|
desc = diplomacy_concept
|
|
}
|
|
}
|
|
if = { # Learning
|
|
limit = {
|
|
NOT = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = wit
|
|
value >= 25
|
|
}
|
|
}
|
|
learning >= medium_skill_rating
|
|
}
|
|
add = {
|
|
value = 1
|
|
if = {
|
|
limit = { learning >= high_skill_rating }
|
|
add = 1
|
|
}
|
|
desc = learning_concept
|
|
}
|
|
}
|
|
# Lifestyle & Genetic
|
|
if = {
|
|
limit = {
|
|
involved_activity ?= { has_current_phase = tournament_phase_recital }
|
|
has_trait = poet
|
|
}
|
|
add = {
|
|
value = 1
|
|
desc = trait_poet
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
has_trait = intellect_good_1
|
|
has_trait = intellect_good_2
|
|
has_trait = intellect_good_3
|
|
has_trait = shrewd
|
|
}
|
|
}
|
|
add = {
|
|
value = 1
|
|
desc = trait_shrewd
|
|
}
|
|
}
|
|
# Disability & Misc.
|
|
if = {
|
|
limit = {
|
|
involved_activity ?= { has_current_phase = tournament_phase_recital }
|
|
has_trait = lisping
|
|
}
|
|
add = {
|
|
value = -1
|
|
desc = trait_lisping
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
involved_activity ?= { has_current_phase = tournament_phase_recital }
|
|
has_trait = stuttering
|
|
}
|
|
add = {
|
|
value = -1
|
|
desc = trait_stuttering
|
|
}
|
|
}
|
|
if = {
|
|
limit = { has_trait = dull }
|
|
add = {
|
|
value = -1
|
|
desc = trait_dull
|
|
}
|
|
}
|
|
|
|
max = 5
|
|
}
|
|
|
|
# The end result of this number MUST be between 0 and 5, otherwise the game
|
|
# will crash due to being used in the UI to allocate a segmented progress bar
|
|
contest_type_aptitude_foot = {
|
|
value = 0
|
|
# Score
|
|
if = {
|
|
limit = {
|
|
involved_activity ?= {
|
|
OR = {
|
|
has_current_phase = tournament_phase_duel
|
|
has_current_phase = tournament_phase_wrestling
|
|
}
|
|
}
|
|
exists = var:progress_to_victory_score
|
|
var:progress_to_victory_score >= contest_progress_increase_medium_value
|
|
}
|
|
add = {
|
|
value = 1
|
|
if = {
|
|
limit = { var:progress_to_victory_score >= contest_progress_increase_massive_value }
|
|
add = 1
|
|
}
|
|
desc = tournament_aptitude.events
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
involved_activity ?= { has_current_phase = tournament_phase_melee }
|
|
exists = var:progress_to_victory_score
|
|
var:progress_to_victory_score >= contest_progress_increase_medium_value
|
|
}
|
|
add = {
|
|
value = 0.5
|
|
if = {
|
|
limit = { var:progress_to_victory_score >= contest_progress_increase_massive_value }
|
|
add = 0.5
|
|
}
|
|
desc = tournament_aptitude.events
|
|
}
|
|
}
|
|
# Trait
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = foot
|
|
value >= 25
|
|
}
|
|
}
|
|
add = {
|
|
value = 1
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = foot
|
|
value >= 50
|
|
}
|
|
}
|
|
add = 1
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = foot
|
|
value >= 75
|
|
}
|
|
}
|
|
add = 1
|
|
}
|
|
desc = tourney_participant_foot
|
|
}
|
|
}
|
|
#Primary skill without Hastiludes
|
|
if = { # Prowess
|
|
limit = {
|
|
NOT = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = foot
|
|
value >= 25
|
|
}
|
|
}
|
|
prowess >= medium_skill_rating
|
|
}
|
|
add = {
|
|
value = 1
|
|
if = {
|
|
limit = { prowess >= high_skill_rating }
|
|
add = 1
|
|
}
|
|
desc = prowess_concept
|
|
}
|
|
}
|
|
if = { # Martial
|
|
limit = {
|
|
NOT = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = foot
|
|
value >= 25
|
|
}
|
|
}
|
|
martial >= medium_skill_rating
|
|
}
|
|
add = {
|
|
value = 1
|
|
if = {
|
|
limit = { martial >= high_skill_rating }
|
|
add = 1
|
|
}
|
|
desc = martial_concept
|
|
}
|
|
}
|
|
# Lifestyle & Genetic
|
|
if = {
|
|
limit = { has_trait = lifestyle_blademaster }
|
|
add = {
|
|
value = 1
|
|
desc = trait_lifestyle_blademaster
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
has_trait = physique_good_1
|
|
has_trait = physique_good_2
|
|
has_trait = physique_good_3
|
|
has_trait = strong
|
|
}
|
|
}
|
|
add = {
|
|
value = 1
|
|
desc = trait_strong
|
|
}
|
|
}
|
|
|
|
# Disability & Misc.
|
|
if = {
|
|
limit = { has_trait = weak }
|
|
add = {
|
|
value = -1
|
|
desc = trait_weak
|
|
}
|
|
}
|
|
if = {
|
|
limit = { has_trait = maimed }
|
|
add = {
|
|
value = -1
|
|
desc = trait_maimed
|
|
}
|
|
}
|
|
if = {
|
|
limit = { has_trait = giant }
|
|
add = {
|
|
value = 1
|
|
desc = trait_giant
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait = viking
|
|
culture ?= { has_innovation = innovation_longboats }
|
|
}
|
|
add = {
|
|
value = 1
|
|
desc = trait_viking_has_longships
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait = viking
|
|
exists = culture
|
|
NOT = {
|
|
culture = { has_innovation = innovation_longboats }
|
|
}
|
|
}
|
|
add = {
|
|
value = 1
|
|
desc = trait_viking_fallback
|
|
}
|
|
}
|
|
if = {
|
|
limit = { has_trait = faith_warrior }
|
|
add = {
|
|
value = 1
|
|
desc = trait_faith_warrior
|
|
}
|
|
}
|
|
if = {
|
|
limit = { has_trait = berserker }
|
|
add = {
|
|
value = 1
|
|
desc = trait_berserker
|
|
}
|
|
}
|
|
|
|
max = 5
|
|
min = 0
|
|
}
|
|
|
|
# The end result of this number MUST be between 0 and 5, otherwise the game
|
|
# will crash due to being used in the UI to allocate a segmented progress bar
|
|
contest_type_aptitude_horse = {
|
|
value = 0
|
|
# Score
|
|
if = {
|
|
limit = {
|
|
involved_activity ?= {
|
|
OR = {
|
|
has_current_phase = tournament_phase_horse_race
|
|
has_current_phase = tournament_phase_joust
|
|
}
|
|
}
|
|
exists = var:progress_to_victory_score
|
|
var:progress_to_victory_score >= contest_progress_increase_medium_value
|
|
}
|
|
add = {
|
|
value = 1
|
|
if = {
|
|
limit = { var:progress_to_victory_score >= contest_progress_increase_massive_value }
|
|
add = 1
|
|
}
|
|
desc = tournament_aptitude.events
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
involved_activity ?= { has_current_phase = tournament_phase_melee }
|
|
exists = var:progress_to_victory_score
|
|
var:progress_to_victory_score >= contest_progress_increase_medium_value
|
|
}
|
|
add = {
|
|
value = 0.5
|
|
if = {
|
|
limit = { var:progress_to_victory_score >= contest_progress_increase_massive_value }
|
|
add = 0.5
|
|
}
|
|
desc = tournament_aptitude.events
|
|
}
|
|
}
|
|
# Trait
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = horse
|
|
value >= 25
|
|
}
|
|
}
|
|
add = {
|
|
value = 1
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = horse
|
|
value >= 50
|
|
}
|
|
}
|
|
add = 1
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = horse
|
|
value >= 75
|
|
}
|
|
}
|
|
add = 1
|
|
}
|
|
desc = tourney_participant_foot
|
|
}
|
|
}
|
|
if = { # Prowess
|
|
limit = {
|
|
NOT = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = foot
|
|
value >= 25
|
|
}
|
|
}
|
|
prowess >= medium_skill_rating
|
|
}
|
|
add = {
|
|
value = 1
|
|
if = {
|
|
limit = { prowess >= high_skill_rating }
|
|
add = 1
|
|
}
|
|
desc = prowess_concept
|
|
}
|
|
}
|
|
if = { # Martial
|
|
limit = {
|
|
NOT = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = foot
|
|
value >= 25
|
|
}
|
|
}
|
|
martial >= medium_skill_rating
|
|
}
|
|
add = {
|
|
value = 1
|
|
if = {
|
|
limit = { martial >= high_skill_rating }
|
|
add = 1
|
|
}
|
|
desc = martial_concept
|
|
}
|
|
}
|
|
# Lifestyle & Genetic
|
|
if = {
|
|
limit = { has_trait = adventurer } #Bit of a stretch, I know
|
|
add = {
|
|
value = 1
|
|
desc = trait_adventurer
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
has_trait = education_martial_prowess_1
|
|
has_trait = education_martial_prowess_2
|
|
has_trait = education_martial_prowess_3
|
|
has_trait = education_martial_prowess_4
|
|
}
|
|
}
|
|
add = {
|
|
value = 1
|
|
if = {
|
|
limit = { has_trait = education_martial_prowess_2 }
|
|
add = 1
|
|
}
|
|
else_if = {
|
|
limit = { has_trait = education_martial_prowess_3 }
|
|
add = 1
|
|
}
|
|
else_if = {
|
|
limit = { has_trait = education_martial_prowess_4 }
|
|
add = 1
|
|
}
|
|
desc = trait_education_martial_prowess
|
|
}
|
|
}
|
|
# Disability & Misc.
|
|
if = {
|
|
limit = { has_trait = dwarf }
|
|
add = {
|
|
value = 1
|
|
desc = trait_dwarf
|
|
}
|
|
}
|
|
if = {
|
|
limit = { has_trait = giant }
|
|
add = {
|
|
value = -1
|
|
desc = trait_giant
|
|
}
|
|
}
|
|
|
|
max = 5
|
|
min = 0
|
|
}
|
|
|
|
# The end result of this number MUST be between 0 and 5, otherwise the game
|
|
# will crash due to being used in the UI to allocate a segmented progress bar
|
|
contest_type_aptitude_archery = {
|
|
value = 0
|
|
# Score
|
|
if = {
|
|
limit = {
|
|
involved_activity ?= { has_current_phase = tournament_phase_archery }
|
|
exists = var:progress_to_victory_score
|
|
var:progress_to_victory_score >= contest_progress_increase_medium_value
|
|
}
|
|
add = {
|
|
value = 1
|
|
if = {
|
|
limit = { var:progress_to_victory_score >= contest_progress_increase_massive_value }
|
|
add = 1
|
|
}
|
|
desc = tournament_aptitude.events
|
|
}
|
|
}
|
|
# Trait
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = bow
|
|
value >= 25
|
|
}
|
|
}
|
|
add = {
|
|
value = 1
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = bow
|
|
value >= 50
|
|
}
|
|
}
|
|
add = 1
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = bow
|
|
value >= 75
|
|
}
|
|
}
|
|
add = 1
|
|
}
|
|
desc = tourney_participant_bow
|
|
}
|
|
}
|
|
# Trait
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = bow
|
|
value >= 25
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = bow
|
|
value >= 25
|
|
}
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = bow
|
|
value < 50
|
|
}
|
|
}
|
|
add = {
|
|
value = 1
|
|
desc = tourney_participant_foot
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = bow
|
|
value >= 50
|
|
}
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = bow
|
|
value < 75
|
|
}
|
|
}
|
|
add = {
|
|
value = 2
|
|
desc = tourney_participant_bow
|
|
}
|
|
}
|
|
else = {
|
|
add = {
|
|
value = 3
|
|
desc = tourney_participant_bow
|
|
}
|
|
}
|
|
}
|
|
#Primary skill without Hastiludes
|
|
if = { # Prowess
|
|
limit = {
|
|
NOT = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = foot
|
|
value >= 25
|
|
}
|
|
}
|
|
prowess >= medium_skill_rating
|
|
}
|
|
add = {
|
|
value = 1
|
|
if = {
|
|
limit = { prowess >= high_skill_rating }
|
|
add = 1
|
|
}
|
|
desc = prowess_concept
|
|
}
|
|
}
|
|
# Lifestyle & Genetic
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = lifestyle_hunter
|
|
track = hunter
|
|
value >= 25
|
|
}
|
|
}
|
|
add = {
|
|
value = 1
|
|
desc = trait_lifestyle_hunter
|
|
}
|
|
}
|
|
|
|
# Disability & Misc.
|
|
if = {
|
|
limit = { has_trait = strong }
|
|
add = {
|
|
value = 1
|
|
desc = trait_strong
|
|
}
|
|
}
|
|
if = {
|
|
limit = { has_trait = weak }
|
|
add = {
|
|
value = -1
|
|
desc = trait_weak
|
|
}
|
|
}
|
|
if = {
|
|
limit = { has_trait = one_eyed }
|
|
add = {
|
|
value = -1
|
|
desc = trait_one_eyed
|
|
}
|
|
}
|
|
if = {
|
|
limit = { has_trait = maimed }
|
|
add = {
|
|
value = -5
|
|
desc = trait_maimed
|
|
}
|
|
}
|
|
|
|
max = 5
|
|
min = 0
|
|
}
|
|
|
|
contest_health_aptitude_offset_value = {
|
|
# Health
|
|
if = {
|
|
limit = { health >= excellent_health }
|
|
add = 5
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
health >= good_health
|
|
health < excellent_health
|
|
}
|
|
add = 3
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
health < fine_health
|
|
health > poor_health
|
|
}
|
|
add = -5
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
health <= poor_health
|
|
health > dying_health
|
|
}
|
|
add = -10
|
|
}
|
|
else_if = {
|
|
limit = { health <= dying_health }
|
|
add = -20
|
|
}
|
|
}
|
|
|
|
contest_foot_aptitude_value = {
|
|
|
|
### Base ###
|
|
# Prowess
|
|
value = contest_base_aptitude_value
|
|
add = {
|
|
value = prowess_no_portrait # exclude artifacts
|
|
multiply = 1.5
|
|
}
|
|
|
|
### Additional Modifiers ###
|
|
# Artifacts - only own armor is used
|
|
if = {
|
|
limit = {
|
|
any_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = illustrious
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
any_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = famed
|
|
}
|
|
}
|
|
add = 15
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
any_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = masterwork
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
any_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = common
|
|
}
|
|
}
|
|
add = 5
|
|
}
|
|
# Tourney Trait - Foot
|
|
if = {
|
|
limit = { has_trait = tourney_participant }
|
|
add = 5
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = foot
|
|
value >= 20
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = foot
|
|
value >= 50
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = foot
|
|
value >= 80
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
}
|
|
# Strength
|
|
if = {
|
|
limit = { has_trait = giant }
|
|
add = 4
|
|
}
|
|
if = {
|
|
limit = { has_trait = strong }
|
|
add = 4
|
|
}
|
|
if = {
|
|
limit = { has_trait = viking }
|
|
add = 2
|
|
}
|
|
if = {
|
|
limit = { has_trait = faith_warrior }
|
|
add = 2
|
|
}
|
|
if = {
|
|
limit = { has_trait = berserker }
|
|
add = 4
|
|
}
|
|
if = {
|
|
limit = { has_trait = physique_good }
|
|
if = {
|
|
limit = { has_trait = physique_good_1 }
|
|
add = 3
|
|
}
|
|
else_if = {
|
|
limit = { has_trait = physique_good_2 }
|
|
add = 6
|
|
}
|
|
else_if = {
|
|
limit = { has_trait = physique_good_3 }
|
|
add = 9
|
|
}
|
|
}
|
|
# Lifestyle
|
|
if = {
|
|
limit = { has_trait = lifestyle_blademaster }
|
|
add = 4
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = lifestyle_blademaster
|
|
value >= 50
|
|
}
|
|
}
|
|
add = 8
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = lifestyle_blademaster
|
|
value >= 100
|
|
}
|
|
}
|
|
add = 12
|
|
}
|
|
}
|
|
# Health
|
|
add = contest_health_aptitude_offset_value
|
|
# Favors
|
|
every_character_artifact = {
|
|
limit = { artifact_type = tournament_favor }
|
|
add = 5
|
|
}
|
|
# Modifiers
|
|
add = shared_tournament_aptitude_modifiers_value
|
|
# Other
|
|
if = {
|
|
limit = { has_character_modifier = tournament_armorer_tournament_modifier }
|
|
add = 10
|
|
}
|
|
|
|
### Boundaries ###
|
|
min = 1
|
|
}
|
|
|
|
contest_melee_aptitude_value = {
|
|
|
|
value = contest_foot_aptitude_value
|
|
add = contest_horse_aptitude_value
|
|
divide = 2
|
|
|
|
### Boundaries ###
|
|
min = 1
|
|
}
|
|
|
|
contest_archery_aptitude_value = {
|
|
|
|
### Base ###
|
|
# Prowess
|
|
value = contest_base_aptitude_value
|
|
add = {
|
|
value = prowess_no_portrait # exclude artifacts
|
|
multiply = 1.5
|
|
}
|
|
|
|
### Additional Modifiers ###
|
|
# Artifacts - only own bows are used
|
|
if = {
|
|
limit = {
|
|
any_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
OR = {
|
|
artifact_type = longbow
|
|
artifact_type = composite
|
|
artifact_type = bow
|
|
}
|
|
rarity = illustrious
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
any_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
OR = {
|
|
artifact_type = longbow
|
|
artifact_type = composite
|
|
artifact_type = bow
|
|
}
|
|
rarity = famed
|
|
}
|
|
}
|
|
add = 15
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
any_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
OR = {
|
|
artifact_type = longbow
|
|
artifact_type = composite
|
|
artifact_type = bow
|
|
}
|
|
rarity = masterwork
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
any_character_artifact = {
|
|
artifact_slot_type = primary_armament
|
|
OR = {
|
|
artifact_type = longbow
|
|
artifact_type = composite
|
|
artifact_type = bow
|
|
}
|
|
rarity = common
|
|
}
|
|
}
|
|
add = 5
|
|
}
|
|
# Tourney Trait - Bow
|
|
if = {
|
|
limit = { has_trait = tourney_participant }
|
|
add = 5
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = bow
|
|
value >= 20
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = bow
|
|
value >= 50
|
|
}
|
|
}
|
|
add = 15
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = bow
|
|
value >= 80
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
}
|
|
# Strength
|
|
if = {
|
|
limit = { has_trait = strong }
|
|
add = 5
|
|
}
|
|
if = {
|
|
limit = { has_trait = physique_good }
|
|
if = {
|
|
limit = { has_trait = physique_good_1 }
|
|
add = 4
|
|
}
|
|
else_if = {
|
|
limit = { has_trait = physique_good_2 }
|
|
add = 6
|
|
}
|
|
else_if = {
|
|
limit = { has_trait = physique_good_3 }
|
|
add = 9
|
|
}
|
|
}
|
|
# Lifestyle
|
|
if = {
|
|
limit = { has_trait = tourney_participant }
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = bow
|
|
value >= 25
|
|
}
|
|
}
|
|
add = 7
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = bow
|
|
value >= 50
|
|
}
|
|
}
|
|
add = 14
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = bow
|
|
value >= 75
|
|
}
|
|
}
|
|
add = 21
|
|
}
|
|
}
|
|
# Personality
|
|
if = {
|
|
limit = { has_trait = patient }
|
|
add = 3
|
|
}
|
|
# Health
|
|
add = contest_health_aptitude_offset_value
|
|
# Modifiers
|
|
add = shared_tournament_aptitude_modifiers_value
|
|
### Boundaries ###
|
|
min = 1
|
|
}
|
|
|
|
contest_pugilism_aptitude_value = {
|
|
|
|
### Base ###
|
|
# Prowess
|
|
value = contest_base_aptitude_value
|
|
add = {
|
|
value = prowess_no_portrait # exclude artifacts
|
|
multiply = 1.5
|
|
}
|
|
|
|
### Additional Modifiers ###
|
|
# Tourney Trait - Foot
|
|
if = {
|
|
limit = { has_trait = tourney_participant }
|
|
add = 5
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = foot
|
|
value >= 20
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = foot
|
|
value >= 50
|
|
}
|
|
}
|
|
add = 15
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = foot
|
|
value >= 80
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
}
|
|
# Strength
|
|
if = {
|
|
limit = { has_trait = giant }
|
|
add = 10
|
|
}
|
|
if = {
|
|
limit = { has_trait = strong }
|
|
add = 5
|
|
}
|
|
if = {
|
|
limit = { has_trait = physique_good }
|
|
if = {
|
|
limit = { has_trait = physique_good_1 }
|
|
add = 3
|
|
}
|
|
else_if = {
|
|
limit = { has_trait = physique_good_2 }
|
|
add = 6
|
|
}
|
|
else_if = {
|
|
limit = { has_trait = physique_good_3 }
|
|
add = 9
|
|
}
|
|
}
|
|
# Personality
|
|
if = {
|
|
limit = { has_trait = wrathful }
|
|
add = 3
|
|
}
|
|
if = {
|
|
limit = { has_trait = deceitful }
|
|
add = 3
|
|
}
|
|
if = {
|
|
limit = { has_trait = patient }
|
|
add = 3
|
|
}
|
|
# Health
|
|
add = contest_health_aptitude_offset_value
|
|
# Modifiers
|
|
add = shared_tournament_aptitude_modifiers_value
|
|
### Boundaries ###
|
|
min = 1
|
|
}
|
|
|
|
contest_horse_aptitude_value = {
|
|
|
|
### Base ###
|
|
# Prowess
|
|
value = contest_base_aptitude_value
|
|
add = {
|
|
value = prowess_no_portrait # exclude artifacts
|
|
multiply = 0.5
|
|
}
|
|
|
|
### Additional Modifiers ###
|
|
# Artifacts - only own armor is used
|
|
if = {
|
|
limit = {
|
|
any_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = illustrious
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
any_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = famed
|
|
}
|
|
}
|
|
add = 15
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
any_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = masterwork
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
any_character_artifact = {
|
|
artifact_slot_type = armor
|
|
rarity = common
|
|
}
|
|
}
|
|
add = 5
|
|
}
|
|
# Tourney Trait - Horse
|
|
if = {
|
|
limit = { has_trait = tourney_participant }
|
|
add = 5
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = horse
|
|
value >= 20
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = horse
|
|
value >= 50
|
|
}
|
|
}
|
|
add = 15
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = horse
|
|
value >= 80
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
}
|
|
# Education
|
|
if = {
|
|
limit = { has_trait = education_martial_prowess }
|
|
if = {
|
|
limit = { has_trait = education_martial_prowess_1 }
|
|
add = 3
|
|
}
|
|
else_if = {
|
|
limit = { has_trait = education_martial_prowess_2 }
|
|
add = 6
|
|
}
|
|
else_if = {
|
|
limit = { has_trait = education_martial_prowess_3 }
|
|
add = 9
|
|
}
|
|
else = { add = 12 }
|
|
}
|
|
# Content
|
|
if = {
|
|
limit = { has_character_modifier = improved_horse_mastery_modifier }
|
|
add = 5
|
|
}
|
|
if = {
|
|
limit = { has_character_modifier = cavalry_charge_exercise_modifier }
|
|
add = 5
|
|
}
|
|
if = {
|
|
limit = { has_character_modifier = mounted_warrior_practice_modifier }
|
|
add = 5
|
|
}
|
|
if = {
|
|
limit = { has_character_modifier = tournament_farrier_mistake_modifier }
|
|
add = farrier_mistake_value
|
|
}
|
|
|
|
# Personality
|
|
if = {
|
|
limit = { has_trait = calm }
|
|
add = 3
|
|
}
|
|
if = {
|
|
limit = { has_trait = compassionate }
|
|
add = 3
|
|
}
|
|
if = {
|
|
limit = { has_trait = patient }
|
|
add = 3
|
|
}
|
|
# Health
|
|
add = contest_health_aptitude_offset_value
|
|
|
|
# Modifiers
|
|
add = shared_tournament_aptitude_modifiers_value
|
|
|
|
### Boundaries ###
|
|
min = 1
|
|
}
|
|
|
|
contest_recital_aptitude_value = {
|
|
|
|
### Base ###
|
|
# Prowess
|
|
value = contest_base_aptitude_value
|
|
add = {
|
|
value = diplomacy
|
|
}
|
|
|
|
### Additional Modifiers ###
|
|
# Tourney Trait - Wit
|
|
if = {
|
|
limit = { has_trait = tourney_participant }
|
|
add = 5
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = wit
|
|
value >= 20
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = wit
|
|
value >= 50
|
|
}
|
|
}
|
|
add = 15
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = wit
|
|
value >= 80
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
}
|
|
# Lifestyle
|
|
if = {
|
|
limit = { has_trait = poet }
|
|
add = 20
|
|
}
|
|
# Disability
|
|
if = {
|
|
limit = { has_trait = lisping }
|
|
add = -10
|
|
}
|
|
if = {
|
|
limit = { has_trait = stuttering }
|
|
add = -10
|
|
}
|
|
|
|
# Modifiers
|
|
add = shared_tournament_aptitude_modifiers_value
|
|
|
|
### Boundaries ###
|
|
min = 1
|
|
}
|
|
|
|
contest_board_game_aptitude_value = {
|
|
|
|
### Base ###
|
|
# Prowess
|
|
value = contest_base_aptitude_value
|
|
add = {
|
|
value = learning
|
|
multiply = 1.5
|
|
}
|
|
|
|
### Additional Modifiers ###
|
|
# Tourney Trait - Wit
|
|
if = {
|
|
limit = { has_trait = tourney_participant }
|
|
add = 5
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = wit
|
|
value >= 20
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = wit
|
|
value >= 50
|
|
}
|
|
}
|
|
add = 15
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = wit
|
|
value >= 80
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
}
|
|
|
|
# Modifiers
|
|
add = shared_tournament_aptitude_modifiers_value
|
|
|
|
### Boundaries ###
|
|
min = 1
|
|
}
|
|
|
|
contest_horse_race_aptitude_value = {
|
|
|
|
### Base ###
|
|
# Prowess
|
|
value = 0
|
|
add = primary_title.tier
|
|
multiply = contest_base_aptitude_value
|
|
|
|
### Additional Modifiers ###
|
|
# Education
|
|
if = {
|
|
limit = { has_trait = education_stewardship }
|
|
if = {
|
|
limit = { has_trait = education_stewardship_1 }
|
|
add = 2
|
|
}
|
|
else_if = {
|
|
limit = { has_trait = education_stewardship_2 }
|
|
add = 5
|
|
}
|
|
else_if = {
|
|
limit = { has_trait = education_stewardship_3 }
|
|
add = 8
|
|
}
|
|
else = { add = 10 }
|
|
}
|
|
if = {
|
|
limit = { has_character_flag = contest_horse_race_war_horse }
|
|
if = {
|
|
limit = { has_character_modifier = horse_agility_agility_modifier }
|
|
add = 20
|
|
}
|
|
else_if ={
|
|
limit = { has_character_modifier = horse_endurance_agility_modifier }
|
|
add = 15
|
|
}
|
|
else_if ={
|
|
limit = { has_character_modifier = horse_endurance_endurance_modifier }
|
|
add = 10
|
|
}
|
|
else_if ={
|
|
limit = {
|
|
OR = {
|
|
has_character_modifier = horse_agility_modifier
|
|
has_character_modifier = horse_endurance_modifier
|
|
has_character_modifier = horse_agility_strength_modifier
|
|
has_character_modifier = horse_fierceness_agility_modifier
|
|
has_character_modifier = horse_fierceness_endurance_modifier
|
|
has_character_modifier = horse_endurance_strength_modifier
|
|
}
|
|
}
|
|
add = 5
|
|
}
|
|
}
|
|
# Personality
|
|
if = {
|
|
limit = { has_trait = diligent }
|
|
add = 3
|
|
}
|
|
if = {
|
|
limit = { has_trait = overseer }
|
|
add = 3
|
|
}
|
|
if = {
|
|
limit = { has_trait = administrator }
|
|
add = 3
|
|
}
|
|
# Flavor
|
|
if = {
|
|
limit = {
|
|
exists = var:contest_horse_race_name
|
|
var:contest_horse_race_name = flag:seianian
|
|
}
|
|
multiply = 0.25
|
|
}
|
|
# Flavor
|
|
if = {
|
|
limit = {
|
|
exists = var:horse_race_jockey
|
|
var:horse_race_jockey = { is_alive = yes }
|
|
}
|
|
add = var:horse_race_jockey.contest_horse_aptitude_value
|
|
}
|
|
### Boundaries ###
|
|
min = 1
|
|
}
|
|
|
|
contest_current_contest_aptitude_value = {
|
|
|
|
value = 0
|
|
if = {
|
|
limit = { scope:activity = { has_current_phase = tournament_phase_joust } }
|
|
add = contest_horse_aptitude_value
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:activity = {
|
|
OR = {
|
|
has_current_phase = tournament_phase_duel
|
|
has_current_phase = tournament_phase_melee
|
|
}
|
|
}
|
|
}
|
|
add = contest_foot_aptitude_value
|
|
}
|
|
else_if = {
|
|
limit = { scope:activity = { has_current_phase = tournament_phase_board_game } }
|
|
add = contest_board_game_aptitude_value
|
|
}
|
|
else_if = {
|
|
limit = { scope:activity = { has_current_phase = tournament_phase_recital } }
|
|
add = contest_recital_aptitude_value
|
|
}
|
|
else_if = {
|
|
limit = { scope:activity = { has_current_phase = tournament_phase_horse_race } }
|
|
add = contest_horse_race_aptitude_value
|
|
}
|
|
else_if = {
|
|
limit = { scope:activity = { has_current_phase = tournament_phase_archery } }
|
|
add = contest_archery_aptitude_value
|
|
}
|
|
else = { add = contest_pugilism_aptitude_value }
|
|
|
|
### Boundaries ###
|
|
min = 1
|
|
}
|
|
|
|
contest_base_aptitude_value = 5
|
|
|
|
shared_tournament_aptitude_modifiers_value = {
|
|
value = 0
|
|
if = {
|
|
limit = { has_character_modifier = unwilling_tourneyer_modifier }
|
|
add = -10
|
|
}
|
|
if = {
|
|
limit = { has_character_modifier = generous_to_knights_modifier }
|
|
add = 5
|
|
}
|
|
}
|
|
|
|
contest_progress_increase_massive_value = 30
|
|
contest_progress_increase_major_value = 25
|
|
contest_progress_increase_medium_value = 20
|
|
contest_progress_increase_minor_value = 15
|
|
contest_progress_increase_miniscule_value = 10
|
|
|
|
contest_progress_decrease_massive_value = {
|
|
value = contest_progress_increase_massive_value
|
|
multiply = -1
|
|
}
|
|
contest_progress_decrease_major_value = {
|
|
value = contest_progress_increase_major_value
|
|
multiply = -1
|
|
}
|
|
contest_progress_decrease_medium_value = {
|
|
value = contest_progress_increase_minor_value
|
|
multiply = -1
|
|
}
|
|
contest_progress_decrease_minor_value = {
|
|
value = contest_progress_increase_minor_value
|
|
multiply = -1
|
|
}
|
|
contest_progress_decrease_miniscule_value = {
|
|
value = contest_progress_increase_miniscule_value
|
|
multiply = -1
|
|
}
|
|
|
|
tournament_team_alpha_size = {
|
|
scope:activity = {
|
|
every_guest_subset_current_phase = { name = team_alpha add = 1 }
|
|
}
|
|
}
|
|
|
|
tournament_team_beta_size = {
|
|
scope:activity = {
|
|
every_guest_subset_current_phase = { name = team_beta add = 1 }
|
|
}
|
|
}
|
|
|
|
# WAGERS
|
|
# Top = A, Bottom = B, Target = C, Odds percent = X
|
|
# (C - B) / (A - B) = X
|
|
|
|
# A
|
|
tournament_wager_top_score_value = { value = scope:wager_top_contestant.var:contest_aptitude }
|
|
|
|
# B
|
|
tournament_wager_bottom_score_value = { value = scope:wager_bottom_contestant.var:contest_aptitude }
|
|
|
|
# C
|
|
tournament_wager_target_score_value = { value = scope:wager_target.var:contest_aptitude }
|
|
|
|
# A - B
|
|
tournament_wager_top_minus_bottom_score_value = {
|
|
value = tournament_wager_top_score_value
|
|
subtract = tournament_wager_bottom_score_value
|
|
}
|
|
|
|
# C - B
|
|
tournament_wager_target_minus_bottom_value = {
|
|
value = tournament_wager_target_score_value
|
|
subtract = tournament_wager_bottom_score_value
|
|
}
|
|
|
|
# (C - B) / (A - B) = X
|
|
tournament_wager_odds_percent_value = {
|
|
value = tournament_wager_target_minus_bottom_value
|
|
divide = tournament_wager_top_minus_bottom_score_value
|
|
# Betting on yourself pays out less
|
|
if = {
|
|
limit = { scope:wagerer = scope:wager_target }
|
|
multiply = 1.5
|
|
}
|
|
# Betting on mysterious stranger pays out more
|
|
if = {
|
|
limit = {
|
|
exists = scope:mysterious_stranger
|
|
scope:mysterious_stranger = scope:wager_target
|
|
}
|
|
multiply = 0.5
|
|
}
|
|
min = 0
|
|
max = 1
|
|
}
|
|
|
|
# Convert odds percent into multiplier
|
|
tournament_wager_payout_value = {
|
|
value = tiny_gold_value
|
|
if = {
|
|
limit = { tournament_wager_odds_percent_value >= 0.9 }
|
|
multiply = 1.25 # 4/1
|
|
}
|
|
else_if = {
|
|
limit = { tournament_wager_odds_percent_value >= 0.8 }
|
|
multiply = 1.5 # 2/1
|
|
}
|
|
else_if = {
|
|
limit = { tournament_wager_odds_percent_value >= 0.7 }
|
|
multiply = 2 # 1/2
|
|
}
|
|
else_if = {
|
|
limit = { tournament_wager_odds_percent_value >= 0.6 }
|
|
multiply = 3 # 1/3
|
|
}
|
|
else_if = {
|
|
limit = { tournament_wager_odds_percent_value >= 0.5 }
|
|
multiply = 4 # 1/4
|
|
}
|
|
else_if = {
|
|
limit = { tournament_wager_odds_percent_value >= 0.4 }
|
|
multiply = 5 # 1/5
|
|
}
|
|
else_if = {
|
|
limit = { tournament_wager_odds_percent_value >= 0.3 }
|
|
multiply = 6 # 1/6
|
|
}
|
|
else_if = {
|
|
limit = { tournament_wager_odds_percent_value >= 0.2 }
|
|
multiply = 7 # 1/7
|
|
}
|
|
else_if = {
|
|
limit = { tournament_wager_odds_percent_value >= 0.1 }
|
|
multiply = 8 # 1/8
|
|
}
|
|
else = { multiply = 9 } # 1/9
|
|
ceiling = yes
|
|
}
|
|
|
|
# Payout minus gold value
|
|
tournament_wager_winning_value = {
|
|
value = tournament_wager_payout_value
|
|
subtract = tiny_gold_value
|
|
}
|
|
|
|
tournament_wager_diff_value = {
|
|
value = tournament_wager_top_score_value
|
|
multiply = 0.5
|
|
}
|
|
|
|
tournament_versus_bout_delay_min = 1
|
|
|
|
tournament_versus_bout_delay_max = 6
|
|
|
|
tournament_versus_bout_summary_delay = 30
|
|
|
|
tournament_versus_duration_months = 1 # Versus must be specific duration to work - do not edit
|
|
|
|
tournament_standard_duration_months = 1
|
|
|
|
tournament_qualification_duration_weeks = 8
|
|
|
|
tournament_turn_contest_duration_weeks = 3
|
|
|
|
tournament_team_contest_duration_weeks = 4
|
|
|
|
tournament_race_contest_duration_weeks = 3
|
|
|
|
tournament_intent_delay_min = 1
|
|
|
|
tournament_intent_delay_max = 2
|
|
|
|
tournament_contest_aptitude_diff_value = {
|
|
value = 0
|
|
if = {
|
|
limit = { exists = var:progress_to_victory }
|
|
add = var:progress_to_victory
|
|
}
|
|
if = {
|
|
limit = { exists = scope:contest_compare.var:progress_to_victory }
|
|
subtract = scope:contest_compare.var:progress_to_victory
|
|
}
|
|
}
|
|
|
|
tournament_active_phase_count_value = {
|
|
# 1-5 Phases:
|
|
value = 1
|
|
# Tribes have less phases
|
|
# Removed; felt a little punishing - NM
|
|
#if = {
|
|
# limit = {
|
|
# NOT = { government_has_flag = government_is_tribal }
|
|
# }
|
|
# add = 1
|
|
#}
|
|
# Extra phases unlocked over time
|
|
culture = {
|
|
if = {
|
|
limit = { has_cultural_era_or_later = culture_era_early_medieval }
|
|
add = 1
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_cultural_era_or_later = culture_era_high_medieval
|
|
}
|
|
add = 1
|
|
}
|
|
if = {
|
|
limit = { has_cultural_era_or_later = culture_era_late_medieval }
|
|
add = 2
|
|
}
|
|
}
|
|
# Some cultures like practicing war and words; unlock another slot in High medieval age as opposed to Late
|
|
culture = {
|
|
if = {
|
|
limit = {
|
|
NOT = {
|
|
has_cultural_era_or_later = culture_era_late_medieval
|
|
}
|
|
AND = {
|
|
has_cultural_era_or_later = culture_era_high_medieval
|
|
OR = {
|
|
has_cultural_pillar = heritage_north_germanic
|
|
has_cultural_pillar = heritage_frankish
|
|
has_cultural_pillar = heritage_iberian
|
|
has_cultural_pillar = heritage_latin
|
|
has_cultural_pillar = heritage_mongolic
|
|
has_cultural_pillar = heritage_north_germanic
|
|
has_cultural_pillar = heritage_west_germanic
|
|
has_cultural_pillar = heritage_central_germanic
|
|
}
|
|
}
|
|
}
|
|
add = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
contest_contestants_count_value = {
|
|
scope:activity = {
|
|
every_attending_character = {
|
|
limit = { activity_is_valid_tournament_contestant = yes }
|
|
add = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
contest_guests_count_value = {
|
|
scope:activity = {
|
|
every_attending_character = {
|
|
limit = {
|
|
NOT = { activity_is_valid_tournament_contestant = yes }
|
|
}
|
|
add = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
contest_declined_invites_count_value = {
|
|
scope:activity = {
|
|
every_invited_character = {
|
|
limit = {
|
|
NOT = { is_participant_in_activity = scope:activity }
|
|
}
|
|
add = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
contest_valid_contestants_count_value = {
|
|
value = contest_contestants_count_value
|
|
add = contest_guests_count_value
|
|
}
|
|
|
|
tournament_base_cost = {
|
|
value = 100
|
|
}
|
|
|
|
tournament_option_bad_cost = {
|
|
value = 20
|
|
}
|
|
|
|
tournament_option_normal_cost = {
|
|
value = 60
|
|
}
|
|
|
|
tournament_option_good_cost = {
|
|
value = 180
|
|
}
|
|
|
|
tournament_option_very_good_cost = {
|
|
value = 360
|
|
}
|
|
|
|
tournament_option_splendid_cost = {
|
|
value = 720
|
|
}
|
|
|
|
tournament_option_bad_era_scaled_cost = {
|
|
value = 20
|
|
multiply = activity_cost_scale_by_era
|
|
}
|
|
|
|
tournament_option_normal_era_scaled_cost = {
|
|
value = 60
|
|
multiply = activity_cost_scale_by_era
|
|
}
|
|
|
|
tournament_option_good_era_scaled_cost = {
|
|
value = 180
|
|
multiply = activity_cost_scale_by_era
|
|
}
|
|
|
|
tournament_option_very_good_era_scaled_cost = {
|
|
value = 360
|
|
multiply = activity_cost_scale_by_era
|
|
}
|
|
|
|
tournament_option_splendid_era_scaled_cost = {
|
|
value = 720
|
|
multiply = activity_cost_scale_by_era
|
|
}
|
|
|
|
tournament_contest_base_cost = 100
|
|
tournament_contest_base_tribal_cost = {
|
|
value = tournament_contest_base_cost
|
|
divide = 2
|
|
}
|
|
tournament_contest_horse_cost = 150
|
|
tournament_contest_horse_tribal_cost = {
|
|
value = tournament_contest_horse_cost
|
|
divide = 2
|
|
}
|
|
tournament_contest_cheap_cost = 50
|
|
tournament_contest_cheap_tribal_cost = {
|
|
value = tournament_contest_cheap_cost
|
|
divide = 2
|
|
}
|
|
tournament_contest_expensive_cost = 200
|
|
tournament_contest_expensive_tribal_cost = {
|
|
value = tournament_contest_expensive_cost
|
|
divide = 2
|
|
}
|
|
tournament_activity_cost_discount = {
|
|
value = 0.9
|
|
}
|
|
tournament_activity_cost_discount_value = {
|
|
value = tournament_activity_cost_discount
|
|
subtract = 1
|
|
}
|
|
tournament_activity_cost_max_discount = {
|
|
value = 0.75
|
|
}
|
|
tournament_activity_cost_max_discount_value = {
|
|
value = tournament_activity_cost_max_discount
|
|
subtract = 1
|
|
}
|
|
tournament_contest_cost_discount = {
|
|
value = 0.5
|
|
}
|
|
tournament_contest_cost_discount_value = {
|
|
value = tournament_contest_cost_discount
|
|
subtract = 1
|
|
}
|
|
tournament_contest_cost_low_discount = {
|
|
value = 0.9
|
|
}
|
|
tournament_contest_cost_low_discount_value = {
|
|
value = tournament_contest_cost_low_discount
|
|
subtract = 1
|
|
}
|
|
|
|
contest_versus_qualified_count = 8
|
|
contest_versus_semi_finalist_count = 4
|
|
contest_versus_finalist_count = 2
|
|
|
|
progress_to_victory_passive_contestant_value = {
|
|
value = 0
|
|
# if to avoid errors
|
|
if = {
|
|
limit = { exists = var:contest_aptitude }
|
|
value = {
|
|
value = var:contest_aptitude
|
|
multiply = 0.5
|
|
}
|
|
}
|
|
if = {
|
|
limit = { has_court_position = champion_court_position }
|
|
add = 5
|
|
}
|
|
if = {
|
|
limit = { exists = var:progress_to_victory_score }
|
|
add = {
|
|
value = var:progress_to_victory_score
|
|
#multiply = 0.5
|
|
}
|
|
}
|
|
ceiling = yes
|
|
min = 1
|
|
max = 25
|
|
}
|
|
|
|
## This variable is referenced in the UI.
|
|
progress_to_victory_current = {
|
|
value = 0
|
|
if = {
|
|
limit = { exists = var:progress_to_victory }
|
|
add = var:progress_to_victory
|
|
}
|
|
}
|
|
|
|
progress_to_victory_active_contestant_value = {
|
|
value = 0
|
|
if = {
|
|
limit = {
|
|
involved_activity ?= { activity_tournament_versus_contest_trigger = no }
|
|
}
|
|
if = {
|
|
limit = { exists = var:contest_aptitude }
|
|
value = var:contest_aptitude
|
|
}
|
|
if = {
|
|
limit = { exists = var:progress_to_victory_score }
|
|
add = var:progress_to_victory_score
|
|
}
|
|
}
|
|
else = {
|
|
if = {
|
|
limit = { exists = var:contest_aptitude }
|
|
add = {
|
|
value = var:contest_aptitude
|
|
divide = 2
|
|
}
|
|
}
|
|
if = {
|
|
limit = { exists = var:progress_to_victory_score }
|
|
add = {
|
|
value = var:progress_to_victory_score
|
|
divide = 2
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = { exists = var:progress_to_victory_score }
|
|
add = var:progress_to_victory_score
|
|
}
|
|
ceiling = yes
|
|
max = 90
|
|
min = 1
|
|
}
|
|
|
|
base_progress_to_victory_qualified_value = 40
|
|
|
|
base_progress_to_victory_qualified_versus_value = 25
|
|
|
|
tournament_wait_time_before_start_months = 3
|
|
|
|
tournament_opening_event_weeks = {
|
|
value = tournament_wait_time_before_start_months
|
|
multiply = 4
|
|
add = -1
|
|
}
|
|
|
|
# 1% increment: best - worst / 40
|
|
progress_to_victory_increment_value = {
|
|
value = 30
|
|
subtract = contest_base_aptitude_value # TODO_CD_EP2 use worst instead?
|
|
divide = 40
|
|
}
|
|
|
|
# PtV to qualify: this - worst / 1% increment
|
|
progress_to_victory_contestant_qualification_value = {
|
|
value = var:contest_aptitude
|
|
subtract = contest_base_aptitude_value # TODO_CD_EP2 use worst instead?
|
|
divide = progress_to_victory_increment_value
|
|
round = yes
|
|
}
|
|
|
|
#EVENT VALUES
|
|
|
|
skilled_enforcers_value = {
|
|
value = 0
|
|
every_knight = {
|
|
limit = {
|
|
prowess >= 20
|
|
}
|
|
add = 20
|
|
}
|
|
}
|
|
|
|
legendary_enforcers_value = {
|
|
value = 0
|
|
every_knight = {
|
|
limit = {
|
|
prowess > 25
|
|
}
|
|
add = 20
|
|
}
|
|
}
|
|
|
|
farrier_mistake_value = -5
|
|
|
|
jason_locale_events_210_desired_prowess_value = {
|
|
value = accolade_prowess_requirement_value
|
|
subtract = scope:foreign_knight.prowess
|
|
}
|
|
|
|
jason_locale_events_210_desired_martial_value = {
|
|
value = maa_accolade_minimum_martial_value
|
|
subtract = scope:foreign_knight.martial
|
|
}
|
|
|
|
#REWARD VALUES
|
|
|
|
tournament_first_place_reward_prestige_major_value = major_prestige_gain
|
|
tournament_first_place_reward_prestige_medium_value = medium_prestige_gain
|
|
tournament_first_place_reward_prestige_minor_value = minor_prestige_gain
|
|
|
|
tournament_second_place_reward_prestige_major_value = medium_prestige_gain
|
|
tournament_second_place_reward_prestige_medium_value = minor_prestige_gain
|
|
tournament_second_place_reward_prestige_minor_value = miniscule_prestige_gain
|
|
|
|
tournament_third_place_reward_prestige_major_value = minor_prestige_gain
|
|
tournament_third_place_reward_prestige_medium_value = miniscule_prestige_gain
|
|
# Tournament not grand enough for a minor value.
|
|
|
|
tournament_team_winner_reward_prestige_major_value = medium_prestige_gain
|
|
tournament_team_winner_reward_prestige_medium_value = minor_prestige_gain
|
|
tournament_team_winner_reward_prestige_minor_value = miniscule_prestige_gain
|
|
|
|
tournament_team_loser_reward_prestige_major_value = minor_prestige_gain
|
|
tournament_team_loser_reward_prestige_medium_value = miniscule_prestige_gain
|
|
# Tournament not grand enough for a minor value.
|
|
|
|
# Hastiludes XP randomiser
|
|
|
|
tournament_hastiludes_xp_gain_miniscule_value = {
|
|
value = { 1 3 }
|
|
}
|
|
|
|
tournament_hastiludes_xp_gain_minor_value = {
|
|
value = { 3 7 }
|
|
}
|
|
|
|
tournament_hastiludes_xp_gain_medium_value = {
|
|
value = { 8 12 }
|
|
}
|
|
|
|
tournament_hastiludes_xp_gain_major_value = {
|
|
value = { 13 17 }
|
|
}
|
|
|
|
tournament_hastiludes_xp_gain_massive_value = {
|
|
value = 20
|
|
}
|
|
|
|
tournament_hastiludes_xp_loss_minor_value = {
|
|
value = -5
|
|
}
|
|
|
|
tournament_hastiludes_xp_loss_medium_value = {
|
|
value = -10
|
|
}
|
|
|
|
tournament_hastiludes_xp_loss_major_value = {
|
|
value = -15
|
|
}
|
|
|
|
tournament_base_cost_value = {
|
|
value = 200
|
|
}
|