var EHDI = EHDI || Object.create(null); EHDI.components = EHDI.components || Object.create(null); EHDI.components.GrassManager = function(stage) { var grassCount = 0; var grassContainer = new EHDI.aka.Container(); stage.addChild(grassContainer); var containerSprite = new EHDI.aka.Sprite(EHDI.Assets.images["gfx_container"]); grassContainer.addChild(containerSprite); // var grassHeader = new EHDI.aka.PixiText("BONUS", {fontFamily: 'proximanova-black', fill: 0xFFFFFF, fontSize: 20}); var grassHeader = new EHDI.displays.TextSprite(EHDI.GAME.JSONMgr.getLocale("LBL_BONUS_HEADER")); grassHeader.anchor.x = 0.5; grassHeader.anchor.y = 0.5; grassHeader.position.set(containerSprite.width * 0.169, containerSprite.height * 0.4); grassContainer.addChild(grassHeader); var grassTxtCon = new EHDI.aka.Container(); grassTxtCon.position.set(containerSprite.width * 0.675, containerSprite.height * 0.45); grassContainer.addChild(grassTxtCon); // var grassTxt = new EHDI.aka.PixiText("0", {fontFamily: 'proximanova-black', fill: 0xFFFFFF, fontSize: 36}); var grassTxt = new EHDI.displays.TextSprite(EHDI.GAME.JSONMgr.getLocale("SCORE_FORMAT")); var grassIco = new EHDI.aka.Sprite(EHDI.Assets.images["hay_ico"]); grassTxt.anchor.x = 0.5; grassTxt.anchor.y = 0.5; var halfGrassWidth = (grassTxt.width + grassIco.width) / 2; grassTxt.position.set(-halfGrassWidth + grassTxt.width * 0.5, 0); grassTxtCon.addChild(grassTxt); grassIco.anchor.set(0.5,0.5); grassIco.position.set(halfGrassWidth - grassIco.width * 0.5 , 0); grassTxtCon.addChild(grassIco); var flash = new EHDI.aka.Sprite(EHDI.Assets.images["gfx_container_white"]); grassContainer.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(grassHeader.x, grassHeader.y); sparkle.scale.set(0,0); grassContainer.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); grassContainer.addChild(line); var getGrass = function() { return grassCount; } var setDisplayPosition = function(x,y) { grassContainer.position.set(x,y); } var toggleEffects = function(bool) { line.visible = bool; sparkle.visible = bool; } var toggleFlash = function(bool) { flash.visible = bool; } toggleEffects(); var onGrassTimeline = new TimelineMax(); onGrassTimeline.to(grassTxtCon.scale, 0.1, {x: 1.2, y : 1.2}); onGrassTimeline.to(grassTxtCon.scale, 0.1, {x: 1, y : 1}); onGrassTimeline.addCallback(toggleEffects, "+=0", [true]); onGrassTimeline.addCallback(toggleFlash, "+=0", [true]); onGrassTimeline.to(sparkle.scale, 0.1, {x: 1, y : 1, ease: Power0.easeNone}); onGrassTimeline.to(line.scale, 0.2, {x: 1, y : 1, ease: Power0.easeNone}, "-=0.1"); onGrassTimeline.to(flash, 0.05, {alpha : 0.75}); onGrassTimeline.to(sparkle, 0.15, {x: containerSprite.width * 0.9, rotation: 5, ease: Power0.easeNone}, "-=0.15"); onGrassTimeline.to(flash, 0.1, {alpha : 0}, "-=0.025"); onGrassTimeline.addCallback(toggleFlash, "-=0.05", [false]); onGrassTimeline.addCallback(toggleEffects, "+=0.025", [false]); onGrassTimeline.pause(); var addGrassToScore = function () { if(grassCount > 0) EHDI.GAME.scoreManager.addScore(grassCount * 25); }; var onGetSheep = function() { var getSheepTimeline = new TimelineMax({onComplete : addGrassToScore}); getSheepTimeline.to(containerSprite, 0.5, {alpha : 0}, 0); getSheepTimeline.to(grassHeader, 0.5, {alpha : 0}, 0); getSheepTimeline.to(grassTxt, 0.5, {alpha : 0}, 0); getSheepTimeline.to(grassIco, 0.5, {x : - EHDI.GAME.sceneManager.getStageWidth() * 0.25}, 0); getSheepTimeline.to(grassIco, 0, {alpha : 0}); } var addGrass = function (grassToAdd) { grassCount += grassToAdd; grassTxt.text = grassCount; halfGrassWidth = (grassTxt.width + grassIco.width) / 2; grassTxt.position.set(-halfGrassWidth + grassTxt.width * 0.5, 0); grassTxt.position.set(-halfGrassWidth + grassTxt.width * 0.5, 0); onGrassTimeline.restart(); onGrassTimeline.play(); EHDI.GAME.soundManager.playSFX("bonus_get"); }; var dispose = function() { onGrassTimeline.kill(); }; return { addGrass : addGrass, getGrass : getGrass, setXY : setDisplayPosition, onGetSheep : onGetSheep }; };