diff --git a/background/background.gd b/background/background.gd deleted file mode 100644 index d4ec954..0000000 --- a/background/background.gd +++ /dev/null @@ -1,5 +0,0 @@ -extends Node2D - -#func _process(delta: float) -> void: - #for p : Parallax2D in get_children(): - #p.scroll_offset += Vector2.RIGHT * 100 * delta * p.scroll_scale diff --git a/background/background.gd.uid b/background/background.gd.uid deleted file mode 100644 index fb6f298..0000000 --- a/background/background.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://c6q1tgl7kag67 diff --git a/buildings/building.gd b/buildings/building.gd index a294a51..a1cc5d1 100644 --- a/buildings/building.gd +++ b/buildings/building.gd @@ -10,27 +10,29 @@ var destroyed = false # make sure location is set before adding a building to the scene tree # also make sure that the buildings are instantiated as children of the grid func _ready() -> void: - position = Grid.get_world_position(location) + global_position = Grid.get_world_position(location) + if blocks_area: Grid.buildings.append(self) await get_tree().create_timer(0.2).timeout - if get_node_or_null("EnemyList") != null: - var enemies = $EnemyList.get_children() - - $EnemyList.reparent(get_tree().get_root().get_node("main"), false) - - for enemy in enemies: - var oldpos = enemy.global_position; - enemy.global_position = Grid.get_world_position(location, oldpos) - if "location" in enemy: enemy.location = location + Vector2i(floor(oldpos.x/300), ceil(-oldpos.y/300)) - if "offset" in enemy: - enemy.offset = Global.vec_mod(oldpos, 300) - if enemy is Platform or enemy is Trap or enemy is Item: - objects.append(enemy) - if "building" in enemy: enemy.building = self - if(enemy.has_method("init_at_horizontal_distortion")): - enemy.init_at_horizontal_distortion(enemy.position.length() / Grid.ground_radius) + if get_node_or_null("ObjectList") != null: + var objects_to_be_placed = $ObjectList.get_children() + $ObjectList.reparent(get_tree().get_root().get_node("main"), false) + for object in objects_to_be_placed: + var offset = object.global_position; + object.global_position = Grid.get_world_position(location, offset) + # some objects, such as petals, require information about their position in the grid. + if "location" in object: object.location = Grid.get_location_from_world_pos(object.global_position) + if "offset" in object: + object.offset = Global.vec_mod(offset, 300) + # The building remembers these objects: If it is destroyed, so are they. + if object is Platform or object is Trap or object is Item: + objects.append(object) + if "building" in object: object.building = self + # This scales platforms hoizontally to make sure they still form a floor without gaps. + if(object.has_method("init_at_horizontal_distortion")): + object.init_at_horizontal_distortion(object.position.length() / Grid.ground_radius) func overlaps(other : Building): # heights don't overlap @@ -47,6 +49,7 @@ func overlaps(other : Building): func destroy(): if not destroyed: + # On destruction, the building is removed from the list and destroyed together with all its objects. Grid.buildings.remove_at(Grid.buildings.find(self)) for object in objects: if object != null and not ("collected" in object and object.collected): diff --git a/buildings/room_bear_trap.tscn b/buildings/room_bear_trap.tscn index 9110106..27cbc7b 100644 --- a/buildings/room_bear_trap.tscn +++ b/buildings/room_bear_trap.tscn @@ -31,36 +31,36 @@ texture = ExtResource("5_012sa") script = ExtResource("4_505qw") grid_offset = Vector2i(0, -1) -[node name="EnemyList" type="Node2D" parent="."] +[node name="ObjectList" type="Node2D" parent="."] -[node name="MorningStar" parent="EnemyList" instance=ExtResource("6_qwyfo")] +[node name="MorningStar" parent="ObjectList" instance=ExtResource("6_qwyfo")] position = Vector2(238, -149) -[node name="Platform" parent="EnemyList" instance=ExtResource("8_evf2t")] +[node name="Platform" parent="ObjectList" instance=ExtResource("8_evf2t")] visible = false position = Vector2(75, -295) collision_layer = 41 -[node name="Platform2" parent="EnemyList" instance=ExtResource("8_evf2t")] +[node name="Platform2" parent="ObjectList" instance=ExtResource("8_evf2t")] visible = false position = Vector2(225, -295) collision_layer = 41 -[node name="Platform3" parent="EnemyList" instance=ExtResource("8_evf2t")] +[node name="Platform3" parent="ObjectList" instance=ExtResource("8_evf2t")] visible = false position = Vector2(375, -295) collision_layer = 41 -[node name="Platform4" parent="EnemyList" instance=ExtResource("8_evf2t")] +[node name="Platform4" parent="ObjectList" instance=ExtResource("8_evf2t")] visible = false position = Vector2(525, -295) collision_layer = 41 -[node name="Platform5" parent="EnemyList" instance=ExtResource("8_evf2t")] +[node name="Platform5" parent="ObjectList" instance=ExtResource("8_evf2t")] position = Vector2(431, -150) scale = Vector2(2.688, 3) -[node name="BearTrap" parent="EnemyList" instance=ExtResource("9_c7qov")] +[node name="BearTrap" parent="ObjectList" instance=ExtResource("9_c7qov")] position = Vector2(270, -9) [node name="DebugSprite" type="Sprite2D" parent="."] diff --git a/buildings/room_giant_leech.tscn b/buildings/room_giant_leech.tscn index 0439dfc..e4b5837 100644 --- a/buildings/room_giant_leech.tscn +++ b/buildings/room_giant_leech.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=11 format=3 uid="uid://oflm2yjjwhf"] +[gd_scene load_steps=10 format=3 uid="uid://oflm2yjjwhf"] [ext_resource type="Script" uid="uid://b2ji03ekijjnn" path="res://buildings/building.gd" id="1_ivy1q"] [ext_resource type="Shader" uid="uid://c7gb1nqwvkr37" path="res://buildings/building.gdshader" id="2_yuthg"] @@ -7,7 +7,6 @@ [ext_resource type="Texture2D" uid="uid://3weywjfsapax" path="res://buildings/Building 2x1 downside.png" id="5_hu6aj"] [ext_resource type="PackedScene" uid="uid://5nb7pf8g1ck" path="res://enemies/leech/giant_leech.tscn" id="8_r3b86"] [ext_resource type="PackedScene" uid="uid://4l3elvxpghw8" path="res://utils/platform.tscn" id="8_y6yyb"] -[ext_resource type="PackedScene" uid="uid://bhhhvaqhm3ctc" path="res://petal.tscn" id="9_dasjy"] [ext_resource type="PackedScene" uid="uid://xj0of571aur1" path="res://items/generic/item_spawn.tscn" id="9_jmdjr"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_pfkkr"] @@ -32,38 +31,36 @@ texture = ExtResource("5_hu6aj") script = ExtResource("4_2shqy") grid_offset = Vector2i(0, -1) -[node name="EnemyList" type="Node2D" parent="."] +[node name="ObjectList" type="Node2D" parent="."] -[node name="Platform" parent="EnemyList" instance=ExtResource("8_y6yyb")] +[node name="Platform" parent="ObjectList" instance=ExtResource("8_y6yyb")] visible = false position = Vector2(75, -295) collision_layer = 41 -[node name="Platform2" parent="EnemyList" instance=ExtResource("8_y6yyb")] +[node name="Platform2" parent="ObjectList" instance=ExtResource("8_y6yyb")] visible = false position = Vector2(225, -295) collision_layer = 41 -[node name="Platform3" parent="EnemyList" instance=ExtResource("8_y6yyb")] +[node name="Platform3" parent="ObjectList" instance=ExtResource("8_y6yyb")] visible = false position = Vector2(375, -295) collision_layer = 41 -[node name="Platform4" parent="EnemyList" instance=ExtResource("8_y6yyb")] +[node name="Platform4" parent="ObjectList" instance=ExtResource("8_y6yyb")] visible = false position = Vector2(525, -295) collision_layer = 41 -[node name="Platform5" parent="EnemyList" instance=ExtResource("8_y6yyb")] +[node name="Platform5" parent="ObjectList" instance=ExtResource("8_y6yyb")] position = Vector2(300, -150) scale = Vector2(2.688, 3) -[node name="ItemSpawn" parent="EnemyList" instance=ExtResource("9_jmdjr")] +[node name="ItemSpawn" parent="ObjectList" instance=ExtResource("9_jmdjr")] position = Vector2(300, -200) -spawn_petal = true -petal_scene = ExtResource("9_dasjy") -[node name="Giant_Leech" parent="EnemyList" instance=ExtResource("8_r3b86")] +[node name="Giant_Leech" parent="ObjectList" instance=ExtResource("8_r3b86")] position = Vector2(400, -340) [node name="DebugSprite" type="Sprite2D" parent="."] diff --git a/buildings/room_haunted_house.tscn b/buildings/room_haunted_house.tscn index c93b849..382ae22 100644 --- a/buildings/room_haunted_house.tscn +++ b/buildings/room_haunted_house.tscn @@ -25,25 +25,25 @@ scale = Vector2(25, 25) texture = ExtResource("3_uv7v8") script = ExtResource("4_bl5jt") -[node name="EnemyList" type="Node2D" parent="."] +[node name="ObjectList" type="Node2D" parent="."] -[node name="Ghost" parent="EnemyList" instance=ExtResource("5_23fi7")] +[node name="Ghost" parent="ObjectList" instance=ExtResource("5_23fi7")] position = Vector2(150, -300) -[node name="Platform" parent="EnemyList" instance=ExtResource("6_e6j05")] +[node name="Platform" parent="ObjectList" instance=ExtResource("6_e6j05")] visible = false position = Vector2(75, -595) collision_layer = 41 -[node name="Platform2" parent="EnemyList" instance=ExtResource("6_e6j05")] +[node name="Platform2" parent="ObjectList" instance=ExtResource("6_e6j05")] visible = false position = Vector2(225, -595) collision_layer = 41 -[node name="Platform3" parent="EnemyList" instance=ExtResource("6_e6j05")] +[node name="Platform3" parent="ObjectList" instance=ExtResource("6_e6j05")] position = Vector2(290, -431) -[node name="Platform4" parent="EnemyList" instance=ExtResource("6_e6j05")] +[node name="Platform4" parent="ObjectList" instance=ExtResource("6_e6j05")] position = Vector2(62, -184) [node name="DebugSprite" type="Sprite2D" parent="."] diff --git a/buildings/room_pedastal.tscn b/buildings/room_pedastal.tscn index f4f997d..6f485ba 100644 --- a/buildings/room_pedastal.tscn +++ b/buildings/room_pedastal.tscn @@ -27,38 +27,38 @@ scale = Vector2(25, 25) texture = ExtResource("3_elmbw") script = ExtResource("4_1cnhw") -[node name="EnemyList" type="Node2D" parent="."] +[node name="ObjectList" type="Node2D" parent="."] -[node name="Ghost" parent="EnemyList" instance=ExtResource("5_rh5oo")] +[node name="Ghost" parent="ObjectList" instance=ExtResource("5_rh5oo")] position = Vector2(-38, -481) -[node name="Platform" parent="EnemyList" instance=ExtResource("6_caaff")] +[node name="Platform" parent="ObjectList" instance=ExtResource("6_caaff")] visible = false position = Vector2(75, -595) collision_layer = 41 -[node name="Platform2" parent="EnemyList" instance=ExtResource("6_caaff")] +[node name="Platform2" parent="ObjectList" instance=ExtResource("6_caaff")] visible = false position = Vector2(225, -595) collision_layer = 41 -[node name="Platform3" parent="EnemyList" instance=ExtResource("6_caaff")] +[node name="Platform3" parent="ObjectList" instance=ExtResource("6_caaff")] position = Vector2(5, -251) -[node name="Platform4" parent="EnemyList" instance=ExtResource("6_caaff")] +[node name="Platform4" parent="ObjectList" instance=ExtResource("6_caaff")] position = Vector2(286, -138) -[node name="Platform5" parent="EnemyList" instance=ExtResource("6_caaff")] +[node name="Platform5" parent="ObjectList" instance=ExtResource("6_caaff")] position = Vector2(269, -435) scale = Vector2(2.49, 3.1) -[node name="ItemSpawn" parent="EnemyList" instance=ExtResource("7_elmbw")] +[node name="ItemSpawn" parent="ObjectList" instance=ExtResource("7_elmbw")] position = Vector2(149, -645) -[node name="MorningStar" parent="EnemyList" instance=ExtResource("8_1cnhw")] +[node name="MorningStar" parent="ObjectList" instance=ExtResource("8_1cnhw")] position = Vector2(39, -552) -[node name="Ghost2" parent="EnemyList" instance=ExtResource("5_rh5oo")] +[node name="Ghost2" parent="ObjectList" instance=ExtResource("5_rh5oo")] position = Vector2(301, -39) [node name="DebugSprite" type="Sprite2D" parent="."] diff --git a/buildings/room_pedastal_mean.tscn b/buildings/room_pedastal_mean.tscn index d224964..16c8992 100644 --- a/buildings/room_pedastal_mean.tscn +++ b/buildings/room_pedastal_mean.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=11 format=3 uid="uid://dt827qxyycg8n"] +[gd_scene load_steps=10 format=3 uid="uid://dt827qxyycg8n"] [ext_resource type="Script" uid="uid://b2ji03ekijjnn" path="res://buildings/building.gd" id="1_pww4b"] [ext_resource type="Shader" uid="uid://c7gb1nqwvkr37" path="res://buildings/building.gdshader" id="2_qsju2"] @@ -8,7 +8,6 @@ [ext_resource type="PackedScene" uid="uid://xj0of571aur1" path="res://items/generic/item_spawn.tscn" id="7_sr858"] [ext_resource type="PackedScene" uid="uid://h3caql0b6vft" path="res://traps/bear_trap.tscn" id="8_pww4b"] [ext_resource type="PackedScene" uid="uid://dpv1w56yr1xue" path="res://traps/morning_star.tscn" id="8_ta0fd"] -[ext_resource type="PackedScene" uid="uid://bhhhvaqhm3ctc" path="res://petal.tscn" id="9_qsju2"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_qnfc1"] resource_local_to_scene = true @@ -28,32 +27,30 @@ scale = Vector2(25, 25) texture = ExtResource("3_0yjll") script = ExtResource("4_ri5b7") -[node name="EnemyList" type="Node2D" parent="."] +[node name="ObjectList" type="Node2D" parent="."] -[node name="Platform" parent="EnemyList" instance=ExtResource("6_kom4b")] +[node name="Platform" parent="ObjectList" instance=ExtResource("6_kom4b")] visible = false position = Vector2(75, -595) collision_layer = 41 -[node name="Platform2" parent="EnemyList" instance=ExtResource("6_kom4b")] +[node name="Platform2" parent="ObjectList" instance=ExtResource("6_kom4b")] visible = false position = Vector2(225, -595) collision_layer = 41 -[node name="Platform5" parent="EnemyList" instance=ExtResource("6_kom4b")] +[node name="Platform5" parent="ObjectList" instance=ExtResource("6_kom4b")] position = Vector2(85, -287) scale = Vector2(2.49, 3.1) -[node name="ItemSpawn" parent="EnemyList" instance=ExtResource("7_sr858")] +[node name="ItemSpawn" parent="ObjectList" instance=ExtResource("7_sr858")] position = Vector2(149, -645) rarity_bonus = 0.5 -spawn_petal = true -petal_scene = ExtResource("9_qsju2") -[node name="MorningStar" parent="EnemyList" instance=ExtResource("8_ta0fd")] +[node name="MorningStar" parent="ObjectList" instance=ExtResource("8_ta0fd")] position = Vector2(39, -552) -[node name="BearTrap" parent="EnemyList" instance=ExtResource("8_pww4b")] +[node name="BearTrap" parent="ObjectList" instance=ExtResource("8_pww4b")] position = Vector2(165, -7) [node name="DebugSprite" type="Sprite2D" parent="."] diff --git a/buildings/room_temple.tscn b/buildings/room_temple.tscn index e386e7d..cf7e697 100644 --- a/buildings/room_temple.tscn +++ b/buildings/room_temple.tscn @@ -33,42 +33,42 @@ texture = ExtResource("5_pfkkr") script = ExtResource("4_xr4t5") grid_offset = Vector2i(0, -1) -[node name="EnemyList" type="Node2D" parent="."] +[node name="ObjectList" type="Node2D" parent="."] -[node name="MorningStar" parent="EnemyList" instance=ExtResource("5_xr4t5")] +[node name="MorningStar" parent="ObjectList" instance=ExtResource("5_xr4t5")] position = Vector2(397, -3) -[node name="Ghost" parent="EnemyList" instance=ExtResource("7_35wcg")] +[node name="Ghost" parent="ObjectList" instance=ExtResource("7_35wcg")] position = Vector2(118, -125) -[node name="Platform" parent="EnemyList" instance=ExtResource("8_sifiv")] +[node name="Platform" parent="ObjectList" instance=ExtResource("8_sifiv")] visible = false position = Vector2(75, -295) collision_layer = 41 -[node name="Platform2" parent="EnemyList" instance=ExtResource("8_sifiv")] +[node name="Platform2" parent="ObjectList" instance=ExtResource("8_sifiv")] visible = false position = Vector2(225, -295) collision_layer = 41 -[node name="Platform3" parent="EnemyList" instance=ExtResource("8_sifiv")] +[node name="Platform3" parent="ObjectList" instance=ExtResource("8_sifiv")] visible = false position = Vector2(375, -295) collision_layer = 41 -[node name="Platform4" parent="EnemyList" instance=ExtResource("8_sifiv")] +[node name="Platform4" parent="ObjectList" instance=ExtResource("8_sifiv")] visible = false position = Vector2(525, -295) collision_layer = 41 -[node name="Platform5" parent="EnemyList" instance=ExtResource("8_sifiv")] +[node name="Platform5" parent="ObjectList" instance=ExtResource("8_sifiv")] position = Vector2(300, -150) scale = Vector2(2.688, 3) -[node name="ItemSpawn" parent="EnemyList" instance=ExtResource("9_i1qmw")] +[node name="ItemSpawn" parent="ObjectList" instance=ExtResource("9_i1qmw")] position = Vector2(300, -200) -[node name="Leech" parent="EnemyList" instance=ExtResource("10_ibnxs")] +[node name="Leech" parent="ObjectList" instance=ExtResource("10_ibnxs")] position = Vector2(240, -340) [node name="DebugSprite" type="Sprite2D" parent="."] diff --git a/buildings/room_wide_item_above.tscn b/buildings/room_wide_item_above.tscn index 8a28333..add9732 100644 --- a/buildings/room_wide_item_above.tscn +++ b/buildings/room_wide_item_above.tscn @@ -33,39 +33,39 @@ texture = ExtResource("5_v4fh6") script = ExtResource("4_h84o2") grid_offset = Vector2i(0, -1) -[node name="EnemyList" type="Node2D" parent="."] +[node name="ObjectList" type="Node2D" parent="."] -[node name="Platform" parent="EnemyList" instance=ExtResource("6_me65q")] +[node name="Platform" parent="ObjectList" instance=ExtResource("6_me65q")] visible = false position = Vector2(75, -295) collision_layer = 41 -[node name="Platform2" parent="EnemyList" instance=ExtResource("6_me65q")] +[node name="Platform2" parent="ObjectList" instance=ExtResource("6_me65q")] visible = false position = Vector2(225, -295) collision_layer = 41 -[node name="Platform3" parent="EnemyList" instance=ExtResource("6_me65q")] +[node name="Platform3" parent="ObjectList" instance=ExtResource("6_me65q")] visible = false position = Vector2(375, -295) collision_layer = 41 -[node name="Platform4" parent="EnemyList" instance=ExtResource("6_me65q")] +[node name="Platform4" parent="ObjectList" instance=ExtResource("6_me65q")] visible = false position = Vector2(525, -295) collision_layer = 41 -[node name="ItemSpawn" parent="EnemyList" instance=ExtResource("7_crruu")] +[node name="ItemSpawn" parent="ObjectList" instance=ExtResource("7_crruu")] position = Vector2(137, -329) rarity_bonus = 0.25 -[node name="BearTrap" parent="EnemyList" instance=ExtResource("8_fkxmk")] +[node name="BearTrap" parent="ObjectList" instance=ExtResource("8_fkxmk")] position = Vector2(465, -301) -[node name="Ghost" parent="EnemyList" instance=ExtResource("9_6hrl3")] +[node name="Ghost" parent="ObjectList" instance=ExtResource("9_6hrl3")] position = Vector2(301, -49) -[node name="Leech" parent="EnemyList" instance=ExtResource("10_7e5ul")] +[node name="Leech" parent="ObjectList" instance=ExtResource("10_7e5ul")] position = Vector2(176, -340) [node name="DebugSprite" type="Sprite2D" parent="."]