Extract MatchParticipantComponent from Player entity and fix HealthComponent tests

This commit is contained in:
Squinty 2024-04-27 13:32:03 +00:00
parent d238c29f76
commit b339bf34f0
23 changed files with 149 additions and 124 deletions

View file

@ -25,9 +25,10 @@ class_name Projectile extends Node3D
@onready var projectile_trail : Trail3D = $Smoothing/ProjectileTrail
var velocity : Vector3 = Vector3.ZERO
var shooter : Player
var shooter : MatchParticipantComponent
func _ready() -> void:
assert(shooter)
var lifespan_timer : Timer = Timer.new()
lifespan_timer.wait_time = lifespan
lifespan_timer.one_shot = true

View file

@ -14,13 +14,14 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
extends Node3D
var shooter : Player
var shooter : MatchParticipantComponent
@onready var fire : GPUParticles3D = $Fire
@onready var explosive_damage : ExplosiveDamageComponent = $ExplosiveDamageComponent
var explosion_effect_pending : bool = false
func _ready() -> void:
assert(shooter)
explosive_damage.damage_dealer = shooter
fire.emitting = true
fire.finished.connect(func() -> void: queue_free())

View file

@ -1,7 +1,7 @@
[gd_scene load_steps=9 format=3 uid="uid://8atq41j7wd55"]
[ext_resource type="Script" path="res://entities/weapons/space_gun/projectile_explosion.gd" id="1_fp5td"]
[ext_resource type="PackedScene" uid="uid://ds1hekx1dq1bg" path="res://entities/components/explosive_damage_component.tscn" id="2_d4sf4"]
[ext_resource type="Script" path="res://entities/components/explosive_damage_component.gd" id="2_28ymv"]
[sub_resource type="Curve" id="Curve_rg204"]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
@ -25,7 +25,8 @@ emission_energy_multiplier = 4.0
[sub_resource type="SphereMesh" id="SphereMesh_k3pnh"]
material = SubResource("StandardMaterial3D_wpu51")
[sub_resource type="SphereShape3D" id="SphereShape3D_mlo2k"]
[sub_resource type="SphereShape3D" id="SphereShape3D_nj68w"]
margin = 0.05
radius = 5.0
[node name="ProjectileExplosion" type="Node3D"]
@ -41,8 +42,8 @@ fixed_fps = 60
process_material = SubResource("ParticleProcessMaterial_3mf41")
draw_pass_1 = SubResource("SphereMesh_k3pnh")
[node name="ExplosiveDamageComponent" parent="." instance=ExtResource("2_d4sf4")]
damage = 35
[node name="ExplosiveDamageComponent" type="Area3D" parent="."]
script = ExtResource("2_28ymv")
[node name="CollisionShape3D" type="CollisionShape3D" parent="ExplosiveDamageComponent"]
shape = SubResource("SphereShape3D_mlo2k")
shape = SubResource("SphereShape3D_nj68w")

View file

@ -16,7 +16,7 @@ extends Node3D
class_name SpaceGun
@export var PROJECTILE : PackedScene
@export var holder : Player
@export var holder : MatchParticipantComponent
@onready var nozzle : Node3D = $Nozzle
@onready var inventory : Node3D = get_parent()