--- tfel/owner_actions/emp_mgmt.tfl-backup 2025-04-26 00:06:28.291847383 +0200
+++ tfel/owner_actions/emp_mgmt.tfl 2025-04-26 00:32:40.585714600 +0200
@@ -533,7 +533,7 @@
var $ans_o, $ans_e, $job_type, $train_skill, $e_ok;
var $oc, $o_skill_val, $e_skill_val, $str;
var $opt_name0, $opt_name1, $opt_name2, $opt_name3, $opt_name4;
- cont $skills[], $sk_keys[];
+ cont $skills[], $sk_keys[], $sk_keys_filtered[];
cont $opt[];
room room:er;
job job:ej;
@@ -551,6 +551,8 @@
set $e_skill_val = &get_known_attr(E, $key, 100, O);
#debug "Got skill " ^ $key ^ " oc=" ^ $oc;
if($e_skill_val < 100) {
+ # keep track of which keys are shown to the player
+ set $sk_keys_filtered[$oc] = $key;
set $o_skill_val = &get_attr(O, $key, 100);
set $str = &training_skill_info($key, E, O, $e_skill_val, $o_skill_val, $skills[$key]);
set $opt[$oc] = $o_skill_val - $e_skill_val * $skills[$key] * 10 + 5;
@@ -590,7 +592,8 @@
if($ans_o < $oc) {
# higher than 100 because we want this to succeed more often
set $e_ok = &util::base_agree_prob(O, E, 150, 0);
- set $train_skill = $sk_keys[$ans_o];
+ # player chose a skill in the filtered array
+ set $train_skill = $sk_keys_filtered[$ans_o];
# make sure E agrees
set $ans_e = decision E, O {
choice "yes", $e_ok, "null"