From cbeeacdf98988a50c62bb05bf6d6de62604200cb Mon Sep 17 00:00:00 2001 From: Harmony Monroe Date: Mon, 16 Nov 2020 15:55:37 -0500 Subject: [PATCH] more messy work, stage save data WIP --- Map/{map0.tscn => 1-1.tscn} | 0 Map/{map1.tscn => 1-2.tscn} | 0 Map/{map2.tscn => 1-3.tscn} | 0 Map/{map3.tscn => 1-4.tscn} | 0 Map/{map4.tscn => 1-5.tscn} | 0 Map/{map5.tscn => 1-6.tscn} | 0 Map/{map6.tscn => 1-7.tscn} | 0 Scene/MonitorScene.tscn | 3 ++- Scene/select.tscn | 17 ++++++++++------- Script/Actor/Player.gd | 6 +++++- Script/AutoLoad/Shared.gd | 26 +++++++++++++++----------- Script/MapSelect.gd | 35 +++++++++++++++++++++++------------ Script/Stage/Stage.gd | 15 +++++++++++++++ 13 files changed, 70 insertions(+), 32 deletions(-) rename Map/{map0.tscn => 1-1.tscn} (100%) rename Map/{map1.tscn => 1-2.tscn} (100%) rename Map/{map2.tscn => 1-3.tscn} (100%) rename Map/{map3.tscn => 1-4.tscn} (100%) rename Map/{map4.tscn => 1-5.tscn} (100%) rename Map/{map5.tscn => 1-6.tscn} (100%) rename Map/{map6.tscn => 1-7.tscn} (100%) diff --git a/Map/map0.tscn b/Map/1-1.tscn similarity index 100% rename from Map/map0.tscn rename to Map/1-1.tscn diff --git a/Map/map1.tscn b/Map/1-2.tscn similarity index 100% rename from Map/map1.tscn rename to Map/1-2.tscn diff --git a/Map/map2.tscn b/Map/1-3.tscn similarity index 100% rename from Map/map2.tscn rename to Map/1-3.tscn diff --git a/Map/map3.tscn b/Map/1-4.tscn similarity index 100% rename from Map/map3.tscn rename to Map/1-4.tscn diff --git a/Map/map4.tscn b/Map/1-5.tscn similarity index 100% rename from Map/map4.tscn rename to Map/1-5.tscn diff --git a/Map/map5.tscn b/Map/1-6.tscn similarity index 100% rename from Map/map5.tscn rename to Map/1-6.tscn diff --git a/Map/map6.tscn b/Map/1-7.tscn similarity index 100% rename from Map/map6.tscn rename to Map/1-7.tscn diff --git a/Scene/MonitorScene.tscn b/Scene/MonitorScene.tscn index 3a7a8f8..068118d 100644 --- a/Scene/MonitorScene.tscn +++ b/Scene/MonitorScene.tscn @@ -1,11 +1,12 @@ [gd_scene load_steps=11 format=2] -[ext_resource path="res://Map/map5.tscn" type="PackedScene" id=1] +[ext_resource path="res://Map/1-6.tscn" type="PackedScene" id=1] [ext_resource path="res://DefaultMaterial.material" type="Material" id=2] [ext_resource path="res://Material.material" type="Material" id=3] + [sub_resource type="CubeMesh" id=1] [sub_resource type="Animation" id=2] diff --git a/Scene/select.tscn b/Scene/select.tscn index cdd7391..ff92233 100644 --- a/Scene/select.tscn +++ b/Scene/select.tscn @@ -6,13 +6,13 @@ [node name="Node2D" type="Node2D"] position = Vector2( 1, 1 ) script = ExtResource( 2 ) -map_list = "map0 -map1 -map2 -map3 -map4 -map5 -map6 +map_list = "1-1 +1-2 +1-3 +1-4 +1-5 +1-6 +1-7 map_jump_test map_switch map_tread @@ -46,6 +46,9 @@ margin_bottom = 170.0 custom_fonts/normal_font = ExtResource( 1 ) text = "info" scroll_active = false +__meta__ = { +"_edit_use_anchors_": false +} [node name="Cursor" type="Label" parent="Control"] margin_left = 10.0 diff --git a/Script/Actor/Player.gd b/Script/Actor/Player.gd index 14d0427..9024b2c 100644 --- a/Script/Actor/Player.gd +++ b/Script/Actor/Player.gd @@ -136,6 +136,7 @@ func _process(delta): node_anim.play("box_jump") else: node_anim.play("jump") + Shared.stage.metric_jump += 1 # jump height if is_jump: @@ -219,6 +220,8 @@ func box_pickup(dx := 0, dy := 0): pickup_box.is_moving = false pickup_box.is_solid = false pickup_start = pickup_box.position + + Shared.stage.metric_pickup += 1 break # ox, oy = offset x and y @@ -244,7 +247,8 @@ func death(): Shared.start_reset() queue_free() dev.out(name + " died") - Shared.death() + Shared.stage.death() + #Shared.death() func win(): # explosion diff --git a/Script/AutoLoad/Shared.gd b/Script/AutoLoad/Shared.gd index ea0f911..50f6f9f 100644 --- a/Script/AutoLoad/Shared.gd +++ b/Script/AutoLoad/Shared.gd @@ -14,7 +14,7 @@ var is_clear = false var _window_scale := 1.0 var map_name := "hub" var hub_pos := Vector2(-16, -16) -var death_count := 0 +#var death_count := 0 var stage_data := [] var save_file := "box.save" @@ -65,31 +65,35 @@ func do_reset(): dev.out("loading scene: " + "res://Map/" + map_name + ".tscn") get_tree().change_scene("res://Map/" + map_name + ".tscn") -func death(): - death_count += 1 - HUD.node_death.text = "deaths: " + str(death_count) +#func death(): +# death_count += 1 +# HUD.node_death.text = "deaths: " + str(death_count) func win(): if stage: stage.stop_timer() var new_data = { - "name": stage.stage_name, - "time": stage.timer, - "death": death_count, "file": stage.filename, + "name": stage.stage_name, + "complete": stage.is_complete, + "time": stage.timer, + "death": stage.metric_death, + "jump": stage.metric_jump, + "pickup": stage.metric_pickup, } for i in stage_data: - if i["name"] == new_data["name"]: + if i["file"] == new_data["file"]: stage_data.erase(i) + break stage_data.append(new_data) save_data(save_file, JSON.print(stage_data, "\t")) - dev.out("(box.save)") - dev.out(load_data(save_file)) + #dev.out("(box.save)") + #dev.out(load_data(save_file)) - death_count = 0 + #death_count = 0 func save_data(save_file, arg): var file = File.new() diff --git a/Script/MapSelect.gd b/Script/MapSelect.gd index 3424391..8901de4 100644 --- a/Script/MapSelect.gd +++ b/Script/MapSelect.gd @@ -19,23 +19,34 @@ func _ready(): maps.append_array(map_list.split("\n", false)) label_list.text = map_list + scroll() func _process(delta): var btny = btn.p("down") - btn.p("up") if btny: - cursor = clamp(cursor + btny, 0, maps.size() - 1) - label_list.rect_position.y = 90 - (cursor * line_height) - label_info.text = str(cursor) + " / " + maps[cursor] + "\n" - - for i in Shared.stage_data: - if i.has("file") and i.file == "res://Map/" + maps[cursor] + ".tscn": - label_info.text += "name: " + str(i.name) + "\n" - label_info.text += "file: " + str(i.file) + "\n" - label_info.text += "time: " + str(i.time) + "\n" - label_info.text += "deaths: " + str(i.death) + "\n" - break + scroll(btny) if btn.p("action"): + Shared.map_name = maps[cursor] get_tree().change_scene("res://Map/" + maps[cursor] + ".tscn") + + +func scroll(arg = 0): + cursor = clamp(cursor + arg, 0, maps.size() - 1) + label_list.rect_position.y = 90 - (cursor * line_height) + label_info.text = str(cursor) + " / " + maps[cursor] + "\n" - + for i in Shared.stage_data: + if i.has("file") and i.file == "res://Map/" + maps[cursor] + ".tscn": + label_info.text += "file: " + str(i.file) + "\n" + if i.has("complete"): + label_info.text += "complete: " + str(i.complete) + "\n" + label_info.text += "name: " + str(i.name) + "\n" + label_info.text += "time: " + str(i.time) + "\n" + label_info.text += "deaths: " + str(i.death) + "\n" + if i.has("pickup") and i.has("jump"): + label_info.text += "boxes picked up: " + str(i.pickup) + "\n" + label_info.text += "jumps: " + str(i.jump) + "\n" + break + + diff --git a/Script/Stage/Stage.gd b/Script/Stage/Stage.gd index a48657d..c5f98cc 100644 --- a/Script/Stage/Stage.gd +++ b/Script/Stage/Stage.gd @@ -5,9 +5,19 @@ export var stage_name := "1-1" var timer := 0.0 var is_timer = true +var metric_pickup := 0 +var metric_jump := 0 +var metric_death := 0 +var is_complete = false func _ready(): Shared.stage = self + + + for i in Shared.stage_data: + if i.file == filename: + if i.has("death"): + metric_death = i.death func _process(delta): if is_timer: @@ -16,3 +26,8 @@ func _process(delta): func stop_timer(): is_timer = false + +func death(): + metric_death += 1 + Shared.save_file + pass