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: #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 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