# ui_externalize_proficiencies function library

Dependencies: alter_effect, ds, lib_2da, lib_2daq, lib_anon, lib_array, lib_class, lib_cre, lib_data, lib_eff, lib_fn, lib_ids, lib_ietool, lib_ini, lib_kit, lib_script, lib_sfo, lib_spl, lib_splconv, lib_ssl, lib_struct, lib_sugar, lib_tools, lib_ui, lib_vtable, resolve_spell, ui_add_subraces, ui_bonus_spells, ui_deolvynize, ui_detect_class_kit, ui_dual_class_kits, ui_externalize_hlas, ui_extra_spells, ui_on_open, ui_shared_code, ui_spell_system, ui_system_call, ui_virtual_class

## Description

The various functions here externalize the proficiency system, using UI edits to permit finer-grained control of that system than the core engine permits.

## Public functions

externalize_profsmax()=() action

This moves the functionality of profsmax.2da to the LUA, permitting control of maximum proficiencies at a finer grain than the engine permits (in particular, this is required for libraries like ui_add_subraces that use proficiencies to signal).

externalize_weapprof()=() action

This moves the functionality of weapprof.2da to the LUA, permitting control of allowed proficiencies at a finer grain than the core engine permits.

get_weapprof_path()=(weapprof_path:s) action

This returns either 'override/weapprof.2da' or '[data_loc_shared]/weapprof.2da', depending on whether the weapprof system has been externalized.

hide_proficiency(id:i)=() action

This hides the proficiency with id 'id' so that it is not displayed on the proficiency select screen.

set_dual_class_kit_components_for_proficiencies(kit:s, components:s)=() action

I don't 100% recall what this does. It's described in my notes like this: 'set the single-class kits that override multiclass kit proficiencies for dc purposes'.

set_signalling_stat(stat:i)=() action

This sets up the stat 'stat' to be used by other UI libraries to send a signal from the chargen screen to the main game. Don't use unless you're confident you know what you're doing.

set_signalling_stat_helper(stat:i)=() patch

set_up_externalized_proficiencies()=() action

This function is a general setup for the ui_externalize_proficiency functions.

## Internal functions

These should not be called from outside the library itself.

externalize_prof_function_patch()=() patch

externalize_prof_patch()=() patch

wipe_weapprof()=() action