77 lines
2.1 KiB
GDScript
Executable file
77 lines
2.1 KiB
GDScript
Executable file
extends Rule
|
|
|
|
static func ready(piece: Piece):
|
|
pass
|
|
|
|
static func select(piece: Piece, game: Game):
|
|
|
|
var pos = piece.to_coord()
|
|
var board_size = game.get_node("Board").board_size
|
|
print("Board Size: ", board_size)
|
|
print("Bishop Pos:", pos)
|
|
#piece.possible_movements = []
|
|
|
|
var tiles_to_left: int = board_size.x-1 - pos.x
|
|
print("tiles to left: ", tiles_to_left)
|
|
var tiles_to_right: int = (board_size.x-1) - ((board_size.x-1) - pos.x)
|
|
print("tiles to right: ", tiles_to_right)
|
|
var tiles_to_top: int = board_size.y-1 - pos.y
|
|
print("tiles to top: ", tiles_to_top)
|
|
var tiles_to_bottom: int = (board_size.y-1) - ((board_size.y-1) - pos.y)
|
|
print("tiles to bottom: ", tiles_to_bottom)
|
|
|
|
#left down
|
|
for x in range(pos.x+1, board_size.x, 1):
|
|
var move = Vector2i(x - pos.x, -(x - pos.x) )
|
|
var other_piece = game.get_piece_at(move+pos)
|
|
if other_piece:
|
|
if other_piece.is_in_group("Enemy"):
|
|
piece.possible_movements.append(move)
|
|
break
|
|
piece.possible_movements.append(move)
|
|
|
|
#right down
|
|
for x in range(pos.x-1, -1, -1):
|
|
var move = Vector2i(x -pos.x, x-pos.x)
|
|
var other_piece = game.get_piece_at(move+pos)
|
|
if pos.x + move.x < 0:
|
|
continue
|
|
if pos.y + move.y < 0:
|
|
continue
|
|
if other_piece:
|
|
if other_piece.is_in_group("Enemy"):
|
|
piece.possible_movements.append(move)
|
|
break
|
|
piece.possible_movements.append(move)
|
|
|
|
#left up
|
|
for x in range(pos.x+1, board_size.x, 1):
|
|
var move = Vector2i(x - pos.x, (x - pos.x) )
|
|
var other_piece = game.get_piece_at(move+pos)
|
|
if other_piece:
|
|
if other_piece.is_in_group("Enemy"):
|
|
piece.possible_movements.append(move)
|
|
break
|
|
piece.possible_movements.append(move)
|
|
|
|
#right up
|
|
for x in range(pos.x-1, -1, -1):
|
|
var move = Vector2i(x -pos.x, -(x - pos.x))
|
|
var other_piece = game.get_piece_at(move+pos)
|
|
if pos.x + move.x < 0:
|
|
continue
|
|
if pos.y + move.y < 0:
|
|
continue
|
|
if other_piece:
|
|
if other_piece.is_in_group("Enemy"):
|
|
piece.possible_movements.append(move)
|
|
break
|
|
piece.possible_movements.append(move)
|
|
|
|
for move in piece.possible_movements:
|
|
pass
|
|
|
|
pass
|
|
|
|
static func before_move(piece: Piece):
|
|
pass
|