/////////////////////////////////////
//Fonctions utilisées en cours de niveau
/////////////////////////////////////
function TesterFinNiveau(e:Event):void
{//Teste si le niveau est terminé, ou si il est invalide.
//Fonctionne aussi quand le mode 2 joueurs est activé.
if(Mode2Joueurs)
Verifier_2Joueurs();
else
{
if(GrandPere.Ferme)
TerminerNiveau(1);//GAGNÉ !
else
{
if(Fond.NbJetonsToleres-Fond.NbJetonsUtilises<0)
{//PERDU
TerminerNiveau(0);
ChangeLevelInfo.htmlText="Trop de noeuds allumés !";
}
}
}
}
/////////////////////////////////////
//Fonctions utilisées lors des changements de niveaux
/////////////////////////////////////
function TerminerNiveau(Valeur:int):void
{//Termine un niveau en affichant la boite de changement
//Ajoute la valeur aux niveaux unlockés.
removeEventListener(Event.ENTER_FRAME,TesterFinNiveau);
Flouter(Fond,0,Fond.FLOU_FINAL);//Ajouter un flou
NumeroNiveauActuel+=Valeur;
if(NumeroNiveauActuel>NumeroNiveauUnlockes && Fond.Officiel==true && NumeroNiveauActuel<12)
{//Si il vient de réussir le niveau sur lequel il était bloqué
NumeroNiveauUnlockes+=Valeur;//Débloquer un nouveau niveau
SESSION.NumeroNiveauActuel=NumeroNiveauActuel;//Et enregistrer en local la progression
SESSION.NumeroNiveauUnlockes=NumeroNiveauUnlockes;
ChangeLevelInfo.htmlText="Nouveau Niveau débloqué !";
}
//Puis afficher la boite avec la liste des niveaux.
UpdaterBoite();
}
function StopLevel(e:Event=null):void
{//Arrête le niveau directement.
TerminerNiveau(0);
Message_Container.visible=false;
ChangeLevelInfo.htmlText="Niveau abandonné !";
}
function LancerNouveauNiveau(NumNiveau:int=-1):void
{//Lancer un niveau "quelconque"
if(NumNiveau==-1)
NumNiveau=NumeroNiveauActuel;
if(Fond!=null && contains(Fond))
{//Si Fond a déjà été utilisé, nettoyer l'ensemble
Fond.Nettoyer();
removeChild(Fond);
}
//SwapBackGround();
Fond = GetLevelData(NumNiveau);
Fond.graphics.clear();//Supprimer le fond blanc
addChild(Fond);
//Repasser la boite de message au premier plan
setChildIndex(Fond,1);
Flouter(Fond,Fond.FLOU_FINAL,0);//Déflouter
addEventListener(Event.ENTER_FRAME,TesterFinNiveau);
ChangeLevelInfo.htmlText="Liste des niveaux";
}
////////////////////////////////////////
//Partie gérant les effets graphiques
////////////////////////////////////////
function Flouter(Layer:Niveau,Depart:int,Arrivee:int):void
{
Layer.FlouFinal=Arrivee;
Layer.Flou=Depart;
Layer.addEventListener(Event.ENTER_FRAME,GererFlou);
}
function GererFlou(e:Event):void
{//Flouter le niveau en arrière plan
var Layer:Object=e.currentTarget;
if(Layer.Flou!=Layer.FlouFinal)
{
if(Layer.Flou.5);
Layer.removeEventListener(Event.ENTER_FRAME,GererFlou);
}
}