📄 bossmonster.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 + -