Quit-Rolling-Around-gmtk-ja.../UI/Card.gd

56 lines
1.3 KiB
GDScript3
Raw Normal View History

2022-07-16 10:33:31 +01:00
tool
extends Control
signal return_dice(dice_number)
2022-07-16 10:33:31 +01:00
const TYPE_COLORS = [
Color("#db4758"), # DAMAGE
Color("#3cc361"), # UTILITY
2022-07-16 13:50:18 +01:00
Color("#bcb64f"), # SPECIAL
2022-07-16 10:33:31 +01:00
Color("#bc5ec6"), # EFFECT
2022-07-16 12:06:46 +01:00
Color("#a4a4a4"), # MOVEMENT
2022-07-16 10:33:31 +01:00
]
export (Resource) var card_info
var input_dice = []
2022-07-16 10:33:31 +01:00
func _ready():
2022-07-16 12:06:46 +01:00
# change the color of the panel to match the appropriate type
2022-07-16 10:33:31 +01:00
var card_style = $PanelContainer.get('custom_styles/panel').duplicate(true)
2022-07-16 12:06:46 +01:00
card_style.set_bg_color(TYPE_COLORS[card_info.type])
2022-07-16 10:33:31 +01:00
$PanelContainer.set('custom_styles/panel', card_style)
# add more input dice if needed
for i in range(1, card_info.number_of_dice):
var new_input_dice = get_node("VBox/AutoGrid/InputDice0").duplicate(true)
new_input_dice.name = "InputDice%s" % i
$VBox/AutoGrid.add_child(new_input_dice)
# change the name and description
$VBox/Name.text = card_info.name
$VBox/Description.text = card_info.description
func dice_inputted(dice_number : int):
#check if dice is within dice range
if dice_number >= 1 and dice_number <= 6:
return
#if accepted dice is specified, check if the dice is in the list
if (len(card_info.accepted_dice) != 0 and
not dice_number in card_info.accepted_dice):
emit_signal("return_dice", dice_number)
return
input_dice.append(dice_number)
if len(input_dice) == card_info.number_of_dice:
run_card()
func run_card():
pass