MediaWiki:Gadget-crob.js
Jump to navigation
Jump to search
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
1 $(function () {
2 if ((mw.config.get('wgNamespaceNumber') != 0 && mw.config.get('wgNamespaceNumber') != 116) || mw.config.get('wgAction') != 'view') {
3 return;
4 }
5
6 var data = {
7 "Optimal quest guide": {
8 "initial": "Getting tired of doing quests? Click me for some help.",
9 "options": [
10 "Sure",
11 "No thanks."
12 ],
13 "response": [
14 "Sorry, I changed my mind. Do them yourself.",
15 "Why, are you playing Ironman Mode?"
16 ]
17 },
18 "Quests/List": {
19 "initial": "Getting tired of doing quests? Click me for some help.",
20 "options": [
21 "Sure",
22 "No thanks."
23 ],
24 "response": [
25 "Sorry, I changed my mind. Do them yourself.",
26 "Why, are you playing Ironman Mode?"
27 ]
28 },
29 "Quest experience rewards": {
30 "initial": "Getting tired of doing quests? Click me for some help.",
31 "options": [
32 "Sure",
33 "No thanks."
34 ],
35 "response": [
36 "Sorry, I changed my mind. Do them yourself.",
37 "Why, are you playing Ironman Mode?"
38 ]
39 },
40 "Achievement Diary": {
41 "initial": "How badly do you want those diary rewards?",
42 "options": [
43 "Badly.",
44 "Really badly."
45 ],
46 "response": [
47 "Not 'really badly'? Should've chosen that one, noob.",
48 "You SURE you want to train Runecraft?"
49 ]
50 },
51 "Ardougne Diary": {
52 "initial": "How badly do you want those diary rewards?",
53 "options": [
54 "Badly.",
55 "Really badly."
56 ],
57 "response": [
58 "Not 'really badly'? Should've chosen that one, noob.",
59 "You SURE you want to train up Magic?"
60 ]
61 },
62 "Desert Diary": {
63 "initial": "How badly do you want those diary rewards?",
64 "options": [
65 "Badly.",
66 "Really badly."
67 ],
68 "response": [
69 "Not 'really badly'? Should've chosen that one, noob.",
70 "You SURE you want to train up Thieving?"
71 ]
72 },
73 "Falador Diary": {
74 "initial": "How badly do you want those diary rewards?",
75 "options": [
76 "Badly.",
77 "Really badly."
78 ],
79 "response": [
80 "Not 'really badly'? Should've chosen that one, noob.",
81 "You SURE you want to get a skillcape?"
82 ]
83 },
84 "Fremennik Diary": {
85 "initial": "How badly do you want those diary rewards?",
86 "options": [
87 "Badly.",
88 "Really badly."
89 ],
90 "response": [
91 "Not 'really badly'? Should've chosen that one, noob.",
92 "You SURE you want to train Runecraft?"
93 ]
94 },
95 "Kandarin Diary": {
96 "initial": "How badly do you want those diary rewards?",
97 "options": [
98 "Badly.",
99 "Really badly."
100 ],
101 "response": [
102 "Not 'really badly'? Should've chosen that one, noob.",
103 "You SURE you want to train up Smithing?"
104 ]
105 },
106 "Karamja Diary": {
107 "initial": "How badly do you want those diary rewards?",
108 "options": [
109 "Badly.",
110 "Really badly."
111 ],
112 "response": [
113 "Not 'really badly'? Should've chosen that one, noob.",
114 "You SURE you want to train up Runecraft?"
115 ]
116 },
117 "Kourend & Kebos Diary": {
118 "initial": "How badly do you want those diary rewards?",
119 "options": [
120 "Badly.",
121 "Really badly."
122 ],
123 "response": [
124 "Not 'really badly'? Should've chosen that one, noob.",
125 "You SURE you want to train up Slayer?"
126 ]
127 },
128 "Lumbridge & Draynor Diary": {
129 "initial": "How badly do you want those diary rewards?",
130 "options": [
131 "Badly.",
132 "Really badly."
133 ],
134 "response": [
135 "Not 'really badly'? Should've chosen that one, noob.",
136 "You SURE you want to get a quest cape?"
137 ]
138 },
139 "Morytania Diary": {
140 "initial": "How badly do you want those diary rewards?",
141 "options": [
142 "Badly.",
143 "Really badly."
144 ],
145 "response": [
146 "Not 'really badly'? Should've chosen that one, noob.",
147 "You SURE you want to train up Fishing?"
148 ]
149 },
150 "Varrock Diary": {
151 "initial": "How badly do you want those diary rewards?",
152 "options": [
153 "Badly.",
154 "Really badly."
155 ],
156 "response": [
157 "Not 'really badly'? Should've chosen that one, noob.",
158 "You SURE you want to train up Cooking?"
159 ]
160 },
161 "Western Provinces Diary": {
162 "initial": "How badly do you want those diary rewards?",
163 "options": [
164 "Badly.",
165 "Really badly."
166 ],
167 "response": [
168 "Not 'really badly'? Should've chosen that one, noob.",
169 "You SURE you want to train up Slayer?"
170 ]
171 },
172 "Wilderness Diary": {
173 "initial": "How badly do you want those diary rewards?",
174 "options": [
175 "Badly.",
176 "Really badly."
177 ],
178 "response": [
179 "You SURE you want to enter the Wilderness? You might lose your spade!",
180 "You must truly be desperate to enter the Wilderness. You have my respect!"
181 ]
182 },
183 "Recipe for Disaster": {
184 "initial": "Do you know there's a shortcut to getting Barrows gloves?",
185 "options": [
186 "I did not.",
187 "Yes, I do."
188 ],
189 "response": [
190 "There isn't. Making one would be quite the Recipe for Disaster.",
191 "LIAR! Hacking your account now as we speak."
192 ]
193 },
194 "Money making guide": {
195 "initial": "It appears you are looking for a way to make money. Do you want to know an extremely fast way of getting some gold?",
196 "options": [
197 "Yes!",
198 "No."
199 ],
200 "response": [
201 "Me too.",
202 "Wrong answer. Choose 'Yes.' next time and I'll show you."
203 ]
204 },
205 "SKILL_TRAINING": {
206 "initial": "It appears you are looking to make some gains. Want some advice?",
207 "options": [
208 "Yes!",
209 "No."
210 ],
211 "response": [
212 "Skill at your own pace. You don't need to be hyper-efficient to have fun!",
213 "Good. I wasn't going to give you any, anyway."
214 ]
215 },
216 "Nightmare Zone": {
217 "initial": "It appears you are seeking to AFK your way to level 99 in various combat skills. Want some advice?",
218 "options": [
219 "Sure.",
220 "No thanks."
221 ],
222 "response": [
223 "You don't need any advice! AFK'ing is already easy as it is!",
224 "You don't need any, anyway; AFK'ing is already easy as it is."
225 ]
226 },
227 "Temporary skill boost": {
228 "initial": "Did you know there's an item that can boost all your stats at once?",
229 "options": [
230 "Yes.",
231 "No."
232 ],
233 "response": [
234 "You don't have to lie my friend, I'm just a crab.",
235 "Well there isn't! Get grinding!"
236 ]
237 },
238 "Dragon Slayer II": {
239 "initial": "Do you want a quest spoiler?",
240 "options": [
241 "Yes.",
242 "No."
243 ],
244 "response": [
245 "No spoilers. Do the quest!",
246 "Wise choice. And don't space-bar it too. I'm watching."
247 ]
248 },
249 "Monkey Madness II": {
250 "initial": "Do you want a quest spoiler?",
251 "options": [
252 "Yes.",
253 "No."
254 ],
255 "response": [
256 "No spoilers. Do the quest!",
257 "Wise choice. And don't space-bar it too. I'm watching."
258 ]
259 },
260 "Song of the Elves": {
261 "initial": "Do you want a quest spoiler?",
262 "options": [
263 "Yes.",
264 "No."
265 ],
266 "response": [
267 "No spoilers. Do the quest!",
268 "Wise choice. And don't space-bar it too. I'm watching."
269 ]
270 },
271 "Scythe of vitur": {
272 "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
273 "options": [],
274 "response": []
275 },
276 "Twisted bow": {
277 "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
278 "options": [],
279 "response": []
280 },
281 "Elysian sigil": {
282 "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
283 "options": [],
284 "response": []
285 },
286 "Elysian spirit shield": {
287 "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
288 "options": [],
289 "response": []
290 },
291 "Harmonised orb": {
292 "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
293 "options": [],
294 "response": []
295 },
296 "Harmonised nightmare staff": {
297 "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
298 "options": [],
299 "response": []
300 },
301 "Inquisitor's mace": {
302 "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
303 "options": [],
304 "response": []
305 },
306 "Inquisitor's great helm": {
307 "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
308 "options": [],
309 "response": []
310 },
311 "Inquisitor's hauberk": {
312 "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
313 "options": [],
314 "response": []
315 },
316 "Inquisitor's plateskirt": {
317 "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
318 "options": [],
319 "response": []
320 },
321 "Inquisitor's armour set": {
322 "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
323 "options": [],
324 "response": []
325 },
326 "Shooting Stars": {
327 "initial": "Imagine not memorising all the landing sites already. For shame!",
328 "options": [],
329 "response": []
330 },
331 "Tempoross": {
332 "initial": "Hey! Did you manage to find me in Tempoross Cove?",
333 "options": [
334 "Yes.",
335 "No."
336 ],
337 "response": [
338 "LIAR! I'm not even there, I'm in Prifddinas!",
339 "Well, keep lookin'!"
340 ]
341 },
342 "Spirit flakes": {
343 "initial": "Can you feed me some spirit flakes?",
344 "options": [
345 "Yes.",
346 "No."
347 ],
348 "response": [
349 "*om nom nom* I'm blue, Da ba dee da ba di",
350 "Meanie! You've been reported."
351 ]
352 },
353 "Jagex Moderator": {
354 "initial": "🦀jmods wont reply<br/>to this crab🦀",
355 "options": [],
356 "response": []
357 },
358 "RANDOM1": {
359 "initial": "The wiki is so crabtivating, don't you think?",
360 "options": [],
361 "response": []
362 },
363 "RANDOM2": {
364 "initial": "Did you know the wiki used to have ads? Those were dark days. You could barely see any of the page!",
365 "options": [],
366 "response": []
367 },
368 "RANDOM3": {
369 "initial": "Contrary to popular belief, I rarely get crabby.",
370 "options": [],
371 "response": []
372 },
373 "RANDOM4": {
374 "initial": "I'm a crabbo but don't worry, I won't stabbo.",
375 "options": [],
376 "response": []
377 },
378 "RANDOM5": {
379 "initial": "*Crabby is too busy raving to pay attention to you*",
380 "options": [],
381 "response": []
382 },
383 "RANDOM6": {
384 "initial": "Have you heard about the latest game update? It's called updog.",
385 "options": [
386 "Yeah",
387 "What's updog?"
388 ],
389 "response": [
390 "Really? Amazing, because I'm the Wiki Assistant and according to my database it doesn't exist.",
391 "Not much, what about you? Also, I'm a crab, but I realise it's easy to get the 2 species confused."
392 ]
393 },
394 "RANDOM7": {
395 "initial": "Does this page look good?",
396 "options": [
397 "Yeah!",
398 "Naw."
399 ],
400 "response": [
401 "Yay! That means we're doing our job.",
402 "Click 'Edit' up top there to make it better then!"
403 ]
404 },
405 "RANDOM8": {
406 "initial": "Hey, you do like me, right?",
407 "options": [
408 "I love you, Crabby.",
409 "Honestly? Not really. You're kind of annoying."
410 ],
411 "response": [
412 "I... I love you too. This is the happiest day of my life.",
413 "Oh.. forget I said anything."
414 ]
415 },
416 "Old School RuneScape Wiki": {
417 "initial": "Hi! I'm Crabby, your wiki assistant. Do you need a hand?",
418 "options": [
419 "Yes",
420 "No"
421 ],
422 "response": [
423 "Unfortunately I can't help you there, as I only have claws.",
424 "Crabrific! Enjoy your stay; I'll be here, watching."
425 ]
426 },
427 "Crab": {
428 "initial": "Yikes, these guys need to go see a good plastic surgeon.",
429 "options": [],
430 "response": []
431 },
432 "Crab (Prifddinas)": {
433 "initial": "That guy right there looks awfully intimidating, doesn't he?",
434 "options": [
435 "Yes, he's veRy intimidating!",
436 "I'm not that impressed."
437 ],
438 "response": [
439 "He's no match for me though!",
440 '<img src="/w/Special:Filepath/File:Crob.gif" width="125px" />'
441 ]
442 },
443 "Crab helmet": {
444 "initial": "You didn't actually mean to search this, right?",
445 "options": [
446 "Of course I did, I need to protect my head, whatever the cost.",
447 "No, of course not! Pure accident."
448 ],
449 "response": [
450 "The amount of my friends that have been killed for this! How could you! *cries in crab*",
451 "Phew. I always knew you were a true friend."
452 ]
453 },
454 "Fresh crab shell": {
455 "initial": "You didn't actually mean to search this, right?",
456 "options": [
457 "Of course I did, I need to protect my head, whatever the cost.",
458 "No, of course not! Pure accident."
459 ],
460 "response": [
461 "The amount of my friends that have been killed for this! How could you! *cries in crab*",
462 "Phew. I always knew you were a true friend."
463 ]
464 },
465 "Raw dark crab": {
466 "initial": "You didn't actually mean to search this, right?",
467 "options": [
468 "Of course I did - I LOVE dark crabs.",
469 "No, of course not! Pure accident."
470 ],
471 "response": [
472 "You sick ****!",
473 "Phew. I always knew you were a true friend."
474 ]
475 },
476 "Dark crab": {
477 "initial": "You didn't actually mean to search this, right?",
478 "options": [
479 "Of course I did - I LOVE dark crabs.",
480 "No, of course not! Pure accident."
481 ],
482 "response": [
483 "You sick ****!",
484 "Phew. I always knew you were a true friend."
485 ]
486 },
487 "Crab meat": {
488 "initial": "You didn't actually mean to search this, right?",
489 "options": [
490 "Of course I did - crab is my favourite food.",
491 "No, of course not! Pure accident."
492 ],
493 "response": [
494 "You heartless monster.",
495 "Phew. I always knew you were a true friend."
496 ]
497 },
498 "Cooked crab meat": {
499 "initial": "This is not what I envisioned crab heaven to be like.",
500 "options": [],
501 "response": []
502 },
503 "Ground crab meat": {
504 "initial": "You didn't actually mean to search this, right?",
505 "options": [
506 "Of course I did - crab is my favourite food.",
507 "No, of course not! Pure accident."
508 ],
509 "response": [
510 "You heartless monster.",
511 "Phew. I always knew you were a true friend."
512 ]
513 },
514 "Fresh crab claw": {
515 "initial": "You didn't actually mean to search this, right?",
516 "options": [
517 "Of course I did - crab is my favourite food.",
518 "No, of course not! Pure accident."
519 ],
520 "response": [
521 "You heartless monster.",
522 "Phew. I always knew you were a true friend."
523 ]
524 },
525 "Rock Crab": {
526 "initial": "What's a crab's favourite genre of music?",
527 "options": [
528 "I don't know, what?"
529 ],
530 "response": [
531 "Rock! Duh."
532 ]
533 },
534 "CALCULATORS": {
535 "initial": "It looks like you want to calculate things. Can't you do these formulas in your head? ",
536 "options": [
537 "Yes",
538 "No"
539 ],
540 "response": [
541 "Really? I smell a liar.",
542 "Try and work your brain a bit harder and you might be able to."
543 ]
544 },
545 "Prifddinas": {
546 "initial": "Home Sweet Home!",
547 "options": [],
548 "response": []
549 },
550 "Zamorak wizard": {
551 "initial": "If you're looking for zamik wizards, you're on the wrong website.",
552 "options": [],
553 "response": []
554 },
555 "Player Moderator": {
556 "initial": "Hello! I have checked your account and have seen maturity. I would like to offer you the once-in-a-lifetime chance to be a crab moderator.",
557 "options": [
558 "Wow! Yes please!",
559 "No thanks."
560 ],
561 "response": [
562 "Oops, sorry, you responded too late. This offer has now expired.",
563 "Fine! I'll find someone else to sca- uh, HELP."
564 ]
565 },
566 "Weird gloop": {
567 "initial": "You may think this is a useless item, but I can assure you that gloop is very important to a crab's wellbeing!",
568 "options": [],
569 "response": []
570 },
571 "Grand Exchange": {
572 "initial": "This is where you can sell your soul in order to pay for high level stuff that you will never use",
573 "options": [],
574 "response": []
575 },
576 "Human": {
577 "initial": "Hey, it's your kind!",
578 "options": [],
579 "response": []
580 },
581 "TREASURE_TRAILS": {
582 "initial": "Treasure Trails look so fun! I wish I could try them, but unfortunately I can't do those fiddly puzzle boxes with these pincers.",
583 "options": [],
584 "response": []
585 },
586 "Zanik": {
587 "initial": "Fun fact! Zanik is my number 1 celebrity crush.",
588 "options": [],
589 "response": []
590 },
591 "MUSIC": {
592 "initial": "Did you mean: Crab Rave [EXTREME BASS BOOST]?",
593 "options": [],
594 "response": []
595 },
596 "Ratcatchers": {
597 "initial": "Is Ratcatchers your favorite quest?",
598 "options": [
599 "Yes, of course! ~Aside~ Hopefully Crabby can't tell I'm lying.",
600 "No, this quest is terrible!"
601 ],
602 "response": [
603 "~Crabby dazzles you with another one of its trademark smiles.~",
604 "Oh, that's okay! ~Crabby flashes you an unconvincing smile.~"
605 ]
606 },
607 "Money making guide/Catching dark crabs": {
608 "initial": "Don't even think about it.",
609 "options": [
610 "What?"
611 ],
612 "response": [
613 "You heard me."
614 ]
615 },
616 "Money making guide/Cooking raw dark crabs": {
617 "initial": "We can't be friends anymore.",
618 "options": [
619 "I'm sorry!",
620 "We were never friends."
621 ],
622 "response": [
623 "Contribute to the wiki and I'll forgive you.",
624 "Let's keep it that way."
625 ]
626 },
627 "Bandos godsword (Misthalin Mystery)": {
628 "initial": "If you get this item yer MEGA BANNED.",
629 "options": [],
630 "response": []
631 },
632 "Erin": {
633 "initial": "Streamer favoritism SMH.",
634 "options": [],
635 "response": []
636 },
637 "Kalphite princess": {
638 "initial": "Selling twow<br/>Wow<br/>Is that a bee!",
639 "options": [],
640 "response": []
641 },
642 "Rotten potato": {
643 "initial": "You some sorta cop?",
644 "options": [],
645 "response": []
646 },
647 "Leagues": {
648 "initial": "Are you looking forward to the Goblin League?",
649 "options": [
650 "Of course! I love goblins!",
651 "What is that?"
652 ],
653 "response": [
654 "Sh-should I tell them?",
655 "Guess you'll have to wait and find out."
656 ]
657 },
658 "Mysterious Adventurer": {
659 "initial": "Woox won.",
660 "options": [],
661 "response": []
662 },
663 "Sea Shanty 2": {
664 "initial": "🔥🔥🔥",
665 "options": [],
666 "response": []
667 },
668 "Goblin": {
669 "initial": "You forgot the 10 coins again, didn't you?",
670 "options": [
671 "How did you know?"
672 ],
673 "response": [
674 "I have my ways."
675 ]
676 },
677 "Dragon dagger": {
678 "initial": "Ol' reliable.",
679 "options": [],
680 "response": []
681 },
682 "Cowbells": {
683 "initial": "Could always use some more.",
684 "options": [],
685 "response": []
686 },
687 "Wintertodt": {
688 "initial": "An unknown entity that brings perpetual winter and unfathomable cold!",
689 "options": [
690 "What?"
691 ],
692 "response": [
693 "I'm not so sure myself."
694 ]
695 },
696 "Romeo & Juliet": {
697 "initial": "On this, the first of April, day of fools -<br/>I sit here in your browser and observe<br/>Your use of Old School RuneScape Wiki tools.<br/>From this, my study, I shall never swerve;<br/>Though chitinous and hard my outer shell,<br/>My heart is soft - it sings to see you learn<br/>And use the words which on these pages dwell<br/>To gather wisdom kept past your sojourn.<br/>Though much of what I say be glib or trite<br/>I pray my presence does not do you ill;<br/>My only goal, to bring to you delight.<br/>And if you say that you have had your fill,<br/>In settings may you hide me from your view -<br/>I'll be here, April 1st, next year though too.",
698 "options": ["Wow, that was beautiful."],
699 "response": ["Thank you."]
700 },
701 "Gadget-crob.js": {
702 "initial": "What do you think you're doing? Get out!",
703 "options": [],
704 "response": []
705 }
706 }
707
708 var pagename = mw.config.get('wgTitle');
709 var namespace = mw.config.get('wgCanonicalNamespace');
710 var categories = mw.config.get('wgCategories');
711
712 var conversation = null;
713 if (data[pagename] !== undefined) {
714 conversation = data[pagename];
715 } else if (pagename.startsWith("Money making")) {
716 conversation = data["MONEY_MAKING"];
717 } else if (pagename.startsWith("Treasure Trails")) {
718 conversation = data["TREASURE_TRAILS"];
719 } else if (namespace.startsWith("Calculator")) {
720 conversation = data["CALCULATORS"];
721 } else if (categories.indexOf("Training guides") > -1) {
722 conversation = data["SKILL_TRAINING"]
723 } else if (categories.indexOf("Music") > -1) {
724 conversation = data["MUSIC"]
725 } else {
726 var key = "RANDOM" + (Math.floor(Math.random() * 8) + 1);
727 conversation = data[key]
728 }
729
730 var $div = $("<div id=\"crob\" style='color: black; z-index: 999999999; position: fixed;bottom: 30px;left: 30px;'><div id=\"crob-speech\" style=' position: fixed;bottom: 188px;left: 15px;background-color: #FFFDCC;width: 175px;border: 1px solid black;border-radius: 7px;'><div id=\"crob-speech-text\" style=' margin: 7px 10px;font-family: Arial;font-size: 13px;'></div></div><div id=\"crob-speech-arrow\" style=' width: 0; position: relative; bottom: -24px; left: 110px; border-top: 15px solid #FFFDCC; border-left: 0 solid transparent; border-right: 10px solid transparent; filter: drop-shadow(-1px 1px 0 #000) drop-shadow(0 1px 0 #000);'></div><div id=\"crob-img\"></div></div>")
731
732 var $buttons = $("<div id=\"crob-speech-buttons\" style=' font-family: Arial;font-size: 14px;position: relative;text-align: center;border-top: 1px solid #C2C2C2;bottom: 0;margin: 7px 7px 10px 7px;'></div>")
733
734 var $button = $("<button class=\"crob-button\" style=' background-color: #FFFDCC;border: 1px solid #C2C2C2;border-radius: 3px;padding: 5px 12px;margin: 10px 5px 0 5px;'>No</button>")
735 console.log(conversation.initial)
736 $('#firstHeading').after($div);
737 $("#crob-speech-text").html(conversation.initial);
738 if (conversation.options.length > 0) {
739 $("#crob-speech-text").after($buttons);
740 }
741
742 var onClick = function(event) {
743 $("#crob-speech-text").html($(event.target).attr('data-response'));
744 $("#crob-speech-buttons").remove();
745 }
746 for (var i = 0; i < conversation.options.length; i++) {
747 var butt = $button.clone();
748 butt.text(conversation.options[i])
749 butt.attr("data-response", conversation.response[i])
750 butt.click(onClick);
751 $("#crob-speech-buttons").append(butt);
752 }
753
754 })