/// <summary> /// 实体死亡 /// </summary> /// <param name="entityID"></param> /// <param name="t"></param> public void OnEntityDead(int entityID, ENTITY_TYPE t) { if (entityID == CurrentSelectedID || entityID == EntityFactory.MainHeroID) { CurrentSelectedID = -1; ChangeBossBloodTarget(-1); } if (t == ENTITY_TYPE.TYPE_MONSTER) { if (m_BloodMap.ContainsKey(entityID)) { CacheBlood(m_BloodMap[entityID]); } if (BossBloodEntityTable.ContainsKey(entityID)) { BossBloodProityList.Remove(BossBloodEntityTable[entityID]); BossBloodEntityTable.Remove(entityID); } EntityLeaveBossBloodDistance(entityID); } if (t == ENTITY_TYPE.TYPE_PLAYER_ROLE) { SetDead(entityID, true); } }
/// <summary> /// 实体死亡 /// </summary> /// <param name="entityID"></param> public static void OnEntityDead(int entityID, ENTITY_TYPE t) { if (Movie.GetSingleton <GfxBloodMovie>() == null) { return; } if (entityID == CurrentSelectedID || entityID == EntityFactory.MainHeroID) { CurrentSelectedID = -1; ChangeBossBloodTarget(-1); } //怪物 if (t == ENTITY_TYPE.TYPE_MONSTER) { if (m_BloodMap.ContainsKey(entityID)) { if (OptimitzedControlPlane.Instance.EnityCreateOptimize) { CacheBlood(m_BloodMap[entityID]); } else { Destroy(m_BloodMap[entityID]); } } if (BossBloodEntityTable.ContainsKey(entityID)) { BossBloodProityList.Remove(BossBloodEntityTable[entityID]); BossBloodEntityTable.Remove(entityID); } EntityLeaveBossBloodDistance(entityID); } //玩家 if (t == ENTITY_TYPE.TYPE_PLAYER_ROLE) { if (m_BloodMap.ContainsKey(entityID)) { //如果是主角,特殊处理一下 if (entityID == EntityFactory.MainHeroID) { bPlayerDead = true; m_BloodMap[entityID].SetPlayerVisible(false); } m_BloodMap[entityID].SetVisible(false); } } }
public void ChangeMask(EntityView ev, bool bUseInitMask = false) { if (ev != null) { //if (ev.Type == ENTITY_TYPE.TYPE_MONSTER) { int mas = 0; if (bUseInitMask) { mas = ev.InitMaskFlag; } else { mas = ev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MASK); if (!m_bFirstVisibleMask) { m_bFirstVisibleMask = true; return; } } if (IsHaveBossBlood(mas)) { if (!BossBloodEntityTable.ContainsKey(ev.ID)) { BossBloodEntityTable.Add(ev.ID, ev); BossBloodProityList.Add(ev); SortBossProityList(); } } if (mas != 0) { bool val = (mas & (int)ENTITY_MASKFLAG.MASKFLAG_HIDE_BLOOD) == (int)ENTITY_MASKFLAG.MASKFLAG_HIDE_BLOOD; SetVisible(ev.ID, !val); } else { SetVisible(ev.ID, true); } } } }