Exemplo 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);
     }
 }
Exemplo n.º 2
0
        public void DestroyALL()
        {
            ClearCache();

            if (null != m_BloodMap)
            {
                foreach (KeyValuePair <int, UBlood> var in m_BloodMap)
                {
                    UBlood ub = var.Value;
                    if (ub != null)
                    {
                        var temp = ub.gameObject;
                        ub.resNode.DestroyInstanceRes(ref temp);
                        ub.Clear();
                    }
                }

                m_curIndexArry = new Vector2[3];
                m_BloodMap.Clear();
            }

            if (null != BossBlood)
            {
                var temp = BossBlood.gameObject;
                BossBlood.resNode.DestroyInstanceRes(ref temp);
                BossBlood.Clear();
                BossBlood = null;

                CurrentBossBloodHostID = -1;
            }
            BossBloodEntityTable.Clear();
            BossBloodProityList.Clear();

            m_unUseCanvasNodeMap.Clear();
        }
Exemplo n.º 3
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);
            }
        }
    }
Exemplo n.º 4
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);
                    }
                }
            }
        }
Exemplo n.º 5
0
    private static void SortBossBloodProityList()
    {
        if (BossBloodProityList.Count > 1)
        {
            BossBloodProityList.Sort((EntityView lef, EntityView rig) =>
            {
                ////只看优先级
                //return lef.BossBloodShowPriority.CompareTo(rig.BossBloodShowPriority);


                //先看优先级,然后再看距离
                if (lef.BossBloodShowPriority == rig.BossBloodShowPriority)
                {
                    return(lef.BossBloodShowDistance.CompareTo(rig.BossBloodShowDistance));
                }
                return(lef.BossBloodShowPriority.CompareTo(rig.BossBloodShowPriority));


                ////距离相当,则按照优先级排序
                //if (lef.BossBloodShowDistance == rig.BossBloodShowDistance)
                //{
                //    if (lef.BossBloodShowPriority == rig.BossBloodShowPriority)
                //    {
                //        return 0;
                //    }
                //    if (lef.BossBloodShowPriority > rig.BossBloodShowPriority)
                //    {
                //        return 1;
                //    }
                //    if (lef.BossBloodShowPriority < rig.BossBloodShowPriority)
                //    {
                //        return -1;
                //    }
                //}
                //return lef.BossBloodShowDistance.CompareTo(rig.BossBloodShowDistance);
            });
        }
    }
Exemplo n.º 6
0
 /// <summary>
 /// 清除所有的组件
 /// </summary>
 public static void DestroyALL()
 {
     if (Movie.GetSingleton <GfxBloodMovie>() == null)
     {
         return;
     }
     ClearCache();
     if (null != m_BloodMap)
     {
         foreach (KeyValuePair <int, GfxBlood> var in m_BloodMap)
         {
             GfxBlood gba = var.Value;
             if (GfxBloodMovie.Instance != null)
             {
                 GfxBloodMovie.Instance.RemoveMovieAS3(gba.Instance);
             }
             gba.Clear();
         }
         CurrentColIndex = 0;
         CurrentRowIndex = 0;
         UnUsedMovieNodeList.Clear();
         m_BloodMap.Clear();
     }
     if (null != BossBlood)
     {
         if (GfxDynamicMovie.Instance != null)
         {
             GfxDynamicMovie.Instance.RemoveMovieAS3(BossBlood.Instance);
         }
         BossBlood.Clear();
         BossBlood             = null;
         CurrentBossBlodHostID = -1;
     }
     BossBloodEntityTable.Clear();
     BossBloodProityList.Clear();
     //GFxWarPauseMenu.BoolEvent -= ChangeBloodSetting;
 }