in libs/core/game.ts [413:456]
public ifOnEdgeBounce(): void {
if (this._dir == 0 && this._y == 0) {
this._dir = 180;
} else if (this._dir == 45 && (this._x == 4 || this._y == 0)) {
if (this._x == 0 && this._y == 0) {
this._dir = -135;
} else if (this._y == 0) {
this._dir = 135;
} else {
this._dir = -45;
}
} else if (this._dir == 90 && this._x == 4) {
this._dir = -90;
} else if (this._dir == 135 && (this._x == 4 || this._y == 4)) {
if (this.x() == 4 && this.y() == 4) {
this._dir = -45;
} else if (this._y == 4) {
this._dir = 45;
} else {
this._dir = -135;
}
} else if (this._dir == 180 && this._y == 4) {
this._dir = 0;
} else if (this._dir == -45 && (this._x == 0 || this._y == 0)) {
if (this.x() == 0 && this.y() == 0) {
this._dir = 135;
} else if (this._y == 0) {
this._dir = -135;
} else {
this._dir = 45;
}
} else if (this._dir == -90 && this._x == 0) {
this._dir = 90;
} else if (this._dir == -135 && (this._x == 0 || this._y == 4)) {
if (this._x == 0 && this._y == 4) {
this._dir = 45;
} else if (this._y == 4) {
this._dir = -45;
} else {
this._dir = 135;
}
}
plot();
}