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

@@ -0,0 +1,15 @@
extends Resource
class_name Ability
enum Type { SINGLE, AOE, UTILITY, ULT, PASSIVE }
@export var ability_name: String = ""
@export var type: Type = Type.SINGLE
@export var damage: float = 0.0
@export var ability_range: float = 3.0
@export var cooldown: float = 0.0
@export var uses_gcd: bool = true
@export var aoe_radius: float = 0.0
@export var icon: String = ""
@export var is_heal: bool = false
@export var passive_stat: String = "damage"

View File

@@ -0,0 +1 @@
uid://c03xbbf3yhfl3

View File

@@ -0,0 +1,7 @@
extends Resource
class_name AbilitySet
@export var abilities: Array[Ability] = []
@export var aa_damage: float = 10.0
@export var aa_range: float = 10.0
@export var aa_is_heal: bool = false

View File

@@ -0,0 +1 @@
uid://voedgs25cwrb

View File

@@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://bpx3l13iuynfv"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")
ability_name = "AOE"
type = 1
damage = 20.0
ability_range = 5.0
cooldown = 3.0
icon = "2"

View File

@@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://dadpl32yujwhe"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")
ability_name = "Damage Boost"
type = 4
damage = 50.0
ability_range = 0.0
uses_gcd = false
icon = "P"

View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://dwvc8b3cmce8l"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")
ability_name = "Single"
damage = 30.0
ability_range = 20.0
cooldown = 2.0
icon = "1"

View File

@@ -0,0 +1,13 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://s32wvlww2ls2"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")
ability_name = "Burst"
type = 3
damage = 10.0
ability_range = 20.0
cooldown = 15.0
aoe_radius = 3.0
icon = "4"

View File

@@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="Ability" format=3]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")
ability_name = "Shield Reset"
type = 2
ability_range = 0.0
cooldown = 5.0
uses_gcd = false
icon = "3"

View File

@@ -0,0 +1,14 @@
[gd_resource type="Resource" script_class="AbilitySet" format=3 uid="uid://beodknb6i1pm4"]
[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")
abilities = Array[ExtResource("1_ability")]([ExtResource("2"), ExtResource("3"), ExtResource("4"), ExtResource("5"), ExtResource("6")])
aa_damage = 25.0

View File

@@ -0,0 +1,13 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://m1kgk2uugnex"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")
ability_name = "Circle of Healing"
type = 1
damage = 10.0
ability_range = 20.0
cooldown = 3.0
icon = "2"
is_heal = true

View File

@@ -0,0 +1,13 @@
[gd_resource type="Resource" script_class="Ability" format=3]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")
ability_name = "Heal Aura"
type = 4
damage = 50.0
ability_range = 0.0
uses_gcd = false
icon = "P"
passive_stat = "heal"

View File

@@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://cqw1jy6kqvmnj"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")
ability_name = "Heal"
damage = 15.0
ability_range = 20.0
cooldown = 2.0
icon = "1"
is_heal = true

View File

@@ -0,0 +1,14 @@
[gd_resource type="Resource" script_class="Ability" format=3 uid="uid://d04nu1leyki16"]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")
ability_name = "Divine Light"
type = 3
damage = 25.0
ability_range = 20.0
cooldown = 15.0
aoe_radius = 3.0
icon = "4"
is_heal = true

View File

@@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="Ability" format=3]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")
ability_name = "Shield Reset"
type = 2
ability_range = 0.0
cooldown = 5.0
uses_gcd = false
icon = "3"

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

@@ -0,0 +1,37 @@
extends Node
enum Role { TANK, DAMAGE, HEALER }
var current_role: int = Role.DAMAGE
@export var tank_set: AbilitySet
@export var damage_set: AbilitySet
@export var healer_set: AbilitySet
@onready var player: CharacterBody3D = get_parent()
func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("class_tank"):
set_role(Role.TANK)
elif event.is_action_pressed("class_damage"):
set_role(Role.DAMAGE)
elif event.is_action_pressed("class_healer"):
set_role(Role.HEALER)
func set_role(new_role: int) -> void:
current_role = new_role
EventBus.role_changed.emit(player, current_role)
func get_role_icon() -> String:
match current_role:
Role.TANK: return "T"
Role.DAMAGE: return "D"
Role.HEALER: return "H"
return ""
func get_ability_set() -> AbilitySet:
match current_role:
Role.TANK: return tank_set
Role.DAMAGE: return damage_set
Role.HEALER: return healer_set
return damage_set

View File

@@ -0,0 +1 @@
uid://dhomrampxola4

View File

@@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="Ability" format=3]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")
ability_name = "Tank AOE"
type = 1
damage = 10.0
ability_range = 10.0
cooldown = 3.0
icon = "2"

View File

@@ -0,0 +1,13 @@
[gd_resource type="Resource" script_class="Ability" format=3]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")
ability_name = "Shield Aura"
type = 4
damage = 50.0
ability_range = 0.0
uses_gcd = false
icon = "P"
passive_stat = "shield"

View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="Ability" format=3]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")
ability_name = "Tank Strike"
damage = 15.0
ability_range = 3.0
cooldown = 2.0
icon = "1"

View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="Ability" format=3]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")
ability_name = "Fortress"
type = 2
damage = 300.0
cooldown = 20.0
icon = "4"

View File

@@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="Ability" format=3]
[ext_resource type="Script" uid="uid://c03xbbf3yhfl3" path="res://scenes/player/role/ability.gd" id="1"]
[resource]
script = ExtResource("1")
ability_name = "Shield Reset"
type = 2
ability_range = 0.0
cooldown = 5.0
uses_gcd = false
icon = "3"

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