v 0. Pasted by Anonymous as javascript at 2014-07-09 03:54:29 MSK and set expiration to never.
v 1. Edited by Anonymous as text at 2014-07-09 03:55:35 MSK and set expiration to never.
v 2. Edited by Anonymous as text at 2014-07-09 03:58:01 MSK and set expiration to never.
v 3. Edited by Anonymous as text at 2014-07-09 03:58:53 MSK and set expiration to never.

Paste will expire never.

  1. texts = {
  2.         en:{
  3.             tips: [
  4.                 "Click a gem with no matching adjacent gems to absorb.",
  5.                 "Absorbing gem gets half the absorbed weight.",
  6.                 "Absorbing stops when two tiles in a row have same colour.",
  7.                 "Absorbing with same gem for a few times gives more score.",
  8.                 "Completing objectives gives you extra mana.",
  9.                 "Absorbing gems weighing over 100 gives you mana too.",
  10.                 "You can use mana to cast spells.",
  11.                 "Failing objectives curses your field with black gems.",
  12.                 "Black gems block all adjacent gems.",
  13.                 "When you have no turns and no mana the game ends."
  14.             ],
  15.             menu: ["5 colours (easy)","4 colours (normal)","3 colours (hard)","2 colours (impossible)"],
  16.             hints : ["Score","Mana","Chain"],
  17.             gem: ["gem","gems","gems","gems"], //1, *1, 2-4, 5+
  18.             turn: ["turn","turns","turns","turns"],
  19.             time: ["time","times","times","times"],
  20.             unlim: "any number of",
  21.             cols : [""," blue"," red"," green"," yellow"," cyan"," magic"," empty"],
  22.             mdesc : [
  23.                 "Destroy whole row and column around one gem. Black gems block this.",
  24.                 "Add fair share of new color. Recolored gems return color upon absorbing.",
  25.                 "Shuffle gems. Quantity of every color remain the same.",
  26.                 "Stop time for current objectives."],
  27.             objdescs : [
  28.                 "Absorb %N%C %s in one turn %T %t in %L %d",
  29.                 "Absorb %N%C %s in %L %d",
  30.                 "Make x%N chain %T %t in %L %d",
  31.                 "Absorb gem weighing at least %N %T %t in %L %d"
  32.             ]
  33.         },
  34.         ru:{
  35.             tips: [
  36.                 "Щелчком по камню, отличному от соседей, ты поглощаешь камни во все стороны.",
  37.                 "Половина поглощенного веса прибавляется к использованному камню.",
  38.                 "Камень поглощает по прямой до первой одноцветной пары.",
  39.                 "Многократное поглощение одним и тем же камнем дает больше очков.",
  40.                 "Выполняй задания, чтобы получить больше маны.",
  41.                 "Мана дается и за поглощение камней весом больше 100.",
  42.                 "Заклинания, использующие ману, могут спасти, если кончились ходы.",
  43.                 "За проваленные задания тебя наказывают проклятьем.",
  44.                 "Черные камни блокируют поглощение для соседей.",
  45.                 "Игра заканчивается, когда у тебя нет ни ходов, ни маны."
  46.             ],
  47.             menu: ["5 цветов (легко)","4 цвета (нормально)","3 цвета (сложно)","2 цвета (невозможно)"],
  48.             hints: ["Очки","Мана","Цепочка"],
  49.             gem: ["камень","камень","камня","камней"], //1, *1, 2-4, 5+
  50.             turn: ["ход","ход","хода","ходов"],
  51.             unlim: "любое количество",
  52.             time: ["раз","раз","раза","раз"],         
  53.             cols : [" любого"," синего"," красного"," зеленого"," желтого"," голубого"," бонусного"," без"],
  54.             mdesc : [
  55.                 "Уничтожить целый ряд и столбец вокруг одного камня. Не пробивает черные камни.",
  56.                 "Перекрасить часть камней в новый цвет. При поглощении камень возвращает свой цвет.",
  57.                 "Перемешать камни. Количество камней каждого цвета сохраняется.",
  58.                 "Остановить время для всех текущих заданий."],
  59.             objdescs : [
  60.                 "Поглоти одним ходом %N %s%C цвета %T %t за %L %d",
  61.                 "Поглоти %N %s%C цвета за %L %d",
  62.                 "Сделай цепочку длиной %N %T %t за %L %d",
  63.                 "Поглоти камень весом от %N %T %t за %L %d"
  64.             ]
  65.         }
  66.     }
  67.  
  68. ...
  69.  
  70.     lang = "ru";
  71.     txts = texts[lang];
  72.  
  73. ...
  74.  
  75. //plural(txts.time,obj.tm) - строка из obj.tm и согласующегося с ним варианта txts.time
  76. function plural(word,n) {
  77.     if (n == 1) return word[0];
  78.     if (((n%100)/10|0) == 1) return word[3];
  79.     return word[[3,1,2,2,2,3,3,3,3,3][n%10]];
  80. }
  81.  
  82. ...
  83.  
  84. //txts.objdescs[n] - строка, соответствующая n-ному типу задания
  85. //Сборка сложной строки с шаблоном (описание задания по номеру)
  86.     obj.text = txts.objdescs[obj.tp].replace("%N",obj.n).replace("%C",txts.cols[obj.col]).replace("%T",obj.tm).replace("%L",obj.left==-1?txts.unlim:obj.left).replace("%s",plural(txts.gem,obj.n)).replace("%t",plural(txts.time,obj.tm)).replace("%d",plural(txts.turn,obj.left==-1?5:obj.left));