bullets and hitscan
This commit is contained in:
parent
08d0859728
commit
eaa487f16a
11 changed files with 60 additions and 1 deletions
16
base/scripts/projectiles/hitscan.gd
Normal file
16
base/scripts/projectiles/hitscan.gd
Normal file
|
@ -0,0 +1,16 @@
|
|||
extends RayCast3D
|
||||
|
||||
var damage : float
|
||||
|
||||
func _ready() -> void:
|
||||
if is_colliding():
|
||||
var collider = get_collider()
|
||||
# API говорит, что коллайдер может не оказаться нодой3д
|
||||
if collider is Node3D:
|
||||
# Проверяем, является ли ссылка на хитбокс, или нам дали ссылку на основной объект
|
||||
if collider.is_in_group("enemy"):
|
||||
collider.get_node("Entity").deal_damage(damage)
|
||||
elif collider.get_parent().is_in_group("enemy"):
|
||||
collider.get_parent().get_node("Entity").deal_damage(damage)
|
||||
|
||||
queue_free()
|
1
base/scripts/projectiles/hitscan.gd.uid
Normal file
1
base/scripts/projectiles/hitscan.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://coayruqnqqvdn
|
8
base/scripts/weapons/bullet/base_bullet.gd
Normal file
8
base/scripts/weapons/bullet/base_bullet.gd
Normal file
|
@ -0,0 +1,8 @@
|
|||
extends Resource
|
||||
|
||||
class_name BaseBullet
|
||||
|
||||
@export var damage : float
|
||||
|
||||
func get_packed_scene() -> PackedScene:
|
||||
return null
|
1
base/scripts/weapons/bullet/base_bullet.gd.uid
Normal file
1
base/scripts/weapons/bullet/base_bullet.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://bkbaoqw8rbrwq
|
8
base/scripts/weapons/bullet/hitscan_bullet.gd
Normal file
8
base/scripts/weapons/bullet/hitscan_bullet.gd
Normal file
|
@ -0,0 +1,8 @@
|
|||
extends BaseBullet
|
||||
|
||||
class_name HitscanBullet
|
||||
|
||||
const scene := preload("uid://c0rimfst01gsx")
|
||||
|
||||
func get_packed_scene() -> PackedScene:
|
||||
return scene
|
1
base/scripts/weapons/bullet/hitscan_bullet.gd.uid
Normal file
1
base/scripts/weapons/bullet/hitscan_bullet.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://bipb70gqcdauu
|
9
base/scripts/weapons/bullet/projectile_bullet.gd
Normal file
9
base/scripts/weapons/bullet/projectile_bullet.gd
Normal file
|
@ -0,0 +1,9 @@
|
|||
extends BaseBullet
|
||||
|
||||
class_name ProjectileBullet
|
||||
|
||||
@export var scene : PackedScene
|
||||
@export var speed : float
|
||||
|
||||
func get_packed_scene() -> PackedScene:
|
||||
return scene
|
1
base/scripts/weapons/bullet/projectile_bullet.gd.uid
Normal file
1
base/scripts/weapons/bullet/projectile_bullet.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://uwtm5i5lajia
|
Loading…
Add table
Add a link
Reference in a new issue