Example #1
0
 /// <summary>
 /// 根据行为打断状态
 /// </summary>
 public virtual void InterruptStatus(LifeAction Action)
 {
     GetStatusOverAction();
     if ((m_OverData & StatusOverAction.Attack) == StatusOverAction.Attack)
     {
         if (Action == LifeAction.Attack)
         {
             m_StatusData.Clear();
         }
     }
     if ((m_OverData & StatusOverAction.Hurt) == StatusOverAction.Hurt)
     {
         if (Action == LifeAction.Hit)
         {
             m_StatusData.Clear();
         }
     }
     if ((m_OverData & StatusOverAction.WalkToEnd) == StatusOverAction.WalkToEnd)
     {
         if (Action == LifeAction.WalkToEnd)
         {
             m_StatusData.Clear();
         }
     }
     if ((m_OverData & StatusOverAction.AngerEmety) == StatusOverAction.AngerEmety)
     {
         if (Action == LifeAction.AngerEmety)
         {
             m_StatusData.Clear();
         }
     }
 }
Example #2
0
    private void InterruptStatus(int SceneID, object Param)
    {
        if (m_SceneID != SceneID)
        {
            return;
        }
        LifeAction Action = (LifeAction)Param;

        for (int i = 0; i < m_RoleStatus.Count; i++)
        {
            StatusM Data = m_RoleStatus[i];
            if (Data == null)
            {
                continue;
            }
            Data.InterruptStatus(Action);
            if (Data.IsStatusOver())
            {
                Data.RemoveStatusEffect();
                m_lRemoveStatus.Add(Data.m_type);
            }
        }

        if (m_lRemoveStatus.Count > 0)
        {
            for (int i = 0; i < m_lRemoveStatus.Count; i++)
            {
                Remove(m_lRemoveStatus[i]);
            }
            m_lRemoveStatus.Clear();
        }
    }
Example #3
0
 public override void InterruptStatus(LifeAction Action)
 {
     if (mStatusActive)
     {
         return;
     }
     base.InterruptStatus(Action);
     if (Action == LifeAction.Die)
     {
         mStatusActive = true;
         SoldierSkill sourceSkill = new SoldierSkill();
         SkillM.GetSkillInfo(m_StatusInfo.exSkill1, m_StatusInfo.exSkillLevel1, ref sourceSkill);
         Role attacker = CM.GetLifeM(m_StatusInfo.Releasescentid, LifeMType.SOLDIER) as Role;
         RoleSkill.GlobalUseSkill(attacker, mOwner, sourceSkill, Vector3.zero);
     }
 }