Overview
Comment: | overhaul drugbot |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
7cdf7c1a3dafc52eee6ed33f08030ab2 |
User & Date: | lexi on 2018-11-21 11:36:21 |
Other Links: | manifest | tags |
Context
2018-12-20
| ||
07:48 | update check-in: 376eaeaf04 user: lexi tags: trunk | |
2018-11-21
| ||
11:36 | overhaul drugbot check-in: 7cdf7c1a3d user: lexi tags: trunk | |
2018-11-20
| ||
21:02 | fix likelihood check-in: 574e682167 user: velartrill tags: trunk | |
Changes
Modified drug.ml from [b5c9249601] to [c18b15fcb7].
28 28 let range min max = (Random.int (max-min)) + min 29 29 let chance n = range 0 n = 0 30 30 let pick (r: 'a array) : 'a = r.(range 0 (Array.length r));; 31 31 let prefixes = [| "crack"; "crystal"; "powdered"; "raw"; "pure"; "liquid"; "street"; 32 32 "super"; "electric"; "diced"; "homemade"; "traditional"; "old-school"; "purified"; 33 33 "high-caliber"; "high-octane"; "old-fashioned"; "good old"; "honest-to-god"; 34 34 "weapons-grade"; "soviet"; "american"; "canadian"; "british"; "russian"; 35 - "synthetic"; "french"; "cyber"; |] 35 + "synthetic"; "french"; "cyber"; "dank"; "dinky"; "dismal"; "fire"; "wild"; "wacky"; "snazzy"; "sleazy"; "skanky"; "sexy"; "screwy"; "funky"; "queer"; "kinky"; "fascist"; "nazi"; |] 36 36 let word () = (if chance 3 then (pick prefixes) ^ " " else "") ^ 37 37 (if chance 5 then "" else pick initials) ^ 38 38 (pick nuclei) ^ 39 39 (pick finals) 40 40 41 41 let greets = [| "hey"; "whassup"; "what's up"; "what up"; "yo"; "hey there"; "what's shakin'" |] 42 42 let names = [| "dude"; "bro"; "man"; "babe"; "sweetheart"; "honey"; "baby"; "hottie"; "girl"; |] 43 43 let questions = [| "wanna"; "want to"; "shall we"; "how about we"; |] 44 44 let exhorts = [| "we oughta"; "you oughta"; "we ought to"; "you ought to"; "we should"; 45 45 "you should"; "let's"; |] 46 -type component = Invariant of string | Numbered of string * string | Poss 47 -type state = Plain of string | Compound of component list 46 +type component = Invariant of string | Numbered of string * string | Poss |Obl | Nom | Refl 47 +type state = Plain of string | Compound of component list 48 48 let states = [| 49 49 Plain "high"; 50 50 Compound[Invariant "out of"; Poss; Numbered("mind","minds")]; 51 51 Compound[Invariant "outta"; Poss; Numbered("mind","minds")]; 52 - Plain "fucked up"; 53 - Plain "wrecked"; 54 - Plain "hammered"; 55 - Plain "buzzed"; 56 - Plain "tweaked"; 57 - Plain "whacked"; 58 - Plain "whacked out"; 59 - Plain "smacked"; 60 - Plain "smacked out"; 61 - Plain "tipsy"; 62 - Plain "snazzy"; 63 - Plain "spooky"; 64 - Plain "crazy"; 65 - Plain "messed up"; 66 - Plain "far out"; 67 - Plain "horny"; 68 - Plain "psycho"; 69 - Plain "loony"; 70 - Plain "wacky"; 71 - Plain "silly"; 72 - Plain "creepy"; 73 - Plain "frazzled"; 74 - Plain "dazzling"; 75 - Plain "wired"; 76 - Plain "peppy"; 77 - Plain "hoovered"; 78 - Plain "turnt"; 79 - Plain "turnt up"; 80 - Plain "tits-up"; 81 - Plain "toasted"; 82 - Plain "roasted"; 83 - Plain "cooked"; 84 - Plain "baked"; 85 - Plain "basted"; 86 - Plain "flunked"; 87 - Plain "flunked out"; 88 - Plain "crazed"; 89 - Plain "stewed"; 90 - Plain "framed for war crimes"; 91 - Plain "ruined"; 92 - Plain "totally ruined"; 93 - Plain "whacked out"; 94 - Plain "creeped out"; 95 - Plain "spunky"; 96 - Plain "spiffy"; 97 - Plain "nifty"; 98 - Plain "wicked"; 99 - Plain "slutty"; 100 - Plain "jazzed"; 101 - Plain "jazzy"; 102 - Plain "fried"; 103 - Plain "hecked"; 104 - Plain "hecked up"; 105 - Plain "hecked out"; 106 - Plain "screwed"; 107 - Plain "screwed up"; 108 - Plain "ousted"; 109 - Plain "thrown out of the mall"; 110 - Plain "cyber"; 111 - Plain "totally online"; 112 - Plain "cybered"; 113 - Plain "downloaded"; 52 + Compound[Invariant "put out of"; Poss; Invariant "misery"]; 53 + Compound[Invariant "put outta"; Poss; Invariant "misery"]; 54 + Compound[Invariant "an APB on"; Poss; Numbered("ass","asses")]; 55 + Compound[Invariant "a cop on"; Poss; Invariant "tail"]; 56 + Plain "fucked"; Plain "bailed out"; 57 + Plain "fucked up"; Plain "slobbered"; 58 + Plain "fucked off"; Plain "slobbered out"; 59 + Plain "fucked out"; Plain "honked"; 60 + Plain "fucked away"; Plain "honked out"; 61 + Plain "wrecked"; Plain "honked off"; 62 + Plain "hammered"; Plain "honked away"; 63 + Plain "buzzed"; Plain "tweeted"; 64 + Plain "tweaked"; Plain "tweeted at"; 65 + Plain "whacked"; Plain "subtweeted"; 66 + Plain "whacked out"; Plain "slagged"; 67 + Plain "whacked off"; Plain "razzed"; 68 + Plain "smacked"; Plain "thrashed"; 69 + Plain "smacked out"; Plain "flogged"; 70 + Plain "tipsy"; Plain "jacked"; 71 + Plain "snazzy"; Plain "jacked up"; 72 + Plain "spooky"; Plain "jacked off"; 73 + Plain "crazy"; Plain "exiled"; 74 + Plain "messed up"; Plain "sentenced to death"; 75 + Plain "far out"; Plain "jailed"; 76 + Plain "horny"; Plain "orbital"; 77 + Plain "psycho"; Plain "radical"; 78 + Plain "loony"; Plain "dialectical"; 79 + Plain "wacky"; Plain "shagged"; 80 + Plain "silly"; Plain "snubbed"; 81 + Plain "creepy"; Plain "glued"; 82 + Plain "frazzled"; Plain "glued off"; 83 + Plain "dazzling"; Plain "glued out"; 84 + Plain "wired"; Plain "sneezy"; 85 + Plain "peppy"; Plain "grumpy"; 86 + Plain "hoovered"; Plain "wild"; 87 + Plain "turnt"; Plain "outta this world"; 88 + Plain "turnt up"; Plain "out of this world"; 89 + Plain "tits-up"; Plain "junked"; 90 + Plain "toasted"; Plain "trashed"; 91 + Plain "roasted"; Plain "recycled"; 92 + Plain "cooked"; Plain "fragged"; 93 + Plain "baked"; Plain "dematerialized"; 94 + Plain "basted"; Plain "degenerate"; 95 + Plain "flunked"; Plain "biblical"; 96 + Plain "flunked out"; Plain "mystical"; 97 + Plain "crazed"; Plain "mythical"; 98 + Plain "stewed"; Plain "twisted"; 99 + Plain "framed for war crimes"; Plain "stabbed"; 100 + Plain "ruined"; Plain "stapled"; 101 + Plain "totally ruined"; Plain "cucked"; 102 + Plain "whacked out"; Plain "cucked up"; 103 + Plain "creeped out"; Plain "cucked out"; 104 + Plain "spunky"; Plain "cucked off"; 105 + Plain "spiffy"; Plain "bamboozled"; 106 + Plain "nifty"; Plain "baffled"; 107 + Plain "wicked"; Plain "baffled"; 108 + Plain "slutty"; Plain "logged on"; 109 + Plain "jazzed"; Plain "logged off"; 110 + Plain "jazzy"; Plain "hauled"; 111 + Plain "fried"; Plain "hauled away"; 112 + Plain "hecked"; Plain "hauled off"; 113 + Plain "hecked up"; Plain "rehabilitated"; 114 + Plain "hecked out"; Plain "disappeared"; 115 + Plain "screwed"; Plain "counterrevolutionary"; 116 + Plain "screwed up"; Plain "gulagged"; 117 + Plain "ousted"; Plain "grinched"; 118 + Plain "thrown out of the mall"; Plain "redacted"; 119 + Plain "cyber"; Plain "razed"; 120 + Plain "totally online"; Plain "sludged"; 121 + Plain "cybered"; Plain "clawed up"; 122 + Plain "downloaded"; Plain "clawed off"; 123 + Plain "slurped out"; Plain "dragged"; 124 + Plain "sucked off"; Plain "dragged away"; 125 + Plain "sporked"; Plain "dragged away screaming"; 126 + Plain "sporked up"; Plain "kidnapped"; 127 + Plain "sleazy"; Plain "hazed"; 128 + Plain "sleazed up"; Plain "glazed"; 129 + Plain "sleazed up"; Plain "shot"; 130 + Plain "sledged"; Plain "shot at"; 131 + Plain "sledged out"; Plain "spherical"; 132 + Plain "sledged up"; Plain "authoritarian"; 133 + Plain "sickled"; Plain "totalitarian"; 134 + Plain "hammered and sickled"; Plain "fascist"; 135 + Plain "strung out"; Plain "nationalized"; 136 + Plain "strung up"; Plain "flayed"; 137 + Plain "strung along"; Plain "thumped"; 138 + Plain "blown"; Plain "thumped off"; 139 + Plain "blown up"; Plain "humped"; 140 + Plain "blown out"; Plain "messy"; 141 + Plain "blown away"; Plain "conical"; 142 + Plain "blazed"; Plain "chunked"; 143 + Plain "dredged"; Plain "chunky"; 144 + Plain "dredged up"; Plain "hucked"; 145 + Plain "bailed"; Plain "zucked"; 146 + Plain "zucked up"; Plain "zucked off"; 147 + Plain "zucked out"; Plain "benched"; 148 + Plain "drafted"; Plain "conscripted"; 149 + Plain "killed"; Plain "killed"; 150 + Plain "hanged"; Plain "hung"; 151 + Plain "hung out to dry"; Plain "janky"; 152 + Plain "hacked"; Plain "hacked into"; 153 + Plain "hacked off"; Plain "hacked out"; 154 + Plain "judged"; Plain "found guilty"; 155 + Plain "empaneled"; Plain "impaled"; 156 + Plain "acquitted"; Plain "shucked"; 157 + Plain "banksy"; Plain "persecuted"; 158 + Plain "desegregated"; Plain "hauled"; 159 + Plain "hauled into court"; Plain "trumped up"; 160 + Plain "gendered"; Plain "ghouled"; 161 + Plain "slugged"; Plain "slagged"; 162 + Plain "frayed"; Plain "stupid"; 163 + Plain "girly"; Plain "manly"; 164 + Plain "comical"; Plain "satirical"; 165 + Plain "mocked"; Plain "funny"; 166 + Plain "arrested"; Plain "molested"; 167 + Plain "assaulted"; Plain "convicted"; 168 + Plain "traumatized"; Plain "ravished"; 169 + Plain "violated"; Plain "sexy"; 170 + Plain "beaten"; Plain "used"; 171 + Plain "bruised"; Plain "battered"; 172 + Plain "bloody"; Plain "abused"; 173 + Plain "neglected"; Plain "gaslit"; 174 + Plain "lied to"; Plain "deceived"; 175 + Plain "fooled"; Plain "foolish"; 176 + Plain "dense"; Plain "arboreal"; 177 + Plain "chucked"; Plain "got"; 178 + Plain "done"; Plain "had"; 179 + Plain "duped"; Plain "dropped"; 180 + Plain "drunk"; Plain "busted"; 181 + Plain "buxom"; Plain "bothered"; 182 + Plain "hot"; Plain "cold"; 183 + Plain "joshed"; Plain "surrounded"; 184 + Plain "sharp"; Plain "spun"; 185 + Plain "spun up"; Plain "spun out"; 186 + Plain "spun along"; Plain "dragged along"; 187 + Plain "long"; Plain "weird"; 188 + Plain "corporate"; Plain "enterprise"; 189 + Plain "electronic"; Plain "electric"; 190 + Plain "tortured"; Plain "shivved"; 191 + Plain "shanked"; Plain "skanky"; 192 + Plain "skanked"; Plain "skanked up"; 193 + Plain "skanked out"; Plain "skanked off"; 194 + Plain "skanked away"; Plain "whored"; 195 + Plain "whored out"; Plain "whored off"; 196 + Plain "sold"; Plain "sold off"; 197 + Plain "sold out"; Plain "spanked"; 198 + Plain "slapped"; Plain "stunk"; 199 + Plain "stinky"; Plain "stung"; 200 + Plain "stabled"; Plain "stuck"; 201 + Plain "topped"; Plain "bottomed"; 202 + Plain "trawled"; Plain "trawled for"; 203 + Plain "wanked"; Plain "wanked out"; 204 + Plain "strapped"; Plain "butchered"; 205 + Plain "invaded"; Plain "liberated"; 206 + Plain "greeted as liberators"; Plain "defiled"; 207 + Plain "desecrated"; Plain "lost"; 208 + Plain "scolded"; Plain "slabbed"; 209 + Plain "snagged"; Plain "flabby"; 210 + Plain "fracked"; Plain "wobbled"; 211 + Plain "mobbed"; Plain "floppy"; 212 + Plain "slinky"; Plain "sloppy"; 213 + Plain "snooty"; Plain "twee"; 214 + Plain "rich"; Plain "poor"; 215 + Plain "addicted"; Plain "hooked"; 216 + Plain "clammed up"; Plain "quiet"; 217 + Plain "chafed"; Plain "chewed up"; 218 + Plain "chewed out"; Plain "green"; 219 + Plain "purple"; Plain "pink"; 220 + Plain "white"; Plain "douched"; 221 + Plain "douchey"; Plain "douched out"; 222 + Plain "douched up"; Plain "douched off"; 223 + Plain "dank"; Plain "humped up"; 224 + Plain "humped off"; Plain "funky"; 225 + Plain "funked"; Plain "funked up"; 226 + Plain "funked off"; Plain "funked out"; 227 + Plain "sad"; Plain "depressed"; 228 + Plain "dehumanized"; Plain "demeaned"; 229 + Plain "dropped out"; Plain "queer"; 230 + Plain "gay"; Plain "kinky"; 231 + Plain "cranked"; Plain "cranked out"; 232 + Plain "cranked up"; Plain "cranked off"; 233 + Plain "cranked away"; Plain "kicked"; 234 + Plain "booted"; Plain "kinked"; 235 + Plain "sucked off"; Plain "boggled"; 236 + Plain "branded"; Plain "rebranded"; 237 + Plain "compliant"; Plain "obedient"; 238 + Plain "scammed"; Plain "legal"; 239 + Plain "outlawed"; Plain "banned"; 240 + Plain "banished"; Plain "baled"; 241 + Plain "blooded"; Plain "blasted"; 242 + Plain "blasted out"; Plain "blasted off"; 243 + Plain "blasted up"; Plain "blasted down"; 244 + Plain "slammed"; Plain "slammed down"; 245 + Plain "memed"; Plain "memetic"; 246 + Plain "elected"; Plain "bought out"; 247 + Plain "bought up"; Plain "bought"; 248 + Plain "bagged"; Plain "bugged"; 249 + Plain "blurry"; Plain "blurred"; 250 + Plain "blobbed"; Plain "cubed"; 251 + Plain "orbed"; Plain "squared"; 252 + Plain "[REDACTED]"; Plain "wrangled"; 253 + Plain "wrassled"; Plain "glib"; 254 + Plain "maudlin"; Plain "schooled"; 114 255 |] 115 256 let roas = [| "on"; "shooting up"; "using"; "mainlining"; "snorting"; "vaping"; "smoking"; "cybering"; 116 - "sucking down"; "gargling"; "doing"; "trying"; "guzzling"; "popping"; "downing"; "chewing"; 117 - "crunching"; "sniffing"; "zapping"; "downloading"; "dropping"; "cooking up"; "freebasing"|] 118 -let vroas = [| "shoot up"; "mainline"; "snort"; "vape"; "smoke"; "freebase"; 119 - "suck down"; "gargle"; "do"; "try"; "guzzle"; "pop"; "down"; "chew"; "crunch"; 120 - "sniff"; "zap"; "download"; "drop"; "cyber"; "cook up"; |] 257 + "sucking down"; "gargling"; "doing"; "trying"; "slurping"; "guzzling"; "popping"; "downing"; "chewing"; "pooping"; "shitting"; "pissing"; 258 + "crunching"; "sniffing"; "zapping"; "downloading"; "dropping"; "cooking up"; "freebasing"; "hooting"; "tooting"; "blasting"; "blazing"; 259 + "tweeting"; "honking"; "plugging"; "plugging in"; "hooking up"; "turning on"; "boofing"; "whacking"; "choking"; "ravishing"; "looting"; "slaughtering"; 260 + "drinking"; "eating"; "slugging"; "ghouling" |] 261 +let vroas = [| "shoot up"; "mainline"; "snort"; "vape"; "smoke"; "slurp"; 262 + "suck down"; "gargle"; "do"; "try"; "guzzle"; "pop"; "down"; "chew"; "crunch"; "poop"; "shit"; "piss"; "blast"; "blaze"; 263 + "sniff"; "zap"; "download"; "drop"; "cyber"; "cook up"; "toot"; "hoot"; "plug"; "plug in"; 264 + "hook up"; "turn on"; "boof"; "whack"; "choke"; "drink"; "eat"; "slug"; "ghoul"; "freebase"; "ravish"; "loot"; "slaughter";|] 121 265 module Pronoun = struct 122 266 type t = { 123 267 nom : string; obl : string; gen : string; 124 268 refl : string; cop : string; brevcop : string; 125 269 pl : bool; 126 270 } 127 271 let you = {nom = "you"; obl = "you"; gen = "your"; refl = "yourself"; ................................................................................ 142 286 end 143 287 let cop p = Pronoun.(if chance 4 then p.nom ^ " " ^ p.cop else p.nom^p.brevcop) 144 288 let makestate p s = 145 289 let eval c = match c with 146 290 | Invariant i -> i 147 291 | Numbered(sg,pl) -> if p.Pronoun.pl then pl else sg 148 292 | Poss -> p.Pronoun.gen 293 + | Nom -> p.Pronoun.nom 294 + | Obl -> p.Pronoun.obl 295 + | Refl -> p.Pronoun.refl 149 296 in match s with 150 297 | Plain t -> t 151 298 | Compound l -> List.fold_left (fun a t -> if a = "" then a^(eval t) else a^" "^(eval t)) "" l 152 -let gethigh p = (cop p) ^ (pick [|" getting "; " gonna get "; " "|]) ^ (pick [|"";"so "|]) 153 - ^ (makestate p (pick states)) ^ " on " ^ (word ());; 154 -let cantwait p = p.Pronoun.nom ^ " can't wait to get " ^ (makestate p (pick states)) ^ " on " ^ (word ());; 299 +let gethigh p = 300 + let pickstate () = 301 + (makestate p (pick states)) ^ 302 + (if chance 3 then 303 + " and " ^ (makestate p (pick states)) 304 + else "") 305 + in (cop p) ^ (pick [|" getting "; " gonna get "; " "|]) ^ (pick[| ""; p.Pronoun.refl ^ " " |]) ^ (pick [|"";"so "; "all "; "way "; "super "; "totally "|]) 306 + ^ (pickstate ()) ^ " on " ^ (word ());; 307 +let cantwait p = p.Pronoun.nom ^ " can't wait to get " ^ (pick[| ""; p.Pronoun.refl ^ " " |]) ^ (makestate p (pick states)) ^ " on " ^ (word ());; 155 308 let affecting p = 156 309 if chance 2 then 157 310 (pick [| 158 311 "it's got"; "it's getting"; "it got"; "it has"; 159 312 "it's making"; "it's gonna get"; "it's gonna make" 160 313 |]) ^ " " ^ p.Pronoun.obl 161 314 else Pronoun.(pick [| 162 315 p.nom ^ " got"; 163 316 (cop p) ^ " getting"; 164 317 (cop p) ^ " gonna get"; 165 318 (cop p); 166 319 |]);; 167 320 let gotso p = (affecting p) ^ (pick [|" ";" so "|]) ^ (makestate p (pick states));; 168 -let ison p = (cop p) ^ " " ^ (pick roas) ^ " " ^ (pick [|"so much ";"too much ";"way too much ";"a lotta ";"a lot of "; "a ton of "; "a whole lotta "; "a whole lot of ";"";""|]) ^ (word ());; 321 +let ison p = (cop p) ^ " " ^ (pick roas) ^ " " ^ (pick [|"so much ";"too much ";"way too much ";"a lotta ";"a lot of "; "a ton of "; "a whole lotta "; "a whole lot of ";"some ";"a little ";"some of this ";"some of that ";"a bit of ";"my ";"your ";"this ";"that ";"that there ";"all this ";"some of her ";"some of his ";"some of our ";"all this ";"all of this ";"her ";"his ";"our ";"";"";""|]) ^ (word ());; 169 322 let isonand p = (ison p) ^ " and " ^ (gotso p) 170 323 171 324 let offer p name (* haaaack *) = (pick greets) ^ " " ^ name ^ (pick [|"! "; ", "; ". "; " - ";|]) ^ 172 325 if chance 2 then 173 326 (pick questions) ^ (pick [|" go "; " "|]) ^ (pick vroas) ^ (pick [|" some "; " "|]) ^ 174 327 (word ()) ^ (if chance 2 then " and get " ^ (makestate p (pick states)) else "") ^ "?" 175 328 else