var EHDI = EHDI || Object.create(null); EHDI.components = EHDI.components || Object.create(null); EHDI.components.ScoreManager = function(stage) { var score = 0; var scoreContainer = new EHDI.aka.Container(); stage.addChild(scoreContainer); var containerSprite = new EHDI.aka.Sprite(EHDI.Assets.images["gfx_container"]); scoreContainer.addChild(containerSprite); // var scoreHeader = new EHDI.aka.PixiText("SCORE: ", {fontFamily: 'proximanova-black', fill: 0xFFFFFF, fontSize: 17}); var scoreHeader = new EHDI.displays.TextSprite(EHDI.GAME.JSONMgr.getLocale("LBL_SCORE_HEADER")); scoreHeader.anchor.x = 0.5; scoreHeader.anchor.y = 0.5; scoreHeader.position.set(containerSprite.width * 0.19, containerSprite.height * 0.4); scoreContainer.addChild(scoreHeader); // var scoreTxt = new EHDI.aka.PixiText("0", {fontFamily: 'proximanova-black', fill: 0xFFFFFF, fontSize: 36}); var scoreTxt = new EHDI.displays.TextSprite(EHDI.GAME.JSONMgr.getLocale("SCORE_FORMAT")); scoreTxt.anchor.x = 0.5; scoreTxt.anchor.y = 0.5; scoreTxt.position.set(containerSprite.width * 0.675, containerSprite.height * 0.45); scoreContainer.addChild(scoreTxt); var flash = new EHDI.aka.Sprite(EHDI.Assets.images["gfx_container_white"]); scoreContainer.addChild(flash); flash.alpha = 0; flash.visible = false; var sparkle = new EHDI.aka.Sprite(EHDI.Assets.images["gfx_flare_star"]); sparkle.anchor.set(0.5, 0.5); sparkle.position.set(scoreHeader.x, scoreHeader.y); sparkle.scale.set(0, 0); scoreContainer.addChild(sparkle); var line = new EHDI.aka.Sprite(EHDI.Assets.images["gfx_flare_long"]); line.anchor.set(0.5, 0.5); line.position.set(containerSprite.width * 0.5, containerSprite.height * 0.4); line.scale.set(0, 1); scoreContainer.addChild(line); var getScore = function() { return score; } var setDisplayPosition = function(x,y) { scoreContainer.position.set(x,y); } var toggleEffects = function(bool) { line.visible = bool; sparkle.visible = bool; } var toggleFlash = function(bool) { flash.visible = bool; } toggleEffects(); var onScoreTimeline = null; var createTimeline = function(){ onScoreTimeline = new TimelineMax(); onScoreTimeline.to(scoreTxt.scale, 0.1, {x: 1.5, y : 1.5}); onScoreTimeline.to(scoreTxt.scale, 0.1, {x: 1, y : 1}); onScoreTimeline.addCallback(toggleEffects, "+=0", [true]); onScoreTimeline.addCallback(toggleFlash, "+=0", [true]); onScoreTimeline.to(sparkle.scale, 0.1, {x: 1, y : 1, ease: Power0.easeNone}); onScoreTimeline.to(line.scale, 0.2, {x: 1, y : 1, ease: Power0.easeNone}, "-=0.1"); onScoreTimeline.to(flash, 0.05, {alpha : 0.75}); onScoreTimeline.to(sparkle, 0.15, {x: containerSprite.width * 0.9, rotation: 5, ease: Power0.easeNone}, "-=0.15"); onScoreTimeline.to(flash, 0.1, {alpha : 0}, "-=0.025"); onScoreTimeline.addCallback(toggleFlash, "-=0.05", [false]); onScoreTimeline.addCallback(toggleEffects, "+=0.025", [false]); // onScoreTimeline.pause(); } var addToScore = function (scoreToAdd) { score += scoreToAdd; scoreTxt.text = score; if(!onScoreTimeline){ createTimeline(); }else{ onScoreTimeline.restart(); onScoreTimeline.play(); } }; var dispose = function() { // onScoreTimeline.kill(); if(onScoreTimeline) onScoreTimeline.kill(); scoreContainer.destroy({children: true}); }; return { addScore : addToScore, getScore : getScore, setXY : setDisplayPosition, dispose : dispose }; };