174 lines
		
	
	
	
		
			5.5 KiB
		
	
	
	
		
			GDScript
		
	
	
	
	
	
			
		
		
	
	
			174 lines
		
	
	
	
		
			5.5 KiB
		
	
	
	
		
			GDScript
		
	
	
	
	
	
extends "res://scripts/AlternativeChoices/AlternativeChoiceBase.gd"
 | 
						|
 | 
						|
var cursorRight = preload("res://resources/cursors/man_right.webp")
 | 
						|
var cursorLeft = preload("res://resources/cursors/man_left.webp")
 | 
						|
 | 
						|
var movingLeft = false;
 | 
						|
var movingRight = false;
 | 
						|
const movingSpeed = 310;
 | 
						|
const edgePosition = - 920;
 | 
						|
 | 
						|
func Localization():
 | 
						|
	localization = ["", "", "", "choice22.8", "choice22.6", "choice22.5", "choice22.4"];
 | 
						|
 | 
						|
func SetCursorStates():
 | 
						|
	cursorStates = [CursorState.Walk, CursorState.Talk, CursorState.Talk, CursorState.Walk, CursorState.Walk, CursorState.Walk, CursorState.Walk, ];
 | 
						|
 | 
						|
func AdjustLabels():
 | 
						|
	var goOutside = get_node("Labels/4");
 | 
						|
	goOutside.rect_global_position = Vector2(goOutside.rect_global_position.x - 10, goOutside.rect_global_position.y - 10);
 | 
						|
	get_node("Labels/5").rect_global_position.y = get_node("Labels/5").rect_global_position.y - 35;
 | 
						|
	get_node("Labels/6").rect_global_position.y = get_node("Labels/6").rect_global_position.y - 20;
 | 
						|
	get_node("Labels/7").rect_global_position.y = get_node("Labels/7").rect_global_position.y - 20;
 | 
						|
 | 
						|
func CheckForVariables():
 | 
						|
	get_node("SpriteButtons/Red").visible = Dialogic.get_variable("Is_Red_Dead") == "0";
 | 
						|
	get_node("SpriteButtons/White").visible = Dialogic.get_variable("Is_White_Dead") == "0";
 | 
						|
	
 | 
						|
	if Dialogic.get_variable("LightsOn") == "0":
 | 
						|
		$SpriteButtons / Garage.texture_normal = load("res://resources/AlternativeChoices/Timeline_120/Door_night.webp");
 | 
						|
	
 | 
						|
	var xPos = int(Dialogic.get_variable("PanoramaPosition"));
 | 
						|
	$SpriteButtons.position.x = xPos;
 | 
						|
	$Labels.position.x = xPos;
 | 
						|
	
 | 
						|
 | 
						|
func s(variable:String)->bool:
 | 
						|
	return Dialogic.get_variable(variable) == "0";
 | 
						|
 | 
						|
func _on_2_button_up():
 | 
						|
	if not CheckHover():return ;
 | 
						|
	if Dialogic.get_variable("Timeline144") == "0":
 | 
						|
		Dialogic.set_variable("PreviousTimelineChoice", "144");
 | 
						|
	else :
 | 
						|
		Dialogic.set_variable("PreviousTimelineChoice", "boys");
 | 
						|
	End()
 | 
						|
 | 
						|
func _on_4_button_up():
 | 
						|
	if not CheckHover():return ;
 | 
						|
	if Dialogic.get_variable("Timeline142") == "0":
 | 
						|
		Dialogic.set_variable("PreviousTimelineChoice", "142");
 | 
						|
	else :
 | 
						|
		Dialogic.set_variable("PreviousTimelineChoice", "boys");
 | 
						|
	End()
 | 
						|
 | 
						|
func _on_15_button_up():
 | 
						|
	if not CheckHover():return ;
 | 
						|
	Dialogic.set_variable("PreviousTimelineChoice", "141");
 | 
						|
	End()
 | 
						|
 | 
						|
func _on_Stairs_button_up():
 | 
						|
	if not CheckHover():return ;
 | 
						|
	Dialogic.set_variable("PreviousTimelineChoice", "2nd_floor");
 | 
						|
	End()
 | 
						|
 | 
						|
func _on_Garage_button_up():
 | 
						|
	if not CheckHover():return ;
 | 
						|
	Dialogic.set_variable("PreviousTimelineChoice", "142_h");
 | 
						|
	End()
 | 
						|
 | 
						|
func _on_Basement_button_up():
 | 
						|
	if not CheckHover():return ;
 | 
						|
	Dialogic.set_variable("PreviousTimelineChoice", "143");
 | 
						|
	End()
 | 
						|
 | 
						|
func _on_Kitchen_button_up():
 | 
						|
	if not CheckHover():return ;
 | 
						|
	Dialogic.set_variable("PreviousTimelineChoice", "149");
 | 
						|
	End()
 | 
						|
 | 
						|
 | 
						|
func _on_LeftMove_mouse_entered():
 | 
						|
	if get_tree().root.get_node("Root/Background/Panorama").position.x < 0:
 | 
						|
		Input.set_custom_mouse_cursor(cursorLeft)
 | 
						|
		movingLeft = true
 | 
						|
		$WalkingEffect.play()
 | 
						|
 | 
						|
func _on_LeftMove_mouse_exited():
 | 
						|
	Input.set_custom_mouse_cursor(arrowCursor)
 | 
						|
	movingLeft = false
 | 
						|
	Dialogic.set_variable("PanoramaPosition", get_tree().root.get_node("Root/Background/Panorama").position.x)
 | 
						|
	$WalkingEffect.stop()
 | 
						|
 | 
						|
func _on_RightMove_mouse_entered():
 | 
						|
	if get_tree().root.get_node("Root/Background/Panorama").position.x > edgePosition:
 | 
						|
		Input.set_custom_mouse_cursor(cursorRight, 0, Vector2(50, 0))
 | 
						|
		movingRight = true
 | 
						|
		$WalkingEffect.play()
 | 
						|
 | 
						|
func _on_RightMove_mouse_exited():
 | 
						|
	Input.set_custom_mouse_cursor(arrowCursor)
 | 
						|
	movingRight = false
 | 
						|
	Dialogic.set_variable("PanoramaPosition", get_tree().root.get_node("Root/Background/Panorama").position.x)
 | 
						|
	$WalkingEffect.stop()
 | 
						|
 | 
						|
func _process(delta):
 | 
						|
	if not get_tree().root.has_node("Root/Background/Panorama"):
 | 
						|
		return ;
 | 
						|
	
 | 
						|
	if get_tree().root.get_node("Root/Background/Panorama").position.x == 0:
 | 
						|
		if $MovingControls / LeftMove.visible:
 | 
						|
			$MovingControls / LeftMove.visible = false;
 | 
						|
			_on_LeftMove_mouse_exited();
 | 
						|
	elif get_tree().root.get_node("Root/Background/Panorama").position.x == edgePosition:
 | 
						|
		if $MovingControls / RightMove.visible:
 | 
						|
			$MovingControls / RightMove.visible = false;
 | 
						|
			_on_RightMove_mouse_exited();
 | 
						|
	else :
 | 
						|
		if not $MovingControls / LeftMove.visible:
 | 
						|
			$MovingControls / LeftMove.visible = true
 | 
						|
		if not $MovingControls / RightMove.visible:
 | 
						|
			$MovingControls / RightMove.visible = true;
 | 
						|
	
 | 
						|
	if movingLeft:
 | 
						|
		$SpriteButtons.position.x += delta * movingSpeed
 | 
						|
		$Labels.position.x += delta * movingSpeed
 | 
						|
		
 | 
						|
		var back = get_tree().root.get_node("Root/Background/Panorama");
 | 
						|
		back.position.x += delta * movingSpeed
 | 
						|
		back.UpdateContainerSound(back.position.x);
 | 
						|
		if back.position.x > 0:
 | 
						|
			back.position.x = 0
 | 
						|
			$SpriteButtons.position.x = 0
 | 
						|
			$Labels.position.x = 0
 | 
						|
			movingLeft = false
 | 
						|
	elif movingRight:
 | 
						|
		$SpriteButtons.position.x -= delta * movingSpeed
 | 
						|
		$Labels.position.x -= delta * movingSpeed
 | 
						|
		
 | 
						|
		var back = get_tree().root.get_node("Root/Background/Panorama");
 | 
						|
		back.position.x -= delta * movingSpeed
 | 
						|
		back.UpdateContainerSound(back.position.x);
 | 
						|
		if back.position.x < edgePosition:
 | 
						|
			back.position.x = edgePosition
 | 
						|
			$SpriteButtons.position.x = edgePosition
 | 
						|
			$Labels.position.x = edgePosition
 | 
						|
			movingRight = false
 | 
						|
	
 | 
						|
	if isHovering:
 | 
						|
		return ;
 | 
						|
	
 | 
						|
	tempDelta += delta;
 | 
						|
	if tempDelta > 0.2:
 | 
						|
		tempDelta = 0;
 | 
						|
		
 | 
						|
		if shaderValue <= - 0.05:
 | 
						|
			isRising = true
 | 
						|
		
 | 
						|
		if shaderValue >= 0.13:
 | 
						|
			isRising = false;
 | 
						|
			
 | 
						|
		if isRising:
 | 
						|
			shaderValue += 0.01;
 | 
						|
		else :
 | 
						|
			shaderValue -= 0.01;
 | 
						|
			
 | 
						|
		var buttons = $SpriteButtons.get_children();
 | 
						|
		for i in buttons:
 | 
						|
			i.material.set_shader_param("mixing", shaderValue);
 | 
						|
	else :
 | 
						|
		tempDelta += delta;
 | 
						|
	
 | 
						|
 | 
						|
 | 
						|
 |