Ejemplo n.º 1
0
 /// <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);
     }
 }
Ejemplo n.º 2
0
    /// <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);
            }
        }
    }
Ejemplo n.º 3
0
        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);
                    }
                }
            }
        }