diff --git a/source/assets/scripts/shooting/Hyperbola/Hyperbolic_Bullet.gd b/source/assets/scripts/shooting/Hyperbola/Hyperbolic_Bullet.gd index 7da0f94..81be748 100644 --- a/source/assets/scripts/shooting/Hyperbola/Hyperbolic_Bullet.gd +++ b/source/assets/scripts/shooting/Hyperbola/Hyperbolic_Bullet.gd @@ -34,4 +34,4 @@ func _on_hitbox_body_entered(body): queue_free() if body.is_in_group('bot'): - body.queue_free() + body.hit_by_damager(damage, get_parent().global_rotation, velocity) diff --git a/source/assets/scripts/shooting/Line/Line_Bullet.gd b/source/assets/scripts/shooting/Line/Line_Bullet.gd index b12acab..976b314 100644 --- a/source/assets/scripts/shooting/Line/Line_Bullet.gd +++ b/source/assets/scripts/shooting/Line/Line_Bullet.gd @@ -26,5 +26,5 @@ func _on_hitbox_body_entered(body): queue_free() if body.is_in_group('bot'): - body.queue_free() + body.hit_by_damager(damage, get_parent().global_rotation, velocity) diff --git a/source/assets/scripts/shooting/Parabola/Parabolic_Bullet.gd b/source/assets/scripts/shooting/Parabola/Parabolic_Bullet.gd index 799b832..99b38db 100644 --- a/source/assets/scripts/shooting/Parabola/Parabolic_Bullet.gd +++ b/source/assets/scripts/shooting/Parabola/Parabolic_Bullet.gd @@ -33,4 +33,4 @@ func _on_hitbox_body_entered(body): queue_free() if body.is_in_group('bot'): - body.queue_free() + body.hit_by_damager(damage, get_parent().global_rotation, velocity) diff --git a/source/assets/scripts/shooting/Sine/Sine_Bullet.gd b/source/assets/scripts/shooting/Sine/Sine_Bullet.gd index cb246bf..c9075a4 100644 --- a/source/assets/scripts/shooting/Sine/Sine_Bullet.gd +++ b/source/assets/scripts/shooting/Sine/Sine_Bullet.gd @@ -25,4 +25,4 @@ func _on_hitbox_body_entered(body): queue_free() if body.is_in_group('bot'): - body.queue_free() + body.hit_by_damager(damage, get_parent().global_rotation, velocity) diff --git a/source/assets/scripts/ts_bot_handlers/ts_bot_handlergd.gd b/source/assets/scripts/ts_bot_handlers/ts_bot_handlergd.gd index 70f6b5b..f0a9e8a 100644 --- a/source/assets/scripts/ts_bot_handlers/ts_bot_handlergd.gd +++ b/source/assets/scripts/ts_bot_handlers/ts_bot_handlergd.gd @@ -7,6 +7,8 @@ var accelerationSpeed = 2 var deccelerationSpeed = 20 var maxSpeed = 250 +signal bot_died + var worldSpace2d = null var coreRay = {} @@ -30,6 +32,9 @@ var rotationAmount = 0 var rand_generate = RandomNumberGenerator.new() var timer = 15 +var hp = 50 + +var activeHitBoost = Vector2(0,0) export(int, "Passive", "Friendly", "Agressive") var Mode @@ -75,6 +80,8 @@ func _physics_process(delta): $TsBotSpriteWeaponOn.rotation = 360/rotationAmount time = 0 shoot_bot() + move_and_slide(activeHitBoost) + activeHitBoost = Vector2(move_toward(activeHitBoost.x, 0, 2), move_toward(activeHitBoost.y, 0, 2)) func get_interaction(): degreeTracker = 0 @@ -92,9 +99,17 @@ func get_interaction(): interactionRays.append({"start": startVector, "end": Vector2(0,maxRay).rotated(deg2rad(degreeTracker)) + global_position, "degrees": degreeTracker,"ray": interactionRay, "interacted": interacted}) degreeTracker += degreeStep - func shoot_bot(): var b = bullet.instance() get_parent().add_child(b) b.global_position = self.global_position b.global_rotation = 360/rotationAmount - 180 + +func hit_by_damager(damage, b_rotation, b_velocity): + hp -= damage + $HUD/health_bar.value = hp + activeHitBoost = b_velocity.rotated(b_rotation)*250 + Mode = 2 + if hp <= 0: + queue_free() + emit_signal("bot_died") diff --git a/source/entities/player/player_node.tscn b/source/entities/player/player_node.tscn index 8d3f96a..d797472 100644 --- a/source/entities/player/player_node.tscn +++ b/source/entities/player/player_node.tscn @@ -199,7 +199,7 @@ animations = [ { }, { "frames": [ ExtResource( 5 ), ExtResource( 42 ), ExtResource( 35 ), ExtResource( 24 ), ExtResource( 8 ), ExtResource( 31 ), ExtResource( 30 ), ExtResource( 38 ), ExtResource( 10 ), ExtResource( 43 ), ExtResource( 41 ), ExtResource( 33 ), ExtResource( 44 ), ExtResource( 19 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 36 ), ExtResource( 12 ), ExtResource( 45 ), ExtResource( 21 ) ], "loop": true, -"name": "move-speed-right-01", +"name": "move-speed-left-02", "speed": 35.0 }, { "frames": [ ExtResource( 70 ), ExtResource( 49 ), ExtResource( 74 ), ExtResource( 75 ), ExtResource( 28 ), ExtResource( 52 ), ExtResource( 53 ), ExtResource( 55 ), ExtResource( 150 ), ExtResource( 156 ), ExtResource( 138 ), ExtResource( 161 ), ExtResource( 145 ), ExtResource( 148 ), ExtResource( 147 ), ExtResource( 133 ), ExtResource( 164 ), ExtResource( 134 ), ExtResource( 152 ), ExtResource( 160 ) ], @@ -227,6 +227,21 @@ animations = [ { "name": "idle-speed-right-01", "speed": 25.0 }, { +"frames": [ ExtResource( 167 ), ExtResource( 157 ), ExtResource( 158 ), ExtResource( 126 ), ExtResource( 90 ), ExtResource( 89 ), ExtResource( 97 ), ExtResource( 88 ), ExtResource( 98 ), ExtResource( 91 ), ExtResource( 125 ), ExtResource( 105 ), ExtResource( 82 ), ExtResource( 84 ), ExtResource( 92 ), ExtResource( 103 ), ExtResource( 122 ), ExtResource( 130 ), ExtResource( 104 ), ExtResource( 116 ) ], +"loop": true, +"name": "boost-speed-right-02", +"speed": 55.0 +}, { +"frames": [ ExtResource( 5 ), ExtResource( 42 ), ExtResource( 35 ), ExtResource( 24 ), ExtResource( 8 ), ExtResource( 31 ), ExtResource( 30 ), ExtResource( 38 ), ExtResource( 10 ), ExtResource( 43 ), ExtResource( 41 ), ExtResource( 33 ), ExtResource( 44 ), ExtResource( 19 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 36 ), ExtResource( 12 ), ExtResource( 45 ), ExtResource( 21 ) ], +"loop": true, +"name": "move-speed-right-01", +"speed": 35.0 +}, { +"frames": [ ExtResource( 73 ), ExtResource( 57 ), ExtResource( 65 ), ExtResource( 64 ), ExtResource( 54 ), ExtResource( 71 ), ExtResource( 58 ), ExtResource( 66 ), ExtResource( 62 ), ExtResource( 59 ), ExtResource( 56 ), ExtResource( 60 ), ExtResource( 63 ), ExtResource( 50 ), ExtResource( 61 ), ExtResource( 67 ), ExtResource( 72 ), ExtResource( 51 ), ExtResource( 68 ), ExtResource( 69 ) ], +"loop": true, +"name": "boost-speed-left-02", +"speed": 55.0 +}, { "frames": [ ExtResource( 70 ), ExtResource( 49 ), ExtResource( 74 ), ExtResource( 75 ), ExtResource( 28 ), ExtResource( 52 ), ExtResource( 53 ), ExtResource( 55 ), ExtResource( 150 ), ExtResource( 156 ), ExtResource( 138 ), ExtResource( 161 ), ExtResource( 145 ), ExtResource( 148 ), ExtResource( 147 ), ExtResource( 133 ), ExtResource( 164 ), ExtResource( 134 ), ExtResource( 152 ), ExtResource( 160 ) ], "loop": true, "name": "boost-speed-left-03", @@ -284,13 +299,13 @@ animations = [ { }, { "frames": [ ExtResource( 167 ), ExtResource( 157 ), ExtResource( 158 ), ExtResource( 126 ), ExtResource( 90 ), ExtResource( 89 ), ExtResource( 97 ), ExtResource( 88 ), ExtResource( 98 ), ExtResource( 91 ), ExtResource( 125 ), ExtResource( 105 ), ExtResource( 82 ), ExtResource( 84 ), ExtResource( 92 ), ExtResource( 103 ), ExtResource( 122 ), ExtResource( 130 ), ExtResource( 104 ), ExtResource( 116 ) ], "loop": true, -"name": "idle-speed-right-02", +"name": "idle-speed-left-03", "speed": 25.0 }, { -"frames": [ ExtResource( 73 ), ExtResource( 57 ), ExtResource( 65 ), ExtResource( 64 ), ExtResource( 54 ), ExtResource( 71 ), ExtResource( 58 ), ExtResource( 66 ), ExtResource( 62 ), ExtResource( 59 ), ExtResource( 56 ), ExtResource( 60 ), ExtResource( 63 ), ExtResource( 50 ), ExtResource( 61 ), ExtResource( 67 ), ExtResource( 72 ), ExtResource( 51 ), ExtResource( 68 ), ExtResource( 69 ) ], +"frames": [ ExtResource( 167 ), ExtResource( 157 ), ExtResource( 158 ), ExtResource( 126 ), ExtResource( 90 ), ExtResource( 89 ), ExtResource( 97 ), ExtResource( 88 ), ExtResource( 98 ), ExtResource( 91 ), ExtResource( 125 ), ExtResource( 105 ), ExtResource( 82 ), ExtResource( 84 ), ExtResource( 92 ), ExtResource( 103 ), ExtResource( 122 ), ExtResource( 130 ), ExtResource( 104 ), ExtResource( 116 ) ], "loop": true, -"name": "idle-speed-left-02", -"speed": 25.0 +"name": "move-speed-right-02", +"speed": 35.0 } ] [sub_resource type="CircleShape2D" id=2] diff --git a/source/entities/ts_bot/ts_bot.tscn b/source/entities/ts_bot/ts_bot.tscn index 5b96c18..8aff849 100644 --- a/source/entities/ts_bot/ts_bot.tscn +++ b/source/entities/ts_bot/ts_bot.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=10 format=2] +[gd_scene load_steps=11 format=2] [ext_resource path="res://source/assets/sprites/character/ts_bot/TS_bot_sprite_agressive.svg" type="Texture" id=1] [ext_resource path="res://source/assets/scripts/ts_bot_handlers/ts_bot_handlergd.gd" type="Script" id=2] @@ -6,6 +6,7 @@ [ext_resource path="res://source/assets/sprites/character/ts_bot/TS_bot_sprite_friendly.svg" type="Texture" id=4] [ext_resource path="res://source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_on.svg" type="Texture" id=5] [ext_resource path="res://source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_off.svg" type="Texture" id=6] +[ext_resource path="res://source/scenes/OVERLAY/elements/HUD.tscn" type="PackedScene" id=7] [sub_resource type="CircleShape2D" id=1] radius = 30.0 @@ -21,15 +22,15 @@ animations = [ { "name": "agressive_idle", "speed": 5.0 }, { -"frames": [ ExtResource( 3 ) ], -"loop": true, -"name": "passive_idle", -"speed": 5.0 -}, { "frames": [ ExtResource( 4 ) ], "loop": true, "name": "friendly_idle", "speed": 5.0 +}, { +"frames": [ ExtResource( 3 ) ], +"loop": true, +"name": "passive_idle", +"speed": 5.0 } ] [node name="ts_bot" type="KinematicBody2D" groups=["bot"]] @@ -58,3 +59,7 @@ texture = ExtResource( 6 ) position = Vector2( 0, -8 ) scale = Vector2( 0.6, 0.6 ) texture = ExtResource( 5 ) + +[node name="HUD" parent="." instance=ExtResource( 7 )] +position = Vector2( -1, -74 ) +scale = Vector2( 0.5, 0.5 ) diff --git a/source/scenes/OVERLAY/elements/HUD.tscn b/source/scenes/OVERLAY/elements/HUD.tscn index ed3176b..d242159 100644 --- a/source/scenes/OVERLAY/elements/HUD.tscn +++ b/source/scenes/OVERLAY/elements/HUD.tscn @@ -4,9 +4,7 @@ [ext_resource path="res://source/assets/sprites/GUI/in_game/health_bar/trinity_site_health_bar_positive.svg" type="Texture" id=2] [ext_resource path="res://source/assets/scripts/ui_element_handlers/HUD.gd" type="Script" id=3] -[node name="HUD" type="Node2D" groups=[ -"Net", -]] +[node name="HUD" type="Node2D" groups=["Net"]] script = ExtResource( 3 ) [node name="health_bar" type="TextureProgress" parent="."]