191 lines
5 KiB
GDScript
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()
|