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 |