Fixing things

This commit is contained in:
Heidesommer 2026-05-28 09:09:00 -04:00
parent e2a877d018
commit cf10d05052
45 changed files with 8242 additions and 2221 deletions

View file

@ -0,0 +1,743 @@
# Root = Combat
# Executed on combat start, when all starting armies have already been added to relevant sides
on_combat_start = {
}
# Root = Combat side
# scope:army = army joining side
# Executed after an army joins combat, after the combat has already started
on_combat_unit_join_side = {
}
# Root = Winning combat side
# scope:wipe - Was this a wipe?
on_combat_end_winner = {
events = {
combat_event.0001 # Victorious commander gains progress towards earning "The Undefeated" nickname (obtained after winning 100 victories without a loss).
combat_event.1001 # Winner imprisons commanders/knights on the losing side.
combat_event.2001 # # Commander may become known as a Gajapati if you have the prerequisites
fp1_shieldmaiden.0031 # Track shieldmaiden levelling.
historical_artifacts.0100 # #Save a memorable battle as potential topic for artifacts
combat_event.2101 # Battle Won: glory goes up.
# combat_event.2200 # Hereward beat a Norman
combat_event.3000 # Battle PoI Creation
}
random_events = {
1000 = 0
20 = artifact.6000 # Chance to loot an enemy banner after winning a battle
1 = harm.0012 # A conk on the noggin' renders you a-foggin'.
20 = legend_spread_events.8140 # Make this part of your legend?
}
effect = {
#If you are el Cid you get a special events
if = {
limit = {
side_primary_participant = { has_variable = ongoing_cid_story_cycle }
enemy_side.side_commander.primary_title = title:k_valencia
}
enemy_side.side_commander ?= { save_scope_as = loser }
side_primary_participant = {
set_variable = {
name = cid_title_to_give
value = prev.enemy_side.side_commander.primary_title
}
trigger_event = cid.2000 #Tizona
}
}
else_if = {
limit = {
side_primary_participant = { has_variable = ongoing_cid_story_cycle }
OR = {
enemy_side.side_commander.primary_title = title:c_barcelona
enemy_side.side_commander.primary_title = title:d_barcelona
}
}
enemy_side.side_commander ?= { save_scope_as = loser }
side_primary_participant = {
set_variable = {
name = cid_title_to_give
value = prev.enemy_side.side_commander.primary_title
}
trigger_event = cid.2001 #Colada
}
}
else_if = {
limit = {
side_primary_participant = { has_variable = ongoing_cid_story_cycle }
}
random = {
chance = 10
enemy_side.side_commander ?= { save_scope_as = loser }
side_primary_participant = {
set_variable = {
name = cid_title_to_give
value = prev.enemy_side.side_commander.primary_title
}
trigger_event = cid.2000
}
}
}
if = {
limit = {
exists = side_commander
exists = enemy_side.side_commander
}
random = {
chance = {
value = 10
if = {
limit = {
exists = scope:wipe
}
add = 90
}
if = {
limit = {
exists = enemy_side.side_commander.primary_title
exists = side_commander.primary_title
enemy_side.side_commander.primary_title.tier >= side_commander.primary_title.tier
}
add = 90
}
}
combat.location = {
save_scope_as = battle_province
}
side_commander = {
create_character_memory = {
type = battle_won_memory
participants = {
loser = root.enemy_side.side_commander
ruler = root.enemy_side.side_primary_participant
}
}
scope:new_memory = {
save_scope_as = battle_memory
}
scope:battle_memory = {
set_variable = {
name = battle_location
value = scope:battle_province
}
}
}
}
}
# setup for artifact.4010
if = {
limit = {
side_commander ?= {
any_character_artifact = {
is_equipped = yes
artifact_slot_type = primary_armament
NOT = { has_variable = artifact_battles_won_var }
}
}
}
side_commander = {
random_character_artifact = {
limit = {
is_equipped = yes
artifact_slot_type = primary_armament
NOT = { has_variable = artifact_battles_won_var }
}
set_variable = {
name = artifact_battles_won_var
value = 1
}
}
}
}
else_if = {
limit = {
side_commander ?= {
any_character_artifact = {
is_equipped = yes
artifact_slot_type = primary_armament
has_variable = artifact_battles_won_var
}
}
}
side_commander = {
random_character_artifact = {
limit = {
is_equipped = yes
artifact_slot_type = primary_armament
has_variable = artifact_battles_won_var
}
change_variable = {
name = artifact_battles_won_var
add = 1
}
}
}
}
if = {
limit = {
any_side_knight = {
any_character_artifact = {
is_equipped = yes
artifact_slot_type = primary_armament
NOT = { has_variable = artifact_battles_won_var }
}
}
}
every_side_knight = {
random_character_artifact = {
limit = {
is_equipped = yes
artifact_slot_type = primary_armament
NOT = { has_variable = artifact_battles_won_var }
}
set_variable = {
name = artifact_battles_won_var
value = 1
}
}
}
}
else_if = {
limit = {
any_side_knight = {
any_character_artifact = {
is_equipped = yes
artifact_slot_type = primary_armament
has_variable = artifact_battles_won_var
}
}
}
every_side_knight = {
random_character_artifact = {
limit = {
is_equipped = yes
artifact_slot_type = primary_armament
has_variable = artifact_battles_won_var
}
change_variable = {
name = artifact_battles_won_var
add = 1
}
}
}
}
#setup for artifact.4020
if = {
limit = {
side_commander ?= {
any_character_artifact = {
is_equipped = yes
artifact_slot_type = armor
NOT = { has_variable = artifact_battles_won_var }
}
}
}
side_commander = {
random_character_artifact = {
limit = {
is_equipped = yes
artifact_slot_type = armor
NOT = { has_variable = artifact_battles_won_var }
}
set_variable = {
name = artifact_battles_won_var
value = 1
}
}
}
}
else_if = {
limit = {
side_commander ?= {
any_character_artifact = {
is_equipped = yes
artifact_slot_type = armor
has_variable = artifact_battles_won_var
}
}
}
side_commander = {
random_character_artifact = {
limit = {
is_equipped = yes
artifact_slot_type = armor
has_variable = artifact_battles_won_var
}
change_variable = {
name = artifact_battles_won_var
add = 1
}
}
}
}
if = {
limit = {
any_side_knight = {
any_character_artifact = {
is_equipped = yes
artifact_slot_type = armor
NOT = { has_variable = artifact_battles_won_var }
}
}
}
every_side_knight = {
random_character_artifact = {
limit = {
is_equipped = yes
artifact_slot_type = armor
NOT = { has_variable = artifact_battles_won_var }
}
set_variable = {
name = artifact_battles_won_var
value = 1
}
}
}
}
else_if = {
limit = {
any_side_knight = {
any_character_artifact = {
is_equipped = yes
artifact_slot_type = armor
has_variable = artifact_battles_won_var
}
}
}
every_side_knight = {
random_character_artifact = {
limit = {
is_equipped = yes
artifact_slot_type = armor
has_variable = artifact_battles_won_var
}
change_variable = {
name = artifact_battles_won_var
add = 1
}
}
}
}
# Acclaimed reveller victory party!!!!! LADS LADS LADS!
if = {
limit = {
OR = {
any_side_knight = {
is_acclaimed = yes
accolade = {
has_accolade_parameter = acclaimed_knight_prestige_from_victory
}
}
any_side_commander = {
is_acclaimed = yes
accolade = {
has_accolade_parameter = acclaimed_knight_prestige_from_victory
}
}
}
}
every_side_knight = {
limit = {
is_acclaimed = yes
accolade = {
has_accolade_parameter = acclaimed_knight_prestige_from_victory
}
}
knight_army.army_owner = {
add_prestige = acclaimed_knight_prestige_from_victory_value
}
}
every_side_commander = {
limit = {
is_acclaimed = yes
accolade = {
has_accolade_parameter = acclaimed_knight_prestige_from_victory
}
}
commanding_army.army_owner = {
add_prestige = acclaimed_knight_prestige_from_victory_value
}
}
}
else_if = {
limit = {
OR = {
any_side_knight = {
is_acclaimed = yes
accolade = {
has_accolade_parameter = acclaimed_knight_prestige_from_victory_high
}
}
any_side_commander = {
is_acclaimed = yes
accolade = {
has_accolade_parameter = acclaimed_knight_prestige_from_victory_high
}
}
}
}
every_side_knight = {
limit = {
is_acclaimed = yes
accolade = {
has_accolade_parameter = acclaimed_knight_prestige_from_victory_high
}
}
knight_army.army_owner = {
add_prestige = acclaimed_knight_prestige_from_victory_value_high
}
}
every_side_commander = {
limit = {
is_acclaimed = yes
accolade = {
has_accolade_parameter = acclaimed_knight_prestige_from_victory_high
}
}
commanding_army.army_owner = {
add_prestige = acclaimed_knight_prestige_from_victory_value_high
}
}
}
# combat gold reward from Camp Mortifican's Tools upgrade: own victories
side_primary_participant = { add_to_list = potential_spoil_claimers }
every_side_commander = {
limit = {
this != root.side_primary_participant
trigger_if = {
limit = { exists = root.combat.combat_war }
is_participant_in_war = root.combat.combat_war
}
}
add_to_list = potential_spoil_claimers
}
every_in_list = {
list = potential_spoil_claimers
limit = {
domicile ?= { has_domicile_parameter = camp_gold_from_victories_or_nearby_battles }
}
root.enemy_side.side_primary_participant = { save_scope_as = losing_side_owner }
send_interface_message = {
type = msg_landless_adventurer_battle_gold
title = camp_gold_from_victories_or_nearby_battles_message_title
desc = camp_gold_from_victories_or_nearby_battles_message_desc_victory
left_icon = root.side_commander
right_icon = root.enemy_side.side_commander
add_short_term_gold = {
value = {
value = 0
add = root.enemy_side.side_max_army_size
divide = 100
min = 5
}
}
}
}
# combat gold reward from Camp Mortifican's Tools upgrade: nearby battles
combat.location.county = {
every_county_province = {
every_province_domicile = {
limit = {
has_domicile_parameter = camp_gold_from_victories_or_nearby_battles
save_temporary_scope_as = domicile_temp
NOR = {
root = {
any_side_commander = { this = scope:domicile_temp.owner }
enemy_side = {
any_side_commander = { this = scope:domicile_temp.owner }
}
}
}
}
root.enemy_side.side_primary_participant = { save_scope_as = losing_side_owner }
owner = {
send_interface_message = {
type = msg_landless_adventurer_battle_gold
title = camp_gold_from_victories_or_nearby_battles_message_title
desc = camp_gold_from_victories_or_nearby_battles_message_desc_nearby
left_icon = root.side_commander
right_icon = root.enemy_side.side_commander
add_short_term_gold = {
value = {
value = 0
add = root.enemy_side.side_max_army_size
divide = 100
min = 5
}
}
}
}
}
}
}
#Nomads recover head of fallen warrior
mpo_mongol_recovered_head_content_effect = yes
# Commander trait leveling
every_side_commander = {
commander_trait_leveling_leveling_effect = { XP = 1 }
}
if = {
limit = {
any_side_participant = {
has_character_modifier = boasted_of_victories_modifier
}
}
every_side_participant = {
limit = {
has_character_modifier = boasted_of_victories_modifier
}
add_stress = miniscule_stress_loss
add_prestige = miniscule_prestige_gain
}
}
every_side_participant = {
if = {
limit = { has_variable = accolade_progress }
change_variable = {
name = accolade_progress
add = 1
}
}
else = {
set_variable = {
name = accolade_progress
value = 1
}
}
}
}
}
# Root = Losing combat side
# scope:wipe - Was this a wipe?
on_combat_end_loser = {
events = {
combat_event.0002 # Defeated commander loses shot at getting 'The Undefeated' nickname.
almohad.0003 # Check whether Ibn Tumert should die
fp1_shieldmaiden.0031 # Track shieldmaiden levelling.
combat_event.2111 # Battle Lost: glory goes down.
}
random_events = {
1000 = 0
1 = harm.0012 # A conk on the noggin' renders you a-foggin'.
}
effect = {
if = {
limit = {
exists = side_commander
exists = enemy_side.side_commander
}
combat.location = { save_scope_as = battle_province }
side_commander = {
create_character_memory = {
type = battle_lost_memory
participants = {
winner = root.enemy_side.side_commander
ruler = root.enemy_side.side_primary_participant
}
}
scope:new_memory = {
save_scope_as = battle_memory
}
scope:battle_memory = {
set_variable = {
name = battle_location
value = scope:battle_province
}
}
}
}
if = {
limit = {
combat = { warscore_value >= 15 }
}
combat.location = { save_scope_as = battle_province }
side_primary_participant = {
if = {
limit = { is_valid_for_legitimacy_change = yes }
send_interface_toast = {
type = msg_legitimacy_loss
title = legitimacy_loss_toast
left_icon = root.side_primary_participant
right_icon = root.enemy_side.side_primary_participant
custom_tooltip = legitimacy_loss_battle_tt
add_legitimacy = minor_legitimacy_loss
}
}
}
#BP4 marshal offers help event
if = {
limit = {
side_primary_participant = {
is_landed = yes
is_at_war = yes
any_character_war = {
NOT = {
using_cb = peasant_war
}
OR = {
AND = {
primary_defender = prev
defender_war_score <= -25
}
AND = {
primary_attacker = prev
attacker_war_score <= -25
}
}
}
NOT = { has_character_flag = had_ach_yearly_events_1003 }
any_councillor = {
has_council_position = councillor_marshal
basic_is_valid_for_yearly_events_trigger = yes
is_at_war = no
NOT = {
is_allied_to = root.enemy_side.side_primary_participant
}
}
}
}
if = {
limit = {
exists = side_commander
}
side_commander = {
save_scope_as = commander
}
}
enemy_side.side_primary_participant = {
save_scope_as = foe
}
side_primary_participant = {
random_character_war = {
limit = {
NOR = {
using_cb = peasant_war
using_cb = nomadic_war
}
OR = {
AND = {
primary_defender = prev
any_war_attacker = {
this = scope:foe
}
defender_war_score <= -25
}
AND = {
primary_attacker = prev
any_war_defender = {
this = scope:foe
}
attacker_war_score <= -25
}
}
}
save_scope_as = liege_war
}
random_councillor = {
limit = {
has_council_position = councillor_marshal
}
random = {
chance = 50
modifier = {
add = 50
is_ai = no
}
trigger_event = ach_yearly_events.1003
}
}
}
}
}
#Nomads recover head of fallen warrior
mpo_mongol_recovered_head_content_effect = yes
# Commander trait leveling
every_side_commander = {
commander_trait_leveling_leveling_effect = { XP = 0.5 }
}
if = {
limit = {
any_side_participant = {
has_character_modifier = boasted_of_victories_modifier
}
}
every_side_participant = {
limit = {
has_character_modifier = boasted_of_victories_modifier
}
add_stress = miniscule_stress_gain
add_prestige = miniscule_prestige_gain
}
}
side_primary_participant = {
random = { # chance of inspiring a knight to become eligible for disciplinarian accolade
chance = 2
modifier = {
factor = accolade_progress # scales with accolade progress
}
modifier = { # must have an eligible knight
NOT = {
root = {
any_side_knight = {
can_unlock_accolade_attribute_trigger = {
ATTRIBUTE = disciplinarian
}
}
}
}
factor = 0
}
save_scope_as = accolade_liege
set_variable = {
name = accolade_progress
value = 0
}
root = {
random_side_knight = {
limit = {
can_unlock_accolade_attribute_trigger = {
ATTRIBUTE = disciplinarian
}
}
weight = {
base = 1
modifier = {
add = 50
is_acclaimed = yes
}
}
save_scope_as = accolade_knight
}
}
send_interface_message = {
type = msg_accolade_eligibility
title = accolade_disciplinarian_unlock.t
left_icon = scope:accolade_knight
right_icon = scope:accolade_liege
custom_tooltip = accolade_disciplinarian_unlock.tt
scope:accolade_knight = {
set_variable = {
name = disciplinarian_attribute_unlock
value = yes
}
}
}
}
}
}
}

View file

@ -1627,28 +1627,28 @@ on_death = {
end_diarchy = yes
}
# EP3, Wallada transfers possessions to her heir
if = {
limit = {
root = character:andalusian_0003
exists = player_heir
}
# save Wallada's scope
save_scope_as = wallada
random_character_artifact = {
limit = {
has_artifact_modifier = double_moon_modifier
}
set_owner = scope:wallada.primary_heir
save_scope_as = double_moon_book
}
primary_heir = {
trigger_event = {
id = ep3_story_cycle_violet_poet.0004
days = 1
}
}
}
# # EP3, Wallada transfers possessions to her heir
# if = {
# limit = {
# root = character:andalusian_0003
# exists = player_heir
# }
# # save Wallada's scope
# save_scope_as = wallada
# random_character_artifact = {
# limit = {
# has_artifact_modifier = double_moon_modifier
# }
# set_owner = scope:wallada.primary_heir
# save_scope_as = double_moon_book
# }
# primary_heir = {
# trigger_event = {
# id = ep3_story_cycle_violet_poet.0004
# days = 1
# }
# }
# }
# Populate new contracts for laamp heirs.
player_heir ?= {

View file

@ -917,7 +917,7 @@ travel_events_on_action = {
300 = ep3_laamp_flavor.0060 # Dead Weight
200 = ep3_travel_events.8000 #To Belong Somewhere
200 = ep3_travel_events.8010 #Won't Be Missed
1000 = ep3_story_cycle_violet_poet.1000 #Nature's Bounty
# 1000 = ep3_story_cycle_violet_poet.1000 #Nature's Bounty
#MPO Travel Events
100 = mpo_events_tova.0003 #A Jest Too Far