extends Node class_name Die # Declare member variables here. Examples: # var a = 2 # var b = "text" 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 # For 7 Die Set, testing purposes ######################################## # Need to Seed Random Number Generator # ######################################## 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) # Replace with function body. # Called every frame. 'delta' is the elapsed time since the previous frame. #func _process(delta): # pass