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 - **Resources** für Basiswerte (Stats, Abilities), **Stats Autoload** für Laufzeitwerte
## Projektstruktur ## Projektstruktur
- `player/` — Spieler (.tscn + .gd): player, camera, movement, combat, targeting, role Drei Grundordner nach Verantwortung. Resources liegen bei ihren Skripten.
- `enemy/`Gegner (.tscn + .gd): enemy, enemy_movement, boss - `scenes/`Darstellung + Input
- `portal/`Portal + Gate (.tscn + .gd): portal, gate - `player/`Spieler + player_stats + role/ (Rollen + Abilities)
- `dungeon/` — Dungeon (.tscn + .gd): dungeon, dungeon_manager - `enemy/` — Gegner + Boss + enemy_stats + boss_stats
- `hud/` — HUD (.tscn + .gd): hud - `portal/` — Portal + Gate + portal_stats
- `world/` — Hauptszene (.tscn + .gd): world, portal_spawner - `dungeon/` — Dungeon + dungeon_manager
- `systems/` — 9 Systeme (health, shield, damage, ability, cooldown, enemy_ai, respawn, spawn, buff) - `hud/` — HUD
- `aggro/`AggroSystem (aggro_system, aggro_tracker, aggro_decay, aggro_events) - `world/`Hauptszene + portal_spawner
- `autoload/` — EventBus (event_bus), Stats (stats), GameState (game_state) - `healthbar.gd` — Shared Component
- `components/` — Shared Components: healthbar - `systems/` — Spiellogik
- `resources/stats/` — Stats-Klassen (.gd) + Daten (.tres): base_stats, player_stats, enemy_stats, boss_stats, portal_stats, aggro_config - 9 Systeme (health, shield, damage, ability, cooldown, enemy_ai, respawn, spawn, buff)
- `resources/roles/` — Ability/AbilitySet-Klassen (.gd) + pro Rolle (damage, tank, healer): - `aggro/` — AggroSystem (system, tracker, decay, events) + aggro_config
- `{rolle}/set.tres` — AbilitySet der Rolle - `autoloads/` — Globaler Zustand
- `{rolle}/abilities/` — Abilities (single, aoe, utility, ult, passive) - event_bus, game_state
- `stats/` — stats + base_stats
## Planungsdokument ## 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. `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 # Projektstruktur
## Ordnerstruktur ## Ordnerstruktur
Drei Grundordner nach Verantwortung. Resources liegen bei ihren Skripten.
``` ```
player/ — Spieler (.tscn + .gd) scenes/ — Darstellung + Input
enemy/ — Gegner + Boss (.tscn + .gd) healthbar.gd — Shared Component
portal/ — Portal + Gate (.tscn + .gd) player/ — Spieler + player_stats
dungeon/ — Dungeon (.tscn + .gd) role/ — Rollenwechsel + Ability/AbilitySet-Klassen
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
damage/ — set.tres + abilities/ damage/ — set.tres + abilities/
tank/ — set.tres + abilities/ tank/ — set.tres + abilities/
healer/ — 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 ## Szenenbaum

View File

@@ -11,15 +11,15 @@ config_version=5
[application] [application]
config/name="mmo" 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/features=PackedStringArray("4.6", "Forward Plus")
config/icon="res://icon.svg" config/icon="res://icon.svg"
[autoload] [autoload]
EventBus="*res://autoload/event_bus.gd" EventBus="*res://autoloads/event_bus.gd"
Stats="*res://autoload/stats.gd" Stats="*res://autoloads/stats/stats.gd"
GameState="*res://autoload/game_state.gd" GameState="*res://autoloads/game_state.gd"
[dotnet] [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] [gd_scene format=3]
[ext_resource type="PackedScene" path="res://player/player.tscn" id="player"] [ext_resource type="PackedScene" path="res://scenes/player/player.tscn" id="player"]
[ext_resource type="PackedScene" path="res://hud/hud.tscn" id="hud"] [ext_resource type="PackedScene" path="res://scenes/hud/hud.tscn" id="hud"]
[ext_resource type="PackedScene" path="res://enemy/enemy.tscn" id="enemy"] [ext_resource type="PackedScene" path="res://scenes/enemy/enemy.tscn" id="enemy"]
[ext_resource type="PackedScene" path="res://enemy/boss.tscn" id="boss"] [ext_resource type="PackedScene" path="res://scenes/enemy/boss.tscn" id="boss"]
[ext_resource type="Script" path="res://dungeon/dungeon_manager.gd" id="dungeon_manager"] [ext_resource type="Script" path="res://scenes/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/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/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/shield_system.gd" id="shield_system"]
[ext_resource type="Script" path="res://systems/damage_system.gd" id="damage_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")] [node name="ExitGate" parent="." instance=ExtResource("gate")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -4) 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 is_exit = true
[node name="DungeonManager" type="Node" parent="."] [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.returning_from_dungeon = false
GameState.clear() GameState.clear()
EventBus.dungeon_cleared.emit() 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: func _ready() -> void:
super._ready() super._ready()

View File

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

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="BossStats" load_steps=2 format=3] [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] [resource]
script = ExtResource("1") script = ExtResource("1")

View File

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

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="EnemyStats" format=3 uid="uid://cj1shmjwf0xeo"] [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] [resource]
script = ExtResource("1") script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_scene format=3] [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"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ability_active"]
bg_color = Color(0.2, 0.2, 0.2, 0.8) bg_color = Color(0.2, 0.2, 0.2, 0.8)

View File

@@ -1,15 +1,15 @@
[gd_scene format=3 uid="uid://cdnkbt1f0db7e"] [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://bfpt2p7uucfyb" path="res://scenes/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://cohjyjge1kqxb" path="res://scenes/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://fg87dh8fbc8" path="res://scenes/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://d15til6fsxw5b" path="res://scenes/player/combat.gd" id="4"]
[ext_resource type="Script" uid="uid://b05nkuryipwny" path="res://player/targeting.gd" id="8"] [ext_resource type="Script" uid="uid://b05nkuryipwny" path="res://scenes/player/targeting.gd" id="8"]
[ext_resource type="Script" path="res://player/role.gd" id="10"] [ext_resource type="Script" path="res://scenes/player/role/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://cgxtn7dfs40bh" path="res://scenes/player/role/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://beodknb6i1pm4" path="res://scenes/player/role/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" uid="uid://kcwuhnqy34mj" path="res://scenes/player/role/healer/set.tres" id="13"]
[ext_resource type="Resource" path="res://resources/stats/player_stats.tres" id="14"] [ext_resource type="Resource" path="res://scenes/player/player_stats.tres" id="14"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_1"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_1"]
radius = 0.3 radius = 0.3

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlayerStats" format=3 uid="uid://btd0g0oiulssq"] [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] [resource]
script = ExtResource("1") script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://bpx3l13iuynfv"] [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] [resource]
script = ExtResource("1") script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://dadpl32yujwhe"] [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] [resource]
script = ExtResource("1") script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://dwvc8b3cmce8l"] [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] [resource]
script = ExtResource("1") script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://s32wvlww2ls2"] [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] [resource]
script = ExtResource("1") script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3] [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] [resource]
script = ExtResource("1") script = ExtResource("1")

View File

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

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://m1kgk2uugnex"] [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] [resource]
script = ExtResource("1") script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3] [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] [resource]
script = ExtResource("1") script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://cqw1jy6kqvmnj"] [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] [resource]
script = ExtResource("1") script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://d04nu1leyki16"] [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] [resource]
script = ExtResource("1") script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3] [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] [resource]
script = ExtResource("1") 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] [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] [resource]
script = ExtResource("1") script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3] [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] [resource]
script = ExtResource("1") script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3] [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] [resource]
script = ExtResource("1") script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3] [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] [resource]
script = ExtResource("1") script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="Ability" format=3] [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] [resource]
script = ExtResource("1") 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 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 @export var is_exit: bool = false
var active := false var active := false

View File

@@ -1,6 +1,6 @@
[gd_scene format=3] [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"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1"]
albedo_color = Color(0.1, 0.9, 0.3, 1) albedo_color = Color(0.1, 0.9, 0.3, 1)

View File

@@ -2,7 +2,7 @@ extends StaticBody3D
@export var stats: BaseStats @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: func _ready() -> void:
add_to_group("portals") add_to_group("portals")

View File

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

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PortalStats" format=3 uid="uid://be2vv5u0jw0yw"] [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] [resource]
script = ExtResource("1") script = ExtResource("1")

View File

@@ -1,7 +1,7 @@
extends Node extends Node
const PORTAL_SCENE: PackedScene = preload("res://portal/portal.tscn") const PORTAL_SCENE: PackedScene = preload("res://scenes/portal/portal.tscn")
const GATE_SCENE: PackedScene = preload("res://portal/gate.tscn") const GATE_SCENE: PackedScene = preload("res://scenes/portal/gate.tscn")
const SPAWN_INTERVAL := 30.0 const SPAWN_INTERVAL := 30.0
const MAX_PORTALS := 3 const MAX_PORTALS := 3
const MIN_DISTANCE := 20.0 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://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://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="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" path="res://scenes/hud/hud.tscn" id="hud"]
[ext_resource type="PackedScene" uid="uid://cdnkbt1f0db7e" path="res://player/player.tscn" id="player"] [ext_resource type="PackedScene" uid="uid://cdnkbt1f0db7e" path="res://scenes/player/player.tscn" id="player"]
[ext_resource type="Script" uid="uid://cskx6o07iukwh" path="res://world/portal_spawner.gd" id="portal_spawner"] [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://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://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"] [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] [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] [resource]
script = ExtResource("1") script = ExtResource("1")

View File

@@ -1,6 +1,6 @@
extends Node 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 tracker: Node = $AggroTracker
@onready var decay: Node = $AggroDecay @onready var decay: Node = $AggroDecay

View File

@@ -1,6 +1,6 @@
extends Node 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 = {} var portal_data: Dictionary = {}