Merge branch 'main' of github.com:MarcEricMartel/Game-Jam-A23
This commit is contained in:
commit
574d6d5b41
@ -15,8 +15,12 @@ position = Vector2(497, 324)
|
|||||||
|
|
||||||
[node name="BatSpawnable" parent="." instance=ExtResource("3_a1ucf")]
|
[node name="BatSpawnable" parent="." instance=ExtResource("3_a1ucf")]
|
||||||
position = Vector2(248, 225)
|
position = Vector2(248, 225)
|
||||||
|
collision_layer = 6
|
||||||
|
collision_mask = 6
|
||||||
motion_mode = 0
|
motion_mode = 0
|
||||||
|
|
||||||
[node name="BatSpawnable2" parent="." instance=ExtResource("3_a1ucf")]
|
[node name="BatSpawnable2" parent="." instance=ExtResource("3_a1ucf")]
|
||||||
position = Vector2(644, 251)
|
position = Vector2(644, 251)
|
||||||
|
collision_layer = 6
|
||||||
|
collision_mask = 6
|
||||||
motion_mode = 0
|
motion_mode = 0
|
||||||
|
10
Scenes/Spawnables/UI/SpawnableUI.gd
Normal file
10
Scenes/Spawnables/UI/SpawnableUI.gd
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
extends Control
|
||||||
|
|
||||||
|
@onready var healthBar : ProgressBar = $HealthBar
|
||||||
|
@onready var hpLabel : Label = $HealthBar/HP
|
||||||
|
|
||||||
|
func setHP(currentHp, maxHp):
|
||||||
|
healthBar.min_value = 0
|
||||||
|
healthBar.max_value = maxHp
|
||||||
|
healthBar.value = currentHp
|
||||||
|
hpLabel.text = str(currentHp) + "/" + str(maxHp)
|
42
Scenes/Spawnables/UI/SpawnableUI.tscn
Normal file
42
Scenes/Spawnables/UI/SpawnableUI.tscn
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
[gd_scene load_steps=2 format=3 uid="uid://fojbwshce7ah"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://Scenes/Spawnables/UI/SpawnableUI.gd" id="1_en1j6"]
|
||||||
|
|
||||||
|
[node name="SpawnableUI" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
script = ExtResource("1_en1j6")
|
||||||
|
|
||||||
|
[node name="HealthBar" type="ProgressBar" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
min_value = 100.0
|
||||||
|
step = 1.0
|
||||||
|
value = 100.0
|
||||||
|
show_percentage = false
|
||||||
|
|
||||||
|
[node name="HP" type="Label" parent="HealthBar"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -15.5
|
||||||
|
offset_top = -7.5
|
||||||
|
offset_right = 15.5
|
||||||
|
offset_bottom = 7.5
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme_override_font_sizes/font_size = 8
|
||||||
|
text = "100/100"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
@ -18,6 +18,8 @@ const ATTACK_COOLDOWN : float = 100
|
|||||||
@onready var animatedSprite : AnimatedSprite2D = $AnimatedSprite2D
|
@onready var animatedSprite : AnimatedSprite2D = $AnimatedSprite2D
|
||||||
@onready var attackArea : Area2D = $AttackArea
|
@onready var attackArea : Area2D = $AttackArea
|
||||||
@onready var damageCollision : CollisionShape2D = $DamageArea/DamageCollision
|
@onready var damageCollision : CollisionShape2D = $DamageArea/DamageCollision
|
||||||
|
@onready var bodyCollision : CollisionShape2D = $BodyCollision
|
||||||
|
@onready var spawnableUI : Control = $UIContainer/SpawnableUI
|
||||||
|
|
||||||
var isAlive : bool = true
|
var isAlive : bool = true
|
||||||
var isFacingLeft : bool = false
|
var isFacingLeft : bool = false
|
||||||
@ -30,6 +32,8 @@ var cooldown : float = 0
|
|||||||
func _ready():
|
func _ready():
|
||||||
enemy = get_node("../Enemy")
|
enemy = get_node("../Enemy")
|
||||||
currentHp = maxHp
|
currentHp = maxHp
|
||||||
|
spawnableUI.setHP(currentHp, maxHp)
|
||||||
|
spawnableUI.visible = true
|
||||||
animatedSprite.play("default")
|
animatedSprite.play("default")
|
||||||
|
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
@ -43,12 +47,14 @@ func _process(delta):
|
|||||||
|
|
||||||
if !isFacingLeft && direction.x < 0:
|
if !isFacingLeft && direction.x < 0:
|
||||||
isFacingLeft = true
|
isFacingLeft = true
|
||||||
scale.x = -1
|
attackArea.scale = Vector2(-1,1)
|
||||||
scale.y = 1
|
damageCollision.scale = Vector2(-1,1)
|
||||||
|
animatedSprite.flip_h = isFacingLeft
|
||||||
elif isFacingLeft && direction.x > 0:
|
elif isFacingLeft && direction.x > 0:
|
||||||
isFacingLeft = false
|
isFacingLeft = false
|
||||||
scale.x = -1
|
attackArea.scale = Vector2(1,1)
|
||||||
scale.y = -1
|
damageCollision.scale = Vector2(1,1)
|
||||||
|
animatedSprite.flip_h = isFacingLeft
|
||||||
|
|
||||||
velocity = direction * speed * delta
|
velocity = direction * speed * delta
|
||||||
move_and_slide()
|
move_and_slide()
|
||||||
@ -83,13 +89,16 @@ func receive_damage(dmg):
|
|||||||
|
|
||||||
if currentHp - dmg <= 0:
|
if currentHp - dmg <= 0:
|
||||||
currentHp = 0
|
currentHp = 0
|
||||||
die()
|
call_deferred("die")
|
||||||
else :
|
else :
|
||||||
currentHp -= dmg
|
currentHp -= dmg
|
||||||
|
spawnableUI.setHP(currentHp, maxHp)
|
||||||
|
|
||||||
func die():
|
func die():
|
||||||
isAlive = false
|
bodyCollision.disabled = true
|
||||||
damageCollision.disabled = true
|
damageCollision.disabled = true
|
||||||
|
spawnableUI.visible = false
|
||||||
|
isAlive = false
|
||||||
animatedSprite.stop()
|
animatedSprite.stop()
|
||||||
animatedSprite.play("death")
|
animatedSprite.play("death")
|
||||||
animatedSprite.disconnect("animation_finished", endAttack)
|
animatedSprite.disconnect("animation_finished", endAttack)
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
[gd_scene load_steps=37 format=3 uid="uid://kkfxguj0lr5a"]
|
[gd_scene load_steps=38 format=3 uid="uid://kkfxguj0lr5a"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scenes/Spawnables/template_spawnable.gd" id="1_rkej7"]
|
[ext_resource type="Script" path="res://Scenes/Spawnables/template_spawnable.gd" id="1_rkej7"]
|
||||||
[ext_resource type="Texture2D" uid="uid://f60ndepwmpj2" path="res://Assets/Bat/noBKG_BatAttack_strip.png" id="2_7ayi7"]
|
[ext_resource type="Texture2D" uid="uid://f60ndepwmpj2" path="res://Assets/Bat/noBKG_BatAttack_strip.png" id="2_7ayi7"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bd74k1s6qdx2r" path="res://Assets/Bat/noBKG_BatDeath_strip.png" id="3_jipj7"]
|
[ext_resource type="Texture2D" uid="uid://bd74k1s6qdx2r" path="res://Assets/Bat/noBKG_BatDeath_strip.png" id="3_jipj7"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ddvr5ltbo8ome" path="res://Assets/Bat/noBKG_BatFlight_strip.png" id="4_u36ok"]
|
[ext_resource type="Texture2D" uid="uid://ddvr5ltbo8ome" path="res://Assets/Bat/noBKG_BatFlight_strip.png" id="4_u36ok"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://fojbwshce7ah" path="res://Scenes/Spawnables/UI/SpawnableUI.tscn" id="5_c2blu"]
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id="AtlasTexture_y0lcs"]
|
[sub_resource type="AtlasTexture" id="AtlasTexture_y0lcs"]
|
||||||
atlas = ExtResource("2_7ayi7")
|
atlas = ExtResource("2_7ayi7")
|
||||||
@ -231,11 +232,26 @@ height = 24.0
|
|||||||
radius = 8.0
|
radius = 8.0
|
||||||
|
|
||||||
[node name="TemplateSpawnable" type="CharacterBody2D"]
|
[node name="TemplateSpawnable" type="CharacterBody2D"]
|
||||||
collision_layer = 6
|
collision_layer = 4
|
||||||
collision_mask = 6
|
collision_mask = 4
|
||||||
motion_mode = 1
|
motion_mode = 1
|
||||||
script = ExtResource("1_rkej7")
|
script = ExtResource("1_rkej7")
|
||||||
|
|
||||||
|
[node name="UIContainer" type="Control" parent="."]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 5
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
offset_left = -25.0
|
||||||
|
offset_top = 8.0
|
||||||
|
offset_right = 25.0
|
||||||
|
offset_bottom = 16.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
|
||||||
|
[node name="SpawnableUI" parent="UIContainer" instance=ExtResource("5_c2blu")]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 1
|
||||||
|
|
||||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||||
sprite_frames = SubResource("SpriteFrames_k6v1d")
|
sprite_frames = SubResource("SpriteFrames_k6v1d")
|
||||||
animation = &"attack"
|
animation = &"attack"
|
||||||
@ -265,4 +281,6 @@ debug_color = Color(0.639216, 0, 0.156863, 0.419608)
|
|||||||
|
|
||||||
[node name="AI" type="Node" parent="."]
|
[node name="AI" type="Node" parent="."]
|
||||||
|
|
||||||
|
[node name="Node2D" type="Node2D" parent="."]
|
||||||
|
|
||||||
[connection signal="body_entered" from="DamageArea" to="." method="_on_damage_area_body_entered"]
|
[connection signal="body_entered" from="DamageArea" to="." method="_on_damage_area_body_entered"]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user