forked from team-sg/hero-mark-2
118 lines
3 KiB
GDScript
118 lines
3 KiB
GDScript
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 = $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
|
|
if not OS.is_debug_build():
|
|
console.visible = false
|
|
debug = false
|
|
else:
|
|
console.visible = false
|
|
debug = true
|
|
$Console/Panel.modulate.a = opacity
|
|
console.modulate.a = opacity
|
|
|
|
func _physics_process(delta):
|
|
#DEBUG
|
|
if debug == true && !entry && !entry_index > 0:
|
|
#Show console
|
|
if Input.is_action_just_pressed("debug_show"):
|
|
console.visible = !console.visible
|
|
#Restart scene
|
|
if Input.is_action_just_pressed("debug_restart"):
|
|
Game.call_deferred("restart_level")
|
|
#Move player to mouse
|
|
if Input.is_action_pressed("debug_move_player"):
|
|
Game.get_map().get_node("Player").position = get_viewport().get_mouse_position()
|
|
Debug.print(get_viewport().get_mouse_position())
|
|
#Test room
|
|
if Input.is_action_just_pressed("debug_testroom"):
|
|
Game.change_map(load("res://maps/test_room.tscn"))
|
|
#Debug 1
|
|
if Input.is_action_just_pressed("debug_1"):
|
|
Game.change_map(load("res://maps/level_select.tscn"))
|
|
#Debug 2
|
|
if Input.is_action_just_pressed("debug_2"):
|
|
Engine.set_target_fps(1)
|
|
|
|
func print(text):
|
|
lines += 1
|
|
if lines > 1:
|
|
console.text += "\n"
|
|
if lines > 10:
|
|
var n = console.text.find("\n")
|
|
var t = console.text
|
|
t.erase(0, n+1)
|
|
lines -= 1
|
|
console.text = t + str(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":
|
|
for gold in get_tree().get_nodes_in_group("gold"):
|
|
var goldsprite = gold.get_node("AnimatedSprite")
|
|
goldsprite.frames = preload("res://graphics/collectibles/30385_frames.tres")
|
|
goldsprite.position.y -= 2
|
|
#goldsprite.material.set_shader_param("palette",load("res://graphics/collectibles/pal_star_green.png"))
|
|
"1989":
|
|
for enemy in get_tree().get_nodes_in_group("enemy"):
|
|
enemy.die()
|
|
"DGSTEEZY":
|
|
debug = true
|
|
"6DOUBLOONS":
|
|
Debug.print(get_tree().get_nodes_in_group("gold").size())
|