AlferZep

BDFD Chess Command by tacitusacheron

Jun 7th, 2024
676
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 62.47 KB | None | 0 0
  1. $nomention
  2.  
  3. $c[made by tacitusach, please do not repost, ask me if you want to!]
  4. $c[please inspect the code from here to bottom, you’ll see notes and how some parts function or affect the code or just simply what it does.]
  5.  
  6.  
  7. $c[first database comes here, not all datas are being parsed because it’s unnecessary (I don’t know why I thought of that before)]
  8.  
  9. $jsonParse[$getVar[chessuser;$authorID]]
  10. $if[$json[uid]!=]
  11. $var[user;$json[uid]]
  12. $else
  13. $var[user;$authorID]
  14. $endif
  15. $if[$json[host]!=]
  16. $var[host;$json[host]]
  17. $else
  18. $var[host;$authorID]
  19. $endif
  20.  
  21. $jsonParse[{
  22. "chess":$getVar[chess;$var[host]],
  23. "assets":$getVar[chessAssets],
  24. "profile":$getVar[profile;$authorID],
  25. "check":$getVar[chesscheck;$authorID],
  26. "user":$getVar[chessuser;$authorID],
  27. "uprofile":$getVar[profile;$var[user]],
  28. "ucheck":$getVar[chesscheck;$var[user]],
  29. "uuser":$getVar[chessuser;$var[user]],
  30. "board":$getVar[chessboard]
  31. }]
  32.  
  33. $if[$json[profile;chess;t]==]
  34. $jsonSet[profile;chess;t;w]
  35. $setVar[profile;$json[profile];$authorID]
  36. $endif
  37.  
  38. $if[$message!=] $c[1]
  39.  
  40. $c[pvp initiator]
  41.  
  42. $if[$message[1]==fight] $c[2]
  43.  
  44. $var[user;$findUser[$message;no]]
  45.  
  46. $jsonParse[{
  47. "chess":$getVar[chess;$var[host]],
  48. "assets":$getVar[chessAssets],
  49. "profile":$getVar[profile;$authorID],
  50. "check":$getVar[chesscheck;$authorID],
  51. "user":$getVar[chessuser;$authorID],
  52. "uprofile":$getVar[profile;$var[user]],
  53. "ucheck":$getVar[chesscheck;$var[user]],
  54. "uuser":$getVar[chessuser;$var[user]]
  55. }]
  56.  
  57. $if[$var[user]!=] $c[3]
  58. $if[$var[user]!=$authorID] $c[4]
  59. $if[$json[uuser;host]==]$c[5]
  60.  
  61. $var[type;$randomText[w;b]]
  62.  
  63. $if[$var[type]!=w]
  64. $var[type2;w]
  65. $else
  66. $var[type2;b]
  67. $endif
  68.  
  69. $var[checkw;{"a":["e","!r","!p","e","e","e","e","e"\],"b":["!r","!b","!p","e","e","e","e","e"\],"c":["!q","!q","!p","e","e","e","e","e"\],"d":["!k","!q","!p","e","e","e","e","e"\],"e":["!q","!q","!p","e","e","e","e","e"\],"f":["!k","!k","!p","e","e","e","e","e"\],"g":["!r","!b","!p","e","e","e","e","e"\],"h":["e","!r","!p","e","e","e","e","e"\]}]
  70. $var[checkb;{"a":["e","e","e","e","e","!p","!r","e"\],"b":["e","e","e","e","e","!p","!b","!r"\],"c":["e","e","e","e","e","!p","!q","!q"\],"d":["e","e","e","e","e","!p","!q","!k"\],"e":["e","e","e","e","e","!p","!q","!q"\],"f":["e","e","e","e","e","!p","!k","!k"\],"g":["e","e","e","e","e","!p","!b","!r"\],"h":["e","e","e","e","e","!p","!r","e"\]}]
  71.  
  72. $setVar[chess;$getVar[chess];$authorID]
  73. $setVar[chesscheck;$getVar[chesscheck];$authorID]
  74. $setVar[chessuser;$getVar[chessuser];$authorID]
  75. $setVar[chesscheck;$getVar[chesscheck];$var[user]]
  76. $setVar[chessuser;$getVar[chessuser];$var[user]]
  77. $setVar[chesscheck;$var[check$var[type]];$authorID]
  78. $setVar[chesscheck;$var[check$var[type2]];$var[user]]
  79.  
  80. $jsonParse[{
  81. "chess":$getVar[chess;$authorID],
  82. "assets":$getVar[chessAssets],
  83. "profile":$getVar[profile;$authorID],
  84. "check":$getVar[chesscheck;$authorID],
  85. "user":$getVar[chessuser;$authorID],
  86. "uuser":$getVar[chessuser;$var[user]],
  87. "uprofile":$getVar[profile;$var[user]],
  88. "ucheck":$getVar[chesscheck;$var[user]]
  89. }]
  90.  
  91. $jsonSetString[user;host;$authorID]
  92. $jsonSetString[user;uid;$var[user]]
  93. $jsonSetString[uuser;host;$authorID]
  94. $jsonSetString[uuser;uid;$authorID]
  95. $jsonSet[profile;chess;t;$var[type]]
  96. $jsonSet[uprofile;chess;t;$var[type2]]
  97. $jsonSet[chess;t;w]
  98.  
  99. $if[$var[type]==w]
  100. $jsonSet[user;k;e0]
  101. $jsonSet[uuser;k;e7]
  102. $else
  103. $jsonSet[uuser;k;e0]
  104. $jsonSet[user;k;e7]
  105. $endif
  106.  
  107. $setVar[profile;$json[profile];$authorID]
  108. $setVar[profile;$json[uprofile];$var[user]]
  109.  
  110. $else
  111. $reply
  112. This user is in a match with someone else.
  113. $endif $c[5]
  114. $endif $c[4]
  115. $else
  116. $reply
  117. You are in a match. `vchess resign`
  118. $endif $c[3]
  119.  
  120. $elseif[$message==resign] $c[2]
  121.  
  122. $setVar[chess;$getVar[chess];$authorID]
  123. $setVar[chesscheck;$getVar[chesscheck];$authorID]
  124. $setVar[chessuser;$getVar[chessuser];$authorID]
  125. $setVar[chess;$getVar[chess];$var[user]]
  126. $setVar[chesscheck;$getVar[chesscheck];$var[user]]
  127. $setVar[chessuser;$getVar[chessuser];$var[user]]
  128.  
  129. $jsonParse[{
  130. "chess":$getVar[chess;$var[host]],
  131. "assets":$getVar[chessAssets],
  132. "profile":$getVar[profile;$authorID],
  133. "check":$getVar[chesscheck;$authorID],
  134. "ucheck":$getVar[chesscheck;$var[user]],
  135. "user":$getVar[chessuser;$authorID],
  136. "uuser":$getVar[chessuser;$var[user]]
  137. }]
  138.  
  139. $username resigned.
  140.  
  141. $else $c[2]
  142.  
  143. $if[$var[user]!=$authorID] $c[3]
  144.  
  145. $try
  146.  
  147. $textSplit[$message;]
  148. $var[x;$splitText[1]]
  149. $var[y;$sub[$splitText[2];1]]
  150. $var[x2;$splitText[3]]
  151. $var[y2;$sub[$splitText[4];1]]
  152.  
  153. $textSplit[$json[chess;$var[x];$var[y]];]
  154. $var[type;$splitText[1]]
  155. $var[piece;$splitText[2]]
  156. $textSplit[$json[chess;$var[x2];$var[y2]];]
  157. $var[type2;$splitText[1]]
  158. $var[piece2;$splitText[2]]
  159.  
  160. $if[$and[$json[chess;$var[x];$var[y]]!=;$json[chess;$var[x2];$var[y2]]!=]==true] $c[4]
  161. $if[$replaceText[$replaceText[$json[chess;$var[x];$var[y]];{b};{bg}];{b1};{bg}]!={bg}] $c[5]
  162. $if[$json[profile;chess;t]==$json[chess;t]] $c[6]
  163. $if[$or[$var[type]==$json[profile;chess;t];1==2]==true] $c[7]
  164.  
  165. $c[converts horizontal positions to numbers sicne they’re letters]
  166. $textSplit[-h -g -f -e -d -c -b a b c d e f g h -g -f -e -d -c -b -a; ]
  167. $var[mx2;$getTextSplitIndex[$var[x2]]]
  168. $var[mx;$getTextSplitIndex[$var[x]]]
  169.  
  170. $c[if checks the piece you’re trying to move and calculates it’s possible moves from it’s starting position which is used to validate your move]
  171. $if[$var[piece]==n] $c[8]
  172.  
  173. $var[legal;$checkContains[$var[x2] $var[y2];$splitText[$sum[$var[mx];1]] $sum[$var[y];2];$splitText[$sub[$var[mx];1]] $sum[$var[y];2];$splitText[$sum[$var[mx];1]] $sub[$var[y];2];$splitText[$sub[$var[mx];1]] $sub[$var[y];2];$splitText[$sum[$var[mx];2]] $sum[$var[y];1];$splitText[$sub[$var[mx];2]] $sum[$var[y];1];$splitText[$sum[$var[mx];2]] $sub[$var[y];1];$splitText[$sub[$var[mx];2]] $sub[$var[y];1]]]
  174.  
  175. $var[possible.moves;$splitText[$sum[$var[mx];1]] $sum[$var[y];2],$splitText[$sub[$var[mx];1]] $sum[$var[y];2],$splitText[$sum[$var[mx];1]] $sub[$var[y];2],$splitText[$sub[$var[mx];1]] $sub[$var[y];2],$splitText[$sum[$var[mx];2]] $sum[$var[y];1],$splitText[$sub[$var[mx];2]] $sum[$var[y];1],$splitText[$sum[$var[mx];2]] $sub[$var[y];1],$splitText[$sub[$var[mx];2]] $sub[$var[y];1]]
  176.  
  177. $elseif[$var[piece]==b] $c[8]
  178.  
  179. $var[n;1]
  180. $eval[
  181. $repeatMessage[3;$repeatMessage[10;
  182. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  183. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  184. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  185. %{DOL}%else
  186. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  187. %{DOL}%stop
  188. %{DOL}%endif
  189. ]]
  190. ]
  191. $var[n;1]
  192. $eval[
  193. $repeatMessage[3;$repeatMessage[10;
  194. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  195. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  196. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  197. %{DOL}%else
  198. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  199. %{DOL}%stop
  200. %{DOL}%endif
  201. ]]
  202. ]
  203. $var[n;1]
  204. $eval[
  205. $repeatMessage[3;$repeatMessage[10;
  206. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  207. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  208. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  209. %{DOL}%else
  210. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  211. %{DOL}%stop
  212. %{DOL}%endif
  213. ]]
  214. ]
  215. $var[n;1]
  216. $eval[
  217. $repeatMessage[3;$repeatMessage[10;
  218. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  219. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  220. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  221. %{DOL}%else
  222. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  223. %{DOL}%stop
  224. %{DOL}%endif
  225. ]]
  226. ]
  227.  
  228. $textSplit[$var[possible.moves];,]
  229. $removeSplitTextElement[1]
  230. $var[possible.moves;$joinSplitText[,]]
  231. $textSplit[$var[possible.moves];,]
  232.  
  233. $if[$getTextSplitIndex[$var[x2] $var[y2]]!=-1]
  234. $var[legal;true]
  235. $endif
  236.  
  237. $elseif[$var[piece]==r] $c[8]
  238.  
  239. $var[n;1]
  240. $eval[
  241. $repeatMessage[3;$repeatMessage[10;
  242. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%var[mx\]\]\;%{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  243. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  244. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  245. %{DOL}%else
  246. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  247. %{DOL}%stop
  248. %{DOL}%endif
  249. ]]
  250. ]
  251. $var[n;1]
  252. $eval[
  253. $repeatMessage[3;$repeatMessage[10;
  254. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%var[mx\]\]\;%{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  255. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  256. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  257. %{DOL}%else
  258. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  259. %{DOL}%stop
  260. %{DOL}%endif
  261. ]]
  262. ]
  263. $var[n;1]
  264. $eval[
  265. $repeatMessage[3;$repeatMessage[10;
  266. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%var[y\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  267. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  268. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  269. %{DOL}%else
  270. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  271. %{DOL}%stop
  272. %{DOL}%endif
  273. ]]
  274. ]
  275. $var[n;1]
  276. $eval[
  277. $repeatMessage[3;$repeatMessage[10;
  278. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%var[y\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  279. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  280. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  281. %{DOL}%else
  282. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  283. %{DOL}%stop
  284. %{DOL}%endif
  285. ]]
  286. ]
  287.  
  288. $textSplit[$var[possible.moves];,]
  289. $removeSplitTextElement[1]
  290. $var[possible.moves;$joinSplitText[,]]
  291. $textSplit[$var[possible.moves];,]
  292.  
  293. $if[$getTextSplitIndex[$var[x2] $var[y2]]!=-1]
  294. $var[legal;true]
  295. $endif
  296.  
  297. $if[$var[legal]==true]
  298. $jsonSet[user;r$var[x];false]
  299. $endif
  300.  
  301. $elseif[$var[piece]==q] $c[8]
  302.  
  303. $var[n;1]
  304. $eval[
  305. $repeatMessage[3;$repeatMessage[10;
  306. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  307. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  308. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  309. %{DOL}%else
  310. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  311. %{DOL}%stop
  312. %{DOL}%endif
  313. ]]
  314. ]
  315. $var[n;1]
  316. $eval[
  317. $repeatMessage[3;$repeatMessage[10;
  318. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  319. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  320. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  321. %{DOL}%else
  322. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  323. %{DOL}%stop
  324. %{DOL}%endif
  325. ]]
  326. ]
  327. $var[n;1]
  328. $eval[
  329. $repeatMessage[3;$repeatMessage[10;
  330. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  331. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  332. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  333. %{DOL}%else
  334. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  335. %{DOL}%stop
  336. %{DOL}%endif
  337. ]]
  338. ]
  339. $var[n;1]
  340. $eval[
  341. $repeatMessage[3;$repeatMessage[10;
  342. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  343. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  344. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  345. %{DOL}%else
  346. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  347. %{DOL}%stop
  348. %{DOL}%endif
  349. ]]
  350. ]
  351. $var[n;1]
  352. $eval[
  353. $repeatMessage[3;$repeatMessage[10;
  354. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%var[mx\]\]\;%{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  355. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  356. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  357. %{DOL}%else
  358. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  359. %{DOL}%stop
  360. %{DOL}%endif
  361. ]]
  362. ]
  363. $var[n;1]
  364. $eval[
  365. $repeatMessage[3;$repeatMessage[10;
  366. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%var[mx\]\]\;%{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  367. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  368. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  369. %{DOL}%else
  370. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  371. %{DOL}%stop
  372. %{DOL}%endif
  373. ]]
  374. ]
  375. $var[n;1]
  376. $eval[
  377. $repeatMessage[3;$repeatMessage[10;
  378. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%var[y\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  379. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  380. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  381. %{DOL}%else
  382. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  383. %{DOL}%stop
  384. %{DOL}%endif
  385. ]]
  386. ]
  387. $var[n;1]
  388. $eval[
  389. $repeatMessage[3;$repeatMessage[10;
  390. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%var[y\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  391. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  392. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  393. %{DOL}%else
  394. %{DOL}%var[possible.moves\;%{DOL}%var[possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  395. %{DOL}%stop
  396. %{DOL}%endif
  397. ]]
  398. ]
  399.  
  400. $textSplit[$var[possible.moves];,]
  401. $removeSplitTextElement[1]
  402. $var[possible.moves;$joinSplitText[,]]
  403. $textSplit[$var[possible.moves];,]
  404.  
  405. $if[$getTextSplitIndex[$var[x2] $var[y2]]!=-1]
  406. $var[legal;true]
  407. $endif
  408.  
  409. $elseif[$var[piece]==p] $c[8]
  410.  
  411. $c[check’s your piece’s color to calculate it’s moves]
  412. $if[$var[type]==w] $c[9]
  413.  
  414. $if[$or[$replaceText[$replaceText[$json[chess;$splitText[$sum[$var[mx];1]];$sum[$var[y];1]];{b};{bg}];{b1};{bg}]!={bg};$replaceText[$replaceText[$json[chess;$splitText[$sub[$var[mx];1]];$sum[$var[y];1]];{b};{bg}];{b1};{bg}]!={bg}]==true]
  415. $var[legal;$checkContains[$var[x2] $var[y2];$splitText[$sum[$var[mx];1]] $sum[$var[y];1];$splitText[$sub[$var[mx];1]] $sum[$var[y];1]]]
  416. $endif
  417.  
  418. $if[$var[legal]!=true]
  419. $if[$var[y]==1]
  420. $var[legal;$checkContains[$var[x2] $var[y2];$splitText[$var[mx]] $sum[$var[y];2];$splitText[$var[mx]] $sum[$var[y];1]]]
  421. $else
  422. $var[legal;$checkContains[$var[x2] $var[y2];$splitText[$var[mx]] $sum[$var[y];1]]]
  423. $endif
  424.  
  425. $if[$replaceText[$replaceText[chess;$var[x2];$var[y2]];{b};{bg}];{b1};{bg}]!={bg}]
  426. $var[legal;false]
  427. $endif
  428. $if[$replaceText[$replaceText[chess;$var[x];$sum[$var[y];1]];{b};{bg}];{b1};{bg}]!={bg}]
  429. $var[legal;false]
  430. $endif
  431. $endif
  432.  
  433. $var[possible.moves;$splitText[$sum[$var[mx];1]] $sum[$var[y];1],$splitText[$sub[$var[mx];1]] $sum[$var[y];1]]
  434.  
  435. $else $c[9]
  436.  
  437. $if[$or[$replaceText[$replaceText[$json[chess;$splitText[$sub[$var[mx];1]];$sub[$var[y];1]];{b};{bg}];{b1};{bg}]!={bg};$replaceText[$replaceText[$json[chess;$splitText[$sum[$var[mx];1]];$sub[$var[y];1]];{b};{bg}];{b1};{bg}]!={bg}]==true]
  438. $var[legal;$checkContains[$var[x2] $var[y2];$splitText[$sub[$var[mx];1]] $sub[$var[y];1];$splitText[$sum[$var[mx];1]] $sub[$var[y];1]]]
  439. $endif
  440.  
  441. $if[$var[legal]!=true]
  442. $if[$var[y]==6]
  443. $var[legal;$checkContains[$var[x2] $var[y2];$splitText[$var[mx]] $sub[$var[y];2];$splitText[$var[mx]] $sub[$var[y];1]]]
  444. $else
  445. $var[legal;$checkContains[$var[x2] $var[y2];$splitText[$var[mx]] $sub[$var[y];1]]]
  446. $endif
  447.  
  448. $if[$replaceText[$replaceText[chess;$var[x2];$var[y2]];{b};{bg}];{b1};{bg}]!={bg}]
  449. $var[legal;false]
  450. $endif
  451. $if[$replaceText[$replaceText[chess;$var[x];$sub[$var[y];1]];{b};{bg}];{b1};{bg}]!={bg}]
  452. $var[legal;false]
  453. $endif
  454. $endif
  455.  
  456. $var[possible.moves;$splitText[$sum[$var[mx];1]] $sub[$var[y];1],$splitText[$sub[$var[mx];1]] $sub[$var[y];1]]
  457.  
  458. $endif $c[9]
  459.  
  460. $else $c[8]
  461.  
  462. $c[checking if the target position is not being attacked by a piece]
  463. $if[l==l]
  464. $if[$json[ucheck;$var[x2];$var[y2]]!=e]
  465. $textSplit[$json[ucheck;$var[x2];$var[y2]];]
  466. $var[check;true]
  467. $endif
  468. $endif
  469.  
  470. $textSplit[-h -g -f -e -d -c -b a b c d e f g h -g -f -e -d -c -b -a; ]
  471.  
  472. $if[$var[check]!=true] $c[9]
  473.  
  474. $if[$and[$or[$json[chess;$splitText[$sub[$var[mx];4]];$var[y]]==$var[type]r;$json[chess;$splitText[$sum[$var[mx];3]];$var[y]]==$var[type]r]==true;$json[user;castle]!=false]==true]
  475.  
  476. $if[$json[user;ra]!=false]
  477. $var[legal;$checkContains[$var[x2] $var[y2];$splitText[$sum[$var[mx];1]] $sum[$var[y];1];$splitText[$sub[$var[mx];1]] $sum[$var[y];1];$splitText[$sum[$var[mx];1]] $sub[$var[y];1];$splitText[$sub[$var[mx];1]] $sub[$var[y];1];$splitText[$var[mx]] $sum[$var[y];1];$splitText[$var[mx]] $sub[$var[y];1];$splitText[$sum[$var[mx];1]] $var[y];$splitText[$sub[$var[mx];1]] $var[y];$splitText[$sub[$var[mx];2]] $var[y]]]
  478. $endif
  479. $if[$var[legal]!=true]
  480. $if[$json[user;rh]!=false]
  481. $var[legal;$checkContains[$var[x2] $var[y2];$splitText[$sum[$var[mx];1]] $sum[$var[y];1];$splitText[$sub[$var[mx];1]] $sum[$var[y];1];$splitText[$sum[$var[mx];1]] $sub[$var[y];1];$splitText[$sub[$var[mx];1]] $sub[$var[y];1];$splitText[$var[mx]] $sum[$var[y];1];$splitText[$var[mx]] $sub[$var[y];1];$splitText[$sum[$var[mx];1]] $var[y];$splitText[$sub[$var[mx];1]] $var[y];$splitText[$sum[$var[mx];2]] $var[y]]]
  482. $endif
  483. $endif
  484.  
  485. $var[castle;$checkCondition[$replaceText[$sub[$var[mx2];$var[mx]];-;]==2]]
  486. $var[castle.left;$checkContains[$sub[$var[mx2];$var[mx]];-]]
  487.  
  488. $if[$var[castle]==true]
  489. $if[$json[ucheck;$var[x];$var[y]]!=e]
  490. $var[legal;false]
  491. $endif
  492. $endif
  493.  
  494. $else
  495. $var[legal;$checkContains[$var[x2] $var[y2];$splitText[$sum[$var[mx];1]] $sum[$var[y];1];$splitText[$sub[$var[mx];1]] $sum[$var[y];1];$splitText[$sum[$var[mx];1]] $sub[$var[y];1];$splitText[$sub[$var[mx];1]] $sub[$var[y];1];$splitText[$var[mx]] $sum[$var[y];1];$splitText[$var[mx]] $sub[$var[y];1];$splitText[$sum[$var[mx];1]] $var[y];$splitText[$sub[$var[mx];1]] $var[y]]]
  496. $endif
  497.  
  498. $var[possible.moves;$splitText[$sum[$var[mx];1]] $sum[$var[y];1],$splitText[$sub[$var[mx];1]] $sum[$var[y];1],$splitText[$sum[$var[mx];1]] $sub[$var[y];1],$splitText[$sub[$var[mx];1]] $sub[$var[y];1],$splitText[$var[mx]] $sum[$var[y];1],$splitText[$var[mx]] $sub[$var[y];1],$splitText[$sum[$var[mx];1]] $var[y],$splitText[$sub[$var[mx];1]] $var[y]]
  499.  
  500. $endif $c[9]
  501.  
  502. $textSplit[-h -g -f -e -d -c -b a b c d e f g h -g -f -e -d -c -b -a; ]
  503.  
  504. $var[possible.moves;$splitText[$sum[$var[mx];1]] $sum[$var[y];1],$splitText[$sub[$var[mx];1]] $sum[$var[y];1],$splitText[$sum[$var[mx];1]] $sub[$var[y];1],$splitText[$sub[$var[mx];1]] $sub[$var[y];1],$splitText[$var[mx]] $sum[$var[y];1],$splitText[$var[mx]] $sub[$var[y];1],$splitText[$sum[$var[mx];1]] $var[y],$splitText[$sub[$var[mx];1]] $var[y]]
  505.  
  506. $if[$var[legal]==true]
  507. $jsonSet[user;castle;false]
  508. $jsonSet[user;k;$var[x2]$var[y2]]
  509. $endif
  510.  
  511. $endif $c[8]
  512.  
  513.  
  514.  
  515. $c[old "next possible moves" code used to be here]
  516.  
  517.  
  518.  
  519. $c[checking the distance of the king from the moved piece]
  520. $textSplit[$json[user;k];]
  521. $var[king.x;$splitText[1]]
  522. $var[king.y;$splitText[2]]
  523. $textSplit[-h -g -f -e -d -c -b a b c d e f g h -g -f -e -d -c -b -a; ]
  524. $var[king.mx;$getTextSplitIndex[$var[king.x]]]
  525. $var[count.mx;$sub[$var[king.mx];$var[mx2]]]
  526. $var[count.y;$sub[$var[king.y];$var[y2]]]
  527.  
  528. distance from king: x: $var[count.mx] y: $var[count.y]
  529.  
  530. $c[calculation if a piece blocks a check (might be unfinished)]
  531. $if[$var[piece]!=k] $c[8]
  532. $if[$json[ucheck;$var[king.x];$var[king.y]]!=e] $c[9]
  533.  
  534. $var[n.y;0]
  535. $var[n.x;0]
  536. $eval[$repeatMessage[1;$repeatMessage[8;
  537. %{DOL}%try
  538. %{DOL}%var[calc.king.mx\;%{DOL}%sub[%{DOL}%var[king.mx\]\;%{DOL}%var[n.x\]\]\]
  539. %{DOL}%var[calc.king.y\;%{DOL}%sub[%{DOL}%var[king.y\]\;%{DOL}%var[n.y\]\]\]
  540. %{DOL}%if[%{DOL}%json[ucheck\;%{DOL}%splitText[%{DOL}%var[calc.king.mx\]\]\;%{DOL}%var[calc.king.y\]\]!=\]
  541. %{DOL}%jsonSet[ucheck\;%{DOL}%splitText[%{DOL}%var[calc.king.mx\]\]\;%{DOL}%var[calc.king.y\]\;e\]
  542. %{DOL}%endif
  543.  
  544. %{DOL}%if[%{DOL}%var[pin.coords\]==\]
  545. %{DOL}%var[pin.coords\;%{DOL}%splitText[%{DOL}%var[calc.king.mx\]\]%{DOL}%var[calc.king.y\]\]
  546. %{DOL}%endif
  547.  
  548. %{DOL}%if[%{DOL}%and[%{DOL}%checkContains[%{DOL}%var[pin.coords\]\;%{DOL}%splitText[%{DOL}%var[calc.king.mx\]\]%{DOL}%var[calc.king.y\]\]!=true\;e!=a\]==true\]
  549. %{DOL}%var[pin.coords\;%{DOL}%var[pin.coords\],%{DOL}%splitText[%{DOL}%var[calc.king.mx\]\]%{DOL}%var[calc.king.y\]\]
  550. %{DOL}%endif
  551. %{DOL}%if[%{DOL}%checkContains[%{DOL}%var[count.y\]\;-\]!=true\]
  552. %{DOL}%var[n.y\;%{DOL}%min[%{DOL}%sum[%{DOL}%var[n.y\]\;1\]\;%{DOL}%var[count.y\]\]\]
  553. %{DOL}%else
  554. %{DOL}%var[n.y\;%{DOL}%max[%{DOL}%sum[%{DOL}%var[n.y\]\;1\]\;%{DOL}%var[count.y\]\]\]
  555. %{DOL}%endif
  556. %{DOL}%if[%{DOL}%checkContains[%{DOL}%var[count.mx\]\;-\]!=true\]
  557. %{DOL}%var[n.x\;%{DOL}%min[%{DOL}%sum[%{DOL}%var[n.x\]\;1\]\;%{DOL}%var[count.mx\]\]\]
  558. %{DOL}%else
  559. %{DOL}%var[n.x\;%{DOL}%max[%{DOL}%sum[%{DOL}%var[n.x\]\;1\]\;%{DOL}%var[count.mx\]\]\]
  560. %{DOL}%endif
  561. %{DOL}%catch
  562. %{DOL}%error[message\]
  563. %{DOL}%endtry
  564. ]]]
  565.  
  566. $var[pin;true]
  567.  
  568. king’s moveable coords: $var[pin.coords]
  569.  
  570. $textSplit[$json[user;check];-]
  571. $var[checker.piece;$splitText[1]]
  572. $textSplit[$splitText[2];]
  573. $var[checker.x;$splitText[1]]
  574. $var[checker.y;$splitText[2]]
  575. $textSplit[-h -g -f -e -d -c -b a b c d e f g h -g -f -e -d -c -b -a; ]
  576. $var[checker.mx;$getTextSplitIndex[$var[checker.x]]]
  577. $var[count.mx;$sub[$var[checker.mx];$var[mx2]]]
  578. $var[count.y;$sub[$var[checker.y];$var[y2]]]
  579.  
  580. distance from attacker: x: $var[count.mx] y: $var[count.y]
  581.  
  582. $endif $c[9]
  583. $endif $c[8]
  584.  
  585. $textSplit[-h -g -f -e -d -c -b a b c d e f g h -g -f -e -d -c -b -a; ]
  586.  
  587. $if[$json[ucheck;$var[king.x];$var[king.y]]!=e]
  588. $var[legal;false]
  589. $var[desc;Your king is being attacked.]
  590. $elseif[$var[pin]==true]
  591. $jsonSet[user;pin;$var[piece]-$var[x2]$var[y2] k-$var[pin.coords]]
  592. $endif
  593.  
  594. $c[I forgot what this does, but I guess it takes the position of the piece that tried to block a check]
  595. $textSplit[$json[user;pin]; ]
  596. $var[pin1;$splitText[1]]
  597. $var[pin2;$splitText[2]]
  598. $textSplit[$var[pin1];-]
  599. $var[pin.piece;$splitText[1]]
  600. $textSplit[$splitText[2];]
  601. $var[pin.x;$splitText[1]]
  602. $var[pin.y;$splitText[2]]
  603.  
  604. $if[$var[piece]==$var[pin.piece]]
  605. $if[$var[x]$var[y]==$var[pin.x]$var[pin.y]]
  606. $var[legal;false]
  607. $endif
  608. $endif
  609.  
  610. $if[$var[legal]==true] $c[8]
  611. $if[$var[type]!=$var[type2]] $c[9]
  612.  
  613. $var[bg;$json[board;$var[x];$var[y]]]
  614.  
  615. $c[changing the board]
  616. $jsonSet[chess;$var[x2];$var[y2];$json[chess;$var[x];$var[y]]]
  617. $jsonSet[chess;$var[x];$var[y];$var[bg]]
  618.  
  619. $c[moves the piece’s indicator of which they are attacking]
  620. $textSplit[$var[possible.moves];,]
  621. $var[n;1]
  622. $eval[$repeatMessage[3;$repeatMessage[10;
  623. %{DOL}%if[%{DOL}%splitText[%{DOL}%var[n\]\]!=\]
  624. %{DOL}%textSplit[%{DOL}%splitText[%{DOL}%var[n\]\]\; \]
  625. %{DOL}%if[%{DOL}%json[check\;%{DOL}%splitText[1\]\;%{DOL}%splitText[2\]\]==!%{DOL}%var[piece\]\]
  626. %{DOL}%if[%{DOL}%checkContains[%{DOL}%splitText[%{DOL}%var[n\]\]\;-\]!=true\]
  627. %{DOL}%if[%{DOL}%and[%{DOL}%splitText[2\]<8\;%{DOL}%splitText[2\]>=0\]==true\]
  628. %{DOL}%jsonSet[check\;%{DOL}%splitText[1\]\;%{DOL}%splitText[2\]\;e\]
  629. %{DOL}%endif
  630. %{DOL}%endif
  631. %{DOL}%endif
  632. %{DOL}%endif
  633. %{DOL}%textSplit[%{DOL}%var[possible.moves\]\;,\]
  634. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  635. ]]
  636. ]
  637.  
  638. $c[now we are calculating the next possible moves of a piece after moving them, which is used for indicating that the enemy king is being checked]
  639.  
  640. $textSplit[-h -g -f -e -d -c -b a b c d e f g h -g -f -e -d -c -b -a; ]
  641.  
  642. $var[count.mx;$sub[$var[mx2];$var[mx]]]
  643. $var[count.y;$sub[$var[y2];$var[y]]]
  644.  
  645. $var[old.y;$var[y]]
  646. $var[old.mx;$var[mx]]
  647. $var[old.possible.moves;$var[possible.moves]]
  648.  
  649. $var[y;$var[y2]]
  650. $var[mx;$var[mx2]]
  651.  
  652. $c[the same loops that checks a piece’s possible moves]
  653. $if[$var[piece]==b] $c[10]
  654.  
  655. $var[n;1]
  656. $eval[
  657. $repeatMessage[3;$repeatMessage[10;
  658. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  659. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  660. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  661. %{DOL}%else
  662. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  663. %{DOL}%stop
  664. %{DOL}%endif
  665. ]]
  666. ]
  667. $var[n;1]
  668. $eval[
  669. $repeatMessage[3;$repeatMessage[10;
  670. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  671. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  672. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  673. %{DOL}%else
  674. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  675. %{DOL}%stop
  676. %{DOL}%endif
  677. ]]
  678. ]
  679. $var[n;1]
  680. $eval[
  681. $repeatMessage[3;$repeatMessage[10;
  682. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  683. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  684. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  685. %{DOL}%else
  686. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  687. %{DOL}%stop
  688. %{DOL}%endif
  689. ]]
  690. ]
  691. $var[n;1]
  692. $eval[
  693. $repeatMessage[3;$repeatMessage[10;
  694. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  695. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  696. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  697. %{DOL}%else
  698. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  699. %{DOL}%stop
  700. %{DOL}%endif
  701. ]]
  702. ]
  703.  
  704. $textSplit[$var[next.possible.moves];,]
  705. $if[$splitText[1]==]
  706. $removeSplitTextElement[1]
  707. $endif
  708.  
  709. $elseif[$var[piece]==r]
  710.  
  711. $var[n;1]
  712. $eval[
  713. $repeatMessage[3;$repeatMessage[10;
  714. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%var[mx\]\]\;%{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  715. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  716. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  717. %{DOL}%else
  718. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  719. %{DOL}%stop
  720. %{DOL}%endif
  721. ]]
  722. ]
  723. $var[n;1]
  724. $eval[
  725. $repeatMessage[3;$repeatMessage[10;
  726. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%var[mx\]\]\;%{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  727. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  728. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  729. %{DOL}%else
  730. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  731. %{DOL}%stop
  732. %{DOL}%endif
  733. ]]
  734. ]
  735. $var[n;1]
  736. $eval[
  737. $repeatMessage[3;$repeatMessage[10;
  738. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%var[y\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  739. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  740. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  741. %{DOL}%else
  742. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  743. %{DOL}%stop
  744. %{DOL}%endif
  745. ]]
  746. ]
  747. $var[n;1]
  748. $eval[
  749. $repeatMessage[3;$repeatMessage[10;
  750. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%var[y\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  751. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  752. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  753. %{DOL}%else
  754. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  755. %{DOL}%stop
  756. %{DOL}%endif
  757. ]]
  758. ]
  759.  
  760. $textSplit[$var[next.possible.moves];,]
  761. $if[$splitText[1]==]
  762. $removeSplitTextElement[1]
  763. $endif
  764.  
  765. $elseif[$var[piece]==q]
  766.  
  767. $var[n;1]
  768. $eval[
  769. $repeatMessage[3;$repeatMessage[10;
  770. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  771. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  772. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  773. %{DOL}%else
  774. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  775. %{DOL}%stop
  776. %{DOL}%endif
  777. ]]
  778. ]
  779. $var[n;1]
  780. $eval[
  781. $repeatMessage[3;$repeatMessage[10;
  782. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  783. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  784. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  785. %{DOL}%else
  786. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  787. %{DOL}%stop
  788. %{DOL}%endif
  789. ]]
  790. ]
  791. $var[n;1]
  792. $eval[
  793. $repeatMessage[3;$repeatMessage[10;
  794. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  795. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  796. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  797. %{DOL}%else
  798. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  799. %{DOL}%stop
  800. %{DOL}%endif
  801. ]]
  802. ]
  803. $var[n;1]
  804. $eval[
  805. $repeatMessage[3;$repeatMessage[10;
  806. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  807. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  808. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  809. %{DOL}%else
  810. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  811. %{DOL}%stop
  812. %{DOL}%endif
  813. ]]
  814. ]
  815. $var[n;1]
  816. $eval[
  817. $repeatMessage[3;$repeatMessage[10;
  818. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%var[mx\]\]\;%{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  819. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  820. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  821. %{DOL}%else
  822. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  823. %{DOL}%stop
  824. %{DOL}%endif
  825. ]]
  826. ]
  827. $var[n;1]
  828. $eval[
  829. $repeatMessage[3;$repeatMessage[10;
  830. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%var[mx\]\]\;%{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  831. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  832. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  833. %{DOL}%else
  834. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  835. %{DOL}%stop
  836. %{DOL}%endif
  837. ]]
  838. ]
  839. $var[n;1]
  840. $eval[
  841. $repeatMessage[3;$repeatMessage[10;
  842. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%var[y\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  843. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  844. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  845. %{DOL}%else
  846. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  847. %{DOL}%stop
  848. %{DOL}%endif
  849. ]]
  850. ]
  851. $var[n;1]
  852. $eval[
  853. $repeatMessage[3;$repeatMessage[10;
  854. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%var[y\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  855. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  856. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  857. %{DOL}%else
  858. %{DOL}%var[next.possible.moves\;%{DOL}%var[next.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  859. %{DOL}%stop
  860. %{DOL}%endif
  861. ]]
  862. ]
  863.  
  864. $textSplit[$var[next.possible.moves];,]
  865. $if[$splitText[1]==]
  866. $removeSplitTextElement[1]
  867. $endif
  868.  
  869. $else
  870.  
  871. $textSplit[$var[old.possible.moves];,]
  872. $var[calc.simple;true]
  873.  
  874. $endif $c[10]
  875.  
  876. $if[$checkContains[$var[piece];n;k;p]==true]
  877. $var[next.possible.moves;$joinSplitText[,]]
  878. $else
  879. $var[next.possible.moves;$joinSplitText[,]]
  880. $endif
  881.  
  882. $var[possible.moves;$var[old.possible.moves]]
  883.  
  884. $if[l==l]possible moves: $var[possible.moves]$endif
  885.  
  886. $var[mx;$var[old.mx]]
  887. $var[y;$var[old.y]]
  888.  
  889. $textSplit[$var[next.possible.moves];,]
  890.  
  891. $c[simply just moves the old possible moves for pieces like pawn, knight, king]
  892. $if[$var[calc.simple]==true]
  893. $var[n;1]
  894. $eval[$repeatMessage[3;$repeatMessage[10;
  895. %{DOL}%if[%{DOL}%splitText[%{DOL}%var[n\]\]!=\]
  896. %{DOL}%textSplit[%{DOL}%splitText[%{DOL}%var[n\]\]\; \]
  897. %{DOL}%var[calc.x\;%{DOL}%splitText[1\]\]
  898. %{DOL}%var[calc.y\;%{DOL}%splitText[2\]\]
  899. %{DOL}%textSplit[-h -g -f -e -d -c -b a b c d e f g h -g -f -e -d -c -b -a\; \]
  900. %{DOL}%var[calc.mx\;%{DOL}%getTextSplitIndex[%{DOL}%var[calc.x\]\]\]
  901. %{DOL}%var[calculation\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[calc.mx\]\;%{DOL}%var[count.mx\]\]\] %{DOL}%sum[%{DOL}%var[calc.y\]\;%{DOL}%var[count.y\]\]\]
  902. %{DOL}%textSplit[%{DOL}%var[next.possible.moves\]\;,\]
  903. %{DOL}%editSplitText[%{DOL}%var[n\]\;%{DOL}%var[calculation\]\]
  904. %{DOL}%var[next.possible.moves\;%{DOL}%joinSplitText[,\]\]
  905. %{DOL}%textSplit[%{DOL}%var[next.possible.moves\]\;,\]
  906. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  907. %{DOL}%endif
  908. ]]]
  909. $endif
  910.  
  911. $c[first, we removed the attacking indicator, now we’re putting it back to the piece’s new position.]
  912. $textSplit[$var[next.possible.moves];,]
  913. $var[n;1]
  914. $eval[$repeatMessage[3;$repeatMessage[10;
  915. %{DOL}%if[%{DOL}%splitText[%{DOL}%var[n\]\]!=\]
  916. %{DOL}%if[%{DOL}%checkContains[%{DOL}%splitText[%{DOL}%var[n\]\]\;-\]!=true\]
  917. %{DOL}%textSplit[%{DOL}%splitText[%{DOL}%var[n\]\]\; \]
  918. %{DOL}%if[%{DOL}%and[%{DOL}%splitText[2\]<8\;%{DOL}%splitText[2\]>=0\]==true\]
  919. %{DOL}%jsonSet[check\;%{DOL}%splitText[1\]\;%{DOL}%splitText[2\]\;!$var[piece]\]
  920. %{DOL}%endif
  921. %{DOL}%endif
  922. %{DOL}%endif
  923. %{DOL}%textSplit[%{DOL}%var[next.possible.moves\]\;,\]
  924. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  925. ]]
  926. ]
  927.  
  928. $c[checks if the enemy king is being checked]
  929. $textSplit[$var[next.possible.moves];,]
  930. $var[n;1]
  931. $eval[$repeatMessage[3;$repeatMessage[10;
  932. %{DOL}%if[%{DOL}%splitText[%{DOL}%var[n\]\]!=\]
  933. %{DOL}%textSplit[%{DOL}%splitText[%{DOL}%var[n\]\]\; \]
  934. %{DOL}%var[check.x\;%{DOL}%splitText[1\]\]
  935. %{DOL}%var[check.y\;%{DOL}%splitText[2\]\]
  936. %{DOL}%textSplit[%{DOL}%json[chess\;%{DOL}%splitText[1\]\;%{DOL}%splitText[2\]\]\;\]
  937. %{DOL}%var[att.piece\;%{DOL}%splitText[2\]\]
  938. %{DOL}%var[att.type\;%{DOL}%splitText[1\]\]
  939. %{DOL}%if[%{DOL}%var[att.piece\]==k\]
  940. %{DOL}%if[%{DOL}%var[att.type\]!=%{DOL}%json[profile\;chess\;t\]\]
  941. %{DOL}%var[check\;true\]
  942. %{DOL}%stop
  943. %{DOL}%endif
  944. %{DOL}%endif
  945. %{DOL}%endif
  946. %{DOL}%textSplit[%{DOL}%var[next.possible.moves\]\;,\]
  947. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  948. ]]
  949. ]
  950.  
  951. $if[$var[check]==true]
  952. **$toUppercase[$var[piece]]$var[x2]$sum[$var[y2];1]** is attacking **K$var[check.x]$sum[$var[check.y];1]**. Be careful!
  953. $jsonSet[uuser;check;$var[piece]-$var[x2]$var[y2]]
  954. $endif
  955.  
  956. $if[$var[piece2]==k]
  957. $var[end;true]
  958. Game Over!
  959. **$replaceText[$replaceText[$json[profile;chess;t];w;White];b;Black]** wins.
  960. $endif
  961.  
  962.  
  963.  
  964. $c[ TAKEN POSSIBLE MOVES ]
  965. $c[taking the possible moves of a piece you ate/taken and then does the same thing, remove and put the check indicator back.]
  966.  
  967.  
  968.  
  969. $textSplit[-h -g -f -e -d -c -b a b c d e f g h -g -f -e -d -c -b -a; ]
  970.  
  971. $var[old.y;$var[y]]
  972. $var[old.mx;$var[mx]]
  973. $var[old.possible.moves;$var[possible.moves]]
  974.  
  975. $var[y;$var[y2]]
  976. $var[mx;$var[mx2]]
  977.  
  978. $if[$var[piece2]==n] $c[10]
  979.  
  980. $var[taken.possible.moves;$splitText[$sum[$var[mx];1]] $sum[$var[y];2],$splitText[$sub[$var[mx];1]] $sum[$var[y];2],$splitText[$sum[$var[mx];1]] $sub[$var[y];2],$splitText[$sub[$var[mx];1]] $sub[$var[y];2],$splitText[$sum[$var[mx];2]] $sum[$var[y];1],$splitText[$sub[$var[mx];2]] $sum[$var[y];1],$splitText[$sum[$var[mx];2]] $sub[$var[y];1],$splitText[$sub[$var[mx];2]] $sub[$var[y];1]]
  981.  
  982. $elseif[$var[piece2]==b]
  983.  
  984. $var[n;1]
  985. $eval[
  986. $repeatMessage[3;$repeatMessage[10;
  987. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  988. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  989. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  990. %{DOL}%else
  991. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  992. %{DOL}%stop
  993. %{DOL}%endif
  994. ]]
  995. ]
  996. $var[n;1]
  997. $eval[
  998. $repeatMessage[3;$repeatMessage[10;
  999. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  1000. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1001. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1002. %{DOL}%else
  1003. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1004. %{DOL}%stop
  1005. %{DOL}%endif
  1006. ]]
  1007. ]
  1008. $var[n;1]
  1009. $eval[
  1010. $repeatMessage[3;$repeatMessage[10;
  1011. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  1012. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1013. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1014. %{DOL}%else
  1015. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1016. %{DOL}%stop
  1017. %{DOL}%endif
  1018. ]]
  1019. ]
  1020. $var[n;1]
  1021. $eval[
  1022. $repeatMessage[3;$repeatMessage[10;
  1023. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  1024. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1025. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1026. %{DOL}%else
  1027. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1028. %{DOL}%stop
  1029. %{DOL}%endif
  1030. ]]
  1031. ]
  1032.  
  1033. $textSplit[$var[taken.possible.moves];,]
  1034. $removeSplitTextElement[1]
  1035. $var[taken.possible.moves;$joinSplitText[,]]
  1036. $textSplit[$var[taken.possible.moves];,]
  1037.  
  1038. $elseif[$var[piece2]==r]
  1039.  
  1040. $var[n;1]
  1041. $eval[
  1042. $repeatMessage[3;$repeatMessage[10;
  1043. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%var[mx\]\]\;%{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  1044. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1045. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1046. %{DOL}%else
  1047. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1048. %{DOL}%stop
  1049. %{DOL}%endif
  1050. ]]
  1051. ]
  1052. $var[n;1]
  1053. $eval[
  1054. $repeatMessage[3;$repeatMessage[10;
  1055. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%var[mx\]\]\;%{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  1056. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1057. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1058. %{DOL}%else
  1059. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1060. %{DOL}%stop
  1061. %{DOL}%endif
  1062. ]]
  1063. ]
  1064. $var[n;1]
  1065. $eval[
  1066. $repeatMessage[3;$repeatMessage[10;
  1067. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%var[y\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  1068. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  1069. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1070. %{DOL}%else
  1071. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  1072. %{DOL}%stop
  1073. %{DOL}%endif
  1074. ]]
  1075. ]
  1076. $var[n;1]
  1077. $eval[
  1078. $repeatMessage[3;$repeatMessage[10;
  1079. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%var[y\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  1080. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  1081. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1082. %{DOL}%else
  1083. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  1084. %{DOL}%stop
  1085. %{DOL}%endif
  1086. ]]
  1087. ]
  1088.  
  1089. $textSplit[$var[taken.possible.moves];,]
  1090. $removeSplitTextElement[1]
  1091. $var[taken.possible.moves;$joinSplitText[,]]
  1092. $textSplit[$var[taken.possible.moves];,]
  1093.  
  1094. $elseif[$var[piece2]==q]
  1095.  
  1096. $var[n;1]
  1097. $eval[
  1098. $repeatMessage[3;$repeatMessage[10;
  1099. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  1100. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1101. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1102. %{DOL}%else
  1103. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1104. %{DOL}%stop
  1105. %{DOL}%endif
  1106. ]]
  1107. ]
  1108. $var[n;1]
  1109. $eval[
  1110. $repeatMessage[3;$repeatMessage[10;
  1111. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  1112. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1113. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1114. %{DOL}%else
  1115. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1116. %{DOL}%stop
  1117. %{DOL}%endif
  1118. ]]
  1119. ]
  1120. $var[n;1]
  1121. $eval[
  1122. $repeatMessage[3;$repeatMessage[10;
  1123. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  1124. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1125. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1126. %{DOL}%else
  1127. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1128. %{DOL}%stop
  1129. %{DOL}%endif
  1130. ]]
  1131. ]
  1132. $var[n;1]
  1133. $eval[
  1134. $repeatMessage[3;$repeatMessage[10;
  1135. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  1136. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1137. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1138. %{DOL}%else
  1139. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1140. %{DOL}%stop
  1141. %{DOL}%endif
  1142. ]]
  1143. ]
  1144. $var[n;1]
  1145. $eval[
  1146. $repeatMessage[3;$repeatMessage[10;
  1147. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%var[mx\]\]\;%{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  1148. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1149. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1150. %{DOL}%else
  1151. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sum[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1152. %{DOL}%stop
  1153. %{DOL}%endif
  1154. ]]
  1155. ]
  1156. $var[n;1]
  1157. $eval[
  1158. $repeatMessage[3;$repeatMessage[10;
  1159. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%var[mx\]\]\;%{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  1160. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1161. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1162. %{DOL}%else
  1163. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%var[mx\]\] %{DOL}%sub[%{DOL}%var[y\]\;%{DOL}%var[n\]\]\]
  1164. %{DOL}%stop
  1165. %{DOL}%endif
  1166. ]]
  1167. ]
  1168. $var[n;1]
  1169. $eval[
  1170. $repeatMessage[3;$repeatMessage[10;
  1171. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%var[y\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  1172. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  1173. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1174. %{DOL}%else
  1175. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sum[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  1176. %{DOL}%stop
  1177. %{DOL}%endif
  1178. ]]
  1179. ]
  1180. $var[n;1]
  1181. $eval[
  1182. $repeatMessage[3;$repeatMessage[10;
  1183. %{DOL}%if[%{DOL}%replaceText[%{DOL}%replaceText[%{DOL}%json[chess\;%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\]\;%{DOL}%var[y\]\]\;{b}\;{bg}\]\;{b1}\;{bg}\]=={bg}\]
  1184. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  1185. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1186. %{DOL}%else
  1187. %{DOL}%var[taken.possible.moves\;%{DOL}%var[taken.possible.moves\],%{DOL}%splitText[%{DOL}%sub[%{DOL}%var[mx\]\;%{DOL}%var[n\]\]\] %{DOL}%var[y\]\]
  1188. %{DOL}%stop
  1189. %{DOL}%endif
  1190. ]]
  1191. ]
  1192.  
  1193. $textSplit[$var[taken.possible.moves];,]
  1194. $removeSplitTextElement[1]
  1195. $var[taken.possible.moves;$joinSplitText[,]]
  1196. $textSplit[$var[taken.possible.moves];,]
  1197.  
  1198. $elseif[$var[piece2]==p]
  1199.  
  1200. $if[$var[type2]==w]
  1201.  
  1202. $var[taken.possible.moves;$splitText[$sum[$var[mx];1]] $sum[$var[y];1],$splitText[$sub[$var[mx];1]] $sum[$var[y];1]]
  1203.  
  1204. $else
  1205.  
  1206. $var[taken.possible.moves;$splitText[$sum[$var[mx];1]] $sub[$var[y];1],$splitText[$sub[$var[mx];1]] $sub[$var[y];1]]
  1207.  
  1208. $endif
  1209.  
  1210. $elseif[$var[piece2]==k]
  1211.  
  1212. $textSplit[-h -g -f -e -d -c -b a b c d e f g h -g -f -e -d -c -b -a; ]
  1213.  
  1214. $var[taken.possible.moves;$splitText[$sum[$var[mx];1]] $sum[$var[y];1],$splitText[$sub[$var[mx];1]] $sum[$var[y];1],$splitText[$sum[$var[mx];1]] $sub[$var[y];1],$splitText[$sub[$var[mx];1]] $sub[$var[y];1],$splitText[$var[mx]] $sum[$var[y];1],$splitText[$var[mx]] $sub[$var[y];1],$splitText[$sum[$var[mx];1]] $var[y],$splitText[$sub[$var[mx];1]] $var[y]]
  1215.  
  1216. $endif $c[10]
  1217.  
  1218. $var[mx;$var[old.mx]]
  1219. $var[mx;$var[old.mx]]
  1220.  
  1221.  
  1222. $c[nope, you didn’t glitch and somehow went back to the top, the "TAKEN POSSIBLE MOVES" is right there ^^^^]
  1223. $c[ TAKEN POSSIBLE MOVES ]
  1224.  
  1225.  
  1226.  
  1227. $c[now this is where we start removing and readding the attack indicators]
  1228. $textSplit[$var[taken.possible.moves];,]
  1229. $var[n;1]
  1230. $eval[$repeatMessage[3;$repeatMessage[10;
  1231. %{DOL}%if[%{DOL}%splitText[%{DOL}%var[n\]\]!=\]
  1232. %{DOL}%textSplit[%{DOL}%splitText[%{DOL}%var[n\]\]\; \]
  1233. %{DOL}%if[%{DOL}%json[ucheck\;%{DOL}%splitText[1\]\;%{DOL}%splitText[2\]\]==!%{DOL}%var[piece2\]\]
  1234. %{DOL}%if[%{DOL}%checkContains[%{DOL}%splitText[%{DOL}%var[n\]\]\;-\]!=true\]
  1235. %{DOL}%if[%{DOL}%and[%{DOL}%splitText[2\]<8\;%{DOL}%splitText[2\]>=0\]==true\]
  1236. %{DOL}%jsonSet[ucheck\;%{DOL}%splitText[1\]\;%{DOL}%splitText[2\]\;e\]
  1237. %{DOL}%endif
  1238. %{DOL}%endif
  1239. %{DOL}%endif
  1240. %{DOL}%endif
  1241. %{DOL}%textSplit[%{DOL}%var[taken.possible.moves\]\;,\]
  1242. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1243. ]]
  1244. ]
  1245.  
  1246. $textSplit[-h -g -f -e -d -c -b a b c d e f g h -g -f -e -d -c -b -a; ]
  1247.  
  1248. $c[adds the pieces taken by the user to the user’s variable]
  1249. $if[$var[type2]!={]
  1250. $jsonSet[user;tk;$json[user;tk],$var[type2]$var[piece2]]
  1251. $textSplit[$json[user;tk];,]
  1252. $if[$splitText[1]==]
  1253. $removeSplitTextElement[1]
  1254. $jsonSet[user;tk;$joinSplitText[,]]
  1255. $endif
  1256. $endif
  1257.  
  1258. $textSplit[-h -g -f -e -d -c -b a b c d e f g h -g -f -e -d -c -b -a; ]
  1259.  
  1260. $c[castling]
  1261. $if[$var[castle]==true]
  1262. $if[$var[castle.left]==true]
  1263. $jsonSet[chess;a;$var[y];$var[bg]]
  1264. $jsonSet[chess;$splitText[$sum[$var[mx2];1]];$var[y];$var[type]r]
  1265. $jsonSet[user;ra;false]
  1266. $else
  1267. $jsonSet[chess;h;$var[y];$var[bg]]
  1268. $jsonSet[chess;$splitText[$sub[$var[mx2];1]];$var[y];$var[type]r]
  1269. $jsonSet[user;rh;false]
  1270. $endif
  1271. $endif
  1272.  
  1273. $c[changing turns]
  1274. $if[$json[chess;t]==w]
  1275. $jsonSet[chess;t;b]
  1276. $else
  1277. $jsonSet[chess;t;w]
  1278. $endif
  1279.  
  1280. $c[errors]
  1281. $else
  1282. $reply
  1283. You can’t take your own piece.
  1284. $endif $c[9]
  1285. $else
  1286. $reply
  1287. That move for **$replaceText[$replaceText[$replaceText[$replaceText[$replaceText[$replaceText[$var[piece];n;KNIGHT];r;ROOK];q;QUEEN];p;PAWN];k;KING];b;BISHOP]** is illegal.
  1288. $var[desc]
  1289. $endif $c[8]
  1290. $else
  1291. $reply
  1292. You are only allowed to move **$replaceText[$replaceText[$json[profile;chess;t];w;white];b;black]** pieces.
  1293. $endif $c[7]
  1294. $else
  1295. $reply
  1296. It is **$replaceText[$replaceText[$json[chess;t];w;white];b;black]** piece’s turn.
  1297. $endif $c[6]
  1298. $else
  1299. $reply
  1300. There’s no piece on $var[x]$sum[$var[y];1].
  1301. $endif $c5
  1302. $else
  1303. $reply
  1304. You can’t move a piece to/from outside of the board.
  1305. $endif $c[4]
  1306.  
  1307. $catch
  1308. $reply
  1309. $if[$or[$authorID==$botOwnerID;l==l]==true]
  1310. ```$if[l==l]$cropText[$error[source];1000;...]$endif
  1311. $error[message]
  1312. line $error[row]:$error[column]```
  1313. $endif
  1314. Error notation. Example notation: `b1c3`
  1315. $endtry
  1316.  
  1317. $else
  1318. $reply
  1319. You are not in a match.
  1320. $endif $c[3]
  1321.  
  1322. $endif $c[2]
  1323.  
  1324. $endif $c[1]
  1325.  
  1326. $c[the board embed goes here.]
  1327.  
  1328.  
  1329. $c[if you made it this far, thank you! i hope you’d help get this poject better. by the way, i dont wanna explain these functions one by one, it just checks which user is on black and white and the loops to list the pieces they’ve taken and turn them into emojis.
  1330. at the very bottom is where all the data gets saved.
  1331. that’s all!]
  1332.  
  1333.  
  1334. $if[$json[profile;chess;t]==b]
  1335. $var[user.name;$username]
  1336. $textSplit[$json[user;tk];,]
  1337. $var[n;1]
  1338. $eval[$repeatMessage[2;$repeatMessage[10;
  1339. %{DOL}%if[%{DOL}%splitText[%{DOL}%var[n\]\]!=\]
  1340. %{DOL}%var[take.list\;%{DOL}%var[take.list\]%{DOL}%json[assets\;%{DOL}%splitText[%{DOL}%var[n\]\]\]\]
  1341. %{DOL}%endif
  1342. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1343. ]]
  1344. ]
  1345. $else
  1346. $var[user.name;$username[$var[user]]]
  1347. $textSplit[$json[uuser;tk];,]
  1348. $var[n;1]
  1349. $eval[$repeatMessage[2;$repeatMessage[10;
  1350. %{DOL}%if[%{DOL}%splitText[%{DOL}%var[n\]\]!=\]
  1351. %{DOL}%var[take.list\;%{DOL}%var[take.list\]%{DOL}%json[assets\;%{DOL}%splitText[%{DOL}%var[n\]\]\]\]
  1352. %{DOL}%endif
  1353. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1354. ]]
  1355. ]
  1356. $endif
  1357.  
  1358. $if[$json[profile;chess;t]==w]
  1359. $var[user.name2;$username]
  1360. $textSplit[$json[user;tk];,]
  1361. $var[n;1]
  1362. $eval[$repeatMessage[2;$repeatMessage[10;
  1363. %{DOL}%if[%{DOL}%splitText[%{DOL}%var[n\]\]!=\]
  1364. %{DOL}%var[take.list2\;%{DOL}%var[take.list2\]%{DOL}%json[assets\;%{DOL}%splitText[%{DOL}%var[n\]\]\]\]
  1365. %{DOL}%endif
  1366. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1367. ]]
  1368. ]
  1369. $else
  1370. $var[user.name2;$username[$var[user]]]
  1371. $textSplit[$json[uuser;tk];,]
  1372. $var[n;1]
  1373. $eval[$repeatMessage[2;$repeatMessage[10;
  1374. %{DOL}%if[%{DOL}%splitText[%{DOL}%var[n\]\]!=\]
  1375. %{DOL}%var[take.list2\;%{DOL}%var[take.list2\]%{DOL}%json[assets\;%{DOL}%splitText[%{DOL}%var[n\]\]\]\]
  1376. %{DOL}%endif
  1377. %{DOL}%var[n\;%{DOL}%sum[%{DOL}%var[n\]\;1\]\]
  1378. ]]
  1379. ]
  1380. $endif
  1381.  
  1382. $footer[$replaceText[$replaceText[$json[chess;t];w;White];b;Black]‘s turn.]
  1383.  
  1384. $description[
  1385. $json[assets;bk] **$var[user.name]** $var[take.list]
  1386. <:ind8:1239502540207554582>$json[assets;$json[chess;a;7]]$json[assets;$json[chess;b;7]]$json[assets;$json[chess;c;7]]$json[assets;$json[chess;d;7]]$json[assets;$json[chess;e;7]]$json[assets;$json[chess;f;7]]$json[assets;$json[chess;g;7]]$json[assets;$json[chess;h;7]]
  1387. <:ind7:1239502556288253982>$json[assets;$json[chess;a;6]]$json[assets;$json[chess;b;6]]$json[assets;$json[chess;c;6]]$json[assets;$json[chess;d;6]]$json[assets;$json[chess;e;6]]$json[assets;$json[chess;f;6]]$json[assets;$json[chess;g;6]]$json[assets;$json[chess;h;6]]
  1388. <:ind6:1239502572008505344>$json[assets;$json[chess;a;5]]$json[assets;$json[chess;b;5]]$json[assets;$json[chess;c;5]]$json[assets;$json[chess;d;5]]$json[assets;$json[chess;e;5]]$json[assets;$json[chess;f;5]]$json[assets;$json[chess;g;5]]$json[assets;$json[chess;h;5]]
  1389. <:ind5:1239502588844572762>$json[assets;$json[chess;a;4]]$json[assets;$json[chess;b;4]]$json[assets;$json[chess;c;4]]$json[assets;$json[chess;d;4]]$json[assets;$json[chess;e;4]]$json[assets;$json[chess;f;4]]$json[assets;$json[chess;g;4]]$json[assets;$json[chess;h;4]]
  1390. <:ind4:1239502608742219788>$json[assets;$json[chess;a;3]]$json[assets;$json[chess;b;3]]$json[assets;$json[chess;c;3]]$json[assets;$json[chess;d;3]]$json[assets;$json[chess;e;3]]$json[assets;$json[chess;f;3]]$json[assets;$json[chess;g;3]]$json[assets;$json[chess;h;3]]
  1391. <:ind3:1239502626429730847>$json[assets;$json[chess;a;2]]$json[assets;$json[chess;b;2]]$json[assets;$json[chess;c;2]]$json[assets;$json[chess;d;2]]$json[assets;$json[chess;e;2]]$json[assets;$json[chess;f;2]]$json[assets;$json[chess;g;2]]$json[assets;$json[chess;h;2]]
  1392. <:ind2:1239502646373781535>$json[assets;$json[chess;a;1]]$json[assets;$json[chess;b;1]]$json[assets;$json[chess;c;1]]$json[assets;$json[chess;d;1]]$json[assets;$json[chess;e;1]]$json[assets;$json[chess;f;1]]$json[assets;$json[chess;g;1]]$json[assets;$json[chess;h;1]]
  1393. <:ind1:1239502663205519370>$json[assets;$json[chess;a;0]]$json[assets;$json[chess;b;0]]$json[assets;$json[chess;c;0]]$json[assets;$json[chess;d;0]]$json[assets;$json[chess;e;0]]$json[assets;$json[chess;f;0]]$json[assets;$json[chess;g;0]]$json[assets;$json[chess;h;0]]
  1394. <:ind:1239502502618206209><:inda:1239502809993318442><:indb:1239502791626592268><:indc:1239502766234140682><:indd:1239502882894643220><:inde:1239502746483425280><:indf:1239502726971527229><:indg:1239502709875540020><:indh:1239502693395861544>
  1395. $json[assets;wk] **$var[user.name2]** $var[take.list2]
  1396. ]
  1397.  
  1398. $if[l==l]
  1399. $description[```$replaceText[
  1400. $json[check;a;7]$json[check;b;7]$json[check;c;7]$json[check;d;7]$json[check;e;7]$json[check;f;7]$json[check;g;7]$json[check;h;7]
  1401. $json[check;a;6]$json[check;b;6]$json[check;c;6]$json[check;d;6]$json[check;e;6]$json[check;f;6]$json[check;g;6]$json[check;h;6]
  1402. $json[check;a;5]$json[check;b;5]$json[check;c;5]$json[check;d;5]$json[check;e;5]$json[check;f;5]$json[check;g;5]$json[check;h;5]
  1403. $json[check;a;4]$json[check;b;4]$json[check;c;4]$json[check;d;4]$json[check;e;4]$json[check;f;4]$json[check;g;4]$json[check;h;4]
  1404. $json[check;a;3]$json[check;b;3]$json[check;c;3]$json[check;d;3]$json[check;e;3]$json[check;f;3]$json[check;g;3]$json[check;h;3]
  1405. $json[check;a;2]$json[check;b;2]$json[check;c;2]$json[check;d;2]$json[check;e;2]$json[check;f;2]$json[check;g;2]$json[check;h;2]
  1406. $json[check;a;1]$json[check;b;1]$json[check;c;1]$json[check;d;1]$json[check;e;1]$json[check;f;1]$json[check;g;1]$json[check;h;1]
  1407. $json[check;a;0]$json[check;b;0]$json[check;c;0]$json[check;d;0]$json[check;e;0]$json[check;f;0]$json[check;g;0]$json[check;h;0];e;--]
  1408. ```
  1409. ;2]
  1410. $endif
  1411.  
  1412. $setVar[chess;$json[chess];$var[host]]
  1413. $setVar[chesscheck;$json[check];$authorID]
  1414. $setVar[chessuser;$json[user];$authorID]
  1415. $setVar[chesscheck;$json[ucheck];$var[user]]
  1416. $setVar[chessuser;$json[uuser];$var[user]]
  1417.  
  1418. $if[$var[end]==true]
  1419. $setVar[chess;$getVar[chess];$authorID]
  1420. $setVar[chesscheck;$getVar[chesscheck];$authorID]
  1421. $setVar[chessuser;$getVar[chessuser];$authorID]
  1422. $setVar[chesscheck;$getVar[chesscheck];$var[user]]
  1423. $setVar[chessuser;$getVar[chessuser];$var[user]]
  1424. $endif
  1425.  
  1426. $c[Copyright © 2024 V Lock. All rights reserved.]
Advertisement
Add Comment
Please, Sign In to add comment