can now add and store leaderboards. started work on playlist loading
This commit is contained in:
@@ -1,13 +1,38 @@
|
|||||||
[gd_scene load_steps=9 format=3 uid="uid://sa1d1rftyn87"]
|
[gd_scene load_steps=11 format=3 uid="uid://sa1d1rftyn87"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scripts/main_menu.gd" id="1_haaol"]
|
[ext_resource type="Script" path="res://scripts/main_menu.gd" id="1_haaol"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dpootbr7qgac1" path="res://Tools/playlist_generator.tscn" id="2_2rg1o"]
|
[ext_resource type="PackedScene" uid="uid://dpootbr7qgac1" path="res://Tools/playlist_generator.tscn" id="2_2rg1o"]
|
||||||
[ext_resource type="Theme" uid="uid://clek42ofxr45f" path="res://DefaultTheme.tres" id="2_3fflq"]
|
[ext_resource type="Theme" uid="uid://clek42ofxr45f" path="res://DefaultTheme.tres" id="2_3fflq"]
|
||||||
[ext_resource type="FontFile" uid="uid://d2h2tjhxiv5wo" path="res://assets/fonts/White On Black.ttf" id="2_ac165"]
|
[ext_resource type="FontFile" uid="uid://d2h2tjhxiv5wo" path="res://assets/fonts/White On Black.ttf" id="2_ac165"]
|
||||||
|
[ext_resource type="Shader" path="res://assets/crtTest.gdshader" id="2_hyw7c"]
|
||||||
[ext_resource type="Theme" uid="uid://buma708jpxqrn" path="res://Clean_theme.tres" id="4_ydrbj"]
|
[ext_resource type="Theme" uid="uid://buma708jpxqrn" path="res://Clean_theme.tres" id="4_ydrbj"]
|
||||||
[ext_resource type="Shader" path="res://assets/Shaders/blur.gdshader" id="6_x75tm"]
|
[ext_resource type="Shader" path="res://assets/Shaders/blur.gdshader" id="6_x75tm"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bt6utik8unkxa" path="res://assets/Textures/ObjectTextures/money.png" id="7_ia0hc"]
|
[ext_resource type="Texture2D" uid="uid://bt6utik8unkxa" path="res://assets/Textures/ObjectTextures/money.png" id="7_ia0hc"]
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_a5tps"]
|
||||||
|
shader = ExtResource("2_hyw7c")
|
||||||
|
shader_parameter/overlay = true
|
||||||
|
shader_parameter/scanlines_opacity = 0.025
|
||||||
|
shader_parameter/scanlines_width = 0.315
|
||||||
|
shader_parameter/grille_opacity = 0.1
|
||||||
|
shader_parameter/resolution = Vector2(640, 480)
|
||||||
|
shader_parameter/pixelate = true
|
||||||
|
shader_parameter/roll = true
|
||||||
|
shader_parameter/roll_speed = 8.0
|
||||||
|
shader_parameter/roll_size = 15.0
|
||||||
|
shader_parameter/roll_variation = 1.8
|
||||||
|
shader_parameter/distort_intensity = 0.05
|
||||||
|
shader_parameter/noise_opacity = 0.4
|
||||||
|
shader_parameter/noise_speed = 5.0
|
||||||
|
shader_parameter/static_noise_intensity = 0.06
|
||||||
|
shader_parameter/aberration = 0.03
|
||||||
|
shader_parameter/brightness = 0.7
|
||||||
|
shader_parameter/discolor = true
|
||||||
|
shader_parameter/warp_amount = 0.0
|
||||||
|
shader_parameter/clip_warp = true
|
||||||
|
shader_parameter/vignette_intensity = 0.4
|
||||||
|
shader_parameter/vignette_opacity = 0.235
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_htvli"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_htvli"]
|
||||||
shader = ExtResource("6_x75tm")
|
shader = ExtResource("6_x75tm")
|
||||||
shader_parameter/strength = 1.0
|
shader_parameter/strength = 1.0
|
||||||
@@ -21,9 +46,16 @@ grow_horizontal = 2
|
|||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
script = ExtResource("1_haaol")
|
script = ExtResource("1_haaol")
|
||||||
|
|
||||||
|
[node name="ColorRect" type="ColorRect" parent="."]
|
||||||
|
material = SubResource("ShaderMaterial_a5tps")
|
||||||
|
offset_right = 3840.0
|
||||||
|
offset_bottom = 2160.0
|
||||||
|
|
||||||
[node name="PlaylistGenerator" parent="." instance=ExtResource("2_2rg1o")]
|
[node name="PlaylistGenerator" parent="." instance=ExtResource("2_2rg1o")]
|
||||||
visible = false
|
visible = false
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
rounds_per_match = null
|
||||||
|
matches_per_year = null
|
||||||
|
|
||||||
[node name="MarginContainer" type="MarginContainer" parent="."]
|
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
@@ -76,7 +108,6 @@ theme_override_font_sizes/font_size = 150
|
|||||||
text = "exit"
|
text = "exit"
|
||||||
|
|
||||||
[node name="Add Leaderboard Menu" type="Control" parent="."]
|
[node name="Add Leaderboard Menu" type="Control" parent="."]
|
||||||
visible = false
|
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
@@ -92,7 +123,7 @@ anchor_right = 1.0
|
|||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
color = Color(0, 0, 0, 0.737255)
|
color = Color(0, 0, 0, 0.431373)
|
||||||
|
|
||||||
[node name="MarginContainer" type="MarginContainer" parent="Add Leaderboard Menu"]
|
[node name="MarginContainer" type="MarginContainer" parent="Add Leaderboard Menu"]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
@@ -111,7 +142,7 @@ grow_vertical = 2
|
|||||||
[node name="HBoxContainer" type="HBoxContainer" parent="Add Leaderboard Menu/MarginContainer"]
|
[node name="HBoxContainer" type="HBoxContainer" parent="Add Leaderboard Menu/MarginContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="TextEdit" type="TextEdit" parent="Add Leaderboard Menu/MarginContainer/HBoxContainer"]
|
[node name="NewLeaderboardName" type="TextEdit" parent="Add Leaderboard Menu/MarginContainer/HBoxContainer"]
|
||||||
custom_minimum_size = Vector2(800, 0)
|
custom_minimum_size = Vector2(800, 0)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
@@ -119,10 +150,12 @@ theme = ExtResource("2_3fflq")
|
|||||||
theme_override_font_sizes/font_size = 41
|
theme_override_font_sizes/font_size = 41
|
||||||
placeholder_text = "Leaderboard Name"
|
placeholder_text = "Leaderboard Name"
|
||||||
|
|
||||||
[node name="Button" type="Button" parent="Add Leaderboard Menu/MarginContainer/HBoxContainer"]
|
[node name="Confirm" type="Button" parent="Add Leaderboard Menu/MarginContainer/HBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
icon = ExtResource("7_ia0hc")
|
icon = ExtResource("7_ia0hc")
|
||||||
|
|
||||||
|
[connection signal="item_selected" from="MarginContainer/VBoxContainer/HBoxContainer/OptionButton" to="." method="_on_option_button_item_selected"]
|
||||||
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer/Add Leaderboard" to="." method="_on_add_leaderboard_pressed"]
|
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer/Add Leaderboard" to="." method="_on_add_leaderboard_pressed"]
|
||||||
[connection signal="pressed" from="MarginContainer/VBoxContainer/Continue" to="." method="_on_continue_pressed"]
|
[connection signal="pressed" from="MarginContainer/VBoxContainer/Continue" to="." method="_on_continue_pressed"]
|
||||||
[connection signal="pressed" from="MarginContainer/VBoxContainer/Exit" to="." method="_on_exit_pressed"]
|
[connection signal="pressed" from="MarginContainer/VBoxContainer/Exit" to="." method="_on_exit_pressed"]
|
||||||
|
[connection signal="pressed" from="Add Leaderboard Menu/MarginContainer/HBoxContainer/Confirm" to="." method="_on_confirm_pressed"]
|
||||||
|
|||||||
@@ -19,11 +19,5 @@ generate_playlist_now = null
|
|||||||
checksum_test = null
|
checksum_test = null
|
||||||
maps_in_rotation = Array[String](["res://assets/blockout_2.tscn", "res://scenes/enemy_working_scene.tscn", "res://scenes/test_level_2v2.tscn", "res://scenes/Arena of Money.tscn"])
|
maps_in_rotation = Array[String](["res://assets/blockout_2.tscn", "res://scenes/enemy_working_scene.tscn", "res://scenes/test_level_2v2.tscn", "res://scenes/Arena of Money.tscn"])
|
||||||
gamemodes_in_rotation = Array[ExtResource("2_hoyqc")]([ExtResource("2_85uje"), ExtResource("3_t0mxh"), ExtResource("4_8wht4"), ExtResource("6_vu1w7")])
|
gamemodes_in_rotation = Array[ExtResource("2_hoyqc")]([ExtResource("2_85uje"), ExtResource("3_t0mxh"), ExtResource("4_8wht4"), ExtResource("6_vu1w7")])
|
||||||
|
rounds_per_match = null
|
||||||
[node name="Button" type="Button" parent="."]
|
matches_per_year = null
|
||||||
layout_mode = 0
|
|
||||||
offset_right = 8.0
|
|
||||||
offset_bottom = 8.0
|
|
||||||
text = "Generate Random Playlist"
|
|
||||||
|
|
||||||
[connection signal="pressed" from="Button" to="." method="_on_button_pressed"]
|
|
||||||
|
|||||||
@@ -18,6 +18,12 @@ shape = SubResource("BoxShape3D_8clsv")
|
|||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||||
mesh = SubResource("BoxMesh_6sj7f")
|
mesh = SubResource("BoxMesh_6sj7f")
|
||||||
|
|
||||||
|
[node name="Leaderboard Name" type="Label3D" parent="."]
|
||||||
|
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0.143, 2.20856, 0)
|
||||||
|
text = "Deposit Money"
|
||||||
|
font = ExtResource("1_bjyml")
|
||||||
|
font_size = 100
|
||||||
|
|
||||||
[node name="Deposit Money" type="Label3D" parent="."]
|
[node name="Deposit Money" type="Label3D" parent="."]
|
||||||
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0.143, 1.69313, 0)
|
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0.143, 1.69313, 0)
|
||||||
text = "Deposit Money"
|
text = "Deposit Money"
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ emission_enabled = true
|
|||||||
emission = Color(0.223698, 0.336652, 0.628522, 1)
|
emission = Color(0.223698, 0.336652, 0.628522, 1)
|
||||||
emission_energy_multiplier = 5.6
|
emission_energy_multiplier = 5.6
|
||||||
|
|
||||||
[node name="Scene Changer" type="Area3D"]
|
[node name="Scene Changer" type="Area3D" groups=["portal"]]
|
||||||
collision_layer = 4
|
collision_layer = 4
|
||||||
collision_mask = 4
|
collision_mask = 4
|
||||||
script = ExtResource("1_7ngxb")
|
script = ExtResource("1_7ngxb")
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ leak="will leak if damaged"
|
|||||||
item_pickup=""
|
item_pickup=""
|
||||||
hub_level=""
|
hub_level=""
|
||||||
ui=""
|
ui=""
|
||||||
|
portal=""
|
||||||
|
|
||||||
[input]
|
[input]
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
[gd_scene load_steps=18 format=3 uid="uid://jdwpc622vmok"]
|
[gd_scene load_steps=20 format=3 uid="uid://jdwpc622vmok"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scripts/LevelManager.gd" id="1_1bnbi"]
|
[ext_resource type="Script" path="res://scripts/LevelManager.gd" id="1_1bnbi"]
|
||||||
[ext_resource type="Resource" uid="uid://bxcxqt7rmfvdw" path="res://GameModes/hubworld.tres" id="2_62iy8"]
|
[ext_resource type="Resource" uid="uid://bxcxqt7rmfvdw" path="res://GameModes/hubworld.tres" id="2_62iy8"]
|
||||||
|
[ext_resource type="Script" path="res://scripts/playlist_loader.gd" id="3_2u2e7"]
|
||||||
[ext_resource type="Material" uid="uid://b6hhomp4kcjvb" path="res://assets/materials/prototype/tadaoando.tres" id="3_hlejc"]
|
[ext_resource type="Material" uid="uid://b6hhomp4kcjvb" path="res://assets/materials/prototype/tadaoando.tres" id="3_hlejc"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dpootbr7qgac1" path="res://Tools/playlist_generator.tscn" id="3_udqcb"]
|
||||||
[ext_resource type="PackedScene" uid="uid://drwae3loscbw7" path="res://assets/player.tscn" id="4_04o4y"]
|
[ext_resource type="PackedScene" uid="uid://drwae3loscbw7" path="res://assets/player.tscn" id="4_04o4y"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dgapcuvg0gtmm" path="res://assets/scene_changer.tscn" id="5_alya6"]
|
[ext_resource type="PackedScene" uid="uid://dgapcuvg0gtmm" path="res://assets/scene_changer.tscn" id="5_alya6"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bessq6hl7qsh8" path="res://assets/stats.tscn" id="6_mkn70"]
|
[ext_resource type="PackedScene" uid="uid://bessq6hl7qsh8" path="res://assets/stats.tscn" id="6_mkn70"]
|
||||||
@@ -36,6 +38,15 @@ fog_density = 0.0001
|
|||||||
script = ExtResource("1_1bnbi")
|
script = ExtResource("1_1bnbi")
|
||||||
gamemode = ExtResource("2_62iy8")
|
gamemode = ExtResource("2_62iy8")
|
||||||
|
|
||||||
|
[node name="LEVEL UTILS" type="Node" parent="."]
|
||||||
|
|
||||||
|
[node name="Playlist Generator" parent="LEVEL UTILS" instance=ExtResource("3_udqcb")]
|
||||||
|
rounds_per_match = 3
|
||||||
|
matches_per_year = 52
|
||||||
|
|
||||||
|
[node name="PlaylistLoader" type="Node" parent="LEVEL UTILS"]
|
||||||
|
script = ExtResource("3_2u2e7")
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
environment = SubResource("Environment_r2hg6")
|
environment = SubResource("Environment_r2hg6")
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ extends StaticBody3D
|
|||||||
|
|
||||||
@onready var currently_held_money: Label3D = $"Currently Held Money"
|
@onready var currently_held_money: Label3D = $"Currently Held Money"
|
||||||
@onready var deposited: Label3D = $Deposited
|
@onready var deposited: Label3D = $Deposited
|
||||||
|
@onready var leaderboard_name: Label3D = $"Leaderboard Name"
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
@@ -12,6 +13,7 @@ func _ready() -> void:
|
|||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
currently_held_money.text = "cash on hand: $" + str(int(GameGlobals.money))
|
currently_held_money.text = "cash on hand: $" + str(int(GameGlobals.money))
|
||||||
deposited.text = "deposited: $" + str(GameGlobals.deposited_money)
|
deposited.text = "deposited: $" + str(GameGlobals.deposited_money)
|
||||||
|
leaderboard_name.text = str(GameGlobals.all_user_leaderboards[GameGlobals.user_id][GameGlobals.last_leaderboard_id])
|
||||||
|
|
||||||
func interact():
|
func interact():
|
||||||
SignalBus.emit_signal("money_deposited")
|
SignalBus.emit_signal("money_deposited")
|
||||||
|
|||||||
@@ -18,8 +18,10 @@ var user_id = 0
|
|||||||
var last_leaderboard_id = 0
|
var last_leaderboard_id = 0
|
||||||
var user_names = ["Profile 1","Profile 2","Profile 3","Profile 4","Profile 5"]
|
var user_names = ["Profile 1","Profile 2","Profile 3","Profile 4","Profile 5"]
|
||||||
var all_user_leaderboards = [["Global"]]
|
var all_user_leaderboards = [["Global"]]
|
||||||
|
var current_leaderboard_name = all_user_leaderboards[user_id][last_leaderboard_id]
|
||||||
|
|
||||||
var playlist_test
|
var playlist_test
|
||||||
|
var current_match
|
||||||
|
|
||||||
#Player Stats
|
#Player Stats
|
||||||
var player_deaths = 0
|
var player_deaths = 0
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
@tool
|
|
||||||
extends Node3D
|
extends Node3D
|
||||||
|
|
||||||
@export var portal_node : Node
|
@export var portal_node : Node
|
||||||
@@ -6,12 +5,10 @@ extends Node3D
|
|||||||
@onready var level_name: Label3D = $"Level Name"
|
@onready var level_name: Label3D = $"Level Name"
|
||||||
@onready var gamemode_label: Label3D = $Gamemode
|
@onready var gamemode_label: Label3D = $Gamemode
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
func _process(delta: float) -> void:
|
||||||
func _ready() -> void:
|
|
||||||
level_name.text = portal_node.scene_name
|
level_name.text = portal_node.scene_name
|
||||||
gamemode_label.text = portal_node.level_gamemode.gamemode_name
|
gamemode_label.text = portal_node.level_gamemode.gamemode_name
|
||||||
|
|
||||||
|
func update_sign_names():
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
level_name.text = portal_node.scene_name
|
||||||
func _process(delta: float) -> void:
|
gamemode_label.text = portal_node.level_gamemode.gamemode_name
|
||||||
pass
|
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ var last_scene
|
|||||||
@onready var option_button: OptionButton = $MarginContainer/VBoxContainer/HBoxContainer/OptionButton
|
@onready var option_button: OptionButton = $MarginContainer/VBoxContainer/HBoxContainer/OptionButton
|
||||||
@onready var add_leaderboard: Button = $"MarginContainer/VBoxContainer/HBoxContainer/Add Leaderboard"
|
@onready var add_leaderboard: Button = $"MarginContainer/VBoxContainer/HBoxContainer/Add Leaderboard"
|
||||||
@onready var add_leaderboard_menu: Control = $"Add Leaderboard Menu"
|
@onready var add_leaderboard_menu: Control = $"Add Leaderboard Menu"
|
||||||
|
@onready var new_leaderboard_name: TextEdit = $"Add Leaderboard Menu/MarginContainer/HBoxContainer/NewLeaderboardName"
|
||||||
|
@onready var confirm_leaderboard_add: Button = $"Add Leaderboard Menu/MarginContainer/HBoxContainer/Confirm"
|
||||||
|
|
||||||
|
|
||||||
func _enter_tree() -> void:
|
func _enter_tree() -> void:
|
||||||
@@ -16,11 +18,9 @@ func _enter_tree() -> void:
|
|||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
add_leaderboard_menu.visible = false
|
||||||
playlist_generator.load_playlist()
|
playlist_generator.load_playlist()
|
||||||
option_button.clear()
|
refresh_option_list()
|
||||||
for i in GameGlobals.all_user_leaderboards[GameGlobals.user_id]:
|
|
||||||
option_button.add_item(i)
|
|
||||||
option_button.selected = GameGlobals.last_leaderboard_id
|
|
||||||
continue_text_check()
|
continue_text_check()
|
||||||
|
|
||||||
|
|
||||||
@@ -46,6 +46,7 @@ func _on_continue_pressed() -> void:
|
|||||||
print("LEVEL : ",GameGlobals.current_level)
|
print("LEVEL : ",GameGlobals.current_level)
|
||||||
|
|
||||||
func _on_exit_pressed() -> void:
|
func _on_exit_pressed() -> void:
|
||||||
|
SaveLoad.save_persistent_data()
|
||||||
get_tree().quit()
|
get_tree().quit()
|
||||||
|
|
||||||
func continue_text_check():
|
func continue_text_check():
|
||||||
@@ -57,3 +58,24 @@ func continue_text_check():
|
|||||||
|
|
||||||
func _on_add_leaderboard_pressed() -> void:
|
func _on_add_leaderboard_pressed() -> void:
|
||||||
add_leaderboard_menu.visible = true
|
add_leaderboard_menu.visible = true
|
||||||
|
|
||||||
|
func refresh_option_list():
|
||||||
|
option_button.clear()
|
||||||
|
for i in GameGlobals.all_user_leaderboards[int(GameGlobals.user_id)]:
|
||||||
|
option_button.add_item(i)
|
||||||
|
option_button.selected = int(GameGlobals.last_leaderboard_id)
|
||||||
|
|
||||||
|
func _on_confirm_pressed() -> void:
|
||||||
|
var valid_name = HelperFuncs.only_valid_chars(new_leaderboard_name.text)
|
||||||
|
|
||||||
|
GameGlobals.all_user_leaderboards[GameGlobals.user_id].append(valid_name)
|
||||||
|
GameGlobals.last_leaderboard_id = GameGlobals.all_user_leaderboards[GameGlobals.user_id].size() - 1
|
||||||
|
|
||||||
|
refresh_option_list()
|
||||||
|
continue_text_check()
|
||||||
|
add_leaderboard_menu.visible = false
|
||||||
|
|
||||||
|
|
||||||
|
func _on_option_button_item_selected(index: int) -> void:
|
||||||
|
GameGlobals.last_leaderboard_id = option_button.selected
|
||||||
|
continue_text_check()
|
||||||
|
|||||||
@@ -117,7 +117,6 @@ var pickupmsg
|
|||||||
var controlled_elsewhere = false
|
var controlled_elsewhere = false
|
||||||
|
|
||||||
@onready var animation_player: AnimationPlayer = $AnimationPlayer
|
@onready var animation_player: AnimationPlayer = $AnimationPlayer
|
||||||
@onready var crosshair = $Head/Recoil/Camera3D/Crosshair
|
|
||||||
@onready var head = $Head
|
@onready var head = $Head
|
||||||
@onready var camera = $Head/Recoil/Camera3D
|
@onready var camera = $Head/Recoil/Camera3D
|
||||||
@onready var world_environment = $"../WorldEnvironment"
|
@onready var world_environment = $"../WorldEnvironment"
|
||||||
|
|||||||
@@ -7,7 +7,8 @@ extends Node
|
|||||||
@export var maps_in_rotation : Array[String] = []
|
@export var maps_in_rotation : Array[String] = []
|
||||||
@export var gamemodes_in_rotation : Array[gamemode]= []
|
@export var gamemodes_in_rotation : Array[gamemode]= []
|
||||||
@export var levels_per_round : int = 5
|
@export var levels_per_round : int = 5
|
||||||
@export var rounds : int = 3
|
@export var rounds_per_match : int = 3
|
||||||
|
@export var matches_per_year : int = 52
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
@@ -27,17 +28,19 @@ func generate_playlist() -> void:
|
|||||||
var playlist_name = only_valid_chars(GameGlobals.all_user_leaderboards[GameGlobals.user_id][GameGlobals.last_leaderboard_id])
|
var playlist_name = only_valid_chars(GameGlobals.all_user_leaderboards[GameGlobals.user_id][GameGlobals.last_leaderboard_id])
|
||||||
var playlist = []
|
var playlist = []
|
||||||
print("PLAYLIST CREATED FOR THE : ",playlist_name)
|
print("PLAYLIST CREATED FOR THE : ",playlist_name)
|
||||||
for i in rounds:
|
for h in matches_per_year:
|
||||||
var round = []
|
var matches = []
|
||||||
for x in levels_per_round:
|
for i in rounds_per_match:
|
||||||
var level_details = {
|
var round = []
|
||||||
"map" : maps_in_rotation.pick_random(),
|
for x in levels_per_round:
|
||||||
"gamemode" : gamemodes_in_rotation.pick_random()
|
var level_details = {
|
||||||
}
|
"map" : maps_in_rotation.pick_random(),
|
||||||
round.append(level_details)
|
"gamemode" : gamemodes_in_rotation.pick_random()
|
||||||
|
}
|
||||||
playlist.append(round)
|
round.append(level_details)
|
||||||
print("PLAYLIST : ", playlist[0][0])
|
matches.append(round)
|
||||||
|
playlist.append(matches)
|
||||||
|
print("PLAYLIST : ", playlist)
|
||||||
|
|
||||||
save_playlist(playlist)
|
save_playlist(playlist)
|
||||||
generate_playlist_now = false
|
generate_playlist_now = false
|
||||||
@@ -63,13 +66,14 @@ func save_playlist(playlist):
|
|||||||
file.close()
|
file.close()
|
||||||
|
|
||||||
func load_playlist():
|
func load_playlist():
|
||||||
var playlist_path : String = "user://" + str(only_valid_chars(GameGlobals.all_user_leaderboards[GameGlobals.user_id][GameGlobals.last_leaderboard_id])) + "_playlist.save"
|
var playlist_path : String = "user://" + str(GameGlobals.all_user_leaderboards[GameGlobals.user_id][GameGlobals.last_leaderboard_id]) + "_playlist.save"
|
||||||
if FileAccess.file_exists(playlist_path):
|
if FileAccess.file_exists(playlist_path):
|
||||||
var file = FileAccess.open(playlist_path, FileAccess.READ)
|
var file = FileAccess.open(playlist_path, FileAccess.READ)
|
||||||
var key = file.get_var()
|
var key = file.get_var()
|
||||||
var playlist = file.get_var()
|
var playlist = file.get_var()
|
||||||
print("KEY : ",key)
|
print("KEY : ",key)
|
||||||
GameGlobals.playlist_test = playlist
|
GameGlobals.playlist_test = playlist
|
||||||
|
GameGlobals.current_match = playlist[0]
|
||||||
file.close()
|
file.close()
|
||||||
print("PLAYLIST: ")
|
print("PLAYLIST: ")
|
||||||
print("------------------------------------------------------------------------------------")
|
print("------------------------------------------------------------------------------------")
|
||||||
|
|||||||
25
scripts/playlist_loader.gd
Normal file
25
scripts/playlist_loader.gd
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
extends Node
|
||||||
|
|
||||||
|
@onready var playlist_generator: Control = $"../Playlist Generator"
|
||||||
|
|
||||||
|
var portals = []
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready() -> void:
|
||||||
|
playlist_generator.load_playlist()
|
||||||
|
print("CURRENT MATCH : ",GameGlobals.current_match)
|
||||||
|
for i in get_tree().current_scene.get_children():
|
||||||
|
if i.is_in_group("portal"):
|
||||||
|
portals.append(i)
|
||||||
|
print("PORTALS")
|
||||||
|
|
||||||
|
var id = 0
|
||||||
|
for i in portals:
|
||||||
|
i.scene_path = str(GameGlobals.current_match[0][id]["map"])
|
||||||
|
i.scene_name = str(GameGlobals.current_match[0][id]["map"])
|
||||||
|
id += 1
|
||||||
|
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
print("CURRENT MATCH ",GameGlobals.current_match[0])
|
||||||
@@ -37,8 +37,8 @@ func load_persistent_data():
|
|||||||
var user_names = file.get_var()
|
var user_names = file.get_var()
|
||||||
var all_user_leaderboards = file.get_var()
|
var all_user_leaderboards = file.get_var()
|
||||||
|
|
||||||
GameGlobals.user_id = str(user_id)
|
GameGlobals.user_id = int(user_id)
|
||||||
GameGlobals.last_leaderboard_id = str(last_leaderboard_id)
|
GameGlobals.last_leaderboard_id = int(last_leaderboard_id)
|
||||||
GameGlobals.user_names = user_names
|
GameGlobals.user_names = user_names
|
||||||
GameGlobals.all_user_leaderboards = all_user_leaderboards
|
GameGlobals.all_user_leaderboards = all_user_leaderboards
|
||||||
|
|
||||||
@@ -47,11 +47,11 @@ func load_persistent_data():
|
|||||||
print("No file found...")
|
print("No file found...")
|
||||||
|
|
||||||
func save_user_data():
|
func save_user_data():
|
||||||
var user_save_path = str("user://user_",str(GameGlobals.user_id),"_",str(GameGlobals.leaderboard_name),"_leaderboard","_data.save")
|
var user_save_path = str("user://user_",str(GameGlobals.user_id),"_",str(GameGlobals.all_user_leaderboards[GameGlobals.user_id][GameGlobals.last_leaderboard_id]),"_leaderboard","_data.save")
|
||||||
var file = FileAccess.open(user_save_path, FileAccess.WRITE)
|
var file = FileAccess.open(user_save_path, FileAccess.WRITE)
|
||||||
|
|
||||||
#cache data before saving and creating checksum in case it changes between data saving and checksum generating
|
#cache data before saving and creating checksum in case it changes between data saving and checksum generating
|
||||||
var leaderboard_name = GameGlobals.leaderboard_name
|
var leaderboard_name = str(GameGlobals.current_leaderboard_name)
|
||||||
var money = GameGlobals.money
|
var money = GameGlobals.money
|
||||||
var deposited_money = GameGlobals.deposited_money
|
var deposited_money = GameGlobals.deposited_money
|
||||||
var health = GameGlobals.health
|
var health = GameGlobals.health
|
||||||
@@ -87,6 +87,7 @@ func check_user_data_exists():
|
|||||||
return false
|
return false
|
||||||
|
|
||||||
func load_user_data():
|
func load_user_data():
|
||||||
|
print("ALL LEADERBOARDS: ",GameGlobals.all_user_leaderboards[0][0])
|
||||||
var user_save_path = str("user://user_",str(GameGlobals.user_id),"_",str(GameGlobals.all_user_leaderboards[GameGlobals.user_id][GameGlobals.last_leaderboard_id]),"_leaderboard","_data.save")
|
var user_save_path = str("user://user_",str(GameGlobals.user_id),"_",str(GameGlobals.all_user_leaderboards[GameGlobals.user_id][GameGlobals.last_leaderboard_id]),"_leaderboard","_data.save")
|
||||||
if FileAccess.file_exists(user_save_path):
|
if FileAccess.file_exists(user_save_path):
|
||||||
var file = FileAccess.open(user_save_path, FileAccess.READ)
|
var file = FileAccess.open(user_save_path, FileAccess.READ)
|
||||||
@@ -145,7 +146,7 @@ func load_user_data():
|
|||||||
func save_game_data(level_name):
|
func save_game_data(level_name):
|
||||||
var level_control = get_tree().current_scene
|
var level_control = get_tree().current_scene
|
||||||
var player = level_control.player
|
var player = level_control.player
|
||||||
var game_save_path = str("user://",GameGlobals.leaderboard_name,"_",level_name,"_gamesave.save")
|
var game_save_path = str("user://",GameGlobals.current_leaderboard_name,"_",level_name,"_gamesave.save")
|
||||||
var file = FileAccess.open(game_save_path, FileAccess.WRITE)
|
var file = FileAccess.open(game_save_path, FileAccess.WRITE)
|
||||||
#ASSIGN DATA TO VARIABLES
|
#ASSIGN DATA TO VARIABLES
|
||||||
data_cleared = false
|
data_cleared = false
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
extends Area3D
|
extends Area3D
|
||||||
|
class_name Portal
|
||||||
|
|
||||||
@export var scene_path : String
|
@export var scene_path : String
|
||||||
@export var scene_name : String
|
@export var scene_name : String
|
||||||
|
|||||||
Reference in New Issue
Block a user