hexland/Scripts/Board.gd
2022-08-26 09:36:29 -05:00

41 lines
912 B
GDScript

extends Node2D
class_name Board
const hex_prefab = preload("res://Prefabs/Hex.tscn")
const Y_OFFSET = Vector2(Hex.HALFWIDTH, Hex.HEIGHT)
const X_OFFSET = Vector2(Hex.WIDTH, 0)
export(Array, Vector2) var indices = [Vector2.ZERO]
export(Dictionary) var distribution = {
"hills": 0,
"forest": 0,
"mountains": 0,
"fields": 0,
"pasture": 0,
"desert": 1,
}
export(Array, int) var chits = []
func _ready():
## Place Tiles
var tiles = []
for tile in distribution:
for _i in range(distribution[tile]):
tiles.append(tile)
randomize()
tiles.shuffle()
for index in indices:
var hex = hex_prefab.instance()
hex.name = "Hex#%d#%d" % [index.x, index.y]
hex.translate(X_OFFSET * index.x)
hex.translate(Y_OFFSET * index.y)
add_child(hex)
hex.type = tiles.pop_front()
hex.index = index
if hex.type != "desert":
var chit = Chit.new()
chit.setup(chits.pop_front())
hex.add_child(chit)