marking cards that were picked randomly

This commit is contained in:
betalars 2025-06-03 01:48:52 +02:00
parent c4a28a31bb
commit 32580bef98
3 changed files with 24 additions and 3 deletions

View File

@ -162,10 +162,14 @@ func populate_board(card_names: Array[StringName]):
var all_new:Dictionary = HardCards.get_cards_by_name_array(card_names)
# spawning the cards and adding them to the dictionary
for new_card in all_new["cards"]:
for new_card: Card in all_new["cards"]:
add_card(new_card, false)
for new_sticky_note in all_new["sticky_notes"]: # spawning a sticky note
# marking the first card as random picks
new_card.picked_random = new_card.name == card_names[1]
for new_sticky_note: StickyNote in all_new["sticky_notes"]: # spawning a sticky note
add_sticky_note(new_sticky_note, false)
# marking the first sticky as random picks
new_sticky_note.picked_random = new_sticky_note.name == card_names[3]
#currently_active_node = area_dict["dropzone_content"][0] # set first Card as currently selected node by default
currently_active_node = dropzone.get_child(0)
@ -485,15 +489,20 @@ func on_sticky_panel_cleared():
func get_save_dict() -> Dictionary:
var cards: Dictionary = {}
var stickies: Dictionary = {}
var randoms: Array[StringName]
for child in dropzone.get_children():
if child is Card:
# Save position of Card.
cards[child.name] = child.transform.origin
if child.picked_random:
randoms.append(child)
if child.has_sticky_note_attached():
# Saves Card Name as position of it's children.
stickies[child.get_attached_sticky_note().name] = child.name
if child.get_attached_sticky_note().picked_random:
randoms.append(child.get_attached_sticky_note().card_id)
elif child is StickyNote:
# Save position of StickyNote.
@ -505,7 +514,8 @@ func get_save_dict() -> Dictionary:
stickies[child.attached_sticky_note.name] = -1
return {
"cards": cards,
"stickies": stickies
"stickies": stickies,
"randoms": randoms
}
@ -521,6 +531,9 @@ func rebuild_from_savedict(board_state:Dictionary):
var stickies: Dictionary[StringName, Variant]
if board_state["stickies"] != {} :
stickies = board_state["stickies"]
var randoms: Array[StringName]
if board_state["randoms"] != {} :
randoms = board_state["randoms"]
if cards == null and stickies == null: return
@ -531,6 +544,7 @@ func rebuild_from_savedict(board_state:Dictionary):
card.transform.origin = cards[card.name]# Replacing position reference with card reference! Needed in next loop.
cards[card.name] = card
text_recovery[card.name] = card.text
card.picked_random == randoms.has( card.card_id )
for sticky:StickyNote in card_pile["sticky_notes"]:
text_recovery[sticky.name] = sticky.text
if stickies[sticky.name] == -1:
@ -540,6 +554,7 @@ func rebuild_from_savedict(board_state:Dictionary):
else:
insert_area(dropzone, sticky)
sticky.transform.origin = stickies[sticky.name]
sticky.picked_random == randoms.has( sticky.card_id )
func validate_board():
return

View File

@ -29,6 +29,9 @@ var transfor_arr: Array[Transform2D] = [
_on_text_updated()
var label:Label
var background_sprite: AnimatedSprite2D
@export var picked_random: bool = false
@export var wiggle_strength: float = 0.2
@export var wiggle_speed: float = 5
@export_range(1, 2) var scale_bump: float = 1.05
@ -63,6 +66,7 @@ var background_sprite: AnimatedSprite2D
@export var is_dragable: bool = false
@export var diameter = 336.0
var sticky_note_position: Vector2 = Vector2(-66, 83)
var collider: Shape2D

View File

@ -31,6 +31,8 @@ var content: Node2D
var label: Label
var background_sprite: AnimatedSprite2D
@export var picked_random: bool = false
@export var shift_by: Vector2 = Vector2(-32, 0)
@export_color_no_alpha var highlight_color: Color = Color(1.5, 1.5, 1.5)
@export var highlighted: bool = false: