MediaWiki:Gadget-crob.js

After saving, you may need to bypass your browser's cache to see the changes. For further information, see Wikipedia:Bypass your cache.

  • In most Windows and Linux browsers: Hold down Ctrl and press F5.
  • In Safari: Hold down ⇧ Shift and click the Reload button.
  • In Chrome and Firefox for Mac: Hold down both ⌘ Cmd+⇧ Shift and press R.
"use strict";

$(function () {
  if (mw.config.get('wgNamespaceNumber') != 0 && mw.config.get('wgNamespaceNumber') != 116 || mw.config.get('wgAction') != 'view') {
    return;
  }
  var data = {
    "Optimal quest guide": {
      "initial": "Getting tired of doing quests? Click me for some help.",
      "options": ["Sure", "No thanks."],
      "response": ["Sorry, I changed my mind. Do them yourself.", "Why, are you playing Ironman Mode?"]
    },
    "Quests/List": {
      "initial": "Getting tired of doing quests? Click me for some help.",
      "options": ["Sure", "No thanks."],
      "response": ["Sorry, I changed my mind. Do them yourself.", "Why, are you playing Ironman Mode?"]
    },
    "Quest experience rewards": {
      "initial": "Getting tired of doing quests? Click me for some help.",
      "options": ["Sure", "No thanks."],
      "response": ["Sorry, I changed my mind. Do them yourself.", "Why, are you playing Ironman Mode?"]
    },
    "Achievement Diary": {
      "initial": "How badly do you want those diary rewards?",
      "options": ["Badly.", "Really badly."],
      "response": ["Not 'really badly'? Should've chosen that one, noob.", "You SURE you want to train Runecraft?"]
    },
    "Ardougne Diary": {
      "initial": "How badly do you want those diary rewards?",
      "options": ["Badly.", "Really badly."],
      "response": ["Not 'really badly'? Should've chosen that one, noob.", "You SURE you want to train up Magic?"]
    },
    "Desert Diary": {
      "initial": "How badly do you want those diary rewards?",
      "options": ["Badly.", "Really badly."],
      "response": ["Not 'really badly'? Should've chosen that one, noob.", "You SURE you want to train up Thieving?"]
    },
    "Falador Diary": {
      "initial": "How badly do you want those diary rewards?",
      "options": ["Badly.", "Really badly."],
      "response": ["Not 'really badly'? Should've chosen that one, noob.", "You SURE you want to get a skillcape?"]
    },
    "Fremennik Diary": {
      "initial": "How badly do you want those diary rewards?",
      "options": ["Badly.", "Really badly."],
      "response": ["Not 'really badly'? Should've chosen that one, noob.", "You SURE you want to train Runecraft?"]
    },
    "Kandarin Diary": {
      "initial": "How badly do you want those diary rewards?",
      "options": ["Badly.", "Really badly."],
      "response": ["Not 'really badly'? Should've chosen that one, noob.", "You SURE you want to train up Smithing?"]
    },
    "Karamja Diary": {
      "initial": "How badly do you want those diary rewards?",
      "options": ["Badly.", "Really badly."],
      "response": ["Not 'really badly'? Should've chosen that one, noob.", "You SURE you want to train up Runecraft?"]
    },
    "Kourend & Kebos Diary": {
      "initial": "How badly do you want those diary rewards?",
      "options": ["Badly.", "Really badly."],
      "response": ["Not 'really badly'? Should've chosen that one, noob.", "You SURE you want to train up Slayer?"]
    },
    "Lumbridge & Draynor Diary": {
      "initial": "How badly do you want those diary rewards?",
      "options": ["Badly.", "Really badly."],
      "response": ["Not 'really badly'? Should've chosen that one, noob.", "You SURE you want to get a quest cape?"]
    },
    "Morytania Diary": {
      "initial": "How badly do you want those diary rewards?",
      "options": ["Badly.", "Really badly."],
      "response": ["Not 'really badly'? Should've chosen that one, noob.", "You SURE you want to train up Fishing?"]
    },
    "Varrock Diary": {
      "initial": "How badly do you want those diary rewards?",
      "options": ["Badly.", "Really badly."],
      "response": ["Not 'really badly'? Should've chosen that one, noob.", "You SURE you want to train up Cooking?"]
    },
    "Western Provinces Diary": {
      "initial": "How badly do you want those diary rewards?",
      "options": ["Badly.", "Really badly."],
      "response": ["Not 'really badly'? Should've chosen that one, noob.", "You SURE you want to train up Slayer?"]
    },
    "Wilderness Diary": {
      "initial": "How badly do you want those diary rewards?",
      "options": ["Badly.", "Really badly."],
      "response": ["You SURE you want to enter the Wilderness? You might lose your spade!", "You must truly be desperate to enter the Wilderness. You have my respect!"]
    },
    "Recipe for Disaster": {
      "initial": "Do you know there's a shortcut to getting Barrows gloves?",
      "options": ["I did not.", "Yes, I do."],
      "response": ["There isn't. Making one would be quite the Recipe for Disaster.", "LIAR! Hacking your account now as we speak."]
    },
    "Money making guide": {
      "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?",
      "options": ["Yes!", "No."],
      "response": ["Me too.", "Wrong answer. Choose 'Yes.' next time and I'll show you."]
    },
    "SKILL_TRAINING": {
      "initial": "It appears you are looking to make some gains. Want some advice?",
      "options": ["Yes!", "No."],
      "response": ["Skill at your own pace. You don't need to be hyper-efficient to have fun!", "Good. I wasn't going to give you any, anyway."]
    },
    "Varlamore": {
      "initial": "Welcome to Varlamore! Or the page for it, anyway. Will you read all the lore on this page?",
      "options": ["Yes, I love lore!", "No, I don't think I will."],
      "response": [":D! Me too! Varlamore is full of Varla-LORE!", "How rude! I hope your next few Colosseum runs gives you the WORST handicaps!"]
    },
    "Fortis Colosseum": {
      "initial": "Here to get Dizana's quiver?",
      "options": ["Yes. I'm having a hard time, though...", "No, I'm just farming splinters on wave 1."],
      "response": ["A pro tip is to take the Doom handicap. It's basically free; just don't take damage!", "Can't fault you for that, they're selling like hotcakes!"]
    },
    "Perilous Moons": {
      "initial": "Did you mean to look for the boss page, the Moons of Peril?",
      "options": ["Yes.", "No."],
      "response": ["Its ok, its not your fault! Its Jagex's for making the names quite similar.", "You don't have to lie my friend, I'm just a crab."]
    },
    "Moons of Peril": {
      "initial": "Did you come from the Perilous Moons page?",
      "options": ["Yes.", "No."],
      "response": ["Its ok, its not your fault! Its Jagex's for making the names quite similar.", "You don't have to lie my friend, I'm just a crab."]
    },
    "Sol Heredit": {
      "initial": "Pretty sly of you to look up how to fight ol' Sol here.",
      "options": [],
      "response": []
    },
    "Hunters' Rumours": {
      "initial": "Are you having fun doing Hunters' Rumours?",
      "options": ["Yes, I'm having a great time!", "No, leave me alone you stupid crab."],
      "response": ["Good! Its important to have fun, even if some of the rumours aren't the best.", "How rude of you! I hope your next rare creature part is as dry as the Kharidian Desert."]
    },
    "Lunar Chest": {
      "initial": "Sorry, looking at this page isn't going to boost your chances at a unique. Keep at it!",
      "options": [],
      "response": []
    },
    "Dizana's quiver": {
      "initial": "Why are you looking at this page when you haven't even beaten the Colosseum yet? Get back there before I tell my buddy Sol to give you the worst handicaps!",
      "options": ["Nice try, but I own the quiver already.", "Ok I'm sorry, please bless me with good handicaps."],
      "response": ["Yes, but I can see you haven't blessed it yet. Back in you go!", "I'll put in a good word for you with ol' Sol."]
    },
    "Tumeken's shadow": {
      "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
      "options": [],
      "response": []
    },
    "Scythe of vitur": {
      "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
      "options": [],
      "response": []
    },
    "Twisted bow": {
      "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
      "options": [],
      "response": []
    },
    "Elysian sigil": {
      "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
      "options": [],
      "response": []
    },
    "Elysian spirit shield": {
      "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
      "options": [],
      "response": []
    },
    "Eldritch orb": {
      "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
      "options": [],
      "response": []
    },
    "Eldritch nightmare staff": {
      "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
      "options": [],
      "response": []
    },
    "Torva armour": {
      "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
      "options": [],
      "response": []
    },
    "Torva full helm": {
      "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
      "options": [],
      "response": []
    },
    "Torva platebody": {
      "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
      "options": [],
      "response": []
    },
    "Torva platelegs": {
      "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
      "options": [],
      "response": []
    },
    "Zaryte crossbow": {
      "initial": "HEY! You're too poor to buy this item. Go somewhere else.",
      "options": [],
      "response": []
    },
    "Jagex Moderator": {
      "initial": "🦀jmods wont reply<br/>to this crab🦀",
      "options": [],
      "response": []
    },
    "RANDOM1": {
      "initial": "The wiki is so crabtivating, don't you think?",
      "options": [],
      "response": []
    },
    "RANDOM2": {
      "initial": "Hey, you do like me, right?",
      "options": ["I love you, Crabby.", "Honestly? Not really. You're kind of annoying."],
      "response": ["I... I love you too. This is the happiest day of my life.", "Oh.. forget I said anything."]
    },
    "RANDOM3": {
      "initial": "Contrary to popular belief, I rarely get crabby.",
      "options": [],
      "response": []
    },
    "RANDOM4": {
      "initial": "I'm a crabbo but don't worry, I won't stabbo.",
      "options": [],
      "response": []
    },
    "RANDOM5": {
      "initial": "*Crabby is too busy raving to pay attention to you*",
      "options": [],
      "response": []
    },
    "RANDOM6": {
      "initial": "Have you heard about the latest game update? It's called updog.",
      "options": ["Yeah", "What's updog?"],
      "response": ["Really? Amazing, because I'm the Wiki Assistant and according to my database it doesn't exist.", "Not much, what about you? Also, I'm a crab, but I realise it's easy to get the 2 species confused."]
    },
    "RANDOM7": {
      "initial": "Does this page look good?",
      "options": ["Yeah!", "Naw."],
      "response": ["Yay! That means we're doing our job.", "Click 'Edit' up top there to make it better then!"]
    },
    "RuneRealm Wiki": {
      "initial": "Hi! I'm Crabby, your wiki assistant. Do you need a hand?",
      "options": ["Yes", "No"],
      "response": ["Unfortunately I can't help you there, as I only have claws.", "Crabrific! Enjoy your stay; I'll be here, watching."]
    },
    "Crab": {
      "initial": "Yikes, these guys need to go see a good plastic surgeon.",
      "options": [],
      "response": []
    },
    "Crab (Prifddinas)": {
      "initial": "That guy right there looks awfully intimidating, doesn't he?",
      "options": ["Yes, he's veRy intimidating!", "I'm not that impressed."],
      "response": ["He's no match for me though!", '<img src="/w/Special:Filepath/File:Crob.gif" width="125px" />']
    },
    "Crab helmet": {
      "initial": "You didn't actually mean to search this, right?",
      "options": ["Of course I did, I need to protect my head, whatever the cost.", "No, of course not! Pure accident."],
      "response": ["The amount of my friends that have been killed for this! How could you! *cries in crab*", "Phew. I always knew you were a true friend."]
    },
    "Fresh crab shell": {
      "initial": "You didn't actually mean to search this, right?",
      "options": ["Of course I did, I need to protect my head, whatever the cost.", "No, of course not! Pure accident."],
      "response": ["The amount of my friends that have been killed for this! How could you! *cries in crab*", "Phew. I always knew you were a true friend."]
    },
    "Raw dark crab": {
      "initial": "You didn't actually mean to search this, right?",
      "options": ["Of course I did - I LOVE dark crabs.", "No, of course not! Pure accident."],
      "response": ["You sick ****!", "Phew. I always knew you were a true friend."]
    },
    "Dark crab": {
      "initial": "You didn't actually mean to search this, right?",
      "options": ["Of course I did - I LOVE dark crabs.", "No, of course not! Pure accident."],
      "response": ["You sick ****!", "Phew. I always knew you were a true friend."]
    },
    "Crab meat": {
      "initial": "You didn't actually mean to search this, right?",
      "options": ["Of course I did - crab is my favourite food.", "No, of course not! Pure accident."],
      "response": ["You heartless monster.", "Phew. I always knew you were a true friend."]
    },
    "Cooked crab meat": {
      "initial": "This is not what I envisioned crab heaven to be like.",
      "options": [],
      "response": []
    },
    "Ground crab meat": {
      "initial": "You didn't actually mean to search this, right?",
      "options": ["Of course I did - crab is my favourite food.", "No, of course not! Pure accident."],
      "response": ["You heartless monster.", "Phew. I always knew you were a true friend."]
    },
    "Fresh crab claw": {
      "initial": "You didn't actually mean to search this, right?",
      "options": ["Of course I did - crab is my favourite food.", "No, of course not! Pure accident."],
      "response": ["You heartless monster.", "Phew. I always knew you were a true friend."]
    },
    "Rock Crab": {
      "initial": "What's a crab's favourite genre of music?",
      "options": ["I don't know, what?"],
      "response": ["Rock! Duh."]
    },
    "CALCULATORS": {
      "initial": "It looks like you want to calculate things. Can't you do these formulas in your head? ",
      "options": ["Yes", "No"],
      "response": ["Really? I smell a liar.", "Try and work your brain a bit harder and you might be able to."]
    },
    "Player Moderator": {
      "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.",
      "options": ["Wow! Yes please!", "No thanks."],
      "response": ["Oops, sorry, you responded too late. This offer has now expired.", "Fine! I'll find someone else to sca- uh, HELP."]
    },
    "Weird gloop": {
      "initial": "You may think this is a useless item, but I can assure you that gloop is very important to a crab's wellbeing!",
      "options": [],
      "response": []
    },
    "TREASURE_TRAILS": {
      "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.",
      "options": [],
      "response": []
    },
    "MUSIC": {
      "initial": "Did you mean: Crab Rave [EXTREME BASS BOOST]?",
      "options": [],
      "response": []
    },
    "Ratcatchers": {
      "initial": "Is Ratcatchers your favorite quest?",
      "options": ["Yes, of course! ~Aside~ Hopefully Crabby can't tell I'm lying.", "No, this quest is terrible!"],
      "response": ["~Crabby dazzles you with another one of its trademark smiles.~", "Oh, that's okay! ~Crabby flashes you an unconvincing smile.~"]
    },
    "Money making guide/Catching dark crabs": {
      "initial": "Don't even think about it.",
      "options": ["What?"],
      "response": ["You heard me."]
    },
    "Rotten potato": {
      "initial": "You some sorta cop?",
      "options": [],
      "response": []
    },
    "Sea Shanty 2": {
      "initial": "🔥🔥🔥",
      "options": [],
      "response": []
    },
    "Gadget-crob.js": {
      "initial": "What do you think you're doing? Get out!",
      "options": [],
      "response": []
    }
  };
  var pagename = mw.config.get('wgTitle');
  var namespace = mw.config.get('wgCanonicalNamespace');
  var categories = mw.config.get('wgCategories');
  var conversation = null;
  if (data[pagename] !== undefined) {
    conversation = data[pagename];
  } else if (pagename.startsWith("Money making")) {
    conversation = data["MONEY_MAKING"];
  } else if (pagename.startsWith("Treasure Trails")) {
    conversation = data["TREASURE_TRAILS"];
  } else if (namespace.startsWith("Calculator")) {
    conversation = data["CALCULATORS"];
  } else if (categories.indexOf("Training guides") > -1) {
    conversation = data["SKILL_TRAINING"];
  } else if (categories.indexOf("Music") > -1) {
    conversation = data["MUSIC"];
  } else {
    var key = "RANDOM" + (Math.floor(Math.random() * 7) + 1);
    conversation = data[key];
  }
  var $div = $('<div id="crob"><div id="crob-speech"><div id="crob-speech-text"></div></div><div id="crob-speech-arrow"></div><div id="crob-img"></div></div>');
  var $buttons = $('<div id="crob-speech-buttons"></div>');
  var $button = $('<button class="crob-button">No</button>');
  console.log(conversation.initial);
  $('#firstHeading').after($div);
  $("#crob-speech-text").html(conversation.initial);
  if (conversation.options.length > 0) {
    $("#crob-speech-text").after($buttons);
  }
  var onClick = function onClick(event) {
    $("#crob-speech-text").html($(event.target).attr('data-response'));
    $("#crob-speech-buttons").remove();
  };
  for (var i = 0; i < conversation.options.length; i++) {
    var butt = $button.clone();
    butt.text(conversation.options[i]);
    butt.attr("data-response", conversation.response[i]);
    butt.click(onClick);
    $("#crob-speech-buttons").append(butt);
  }
});