private void OnDamage(int receiver, int caster, bool isNormalDamage, bool isCritical, int hpDamage, int npDamage)
{
if (null != m_Scene && null != m_EntityMgr) {
EntityInfo npc = m_EntityMgr.GetEntityInfo(receiver);
int hp = npc.Hp;
int energy = npc.Energy;
Msg_RC_ImpactDamage msg = new Msg_RC_ImpactDamage();
msg.role_id = receiver;
msg.attacker_id = caster;
msg.damage_status = 0;
if (isNormalDamage) {
msg.damage_status |= (int)Msg_RC_ImpactDamage.Flag.IS_ORDINARY;
}
if (isCritical) {
msg.damage_status |= (int)Msg_RC_ImpactDamage.Flag.IS_CRITICAL;
}
if (hp <= 0) {
msg.damage_status |= (int)Msg_RC_ImpactDamage.Flag.IS_KILLER;
}
msg.hp = hp;
msg.energy = energy;
m_Scene.NotifyAllUser(RoomMessageDefine.Msg_RC_ImpactDamage, msg);
}
}