SHOW:
|
|
- or go back to the newest paste.
| 1 | ||
| 2 | // code is shit | |
| 3 | // what do you expect | |
| 4 | ||
| 5 | var m_w = 123456789; | |
| 6 | var m_z = 987654321; | |
| 7 | var mask = 0xffffffff; | |
| 8 | ||
| 9 | // Takes any integer | |
| 10 | function seed(i) {
| |
| 11 | m_w = i; | |
| 12 | m_z = 987654321; | |
| 13 | } | |
| 14 | ||
| 15 | String.prototype.hashCode = function() {
| |
| 16 | var hash = 0, i, chr; | |
| 17 | if (this.length === 0) return hash; | |
| 18 | for (i = 0; i < this.length; i++) {
| |
| 19 | chr = this.charCodeAt(i); | |
| 20 | hash = ((hash << 5) - hash) + chr; | |
| 21 | hash |= 0; // Convert to 32bit integer | |
| 22 | } | |
| 23 | return hash; | |
| 24 | }; | |
| 25 | ||
| 26 | // Returns number between 0 (inclusive) and 1.0 (exclusive), | |
| 27 | // just like random(). | |
| 28 | function random() | |
| 29 | {
| |
| 30 | m_z = (36969 * (m_z & 65535) + (m_z >> 16)) & mask; | |
| 31 | m_w = (18000 * (m_w & 65535) + (m_w >> 16)) & mask; | |
| 32 | var result = ((m_z << 16) + m_w) & mask; | |
| 33 | result /= 4294967296; | |
| 34 | return result + 0.5; | |
| 35 | } | |
| 36 | ||
| 37 | function randomInt(min, max) {
| |
| 38 | return ((random() * (max - min + 1)) + min) << 0; | |
| 39 | } | |
| 40 | ||
| 41 | function randomFrom(list) {
| |
| 42 | return list[Math.floor((random()*list.length))]; | |
| 43 | } | |
| 44 | ||
| 45 | function shuffle(a) {
| |
| 46 | var j, x, i; | |
| 47 | for (i = a.length - 1; i > 0; i--) {
| |
| 48 | j = Math.floor(random() * (i + 1)); | |
| 49 | x = a[i]; | |
| 50 | a[i] = a[j]; | |
| 51 | a[j] = x; | |
| 52 | } | |
| 53 | return a; | |
| 54 | } | |
| 55 | ||
| 56 | var blacked_percent; | |
| 57 | ||
| 58 | function blackedRand() {
| |
| 59 | return (blacked_percent + 2.0 * random()) / 3.0; | |
| 60 | } | |
| 61 | ||
| 62 | function blackedProb(p) {
| |
| 63 | return blackedRand() > (1.0 - p); | |
| 64 | } | |
| 65 | ||
| 66 | function blackedMin(rolls) {
| |
| 67 | var r = 3.0; | |
| 68 | while(rolls-- > 0) | |
| 69 | r = Math.min(r, Math.floor(blackedRand() * 4.0)); | |
| 70 | return r; | |
| 71 | } | |
| 72 | ||
| 73 | function blackedMax(rolls) {
| |
| 74 | var r = 0.0; | |
| 75 | while(rolls-- > 0) | |
| 76 | r = Math.max(r, Math.floor(blackedRand() * 4.0)); | |
| 77 | return Math.min(r, 5); | |
| 78 | } | |
| 79 | ||
| 80 | function gen(girlname, photo) {
| |
| 81 | var sname = girlname.replace(/\s+/g, '').toLowerCase(); | |
| 82 | sname.replace("princess", "");
| |
| 83 | sname.replace("chan", "");
| |
| 84 | seed(sname.hashCode()); | |
| 85 | ||
| 86 | for(var z = 0; z < 500; ++z) | |
| 87 | random(); | |
| 88 | ||
| 89 | var dat = {
| |
| 90 | vaginal: 0, | |
| 91 | oral: 0, | |
| 92 | swallow: 0, | |
| 93 | rim: 0, | |
| 94 | anal: 0, | |
| 95 | dp: 0, | |
| 96 | creampie: 0, | |
| 97 | pregnant: 0, | |
| 98 | humil: 0, | |
| 99 | }; | |
| 100 | ||
| 101 | var prefs = {
| |
| 102 | dildos: false, | |
| 103 | clothes: false, | |
| 104 | tattoo: false, | |
| 105 | }; | |
| 106 | ||
| 107 | var result; | |
| 108 | ||
| 109 | blacked_percent = Math.max(0.6, 0.3 + random()); | |
| 110 | - | if(sname.includes("craine"))
|
| 110 | + | |
| 111 | var sluts = [ | |
| 112 | "asuka", | |
| 113 | "mercy", | |
| 114 | "2b", | |
| 115 | "d.", | |
| 116 | "samus", | |
| 117 | "tennyson", | |
| 118 | "saber", | |
| 119 | "hilda", | |
| 120 | "misty", | |
| 121 | "lockh", | |
| 122 | "tohsaka", | |
| 123 | "zelda", | |
| 124 | "gremory", | |
| 125 | "asuna", | |
| 126 | "littner", | |
| 127 | "dawn", | |
| 128 | "may", | |
| 129 | "mei", | |
| 130 | "juri", | |
| 131 | "croft", | |
| 132 | "hatsune", | |
| 133 | "takamaki", | |
| 134 | ]; | |
| 135 | ||
| 136 | for(var k = 0; k < sluts.length; ++k) {
| |
| 137 | if(sname.includes(sluts[k])) {
| |
| 138 | blacked_percent += 0.3; | |
| 139 | break; | |
| 140 | } | |
| 141 | } | |
| 142 | ||
| 143 | if(sname.includes("galko"))
| |
| 144 | - | prefs.dildos = blackedProb(0.8); |
| 144 | + | |
| 145 | ||
| 146 | dat.vaginal = Math.max(2, blackedMax(2)); | |
| 147 | ||
| 148 | dat.oral = Math.max(2, blackedMax(2)); | |
| 149 | ||
| 150 | if(blackedProb((dat.vaginal + dat.oral) * 0.1)) | |
| 151 | dat.anal = Math.min(blackedMax(1), dat.vaginal); | |
| 152 | - | for(p in dat) |
| 152 | + | |
| 153 | for(var i = 0; i < 100; ++i) | |
| 154 | console.log(Math.min(blackedMax(1), dat.vaginal)); | |
| 155 | ||
| 156 | - | "Muslim Whore" , |
| 156 | + | |
| 157 | - | "Convert Cunt" , |
| 157 | + | |
| 158 | - | "Certified Sandbunny" , |
| 158 | + | |
| 159 | - | "Foreskin Cleaner" , |
| 159 | + | |
| 160 | - | "Slut for Sandniggers" , |
| 160 | + | |
| 161 | - | "Hijabi Queen" |
| 161 | + | |
| 162 | - | ]; |
| 162 | + | |
| 163 | if(insemen && blacked && dat.creampie >= 1) | |
| 164 | dat.pregnant = Math.min(dat.creampie, blackedMax(2)); | |
| 165 | ||
| 166 | if(blackedProb(dat.oral * 0.50) || insemen) | |
| 167 | dat.swallow = Math.min(dat.oral + 1, blackedMax(3)); | |
| 168 | ||
| 169 | if(blacked && dat.swallow >= 1 && blackedProb(0.5)) | |
| 170 | dat.rim = blackedMin(2); | |
| 171 | - | var grade = Math.min(Math.floor(count / 6), titles.length - 1); |
| 171 | + | |
| 172 | if(dat.anal >= 1 && dat.vaginal >= 1 && (dat.anal + dat.vaginal) >= 4) | |
| 173 | dat.dp = Math.floor((dat.anal + dat.vaginal + 0.5) / 2); | |
| 174 | ||
| 175 | prefs.tattoo = blackedProb(0.8); | |
| 176 | ||
| 177 | prefs.dildos = true; | |
| 178 | ||
| 179 | - | setId("title", count >= 24 ? "JASMINE'S BITCH" : titles[grade]);
|
| 179 | + | |
| 180 | ||
| 181 | for(var p in dat) | |
| 182 | dat[p] = Math.min(3, dat[p]); | |
| 183 | ||
| 184 | var count = 0; | |
| 185 | for(var p in dat) | |
| 186 | count += dat[p]; | |
| 187 | ||
| 188 | var titles = [ | |
| 189 | "Still Pure" , | |
| 190 | - | if(count === 0) |
| 190 | + | "Mostly Pure" , |
| 191 | "Experimenting" , | |
| 192 | "Beginner Slut" , | |
| 193 | "Freshly BLACKED" , | |
| 194 | "Certifiably BLACKED" , | |
| 195 | - | for(i = 0; i < votes; ++i) |
| 195 | + | "BBC Snowbunny" , |
| 196 | "Black Queen" ]; | |
| 197 | ||
| 198 | function setId(id, str) {
| |
| 199 | if(!document.getElementById(id)) | |
| 200 | return; | |
| 201 | var el = document.getElementById(id); | |
| 202 | el.innerHTML = str; | |
| 203 | } | |
| 204 | ||
| 205 | var grade = Math.min(Math.floor(count / 3), titles.length - 1); | |
| 206 | ||
| 207 | if(count >= 21) {
| |
| 208 | prefs.tattoo = true; | |
| 209 | prefs.clothes = true; | |
| 210 | prefs.dildos = true; | |
| 211 | - | img.setAttribute('src', 'bstar.png');
|
| 211 | + | |
| 212 | ||
| 213 | setId("title", count >= 24 ? "Mind-Broken Slave" : titles[grade]);
| |
| 214 | setId("name", girlname);
| |
| 215 | ||
| 216 | - | img.setAttribute('src', 'wstar.png');
|
| 216 | + | |
| 217 | document.getElementById("photo").src = photo;
| |
| 218 | ||
| 219 | if(count < 9) | |
| 220 | setId("wdick", "Maybe?");
| |
| 221 | ||
| 222 | ||
| 223 | var votes = Math.max(Math.floor(blackedRand() * blackedRand() * blackedRand() * 40), 1); | |
| 224 | if(count == 0) | |
| 225 | votes = 0; | |
| 226 | setId("grade", votes);
| |
| 227 | ||
| 228 | - | for(p in dat) |
| 228 | + | |
| 229 | for(var i = 0; i < votes; ++i) | |
| 230 | rating += randomInt(4, 5); | |
| 231 | - | for(p in prefs) |
| 231 | + | |
| 232 | rating /= votes; | |
| 233 | rating = Math.round(rating * 100) / 100; | |
| 234 | ||
| 235 | function setBox(id) {
| |
| 236 | - | for(i = 0; i < 8; ++i) |
| 236 | + | |
| 237 | if(!el) | |
| 238 | return; | |
| 239 | ||
| 240 | el.innerHTML = ""; | |
| 241 | var i = 0; | |
| 242 | var img; | |
| 243 | for(i = 0; i < dat[id]; ++i) {
| |
| 244 | img = document.createElement("img");
| |
| 245 | img.setAttribute('src', 'bspade.png');
| |
| 246 | el.appendChild(img); | |
| 247 | } | |
| 248 | for(; i < 3; ++i) {
| |
| 249 | img = document.createElement("img");
| |
| 250 | img.setAttribute('src', 'wspade.png');
| |
| 251 | el.appendChild(img); | |
| 252 | } | |
| 253 | } | |
| 254 | ||
| 255 | function setPref(id) {
| |
| 256 | var el = document.getElementById(id); | |
| 257 | if(!el) | |
| 258 | return; | |
| 259 | el.innerHTML = prefs[id] ? "YES!" : " "; | |
| 260 | } | |
| 261 | ||
| 262 | for(var p in dat) | |
| 263 | setBox(p); | |
| 264 | ||
| 265 | for(var p in prefs) | |
| 266 | setPref(p); | |
| 267 | ||
| 268 | var digits = [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' ]; | |
| 269 | var bid = ''; | |
| 270 | for(var i = 0; i < 8; ++i) | |
| 271 | bid += randomFrom(digits); | |
| 272 | ||
| 273 | setId("barcodeid", bid);
| |
| 274 | } | |
| 275 | ||
| 276 | function submit() {
| |
| 277 | gen( | |
| 278 | document.getElementById("wname").value,
| |
| 279 | document.getElementById("wimage").value);
| |
| 280 | ||
| 281 | document.getElementById("intro").style.display = "none";
| |
| 282 | document.getElementById("card").style.display = "flex";
| |
| 283 | } | |
| 284 |