diff --git a/control.tscn b/control.tscn index 1ff78bd..649c90b 100644 --- a/control.tscn +++ b/control.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=7 format=2] [ext_resource path="res://scripts/scaling.gd" type="Script" id=1] [ext_resource path="res://graphics/borders/prideborder.png" type="Texture" id=2] [ext_resource path="res://maps/cave.tscn" type="PackedScene" id=3] [ext_resource path="res://scripts/crt.gdshader" type="Shader" id=4] +[ext_resource path="res://scripts/theme.tres" type="Theme" id=5] [sub_resource type="ShaderMaterial" id=1] shader = ExtResource( 4 ) @@ -47,3 +48,14 @@ handle_input_locally = false render_target_update_mode = 3 [node name="Map" parent="ViewportContainer/Viewport" instance=ExtResource( 3 )] + +[node name="CheatLayer" type="CanvasLayer" parent="ViewportContainer/Viewport"] +layer = 127 + +[node name="CheatLabel" type="Label" parent="ViewportContainer/Viewport/CheatLayer"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_bottom = -4.0 +theme = ExtResource( 5 ) +align = 2 +valign = 2 diff --git a/objects/debug.tscn b/objects/debug.tscn index 11195d5..485a4b2 100644 --- a/objects/debug.tscn +++ b/objects/debug.tscn @@ -14,8 +14,7 @@ script = ExtResource( 1 ) [node name="Console" type="Label" parent="."] anchor_right = 1.0 -margin_bottom = 14.0 -size_flags_vertical = 0 +size_flags_vertical = 2 [node name="Panel" type="Panel" parent="Console"] show_behind_parent = true diff --git a/project.godot b/project.godot index c91eeb7..916c204 100644 --- a/project.godot +++ b/project.godot @@ -18,7 +18,6 @@ config/icon="res://icon.png" Game="*res://game.tscn" Debug="*res://objects/debug.tscn" -CodeEntry="*res://scripts/code_entry.gd" [display] diff --git a/scripts/code_entry.gd b/scripts/code_entry.gd deleted file mode 100644 index 3a52042..0000000 --- a/scripts/code_entry.gd +++ /dev/null @@ -1,37 +0,0 @@ -extends Node - -const ENTRY_SEQUENCE = ["4", "1", "5"] - -var entry_index = 0 -var entry = false -var code = "" - -func _input(event): - if event is InputEventKey && event.is_pressed(): - var character = OS.get_scancode_string(event.scancode) - - if entry: - if event.scancode == KEY_ENTER: - _enter_code() - entry = false - code = "" - else: - code += character - else: - if character == ENTRY_SEQUENCE[entry_index]: - entry_index += 1 - if entry_index >= ENTRY_SEQUENCE.size(): - entry = true - entry_index = 0 - _on_entry() - -func _on_entry(): - Game.play_sound(Game.a_die, Game.ac_cheat) - -func _enter_code(): - match code: - "30385": - Debug.print("Woohoo crystals!") - "1989": - for enemy in get_tree().get_nodes_in_group("enemy"): - enemy.queue_free() diff --git a/scripts/debug.gd b/scripts/debug.gd index ccbf802..21fb8f0 100644 --- a/scripts/debug.gd +++ b/scripts/debug.gd @@ -1,17 +1,25 @@ extends CanvasLayer #Console by hazel +#Const +const ENTRY_SEQUENCE = ["4", "1", "5"] #Export export var max_lines: int = 10 export var opacity: float = 0.5 #Onready -onready var console: Label = $Console +onready var console = $Console +onready var code_label = get_parent().get_node("Main/Control/ViewportContainer/Viewport/CheatLayer/CheatLabel") ##Runtime var lines: int = 0 var time: float = 0.0 var n: int = 0 var debug = false +# cheat code entry +var entry_index = 0 +var entry = false +var code = "" + func _ready(): #Auto do debug when playtesting @@ -26,7 +34,7 @@ func _ready(): func _physics_process(delta): #DEBUG - if debug == true && !CodeEntry.entry && !CodeEntry.entry_index > 0: + if debug == true && !entry && !entry_index > 0: #Show console if Input.is_action_just_pressed("debug_show"): console.visible = !console.visible @@ -67,9 +75,44 @@ func print(text): else: console.text += str(text) - func _on_visible_toggled(button_pressed): if button_pressed: console.visible = true else: console.visible = false + +func _input(event): + if event is InputEventKey && event.is_pressed(): + var character = OS.get_scancode_string(event.scancode) + if character.length() > 1: + character = "" + + if entry: + if event.scancode == KEY_ENTER: + _enter_code() + entry = false + code = "" + elif event.scancode == KEY_BACKSPACE: + code.erase(code.length() - 1, 1) + else: + code += character + code_label.text = code + else: + if character == ENTRY_SEQUENCE[entry_index]: + entry_index += 1 + if entry_index >= ENTRY_SEQUENCE.size(): + entry = true + entry_index = 0 + _on_entry() + +func _on_entry(): + Game.play_sound(Game.a_star, Game.ac_cheat) + +func _enter_code(): + match code: + "30385": + Debug.print("Woohoo crystals!") + "1989": + Game.play_sound(Game.a_die, Game.ac_die) + for enemy in get_tree().get_nodes_in_group("enemy"): + enemy.queue_free() diff --git a/scripts/scaling.gd b/scripts/scaling.gd index e977643..b222174 100644 --- a/scripts/scaling.gd +++ b/scripts/scaling.gd @@ -3,6 +3,7 @@ extends Control var multiple = 1 onready var viewport = $ViewportContainer onready var border = $TextureRect +onready var cheat_label = $ViewportContainer/Viewport/ # SCALE MODE: INTEGER, FIT, FILL export var scale_mode = 0 # INTEGER SCALE SETTINGS