Hammerfest Game Options

Adds a convenient way to change Hammerfest game options for the tutorial.

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
// ==UserScript==
// @name        Hammerfest Game Options
// @namespace   hammerfest
// @description Adds a convenient way to change Hammerfest game options for the tutorial.
// @include     http*://www.hammerfest.es/try.html*
// @include     http*://www.hammerfest.fr/try.html*
// @include     http*://www.hfest.net/try.html*
// @require     https://code.jquery.com/jquery-3.2.1.min.js
// @author      SoKeT
// @version     1
// ==/UserScript==

var locale = location.hostname.split(".").reverse()[0];
var modes = {
  "mirror": {
    "es": "Espejo",
    "fr": "Miroir",
    "net": "Mirror"
  },
  "nightmare": {
    "es": "Pesadilla",
    "fr": "Cauchemar",
    "net": "Nightmare"
  },
  "ninja": {
    "es": "Ninjutsu",
    "fr": "Ninjutsu",
    "net": "Ninjutsu"
  },
  "bombexpert": {
    "es": "Explosivos inestables",
    "fr": "Explosifs instables",
    "net": "Unstable explosives"
  },
  "boost": {
    "es": "Tornado",
    "fr": "Tornade",
    "net": "Tornado"
  }
}

var confirm = {
  "es": "Confirmar",
  "fr": "Confirmer",
  "net": "Confirm"
}

var margin = "";

if ($(".trymight").length) {
  margin = "<br><br><br><br>";
}

$(".game").after(margin + '<center><div class="game-options"><label><input value="mirror" type="checkbox"> ' + modes.mirror[locale] + ' </label><label><input value="nightmare" type="checkbox"> ' + modes.nightmare[locale] + ' </label><label><input value="ninja" type="checkbox"> ' + modes.ninja[locale] + ' </label><label><input value="bombexpert" type="checkbox"> ' + modes.bombexpert[locale] + ' </label><label><input value="boost" type="checkbox"> ' + modes.boost[locale] + ' </label><button class="submit-options">' + confirm[locale] + '</button></div></center>');

var $submit = $(".submit-options");
var $game = $("#game");
var src = $game.attr("src");
var flashvars = $game.attr("flashvars");
var options = "";

var css = {
  "display": "block",
  "margin-top": "10px",
  "width": "80px",
  "cursor": "pointer",
  "padding": "2px 3px",
  "font-weight": "bold",
  "color": "white",
  "background-color": "#b89bde",
  "border-top": "1px solid #a389c5",
  "border-left": "1px solid #a389c5",
  "border-bottom": "1px solid #8263a5",
  "border-right": "1px solid #8263a5"
}

var hover = {
  "background-color": "#ad8fcf",
  "border-top": "1px solid #8263a5",
  "border-left": "1px solid #8263a5",
  "border-bottom": "1px solid #a389c5",
  "border-right": "1px solid #a389c5"
}

$.each(css, function(property, value) {
    $submit.css(property, value);
  });

function hoverIn() {
  $.each(hover, function(property, value) {
    $submit.css(property, value);
  });
}

function hoverOut() {
  $.each(css, function(property, value) {
    $submit.css(property, value);
  });
}

$submit.hover(hoverIn, hoverOut);

$submit.on("click", function() {
  var $checked = $('.game-options input:checked');
  
  if ($checked.length) {
    $checked.each(function() {
      options += $(this).val() + ",";
    });
  
    options = options.substring(0, options.length - 1);
  
    $game.attr("flashvars", flashvars + "&$options=" + options);
    $game.attr("src", src);
  
    $(".game-options").find("input").each(function() {
      $(this).prop("disabled", true);
    }); 
    
    $submit.remove();
  }
});