diff --git a/src/dev-util/hardcoded_cards.gd b/src/dev-util/hardcoded_cards.gd index ce2706cb..aed082bc 100644 --- a/src/dev-util/hardcoded_cards.gd +++ b/src/dev-util/hardcoded_cards.gd @@ -1,10 +1,15 @@ -class_name HardcodedCards extends Control +class_name CardLibrary extends Control -@onready var card_prefab : PackedScene = preload("res://logic-scenes/board/card.tscn") -@onready var void_prefab : PackedScene = preload("res://logic-scenes/board/void_card.tscn") -@onready var note_prefab : PackedScene = preload("res://logic-scenes/board/sticky-note.tscn") +static var card_prefab : PackedScene = preload("res://logic-scenes/board/card.tscn") +static var void_prefab : PackedScene = preload("res://logic-scenes/board/void_card.tscn") +static var note_prefab : PackedScene = preload("res://logic-scenes/board/sticky-note.tscn") -var source_dicts: Array[Dictionary] = [ +static var source_dicts: Array[Dictionary] = [ + { # These provisionary cards are not being used in the game right now. This makes sure this is synced with [SceneReference.ids] + "c_for_a_friend": ["p_a", "p_b", []], + "c_for_the_character": ["p_c", "p_d", []], + "c_for_myself": ["p_e", "p_f", []] + }, { "c_out_of_world": ["p_unique", "p_few_friends", []], "c_rejection": ["p_finding_friends", "p_laughed_at", []], @@ -25,6 +30,11 @@ var source_dicts: Array[Dictionary] = [ "c_void": ["p_wet", "p_stop", []], "c_hit": ["p_confidence", "p_vent", ["p_becoming_teacher"]] }, + { # These provisionary cards are not being used in the game right now. This makes sure this is synced with [SceneReference.ids] + "c_growing_up_1": ["p_g", "p_h", []], + "c_growing_up_2": ["p_i", "p_j", []], + "c_growing_up_3": ["p_k", "p_l", []] + }, { "c_seen": ["p_understanding_self", "p_starting_change", []], "c_autistic": ["p_always_afraid", "p_in_hindsight", []], @@ -67,13 +77,13 @@ var source_dicts: Array[Dictionary] = [ }, ] -var all_ids: Dictionary[StringName, StringName] = generate_id_reference(true, true) -var card_ids: Dictionary[StringName, StringName] = generate_id_reference(true, false) +static var all_ids: Dictionary[StringName, StringName] = generate_id_reference(true, true) +static var card_ids: Dictionary[StringName, StringName] = generate_id_reference(true, false) -var sticky_ids: Dictionary[StringName, StringName] = generate_id_reference(false, true) -var obscure_ids: Dictionary[StringName, StringName] = generate_obscure_reference() +static var sticky_ids: Dictionary[StringName, StringName] = generate_id_reference(false, true) +static var obscure_ids: Dictionary[StringName, StringName] = generate_obscure_reference() -func generate_id_reference(include_cards: bool, include_sticky: bool) -> Dictionary[StringName, StringName]: +static func generate_id_reference(include_cards: bool, include_sticky: bool) -> Dictionary[StringName, StringName]: var out:Dictionary[StringName, StringName] = {} for id in range(source_dicts.size()): @@ -87,7 +97,7 @@ func generate_id_reference(include_cards: bool, include_sticky: bool) -> Diction return out -func generate_obscure_reference(): +static func generate_obscure_reference(): var out:Dictionary[StringName, StringName] = {} randomize() @@ -104,7 +114,7 @@ func generate_obscure_reference(): return out -func get_child_names_of(parent_id: StringName) -> Array[StringName]: +static func get_child_names_of(parent_id: StringName) -> Array[StringName]: var out: Array[StringName] for child_name: StringName in all_ids.keys(): if all_ids[child_name].contains(parent_id): @@ -113,16 +123,16 @@ func get_child_names_of(parent_id: StringName) -> Array[StringName]: return out #FIXME: enhance typing! -func get_children_of(parent_id: StringName) -> Array: +static func get_children_of(parent_id: StringName) -> Array: return get_cards_by_name_array(get_child_names_of(parent_id))["sticky_notes"] -func get_obscure_name(card_name: StringName): +static func get_obscure_name(card_name: StringName): if State.obscure_logs and not OS.is_debug_build(): return obscure_ids[card_name] else: return card_name -func arrange(cards: Array[Card], rect: Rect2, _obstacles: Array[Area2D]) -> Array[Card]: +static func arrange(cards: Array[Card], rect: Rect2, _obstacles: Array[Area2D]) -> Array[Card]: var x:int = 0 var y:int = 0 var i:int = 0 @@ -166,7 +176,7 @@ func arrange(cards: Array[Card], rect: Rect2, _obstacles: Array[Area2D]) -> Arra return r_cards -func is_out_of_bounds(card: Card, rect: Rect2): +static func is_out_of_bounds(card: Card, rect: Rect2): var world_boundaries: Array[Transform2D] = [ Transform2D(PI, rect.position), Transform2D(PI/2, rect.position), @@ -180,7 +190,7 @@ func is_out_of_bounds(card: Card, rect: Rect2): return true return false -func get_cards_by_scene_id(id: int) -> Array[Card]: +static func get_cards_by_scene_id(id: int) -> Array[Card]: var output:Array[Card] for card_name in source_dicts[id].keys(): @@ -192,7 +202,7 @@ func get_cards_by_scene_id(id: int) -> Array[Card]: return output -func _create_card(card_name: StringName) -> Card: +static func _create_card(card_name: StringName) -> Card: match card_name: &"c_void": return void_prefab.instantiate() as Card &"3.c_void": return void_prefab.instantiate() as Card @@ -200,7 +210,7 @@ func _create_card(card_name: StringName) -> Card: # used to put cards on the dev board -func get_cards_by_name_array(names: Array[StringName]) -> Dictionary[String, Array]: +static func get_cards_by_name_array(names: Array[StringName]) -> Dictionary[String, Array]: var output:Dictionary[String, Array] = { "cards": [], "sticky_notes": [] @@ -217,7 +227,7 @@ func get_cards_by_name_array(names: Array[StringName]) -> Dictionary[String, Arr return output -func create_from_id(id:StringName) -> Area2D: +static func create_from_id(id:StringName) -> Area2D: var parsed: PackedStringArray = id.rsplit(".") if card_ids.values().has(id): var card := _create_card(id) diff --git a/src/dev-util/hardcoded_cards.tscn b/src/dev-util/hardcoded_cards.tscn index 73d378e5..c99370ce 100644 --- a/src/dev-util/hardcoded_cards.tscn +++ b/src/dev-util/hardcoded_cards.tscn @@ -1,8 +1,8 @@ -[gd_scene load_steps=2 format=3 uid="uid://dckj4hhl42v8u"] +[gd_scene format=3 uid="uid://dckj4hhl42v8u"] [ext_resource type="Script" uid="uid://dysgoaaesqjbg" path="res://dev-util/hardcoded_cards.gd" id="1_5kg6w"] -[node name="HardcodedCards" type="PanelContainer"] +[node name="HardcodedCards" type="PanelContainer" unique_id=1337833972] process_mode = 4 visible = false anchors_preset = 15 diff --git a/src/dev-util/static_board_of_devs.tscn b/src/dev-util/static_board_of_devs.tscn index 3d999b20..3294b17f 100644 --- a/src/dev-util/static_board_of_devs.tscn +++ b/src/dev-util/static_board_of_devs.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=2 format=3 uid="uid://cnaffkv2n4gy5"] +[gd_scene format=3 uid="uid://cnaffkv2n4gy5"] [ext_resource type="Script" uid="uid://dysgoaaesqjbg" path="res://dev-util/hardcoded_cards.gd" id="1_ba1m7"] -[node name="Node2D" type="Node2D"] +[node name="Node2D" type="Node2D" unique_id=1954072042] script = ExtResource("1_ba1m7") diff --git a/src/logic-scenes/board/card-board.gd b/src/logic-scenes/board/card-board.gd index fa72409a..2296e14f 100644 --- a/src/logic-scenes/board/card-board.gd +++ b/src/logic-scenes/board/card-board.gd @@ -175,7 +175,7 @@ func populate_board(names: Array[StringName]): names = _ensure_unique(names) - var all_new:Dictionary = HardCards.get_cards_by_name_array(names) + var all_new:Dictionary = CardLibrary.get_cards_by_name_array(names) all_names.append_array(all_new.keys()) for new_card: Card in all_new["cards"]: diff --git a/src/logic-scenes/card_burner/card_burner.gd b/src/logic-scenes/card_burner/card_burner.gd index 8e8aae9c..18a307c0 100644 --- a/src/logic-scenes/card_burner/card_burner.gd +++ b/src/logic-scenes/card_burner/card_burner.gd @@ -56,7 +56,7 @@ func _populate() -> void: print("CardBurner: Found %d cards to choose from" % card_names.size()) # 2. Get card instances and shuffle them - var stack : Array = HardCards.get_cards_by_name_array(card_names)["cards"] + var stack : Array = CardLibrary.get_cards_by_name_array(card_names)["cards"] stack.shuffle() cards = [] diff --git a/src/logic-scenes/card_picker/card_picker.gd b/src/logic-scenes/card_picker/card_picker.gd index 3ea3c05d..5b11ba95 100644 --- a/src/logic-scenes/card_picker/card_picker.gd +++ b/src/logic-scenes/card_picker/card_picker.gd @@ -64,7 +64,7 @@ func reset(): for player in anim_players: player.play("reveal") func fill_card_slots(id: int): - var new_cards : Array[Card] = HardCards.get_cards_by_scene_id(id) + var new_cards : Array[Card] = CardLibrary.get_cards_by_scene_id(id) for i in range(new_cards.size()): $cards.get_child(i).remove_child($cards.get_child(i).get_child(1)) @@ -79,7 +79,7 @@ func fill_card_slots(id: int): func fill_post_slots(): var sticky_notes: Array[StickyNote] = [] for card: Card in output: - sticky_notes.append_array(HardCards.get_children_of(card.card_id)) + sticky_notes.append_array(CardLibrary.get_children_of(card.card_id)) for note:StickyNote in sticky_notes: note.current_handle = self @@ -143,11 +143,11 @@ func pick(id: int) -> void: options.erase(option) anim_players[i].play("unshuffle") anim_players.remove_at(i) - print("Removed StickyNote %s from options pool" % HardCards.get_obscure_name(option.name)) + print("Removed StickyNote %s from options pool" % CardLibrary.get_obscure_name(option.name)) i += 1 var winning_id - print("Randomly selected card %s" % HardCards.get_obscure_name(options[1].name)) + print("Randomly selected card %s" % CardLibrary.get_obscure_name(options[1].name)) if not (current_scene_id == Scenes.id.YOUTH_JUI_JUTSU and selection_state == CARDS_SELECTED): randomize() winning_id = randi() % options.size() - ( 1 if selection_state == POSTS_SELECTED else 0)