whitehusky

Place2022a

Apr 1st, 2022 (edited)
393
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         PlacePaintBot
  3. // @namespace    http://tampermonkey.net/
  4. // @version      0.4
  5. // @description  Domination of Place!
  6. // @author       mbarkhau
  7. // @match        https://www.reddit.com/place?webview=true
  8. // @grant        none
  9. // ==/UserScript==
  10.  
  11. (function() {
  12.     'use strict';
  13.  
  14.     var images = [
  15.         // ordered by priority
  16.         // use the debug flag to test your images!
  17.         {
  18.             offsetX: 527,
  19.             offsetY: 718,
  20.             text: [
  21.                 // Bills logo
  22.                 "                          #######       ",
  23.                 "                       ###########      ",
  24.                 "                     ##############     ",
  25.                 "                   ###################  ",
  26.                 "                  ######################",
  27.                 "                 #######################",
  28.                 "                ########################",
  29.                 "              ######################oo##",
  30.                 "            ###################====oo###",
  31.                 "           #############===========oo###",
  32.                 "          #######==================oo###",
  33.                 "         =====================######o## ",
  34.                 "    ====================############### ",
  35.                 "===================###################  ",
  36.                 "===============#######################  ",
  37.                 "===========###########################  ",
  38.                 "=======#############################    ",
  39.                 "=     ############     #######   ##     ",
  40.                 "      #####          ####### #   #      ",
  41.                 "     ###  ###       ######  ##          ",
  42.                 "    ###  ###       ####    ###          ",
  43.                 "    ##  ###            ######           ",
  44.                 "  ###  ###             #                ",
  45.                 "  ##  ###                               ",
  46.                 " ##  ###                                ",
  47.                 "##   ##                                 ",
  48.             ],
  49.         },
  50.         {
  51.             offsetX: 366,
  52.             offsetY: 898,
  53.             text: [
  54.                 // note
  55.                 "...",
  56.             ],
  57.         },
  58.         {
  59.             offsetX: 358,
  60.             offsetY: 893,
  61.             text: [
  62.                 "...",
  63.             ],
  64.         },
  65.         {
  66.             offsetX: 357,
  67.             offsetY: 892,
  68.             text: [
  69.                 "...",
  70.             ],
  71.         },
  72.         {
  73.             offsetX: 357,
  74.             offsetY: 892,
  75.             text: [
  76.                 "...",
  77.             ],
  78.         },
  79.     ];
  80.  
  81.     var colors = {
  82.         "o": 15, // white
  83.         "#": 6, // blue
  84.         "=": 0, // red
  85.         " ": -1, // ignore
  86.     };
  87.  
  88.     for (var img_idx = 0; img_idx < images.length; img_idx++) {
  89.         var image = images[img_idx];
  90.         image.image_data = [];
  91.         for (var relY = 0; relY < image.text.length; relY++) {
  92.             var row = image.text[relY];
  93.             for (var relX = 0; relX < row.length; relX++) {
  94.                 var color = colors[row[relX]] || -1;
  95.                 if (color < 0) {
  96.                     continue;
  97.                 }
  98.                 var absX = image.offsetX + relX;
  99.                 var absY = image.offsetY + relY;
  100.                 image.image_data.push(absX);
  101.                 image.image_data.push(absY);
  102.                 image.image_data.push(color);
  103.             }
  104.         }
  105.     }
  106.     var default_panX = 120;
  107.     var default_panY = -380;
  108.  
  109.     var p = r.place;
  110.     p.panX = default_panX;
  111.     p.panY = default_panY;
  112.  
  113.     r.placeModule("placePaintBot", function(loader) {
  114.         var c = loader("canvasse");
  115.         var r = loader("client");
  116.  
  117.         setInterval(function() {
  118.             var tl = p.getCooldownTimeRemaining();
  119.  
  120.             if (2000 < tl && tl < 3000) {location.reload();}
  121.  
  122.             var debug = tl > 3000;
  123.             if (!debug && tl > 200) {return;}
  124.             for (var img_idx = 0; img_idx < images.length; img_idx++) {
  125.                 var image = images[img_idx];
  126.  
  127.                 for (var i = 0; i < image.image_data.length; i += 3) {
  128.                     var j = Math.floor((Math.random() * image.image_data.length) / 3) * 3;
  129.                     var x = image.image_data[j + 0];
  130.                     var y = image.image_data[j + 1];
  131.                     var color = image.image_data[j + 2];
  132.                     var currentColor = p.state[c.getIndexFromCoords(x, y)];
  133.  
  134.                     if (currentColor != color) {
  135.                         if (debug) {
  136.                             p.state[c.getIndexFromCoords(x, y)] = color;
  137.                             c.setBufferState(c.getIndexFromCoords(x, y), r.getPaletteColorABGR(color));
  138.                         } else {
  139.                             console.log("set color for", x, y, "old", currentColor, "new", color);
  140.                             p.setColor(color);
  141.                             p.drawTile(x, y);
  142.                         }
  143.                         return;
  144.                     }
  145.                 }
  146.                 console.log("noop");
  147.             }
  148.         }, 200);
  149.     });
  150. })();
Add Comment
Please, Sign In to add comment