spider turret working

This commit is contained in:
derek
2024-07-18 11:54:59 -05:00
parent dea6c0bfd9
commit 330e4a599d
27 changed files with 2325 additions and 264 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://r7awur11yerj"
path.s3tc="res://.godot/imported/spider1.gunbarrel.albedo.png-463a06da21a5a1fe75e603ecd68d425f.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/Models/spider1.gunbarrel.albedo.png"
dest_files=["res://.godot/imported/spider1.gunbarrel.albedo.png-463a06da21a5a1fe75e603ecd68d425f.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c6u3lal4eaxo4"
path.s3tc="res://.godot/imported/spider1.gunbarrel.roughness.png-3ccaca0b1d7543772161815b9859c649.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/Models/spider1.gunbarrel.roughness.png"
dest_files=["res://.godot/imported/spider1.gunbarrel.roughness.png-3ccaca0b1d7543772161815b9859c649.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c54kwbix1mo58"
path.s3tc="res://.godot/imported/spider1.turret.png-06b344ed81eb0dc03a8f9ff9378ca7b5.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/Models/spider1.turret.png"
dest_files=["res://.godot/imported/spider1.turret.png-06b344ed81eb0dc03a8f9ff9378ca7b5.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

View File

@@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cvi0upsh0e1mu"
path.s3tc="res://.godot/imported/spider1.turret.roughness1.png-3c987d81223ffe03d186e0027646996a.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/Models/spider1.turret.roughness1.png"
dest_files=["res://.godot/imported/spider1.turret.roughness1.png-3c987d81223ffe03d186e0027646996a.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

124
assets/bullet_enemy.tscn Normal file

File diff suppressed because one or more lines are too long

View File

@@ -740,13 +740,12 @@ points = PackedVector3Array(0.930093, 0.100662, 0.798251, 0.930093, -0.0820646,
[sub_resource type="SphereShape3D" id="SphereShape3D_87tum"]
radius = 1.26183
[node name="pistol1_pickup" type="RigidBody3D" node_paths=PackedStringArray("collision_shape") groups=["pickup"]]
[node name="pistol1_pickup" type="RigidBody3D" groups=["pickup"]]
collision_layer = 4
collision_mask = 6
script = ExtResource("1_8fbqg")
gun_resource = ExtResource("2_qbywk")
pickupType = "weapon"
collision_shape = NodePath("")
[node name="revolver1" type="MeshInstance3D" parent="."]
transform = Transform3D(-1.086e-06, 0.3, 0, -0.3, -1.086e-06, 0, 0, 0, 0.3, 0, 0, -0.073)

622
assets/spi7398.tmp Normal file

File diff suppressed because one or more lines are too long

622
assets/spiC52F.tmp Normal file

File diff suppressed because one or more lines are too long

View File

@@ -434,7 +434,7 @@ mesh = SubResource("ArrayMesh_exipw")
skeleton = NodePath("")
[node name="leg1" type="MeshInstance3D" parent="body"]
transform = Transform3D(0.700373, 0.712705, 0.0390842, -0.71325, 0.700909, 0, -0.0273945, -0.0278769, 0.999234, -0.305074, -0.206463, 0.323723)
transform = Transform3D(0.699737, 0.712058, 0.0578054, -0.71325, 0.700909, 0, -0.0405164, -0.0412298, 0.998326, -0.305074, -0.206463, 0.323723)
mesh = SubResource("ArrayMesh_cwwo8")
skeleton = NodePath("")
@@ -444,7 +444,7 @@ mesh = SubResource("ArrayMesh_epfun")
skeleton = NodePath("")
[node name="leg2" type="MeshInstance3D" parent="body"]
transform = Transform3D(-0.552519, -0.561973, 0.615555, -0.713078, 0.701084, 1.13895e-08, -0.431555, -0.438939, -0.788094, 0.318604, -0.206463, 0.321527)
transform = Transform3D(-0.560365, -0.56996, 0.600945, -0.713082, 0.70108, 1.11034e-08, -0.42131, -0.428524, -0.79929, 0.318604, -0.206463, 0.321527)
mesh = SubResource("ArrayMesh_j8pcb")
skeleton = NodePath("")
@@ -454,7 +454,7 @@ mesh = SubResource("ArrayMesh_vgp1v")
skeleton = NodePath("")
[node name="leg3" type="MeshInstance3D" parent="body"]
transform = Transform3D(0.700373, 0.712705, -0.0390842, -0.71325, 0.700909, 0, 0.0273945, 0.0278769, 0.999234, -0.327034, -0.206463, -0.315327)
transform = Transform3D(0.699737, 0.712058, -0.0578054, -0.71325, 0.700909, 0, 0.0405164, 0.0412298, 0.998326, -0.327034, -0.206463, -0.315327)
mesh = SubResource("ArrayMesh_wv2l2")
skeleton = NodePath("")
@@ -464,7 +464,7 @@ mesh = SubResource("ArrayMesh_375ql")
skeleton = NodePath("")
[node name="leg4" type="MeshInstance3D" parent="body"]
transform = Transform3D(-0.522986, -0.531933, -0.665982, -0.713079, 0.701084, -1.67143e-07, 0.46691, 0.474898, -0.745967, 0.351545, -0.206463, -0.339484)
transform = Transform3D(-0.531641, -0.540743, -0.651885, -0.713083, 0.701079, -1.62945e-07, 0.457024, 0.464848, -0.758317, 0.351545, -0.206463, -0.339484)
mesh = SubResource("ArrayMesh_v81tc")
skeleton = NodePath("")

694
assets/spider2.tscn Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://djr7vnr1hcx82"]
[ext_resource type="PackedScene" uid="uid://be3x56aehx4ks" path="res://assets/Models/spider.blend" id="1_unav8"]
[node name="spider" instance=ExtResource("1_unav8")]

View File

@@ -13,7 +13,7 @@
[ext_resource type="Texture2D" uid="uid://2e4u0u863u76" path="res://assets/Models/wall1.normal.png" id="8_t2cyl"]
[ext_resource type="LightmapGIData" uid="uid://b0e5ldaodkehl" path="res://scenes/test_level_1.lmbake" id="9_gegfi"]
[ext_resource type="PackedScene" uid="uid://dws2vwfxubqvb" path="res://assets/cannon.tscn" id="10_vlhfm"]
[ext_resource type="PackedScene" uid="uid://djr7vnr1hcx82" path="res://assets/spiderTEst.tscn" id="11_32b02"]
[ext_resource type="PackedScene" uid="uid://djr7vnr1hcx82" path="res://assets/spider2.tscn" id="11_32b02"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_okijo"]
sky_top_color = Color(0.330898, 0.116786, 0.397326, 1)

View File

@@ -4,12 +4,12 @@
[ext_resource type="Texture2D" uid="uid://dqs06ic3vjtwk" path="res://assets/Models/asphalt1.albedo.jpg" id="1_w4rag"]
[ext_resource type="PackedScene" uid="uid://brl0bsqjl5dg3" path="res://assets/mac_10.tscn" id="2_6rjit"]
[ext_resource type="PackedScene" uid="uid://drwae3loscbw7" path="res://assets/player.tscn" id="2_f87c2"]
[ext_resource type="PackedScene" uid="uid://d1j6ktsmxfq6e" path="res://assets/spider.tscn" id="3_cvvjo"]
[ext_resource type="PackedScene" uid="uid://20csd6dmwj4y" path="res://assets/jump_platform.tscn" id="4_8nxyr"]
[ext_resource type="PackedScene" uid="uid://dws2vwfxubqvb" path="res://assets/cannon.tscn" id="5_28rul"]
[ext_resource type="PackedScene" uid="uid://bpkmyd3wvqi5p" path="res://assets/boombox.tscn" id="6_xrg7k"]
[ext_resource type="AudioStream" uid="uid://jo4n05go5hdt" path="res://assets/Audio/train-pass-by-steady-loop-SBA-300156766.wav" id="7_00j8j"]
[ext_resource type="PackedScene" uid="uid://cnfc8rtk6l1d8" path="res://assets/crate1.tscn" id="8_b57j8"]
[ext_resource type="PackedScene" uid="uid://djr7vnr1hcx82" path="res://assets/spider2.tscn" id="12_12jy2"]
[ext_resource type="PackedScene" uid="uid://c7vrpfdh603kr" path="res://assets/bottle_1.tscn" id="15_3iv0j"]
[ext_resource type="PackedScene" uid="uid://c6bpysq1tjhy4" path="res://vendingmahcine.tscn" id="16_4ykdi"]
@@ -543,58 +543,6 @@ transform = Transform3D(1, -1.46935e-11, -1.17288e-08, 1.4694e-11, 1, 4.69154e-0
size = Vector3(270.04, 33.5112, 117.306)
data = SubResource("VoxelGIData_dnr4q")
[node name="spider" parent="." instance=ExtResource("3_cvvjo")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 78.0456, 0.0437912, 31.6849)
player_path = NodePath("../Player")
[node name="spider2" parent="." instance=ExtResource("3_cvvjo")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 79.1945, 0.0437912, 29.5017)
player_path = NodePath("../Player")
[node name="spider3" parent="." instance=ExtResource("3_cvvjo")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 80.528, 0.0437912, 31.5168)
player_path = NodePath("../Player")
[node name="spider4" parent="." instance=ExtResource("3_cvvjo")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 81.744, 0.0437912, 29.6256)
player_path = NodePath("../Player")
[node name="spider5" parent="." instance=ExtResource("3_cvvjo")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 82.6323, 0.0437912, 26.982)
player_path = NodePath("../Player")
[node name="spider6" parent="." instance=ExtResource("3_cvvjo")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 80.7817, 0.0437912, 26.2449)
player_path = NodePath("../Player")
[node name="spider7" parent="." instance=ExtResource("3_cvvjo")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 80.0795, 0.0437912, 24.188)
player_path = NodePath("../Player")
[node name="spider8" parent="." instance=ExtResource("3_cvvjo")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 78.6007, 0.0437912, 26.0594)
player_path = NodePath("../Player")
[node name="spider9" parent="." instance=ExtResource("3_cvvjo")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 77.2912, 0.0437912, 28.1668)
player_path = NodePath("../Player")
[node name="spider10" parent="." instance=ExtResource("3_cvvjo")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 76.4768, 0.0437912, 29.9052)
player_path = NodePath("../Player")
[node name="spider11" parent="." instance=ExtResource("3_cvvjo")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 74.5032, 0.0437912, 33.7708)
player_path = NodePath("../Player")
[node name="spider12" parent="." instance=ExtResource("3_cvvjo")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 79.8792, 0.0437912, 34.7621)
player_path = NodePath("../Player")
[node name="spider13" parent="." instance=ExtResource("3_cvvjo")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15.8722, 20.4355, 41.2365)
player_path = NodePath("../Player")
[node name="JumpPlatform" parent="." instance=ExtResource("4_8nxyr")]
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, -16.6413, -0.228642, 25.8801)
jump_amount = 30
@@ -659,3 +607,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.69462, 1.16757, 11.2398)
[node name="vendingmahcine" parent="." instance=ExtResource("16_4ykdi")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.7, 0.124041, 7.5267)
[node name="spider" parent="." instance=ExtResource("12_12jy2")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5942, -0.228641, 21.7229)
player_path = NodePath("../Player")

View File

@@ -1,23 +0,0 @@
extends AnimatableBody3D
const SPEED = 30.0
@onready var mesh = $MeshInstance3D
@onready var ray = $RayCast3D
@onready var particles = $GPUParticles3D
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
position += transform.basis * Vector3(0, 0, -SPEED) * delta
func _on_timer_timeout():
queue_free()

43
scripts/bullet_enemy.gd Normal file
View File

@@ -0,0 +1,43 @@
extends Node3D
var bullet_speed
var bullet_drop
var random_spread_amt
var bullet_damage
var instance_bullethole
var bullet_force_mod = 1.0
var distance_from_player
var player
@onready var mesh = $gunbullet1
@onready var ray = $RayCast3D
@onready var particles = $GPUParticles3D
@onready var enemy_particles = $GPUParticlesEnemy
@onready var timer = $Timer
@onready var gunbullet1 = $gunbullet1/Cylinder
@onready var hit_indicator = $Audio/HitIndicator
var rng = RandomNumberGenerator.new()
var av_x
var av_y
var av_z
# Called when the node enters the scene tree for the first time.
func _ready():
#apply random rotation
av_x = deg_to_rad(rng.randf_range(-random_spread_amt,random_spread_amt))
av_y = deg_to_rad(rng.randf_range(-random_spread_amt,random_spread_amt))
av_z = deg_to_rad(rng.randf_range(-random_spread_amt,random_spread_amt))
rotation += Vector3(av_x,av_y,av_z)
timer.start()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
position += transform.basis * Vector3(0, 0, -bullet_speed) * delta
rotation.x = clamp(rotation.x - delta * bullet_drop,deg_to_rad(-90),deg_to_rad(90))

View File

@@ -1,19 +0,0 @@
extends Node3D
var bullet_speed
var bullet_drop
var random_spread_amt
var bullet_damage
@onready var mesh = $gunbullet1
@onready var timer = $Timer
@onready var gunbullet1 = $gunbullet1/Cylinder
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
position += transform.basis * Vector3(0, 0, -bullet_speed) * delta
rotation.x = clamp(rotation.x - delta * bullet_drop,deg_to_rad(-90),deg_to_rad(90))
await get_tree().create_timer(.01).timeout
queue_free()

View File

@@ -183,10 +183,12 @@ func _physics_process(delta):
#Weapon Swap Up
if Input.is_action_just_pressed("scroll_up") and !gun.anim_player.is_playing():
if level_control.held_guns.size() > 1:
gun.anim_player.play("swap_out")
level_control.gun_spawn(level_control.current_gun_index + 1)
#Weapon Swap Down
if Input.is_action_just_pressed("scroll_down") and !gun.anim_player.is_playing():
if level_control.held_guns.size() > 1:
gun.anim_player.play("swap_out")
level_control.gun_spawn(level_control.current_gun_index - 1)

View File

@@ -4,27 +4,50 @@ var player = null
@export var health = 3
@export var number_of_drops = 3
const SPEED = 3.0
const SPEED = 0.0
const MAX_LV = 10
const MAX_AV = 10
@export var player_path : NodePath
@export var bullet : Resource
@export var bullet_speed = 150
@export var bullet_drop = .1
@export var random_spread_amt = .01
@export var bullet_damage = 1
@export var turret_look_speed = 3
@onready var nav_agent = $NavigationAgent3D
@onready var target = $body/target
@onready var movement_shape = $MovementShape
@onready var barrel_1 = $TurretLook/Turret/Barrel1
@onready var barrel_2 = $TurretLook/Turret/Barrel2
@onready var prefire_timer = $Timers/prefire_timer
@onready var postfire_timer = $Timers/postfire_timer
@onready var retarget_timer = $Timers/retarget_timer
@onready var turret_look_next = $TurretLookNext
@onready var spider_look_next = $SpiderLookNext
@onready var turret = $TurretLook/Turret
@onready var turret_material = turret.mesh.surface_get_material(2)
var stamina = load("res://assets/stamina_pickup.tscn")
var ammo = load("res://assets/ammo_pickup.tscn")
var money = load("res://assets/money_1.tscn")
var die_particles = load("res://assets/die_particles.tscn")
@onready var turret_look = $TurretLook
var particlespawn
var rng = RandomNumberGenerator.new()
var rand_select
var rand_item
var body_look_to
func _ready():
player = get_node(player_path)
postfire_timer.start()
turret_material.emission_enabled = false
retarget_timer.start()
func _process(delta):
velocity = Vector3.ZERO
@@ -34,8 +57,10 @@ func _process(delta):
var next_nav_point = nav_agent.get_next_path_position()
velocity = (next_nav_point - global_transform.origin).normalized() * SPEED
turret_look_next.look_at(Vector3(player.global_position.x, global_position.y, player.global_position.z), Vector3.UP)
turret_look_next.look_at(player.global_position,Vector3.UP)
turret_look.rotation = lerp(turret_look.rotation,turret_look_next.rotation,delta * turret_look_speed)
look_at(Vector3(player.global_position.x, global_position.y, player.global_position.z), Vector3.UP)
move_and_slide()
@@ -77,3 +102,38 @@ func _on_area_3d_body_part_hit(dam,bullet_damage):
number_of_drops -= 1
queue_free()
func _on_prefire_timer_timeout():
#barrel 1 fire
var instance_bullet = bullet.instantiate()
instance_bullet.position = barrel_1.global_position
instance_bullet.transform.basis = barrel_1.global_transform.basis
instance_bullet.bullet_speed = bullet_speed
instance_bullet.bullet_drop = bullet_drop
instance_bullet.random_spread_amt = random_spread_amt
instance_bullet.bullet_damage = bullet_damage
get_tree().get_root().add_child(instance_bullet)
#barrel 2 fire
var instance_bullet2 = bullet.instantiate()
instance_bullet2.position = barrel_2.global_position
instance_bullet2.transform.basis = barrel_2.global_transform.basis
instance_bullet2.bullet_speed = bullet_speed
instance_bullet2.bullet_drop = bullet_drop
instance_bullet2.random_spread_amt = random_spread_amt
instance_bullet2.bullet_damage = bullet_damage
get_tree().get_root().add_child(instance_bullet2)
turret_material.emission_enabled = false
prefire_timer.stop()
postfire_timer.start()
func _on_postfire_timer_timeout():
#if turret_look.is_colliding() and turret_look.get_collider().is_in_group("player"):
prefire_timer.start()
turret_material.emission_enabled = true
func _on_retarget_timer_timeout():
pass #turret_look_next.look_at(player.global_position,Vector3.UP)

View File

@@ -82,7 +82,7 @@ tracks/1/keys = {
"times": PackedFloat32Array(0.2, 2.3, 2.8),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(-0.0237292, 1.94229, 0.717401), Vector3(-0.0161762, 1.94229, 0.955517), Vector3(-0.0161762, 0.355468, 0.955517)]
"values": [Vector3(-0.0237292, 1.94229, 0.717401), Vector3(-0.0161762, 1.94229, 0.955517), Vector3(-0.016, 0.53, 0.956)]
}
tracks/2/type = "value"
tracks/2/imported = false