This commit is contained in:
Marek Lenczewski
2026-04-02 19:30:44 +02:00
parent c7e6f8f4b5
commit 73af6abeb7
90 changed files with 138 additions and 133 deletions

View File

@@ -24,20 +24,21 @@ Der User kommuniziert auf Deutsch. Code und Variablen auf Englisch. Kommentare n
- **Resources** für Basiswerte (Stats, Abilities), **Stats Autoload** für Laufzeitwerte
## Projektstruktur
- `player/` — Spieler (.tscn + .gd): player, camera, movement, combat, targeting, role
- `enemy/`Gegner (.tscn + .gd): enemy, enemy_movement, boss
- `portal/`Portal + Gate (.tscn + .gd): portal, gate
- `dungeon/` — Dungeon (.tscn + .gd): dungeon, dungeon_manager
- `hud/` — HUD (.tscn + .gd): hud
- `world/` — Hauptszene (.tscn + .gd): world, portal_spawner
- `systems/` — 9 Systeme (health, shield, damage, ability, cooldown, enemy_ai, respawn, spawn, buff)
- `aggro/`AggroSystem (aggro_system, aggro_tracker, aggro_decay, aggro_events)
- `autoload/` — EventBus (event_bus), Stats (stats), GameState (game_state)
- `components/` — Shared Components: healthbar
- `resources/stats/` — Stats-Klassen (.gd) + Daten (.tres): base_stats, player_stats, enemy_stats, boss_stats, portal_stats, aggro_config
- `resources/roles/` — Ability/AbilitySet-Klassen (.gd) + pro Rolle (damage, tank, healer):
- `{rolle}/set.tres` — AbilitySet der Rolle
- `{rolle}/abilities/` — Abilities (single, aoe, utility, ult, passive)
Drei Grundordner nach Verantwortung. Resources liegen bei ihren Skripten.
- `scenes/`Darstellung + Input
- `player/`Spieler + player_stats + role/ (Rollen + Abilities)
- `enemy/` — Gegner + Boss + enemy_stats + boss_stats
- `portal/` — Portal + Gate + portal_stats
- `dungeon/` — Dungeon + dungeon_manager
- `hud/` — HUD
- `world/`Hauptszene + portal_spawner
- `healthbar.gd` — Shared Component
- `systems/` — Spiellogik
- 9 Systeme (health, shield, damage, ability, cooldown, enemy_ai, respawn, spawn, buff)
- `aggro/` — AggroSystem (system, tracker, decay, events) + aggro_config
- `autoloads/` — Globaler Zustand
- event_bus, game_state
- `stats/` — stats + base_stats
## Planungsdokument
`plan.md` enthält die vollständige Projektstruktur: Szenenbaum, Szenen mit Nodes, Skripte, Components, Stats, Aggro-Regeln, Abilities und Events. Dieses Dokument ist die Wahrheit für den Soll-Zustand.

30
plan.md
View File

@@ -1,23 +1,27 @@
# Projektstruktur
## Ordnerstruktur
Drei Grundordner nach Verantwortung. Resources liegen bei ihren Skripten.
```
player/ — Spieler (.tscn + .gd)
enemy/ — Gegner + Boss (.tscn + .gd)
portal/ — Portal + Gate (.tscn + .gd)
dungeon/ — Dungeon (.tscn + .gd)
hud/ — HUD (.tscn + .gd)
world/ — Hauptszene (.tscn + .gd)
systems/ — 9 Gameplay-Systeme (.gd)
aggro/ — AggroSystem (aggro_system, aggro_tracker, aggro_decay, aggro_events)
autoload/ — EventBus, Stats, GameState (.gd)
components/ — Shared UI: healthbar (.gd)
resources/
stats/ — Stats-Klassen (.gd) + Daten (.tres) + AggroConfig
roles/ — Ability/AbilitySet-Klassen (.gd) + Rollen-Daten
scenes/ — Darstellung + Input
healthbar.gd — Shared Component
player/ — Spieler + player_stats
role/ — Rollenwechsel + Ability/AbilitySet-Klassen
damage/ — set.tres + abilities/
tank/ — set.tres + abilities/
healer/ — set.tres + abilities/
enemy/ — Gegner + Boss + enemy_stats + boss_stats
portal/ — Portal + Gate + portal_stats
dungeon/ — Dungeon + dungeon_manager
hud/ — HUD
world/ — Hauptszene + portal_spawner
systems/ — Spiellogik
aggro/ — AggroSystem (system, tracker, decay, events) + aggro_config
9× *_system.gd — health, shield, damage, ability, cooldown, enemy_ai, respawn, spawn, buff
autoloads/ — Globaler Zustand
event_bus.gd
game_state.gd
stats/ — stats.gd + base_stats.gd
```
## Szenenbaum

View File

@@ -11,15 +11,15 @@ config_version=5
[application]
config/name="mmo"
run/main_scene="res://world/world.tscn"
run/main_scene="res://scenes/world/world.tscn"
config/features=PackedStringArray("4.6", "Forward Plus")
config/icon="res://icon.svg"
[autoload]
EventBus="*res://autoload/event_bus.gd"
Stats="*res://autoload/stats.gd"
GameState="*res://autoload/game_state.gd"
EventBus="*res://autoloads/event_bus.gd"
Stats="*res://autoloads/stats/stats.gd"
GameState="*res://autoloads/game_state.gd"
[dotnet]

View File

@@ -1,16 +0,0 @@
[gd_resource type="Resource" script_class="AbilitySet" format=3 uid="uid://kcwuhnqy34mj"]
[ext_resource type="Script" uid="uid://voedgs25cwrb" path="res://resources/roles/ability_set.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://resources/roles/ability.gd" id="1_ability"]
[ext_resource type="Resource" path="res://resources/roles/healer/abilities/single.tres" id="2"]
[ext_resource type="Resource" path="res://resources/roles/healer/abilities/aoe.tres" id="3"]
[ext_resource type="Resource" path="res://resources/roles/healer/abilities/utility.tres" id="4"]
[ext_resource type="Resource" path="res://resources/roles/healer/abilities/ult.tres" id="5"]
[ext_resource type="Resource" path="res://resources/roles/healer/abilities/passive.tres" id="6"]
[resource]
script = ExtResource("1")
abilities = Array[ExtResource("1_ability")]([ExtResource("2"), ExtResource("3"), ExtResource("4"), ExtResource("5"), ExtResource("6")])
aa_damage = 1.0
aa_range = 20.0
aa_is_heal = true

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="AbilitySet" format=3 uid="uid://cgxtn7dfs40bh"]
[ext_resource type="Script" uid="uid://voedgs25cwrb" path="res://resources/roles/ability_set.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://resources/roles/ability.gd" id="1_ability"]
[ext_resource type="Resource" path="res://resources/roles/tank/abilities/single.tres" id="2"]
[ext_resource type="Resource" path="res://resources/roles/tank/abilities/aoe.tres" id="3"]
[ext_resource type="Resource" path="res://resources/roles/tank/abilities/utility.tres" id="4"]
[ext_resource type="Resource" path="res://resources/roles/tank/abilities/ult.tres" id="5"]
[ext_resource type="Resource" path="res://resources/roles/tank/abilities/passive.tres" id="6"]
[resource]
script = ExtResource("1")
abilities = Array[ExtResource("1_ability")]([ExtResource("2"), ExtResource("3"), ExtResource("4"), ExtResource("5"), ExtResource("6")])
aa_damage = 5.0
aa_range = 3.0

View File

@@ -1,11 +1,11 @@
[gd_scene format=3]
[ext_resource type="PackedScene" path="res://player/player.tscn" id="player"]
[ext_resource type="PackedScene" path="res://hud/hud.tscn" id="hud"]
[ext_resource type="PackedScene" path="res://enemy/enemy.tscn" id="enemy"]
[ext_resource type="PackedScene" path="res://enemy/boss.tscn" id="boss"]
[ext_resource type="Script" path="res://dungeon/dungeon_manager.gd" id="dungeon_manager"]
[ext_resource type="PackedScene" path="res://portal/gate.tscn" id="gate"]
[ext_resource type="PackedScene" path="res://scenes/player/player.tscn" id="player"]
[ext_resource type="PackedScene" path="res://scenes/hud/hud.tscn" id="hud"]
[ext_resource type="PackedScene" path="res://scenes/enemy/enemy.tscn" id="enemy"]
[ext_resource type="PackedScene" path="res://scenes/enemy/boss.tscn" id="boss"]
[ext_resource type="Script" path="res://scenes/dungeon/dungeon_manager.gd" id="dungeon_manager"]
[ext_resource type="PackedScene" path="res://scenes/portal/gate.tscn" id="gate"]
[ext_resource type="Script" path="res://systems/health_system.gd" id="health_system"]
[ext_resource type="Script" path="res://systems/shield_system.gd" id="shield_system"]
[ext_resource type="Script" path="res://systems/damage_system.gd" id="damage_system"]
@@ -204,7 +204,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 75)
[node name="ExitGate" parent="." instance=ExtResource("gate")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -4)
target_scene = "res://world/world.tscn"
target_scene = "res://scenes/world/world.tscn"
is_exit = true
[node name="DungeonManager" type="Node" parent="."]

View File

@@ -13,4 +13,4 @@ func _on_entity_died(entity: Node) -> void:
GameState.returning_from_dungeon = false
GameState.clear()
EventBus.dungeon_cleared.emit()
get_tree().change_scene_to_file("res://world/world.tscn")
get_tree().change_scene_to_file("res://scenes/world/world.tscn")

View File

@@ -1,4 +1,4 @@
extends "res://enemy/enemy.gd"
extends "res://scenes/enemy/enemy.gd"
func _ready() -> void:
super._ready()

View File

@@ -1,9 +1,9 @@
[gd_scene load_steps=6 format=3]
[ext_resource type="Script" path="res://enemy/boss.gd" id="1"]
[ext_resource type="Script" path="res://components/healthbar.gd" id="4"]
[ext_resource type="Script" path="res://enemy/enemy_movement.gd" id="5"]
[ext_resource type="Resource" path="res://resources/stats/boss_stats.tres" id="8"]
[ext_resource type="Script" path="res://scenes/enemy/boss.gd" id="1"]
[ext_resource type="Script" path="res://scenes/healthbar.gd" id="4"]
[ext_resource type="Script" path="res://scenes/enemy/enemy_movement.gd" id="5"]
[ext_resource type="Resource" path="res://scenes/enemy/boss_stats.tres" id="8"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_1"]
radius = 0.6

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="BossStats" load_steps=2 format=3]
[ext_resource type="Script" path="res://resources/stats/boss_stats.gd" id="1"]
[ext_resource type="Script" path="res://scenes/enemy/boss_stats.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -1,9 +1,9 @@
[gd_scene load_steps=6 format=3]
[ext_resource type="Script" path="res://enemy/enemy.gd" id="1"]
[ext_resource type="Script" path="res://components/healthbar.gd" id="4"]
[ext_resource type="Script" path="res://enemy/enemy_movement.gd" id="5"]
[ext_resource type="Resource" path="res://resources/stats/enemy_stats.tres" id="8"]
[ext_resource type="Script" path="res://scenes/enemy/enemy.gd" id="1"]
[ext_resource type="Script" path="res://scenes/healthbar.gd" id="4"]
[ext_resource type="Script" path="res://scenes/enemy/enemy_movement.gd" id="5"]
[ext_resource type="Resource" path="res://scenes/enemy/enemy_stats.tres" id="8"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_1"]
radius = 0.4

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="EnemyStats" format=3 uid="uid://cj1shmjwf0xeo"]
[ext_resource type="Script" uid="uid://bh2uuuvl30y0x" path="res://resources/stats/enemy_stats.gd" id="1"]
[ext_resource type="Script" uid="uid://bh2uuuvl30y0x" path="res://scenes/enemy/enemy_stats.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_scene format=3]
[ext_resource type="Script" path="res://hud/hud.gd" id="1"]
[ext_resource type="Script" path="res://scenes/hud/hud.gd" id="1"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ability_active"]
bg_color = Color(0.2, 0.2, 0.2, 0.8)

View File

@@ -1,15 +1,15 @@
[gd_scene format=3 uid="uid://cdnkbt1f0db7e"]
[ext_resource type="Script" uid="uid://bfpt2p7uucfyb" path="res://player/player.gd" id="1"]
[ext_resource type="Script" uid="uid://cohjyjge1kqxb" path="res://player/camera.gd" id="2"]
[ext_resource type="Script" uid="uid://fg87dh8fbc8" path="res://player/movement.gd" id="3"]
[ext_resource type="Script" uid="uid://d15til6fsxw5b" path="res://player/combat.gd" id="4"]
[ext_resource type="Script" uid="uid://b05nkuryipwny" path="res://player/targeting.gd" id="8"]
[ext_resource type="Script" path="res://player/role.gd" id="10"]
[ext_resource type="Resource" uid="uid://cgxtn7dfs40bh" path="res://resources/roles/tank/set.tres" id="11"]
[ext_resource type="Resource" uid="uid://beodknb6i1pm4" path="res://resources/roles/damage/set.tres" id="12"]
[ext_resource type="Resource" uid="uid://kcwuhnqy34mj" path="res://resources/roles/healer/set.tres" id="13"]
[ext_resource type="Resource" path="res://resources/stats/player_stats.tres" id="14"]
[ext_resource type="Script" uid="uid://bfpt2p7uucfyb" path="res://scenes/player/player.gd" id="1"]
[ext_resource type="Script" uid="uid://cohjyjge1kqxb" path="res://scenes/player/camera.gd" id="2"]
[ext_resource type="Script" uid="uid://fg87dh8fbc8" path="res://scenes/player/movement.gd" id="3"]
[ext_resource type="Script" uid="uid://d15til6fsxw5b" path="res://scenes/player/combat.gd" id="4"]
[ext_resource type="Script" uid="uid://b05nkuryipwny" path="res://scenes/player/targeting.gd" id="8"]
[ext_resource type="Script" path="res://scenes/player/role/role.gd" id="10"]
[ext_resource type="Resource" uid="uid://cgxtn7dfs40bh" path="res://scenes/player/role/tank/set.tres" id="11"]
[ext_resource type="Resource" uid="uid://beodknb6i1pm4" path="res://scenes/player/role/damage/set.tres" id="12"]
[ext_resource type="Resource" uid="uid://kcwuhnqy34mj" path="res://scenes/player/role/healer/set.tres" id="13"]
[ext_resource type="Resource" path="res://scenes/player/player_stats.tres" id="14"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_1"]
radius = 0.3

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlayerStats" format=3 uid="uid://btd0g0oiulssq"]
[ext_resource type="Script" uid="uid://ypyntbavbsto" path="res://resources/stats/player_stats.gd" id="1"]
[ext_resource type="Script" uid="uid://ypyntbavbsto" path="res://scenes/player/player_stats.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://bpx3l13iuynfv"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://resources/roles/ability.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://dadpl32yujwhe"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://resources/roles/ability.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://dwvc8b3cmce8l"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://resources/roles/ability.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://s32wvlww2ls2"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://resources/roles/ability.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://resources/roles/ability.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -1,12 +1,12 @@
[gd_resource type="Resource" script_class="AbilitySet" format=3 uid="uid://beodknb6i1pm4"]
[ext_resource type="Script" uid="uid://voedgs25cwrb" path="res://resources/roles/ability_set.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://resources/roles/ability.gd" id="1_ability"]
[ext_resource type="Resource" uid="uid://dwvc8b3cmce8l" path="res://resources/roles/damage/abilities/single.tres" id="2"]
[ext_resource type="Resource" uid="uid://bpx3l13iuynfv" path="res://resources/roles/damage/abilities/aoe.tres" id="3"]
[ext_resource type="Resource" path="res://resources/roles/damage/abilities/utility.tres" id="4"]
[ext_resource type="Resource" uid="uid://s32wvlww2ls2" path="res://resources/roles/damage/abilities/ult.tres" id="5"]
[ext_resource type="Resource" uid="uid://dadpl32yujwhe" path="res://resources/roles/damage/abilities/passive.tres" id="6"]
[ext_resource type="Script" uid="uid://voedgs25cwrb" path="res://scenes/player/role/ability_set.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1_ability"]
[ext_resource type="Resource" uid="uid://dwvc8b3cmce8l" path="res://scenes/player/role/damage/abilities/single.tres" id="2"]
[ext_resource type="Resource" uid="uid://bpx3l13iuynfv" path="res://scenes/player/role/damage/abilities/aoe.tres" id="3"]
[ext_resource type="Resource" path="res://scenes/player/role/damage/abilities/utility.tres" id="4"]
[ext_resource type="Resource" uid="uid://s32wvlww2ls2" path="res://scenes/player/role/damage/abilities/ult.tres" id="5"]
[ext_resource type="Resource" uid="uid://dadpl32yujwhe" path="res://scenes/player/role/damage/abilities/passive.tres" id="6"]
[resource]
script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://m1kgk2uugnex"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://resources/roles/ability.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://resources/roles/ability.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://cqw1jy6kqvmnj"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://resources/roles/ability.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://d04nu1leyki16"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://resources/roles/ability.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://resources/roles/ability.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -0,0 +1,16 @@
[gd_resource type="Resource" script_class="AbilitySet" format=3 uid="uid://kcwuhnqy34mj"]
[ext_resource type="Script" uid="uid://voedgs25cwrb" path="res://scenes/player/role/ability_set.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1_ability"]
[ext_resource type="Resource" path="res://scenes/player/role/healer/abilities/single.tres" id="2"]
[ext_resource type="Resource" path="res://scenes/player/role/healer/abilities/aoe.tres" id="3"]
[ext_resource type="Resource" path="res://scenes/player/role/healer/abilities/utility.tres" id="4"]
[ext_resource type="Resource" path="res://scenes/player/role/healer/abilities/ult.tres" id="5"]
[ext_resource type="Resource" path="res://scenes/player/role/healer/abilities/passive.tres" id="6"]
[resource]
script = ExtResource("1")
abilities = Array[ExtResource("1_ability")]([ExtResource("2"), ExtResource("3"), ExtResource("4"), ExtResource("5"), ExtResource("6")])
aa_damage = 1.0
aa_range = 20.0
aa_is_heal = true

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://resources/roles/ability.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://resources/roles/ability.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://resources/roles/ability.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://resources/roles/ability.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://resources/roles/ability.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -0,0 +1,15 @@
[gd_resource type="Resource" script_class="AbilitySet" format=3 uid="uid://cgxtn7dfs40bh"]
[ext_resource type="Script" uid="uid://voedgs25cwrb" path="res://scenes/player/role/ability_set.gd" id="1"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1_ability"]
[ext_resource type="Resource" path="res://scenes/player/role/tank/abilities/single.tres" id="2"]
[ext_resource type="Resource" path="res://scenes/player/role/tank/abilities/aoe.tres" id="3"]
[ext_resource type="Resource" path="res://scenes/player/role/tank/abilities/utility.tres" id="4"]
[ext_resource type="Resource" path="res://scenes/player/role/tank/abilities/ult.tres" id="5"]
[ext_resource type="Resource" path="res://scenes/player/role/tank/abilities/passive.tres" id="6"]
[resource]
script = ExtResource("1")
abilities = Array[ExtResource("1_ability")]([ExtResource("2"), ExtResource("3"), ExtResource("4"), ExtResource("5"), ExtResource("6")])
aa_damage = 5.0
aa_range = 3.0

View File

@@ -1,6 +1,6 @@
extends StaticBody3D
@export var target_scene: String = "res://dungeon/dungeon.tscn"
@export var target_scene: String = "res://scenes/dungeon/dungeon.tscn"
@export var is_exit: bool = false
var active := false

View File

@@ -1,6 +1,6 @@
[gd_scene format=3]
[ext_resource type="Script" path="res://portal/gate.gd" id="1"]
[ext_resource type="Script" path="res://scenes/portal/gate.gd" id="1"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1"]
albedo_color = Color(0.1, 0.9, 0.3, 1)

View File

@@ -2,7 +2,7 @@ extends StaticBody3D
@export var stats: BaseStats
const GATE_SCENE: PackedScene = preload("res://portal/gate.tscn")
const GATE_SCENE: PackedScene = preload("res://scenes/portal/gate.tscn")
func _ready() -> void:
add_to_group("portals")

View File

@@ -1,8 +1,8 @@
[gd_scene format=3]
[ext_resource type="Script" path="res://portal/portal.gd" id="1"]
[ext_resource type="Script" path="res://components/healthbar.gd" id="3"]
[ext_resource type="Resource" path="res://resources/stats/portal_stats.tres" id="6"]
[ext_resource type="Script" path="res://scenes/portal/portal.gd" id="1"]
[ext_resource type="Script" path="res://scenes/healthbar.gd" id="3"]
[ext_resource type="Resource" path="res://scenes/portal/portal_stats.tres" id="6"]
[sub_resource type="SphereShape3D" id="SphereShape3D_1"]
radius = 10.0

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PortalStats" format=3 uid="uid://be2vv5u0jw0yw"]
[ext_resource type="Script" uid="uid://bioid3s5oftxs" path="res://resources/stats/portal_stats.gd" id="1"]
[ext_resource type="Script" uid="uid://bioid3s5oftxs" path="res://scenes/portal/portal_stats.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -1,7 +1,7 @@
extends Node
const PORTAL_SCENE: PackedScene = preload("res://portal/portal.tscn")
const GATE_SCENE: PackedScene = preload("res://portal/gate.tscn")
const PORTAL_SCENE: PackedScene = preload("res://scenes/portal/portal.tscn")
const GATE_SCENE: PackedScene = preload("res://scenes/portal/gate.tscn")
const SPAWN_INTERVAL := 30.0
const MAX_PORTALS := 3
const MIN_DISTANCE := 20.0

View File

@@ -10,9 +10,9 @@
[ext_resource type="Script" uid="uid://cbd1bryh0e2dw" path="res://systems/damage_system.gd" id="damage_system"]
[ext_resource type="Script" uid="uid://bwhxu5586lc1l" path="res://systems/enemy_ai_system.gd" id="enemy_ai_system"]
[ext_resource type="Script" uid="uid://b3wkn5118dimy" path="res://systems/health_system.gd" id="health_system"]
[ext_resource type="PackedScene" path="res://hud/hud.tscn" id="hud"]
[ext_resource type="PackedScene" uid="uid://cdnkbt1f0db7e" path="res://player/player.tscn" id="player"]
[ext_resource type="Script" uid="uid://cskx6o07iukwh" path="res://world/portal_spawner.gd" id="portal_spawner"]
[ext_resource type="PackedScene" path="res://scenes/hud/hud.tscn" id="hud"]
[ext_resource type="PackedScene" uid="uid://cdnkbt1f0db7e" path="res://scenes/player/player.tscn" id="player"]
[ext_resource type="Script" uid="uid://cskx6o07iukwh" path="res://scenes/world/portal_spawner.gd" id="portal_spawner"]
[ext_resource type="Script" uid="uid://b1qkvoqvmd21h" path="res://systems/respawn_system.gd" id="respawn_system"]
[ext_resource type="Script" uid="uid://rsnpuf77o0sn" path="res://systems/shield_system.gd" id="shield_system"]
[ext_resource type="Script" uid="uid://c84voxmnaifyt" path="res://systems/spawn_system.gd" id="spawn_system"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="AggroConfig" format=3]
[ext_resource type="Script" path="res://resources/stats/aggro_config.gd" id="1"]
[ext_resource type="Script" path="res://systems/aggro/aggro_config.gd" id="1"]
[resource]
script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
extends Node
@export var config: AggroConfig = preload("res://resources/stats/aggro_config.tres")
@export var config: AggroConfig = preload("res://systems/aggro/aggro_config.tres")
@onready var tracker: Node = $AggroTracker
@onready var decay: Node = $AggroDecay

View File

@@ -1,6 +1,6 @@
extends Node
const ENEMY_SCENE: PackedScene = preload("res://enemy/enemy.tscn")
const ENEMY_SCENE: PackedScene = preload("res://scenes/enemy/enemy.tscn")
var portal_data: Dictionary = {}