3 Commits

Author SHA1 Message Date
1dc1501b80 (wip) Food spawning on prey death 2026-02-07 17:42:57 +01:00
9c625edef4 (wip) Fix: Main menu now disappears 2026-02-07 17:42:46 +01:00
49d9489ede (wip) Rehauled main menu / game loading logic 2026-02-07 17:26:17 +01:00
8 changed files with 30 additions and 5 deletions

View File

@@ -4,10 +4,20 @@ var screen_size = Vector2(1920.0, 1080.0) # Default screen size (this is a floa
var viewport_size
@onready var extent: Rect2 = get_viewport().get_visible_rect()
# Main menu & game spawning
@onready
var mainMenuScene = preload("res://main_menu.tscn").instantiate()
@onready
var gameScene = preload("res://molecular/molecular_stage.tscn").instantiate()
# utils.
var rng = RandomNumberGenerator.new()
var eps: float = 1e-4
# managers
@onready
var foodManager = gameScene.get_node("FoodManager")
# A world "current"
# polar
var flow_dir: float # [0, 2pi)
@@ -23,8 +33,12 @@ var t: float = 0.0
func _ready() -> void:
# Create viewport
viewport_size = get_viewport().get_visible_rect().size
# Create game (main menu)
add_child(mainMenuScene)
# initial world current
get_new_flow()
@@ -35,6 +49,8 @@ func _physics_process(delta: float) -> void:
if abs(fmod(t, flowT)) < eps:
get_new_flow()
func start_game() -> void:
add_child(gameScene)
# TODO: This needs to be called from a script inheriting a CharacterBody2D (e.g. the player)
# Alternative would be to pass the player reference to this script (which might be better?)

View File

@@ -2,4 +2,6 @@ extends Control
func _on_play_button_pressed() -> void:
get_tree().change_scene_to_file("res://molecular/molecular_stage.tscn")
print("Starting game by pressing button...")
GameManager.start_game()
self.queue_free()

View File

@@ -0,0 +1,6 @@
[gd_scene format=3 uid="uid://b8gt8os2m28lv"]
[ext_resource type="Script" uid="uid://vsbibc5fanou" path="res://game_manager.gd" id="1_0f027"]
[node name="MainScene" type="Node" unique_id=1897047571]
script = ExtResource("1_0f027")

View File

@@ -47,4 +47,3 @@ func _on_entity_consumed() -> void:
_currentCount = max(0, _currentCount-1)
call_deferred("_spawn_minimum")
# TODO: Spawn food when an entity (any) dies

View File

@@ -127,6 +127,6 @@ metadata/_custom_type_script = "uid://coetidfssb80w"
[node name="FoodManager" type="Node" parent="." unique_id=449460585]
script = ExtResource("8_mys4o")
foodTypes = [ExtResource("9_ojt85")]
foodTypes = Array[PackedScene]([ExtResource("9_ojt85")])
foodProbs = Array[float]([1.0])
metadata/_custom_type_script = "uid://7ua0qgyhphao"

View File

@@ -40,6 +40,7 @@ func handle_damage(dmg: int, src: Node) -> void:
func die() -> void:
sprite.play("Dying")
wrapper.play_sprite("Dying")
GameManager.foodManager._spawn_food(position)
super.die()
func become_injured() -> void:

View File

@@ -15,7 +15,7 @@ compatibility/default_parent_skeleton_in_mesh_instance_3d=true
[application]
config/name="EvolveDieRepeat"
run/main_scene="uid://drgv154ei1vrl"
run/main_scene="uid://b8gt8os2m28lv"
config/features=PackedStringArray("4.6", "Forward Plus")
config/icon="res://icon.svg"
@@ -25,7 +25,7 @@ GameManager="*res://game_manager.gd"
[editor_plugins]
enabled=PackedStringArray("res://addons/godot-neovim/plugin.cfg")
enabled=PackedStringArray()
[global_group]

View File

@@ -33,6 +33,7 @@ func _spawn_creature(position: Vector2) -> void:
instance.position = position
add_child(instance)
if instance.has_signal("died"):
#instance.died.connect(GameManager.foodManager._spawn_food_on_position)
instance.died.connect(_on_entity_died)
func _on_entity_died() -> void: