Sei stato incredibilmente bravo a capire quel codice! È fatto molto male, è statico ed è caotico nei metodi, sono felice che però si sia riusciti ad intuire un po' della logica.
Se vuoi aiutare a renderlo più leggibile sia graficamente (non l'ho ancora fatto liquido) che a livello di codice ne sarei felice... sentiti libero di fare un branch su github in qualunque momento, poi semmai ne parliamo assieme :)
Grazie!