extends Node2D const fadeTime = 4.0 const labelDelayTime = 3.0 onready var isIncreasing = true var bloodIncrement var zoomIncrement var currentZoom var currentEnergy var screenWidth; var screenHeight; var xOffset; var yOffset const zoomStart = 1.0 const zoomEnd = 0.97 const bloodStart = 0.2 const bloodEnd = 0.9 const timeParam = 1.7 func _ready(): Dialogic.set_variable("DoNotSave", 1) bloodIncrement = (bloodEnd - bloodStart) / timeParam; zoomIncrement = (zoomEnd - zoomStart) / timeParam; currentZoom = zoomStart isIncreasing = true currentEnergy = 0 screenWidth = SettingsSingleton.GetCurrectScreenResolutionVector2().x screenHeight = SettingsSingleton.GetCurrectScreenResolutionVector2().y var endLabel = $ForScale / EndText var localizedTextArray = LanguageLocalization.GetGameEndings() var timeline = Dialogic.get_variable("TimelineSave") var neededText = tr(localizedTextArray[timeline]); endLabel.text = neededText yield (get_tree().create_timer(labelDelayTime), "timeout") $Tween.interpolate_property(endLabel, "modulate", Color(1, 1, 1, 0), Color(1, 1, 1, 1), fadeTime, Tween.TRANS_LINEAR, 0) $Tween.start() func _process(delta): if (isIncreasing): if (currentEnergy <= bloodEnd): currentEnergy += bloodIncrement * delta currentZoom += zoomIncrement * delta $death / Light2D.self_modulate.a = currentEnergy xOffset = (1 - currentZoom) * ($death / Polygon2D.get_global_transform_with_canvas().origin.x) / (screenWidth); yOffset = (1 - currentZoom) * (screenHeight - $death / Polygon2D.get_global_transform_with_canvas().origin.y) / screenHeight; var offset = Vector2(xOffset, yOffset); var tiling = Vector2(currentZoom, currentZoom) $death / Polygon2D.material.set_shader_param("offset", offset) $death / Polygon2D.material.set_shader_param("tiling", tiling); else : isIncreasing = false if ( not isIncreasing): if (currentEnergy >= bloodStart): currentEnergy -= bloodIncrement * delta currentZoom -= zoomIncrement * delta $death / Light2D.self_modulate.a = currentEnergy xOffset = (1 - currentZoom) * ($death / Polygon2D.get_global_transform_with_canvas().origin.x) / (screenWidth); yOffset = (1 - currentZoom) * (screenHeight - $death / Polygon2D.get_global_transform_with_canvas().origin.y) / screenHeight; var offset = Vector2(xOffset, yOffset); $death / Polygon2D.material.set_shader_param("offset", offset) $death / Polygon2D.material.set_shader_param("tiling", Vector2(currentZoom, currentZoom)); else : isIncreasing = true