One_Eleven_Android/scripts/GameEnd/LooseScene.gd
2024-11-10 03:34:28 +03:00

72 lines
2.5 KiB
GDScript

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