prototype vibe
This commit is contained in:
@@ -45,7 +45,7 @@ func _apply_passive(base: float, stat: String) -> float:
|
||||
match stat:
|
||||
"damage": mult = PlayerData.buff_damage
|
||||
"heal": mult = PlayerData.buff_heal
|
||||
return base * mult
|
||||
return base * mult * PlayerData.level_scale
|
||||
|
||||
func _in_range(ability: Ability) -> bool:
|
||||
if ability.ability_range <= 0 or ability.is_heal:
|
||||
@@ -77,12 +77,13 @@ func _execute_aoe(player: Node, ability: Ability, dmg: float) -> bool:
|
||||
EventBus.attack_executed.emit(player, player.global_position, -player.global_transform.basis.z, dmg)
|
||||
return true
|
||||
var hit := false
|
||||
for enemy in get_tree().get_nodes_in_group("enemies"):
|
||||
var dist: float = player.global_position.distance_to(enemy.global_position)
|
||||
var targets: Array = get_tree().get_nodes_in_group("enemies") + get_tree().get_nodes_in_group("portals")
|
||||
for target in targets:
|
||||
var dist: float = player.global_position.distance_to(target.global_position)
|
||||
if dist <= ability.ability_range:
|
||||
EventBus.damage_requested.emit(player, enemy, dmg)
|
||||
EventBus.damage_requested.emit(player, target, dmg)
|
||||
if ability.element != 0:
|
||||
EventBus.element_damage_dealt.emit(player, enemy, dmg, ability.element)
|
||||
EventBus.element_damage_dealt.emit(player, target, dmg, ability.element)
|
||||
hit = true
|
||||
if hit:
|
||||
EventBus.attack_executed.emit(player, player.global_position, -player.global_transform.basis.z, dmg)
|
||||
@@ -116,12 +117,13 @@ func _execute_ult(player: Node, ability: Ability, dmg: float) -> bool:
|
||||
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
|
||||
for enemy in get_tree().get_nodes_in_group("enemies"):
|
||||
if enemy != target and is_instance_valid(enemy):
|
||||
var enemy_dist: float = target.global_position.distance_to(enemy.global_position)
|
||||
if enemy_dist <= splash_range:
|
||||
EventBus.damage_requested.emit(player, enemy, dmg * 2.0)
|
||||
var splash_targets: Array = get_tree().get_nodes_in_group("enemies") + get_tree().get_nodes_in_group("portals")
|
||||
for other in splash_targets:
|
||||
if other != target and is_instance_valid(other):
|
||||
var other_dist: float = target.global_position.distance_to(other.global_position)
|
||||
if other_dist <= splash_range:
|
||||
EventBus.damage_requested.emit(player, other, dmg * 2.0)
|
||||
if ability.element != 0:
|
||||
EventBus.element_damage_dealt.emit(player, enemy, dmg * 2.0, ability.element)
|
||||
EventBus.element_damage_dealt.emit(player, other, 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