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_017NTjSa2VgCtWZWVm573NB6main
parent
a2646d9690
commit
1c54f7f2db
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue