#Code by RedMythos, no credits needed! ^^
#Thanks to everyone in the Warband modding community!
not_always_lethal = (ti_on_agent_killed_or_wounded, 0, 0, [],
[
(store_trigger_param_1, ":dead_agent_no"),
(store_trigger_param_2, ":killer_agent_no"),
(store_trigger_param_3, ":is_wounded"),
#Note: setting the trigger_result as 0 will follow the default game logic and not alter the result. Setting it to 1 will force kill, and to 2 will force wound.
(ge, ":dead_agent_no", 0),
(agent_is_human, ":dead_agent_no"),
(agent_get_troop_id, ":dead_agent_troop_id", ":dead_agent_no"),
(neg|troop_is_hero, ":dead_agent_troop_id"),
(party_add_members, "p_total_enemy_casualties", ":dead_agent_troop_id", 1), #addition_to_p_total_enemy_casualties.
(try_begin), #The code below is credited to Erundil, and guarantees the enemies on the Spy quests to NOT die.
(this_or_next|eq,":dead_agent_troop_id","trp_spy"), #the spy that we were following.
(eq,":dead_agent_troop_id","trp_spy_partner"), #his boss that was waiting for him, usually accompanied by a few mercenaries.
(assign, ":is_wounded", 1),
(set_trigger_result, 2), #Set as wounded.
(else_try),
(agent_get_wielded_item, ":weapon", ":killer_agent_no", 0), #Checks for blunt weapons.
(try_begin),
(lt, ":weapon", 0),
(assign, ":weapon", 0), #Prevents error "Item ID: -1" when hitting with your fists.
(try_end),
(item_get_swing_damage_type, ":is_blunt", ":weapon"), #Only checks if its blunt on swing damage, as not every mace has thrust damage.
(eq, ":is_blunt", 2),
(try_begin),
(store_random_in_range, ":d100", 0, 101),
(le, ":d100", 75), #~25% of chance to kill using blunt weapon.
(assign, ":is_wounded", 1),
(set_trigger_result, 2),
(else_try),
(assign, ":is_wounded", 0),
(set_trigger_result, 1),
(try_end),
(else_try),
(agent_get_team, ":dead_tm", ":dead_agent_no"),
(team_get_leader, ":dead_lead", ":dead_tm"),
(neg|agent_is_non_player, ":dead_lead"),
(party_get_skill_level, ":ld_surgery", "p_main_party", "skl_surgery"), #Gets skill level from your party.
(val_mul, ":ld_surgery", 3), #+3% survival rate from each point in Surgery.
(val_add, ":ld_surgery", 25), #default base chance, but can be altered here!
(try_begin),
(store_random_in_range, ":d100", 0, 101),
(le, ":d100", ":ld_surgery"),
(assign, ":is_wounded", 1),
(set_trigger_result, 2),
(else_try),
(assign, ":is_wounded", 0),
(set_trigger_result, 1),
(try_end),
(else_try),
(agent_get_team, ":dead_tm", ":dead_agent_no"),
(team_get_leader, ":dead_lead", ":dead_tm"),
(agent_is_non_player, ":dead_lead"),
(agent_get_troop_id, ":dead_lead_id", ":dead_lead"),
(store_skill_level, ":ld_surgery", "skl_surgery", ":dead_lead_id"), #Gets skill level directly from enemy party's leader, as lords dont have NPCs on party.
(val_mul, ":ld_surgery", 3), #+3% survival rate from each point in Surgery.
(val_add, ":ld_surgery", 25), #default base chance, but can be altered here!
(try_begin),
(store_random_in_range, ":d100", 0, 101),
(le, ":d100", ":ld_surgery"),
(assign, ":is_wounded", 1),
(set_trigger_result, 2),
(else_try),
(assign, ":is_wounded", 0),
(set_trigger_result, 1), #If all above fails, R.I.P.
(try_end),
(try_end),
(try_begin), #Assigns wounded troops as prisoners in post-battle screen
(eq, ":is_wounded", 1),
(party_wound_members, "p_total_enemy_casualties", ":dead_agent_troop_id", 1),
(try_end),
(call_script, "script_apply_death_effect_on_courage_scores", ":dead_agent_no", ":killer_agent_no"),
])