Adding PhonePhreak Puzzle

- Import 10 new MP3 sound files for puzzle audio feedback
- Implement PhonePhreak puzzle scene and game logic script
This commit is contained in:
bigmstone committed 2026-10-02 21:46:49 -06:00
1 parent 1eccb9bc67
commit 52cd38cc2d
30 files changed
+364 -7

No files matched your search

+76
View File
@@ -0,0 +1,76 @@
extends Node
var Rounds: int = 5
var pieces: Array[int] = []
var guessed: Array[int] = []
var to_play: Array[int] = []
var buttons: Array[Button] = []
const PhoneSounds = [
preload("res://assets/sounds/0.mp3"),
preload("res://assets/sounds/1.mp3"),
preload("res://assets/sounds/2.mp3"),
preload("res://assets/sounds/3.mp3"),
preload("res://assets/sounds/4.mp3"),
preload("res://assets/sounds/5.mp3"),
preload("res://assets/sounds/6.mp3"),
preload("res://assets/sounds/7.mp3"),
preload("res://assets/sounds/8.mp3"),
preload("res://assets/sounds/9.mp3"),
]
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
var origin = Vector2(0, 0)
var offset = 125
$Button0.position.x = origin.x + 1 * offset
$Button0.position.y = origin.y + 3 * offset
buttons.append($Button0)
for i in range(0, 9):
var col = i % 3
var row = i / 3
var b: Button = $Button0.duplicate()
var label: Label = b.get_child(0)
label.text = "%s" %(i+1)
var rect: ColorRect = b.get_child(1)
rect.color = Color.from_rgba8(255, 255, 255, 0)
b.position.x = origin.x + col * offset
b.position.y = origin.y + row * offset
b.pressed.connect(_on_button_pressed.bind(i+1))
buttons.append(b)
b.name = "Button%i" %(i)
add_child(b)
$Button0.pressed.connect(_on_button_pressed.bind(0))
for i in Rounds:
var item = randi() % len(PhoneSounds)
pieces.append(item)
to_play.append(item)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
if guessed.size() >= pieces.size():
if guessed == pieces:
print("Got it")
else:
print("Nope")
if !$AudioStreamPlayer2D.playing and !to_play.is_empty():
actuate_button(to_play.pop_front())
for b in buttons:
var rect: ColorRect = b.get_child(1)
if rect.color.a8 != 0:
rect.color = Color.from_rgba8(255, 255, 255, rect.color.a8 - 5)
func _on_button_pressed(button: int) -> void:
guessed.append(button)
actuate_button(button)
func actuate_button(button: int) -> void:
var rect: ColorRect = buttons[button].get_child(1)
rect.color = Color.from_rgba8(255, 255, 255, 255)
$AudioStreamPlayer2D.stream = PhoneSounds[button]
$AudioStreamPlayer2D.play()