#pragma once

#include "NetCli_Magic.h"

class NetCli_MagicChild : public NetCli_Magic
{
public:    
	static bool _Init();
	static bool _Release();
	static void	_Update(float elapsed);

	virtual void R_BeginSpell         	( int OwnerID , int TargetID , float TargetX , float TargetY , float TargetZ , int MagicID , int SerialID );
	virtual void R_EndSpell           	( int Serial );
	virtual void R_BeginSpellOK       	( int MagicID , int SerialID , int SpellTime );
	virtual void R_BeginSpellFailed   	( int MagicID , int SerialID );

	virtual void R_MagicAttack        	( int MagicBaseID , int SerialID , MagicAttackTypeENUM	AtkType , vector< MagicAtkEffectInfoStruct >& List );
	virtual void R_MagicAssist        	( int MagicBaseID , int SerialID , vector< MagicAssistEffectInfoStruct >& List );

	virtual void R_FixAssistMagicTime 	( int MagicID , int EffectTime );
	virtual void R_CancelSpellMagic   	( int OwnerID , int SerialID );
	virtual void R_SetMagicPointResult	( int MagicID , int MagicPos , bool Result , int ErrorCode );

	virtual void R_AddBuffInfo			( int OwnerID , int MagicID , int EffectTime );
	virtual void R_DelBuffInfo			( int OwnerID , int MagicID );
	virtual void R_ResetColdown			( );

	virtual void R_BeginShoot			( int SerialID );
	virtual void R_SysBeginShoot		( int OwnerID , int TargetID , int MagicColID , int SerialID );
	virtual void R_SysEndShoot			( int SerialID );

	virtual void R_MagicShieldInfo( int AttackGUID , int UnAttackGUID , int AttackMagicID , int ShieldMagicID , int AbsobDamage );
};

