19
scripts/expansion_patterns/expansion_square_pattern.gd
Normal file
19
scripts/expansion_patterns/expansion_square_pattern.gd
Normal file
@@ -0,0 +1,19 @@
|
||||
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))
|
||||
Reference in New Issue
Block a user