duncgibbs 14e2073322
All checks were successful
linting & formatting / build (push) Successful in 25s
itch.io publish action / build (web, html) (push) Successful in 3m51s
mostly implements networked board state; but also adds voting and a few buildings
2026-04-24 12:19:34 -05:00

46 lines
1.6 KiB
GDScript

extends Building
func can_citizen_enter(coord: Vector2i, direction: Board.Direction) -> bool:
var coord_adjustment := Board.get_next_direction(Board.Direction.UP, get_rotation_count())
var correct_heading := Board.get_next_direction(Board.Direction.DOWN, get_rotation_count())
return (
coord == starting_coord + Board.get_direction_vector(coord_adjustment)
and direction == correct_heading
)
func get_tile_coords() -> Array[Vector2i]:
var result: Array[Vector2i] = []
result.push_back(starting_coord)
result.push_back(
starting_coord + Vector2i(Vector2.RIGHT.rotated(deg_to_rad(90 * get_rotation_count())))
)
result.push_back(
starting_coord + Vector2i(Vector2.RIGHT.rotated(deg_to_rad(90 * get_rotation_count()))) * 2
)
result.push_back(
(
starting_coord
+ Vector2i(Vector2.RIGHT.rotated(deg_to_rad(90 * get_rotation_count())))
+ Vector2i(Vector2.UP.rotated(deg_to_rad(90 * get_rotation_count())))
)
)
return result
func get_direction_queue(_citizen: Citizen) -> Array[Board.Direction]:
return [
Board.get_next_direction(Board.Direction.RIGHT, get_rotation_count()),
Board.get_next_direction(Board.Direction.UP, get_rotation_count()),
Board.get_next_direction(Board.Direction.DOWN, get_rotation_count()),
Board.get_next_direction(Board.Direction.RIGHT, get_rotation_count()),
Board.get_next_direction(Board.Direction.UP, get_rotation_count())
]
func activate(citizen: Citizen) -> void:
citizen.money += 2 ** citizen.get_status_count(Citizen.Status.CAFFEINATED) + 1
citizen.remove_all_statuses(Citizen.Status.CAFFEINATED)
citizen.play_money_animation()