package com.isartdigital.ui.popin;

import com.isartdigital.game.GameManager;
import com.isartdigital.game.sprites.Arrow;
import com.isartdigital.game.sprites.CheckItem;
import com.isartdigital.game.sprites.Score;
import com.isartdigital.utils.Config;
import com.isartdigital.utils.events.MouseEventType;
import com.isartdigital.utils.game.GameStage;
import com.isartdigital.utils.system.DeviceCapabilities;
import com.isartdigital.utils.ui.Popin;
import pixi.core.math.shapes.Rectangle;
import pixi.core.sprites.Sprite;
import pixi.core.text.Text;
import pixi.core.textures.Texture;

	
/**
 * ...
 * @author Cindy Asselin de Beauville
 */
class WinPopin extends Popin 
{
	
	/**
	 * instance unique de la classe WinPopin
	 */
	private static var instance: WinPopin;
	
	private var background:Sprite;
	private var txtStyle:TextStyle = { fill:'white', stroke: 'black', strokeThickness: 5, font : "62px tao" };
	
	/**
	 * Retourne l'instance unique de la classe, et la crée si elle n'existait pas au préalable
	 * @return instance unique
	 */
	public static function getInstance (): WinPopin {
		if (instance == null) instance = new WinPopin();
		return instance;
	}
	
	/**
	 * constructeur privé pour éviter qu'une instance soit créée directement
	 */
	private function new() 
	{
		super();
		background = new Sprite(Texture.fromImage(Config.assetsPath+ "Scoring.png"));
		background.anchor.set(0.5, 0.5);
		addChild(background);
		
		interactive = true;
		buttonMode = true;
		
		for (i in 0...Arrow.arrowsArray.length) {
			if ( Arrow.arrowsArray[i].parent != null) Arrow.arrowsArray[i].remove();
		}
		
		// once(MouseEventType.CLICK,reStart);
		
		var lScreen:Rectangle = DeviceCapabilities.getScreenRect(GameStage.getInstance());
		
		GameManager.getInstance().pause = true;
		
		var txt = Score.getInstance().txt;
		txt.anchor.set(0.5, 0.5);
		txt.position.set(x,lScreen.y + lScreen.height / 2/3);
		addChild(txt);
	}
	
	/**
	 * détruit l'instance unique et met sa référence interne à null
	 */
	override public function destroy (): Void {
		instance = null;
	}

}