One_Eleven_Android/scripts/backround_scenes_scripts/ChapterSelector.gd
2024-11-10 03:34:28 +03:00

191 lines
5 KiB
GDScript

extends Node2D
var difficulty:String
var isChapterZooming
var chapter:String
onready var zoomTime = 3.2
var endPosition:String
func _ready():
get_node("/root/BgmScene").StopMenuMusic()
get_node("/root/BgmScene").SetBGM("City SFX")
GallerySingleton.AddMusic("BigCity");
GallerySingleton.AddBackground("ChapterSelector");
Localization();
if not SceneLoader.is_connected("on_scene_loaded", self, "OpenAnotherScene"):
var _temp = SceneLoader.connect("on_scene_loaded", self, "OpenAnotherScene")
isChapterZooming = true;
SetCamera("full")
yield ($Camera2D / Tween, "tween_all_completed")
isChapterZooming = false;
func Localization():
$text / Journey.text = tr("ui_adventure")
$text / buttons / Yes.text = tr("ui_yes");
$text / buttons / No.text = tr("ui_no");
$ChapterLabels / SelectChapter.text = tr("ui_select_chapter").to_upper();
$ChapterLabels / chapter1.text = str(tr("ui_chapter"), " 1");
func SetCamera(camPos:String):
var finalPos = Vector2(960, 540);
var finalZoom = Vector2(1, 1);
endPosition = camPos
match camPos:
"full":
pass
"brown":
finalPos = Vector2(1726, 461);
finalZoom = Vector2(0.2, 0.2);
"green":
finalPos = Vector2(1102, 590);
finalZoom = Vector2(0.2, 0.2);
var camera = $Camera2D
var startPos = camera.position
var startZoom = camera.zoom
$Camera2D.position = startPos;
$Camera2D.zoom = startZoom;
$Camera2D / Tween.interpolate_method(self, "ChangePosition", startPos, finalPos, zoomTime, Tween.TRANS_LINEAR, 0);
$Camera2D / Tween.interpolate_method(self, "ChangeZoom", startZoom, finalZoom, zoomTime, Tween.TRANS_LINEAR, 0);
$Camera2D / Tween.start();
func SetCameraToFinalPos(camPos:String):
var finalPos = Vector2(960, 540);
var finalZoom = Vector2(1, 1);
match camPos:
"full":
pass
"brown":
finalPos = Vector2(1726, 461);
finalZoom = Vector2(0.2, 0.2);
"green":
finalPos = Vector2(1102, 590);
finalZoom = Vector2(0.2, 0.2);
$Camera2D.position = finalPos;
$Camera2D.zoom = finalZoom;
func ChangePosition(newPosition):
$Camera2D.position = newPosition
func ChangeZoom(newZoom):
$Camera2D.zoom = newZoom
func _on_brown_pressed():
isChapterZooming = true
$text.rect_position = Vector2(1534.5, 400)
$text.rect_scale = Vector2(0.25, 0.25)
chapter = "Brown"
SetCamera("brown")
yield ($Camera2D / Tween, "tween_all_completed")
$ChapterLabels.visible = false;
isChapterZooming = false
$text.visible = true
func _on_green_pressed():
isChapterZooming = true
$text.rect_position = Vector2(910.5, 529)
$text.rect_scale = Vector2(0.25, 0.25)
chapter = "Green"
SetCamera("green")
yield ($Camera2D / Tween, "tween_all_completed")
$ChapterLabels.visible = false;
isChapterZooming = false
$text.visible = true
func _on_Yes_pressed():
$text / buttons.visible = false;
get_tree().root.get_node("Loading").ShowLoader();
SceneLoader.free_scene_cache("Game");
LoadScene("res://scenes/Game.tscn");
func _on_No_pressed():
$text.visible = false
$ChapterLabels.visible = true;
isChapterZooming = true
SetCamera("full")
yield ($Camera2D / Tween, "tween_all_completed")
isChapterZooming = false
func MenuLoaded(obj):
if obj.path != "res://scenes/MainMenu.tscn":
return ;
if obj.instance != null:
get_tree().root.add_child(obj.instance);
for i in get_tree().root.get_children():
if i.name == "ChapterSelector":
get_tree().root.remove_child(i);
break;
SceneLoader.disconnect("on_scene_loaded", self, "MenuLoaded");
func _input(ev):
if ev is InputEventKey and ev.scancode == KEY_ESCAPE and not ev.pressed:
if isChapterZooming:
$Camera2D / Tween.remove_all();
SetCameraToFinalPos(endPosition);
$Camera2D / Tween.emit_signal("tween_all_completed")
elif $Camera2D.position == Vector2(960, 540):
get_node("/root/BgmScene").SetBGM("99");
get_tree().root.get_node("BgmScene").StartMenuMusic();
if not SceneLoader.is_connected("on_scene_loaded", self, "MenuLoaded"):
var _temp = SceneLoader.connect("on_scene_loaded", self, "MenuLoaded");
SceneLoader.load_scene("res://scenes/MainMenu.tscn")
if ev is InputEventKey and ev.scancode == KEY_SPACE:
if isChapterZooming:
$Camera2D / Tween.remove_all();
SetCameraToFinalPos(endPosition)
$Camera2D / Tween.emit_signal("tween_all_completed")
if ev is InputEventMouseButton and ev.button_index == BUTTON_LEFT and not ev.pressed:
if isChapterZooming:
$Camera2D / Tween.remove_all();
SetCameraToFinalPos(endPosition)
$Camera2D / Tween.emit_signal("tween_all_completed")
var loadingPath:String = "";
func LoadScene(path):
SceneLoader.load_scene(path);
loadingPath = path;
func OpenAnotherScene(obj):
if obj.path == loadingPath:
get_tree().root.add_child(obj.instance);
CloseMenu();
func CloseMenu():
for i in get_tree().root.get_children():
if i.name == "ChapterSelector":
get_tree().root.remove_child(i);
break;
SceneLoader.disconnect("on_scene_loaded", self, "OpenAnotherScene");
func InitForGallery()->Array:
$Camera2D.current = false
scale = Vector2(0.5, 0.5);
$ChapterLabels.visible = false;
$brown.visible = false;
return [];
func _on_chapter1_pressed():
_on_brown_pressed()