procgen  Diff

Differences From Artifact [17f0b8d58f]:

To Artifact [a6081fd51c]:


     2      2   	"verve"; "pulchritude"; "beneficence"; "dismay"; "wit";
     3      3   	"cheer"; "glee"; "malevolence"; "wickedness"; "cruelty";
     4      4   	"sagacity"; "splendor"; "pride"; "rage"; "fury"; "snazz";
     5      5   	"foolishness"; "sleepiness"; "curiosity"; "brevity"; "lust";
     6      6   	"confidence"; "bashfulness"; "awkwardness"; "terror";
     7      7   	"accuracy"; "insanity"; "sorrow"; "gladness"; "weariness";
     8      8   	"depression"; "passion"; "dread"; "popularity"; "vulgarity";
     9         -	"madness"; "compassion";
            9  +    "madness"; "compassion"; "tact";
    10     10   |]
    11     11   let mods = [|
    12     12   	"filled"; "overcome"; "shining"; "vivacious";
    13     13   	"burning"; "blazing"; "morose"; "gleeful"; "mad";
    14     14   	"shaking"; "howling"; "snarling"; "gruesome";
    15         -	"helpless"; "vibrant"; "desperate";
           15  +    "helpless"; "vibrant"; "desperate"; "triumphant";
           16  +    "glum"; "sorrowful"; "struck";
    16     17   |]
    17     18   let advs = [|
    18     19   	"cruelly"; "angrily"; "madly"; "hopelessly"; "thoughtlessly";
    19     20   	"wickedly"; "hopefully"; "quickly"; "speedily"; "furiously";
    20     21   	"kindly"; "maniacally"; "tearfully"; "bashfully"; "angrily";
    21     22   	"wondrously"; "splendidly"; "tremendously"; "badly";
    22     23   	"terribly"; "foolishly"; "snazzily"; "toplessly"; "balefully";
    23     24   	"beautifully"; "kindly"; "thoughtfully"; "cautiously";
    24         -	"severely"; "wisely";
           25  +    "severely"; "wisely"; "lustfully"; "tactfully";
    25     26   |]
    26     27   let adjs = [|
    27     28   	"cheerful"; "wondrous"; "overwhelming"; "adorable";
    28     29   	"snazzy"; "hopeful"; "desperate"; "lustful"; "dour";
    29     30   	"sad"; "sorrowful"; "hopeless"; "all-consuming"; "mad";
    30     31   	"cruel"; "dreadful"; "terrible"; "fearsome"; "inescapable";
    31     32   	"thoughtless"; "vile"; "bashful"; "topless"; "naked"; "dire";
    32     33   	"baleful"; "vulgar"; "beautiful"; "horrid"; "cautious";
    33         -	"violent"; "wise"; "supreme"; "marvelous";
           34  +    "violent"; "wise"; "supreme"; "marvelous"; "tactful";
    34     35   |]
    35     36   let verbs = [|
    36     37   	"shines"; "toots"; "honks"; "mutters"; "whispers"; "growls";
    37     38   	"roars"; "whuffles"; "warbles"; "howls"; "screams"; "shrieks";
    38     39   	"quivers"; "dances"; "hops up and down"; "grins"; "mumbles";
    39     40   	"counsels you"; "glares"; "stares at you"; "looks up"; "gazes at you";
    40         -	"marvels"; "laughs";
           41  +    "marvels"; "laughs"; "sins"; "whistles"; "whungles"; "jangles";
           42  +    "twerks"; "blinks"; "blorps"; "flunks"; "planks"; "glitters";
           43  +    "gleams"; "grumbles"; "grouches"; "bites you"; "gnaws on you";
           44  +    "glimmers"; "gripes"; "plots"; "wonders"; "whittles"; "plays the fiddle";
           45  +    "ponders"; "contemplates you"; "scrunches"; "zaps"; "zaps you";
    41     46   |]
    42     47   
    43     48   let pick a = a.(Random.int (Array.length a))
    44     49   type rule = R of string array | S of string | B of rule list | A of rule array | O of rule;;
    45     50   let rec eval r : string = match r with
    46     51   	| R x -> pick x
    47     52   	| S x -> x
................................................................................
    58     63   	let obs = A [| stop; fric; vstop; nasal; liq; |] in
    59     64   	let v = R [| "a"; "e"; "u"; "o"; "i"; "ee"; "oo"; "au"; "ai";"oi";|] in
    60     65   	let sr = A [|
    61     66   		B[obs; v; O obs];
    62     67   		B[A [|stop;vstop;fric;vfric;|]; O liq; v; O obs];
    63     68   	|] in eval sr
    64     69   	;;
    65         -let prefixes = [| "ur-"; "dire "; "dire ur-"; "super " |]
           70  +let prefixes = [| "ur-"; "dire "; "dire ur-"; "super "; "ultra "; "great "; "grand "; "terror-"; "horror-"; "giant "; "evil "; "dark ";|]
    66     71   let name () =
    67     72   	let size = 1 + (Random.int 3) in
    68     73   	let rec loop n acc = if n = 0 then acc else loop (n-1) (acc^(syl ())) in
    69     74   	(if Random.int 2 = 0 then (pick prefixes) else "") ^ loop size "";;
    70     75   
    71     76   let isvowel c = match c with
    72     77   	| 'a' | 'e' | 'i' | 'o' | 'u' -> true
................................................................................
    94     99   			A [|
    95    100   				B[ R verbs; S " ";
    96    101   					A [|
    97    102   						B[ S "with "; O(B[R adjs; S" "]); R nouns;];
    98    103   						R advs;
    99    104   					|];
   100    105   				];
   101         -				B[S"is "; O(B[R advs;S" ";]); R mods;
          106  +				B[S"is "; O(B[R advs;S " ";]); R mods;
   102    107   					O(B[ S " with "; O(B[R adjs; S" "]); R nouns;]);
   103    108   				];
   104    109   			|];
   105    110   			S "!"; 
   106    111   	] in
   107    112   	(pick msgs)^" "^(indef (name()))^"! " ^ (eval kinds);;
   108    113   	
   109    114   let rec times n a = if n = 0 then () else (a (); times (n-1) a);;
   110    115   let () = Random.self_init (); 
   111    116   (*	times 20 (fun () ->*)
   112    117   		print_string ((encounter ()) ^ "\n")
   113    118   (*	)*)