27 lines
555 B
GDScript3
27 lines
555 B
GDScript3
|
extends Entity
|
||
|
class_name GenericProjectile
|
||
|
|
||
|
var BULLET_SPEED = 1
|
||
|
var BULLET_DAMAGE = 15
|
||
|
|
||
|
export var LIFETIME = 0
|
||
|
var _timer = 0
|
||
|
|
||
|
var from: Transform
|
||
|
var to: Vector3 = Vector3.ZERO
|
||
|
|
||
|
func _physics_process(delta):
|
||
|
if LIFETIME != 0:
|
||
|
_timer += delta
|
||
|
if _timer >= LIFETIME:
|
||
|
queue_free()
|
||
|
|
||
|
func create(_from: Transform, _to: Vector3, exclude_collisions: Array):
|
||
|
from = _from
|
||
|
to = _to
|
||
|
global_transform = from
|
||
|
|
||
|
for object in exclude_collisions:
|
||
|
add_collision_exception_with(object)
|
||
|
add_central_force((to - from.origin).normalized() * BULLET_SPEED)
|