From ce99e4c2ee46728087558051a80eb7f1e4d7793f Mon Sep 17 00:00:00 2001 From: RealMelwei Date: Tue, 16 Sep 2025 19:12:40 +0200 Subject: [PATCH 1/2] Morning Star --- buildings/building.tscn | 9 ++++++-- buildings/haunted_house.tscn | 4 ++-- enemies/ghost.tscn | 4 +++- main.tscn | 6 ++++- morning_star.gd | 23 +++++++++++++++++++ morning_star.gd.uid | 1 + morning_star.tscn | 23 +++++++++++++++++++ player/player.tscn | 1 + project.godot | 3 ++- enemy_hurtbox.gd => utils/enemy_hurtbox.gd | 2 +- .../enemy_hurtbox.gd.uid | 0 .../enemy_hurtbox.tscn | 2 +- 12 files changed, 69 insertions(+), 9 deletions(-) create mode 100644 morning_star.gd create mode 100644 morning_star.gd.uid create mode 100644 morning_star.tscn rename enemy_hurtbox.gd => utils/enemy_hurtbox.gd (91%) rename enemy_hurtbox.gd.uid => utils/enemy_hurtbox.gd.uid (100%) rename enemy_hurtbox.tscn => utils/enemy_hurtbox.tscn (84%) diff --git a/buildings/building.tscn b/buildings/building.tscn index d388b25..94e5138 100644 --- a/buildings/building.tscn +++ b/buildings/building.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=6 format=3 uid="uid://djawvtdwp423v"] +[gd_scene load_steps=7 format=3 uid="uid://djawvtdwp423v"] [ext_resource type="Script" uid="uid://b2ji03ekijjnn" path="res://buildings/building.gd" id="1_5j34s"] [ext_resource type="Texture2D" uid="uid://cy70quh6k3s1j" path="res://icon.svg" id="2_2yopf"] [ext_resource type="Shader" uid="uid://c7gb1nqwvkr37" path="res://buildings/building.gdshader" id="2_f1gjg"] [ext_resource type="Script" uid="uid://dj7d4d2xs3nci" path="res://buildings/building_mesh.gd" id="4_qnfc1"] +[ext_resource type="PackedScene" uid="uid://dpv1w56yr1xue" path="res://morning_star.tscn" id="5_xr4t5"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_qnfc1"] resource_local_to_scene = true @@ -16,8 +17,12 @@ shader_parameter/num_cells = 60 script = ExtResource("1_5j34s") [node name="Sprite2D" type="Sprite2D" parent="."] -self_modulate = Color(0.1764706, 0, 0.003921569, 0.003921569) +self_modulate = Color(0.176471, 0, 0.00392157, 0.00392157) material = SubResource("ShaderMaterial_qnfc1") scale = Vector2(15, 15) texture = ExtResource("2_2yopf") script = ExtResource("4_qnfc1") + +[node name="EnemyList" type="Node2D" parent="."] + +[node name="MorningStar" parent="EnemyList" instance=ExtResource("5_xr4t5")] diff --git a/buildings/haunted_house.tscn b/buildings/haunted_house.tscn index 7729363..db6f606 100644 --- a/buildings/haunted_house.tscn +++ b/buildings/haunted_house.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=7 format=3 uid="uid://bno6flekdwx88"] +[gd_scene load_steps=7 format=3 uid="uid://cmofmd0vf3hx3"] [ext_resource type="Script" uid="uid://b2ji03ekijjnn" path="res://buildings/building.gd" id="1_q3nfb"] [ext_resource type="Shader" uid="uid://c7gb1nqwvkr37" path="res://buildings/building.gdshader" id="2_uv7v8"] @@ -18,7 +18,7 @@ script = ExtResource("1_q3nfb") dimension = Vector2i(1, 2) [node name="Sprite2D" type="Sprite2D" parent="."] -self_modulate = Color(0.1764706, 0, 0.003921569, 0.003921569) +self_modulate = Color(0.176471, 0, 0.00392157, 0.00392157) material = SubResource("ShaderMaterial_qnfc1") scale = Vector2(25, 25) texture = ExtResource("3_e6j05") diff --git a/enemies/ghost.tscn b/enemies/ghost.tscn index 19162f9..f5938fb 100644 --- a/enemies/ghost.tscn +++ b/enemies/ghost.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=6 format=3 uid="uid://chu67ci7sl488"] [ext_resource type="Script" uid="uid://12jns4dppxxj" path="res://enemies/ghost.gd" id="1_6attn"] -[ext_resource type="PackedScene" uid="uid://mtfsdd4cdf3a" path="res://enemy_hurtbox.tscn" id="2_34o1m"] +[ext_resource type="PackedScene" uid="uid://mtfsdd4cdf3a" path="res://utils/enemy_hurtbox.tscn" id="2_34o1m"] [ext_resource type="Texture2D" uid="uid://cy70quh6k3s1j" path="res://icon.svg" id="2_obmiq"] [ext_resource type="PackedScene" uid="uid://chs0u61f45nau" path="res://utils/earth_aligner.tscn" id="3_obmiq"] @@ -10,6 +10,8 @@ [node name="Ghost" type="Area2D"] z_index = 1 scale = Vector2(0.4, 0.4) +collision_layer = 0 +collision_mask = 4 script = ExtResource("1_6attn") [node name="EnemyHurtbox" parent="." instance=ExtResource("2_34o1m")] diff --git a/main.tscn b/main.tscn index d39848e..1d32213 100644 --- a/main.tscn +++ b/main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=7 format=3 uid="uid://cxo6bq26huau7"] +[gd_scene load_steps=8 format=3 uid="uid://cxo6bq26huau7"] [ext_resource type="PackedScene" uid="uid://cmaovvr15b3qk" path="res://player/player.tscn" id="2_1bvp3"] [ext_resource type="Script" uid="uid://vgxh2xdevat7" path="res://world/earth.gd" id="2_lquwl"] @@ -6,6 +6,7 @@ [ext_resource type="PackedScene" uid="uid://jjoyj1ldafkf" path="res://world/earth.tscn" id="3_lquwl"] [ext_resource type="Script" uid="uid://colvx6wq0e8n7" path="res://world/building_generator.gd" id="4_1bvp3"] [ext_resource type="PackedScene" uid="uid://cjsrtswk4vgf2" path="res://healthbar/healthbar.tscn" id="6_7mycd"] +[ext_resource type="PackedScene" uid="uid://dpv1w56yr1xue" path="res://morning_star.tscn" id="7_272bh"] [node name="main" type="Node2D"] @@ -34,5 +35,8 @@ autostart = true offset_right = 128.0 offset_bottom = 128.0 +[node name="MorningStar" parent="." instance=ExtResource("7_272bh")] +position = Vector2(989, -2939) + [connection signal="health_changed" from="Player" to="CanvasLayer/Healthbar" method="_on_player_health_changed"] [connection signal="timeout" from="Building Generator/Timer" to="Building Generator" method="_on_timer_timeout"] diff --git a/morning_star.gd b/morning_star.gd new file mode 100644 index 0000000..154d9f5 --- /dev/null +++ b/morning_star.gd @@ -0,0 +1,23 @@ +extends Node2D +@onready var ball : Area2D = $Area2D +var anglespeed = 0.3 +var player_damage = 1 +var enemy_damage = 10 + +func _ready() -> void: + rotate(randf() * TAU) + anglespeed = anglespeed * (2 * randi_range(0,1) - 1) + +func _physics_process(delta: float) -> void: + rotate(anglespeed * delta * TAU) + for target in ball.get_overlapping_areas(): + damage_target(target) + for target in ball.get_overlapping_bodies(): + damage_target(target) + +func damage_target(target: CollisionObject2D): + var dir = (position - target.position).normalized() + if(target.get_collision_layer_value(3)): + target.hurt(player_damage, dir) + else: + target.hurt(enemy_damage, 2.5*dir) diff --git a/morning_star.gd.uid b/morning_star.gd.uid new file mode 100644 index 0000000..a2cedf2 --- /dev/null +++ b/morning_star.gd.uid @@ -0,0 +1 @@ +uid://bjarfrf4tf3b1 diff --git a/morning_star.tscn b/morning_star.tscn new file mode 100644 index 0000000..7010d39 --- /dev/null +++ b/morning_star.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=4 format=3 uid="uid://dpv1w56yr1xue"] + +[ext_resource type="Script" uid="uid://bjarfrf4tf3b1" path="res://morning_star.gd" id="1_iuq6u"] +[ext_resource type="Texture2D" uid="uid://cy70quh6k3s1j" path="res://icon.svg" id="1_ytaxb"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_iuq6u"] + +[node name="MorningStar" type="Node2D"] +script = ExtResource("1_iuq6u") + +[node name="Area2D" type="Area2D" parent="."] +position = Vector2(0, -200) +scale = Vector2(3, 3) +collision_layer = 0 +collision_mask = 6 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +shape = SubResource("CircleShape2D_iuq6u") + +[node name="Sprite2D" type="Sprite2D" parent="Area2D"] +modulate = Color(1, 0, 0, 1) +scale = Vector2(0.15, 0.15) +texture = ExtResource("1_ytaxb") diff --git a/player/player.tscn b/player/player.tscn index 2e3c2e1..9c51486 100644 --- a/player/player.tscn +++ b/player/player.tscn @@ -40,6 +40,7 @@ animations = [{ [node name="Player" type="CharacterBody2D"] z_index = 10 +collision_layer = 5 script = ExtResource("1_4flbx") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] diff --git a/project.godot b/project.godot index 4b1244b..81cc403 100644 --- a/project.godot +++ b/project.godot @@ -12,7 +12,7 @@ config_version=5 config/name="The Dark Side of Earth" run/main_scene="uid://cxo6bq26huau7" -config/features=PackedStringArray("4.5", "Forward Plus") +config/features=PackedStringArray("4.4", "Forward Plus") config/icon="res://icon.svg" [display] @@ -47,3 +47,4 @@ attack={ [layer_names] 2d_physics/layer_2="EnemyHurtBox" +2d_physics/layer_3="PlayerHurtBox" diff --git a/enemy_hurtbox.gd b/utils/enemy_hurtbox.gd similarity index 91% rename from enemy_hurtbox.gd rename to utils/enemy_hurtbox.gd index 4ed799c..db26027 100644 --- a/enemy_hurtbox.gd +++ b/utils/enemy_hurtbox.gd @@ -2,7 +2,7 @@ extends Area2D @export var max_hp : int @onready var hp = max_hp -var hit_invulnerability = 0.15 +@export var hit_invulnerability = 0.35 var inv_time = 0; signal damage_taken diff --git a/enemy_hurtbox.gd.uid b/utils/enemy_hurtbox.gd.uid similarity index 100% rename from enemy_hurtbox.gd.uid rename to utils/enemy_hurtbox.gd.uid diff --git a/enemy_hurtbox.tscn b/utils/enemy_hurtbox.tscn similarity index 84% rename from enemy_hurtbox.tscn rename to utils/enemy_hurtbox.tscn index 9b87d2b..4199894 100644 --- a/enemy_hurtbox.tscn +++ b/utils/enemy_hurtbox.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://mtfsdd4cdf3a"] -[ext_resource type="Script" uid="uid://ct8am2xeyymuj" path="res://enemy_hurtbox.gd" id="1_wa58b"] +[ext_resource type="Script" uid="uid://ct8am2xeyymuj" path="res://utils/enemy_hurtbox.gd" id="1_wa58b"] [node name="EnemyHurtbox" type="Area2D"] collision_layer = 2 From 3db72dcd5349dfd2980ee6dfc28e560edf42d95b Mon Sep 17 00:00:00 2001 From: RealMelwei Date: Tue, 16 Sep 2025 19:13:11 +0200 Subject: [PATCH 2/2] File Structure Fix --- buildings/building.tscn | 2 +- main.tscn | 2 +- morning_star.gd => traps/morning_star.gd | 0 morning_star.gd.uid => traps/morning_star.gd.uid | 0 morning_star.tscn => traps/morning_star.tscn | 2 +- 5 files changed, 3 insertions(+), 3 deletions(-) rename morning_star.gd => traps/morning_star.gd (100%) rename morning_star.gd.uid => traps/morning_star.gd.uid (100%) rename morning_star.tscn => traps/morning_star.tscn (95%) diff --git a/buildings/building.tscn b/buildings/building.tscn index 94e5138..98eb86f 100644 --- a/buildings/building.tscn +++ b/buildings/building.tscn @@ -4,7 +4,7 @@ [ext_resource type="Texture2D" uid="uid://cy70quh6k3s1j" path="res://icon.svg" id="2_2yopf"] [ext_resource type="Shader" uid="uid://c7gb1nqwvkr37" path="res://buildings/building.gdshader" id="2_f1gjg"] [ext_resource type="Script" uid="uid://dj7d4d2xs3nci" path="res://buildings/building_mesh.gd" id="4_qnfc1"] -[ext_resource type="PackedScene" uid="uid://dpv1w56yr1xue" path="res://morning_star.tscn" id="5_xr4t5"] +[ext_resource type="PackedScene" uid="uid://dpv1w56yr1xue" path="res://traps/morning_star.tscn" id="5_xr4t5"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_qnfc1"] resource_local_to_scene = true diff --git a/main.tscn b/main.tscn index 1d32213..288cb62 100644 --- a/main.tscn +++ b/main.tscn @@ -6,7 +6,7 @@ [ext_resource type="PackedScene" uid="uid://jjoyj1ldafkf" path="res://world/earth.tscn" id="3_lquwl"] [ext_resource type="Script" uid="uid://colvx6wq0e8n7" path="res://world/building_generator.gd" id="4_1bvp3"] [ext_resource type="PackedScene" uid="uid://cjsrtswk4vgf2" path="res://healthbar/healthbar.tscn" id="6_7mycd"] -[ext_resource type="PackedScene" uid="uid://dpv1w56yr1xue" path="res://morning_star.tscn" id="7_272bh"] +[ext_resource type="PackedScene" uid="uid://dpv1w56yr1xue" path="res://traps/morning_star.tscn" id="7_272bh"] [node name="main" type="Node2D"] diff --git a/morning_star.gd b/traps/morning_star.gd similarity index 100% rename from morning_star.gd rename to traps/morning_star.gd diff --git a/morning_star.gd.uid b/traps/morning_star.gd.uid similarity index 100% rename from morning_star.gd.uid rename to traps/morning_star.gd.uid diff --git a/morning_star.tscn b/traps/morning_star.tscn similarity index 95% rename from morning_star.tscn rename to traps/morning_star.tscn index 7010d39..095dac3 100644 --- a/morning_star.tscn +++ b/traps/morning_star.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=4 format=3 uid="uid://dpv1w56yr1xue"] -[ext_resource type="Script" uid="uid://bjarfrf4tf3b1" path="res://morning_star.gd" id="1_iuq6u"] +[ext_resource type="Script" uid="uid://bjarfrf4tf3b1" path="res://traps/morning_star.gd" id="1_iuq6u"] [ext_resource type="Texture2D" uid="uid://cy70quh6k3s1j" path="res://icon.svg" id="1_ytaxb"] [sub_resource type="CircleShape2D" id="CircleShape2D_iuq6u"]