update
This commit is contained in:
29
CLAUDE.md
29
CLAUDE.md
@@ -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
30
plan.md
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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="."]
|
||||
@@ -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")
|
||||
@@ -1,4 +1,4 @@
|
||||
extends "res://enemy/enemy.gd"
|
||||
extends "res://scenes/enemy/enemy.gd"
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
@@ -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
|
||||
@@ -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")
|
||||
@@ -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
|
||||
@@ -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")
|
||||
@@ -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)
|
||||
@@ -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
|
||||
@@ -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")
|
||||
@@ -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")
|
||||
@@ -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")
|
||||
@@ -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")
|
||||
@@ -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")
|
||||
@@ -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")
|
||||
@@ -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")
|
||||
@@ -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")
|
||||
@@ -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")
|
||||
@@ -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")
|
||||
@@ -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")
|
||||
@@ -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")
|
||||
16
scenes/player/role/healer/set.tres
Normal file
16
scenes/player/role/healer/set.tres
Normal 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
|
||||
@@ -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")
|
||||
@@ -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")
|
||||
@@ -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")
|
||||
@@ -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")
|
||||
@@ -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")
|
||||
15
scenes/player/role/tank/set.tres
Normal file
15
scenes/player/role/tank/set.tres
Normal 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
|
||||
@@ -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
|
||||
@@ -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)
|
||||
@@ -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")
|
||||
@@ -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
|
||||
@@ -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")
|
||||
@@ -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
|
||||
@@ -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"]
|
||||
@@ -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")
|
||||
@@ -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
|
||||
|
||||
@@ -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 = {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user