Godot Version
v4.7.1.stable.official
Question
How do I get my children enemies to actually copy the enemy, and on top of that, why do the signals not automatically connect when dragging in a new enemy??
FIrst box is player, second box is enemy, third box is the level.
comments are just code I have in reserve incase I need it, not relevant.
My first ever game so i’m learning as I go
extends CharacterBody2D
signal selfLocate(value)
signal updateHP(value)
signal resendDMGOutput(value)
var SANITY = 30
var HP = 30
var WRATH = DMG
var DMG = 5
var rangedDMG = DMG
var GREED = LUCK
var LUCK = 0
var SLOTH = SPD
@export var SPD : float = 100
var PRIDE = ARMR
var ARMR = 0
var GLUTTONY = MLTP
var MLTP = 0.0
var LUST = CD
var CD = 0.0
@onready var animated_sprite = $RomeoSprite
func _physics_process(_delta):
var character_direction = Input.get_vector("Move_Left","Move_Right","Move_Down","Move_Up")
velocity = character_direction * SPD
move_and_slide()
emit_signal("selfLocate",position)
if HP < 1:
get_tree().reload_current_scene()
func _on_heart_body_entered(body: Node2D) -> void:
if body.is_in_group("Romeo"):
emit_signal("dmgEnemy",rangedDMG)
print("hhhhhh")
func _on_heart_holder_play_shooting() -> void:
$RomeoSprite.play("Shooting")
func _on_heart_holder_play_shot() -> void:
$RomeoSprite.play("Shot")
func _on_romeo_sprite_animation_finished() -> void:
$RomeoSprite.play("Idle")
func _on_happy_enemy_output_recieve_dmg() -> void:
emit_signal("resendDMGOutput",DMG)
func _on_happy_enemy_dmg_romeo(value: Variant) -> void:
$RomeoSprite.play("Injured")
HP -= value
emit_signal("updateHP",value)
extends CharacterBody2D
signal outputRecieveDMG
signal DMGRomeo(value)
var HP = 10
var DMG = 5
var SPD = 65.0
var LUCK = 0
var player_pos
var target_pos
#@onready var player = get_parent().get_node("RomeoBody")
func _on_romeo_body_self_locate(value: Variant) -> void:
player_pos = value
target_pos = (player_pos - position).normalized()
if position.distance_to(player_pos) > 1:
velocity = target_pos * SPD
move_and_slide()
func _physics_process(_delta):
#player_pos = RomeoLocation.global_position
if HP < 1:
SPD = 0
$AnimatedSprite2D.play("Death")
queue_free()
func _on_atkzone_body_entered(_body: Node2D) -> void:
$Swing.visible = true
get_node("Swing/AnimatedSprite2D").play("Swing")
func _on_atkzone_body_exited(_body: Node2D) -> void:
$Swing.visible = false
func _on_swing_body_entered(body: Node2D) -> void:
if body.is_in_group("Romeo"):
emit_signal("DMGRomeo",DMG)
func _on_romeo_body_resend_dmg_output(value: Variant) -> void:
HP -= value
$AnimatedSprite2D.play("Hurt")
func take_damage1():
emit_signal("outputRecieveDMG")
func _on_animated_sprite_2d_animation_finished() -> void:
$AnimatedSprite2D.play("Normal")
extends Node2D
@export var enemy_new: PackedScene = preload("res://Scenes/HappyEnemy.tscn")
func _ready() -> void:
var spawn_point = $Spawnpoint1
$Essentials/SpawnTimer.start()
$Essentials/SpawnTimer/SpawnRate.start()
func spawn_enemy():
var enemy_temp = enemy_new.instantiate()
#var enemy_new: PackedScene = preload("res://Scenes/HappyEnemy.tscn").instantiate()
add_child(enemy_temp)
enemy_temp.position = $Essentials/Spawnpoint1.global_position
func _on_spawn_timer_timeout() -> void:
print("TIEM")
$Essentials/SpawnTimer.stop()
$Essentials/SpawnTimer/SpawnRate.stop()
func _on_spawn_rate_timeout() -> void:
spawn_enemy()
$Essentials/SpawnTimer/SpawnRate.wait_time = randi_range(0,3)


