add weapon switcher; todo: ammo
This commit is contained in:
parent
045faf2333
commit
53b8cf6118
5 changed files with 33 additions and 4 deletions
|
|
@ -16,6 +16,7 @@ func hit(projectile: PlayerProjectile, _damage: float) -> bool:
|
||||||
if weak_point_hit:
|
if weak_point_hit:
|
||||||
var explosion := preload("res://player/explosion/explosion.tscn").instantiate()
|
var explosion := preload("res://player/explosion/explosion.tscn").instantiate()
|
||||||
explosion.position = parent.position
|
explosion.position = parent.position
|
||||||
|
explosion.scale = Vector3.ONE * 1.5
|
||||||
parent.add_sibling(explosion)
|
parent.add_sibling(explosion)
|
||||||
|
|
||||||
var label_vfx := preload("res://utils/label_vfx/label_vfx.tscn").instantiate()
|
var label_vfx := preload("res://utils/label_vfx/label_vfx.tscn").instantiate()
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ func fire(aim_angle: float) -> void:
|
||||||
var dir := Vector3.RIGHT.rotated(Vector3.UP, aim_angle)
|
var dir := Vector3.RIGHT.rotated(Vector3.UP, aim_angle)
|
||||||
var player_projectile: PlayerProjectile = preload("res://player/projectile/player_projectile.tscn").instantiate()
|
var player_projectile: PlayerProjectile = preload("res://player/projectile/player_projectile.tscn").instantiate()
|
||||||
player_projectile.init(dir)
|
player_projectile.init(dir)
|
||||||
player_projectile.damage = 5
|
player_projectile.damage = 4
|
||||||
player_projectile.can_hit_weak_points = false
|
player_projectile.can_hit_weak_points = false
|
||||||
player_projectile.global_position = global_position + Vector3.UP * 0.5
|
player_projectile.global_position = global_position + Vector3.UP * 0.5
|
||||||
get_tree().current_scene.add_child(player_projectile)
|
get_tree().current_scene.add_child(player_projectile)
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,13 @@ var state := State.NORMAL
|
||||||
var dash_direction: Vector2
|
var dash_direction: Vector2
|
||||||
var stamina := 1.0
|
var stamina := 1.0
|
||||||
|
|
||||||
@onready var gun: Gun = %Mortar
|
@export var guns: Array[Gun]
|
||||||
|
var gun_index := 0:
|
||||||
|
set(v):
|
||||||
|
gun_index = v % guns.size()
|
||||||
|
%GunLabel.text = gun.name
|
||||||
|
var gun: Gun:
|
||||||
|
get: return guns[gun_index]
|
||||||
|
|
||||||
func _init() -> void:
|
func _init() -> void:
|
||||||
instance = self
|
instance = self
|
||||||
|
|
@ -122,6 +128,9 @@ func _process(delta: float) -> void:
|
||||||
|
|
||||||
damage_clock -= delta
|
damage_clock -= delta
|
||||||
|
|
||||||
|
if Input.is_action_just_pressed("swap_weapons"):
|
||||||
|
gun_index += 1
|
||||||
|
|
||||||
func damage(damager: Node3D) -> void:
|
func damage(damager: Node3D) -> void:
|
||||||
if state == State.DASHING:
|
if state == State.DASHING:
|
||||||
damager.queue_free()
|
damager.queue_free()
|
||||||
|
|
|
||||||
|
|
@ -17,11 +17,12 @@ size = Vector3(2, 0.1, 0.1)
|
||||||
|
|
||||||
[sub_resource type="SphereMesh" id="SphereMesh_4flbx"]
|
[sub_resource type="SphereMesh" id="SphereMesh_4flbx"]
|
||||||
|
|
||||||
[node name="Player" type="CharacterBody3D" unique_id=1904432250]
|
[node name="Player" type="CharacterBody3D" unique_id=1904432250 node_paths=PackedStringArray("guns")]
|
||||||
collision_layer = 2
|
collision_layer = 2
|
||||||
collision_mask = 13
|
collision_mask = 13
|
||||||
script = ExtResource("1_4flbx")
|
script = ExtResource("1_4flbx")
|
||||||
shake_noise = SubResource("FastNoiseLite_onrkg")
|
shake_noise = SubResource("FastNoiseLite_onrkg")
|
||||||
|
guns = [NodePath("Guns/BasicGun"), NodePath("Guns/MiniGun"), NodePath("Guns/Mortar")]
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="." unique_id=204505475]
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="." unique_id=204505475]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||||
|
|
@ -90,6 +91,19 @@ offset_right = 196.0
|
||||||
offset_bottom = -4.0
|
offset_bottom = -4.0
|
||||||
text = "Stamina"
|
text = "Stamina"
|
||||||
|
|
||||||
|
[node name="GunLabel" type="Label" parent="CanvasLayer" unique_id=220052210]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
anchors_preset = 12
|
||||||
|
anchor_top = 1.0
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_top = -23.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 0
|
||||||
|
theme_override_font_sizes/font_size = 32
|
||||||
|
text = "BasicGun"
|
||||||
|
horizontal_alignment = 2
|
||||||
|
|
||||||
[node name="Guns" type="Node3D" parent="." unique_id=2018109083]
|
[node name="Guns" type="Node3D" parent="." unique_id=2018109083]
|
||||||
|
|
||||||
[node name="BasicGun" type="Node3D" parent="Guns" unique_id=1677055720]
|
[node name="BasicGun" type="Node3D" parent="Guns" unique_id=1677055720]
|
||||||
|
|
@ -104,4 +118,4 @@ fire_rate = 800.0
|
||||||
[node name="Mortar" type="Node3D" parent="Guns" unique_id=1321220525]
|
[node name="Mortar" type="Node3D" parent="Guns" unique_id=1321220525]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
script = ExtResource("5_qjkh3")
|
script = ExtResource("5_qjkh3")
|
||||||
fire_rate = 250.0
|
fire_rate = 160.0
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,11 @@ dash={
|
||||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
swap_weapons={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
[layer_names]
|
[layer_names]
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue