diff --git a/enemies/police_car/weak_point.gd b/enemies/police_car/weak_point.gd index 7cc9503..47df6e7 100644 --- a/enemies/police_car/weak_point.gd +++ b/enemies/police_car/weak_point.gd @@ -16,6 +16,7 @@ func hit(projectile: PlayerProjectile, _damage: float) -> bool: if weak_point_hit: var explosion := preload("res://player/explosion/explosion.tscn").instantiate() explosion.position = parent.position + explosion.scale = Vector3.ONE * 1.5 parent.add_sibling(explosion) var label_vfx := preload("res://utils/label_vfx/label_vfx.tscn").instantiate() diff --git a/player/guns/mini_gun.gd b/player/guns/mini_gun.gd index 0f0960b..ec5d7d7 100644 --- a/player/guns/mini_gun.gd +++ b/player/guns/mini_gun.gd @@ -5,7 +5,7 @@ func fire(aim_angle: float) -> void: var dir := Vector3.RIGHT.rotated(Vector3.UP, aim_angle) var player_projectile: PlayerProjectile = preload("res://player/projectile/player_projectile.tscn").instantiate() player_projectile.init(dir) - player_projectile.damage = 5 + player_projectile.damage = 4 player_projectile.can_hit_weak_points = false player_projectile.global_position = global_position + Vector3.UP * 0.5 get_tree().current_scene.add_child(player_projectile) diff --git a/player/player.gd b/player/player.gd index 8aab7cf..73f089e 100644 --- a/player/player.gd +++ b/player/player.gd @@ -28,7 +28,13 @@ var state := State.NORMAL var dash_direction: Vector2 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: instance = self @@ -122,6 +128,9 @@ func _process(delta: float) -> void: damage_clock -= delta + if Input.is_action_just_pressed("swap_weapons"): + gun_index += 1 + func damage(damager: Node3D) -> void: if state == State.DASHING: damager.queue_free() diff --git a/player/player.tscn b/player/player.tscn index de7fc69..a2ea728 100644 --- a/player/player.tscn +++ b/player/player.tscn @@ -17,11 +17,12 @@ size = Vector3(2, 0.1, 0.1) [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_mask = 13 script = ExtResource("1_4flbx") shake_noise = SubResource("FastNoiseLite_onrkg") +guns = [NodePath("Guns/BasicGun"), NodePath("Guns/MiniGun"), NodePath("Guns/Mortar")] [node name="MeshInstance3D" type="MeshInstance3D" parent="." unique_id=204505475] 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 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="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] unique_name_in_owner = true script = ExtResource("5_qjkh3") -fire_rate = 250.0 +fire_rate = 160.0 diff --git a/project.godot b/project.godot index 57559de..5cb91c6 100644 --- a/project.godot +++ b/project.godot @@ -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) ] } +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]