Engine.EffectGlowBoxFlash = class extends Engine.Drawable { //private int xFeathering = 30; //private int yFeathering = 33; constructor() { super(); this.glowBoxWhite = new Engine.Drawable("GlowBox_Corner"); this.glowBoxColor = new Engine.Drawable("GlowBox_Corner"); this.layoutWidth = 0; this.layoutHeight = 0; this.speedMult = 1; this.totalTime = 0; this.onFinish = null; this.currentIndex = 0; this.tween = new Engine.SimpleTween(); this.alphaTargets = [0, 1, 0.38, 0]; this.glowBoxWhite.setNineRect(0.45, 0.45, 0.5, 0.5); this.glowBoxColor.setNineRect(0.45, 0.45, 0.5, 0.5); this.glowBoxWhite.additive = true; this.glowBoxColor.additive = true; this.addChild(this.glowBoxWhite); this.addChild(this.glowBoxColor); this.glowBoxColor.tint = Colors.blue; } init(time /*float*/, width /*int*/, height /*int*/, c /*Color?*/, xFeathering /*int*/, yFeathering /*int*/) { if (c === undefined) c = null; if (xFeathering === undefined) xFeathering = 30; if (yFeathering === undefined) yFeathering = 33; if (width < 75) { this.glowBoxWhite.loadFromGraphicName("GlowBox_CornerSmall"); this.glowBoxColor.loadFromGraphicName("GlowBox_CornerSmall"); } else { this.glowBoxWhite.loadFromGraphicName("GlowBox_Corner"); this.glowBoxColor.loadFromGraphicName("GlowBox_Corner"); } this.glowBoxWhite.x = -xFeathering; this.glowBoxWhite.y = -yFeathering; this.glowBoxWhite.width = width + (xFeathering * 2); this.glowBoxWhite.height = height + (yFeathering * 2); this.glowBoxColor.x = this.glowBoxWhite.x; this.glowBoxColor.y = this.glowBoxWhite.y; this.glowBoxColor.width = this.glowBoxWhite.width; this.glowBoxColor.height = this.glowBoxWhite.height; this.speedMult = time / 0.7; this.glowBoxWhite.alpha = this.alphaTargets[0]; this.glowBoxColor.alpha = this.alphaTargets[0]; if (c != null) { this.setGlowColor(c); } } setGlowColor(c /*Color*/) { this.glowBoxColor.tint = c; } go() { this.currentIndex = 1; this.tween.init((v) => this.animateFilterUpdate(v), Engine.SimpleTween.quadEaseIn, 0, 1, 0.2 * this.speedMult); this.tween.onFinish = () => this.flashFadeInMid(); } flashFadeInMid() { this.currentIndex = 2; this.tween.init((v) => this.animateFilterUpdate(v), Engine.SimpleTween.quadEaseIn, 0, 1, 0.2 * this.speedMult); this.tween.onFinish = () => this.returnFilterToNormal(); } returnFilterToNormal() { this.currentIndex = 3; this.tween.init((v) => this.animateFilterUpdate(v), Engine.SimpleTween.quadEaseIn, 0, 1, 0.3 * this.speedMult); this.tween.onFinish = () => this.finished(); } finished() { if (this.onFinish != null) this.onFinish(); } animateFilterUpdate(value /*float*/) { var start = this.alphaTargets[this.currentIndex - 1]; var end = this.alphaTargets[this.currentIndex]; this.glowBoxWhite.alpha = start + value * (end - start); this.glowBoxColor.alpha = start + value * (end - start); } }