#include "extdll.h"
#include "util.h"

#include "cbase.h"
#include "effects.h"
#include "aura.h"
#include "classes.h"
#include "magicattack.h"
#include "explodingattack.h"
#include "player.h"
#include "nodes.h"
#include "weapons.h"
#include "soundent.h"
#include "monsters.h"
#include "decals.h"
#include "gamerules.h"

CGoku::CGoku ( CBasePlayer *player ): CBaseClass(player) 
{	
}

void CGoku::AddAllAttacks( void )
{	m_pPlayer->GiveNamedItem("weapon_melee");
	m_pPlayer->GiveNamedItem("weapon_kiblast");
	m_pPlayer->GiveNamedItem("weapon_genericbeam");
	m_pPlayer->GiveNamedItem("weapon_kamehameha");
	m_pPlayer->GiveNamedItem("weapon_spiritbomb");
	m_pPlayer->GiveNamedItem("weapon_solarflare");
	m_pPlayer->GiveNamedItem("weapon_kametorpedo");
	m_pPlayer->GiveNamedItem("weapon_sensu");	
}


CBaseClass* CGoku::GetAscendedClass(void)
{	return new CSSJGoku(m_pPlayer);
}

CSSJGoku::CSSJGoku(CBasePlayer *player): CGoku(player)
{	
}

CSSJ2Goku::CSSJ2Goku(CBasePlayer *player): CGoku(player)
{	
}

CSSJ3Goku::CSSJ3Goku(CBasePlayer *player): CGoku(player)
{	
}

// Added by Pcjoe
void CSSJGoku::AddAllAttacks( void )
{	m_pPlayer->GiveNamedItem("weapon_melee");
	m_pPlayer->GiveNamedItem("weapon_kiblast");
	m_pPlayer->GiveNamedItem("weapon_genericbeam");
	m_pPlayer->GiveNamedItem("weapon_kamehameha");
	m_pPlayer->GiveNamedItem("weapon_solarflare");
	m_pPlayer->GiveNamedItem("weapon_kametorpedo");
	m_pPlayer->GiveNamedItem("weapon_sensu");
}

CBaseClass* CSSJGoku::GetDescendedClass(void)
{	return new CGoku(m_pPlayer);
}

CBaseClass* CSSJGoku::GetAscendedClass(void)
{	return new CSSJ2Goku(m_pPlayer);
}

void CSSJ2Goku::AddAllAttacks( void )
{	m_pPlayer->GiveNamedItem("weapon_melee");
	m_pPlayer->GiveNamedItem("weapon_kiblast");
	m_pPlayer->GiveNamedItem("weapon_genericbeam");
	m_pPlayer->GiveNamedItem("weapon_kamehameha");
	m_pPlayer->GiveNamedItem("weapon_solarflare");
	m_pPlayer->GiveNamedItem("weapon_kametorpedo");
	m_pPlayer->GiveNamedItem("weapon_sensu");
}

CBaseClass* CSSJ2Goku::GetAscendedClass(void)
{	return new CSSJ3Goku(m_pPlayer);
}

CBaseClass* CSSJ2Goku::GetDescendedClass(void)
{	return new CSSJGoku(m_pPlayer);
}

void CSSJ3Goku::AddAllAttacks( void )
{	m_pPlayer->GiveNamedItem("weapon_melee");
	m_pPlayer->GiveNamedItem("weapon_kiblast");
	m_pPlayer->GiveNamedItem("weapon_genericbeam");
	m_pPlayer->GiveNamedItem("weapon_kamehameha");
	m_pPlayer->GiveNamedItem("weapon_solarflare");
	m_pPlayer->GiveNamedItem("weapon_kametorpedo");
	m_pPlayer->GiveNamedItem("weapon_sensu");
}

CBaseClass* CSSJ3Goku::GetDescendedClass(void)
{	return new CSSJ2Goku(m_pPlayer);
}