Implements modifier system for weapons
Adds a modifier system allowing dynamic modification of weapon stats and behavior. This includes: - Creating ModifierLibrary to manage available modifiers. - Adds ModifierManager to handle equipping and unequipping modifiers - Adds a new RangedWeaponComponent to handle firing projectiles and managing modifiers. - Introduces a DebugUI for in-game modifier management. - Introduces an "Unlimited Power" modifier that changes the projectile scene. - Modifies stats components to work with the new modifier system. This system allows for more flexible and customizable weapon functionality.
This commit is contained in:
parent
9f66ab0a73
commit
70839387ca
22 changed files with 432 additions and 40 deletions
85
UI/DebugUI.tscn
Normal file
85
UI/DebugUI.tscn
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://b0w0oxbtax5si"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bblhlxj8sqtql" path="res://UI/_scripts/debug_ui.gd" id="1_pwlud"]
|
||||
|
||||
[node name="DebugUi" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
script = ExtResource("1_pwlud")
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||
offset_left = 13.0
|
||||
offset_top = 15.0
|
||||
offset_right = 91.0
|
||||
offset_bottom = 173.0
|
||||
theme_override_constants/margin_left = 5
|
||||
theme_override_constants/margin_top = 5
|
||||
theme_override_constants/margin_right = 5
|
||||
theme_override_constants/margin_bottom = 5
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 5
|
||||
|
||||
[node name="FPS" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="FPSLabel" type="Label" parent="MarginContainer/VBoxContainer/FPS"]
|
||||
layout_mode = 2
|
||||
text = "FPS: "
|
||||
|
||||
[node name="FPSValue" type="Label" parent="MarginContainer/VBoxContainer/FPS"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "123"
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="MarginContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="PlayerWeapon" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="PlayerWeaponLabel" type="Label" parent="MarginContainer/VBoxContainer/PlayerWeapon"]
|
||||
layout_mode = 2
|
||||
text = "Player Weapon:"
|
||||
|
||||
[node name="PlayerWeaponValue" type="Label" parent="MarginContainer/VBoxContainer/PlayerWeapon"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="PlayerWeaponMods" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 2
|
||||
|
||||
[node name="PlayerWeaponModsLabel" type="Label" parent="MarginContainer/VBoxContainer/PlayerWeaponMods"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
text = "Mods:"
|
||||
|
||||
[node name="PlayerWeaponModsValue" type="Label" parent="MarginContainer/VBoxContainer/PlayerWeaponMods"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "123
|
||||
456
|
||||
678"
|
||||
|
||||
[node name="ModifierButtons" type="VBoxContainer" parent="MarginContainer/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Button" type="Button" parent="MarginContainer/VBoxContainer/ModifierButtons"]
|
||||
layout_mode = 2
|
||||
text = "123"
|
||||
|
||||
[node name="PlayerStats" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 2
|
||||
|
||||
[node name="PlayerStatsValue" type="Label" parent="MarginContainer/VBoxContainer/PlayerStats"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "123
|
||||
456
|
||||
678"
|
||||
Loading…
Add table
Add a link
Reference in a new issue