;; TRAINING PLAN v1.0 ;; ;; usage: ;; padd (skill/spell) ;; prem (skill/spell) ;; plist /require lisp.tf /require textencode.tf /def -mregexp -F -t"^([a-z0-9\' ]+): ([0-9]*) %$" catch_train = \ /let train_name $[strcat(toupper(substr(%P1, 0, 1)), substr(%P1, 1))]%;\ /let train_name $(/textencode %train_name)%;\ /let test_string $(/car %training_plan)%;\ /let plan_len $(/length %training_plan)%;\ /if (%train_name=~%test_string) \ /substitute %* and removed from list.%;\ /if (plan_len>1) \ /set training_plan $(/cdr %training_plan)%;\ psave%;\ /else \ /unset training_plan%;/echo List empty.%;\ /endif%;\ /else /echo %*%;\ /endif%;\ /def -mregexp -h'send ^padd (.*)$' padd = \ /let add_entry $[strcat(toupper(substr(%-1, 0, 1)), substr(%-1, 1))]%;\ /if (%add_entry!~"") \ /let add_entry $(/textencode %add_entry)%;\ /set training_plan $[strcat(%training_plan," ",%add_entry)]%;\ /echo $(/textdecode %add_entry) added.%;\ /endif /def -h'send pclear' pclear = /unset training_plan%;/echo List cleared. /def -mregexp -h'send ^prem (.*)$' prem = \ /let rem_entry $[strcat(toupper(substr(%*, 0, 1)), substr(%*, 1))]%;\ /if ($(/length %training_plan)=0) \ /echo List empty.%;\ /break%;\ /endif%;\ /if (%rem_entry!~"") \ /let rem_entry $(/textencode %rem_entry)%;\ /let plan_len $(/length %training_plan)%;\ /let plan_found 0%;\ /let plan_x 1%;\ /while (plan_x <= plan_len) \ /let search_curr $(/nth %plan_x %training_plan)%;\ /if (%search_curr=~%rem_entry & %plan_found=0) \ /let plan_found 1%;\ /echo $(/textdecode %search_curr) removed.%;\ /else \ /let plan_temp $[strcat(plan_temp," ",search_curr)]%;\ /endif%;\ /let plan_x $[++plan_x]%;\ /done%;\ /if (plan_found=0) /echo $(/textdecode %rem_entry) not found.%;/endif%;\ /if (strlen(%plan_temp)>0) /set training_plan %plan_temp%;\ /else /unset training_plan%;/echo List empty.%;/endif%;\ /endif /def -h'send plist' plist = \ /echo -p +---+--@{BCgreen}TRAINING@{n}-@{BCgreen}PLAN@{n}$[strrep("-",16)]+%;\ /let plan_len $(/length %training_plan)%;\ /if (plan_len>0) \ /let plan_x 1%;\ /while (plan_x <= plan_len) \ /let temp_str $(/textdecode $(/nth %plan_x %training_plan))%;\ /echo -p |@{B}$[pad(plan_x,2)].@{n}| %temp_str$[strrep(" ",(30-$[strlen(temp_str)]))]|%;\ /let plan_x $[++plan_x]%;\ /done%;\ /else /echo | | List empty.$[strrep(" ",19)]|%;\ /endif%;\ /if (vis_xptotrain!=0) \ /echo +---+-$[strrep("-",30)]+%;\ /if (newexp>skillcost) \ /let tempstr $[strcat("Enough XP for ",trunc(newexp/skillcost)," train(s)!")]%;\ /echo -p + + @{BCgreen}%tempstr@{n}$[strrep(" ",30-strlen(tempstr))]|%;\ /else \ /let tempstr $[strcat("XP needed for train: ",pad(vis_xptotrain,7),"k")]%;\ /echo + + %tempstr$[strrep(" ",30-strlen(tempstr))]|%;\ /endif%;\ /endif%;\ /echo +---+-$[strrep("-",30)]+%;\ /def -h'send ptrain' ptrain = !train $[tolower($(/textdecode $(/first %training_plan)))] /def -h'send pstudy' pstudy = !study $[tolower($(/textdecode $(/first %training_plan)))] /def -h'send psave' psave = \ /let wfile $[tfopen("tf-data/trainingplan", "w")]%;\ /test $[tfwrite(wfile, strcat("/set training_plan ",%training_plan))]%;\ /test $[tfclose(wfile)] /def -h'send pload' pload = /load tf-data/trainingplan