//::///////////////////////////////////////////////
//:: FileName sc_pontential_bs
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 03/11/28 13:52:44
//:://////////////////////////////////////////////
#include "prc_inc_racial"

int StartingConditional()
{

	// Restrict based on the player's class
	int iPassed = 0;
	if(GetLevelByClass(CLASS_TYPE_WIZARD, GetPCSpeaker()) >= 1)
		iPassed = 1;
	if((iPassed == 0) && (GetLevelByClass(CLASS_TYPE_SORCERER, GetPCSpeaker()) >= 1))
		iPassed = 1;
	if((iPassed == 0) && (GetLevelByClass(CLASS_TYPE_BARD, GetPCSpeaker()) >= 3))
		iPassed = 1;
	if(iPassed == 0)
		return FALSE;

	// Make sure the player has the required feats
	if(!GetHasFeat(FEAT_COMBAT_CASTING, GetPCSpeaker()))
		return FALSE;
	if(!GetHasFeat(FEAT_DODGE, GetPCSpeaker()))
		return FALSE;
	if(!GetHasFeat(FEAT_EXPERTISE, GetPCSpeaker()))
		return FALSE;
	if(!GetHasFeat(FEAT_MOBILITY, GetPCSpeaker()))
		return FALSE;
	if(!GetHasFeat(FEAT_STILL_SPELL, GetPCSpeaker()))
		return FALSE;

	// Reject player races
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_DWARF)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_GNOME)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_HALFLING)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_HALFORC)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_HUMAN)
		return FALSE;

	// Reject other races
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_ABERRATION)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_ANIMAL)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_BEAST)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_CONSTRUCT)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_DRAGON)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_ELEMENTAL)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_FEY)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_GIANT)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_HUMANOID_GOBLINOID)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_MAGICAL_BEAST)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_HUMANOID_MONSTROUS)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_HUMANOID_ORC)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_OUTSIDER)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_HUMANOID_REPTILIAN)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_SHAPECHANGER)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_UNDEAD)
		return FALSE;
	if(MyPRCGetRacialType(GetPCSpeaker()) == RACIAL_TYPE_VERMIN)
		return FALSE;

	// Restrict based on the player's alignment
	if(GetAlignmentGoodEvil(GetPCSpeaker()) != ALIGNMENT_GOOD)
		return FALSE;

	// Make sure the player has the required skills
	if(!GetHasSkill(SKILL_CONCENTRATION, GetPCSpeaker()))
		return FALSE;
	if(!GetHasSkill(SKILL_TUMBLE, GetPCSpeaker()))
		return FALSE;

	return TRUE;
}