19 lines
698 B
GDScript
19 lines
698 B
GDScript
class_name ExpansionSquarePattern extends ExpansionBase
|
|
|
|
const EXPANSION_STAGES: int = 3
|
|
|
|
var expansion_stage: int = 0
|
|
var expansion_tiles: Array[Vector2i] = []
|
|
|
|
func expand_next_tile() -> Vector2i:
|
|
if expansion_tiles.is_empty():
|
|
if expansion_stage < EXPANSION_STAGES:
|
|
expansion_stage += 1
|
|
for x in range(-expansion_stage, expansion_stage + 1):
|
|
for y in range(-expansion_stage, expansion_stage + 1):
|
|
if abs(x) == expansion_stage or abs(y) == expansion_stage:
|
|
expansion_tiles.append(Vector2i(x, y))
|
|
if expansion_stage == EXPANSION_STAGES and expansion_tiles.size() == 1:
|
|
expansion_finished.emit()
|
|
return expansion_tiles.pop_at(randi_range(0, expansion_tiles.size() - 1))
|