extends Node
class_name Die

enum DieCategory{
	D4 = 4,
	D6 = 6,
	D8 = 8,
	D10 = 10,
	D12 = 12,
	D00 = 00,
	D20 = 20	
}

var DieType = DieCategory
var NumberOfFaces = 0

func RollDie(InputDie):
	#InputDie is supposed to be DieType for example.
	var DieFaceResult = 0;
	var LowestPossibleNumberOnDie = 0
	var rng = RandomNumberGenerator.new()
	rng.randomize()
	
	var NoOfSides = NumberOfFaces
	
	match NoOfSides:
		100:
			LowestPossibleNumberOnDie = 1
			DieFaceResult = rng.randi_range(LowestPossibleNumberOnDie, 10)
			DieFaceResult *= 10
			
		_:
			LowestPossibleNumberOnDie = 1
			DieFaceResult = rng.randi_range(LowestPossibleNumberOnDie, NumberOfFaces)
	
	var DieSuccessPercentage = (float(DieFaceResult)/float(NumberOfFaces))
	
	print("DieFace:")
	print(DieFaceResult)
	print("Die Success Rate")
	print(DieSuccessPercentage)

func SetNumberOfSides():
	var DSides = DieType

	match DSides:
		4:
			NumberOfFaces = 4
		6:
			NumberOfFaces = 6
		8:
			NumberOfFaces = 8
		10:
			NumberOfFaces = 10
		12:
			NumberOfFaces = 12
		00:
			NumberOfFaces = 100
		20:		
			NumberOfFaces = 20
				
	print(NumberOfFaces)
# Called when the node enters the scene tree for the first time.
func _ready():
	DieType = DieCategory.D00
	SetNumberOfSides()
	RollDie(NumberOfFaces)