Dice now showing on different locations

Godot Version

4.7.stable

Question

I am trying to have my dice show up on different locations around my tower but instead, they are showing on the same spot. See video link below:

I wanted to have the dice show on different spots, so it looks like the player has a number of dice rolling at the same time around the tower.

Screenshots are how I have my nodes arrainged:

The ‘Upgrades’ node has the code below:

extends Control

const upgrade_btn_text: String = "Scout for upgrades"
@onready var upgrades_canvas_layer: CanvasLayer = $"Upgrades-CanvasLayer"
@export var die_texture_array: Array[AtlasTexture]
@onready var upgrade_buttons: VBoxContainer = $"Upgrades-CanvasLayer/Panel/VBoxContainer/HBoxContainer/Upgrade_buttons"
@onready var upgrades_btn: Button = $"../Main_CanvasLayer/VBoxContainer/HBoxContainer2/Upgrades_btn"
@onready var upgrades_timer: Timer = $Upgrades_timer
var button_status: bool = false

@onready var attack_range: CollisionShape2D = $"../Wizard_tower/Orb/Attack_range"
@onready var passive_upgrade: Button = $"Upgrades-CanvasLayer/Panel/VBoxContainer/HBoxContainer/Passive_Upgrade"

@onready var wizard_tower: Node2D = $"../Wizard_tower"

@onready var button_1: Button = $"Upgrades-CanvasLayer/Panel/VBoxContainer/HBoxContainer/Upgrade_buttons/Button1"
@onready var button_2: Button = $"Upgrades-CanvasLayer/Panel/VBoxContainer/HBoxContainer/Upgrade_buttons/Button2"
@onready var button_3: Button = $"Upgrades-CanvasLayer/Panel/VBoxContainer/HBoxContainer/Upgrade_buttons/Button3"

const RANGE_UPGRADE = preload("uid://b8pr33uvwsctk")
const WIZARD_TOWER_ADDON_RIGHT = preload("uid://cqv018que5l3a")

@onready var main: Node = $".."
@onready var hovering_dice_scene = load("res://Scenes/hovering-dice.tscn")

var upgrade_chooser: CompressedTexture2D
var upgrades_array = [
	RANGE_UPGRADE,
	WIZARD_TOWER_ADDON_RIGHT
]

var die_chooser_dictionary: Dictionary = {
	"Bone_Dice": [0, 2, 5, 9, 14],
	"Gold_Dice": [20, 22, 25, 29, 34],

}

var available_die_material: Array = [
	"Bone_Dice",
	
]

var min_index_array: Array = []

var die_btn_array: Array = [
	button_1,
	button_2,
	button_3
]

func _ready():
	upgrades_btn.text = upgrade_btn_text

func _process(_delta: float):
	if button_status == true and upgrades_timer.time_left > 0:
		upgrades_btn.text = str("%0*d" % [0, upgrades_timer.time_left]) + " seconds left"
	if button_status == true and upgrades_timer.time_left == 0:
		upgrades_canvas_layer.visible = true

func _on_upgrades_btn_pressed():
	upgrades_timer.start()
	button_status = true

func populate_buttons():
	passive_upgrade.disabled = false
	upgrades_canvas_layer.visible = true
	for btn in upgrade_buttons.get_children():
		var random_dict_key = available_die_material.pick_random()
		var random_die_index = die_chooser_dictionary[random_dict_key].pick_random()
		btn.icon = die_texture_array[random_die_index]
		min_index_array.append(random_die_index)
	upgrade_chooser = upgrades_array.pick_random()
	passive_upgrade.icon = upgrade_chooser

func _on_button_1_pressed():
	var random_dict_key = available_die_material.pick_random()
	var random_die_index = die_chooser_dictionary[random_dict_key].pick_random()
	Globals.index_min_face = random_die_index
	#Clears the array for the next round of upgrades
	min_index_array.clear()
	button_1.disabled = true
	button_2.disabled = true
	button_3.disabled = true
	#Include code to trigger the instantiation of a hovering-dice scene
	hovering_dice_scene.instantiate()

func _on_button_2_pressed():
	var random_dict_key = available_die_material.pick_random()
	var random_die_index = die_chooser_dictionary[random_dict_key].pick_random()
	Globals.index_min_face = random_die_index
	#Clears the array for the next round of upgrades
	min_index_array.clear()
	button_1.disabled = true
	button_2.disabled = true
	button_3.disabled = true
	#Include code to trigger the instantiation of a hovering-dice scene

func _on_button_3_pressed():
	var random_dict_key = available_die_material.pick_random()
	var random_die_index = die_chooser_dictionary[random_dict_key].pick_random()
	Globals.index_min_face = random_die_index
	#Clears the array for the next round of upgrades
	min_index_array.clear()
	button_1.disabled = true
	button_2.disabled = true
	button_3.disabled = true
	#Include code to trigger the instantiation of a hovering-dice scene

func _on_ok_button_pressed():
	upgrades_canvas_layer.visible = false
	button_status = false

func _on_passive_upgrade_pressed():
	match upgrade_chooser:
		RANGE_UPGRADE: range_upgrade()
		WIZARD_TOWER_ADDON_RIGHT: add_platform()
	passive_upgrade.disabled = true

func add_platform():
	wizard_tower.add_platform_upgrade()

func range_upgrade():
	if attack_range.shape.radius < 1000:
		attack_range.shape.radius += 50

func _on_upgrades_timer_timeout():
	populate_buttons()