diff --git a/export_presets.cfg b/export_presets.cfg index 618f0de..3fb5929 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -7,7 +7,7 @@ custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" -export_path="../output/test_build.exe" +export_path="../output/test_dumb_graphics_bug.exe" script_export_mode=1 script_encryption_key="" diff --git a/game.gd b/game.gd index d46f3d5..fa72f91 100644 --- a/game.gd +++ b/game.gd @@ -111,7 +111,6 @@ func _process(delta): viewport_container.material.set_shader_param("enabled",!viewport_container.material.get_shader_param("enabled")) #Fullscreen if Input.is_action_just_pressed("fullscreen"): - print(fullscreen) fullscreen = !fullscreen if fullscreen: OS.set_window_fullscreen(true) diff --git a/maps/level_select.gd b/maps/level_select.gd index 8fad17b..2e65259 100644 --- a/maps/level_select.gd +++ b/maps/level_select.gd @@ -29,7 +29,7 @@ var current_shard = 0 # Called when the node enters the scene tree for the first time. func _ready(): - pass + change_current_level(1) func _physics_process(delta): if Input.is_action_just_pressed("ui_up"): change_current_level(-1) @@ -40,18 +40,21 @@ func _physics_process(delta): title.text = levels.level[current_level].level_title #Draw Shard Title shard_title.text = levels.level[current_level].shard_title[current_shard] + #Select level + if Input.is_action_just_pressed("jump"): + Game.change_map(levels.level[current_level].scene) func change_current_shard(amount): - if current_shard + amount != -1 && current_shard + amount != 10: #Check if in range + if current_shard + amount != 0 && current_shard + amount != 8: #Check if in range current_shard += amount shard_arrow.position.x += 15 * amount func change_current_level(amount): #Change level - if current_level + amount != -1 && current_level + amount != levels.level.size(): #Check if in range + if current_level + amount != 0 && current_level + amount != levels.level.size(): #Check if in range current_level += amount #Show arrows or don't - if current_level == 0: + if current_level == 1: levelarrow_up.visible = false levelarrow_down.visible = true elif current_level == levels.level.size() - 1: @@ -62,7 +65,7 @@ func change_current_level(amount): levelarrow_up.visible = true #Return Shard select current_shard = 0 - shard_arrow.position.x = 61 + shard_arrow.position.x = 76 #Load new data var save = ConfigFile.new() save.load(str("user://file") + str(Game.current_file) + str(".pr")) @@ -71,7 +74,6 @@ func change_current_level(amount): # high_score.text = str("%04d" % save.get_value(str_level,"High Score",0)) # golds.text = str("%02d" % save.get_value(str_level,"Golds",0)) #Draw High Scores - print(str_level) high_score_any.text = "Any%\n" + str("%05d" % save.get_value(str_level,"Any% High Score",0)) + "\n" + str(Game.timeify(save.get_value(str_level,"Any% Time",0))) high_score_100.text = "100%\n" + str("%05d" % save.get_value(str_level,"100% High Score",0)) + "\n" + str(Game.timeify(save.get_value(str_level,"100% Time",0))) #Draw shards collected diff --git a/maps/level_select.tscn b/maps/level_select.tscn index 8d2638c..fef868f 100644 --- a/maps/level_select.tscn +++ b/maps/level_select.tscn @@ -126,9 +126,9 @@ align = 1 [node name="ShardTitle" type="Label" parent="."] margin_left = 43.0 -margin_top = 129.0 +margin_top = 130.0 margin_right = 213.0 -margin_bottom = 172.0 +margin_bottom = 173.0 theme = ExtResource( 1 ) text = "Collect all coins " @@ -140,91 +140,95 @@ position = Vector2( 0, 7 ) [node name="Shard11" type="Sprite" parent="ShardGraphics"] modulate = Color( 0, 0, 0, 1 ) material = SubResource( 2 ) -position = Vector2( 61, 118 ) +position = Vector2( 76, 118 ) texture = ExtResource( 8 ) [node name="Shard12" type="Sprite" parent="ShardGraphics"] modulate = Color( 0, 0, 0, 1 ) material = SubResource( 2 ) -position = Vector2( 76, 118 ) +position = Vector2( 91, 118 ) texture = ExtResource( 8 ) [node name="Shard13" type="Sprite" parent="ShardGraphics"] modulate = Color( 0, 0, 0, 1 ) material = SubResource( 2 ) -position = Vector2( 91, 118 ) +position = Vector2( 106, 118 ) texture = ExtResource( 8 ) [node name="Shard14" type="Sprite" parent="ShardGraphics"] modulate = Color( 0, 0, 0, 1 ) material = SubResource( 2 ) -position = Vector2( 106, 118 ) +position = Vector2( 121, 118 ) texture = ExtResource( 8 ) [node name="Shard15" type="Sprite" parent="ShardGraphics"] modulate = Color( 0, 0, 0, 1 ) material = SubResource( 2 ) -position = Vector2( 121, 118 ) +position = Vector2( 136, 118 ) texture = ExtResource( 8 ) [node name="Shard16" type="Sprite" parent="ShardGraphics"] modulate = Color( 0, 0, 0, 1 ) material = SubResource( 2 ) -position = Vector2( 136, 118 ) +position = Vector2( 151, 118 ) texture = ExtResource( 8 ) [node name="Shard17" type="Sprite" parent="ShardGraphics"] modulate = Color( 0, 0, 0, 1 ) material = SubResource( 2 ) -position = Vector2( 151, 118 ) +position = Vector2( 166, 118 ) texture = ExtResource( 8 ) [node name="Shard18" type="Sprite" parent="ShardGraphics"] modulate = Color( 0, 0, 0, 1 ) material = SubResource( 2 ) -position = Vector2( 166, 118 ) +position = Vector2( 181, 118 ) texture = ExtResource( 8 ) [node name="Shard19" type="Sprite" parent="ShardGraphics"] +visible = false modulate = Color( 0, 0, 0, 1 ) material = SubResource( 2 ) position = Vector2( 181, 118 ) texture = ExtResource( 8 ) [node name="Shard20" type="Sprite" parent="ShardGraphics"] +visible = false modulate = Color( 0, 0, 0, 1 ) material = SubResource( 2 ) position = Vector2( 196, 118 ) texture = ExtResource( 8 ) [node name="Shard" parent="ShardGraphics" instance=ExtResource( 9 )] -position = Vector2( 56, 115 ) - -[node name="Shard2" parent="ShardGraphics" instance=ExtResource( 9 )] position = Vector2( 71, 115 ) -[node name="Shard3" parent="ShardGraphics" instance=ExtResource( 9 )] +[node name="Shard2" parent="ShardGraphics" instance=ExtResource( 9 )] position = Vector2( 86, 115 ) -[node name="Shard4" parent="ShardGraphics" instance=ExtResource( 9 )] +[node name="Shard3" parent="ShardGraphics" instance=ExtResource( 9 )] position = Vector2( 101, 115 ) -[node name="Shard5" parent="ShardGraphics" instance=ExtResource( 9 )] +[node name="Shard4" parent="ShardGraphics" instance=ExtResource( 9 )] position = Vector2( 116, 115 ) -[node name="Shard6" parent="ShardGraphics" instance=ExtResource( 9 )] +[node name="Shard5" parent="ShardGraphics" instance=ExtResource( 9 )] position = Vector2( 131, 115 ) -[node name="Shard7" parent="ShardGraphics" instance=ExtResource( 9 )] +[node name="Shard6" parent="ShardGraphics" instance=ExtResource( 9 )] position = Vector2( 146, 115 ) -[node name="Shard8" parent="ShardGraphics" instance=ExtResource( 9 )] +[node name="Shard7" parent="ShardGraphics" instance=ExtResource( 9 )] position = Vector2( 161, 115 ) +[node name="Shard8" parent="ShardGraphics" instance=ExtResource( 9 )] +position = Vector2( 176, 115 ) + [node name="Shard9" parent="ShardGraphics" instance=ExtResource( 9 )] +visible = false position = Vector2( 176, 115 ) [node name="Shard10" parent="ShardGraphics" instance=ExtResource( 9 )] +visible = false position = Vector2( 191, 115 ) [node name="Gold" parent="." instance=ExtResource( 5 )] @@ -232,7 +236,7 @@ visible = false position = Vector2( 111, 91 ) [node name="ShardArrow" type="Sprite" parent="."] -position = Vector2( 61, 113 ) +position = Vector2( 76, 113 ) texture = ExtResource( 4 ) [node name="LevelArrowUp" type="Sprite" parent="."] diff --git a/maps/leveldata/level0_info.tres b/maps/leveldata/level0_info.tres index 22d10d9..39f0649 100644 --- a/maps/leveldata/level0_info.tres +++ b/maps/leveldata/level0_info.tres @@ -1,9 +1,11 @@ -[gd_resource type="Resource" load_steps=2 format=2] +[gd_resource type="Resource" load_steps=3 format=2] [ext_resource path="res://maps/leveldata/level_info.gd" type="Script" id=1] +[ext_resource path="res://objects/player/player.tscn" type="PackedScene" id=2] [resource] script = ExtResource( 1 ) level_title = "Level 0" shard_title = [ "a", "b", "c", "d", "e", "f", "g", "h", "i", "j" ] level_number = 0 +scene = ExtResource( 2 ) diff --git a/maps/leveldata/level1_info.tres b/maps/leveldata/level1_info.tres index 8b01b89..a9a944d 100644 --- a/maps/leveldata/level1_info.tres +++ b/maps/leveldata/level1_info.tres @@ -1,9 +1,11 @@ -[gd_resource type="Resource" load_steps=2 format=2] +[gd_resource type="Resource" load_steps=3 format=2] [ext_resource path="res://maps/leveldata/level_info.gd" type="Script" id=1] +[ext_resource path="res://maps/map01.tscn" type="PackedScene" id=2] [resource] script = ExtResource( 1 ) level_title = "Level 1" -shard_title = [ "Climb the big vine", "Next to the lone tree", "Slime's Treasure", "The snake pit", "5 Rainbow Stars", "All Shards + Beat 0:00", "Beat 000000 score", "Collect Everything", "Beat without dying", "No turning platforms" ] -level_number = 1 +shard_title = [ "Climb the big vine", "Next to the lone tree", "Slime's Treasure", "The snake pit", "5 Rainbow Stars", "Collection bonus", "Time bonus", "Life bonus", "Beat without dying", "No turning platforms" ] +level_number = 0 +scene = ExtResource( 2 ) diff --git a/maps/leveldata/level_info.gd b/maps/leveldata/level_info.gd index e0e4c89..683dbe7 100644 --- a/maps/leveldata/level_info.gd +++ b/maps/leveldata/level_info.gd @@ -3,3 +3,4 @@ extends Resource export var level_title = "" export var shard_title = ["","","","","","","","","","",] export var level_number = 0 #level number, used for saving not for level order +export (PackedScene) var scene diff --git a/maps/map.gd b/maps/map.gd new file mode 100644 index 0000000..0a09823 --- /dev/null +++ b/maps/map.gd @@ -0,0 +1,29 @@ +extends Node2D +export var target_time_any = 0 +export var target_time_100 = 0 +export var save_location = 0 +export (AudioStream) var music + +#Bonuses +var time_bonus = true +var life_bonus = true +var collectible_bonus = false + +func _ready(): + Game.play_sound(load("res://audio/music/rumble_loop.mp3"),Game.ac_music) + Game.current_level = save_location + +func _physics_process(delta): + if Game.golds == 50 && Game.shards == 5: + #Time bonus + collectible_bonus = true + #Time bonus + if Game.time <= target_time_100: + time_bonus = true + else: + time_bonus = false + else: + if Game.time <= target_time_any: + time_bonus = true + else: + time_bonus = false diff --git a/maps/map01.gd b/maps/map01.gd deleted file mode 100644 index e90a6b4..0000000 --- a/maps/map01.gd +++ /dev/null @@ -1,7 +0,0 @@ -extends Node2D -export var target_time_any = 0 -export var target_time_100 = 0 - -func _ready(): - Game.play_sound(load("res://audio/music/rumble_loop.mp3"),Game.ac_music) - Game.current_level = 1 diff --git a/maps/map01.tscn b/maps/map01.tscn index 2a793e6..57c1f2c 100644 --- a/maps/map01.tscn +++ b/maps/map01.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=21 format=2] +[gd_scene load_steps=22 format=2] [ext_resource path="res://objects/player/player.tscn" type="PackedScene" id=1] [ext_resource path="res://objects/ladder/ladder.tscn" type="PackedScene" id=2] @@ -17,7 +17,8 @@ [ext_resource path="res://objects/barrier/barrier.tscn" type="PackedScene" id=15] [ext_resource path="res://objects/turniwood/turniwood.tscn" type="PackedScene" id=16] [ext_resource path="res://objects/collectibles/arrow.tscn" type="PackedScene" id=17] -[ext_resource path="res://maps/map01.gd" type="Script" id=18] +[ext_resource path="res://maps/map.gd" type="Script" id=18] +[ext_resource path="res://audio/music/rumble_loop.mp3" type="AudioStream" id=19] [ext_resource path="res://objects/exit/exit.tscn" type="PackedScene" id=20] [sub_resource type="RectangleShape2D" id=1] @@ -27,6 +28,8 @@ extents = Vector2( 8, 128 ) script = ExtResource( 18 ) target_time_any = 70 target_time_100 = 180 +save_location = 1 +music = ExtResource( 19 ) [node name="Camera2D" parent="." instance=ExtResource( 8 )] smoothing_enabled = false diff --git a/objects/debug.tscn b/objects/debug.tscn index 52cf19e..abe1941 100644 --- a/objects/debug.tscn +++ b/objects/debug.tscn @@ -52,7 +52,7 @@ func _physics_process(delta): Debug.print(get_viewport().get_mouse_position()) #Debug 1 if Input.is_action_just_pressed(\"debug_1\"): - Game.save() + Game.change_map(load(\"res://maps/level_select.tscn\")) #Debug 2 if Input.is_action_just_pressed(\"debug_2\"): var save = ConfigFile.new() diff --git a/objects/exit/exit.gd b/objects/exit/exit.gd index d21add4..a6a9772 100644 --- a/objects/exit/exit.gd +++ b/objects/exit/exit.gd @@ -18,18 +18,26 @@ func _on_Area2D_area_entered(area): if area.is_in_group("player"): if Game.score > Game.high_score: Game.high_score = Game.score #BONUSES - #Time bonus - if Game.golds == 50 && Game.shards == 5: - if Game.time < map.target_time_100: Game.score += floor(2500 * (Game.time / map.target_time_100)) - else: - if Game.time < map.target_time_any: Game.score += floor(2500 * (Game.time / map.target_time_any)) #Collection bonus if Game.golds == 50: Game.score += 500 if Game.shards == 5: Game.score += 500 - if Game.golds == 50 && Game.shards == 5: Game.score += 250 + if Game.golds == 50 && Game.shards == 5: + Game.score += 250 + Game.shards_collected[5] = true + #Time bonus + if Game.golds == 50 && Game.shards == 5: + if Game.time < map.target_time_100: + Game.score += floor(2500 * (Game.time / map.target_time_100)) + Game.shards_collected[6] = true + else: + if Game.time < map.target_time_any: + Game.score += floor(2500 * (Game.time / map.target_time_any)) + Game.shards_collected[6] = true #Life bonus if Game.lives == 1: Game.score += 500 - if Game.lives == 2: Game.score += 1500 + if Game.lives == 2: + Game.score += 1500 + Game.shards_collected[7] = true #Perfect bonus if Game.lives == 2 && Game.golds == 50 && Game.shards == 5 && Game.time < map.target_time_100: Game.score += 1000