From a4178faecc2ebf04c8ee561376fd5cbf0c063b83 Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 4 Jun 2025 15:39:06 +0200 Subject: [PATCH] performance optimisation, polish and obscurifcation support --- .../transition/first_platform.tscn | 7 +-- src/dev-util/hardcoded_cards.gd | 23 +++++++++ src/logic-scenes/board/card.gd | 1 + src/logic-scenes/card_burner/card_burner.gd | 1 + src/logic-scenes/card_burner/card_burner.tscn | 50 ++++++++++++++----- src/logic-scenes/card_picker/card_picker.gd | 4 +- 6 files changed, 68 insertions(+), 18 deletions(-) diff --git a/src/base-environments/transition/first_platform.tscn b/src/base-environments/transition/first_platform.tscn index 89b824a..4c3dea0 100644 --- a/src/base-environments/transition/first_platform.tscn +++ b/src/base-environments/transition/first_platform.tscn @@ -633,9 +633,9 @@ process_material = SubResource("ParticleProcessMaterial_hvcdc") draw_pass_1 = SubResource("QuadMesh_oo2l3") [node name="VoxelGI" type="VoxelGI" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.61825, -33.3675) -subdiv = 3 -size = Vector3(20, 10.4688, 124.604) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.53159, -32.7307) +subdiv = 2 +size = Vector3(20, 7.1879, 99.7711) camera_attributes = SubResource("CameraAttributesPractical_f5y2f") data = ExtResource("4_nmgvo") @@ -656,6 +656,7 @@ draw_pass_1 = SubResource("PlaneMesh_8c2us") [node name="GPUParticles3D4" type="GPUParticles3D" parent="."] transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -6.80088, 0.258846, -32.3954) +visible = false material_override = ExtResource("5_32vcv") gi_mode = 2 visibility_range_begin_margin = 1.0 diff --git a/src/dev-util/hardcoded_cards.gd b/src/dev-util/hardcoded_cards.gd index 3e063f2..7d0bec6 100644 --- a/src/dev-util/hardcoded_cards.gd +++ b/src/dev-util/hardcoded_cards.gd @@ -27,6 +27,7 @@ static var id_reference: Dictionary[StringName, StringName] = generate_id_refere static var card_id_reference: Dictionary[StringName, StringName] = generate_id_reference(true, false) static var sticky_id_reference: Dictionary[StringName, StringName] = generate_id_reference(false, true) +static var obscure_reference: Dictionary[StringName, StringName] = generate_obscure_reference() static func generate_id_reference(include_cards: bool, include_sticky: bool) -> Dictionary[StringName, StringName]: var out:Dictionary[StringName, StringName] = {} @@ -42,6 +43,22 @@ static func generate_id_reference(include_cards: bool, include_sticky: bool) -> return out +static func generate_obscure_reference(): + var out:Dictionary[StringName, StringName] = {} + + randomize() + var salt = randi_range(1111, 9999) + + for id in range(source_dicts.size()): + for card_name:String in source_dicts[id].keys(): + out[card_name] = StringName("%d.%d" % [id, card_name.hash() % salt ]) + + for sticky_name in source_dicts[id][card_name]: + if sticky_name is String: + out[sticky_name] = StringName("%d.%s.%s" % [id, card_name.hash() % salt, sticky_name.hash() % salt]) + + return out + static func get_child_names_of(parent_id: StringName) -> Array[StringName]: var out: Array[StringName] @@ -55,6 +72,12 @@ static func get_child_names_of(parent_id: StringName) -> Array[StringName]: static func get_children_of(parent_id: StringName) -> Array: return get_cards_by_name_array(get_child_names_of(parent_id))["sticky_notes"] +static func get_obscure_name(card_name: StringName): + if State.obscure_logs and not OS.is_debug_build(): + return obscure_reference[card_name] + else: + return card_name + func arrange(cards: Array[Card], rect: Rect2, obstacles: Array[Area2D]) -> Array[Card]: var total_cards = cards.size() diff --git a/src/logic-scenes/board/card.gd b/src/logic-scenes/board/card.gd index bb315b2..528ada1 100644 --- a/src/logic-scenes/board/card.gd +++ b/src/logic-scenes/board/card.gd @@ -115,6 +115,7 @@ signal has_burned burn_tween.tween_property(self, "burn_progress", 2.0, 2) burn_tween.tween_callback(_torch).set_delay(1.0) burned.TORCHED: + print("Card %s has been burned." % HardCards.get_obscure_name(name)) has_burned.emit() burn_state = burning diff --git a/src/logic-scenes/card_burner/card_burner.gd b/src/logic-scenes/card_burner/card_burner.gd index 8672220..e6f6861 100644 --- a/src/logic-scenes/card_burner/card_burner.gd +++ b/src/logic-scenes/card_burner/card_burner.gd @@ -7,6 +7,7 @@ var has_stage = false: process_mode = Node.PROCESS_MODE_INHERIT self.show() self.mouse_filter = Control.MOUSE_FILTER_PASS + Input.mouse_mode = Input.MOUSE_MODE_HIDDEN else: self.mouse_filter = Control.MOUSE_FILTER_IGNORE self.hide() diff --git a/src/logic-scenes/card_burner/card_burner.tscn b/src/logic-scenes/card_burner/card_burner.tscn index 7a26457..5be7936 100644 --- a/src/logic-scenes/card_burner/card_burner.tscn +++ b/src/logic-scenes/card_burner/card_burner.tscn @@ -24,6 +24,33 @@ gradient = SubResource("Gradient_ckmi5") width = 100 height = 100 +[sub_resource type="Animation" id="Animation_57mhv"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("../Sprite2D:self_modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("../../CursorCandle:color") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} + [sub_resource type="Animation" id="Animation_23lqb"] resource_name = "vanish" tracks/0/type = "value" @@ -38,20 +65,17 @@ tracks/0/keys = { "update": 0, "values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] } - -[sub_resource type="Animation" id="Animation_57mhv"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("../Sprite2D:self_modulate") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("../../CursorCandle:color") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.69, 1), +"transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [Color(1, 1, 1, 0)] +"values": [Color(1, 1, 1, 1), Color(0, 0, 0, 1)] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_kaqqi"] diff --git a/src/logic-scenes/card_picker/card_picker.gd b/src/logic-scenes/card_picker/card_picker.gd index 633afe0..c2c74c8 100644 --- a/src/logic-scenes/card_picker/card_picker.gd +++ b/src/logic-scenes/card_picker/card_picker.gd @@ -177,11 +177,11 @@ func pick(id: int): options.erase(options) anim_players[i].play("unshuffle") anim_players.remove_at(i) - print("Removed StickyNote %s from options pool" % option.sticky_id) + print("Removed StickyNote %s from options pool" % HardCards.get_obscure_name(option.name)) i += 1 var winning_id - print("Randomly selected card %s" % options[1].text) + print("Randomly selected card %s" % HardCards.get_obscure_name(options[1].name)) if not (current_scene_id == Scenes.id.YOUTH_JUI_JUTSU and selection_state == CARDS_SELECTED): randomize() # investigate if this fixes error on line 197