⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bossmonster.cpp

📁 墨香最新私服
💻 CPP
字号:
// BossMonster.cpp: implementation of the CBossMonster class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "BossMonster.h"
#include "GameResourceManager.h"
#include "ObjectManager.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CBossMonster::CBossMonster()
{

}

CBossMonster::~CBossMonster()
{

}
void CBossMonster::Damage(CObject* pAttacker,BYTE DamageKind,DWORD Damage,DWORD ShieldDamage,BOOL bCritical)
{	
//	CheckTmpFunc();
	if(Damage != 0)
	{
	/*
		if(GetState() == eObjectState_None)
			{
				//if(pAttacker)
				//	MOVEMGR->SetLookatPos(this,&pAttacker->GetCurPosition(),0,gCurTime);
			}
			*/
	
		if(GetState() == eObjectState_None)
		{
			ChangeMotion(1,FALSE);
			switch(DamageKind) {
			case eDamageKind_Front:
				ChangeMotion(eMonsterMotion_DamageFront,FALSE);
				break;
			case eDamageKind_Left:
				ChangeMotion(eMonsterMotion_DamageLeft,FALSE);
				break;
			case eDamageKind_Right:
				ChangeMotion(eMonsterMotion_DamageRight,FALSE);
				break;
			}	
		}
		
		int DamageEffect = -1;
		switch(DamageKind) {
		case eDamageKind_Front:
		case eDamageKind_Counter:
		case eDamageKind_ContinueDamage:
			DamageEffect = GAMERESRCMNGR->GetMonsterListInfo(GetMonsterKind())->Damage1DramaNum;
			break;
		case eDamageKind_Left:
			DamageEffect = GAMERESRCMNGR->GetMonsterListInfo(GetMonsterKind())->Damage1DramaNum;
			break;
		case eDamageKind_Right:
			DamageEffect = GAMERESRCMNGR->GetMonsterListInfo(GetMonsterKind())->Damage1DramaNum;
			break;
		}
		if(DamageEffect != -1)
		{
			TARGETSET set;
			set.pTarget = this;
			set.ResultInfo.bCritical = bCritical;
			
			EFFECTMGR->StartEffectProcess(DamageEffect,pAttacker,&set,1,GetID());
		}
	}

	if( pAttacker == HERO )	//磊脚狼 单固瘤 锅龋父 钎矫 //KES 040801
		EFFECTMGR->AddDamageNumber(Damage,pAttacker,this,DamageKind,bCritical);
	
	// Life 悸泼
	DWORD life = GetLife();
	if(life < Damage)
		life = 0;
	else
		life = life - Damage;
	SetLife(life);
	
	// Shield 悸泼
	DWORD Shield = GetShield();
	if(Shield < ShieldDamage)
		Shield = 0;
	else
		Shield = Shield - ShieldDamage;
	SetShield(Shield,FALSE);	
}

void CBossMonster::SetMotionInState(BYTE State)
{
	switch(State)
	{
	case eObjectState_Move:
		{
			m_ObjectState.State_Start_Motion = eBossMonsterMotion_Walk;
			m_ObjectState.State_Ing_Motion = eBossMonsterMotion_Walk;
			m_ObjectState.State_End_Motion = eBossMonsterMotion_Walk;
			m_ObjectState.State_End_MotionTime = 0;
		}
		break;
	case eObjectState_None:
		{
			m_ObjectState.State_Start_Motion = eBossMonsterMotion_Stand;
			m_ObjectState.State_Ing_Motion = eBossMonsterMotion_Stand;
			m_ObjectState.State_End_Motion = eBossMonsterMotion_Stand;
			m_ObjectState.State_End_MotionTime = 0;
		}
		break;
	case eObjectState_Rest:
		{
			m_ObjectState.State_Start_Motion = -1;
			m_ObjectState.State_Ing_Motion = -1;
			m_ObjectState.State_End_Motion = -1;
			m_ObjectState.State_End_MotionTime = 0;
		}
		break;
	default:
		{
			m_ObjectState.State_Start_Motion = -1;
			m_ObjectState.State_Ing_Motion = -1;
			m_ObjectState.State_End_Motion = -1;
			m_ObjectState.State_End_MotionTime = 0;
		}
		break;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -