revolver tweaks, mostly just needs chamber to rotate instead of snap
This commit is contained in:
@@ -278,7 +278,7 @@ _data = {
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0145504, -0.0460228)
|
||||
script = ExtResource("2_63tea")
|
||||
gun_name = "Dumb Pistol"
|
||||
fire_mode = 2
|
||||
fire_mode = 1
|
||||
flare_light = NodePath("SpotLight3D")
|
||||
bullet = ExtResource("3_4pvsf")
|
||||
bullethole = ExtResource("4_bu1g0")
|
||||
|
||||
@@ -34,6 +34,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.11359, 0)
|
||||
collision_layer = 3
|
||||
safe_margin = 0.2
|
||||
script = ExtResource("1_x7wms")
|
||||
SENSITIVITY = 0.008
|
||||
weapon_holder = NodePath("Head/Camera3D/WeaponHolder")
|
||||
weapon_sway_amount = 0.1
|
||||
weapon_rotation_amount = 0.1
|
||||
|
||||
@@ -120,85 +120,13 @@ tracks/2/keys = {
|
||||
"update": 0,
|
||||
"values": [Vector3(-0.0143475, 0, -0.0849619), Vector3(-0.014, -0.3, -0.085), Vector3(-0.014, -0.3, -0.085), Vector3(-0.0143475, 0, -0.0849619)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/type = "method"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("revolver1/Chamber/casing_001:visible")
|
||||
tracks/3/path = NodePath(".")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0.3, 0.31),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [true, false]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("revolver1/Chamber/casing_002:visible")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0.3, 0.31),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [true, false]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("revolver1/Chamber/casing_003:visible")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0.3, 0.31),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [true, false]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("revolver1/Chamber/casing_004:visible")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0.3, 0.31),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [true, false]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("revolver1/Chamber/casing_005:visible")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0.3, 0.31),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [true, false]
|
||||
}
|
||||
tracks/8/type = "value"
|
||||
tracks/8/imported = false
|
||||
tracks/8/enabled = true
|
||||
tracks/8/path = NodePath("revolver1/Chamber/casing:visible")
|
||||
tracks/8/interp = 1
|
||||
tracks/8/loop_wrap = true
|
||||
tracks/8/keys = {
|
||||
"times": PackedFloat32Array(0.3, 0.31),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [true, false]
|
||||
}
|
||||
tracks/9/type = "method"
|
||||
tracks/9/imported = false
|
||||
tracks/9/enabled = true
|
||||
tracks/9/path = NodePath(".")
|
||||
tracks/9/interp = 1
|
||||
tracks/9/loop_wrap = true
|
||||
tracks/9/keys = {
|
||||
"times": PackedFloat32Array(0.31, 1.4),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
@@ -209,73 +137,13 @@ tracks/9/keys = {
|
||||
"method": &"reload_finished"
|
||||
}]
|
||||
}
|
||||
tracks/10/type = "value"
|
||||
tracks/10/imported = false
|
||||
tracks/10/enabled = true
|
||||
tracks/10/path = NodePath("revolver1/Chamber/casing:position")
|
||||
tracks/10/interp = 1
|
||||
tracks/10/loop_wrap = true
|
||||
tracks/10/keys = {
|
||||
"times": PackedFloat32Array(),
|
||||
"transitions": PackedFloat32Array(),
|
||||
"update": 0,
|
||||
"values": []
|
||||
}
|
||||
tracks/11/type = "value"
|
||||
tracks/11/imported = false
|
||||
tracks/11/enabled = true
|
||||
tracks/11/path = NodePath("revolver1/Chamber/casing_001:position")
|
||||
tracks/11/interp = 1
|
||||
tracks/11/loop_wrap = true
|
||||
tracks/11/keys = {
|
||||
"times": PackedFloat32Array(),
|
||||
"transitions": PackedFloat32Array(),
|
||||
"update": 0,
|
||||
"values": []
|
||||
}
|
||||
tracks/12/type = "value"
|
||||
tracks/12/imported = false
|
||||
tracks/12/enabled = true
|
||||
tracks/12/path = NodePath("revolver1/Chamber/casing_003:position")
|
||||
tracks/12/interp = 1
|
||||
tracks/12/loop_wrap = true
|
||||
tracks/12/keys = {
|
||||
"times": PackedFloat32Array(),
|
||||
"transitions": PackedFloat32Array(),
|
||||
"update": 0,
|
||||
"values": []
|
||||
}
|
||||
tracks/13/type = "value"
|
||||
tracks/13/imported = false
|
||||
tracks/13/enabled = true
|
||||
tracks/13/path = NodePath("revolver1/Chamber/casing_004:position")
|
||||
tracks/13/interp = 1
|
||||
tracks/13/loop_wrap = true
|
||||
tracks/13/keys = {
|
||||
"times": PackedFloat32Array(),
|
||||
"transitions": PackedFloat32Array(),
|
||||
"update": 0,
|
||||
"values": []
|
||||
}
|
||||
tracks/14/type = "value"
|
||||
tracks/14/imported = false
|
||||
tracks/14/enabled = true
|
||||
tracks/14/path = NodePath("revolver1/Chamber/casing_005:position")
|
||||
tracks/14/interp = 1
|
||||
tracks/14/loop_wrap = true
|
||||
tracks/14/keys = {
|
||||
"times": PackedFloat32Array(),
|
||||
"transitions": PackedFloat32Array(),
|
||||
"update": 0,
|
||||
"values": []
|
||||
}
|
||||
tracks/15/type = "value"
|
||||
tracks/15/imported = false
|
||||
tracks/15/enabled = true
|
||||
tracks/15/path = NodePath("revolver1/Chamber:rotation")
|
||||
tracks/15/interp = 1
|
||||
tracks/15/loop_wrap = true
|
||||
tracks/15/keys = {
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("revolver1/Chamber:rotation")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0.14),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
@@ -334,25 +202,13 @@ tracks/3/keys = {
|
||||
"update": 0,
|
||||
"values": [Vector3(1.5708, -1.36174, 0), Vector3(1.5708, -2.10732, 0), Vector3(1.5708, -1.36174, 0)]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/type = "method"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("revolver1/Chamber:rotation")
|
||||
tracks/4/path = NodePath(".")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0, 0.03),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(1.19209e-07, 1.5708, 1.5708), Vector3(1.0472, 1.5708, 1.5708)]
|
||||
}
|
||||
tracks/5/type = "method"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath(".")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0.03),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"values": [{
|
||||
@@ -360,13 +216,13 @@ tracks/5/keys = {
|
||||
"method": &"fire"
|
||||
}]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("revolver1/Chamber:position")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("revolver1/Chamber:position")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
@@ -453,7 +309,7 @@ _data = {
|
||||
"swap_out": SubResource("Animation_nvmxj")
|
||||
}
|
||||
|
||||
[node name="revolver1" instance=ExtResource("1_i5f84")]
|
||||
[node name="revolver1" node_paths=PackedStringArray("chamber", "casing0", "casing1", "casing2", "casing3", "casing4", "casing5", "casing_spawn0", "casing_spawn1", "casing_spawn2", "casing_spawn3", "casing_spawn4", "casing_spawn5", "bullet0", "bullet1", "bullet2", "bullet3", "bullet4", "bullet5", "anim_player", "barrel_raycast", "audio_fire", "audio_empty", "audio_reload") instance=ExtResource("1_i5f84")]
|
||||
script = ExtResource("2_7rsti")
|
||||
gun_name = "Ye Ol' Revolver"
|
||||
fire_mode = 1
|
||||
@@ -464,15 +320,39 @@ bullet_damage = 5
|
||||
bullet_speed = 300
|
||||
bullet_drop = 0.0
|
||||
random_spread_amt = 0.1
|
||||
chamber = NodePath("revolver1/Chamber")
|
||||
bullet = ExtResource("3_tru5y")
|
||||
bullethole = ExtResource("4_ubqgq")
|
||||
spawn_casing = ExtResource("5_m3vsl")
|
||||
casing0 = NodePath("revolver1/Chamber/casing_001")
|
||||
casing1 = NodePath("revolver1/Chamber/casing")
|
||||
casing2 = NodePath("revolver1/Chamber/casing_005")
|
||||
casing3 = NodePath("revolver1/Chamber/casing_004")
|
||||
casing4 = NodePath("revolver1/Chamber/casing_003")
|
||||
casing5 = NodePath("revolver1/Chamber/casing_002")
|
||||
casing_spawn0 = NodePath("revolver1/Chamber/RayCastCasing1")
|
||||
casing_spawn1 = NodePath("revolver1/Chamber/RayCastCasing2")
|
||||
casing_spawn2 = NodePath("revolver1/Chamber/RayCastCasing3")
|
||||
casing_spawn3 = NodePath("revolver1/Chamber/RayCastCasing4")
|
||||
casing_spawn4 = NodePath("revolver1/Chamber/RayCastCasing5")
|
||||
casing_spawn5 = NodePath("revolver1/Chamber/RayCastCasing6")
|
||||
bullet0 = NodePath("revolver1/Chamber/bullet")
|
||||
bullet1 = NodePath("revolver1/Chamber/bullet_005")
|
||||
bullet2 = NodePath("revolver1/Chamber/bullet_004")
|
||||
bullet3 = NodePath("revolver1/Chamber/bullet_003")
|
||||
bullet4 = NodePath("revolver1/Chamber/bullet_002")
|
||||
bullet5 = NodePath("revolver1/Chamber/bullet_001")
|
||||
anim_player = NodePath("AnimationPlayer")
|
||||
barrel_raycast = NodePath("revolver1/RayCastBarrel")
|
||||
audio_fire = NodePath("Audio/Fire")
|
||||
audio_empty = NodePath("Audio/Empty")
|
||||
audio_reload = NodePath("Audio/Reload")
|
||||
|
||||
[node name="revolver1" parent="." index="0"]
|
||||
transform = Transform3D(-2.17199e-06, 0.600001, 0, -0.594652, -2.15264e-06, -0.0799332, -0.0799332, -2.89358e-07, 0.594652, 0, 0.0653908, 0.111429)
|
||||
transform = Transform3D(-2.17199e-06, 0.600001, 0, -0.6, -2.172e-06, 0, 0, 0, 0.6, 0, 0, -0.073)
|
||||
|
||||
[node name="Chamber" parent="revolver1" index="0"]
|
||||
transform = Transform3D(0.866027, 4.84982e-07, 0.499998, 0.499998, -1.80999e-06, -0.866027, 4.84982e-07, 1, -1.80999e-06, -0.0143475, 0, -0.0849619)
|
||||
transform = Transform3D(1.19222e-07, 3.61999e-06, 1, 1, -3.61999e-06, -1.19209e-07, 3.61999e-06, 1, -3.61999e-06, -0.0143475, 0, -0.0849619)
|
||||
|
||||
[node name="casing" parent="revolver1/Chamber" index="6"]
|
||||
transform = Transform3D(-0.611184, 1.18824e-07, 0.791489, -9.55509e-08, -1, 7.63428e-08, 0.791489, -2.89681e-08, 0.611184, -0.110813, 0.140209, -0.066206)
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -48,7 +48,6 @@ var cycle_count
|
||||
@export_subgroup("Raycast Nodes")
|
||||
@export var anim_player : Node
|
||||
@export var barrel_raycast : Node
|
||||
@export var casing_ejectors : Node
|
||||
@export_subgroup("Audio Clips")
|
||||
@export var audio_fire : Node
|
||||
@export var audio_empty : Node
|
||||
@@ -125,18 +124,15 @@ func reload_finished():
|
||||
player.reloading = false
|
||||
|
||||
func shoot(player,delta):
|
||||
|
||||
if level_control.ammo_current[gun_index] > 0 and cycle_count > 0:
|
||||
if !anim_player.is_playing():
|
||||
level_control.ammo_current[gun_index] -= 1
|
||||
#RECOIL --- fix later to happen over a period of time
|
||||
#player.camera.rotation.x = clamp(lerp(player.camera.rotation.x, player.camera.rotation.x + recoil_amount, delta * 10), deg_to_rad(-90), deg_to_rad(60))
|
||||
#(ADD PLAYER KICK HERE. RELATIVE TO GUN POSITION)
|
||||
audio_fire.pitch_scale = 1 + rng.randf_range(-fire_pitch_scale_amt,fire_pitch_scale_amt)
|
||||
audio_fire.play()
|
||||
anim_player.play("shoot")
|
||||
# instance bullet
|
||||
anim_player.play("shoot") #actual bullet spawn triggered by animation
|
||||
|
||||
if fire_mode != 0:
|
||||
cycle_count -= 1
|
||||
|
||||
elif !anim_player.is_playing() and cycle_count != 0:
|
||||
anim_player.play("empty")
|
||||
@@ -158,10 +154,8 @@ func fire(delta):
|
||||
instance_bullet.gun = self
|
||||
get_tree().get_root().add_child(instance_bullet)
|
||||
player.weapon_recoil()
|
||||
# chamberspin transform
|
||||
#DO SOMETHING HERE
|
||||
if fire_mode != 0:
|
||||
cycle_count -= 1
|
||||
chamber.rotate_object_local(Vector3(0,-1,0),deg_to_rad(60))
|
||||
|
||||
|
||||
func reload(player,delta):
|
||||
if level_control.ammo_current[gun_index] < max_ammo and player.reloading == false and level_control.ammo_reserve[gun_index] > 0:
|
||||
@@ -175,6 +169,7 @@ func reload(player,delta):
|
||||
|
||||
func spawn_casings():
|
||||
for i in casing_array:
|
||||
i.visible = false
|
||||
if casings_chamber_last > 0:
|
||||
var instance_casing = spawn_casing.instantiate()
|
||||
instance_casing.position = i.global_position
|
||||
|
||||
Reference in New Issue
Block a user