extends Node2D var timerNeed = false const camPos = [ Vector2(280, 0), Vector2( - 900, 0), Vector2( - 1280, - 400), Vector2( - 2100, 0), Vector2(280, - 790), Vector2( - 775, - 570), Vector2( - 2100, - 790), Vector2(0, - 1100), Vector2(0, 0) ] const camZoom = [ Vector2(2, 2), Vector2(2, 2), Vector2(2.5, 2.5), Vector2(2, 2), Vector2(2, 2), Vector2(1.8, 1.8), Vector2(2, 2), Vector2(1.5, 1.5), Vector2(1, 1) ] const camSpecialTime = 8.0 const camSpecialPosition = Vector2( - 1100, - 1100) const camTime = [ 2.0, 2.5, 1.0, 2.5, 2.0, 2.0, 2.5, 2.0, 2.0 ] const fadeTime = 1.0 func _ready(): var viewPosition = int(Dialogic.get_variable("cameraPosition")) self.position = camPos[viewPosition] self.scale = camZoom[viewPosition] match viewPosition: 0: pass 1: $Sprite1.visible = true self.position = camPos[0] self.scale = camZoom[0] 2: $Sprite1.visible = true $Sprite2.visible = true self.position = camPos[1] self.scale = camZoom[1] 3: $Sprite1.visible = true $Sprite2.visible = true $Sprite3.visible = true self.position = camPos[2] self.scale = camZoom[2] 4: $Sprite1.visible = true $Sprite2.visible = true $Sprite3.visible = true $Sprite4.visible = true self.position = camPos[3] self.scale = camZoom[3] 5: $Sprite1.visible = true $Sprite2.visible = true $Sprite3.visible = true $Sprite4.visible = true $Sprite5.visible = true self.position = camPos[4] self.scale = camZoom[4] 6: $Sprite1.visible = true $Sprite2.visible = true $Sprite3.visible = true $Sprite4.visible = true $Sprite5.visible = true $Sprite6.visible = true self.position = camPos[5] self.scale = camZoom[5] 7: $Sprite1.visible = true $Sprite2.visible = true $Sprite3.visible = true $Sprite4.visible = true $Sprite5.visible = true $Sprite6.visible = true $Sprite7.visible = true self.position = camPos[6] self.scale = camZoom[6] 8: $Sprite1.visible = true $Sprite2.visible = true $Sprite3.visible = true $Sprite4.visible = true $Sprite5.visible = true $Sprite6.visible = true $Sprite7.visible = true $Sprite8.visible = true self.position = camPos[7] self.scale = camZoom[7] 9: $Sprite1.visible = true $Sprite2.visible = true $Sprite3.visible = true $Sprite4.visible = true $Sprite5.visible = true $Sprite6.visible = true $Sprite7.visible = true $Sprite8.visible = true self.position = camPos[8] self.scale = camZoom[8] var dialogicNode = get_parent().get_parent().get_node("Game").get_child(0).get_child(0) dialogicNode.connect("dialogic_signal", self, "_sprite_listener") func _sprite_listener(string): match string: "sprite1": if $Tween.is_active(): $Tween.remove_all() $Sprite1.modulate.a = 0.0 $Sprite1.visible = true Dialogic.set_variable("cameraPosition", "1") $Tween.interpolate_property($Sprite1, "modulate", Color(1, 1, 1, 0), Color(1, 1, 1, 1), fadeTime, Tween.TRANS_LINEAR, 0) $Tween.start() "sprite2": if $Tween.is_active(): $Tween.remove_all() self.position = camPos[0] self.scale = camZoom[0] $Sprite2.modulate.a = 0.0 $Sprite2.visible = true Dialogic.set_variable("cameraPosition", "2") $Tween.interpolate_property($Sprite2, "modulate", Color(1, 1, 1, 0), Color(1, 1, 1, 1), fadeTime, Tween.TRANS_LINEAR, 0) $Tween.interpolate_property(self, "position", self.position, camPos[1], camTime[1], Tween.TRANS_LINEAR, 0) $Tween.interpolate_property(self, "scale", self.scale, camZoom[1], camTime[1], Tween.TRANS_LINEAR, 0) $Tween.start() "sprite3": if $Tween.is_active(): $Tween.remove_all() self.position = camPos[1] self.scale = camZoom[1] $Sprite3.modulate.a = 0.0 $Sprite3.visible = true Dialogic.set_variable("cameraPosition", "3") $Tween.interpolate_property($Sprite3, "modulate", Color(1, 1, 1, 0), Color(1, 1, 1, 1), fadeTime, Tween.TRANS_LINEAR, 0) $Tween.interpolate_property(self, "position", self.position, camPos[2], camTime[2], Tween.TRANS_LINEAR, 0) $Tween.interpolate_property(self, "scale", self.scale, camZoom[2], camTime[2], Tween.TRANS_LINEAR, 0) $Tween.start() "sprite4": if $Tween.is_active(): $Tween.remove_all() self.position = camPos[2] self.scale = camZoom[2] $Sprite4.modulate.a = 0.0 $Sprite4.visible = true Dialogic.set_variable("cameraPosition", "4") $Tween.interpolate_property($Sprite4, "modulate", Color(1, 1, 1, 0), Color(1, 1, 1, 1), fadeTime, Tween.TRANS_LINEAR, 0) $Tween.interpolate_property(self, "position", self.position, camPos[3], camTime[3], Tween.TRANS_LINEAR, 0) $Tween.interpolate_property(self, "scale", self.scale, camZoom[3], camTime[3], Tween.TRANS_LINEAR, 0) $Tween.start() "sprite5": if $Tween.is_active(): $Tween.remove_all() self.position = camPos[3] self.scale = camZoom[3] $Sprite5.modulate.a = 0.0 $Sprite5.visible = true Dialogic.set_variable("cameraPosition", "5") $Tween.interpolate_property($Sprite5, "modulate", Color(1, 1, 1, 0), Color(1, 1, 1, 1), fadeTime, Tween.TRANS_LINEAR, 0) $Tween.interpolate_property(self, "position", self.position, camPos[4], camTime[4], Tween.TRANS_LINEAR, 0) $Tween.interpolate_property(self, "scale", self.scale, camZoom[4], camTime[4], Tween.TRANS_LINEAR, 0) $Tween.start() "sprite6": if $Tween.is_active(): $Tween.remove_all() self.position = camPos[4] self.scale = camZoom[4] $Sprite6.modulate.a = 0.0 $Sprite6.visible = true Dialogic.set_variable("cameraPosition", "6") $Tween.interpolate_property($Sprite6, "modulate", Color(1, 1, 1, 0), Color(1, 1, 1, 1), fadeTime, Tween.TRANS_LINEAR, 0) $Tween.interpolate_property(self, "position", self.position, camPos[5], camTime[5], Tween.TRANS_LINEAR, 0) $Tween.interpolate_property(self, "scale", self.scale, camZoom[5], camTime[5], Tween.TRANS_LINEAR, 0) $Tween.start() "sprite7": if $Tween.is_active(): $Tween.remove_all() self.position = camPos[5] self.scale = camZoom[5] $Sprite7.modulate.a = 0.0 $Sprite7.visible = true Dialogic.set_variable("cameraPosition", "7") $Tween.interpolate_property($Sprite7, "modulate", Color(1, 1, 1, 0), Color(1, 1, 1, 1), fadeTime, Tween.TRANS_LINEAR, 0) $Tween.interpolate_property(self, "position", self.position, camPos[6], camTime[6], Tween.TRANS_LINEAR, 0) $Tween.interpolate_property(self, "scale", self.scale, camZoom[6], camTime[6], Tween.TRANS_LINEAR, 0) $Tween.start() "sprite8": if $Tween.is_active(): $Tween.remove_all() self.position = camPos[6] self.scale = camZoom[6] $Sprite8.modulate.a = 0.0 $Sprite8.visible = true Dialogic.set_variable("cameraPosition", "8") $Tween.interpolate_property($Sprite8, "modulate", Color(1, 1, 1, 0), Color(1, 1, 1, 1), fadeTime, Tween.TRANS_LINEAR, 0) $Tween.interpolate_property(self, "position", self.position, camPos[7], camTime[7], Tween.TRANS_LINEAR, 0) $Tween.interpolate_property(self, "scale", self.scale, camZoom[7], camTime[7], Tween.TRANS_LINEAR, 0) $Tween.start() $Timer.start(camTime[7]) timerNeed = true "sprite9": timerNeed = false if $Tween.is_active(): $Tween.remove_all() self.position = camSpecialPosition self.scale = camZoom[7] Dialogic.set_variable("cameraPosition", "9") $Tween.interpolate_property(self, "position", self.position, camPos[8], camTime[8], Tween.TRANS_LINEAR, 0) $Tween.interpolate_property(self, "scale", self.scale, camZoom[8], camTime[8], Tween.TRANS_LINEAR, 0) $Tween.start() func _on_Timer_timeout(): if timerNeed: timerNeed = false $Tween.interpolate_property(self, "position", self.position, camSpecialPosition, camSpecialTime, Tween.TRANS_LINEAR, 0) $Tween.start()