diff --git a/scenes/ground.tscn b/scenes/ground.tscn index 27953cf..c3f4d0f 100644 --- a/scenes/ground.tscn +++ b/scenes/ground.tscn @@ -230,23 +230,6 @@ expand_mode = 2 script = ExtResource("16_hby33") action_name = "dialogue_continue" -[node name="BoostText" type="Label" parent="UI/Control"] -layout_mode = 0 -offset_right = 40.0 -offset_bottom = 24.0 -text = "BOOST: 100" - -[node name="Distance" type="Label" parent="UI/Control"] -layout_mode = 1 -anchors_preset = 4 -anchor_top = 0.5 -anchor_bottom = 0.5 -offset_top = -12.0 -offset_right = 136.0 -offset_bottom = 12.0 -grow_vertical = 2 -text = "DIST: 2048" - [node name="Interact" type="HFlowContainer" parent="UI/Control"] layout_mode = 1 anchors_preset = 14 diff --git a/scenes/locations/space_station_1.tscn b/scenes/locations/space_station_1.tscn index 48eedb0..a856639 100644 --- a/scenes/locations/space_station_1.tscn +++ b/scenes/locations/space_station_1.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=57 format=4 uid="uid://dfjnikjjynj0e"] +[gd_scene load_steps=59 format=4 uid="uid://dfjnikjjynj0e"] [ext_resource type="AudioStream" uid="uid://dgv01wy8r7ej2" path="res://sounds/uglyburger.mp3" id="1_kpeax"] [ext_resource type="Texture2D" uid="uid://btcap3oh2dqt8" path="res://textures/wall_tile.png" id="2_4uppp"] @@ -22,6 +22,8 @@ [ext_resource type="Script" uid="uid://cva4b60iqolqy" path="res://scripts/story_handler_1.gd" id="19_akl5n"] [ext_resource type="Script" uid="uid://bv7ymrwe6ciax" path="res://scripts/enemy_ground.gd" id="21_tvsp8"] [ext_resource type="Texture2D" uid="uid://csrlh1sbdroud" path="res://textures/pistol.png" id="22_6l1ru"] +[ext_resource type="AudioStream" uid="uid://boiv2kfau8gop" path="res://sounds/detecting.mp3" id="22_janyw"] +[ext_resource type="AudioStream" uid="uid://dpkn65kpftlmr" path="res://sounds/alerted.mp3" id="22_vmpfq"] [ext_resource type="AudioStream" uid="uid://5x8fl2mk082h" path="res://sounds/gunshot_1.mp3" id="23_janyw"] [sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_vmimc"] @@ -445,6 +447,16 @@ shape = SubResource("RectangleShape2D_83fjc") position = Vector2(-162, -537) script = ExtResource("21_tvsp8") +[node name="Alerted" type="AudioStreamPlayer2D" parent="EnemyTest"] +stream = ExtResource("22_vmpfq") +volume_db = 8.0 +bus = &"Sound Effects" + +[node name="Detecting" type="AudioStreamPlayer2D" parent="EnemyTest"] +stream = ExtResource("22_janyw") +bus = &"Sound Effects" +parameters/looping = true + [node name="Sprite" type="AnimatedSprite2D" parent="EnemyTest"] scale = Vector2(2, 2) sprite_frames = SubResource("SpriteFrames_vmpfq") @@ -471,6 +483,7 @@ texture = ExtResource("22_6l1ru") [node name="Gunshot" type="AudioStreamPlayer2D" parent="EnemyTest/HeldItem"] stream = ExtResource("23_janyw") +bus = &"Sound Effects" [node name="Hitbox" type="Area2D" parent="EnemyTest"] collision_layer = 2 diff --git a/scripts/character_ground.gd b/scripts/character_ground.gd index 0e9ffeb..02641ef 100644 --- a/scripts/character_ground.gd +++ b/scripts/character_ground.gd @@ -4,6 +4,7 @@ var horizontial_movement = 0 var vertical_movement = 0 var speed = 256 var health = 100 +var dead = false var fire_delay = 0 @@ -11,6 +12,7 @@ var fire_delay = 0 var busy = false var firing = false +var sprinting = false var equipped_ground_gun = "pistol" var ammo_in_mag = 12 @@ -28,9 +30,33 @@ func _ready() -> void: $HeldItem/Cast.add_exception(self) func _process(delta: float) -> void: + if dead: + velocity /= 1.3 + $Sprite.rotation_degrees = -90 + $Sprite.position.y = 64 + $Sprite.animation = "idle" + + $HeldItem.visible = false + + return + if !$Sprite.is_playing(): $Sprite.play() + $Sprite.modulate.g = health / 100.0 + $Sprite.modulate.b = health / 100.0 + + if health <= 0: + dead = true + + $CollisionShape.queue_free() + $Hitbox.queue_free() + + if randi_range(0, 1) == 0: + $Sprite.rotation_degrees = -90 + else: + $Sprite.rotation_degrees = 90 + if busy: velocity = Vector2() else: @@ -54,8 +80,9 @@ func _process(delta: float) -> void: var hit_target = $HeldItem/Cast.get_collider() - if "health" in hit_target: - hit_target.health -= 10 + if hit_target: + if "health" in hit_target.get_parent(): + hit_target.get_parent().health -= 10 var bullet_impact = preload("res://scenes/particles/bullet_impact.tscn").instantiate() bullet_impact.global_position = $HeldItem/Cast.get_collision_point() diff --git a/scripts/enemy_ground.gd b/scripts/enemy_ground.gd index 7c2c357..7b860bf 100644 --- a/scripts/enemy_ground.gd +++ b/scripts/enemy_ground.gd @@ -43,6 +43,10 @@ func _ready() -> void: func _process(delta: float) -> void: super(delta) + if dead: + $Detecting.stop() + return + if !player: if game: player = game.get_node("PlayerGround") @@ -55,17 +59,25 @@ func _process(delta: float) -> void: var divider = clamp((player.global_position - global_position).length() / reaction_halve_distance, 1, 8) * 1.5 reaction_timer += delta / divider + $Detecting.playing = true + $Detecting.pitch_scale = (reaction_timer / reaction_time) * 12 + if reaction_time < reaction_timer: ai_mode = AI_MODE_ATTACK reaction_timer = 0 + $Alerted.play() else: reaction_timer -= delta + $Detecting.playing = false + if reaction_timer < 0: reaction_timer = 0 elif ai_mode == AI_MODE_ATTACK: + $Detecting.playing = false + $LineOfSight.look_at(player.global_position) if player.is_ancestor_of($LineOfSight.get_collider()): if !$Navagent.target_position or ($Navagent.target_position != player.global_position): diff --git a/sounds/alerted.mp3 b/sounds/alerted.mp3 new file mode 100644 index 0000000..8122eda Binary files /dev/null and b/sounds/alerted.mp3 differ diff --git a/sounds/alerted.mp3.import b/sounds/alerted.mp3.import new file mode 100644 index 0000000..a1b7293 --- /dev/null +++ b/sounds/alerted.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://dpkn65kpftlmr" +path="res://.godot/imported/alerted.mp3-3c4520eabb20b0fc7b092ab722b349ce.mp3str" + +[deps] + +source_file="res://sounds/alerted.mp3" +dest_files=["res://.godot/imported/alerted.mp3-3c4520eabb20b0fc7b092ab722b349ce.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/sounds/detecting.mp3 b/sounds/detecting.mp3 new file mode 100644 index 0000000..918394b Binary files /dev/null and b/sounds/detecting.mp3 differ diff --git a/sounds/detecting.mp3.import b/sounds/detecting.mp3.import new file mode 100644 index 0000000..8dbc20b --- /dev/null +++ b/sounds/detecting.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://boiv2kfau8gop" +path="res://.godot/imported/detecting.mp3-50635f71bfbfed860615114ed5e610e5.mp3str" + +[deps] + +source_file="res://sounds/detecting.mp3" +dest_files=["res://.godot/imported/detecting.mp3-50635f71bfbfed860615114ed5e610e5.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4