diff --git a/.vscode/settings.json b/.vscode/settings.json index d9a42ed..fca5288 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,3 @@ { - "godotTools.editorPath.godot4": "c:\\Program Files\\Godot_v4.2.2-stable_win64.exe\\Godot_v4.2.2-stable_win64.exe" + "godotTools.editorPath.godot4": "c:\\Program Files\\Godot\\Godot_v4.4-stable_win64.exe\\Godot_v4.4-stable_win64.exe" } \ No newline at end of file diff --git a/MainMenu.tscn b/MainMenu.tscn index e03a188..7761d89 100644 --- a/MainMenu.tscn +++ b/MainMenu.tscn @@ -66,7 +66,6 @@ layout_mode = 1 hub_world = ExtResource("4_3fnrj") maps_in_rotation = Array[ExtResource("4_p7b2e")]([ExtResource("5_rnncn"), ExtResource("6_3fnrj"), ExtResource("7_m04lp"), ExtResource("8_1thib")]) gamemodes_in_rotation = Array[ExtResource("4_p0ng4")]([ExtResource("5_lv7ko")]) -levels_per_round = 4 [node name="MarginContainer" type="MarginContainer" parent="."] layout_mode = 1 diff --git a/assets/LevelBlockouts/hub_1.tscn b/assets/LevelBlockouts/hub_1.tscn index 1035b10..294cffd 100644 --- a/assets/LevelBlockouts/hub_1.tscn +++ b/assets/LevelBlockouts/hub_1.tscn @@ -1,16 +1,18 @@ -[gd_scene load_steps=18 format=3 uid="uid://otkecr0hcyon"] +[gd_scene load_steps=20 format=3 uid="uid://otkecr0hcyon"] [ext_resource type="PackedScene" uid="uid://bj1y0fbjtul4a" path="res://post_processing.tscn" id="1_48lr2"] [ext_resource type="PackedScene" uid="uid://drwae3loscbw7" path="res://assets/player.tscn" id="1_ibypk"] [ext_resource type="Script" uid="uid://bkii8jwf0k7tq" path="res://scripts/LevelManager.gd" id="1_v17bv"] [ext_resource type="PackedScene" uid="uid://dgvmwyhj43bol" path="res://levels/LevelModels/Hub1.blend" id="2_ibypk"] [ext_resource type="Resource" uid="uid://bxcxqt7rmfvdw" path="res://GameModes/hubworld.tres" id="2_pxx7p"] +[ext_resource type="Script" uid="uid://clph3byphno03" path="res://scripts/playlist_loader.gd" id="3_3c1m5"] [ext_resource type="PackedScene" uid="uid://c1xw80jkg3reb" path="res://assets/target_1.tscn" id="6_sibpp"] [ext_resource type="PackedScene" uid="uid://b0y5rqfeh1hb1" path="res://assets/chair_1.tscn" id="7_rgl24"] [ext_resource type="PackedScene" uid="uid://c0uv33kbndbvy" path="res://assets/trashcan.tscn" id="8_7e18o"] [ext_resource type="PackedScene" uid="uid://dyu46bns8mesv" path="res://assets/mac10_pickup.tscn" id="9_7e18o"] [ext_resource type="PackedScene" uid="uid://dugcxo2665me0" path="res://assets/revolver1_pickup.tscn" id="10_20m5p"] [ext_resource type="PackedScene" uid="uid://dgapcuvg0gtmm" path="res://assets/scene_changer.tscn" id="11_titu4"] +[ext_resource type="PackedScene" uid="uid://eujx0yilqqcp" path="res://assets/level_sign.tscn" id="13_ng05k"] [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_48lr2"] sky_horizon_color = Color(0.662243, 0.671743, 0.686743, 1) @@ -104,6 +106,12 @@ script = ExtResource("1_v17bv") map_name = "Hub 1" gamemode = ExtResource("2_pxx7p") +[node name="LEVEL UTILS" type="Node" parent="."] + +[node name="PlaylistLoader" type="Node" parent="LEVEL UTILS" node_paths=PackedStringArray("portal_parent")] +script = ExtResource("3_3c1m5") +portal_parent = NodePath("../../Tubes") + [node name="Player" parent="." instance=ExtResource("1_ibypk")] [node name="WorldEnvironment" type="WorldEnvironment" parent="."] @@ -241,3 +249,60 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -19.6736, 6.57787, -17.6494) [node name="Scene Changer" parent="Tubes" instance=ExtResource("11_titu4")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.07024, -64.2195, -11.6417) + +[node name="Level Sign" parent="Tubes/Scene Changer" instance=ExtResource("13_ng05k")] +transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403) + +[node name="Scene Changer2" parent="Tubes" instance=ExtResource("11_titu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.07024, -64.2195, -19.1273) + +[node name="Level Sign" parent="Tubes/Scene Changer2" instance=ExtResource("13_ng05k")] +transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403) + +[node name="Scene Changer3" parent="Tubes" instance=ExtResource("11_titu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.07024, -64.2195, -27.1599) + +[node name="Level Sign" parent="Tubes/Scene Changer3" instance=ExtResource("13_ng05k")] +transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403) + +[node name="Scene Changer4" parent="Tubes" instance=ExtResource("11_titu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.07024, -64.2195, -34.7607) + +[node name="Level Sign" parent="Tubes/Scene Changer4" instance=ExtResource("13_ng05k")] +transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403) + +[node name="Scene Changer5" parent="Tubes" instance=ExtResource("11_titu4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.07024, -64.2195, -42.1311) + +[node name="Level Sign" parent="Tubes/Scene Changer5" instance=ExtResource("13_ng05k")] +transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403) + +[node name="Scene Changer6" parent="Tubes" instance=ExtResource("11_titu4")] +transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 9.17812, -64.2195, -42.2864) + +[node name="Level Sign" parent="Tubes/Scene Changer6" instance=ExtResource("13_ng05k")] +transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403) + +[node name="Scene Changer7" parent="Tubes" instance=ExtResource("11_titu4")] +transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 9.21706, -64.2195, -34.8009) + +[node name="Level Sign" parent="Tubes/Scene Changer7" instance=ExtResource("13_ng05k")] +transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403) + +[node name="Scene Changer8" parent="Tubes" instance=ExtResource("11_titu4")] +transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 9.25883, -64.2195, -26.7684) + +[node name="Level Sign" parent="Tubes/Scene Changer8" instance=ExtResource("13_ng05k")] +transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403) + +[node name="Scene Changer9" parent="Tubes" instance=ExtResource("11_titu4")] +transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 9.29837, -64.2195, -19.1677) + +[node name="Level Sign" parent="Tubes/Scene Changer9" instance=ExtResource("13_ng05k")] +transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403) + +[node name="Scene Changer10" parent="Tubes" instance=ExtResource("11_titu4")] +transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 9.3367, -64.2195, -11.7974) + +[node name="Level Sign" parent="Tubes/Scene Changer10" instance=ExtResource("13_ng05k")] +transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403) diff --git a/assets/player.tscn b/assets/player.tscn index dbc86af..5a980cb 100644 --- a/assets/player.tscn +++ b/assets/player.tscn @@ -127,7 +127,7 @@ _data = { } [node name="Player" type="CharacterBody3D" node_paths=PackedStringArray("weapon_holder") groups=["persist", "player"]] -transform = Transform3D(1, 0.000164476, 0.000583754, -0.000165075, 0.999999, 0.00104027, -0.000583585, -0.00104036, 0.999999, 0, 1.11359, 0) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1, 0) collision_layer = 6 collision_mask = 523 script = ExtResource("1_x7wms") diff --git a/assets/weaponresources/mac10_uberresource.tres b/assets/weaponresources/mac10_uberresource.tres index 3ce509a..d3d4f53 100644 --- a/assets/weaponresources/mac10_uberresource.tres +++ b/assets/weaponresources/mac10_uberresource.tres @@ -18,7 +18,7 @@ fire_mode = 0 fov_zoom_amt = 0.98 crosshair_radius = 50 ads = false -recoil_amount = Vector3(0.025, 0.05, 0.05) +recoil_amount = Vector3(0.05, 0.05, 0.05) crosshair_jump_amount = 10 kick_amount = 0.1 max_ammo = 20 diff --git a/levels/LevelModels/Hub1.blend b/levels/LevelModels/Hub1.blend index 962729a..e688b06 100644 Binary files a/levels/LevelModels/Hub1.blend and b/levels/LevelModels/Hub1.blend differ diff --git a/levels/LevelModels/Hub1.blend1 b/levels/LevelModels/Hub1.blend1 index e5e7a4b..f8d18b0 100644 Binary files a/levels/LevelModels/Hub1.blend1 and b/levels/LevelModels/Hub1.blend1 differ diff --git a/scenes/HUBWORLD.tscn b/scenes/HUBWORLD.tscn index fe01299..b49295e 100644 --- a/scenes/HUBWORLD.tscn +++ b/scenes/HUBWORLD.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=24 format=3 uid="uid://jdwpc622vmok"] +[gd_scene load_steps=22 format=3 uid="uid://jdwpc622vmok"] [ext_resource type="Script" uid="uid://bkii8jwf0k7tq" path="res://scripts/LevelManager.gd" id="1_1bnbi"] [ext_resource type="Resource" uid="uid://bxcxqt7rmfvdw" path="res://GameModes/hubworld.tres" id="2_62iy8"] @@ -9,8 +9,6 @@ [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://bessq6hl7qsh8" path="res://assets/stats.tscn" id="6_mkn70"] -[ext_resource type="Resource" uid="uid://bs8yvpq65yh3w" path="res://GameModes/cookie_mode.tres" id="6_pf4wj"] -[ext_resource type="Resource" uid="uid://dn3t7wcoumlm3" path="res://GameModes/standard.tres" id="6_t16kj"] [ext_resource type="PackedScene" uid="uid://bj1y0fbjtul4a" path="res://post_processing.tscn" id="7_2h1ea"] [ext_resource type="PackedScene" uid="uid://bvjrsc86n2ak0" path="res://assets/deposit_money.tscn" id="8_n0nhe"] [ext_resource type="PackedScene" uid="uid://c6bpysq1tjhy4" path="res://vendingmahcine.tscn" id="9_nu6q5"] @@ -36,10 +34,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0169516, 0.0284452, -0.008 [node name="LEVEL UTILS" type="Node" parent="."] [node name="Playlist Generator" parent="LEVEL UTILS" instance=ExtResource("3_udqcb")] -checksum_test = null -load_playlist_from_file = null -chest_drops = null -chests_per_match = null +chest_drops = Array[Resource]([]) [node name="PlaylistLoader" type="Node" parent="LEVEL UTILS"] script = ExtResource("3_2u2e7") @@ -182,28 +177,15 @@ transform = Transform3D(1, 0.000164476, 0.000583754, -0.000165075, 0.999999, 0.0 [node name="EnemyWorkingScene" parent="." instance=ExtResource("5_alya6")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.3745, -57.3609, -4.76346) -scene_path = "res://scenes/enemy_working_scene.tscn" -scene_name = "Enemy Working Scene" -level_gamemode = ExtResource("6_t16kj") -hub_portal = true [node name="Blockout2" parent="." instance=ExtResource("5_alya6")] transform = Transform3D(0.00439817, 0, 0.99999, 0, 1, 0, -0.99999, 0, 0.00439817, -18.9232, -57.3609, -0.308022) -hub_portal = true [node name="Gulag of Money" parent="." instance=ExtResource("5_alya6")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.869051, -57.3609, 22.9677) -scene_path = "res://scenes/Arena of Money.tscn" -scene_name = "The Gulag" -level_gamemode = ExtResource("6_pf4wj") -hub_portal = true [node name="TestLevel2v2" parent="." instance=ExtResource("5_alya6")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.379696, -57.3609, -23.5075) -scene_path = "res://scenes/test_level_2v2.tscn" -scene_name = "Test Level 2v2" -level_gamemode = ExtResource("6_t16kj") -hub_portal = true [node name="Stats" parent="." instance=ExtResource("6_mkn70")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.212402, 1.9891, -6.02898) @@ -222,21 +204,17 @@ item_name = "ammo" item_price = 25 number_uses = 15 -[node name="Level Sign" parent="." node_paths=PackedStringArray("portal_node") instance=ExtResource("11_p3sg0")] +[node name="Level Sign" parent="." instance=ExtResource("11_p3sg0")] transform = Transform3D(0.738985, 0, -0.673722, 0, 1, 0, 0.673722, 0, 0.738985, 7.37127, 1.19867, -9.17978) -portal_node = NodePath("../EnemyWorkingScene") -[node name="Level Sign4" parent="." node_paths=PackedStringArray("portal_node") instance=ExtResource("11_p3sg0")] +[node name="Level Sign4" parent="." instance=ExtResource("11_p3sg0")] transform = Transform3D(0.744626, 0, 0.667482, 0, 1, 0, -0.667482, 0, 0.744626, -2.45327, 1.19867, -9.41885) -portal_node = NodePath("../TestLevel2v2") -[node name="Level Sign2" parent="." node_paths=PackedStringArray("portal_node") instance=ExtResource("11_p3sg0")] +[node name="Level Sign2" parent="." instance=ExtResource("11_p3sg0")] transform = Transform3D(-0.529904, 0, 0.848057, 0, 1, 0, -0.848057, 0, -0.529904, -7.68211, 1.19868, 2.00196) -portal_node = NodePath("../Blockout2") -[node name="Level Sign3" parent="." node_paths=PackedStringArray("portal_node") instance=ExtResource("11_p3sg0")] +[node name="Level Sign3" parent="." instance=ExtResource("11_p3sg0")] transform = Transform3D(-0.899916, 0, -0.436063, 0, 1, 0, 0.436063, 0, -0.899916, 2.88079, 1.19868, 10.7051) -portal_node = NodePath("../Gulag of Money") [node name="HealthDispenser" parent="." instance=ExtResource("13_h5xga")] transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 7.99763, 1.77484, -1.41809) diff --git a/scripts/level_sign.gd b/scripts/level_sign.gd index 75d08be..38a0f0a 100644 --- a/scripts/level_sign.gd +++ b/scripts/level_sign.gd @@ -1,16 +1,18 @@ extends Node3D -@export var portal_node : Node +@onready var portal_node = get_parent() @onready var level_name: Label3D = $"Level Name" @onready var gamemode_label: Label3D = $Gamemode @onready var active: Label3D = $Active + func _process(delta: float) -> void: + if portal_node.active: - level_name.text = portal_node.scene_name - if portal_node.level_gamemode != null: - gamemode_label.text = portal_node.level_gamemode.gamemode_name + level_name.text = portal_node.level_info["level_name"] + if portal_node.level_info["gamemode_path"] != null: + gamemode_label.text = load(portal_node.level_info["gamemode_path"]).gamemode_name active.text = str("active: ",portal_node.active) else: level_name.text = "closed for maintenance" diff --git a/scripts/playlist_generator.gd b/scripts/playlist_generator.gd index 100b0bb..3458d27 100644 --- a/scripts/playlist_generator.gd +++ b/scripts/playlist_generator.gd @@ -6,7 +6,7 @@ extends Node @export var maps_in_rotation : Array[level_resource] = [] @export var gamemodes_in_rotation : Array[gamemode]= [] @export var chest_drops : Array[Resource] -@export var levels_per_round : int = 5 +@export var levels_per_round : int = 10 @export var rounds_per_match : int = 3 @export var chests_per_match : int = 100 @export var matches_per_year : int = 52 @@ -46,7 +46,7 @@ func generate_playlist() -> void: var numbers = [] for i in range(chests_per_match): - numbers.append(i+1) + numbers.append(i) numbers.shuffle() diff --git a/scripts/playlist_loader.gd b/scripts/playlist_loader.gd index 657ff85..5a7b0ec 100644 --- a/scripts/playlist_loader.gd +++ b/scripts/playlist_loader.gd @@ -1,20 +1,21 @@ extends Node +@export var portal_parent : Node3D + @onready var playlist_generator: Control = $"../Playlist Generator" +@onready var current_match = GameGlobals.playlist[GameGlobals.current_match_id] +@onready var current_round = current_match[GameGlobals.current_round_id]["round"] var portals = [] # Called when the node enters the scene tree for the first time. func _ready() -> void: - if GameGlobals.current_match[GameGlobals.current_round_id] == [] or GameGlobals.current_match[GameGlobals.current_round_id] == null: - 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"): + for i in portal_parent.get_children(): + if i is Portal: portals.append(i) - if GameGlobals.current_match[GameGlobals.current_round_id].size() == 0: + + if GameGlobals.playlist[0][GameGlobals.current_round_id].size() == 0: var next_round = GameGlobals.current_round_id + 1 if next_round <= (GameGlobals.current_match.size() - 1): GameGlobals.current_round_id = next_round @@ -22,19 +23,10 @@ func _ready() -> void: var id = 0 for i in portals: - if id <= (GameGlobals.current_match[GameGlobals.current_round_id].size() - 1): - if GameGlobals.current_match[GameGlobals.current_round_id][id] != null: - var level_spawn = GameGlobals.current_match[GameGlobals.current_round_id][id] - i.index = id - i.active = true - i.scene_path = str(level_spawn["level_path"]) - i.scene_name = str(level_spawn["level_name"]) - i.level_gamemode = load(level_spawn["gamemode_path"]) - else: - i.active = false - i.scene_name = "closed" + if id <= (current_round.size() - 1): + var level_spawn = current_round[id] + i.level_info = level_spawn else: i.active = false - i.scene_name = "closed" id += 1 SaveLoad.save_user_data() diff --git a/scripts/scene_changer.gd b/scripts/scene_changer.gd index aee1e29..bcb3e2e 100644 --- a/scripts/scene_changer.gd +++ b/scripts/scene_changer.gd @@ -1,12 +1,9 @@ extends Area3D class_name Portal -@export var scene_path : String -@export var scene_name : String -@export var level_gamemode : gamemode -@export var scene_thumbnail : Texture2D -@export var hub_portal : bool = false -const ENEMY_WORKING_SCENE_ASYNCTEST = preload("res://scenes/enemy_working_scene_ASYNCTEST.tscn") +var level_info = {} + + var timer_active = false var active = true var index : int @@ -25,16 +22,10 @@ func _on_body_entered(body: Node3D) -> void: if body.is_in_group("player"): if active and timer_active: active = false + var scene = load(level_info["level_path"]).instantiate() - var scene = ENEMY_WORKING_SCENE_ASYNCTEST.instantiate() get_tree().current_scene.add_child(scene) scene.global_position = global_position - #Set incoming gamemode - GameGlobals.loading_gamemode = level_gamemode - #Save data - if get_tree().current_scene.gamemode.load_save == true: - SaveLoad.save_game_data(get_tree().current_scene.get_name()) - SaveLoad.save_user_data() func _on_start_activation_timeout() -> void: diff --git a/scripts/weapon_resource.gd b/scripts/weapon_resource.gd index ac2bf2e..485b0e2 100644 --- a/scripts/weapon_resource.gd +++ b/scripts/weapon_resource.gd @@ -38,3 +38,5 @@ class_name weapon_resource @export var tracker_asset : Resource @export_group("Hitscan Settings") @export var hitscan_range : float = 100 ##for hitscan and melee weapons + +var calculated_rigidbody_spawn_velocity = {}