Language Utilities #125
Aliases: Language Utilities
8 verbs · 5 properties · 0 children
Verbs
| Verb | Spec | Flags | Definer | Lines |
|---|---|---|---|---|
speaking | this none this | rxd | #125 | 10 |
can_speak | this none this | rxd | #125 | 6 |
languages | this none this | rxd | #125 | 6 |
encrypt | this none this | rxd | #125 | 13 |
can_speak_languages | this none this | rxd | #125 | 10 |
in_line_for | this none this | rxd | #125 | 23 |
advance_level | this none this | rxd | #125 | 23 |
announce | this none this | rxd | #125 | 21 |
Properties
| Property | Definer | Flags | Owner | Value |
|---|---|---|---|---|
help_msg | #79 | rc | #2 | <clear> |
key | #1 | c | #2 | 0 |
aliases | #1 | rc | #2 | {"Language Utilities"} |
description | #1 | rc | #2 | "This object contains code for using languages in a roleplay situation." |
object_size | #1 | r | #36 | {5522, 1539462952} |
Ancestry
Ancestors (nearest first): #79 Generic Utilities Package → #1 Root Class
Children: none
Call graph
Source
speaking
Referenced by
- #3:-* line 14:
$lang_utils:speaking - #91:say line 7:
$lang_utils:speaking - #91:speak*ing line 11:
$lang_utils:speaking - #104:com*mand line 16:
$lang_utils:speaking - #104:com*mand line 20:
$lang_utils:speaking - #125:encrypt line 5:
this:speaking - #125:announce line 18:
this:speaking
Source
1"ARGs => what is [1] speaking?"; 2if (!`!(!property_info(args[1], "speaking")) ! E_PROPNF => 0') 3speaking = $default_lang; 4else 5speaking = args[1].speaking; 6if (speaking == $nothing) 7speaking = $default_lang; 8endif 9endif 10return speaking;
can_speak
Referenced by
- #123:r*ead line 1:
$lang_utils:can_speak - #125:encrypt line 9:
this:can_speak - #125:can_speak_languages line 6:
this:can_speak - #125:in_line_for line 7:
this:can_speak
Source
1"ARGs => can [1] speak [2]?"; 2langs = this:languages(args[1]); 3lin = args[2] in langs[1]; 4if ((lin && (llin = langs[2][lin])) && (llin >= 2.0)) 5return 1; 6endif
languages
Referenced by
- #125:can_speak line 2:
this:languages - #125:can_speak_languages line 2:
this:languages - #125:in_line_for line 10:
$lang_utils:languages - #126:encrypt line 7:
$lang_utils:languages
Source
1"ARGs => what [1] has in its .languages property, or $default_lang."; 2if (!`!(!property_info(args[1], "languages")) ! E_PROPNF => 0') 3return {{$default_lang}, {2.0}}; 4else 5return args[1].languages; 6endif
encrypt
Referenced by
- #3:-* line 23:
$lang_utils:encrypt - #104:com*mand line 17:
$lang_utils:encrypt - #125:announce line 12:
$lang_utils:encrypt - #125:announce line 20:
$lang_utils:encrypt
Source
1"ARGs => [1] is saying [3] to [2]"; 2talking = args[1]; 3listening = args[2]; 4saying = args[3]; 5talking_lang = this:speaking(talking); 6if (`(listening.stats_current[2][3] < 2.5) && listening.alive ! ANY => 0' || `(talking.stats_current[2][3] < 2.5) && talking.alive ! ANY => 0') 7extry = (x = $string_utils:words(saying)) ? $string_utils:strip_chars($string_utils:lowercase($string_utils:reverse(x[1])), "!,.?':;()<>") | ""; 8return $string_utils:capitalize((($string_utils.alphabet[random($)] + "uh") + $string_utils.alphabet[random($)]) + extry); 9elseif (this:can_speak(listening, talking_lang) || (!`!(!property_info(listening, "languages")) ! E_PROPNF => 0')) 10return saying; 11else 12return talking_lang:encrypt(listening, saying); 13endif
can_speak_languages
Referenced by
- #91:speak*ing line 5:
$lang_utils:can_speak_languages - #91:speak*ing line 14:
$lang_utils:can_speak_languages
Source
1"ARGs => what languages can [1] speak?"; 2langs = this:languages(@args)[1]; 3cslangs = {}; 4for l in (langs) 5(ticks_left() < 4000) && suspend(0); 6if (this:can_speak(args[1], l)) 7cslangs = {@cslangs, l}; 8endif 9endfor 10return cslangs;
in_line_for
Referenced by
- #3:-* line 14:
$lang_utils:in_line_for - #91:say line 7:
$lang_utils:in_line_for - #104:com*mand line 16:
$lang_utils:in_line_for - #104:com*mand line 20:
$lang_utils:in_line_for - #123:r*ead line 7:
$lang_utils:in_line_for - #123:description line 3:
$lang_utils:in_line_for - #125:announce line 18:
this:in_line_for
Source
1"ARGs => the language [1]'s 'in <lang>' blurb for person [2]"; 2lang = args[1]; 3p = args[2]; 4if (`(p.stats_current[2][3] < 2.5) && p.alive ! ANY => 0') 5return "but you can't understand the sounds."; 6endif 7if ((lang == $default_lang) && this:can_speak(p, lang)) 8return ""; 9endif 10langs = $lang_utils:languages(p); 11lin = lang in langs[1]; 12if (!lin) 13return ("in " + lang.unknown_lang_desc) + "."; 14endif 15cl = langs[2][lin]; 16if (lang == $default_lang) 17return ""; 18endif 19if (cl > lang.unknown_level) 20return ("in " + lang.lang_name) + "."; 21else 22return ("in " + lang.unknown_lang_desc) + "."; 23endif
advance_level
Referenced by
- #125:announce line 19:
this:advance_level - #129:learn line 30:
$lang_utils:advance_level
Source
1"ARGs => person [1] will advance in language [2]"; 2if (!`!(!property_info(p = args[1], "skills")) ! E_PROPNF => 0') 3return; 4endif 5lang = args[2]; 6langs = p.languages; 7lin = lang in langs[1]; 8if (!lin) 9langs = p.languages = {{@p.languages[1], lang}, {@p.languages[2], 0.0}}; 10lin = length(langs[1]); 11endif 12cl = langs[2][lin]; 13lskill = ((ls = p.skills[2]["language" in p.skills[1]]) >= 0.0001) ? ls | 0.1; 14if (cl > 2.0) 15return p.skills[2]["language" in p.skills[1]] = p.skills[2]["language" in p.skills[1]] + (0.0001 / lskill); 16endif 17if (cl > 1.0) 18amt = lang.learning_speeds[2] * sqrt(lskill); 19else 20amt = lang.learning_speeds[1] * sqrt(lskill); 21endif 22langs[2][lin] = langs[2][lin] + amt; 23p.languages = langs;
announce
Referenced by
- #3:say line 5:
$lang_utils:announce - #3:-* line 19:
$lang_utils:announce - #3:-* line 25:
$lang_utils:announce - #91:say line 8:
$lang_utils:announce - #104:com*mand line 22:
$lang_utils:announce
Source
1"ARGs => [1] announces [3] to [2], replacing %lang_encrypt in [3] with [4]"; 2s = args[1]; 3d = args[2]; 4fstr = args[3]; 5rstr = args[4]; 6if (typeof(d) == OBJ) 7d = {d}; 8endif 9if (`(s.stats_current[2][3] < 2.5) && s.alive ! ANY => 0') 10for c in (d) 11(ticks_left() < 4000) && suspend(0); 12`c:tell(strsub(fstr, "%lang_encrypt", $lang_utils:encrypt(s, c, rstr)), " as if it really meant something.") ! ANY'; 13endfor 14return; 15endif 16for c in (d) 17(ticks_left() < 4000) && suspend(0); 18ilf = this:in_line_for(lang = this:speaking(s), c); 19(((random(3) - 1) && (c in connected_players())) && (c != s)) && this:advance_level(c, lang); 20`c:tell(strsub(fstr, "%lang_encrypt", $lang_utils:encrypt(s, c, rstr)), " ", ilf) ! ANY'; 21endfor