bony cronies
This commit is contained in:
parent
b5ad55e70f
commit
4a7cc4c401
10 changed files with 143 additions and 1 deletions
35
objects/boney.gd
Normal file
35
objects/boney.gd
Normal file
|
@ -0,0 +1,35 @@
|
|||
extends CharacterBody3D
|
||||
|
||||
|
||||
@export var speed: float
|
||||
@export_range(0,1,1,"or_less","or_greater","radians_as_degrees")
|
||||
var rotation_speed: float
|
||||
@export var death_delay: float
|
||||
|
||||
@export_group("Node References")
|
||||
@export var model: Node3D
|
||||
@export var death_sound: AudioStreamPlayer3D
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
velocity = global_basis.z * speed
|
||||
rotation = Vector3.ZERO
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
model.global_rotation.y = wrapf(Time.get_ticks_msec() * 0.001 * rotation_speed, 0.0, TAU)
|
||||
|
||||
var col = move_and_collide(velocity * delta)
|
||||
if col:
|
||||
if col.get_collider() is Player:
|
||||
queue_free()
|
||||
velocity = velocity.bounce(col.get_normal())
|
||||
|
||||
|
||||
func _on_player_detector_body_entered(body: Node3D) -> void:
|
||||
if body is Player:
|
||||
model.visible = false
|
||||
death_sound.play()
|
||||
var tween = create_tween()
|
||||
tween.set_process_mode(Tween.TWEEN_PROCESS_PHYSICS)
|
||||
tween.tween_callback(queue_free).set_delay(death_delay)
|
Loading…
Add table
Add a link
Reference in a new issue