Add new resources and animations for DistractorDrone, update drone script. Include level 5 scene with rules and components.
This commit is contained in:
parent
4b5ac48e10
commit
c991cbba5d
11 changed files with 331 additions and 12 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -3,3 +3,5 @@
|
|||
.vscode/
|
||||
|
||||
build/
|
||||
|
||||
resources/concept art/
|
||||
|
|
|
|||
|
|
@ -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="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"]
|
||||
radius = 31.0161
|
||||
|
|
@ -8,15 +68,28 @@ radius = 31.0161
|
|||
[node name="DistractorDrone" type="CharacterBody2D" groups=["distractor"]]
|
||||
script = ExtResource("1_vnjar")
|
||||
|
||||
[node name="Shape2" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("CircleShape2D_bxdlt")
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_lcuxq")
|
||||
}
|
||||
autoplay = "Idle"
|
||||
|
||||
[node name="Polygon2D" type="Polygon2D" parent="."]
|
||||
position = Vector2(1, -1)
|
||||
color = Color(0.926224, 0.528901, 0.424107, 1)
|
||||
polygon = PackedVector2Array(-28, -25, 25, -28, 26, 33, -32, 19)
|
||||
[node name="DroneShape" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("CircleShape2D_bxdlt")
|
||||
|
||||
[node name="HitBox" type="Area2D" parent="."]
|
||||
|
||||
[node name="Shape" type="CollisionShape2D" parent="HitBox"]
|
||||
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")
|
||||
|
|
|
|||
|
|
@ -1,11 +1,12 @@
|
|||
class_name DistractorDrone extends Drone
|
||||
|
||||
#var dog : Dog = null
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
# 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)
|
||||
pass
|
||||
|
||||
func _process(_delta):
|
||||
pass
|
||||
|
|
|
|||
185
levels/level_5.tscn
Normal file
185
levels/level_5.tscn
Normal 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
|
||||
16
levels/rules/level_5_rules.tres
Normal file
16
levels/rules/level_5_rules.tres
Normal 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.
Binary file not shown.
Binary file not shown.
BIN
resources/textures/distractor_drone.png
Normal file
BIN
resources/textures/distractor_drone.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 47 KiB |
34
resources/textures/distractor_drone.png.import
Normal file
34
resources/textures/distractor_drone.png.import
Normal 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
|
||||
|
|
@ -7,6 +7,7 @@ class_name Dog
|
|||
var acquired_target : Bee = null
|
||||
var target_timer : float = 0.0
|
||||
@export var distracted : bool = false
|
||||
var distracted_by : Node2D = null
|
||||
|
||||
func _ready():
|
||||
death_box.connect("body_entered", Callable(self, "_on_body_entered"))
|
||||
|
|
@ -26,6 +27,11 @@ func _process(delta):
|
|||
target_timer = 0.0
|
||||
return
|
||||
|
||||
|
||||
if distracted_by:
|
||||
# Look around
|
||||
rotation = lerp_angle(rotation, rotation + get_angle_to(distracted_by.global_position), 0.5)
|
||||
|
||||
func show_outline():
|
||||
outline.visible = true
|
||||
|
||||
|
|
@ -44,6 +50,7 @@ func _on_body_entered(area):
|
|||
Log.pr("Distracted")
|
||||
acquired_target = null
|
||||
distracted = true
|
||||
distracted_by = area
|
||||
|
||||
func _on_body_exited(area):
|
||||
if area == acquired_target:
|
||||
|
|
@ -54,3 +61,4 @@ func _on_body_exited(area):
|
|||
if area.is_in_group("distractor"):
|
||||
Log.pr("No longer distracted")
|
||||
distracted = false
|
||||
distracted_by = null
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue