Files

98 lines
2.8 KiB
C
Raw Permalink Normal View History

2025-01-09 17:45:40 +08:00

#pragma once
/***************************************************************/
/* 法师的火法师施放火墙术的时候在地上释放出一5个火团
/* 火团有持续时间,另外一个人在这个点释放了火以后,这团火就归属为另外一个人了
/***************************************************************/
class CFire:
public CEntity
{
public:
typedef CEntity Inherited;
static int GETTYPE() {return enFire;}
//初始化
bool Init(void * data, size_t size);
//删除的一些内存消耗操作
void Destroy(); //销毁一个实体
//执行逻辑循环
virtual VOID LogicRun(TICKCOUNT nCurrentTime);
inline INT_PTR GetPropertySize() const {return sizeof(CFireProperty) -sizeof(CPropertySet);}
//获取属性集
virtual CPropertySet * GetPropertyPtr() {return &m_property ;}
virtual const CPropertySet* GetPropertyPtr() const {return &m_property ;}
virtual int GetPropertySetTotalSize() const{ return sizeof(m_property); }
//设置过期的时间,从当前往后面多少毫秒
void SetExpireTime(unsigned int nMiSecond);
//设置下火的主人的handle
void SetMasterHandle(EntityHandle hd)
{
m_ownerHandle =hd;
}
/*
* Comments:
* Param float fRate:
* Param int nAddValue:
* @Return void:
*/
inline void SetAttackParam( int nRate, int nAddValue)
{
m_nAttackRate = nRate;
m_nAttackValueAdd =nAddValue;
}
/*
* Comments:
* Param CScene * pScene:
* Param int nPosX: x
* Param int nPosY: y
* Param CCreature * pMaster:
* Param int nModelId: id
* Param unsigned int nTime: ms
* Param int nAttackRate:
* Param int nAttackValue:
* @Return CFire *:
*/
static CFire * CreateFire( CScene *pScene, int nPosX,int nPosY,CCreature *pMaster,int nModelId,unsigned int nTime,int nAttackRate,int nAttackValue);
//获得主人的指针
inline CAnimal *GetMasterPtr();
//当实体碰撞了火
void OnCollideFire(CAnimal *pAnimal);
private:
void OnTimeDamage(CAnimal *pOwner); //定时伤害
//计算火墙的输出
void OnFireDamage(CAnimal * pMaster ,CAnimal *pAnimal);
private:
CFireProperty m_property; //属性集合
TICKCOUNT m_expireTime; //过期的时间,低于这个过期时间,这个箱子就要删除
CTimer<3000> m_attackTimer; //每3秒烧一次
//TICKCOUNT m_attackTime; //上次的攻击时间
EntityHandle m_ownerHandle; //所属人的handle
//法师的输出的 m_fAttackRate * 魔法攻击 + 附加数值
int m_nAttackRate; //攻击的输出的百分比,万分之1
int m_nAttackValueAdd; //攻击的附加数值
};