diff --git a/game.gd b/game.gd index fa72f91..ebcba9c 100644 --- a/game.gd +++ b/game.gd @@ -21,6 +21,7 @@ onready var ac_collectible = $CollecitbleSound onready var ac_climb = $ClimbSound onready var ac_die = $DieSound onready var ac_music = $Music +onready var ac_cheat = $CodeEntrySound #Sounds onready var a_gold = preload("res://audio/sounds/snd_coin.ogg") onready var a_arrow = preload("res://audio/sounds/a_egg_collect.ogg") diff --git a/game.tscn b/game.tscn index 5e75711..617a354 100644 --- a/game.tscn +++ b/game.tscn @@ -19,3 +19,6 @@ volume_db = -13.5 [node name="DieSound" type="AudioStreamPlayer" parent="."] volume_db = -12.0 + +[node name="CodeEntrySound" type="AudioStreamPlayer" parent="."] +volume_db = -12.0 diff --git a/objects/enemy/bat.tscn b/objects/enemy/bat.tscn index 0fa42a0..fa74a07 100644 --- a/objects/enemy/bat.tscn +++ b/objects/enemy/bat.tscn @@ -28,7 +28,7 @@ animations = [ { [sub_resource type="RectangleShape2D" id=5] extents = Vector2( 4, 4 ) -[node name="Bat" type="Node2D"] +[node name="Bat" type="Node2D" groups=["enemy"]] script = ExtResource( 3 ) can_be_killed_by_sword = false score_for_killing = 25 @@ -39,6 +39,7 @@ flip_sprite = false [node name="AnimatedSprite" type="AnimatedSprite" parent="."] material = SubResource( 1 ) frames = SubResource( 4 ) +frame = 1 playing = true [node name="Area2D" type="Area2D" parent="."] diff --git a/objects/enemy/enemy.tscn b/objects/enemy/enemy.tscn index a6f6626..57e923a 100644 --- a/objects/enemy/enemy.tscn +++ b/objects/enemy/enemy.tscn @@ -2,5 +2,5 @@ [ext_resource path="res://objects/enemy/enemy.gd" type="Script" id=1] -[node name="Enemy" type="Node2D"] +[node name="Enemy" type="Node2D" groups=["enemy"]] script = ExtResource( 1 ) diff --git a/objects/enemy/rolling_fiend.tscn b/objects/enemy/rolling_fiend.tscn index 2d0f13c..fcc5e55 100644 --- a/objects/enemy/rolling_fiend.tscn +++ b/objects/enemy/rolling_fiend.tscn @@ -29,7 +29,6 @@ move_speed = 50.0 [node name="AnimatedSprite" type="AnimatedSprite" parent="." index="0"] frames = SubResource( 3 ) -frame = 1 playing = true [node name="Hitbox" type="Area2D" parent="." index="1"] diff --git a/objects/enemy/slime.tscn b/objects/enemy/slime.tscn index 6760ae5..f194b79 100644 --- a/objects/enemy/slime.tscn +++ b/objects/enemy/slime.tscn @@ -30,7 +30,7 @@ animations = [ { [sub_resource type="RectangleShape2D" id=5] extents = Vector2( 5.5, 4.5 ) -[node name="Slime" type="Node2D"] +[node name="Slime" type="Node2D" groups=["enemy"]] script = ExtResource( 4 ) score_for_killing = 10 @@ -38,7 +38,6 @@ score_for_killing = 10 material = SubResource( 1 ) position = Vector2( 1, 3 ) frames = SubResource( 4 ) -frame = 1 playing = true [node name="Area2D" type="Area2D" parent="."] diff --git a/objects/enemy/snail.tscn b/objects/enemy/snail.tscn index 5cdbdbf..c3d77c2 100644 --- a/objects/enemy/snail.tscn +++ b/objects/enemy/snail.tscn @@ -28,7 +28,7 @@ animations = [ { [sub_resource type="RectangleShape2D" id=5] extents = Vector2( 4, 4 ) -[node name="Snail" type="Node2D"] +[node name="Snail" type="Node2D" groups=["enemy"]] script = ExtResource( 3 ) slower_speed = 30 faster_speed = 80 diff --git a/objects/enemy/snake.tscn b/objects/enemy/snake.tscn index b39ddc5..a81b511 100644 --- a/objects/enemy/snake.tscn +++ b/objects/enemy/snake.tscn @@ -28,13 +28,14 @@ animations = [ { [sub_resource type="RectangleShape2D" id=5] extents = Vector2( 4, 4 ) -[node name="Snake" type="Node2D"] +[node name="Snake" type="Node2D" groups=["enemy"]] script = ExtResource( 3 ) score_for_killing = 15 [node name="AnimatedSprite" type="AnimatedSprite" parent="."] material = SubResource( 1 ) frames = SubResource( 4 ) +frame = 1 playing = true [node name="Area2D" type="Area2D" parent="."] diff --git a/project.godot b/project.godot index 916c204..c91eeb7 100644 --- a/project.godot +++ b/project.godot @@ -18,6 +18,7 @@ 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 new file mode 100644 index 0000000..3a52042 --- /dev/null +++ b/scripts/code_entry.gd @@ -0,0 +1,37 @@ +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 a7b7a8a..ccbf802 100644 --- a/scripts/debug.gd +++ b/scripts/debug.gd @@ -26,7 +26,7 @@ func _ready(): func _physics_process(delta): #DEBUG - if debug == true: + if debug == true && !CodeEntry.entry && !CodeEntry.entry_index > 0: #Show console if Input.is_action_just_pressed("debug_show"): console.visible = !console.visible