class_name Signature extends Node @export var roundManager : RoundManager @export var parent_shotgun : Node3D @export var parent_waiver : Node3D @export var parent_separateWaiver : Node3D @export var parent_signatureMachineMainParent : Node3D @export var intrbranch_waiver : InteractionBranch @export var cursor : CursorManager @export var anim_waiver : AnimationPlayer @export var intbranches : Array[InteractionBranch] @export var marker : Label3D @export var letterArray : Array[Label3D] @export var ledArray : Array[GeometryInstance3D] @export var posArray_marker : Array[Vector3] @export var letterArray_signature_joined : Array[Label3D] @export var letterArray_signature_separate : Array[Label3D] @export var speaker_bootup : AudioStreamPlayer2D @export var speaker_shutdown : AudioStreamPlayer2D @export var speaker_keypress : AudioStreamPlayer2D @export var speaker_punch : AudioStreamPlayer2D @export var btn_waiver : Control @export var btnParent_signature : Control @export var btn_signature_a : Control @export var controller : ControllerManager var fullstring = "" var lettercount = 0 var origpos_shotgun var markerIndex = 0 var blinking = false func _ready(): for l in letterArray_signature_joined: l.text = "" for l in letterArray_signature_separate: l.text = "" parent_signatureMachineMainParent.visible = false await get_tree().create_timer(2, false).timeout if (roundManager.playerData.hasSignedWaiver == false): SetupWaiver() func BlinkMarker(): while(blinking): marker.modulate.a = 0 await get_tree().create_timer(.3, false).timeout marker.modulate.a = 1 await get_tree().create_timer(.3, false).timeout pass pass func SetupWaiver(): origpos_shotgun = parent_shotgun.transform.origin parent_shotgun.transform.origin = Vector3(-1.738, -5, -0.041) parent_waiver.transform.origin = Vector3(-29.613, -35.341, -6.696) func AwaitPickup(): await get_tree().create_timer(.6, false).timeout cursor.SetCursor(true, true) intrbranch_waiver.interactionAllowed = true btn_waiver.visible = true if (cursor.controller_active): btn_waiver.grab_focus() controller.previousFocus = btn_waiver func PickUpWaiver(): speaker_bootup.play() parent_signatureMachineMainParent.visible = true intrbranch_waiver.interactionAllowed = false btn_waiver.visible = false cursor.SetCursor(false, false) anim_waiver.play("pickup waiver") for letter in letterArray: letter.text = "" UpdateMarkerPosition() UpdateLEDArray() blinking = true BlinkMarker() await get_tree().create_timer(2.77, false).timeout #.9 anim speed for intbr in intbranches : intbr.interactionAllowed = true cursor.SetCursor(true, true) btnParent_signature.visible = true if (cursor.controller_active): btn_signature_a.grab_focus() controller.previousFocus = btn_signature_a func GetInput(letterAlias : String, specialAlias : String): speaker_keypress.pitch_scale = randf_range(.95, 1) speaker_keypress.play() var input if (letterAlias != ""): input = letterAlias else: input = specialAlias if (input != "backspace" && input != "enter"): Input_Letter(input) else: if (input == "enter"): Input_Enter() else: if (input == "backspace"): Input_Backspace() func Input_Letter(alias : String): if (markerIndex != 6): if (letterArray[markerIndex].text == ""): letterArray[markerIndex].text = alias if (markerIndex != 6): markerIndex += 1 UpdateMarkerPosition() UpdateLEDArray() pass @export var ach : Achievement func Input_Enter(): var chararray = [] fullstring = "" for letter in letterArray: if (letter.text != ""): chararray.append(letter.text) for l in chararray: fullstring += l lettercount = chararray.size() if (fullstring == ""): return if (fullstring == "dealer"): return if (fullstring == "god"): ach.UnlockAchievement("ach11") return if (fullstring != ""): for br in intbranches: var el = br.get_parent().get_child(2) br.interactionAllowed = false el.set_collision_layer_value(1, false) el.set_collision_mask_value(1, false) cursor.SetCursor(false, false) btnParent_signature.visible = false await get_tree().create_timer(.25, false).timeout for i in range(lettercount): letterArray_signature_joined[i].text = chararray[i].to_upper() letterArray_signature_separate[i].text = chararray[i].to_upper() ledArray[i].visible = false await get_tree().create_timer(.17, false).timeout speaker_punch.pitch_scale = randf_range(.95, 1) speaker_punch.play() roundManager.counting = true await get_tree().create_timer(.17, false).timeout parent_shotgun.transform.origin = origpos_shotgun anim_waiver.play("put away waiver") speaker_bootup.stop() speaker_shutdown.play() roundManager.playerData.playername = " " + fullstring roundManager.playerData.hasSignedWaiver = true ReturnToMainBatch() await get_tree().create_timer(1.72, false).timeout parent_signatureMachineMainParent.visible = false parent_separateWaiver.visible = false await get_tree().create_timer(.4, false).timeout parent_waiver.queue_free() func ReturnToMainBatch(): await get_tree().create_timer(1.27, false).timeout roundManager.enteringFromWaiver = true roundManager.MainBatchSetup(false) func Input_Backspace(): if (markerIndex != 6 && markerIndex != 0): letterArray[markerIndex - 1].text = "" if (markerIndex == 6): letterArray[markerIndex - 1].text = "" if (markerIndex != 0): markerIndex -= 1 UpdateMarkerPosition() UpdateLEDArray() pass func UpdateMarkerPosition(): if(markerIndex != 6): marker.transform.origin = posArray_marker[markerIndex] if (markerIndex == 5 && letterArray[markerIndex].text != ""): marker.visible = false else: if (markerIndex == 6): marker.visible = false else: marker.visible = true func UpdateLEDArray(): for i in range(ledArray.size()): if letterArray[i].text != "": ledArray[i].transparency = 0 else: ledArray[i].transparency = 1