#This script is for the overarching node that will contain the diemanager singleton #It should be the only one of the die scripts that is attached onto a node. extends Control #desired dice types and needed percentage to pass are selected by game/user #desiredDice takes an int array representing the # sides on the die/dice #neededPercentageToPass takes a float that export var desiredDice: Array export var neededPercentageToPass: float #Define dieManager variable var dieManager func _ready(): #create diemanager object dieManager = DieManager.new(desiredDice, neededPercentageToPass) #function gets the result of the roll(s) and shows it in the UI func _on_Die_button_down(): #rollDice function returns an array with the following elements in the following positions: #rollDice result: [[rolledValues], percentRolled, passResult, neededPercent, degreeOfSuccess, dice] var result = dieManager.rollDice() #assigning variable names to each of them for better clarity var rolledValues = result[0] var percentRolled = result[1] var passResult = result[2] var neededPercent = result[3] var degreeOfSuccess = result[4] var dice = result[5] #Check if passed or not if passResult: $Outcome.text = "Successful Roll!" else: $Outcome.text = "Failed Roll!" var diceResultText = "Rolled Values:\n" #Prints the integer calues of each die rolled in the form: "D(num faces): (value rolled)" for i in range(dice.size()): diceResultText += ("D" + str(dice[i]) + ": " + str(rolledValues[i]) + "\n") #changing labels on screen $RolledValues.text = diceResultText $PercentNeeded.text = "Percent Needed to Pass: " + str(neededPercent * 100) + "%" $PercentRolled.text = "Percent Rolled: " + str(percentRolled * 100) + "%" $DegreeOfSuccess.text = "Degree of Success: " + str(degreeOfSuccess * 100) + "%" #revealing labels to user $Outcome.show() $RolledValues.show() $PercentNeeded.show() $PercentRolled.show() $DegreeOfSuccess.show() #Calls the cleardata method for the diemanager and hides the text on screen func _on_Reset_button_down(): $Outcome.hide() $PercentNeeded.hide() $PercentRolled.hide() $DegreeOfSuccess.hide() $RolledValues.hide() dieManager.clearData() dieManager.setDieManager(desiredDice, neededPercentageToPass)