Add new resources and animations for DistractorDrone, update drone script. Include level 5 scene with rules and components.

This commit is contained in:
Dan 2024-05-12 10:42:00 +01:00
parent 4b5ac48e10
commit c991cbba5d
11 changed files with 331 additions and 12 deletions

2
.gitignore vendored
View file

@ -3,3 +3,5 @@
.vscode/ .vscode/
build/ build/
resources/concept art/

View file

@ -1,6 +1,66 @@
[gd_scene load_steps=3 format=3 uid="uid://ss2dg1i7j4ck"] [gd_scene load_steps=6 format=3 uid="uid://ss2dg1i7j4ck"]
[ext_resource type="Script" path="res://entities/scripts/distractor_drone.gd" id="1_vnjar"] [ext_resource type="Script" path="res://entities/scripts/distractor_drone.gd" id="1_vnjar"]
[ext_resource type="Texture2D" uid="uid://cfufcbeeeg5oy" path="res://resources/textures/distractor_drone.png" id="2_dr1h4"]
[sub_resource type="Animation" id="Animation_wno6f"]
resource_name = "Idle"
length = 5.0
loop_mode = 1
step = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("DistractorDrone:position:x")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 2.5, 5),
"transitions": PackedFloat32Array(-2, -2, -2),
"update": 0,
"values": [30.0, -30.0, 30.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("DistractorDrone:position:y")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 1, 2.5, 4, 5),
"transitions": PackedFloat32Array(-2, -2, 1, -2, -2),
"update": 0,
"values": [0.0, 30.0, 0.0, 40.0, 0.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("DistractorDrone:rotation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 1, 2.5, 4, 5),
"transitions": PackedFloat32Array(-2, -2, -2, -2, -2),
"update": 0,
"values": [0.0, 0.0698132, -0.10472, 0.10472, 0.0]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Shadow:position:x")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 2.5, 5),
"transitions": PackedFloat32Array(-2, -2, -2),
"update": 0,
"values": [30.0, -30.0, 30.0]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_lcuxq"]
_data = {
"Idle": SubResource("Animation_wno6f")
}
[sub_resource type="CircleShape2D" id="CircleShape2D_bxdlt"] [sub_resource type="CircleShape2D" id="CircleShape2D_bxdlt"]
radius = 31.0161 radius = 31.0161
@ -8,15 +68,28 @@ radius = 31.0161
[node name="DistractorDrone" type="CharacterBody2D" groups=["distractor"]] [node name="DistractorDrone" type="CharacterBody2D" groups=["distractor"]]
script = ExtResource("1_vnjar") script = ExtResource("1_vnjar")
[node name="Shape2" type="CollisionShape2D" parent="."] [node name="AnimationPlayer" type="AnimationPlayer" parent="."]
shape = SubResource("CircleShape2D_bxdlt") libraries = {
"": SubResource("AnimationLibrary_lcuxq")
}
autoplay = "Idle"
[node name="Polygon2D" type="Polygon2D" parent="."] [node name="DroneShape" type="CollisionShape2D" parent="."]
position = Vector2(1, -1) shape = SubResource("CircleShape2D_bxdlt")
color = Color(0.926224, 0.528901, 0.424107, 1)
polygon = PackedVector2Array(-28, -25, 25, -28, 26, 33, -32, 19)
[node name="HitBox" type="Area2D" parent="."] [node name="HitBox" type="Area2D" parent="."]
[node name="Shape" type="CollisionShape2D" parent="HitBox"] [node name="Shape" type="CollisionShape2D" parent="HitBox"]
shape = SubResource("CircleShape2D_bxdlt") shape = SubResource("CircleShape2D_bxdlt")
[node name="DistractorDrone" type="Sprite2D" parent="."]
position = Vector2(28.6279, 5.71726)
rotation = 0.0149678
scale = Vector2(0.2, 0.2)
texture = ExtResource("2_dr1h4")
[node name="Shadow" type="Sprite2D" parent="."]
modulate = Color(0, 0, 0, 0.0784314)
position = Vector2(28.6279, 100)
scale = Vector2(0.151346, 0.0434807)
texture = ExtResource("2_dr1h4")

View file

@ -1,11 +1,12 @@
class_name DistractorDrone extends Drone class_name DistractorDrone extends Drone
#var dog : Dog = null
# Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
pass # Replace with function body. # Get the dog in the scene (there will only ever be one...)
#dog = get_tree().get_first_node_in_group("dog") as Dog
#Log.pr(dog)
# Called every frame. 'delta' is the elapsed time since the previous frame. pass
func _process(_delta): func _process(_delta):
pass pass

185
levels/level_5.tscn Normal file
View file

@ -0,0 +1,185 @@
[gd_scene load_steps=17 format=3 uid="uid://vvk5h14u0i1k"]
[ext_resource type="Script" path="res://levels/scripts/level_3.gd" id="1_7viev"]
[ext_resource type="PackedScene" uid="uid://dn6aa6f2f4g4i" path="res://components/RulesComponent.tscn" id="2_d6prf"]
[ext_resource type="Resource" uid="uid://drdk5e8lskbwo" path="res://levels/rules/level_5_rules.tres" id="3_xjoeh"]
[ext_resource type="PackedScene" uid="uid://d1uawawum16b0" path="res://scenes/elements/background.tscn" id="4_o2mgo"]
[ext_resource type="PackedScene" uid="uid://dwuc6byusf1r3" path="res://scenes/decor/bush.tscn" id="5_ldaym"]
[ext_resource type="PackedScene" uid="uid://dj51rgpihnhi" path="res://scenes/decor/naked_tree.tscn" id="6_4xst1"]
[ext_resource type="PackedScene" uid="uid://d3mas42mbgec1" path="res://scenes/decor/tree.tscn" id="7_bmsu5"]
[ext_resource type="PackedScene" uid="uid://eiyribk1ijcu" path="res://scenes/decor/mushroom.tscn" id="8_dtrxx"]
[ext_resource type="PackedScene" uid="uid://bme541qdw7nai" path="res://entities/Flowers.tscn" id="9_ne0y1"]
[ext_resource type="PackedScene" uid="uid://dyu4mucawjlu6" path="res://entities/Beehive.tscn" id="10_ogjm5"]
[ext_resource type="PackedScene" uid="uid://ddf2mkkw1trkj" path="res://scenes/elements/bee_spawner.tscn" id="11_kkv2y"]
[ext_resource type="PackedScene" uid="uid://b7eeptlk47ymd" path="res://ui/UiComponent.tscn" id="12_ml7gj"]
[ext_resource type="PackedScene" uid="uid://ct3c16xm33r2a" path="res://scenes/elements/drone_manager.tscn" id="13_yi2jf"]
[ext_resource type="PackedScene" uid="uid://cwutwy11pityw" path="res://ui/LevelCompleteComponent.tscn" id="14_i1bii"]
[ext_resource type="PackedScene" uid="uid://b5whit1dshr3" path="res://ui/GameOverComponent.tscn" id="15_2iprn"]
[ext_resource type="PackedScene" uid="uid://cfhoi2rqxa3up" path="res://entities/Dog.tscn" id="16_jy3y1"]
[node name="Level5" type="Node2D"]
script = ExtResource("1_7viev")
[node name="RulesComponent" parent="." instance=ExtResource("2_d6prf")]
unique_name_in_owner = true
game_rules = ExtResource("3_xjoeh")
[node name="Grass" parent="." instance=ExtResource("4_o2mgo")]
[node name="LevelDecor" type="Node" parent="."]
[node name="BushGroup" type="Node2D" parent="LevelDecor"]
position = Vector2(-243, -56)
[node name="Bush" parent="LevelDecor/BushGroup" instance=ExtResource("5_ldaym")]
position = Vector2(1110, 28)
scale = Vector2(0.25, 0.25)
[node name="Bush3" parent="LevelDecor/BushGroup" instance=ExtResource("5_ldaym")]
position = Vector2(1272, 123)
scale = Vector2(0.25, 0.25)
[node name="Bush2" parent="LevelDecor/BushGroup" instance=ExtResource("5_ldaym")]
position = Vector2(1214, 47)
rotation = 0.60912
scale = Vector2(0.4, 0.4)
[node name="BushGroup4" type="Node2D" parent="LevelDecor"]
position = Vector2(8, -4)
[node name="Bush" parent="LevelDecor/BushGroup4" instance=ExtResource("5_ldaym")]
position = Vector2(1110, 28)
scale = Vector2(0.25, 0.25)
[node name="Bush3" parent="LevelDecor/BushGroup4" instance=ExtResource("5_ldaym")]
position = Vector2(1272, 123)
scale = Vector2(0.25, 0.25)
[node name="Bush2" parent="LevelDecor/BushGroup4" instance=ExtResource("5_ldaym")]
position = Vector2(1214, 47)
rotation = 0.60912
scale = Vector2(0.4, 0.4)
[node name="BushGroup3" type="Node2D" parent="LevelDecor"]
position = Vector2(-928, 592)
scale = Vector2(0.75, 0.75)
[node name="Bush" parent="LevelDecor/BushGroup3" instance=ExtResource("5_ldaym")]
position = Vector2(1110, 28)
scale = Vector2(0.25, 0.25)
[node name="Bush3" parent="LevelDecor/BushGroup3" instance=ExtResource("5_ldaym")]
position = Vector2(1272, 123)
scale = Vector2(0.25, 0.25)
[node name="Bush2" parent="LevelDecor/BushGroup3" instance=ExtResource("5_ldaym")]
position = Vector2(1214, 47)
rotation = 0.60912
scale = Vector2(0.4, 0.4)
[node name="BushGroup2" type="Node2D" parent="LevelDecor"]
position = Vector2(1291, 1886)
rotation = 4.5012
[node name="Bush" parent="LevelDecor/BushGroup2" instance=ExtResource("5_ldaym")]
position = Vector2(1110, 28)
scale = Vector2(0.25, 0.25)
[node name="Bush3" parent="LevelDecor/BushGroup2" instance=ExtResource("5_ldaym")]
position = Vector2(1272, 123)
scale = Vector2(0.25, 0.25)
[node name="Bush2" parent="LevelDecor/BushGroup2" instance=ExtResource("5_ldaym")]
position = Vector2(1214, 47)
rotation = 0.60912
scale = Vector2(0.4, 0.4)
[node name="NakedTree" parent="LevelDecor" instance=ExtResource("6_4xst1")]
position = Vector2(-41, 437)
scale = Vector2(0.6, 0.6)
[node name="Tree" parent="LevelDecor" instance=ExtResource("7_bmsu5")]
position = Vector2(217, 52)
scale = Vector2(0.6, 0.6)
[node name="Tree2" parent="LevelDecor" instance=ExtResource("7_bmsu5")]
position = Vector2(1175, -35)
rotation = -0.42237
scale = Vector2(0.6, 0.6)
[node name="Mushrooms" type="Node2D" parent="LevelDecor"]
position = Vector2(-254, 571)
rotation = -0.60912
[node name="Mushroom" parent="LevelDecor/Mushrooms" instance=ExtResource("8_dtrxx")]
position = Vector2(232, 250)
scale = Vector2(0.5, 0.5)
[node name="Mushroom4" parent="LevelDecor/Mushrooms" instance=ExtResource("8_dtrxx")]
position = Vector2(1209.52, 209.747)
scale = Vector2(0.5, 0.5)
[node name="Mushroom2" parent="LevelDecor/Mushrooms" instance=ExtResource("8_dtrxx")]
position = Vector2(252, 289)
rotation = 1.13446
scale = Vector2(0.3, 0.3)
[node name="Mushroom3" parent="LevelDecor/Mushrooms" instance=ExtResource("8_dtrxx")]
position = Vector2(260, 225)
rotation = 1.13446
scale = Vector2(0.3, 0.3)
[node name="Mushrooms2" type="Node2D" parent="LevelDecor"]
position = Vector2(1551, 802)
rotation = 2.81347
[node name="Mushroom" parent="LevelDecor/Mushrooms2" instance=ExtResource("8_dtrxx")]
position = Vector2(232, 250)
scale = Vector2(0.5, 0.5)
[node name="Mushroom2" parent="LevelDecor/Mushrooms2" instance=ExtResource("8_dtrxx")]
position = Vector2(252, 289)
rotation = 1.13446
scale = Vector2(0.3, 0.3)
[node name="Mushroom3" parent="LevelDecor/Mushrooms2" instance=ExtResource("8_dtrxx")]
position = Vector2(260, 225)
rotation = 1.13446
scale = Vector2(0.3, 0.3)
[node name="Flowers" parent="." instance=ExtResource("9_ne0y1")]
unique_name_in_owner = true
position = Vector2(1102, 298)
[node name="Beehive" parent="." groups=["beehive"] instance=ExtResource("10_ogjm5")]
unique_name_in_owner = true
position = Vector2(272, 427)
[node name="BeeSpawner" parent="." instance=ExtResource("11_kkv2y")]
unique_name_in_owner = true
[node name="UiComponent" parent="." instance=ExtResource("12_ml7gj")]
unique_name_in_owner = true
z_index = 1000
offset_right = 1280.0
offset_bottom = 720.0
mouse_filter = 1
[node name="DroneManager" parent="." instance=ExtResource("13_yi2jf")]
unique_name_in_owner = true
[node name="LevelCompleteComponent" parent="." instance=ExtResource("14_i1bii")]
visible = false
z_index = 999
offset_right = 1280.0
offset_bottom = 720.0
[node name="GameOverComponent" parent="." instance=ExtResource("15_2iprn")]
visible = false
z_index = 900
offset_right = 1280.0
offset_bottom = 720.0
[node name="Dog" parent="." instance=ExtResource("16_jy3y1")]
position = Vector2(731, 309)
rotation = 0.844739

View file

@ -0,0 +1,16 @@
[gd_resource type="Resource" script_class="GameRulesResource" load_steps=2 format=3 uid="uid://drdk5e8lskbwo"]
[ext_resource type="Script" path="res://components/scripts/game_rules.gd" id="1_6j81d"]
[resource]
script = ExtResource("1_6j81d")
level_number = 5
level_name = "Level Five"
level_description = "Serious Business"
bees_available = 100
nectar_required = 200
level_par = 5
collector_enabled = true
dancer_enabled = true
director_enabled = true
distractor_enabled = true

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cfufcbeeeg5oy"
path="res://.godot/imported/distractor_drone.png-d093338e00acad836fddc960a72d2544.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/textures/distractor_drone.png"
dest_files=["res://.godot/imported/distractor_drone.png-d093338e00acad836fddc960a72d2544.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -7,6 +7,7 @@ class_name Dog
var acquired_target : Bee = null var acquired_target : Bee = null
var target_timer : float = 0.0 var target_timer : float = 0.0
@export var distracted : bool = false @export var distracted : bool = false
var distracted_by : Node2D = null
func _ready(): func _ready():
death_box.connect("body_entered", Callable(self, "_on_body_entered")) death_box.connect("body_entered", Callable(self, "_on_body_entered"))
@ -26,6 +27,11 @@ func _process(delta):
target_timer = 0.0 target_timer = 0.0
return return
if distracted_by:
# Look around
rotation = lerp_angle(rotation, rotation + get_angle_to(distracted_by.global_position), 0.5)
func show_outline(): func show_outline():
outline.visible = true outline.visible = true
@ -44,6 +50,7 @@ func _on_body_entered(area):
Log.pr("Distracted") Log.pr("Distracted")
acquired_target = null acquired_target = null
distracted = true distracted = true
distracted_by = area
func _on_body_exited(area): func _on_body_exited(area):
if area == acquired_target: if area == acquired_target:
@ -54,3 +61,4 @@ func _on_body_exited(area):
if area.is_in_group("distractor"): if area.is_in_group("distractor"):
Log.pr("No longer distracted") Log.pr("No longer distracted")
distracted = false distracted = false
distracted_by = null