41 lines
912 B
GDScript
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)
|