more work on the ui theme and changing the hud

This commit is contained in:
2025-11-05 08:28:07 +11:00
parent 2f4159ebbe
commit f257a5df68
187 changed files with 806 additions and 799 deletions

View File

@@ -1,7 +1,7 @@
[gd_scene load_steps=9 format=3 uid="uid://1b2ikdanl66b"]
[ext_resource type="Script" uid="uid://bivtfdl3p1brv" path="res://Scenes/CardPrinter/card_printer.gd" id="1_qft15"]
[ext_resource type="PackedScene" uid="uid://bcvjgl0s1wp8y" path="res://choose_card_screen.tscn" id="2_kpujb"]
[ext_resource type="PackedScene" uid="uid://bcvjgl0s1wp8y" path="res://UI/Menus/RadioMenu/choose_card_screen.tscn" id="2_kpujb"]
[ext_resource type="Script" uid="uid://dkfswql8ui0bt" path="res://Scripts/interact_button.gd" id="4_eavi1"]
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://Audio/shot1.wav" id="5_m033a"]

View File

@@ -1,7 +0,0 @@
class_name CharacterPodium extends Node3D
@export var text: String = ""
func show_content() -> void:
$Base/Content.visible = true

View File

@@ -1 +0,0 @@
uid://bc0xyfr5nj1ul

View File

@@ -1,40 +0,0 @@
class_name CharacterPreview extends PanelContainer
@export var tower_label_scene: PackedScene
@export var tower_label_container: VBoxContainer
@export var hero_name_label: Label
var added_tags: Array[TowerLabel] = []
var regular_label: Label = null
func set_preview(hero: HeroClass) -> void:
hero_name_label.text = tr(hero.hero_name)
if regular_label:
regular_label.queue_free()
regular_label = null
for tag: TowerLabel in added_tags:
tag.queue_free()
added_tags = []
var added_labels: Array[Card] = []
for card: Card in hero.deck:
if !added_labels.has(card):
var new_label: TowerLabel = tower_label_scene.instantiate() as TowerLabel
new_label.change_label(tr(card.display_name), str(hero.deck.count(card)))
added_labels.append(card)
tower_label_container.add_child(new_label)
added_tags.append(new_label)
func setup_with_basic_text(hero: HeroClass, text: String) -> void:
hero_name_label.text = tr(hero.hero_name)
if regular_label:
regular_label.queue_free()
regular_label = null
for tag: TowerLabel in added_tags:
tag.queue_free()
added_tags = []
var new_label: Label = Label.new()
new_label.text = text
tower_label_container.add_child(new_label)
regular_label = new_label

View File

@@ -1 +0,0 @@
uid://b1ucgfqilvr67

View File

@@ -1,79 +0,0 @@
class_name CharacterSelect extends Node3D
signal hero_selected(hero_class: int)
signal hero_confirmed()
@export var hero_preview_panel: CharacterPreview
var podiums: Array[CharacterPodium]
var character_selected: int = 0
var can_hit_button: bool = true
func _ready() -> void:
hero_preview_panel.set_preview(Data.characters[0])
var heroes: int = Data.characters.size()
var x: int = 0
for hero: HeroClass in Data.characters:
var pivot: Node3D = Node3D.new()
$Podiums.add_child(pivot)
var podium: CharacterPodium = hero.podium.instantiate() as CharacterPodium
podium.position = Vector3(0.0, -0.5, 5.0)
podiums.append(podium)
pivot.add_child(podium)
pivot.rotate_y((TAU / heroes) * x)
x += 1
podiums[0].show_content()
if Data.save_data.mage_unlocked:
podiums[1].show_content()
func reset_button() -> void:
can_hit_button = true
func setup_ui() -> void:
#TODO: This should all tie into a proper achievements system
if character_selected == 0 or (character_selected == 1 and Data.save_data.mage_unlocked):
$Controls/ConfirmButton.disabled = false
hero_preview_panel.set_preview(Data.characters[character_selected])
hero_selected.emit(character_selected)
elif character_selected == 1 and !Data.save_data.mage_unlocked and Data.save_data.mage_card_seen_in_shop:
hero_preview_panel.setup_with_basic_text(Data.characters[character_selected], "Buy " + str(Data.save_data.mage_cards_bought) + "/10 scrolls in the shop to unlock")
else:
$Controls/ConfirmButton.disabled = true
hero_preview_panel.setup_with_basic_text(Data.characters[character_selected], podiums[character_selected].text)
func retreat_selector() -> void:
if !can_hit_button:
return
can_hit_button = false
var tween: Tween = create_tween()
tween.set_ease(Tween.EASE_OUT)
tween.set_trans(Tween.TRANS_CUBIC)
tween.tween_property($Node3D, "rotation_degrees", Vector3(0.0, $Node3D.rotation_degrees.y - 90.0, 0.0), 1.0)
tween.tween_callback(reset_button)
character_selected -= 1
if character_selected < 0:
character_selected = Data.characters.size() - 1
setup_ui()
func advance_selector() -> void:
if !can_hit_button:
return
can_hit_button = false
var tween: Tween = create_tween()
tween.set_ease(Tween.EASE_OUT)
tween.set_trans(Tween.TRANS_CUBIC)
tween.tween_property($Node3D, "rotation_degrees", Vector3(0.0, $Node3D.rotation_degrees.y + 90.0, 0.0), 1.0)
tween.tween_callback(reset_button)
character_selected += 1
if character_selected >= Data.characters.size():
character_selected = 0
setup_ui()
func _on_confirm_button_pressed() -> void:
hero_confirmed.emit()

View File

@@ -1 +0,0 @@
uid://plrd0ckxrabh

View File

@@ -1,96 +0,0 @@
[gd_scene load_steps=7 format=3 uid="uid://bc6m3cluulpis"]
[ext_resource type="Script" uid="uid://plrd0ckxrabh" path="res://Scenes/Menus/CharacterSelect/character_select.gd" id="1_lqqhx"]
[ext_resource type="Script" uid="uid://b1ucgfqilvr67" path="res://Scenes/Menus/CharacterSelect/character_preview.gd" id="9_8d0rx"]
[ext_resource type="PackedScene" uid="uid://clabkhnbn75rf" path="res://UI/tower_label.tscn" id="10_jdigy"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_tlgw2"]
sky_horizon_color = Color(0.662243, 0.671743, 0.686743, 1)
ground_horizon_color = Color(0.662243, 0.671743, 0.686743, 1)
energy_multiplier = 0.0
[sub_resource type="Sky" id="Sky_atdxu"]
sky_material = SubResource("ProceduralSkyMaterial_tlgw2")
[sub_resource type="Environment" id="Environment_pq6wd"]
background_mode = 2
sky = SubResource("Sky_atdxu")
tonemap_mode = 2
glow_enabled = true
[node name="CharacterSelect" type="Node3D" node_paths=PackedStringArray("hero_preview_panel")]
script = ExtResource("1_lqqhx")
hero_preview_panel = NodePath("PanelContainer")
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_pq6wd")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(-0.866023, -0.433016, 0.250001, 0, 0.499998, 0.866027, -0.500003, 0.749999, -0.43301, 0, 0, 0)
light_energy = 0.0
shadow_enabled = true
[node name="Node3D" type="Node3D" parent="."]
[node name="Camera3D" type="Camera3D" parent="Node3D"]
transform = Transform3D(1, 0, 0, 0, 0.976893, 0.21373, 0, -0.21373, 0.976893, 0, 2.25535, 10.9009)
cull_mask = 1047553
fov = 39.4
[node name="PanelContainer" type="PanelContainer" parent="." node_paths=PackedStringArray("tower_label_container", "hero_name_label")]
anchors_preset = -1
anchor_left = 0.05
anchor_top = 0.5
anchor_right = 0.05
anchor_bottom = 0.5
grow_vertical = 2
script = ExtResource("9_8d0rx")
tower_label_scene = ExtResource("10_jdigy")
tower_label_container = NodePath("HBoxContainer2/HBoxContainer")
hero_name_label = NodePath("HBoxContainer2/Label")
[node name="HBoxContainer2" type="VBoxContainer" parent="PanelContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PanelContainer/HBoxContainer2"]
auto_translate_mode = 2
layout_mode = 2
text = "character name"
horizontal_alignment = 1
vertical_alignment = 1
[node name="HSeparator" type="HSeparator" parent="PanelContainer/HBoxContainer2"]
layout_mode = 2
[node name="HBoxContainer" type="VBoxContainer" parent="PanelContainer/HBoxContainer2"]
layout_mode = 2
[node name="Controls" type="VBoxContainer" parent="."]
anchors_preset = -1
anchor_left = 0.5
anchor_top = 0.95
anchor_right = 0.5
anchor_bottom = 0.95
grow_horizontal = 2
grow_vertical = 0
[node name="HBoxContainer" type="HBoxContainer" parent="Controls"]
layout_mode = 2
[node name="PrevButton" type="Button" parent="Controls/HBoxContainer"]
layout_mode = 2
text = "BUTTON_PREVIOUS"
[node name="NextButton" type="Button" parent="Controls/HBoxContainer"]
layout_mode = 2
text = "BUTTON_NEXT"
[node name="ConfirmButton" type="Button" parent="Controls"]
layout_mode = 2
text = "BUTTON_CONFIRM"
[node name="Podiums" type="Node3D" parent="."]
[connection signal="pressed" from="Controls/HBoxContainer/PrevButton" to="." method="retreat_selector"]
[connection signal="pressed" from="Controls/HBoxContainer/NextButton" to="." method="advance_selector"]
[connection signal="pressed" from="Controls/ConfirmButton" to="." method="_on_confirm_button_pressed"]

View File

@@ -1,46 +0,0 @@
class_name GameEndScreen extends PanelContainer
@export var box: PackedScene
@export var outcome_label: Label
@export var winrate_label: Label
@export var total_games_label: Label
@export var total_wins_label: Label
@export var total_losses_label: Label
@export var undefeated_enemies: VBoxContainer
var game_manager: GameManager
func _ready() -> void:
winrate_label.text = str(Data.save_data.winrate) + "%"
total_games_label.text = str(Data.save_data.wins + Data.save_data.losses)
total_wins_label.text = str(Data.save_data.wins)
total_losses_label.text = str(Data.save_data.losses)
for wave_key: int in game_manager.stats.enemies_undefeated:
var spawned_box: EnemyBox = box.instantiate() as EnemyBox
undefeated_enemies.add_child(spawned_box)
spawned_box.set_wave(wave_key)
for enemy_key: Enemy in game_manager.stats.enemies_undefeated[wave_key]:
spawned_box.add_enemy_tag(enemy_key, game_manager.stats.enemies_undefeated[wave_key][enemy_key])
func set_outcome_message(message: String) -> void:
outcome_label.text = message
func _on_quit_button_pressed() -> void:
game_manager.scene_switch_main_menu()
queue_free()
func _on_play_button_pressed() -> void:
if game_manager.gamemode.daily == false and !game_manager.gamemode.seeded:
game_manager.gamemode.rng_seed = randi()
game_manager.setup()
game_manager.start()
queue_free()
func _on_button_mouse_entered() -> void:
$AudioStreamPlayer.play()

View File

@@ -1 +0,0 @@
uid://bdknvktw033g3

View File

@@ -1,140 +0,0 @@
[gd_scene load_steps=5 format=3 uid="uid://ce0m8vbjbng6o"]
[ext_resource type="Script" uid="uid://bdknvktw033g3" path="res://Scenes/Menus/GameEndScreen/game_end_screen.gd" id="1_oa7nq"]
[ext_resource type="PackedScene" uid="uid://b5hp43bm07b8a" path="res://UI/h_box_container.tscn" id="2_xm8em"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://Scenes/UI/drop_003.ogg" id="3_ro1yg"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_dram5"]
random_pitch = 1.1
streams_count = 1
stream_0/stream = ExtResource("3_ro1yg")
[node name="GameEndScreen" type="PanelContainer" node_paths=PackedStringArray("outcome_label", "winrate_label", "total_games_label", "total_wins_label", "total_losses_label", "undefeated_enemies")]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 150.0
offset_top = 100.0
offset_right = -150.0
offset_bottom = -100.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_oa7nq")
box = ExtResource("2_xm8em")
outcome_label = NodePath("VBoxContainer/Labels/OutcomeLabel")
winrate_label = NodePath("VBoxContainer/Labels/VBoxContainer/HBoxContainer/WinRateLabel2")
total_games_label = NodePath("VBoxContainer/Labels/VBoxContainer/HBoxContainer2/WinRateLabel3")
total_wins_label = NodePath("VBoxContainer/Labels/VBoxContainer/HBoxContainer3/WinRateLabel4")
total_losses_label = NodePath("VBoxContainer/Labels/VBoxContainer/HBoxContainer4/WinRateLabel5")
undefeated_enemies = NodePath("VBoxContainer/UndefeatedEnemies")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 2
[node name="Labels" type="VBoxContainer" parent="VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
alignment = 1
[node name="OutcomeLabel" type="Label" parent="VBoxContainer/Labels"]
layout_mode = 2
text = "LABEL_WIN_MESSAGE"
horizontal_alignment = 1
vertical_alignment = 1
[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/Labels"]
layout_mode = 2
size_flags_horizontal = 4
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/Labels/VBoxContainer"]
layout_mode = 2
[node name="WinRateLabel" type="Label" parent="VBoxContainer/Labels/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "LABEL_WINRATE"
vertical_alignment = 1
[node name="WinRateLabel2" type="Label" parent="VBoxContainer/Labels/VBoxContainer/HBoxContainer"]
auto_translate_mode = 2
layout_mode = 2
size_flags_horizontal = 3
text = "0"
horizontal_alignment = 2
vertical_alignment = 1
[node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer/Labels/VBoxContainer"]
layout_mode = 2
[node name="TotalGamesLabel" type="Label" parent="VBoxContainer/Labels/VBoxContainer/HBoxContainer2"]
layout_mode = 2
size_flags_horizontal = 3
text = "LABEL_GAMES"
vertical_alignment = 1
[node name="WinRateLabel3" type="Label" parent="VBoxContainer/Labels/VBoxContainer/HBoxContainer2"]
auto_translate_mode = 2
layout_mode = 2
size_flags_horizontal = 3
text = "0"
horizontal_alignment = 2
vertical_alignment = 1
[node name="HBoxContainer3" type="HBoxContainer" parent="VBoxContainer/Labels/VBoxContainer"]
layout_mode = 2
[node name="TotalWinsLabel" type="Label" parent="VBoxContainer/Labels/VBoxContainer/HBoxContainer3"]
layout_mode = 2
size_flags_horizontal = 3
text = "LABEL_WINS"
vertical_alignment = 1
[node name="WinRateLabel4" type="Label" parent="VBoxContainer/Labels/VBoxContainer/HBoxContainer3"]
auto_translate_mode = 2
layout_mode = 2
size_flags_horizontal = 3
text = "0"
horizontal_alignment = 2
vertical_alignment = 1
[node name="HBoxContainer4" type="HBoxContainer" parent="VBoxContainer/Labels/VBoxContainer"]
layout_mode = 2
[node name="TotalLossesLabel" type="Label" parent="VBoxContainer/Labels/VBoxContainer/HBoxContainer4"]
layout_mode = 2
size_flags_horizontal = 3
text = "LABEL_LOSSES"
vertical_alignment = 1
[node name="WinRateLabel5" type="Label" parent="VBoxContainer/Labels/VBoxContainer/HBoxContainer4"]
auto_translate_mode = 2
layout_mode = 2
size_flags_horizontal = 3
text = "0"
horizontal_alignment = 2
vertical_alignment = 1
[node name="UndefeatedEnemies" type="VBoxContainer" parent="VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
[node name="Buttons" type="HBoxContainer" parent="VBoxContainer"]
layout_mode = 2
alignment = 2
[node name="PlayButton" type="Button" parent="VBoxContainer/Buttons"]
layout_mode = 2
text = "BUTTON_RESTART"
[node name="QuitButton" type="Button" parent="VBoxContainer/Buttons"]
layout_mode = 2
text = "BUTTON_MAIN_MENU"
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = SubResource("AudioStreamRandomizer_dram5")
bus = &"SFX"
[connection signal="mouse_entered" from="VBoxContainer/Buttons/PlayButton" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="VBoxContainer/Buttons/PlayButton" to="." method="_on_play_button_pressed"]
[connection signal="mouse_entered" from="VBoxContainer/Buttons/QuitButton" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="VBoxContainer/Buttons/QuitButton" to="." method="_on_quit_button_pressed"]

View File

@@ -1,9 +0,0 @@
extends PanelContainer
func _ready() -> void:
if Data.save_data.wins > 0:
$VBoxContainer/GridContainer/FirstWin.icon.region = Rect2(36, 0, 36, 36)
if Data.save_data.mage_card_seen_in_shop:
$VBoxContainer/GridContainer/SeenMageCard.icon.region = Rect2(36, 0, 36, 36)
if Data.save_data.mage_unlocked:
$VBoxContainer/GridContainer/UnlockedMage.icon.region = Rect2(36, 0, 36, 36)

View File

@@ -1 +0,0 @@
uid://cjr0pbqisd51v

View File

@@ -1,206 +0,0 @@
class_name MainMenu extends Control
signal singleplayer_game_requested
signal multiplayer_game_requested
@export var bg_level: Level
@export var game_select_menu: Control
@export var main_controls: Control
@export var seed_entry: LineEdit
@export var profile_controls: Control
@export var mods_controls: ModMenu
var game: GameManager
var gamemode: GameMode = GameMode.new()
var confirmation_popup_scene: PackedScene = preload("res://Scenes/Menus/confirmation_popup.tscn")
var text_input_popup_scene: PackedScene = preload("res://Scenes/Menus/text_input_popup.tscn")
var multiplayer_lobby_scene_path: String = "res://Scenes/multiplayer_lobby.tscn"
var options_menu_scene: PackedScene = preload("res://Scenes/Menus/options_menu.tscn")
var temp_data: SaveData
func _ready() -> void:
load_stats(Data.save_data)
#bg_level.a_star_graph_3d.make_grid()
#bg_level.a_star_graph_3d.find_path()
#bg_level.a_star_graph_3d.build_random_maze(70)
#bg_level.a_star_graph_3d.place_random_towers(30)
#bg_level.a_star_graph_3d.disable_all_tower_frames()
#Game.level = bg_level
#WaveManager.generate_wave(WaveManager.calculate_spawn_power(50, 4), bg_level.enemy_pool, bg_level.enemy_spawns)
#for spawn: EnemySpawner in bg_level.enemy_spawns:
# spawn.enemy_died_callback = enemy_died
# spawn.enemy_reached_goal_callback = damage_goal
# spawn.enemy_spawned.connect(increase_enemy_count)
# spawn.spawn_wave()
#these exist purely to make the enemies that spawn on the main menu happy
func enemy_died(_some_arg: Enemy) -> void:
pass
func damage_goal(_some_arg1: Enemy, _some_arg2: int) -> void:
pass
func increase_enemy_count() -> void:
pass
func _on_display_name_edit_pressed() -> void:
$ProfileManager.visible = true
$ProfileManager/VBoxContainer/DisplayName/LineEdit.placeholder_text = Data.player_profile.display_name
temp_data = SaveData.load_from_disk(0)
func change_profile_display_name(display_name: String) -> void:
$ProfileEditor/VBoxContainer/HBoxContainer/DisplayName.text = display_name
Data.player_profile.set_display_name(display_name)
func _on_quit_button_pressed() -> void:
var popup: ConfirmationPopup = confirmation_popup_scene.instantiate() as ConfirmationPopup
popup.set_popup("Are you sure you want to quit?", "Yes", "No")
popup.completed.connect(quit_game)
add_child(popup)
func quit_game(confirmation: bool) -> void:
if confirmation:
get_tree().quit()
func _on_options_button_pressed() -> void:
var menu: OptionsMenu = options_menu_scene.instantiate()
menu.game_manager = game
add_child(menu)
func _on_button_mouse_entered() -> void:
$AudioStreamPlayer.play()
func start_game() -> void:
game.gamemode = gamemode
if !gamemode.multiplayer:
singleplayer_game_requested.emit()
else:
multiplayer_game_requested.emit()
func _on_play_button_pressed() -> void:
gamemode.multiplayer = false
open_game_menu()
func _on_multiplayer_button_pressed() -> void:
gamemode.multiplayer = true
open_game_menu()
func open_game_menu() -> void:
main_controls.visible = false
game_select_menu.visible = true
func _on_back_button_pressed() -> void:
main_controls.visible = true
game_select_menu.visible = false
func generate_seed() -> void:
if seed_entry.text != "":
if seed_entry.text.is_valid_int():
gamemode.rng_seed = int(seed_entry.text)
else:
gamemode.rng_seed = hash(seed_entry.text)
gamemode.seeded = true
else:
gamemode.rng_seed = randi()
func _on_standard_button_pressed() -> void:
generate_seed()
gamemode.endless = false
gamemode.daily = false
start_game()
func _on_daily_button_pressed() -> void:
gamemode.rng_seed = hash(Time.get_date_string_from_system(true))
gamemode.endless = false
gamemode.daily = true
start_game()
func _on_endless_button_pressed() -> void:
generate_seed()
gamemode.endless = true
gamemode.daily = false
start_game()
func _on_changelog_button_pressed() -> void:
main_controls.visible = true
profile_controls.visible = true
$Changelog.queue_free()
func load_stats(stats: SaveData) -> void:
$ProfileManager/VBoxContainer/Stats/Games/Label2.text = str(Data.save_data.wins + Data.save_data.losses)
$ProfileManager/VBoxContainer/Stats/Wins/Label2.text = str(Data.save_data.wins)
$ProfileManager/VBoxContainer/Stats/Losses/Label2.text = str(Data.save_data.losses)
$ProfileManager/VBoxContainer/Stats/Winrate/Label2.text = str(Data.save_data.winrate) + "%"
$ProfileManager/VBoxContainer/Stats/EngineerCardsBought/Label2.text = str(stats.engineer_cards_bought)
$ProfileManager/VBoxContainer/Stats/MageCardsBought/Label2.text = str(stats.mage_cards_bought)
func _on_achievements_back_button_pressed() -> void:
$AchievementsMenu.visible = false
func _on_achievements_button_pressed() -> void:
$AchievementsMenu.visible = true
func _on_profile_manager_cancel_pressed() -> void:
profile_controls.visible = false
main_controls.visible = true
func _on_profile_manager_confirm_pressed() -> void:
profile_controls.visible = false
main_controls.visible = true
if $ProfileManager/VBoxContainer/DisplayName/LineEdit.text != "":
change_profile_display_name($ProfileManager/VBoxContainer/DisplayName/LineEdit.text)
$ProfileManager/VBoxContainer/DisplayName/LineEdit.text = ""
Data.save_data = temp_data
Data.save_data.save_to_disc()
func _on_unlock_all_pressed() -> void:
temp_data.unlock_all_content()
func _on_lock_all_pressed() -> void:
temp_data.lock_all_content()
func _on_mods_button_pressed() -> void:
profile_controls.visible = false
main_controls.visible = false
mods_controls.visible = true
func _on_cancel_mods_pressed() -> void:
main_controls.visible = true
mods_controls.visible = false
func _on_confirm_mods_pressed() -> void:
mods_controls.load_mod_list()
main_controls.visible = true
mods_controls.visible = false
func _on_stats_button_pressed() -> void:
main_controls.visible = false
profile_controls.visible = true

View File

@@ -1 +0,0 @@
uid://ci8vq73u23viy

View File

@@ -1,447 +0,0 @@
[gd_scene load_steps=12 format=3 uid="uid://8yv7excojcg0"]
[ext_resource type="Script" uid="uid://ci8vq73u23viy" path="res://Scenes/Menus/MainMenu/main_menu.gd" id="2_ivytu"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://Scenes/UI/drop_003.ogg" id="5_cwn2i"]
[ext_resource type="Texture2D" uid="uid://cr1ucbuw3iotp" path="res://Assets/Textures/first_win_achievements.png" id="15_74epv"]
[ext_resource type="Script" uid="uid://cjr0pbqisd51v" path="res://Scenes/Menus/MainMenu/achievements_menu.gd" id="15_sv1gy"]
[ext_resource type="Texture2D" uid="uid://cpa1hl36xfplg" path="res://Assets/Textures/first_scroll_seen.png" id="16_sv1gy"]
[ext_resource type="Texture2D" uid="uid://ctbi3gm1me1t5" path="res://Assets/Textures/unlock_mage_achievement.png" id="17_6t4jd"]
[ext_resource type="Script" uid="uid://cxrm2naq75jo1" path="res://Scripts/mod_menu.gd" id="19_6t4jd"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_2jyua"]
random_pitch = 1.1
streams_count = 1
stream_0/stream = ExtResource("5_cwn2i")
[sub_resource type="AtlasTexture" id="AtlasTexture_y5bw6"]
atlas = ExtResource("15_74epv")
region = Rect2(0, 0, 36, 36)
[sub_resource type="AtlasTexture" id="AtlasTexture_q26na"]
atlas = ExtResource("16_sv1gy")
region = Rect2(0, 0, 36, 36)
[sub_resource type="AtlasTexture" id="AtlasTexture_3aj5m"]
atlas = ExtResource("17_6t4jd")
region = Rect2(0, 0, 36, 36)
[node name="MainMenu" type="Control" node_paths=PackedStringArray("bg_level", "game_select_menu", "main_controls", "seed_entry", "profile_controls", "mods_controls")]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("2_ivytu")
bg_level = NodePath("")
game_select_menu = NodePath("GameSelectMenu")
main_controls = NodePath("MainControls")
seed_entry = NodePath("GameSelectMenu/VBoxContainer/HBoxContainer2/LineEdit")
profile_controls = NodePath("ProfileManager")
mods_controls = NodePath("ModsMenu")
[node name="ColorRect" type="ColorRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.5176471, 0.60784316, 0.89411765, 1)
[node name="TitleLabel" type="Label" parent="."]
layout_mode = 1
anchors_preset = -1
anchor_right = 1.0
anchor_bottom = 0.5
grow_horizontal = 2
text = "TITLE_GAME_NAME"
horizontal_alignment = 1
vertical_alignment = 1
[node name="MainControls" type="VBoxContainer" parent="."]
custom_minimum_size = Vector2(80, 0)
layout_mode = 1
anchors_preset = -1
anchor_left = 0.5
anchor_top = 0.938
anchor_right = 0.5
anchor_bottom = 0.95
grow_horizontal = 2
grow_vertical = 0
alignment = 2
[node name="PlayButton" type="Button" parent="MainControls"]
layout_mode = 2
text = "BUTTON_PLAY"
[node name="ModsButton" type="Button" parent="MainControls"]
layout_mode = 2
text = "BUTTON_MODS"
[node name="StatsButton" type="Button" parent="MainControls"]
layout_mode = 2
text = "BUTTON_PLAYER_STATS"
[node name="OptionsButton" type="Button" parent="MainControls"]
layout_mode = 2
text = "BUTTON_OPTIONS
"
[node name="QuitButton" type="Button" parent="MainControls"]
layout_mode = 2
text = "BUTTON_QUIT"
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = SubResource("AudioStreamRandomizer_2jyua")
bus = &"SFX"
[node name="GameSelectMenu" type="PanelContainer" parent="."]
visible = false
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -20.0
offset_top = -20.0
offset_right = 20.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="GameSelectMenu"]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="GameSelectMenu/VBoxContainer"]
layout_mode = 2
[node name="BackButton" type="Button" parent="GameSelectMenu/VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "BUTTON_BACK"
[node name="Title" type="Label" parent="GameSelectMenu/VBoxContainer"]
layout_mode = 2
text = "LABEL_GAME_MODE_SELECT"
[node name="StandardButton" type="Button" parent="GameSelectMenu/VBoxContainer"]
layout_mode = 2
text = "BUTTON_STANDARD_GAME"
[node name="DailyButton" type="Button" parent="GameSelectMenu/VBoxContainer"]
layout_mode = 2
text = "BUTTON_DAILY_CHALLENGE"
[node name="EndlessButton" type="Button" parent="GameSelectMenu/VBoxContainer"]
layout_mode = 2
text = "BUTTON_ENDLESS_GAME"
[node name="HBoxContainer2" type="HBoxContainer" parent="GameSelectMenu/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="GameSelectMenu/VBoxContainer/HBoxContainer2"]
layout_mode = 2
text = "LABEL_SEED"
[node name="LineEdit" type="LineEdit" parent="GameSelectMenu/VBoxContainer/HBoxContainer2"]
layout_mode = 2
size_flags_horizontal = 3
placeholder_text = "LABEL_SEED_PLACEHOLDER"
expand_to_text_length = true
[node name="ProfileManager" type="PanelContainer" parent="."]
visible = false
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -20.0
offset_top = -20.0
offset_right = 20.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="ProfileManager"]
layout_mode = 2
[node name="TitleBar" type="Label" parent="ProfileManager/VBoxContainer"]
layout_mode = 2
text = "TITLE_STATS_MENU"
[node name="DisplayName" type="HBoxContainer" parent="ProfileManager/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="ProfileManager/VBoxContainer/DisplayName"]
layout_mode = 2
text = "LABEL_DISPLAY_NAME"
[node name="LineEdit" type="LineEdit" parent="ProfileManager/VBoxContainer/DisplayName"]
layout_mode = 2
size_flags_horizontal = 3
placeholder_text = "LABEL_DISPLAY_NAME_PLACEHOLDER"
alignment = 1
expand_to_text_length = true
[node name="Stats" type="VBoxContainer" parent="ProfileManager/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="ProfileManager/VBoxContainer/Stats"]
layout_mode = 2
text = "LABEL_STATS"
horizontal_alignment = 1
vertical_alignment = 1
[node name="Games" type="HBoxContainer" parent="ProfileManager/VBoxContainer/Stats"]
layout_mode = 2
[node name="Label" type="Label" parent="ProfileManager/VBoxContainer/Stats/Games"]
layout_mode = 2
size_flags_horizontal = 3
text = "LABEL_GAMES"
vertical_alignment = 1
[node name="Label2" type="Label" parent="ProfileManager/VBoxContainer/Stats/Games"]
auto_translate_mode = 2
layout_mode = 2
size_flags_horizontal = 3
text = "0"
horizontal_alignment = 2
vertical_alignment = 1
[node name="Wins" type="HBoxContainer" parent="ProfileManager/VBoxContainer/Stats"]
layout_mode = 2
[node name="Label" type="Label" parent="ProfileManager/VBoxContainer/Stats/Wins"]
layout_mode = 2
size_flags_horizontal = 3
text = "LABEL_WINS"
vertical_alignment = 1
[node name="Label2" type="Label" parent="ProfileManager/VBoxContainer/Stats/Wins"]
auto_translate_mode = 2
layout_mode = 2
size_flags_horizontal = 3
text = "0"
horizontal_alignment = 2
vertical_alignment = 1
[node name="Losses" type="HBoxContainer" parent="ProfileManager/VBoxContainer/Stats"]
layout_mode = 2
[node name="Label" type="Label" parent="ProfileManager/VBoxContainer/Stats/Losses"]
layout_mode = 2
size_flags_horizontal = 3
text = "LABEL_LOSSES"
vertical_alignment = 1
[node name="Label2" type="Label" parent="ProfileManager/VBoxContainer/Stats/Losses"]
auto_translate_mode = 2
layout_mode = 2
size_flags_horizontal = 3
text = "0"
horizontal_alignment = 2
vertical_alignment = 1
[node name="Winrate" type="HBoxContainer" parent="ProfileManager/VBoxContainer/Stats"]
layout_mode = 2
[node name="Label" type="Label" parent="ProfileManager/VBoxContainer/Stats/Winrate"]
layout_mode = 2
size_flags_horizontal = 3
text = "LABEL_WINRATE"
vertical_alignment = 1
[node name="Label2" type="Label" parent="ProfileManager/VBoxContainer/Stats/Winrate"]
auto_translate_mode = 2
layout_mode = 2
size_flags_horizontal = 3
text = "0"
horizontal_alignment = 2
vertical_alignment = 1
[node name="EngineerCardsBought" type="HBoxContainer" parent="ProfileManager/VBoxContainer/Stats"]
layout_mode = 2
[node name="Label" type="Label" parent="ProfileManager/VBoxContainer/Stats/EngineerCardsBought"]
layout_mode = 2
size_flags_horizontal = 3
text = "LABEL_ENGINEER_CARDS_BOUGHT"
vertical_alignment = 1
[node name="Label2" type="Label" parent="ProfileManager/VBoxContainer/Stats/EngineerCardsBought"]
auto_translate_mode = 2
layout_mode = 2
size_flags_horizontal = 3
text = "0"
horizontal_alignment = 2
vertical_alignment = 1
[node name="MageCardsBought" type="HBoxContainer" parent="ProfileManager/VBoxContainer/Stats"]
layout_mode = 2
[node name="Label" type="Label" parent="ProfileManager/VBoxContainer/Stats/MageCardsBought"]
layout_mode = 2
size_flags_horizontal = 3
text = "LABEL_MAGE_CARDS_BOUGHT"
vertical_alignment = 1
[node name="Label2" type="Label" parent="ProfileManager/VBoxContainer/Stats/MageCardsBought"]
auto_translate_mode = 2
layout_mode = 2
size_flags_horizontal = 3
text = "0"
horizontal_alignment = 2
vertical_alignment = 1
[node name="UnlockAll" type="Button" parent="ProfileManager/VBoxContainer"]
layout_mode = 2
text = "BUTTON_UNLOCK_CONTENT"
[node name="LockAll" type="Button" parent="ProfileManager/VBoxContainer"]
layout_mode = 2
text = "BUTTON_LOCK_CONTENT"
[node name="AchievementsButton" type="Button" parent="ProfileManager/VBoxContainer"]
layout_mode = 2
text = "BUTTON_ACHIEVEMENTS"
[node name="Controls" type="HBoxContainer" parent="ProfileManager/VBoxContainer"]
layout_mode = 2
[node name="Cancel" type="Button" parent="ProfileManager/VBoxContainer/Controls"]
layout_mode = 2
size_flags_horizontal = 3
text = "BUTTON_CANCEL"
[node name="Confirm" type="Button" parent="ProfileManager/VBoxContainer/Controls"]
layout_mode = 2
size_flags_horizontal = 3
text = "BUTTON_CONFIRM"
[node name="AchievementsMenu" type="PanelContainer" parent="."]
visible = false
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -20.0
offset_top = -20.0
offset_right = 20.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("15_sv1gy")
[node name="VBoxContainer" type="VBoxContainer" parent="AchievementsMenu"]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="AchievementsMenu/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="AchievementsMenu/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "TITLE_ACHIEVEMENTS"
horizontal_alignment = 1
vertical_alignment = 1
[node name="Button" type="Button" parent="AchievementsMenu/VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "BUTTON_BACK"
[node name="GridContainer" type="GridContainer" parent="AchievementsMenu/VBoxContainer"]
layout_mode = 2
columns = 9
[node name="FirstWin" type="Button" parent="AchievementsMenu/VBoxContainer/GridContainer"]
custom_minimum_size = Vector2(140, 140)
layout_mode = 2
tooltip_text = "ACHIEVEMENT_TOOLTIP_WIN_GAME"
icon = SubResource("AtlasTexture_y5bw6")
icon_alignment = 1
expand_icon = true
[node name="SeenMageCard" type="Button" parent="AchievementsMenu/VBoxContainer/GridContainer"]
custom_minimum_size = Vector2(140, 140)
layout_mode = 2
tooltip_text = "ACHIEVEMENT_TOOLTIP_BUY_MAGE_CARD"
icon = SubResource("AtlasTexture_q26na")
icon_alignment = 1
expand_icon = true
[node name="UnlockedMage" type="Button" parent="AchievementsMenu/VBoxContainer/GridContainer"]
custom_minimum_size = Vector2(140, 140)
layout_mode = 2
tooltip_text = "ACHIEVEMENT_TOOLTIP_UNLOCK_MAGE"
icon = SubResource("AtlasTexture_3aj5m")
icon_alignment = 1
expand_icon = true
[node name="ModsMenu" type="PanelContainer" parent="."]
visible = false
layout_mode = 1
anchors_preset = -1
anchor_left = 0.05
anchor_top = 0.05
anchor_right = 0.95
anchor_bottom = 0.95
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("19_6t4jd")
[node name="VBoxContainer" type="VBoxContainer" parent="ModsMenu"]
layout_mode = 2
[node name="Label" type="Label" parent="ModsMenu/VBoxContainer"]
layout_mode = 2
text = "TITLE_MODS"
horizontal_alignment = 1
vertical_alignment = 1
[node name="ScrollContainer" type="ScrollContainer" parent="ModsMenu/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
[node name="VBoxContainer" type="VBoxContainer" parent="ModsMenu/VBoxContainer/ScrollContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="HBoxContainer" type="HBoxContainer" parent="ModsMenu/VBoxContainer"]
layout_mode = 2
alignment = 2
[node name="CancelMods" type="Button" parent="ModsMenu/VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "BUTTON_CANCEL"
[node name="ConfirmMods" type="Button" parent="ModsMenu/VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "BUTTON_CONFIRM"
[connection signal="mouse_entered" from="MainControls/PlayButton" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="MainControls/PlayButton" to="." method="_on_play_button_pressed"]
[connection signal="mouse_entered" from="MainControls/ModsButton" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="MainControls/ModsButton" to="." method="_on_mods_button_pressed"]
[connection signal="pressed" from="MainControls/StatsButton" to="." method="_on_stats_button_pressed"]
[connection signal="mouse_entered" from="MainControls/OptionsButton" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="MainControls/OptionsButton" to="." method="_on_options_button_pressed"]
[connection signal="mouse_entered" from="MainControls/QuitButton" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="MainControls/QuitButton" to="." method="_on_quit_button_pressed"]
[connection signal="pressed" from="GameSelectMenu/VBoxContainer/HBoxContainer/BackButton" to="." method="_on_back_button_pressed"]
[connection signal="pressed" from="GameSelectMenu/VBoxContainer/StandardButton" to="." method="_on_standard_button_pressed"]
[connection signal="pressed" from="GameSelectMenu/VBoxContainer/DailyButton" to="." method="_on_daily_button_pressed"]
[connection signal="pressed" from="GameSelectMenu/VBoxContainer/EndlessButton" to="." method="_on_endless_button_pressed"]
[connection signal="pressed" from="ProfileManager/VBoxContainer/UnlockAll" to="." method="_on_unlock_all_pressed"]
[connection signal="pressed" from="ProfileManager/VBoxContainer/LockAll" to="." method="_on_lock_all_pressed"]
[connection signal="pressed" from="ProfileManager/VBoxContainer/AchievementsButton" to="." method="_on_achievements_button_pressed"]
[connection signal="pressed" from="ProfileManager/VBoxContainer/Controls/Cancel" to="." method="_on_profile_manager_cancel_pressed"]
[connection signal="pressed" from="ProfileManager/VBoxContainer/Controls/Confirm" to="." method="_on_profile_manager_confirm_pressed"]
[connection signal="pressed" from="AchievementsMenu/VBoxContainer/HBoxContainer/Button" to="." method="_on_achievements_back_button_pressed"]
[connection signal="pressed" from="ModsMenu/VBoxContainer/HBoxContainer/CancelMods" to="." method="_on_cancel_mods_pressed"]
[connection signal="pressed" from="ModsMenu/VBoxContainer/HBoxContainer/ConfirmMods" to="." method="_on_confirm_mods_pressed"]

View File

@@ -1,54 +0,0 @@
class_name PauseMenu extends Control
signal closed
signal quit_to_main_menu_pressed
signal quit_to_desktop_pressed
var options_menu_scene: PackedScene = preload("res://Scenes/Menus/options_menu.tscn")
var confirmation_popup_scene: PackedScene = preload("res://Scenes/Menus/confirmation_popup.tscn")
var game_manager: GameManager
func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("Pause"):
accept_event()
_on_resume_pressed()
func _on_resume_pressed() -> void:
closed.emit()
queue_free()
func _on_options_pressed() -> void:
var menu: OptionsMenu = options_menu_scene.instantiate()
menu.game_manager = game_manager
add_child(menu)
func _on_quit_to_main_menu_pressed() -> void:
var popup: ConfirmationPopup = confirmation_popup_scene.instantiate() as ConfirmationPopup
popup.set_popup("Are you sure you want to quit and return to main menu?", "Yes", "No")
popup.completed.connect(return_to_menu)
add_child(popup)
func return_to_menu(confirmation: bool) -> void:
if confirmation:
quit_to_main_menu_pressed.emit()
func _on_quit_to_desktop_pressed() -> void:
var popup: ConfirmationPopup = confirmation_popup_scene.instantiate() as ConfirmationPopup
popup.set_popup("Are you sure you want to quit?", "Yes", "No")
popup.completed.connect(quit_game)
add_child(popup)
func quit_game(confirmation: bool) -> void:
if confirmation:
quit_to_desktop_pressed.emit()
func _on_button_mouse_entered() -> void:
$AudioStreamPlayer.play()

View File

@@ -1 +0,0 @@
uid://cjyyepxaf4xl8

View File

@@ -1,73 +0,0 @@
[gd_scene load_steps=4 format=3 uid="uid://buvgdem68wtev"]
[ext_resource type="Script" uid="uid://cjyyepxaf4xl8" path="res://Scenes/Menus/PauseMenu/pause_menu.gd" id="2_4pn2l"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://Scenes/UI/drop_003.ogg" id="3_0bid7"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_n6ixr"]
random_pitch = 1.1
streams_count = 1
stream_0/stream = ExtResource("3_0bid7")
[node name="Control" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("2_4pn2l")
[node name="ColorRect" type="ColorRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.278431, 0.278431, 0.278431, 0.545098)
[node name="PanelContainer" type="PanelContainer" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -20.0
offset_top = -20.0
offset_right = 20.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"]
layout_mode = 2
[node name="Resume" type="Button" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
text = "BUTTON_RESUME"
[node name="Options" type="Button" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
text = "BUTTON_OPTIONS"
[node name="QuitToMainMenu" type="Button" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
text = "BUTTON_MAIN_MENU"
[node name="QuitToDesktop" type="Button" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
text = "BUTTON_QUIT"
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = SubResource("AudioStreamRandomizer_n6ixr")
bus = &"SFX"
[connection signal="mouse_entered" from="PanelContainer/VBoxContainer/Resume" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/Resume" to="." method="_on_resume_pressed"]
[connection signal="mouse_entered" from="PanelContainer/VBoxContainer/Options" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/Options" to="." method="_on_options_pressed"]
[connection signal="mouse_entered" from="PanelContainer/VBoxContainer/QuitToMainMenu" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/QuitToMainMenu" to="." method="_on_quit_to_main_menu_pressed"]
[connection signal="mouse_entered" from="PanelContainer/VBoxContainer/QuitToDesktop" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/QuitToDesktop" to="." method="_on_quit_to_desktop_pressed"]

View File

@@ -1,7 +1,7 @@
[gd_scene load_steps=4 format=3 uid="uid://6a277g802os0"]
[ext_resource type="Script" uid="uid://4uwd40mavufi" path="res://Scripts/alert_popup.gd" id="1_cac03"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://Scenes/UI/drop_003.ogg" id="2_2mbtt"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://UI/drop_003.ogg" id="2_2mbtt"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_veol0"]
random_pitch = 1.1

View File

@@ -1,110 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://bwc45ogto8thn"]
[ext_resource type="Script" uid="uid://c4ljvgrb81du6" path="res://Scripts/audio_options.gd" id="1_avc0j"]
[sub_resource type="ImageTexture" id="ImageTexture_hvvdd"]
[node name="Audio" type="VBoxContainer" node_paths=PackedStringArray("master_input", "master_slider", "music_input", "music_slider", "sfx_input", "sfx_slider")]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_avc0j")
master_input = NodePath("Master/HBoxContainer/SpinBox")
master_slider = NodePath("Master/HBoxContainer/HSlider")
music_input = NodePath("Music/HBoxContainer/SpinBox")
music_slider = NodePath("Music/HBoxContainer/HSlider")
sfx_input = NodePath("SFX/HBoxContainer/SpinBox")
sfx_slider = NodePath("SFX/HBoxContainer/HSlider")
[node name="Master" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="Label" type="Label" parent="Master"]
layout_mode = 2
size_flags_horizontal = 3
text = "OPTION_MASTER_AUDIO"
horizontal_alignment = 1
vertical_alignment = 1
[node name="HBoxContainer" type="HBoxContainer" parent="Master"]
layout_mode = 2
size_flags_horizontal = 3
[node name="SpinBox" type="SpinBox" parent="Master/HBoxContainer"]
layout_mode = 2
theme_override_icons/updown = SubResource("ImageTexture_hvvdd")
value = 100.0
rounded = true
alignment = 1
update_on_text_changed = true
[node name="HSlider" type="HSlider" parent="Master/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 1
value = 100.0
[node name="Music" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="Label" type="Label" parent="Music"]
layout_mode = 2
size_flags_horizontal = 3
text = "OPTION_MUSIC_AUDIO"
horizontal_alignment = 1
vertical_alignment = 1
[node name="HBoxContainer" type="HBoxContainer" parent="Music"]
layout_mode = 2
size_flags_horizontal = 3
[node name="SpinBox" type="SpinBox" parent="Music/HBoxContainer"]
layout_mode = 2
theme_override_icons/updown = SubResource("ImageTexture_hvvdd")
value = 100.0
rounded = true
alignment = 1
update_on_text_changed = true
[node name="HSlider" type="HSlider" parent="Music/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 1
value = 100.0
[node name="SFX" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="Label" type="Label" parent="SFX"]
layout_mode = 2
size_flags_horizontal = 3
text = "OPTION_SFX_AUDIO"
horizontal_alignment = 1
vertical_alignment = 1
[node name="HBoxContainer" type="HBoxContainer" parent="SFX"]
layout_mode = 2
size_flags_horizontal = 3
[node name="SpinBox" type="SpinBox" parent="SFX/HBoxContainer"]
layout_mode = 2
theme_override_icons/updown = SubResource("ImageTexture_hvvdd")
value = 100.0
rounded = true
alignment = 1
update_on_text_changed = true
[node name="HSlider" type="HSlider" parent="SFX/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 1
value = 100.0
[connection signal="value_changed" from="Master/HBoxContainer/SpinBox" to="." method="_on_master_spin_box_value_changed"]
[connection signal="value_changed" from="Master/HBoxContainer/HSlider" to="." method="_on_master_h_slider_value_changed"]
[connection signal="value_changed" from="Music/HBoxContainer/SpinBox" to="." method="_on_music_spin_box_value_changed"]
[connection signal="value_changed" from="Music/HBoxContainer/HSlider" to="." method="_on_music_h_slider_value_changed"]
[connection signal="value_changed" from="SFX/HBoxContainer/SpinBox" to="." method="_on_sfx_spin_box_value_changed"]
[connection signal="value_changed" from="SFX/HBoxContainer/HSlider" to="." method="_on_sfx_h_slider_value_changed"]

View File

@@ -1,7 +1,7 @@
[gd_scene load_steps=4 format=3 uid="uid://f46qh73hrk4y"]
[ext_resource type="Script" uid="uid://bjt72v1wym5ie" path="res://Scripts/confirmation_popup.gd" id="1_x7akt"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://Scenes/UI/drop_003.ogg" id="2_3w36n"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://UI/drop_003.ogg" id="2_3w36n"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_22wuj"]
random_pitch = 1.1
@@ -27,24 +27,28 @@ layout_mode = 2
[node name="Label" type="Label" parent="VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
text = "Some Text?"
horizontal_alignment = 1
vertical_alignment = 1
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
layout_mode = 2
[node name="Confirm" type="Button" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "Confirm"
alignment = 2
[node name="Cancel" type="Button" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "Cancel"
[node name="Confirm" type="Button" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "Confirm"
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = SubResource("AudioStreamRandomizer_22wuj")
bus = &"SFX"
[connection signal="mouse_entered" from="VBoxContainer/HBoxContainer/Confirm" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="VBoxContainer/HBoxContainer/Confirm" to="." method="_on_confirm_pressed"]
[connection signal="mouse_entered" from="VBoxContainer/HBoxContainer/Cancel" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="VBoxContainer/HBoxContainer/Cancel" to="." method="_on_cancel_pressed"]
[connection signal="mouse_entered" from="VBoxContainer/HBoxContainer/Confirm" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="VBoxContainer/HBoxContainer/Confirm" to="." method="_on_confirm_pressed"]

View File

@@ -1,167 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://bjk7jf0bau5lv"]
[ext_resource type="Script" uid="uid://dtrjph756oq1f" path="res://Scripts/gameplay_options.gd" id="1_sy26f"]
[sub_resource type="ImageTexture" id="ImageTexture_03x6q"]
[node name="Gameplay" type="VBoxContainer" node_paths=PackedStringArray("look_sens_slider", "look_sens_input", "toggle_sprint_checkbox", "invert_lookY", "invert_lookX", "fixed_minimap", "tower_damage", "self_damage", "party_damage", "status_damage")]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_sy26f")
look_sens_slider = NodePath("MouseSens/HBoxContainer/HSlider")
look_sens_input = NodePath("MouseSens/HBoxContainer/SpinBox")
toggle_sprint_checkbox = NodePath("ToggleSprint/CenterContainer/CheckButton")
invert_lookY = NodePath("InvertMouseY/CenterContainer/CheckButton")
invert_lookX = NodePath("InvertMouseX/CenterContainer/CheckButton")
fixed_minimap = NodePath("FixedMinimap/CenterContainer/CheckButton")
tower_damage = NodePath("FloatingDamageIndicators/CenterContainer/HBoxContainer/TowerDamage")
self_damage = NodePath("FloatingDamageIndicators/CenterContainer/HBoxContainer/SelfDamage")
party_damage = NodePath("FloatingDamageIndicators/CenterContainer/HBoxContainer/PartyDamage")
status_damage = NodePath("FloatingDamageIndicators/CenterContainer/HBoxContainer/StatusDamage")
[node name="MouseSens" type="HBoxContainer" parent="."]
layout_mode = 2
alignment = 1
[node name="Label" type="Label" parent="MouseSens"]
layout_mode = 2
size_flags_horizontal = 3
text = "OPTION_MOUSE_SENSITIVITY"
horizontal_alignment = 1
vertical_alignment = 1
[node name="HBoxContainer" type="HBoxContainer" parent="MouseSens"]
layout_mode = 2
size_flags_horizontal = 3
[node name="SpinBox" type="SpinBox" parent="MouseSens/HBoxContainer"]
layout_mode = 2
theme_override_icons/updown = SubResource("ImageTexture_03x6q")
step = 0.01
alignment = 1
update_on_text_changed = true
[node name="HSlider" type="HSlider" parent="MouseSens/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 1
step = 0.01
scrollable = false
[node name="ToggleSprint" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="Label" type="Label" parent="ToggleSprint"]
layout_mode = 2
size_flags_horizontal = 3
text = "OPTION_TOGGLE_SPRINT"
horizontal_alignment = 1
vertical_alignment = 1
[node name="CenterContainer" type="CenterContainer" parent="ToggleSprint"]
layout_mode = 2
size_flags_horizontal = 3
[node name="CheckButton" type="CheckButton" parent="ToggleSprint/CenterContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="InvertMouseY" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="Label" type="Label" parent="InvertMouseY"]
layout_mode = 2
size_flags_horizontal = 3
text = "OPTION_INVERT_MOUSE_Y"
horizontal_alignment = 1
vertical_alignment = 1
[node name="CenterContainer" type="CenterContainer" parent="InvertMouseY"]
layout_mode = 2
size_flags_horizontal = 3
[node name="CheckButton" type="CheckButton" parent="InvertMouseY/CenterContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="InvertMouseX" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="Label" type="Label" parent="InvertMouseX"]
layout_mode = 2
size_flags_horizontal = 3
text = "OPTION_INVERT_MOUSE_X"
horizontal_alignment = 1
vertical_alignment = 1
[node name="CenterContainer" type="CenterContainer" parent="InvertMouseX"]
layout_mode = 2
size_flags_horizontal = 3
[node name="CheckButton" type="CheckButton" parent="InvertMouseX/CenterContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="FixedMinimap" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="Label" type="Label" parent="FixedMinimap"]
layout_mode = 2
size_flags_horizontal = 3
text = "OPTION_FIXED_MINIMAP"
horizontal_alignment = 1
vertical_alignment = 1
[node name="CenterContainer" type="CenterContainer" parent="FixedMinimap"]
layout_mode = 2
size_flags_horizontal = 3
[node name="CheckButton" type="CheckButton" parent="FixedMinimap/CenterContainer"]
layout_mode = 2
[node name="FloatingDamageIndicators" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="Label" type="Label" parent="FloatingDamageIndicators"]
layout_mode = 2
size_flags_horizontal = 3
text = "OPTION_DISPLAY_DAMAGE_INDICATORS"
horizontal_alignment = 1
vertical_alignment = 1
[node name="CenterContainer" type="CenterContainer" parent="FloatingDamageIndicators"]
layout_mode = 2
size_flags_horizontal = 3
[node name="HBoxContainer" type="HBoxContainer" parent="FloatingDamageIndicators/CenterContainer"]
layout_mode = 2
[node name="TowerDamage" type="Button" parent="FloatingDamageIndicators/CenterContainer/HBoxContainer"]
layout_mode = 2
toggle_mode = true
button_pressed = true
text = "OPTION_TOWER_DAMAGE"
[node name="SelfDamage" type="Button" parent="FloatingDamageIndicators/CenterContainer/HBoxContainer"]
layout_mode = 2
toggle_mode = true
button_pressed = true
text = "OPTION_SELF_DAMAGE"
[node name="PartyDamage" type="Button" parent="FloatingDamageIndicators/CenterContainer/HBoxContainer"]
layout_mode = 2
toggle_mode = true
button_pressed = true
text = "OPTION_PARTY_DAMAGE"
[node name="StatusDamage" type="Button" parent="FloatingDamageIndicators/CenterContainer/HBoxContainer"]
layout_mode = 2
toggle_mode = true
button_pressed = true
text = "OPTION_STATUS_DAMAGE"
[connection signal="value_changed" from="MouseSens/HBoxContainer/SpinBox" to="." method="_on_mouse_sens_spin_box_value_changed"]
[connection signal="value_changed" from="MouseSens/HBoxContainer/HSlider" to="." method="_on_mouse_sens_h_slider_value_changed"]

View File

@@ -1,124 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://bmd4mawasoc11"]
[ext_resource type="Script" uid="uid://bpb5c5r1yi8um" path="res://Scripts/graphics_options.gd" id="1_85rh6"]
[sub_resource type="ImageTexture" id="ImageTexture_03x6q"]
[node name="Graphics" type="VBoxContainer" node_paths=PackedStringArray("fov_input", "fov_slider", "vsync_dropdown", "aa_dropdown", "window_dropdown")]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_85rh6")
fov_input = NodePath("FOV/HBoxContainer/SpinBox")
fov_slider = NodePath("FOV/HBoxContainer/HSlider")
vsync_dropdown = NodePath("VSync/OptionButton")
aa_dropdown = NodePath("AntiAliasing/OptionButton")
window_dropdown = NodePath("Windowed/OptionButton")
[node name="FOV" type="HBoxContainer" parent="."]
layout_mode = 2
alignment = 1
[node name="Label" type="Label" parent="FOV"]
layout_mode = 2
size_flags_horizontal = 3
text = "OPTION_FOV"
horizontal_alignment = 1
vertical_alignment = 1
[node name="HBoxContainer" type="HBoxContainer" parent="FOV"]
layout_mode = 2
size_flags_horizontal = 3
[node name="SpinBox" type="SpinBox" parent="FOV/HBoxContainer"]
layout_mode = 2
theme_override_icons/updown = SubResource("ImageTexture_03x6q")
min_value = 40.0
max_value = 160.0
value = 100.0
allow_greater = true
allow_lesser = true
alignment = 1
update_on_text_changed = true
[node name="HSlider" type="HSlider" parent="FOV/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 1
min_value = 40.0
max_value = 160.0
value = 100.0
scrollable = false
[node name="VSync" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="Label" type="Label" parent="VSync"]
layout_mode = 2
size_flags_horizontal = 3
text = "OPTION_VSYNC"
horizontal_alignment = 1
vertical_alignment = 1
[node name="OptionButton" type="OptionButton" parent="VSync"]
layout_mode = 2
size_flags_horizontal = 3
selected = 1
item_count = 4
popup/item_0/text = "OPTION_OFF"
popup/item_0/id = 0
popup/item_1/text = "OPTION_ON"
popup/item_1/id = 1
popup/item_2/text = "OPTION_ADAPTIVE"
popup/item_2/id = 2
popup/item_3/text = "OPTION_TRIPLE_BUFFERED"
popup/item_3/id = 3
[node name="AntiAliasing" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="Label" type="Label" parent="AntiAliasing"]
layout_mode = 2
size_flags_horizontal = 3
text = "OPTION_AA"
horizontal_alignment = 1
vertical_alignment = 1
[node name="OptionButton" type="OptionButton" parent="AntiAliasing"]
layout_mode = 2
size_flags_horizontal = 3
selected = 0
item_count = 3
popup/item_0/text = "OPTION_OFF"
popup/item_0/id = 0
popup/item_1/text = "OPTION_FXAA"
popup/item_1/id = 1
popup/item_2/text = "OPTION_TAA"
popup/item_2/id = 2
[node name="Windowed" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="Label" type="Label" parent="Windowed"]
layout_mode = 2
size_flags_horizontal = 3
text = "OPTION_WINDOW_TYPE"
horizontal_alignment = 1
vertical_alignment = 1
[node name="OptionButton" type="OptionButton" parent="Windowed"]
layout_mode = 2
size_flags_horizontal = 3
selected = 0
item_count = 3
popup/item_0/text = "OPTION_WINDOWED"
popup/item_0/id = 0
popup/item_1/text = "OPTION_BORDERLESS"
popup/item_1/id = 1
popup/item_2/text = "OPTION_FULLSCREEN"
popup/item_2/id = 2
[connection signal="value_changed" from="FOV/HBoxContainer/SpinBox" to="." method="_on_fov_spin_box_value_changed"]
[connection signal="value_changed" from="FOV/HBoxContainer/HSlider" to="." method="_on_fov_h_slider_value_changed"]

View File

@@ -1,22 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://bf2nosqt5f82e"]
[ext_resource type="Script" uid="uid://cxm67e833baex" path="res://Scripts/keybind_options.gd" id="1_oxg0p"]
[node name="Keybinds" type="VBoxContainer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_oxg0p")
[node name="HBoxContainer" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="ScrollContainer" type="ScrollContainer" parent="."]
layout_mode = 2
size_flags_vertical = 3
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer"]
layout_mode = 2
size_flags_horizontal = 3

View File

@@ -1,19 +1,18 @@
[gd_scene load_steps=9 format=3 uid="uid://cwvprrvk4l2k0"]
[gd_scene load_steps=8 format=3 uid="uid://cwvprrvk4l2k0"]
[ext_resource type="Theme" uid="uid://b6a0ip4p72tgx" path="res://UI/new_theme.tres" id="1_l1spu"]
[ext_resource type="Script" uid="uid://cvm4lyhx1uh0w" path="res://Scripts/multiplayer_lobby.gd" id="2_nb860"]
[ext_resource type="PackedScene" uid="uid://dpt3kpixawyby" path="res://Scenes/UI/scoreboard.tscn" id="3_f6bia"]
[ext_resource type="PackedScene" uid="uid://dpt3kpixawyby" path="res://UI/scoreboard.tscn" id="3_f6bia"]
[ext_resource type="PackedScene" uid="uid://bvfit0sy2tnw4" path="res://Scenes/Menus/server_form.tscn" id="5_bqbwv"]
[ext_resource type="PackedScene" uid="uid://ddmg342ff2qaq" path="res://Scenes/UI/chatbox.tscn" id="6_wtqwd"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://Scenes/UI/drop_003.ogg" id="7_6mhre"]
[ext_resource type="PackedScene" uid="uid://bc6m3cluulpis" path="res://Scenes/Menus/CharacterSelect/character_select.tscn" id="7_kawp7"]
[ext_resource type="PackedScene" uid="uid://ddmg342ff2qaq" path="res://UI/chatbox.tscn" id="6_wtqwd"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://UI/drop_003.ogg" id="7_6mhre"]
[ext_resource type="PackedScene" uid="uid://bc6m3cluulpis" path="res://UI/Menus/CharacterSelect/character_select.tscn" id="7_kawp7"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_cwnde"]
random_pitch = 1.1
streams_count = 1
stream_0/stream = ExtResource("7_6mhre")
[node name="multiplayer_lobby" type="Control" node_paths=PackedStringArray("server_form", "scoreboard", "chatbox", "ready_button", "audio_player")]
[node name="multiplayer_lobby" type="Control" node_paths=PackedStringArray("server_form", "chatbox", "audio_player")]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
@@ -21,13 +20,10 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
theme = ExtResource("1_l1spu")
script = ExtResource("2_nb860")
server_form = NodePath("ServerForm")
character_select_screen = ExtResource("7_kawp7")
scoreboard = NodePath("Scoreboard")
chatbox = NodePath("Chatbox")
ready_button = NodePath("ReadyButton")
audio_player = NodePath("AudioStreamPlayer")
[node name="ServerForm" parent="." instance=ExtResource("5_bqbwv")]

View File

@@ -1,76 +0,0 @@
[gd_scene load_steps=8 format=3 uid="uid://clulh7v8c7h85"]
[ext_resource type="Script" uid="uid://48rvmybi18wj" path="res://Scripts/options_menu.gd" id="1_bievw"]
[ext_resource type="PackedScene" uid="uid://bjk7jf0bau5lv" path="res://Scenes/Menus/gameplay_options.tscn" id="3_25wuw"]
[ext_resource type="PackedScene" uid="uid://bmd4mawasoc11" path="res://Scenes/Menus/graphics_options.tscn" id="4_ckcvq"]
[ext_resource type="PackedScene" uid="uid://bf2nosqt5f82e" path="res://Scenes/Menus/keybind_options.tscn" id="5_4k33c"]
[ext_resource type="PackedScene" uid="uid://bwc45ogto8thn" path="res://Scenes/Menus/audio_options.tscn" id="6_4vs8p"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://Scenes/UI/drop_003.ogg" id="6_hhyef"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_5otwj"]
random_pitch = 1.1
streams_count = 1
stream_0/stream = ExtResource("6_hhyef")
[node name="OptionsMenu" type="PanelContainer" node_paths=PackedStringArray("gameplay", "graphics", "keybinds", "audio")]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 30.0
offset_top = 30.0
offset_right = -30.0
offset_bottom = -30.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_bievw")
gameplay = NodePath("VBoxContainer/TabContainer/Gameplay")
graphics = NodePath("VBoxContainer/TabContainer/Graphics")
keybinds = NodePath("VBoxContainer/TabContainer/Keybinds")
audio = NodePath("VBoxContainer/TabContainer/Audio")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 2
[node name="TabContainer" type="TabContainer" parent="VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
current_tab = 0
[node name="Gameplay" parent="VBoxContainer/TabContainer" instance=ExtResource("3_25wuw")]
layout_mode = 2
metadata/_tab_index = 0
[node name="Graphics" parent="VBoxContainer/TabContainer" instance=ExtResource("4_ckcvq")]
visible = false
layout_mode = 2
metadata/_tab_index = 1
[node name="Keybinds" parent="VBoxContainer/TabContainer" instance=ExtResource("5_4k33c")]
visible = false
layout_mode = 2
metadata/_tab_index = 2
[node name="Audio" parent="VBoxContainer/TabContainer" instance=ExtResource("6_4vs8p")]
visible = false
layout_mode = 2
metadata/_tab_index = 3
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
layout_mode = 2
alignment = 2
[node name="Cancel" type="Button" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "BUTTON_CANCEL"
[node name="Confirm" type="Button" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "BUTTON_CONFIRM"
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = SubResource("AudioStreamRandomizer_5otwj")
[connection signal="mouse_entered" from="VBoxContainer/HBoxContainer/Cancel" to="." method="_on_button_hovered"]
[connection signal="pressed" from="VBoxContainer/HBoxContainer/Cancel" to="." method="_on_cancel_pressed"]
[connection signal="mouse_entered" from="VBoxContainer/HBoxContainer/Confirm" to="." method="_on_button_hovered"]
[connection signal="pressed" from="VBoxContainer/HBoxContainer/Confirm" to="." method="_on_confirm_pressed"]

View File

@@ -1,7 +1,7 @@
[gd_scene load_steps=4 format=3 uid="uid://bvfit0sy2tnw4"]
[ext_resource type="Script" uid="uid://dyyhbd2pbfygi" path="res://Scripts/server_form.gd" id="1_43oaq"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://Scenes/UI/drop_003.ogg" id="2_hirre"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://UI/drop_003.ogg" id="2_hirre"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_3o7ni"]
random_pitch = 1.1

View File

@@ -1,10 +1,9 @@
[gd_scene load_steps=7 format=3 uid="uid://176c6fuhg5ic"]
[gd_scene load_steps=6 format=3 uid="uid://176c6fuhg5ic"]
[ext_resource type="Theme" uid="uid://b6a0ip4p72tgx" path="res://UI/new_theme.tres" id="1_2aur6"]
[ext_resource type="Script" uid="uid://e5gf7hd5jsw3" path="res://Scripts/singleplayer_lobby.gd" id="1_nd17k"]
[ext_resource type="PackedScene" uid="uid://ddmg342ff2qaq" path="res://Scenes/UI/chatbox.tscn" id="3_l8xy3"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://Scenes/UI/drop_003.ogg" id="6_6nu57"]
[ext_resource type="PackedScene" uid="uid://bc6m3cluulpis" path="res://Scenes/Menus/CharacterSelect/character_select.tscn" id="6_ltm04"]
[ext_resource type="PackedScene" uid="uid://ddmg342ff2qaq" path="res://UI/chatbox.tscn" id="3_l8xy3"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://UI/drop_003.ogg" id="6_6nu57"]
[ext_resource type="PackedScene" uid="uid://bc6m3cluulpis" path="res://UI/Menus/CharacterSelect/character_select.tscn" id="6_ltm04"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_g5har"]
random_pitch = 1.1
@@ -19,7 +18,6 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
theme = ExtResource("1_2aur6")
script = ExtResource("1_nd17k")
character_select_screen = ExtResource("6_ltm04")
chatbox = NodePath("Chatbox")
@@ -27,6 +25,13 @@ audio_player = NodePath("AudioStreamPlayer")
[node name="Chatbox" parent="." instance=ExtResource("3_l8xy3")]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.02
anchor_top = 0.65
anchor_right = 0.4
anchor_bottom = 0.98
grow_horizontal = 1
grow_vertical = 1
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = SubResource("AudioStreamRandomizer_g5har")

View File

@@ -1,7 +1,7 @@
[gd_scene load_steps=4 format=3 uid="uid://dccsyymk4uko6"]
[ext_resource type="Script" uid="uid://b0asb3pmu8pqb" path="res://Scripts/text_input_popup.gd" id="1_ve6eb"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://Scenes/UI/drop_003.ogg" id="2_mec4u"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://UI/drop_003.ogg" id="2_mec4u"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_w0x7l"]
random_pitch = 1.1

View File

@@ -0,0 +1,36 @@
class_name RemixTable
extends StaticBody3D
@export var remix_menu_scene: PackedScene
@export var button: InteractButton
var reply_player: Hero
func _ready() -> void:
button.hover_text = tr("PROMPT_REMIX_INTERACT")
func _on_static_body_3d_button_interacted(_value: int, callback: Hero) -> void:
if callback.hand.size >= 1:
reply_player = callback
var menu: TrackEditor = remix_menu_scene.instantiate() as TrackEditor
var card_array: Array[Card] = []
for card: Card in callback.hand.contents:
card_array.append(card)
menu.hero = reply_player
menu.set_money(reply_player.currency)
menu.populate_feature_slots()
menu.add_option(card_array)
menu.cards_remixed.connect(output)
reply_player.pause()
reply_player.hud.add_child(menu)
func output(cards_to_remove: Array[Card], cards_to_add: Array[Card], amount_spent: int) -> void:
for card: Card in cards_to_remove:
reply_player.hand.contents.erase(card)
reply_player.check_removal()
for card: Card in cards_to_add:
reply_player.add_card(card)
reply_player.currency -= amount_spent
reply_player.unpause()

View File

@@ -0,0 +1 @@
uid://bpvmvx10q4ayd

View File

@@ -0,0 +1,34 @@
[gd_scene load_steps=6 format=3 uid="uid://c6isprnkaliqr"]
[ext_resource type="Script" uid="uid://bpvmvx10q4ayd" path="res://Scenes/MixingTable/remix_table.gd" id="1_q8doq"]
[ext_resource type="PackedScene" uid="uid://bajli4d3nqwll" path="res://UI/Menus/MixingMenu/track_editor.tscn" id="2_ibyhf"]
[ext_resource type="Script" uid="uid://dkfswql8ui0bt" path="res://Scripts/interact_button.gd" id="2_mjah6"]
[sub_resource type="BoxShape3D" id="BoxShape3D_ibyhf"]
[sub_resource type="BoxShape3D" id="BoxShape3D_78x4u"]
size = Vector3(0.5, 0.5, 0.5)
[node name="RemixTable" type="StaticBody3D" node_paths=PackedStringArray("button")]
script = ExtResource("1_q8doq")
remix_menu_scene = ExtResource("2_ibyhf")
button = NodePath("StaticBody3D")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("BoxShape3D_ibyhf")
[node name="CSGBox3D" type="CSGBox3D" parent="."]
[node name="StaticBody3D" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.524303, 0)
collision_layer = 16
collision_mask = 0
script = ExtResource("2_mjah6")
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
shape = SubResource("BoxShape3D_78x4u")
[node name="CSGBox3D" type="CSGBox3D" parent="StaticBody3D"]
size = Vector3(0.5, 0.5, 0.5)
[connection signal="button_interacted" from="StaticBody3D" to="." method="_on_static_body_3d_button_interacted"]

View File

@@ -3,7 +3,7 @@
[ext_resource type="Script" uid="uid://colk6js4wet11" path="res://Scenes/ShopStand/shop_stand.gd" id="1_4in53"]
[ext_resource type="Script" uid="uid://dkfswql8ui0bt" path="res://Scripts/interact_button.gd" id="1_x8sts"]
[ext_resource type="PackedScene" uid="uid://dsasunnk47n8o" path="res://Scenes/item_card.tscn" id="2_qh00w"]
[ext_resource type="PackedScene" uid="uid://dixtx38u4jhd7" path="res://Scenes/UI/card_hand.tscn" id="3_u7x2f"]
[ext_resource type="PackedScene" uid="uid://dixtx38u4jhd7" path="res://UI/card_hand.tscn" id="3_u7x2f"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lhc2g"]
albedo_color = Color(0.313726, 0.180392, 0.00392157, 1)

View File

@@ -1,73 +0,0 @@
[gd_scene load_steps=4 format=3 uid="uid://dixtx38u4jhd7"]
[ext_resource type="Script" uid="uid://d6ejaumcenmg" path="res://Scripts/card_hand.gd" id="1_2cfmh"]
[ext_resource type="Texture2D" uid="uid://dlqnhs8or4ik2" path="res://Assets/Textures/cardhand.png" id="1_d5oo3"]
[ext_resource type="Texture2D" uid="uid://buf8t5gc7iw3a" path="res://Assets/TextureAtlases/rarityborders.tres" id="3_pclfx"]
[node name="Node2D" type="Node2D" node_paths=PackedStringArray("rarity_sprite", "title_text", "description", "target_label", "energy_cost")]
script = ExtResource("1_2cfmh")
rarity_sprite = NodePath("Sprite2D2")
title_text = NodePath("Title")
description = NodePath("Description")
target_label = NodePath("Title2")
energy_cost = NodePath("EnergyCost")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture_filter = 1
position = Vector2(256, 256)
scale = Vector2(8, 8)
texture = ExtResource("1_d5oo3")
[node name="Sprite2D2" type="Sprite2D" parent="."]
texture_filter = 1
position = Vector2(256, 256)
scale = Vector2(8, 8)
texture = ExtResource("3_pclfx")
region_enabled = true
region_rect = Rect2(0, 0, 64, 64)
[node name="Title" type="Label" parent="."]
offset_left = 89.0
offset_top = 56.0
offset_right = 373.0
offset_bottom = 96.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 27
text = "Rocket Launcher 50"
horizontal_alignment = 1
vertical_alignment = 1
[node name="Title2" type="Label" parent="."]
offset_left = 183.0
offset_top = 424.0
offset_right = 296.0
offset_bottom = 464.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 27
text = "Land
"
horizontal_alignment = 1
vertical_alignment = 1
[node name="Description" type="RichTextLabel" parent="."]
offset_left = 107.0
offset_top = 144.0
offset_right = 357.0
offset_bottom = 389.0
theme_override_colors/default_color = Color(0, 0, 0, 1)
theme_override_font_sizes/normal_font_size = 17
bbcode_enabled = true
text = "In here goes some card text that really be quite long sometimes if you're not really really careful to describe the card's effects concisely
In fact, sometimes its really really really rediculously long, when it needs to be and im too dumb to shorten it"
fit_content = true
[node name="EnergyCost" type="Label" parent="."]
offset_left = 340.0
offset_top = 55.0
offset_right = 40.0
offset_bottom = 40.0
theme_override_colors/font_color = Color(0.228497, 0.570097, 0.884935, 1)
text = "3"
horizontal_alignment = 1
vertical_alignment = 1

View File

@@ -1,56 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://ddmg342ff2qaq"]
[ext_resource type="Script" uid="uid://dmdf7tbvc3bsg" path="res://Scripts/chatbox.gd" id="1_k3g22"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_c3kb6"]
bg_color = Color(0.223529, 0.211765, 0.184314, 0.462745)
[node name="Chatbox" type="Control" node_paths=PackedStringArray("input_line", "textbox", "text_panel", "fade_timer")]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
script = ExtResource("1_k3g22")
input_line = NodePath("VBoxContainer/LineEdit")
textbox = NodePath("VBoxContainer/PanelContainer/RichTextLabel")
text_panel = NodePath("VBoxContainer/PanelContainer")
fade_timer = NodePath("Timer")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 2
offset_left = 40.0
offset_top = 100.0
offset_right = 375.0
offset_bottom = 300.0
mouse_filter = 2
alignment = 2
[node name="PanelContainer" type="PanelContainer" parent="VBoxContainer"]
modulate = Color(1, 1, 1, 0)
layout_mode = 2
size_flags_vertical = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_c3kb6")
[node name="RichTextLabel" type="RichTextLabel" parent="VBoxContainer/PanelContainer"]
modulate = Color(1, 1, 1, 0)
layout_mode = 2
size_flags_vertical = 3
mouse_filter = 2
bbcode_enabled = true
scroll_following = true
[node name="LineEdit" type="LineEdit" parent="VBoxContainer"]
visible = false
layout_mode = 2
mouse_filter = 2
context_menu_enabled = false
selecting_enabled = false
[node name="Timer" type="Timer" parent="."]
wait_time = 3.5
one_shot = true
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]

Binary file not shown.

View File

@@ -1,19 +0,0 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://cp6ph4ra7u5rk"
path="res://.godot/imported/drop_003.ogg-b1448cf24bb17e683ffb9af8ac49fa5f.oggvorbisstr"
[deps]
source_file="res://Scenes/UI/drop_003.ogg"
dest_files=["res://.godot/imported/drop_003.ogg-b1448cf24bb17e683ffb9af8ac49fa5f.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@@ -1,48 +0,0 @@
[gd_scene load_steps=8 format=3 uid="uid://bnsf2degj5tio"]
[ext_resource type="Script" uid="uid://v5y44744p7ie" path="res://UI/hero_select_card.gd" id="1_rqutp"]
[ext_resource type="Texture2D" uid="uid://bskg4kgoi576f" path="res://Assets/Textures/Sprite-0001.png" id="2_gly1b"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ihqrr"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_l67bw"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_af3d2"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_00m4l"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_rg2u8"]
[node name="HeroCard" type="PanelContainer"]
custom_minimum_size = Vector2(360, 600)
offset_right = 360.0
offset_bottom = 600.0
size_flags_horizontal = 3
size_flags_vertical = 3
script = ExtResource("1_rqutp")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 2
[node name="Label" type="Label" parent="VBoxContainer"]
layout_mode = 2
text = "Character name"
horizontal_alignment = 1
vertical_alignment = 1
[node name="TextureRect" type="TextureRect" parent="VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
texture = ExtResource("2_gly1b")
stretch_mode = 5
[node name="Button" type="Button" parent="."]
layout_mode = 2
theme_override_styles/normal = SubResource("StyleBoxEmpty_ihqrr")
theme_override_styles/hover = SubResource("StyleBoxEmpty_l67bw")
theme_override_styles/pressed = SubResource("StyleBoxEmpty_af3d2")
theme_override_styles/disabled = SubResource("StyleBoxEmpty_00m4l")
theme_override_styles/focus = SubResource("StyleBoxEmpty_rg2u8")
[connection signal="mouse_entered" from="Button" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="Button" to="." method="_on_button_pressed"]

View File

@@ -1,34 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://cb8irvp2y2p6g"]
[ext_resource type="Script" uid="uid://y2pxkfjn0wa2" path="res://UI/KeybindEntry.gd" id="1_it8q2"]
[node name="KeybindEntry" type="HBoxContainer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
script = ExtResource("1_it8q2")
[node name="ActionName" type="Label" parent="."]
layout_mode = 2
size_flags_horizontal = 3
text = "Action Name"
horizontal_alignment = 1
vertical_alignment = 1
[node name="Buttons" type="GridContainer" parent="."]
layout_mode = 2
size_flags_horizontal = 3
columns = 4
[node name="AddBindButton" type="Button" parent="Buttons"]
custom_minimum_size = Vector2(80, 80)
layout_mode = 2
text = "+"
icon_alignment = 1
expand_icon = true
[connection signal="pressed" from="Buttons/AddBindButton" to="." method="_on_add_bind_button_pressed"]

View File

@@ -1,38 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://clsdko6ttudu8"]
[ext_resource type="Script" uid="uid://d25hjwjdwv35i" path="res://UI/keybind_screen.gd" id="1_m5i0b"]
[node name="Control" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_m5i0b")
[node name="ColorRect" type="ColorRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 0.54902)
[node name="Label" type="Label" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -99.0
offset_top = -13.0
offset_right = 99.0
offset_bottom = 13.0
grow_horizontal = 2
grow_vertical = 2
text = "LABEL_BIND_KEY"
horizontal_alignment = 1
vertical_alignment = 1

View File

@@ -1,558 +0,0 @@
[gd_scene load_steps=11 format=3 uid="uid://dko38egcaxubd"]
[ext_resource type="Script" uid="uid://c3ark32u3lct8" path="res://Scripts/lifebar_segment.gd" id="1_dvlcq"]
[ext_resource type="Texture2D" uid="uid://0ey8r48lgjw1" path="res://Assets/Textures/lifebar_pip.png" id="1_pianw"]
[sub_resource type="Animation" id="Animation_i18y2"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("TextureRect6:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 4)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("TextureRect6:modulate")
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)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("TextureRect6:rotation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("TextureRect4:position")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 0)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("TextureRect4:rotation")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("TextureRect4:modulate")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("TextureRect5:position")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-4, 4)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("TextureRect5:rotation")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("TextureRect5:modulate")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("TextureRect2:position")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, -4)]
}
tracks/10/type = "value"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("TextureRect2:rotation")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/11/type = "value"
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/path = NodePath("TextureRect2:modulate")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/12/type = "value"
tracks/12/imported = false
tracks/12/enabled = true
tracks/12/path = NodePath("TextureRect3:position")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-4, 0)]
}
tracks/13/type = "value"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/path = NodePath("TextureRect3:rotation")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/14/type = "value"
tracks/14/imported = false
tracks/14/enabled = true
tracks/14/path = NodePath("TextureRect3:modulate")
tracks/14/interp = 1
tracks/14/loop_wrap = true
tracks/14/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/15/type = "value"
tracks/15/imported = false
tracks/15/enabled = true
tracks/15/path = NodePath("TextureRect:position")
tracks/15/interp = 1
tracks/15/loop_wrap = true
tracks/15/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-4, -4)]
}
tracks/16/type = "value"
tracks/16/imported = false
tracks/16/enabled = true
tracks/16/path = NodePath("TextureRect:rotation")
tracks/16/interp = 1
tracks/16/loop_wrap = true
tracks/16/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/17/type = "value"
tracks/17/imported = false
tracks/17/enabled = true
tracks/17/path = NodePath("TextureRect:modulate")
tracks/17/interp = 1
tracks/17/loop_wrap = true
tracks/17/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_a6tv4"]
resource_name = "lose1"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("TextureRect6:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(0, 4), Vector2(4.76837e-07, 9)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("TextureRect6:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 0.567662]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("TextureRect6:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_t2ym0"]
resource_name = "lose2"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("TextureRect4:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(0, 0), Vector2(2, 6)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("TextureRect4:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, -0.933911]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("TextureRect4:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_ueyfw"]
resource_name = "lose3"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("TextureRect5:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(-4, 4), Vector2(-3, 9)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("TextureRect5:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, -1.1286]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("TextureRect5:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_r4h4h"]
resource_name = "lose4"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("TextureRect2:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(0, -4), Vector2(4, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("TextureRect2:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 0.582677]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("TextureRect2:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_defuy"]
resource_name = "lose5"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("TextureRect3:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(-4, 0), Vector2(-1, 4)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("TextureRect3:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, -0.909425]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("TextureRect3:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_rctjq"]
resource_name = "lose6"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("TextureRect:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(-4, -4), Vector2(1, 2)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("TextureRect:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, -1.01031]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("TextureRect:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_1s8yp"]
_data = {
&"RESET": SubResource("Animation_i18y2"),
&"lose1": SubResource("Animation_a6tv4"),
&"lose2": SubResource("Animation_t2ym0"),
&"lose3": SubResource("Animation_ueyfw"),
&"lose4": SubResource("Animation_r4h4h"),
&"lose5": SubResource("Animation_defuy"),
&"lose6": SubResource("Animation_rctjq")
}
[node name="Control" type="Control"]
layout_mode = 3
anchors_preset = 0
script = ExtResource("1_dvlcq")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_1s8yp")
}
[node name="AnimationPlayer2" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_1s8yp")
}
[node name="AnimationPlayer3" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_1s8yp")
}
[node name="AnimationPlayer4" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_1s8yp")
}
[node name="AnimationPlayer5" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_1s8yp")
}
[node name="AnimationPlayer6" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_1s8yp")
}
[node name="TextureRect" type="TextureRect" parent="."]
texture_filter = 1
layout_mode = 0
offset_left = -4.0
offset_top = -4.0
offset_right = -1.0
offset_bottom = -1.0
texture = ExtResource("1_pianw")
[node name="TextureRect2" type="TextureRect" parent="."]
texture_filter = 1
layout_mode = 0
offset_top = -4.0
offset_right = 3.0
offset_bottom = -1.0
texture = ExtResource("1_pianw")
[node name="TextureRect3" type="TextureRect" parent="."]
texture_filter = 1
layout_mode = 0
offset_left = -4.0
offset_right = -1.0
offset_bottom = 3.0
texture = ExtResource("1_pianw")
[node name="TextureRect4" type="TextureRect" parent="."]
texture_filter = 1
layout_mode = 0
offset_right = 3.0
offset_bottom = 3.0
texture = ExtResource("1_pianw")
[node name="TextureRect5" type="TextureRect" parent="."]
texture_filter = 1
layout_mode = 0
offset_left = -4.0
offset_top = 4.0
offset_right = -1.0
offset_bottom = 7.0
texture = ExtResource("1_pianw")
[node name="TextureRect6" type="TextureRect" parent="."]
texture_filter = 1
layout_mode = 0
offset_top = 4.0
offset_right = 3.0
offset_bottom = 7.00004
texture = ExtResource("1_pianw")

View File

@@ -1,137 +0,0 @@
[gd_scene load_steps=4 format=3 uid="uid://24x18qxqhy0i"]
[ext_resource type="Texture2D" uid="uid://dvy2lvtotaxb3" path="res://Assets/Textures/lifebar_bg.png" id="1_x27cx"]
[ext_resource type="Script" uid="uid://b3g3hofk5pbcp" path="res://Scripts/lives_bar.gd" id="2_lqe7s"]
[ext_resource type="PackedScene" uid="uid://dko38egcaxubd" path="res://Scenes/UI/lifebar_segment.tscn" id="3_6hp86"]
[node name="LivesBar" type="TextureRect" node_paths=PackedStringArray("segments")]
texture_filter = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("1_x27cx")
stretch_mode = 2
script = ExtResource("2_lqe7s")
segments = [NodePath("Control"), NodePath("Control2"), NodePath("Control3"), NodePath("Control4"), NodePath("Control5"), NodePath("Control6"), NodePath("Control7"), NodePath("Control8"), NodePath("Control9"), NodePath("Control10"), NodePath("Control11"), NodePath("Control12"), NodePath("Control13"), NodePath("Control14"), NodePath("Control15"), NodePath("Control16"), NodePath("Control17"), NodePath("Control18"), NodePath("Control19"), NodePath("Control20")]
[node name="Control" parent="." instance=ExtResource("3_6hp86")]
offset_left = 28.0
offset_top = 10.0
offset_right = 28.0
offset_bottom = 10.0
[node name="Control2" parent="." instance=ExtResource("3_6hp86")]
offset_left = 37.0
offset_top = 10.0
offset_right = 37.0
offset_bottom = 10.0
[node name="Control3" parent="." instance=ExtResource("3_6hp86")]
offset_left = 46.0
offset_top = 10.0
offset_right = 46.0
offset_bottom = 10.0
[node name="Control4" parent="." instance=ExtResource("3_6hp86")]
offset_left = 55.0
offset_top = 10.0
offset_right = 55.0
offset_bottom = 10.0
[node name="Control5" parent="." instance=ExtResource("3_6hp86")]
offset_left = 64.0
offset_top = 10.0
offset_right = 64.0
offset_bottom = 10.0
[node name="Control6" parent="." instance=ExtResource("3_6hp86")]
offset_left = 73.0
offset_top = 10.0
offset_right = 73.0
offset_bottom = 10.0
[node name="Control7" parent="." instance=ExtResource("3_6hp86")]
offset_left = 82.0
offset_top = 10.0
offset_right = 82.0
offset_bottom = 10.0
[node name="Control8" parent="." instance=ExtResource("3_6hp86")]
offset_left = 91.0
offset_top = 10.0
offset_right = 91.0
offset_bottom = 10.0
[node name="Control9" parent="." instance=ExtResource("3_6hp86")]
offset_left = 100.0
offset_top = 10.0
offset_right = 100.0
offset_bottom = 10.0
[node name="Control10" parent="." instance=ExtResource("3_6hp86")]
offset_left = 109.0
offset_top = 10.0
offset_right = 109.0
offset_bottom = 10.0
[node name="Control11" parent="." instance=ExtResource("3_6hp86")]
offset_left = 118.0
offset_top = 10.0
offset_right = 118.0
offset_bottom = 10.0
[node name="Control12" parent="." instance=ExtResource("3_6hp86")]
offset_left = 127.0
offset_top = 10.0
offset_right = 127.0
offset_bottom = 10.0
[node name="Control13" parent="." instance=ExtResource("3_6hp86")]
offset_left = 136.0
offset_top = 10.0
offset_right = 136.0
offset_bottom = 10.0
[node name="Control14" parent="." instance=ExtResource("3_6hp86")]
offset_left = 145.0
offset_top = 10.0
offset_right = 145.0
offset_bottom = 10.0
[node name="Control15" parent="." instance=ExtResource("3_6hp86")]
offset_left = 154.0
offset_top = 10.0
offset_right = 154.0
offset_bottom = 10.0
[node name="Control16" parent="." instance=ExtResource("3_6hp86")]
offset_left = 163.0
offset_top = 10.0
offset_right = 163.0
offset_bottom = 10.0
[node name="Control17" parent="." instance=ExtResource("3_6hp86")]
offset_left = 172.0
offset_top = 10.0
offset_right = 172.0
offset_bottom = 10.0
[node name="Control18" parent="." instance=ExtResource("3_6hp86")]
offset_left = 181.0
offset_top = 10.0
offset_right = 181.0
offset_bottom = 10.0
[node name="Control19" parent="." instance=ExtResource("3_6hp86")]
offset_left = 190.0
offset_top = 10.0
offset_right = 190.0
offset_bottom = 10.0
[node name="Control20" parent="." instance=ExtResource("3_6hp86")]
offset_left = 199.0
offset_top = 10.0
offset_right = 199.0
offset_bottom = 10.0

View File

@@ -1,45 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://chnj376d3lcjd"]
[ext_resource type="Script" uid="uid://b6vynawytkd0k" path="res://Scripts/pickup_notification.gd" id="1_cgy5u"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cdnv4"]
resource_local_to_scene = true
content_margin_left = 7.0
content_margin_top = 3.0
content_margin_right = 7.0
content_margin_bottom = 3.0
bg_color = Color(0.717647, 0.0941176, 0.392157, 0.784314)
corner_radius_top_left = 15
corner_radius_top_right = 15
corner_radius_bottom_right = 15
corner_radius_bottom_left = 2
[node name="PanelContainer" type="PanelContainer"]
script = ExtResource("1_cgy5u")
fade_out_time = 2.0
style = SubResource("StyleBoxFlat_cdnv4")
text_style = Color(0, 0, 0, 0.862745)
common_background = Color(1, 1, 1, 0.784314)
uncommon_background = Color(0.196078, 0.8, 0.141176, 0.784314)
rare_background = Color(0.141176, 0.231373, 0.8, 0.784314)
epic_background = Color(0.709804, 0.141176, 0.8, 0.784314)
legendary_background = Color(0.882353, 0.478431, 0.117647, 0.784314)
[node name="HBoxContainer" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="Label2" type="Label" parent="HBoxContainer"]
layout_mode = 2
text = "+1"
[node name="Label" type="Label" parent="HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Rocket Launcher 50"
horizontal_alignment = 1
vertical_alignment = 1
[node name="Timer" type="Timer" parent="."]
one_shot = true
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]

View File

@@ -1,31 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://dpt3kpixawyby"]
[ext_resource type="Script" uid="uid://k0jvsnqw4766" path="res://Scripts/scoreboard.gd" id="1_b5vdp"]
[ext_resource type="PackedScene" uid="uid://bhri8mqjbme2t" path="res://Scenes/UI/scoreboard_entry.tscn" id="2_uer0b"]
[node name="Scoreboard" type="PanelContainer"]
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -157.5
offset_top = -125.0
offset_right = 157.5
offset_bottom = 125.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_b5vdp")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 2
alignment = 1
[node name="DummyEntry1" parent="VBoxContainer" instance=ExtResource("2_uer0b")]
layout_mode = 2
[node name="DummyEntry2" parent="VBoxContainer" instance=ExtResource("2_uer0b")]
layout_mode = 2
[node name="DummyEntry3" parent="VBoxContainer" instance=ExtResource("2_uer0b")]
layout_mode = 2

View File

@@ -1,35 +0,0 @@
[gd_scene load_steps=4 format=3 uid="uid://bhri8mqjbme2t"]
[ext_resource type="Script" uid="uid://bmcym1lkp0j8f" path="res://Scripts/scoreboard_entry.gd" id="1_5xryr"]
[ext_resource type="Texture2D" uid="uid://m4ehy5bahsup" path="res://Assets/Textures/ready.png" id="2_yxtr2"]
[sub_resource type="AtlasTexture" id="AtlasTexture_qhkn8"]
resource_local_to_scene = true
atlas = ExtResource("2_yxtr2")
region = Rect2(0, 0, 32, 32)
[node name="PlayerListEntry" type="HBoxContainer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_5xryr")
[node name="DisplayName" type="Label" parent="."]
layout_mode = 2
size_flags_horizontal = 3
text = "Dummy Player"
horizontal_alignment = 1
[node name="CharacterName" type="Label" parent="."]
layout_mode = 2
size_flags_horizontal = 3
text = "Character"
horizontal_alignment = 1
[node name="TextureRect" type="TextureRect" parent="."]
layout_mode = 2
size_flags_horizontal = 8
texture = SubResource("AtlasTexture_qhkn8")
stretch_mode = 3

View File

@@ -1,32 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://cqtew0t8sttpm"]
[ext_resource type="Script" uid="uid://blt7umrgo3tfh" path="res://Scripts/damage_particle.gd" id="1_lgvaq"]
[sub_resource type="ViewportTexture" id="ViewportTexture_ppqlh"]
viewport_path = NodePath("SubViewport")
[node name="Node3D" type="Sprite3D"]
pixel_size = 0.005
billboard = 1
no_depth_test = true
fixed_size = true
texture_filter = 2
render_priority = 1
texture = SubResource("ViewportTexture_ppqlh")
script = ExtResource("1_lgvaq")
[node name="SubViewport" type="SubViewport" parent="."]
transparent_bg = true
size = Vector2i(172, 57)
render_target_update_mode = 4
[node name="Label" type="Label" parent="SubViewport"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_type_variation = &"DamageNumLabel"
text = "12345"
horizontal_alignment = 1
vertical_alignment = 1

View File

@@ -1,30 +0,0 @@
[gd_scene load_steps=4 format=3 uid="uid://hjq3nrnumklp"]
[ext_resource type="Texture2D" uid="uid://r202vo47jw1q" path="res://Assets/Textures/enemyhealth.png" id="1_x8m88"]
[ext_resource type="Script" uid="uid://bf06es50d0flv" path="res://Scripts/health_bar.gd" id="2_m8c1f"]
[ext_resource type="Gradient" uid="uid://dx7auy3oqw82t" path="res://UI/health_bar_gradient.tres" id="3_dpmma"]
[node name="HealthBar" type="TextureProgressBar"]
offset_right = 200.0
offset_bottom = 200.0
grow_horizontal = 2
grow_vertical = 2
step = 0.0
value = 100.0
fill_mode = 6
texture_progress = ExtResource("1_x8m88")
tint_progress = Color(0, 1, 0, 1)
script = ExtResource("2_m8c1f")
health_bar_gradient = ExtResource("3_dpmma")
[node name="PreviousHealthBar" type="TextureProgressBar" parent="."]
z_index = -1
layout_mode = 0
offset_right = 200.0
offset_bottom = 200.0
grow_horizontal = 2
grow_vertical = 2
step = 0.0
value = 100.0
fill_mode = 6
texture_progress = ExtResource("1_x8m88")

View File

@@ -1,7 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://dp45xkbsslr0k"]
[ext_resource type="Texture2D" uid="uid://bpixdxdjnr5tw" path="res://Assets/Textures/glue_icon.png" id="1_d3stl"]
[node name="StatusIcon" type="TextureRect"]
texture_filter = 1
texture = ExtResource("1_d3stl")