Skip to content

Instantly share code, notes, and snippets.

@cgsdev0
Last active April 28, 2023 19:16
Show Gist options
  • Save cgsdev0/f248b47b335df8d85c0445f854f5ca67 to your computer and use it in GitHub Desktop.
Save cgsdev0/f248b47b335df8d85c0445f854f5ca67 to your computer and use it in GitHub Desktop.
Rolly Cubes Bot
// Paste in your rollycubes.com console to unleash the rolly bot
let speedMult = 1;
let unsubscribe;
if (unsubscribe) unsubscribe();
let lut={22:2,23:2,24:4,25:4,26:6,27:4,28:6,29:2,30:4,32:2,34:2,36:4,37:2,38:6,
39:4,40:6,41:4,42:4,43:2,44:2,48:2,49:2,50:2,51:2,52:2,53:4,54:4,55:4,56:4,57:6,
58:8,59:10,60:10,61:10,62:8,63:6,64:4,65:2,66:2,67:2,68:2,69:4,70:6,71:8,72:10,
73:10,74:10,75:8,76:6,77:4,78:2,82:2,83:2,84:2,85:4,86:4,87:4,88:4,89:8,90:10,
91:14,92:14,93:14,94:12,95:12,96:6,97:6,98:2,99:2,100:2,101:6,102:6,103:12,104:12,
105:14,106:14,107:14,108:10,109:8,110:4,111:2},winners=[33,66,67,98,99,100],
rank_score=($,e)=>!e&&winners.includes($)?1e6:lut.hasOwnProperty(`${$}`)?
lut[`${$}`]:0,listener=()=>{let $=window.REDUX_STORE,e=$.getState(),{turn_index:
_,self_index:n,rolled:t,players:s}=e.game,{socket:d}=e.connection;if(t||_!==n)
{if(_===n){let{rolls:a}=e.game;if(console.log({rolls:a}),a.some($=>$.used))
return;let l=a.reduce(($,e)=>$+e.value,0),r=s[n].score;if(7===l){let u=[r-l,
r-a[0].value+a[1].value,r+a[0].value-a[1].value,r+l].map($=>rank_score($,!1)),
p=Math.max(...u);0===p||p===u[3]?(setTimeout(()=>d.send('{"type":"add_nth","n":0}'),
3e3*speedMult),setTimeout(()=>d.send('{"type":"add_nth","n":1}'),3500*speedMult)):
p===u[2]?(setTimeout(()=>d.send('{"type":"add_nth","n":0}'),3e3*speedMult),
setTimeout(()=>d.send('{"type":"sub_nth","n":1}'),3500*speedMult)):p===u[1]?
(setTimeout(()=>d.send('{"type":"sub_nth","n":0}'),3e3*speedMult),setTimeout
(()=>d.send('{"type":"add_nth","n":1}'),3500*speedMult)):(setTimeout(()=>d.send(
'{"type":"sub_nth","n":0}'),3e3*speedMult),setTimeout(()=>d.send(
'{"type":"sub_nth","n":1}'),3500*speedMult))}else{let y=a.every($=>$.value===a[0].value),
o=[s[n].score-l,s[n].score+l].map($=>rank_score($,y));o.every($=>0===$)?setTimeout(
()=>d.send('{"type":"add"}'),3e3*speedMult):o[0]>o[1]?setTimeout(()=>d.send(
'{"type":"sub"}'),3e3*speedMult):setTimeout(()=>d.send('{"type":"add"}'),3e3
*speedMult)}}}else setTimeout(()=>d.send('{"type":"roll"}'),1e3*speedMult)};
unsubscribe = window.REDUX_STORE.subscribe(listener);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment