/***************************************************************************/
/*																		   */
/*	     /\                       PLEASE,                         /\       */
/*		/| \             DO NOT COPY SCRIPTS FROM                /| \      */
/*     / |  \                ZELDA ADVENTURE !                  / |  \     */
/*    /  |   \                                                 /  |   \    */
/*   /        \        READ THE credits.txt FILE FOR          /        \   */
/*  /    o     \             MORE INFORMATION.               /    o     \  */
/*  ------------                                             ------------  */
/***************************************************************************/

// --- Jour permanent --- \\

time.set(5000);

// --- Déclaration des variables --- \\

var v = player.getVelocity();
var pinv = pinv;
var pos = player.getPosition();
var qurub1 = 0; var quman1 = 0; var qufle1 = 0; var qubomb1 = 0; var qucle1 = 0; var qucleb1 = 0;
var m1,m2,m3,m4,m5,m6;

try
{
	var toucheIronBoots = selecIBottes();
}
catch(e) {}

// --- Exécution de fonctions --- \\

UpdateFireProjectiles();
UpdateIceProjectiles();
UpdateFrozenMobs();

// --- Touches clavier --- \\

keyboard.bindKey(35, "help.js"); // Touche H
keyboard.bindKey(208, "touches.js"); // Touche arrière
keyboard.bindKey(200, "touchez.js"); // Touche avant
keyboard.bindKey(57, "touchespace.js");
keyboard.bindKey(205, "touched.js"); // Touche droite
keyboard.bindKey(203, "toucheq.js"); // Touche gauche

// --- Sons au ramassage --- \\

// Rubis
for(i = 0; i < 40; i++) {
	var itemSlot = pinv.getItemInSlot(i);
	if (itemSlot != null && itemSlot.getItemID() == 266) {
		qurub1 = qurub1 + itemSlot.quantity;
}	}
if (typeof qurub2 == "undefined") {
	var qurub2 = qurub1;
}
if (qurub1 > qurub2) {
    sound.playSoundUI("sound.get rupee");
}
qurub2 = qurub1;

// Mana
for(i = 0; i < 40; i++) {
	var itemSlot = pinv.getItemInSlot(i);
	if (itemSlot != null && itemSlot.getItemID() == 289) {
		quman1 = quman1 + itemSlot.quantity;
}	}
if (typeof quman2 == "undefined") {
	var quman2 = quman1;
}
if (quman1 > quman2) {
    sound.playSoundUI("sound.magic");
}
quman2 = quman1;

// Flèches
for(i = 0; i < 40; i++) {
	var itemSlot = pinv.getItemInSlot(i);
	if (itemSlot != null && itemSlot.getItemID() == 262) {
		qufle1 = qufle1 + itemSlot.quantity;
}	}
if (typeof qufle2 == "undefined") {
	var qufle2 = qufle1;
}
if (qufle1 > qufle2) {
    sound.playSoundUI("sound.get item");
}
qufle2 = qufle1;

// Bombes
for(i = 0; i < 40; i++) {
	var itemSlot = pinv.getItemInSlot(i);
	if (itemSlot != null && itemSlot.getItemID() == 466) {
		qubomb1 = qubomb1 + itemSlot.quantity;
}	}
if (typeof qubomb2 == "undefined") {
	var qubomb2 = qubomb1;
}
if (qubomb1 > qubomb2) {
    sound.playSoundUI("sound.get item");
}
qubomb2 = qubomb1;

// Clé
for(i = 0; i < 40; i++) {
	var itemSlot = pinv.getItemInSlot(i);
	if (itemSlot != null && itemSlot.getItemID() == 457) {
		qucle1 = qucle1 + itemSlot.quantity;
}	}
if (typeof qubomb2 == "undefined") {
	var qucle2 = qucle1;
}
if (qucle1 > qucle2) {
    sound.playSoundUI("sound.fanfare item");
}
qucle2 = qucle1;

// Clé Boss
for(i = 0; i < 40; i++) {
	var itemSlot = pinv.getItemInSlot(i);
	if (itemSlot != null && itemSlot.getItemID() == 465) {
		qucleb1 = qucleb1 + itemSlot.quantity;
}	}
if (typeof qubomb2 == "undefined") {
	var qucleb2 = qucleb1;
}
if (qucleb1 > qucleb2) {
    sound.playSoundUI("sound.fanfare item");
}
qucleb2 = qucleb1;

// --- Convertisseur de rubis --- \\

if(pinv.getSlotContainingItem(264)>=0) // Rubis bleu
{
	pinv.consumeItem(264);
	 sound.playSoundUI("sound.get rupee");
	pinv.addItem(Item(266,5));
}
if(pinv.getSlotContainingItem(265)>=0) // Rubis jaune
{
	pinv.consumeItem(265);
	sound.playSoundUI("sound.get rupee");
	pinv.addItem(Item(266,10));
}
if(pinv.getSlotContainingItem(336)>=0) // Rubis rouge
{
	pinv.consumeItem(336);
	sound.playSoundUI("sound.get rupee");
	pinv.addItem(Item(266,20));
}

// --- Ramassages interdits --- \\
if(pinv.getSlotContainingItem(12)>=0) // Sable
	pinv.consumeItem(12);
if(pinv.getSlotContainingItem(321)>=0) // Tableaux
	pinv.consumeItem(321);
if(pinv.getSlotContainingItem(201)>=0) // Block poussable
	pinv.consumeItem(201);
if(pinv.getSlotContainingItem(352)>=0) // Os
	pinv.consumeItem(352);
if(pinv.getSlotContainingItem(287)>=0) // Fil
	pinv.consumeItem(287);
if(pinv.getSlotContainingItem(288)>=0) // Plume
	pinv.consumeItem(288);
if(pinv.getSlotContainingItem(341)>=0) // Slime ball
	pinv.consumeItem(341);

// --- Achat de potions --- \\

if(pinv.getSlotContainingItem(257)>=0) // Potion rouge
	pinv.consumeItem(257);
if(pinv.getSlotContainingItem(258)>=0) // Potion bleue
	pinv.consumeItem(258);
if(pinv.getSlotContainingItem(292)>=0) // Potion verte
	pinv.consumeItem(292);

// --- Tunique Zora ---  \\

if(pinv.getSlotContainingItem(299) == 38)
{
	player.setMaxAir(1)
	player.setAir(1)
}
else
{
	player.setMaxAir(300)
}

// --- Tunique Goron --- \\

if(pinv.getSlotContainingItem(315) == 38)
{
	player.setFireResistance(50);
	resistanceChaleur = true;
	player.texture="/npc/TuniqueFeu.png";
	effect.replaceTexture("/gui/inventory.png","/textureChanges/inventory.png");
}
else
{
	player.setFireResistance(0);
	resistanceChaleur = false;
	player.texture="/mob/char.png";
	effect.replaceTexture("/gui/inventory.png","/gui/inventory.png");
}

// Enlève de la vie si tunique non équipée et joue le son
if(typeof milieuChaud == "undefined")
{
	milieuChaud = false;
}
	
if(milieuChaud && !resistanceChaleur)
{
	tempsMilieuChaud++;
	if(tempsMilieuChaud%20 == 0)
	{
		player.setHealth(player.getHealth()-1);
	}
	
	if(tempsMilieuChaud%60 == 0)
		sound.playSoundUI("sound.linkhot");
}
		

	
// --- Stack rubis infini + rubis en slot 35 + limite bourses --- \\
if(pinv.getItemInSlot(35) != null)
{
        if(pinv.getItemInSlot(35).getItemID() != 266)
        {
                for(i=0;i<35;i++)
                {
                        if(pinv.getItemInSlot(i) == null)
                        {
                            try
							{
								var pitem = pinv.getItemInSlot(35).copy();
                                pinv.emptySlot(35);
                                pinv.setSlot(i, pitem);
							}
							catch(e) {}
                        }
                }
        }
}
if (pinv.getSlotContainingItem(266) != -1)
{
	var item = pinv.getItemInSlot(pinv.getSlotContainingItem(266)).copy();
    if (pinv.getSlotContainingItem(266) != 35)
    {
        try
        {
            var count = pinv.getItemInSlot(35).getQuantity();
        }
        catch(e) { var count = 0; }
        pinv.emptySlot(pinv.getSlotContainingItem(266));
        if (count < 500)
        {
            if (item.getQuantity() + count <= 500)
            {
                item.setQuantity(item.getQuantity() + count);
            }
            else
            {
                item.setQuantity(500);
            }
			
			if(pinv.getSlotContainingItem(339) == -1)
			{
				if(pinv.getSlotContainingItem(353) == -1)
				{
					if(item.getQuantity() >= 100)
					{
						item.setQuantity(99);
					}	
				}
				else
				{
					if(item.getQuantity() >= 201)
					{
						item.setQuantity(200);
					}
				}
			}
		}
	    else
        {
            item.setQuantity(500);
        }
        pinv.setSlot(35, item);
    }
	else
	{
		if(pinv.getSlotContainingItem(339) == -1)
		{
			if(pinv.getSlotContainingItem(353) == -1)
			{
				if(item.getQuantity() >= 100)
				{
					item.setQuantity(99);
				}	
			}
			else
			{
				if(item.getQuantity() >= 201)
				{
					item.setQuantity(200);
				}
			}
		}
		else if(pinv.getItemInSlot(35).getQuantity() > 500)
		{
			pinv.getItemInSlot(35).setQuantity(500);
		}
	}
			
}

// --- Bourses rubis --- \\

if(pinv.getSlotContainingItem(353) != -1 && pinv.getSlotContainingItem(339) != -1)
{
	pinv.consumeItem(353)
}

if(pinv.getItemInSlot(34) != null)
{
        if(pinv.getItemInSlot(34).getItemID() != 353 || pinv.getItemInSlot(34).getItemID() != 339)
        {
                for(i=0;i<35;i++)
                {
                        if(pinv.getItemInSlot(i) == null)
                        {
                                try
								{
									var pitem = pinv.getItemInSlot(34).copy();
									pinv.emptySlot(34);
									pinv.setSlot(i, pitem);
								}
								catch(e) {}
                        }
                }
        }
}

try
{
	if(pinv.getSlotContainingItem(353) != 34)
	{
		quant2 = 0;
		pinv = pinv;
		slot = pinv.getSlotContainingItem(353);
		quant = pinv.getItemInSlot(slot).getQuantity();
		try
		{
			quant2 = pinv.getItemInSlot(34).getQuantity();
		}
		catch(e) {}
		pinv.emptySlot(slot);
		pinv.setSlot(34, Item(353, quant + quant2));
			
	}
}
catch(e) {}

try
{
	if(pinv.getSlotContainingItem(339) != 34)
	{
		quant2 = 0;
		pinv = pinv;
		slot = pinv.getSlotContainingItem(339);
		quant = pinv.getItemInSlot(slot).getQuantity();
		try
		{
			quant2 = pinv.getItemInSlot(34).getQuantity();
		}
		catch(e) {}
		pinv.emptySlot(slot);
		pinv.setSlot(34, Item(339, quant + quant2));
			
	}
}
catch(e) {}


// --- Stack flèches infini + flèches en slot 26 + limite bourses --- \\

if (pinv.getSlotContainingItem(262) != -1)
{
    if (pinv.getSlotContainingItem(262) != 26)
    {
        try
        {
            var count = pinv.getItemInSlot(26).getQuantity();
        }
        catch(e) { var count = 0; }
        var item = pinv.getItemInSlot(pinv.getSlotContainingItem(262)).copy();
        pinv.emptySlot(pinv.getSlotContainingItem(262));
        if (count < 500)
        {
            if (item.getQuantity() + count <= 500)
            {
                item.setQuantity(item.getQuantity() + count);
            }
            else
            {
                item.setQuantity(500);
            }
			
			if(pinv.getSlotContainingItem(318) == -1)
			{
				if(item.getQuantity() >= 201)
				{
					item.setQuantity(200);
				}
				
			}
		}
	    else
        {
            item.setQuantity(500);
        }
        pinv.setSlot(26, item);
    }
    pinv.getItemInSlot(26).setDamage(pinv.getItemInSlot(26).getQuantity());
}

if(pinv.getItemInSlot(26) != null)
{
        if(pinv.getItemInSlot(26).getItemID() != 262)
        {
                for(i=0;i<35;i++)
                {
                        if(pinv.getItemInSlot(i) == null)
                        {
                                try
								{
									var pitem = pinv.getItemInSlot(26).copy();
									pinv.emptySlot(26);
									pinv.setSlot(i, pitem);
								}
								catch(e) {}
                        }
                }
        }
}

for(i=0 ; i<35 ; i++)
{
	if(pinv.getItemInSlot(i) != null)
	{
		if(pinv.getItemInSlot(i).getItemID() == 262 && i !=26)
		{
			quant2 = 0;
			pinv = pinv;
			quant = pinv.getItemInSlot(i).getQuantity();
			try
			{
				quant2 = pinv.getItemInSlot(26).getQuantity();
			}
			catch(e) {}
			pinv.emptySlot(i);
			pinv.setSlot(26, Item(262, quant + quant2));
			
		}
	}
}

// --- Carquois --- \\

if(pinv.getItemInSlot(25) != null)
{
        if(pinv.getItemInSlot(25).getItemID() != 318)
        {
                for(i=0;i<35;i++)
                {
                        if(pinv.getItemInSlot(i) == null)
                        {
                                try
								{
									var pitem = pinv.getItemInSlot(25).copy();
									pinv.emptySlot(25);
									pinv.setSlot(i, pitem);
								}
								catch(e) {}
                        }
                }
        }
}

for(i=0 ; i<35 ; i++)
{
	if(pinv.getItemInSlot(i) != null)
	{
		if(pinv.getItemInSlot(i).getItemID() == 318 && i !=25)
		{
			quant2 = 0;
			pinv = pinv;
			quant = pinv.getItemInSlot(i).getQuantity();
			try
			{
				quant2 = pinv.getItemInSlot(25).getQuantity();
			}
			catch(e) {}
			pinv.emptySlot(i);
			pinv.setSlot(25, Item(318, quant + quant2));
			
		}
	}
}

// --- Magie + magie en slot 17 --- \\

if(pinv.getItemInSlot(17) != null)
{
        if(pinv.getItemInSlot(17).getItemID() != 289)
        {
                for(i=0;i<35;i++)
                {
                        if(pinv.getItemInSlot(i) == null)
                        {
                                try
								{
									var pitem = pinv.getItemInSlot(17).copy();
									pinv.emptySlot(17);
									pinv.setSlot(i, pitem);
								}
								catch(e) {}
                        }
                }
        }
}

for(i=0 ; i<35 ; i++)
{
	if(pinv.getItemInSlot(i) != null)
	{
		if(pinv.getItemInSlot(i).getItemID() == 289 && i !=17)
		{
			quant2 = 0;
			pinv = pinv;
			quant = pinv.getItemInSlot(i).getQuantity();
			try
			{
				quant2 = pinv.getItemInSlot(17).getQuantity();
			}
			catch(e) {}
			pinv.emptySlot(i);
			pinv.setSlot(17, Item(289, quant + quant2));
			
		}
	}
}

try
{
	if(pinv.getItemInSlot(17).getQuantity() > 30)
	{
		pinv.emptySlot(17);
		pinv.setSlot(17, Item(289, 30));
	}
}
catch(e) {}

// --- Sac de bombe --- \\

if(pinv.getItemInSlot(16) != null)
{
        if(pinv.getItemInSlot(16).getItemID() != 281)
        {
                for(i=0;i<35;i++)
                {
                        if(pinv.getItemInSlot(i) == null)
                        {
                                try
								{
									var pitem = pinv.getItemInSlot(16).copy();
									pinv.emptySlot(16);
									pinv.setSlot(i, pitem);
								}
								catch(e) {}
                        }
                }
        }
}

for(i=0 ; i<35 ; i++)
{
	if(pinv.getItemInSlot(i) != null)
	{
		if(pinv.getItemInSlot(i).getItemID() == 281 && i !=16)
		{
			quant2 = 0;
			pinv = pinv;
			quant = pinv.getItemInSlot(i).getQuantity();
			try
			{
				quant2 = pinv.getItemInSlot(16).getQuantity();
			}
			catch(e) {}
			pinv.emptySlot(i);
			pinv.setSlot(16, Item(281, quant + quant2));
			
		}
	}
}

// --- 	Bombes en slot 9 + limite sac de bombe --- \\

if(pinv.getItemInSlot(8) != null)
{
        if(pinv.getItemInSlot(8).getItemID() != 466)
        {
                for(i=0;i<35;i++)
                {
                        if(pinv.getItemInSlot(i) == null)
                        {
                                try
								{
									var pitem = pinv.getItemInSlot(8).copy();
									pinv.emptySlot(8);
									pinv.setSlot(i, pitem);
								}
								catch(e) {}
                        }
                }
        }
}

for(i=0 ; i<35 ; i++)
{
	if(pinv.getItemInSlot(i) != null)
	{
		if(pinv.getItemInSlot(i).getItemID() == 466 && i != 8)
		{
			quant2 = 0;
			pinv = pinv;
			quant = pinv.getItemInSlot(i).getQuantity();
			try
			{
				quant2 = pinv.getItemInSlot(8).getQuantity();
			}
			catch(e) {}
			pinv.emptySlot(i);
			pinv.setSlot(8, Item(466, quant + quant2));
			
		}
	}
}

try
{
	if(pinv.getItemInSlot(8).getQuantity() <= 30)
	{
		if(sac == 0)
		{
			try
			{
				if(pinv.getItemInSlot(8).getQuantity() > 10)
				{
					pinv.emptySlot(8);
					pinv.setSlot(8, Item(466, 10));
				}
			}
			catch(e) {}
		}
	}
	else
	{
		pinv.emptySlot(8);
		pinv.setSlot(8, Item(466, 30));
	}
}
catch(e) {}

if(pinv.getSlotContainingItem(281) != -1)
{
	sac = 1;
}

// --- Rubis GUI --- \\

h = ui.getHeight()
pinv = pinv
try
{
	if (ui.getHeight() != scree) {
		var ne = ui.getHeight()
		if(UIocc == 0)
		{
			screen.clear()
		}
		ne = scree
	}
	if (pinv.getSlotContainingItem(266) == -1)
	{
		var rup = 0
		if(UIocc == 0)
		{
			screen.clear()
		}
		UISprite("gui/items.png",5,h-20,15,15,110,32)
		UILabel(rup,23,h-15)
	}
	else
	{
		try 
		{
			rup = pinv.getItemInSlot(35).getQuantity()
		}
		catch(e) {}
		if(UIocc == 0)
		{
			screen.clear()
		}
		UISprite("gui/items.png",5,h-20,15,15,110,32)
		UILabel(rup,23,h-15)
	}	
		
}
catch(e) {}

// --- Magie GUI --- \\

UISprite("gui/magie3.PNG",5,15,150,10,0,0);

try
{
	mag = pinv.getItemInSlot(17).getQuantity();
			
	if(pinv.getSlotContainingItem(289) != -1 )
	{
		UIRect(6,16,mag*2,6,0,0.7,0,0.9)
		UIRect(6+(mag*2),16,60-(mag*2),6,0,0,0,0.5)
	}
}
catch(e) {}
	
if(pinv.getSlotContainingItem(289) == -1)
{
	UIRect(6,16,60,6,0,0,0,0.5)
}

// --- Flèches GUI --- \\
	
try
{
		
	if (pinv.getSlotContainingItem(262) == -1)
	{
		var fleche = 0
			
		UISprite("gui/items.png",45,h-20,17,17,80,32)
		UILabel(fleche,65,h-15)
	}
	else
	{
		try 
		{
			fleche = pinv.getItemInSlot(26).getQuantity()
		}
		catch(e) {}
			
		UISprite("gui/items.png",45,h-20,17,17,80,32)
		UILabel(fleche,65,h-15)
	}
		
		
}
catch(e) {}

// --- Deku stick --- \\

pos = player.getPosition();
if(pinv.getSlotContainingItem(291) != -1 && aut == false)
{
	pinv.consumeItem(291);  
}

try
{
	slot = pinv.getSlotContainingItem(pinv.getCurrentItem().getItemID());
}
catch(e) {}
try
{
	slot2 = pinv.getSlotContainingItem(pinv.getOffhandItem().getItemID());
}	
catch(e) {}

for(i=-1;i<=1;i++)
{
	for(j=-1;j<=0;j++)
	{
		for(k=-2;k<=0;k++)
		{
			if(world.getBlockID(pos.x+i, pos.y+j, pos.z+k) == 51 || world.getBlockID(pos.x+i, pos.y+j, pos.z+k) == 50 || world.getBlockID(pos.x+i, pos.y+j, pos.z+k) == 10 || world.getBlockID(pos.x+i, pos.y+j, pos.z+k) == 11)
			{
				if(pinv.getCurrentItem() != null && pinv.getCurrentItem().getItemID() == 280)
				{
				    sound.playSoundUI("sound.fire_ignite");
					aut = true;
					quant = pinv.getCurrentItem().getQuantity() -1;
					pinv.consumeItem(pinv.getCurrentItem().getItemID())
					for(h=9;h<35;h++)
					{
						if(pinv.getItemInSlot(h) == null)
						{
							pinv.emptySlot(slot)
							if(quant > 0)
							{
								pinv.setSlot(h, Item(280, quant))
							}
							h = 35;
						}
					}
					pinv.setSlot(slot, Item(291))
					
					time.sleep(15)
					pinv.consumeItem(291)
					aut = false;
				}				
				if(pinv.getOffhandItem() != null && pinv.getOffhandItem().getItemID() == 280)
				{
					aut = true;
					quant2 = pinv.getOffhandItem().getQuantity() -1;
					pinv.consumeItem(pinv.getOffhandItem().getItemID())
					for(h=9;h<35;h++)
					{
						if(pinv.getItemInSlot(h) == null)
						{
							pinv.emptySlot(slot2)
							if(quant2 > 0)
							{
								pinv.setSlot(h, Item(280, quant2))
							}
							h = 35;
						}
					}
					pinv.setSlot(slot2, Item(291))
					
					time.sleep(15)
					pinv.consumeItem(291)
					aut = false;
}	}	}	}	}

for(i=-1;i<=1;i++)
{
	for(j=-1;j<=0;j++)
	{
		for(k=-2;k<=0;k++)
		{
			if(world.getBlockID(pos.x+i, pos.y+j, pos.z+k) == 75)
			{
				if(pinv.getCurrentItem() != null && pinv.getCurrentItem().getItemID() == 291)
				{
					world.setBlockID(pos.x+i, pos.y+j, pos.z+k, 50);
					
					for(a=-2;a<=2;a++)
					{
						for(b=-2;b<=2;b++)
						{
							for(c=-4;c<=4;c++)
							{
								if(world.getBlockID(pos.x + i + a, pos.y + j + c, pos.z + k + b) == 41)
								{
									world.setBlockID(pos.x + i + a, pos.y + j + c, pos.z + k + b, 0);
}	}	}	}	}	}	}	}	}


// --- Flèches effectives --- \\

for each (var entity in player.getEntitiesWithinRange(40)) // Oeil
{
	if(entity.classType == "Arrow")
	{
		if(entity.inBlockID == 22)
		{
			blockCoord = entity.inBlockCoords
			world.setBlockID(blockCoord.x, blockCoord.y, blockCoord.z, 0)
			time.sleep(0.01)
			world.setBlockID(blockCoord.x, blockCoord.y, blockCoord.z, 209)
			sound.playSoundUI("sound.eye_bow");
			entity.setDead();
			entity.isPlayersArrow = false
		}
	}
}

for each (var entity in player.getEntitiesWithinRange(40)) // Cibles rouges
{
	if(entity.classType == "Arrow")
	{
		if(entity.isPlayersArrow && entity.inBlockID == 41 && playGame == 1)
		{
			blockCoord = entity.inBlockCoords;
			world.setBlockID(blockCoord.x, blockCoord.y, blockCoord.z, 0);
			time.sleep(0.01);
			sound.playSoundUI("sound.whistle");
			sound.playSoundUI("sound.targethit");
			score++;
			entity.isPlayersArrow = false;
		}
	}
}
for each (var entity in player.getEntitiesWithinRange(40)) // Cibles dorées
{
	if(entity.classType == "Arrow")
	{
		if(entity.isPlayersArrow && entity.inBlockID == 48 && playGame == 1)
		{
			blockCoord = entity.inBlockCoords;
			world.setBlockID(blockCoord.x, blockCoord.y, blockCoord.z, 0);
			time.sleep(0.01);
			sound.playSoundUI("sound.whistle");
			sound.playSoundUI("sound.targethit");
			score = score + 2;
			entity.isPlayersArrow = false;
		}
	}
}

// --- Grapin interdictions --- \\

grapSearch = player.getEntitiesWithinRange(40);
for(i=0 ; i < grapSearch.length ; i++) {
	egrap = grapSearch[i];
	
	if(egrap.getClassType() == "Hookshot") {
		gpos = egrap.getPosition();
		for(j=-1 ; j <=1 ; j++) {
			for(k=-1 ; k<=1 ; k++) {
				if(world.getBlockID(gpos.x+j, gpos.y, gpos.z+k) == 17 || world.getBlockID(gpos.x+j, gpos.y, gpos.z+k) == 5 || (world.getBlockID(gpos.x+j, gpos.y, gpos.z+k) == 214
				&& (world.getMetadata(gpos.x+j, gpos.y, gpos.z+k) == 5 || world.getMetadata(gpos.x+j, gpos.y, gpos.z+k) == 7 || world.getMetadata(gpos.x+j, gpos.y, gpos.z+k) == 6))) {
					gslot = pinv.getSlotContainingItem(458);
					pinv.emptySlot(gslot);
					pinv.setSlot(gslot, Item(458));
		
				}			
			}	
		}	
		npcSearch = egrap.getEntitiesWithinRange(3);
		for(j=0 ; j < npcSearch.length ; j++) {
			enpc = npcSearch[j];
			if(enpc.getClassType() == "NPC") {
				gslot = pinv.getSlotContainingItem(458);
				pinv.emptySlot(gslot);
				pinv.setSlot(gslot, Item(458));
			}
			else if(enpc.getClassType() == "Script") {
				gslot = pinv.getSlotContainingItem(458);
				pinv.emptySlot(gslot);
				pinv.setSlot(gslot, Item(458));
}	}	}	}


// --- Pommes --- \\

if(pinv.getSlotContainingItem(260) != -1) {
	apslot = pinv.getSlotContainingItem(260);
	apquant = pinv.getItemInSlot(apslot).getQuantity();
	pinv.emptySlot(apslot);
	if(pinv.getSlotContainingItem(260) != -1) {
		apslot2 = pinv.getSlotContainingItem(260);
		apquant2 = pinv.getItemInSlot(apslot2).getQuantity();
		pinv.emptySlot(apslot2);
		pinv.setSlot(apslot2, Item(260,apquant + apquant2));
	}
	else {
		pinv.setSlot(apslot, Item(260, apquant));
	}
}

// --- Affichage overlay milieu chaud --- \\

if(milieuChaud && chronoBoss == 0 && UIocc == 0)
{
	UIRect(0,0,1000,1000,248,0,0,0.2);
}


// --- Compteurs et autres boss de feu --- \\
	
if(chronoBoss == 1) // Compteur pour la chaleur
{
	if(tempsRestantBoss > 4798)
	{
		gslot = pinv.getSlotContainingItem(458); // Déséquipe et rééquipe le grapin au cas où il était aggripé quelque part au moment de la mort
		pinv.emptySlot(gslot);
		pinv.setSlot(gslot, Item(458));
	}

	if(tempsRestantBoss >= 0)
		UIRect(0,0,1000,1000,248,0,0,0.4-(tempsRestantBoss/24000)); // Affiche l'overlay illustrant la chaleur
	else
		UIRect(0,0,1000,1000,248,0,0,0.4); // Empêche d'augmenter l'opacité de l'overlay quand le chrono descend en-dessous de 0.
		
	if(labelTempsRestant == undefined) // Crée le compteur
	{
		labelTempsRestant = UILabel("", ui.getWidth()/2, 6);
		labelTempsRestant.centered = true;
	}
	tempsRestantBoss--;
	
	if(tempsRestantBoss > 0) // Affiche le compteur si le temps restant est supérieur à 0 seconde
	{
		labelTempsRestant = UILabel("", ui.getWidth()/2, 6);
	}
	else // Si le compteur est écoulé, Link meurt à petit feu
	{
		if(tempsRestantBoss%30 == 0)
			sound.playSoundUI("sound.linkhot");
		player.setHealth(player.getHealth()-1);
	}
	var minutesRestantes = Math.floor(tempsRestantBoss/TICKS_PER_MINUTE); // Définition des variables du compteur
	var secondesRestantes = (tempsRestantBoss%TICKS_PER_MINUTE)/TICKS_PER_SECOND;
	labelTempsRestant.text = sprintf("%d:%05.2f", minutesRestantes, secondesRestantes); // Affichage du compteur

	var rad = 2*Math.PI*(tempsRestantBoss%(2*TICKS_PER_SECOND))/TICKS_PER_SECOND/2; // Définition du radiant pour la couleur
	var colorAmount = 0.5*Math.sin(rad)+0.5; // Couleur d'affichage du compteur
	labelTempsRestant.green = colorAmount;
	labelTempsRestant.blue = colorAmount;
	
	if (!player.isAlive()) // Permet de reset les variables quand le joueur meurt
	{	
		chronoBoss = 0;
		tempsRestantBoss = 4*TICKS_PER_MINUTE; // Remet le compteur à 0
		delayCrystal = 20;
		allowCrystal = 0;
		if(pinv.getSlotContainingItem(283)>=0) // Désenchante l'épée
		{
			swordSlot = pinv.getSlotContainingItem(283);
			pinv.emptySlot(swordSlot);
			pinv.setSlot(swordSlot,Item(272));
		}
	} 
}

if(pinv.getSlotContainingItem(283)>=0) // Compteur d'enchantement
{
			
	if(labelTempsEnchant == undefined) // Crée le compteur
	{
		labelTempsEnchant = UILabel("", ui.getWidth()/1.4, ui.getHeight()-20);
	}
	tempsEnchant--;
	
	if(tempsEnchant > 0) // Affiche le compteur s'il est supérieur à 0 seconde
	{
		labelTempsEnchant = UILabel("", ui.getWidth()/1.4, ui.getHeight()-20);
	}

	var minutesRestantesEnch = Math.floor(tempsEnchant/TICKS_PER_MINUTE); // Définition des variables du compteur
	var secondesRestantesEnch = (tempsEnchant%TICKS_PER_MINUTE)/TICKS_PER_SECOND;
	labelTempsEnchant.text = sprintf("Enchanted Sword :\n%d:%05.2f", minutesRestantesEnch, secondesRestantesEnch); // Affichage du compteur

	var radEnch = 2*Math.PI*(tempsRestantBoss%(2*TICKS_PER_SECOND))/TICKS_PER_SECOND/2; // Définition du radiant pour la couleur
	var colorAmountEnch = 0.1*Math.sin(radEnch)+0.5; // Couleur d'affichage du compteur
	labelTempsEnchant.green = colorAmountEnch;
	labelTempsEnchant.red = colorAmountEnch;
}	

// --- Compteur salle chaude Temple du Feu --- \\

if(salleChaude == 1) // Compteur pour la chaleur
{
	if(labelTempsRestantSalleC == undefined) // Crée le compteur
	{
		labelTempsRestantSalleC = UILabel("", ui.getWidth()/2, 6);
		labelTempsRestantSalleC.centered = true;
	}
	tempsRestantSalleC--;
	
	if(tempsRestantSalleC > 0) // Affiche le compteur si le temps restant est supérieur à 0 seconde
	{
		labelTempsRestantSalleC = UILabel("", ui.getWidth()/2, 6);
	}
	else // Si le compteur est écoulé, Link meurt à petit feu
	{
		if(tempsRestantSalleC%30 == 0)
			sound.playSoundUI("sound.linkhot");
		player.setHealth(player.getHealth()-1);
	}
	var minutesRestantes = Math.floor(tempsRestantSalleC/TICKS_PER_MINUTE); // Définition des variables du compteur
	var secondesRestantes = (tempsRestantSalleC%TICKS_PER_MINUTE)/TICKS_PER_SECOND;
	labelTempsRestantSalleC.text = sprintf("%d:%05.2f", minutesRestantes, secondesRestantes); // Affichage du compteur

	var rad = 2*Math.PI*(tempsRestantSalleC%(2*TICKS_PER_SECOND))/TICKS_PER_SECOND/2; // Définition du radiant pour la couleur
	var colorAmount = 0.5*Math.sin(rad)+0.5; // Couleur d'affichage du compteur
	labelTempsRestantSalleC.green = colorAmount;
	labelTempsRestantSalleC.blue = colorAmount;
	
	if (!player.isAlive()) // Permet de reset les variables quand le joueur meurt
	{	
		salleChaude = 0;
		tempsRestantSalleC = 8*TICKS_PER_MINUTE; // Remet le compteur à 0
	} 
}

	
	
// --- Mobs 360° + Skeleton sword + Chauve-souris 1PV --- \\

entitySearch = player.getEntitiesWithinRange(50);
for(i=0 ; i < entitySearch.length ; i++ ) {
	entF = entitySearch[i];
	if(entF.getClassType() != "Item" && entF.getClassType() != "Painting" && entF.getClassType() != "Hookshot" && entF.getClassType() != "Boomerang" 
	&& entF.getClassType() != "Arrow" && entF.getClassType() != "Bomb Arrow" && entF.getClassType() != "FishingRod" && entF.getClassType() != "NPC"
	&& entF.getClassType() != "FallingSand" && entF.getClassType() != "Bomb" && entF.getClassType() != "TNT" && entF.getClassType() != "Fireball") {
		try {
			entF.fov = 360;
		} catch(e) {}
		//chat.print(entF.getClassType());
		
	}
	if(entF.getClassType() == "SkeletonSword")
	{
		entF.setHeldItem(Item(272));
	}
	if(entF.getClassType() == "Bat")
	{
		entF.setMaxHealth(1);
		if(entF.getHealth() > 1)
			entF.setHealth(1);
	}
}

// --- Joueur ne peut pas brûler trop longtemps --- \\\

if(player.fireLevel > 150)
	player.setFireLevel(150);

// --- Changement d'image pour les tableaux --- \\\

if(pos.x < 230 && pos.x > 160 && pos.z < -640 && pos.z > -683)
	effect.replaceTexture("/art/kz.png","/textureChanges/kz.png");
else
	effect.replaceTexture("/art/kz.png","/art/kz.png");
	
// --- Fonctions pour l'entrée du donjon de feu --- \\	
milieuChaudON = function()
{ 	milieuChaud = true;}
milieuChaudOFF = function()
{ 	milieuChaud = false;}