DigDig.IO All Kirk

Makes all skins in digdig.io a progeny of kirk.

  1. // ==UserScript==
  2. // @name DigDig.IO All Kirk
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.0.1
  5. // @description Makes all skins in digdig.io a progeny of kirk.
  6. // @author Zertalious (Zert)
  7. // @match *://digdig.io/*
  8. // @icon https://www.google.com/s2/favicons?domain=digdig.io
  9. // @run-at document-start
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. const scale = 0.5;
  14.  
  15. let stateId = 0;
  16. let faceStateId = - 1;
  17.  
  18. let x, y;
  19.  
  20. const array = [ CanvasRenderingContext2D.prototype ];
  21.  
  22. if ( typeof OffscreenCanvasRenderingContext2D !== 'undefined' ) {
  23.  
  24. array.push( OffscreenCanvasRenderingContext2D.prototype );
  25.  
  26. }
  27.  
  28. for ( let i = 0; i < array.length; i ++ ) {
  29.  
  30. const CTX = array[ i ];
  31.  
  32. CTX.arc = new Proxy( CTX.arc, {
  33. apply( target, thisArgs, args ) {
  34.  
  35. Reflect.apply( ...arguments );
  36.  
  37. if ( args[ 2 ] === 25 ) {
  38.  
  39. const { a, b, c, d, e, f } = thisArgs.getTransform();
  40.  
  41. x = e;
  42. y = f;
  43.  
  44. thisArgs.setTransform(
  45. a * scale,
  46. b * scale,
  47. c * scale,
  48. d * scale,
  49. e,
  50. f
  51. );
  52.  
  53. faceStateId = stateId;
  54.  
  55. }
  56.  
  57. }
  58. } );
  59.  
  60. CTX.save = new Proxy( CTX.save, {
  61. apply( target, thisArgs, args ) {
  62.  
  63. stateId ++;
  64.  
  65. return Reflect.apply( ...arguments );
  66.  
  67. }
  68. } );
  69.  
  70. CTX.restore = new Proxy( CTX.restore, {
  71. apply( target, thisArgs, args ) {
  72.  
  73. if ( stateId === faceStateId ) {
  74.  
  75. faceStateId = - 1;
  76.  
  77. }
  78.  
  79. stateId --;
  80.  
  81. return Reflect.apply( ...arguments );
  82.  
  83. }
  84. } );
  85.  
  86. CTX.setTransform = new Proxy( CTX.setTransform, {
  87. apply( target, thisArgs, args ) {
  88.  
  89. if ( faceStateId > - 1 ) {
  90.  
  91. args[ 0 ] *= scale;
  92. args[ 1 ] *= scale;
  93. args[ 2 ] *= scale;
  94. args[ 3 ] *= scale;
  95. args[ 4 ] = x + ( args[ 4 ] - x ) * scale;
  96. args[ 5 ] = y + ( args[ 5 ] - y ) * scale;
  97.  
  98. }
  99.  
  100. return Reflect.apply( ...arguments );
  101.  
  102. }
  103. } );
  104.  
  105. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址