game: add weapon active ability

This commit is contained in:
2025-08-21 05:52:40 +02:00
parent 8f02850a73
commit a0d121fadc
7 changed files with 49 additions and 11 deletions

View File

@@ -23,20 +23,32 @@ func do_attack() -> void:
return
var projectile = WEAPON_SWORD_PROJECTILE.instantiate()
projectile.damage = attack_damage
projectile.target = target
projectile.on_hit_sig = projectile_hit
add_child(projectile)
func _do_active() -> void:
var radius = targeting_range_shape.shape.radius
var count = 15
for i in count:
var angle = TAU * float(i) / float(count)
var target_pos = Vector2(cos(angle), sin(angle)) * radius
var new_target := Marker2D.new()
new_target.global_position = global_position + target_pos
var projectile = WEAPON_SWORD_PROJECTILE.instantiate()
projectile.damage_mult = 3.0
projectile.target = new_target
projectile.on_hit_sig = projectile_hit
add_child(projectile)
func deal_damage(enemy: EnemyBase):
func deal_damage(enemy: EnemyBase, damage_mult: float):
var crit_chance = _player.player_stats.get_final("crit_chance", _player.modifiers)
var damage_dealt = attack_damage
var damage_dealt = attack_damage * damage_mult
var is_crit = randf() >= 1 - crit_chance
if is_crit:
damage_dealt *= _player.player_stats.get_final("crit_multiplier", _player.modifiers)
enemy.take_damage(damage_dealt, is_crit)
func _on_projectile_hit(projectile: WeaponSwordProjectile, enemy: EnemyBase):
deal_damage(enemy)
func _on_projectile_hit(projectile: WeaponSwordProjectile, enemy: EnemyBase, damage_mult: float):
deal_damage(enemy, damage_mult)