added i18n keys for ingame item descriptions and button prompts

This commit is contained in:
2025-08-20 19:30:30 +10:00
parent 198177bbae
commit 2859b6dd43
50 changed files with 297 additions and 114 deletions

View File

@@ -16,5 +16,5 @@ weapon_scene = ExtResource("2_67wu0")
weapon_stats = ExtResource("3_o52qt") weapon_stats = ExtResource("3_o52qt")
tower_stats = ExtResource("2_o52qt") tower_stats = ExtResource("2_o52qt")
tags = Array[int]([]) tags = Array[int]([])
display_name = "CARD_NAME_SPEED_TOWER" display_name = "CARD_NAME_SPEED_INCREASER"
metadata/_custom_type_script = "uid://d40isem6w5d8" metadata/_custom_type_script = "uid://d40isem6w5d8"

View File

@@ -8,7 +8,7 @@
[resource] [resource]
script = ExtResource("1_k5sd1") script = ExtResource("1_k5sd1")
title = "Baby Eye Dog" title = "ENEMY_FAST_BABY"
target_type = 1 target_type = 1
scene = ExtResource("3_otbdk") scene = ExtResource("3_otbdk")
icon = ExtResource("1_xgen5") icon = ExtResource("1_xgen5")

View File

@@ -8,7 +8,7 @@
[resource] [resource]
script = ExtResource("4_x2l2n") script = ExtResource("4_x2l2n")
title = "Crystalisk" title = "ENEMY_FLYING_CRYSTAL"
target_type = 2 target_type = 2
scene = ExtResource("3_7w5fm") scene = ExtResource("3_7w5fm")
icon = ExtResource("2_idym2") icon = ExtResource("2_idym2")

View File

@@ -8,7 +8,7 @@
[resource] [resource]
script = ExtResource("1_q48il") script = ExtResource("1_q48il")
title = "Elder Eye Dog" title = "ENEMY_HEAVY_WALKER"
target_type = 1 target_type = 1
scene = ExtResource("3_m808b") scene = ExtResource("3_m808b")
icon = ExtResource("1_lck53") icon = ExtResource("1_lck53")

View File

@@ -14,7 +14,7 @@ region = Rect2(0, 0, 32, 32)
[resource] [resource]
resource_local_to_scene = true resource_local_to_scene = true
script = ExtResource("1_ivs7a") script = ExtResource("1_ivs7a")
title = "Eye Dog" title = "ENEMY_DOG"
target_type = 1 target_type = 1
scene = ExtResource("3_tyyee") scene = ExtResource("3_tyyee")
icon = ExtResource("2_tyyee") icon = ExtResource("2_tyyee")

View File

@@ -8,6 +8,8 @@
# res://Scenes/Menus/graphics_options.tscn # res://Scenes/Menus/graphics_options.tscn
# res://Scenes/Menus/keybind_options.tscn # res://Scenes/Menus/keybind_options.tscn
# res://Scenes/UI/keybind_popup.tscn # res://Scenes/UI/keybind_popup.tscn
# res://choose_card_screen.tscn
# res://Scenes/Menus/options_menu.tscn
# #
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# #
@@ -124,11 +126,13 @@ msgid "BUTTON_ACHIEVEMENTS"
msgstr "" msgstr ""
#: Scenes/Menus/MainMenu/main_menu.tscn #: Scenes/Menus/MainMenu/main_menu.tscn
#: Scenes/Menus/options_menu.tscn
msgid "BUTTON_CANCEL" msgid "BUTTON_CANCEL"
msgstr "" msgstr ""
#: Scenes/Menus/MainMenu/main_menu.tscn #: Scenes/Menus/MainMenu/main_menu.tscn
#: Scenes/Menus/CharacterSelect/character_select.tscn #: Scenes/Menus/CharacterSelect/character_select.tscn
#: Scenes/Menus/options_menu.tscn
msgid "BUTTON_CONFIRM" msgid "BUTTON_CONFIRM"
msgstr "" msgstr ""
@@ -177,14 +181,6 @@ msgstr ""
msgid "BUTTON_RESTART" msgid "BUTTON_RESTART"
msgstr "" msgstr ""
#: Scenes/Menus/CharacterSelect/character_select.tscn
msgid "character name"
msgstr ""
#: Scenes/Menus/CharacterSelect/character_select.tscn
msgid "------------------------"
msgstr ""
#: Scenes/Menus/CharacterSelect/character_select.tscn #: Scenes/Menus/CharacterSelect/character_select.tscn
msgid "BUTTON_PREVIOUS" msgid "BUTTON_PREVIOUS"
msgstr "" msgstr ""
@@ -301,6 +297,54 @@ msgstr ""
msgid "LABEL_BIND_KEY" msgid "LABEL_BIND_KEY"
msgstr "" msgstr ""
#: choose_card_screen.tscn
msgid "LABEL_CHOOSE_CARD"
msgstr ""
#: choose_card_screen.tscn
msgid "LABEL_CARD_NAME"
msgstr ""
#: choose_card_screen.tscn
msgid "BUTTON_VIEW_TOWER"
msgstr ""
#: choose_card_screen.tscn
msgid "BUTTON_VIEW_WEAPON"
msgstr ""
#: choose_card_screen.tscn
msgid "BUTTON_FINALIZE_CARD_CHOICE"
msgstr ""
#: choose_card_screen.tscn
msgid "LABEL_CARD_DESCRIPTION"
msgstr ""
#: choose_card_screen.tscn
msgid "LABEL_CARD_FEATURES"
msgstr ""
#: choose_card_screen.tscn
msgid "LABEL_TARGET_LIST"
msgstr ""
#: Scenes/Menus/options_menu.tscn
msgid "Gameplay"
msgstr ""
#: Scenes/Menus/options_menu.tscn
msgid "Graphics"
msgstr ""
#: Scenes/Menus/options_menu.tscn
msgid "Keybinds"
msgstr ""
#: Scenes/Menus/options_menu.tscn
msgid "Audio"
msgstr ""
#: Classes/Engineer/class.tres #: Classes/Engineer/class.tres
msgid "CLASS_NAME_ENGINEER" msgid "CLASS_NAME_ENGINEER"
msgstr "" msgstr ""
@@ -313,54 +357,206 @@ msgstr ""
msgid "CARD_NAME_PLATFORM_DASH" msgid "CARD_NAME_PLATFORM_DASH"
msgstr "" msgstr ""
#: Towers/Ascension/tower_stats.tres
msgid "DESC_TOWER_PLATFORM_DASH"
msgstr ""
#: Weapons/Ascension/weapon_stats.tres
msgid "DESC_WEAPON_PLATFORM_DASH"
msgstr ""
#: Cards/assault.tres #: Cards/assault.tres
msgid "CARD_NAME_BASIC_GUN" msgid "CARD_NAME_BASIC_GUN"
msgstr "" msgstr ""
#: Towers/Assault/tower_stats.tres
msgid "DESC_TOWER_BASIC_GUN"
msgstr ""
#: Weapons/Assault/weapon_stats.tres
msgid "DESC_WEAPON_BASIC_GUN"
msgstr ""
#: Cards/blowdart.tres #: Cards/blowdart.tres
msgid "CARD_NAME_POISON" msgid "CARD_NAME_POISON"
msgstr "" msgstr ""
#: Towers/Blowdart/tower_stats.tres
msgid "DESC_TOWER_POISON"
msgstr ""
#: Weapon/Blowdart/weapon_stats.tres
msgid "DESC_WEAPON_POISON"
msgstr ""
#: Cards/bomb_launcher.tres #: Cards/bomb_launcher.tres
msgid "CARD_NAME_BOMB" msgid "CARD_NAME_BOMB"
msgstr "" msgstr ""
#: Towers/BombLauncher/tower_stats.tres
msgid "DESC_TOWER_BOMB"
msgstr ""
#: Weapon/BombLauncher/weapon_stats.tres
msgid "DESC_WEAPON_BOMB"
msgstr ""
#: Cards/fireball.tres #: Cards/fireball.tres
msgid "CARD_NAME_FIREBALL" msgid "CARD_NAME_FIREBALL"
msgstr "" msgstr ""
#: Towers/Fireball/tower_stats.tres
msgid "DESC_TOWER_FIREBALL"
msgstr ""
#: Weapon/Fireball/weapon_stats.tres
msgid "DESC_WEAPON_FIREBALL"
msgstr ""
#: Cards/flamethrower.tres #: Cards/flamethrower.tres
msgid "CARD_NAME_FLAMETHROWER" msgid "CARD_NAME_FLAMETHROWER"
msgstr "" msgstr ""
#: Towers/Flamethrower/tower_stats.tres
msgid "DESC_TOWER_FLAMETHROWER"
msgstr ""
#: Weapons/Flamethrower/weapon_stats.tres
msgid "DESC_WEAPON_FLAMETHROWER"
msgstr ""
#: Cards/gatling.tres #: Cards/gatling.tres
msgid "CARD_NAME_ACCEL" msgid "CARD_NAME_ACCEL"
msgstr "" msgstr ""
#: Towers/Gatling/tower_stats.tres
msgid "DESC_TOWER_ACCEL"
msgstr ""
#: Weapons/Gatling/weapon_stats.tres
msgid "DESC_WEAPON_ACCEL"
msgstr ""
#: Cards/glue_launcher.tres #: Cards/glue_launcher.tres
msgid "CARD_NAME_GLUE" msgid "CARD_NAME_GLUE"
msgstr "" msgstr ""
#: Towers/GlueLauncher/tower_stats.tres
msgid "DESC_TOWER_GLUE"
msgstr ""
#: Weapons/GlueLauncher/weapon_stats.tres
msgid "DESC_WEAPON_GLUE"
msgstr ""
#: Cards/icicle.tres #: Cards/icicle.tres
msgid "CARD_NAME_ICE_SPIKE" msgid "CARD_NAME_ICE_SPIKE"
msgstr "" msgstr ""
#: Towers/Icicle/tower_stats.tres
msgid "DESC_TOWER_ICE_SPIKE"
msgstr ""
#: Weapons/Icicle/weapon_stats.tres
msgid "DESC_WEAPON_ICE_SPIKE"
msgstr ""
#: Cards/overclock.tres #: Cards/overclock.tres
msgid "CARD_NAME_SPEED_TOWER" msgid "CARD_NAME_SPEED_INCREASER"
msgstr ""
#: Towers/Overclock/tower_stats.tres
msgid "DESC_TOWER_SPEED_INCREASER"
msgstr ""
#: Weapons/Overclock/weapon_stats.tres
msgid "DESC_WEAPON_SPEED_INCREASER"
msgstr "" msgstr ""
#: Cards/reactor.tres #: Cards/reactor.tres
msgid "CARD_NAME_RADIATION" msgid "CARD_NAME_RADIATION"
msgstr "" msgstr ""
#: Towers/Reactor/tower_stats.tres
msgid "DESC_TOWER_RADIATION"
msgstr ""
#: Weapons/Reactor/weapon_stats.tres
msgid "DESC_WEAPON_RADIATION"
msgstr ""
#: Cards/refrigerator.tres #: Cards/refrigerator.tres
msgid "CARD_NAME_FREEZER" msgid "CARD_NAME_FREEZER"
msgstr "" msgstr ""
#: Towers/Refrigerator/tower_stats.tres
msgid "DESC_TOWER_FREEZER"
msgstr ""
#: Weapons/Refrigerator/weapon_stats.tres
msgid "DESC_WEAPON_FREEZER"
msgstr ""
#: Cards/rocket_launcher.tres #: Cards/rocket_launcher.tres
msgid "CARD_NAME_ROCKET" msgid "CARD_NAME_ROCKET"
msgstr "" msgstr ""
#: Towers/RocketLauncher/tower_stats.tres
msgid "DESC_TOWER_ROCKET"
msgstr ""
#: Weapons/RocketLauncher/weapon_stats.tres
msgid "DESC_WEAPON_ROCKET"
msgstr ""
#: Cards/sniper.tres #: Cards/sniper.tres
msgid "CARD_NAME_SNIPER" msgid "CARD_NAME_SNIPER"
msgstr "" msgstr ""
#: Towers/Sniper/tower_stats.tres
msgid "DESC_TOWER_SNIPER"
msgstr ""
#: Weapons/Sniper/weapon_stats.tres
msgid "DESC_WEAPON_SNIPER"
msgstr ""
#: Scripts/options_menu.gd
msgid "OPTIONS_TAB_GAMEPLAY"
msgstr ""
#: Scripts/options_menu.gd
msgid "OPTIONS_TAB_GRAPHICS"
msgstr ""
#: Scripts/options_menu.gd
msgid "OPTIONS_TAB_KEYBINDS"
msgstr ""
#: Scripts/options_menu.gd
msgid "OPTIONS_TAB_AUDIO"
msgstr ""
#: PCs/hud.gd
msgid "PROMPT_START_WAVE"
msgstr ""
#: Enemies/BabyEyeDog/baby_eye_dog.tres
msgid "ENEMY_FAST_BABY"
msgstr ""
#: Enemies/Crystalisk/crystalisk.tres
msgid "ENEMY_FLYING_CRYSTAL"
msgstr ""
#: Enemies/ElderEyeDog/elder_eye_dog.tres
msgid "ENEMY_HEAVY_WALKER"
msgstr ""
#: Enemies/EyeDog/eye_dog.tres
msgid "ENEMY_DOG"
msgstr ""
#: Scenes/CardPrinter/card_printer.gd
msgid "BUTTON_RADIO_INTERACT"
msgstr ""

View File

@@ -320,7 +320,7 @@ max_look_up_angle = 80.0
enable_jumping = true enable_jumping = true
weapon_holder = NodePath("../FirstPersonViewport/Head2/RightHand") weapon_holder = NodePath("../FirstPersonViewport/Head2/RightHand")
[node name="HUD" type="CanvasLayer" parent="." node_paths=PackedStringArray("player", "wave_count", "lives_count", "currency_count", "minimap_outline", "minimap", "minimap_cam", "minimap_viewport", "fps_label", "hover_text", "enemy_sprites", "enemy_counts", "wave_start_label", "place_icon", "swap_icon", "place_text", "swap_text", "new_energy_bar", "energy_label", "primary_duration", "secondary_duration", "blank_cassette_label")] [node name="HUD" type="CanvasLayer" parent="." node_paths=PackedStringArray("player", "wave_count", "lives_count", "currency_count", "minimap_outline", "minimap", "minimap_cam", "minimap_viewport", "fps_label", "hover_text", "enemy_sprites", "enemy_counts", "wave_start_label", "place_icon", "swap_icon", "place_text", "swap_text", "new_energy_bar", "energy_label", "blank_cassette_label")]
script = ExtResource("8_yl6ka") script = ExtResource("8_yl6ka")
player = NodePath("..") player = NodePath("..")
wave_count = NodePath("EnemyTracker/WaveCount") wave_count = NodePath("EnemyTracker/WaveCount")
@@ -343,8 +343,6 @@ swap_text = NodePath("SwapIcon/RichTextLabel")
enemy_card_scene = ExtResource("18_dfkac") enemy_card_scene = ExtResource("18_dfkac")
new_energy_bar = NodePath("EnergyBar") new_energy_bar = NodePath("EnergyBar")
energy_label = NodePath("Currencies/HBoxContainer/EnergyLabel") energy_label = NodePath("Currencies/HBoxContainer/EnergyLabel")
primary_duration = NodePath("weapon_duration")
secondary_duration = NodePath("weapon_duration2")
blank_cassette_label = NodePath("Currencies/BlankCassetteLabel") blank_cassette_label = NodePath("Currencies/BlankCassetteLabel")
[node name="FirstPersonCam" type="TextureRect" parent="HUD"] [node name="FirstPersonCam" type="TextureRect" parent="HUD"]
@@ -650,15 +648,17 @@ alignment = 2
[node name="StartWaveLabel" type="RichTextLabel" parent="HUD"] [node name="StartWaveLabel" type="RichTextLabel" parent="HUD"]
anchors_preset = -1 anchors_preset = -1
anchor_left = 0.34 anchor_left = 0.4
anchor_top = 0.085 anchor_top = 0.1
anchor_right = 0.69 anchor_right = 0.6
anchor_bottom = 0.155 anchor_bottom = 0.15
grow_horizontal = 2 grow_horizontal = 2
mouse_filter = 2 mouse_filter = 2
bbcode_enabled = true bbcode_enabled = true
text = "[center]#Ready# Start wave[/center]" text = "Press #Ready# Start wave"
scroll_active = false scroll_active = false
horizontal_alignment = 1
vertical_alignment = 1
[node name="Control2" type="Control" parent="HUD"] [node name="Control2" type="Control" parent="HUD"]
layout_mode = 3 layout_mode = 3

View File

@@ -82,7 +82,7 @@ func set_energy_visible(value: bool) -> void:
func _process(_delta: float) -> void: func _process(_delta: float) -> void:
fps_label.text = "FPS: " + str(Engine.get_frames_per_second()) fps_label.text = "FPS: " + str(Engine.get_frames_per_second())
wave_start_label.text = parse_action_tag("[center]Press #Ready# to start wave") wave_start_label.text = tr(parse_action_tag("PROMPT_START_WAVE"))
place_text.text = parse_action_tag("[center]#Primary Fire#") place_text.text = parse_action_tag("[center]#Primary Fire#")
swap_text.text = parse_action_tag("[center]#Secondary Fire#") swap_text.text = parse_action_tag("[center]#Secondary Fire#")
@@ -110,7 +110,7 @@ func tween_label(x: float) -> void:
func set_hover_text(text: String) -> void: func set_hover_text(text: String) -> void:
$TextureRect2.visible = true $TextureRect2.visible = true
$TextureRect.visible = false $TextureRect.visible = false
hover_text.text = parse_action_tag(text) hover_text.text = tr(parse_action_tag(text))
hover_text.visible = true hover_text.visible = true

View File

@@ -1,5 +1,6 @@
class_name CardPrinter extends StaticBody3D class_name CardPrinter extends StaticBody3D
@export var button: InteractButton
@export var button_collider: CollisionShape3D @export var button_collider: CollisionShape3D
@export var card_selection_menu: PackedScene @export var card_selection_menu: PackedScene
@@ -10,6 +11,10 @@ var reply_player: Hero
var spawned_cards: Array[CardItem] = [] var spawned_cards: Array[CardItem] = []
func _ready() -> void:
button.hover_text = tr("BUTTON_RADIO_INTERACT")
func get_faction_cards(faction: Card.Faction) -> Array[Card]: func get_faction_cards(faction: Card.Faction) -> Array[Card]:
var valid_cards: Array[Card] = [] var valid_cards: Array[Card] = []
for card: Card in Data.cards: for card: Card in Data.cards:

View File

@@ -19,8 +19,9 @@ stream_0/stream = ExtResource("5_m033a")
[sub_resource type="BoxShape3D" id="BoxShape3D_21y4o"] [sub_resource type="BoxShape3D" id="BoxShape3D_21y4o"]
size = Vector3(2.11176, 1.16345, 0.664978) size = Vector3(2.11176, 1.16345, 0.664978)
[node name="CardPrinter" type="StaticBody3D" node_paths=PackedStringArray("button_collider")] [node name="CardPrinter" type="StaticBody3D" node_paths=PackedStringArray("button", "button_collider")]
script = ExtResource("1_qft15") script = ExtResource("1_qft15")
button = NodePath("StaticBody3D")
button_collider = NodePath("StaticBody3D/CollisionShape3D2") button_collider = NodePath("StaticBody3D/CollisionShape3D2")
card_selection_menu = ExtResource("2_kpujb") card_selection_menu = ExtResource("2_kpujb")
@@ -34,7 +35,6 @@ collision_layer = 16
collision_mask = 0 collision_mask = 0
script = ExtResource("4_eavi1") script = ExtResource("4_eavi1")
press_cost = 1 press_cost = 1
hover_text = "[center]#Interact# Record to blank cassette"
[node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D"] [node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00542301, 0.653175, 0.254328) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00542301, 0.653175, 0.254328)

View File

@@ -161,11 +161,13 @@ func _on_achievements_button_pressed() -> void:
func _on_profile_manager_cancel_pressed() -> void: func _on_profile_manager_cancel_pressed() -> void:
$ProfileManager.visible = false profile_controls.visible = false
main_controls.visible = true
func _on_profile_manager_confirm_pressed() -> void: func _on_profile_manager_confirm_pressed() -> void:
$ProfileManager.visible = false profile_controls.visible = false
main_controls.visible = true
if $ProfileManager/VBoxContainer/DisplayName/LineEdit.text != "": if $ProfileManager/VBoxContainer/DisplayName/LineEdit.text != "":
change_profile_display_name($ProfileManager/VBoxContainer/DisplayName/LineEdit.text) change_profile_display_name($ProfileManager/VBoxContainer/DisplayName/LineEdit.text)
$ProfileManager/VBoxContainer/DisplayName/LineEdit.text = "" $ProfileManager/VBoxContainer/DisplayName/LineEdit.text = ""
@@ -188,10 +190,16 @@ func _on_mods_button_pressed() -> void:
func _on_cancel_mods_pressed() -> void: func _on_cancel_mods_pressed() -> void:
profile_controls.visible = true
main_controls.visible = true main_controls.visible = true
mods_controls.visible = false mods_controls.visible = false
func _on_confirm_mods_pressed() -> void: func _on_confirm_mods_pressed() -> void:
mods_controls.load_mod_list() 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

@@ -67,7 +67,7 @@ region = Rect2(0, 0, 36, 36)
atlas = ExtResource("17_6t4jd") atlas = ExtResource("17_6t4jd")
region = Rect2(0, 0, 36, 36) region = Rect2(0, 0, 36, 36)
[node name="MainMenu" type="Control" node_paths=PackedStringArray("bg_level", "game_select_menu", "main_controls", "seed_entry", "mods_controls")] [node name="MainMenu" type="Control" node_paths=PackedStringArray("bg_level", "game_select_menu", "main_controls", "seed_entry", "profile_controls", "mods_controls")]
layout_mode = 3 layout_mode = 3
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
@@ -79,6 +79,7 @@ bg_level = NodePath("SubViewport/GridMap")
game_select_menu = NodePath("GameSelectMenu") game_select_menu = NodePath("GameSelectMenu")
main_controls = NodePath("MainControls") main_controls = NodePath("MainControls")
seed_entry = NodePath("GameSelectMenu/VBoxContainer/HBoxContainer2/LineEdit") seed_entry = NodePath("GameSelectMenu/VBoxContainer/HBoxContainer2/LineEdit")
profile_controls = NodePath("ProfileManager")
mods_controls = NodePath("ModsMenu") mods_controls = NodePath("ModsMenu")
[node name="TextureRect" type="TextureRect" parent="."] [node name="TextureRect" type="TextureRect" parent="."]
@@ -462,6 +463,7 @@ text = "BUTTON_CONFIRM"
[connection signal="pressed" from="MainControls/PlayButton" to="." method="_on_play_button_pressed"] [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="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/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="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="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="mouse_entered" from="MainControls/QuitButton" to="." method="_on_button_mouse_entered"]

View File

@@ -12,7 +12,7 @@ random_pitch = 1.1
streams_count = 1 streams_count = 1
stream_0/stream = ExtResource("6_hhyef") stream_0/stream = ExtResource("6_hhyef")
[node name="OptionsMenu" type="PanelContainer" node_paths=PackedStringArray("gameplay", "graphics", "keybinds")] [node name="OptionsMenu" type="PanelContainer" node_paths=PackedStringArray("gameplay", "graphics", "keybinds", "audio")]
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
@@ -26,6 +26,7 @@ script = ExtResource("1_bievw")
gameplay = NodePath("VBoxContainer/TabContainer/Gameplay") gameplay = NodePath("VBoxContainer/TabContainer/Gameplay")
graphics = NodePath("VBoxContainer/TabContainer/Graphics") graphics = NodePath("VBoxContainer/TabContainer/Graphics")
keybinds = NodePath("VBoxContainer/TabContainer/Keybinds") keybinds = NodePath("VBoxContainer/TabContainer/Keybinds")
audio = NodePath("VBoxContainer/TabContainer/Audio")
[node name="VBoxContainer" type="VBoxContainer" parent="."] [node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 2 layout_mode = 2
@@ -33,10 +34,9 @@ layout_mode = 2
[node name="TabContainer" type="TabContainer" parent="VBoxContainer"] [node name="TabContainer" type="TabContainer" parent="VBoxContainer"]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 3 size_flags_vertical = 3
current_tab = 3 current_tab = 0
[node name="Gameplay" parent="VBoxContainer/TabContainer" instance=ExtResource("3_25wuw")] [node name="Gameplay" parent="VBoxContainer/TabContainer" instance=ExtResource("3_25wuw")]
visible = false
layout_mode = 2 layout_mode = 2
metadata/_tab_index = 0 metadata/_tab_index = 0
@@ -51,6 +51,7 @@ layout_mode = 2
metadata/_tab_index = 2 metadata/_tab_index = 2
[node name="Audio" parent="VBoxContainer/TabContainer" instance=ExtResource("6_4vs8p")] [node name="Audio" parent="VBoxContainer/TabContainer" instance=ExtResource("6_4vs8p")]
visible = false
layout_mode = 2 layout_mode = 2
metadata/_tab_index = 3 metadata/_tab_index = 3
@@ -60,11 +61,11 @@ alignment = 2
[node name="Cancel" type="Button" parent="VBoxContainer/HBoxContainer"] [node name="Cancel" type="Button" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2 layout_mode = 2
text = "Discard" text = "BUTTON_CANCEL"
[node name="Confirm" type="Button" parent="VBoxContainer/HBoxContainer"] [node name="Confirm" type="Button" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2 layout_mode = 2
text = "Confirm" text = "BUTTON_CONFIRM"
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = SubResource("AudioStreamRandomizer_5otwj") stream = SubResource("AudioStreamRandomizer_5otwj")

View File

@@ -1,4 +1,4 @@
class_name AudioOptions class_name AudioOptionsMenu
extends VBoxContainer extends VBoxContainer
@export var master_input: SpinBox @export var master_input: SpinBox

View File

@@ -126,7 +126,6 @@ func spawn_players() -> void:
player.game_manager = self player.game_manager = self
player.edit_tool.level = level player.edit_tool.level = level
player.hud.map_anchor = level player.hud.map_anchor = level
player.blank_cassettes += 1
player.player_name_tag.text = connected_player_profiles[peer_id].display_name player.player_name_tag.text = connected_player_profiles[peer_id].display_name
player.position = level.player_spawns[p_i].global_position player.position = level.player_spawns[p_i].global_position
player.profile = connected_player_profiles[peer_id] player.profile = connected_player_profiles[peer_id]

View File

@@ -4,13 +4,22 @@ extends Control
@export var gameplay: GameplayOptionsMenu @export var gameplay: GameplayOptionsMenu
@export var graphics: GraphicsOptionsMenu @export var graphics: GraphicsOptionsMenu
@export var keybinds: KeybindsOptionsMenu @export var keybinds: KeybindsOptionsMenu
@export var audio: AudioOptionsMenu
var game_manager: GameManager var game_manager: GameManager
func _ready() -> void: func _ready() -> void:
set_tab_locale()
keybinds.ui_layer = game_manager.UILayer keybinds.ui_layer = game_manager.UILayer
func set_tab_locale() -> void:
gameplay.name = tr("OPTIONS_TAB_GAMEPLAY")
graphics.name = tr("OPTIONS_TAB_GRAPHICS")
keybinds.name = tr("OPTIONS_TAB_KEYBINDS")
audio.name = tr("OPTIONS_TAB_AUDIO")
func _on_cancel_pressed() -> void: func _on_cancel_pressed() -> void:
queue_free() queue_free()

View File

@@ -33,7 +33,7 @@ func _process(delta: float) -> void:
func set_card(card: Card) -> void: func set_card(card: Card) -> void:
$HBoxContainer/Label.text = card.display_name $HBoxContainer/Label.text = tr(card.display_name)
match(card.rarity): match(card.rarity):
Data.Rarity.COMMON: Data.Rarity.COMMON:
style.bg_color = common_background style.bg_color = common_background

View File

@@ -26,5 +26,5 @@ script = ExtResource("2_bpl71")
target_type = 2 target_type = 2
energy_type = 0 energy_type = 0
attributes = Array[ExtResource("1_tiqmf")]([SubResource("Resource_tiqmf"), SubResource("Resource_bpl71"), SubResource("Resource_imnjp")]) attributes = Array[ExtResource("1_tiqmf")]([SubResource("Resource_tiqmf"), SubResource("Resource_bpl71"), SubResource("Resource_imnjp")])
text = "Grants access to a stable high canopy" text = "DESC_TOWER_PLATFORM_DASH"
metadata/_custom_type_script = "uid://dg7gxxqfqxcmc" metadata/_custom_type_script = "uid://dg7gxxqfqxcmc"

View File

@@ -23,4 +23,4 @@ script = ExtResource("2_7wr4x")
target_type = 1 target_type = 1
energy_type = 0 energy_type = 0
attributes = Array[ExtResource("1_qgv2j")]([SubResource("Resource_bukji"), SubResource("Resource_2e75s"), SubResource("Resource_1vpnf")]) attributes = Array[ExtResource("1_qgv2j")]([SubResource("Resource_bukji"), SubResource("Resource_2e75s"), SubResource("Resource_1vpnf")])
text = "Fires a shot every /Fire Delay\\ seconds dealing /Damage\\ damage at a range of /Range\\m" text = "DESC_TOWER_BASIC_GUN"

View File

@@ -23,4 +23,4 @@ script = ExtResource("2_2k5i0")
target_type = 3 target_type = 3
energy_type = 0 energy_type = 0
attributes = Array[ExtResource("1_otqsh")]([SubResource("Resource_1txa7"), SubResource("Resource_46kv2"), SubResource("Resource_gb76x")]) attributes = Array[ExtResource("1_otqsh")]([SubResource("Resource_1txa7"), SubResource("Resource_46kv2"), SubResource("Resource_gb76x")])
text = "Fires every /Fire Delay\\s, applying one stack of Poison at a range of /Range\\m" text = "DESC_TOWER_POISON"

View File

@@ -23,4 +23,4 @@ script = ExtResource("2_1vuma")
target_type = 1 target_type = 1
energy_type = 0 energy_type = 0
attributes = Array[ExtResource("1_eglp5")]([SubResource("Resource_yb48y"), SubResource("Resource_ewwvw"), SubResource("Resource_qu5dv")]) attributes = Array[ExtResource("1_eglp5")]([SubResource("Resource_yb48y"), SubResource("Resource_ewwvw"), SubResource("Resource_qu5dv")])
text = "Launch a bomb that deals /Damage\\ damage every /Fire Delay\\ seconds" text = "DESC_TOWER_BOMB"

View File

@@ -23,4 +23,4 @@ script = ExtResource("2_nconk")
target_type = 3 target_type = 3
energy_type = 0 energy_type = 0
attributes = Array[ExtResource("1_wvk31")]([SubResource("Resource_68ba3"), SubResource("Resource_gogvm"), SubResource("Resource_pswb4")]) attributes = Array[ExtResource("1_wvk31")]([SubResource("Resource_68ba3"), SubResource("Resource_gogvm"), SubResource("Resource_pswb4")])
text = "Conjures a fireball every /Fire Delay\\s that deals /Damage\\ and apply Burning to enemies caught in its blast" text = "DESC_TOWER_FIREBALL"

View File

@@ -23,4 +23,4 @@ script = ExtResource("2_wptab")
target_type = 1 target_type = 1
energy_type = 0 energy_type = 0
attributes = Array[ExtResource("1_ikp33")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk")]) attributes = Array[ExtResource("1_ikp33")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk")])
text = "Applies burning to enemies in front of it" text = "DESC_TOWER_FLAMETHROWER"

View File

@@ -33,6 +33,4 @@ script = ExtResource("2_ky46y")
target_type = 1 target_type = 1
energy_type = 0 energy_type = 0
attributes = Array[ExtResource("1_w20qq")]([SubResource("Resource_oayfg"), SubResource("Resource_fekle"), SubResource("Resource_ud8xi"), SubResource("Resource_cvkxf"), SubResource("Resource_pivwn")]) attributes = Array[ExtResource("1_w20qq")]([SubResource("Resource_oayfg"), SubResource("Resource_fekle"), SubResource("Resource_ud8xi"), SubResource("Resource_cvkxf"), SubResource("Resource_pivwn")])
text = "Fires a shot every /Fire Delay\\ seconds dealing /Damage\\ damage at a range of /Range\\m text = "DESC_TOWER_ACCEL"
While attacking the same target, gradually accelerates to /Speed Multiplier\\x the fire rate over /Speed Time\\s"

View File

@@ -23,4 +23,4 @@ script = ExtResource("2_226sm")
target_type = 1 target_type = 1
energy_type = 0 energy_type = 0
attributes = Array[ExtResource("1_ytycf")]([SubResource("Resource_gbocu"), SubResource("Resource_6a2im"), SubResource("Resource_7npe0")]) attributes = Array[ExtResource("1_ytycf")]([SubResource("Resource_gbocu"), SubResource("Resource_6a2im"), SubResource("Resource_7npe0")])
text = "Fires every /Fire Delay\\s, making the target Sticky at a range of /Range\\m" text = "DESC_TOWER_GLUE"

View File

@@ -23,4 +23,4 @@ script = ExtResource("2_dorn5")
target_type = 3 target_type = 3
energy_type = 0 energy_type = 0
attributes = Array[ExtResource("1_wgjcy")]([SubResource("Resource_68ba3"), SubResource("Resource_gogvm"), SubResource("Resource_pswb4")]) attributes = Array[ExtResource("1_wgjcy")]([SubResource("Resource_68ba3"), SubResource("Resource_gogvm"), SubResource("Resource_pswb4")])
text = "Conjures an icicle every /Fire Delay\\s that deals /Damage\\ and applies Cold to enemies caught in its blast" text = "DESC_TOWER_ICE_SPIKE"

View File

@@ -26,5 +26,5 @@ script = ExtResource("2_fax6y")
target_type = 1 target_type = 1
energy_type = 0 energy_type = 0
attributes = Array[ExtResource("1_0swcp")]([SubResource("Resource_0swcp"), SubResource("Resource_fax6y"), SubResource("Resource_v0e26")]) attributes = Array[ExtResource("1_0swcp")]([SubResource("Resource_0swcp"), SubResource("Resource_fax6y"), SubResource("Resource_v0e26")])
text = "Speeds up the fire rate of towers within /Range\\m by 10%" text = "DESC_TOWER_SPEED_INCREASER"
metadata/_custom_type_script = "uid://dg7gxxqfqxcmc" metadata/_custom_type_script = "uid://dg7gxxqfqxcmc"

View File

@@ -23,4 +23,4 @@ script = ExtResource("2_8w61k")
target_type = 3 target_type = 3
energy_type = 0 energy_type = 0
attributes = Array[ExtResource("1_peekg")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk")]) attributes = Array[ExtResource("1_peekg")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk")])
text = "Slowly applies Radioactive to enemies around itself at a range of /Range\\m" text = "DESC_TOWER_RADIATION"

View File

@@ -23,4 +23,4 @@ script = ExtResource("2_w4q6a")
target_type = 1 target_type = 1
energy_type = 0 energy_type = 0
attributes = Array[ExtResource("1_wa26m")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk")]) attributes = Array[ExtResource("1_wa26m")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk")])
text = "Applies Cold to enemies around itself" text = "DESC_TOWER_FREEZER"

View File

@@ -28,4 +28,4 @@ script = ExtResource("2_lag26")
target_type = 2 target_type = 2
energy_type = 0 energy_type = 0
attributes = Array[ExtResource("1_jajj0")]([SubResource("Resource_4fjm2"), SubResource("Resource_uwj4j"), SubResource("Resource_6qv5v"), SubResource("Resource_y1rtq")]) attributes = Array[ExtResource("1_jajj0")]([SubResource("Resource_4fjm2"), SubResource("Resource_uwj4j"), SubResource("Resource_6qv5v"), SubResource("Resource_y1rtq")])
text = "Every /Fire Delay\\s, fires a homing rocket at up to /Target Limit\\ flying enemies up to /Range\\m away that deal /Damage\\ damage" text = "DESC_TOWER_ROCKET"

View File

@@ -23,4 +23,4 @@ script = ExtResource("2_5j62t")
target_type = 3 target_type = 3
energy_type = 0 energy_type = 0
attributes = Array[ExtResource("1_5wjgg")]([SubResource("Resource_1ct8q"), SubResource("Resource_erx05"), SubResource("Resource_vfpmb")]) attributes = Array[ExtResource("1_5wjgg")]([SubResource("Resource_1ct8q"), SubResource("Resource_erx05"), SubResource("Resource_vfpmb")])
text = "Fires a shot every /Fire Delay\\ seconds dealing /Damage\\ damage at a range of /Range\\m" text = "DESC_TOWER_SNIPER"

View File

@@ -8,7 +8,7 @@ extends Control
func set_enemy(enemy: EnemyCard) -> void: func set_enemy(enemy: EnemyCard) -> void:
enemy_name.text = enemy.enemy.title enemy_name.text = tr(enemy.enemy.title)
enemy_rarity.texture.region = Rect2(0.0, 92.0 - (23.0 * int(enemy.rarity)), 124.0, 23.0) enemy_rarity.texture.region = Rect2(0.0, 92.0 - (23.0 * int(enemy.rarity)), 124.0, 23.0)
enemy_tex.texture = enemy.enemy.icon enemy_tex.texture = enemy.enemy.icon
if enemy.rarity == Data.Rarity.COMMON: if enemy.rarity == Data.Rarity.COMMON:

View File

@@ -26,5 +26,5 @@ script = ExtResource("2_hwijr")
target_type = 2 target_type = 2
energy_type = 1 energy_type = 1
attributes = Array[ExtResource("1_c5ghd")]([SubResource("Resource_c5ghd"), SubResource("Resource_hwijr"), SubResource("Resource_5pac0")]) attributes = Array[ExtResource("1_c5ghd")]([SubResource("Resource_c5ghd"), SubResource("Resource_hwijr"), SubResource("Resource_5pac0")])
text = "Send yourself flying" text = "DESC_WEAPON_PLATFORM_DASH"
metadata/_custom_type_script = "uid://dg7gxxqfqxcmc" metadata/_custom_type_script = "uid://dg7gxxqfqxcmc"

View File

@@ -28,4 +28,4 @@ script = ExtResource("2_k26ta")
target_type = 0 target_type = 0
energy_type = 2 energy_type = 2
attributes = Array[ExtResource("1_rbqj6")]([SubResource("Resource_bcrtt"), SubResource("Resource_llper"), SubResource("Resource_7i2dt"), SubResource("Resource_8cirl")]) attributes = Array[ExtResource("1_rbqj6")]([SubResource("Resource_bcrtt"), SubResource("Resource_llper"), SubResource("Resource_7i2dt"), SubResource("Resource_8cirl")])
text = "Fires a shot every /Fire Delay\\ seconds dealing /Damage\\ damage at a range of /Range\\m" text = "DESC_WEAPON_BASIC_GUN"

View File

@@ -28,4 +28,4 @@ script = ExtResource("2_lbj0i")
target_type = 0 target_type = 0
energy_type = 1 energy_type = 1
attributes = Array[ExtResource("1_3nyhi")]([SubResource("Resource_1txa7"), SubResource("Resource_46kv2"), SubResource("Resource_gb76x"), SubResource("Resource_dtjel")]) attributes = Array[ExtResource("1_3nyhi")]([SubResource("Resource_1txa7"), SubResource("Resource_46kv2"), SubResource("Resource_gb76x"), SubResource("Resource_dtjel")])
text = "Fires every /Fire Delay\\s, applying one stack of Poison at a range of /Range\\m" text = "DESC_WEAPON_POISON"

View File

@@ -28,4 +28,4 @@ script = ExtResource("2_fe8lx")
target_type = 0 target_type = 0
energy_type = 1 energy_type = 1
attributes = Array[ExtResource("1_vg7y2")]([SubResource("Resource_yb48y"), SubResource("Resource_ewwvw"), SubResource("Resource_qu5dv"), SubResource("Resource_67t30")]) attributes = Array[ExtResource("1_vg7y2")]([SubResource("Resource_yb48y"), SubResource("Resource_ewwvw"), SubResource("Resource_qu5dv"), SubResource("Resource_67t30")])
text = "Launch a bomb that deals /Damage\\ damage every /Fire Delay\\ seconds" text = "DESC_WEAPON_BOMB"

View File

@@ -28,4 +28,4 @@ script = ExtResource("2_yto3f")
target_type = 0 target_type = 0
energy_type = 1 energy_type = 1
attributes = Array[ExtResource("1_kqy5w")]([SubResource("Resource_68ba3"), SubResource("Resource_gogvm"), SubResource("Resource_pswb4"), SubResource("Resource_y1gjj")]) attributes = Array[ExtResource("1_kqy5w")]([SubResource("Resource_68ba3"), SubResource("Resource_gogvm"), SubResource("Resource_pswb4"), SubResource("Resource_y1gjj")])
text = "Conjure a fireball every /Fire Delay\\s that can be thrown to deal /Damage\\ and apply Burning to enemies caught in its blast" text = "DESC_WEAPON_FIREBALL"

View File

@@ -28,4 +28,4 @@ script = ExtResource("2_drgp3")
target_type = 0 target_type = 0
energy_type = 2 energy_type = 2
attributes = Array[ExtResource("1_xqcf3")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk"), SubResource("Resource_rjpjf")]) attributes = Array[ExtResource("1_xqcf3")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk"), SubResource("Resource_rjpjf")])
text = "Hold to apply Burning to enemies in front of you" text = "DESC_WEAPON_FLAMETHROWER"

View File

@@ -38,6 +38,4 @@ script = ExtResource("2_y36gr")
target_type = 0 target_type = 0
energy_type = 2 energy_type = 2
attributes = Array[ExtResource("1_7oh83")]([SubResource("Resource_fi7tc"), SubResource("Resource_r6h5d"), SubResource("Resource_gwg1i"), SubResource("Resource_ogk1x"), SubResource("Resource_wdp3h"), SubResource("Resource_d1lvi")]) attributes = Array[ExtResource("1_7oh83")]([SubResource("Resource_fi7tc"), SubResource("Resource_r6h5d"), SubResource("Resource_gwg1i"), SubResource("Resource_ogk1x"), SubResource("Resource_wdp3h"), SubResource("Resource_d1lvi")])
text = "Fires a shot every /Fire Delay\\ seconds dealing /Damage\\ damage at a range of /Range\\m text = "DESC_WEAPON_ACCEL"
While held, gradually accelerates to /Speed Multiplier\\x the fire rate over /Speed Time\\s"

View File

@@ -28,4 +28,4 @@ script = ExtResource("2_nlx26")
target_type = 0 target_type = 0
energy_type = 1 energy_type = 1
attributes = Array[ExtResource("1_8ysxs")]([SubResource("Resource_gbocu"), SubResource("Resource_6a2im"), SubResource("Resource_7npe0"), SubResource("Resource_o1b5x")]) attributes = Array[ExtResource("1_8ysxs")]([SubResource("Resource_gbocu"), SubResource("Resource_6a2im"), SubResource("Resource_7npe0"), SubResource("Resource_o1b5x")])
text = "Fires every /Fire Delay\\s, making the target Sticky at a range of /Range\\m" text = "DESC_WEAPON_GLUE"

View File

@@ -28,4 +28,4 @@ script = ExtResource("2_5m6w7")
target_type = 0 target_type = 0
energy_type = 1 energy_type = 1
attributes = Array[ExtResource("1_nkpmf")]([SubResource("Resource_68ba3"), SubResource("Resource_gogvm"), SubResource("Resource_pswb4"), SubResource("Resource_cfu7u")]) attributes = Array[ExtResource("1_nkpmf")]([SubResource("Resource_68ba3"), SubResource("Resource_gogvm"), SubResource("Resource_pswb4"), SubResource("Resource_cfu7u")])
text = "Conjure an icicle every /Fire Delay\\s that can be thrown to deal /Damage\\ and apply Cold to enemies caught in its blast" text = "DESC_WEAPON_ICE_SPIKE"

View File

@@ -38,5 +38,5 @@ script = ExtResource("2_rl1ek")
target_type = 1 target_type = 1
energy_type = 2 energy_type = 2
attributes = Array[ExtResource("1_m84e5")]([SubResource("Resource_m84e5"), SubResource("Resource_rl1ek"), SubResource("Resource_gglou"), SubResource("Resource_0g051"), SubResource("Resource_uq2yv")]) attributes = Array[ExtResource("1_m84e5")]([SubResource("Resource_m84e5"), SubResource("Resource_rl1ek"), SubResource("Resource_gglou"), SubResource("Resource_0g051"), SubResource("Resource_uq2yv")])
text = "Fire a machine-energizing pellet every /Fire Delay\\ seconds that speeds up tower fire rate by 35% for /EffectDuration\\ seconds at a range of /Range\\m" text = "DESC_WEAPON_SPEED_INCREASER"
metadata/_custom_type_script = "uid://dg7gxxqfqxcmc" metadata/_custom_type_script = "uid://dg7gxxqfqxcmc"

View File

@@ -28,4 +28,4 @@ script = ExtResource("2_ahbcx")
target_type = 0 target_type = 0
energy_type = 2 energy_type = 2
attributes = Array[ExtResource("1_b6ubt")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk"), SubResource("Resource_b4805")]) attributes = Array[ExtResource("1_b6ubt")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk"), SubResource("Resource_b4805")])
text = "Hold to apply Radioactive to enemies in front of you" text = "DESC_WEAPON_RADIATION"

View File

@@ -28,4 +28,4 @@ script = ExtResource("2_wny82")
target_type = 0 target_type = 0
energy_type = 2 energy_type = 2
attributes = Array[ExtResource("1_dxffl")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk"), SubResource("Resource_voaa5")]) attributes = Array[ExtResource("1_dxffl")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk"), SubResource("Resource_voaa5")])
text = "Hold to apply Cold to enemies in front of you" text = "DESC_WEAPON_FREEZER"

View File

@@ -28,4 +28,4 @@ script = ExtResource("2_ow0r7")
target_type = 0 target_type = 0
energy_type = 1 energy_type = 1
attributes = Array[ExtResource("1_5gy7w")]([SubResource("Resource_4fjm2"), SubResource("Resource_uwj4j"), SubResource("Resource_6qv5v"), SubResource("Resource_ymyed")]) attributes = Array[ExtResource("1_5gy7w")]([SubResource("Resource_4fjm2"), SubResource("Resource_uwj4j"), SubResource("Resource_6qv5v"), SubResource("Resource_ymyed")])
text = "Every /Fire Delay\\s, hold to target up to /Target Limit\\ enemies and release to fire homing rockets that deal /Damage\\ damage" text = "DESC_WEAPON_ROCKET"

View File

@@ -28,4 +28,4 @@ script = ExtResource("2_qyvv8")
target_type = 0 target_type = 0
energy_type = 1 energy_type = 1
attributes = Array[ExtResource("1_aub52")]([SubResource("Resource_58kde"), SubResource("Resource_jl4jv"), SubResource("Resource_28kyj"), SubResource("Resource_7pvmq")]) attributes = Array[ExtResource("1_aub52")]([SubResource("Resource_58kde"), SubResource("Resource_jl4jv"), SubResource("Resource_28kyj"), SubResource("Resource_7pvmq")])
text = "Fires a shot every /Fire Delay\\ seconds dealing /Damage\\ damage at a range of /Range\\m" text = "DESC_WEAPON_SNIPER"

View File

@@ -1,14 +1,11 @@
[gd_scene load_steps=38 format=3 uid="uid://y1qa1g3ic8sp"] [gd_scene load_steps=33 format=3 uid="uid://y1qa1g3ic8sp"]
[ext_resource type="Script" uid="uid://cvejbo3srx8py" path="res://Scripts/level.gd" id="1_ws6nn"] [ext_resource type="Script" uid="uid://cvejbo3srx8py" path="res://Scripts/level.gd" id="1_ws6nn"]
[ext_resource type="PackedScene" uid="uid://d2yv447trxkwt" path="res://Scenes/enemy_spawner.tscn" id="3_5imwp"] [ext_resource type="PackedScene" uid="uid://d2yv447trxkwt" path="res://Scenes/enemy_spawner.tscn" id="3_5imwp"]
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="3_6od8s"] [ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="3_6od8s"]
[ext_resource type="Texture2D" uid="uid://cdnhe2mi5c5ln" path="res://Assets/Textures/dead_eye_dog.png" id="3_uh5sr"] [ext_resource type="Resource" uid="uid://8eba45hql7bo" path="res://Enemies/EyeDog/eye_dog.tres" id="3_j6d65"]
[ext_resource type="Texture2D" uid="uid://g00wwrlxxdc5" path="res://Assets/Textures/icon_eye_dog.png" id="4_g08yk"]
[ext_resource type="PackedScene" uid="uid://bvq6tbkuv2mfp" path="res://Enemies/EyeDog/eye_dog.tscn" id="5_asmpj"]
[ext_resource type="Resource" uid="uid://dxi17xvdlhkvc" path="res://Enemies/ElderEyeDog/elder_eye_dog.tres" id="5_j6d65"] [ext_resource type="Resource" uid="uid://dxi17xvdlhkvc" path="res://Enemies/ElderEyeDog/elder_eye_dog.tres" id="5_j6d65"]
[ext_resource type="Resource" uid="uid://cvehqh4tt28g7" path="res://Enemies/BabyEyeDog/baby_eye_dog.tres" id="6_ks6qx"] [ext_resource type="Resource" uid="uid://cvehqh4tt28g7" path="res://Enemies/BabyEyeDog/baby_eye_dog.tres" id="6_ks6qx"]
[ext_resource type="Texture2D" uid="uid://dj13g1w14mekw" path="res://Assets/Textures/eye_dog.png" id="6_vrxvq"]
[ext_resource type="Resource" uid="uid://bffhb5krs5elm" path="res://Enemies/Crystalisk/crystalisk.tres" id="9_4gdda"] [ext_resource type="Resource" uid="uid://bffhb5krs5elm" path="res://Enemies/Crystalisk/crystalisk.tres" id="9_4gdda"]
[ext_resource type="PackedScene" uid="uid://1b2ikdanl66b" path="res://Scenes/CardPrinter/card_printer.tscn" id="9_r25gu"] [ext_resource type="PackedScene" uid="uid://1b2ikdanl66b" path="res://Scenes/CardPrinter/card_printer.tscn" id="9_r25gu"]
[ext_resource type="Script" uid="uid://cxwtuxytavfu5" path="res://Scripts/enemy_goal.gd" id="9_s3rd7"] [ext_resource type="Script" uid="uid://cxwtuxytavfu5" path="res://Scripts/enemy_goal.gd" id="9_s3rd7"]
@@ -24,36 +21,6 @@
[ext_resource type="Texture2D" uid="uid://dqrfgw65d0sq8" path="res://Assets/Textures/bridge_map.png" id="28_6od8s"] [ext_resource type="Texture2D" uid="uid://dqrfgw65d0sq8" path="res://Assets/Textures/bridge_map.png" id="28_6od8s"]
[ext_resource type="PackedScene" uid="uid://ca174636iktc6" path="res://Worlds/GreenPlanet/Levels/Bridge/bridge.glb" id="30_ttr7n"] [ext_resource type="PackedScene" uid="uid://ca174636iktc6" path="res://Worlds/GreenPlanet/Levels/Bridge/bridge.glb" id="30_ttr7n"]
[sub_resource type="AtlasTexture" id="AtlasTexture_p1iv6"]
resource_local_to_scene = true
atlas = ExtResource("6_vrxvq")
region = Rect2(0, 0, 32, 32)
[sub_resource type="Resource" id="Resource_uvxyn"]
resource_local_to_scene = true
script = ExtResource("3_6od8s")
title = "Eye Dog"
target_type = 1
scene = ExtResource("5_asmpj")
icon = ExtResource("4_g08yk")
death_sprite = ExtResource("3_uh5sr")
sprite = SubResource("AtlasTexture_p1iv6")
spawn_power = 10
health = 180
penalty = 10
movement_speed = 1.5
spawn_cooldown = 1.2
common_group = 6
common_cost = 1
uncommon_group = 10
uncommon_cost = 2
rare_group = 16
rare_cost = 3
epic_group = 22
epic_cost = 5
legendary_group = 28
legendary_cost = 6
[sub_resource type="Curve3D" id="Curve3D_3rdl2"] [sub_resource type="Curve3D" id="Curve3D_3rdl2"]
_data = { _data = {
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 12.3765, 1.00006, -13.0874, 0, 0, 0, 0, 0, 0, -13.1528, 5.17887, -14.4739), "points": PackedVector3Array(0, 0, 0, 0, 0, 0, 12.3765, 1.00006, -13.0874, 0, 0, 0, 0, 0, 0, -13.1528, 5.17887, -14.4739),
@@ -268,7 +235,7 @@ size = Vector3(70.0478, 1, 73.4615)
[node name="Bridge" type="Node3D" node_paths=PackedStringArray("tower_path", "player_spawns", "enemy_spawns", "enemy_goals", "corpses", "flow_field", "cinematic_cam", "printer", "shop")] [node name="Bridge" type="Node3D" node_paths=PackedStringArray("tower_path", "player_spawns", "enemy_spawns", "enemy_goals", "corpses", "flow_field", "cinematic_cam", "printer", "shop")]
script = ExtResource("1_ws6nn") script = ExtResource("1_ws6nn")
enemy_pool = Array[ExtResource("3_6od8s")]([SubResource("Resource_uvxyn"), ExtResource("9_4gdda"), ExtResource("5_j6d65"), ExtResource("6_ks6qx")]) enemy_pool = Array[ExtResource("3_6od8s")]([ExtResource("3_j6d65"), ExtResource("9_4gdda"), ExtResource("5_j6d65"), ExtResource("6_ks6qx")])
tower_path = NodePath("Towers") tower_path = NodePath("Towers")
player_spawns = [NodePath("PlayerSpawnLocations/PlayerSpawn1"), NodePath("PlayerSpawnLocations/PlayerSpawn2"), NodePath("PlayerSpawnLocations/PlayerSpawn3"), NodePath("PlayerSpawnLocations/PlayerSpawn4")] player_spawns = [NodePath("PlayerSpawnLocations/PlayerSpawn1"), NodePath("PlayerSpawnLocations/PlayerSpawn2"), NodePath("PlayerSpawnLocations/PlayerSpawn3"), NodePath("PlayerSpawnLocations/PlayerSpawn4")]
enemy_spawns = [NodePath("GroundSpawn"), NodePath("GroundSpawn2"), NodePath("GroundSpawn3"), NodePath("GroundSpawn4"), NodePath("GroundSpawn5"), NodePath("AirSpawn")] enemy_spawns = [NodePath("GroundSpawn"), NodePath("GroundSpawn2"), NodePath("GroundSpawn3"), NodePath("GroundSpawn4"), NodePath("GroundSpawn5"), NodePath("AirSpawn")]

View File

@@ -15,7 +15,7 @@ func add_cards(cards: Array[Card]) -> void:
var x: int = 0 var x: int = 0
for card: Card in cards: for card: Card in cards:
var button: Button = Button.new() var button: Button = Button.new()
button.text = card.display_name button.text = tr(card.display_name)
button.pressed.connect(choose_card.bind(x)) button.pressed.connect(choose_card.bind(x))
choices.append(card) choices.append(card)
choice_buttons.add_child(button) choice_buttons.add_child(button)
@@ -25,13 +25,13 @@ func add_cards(cards: Array[Card]) -> void:
func choose_card(choice: int) -> void: func choose_card(choice: int) -> void:
chosen_card = choices[choice] chosen_card = choices[choice]
card_name_label.text = chosen_card.display_name card_name_label.text = tr(chosen_card.display_name)
choose_side(side_a) choose_side(side_a)
func choose_side(side_a_chosen: bool) -> void: func choose_side(side_a_chosen: bool) -> void:
side_a = side_a_chosen side_a = side_a_chosen
card_description_label.text = chosen_card.tower_stats.text if side_a else chosen_card.weapon_stats.text card_description_label.text = tr(chosen_card.tower_stats.text) if side_a else tr(chosen_card.weapon_stats.text)
func _on_confirm_button_pressed() -> void: func _on_confirm_button_pressed() -> void:

View File

@@ -12,7 +12,7 @@ grow_vertical = 2
script = ExtResource("1_y4oar") script = ExtResource("1_y4oar")
choice_buttons = NodePath("PanelContainer/Content/HBoxContainer/ChoicesVBox") choice_buttons = NodePath("PanelContainer/Content/HBoxContainer/ChoicesVBox")
card_name_label = NodePath("PanelContainer/Content/HBoxContainer/VBoxContainer/NameLabel") card_name_label = NodePath("PanelContainer/Content/HBoxContainer/VBoxContainer/NameLabel")
card_description_label = NodePath("PanelContainer/Content/HBoxContainer/DescriptionVBox/RichTextLabel") card_description_label = NodePath("PanelContainer/Content/HBoxContainer/DescriptionVBox/DescriptionText")
[node name="PanelContainer" type="PanelContainer" parent="."] [node name="PanelContainer" type="PanelContainer" parent="."]
layout_mode = 1 layout_mode = 1
@@ -82,7 +82,8 @@ size_flags_horizontal = 3
layout_mode = 2 layout_mode = 2
text = "LABEL_CARD_DESCRIPTION" text = "LABEL_CARD_DESCRIPTION"
[node name="RichTextLabel" type="RichTextLabel" parent="PanelContainer/Content/HBoxContainer/DescriptionVBox"] [node name="DescriptionText" type="RichTextLabel" parent="PanelContainer/Content/HBoxContainer/DescriptionVBox"]
auto_translate_mode = 2
layout_mode = 2 layout_mode = 2
size_flags_vertical = 3 size_flags_vertical = 3
text = "a long ass example description of a card that goes into honestly way too much detail but at least if we can support a lot of text at a good size then we dont have to worry about really complicated cards fucking up our UI later in developement if we end up needing to explain a lot" text = "a long ass example description of a card that goes into honestly way too much detail but at least if we can support a lot of text at a good size then we dont have to worry about really complicated cards fucking up our UI later in developement if we end up needing to explain a lot"

View File

@@ -209,8 +209,7 @@ Pause={
[internationalization] [internationalization]
locale/translations=PackedStringArray("res://Locales/en.mo") locale/translations_pot_files=PackedStringArray("res://Scenes/Menus/MainMenu/main_menu.tscn", "res://Scenes/Menus/PauseMenu/pause_menu.tscn", "res://Scenes/Menus/GameEndScreen/game_end_screen.tscn", "res://Scenes/Menus/CharacterSelect/character_select.tscn", "res://Scenes/Menus/audio_options.tscn", "res://Scenes/Menus/gameplay_options.tscn", "res://Scenes/Menus/graphics_options.tscn", "res://Scenes/Menus/keybind_options.tscn", "res://Scenes/UI/keybind_popup.tscn", "res://choose_card_screen.tscn", "res://Scenes/Menus/options_menu.tscn")
locale/translations_pot_files=PackedStringArray("res://Scenes/Menus/MainMenu/main_menu.tscn", "res://Scenes/Menus/PauseMenu/pause_menu.tscn", "res://Scenes/Menus/GameEndScreen/game_end_screen.tscn", "res://Scenes/Menus/CharacterSelect/character_select.tscn", "res://Scenes/Menus/audio_options.tscn", "res://Scenes/Menus/gameplay_options.tscn", "res://Scenes/Menus/graphics_options.tscn", "res://Scenes/Menus/keybind_options.tscn", "res://Scenes/UI/keybind_popup.tscn")
pseudolocalization/double_vowels=true pseudolocalization/double_vowels=true
[layer_names] [layer_names]