245 lines
7.9 KiB
GDScript
245 lines
7.9 KiB
GDScript
extends CanvasLayer
|
|
|
|
#Console by hazel
|
|
#Const
|
|
const ENTRY_SEQUENCE = ["4", "1", "5"]
|
|
#Export
|
|
|
|
#Onready
|
|
onready var code_label = $CheatLabel
|
|
##Runtime
|
|
var lines: int = 0
|
|
var time: float = 0.0
|
|
var n: int = 0
|
|
var debug = false
|
|
var is_cheating = false
|
|
var reset_is_cheating = false
|
|
|
|
var allow_sword = false
|
|
var moon_jump = false
|
|
var cfox_mode = false
|
|
var infinite_arrows = false
|
|
var prey_slaughtered = false
|
|
var sus_monster = false
|
|
var fast_punishment = 0
|
|
# 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():
|
|
debug = false
|
|
else:
|
|
debug = true
|
|
|
|
func _physics_process(delta):
|
|
#DEBUG
|
|
if debug == true && !entry && !entry_index > 0 && !Options.entry:
|
|
#Move player to mouse
|
|
if Input.is_action_just_pressed("debug_move_player"):
|
|
Audio.play_sound(Audio.a_mkey,Audio.ac_jump)
|
|
if Input.is_action_pressed("debug_move_player"):
|
|
var nodes = get_tree().get_nodes_in_group("player")
|
|
if not nodes.empty():
|
|
var player = nodes[0]
|
|
var mouse_position = SceneManager.viewport.get_mouse_position() / SceneManager.viewport_container.rect_scale
|
|
mouse_position.x = clamp(mouse_position.x, 8.0, Game.RESOLUTION.x - 8.0)
|
|
mouse_position.y = clamp(mouse_position.y, 8.0, Game.RESOLUTION.y - 8.0)
|
|
var world_position = mouse_position + Game.current_sector * Game.RESOLUTION
|
|
player.position = world_position
|
|
|
|
# Game.get_map().get_node("Player").position = get_viewport().get_mouse_position()
|
|
# Console.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"):
|
|
if Game.can_pause:
|
|
Game.change_map(load("res://maps/level_select.tscn"))
|
|
#Debug 2
|
|
if Input.is_action_just_pressed("debug_2"):
|
|
Game.freeze_frame(1.0)
|
|
#Infinite arrows
|
|
if infinite_arrows: Game.arrows = 99
|
|
|
|
func _input(event):
|
|
if Options.entry:
|
|
return
|
|
|
|
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()
|
|
Game.set_deferred("can_pause",true)
|
|
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():
|
|
Audio.play_sound(Audio.a_star, Audio.ac_cheat)
|
|
Game.can_pause = false
|
|
|
|
func _enter_code():
|
|
match code:
|
|
"30385":
|
|
for gold in get_tree().get_nodes_in_group("gold"):
|
|
var goldsprite = gold.get_node("AnimatedSprite")
|
|
goldsprite.play("30385")
|
|
goldsprite.position.y -= 1
|
|
goldsprite.light_mask = 0
|
|
#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()
|
|
is_cheating = true
|
|
reset_is_cheating = true
|
|
"PEN":
|
|
debug = true
|
|
is_cheating = true
|
|
reset_is_cheating = false
|
|
"6DOUBLOONS":
|
|
Console.print(get_tree().get_nodes_in_group("gold").size())
|
|
#Doesnt work
|
|
"EVILSBANE":
|
|
allow_sword = true
|
|
Input.action_press("sword")
|
|
is_cheating = true
|
|
reset_is_cheating = false
|
|
"REDFEATHER":
|
|
var player = get_tree().get_nodes_in_group("player").pop_back()
|
|
if player != null:
|
|
player.state_chart.set_guard_property("red_feather", true)
|
|
is_cheating = true
|
|
reset_is_cheating = false
|
|
"NIGHTCORE":
|
|
Engine.time_scale = 2
|
|
Audio.ac_music.pitch_scale = 2
|
|
"UPUPANDAWAY":
|
|
get_tree().call_group("mountain_easter_egg","play","liftoff")
|
|
"MACOSX":
|
|
var player = get_tree().get_nodes_in_group("player").pop_back()
|
|
if player != null: Game.instance_node(load("res://objects/environment/beach_ball/beach_ball.tscn"),player.global_position.x,player.global_position.y - 8,Game.get_map())
|
|
"CANYOUDUNK":
|
|
var player = get_tree().get_nodes_in_group("player").pop_back()
|
|
if player != null: Game.instance_node(preload("res://objects/environment/zball/zball.tscn"),player.global_position.x,player.global_position.y - 18.0,Game.get_map())
|
|
is_cheating = true
|
|
reset_is_cheating = true
|
|
"YUMMY":
|
|
var player = get_tree().get_nodes_in_group("player").pop_back()
|
|
if player != null:
|
|
Game.instance_node(
|
|
preload("res://objects/environment/spaghetti/spaghetti.tscn"),
|
|
player.global_position.x, player.global_position.y - 12.0,
|
|
Game.get_map()
|
|
)
|
|
"YUCKY":
|
|
var player = get_tree().get_nodes_in_group("player").pop_back()
|
|
if player != null:
|
|
var strand = preload("res://objects/environment/spaghetti/spaghetti.tscn").instance()
|
|
strand.global_position = player.global_position + Vector2(0.0, -12.0)
|
|
strand.get_node("Segment/Joint").disable_collision = false
|
|
strand.get_node("Segment/Line").default_color = Color(0xf53342ff)
|
|
Game.get_map().add_child(strand)
|
|
"JUSTE":
|
|
var player = get_tree().get_nodes_in_group("player").pop_back()
|
|
if player != null: player.sprite.material.set_shader_param("border_color",Color.blue)
|
|
"BEESKNEES":
|
|
Game.get_map().rotation_degrees = -2
|
|
is_cheating = true
|
|
reset_is_cheating = true
|
|
#doesnt work
|
|
"CFOX":
|
|
var player = get_tree().get_nodes_in_group("player").pop_back()
|
|
player.sprite.visible = false
|
|
player.cfox.visible = true
|
|
"BANDANA":
|
|
infinite_arrows = true
|
|
is_cheating = true
|
|
reset_is_cheating = false
|
|
"ESCARGOD":
|
|
var player = get_tree().get_nodes_in_group("player").pop_back()
|
|
player.state_chart.send_event("become_invulnerable")
|
|
is_cheating = true
|
|
reset_is_cheating = false
|
|
"GILLS":
|
|
var player = get_tree().get_nodes_in_group("player").pop_back()
|
|
player.underwater = false
|
|
is_cheating = true
|
|
reset_is_cheating = false
|
|
"CHORUS":
|
|
var music = AudioServer.get_bus_index("music")
|
|
AudioServer.set_bus_effect_enabled(music,0,true)
|
|
"HYDROCITY":
|
|
var player = get_tree().get_nodes_in_group("player").pop_back()
|
|
player.oxygen_timer.start(0.001)
|
|
"FLUX":
|
|
var player = get_tree().get_nodes_in_group("player").pop_back()
|
|
# set up tween
|
|
var tween = create_tween().set_loops()
|
|
# open palettes directory for listing
|
|
var dir = Directory.new()
|
|
if dir.open("res://graphics/player/palettes/") == OK:
|
|
# loop through files in directory
|
|
dir.list_dir_begin(true, true)
|
|
var file_name = dir.get_next()
|
|
while file_name != "":
|
|
# act on any pngs
|
|
if file_name.ends_with(".png"):
|
|
# load the texture
|
|
var texture = load("res://graphics/player/palettes/" + file_name)
|
|
# add step to the tween for that texture
|
|
tween.tween_property(player.sprite, "material:shader_param/palette", texture, 0.0)
|
|
tween.tween_property(player.cfox, "material:shader_param/palette", texture, 0.0)
|
|
tween.tween_interval(0.2)
|
|
file_name = dir.get_next()
|
|
dir.list_dir_end()
|
|
"SKELETON":
|
|
Game.keys = 50
|
|
is_cheating = true
|
|
reset_is_cheating = true
|
|
"WHATSTHATSMELL":
|
|
prey_slaughtered = true
|
|
"SUS":
|
|
var scrump = get_tree().get_nodes_in_group("scrump").pop_back()
|
|
if scrump != null: scrump.sus_monster()
|
|
sus_monster = true
|
|
"FASTPUNISHMENT":
|
|
fast_punishment = 1
|
|
"FASTERPUNISHMENT":
|
|
fast_punishment = 2
|
|
"LBUG":
|
|
var player = get_tree().get_nodes_in_group("player").pop_back()
|
|
player.sprite.material.set_shader_param("palette", load("res://graphics/player/palettes/costume_wriggle.tex"))
|
|
player.sprite.set_texture(load("res://graphics/player/costume_wriggle.png"))
|
|
"BLOOPER":
|
|
var silhouette = load("res://objects/hud/silhouette.tscn").instance()
|
|
Game.get_map().add_child(silhouette)
|
|
"IMPATIENT":
|
|
Game.change_map(load("res://menus/credits.tscn"))
|
|
"SLOWPOKE":
|
|
Game.time = 99999
|
|
"LASERTAG":
|
|
Game.can_use_shield = true
|
|
is_cheating = true
|
|
"INCREDIBLE":
|
|
var cat = load("res://objects/enemy/uncanny_cat.tscn").instance()
|
|
Game.get_map().add_child(cat)
|