merge
This commit is contained in:
commit
ef69617c27
4 changed files with 41 additions and 1 deletions
14
base/scenes/projectiles/test_projectile.tscn
Normal file
14
base/scenes/projectiles/test_projectile.tscn
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
[gd_scene load_steps=3 format=3 uid="uid://7g41nvss060a"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://juvbkxm58688" path="res://base/scripts/projectiles/linear_projectile.gd" id="1_aguxa"]
|
||||||
|
|
||||||
|
[sub_resource type="SphereShape3D" id="SphereShape3D_62idg"]
|
||||||
|
radius = 0.1
|
||||||
|
|
||||||
|
[node name="TestProjectile" type="Area3D"]
|
||||||
|
collision_layer = 8
|
||||||
|
collision_mask = 4
|
||||||
|
script = ExtResource("1_aguxa")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||||
|
shape = SubResource("SphereShape3D_62idg")
|
23
base/scripts/projectiles/linear_projectile.gd
Normal file
23
base/scripts/projectiles/linear_projectile.gd
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
extends Area3D
|
||||||
|
|
||||||
|
## Speed of the projectile in meters per second
|
||||||
|
@export_range(0,1000,0.01,"or_greater","suffix:m/s") var speed : float
|
||||||
|
## Damage of projectile
|
||||||
|
@export var damage : float
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
body_entered.connect(on_body_entered)
|
||||||
|
|
||||||
|
## Invoked when area contacts collision object
|
||||||
|
func on_body_entered(body : Node):
|
||||||
|
if body.is_in_group("Entities") == false:
|
||||||
|
return
|
||||||
|
|
||||||
|
# Owner needs to be set to Entity node when spawning projectile
|
||||||
|
if owner is Entity:
|
||||||
|
body.get_node("Entity").deal_damage(damage,owner)
|
||||||
|
else:
|
||||||
|
body.get_node("Entity").deal_damage(damage,null)
|
||||||
|
|
||||||
|
func _physics_process(delta: float) -> void:
|
||||||
|
global_position += global_transform.basis.z * delta
|
1
base/scripts/projectiles/linear_projectile.gd.uid
Normal file
1
base/scripts/projectiles/linear_projectile.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://juvbkxm58688
|
|
@ -50,7 +50,9 @@ shoot={
|
||||||
[layer_names]
|
[layer_names]
|
||||||
|
|
||||||
3d_physics/layer_1="Static Environment"
|
3d_physics/layer_1="Static Environment"
|
||||||
3d_physics/layer_2="Entities"
|
3d_physics/layer_2="Friendly entities"
|
||||||
|
3d_physics/layer_3="Enemy entities"
|
||||||
|
3d_physics/layer_4="Projectile"
|
||||||
|
|
||||||
[rendering]
|
[rendering]
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue