chain kill: laser spawns a shuriken at every enemy it kills

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017NTjSa2VgCtWZWVm573NB6
main
Artur David 2026-07-07 13:59:58 +02:00
parent a2646d9690
commit 1c54f7f2db
2 changed files with 18 additions and 0 deletions

View File

@ -14,6 +14,7 @@ const FADE_OUT := 0.5
@onready var perk_effects = get_node("/root/Game/PerkEffects") @onready var perk_effects = get_node("/root/Game/PerkEffects")
var beam_seg := preload("res://scenes/beam.tscn") var beam_seg := preload("res://scenes/beam.tscn")
var shuriken_scene := preload("res://scenes/shuriken.tscn")
var target: Node2D = null var target: Node2D = null
var all_segs: Array = [] var all_segs: Array = []
var mid_segs: Array = [] var mid_segs: Array = []
@ -123,6 +124,10 @@ func retarget(new_target: Node2D) -> void:
func do_damage_tick() -> void: func do_damage_tick() -> void:
if is_instance_valid(target) and not target.is_dying: if is_instance_valid(target) and not target.is_dying:
target.take_damage(PRIMARY_TICK_DMG) target.take_damage(PRIMARY_TICK_DMG)
if perk_effects.laser_shuriken_on_kill and target.is_dying:
var sh = shuriken_scene.instantiate()
sh.global_position = target.global_position
get_parent().add_child(sh)
var hit: Array = [] var hit: Array = []
for seg in mid_segs: for seg in mid_segs:

View File

@ -11,6 +11,7 @@ var laser_retarget_enabled = false
var shuriken_tag_enabled = false var shuriken_tag_enabled = false
var tornado_push_on_cast = false var tornado_push_on_cast = false
var tornado_fruit_collect = false var tornado_fruit_collect = false
var laser_shuriken_on_kill = false
var throwing_knife_enabled = false var throwing_knife_enabled = false
var throwing_knife_cooldown: float = 2.0 var throwing_knife_cooldown: float = 2.0
var throwing_knife_count: int = 1 var throwing_knife_count: int = 1
@ -223,6 +224,15 @@ func _ready() -> void:
rw.effect = enable_tornado_push rw.effect = enable_tornado_push
available_perks.append(rw) available_perks.append(rw)
var lsk = Perk.new()
lsk.name = "Chain Kill"
lsk.description = "Laser spawns a free Shuriken at every enemy it kills"
lsk.stats = _stat_toggle("Shuriken on Kill")
lsk.spell = SpellLibrary.LASER
lsk.icon = _icon_laser
lsk.effect = enable_laser_shuriken_on_kill
available_perks.append(lsk)
var mp = Perk.new() var mp = Perk.new()
mp.name = "Marked Prey" mp.name = "Marked Prey"
mp.description = "Shuriken marks enemies. The next spell that hits them triggers an extra explosion" mp.description = "Shuriken marks enemies. The next spell that hits them triggers an extra explosion"
@ -265,6 +275,9 @@ func enable_tornado_push() -> void:
func enable_tornado_fruit_collect() -> void: func enable_tornado_fruit_collect() -> void:
tornado_fruit_collect = true tornado_fruit_collect = true
func enable_laser_shuriken_on_kill() -> void:
laser_shuriken_on_kill = true
func double_shuriken(): func double_shuriken():
witch.shuriken_count += 2 witch.shuriken_count += 2