bullet feels better, added spike traps

This commit is contained in:
derek
2024-11-05 16:09:13 -06:00
parent 3002c6e2db
commit 83e2365892
23 changed files with 626 additions and 93 deletions

42
scripts/bullet_ray.gd Normal file
View File

@@ -0,0 +1,42 @@
extends RayCast3D
@onready var hit_indicator: AudioStreamPlayer = $"../../../../Audio/HitIndicator"
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func hitscan_fire(bullet_damage,bullet_force_mod,bullethole):
if is_colliding():
#bullethole effect
var instance_bullethole = bullethole.instantiate()
get_collider().add_child(instance_bullethole)
instance_bullethole.global_transform.origin = get_collision_point()
if (abs(get_collision_normal().y) > 0.99):
instance_bullethole.look_at(get_collision_point() + get_collision_normal(), Vector3(0,0,1))
else:
instance_bullethole.look_at(get_collision_point() + get_collision_normal())
#move rigidbodies
if get_collider().is_in_group("scene_rigidbody"):
get_collider().linear_velocity += rotation * Vector3(0,0,-bullet_force_mod)
if get_collider().is_in_group("breakable"):
get_collider().breaking( Vector3(0,0,-bullet_force_mod))
if get_collider().is_in_group("enemy_target"):
emit_signal("enemy_hit")
get_collider().hit(bullet_damage)
if get_collider().is_in_group("switch"):
get_collider().hit()