#library "bosshealth"
#include "zcommon.acs"

//Basic Boss Health metter by Sgt Mark IV
//Designed to work both on SP and MP, ZDoom and Zandronum.
// This script must be activated by the boss monster with an ACS_NamedExecuteAlways("ScriptName")

script "BDBossHealth" (void)
{

    //Let's write the Boss's name here.
	setfont("BIGFONT");
	HudMessageBold(s:"-= BOSS =-"; HUDMSG_PLAIN, 0, CR_RED, 1.5, 0.09, 0.1, 1.0);

	//How much health the boss currently has.
	setfont("SMALLFONT");
	int	bosshealth = GetActorProperty(0, APROP_Health);
	HudMessageBold(d:bosshealth; HUDMSG_PLAIN, 0, CR_WHITE, 1.43, 0.15, 0.1, 1.0);

	//Just a divider
	HudMessageBold(s:"/"; HUDMSG_PLAIN, 0, CR_WHITE, 1.5, 0.15, 0.05, 1.0);

	//The boss's max health.
	int	bossmaxhealth = GetActorProperty(0, APROP_SpawnHealth);
	HudMessageBold(d:bossmaxhealth; HUDMSG_PLAIN, 0, CR_WHITE, 1.57, 0.15, 0.1, 1.0);
	delay(1);

	//Check if the boss still is alive. If yes, repeat the script, if not, it ends here.
	if (GetActorProperty(0, APROP_Health)> 1)
	restart;
	else;

}

// The Bruiser Brothers

script "BDBruiserBrothersHealth" (void)
{

    //Let's write the Boss's name here.
	setfont("BIGFONT");
	HudMessageBold(s:"-= BOSS =-"; HUDMSG_PLAIN, 0, CR_RED, 0.5, 0.09, 0.1, 1.0);


	//How much health the boss currently has.
	setfont("SMALLFONT");
	int	bosshealth1 = GetActorProperty(1161, APROP_Health);
	int	bosshealth2 = GetActorProperty(1162, APROP_Health);

	HudMessageBold(d:bosshealth1; HUDMSG_PLAIN, 0, CR_WHITE, 1.23, 0.15, 0.1, 1.0);
	HudMessageBold(d:bosshealth2; HUDMSG_PLAIN, 0, CR_WHITE, 1.63, 0.15, 0.1, 1.0);


	//Just a divider
	HudMessageBold(s:"/"; HUDMSG_PLAIN, 0, CR_WHITE, 1.3, 0.15, 0.05, 1.0);
	HudMessageBold(s:"/"; HUDMSG_PLAIN, 0, CR_WHITE, 1.7, 0.15, 0.05, 1.0);

	//The boss's max health.
	int	bossmaxhealth1 = GetActorProperty(1161, APROP_SpawnHealth);
	HudMessageBold(d:bossmaxhealth1; HUDMSG_PLAIN, 0, CR_WHITE, 1.37, 0.15, 0.1, 1.0);
	int	bossmaxhealth2 = GetActorProperty(1161, APROP_SpawnHealth);
	HudMessageBold(d:bossmaxhealth1; HUDMSG_PLAIN, 0, CR_WHITE, 1.77, 0.15, 0.1, 1.0);
	delay(1);


	//Check if the boss still is alive. If yes, repeat the script, if not, it ends here.
	if (GetActorProperty(1161, APROP_Health)> 1)
	restart;

	if (GetActorProperty(1162, APROP_Health)> 1)
	restart;

	Floor_LowerToLowest (666, 20);

}

// EDAY10 Belphegor Bosses
// This is just temporary for compatiblity with EDAY until/if Mark changes everything to named scripts instead of numbered

script 1622 (void)
{

    //Let's write the Boss's name here.
	setfont("BIGFONT");
	HudMessageBold(s:"-= BOSS =-"; HUDMSG_PLAIN, 0, CR_RED, 0.5, 0.09, 0.1, 1.0);


	//How much health the boss currently has.
	setfont("SMALLFONT");
	int	bosshealth1 = GetActorProperty(1161, APROP_Health);
	int	bosshealth2 = GetActorProperty(1162, APROP_Health);

	HudMessageBold(d:bosshealth1; HUDMSG_PLAIN, 0, CR_WHITE, 1.23, 0.15, 0.1, 1.0);
	HudMessageBold(d:bosshealth2; HUDMSG_PLAIN, 0, CR_WHITE, 1.63, 0.15, 0.1, 1.0);


	//Just a divider
	HudMessageBold(s:"/"; HUDMSG_PLAIN, 0, CR_WHITE, 1.3, 0.15, 0.05, 1.0);
	HudMessageBold(s:"/"; HUDMSG_PLAIN, 0, CR_WHITE, 1.7, 0.15, 0.05, 1.0);

	//The boss's max health.
	int	bossmaxhealth1 = GetActorProperty(1161, APROP_SpawnHealth);
	HudMessageBold(d:bossmaxhealth1; HUDMSG_PLAIN, 0, CR_WHITE, 1.37, 0.15, 0.1, 1.0);
	int	bossmaxhealth2 = GetActorProperty(1161, APROP_SpawnHealth);
	HudMessageBold(d:bossmaxhealth1; HUDMSG_PLAIN, 0, CR_WHITE, 1.77, 0.15, 0.1, 1.0);
	delay(1);


	//Check if the boss still is alive. If yes, repeat the script, if not, it ends here.
	if (GetActorProperty(1161, APROP_Health)> 1)
	restart;

	if (GetActorProperty(1162, APROP_Health)> 1)
	restart;

	Floor_LowerToLowest (666, 20);

}

script "BDBruiserBrotherOne" (void)
{
	 Thing_ChangeTID (0, 1161);

}

script "BDBruiserBrotherTwo" (void)
{
	 Thing_ChangeTID (0, 1162);

}

Script "BDCheckPort" (VOID)//For Icon of Sin's Laser attack, GZDoom inverts the pitch
{
	if(GetCvar("isrunningzandronum") == 1)
	{
		GiveInventory("Zandronum",1);
	}
}