mirror of
https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
synced 2025-10-22 07:28:14 +00:00
34 lines
908 B
GDScript
34 lines
908 B
GDScript
class_name EnemyPlayerDetection
|
|
extends Node
|
|
|
|
@export var hitbox: Area2D = null
|
|
|
|
@export var height := 4
|
|
|
|
signal player_hit(player: Player)
|
|
signal player_stomped_on(player: Player)
|
|
signal invincible_player_hit(player: Player)
|
|
signal hammer_player_hit(player: Player)
|
|
|
|
func _ready() -> void:
|
|
hitbox.area_entered.connect(area_entered)
|
|
|
|
func area_entered(area: Area2D) -> void:
|
|
if area.owner is Player:
|
|
if area.name == "HammerHitbox":
|
|
hammer_entered(area.owner)
|
|
else:
|
|
player_entered(area.owner)
|
|
|
|
func player_entered(player: Player) -> void:
|
|
if player.is_invincible:
|
|
invincible_player_hit.emit(player)
|
|
elif (player.velocity.y >= 15 or (player.global_position.y + height < owner.global_position.y)) and player.in_water == false:
|
|
player_stomped_on.emit(player)
|
|
else:
|
|
player_hit.emit(player)
|
|
|
|
func hammer_entered(player: Player) -> void:
|
|
if player.has_hammer:
|
|
hammer_player_hit.emit(player)
|