Generic Language #126

Parent #102Owner #2Flags Source QuestCore.db

Aliases: Generic Language

2 verbs · 16 properties · 1 children

Verbs

VerbSpecFlagsDefinerLines
encryptthis none thisrxd#12632
@setupthis none nonerxd#12624

Properties

PropertyDefinerFlagsOwnerValue
characters#126rc#2"SsXxZzFfEeDdCcBbPpUuWwAaIiHhGgLlKkOoNnVvYyQqJjMmRrTt~`!1@2#3$4%5^6&7*8(9)0_-+={[}]|:;\"'<,>.?/"
lang_name#126rc#2""
unknown_lang_desc#126rc#2"another language"
unknown_level#126rc#20.002
learning_speeds#126rc#2{0.0005, 0.00025}
value_base#102r#2<clear>
damage_base#102r#2<clear>
x_loc#102r#36<clear>
y_loc#102r#36<clear>
ansi_title#102r#36<clear>
obvious#102r#36<clear>
build_help#102rc#2{" @setup $lang to create a new one.", " $default_lang exists so that wizards starting from a new core will not have to set up the system."}
key#1c#20
aliases#1rc#2{"Generic Language"}
description#1rc#2<clear>
object_size#1r#36{3045, 1539462952}

Ancestry

Ancestors (nearest first): #102 subthing#1 Root Class

Children: #142 Common Language

Call graph

calls n126_0 #126:encrypt n125_2 #125:languages n126_0->n125_2 n26_36 #26:round n126_0->n26_36 n20_38 #20:explode n126_0->n20_38 n126_1 #126:@setup n6_18 #6:tell n126_1->n6_18 n56_2 #56:read n126_1->n56_2 n63_2 #63:_create n126_1->n63_2 n20_59 #20:name_and_number n126_1->n20_59

Source

encrypt

Spec this none thisFlags rxdOwner #2Definer #126

Referenced by

none

Source

1"ARGs => encrypting words [2] for person [1] using this language";
2set_task_perms(player);
3listening = args[1];
4saying = args[2];
5chars = this.characters;
6encrypted = "";
7llangs = $lang_utils:languages(listening);
8if (!(lin = this in llangs[1]))
9llangs[1] = {@llangs[1], sspeak};
10llangs[2] = {@llangs[2], 0.0};
11listening.languages = llangs;
12lin = this in listening.languages[1];
13endif
14clarity = 2 * listening:roll_against("language");
15ls = llangs[2][lin];
16lsp = (ls + listening.skills[2]["language" in listening.skills[1]]) * 0.5;
17lsp = $math_utils:round(lsp * 10.0);
18ex = $string_utils:explode(saying, " ");
19for s in (ex)
20(ticks_left() < 2000) && suspend(0);
21r = random(50) - clarity;
22if ((r - lsp) < 0)
23encrypted = encrypted + s;
24else
25for n in [1..length(s)]
26(ticks_left() < 1200) && suspend(0);
27encrypted = encrypted + `this.characters[index($lang.characters, s[n], 1)] ! E_RANGE => s[n]';
28endfor
29endif
30encrypted = (s != ex[$]) ? encrypted + " " | encrypted;
31endfor
32return encrypted;

@setup

Spec this none noneFlags rxdOwner #2Definer #126

Referenced by

none

Source

1if ((!player.wizard) || this.owner)
2player:tell("Bug off!");
3endif
4chars = this.characters;
5langname = $command_utils:read("the name of the language");
6langdesc = $command_utils:read("the unknown desc of the language");
7player:Tell("The following section is case sensitive:");
8player:Tell("Characters");
9player:Tell("(Note: If you mess up, you /must/ @abort)");
10n = 0;
11for n in [1..length(chars)]
12(ticks_left() < 4000) && suspend(0);
13c = $command_utils:Read(tostr("the substitute for ", chars[n]));
14c = (length(c) > 1) ? c[1] | c;
15chars[n] = c ? c | chars[n];
16endfor
17newlang = $recycler:_create($lang);
18newlang.name = tostr(langname, " Language");
19newlang.aliases = {tostr(langname, " Language")};
20newlang.lang_name = langname;
21newlang.unknown_lang_desc = langdesc;
22newlang.characters = chars;
23move(newlang, player);
24player:tell($string_utils:nn(newlang), " created, @setup complete.");