[Call of Duty noise] shotgun unlocked
This commit is contained in:
@@ -3,4 +3,7 @@
|
|||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
<EnableDynamicLoading>true</EnableDynamicLoading>
|
<EnableDynamicLoading>true</EnableDynamicLoading>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Scenes\" />
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
66
Scenes/ShotgunBullet.tscn
Normal file
66
Scenes/ShotgunBullet.tscn
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
[gd_scene load_steps=5 format=3 uid="uid://bq40xbqibrk1y"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://Scripts/ShotgunBullet.cs" id="1_binxs"]
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5vpcx"]
|
||||||
|
albedo_color = Color(0.584314, 0.0352941, 0.141176, 1)
|
||||||
|
|
||||||
|
[sub_resource type="SphereMesh" id="SphereMesh_ugmuv"]
|
||||||
|
material = SubResource("StandardMaterial3D_5vpcx")
|
||||||
|
|
||||||
|
[sub_resource type="SphereShape3D" id="SphereShape3D_o6kys"]
|
||||||
|
|
||||||
|
[node name="ShotgunBullet" type="Node3D"]
|
||||||
|
script = ExtResource("1_binxs")
|
||||||
|
_projectileSpeed = 5.0
|
||||||
|
|
||||||
|
[node name="RigidBody3D" type="RigidBody3D" parent="."]
|
||||||
|
transform = Transform3D(0.999848, 0, -0.0174524, 0, 1, 0, 0.0174524, 0, 0.999848, -0.275608, 0, 0)
|
||||||
|
collision_layer = 2
|
||||||
|
collision_mask = 0
|
||||||
|
gravity_scale = 0.0
|
||||||
|
continuous_cd = true
|
||||||
|
contact_monitor = true
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="RigidBody3D"]
|
||||||
|
transform = Transform3D(0.0647894, 0, 0.0761731, 0, 0.1, 0, -0.0761731, 0, 0.0647894, 0, 0, 0)
|
||||||
|
mesh = SubResource("SphereMesh_ugmuv")
|
||||||
|
skeleton = NodePath("../..")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D"]
|
||||||
|
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
|
||||||
|
shape = SubResource("SphereShape3D_o6kys")
|
||||||
|
|
||||||
|
[node name="RigidBody3D2" type="RigidBody3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.207104)
|
||||||
|
collision_layer = 2
|
||||||
|
collision_mask = 0
|
||||||
|
gravity_scale = 0.0
|
||||||
|
continuous_cd = true
|
||||||
|
contact_monitor = true
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="RigidBody3D2"]
|
||||||
|
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
|
||||||
|
mesh = SubResource("SphereMesh_ugmuv")
|
||||||
|
skeleton = NodePath("../..")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D2"]
|
||||||
|
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
|
||||||
|
shape = SubResource("SphereShape3D_o6kys")
|
||||||
|
|
||||||
|
[node name="RigidBody3D3" type="RigidBody3D" parent="."]
|
||||||
|
transform = Transform3D(0.999848, 0, 0.0174524, 0, 1, 0, -0.0174524, 0, 0.999848, 0.226111, 0, 0)
|
||||||
|
collision_layer = 2
|
||||||
|
collision_mask = 0
|
||||||
|
gravity_scale = 0.0
|
||||||
|
continuous_cd = true
|
||||||
|
contact_monitor = true
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="RigidBody3D3"]
|
||||||
|
transform = Transform3D(0.0906308, 0, -0.0422618, 0, 0.1, 0, 0.0422618, 0, 0.0906308, 0, 0, 0)
|
||||||
|
mesh = SubResource("SphereMesh_ugmuv")
|
||||||
|
skeleton = NodePath("../..")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D3"]
|
||||||
|
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
|
||||||
|
shape = SubResource("SphereShape3D_o6kys")
|
||||||
@@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/TestBullet.cs" id="1_cavby"]
|
[ext_resource type="Script" path="res://Scripts/TestBullet.cs" id="1_cavby"]
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5vpcx"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_phgri"]
|
||||||
albedo_color = Color(0.584314, 0.0352941, 0.141176, 1)
|
albedo_color = Color(0.584314, 0.0352941, 0.141176, 1)
|
||||||
|
|
||||||
[sub_resource type="SphereMesh" id="SphereMesh_wuk0e"]
|
[sub_resource type="SphereMesh" id="SphereMesh_wuk0e"]
|
||||||
material = SubResource("StandardMaterial3D_5vpcx")
|
material = SubResource("StandardMaterial3D_phgri")
|
||||||
|
|
||||||
[sub_resource type="SphereShape3D" id="SphereShape3D_rokeu"]
|
[sub_resource type="SphereShape3D" id="SphereShape3D_rokeu"]
|
||||||
|
|
||||||
@@ -15,7 +15,8 @@ script = ExtResource("1_cavby")
|
|||||||
_projectileSpeed = 5.0
|
_projectileSpeed = 5.0
|
||||||
|
|
||||||
[node name="RigidBody3D" type="RigidBody3D" parent="."]
|
[node name="RigidBody3D" type="RigidBody3D" parent="."]
|
||||||
collision_layer = 0
|
collision_layer = 2
|
||||||
|
collision_mask = 0
|
||||||
gravity_scale = 0.0
|
gravity_scale = 0.0
|
||||||
continuous_cd = true
|
continuous_cd = true
|
||||||
contact_monitor = true
|
contact_monitor = true
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
[gd_scene load_steps=5 format=3 uid="uid://b38hcomu4tpm5"]
|
[gd_scene load_steps=6 format=3 uid="uid://b38hcomu4tpm5"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/TestCharacter.cs" id="1_hddqi"]
|
[ext_resource type="Script" path="res://Scripts/TestCharacter.cs" id="1_hddqi"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dtyujwnb6w3kv" path="res://Models/TestModels/link.gltf" id="1_rwdbt"]
|
[ext_resource type="PackedScene" uid="uid://dtyujwnb6w3kv" path="res://Models/TestModels/link.gltf" id="1_rwdbt"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bq40xbqibrk1y" path="res://Scenes/ShotgunBullet.tscn" id="3_5h4r7"]
|
||||||
[ext_resource type="PackedScene" uid="uid://si4byubqnng4" path="res://Scenes/TestBullet.tscn" id="3_ojvu2"]
|
[ext_resource type="PackedScene" uid="uid://si4byubqnng4" path="res://Scenes/TestBullet.tscn" id="3_ojvu2"]
|
||||||
|
|
||||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_fqik1"]
|
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_fqik1"]
|
||||||
@@ -11,7 +12,8 @@ height = 0.456443
|
|||||||
[node name="Character" type="CharacterBody3D"]
|
[node name="Character" type="CharacterBody3D"]
|
||||||
script = ExtResource("1_hddqi")
|
script = ExtResource("1_hddqi")
|
||||||
_speed = 2.0
|
_speed = 2.0
|
||||||
_attackPattern = ExtResource("3_ojvu2")
|
_fireProjectile = ExtResource("3_ojvu2")
|
||||||
|
_altFireProjectile = ExtResource("3_5h4r7")
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||||
transform = Transform3D(0.999665, -0.0258978, -7.10543e-15, 0.0258978, 0.999665, 0, 0, 0, 1, 0, 0.19703, 0)
|
transform = Transform3D(0.999665, -0.0258978, -7.10543e-15, 0.0258978, 0.999665, 0, 0, 0, 1, 0, 0.19703, 0)
|
||||||
|
|||||||
@@ -10,6 +10,10 @@ size = Vector3(100, 1, 100)
|
|||||||
|
|
||||||
[node name="Level" type="Node3D"]
|
[node name="Level" type="Node3D"]
|
||||||
|
|
||||||
|
[node name="Camera3D" type="Camera3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.118128, 8.18686, -1.13346)
|
||||||
|
fov = 40.0
|
||||||
|
|
||||||
[node name="StaticBody3D" type="StaticBody3D" parent="."]
|
[node name="StaticBody3D" type="StaticBody3D" parent="."]
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
|
||||||
@@ -18,11 +22,7 @@ shape = SubResource("BoxShape3D_dk0pn")
|
|||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="StaticBody3D"]
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="StaticBody3D"]
|
||||||
mesh = SubResource("BoxMesh_eaper")
|
mesh = SubResource("BoxMesh_eaper")
|
||||||
|
|
||||||
[node name="Camera3D" type="Camera3D" parent="."]
|
[node name="DebugCamera" type="Camera3D" parent="StaticBody3D"]
|
||||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.118128, 8.18686, -1.13346)
|
|
||||||
fov = 40.0
|
|
||||||
|
|
||||||
[node name="DebugCamera" type="Camera3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.821149, 0.570714, 0, -0.570714, 0.821149, -0.36148, 1.40359, 0.864433)
|
transform = Transform3D(1, 0, 0, 0, 0.821149, 0.570714, 0, -0.570714, 0.821149, -0.36148, 1.40359, 0.864433)
|
||||||
visible = false
|
visible = false
|
||||||
|
|
||||||
|
|||||||
13
Scripts/ShotgunBullet.cs
Normal file
13
Scripts/ShotgunBullet.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
using Godot;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
public partial class ShotgunBullet : Projectile
|
||||||
|
{
|
||||||
|
public override void _PhysicsProcess(double delta)
|
||||||
|
{
|
||||||
|
var pellets = GetChildren().OfType<RigidBody3D>();
|
||||||
|
|
||||||
|
foreach (var pellet in pellets)
|
||||||
|
pellet.Translate(new Vector3(pellet.Rotation.Y, 0, Speed * -(float)delta));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,5 +6,4 @@ public partial class TestBullet : Projectile
|
|||||||
{
|
{
|
||||||
Translate(new Vector3(0, 0, Speed * -(float)delta));
|
Translate(new Vector3(0, 0, Speed * -(float)delta));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,12 +5,16 @@ public partial class TestCharacter : CharacterBody3D
|
|||||||
[Export]
|
[Export]
|
||||||
private float _speed = 5.0f;
|
private float _speed = 5.0f;
|
||||||
[Export]
|
[Export]
|
||||||
private PackedScene _attackPattern;
|
private PackedScene _fireProjectile;
|
||||||
|
[Export]
|
||||||
|
private PackedScene _altFireProjectile;
|
||||||
|
|
||||||
public override void _PhysicsProcess(double delta)
|
public override void _PhysicsProcess(double delta)
|
||||||
{
|
{
|
||||||
if (Input.IsActionJustPressed("p1_fire"))
|
if (Input.IsActionJustPressed("p1_fire"))
|
||||||
Fire();
|
Fire();
|
||||||
|
if (Input.IsActionJustPressed("p1_altfire"))
|
||||||
|
AltFire();
|
||||||
|
|
||||||
Velocity = CalculateCharacterMovement();
|
Velocity = CalculateCharacterMovement();
|
||||||
MoveAndSlide();
|
MoveAndSlide();
|
||||||
@@ -37,8 +41,15 @@ public partial class TestCharacter : CharacterBody3D
|
|||||||
|
|
||||||
private async void Fire()
|
private async void Fire()
|
||||||
{
|
{
|
||||||
GD.Print("Shoot");
|
var projectile = _fireProjectile.Instantiate<Projectile>();
|
||||||
var projectile = _attackPattern.Instantiate<Projectile>();
|
projectile.Position = Position + new Vector3(0f, 0f, -0.2f);
|
||||||
|
GetParent().AddChild(projectile);
|
||||||
|
await ToSignal(GetTree().CreateTimer(projectile.Cooldown), "timeout");
|
||||||
|
}
|
||||||
|
|
||||||
|
private async void AltFire()
|
||||||
|
{
|
||||||
|
var projectile = _altFireProjectile.Instantiate<Projectile>();
|
||||||
projectile.Position = Position + new Vector3(0f, 0f, -0.2f);
|
projectile.Position = Position + new Vector3(0f, 0f, -0.2f);
|
||||||
GetParent().AddChild(projectile);
|
GetParent().AddChild(projectile);
|
||||||
await ToSignal(GetTree().CreateTimer(projectile.Cooldown), "timeout");
|
await ToSignal(GetTree().CreateTimer(projectile.Cooldown), "timeout");
|
||||||
|
|||||||
Reference in New Issue
Block a user