update
This commit is contained in:
@@ -34,8 +34,8 @@ func _try_auto_attack(player: Node) -> void:
|
||||
if dist > aa_range:
|
||||
return
|
||||
EventBus.damage_requested.emit(player, targeting.current_target, dmg)
|
||||
var base: BaseStats = Stats.get_base(player)
|
||||
var aa_cd: float = base.aa_cooldown if base is PlayerStats else 0.5
|
||||
var player_base: BaseStats = Stats.get_base(player)
|
||||
var aa_cd: float = player_base.aa_cooldown if player_base is PlayerStats else 0.5
|
||||
cooldown_system.set_aa_cooldown(player, aa_cd)
|
||||
|
||||
func _on_ability_use_requested(player: Node, ability_index: int) -> void:
|
||||
@@ -56,8 +56,8 @@ func _on_ability_use_requested(player: Node, ability_index: int) -> void:
|
||||
var success: bool = _execute_ability(player, ability)
|
||||
if not success:
|
||||
return
|
||||
var base: BaseStats = Stats.get_base(player)
|
||||
var gcd_time: float = base.gcd_time if base is PlayerStats else 0.5
|
||||
var player_base: BaseStats = Stats.get_base(player)
|
||||
var gcd_time: float = player_base.gcd_time if player_base is PlayerStats else 0.5
|
||||
var gcd: float = gcd_time if ability.uses_gcd else 0.0
|
||||
cooldown_system.set_cooldown(player, ability_index, ability.cooldown, gcd)
|
||||
|
||||
@@ -100,6 +100,8 @@ func _execute_single(player: Node, targeting: Node, ability: Ability, dmg: float
|
||||
if not is_instance_valid(targeting.current_target):
|
||||
return false
|
||||
EventBus.damage_requested.emit(player, targeting.current_target, dmg)
|
||||
if ability.element != 0:
|
||||
EventBus.element_damage_dealt.emit(player, targeting.current_target, dmg, ability.element)
|
||||
EventBus.attack_executed.emit(player, player.global_position, -player.global_transform.basis.z, dmg)
|
||||
return true
|
||||
|
||||
@@ -120,6 +122,8 @@ func _execute_aoe(player: Node, ability: Ability, dmg: float) -> bool:
|
||||
var dist: float = player.global_position.distance_to(enemy.global_position)
|
||||
if dist <= ability.ability_range:
|
||||
EventBus.damage_requested.emit(player, enemy, dmg)
|
||||
if ability.element != 0:
|
||||
EventBus.element_damage_dealt.emit(player, enemy, dmg, ability.element)
|
||||
hit = true
|
||||
if hit:
|
||||
EventBus.attack_executed.emit(player, player.global_position, -player.global_transform.basis.z, dmg)
|
||||
@@ -158,12 +162,16 @@ func _execute_ult(player: Node, targeting: Node, ability: Ability, dmg: float) -
|
||||
return false
|
||||
var target: Node3D = targeting.current_target
|
||||
EventBus.damage_requested.emit(player, target, dmg * 5.0)
|
||||
var aoe_range: float = ability.aoe_radius if ability.aoe_radius > 0 else ability.ability_range
|
||||
if ability.element != 0:
|
||||
EventBus.element_damage_dealt.emit(player, target, dmg * 5.0, ability.element)
|
||||
var splash_range: float = ability.aoe_radius if ability.aoe_radius > 0 else ability.ability_range
|
||||
var enemies := get_tree().get_nodes_in_group("enemies")
|
||||
for enemy in enemies:
|
||||
if enemy != target and is_instance_valid(enemy):
|
||||
var enemy_dist: float = target.global_position.distance_to(enemy.global_position)
|
||||
if enemy_dist <= aoe_range:
|
||||
if enemy_dist <= splash_range:
|
||||
EventBus.damage_requested.emit(player, enemy, dmg * 2.0)
|
||||
if ability.element != 0:
|
||||
EventBus.element_damage_dealt.emit(player, enemy, dmg * 2.0, ability.element)
|
||||
EventBus.attack_executed.emit(player, player.global_position, -player.global_transform.basis.z, dmg * 5.0)
|
||||
return true
|
||||
|
||||
Reference in New Issue
Block a user