its all coming together!

This commit is contained in:
tabby 2025-05-16 15:56:55 +10:00
parent 35db2250f7
commit 2b90112231
6 changed files with 65 additions and 4 deletions

View file

@ -6,25 +6,32 @@ enum Gamemode{
}
#mode settings
@export var max_lives = 3
@export var lives = 3
@export var platformer_game : PackedScene
@export var games : Array[PackedScene]
@export var zoom_speed : float = 0.5
@export_group("Channel Rules")
@export var target_channels : float = 2.5
@export var channel_growth_per_min : float = 4
@export_group("Node References")
@export var main_camera : Camera2D
@export var outer_channels : Array[Channel]
@export var main_channel : Channel
var gamemode : Gamemode = Gamemode.Story #will be set by manager/menu option
var zooming_out : bool = false
var gameplay : bool = false # becomes true when the game starts
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
GameManager.zoom_out_signal.connect(zoom_out)
GameManager.prepare.connect(get_ready)
GameManager.gaming.connect(start_game)
if(gamemode == Gamemode.Story):
main_camera.zoom = Vector2(3.1,3.1)
main_channel.start_channel(platformer_game)
main_channel.start_specific_channel(platformer_game)
# Called every frame. 'delta' is the elapsed time since the previous frame.
@ -34,6 +41,8 @@ func _process(delta: float) -> void:
if(zooming_out):
var zoom_amount : float = clampf(main_camera.zoom.x - delta * zoom_speed,1, 4 )
main_camera.zoom = Vector2(zoom_amount,zoom_amount)
if(gameplay):
game_loop(delta)
func zoom_out():
zooming_out = true
@ -41,3 +50,26 @@ func zoom_out():
func get_ready():
for channel in outer_channels:
channel.channel_mode = channel.Mode.Static
func start_game():
gameplay = true
func game_loop(delta : float):
target_channels += channel_growth_per_min * (delta/60)
var online_channels : Array[Channel]
var offline_channels : Array[Channel]
# sort all the channels into online and offline
if main_channel.channel_mode == Channel.Mode.Online:
online_channels.append(main_channel)
else:
online_channels.append(main_channel)
for channel in outer_channels:
if(channel.channel_mode == Channel.Mode.Online):
online_channels.append(channel)
else:
offline_channels.append(channel)
# if i need to switch a channel online, then pick one and run tis start channel method
print("Online Channels: " + str(online_channels.size()))
if(online_channels.size() < target_channels and offline_channels.size() > 0):
var random_channel_number = randi_range(0, offline_channels.size()-1)
offline_channels[random_channel_number].start_channel()