181 lines
5 KiB
GDScript
181 lines
5 KiB
GDScript
extends Node2D
|
|
|
|
onready var isPowerProblem = false
|
|
onready var lightTimer = 0.0
|
|
onready var tweenSwitcher = 0
|
|
|
|
func _ready():
|
|
if not get_tree().root.has_node("Root"):
|
|
return ;
|
|
|
|
InitCat();
|
|
InitCrowd()
|
|
|
|
GallerySingleton.AddBackground("Scene2_1")
|
|
|
|
$Camera.current = true;
|
|
$Camera.zoom = Vector2(3, 3)
|
|
var dialogicNode = get_parent().get_parent().get_node("Game").get_child(0).get_child(0)
|
|
|
|
dialogicNode.connect("dialogic_signal", self, "_character_listener")
|
|
SetTime();
|
|
dialogicNode.connect("dialogic_signal", self, "_time_listener")
|
|
if (Dialogic.get_variable("needRenata") == "0"):
|
|
RemoveCharacter("Renata")
|
|
else :ReturnCharacter("Renata")
|
|
if (Dialogic.get_variable("needHenry") == "0"):
|
|
RemoveCharacter("Henry")
|
|
else :ReturnCharacter("Henry")
|
|
if (Dialogic.get_variable("needTable") == "0"):
|
|
RemoveCharacter("table")
|
|
else :ReturnCharacter("table")
|
|
if (Dialogic.get_variable("needCandles") == "0"):
|
|
$little_objects / candles.visible = false
|
|
|
|
|
|
func RemoveCharacter(charName):
|
|
$removables.get_node(charName).visible = false;
|
|
|
|
func ReturnCharacter(charName):
|
|
$removables.get_node(charName).visible = true;
|
|
|
|
func RemoveCharacterSlowly(charName):
|
|
var fadeTween = $removables / FadeTween
|
|
fadeTween.interpolate_property(
|
|
$removables.get_node(charName), "modulate", Color(1, 1, 1, 1), Color(1, 1, 1, 0), 1.0,
|
|
Tween.TRANS_LINEAR, Tween.EASE_IN_OUT
|
|
)
|
|
fadeTween.start()
|
|
yield (fadeTween, "tween_all_completed")
|
|
RemoveCharacter(charName)
|
|
|
|
func ReturnCharacterSlowly(charName):
|
|
$removables.get_node(charName).modulate = Color(1, 1, 1, 0)
|
|
ReturnCharacter(charName)
|
|
var fadeTween = $removables / FadeTween
|
|
fadeTween.interpolate_property(
|
|
$removables.get_node(charName), "modulate", Color(1, 1, 1, 0), Color(1, 1, 1, 1), 1.0,
|
|
Tween.TRANS_LINEAR, Tween.EASE_IN_OUT
|
|
)
|
|
fadeTween.start()
|
|
|
|
func _character_listener(string):
|
|
match string:
|
|
"remove_renata":
|
|
RemoveCharacter("Renata")
|
|
Dialogic.set_variable("needRenata", 0)
|
|
"remove_henry":
|
|
RemoveCharacter("Henry")
|
|
Dialogic.set_variable("needHenry", 0)
|
|
"remove_table":
|
|
RemoveCharacter("table")
|
|
Dialogic.set_variable("needTable", 0)
|
|
"remove_henry11":
|
|
RemoveCharacter("Henry11")
|
|
"return_renata":
|
|
ReturnCharacter("Renata")
|
|
Dialogic.set_variable("needRenata", 1)
|
|
"return_henry":
|
|
ReturnCharacter("Henry")
|
|
Dialogic.set_variable("needHenry", 1)
|
|
"return_table":
|
|
ReturnCharacter("table")
|
|
Dialogic.set_variable("needTable", 1)
|
|
"return_henry11_fade":
|
|
ReturnCharacterSlowly("Henry11")
|
|
"remove_henry_fade":
|
|
RemoveCharacterSlowly("Henry")
|
|
Dialogic.set_variable("needHenry", 0)
|
|
"tv_turn_off":
|
|
$little_objects / tv_screen.visible = false
|
|
"remove_oldman":
|
|
RemoveCharacterSlowly("Man2")
|
|
|
|
|
|
func _time_listener(string):
|
|
match string:
|
|
"change_time":
|
|
SetTime()
|
|
|
|
func SetTime():
|
|
|
|
var hour_hand = $little_objects / clock.get_child(0);
|
|
var minute_hand = $little_objects / clock.get_child(1);
|
|
var time = int(Dialogic.get_variable("Time"))
|
|
var minDegrees = (time % 60) * 6
|
|
var hourDegrees = - 54 + int(time / 60) * 30 + (time % 60) / 10
|
|
|
|
hour_hand.set_rotation_degrees(hourDegrees);
|
|
minute_hand.set_rotation_degrees(minDegrees);
|
|
|
|
func _process(delta):
|
|
if ( not isPowerProblem):
|
|
lightTimer += delta * rand_range(0.0, 1.0)
|
|
if (lightTimer >= 8.0):
|
|
isPowerProblem = true
|
|
LightPowerBlink();
|
|
|
|
|
|
func LightPowerBlink():
|
|
tweenSwitcher = 0
|
|
var tween = $Lights / Tween
|
|
tween.interpolate_property($Lights / candellier_light, "energy", 1.5, 0.9, 1.2, Tween.TRANS_CUBIC, 0)
|
|
tween.interpolate_property($Lights / lamp_light, "energy", 1.2, 0.7, 1.2, Tween.TRANS_CUBIC, 0)
|
|
tween.start()
|
|
|
|
func _on_Tween_tween_all_completed():
|
|
var tween = $Lights / Tween
|
|
if (tweenSwitcher == 0):
|
|
tween.interpolate_property($Lights / candellier_light, "energy", 0.9, 1.5, 1.2, Tween.TRANS_CUBIC, 0)
|
|
tween.interpolate_property($Lights / lamp_light, "energy", 0.7, 1.2, 1.2, Tween.TRANS_CUBIC, 0)
|
|
tweenSwitcher = 1
|
|
tween.start()
|
|
if (tweenSwitcher == 1):
|
|
lightTimer = 0.0
|
|
isPowerProblem = false
|
|
|
|
func InitCat():
|
|
|
|
var beforeDate = Dialogic.get_variable("ItIsDay") == "true";
|
|
if beforeDate:
|
|
$Cat.Init(2, 1);
|
|
$Cat.position = Vector2(1240, 175);
|
|
else :
|
|
|
|
$Cat.Init(2, 3);
|
|
$Cat.position = Vector2(1542, 730);
|
|
|
|
func InitCrowd():
|
|
var time = int(Dialogic.get_variable("Time"))
|
|
if time > 0:
|
|
$removables / Man2.visible = false
|
|
if time > 15:
|
|
$removables / Man1.visible = false
|
|
|
|
func InitForGallery()->Array:
|
|
scale = Vector2(0.5, 0.5)
|
|
|
|
$Cat.visible = false;
|
|
|
|
$removables / Renata.visible = false;
|
|
$removables / Henry.visible = false;
|
|
$removables / Man1.visible = false;
|
|
$removables / Man2.visible = false;
|
|
|
|
return ["ui_gallery_people"]
|
|
|
|
|
|
func SetToggleSettings(button):
|
|
var state = button.pressed;
|
|
|
|
if state == true:
|
|
$removables / Renata.visible = true;
|
|
$removables / Henry.visible = true;
|
|
$removables / Man1.visible = true;
|
|
$removables / Man2.visible = true;
|
|
else :
|
|
$removables / Renata.visible = false;
|
|
$removables / Henry.visible = false;
|
|
$removables / Man1.visible = false;
|
|
$removables / Man2.visible = false;
|
|
|