death camera mostly working
This commit is contained in:
@@ -6,8 +6,10 @@
|
|||||||
[sub_resource type="LabelSettings" id="LabelSettings_ic2ps"]
|
[sub_resource type="LabelSettings" id="LabelSettings_ic2ps"]
|
||||||
font = ExtResource("1_7a4sr")
|
font = ExtResource("1_7a4sr")
|
||||||
font_size = 500
|
font_size = 500
|
||||||
|
outline_color = Color(1, 1, 1, 0.498039)
|
||||||
|
|
||||||
[node name="PickupAnnounce" type="Label"]
|
[node name="PickupAnnounce" type="Label"]
|
||||||
|
visible = false
|
||||||
offset_right = 3440.0
|
offset_right = 3440.0
|
||||||
offset_bottom = 1440.0
|
offset_bottom = 1440.0
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
|
|||||||
11
assets/dead_cam.tscn
Normal file
11
assets/dead_cam.tscn
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
[gd_scene load_steps=2 format=3 uid="uid://by7qyyhyurlw"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/dead_cam.gd" id="1_qxtd8"]
|
||||||
|
|
||||||
|
[node name="DeadCam" type="Node3D"]
|
||||||
|
script = ExtResource("1_qxtd8")
|
||||||
|
|
||||||
|
[node name="Camera3D" type="Camera3D" parent="."]
|
||||||
|
|
||||||
|
[node name="LookRay" type="RayCast3D" parent="."]
|
||||||
|
target_position = Vector3(0, 0, -1)
|
||||||
@@ -40,7 +40,6 @@ dead_player = ExtResource("2_4hoys")
|
|||||||
SENSITIVITY = 0.008
|
SENSITIVITY = 0.008
|
||||||
BOB_AMP = 0.085
|
BOB_AMP = 0.085
|
||||||
weapon_holder = NodePath("Head/Camera3D/WeaponHolder")
|
weapon_holder = NodePath("Head/Camera3D/WeaponHolder")
|
||||||
weapon_sway_amount = 0.5
|
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||||
visible = false
|
visible = false
|
||||||
|
|||||||
@@ -32,12 +32,17 @@ polygons = [PackedInt32Array(3, 2, 0), PackedInt32Array(0, 2, 1), PackedInt32Arr
|
|||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6yrih"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6yrih"]
|
||||||
albedo_color = Color(0.300579, 0.462784, 0.249767, 1)
|
albedo_color = Color(0.300579, 0.462784, 0.249767, 1)
|
||||||
|
|
||||||
[node name="EnemyWork" type="Node3D"]
|
[node name="EnemyWork" type="Node3D" node_paths=PackedStringArray("player")]
|
||||||
script = ExtResource("1_laua1")
|
script = ExtResource("1_laua1")
|
||||||
|
player = NodePath("Player")
|
||||||
MAX_PARTICLES = 75
|
MAX_PARTICLES = 75
|
||||||
gun_1 = ExtResource("2_poauc")
|
gun_1 = ExtResource("2_poauc")
|
||||||
gun_2 = ExtResource("3_xdb5c")
|
gun_2 = ExtResource("3_xdb5c")
|
||||||
|
|
||||||
|
[node name="Player" parent="." instance=ExtResource("4_a8lcp")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0517487, 5.27336, 0.0530636)
|
||||||
|
AUDIO = false
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
environment = SubResource("Environment_klp4b")
|
environment = SubResource("Environment_klp4b")
|
||||||
|
|
||||||
@@ -45,37 +50,26 @@ environment = SubResource("Environment_klp4b")
|
|||||||
transform = Transform3D(-0.78152, -0.330606, 0.52908, 0, 0.848048, 0.529919, -0.62388, 0.414143, -0.662767, 0, 0, 0)
|
transform = Transform3D(-0.78152, -0.330606, 0.52908, 0, 0.848048, 0.529919, -0.62388, 0.414143, -0.662767, 0, 0, 0)
|
||||||
shadow_enabled = true
|
shadow_enabled = true
|
||||||
|
|
||||||
[node name="Player" parent="." instance=ExtResource("4_a8lcp")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00663102, 1.92114, -0.0244913)
|
|
||||||
AUDIO = false
|
|
||||||
weapon_sway_amount = 0.07
|
|
||||||
|
|
||||||
[node name="EnemyHivemind1" type="Node3D" parent="." groups=["enemy_hivemind"]]
|
[node name="EnemyHivemind1" type="Node3D" parent="." groups=["enemy_hivemind"]]
|
||||||
script = ExtResource("5_ngmqi")
|
script = ExtResource("5_ngmqi")
|
||||||
|
|
||||||
[node name="spider" parent="EnemyHivemind1" instance=ExtResource("6_qmuhr")]
|
[node name="spider" parent="EnemyHivemind1" instance=ExtResource("6_qmuhr")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.87933, 0, 1.40028)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.87933, 0, 1.40028)
|
||||||
player_path = NodePath("../../Player")
|
|
||||||
|
|
||||||
[node name="spider2" parent="EnemyHivemind1" instance=ExtResource("6_qmuhr")]
|
[node name="spider2" parent="EnemyHivemind1" instance=ExtResource("6_qmuhr")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.69998, 9.53674e-07, 3.9282)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.69998, 9.53674e-07, 3.9282)
|
||||||
player_path = NodePath("../../Player")
|
|
||||||
|
|
||||||
[node name="spider3" parent="EnemyHivemind1" instance=ExtResource("6_qmuhr")]
|
[node name="spider3" parent="EnemyHivemind1" instance=ExtResource("6_qmuhr")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.14727, -1.90735e-06, -3.3705)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.14727, -1.90735e-06, -3.3705)
|
||||||
player_path = NodePath("../../Player")
|
|
||||||
|
|
||||||
[node name="spider4" parent="EnemyHivemind1" instance=ExtResource("6_qmuhr")]
|
[node name="spider4" parent="EnemyHivemind1" instance=ExtResource("6_qmuhr")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.485, 0, 1.40028)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.485, 0, 1.40028)
|
||||||
player_path = NodePath("../../Player")
|
|
||||||
|
|
||||||
[node name="spider5" parent="EnemyHivemind1" instance=ExtResource("6_qmuhr")]
|
[node name="spider5" parent="EnemyHivemind1" instance=ExtResource("6_qmuhr")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.66438, 9.53674e-07, 3.9282)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.66438, 9.53674e-07, 3.9282)
|
||||||
player_path = NodePath("../../Player")
|
|
||||||
|
|
||||||
[node name="spider6" parent="EnemyHivemind1" instance=ExtResource("6_qmuhr")]
|
[node name="spider6" parent="EnemyHivemind1" instance=ExtResource("6_qmuhr")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.21709, -1.90735e-06, -3.3705)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.21709, -1.90735e-06, -3.3705)
|
||||||
player_path = NodePath("../../Player")
|
|
||||||
|
|
||||||
[node name="EnemyHivemind2" type="Node3D" parent="." groups=["enemy_hivemind"]]
|
[node name="EnemyHivemind2" type="Node3D" parent="." groups=["enemy_hivemind"]]
|
||||||
script = ExtResource("5_ngmqi")
|
script = ExtResource("5_ngmqi")
|
||||||
|
|||||||
@@ -1169,6 +1169,7 @@ gun_2 = ExtResource("3_umpon")
|
|||||||
|
|
||||||
[node name="Player" parent="." instance=ExtResource("2_f87c2")]
|
[node name="Player" parent="." instance=ExtResource("2_f87c2")]
|
||||||
transform = Transform3D(-0.866025, 0, -0.5, 0, 1, 0, 0.5, 0, -0.866025, -16.0295, 1.4435, 12.1166)
|
transform = Transform3D(-0.866025, 0, -0.5, 0, 1, 0, 0.5, 0, -0.866025, -16.0295, 1.4435, 12.1166)
|
||||||
|
AUDIO = false
|
||||||
weapon_sway_amount = 0.07
|
weapon_sway_amount = 0.07
|
||||||
|
|
||||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ func _process(delta):
|
|||||||
|
|
||||||
#calculate move position for each child
|
#calculate move position for each child
|
||||||
for i in minions:
|
for i in minions:
|
||||||
|
if i.player != null:
|
||||||
#by number of minions determine the amount they should rotate around the player to be evenly distributed
|
#by number of minions determine the amount they should rotate around the player to be evenly distributed
|
||||||
number_minions = minions.size()
|
number_minions = minions.size()
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ var ammo_drop = [[load("res://assets/ammo_pickup.tscn")],["ammo"]]
|
|||||||
var stamina_drop = [[load("res://assets/stamina_pickup.tscn")],["stamina"]]
|
var stamina_drop = [[load("res://assets/stamina_pickup.tscn")],["stamina"]]
|
||||||
var health_drop = [[load("res://assets/health_pickup.tscn")],["health"]]
|
var health_drop = [[load("res://assets/health_pickup.tscn")],["health"]]
|
||||||
var money_drop = [[load("res://assets/money_pickup.tscn")],["money"]]
|
var money_drop = [[load("res://assets/money_pickup.tscn")],["money"]]
|
||||||
|
var dead_player = preload("res://assets/dead_cam.tscn")
|
||||||
const CLEARED_ANNOUNCE = preload("res://assets/cleared_announce.tscn")
|
const CLEARED_ANNOUNCE = preload("res://assets/cleared_announce.tscn")
|
||||||
const DEAD_ANNOUNCE = preload("res://assets/dead_announce.tscn")
|
const DEAD_ANNOUNCE = preload("res://assets/dead_announce.tscn")
|
||||||
|
|
||||||
@@ -29,6 +30,7 @@ var current_gun_index
|
|||||||
var particle_number = 0
|
var particle_number = 0
|
||||||
var enemy_hiveminds = []
|
var enemy_hiveminds = []
|
||||||
var remaining_enemies
|
var remaining_enemies
|
||||||
|
var last_hit : Node
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready():
|
func _ready():
|
||||||
@@ -49,6 +51,7 @@ func _ready():
|
|||||||
if money_drop_enabled == true:
|
if money_drop_enabled == true:
|
||||||
pickups.append(money_drop)
|
pickups.append(money_drop)
|
||||||
|
|
||||||
|
if player:
|
||||||
#Set up starting guns and ammo
|
#Set up starting guns and ammo
|
||||||
held_guns = [gun_1]
|
held_guns = [gun_1]
|
||||||
var instance_gun = held_guns[0].instantiate()
|
var instance_gun = held_guns[0].instantiate()
|
||||||
@@ -75,7 +78,10 @@ func _ready():
|
|||||||
func _process(_delta):
|
func _process(_delta):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func gun_spawn(index):
|
func gun_spawn(index):
|
||||||
|
|
||||||
#loop around if scrolling past available guns
|
#loop around if scrolling past available guns
|
||||||
if index > held_guns.size() - 1:
|
if index > held_guns.size() - 1:
|
||||||
index = 0
|
index = 0
|
||||||
@@ -111,21 +117,24 @@ func cleared():
|
|||||||
|
|
||||||
func die():
|
func die():
|
||||||
Engine.time_scale = .05
|
Engine.time_scale = .05
|
||||||
|
AudioServer.set_bus_effect_enabled(0,0,true)
|
||||||
var deadmsg = DEAD_ANNOUNCE.instantiate()
|
var deadmsg = DEAD_ANNOUNCE.instantiate()
|
||||||
get_parent().add_child(deadmsg)
|
get_parent().add_child(deadmsg)
|
||||||
await get_tree().create_timer(.3).timeout
|
var instance_dead = dead_player.instantiate()
|
||||||
get_tree().reload_current_scene()
|
instance_dead.global_position = player.global_position
|
||||||
#var instance_dead = dead_player.instantiate()
|
instance_dead.transform.basis = player.global_transform.basis
|
||||||
#instance_dead.position = head.global_position
|
#instance_dead.camera.rotation = player.camera.rotation
|
||||||
#instance_dead.transform.basis = head.global_transform.basis
|
instance_dead.target = last_hit
|
||||||
#get_tree().get_root().add_child(instance_dead)
|
get_tree().get_root().add_child(instance_dead)
|
||||||
|
instance_dead.camera.current = true
|
||||||
|
player.dead = true
|
||||||
|
player.gun.visible = false
|
||||||
|
player.crosshair.visible = false
|
||||||
|
|
||||||
|
|
||||||
func pickup_spawn():
|
func pickup_spawn():
|
||||||
var item_type = pickups.pick_random()
|
var item_type = pickups.pick_random()
|
||||||
var item_spawn = item_type[0][0].instantiate()
|
var item_spawn = item_type[0][0].instantiate()
|
||||||
var item_name = item_type[1][0]
|
var item_name = item_type[1][0]
|
||||||
|
|
||||||
|
|
||||||
print(item_name)
|
|
||||||
item_spawn.rand_amt = randi_range(25,100)
|
item_spawn.rand_amt = randi_range(25,100)
|
||||||
return item_spawn
|
return item_spawn
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ var bullet_damage
|
|||||||
var bullet_force_mod = 1.0
|
var bullet_force_mod = 1.0
|
||||||
var distance_from_player
|
var distance_from_player
|
||||||
var player
|
var player
|
||||||
|
var fired_by
|
||||||
|
|
||||||
@onready var mesh = $gunbullet1
|
@onready var mesh = $gunbullet1
|
||||||
@onready var ray = $RayCast3D
|
@onready var ray = $RayCast3D
|
||||||
@@ -16,8 +17,8 @@ var player
|
|||||||
@onready var gunbullet1 = $gunbullet1/Cylinder
|
@onready var gunbullet1 = $gunbullet1/Cylinder
|
||||||
@onready var hit_indicator = $Audio/HitIndicator
|
@onready var hit_indicator = $Audio/HitIndicator
|
||||||
@export var bullethole : Resource
|
@export var bullethole : Resource
|
||||||
|
@onready var level_control = get_tree().current_scene
|
||||||
|
|
||||||
var level_control
|
|
||||||
var rng = RandomNumberGenerator.new()
|
var rng = RandomNumberGenerator.new()
|
||||||
var av_x
|
var av_x
|
||||||
var av_y
|
var av_y
|
||||||
@@ -32,17 +33,21 @@ func _ready():
|
|||||||
rotation += Vector3(av_x,av_y,av_z)
|
rotation += Vector3(av_x,av_y,av_z)
|
||||||
timer.start()
|
timer.start()
|
||||||
|
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
position += transform.basis * Vector3(0, 0, -bullet_speed) * 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))
|
rotation.x = clamp(rotation.x - delta * bullet_drop,deg_to_rad(-90),deg_to_rad(90))
|
||||||
|
|
||||||
if ray.is_colliding() and ray.get_collider != null:
|
|
||||||
|
if ray.is_colliding() and ray.get_collider() != null:
|
||||||
if ray.get_collider().is_in_group("player"):
|
if ray.get_collider().is_in_group("player"):
|
||||||
var player = ray.get_collider()
|
var player = ray.get_collider()
|
||||||
player.level_control.health -= bullet_damage
|
player.level_control.health -= bullet_damage
|
||||||
|
|
||||||
|
if player.level_control.health <= bullet_damage:
|
||||||
|
player.level_control.last_hit = fired_by
|
||||||
player.hurt_audio.play()
|
player.hurt_audio.play()
|
||||||
|
else:
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
||||||
if ray.is_colliding() and !ray.get_collider().is_in_group("player"):
|
if ray.is_colliding() and !ray.get_collider().is_in_group("player"):
|
||||||
|
|||||||
32
scripts/dead_cam.gd
Normal file
32
scripts/dead_cam.gd
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
extends Node3D
|
||||||
|
|
||||||
|
|
||||||
|
@export var MOVE_SPEED = 15
|
||||||
|
@export var CAMERA_LOOK_SPEED = 20
|
||||||
|
|
||||||
|
@onready var look_ray = $LookRay
|
||||||
|
@onready var camera = $Camera3D
|
||||||
|
|
||||||
|
var target : Node
|
||||||
|
|
||||||
|
# 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):
|
||||||
|
# Move towards and look at target
|
||||||
|
|
||||||
|
#calculate move direction
|
||||||
|
var target_pos_adjusted = Vector3(target.position.x -2,target.position.y + 4,target.position.z -2)
|
||||||
|
|
||||||
|
position = lerp(position,target_pos_adjusted,delta * MOVE_SPEED)
|
||||||
|
|
||||||
|
|
||||||
|
look_ray.look_at(Vector3(target.global_position), Vector3.UP)
|
||||||
|
camera.rotation = lerp(camera.rotation,look_ray.rotation,delta * CAMERA_LOOK_SPEED)
|
||||||
|
|
||||||
|
if Input.is_action_just_pressed("escape"):
|
||||||
|
get_tree().reload_current_scene()
|
||||||
|
queue_free()
|
||||||
@@ -56,6 +56,7 @@ var bullet_destination
|
|||||||
var gun_fire_pitch_starting
|
var gun_fire_pitch_starting
|
||||||
var current_weapon_index
|
var current_weapon_index
|
||||||
var recoiling = false
|
var recoiling = false
|
||||||
|
var dead = false
|
||||||
|
|
||||||
# Slow Down Variables
|
# Slow Down Variables
|
||||||
const SLOWSPEED = .2
|
const SLOWSPEED = .2
|
||||||
@@ -98,6 +99,9 @@ func _unhandled_input(event):
|
|||||||
|
|
||||||
|
|
||||||
func _physics_process(delta):
|
func _physics_process(delta):
|
||||||
|
|
||||||
|
if !dead:
|
||||||
|
|
||||||
# Add the gravity.
|
# Add the gravity.
|
||||||
if not is_on_floor():
|
if not is_on_floor():
|
||||||
velocity.y -= gravity * delta
|
velocity.y -= gravity * delta
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
extends CharacterBody3D
|
extends CharacterBody3D
|
||||||
|
|
||||||
var player = null
|
var player
|
||||||
@export var health = 3
|
@export var health = 3
|
||||||
@export var number_of_drops = 3
|
@export var number_of_drops = 3
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ const MAX_AV = 10
|
|||||||
|
|
||||||
@onready var level_control = get_tree().current_scene
|
@onready var level_control = get_tree().current_scene
|
||||||
@onready var nav_agent = $NavigationAgent3D
|
@onready var nav_agent = $NavigationAgent3D
|
||||||
@onready var target = $body/target
|
#@onready var target = $body/target
|
||||||
@onready var movement_shape = $MovementShape
|
@onready var movement_shape = $MovementShape
|
||||||
@onready var barrel_1 = $TurretLook/Turret/Barrel1
|
@onready var barrel_1 = $TurretLook/Turret/Barrel1
|
||||||
@onready var barrel_2 = $TurretLook/Turret/Barrel2
|
@onready var barrel_2 = $TurretLook/Turret/Barrel2
|
||||||
@@ -57,7 +57,7 @@ var knocked = false
|
|||||||
var stunned = false
|
var stunned = false
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
player = get_node(player_path)
|
player = level_control.player
|
||||||
turret_material.emission_enabled = false
|
turret_material.emission_enabled = false
|
||||||
|
|
||||||
#randomly start the postfire timer so enemy turrets aren't synced
|
#randomly start the postfire timer so enemy turrets aren't synced
|
||||||
@@ -69,9 +69,11 @@ func _process(delta):
|
|||||||
|
|
||||||
# Navigation
|
# Navigation
|
||||||
if !knocked:
|
if !knocked:
|
||||||
|
if hive_velocity:
|
||||||
velocity = hive_velocity
|
velocity = hive_velocity
|
||||||
|
|
||||||
if !stunned:
|
if !stunned:
|
||||||
|
if player != null:
|
||||||
spider_look_next.look_at(Vector3(player.global_position.x, 0, player.global_position.z), Vector3.UP)
|
spider_look_next.look_at(Vector3(player.global_position.x, 0, player.global_position.z), Vector3.UP)
|
||||||
body.rotation.y = lerp(body.rotation.y, spider_look_next.rotation.y, delta * 1)
|
body.rotation.y = lerp(body.rotation.y, spider_look_next.rotation.y, delta * 1)
|
||||||
turret_look_next.look_at(player.global_position,Vector3.UP)
|
turret_look_next.look_at(player.global_position,Vector3.UP)
|
||||||
@@ -130,6 +132,7 @@ func _on_prefire_timer_timeout():
|
|||||||
instance_bullet.bullet_drop = bullet_drop
|
instance_bullet.bullet_drop = bullet_drop
|
||||||
instance_bullet.random_spread_amt = random_spread_amt
|
instance_bullet.random_spread_amt = random_spread_amt
|
||||||
instance_bullet.bullet_damage = bullet_damage
|
instance_bullet.bullet_damage = bullet_damage
|
||||||
|
instance_bullet.fired_by = self
|
||||||
get_tree().get_root().add_child(instance_bullet)
|
get_tree().get_root().add_child(instance_bullet)
|
||||||
|
|
||||||
#barrel 2 fire
|
#barrel 2 fire
|
||||||
@@ -140,6 +143,7 @@ func _on_prefire_timer_timeout():
|
|||||||
instance_bullet2.bullet_drop = bullet_drop
|
instance_bullet2.bullet_drop = bullet_drop
|
||||||
instance_bullet2.random_spread_amt = random_spread_amt
|
instance_bullet2.random_spread_amt = random_spread_amt
|
||||||
instance_bullet2.bullet_damage = bullet_damage
|
instance_bullet2.bullet_damage = bullet_damage
|
||||||
|
instance_bullet2.fired_by = self
|
||||||
get_tree().get_root().add_child(instance_bullet2)
|
get_tree().get_root().add_child(instance_bullet2)
|
||||||
turret_material.emission_enabled = false
|
turret_material.emission_enabled = false
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user