From 0f6445d6773fd24da6644c9e5e390ea6b3c3953a Mon Sep 17 00:00:00 2001 From: Rendo Date: Sun, 20 Jul 2025 16:15:05 +0500 Subject: [PATCH] sun now drops properly --- scripts/droppable-items/DropMover.cs | 30 ++++++++++++++++++++++ scripts/entities/plants/PlantSunSpawner.cs | 4 +++ 2 files changed, 34 insertions(+) create mode 100644 scripts/droppable-items/DropMover.cs diff --git a/scripts/droppable-items/DropMover.cs b/scripts/droppable-items/DropMover.cs new file mode 100644 index 0000000..12dbbdd --- /dev/null +++ b/scripts/droppable-items/DropMover.cs @@ -0,0 +1,30 @@ +using Godot; + +public partial class DropMover : Node +{ + public float ySpeed = -200.0f; + public float xSpeed = 150.0f; + + + private float stop_y; + private Node2D parent; + private Vector2 velocity; + private float gravity; + public override void _Ready() + { + parent = GetParent(); + stop_y = ((parent.GlobalPosition / FieldParams.Tile).Ceil() * FieldParams.Tile).Y; + gravity = (float)ProjectSettings.GetSetting("physics/2d/default_gravity"); + + velocity = new Vector2((GD.Randf()-0.5f)*xSpeed,ySpeed); + } + public override void _Process(double delta) + { + if (parent.GlobalPosition.Y >= stop_y) QueueFree(); + + velocity += Vector2.Down * gravity * (float)delta; + + parent.GlobalPosition += velocity * (float)delta; + } + +} diff --git a/scripts/entities/plants/PlantSunSpawner.cs b/scripts/entities/plants/PlantSunSpawner.cs index d320d79..2cbefc5 100644 --- a/scripts/entities/plants/PlantSunSpawner.cs +++ b/scripts/entities/plants/PlantSunSpawner.cs @@ -13,9 +13,13 @@ public partial class PlantSunSpawner : Node2D public void Spawn() { var sun = _sunScene.Instantiate(); + sun.amount = _amountPerSun; PoolContainer.Instance.Projectiles.AddChild(sun); sun.GlobalPosition = GlobalPosition; + + var mover = new DropMover(); + sun.AddChild(mover); } }