&lang`fun.speak %vb=setq(t,\[+SPEAK\]%b)[switch(0,t(setr(L,ufun(%ve/lang`fun.islang,%0))),%qtNo such language.,if(strlen(%1),cand(setr(f,ufun(%ve/lang`fun.isfluency,%1)),ufun(%ve/lang`fun.canspeak,%:,%qL,%qF),setr(f,rand(setr(f,add(1,mul(sub(%qF,1),100))),min(ufun(%ve/lang`fun.fluency,%:,%qL),add(%qF,99))))),switch(setr(f,ufun(%ve/lang`fun.fluency-num,%:,%qL)),0,0,setr(f,rand(add(1,mul(sub(%qF,1),100)),ufun(%ve/lang`fun.fluency,%:,%qL))))),%qtYou don't speak [ufun(%ve/lang`fun.langname,%qL)] that fluently.,setq(0,0,N,ufun(%ve/lang`fun.langname,%qL))[speak(%#,%2%3,,%ve/lang`fun.speak-self)][null(ufun(lang`fun.learn,%:,%qL,u(%ve/lang`learn`speech,%qF,ufun(%ve/lang`fun.fluency,%#,%qL)))[setq(W,SPEECH,P,ulocal(%ve/lang`fun.garble-pattern,div(%qF,8),repeat(1%b,50)))][iter(setdiff(lcon(%L),%#),nspemit(setq(q,ufun(%ve/lang`fun.garble-pattern,div(setr(z,ufun(%ve/lang`fun.fluency,##,%qL)),8),%qp))[setr(y,##)][ufun(lang`fun.learn,##,%qL,ufun(%ve/lang`learn`hear,ufun(%ve/lang`fun.fluency,##,%qL),%qF))],speak(%#,%2%3,,%ve/lang`fun.garble)))])])] @@ How much does your language ability increase when you hear someone speak the language? %0 is your fluency, @@ %1 is the fluency the language is spoken at. &lang`learn`hear %ve=0.75 &lang`cmd.languages-all %vd=$^\+lang(?\:uage)?s?/a(?\:ll?)?$: @nspemit/silent %#=\[+LANGUAGES\] [switch(0,strlen(squish(get(%ve/lang`languages))),There are no languages in the system.,The following languages can be spoken:%r[itemize(sort(get(%ve/lang`languages),i,|),|)])] @set %vd/lang`cmd.languages-all=regexp +TMCS/ADDPACKAGE lang=+Language/1.2b/System to allow players to learn and speak many languages/