From c5286fa1732fc1fd31d44ec1c9e8b09a8612b50a Mon Sep 17 00:00:00 2001 From: unfa Date: Tue, 24 Aug 2021 20:56:29 +0200 Subject: [PATCH] Added light to wall impact and fixed error on shooting nothing. --- Game/Assets/Effects/ImpactWall.tscn | 71 ++++++++++++++++++++++++++++- Game/Assets/Weapons/Weapon.gd | 22 ++++----- 2 files changed, 81 insertions(+), 12 deletions(-) diff --git a/Game/Assets/Effects/ImpactWall.tscn b/Game/Assets/Effects/ImpactWall.tscn index f7faeac..667cea2 100644 --- a/Game/Assets/Effects/ImpactWall.tscn +++ b/Game/Assets/Effects/ImpactWall.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=2] +[gd_scene load_steps=11 format=2] [ext_resource path="res://Assets/Effects/Impact.gd" type="Script" id=1] [ext_resource path="res://Assets/Effects/Flame.png" type="Texture2D" id=2] @@ -35,6 +35,62 @@ uv1_scale = Vector3(0.5, 0.5, 1) material = SubResource( 5 ) size = Vector2(0.25, 0.25) +[sub_resource type="Animation" id=7] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("OmniLight3D:light_color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 0.929412, 0, 1)] +} +tracks/1/type = "value" +tracks/1/path = NodePath("OmniLight3D:light_energy") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} + +[sub_resource type="Animation" id=8] +resource_name = "anim" +length = 0.2 +step = 0.05 +tracks/0/type = "value" +tracks/0/path = NodePath("OmniLight3D:light_color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Color(1, 0.905882, 0.34902, 1), Color(0.666667, 0.270588, 0, 1), Color(0, 0, 0, 1)] +} +tracks/1/type = "value" +tracks/1/path = NodePath("OmniLight3D:light_energy") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(0.15932, 1), +"update": 0, +"values": [1.0, 0.0] +} + [node name="Impact" type="Node3D"] script = ExtResource( 1 ) @@ -70,4 +126,17 @@ mesh = SubResource( 6 ) surface_material_override/0 = null script = null +[node name="OmniLight3D" type="OmniLight3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.369677, 0) +light_color = Color(1, 0.929412, 0, 1) +omni_attenuation = 2.63902 +script = null + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +autoplay = "anim" +anims/RESET = SubResource( 7 ) +anims/anim = SubResource( 8 ) +blend_times = [] +script = null + [connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] diff --git a/Game/Assets/Weapons/Weapon.gd b/Game/Assets/Weapons/Weapon.gd index e46793e..b544205 100644 --- a/Game/Assets/Weapons/Weapon.gd +++ b/Game/Assets/Weapons/Weapon.gd @@ -27,17 +27,17 @@ var impact_player = preload("res://Assets/Effects/ImpactPlayer.tscn") var impact_vfx - if ray['collider'].has_method(&'damage'): - if get_tree().network_peer.get_unique_id() == 1: # make sure this can only run on the server - ray['collider'].damage(10) - impact_vfx = impact_player.instantiate() - else: - impact_vfx = impact_wall.instantiate() - - impact_vfx.global_transform = impact_vfx.global_transform.looking_at(ray['normal']) - impact_vfx.global_transform.origin = ray['position'] - - get_tree().root.add_child(impact_vfx) + if ray: # did we hit anything? + if ray['collider'].has_method(&'damage'): + if get_tree().network_peer.get_unique_id() == 1: # make sure this can only run on the server + ray['collider'].damage(10) + impact_vfx = impact_player.instantiate() + else: + impact_vfx = impact_wall.instantiate() + + impact_vfx.global_transform = impact_vfx.global_transform.looking_at(ray['normal']) + impact_vfx.global_transform.origin = ray['position'] + get_tree().root.add_child(impact_vfx) print(ray)