portal self-exclusion and more outOfBounds checks

This commit is contained in:
Lily-129 2022-01-28 10:06:46 -05:00 committed by GitHub
parent d6705907fc
commit aa28f584e1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 16 additions and 8 deletions

View File

@ -31,17 +31,25 @@ elements.portal_in = {
}
if(pixel.portalArray.length > 0) {
randomDestination = pixel.portalArray[Math.floor((Math.random() * pixel.portalArray.length))]
if(!isEmpty(pixel.x-1,pixel.y)) {
tryMove(pixelMap[pixel.x-1][pixel.y],(randomDestination[0] - 1),(randomDestination[1]))
if(!isEmpty(pixel.x-1,pixel.y) && !outOfBounds(pixel.x-1,pixel.y)) {
if(pixelMap[pixel.x-1][pixel.y].element != pixel.element) {
tryMove(pixelMap[pixel.x-1][pixel.y],(randomDestination[0] - 1),(randomDestination[1]))
}
}
if(!isEmpty(pixel.x+1,pixel.y)) {
tryMove(pixelMap[pixel.x+1][pixel.y],(randomDestination[0] + 1),(randomDestination[1]))
if(!isEmpty(pixel.x+1,pixel.y) && !outOfBounds(pixel.x+1,pixel.y)) {
if(pixelMap[pixel.x+1][pixel.y].element != pixel.element) {
tryMove(pixelMap[pixel.x+1][pixel.y],(randomDestination[0] + 1),(randomDestination[1]))
}
}
if(!isEmpty(pixel.x,pixel.y-1)) {
tryMove(pixelMap[pixel.x][pixel.y-1],(randomDestination[0]),(randomDestination[1] - 1))
if(!isEmpty(pixel.x,pixel.y-1) && !outOfBounds(pixel.x,pixel.y-1)) {
if(pixelMap[pixel.x][pixel.y-1].element != pixel.element) {
tryMove(pixelMap[pixel.x][pixel.y-1],(randomDestination[0]),(randomDestination[1] - 1))
}
}
if(!isEmpty(pixel.x,pixel.y+1)) {
tryMove(pixelMap[pixel.x][pixel.y+1],(randomDestination[0]),(randomDestination[1] + 1))
if(!isEmpty(pixel.x,pixel.y+1) && !outOfBounds(pixel.x,pixel.y+1)) {
if(pixelMap[pixel.x][pixel.y+1].element != pixel.element) {
tryMove(pixelMap[pixel.x][pixel.y+1],(randomDestination[0]),(randomDestination[1] + 1))
}
}
}
},