示例#1
0
 public bool clearWindfury()
 {
     if (this.m_cardTableItem.m_type == (int)CardType.CARDTYPE_ATTEND)
     {
         this.m_pk.windfury = 0;
         UtilMath.clearState(StateID.CARD_STATE_WINDFURY, m_svrCard.state);
         return(true);
     }
     return(false);
 }
示例#2
0
 public bool addSneak()
 {
     if (this.m_cardTableItem.m_type == (int)CardType.CARDTYPE_ATTEND)
     {
         this.m_pk.sneak = 1;
         UtilMath.clearState(StateID.CARD_STATE_SNEAK, m_svrCard.state);
         return(true);
     }
     return(false);
 }
示例#3
0
 public bool addCharge()
 {
     if (this.m_cardTableItem.m_type == (int)CardType.CARDTYPE_ATTEND)
     {
         this.m_pk.charge = 1;
         UtilMath.clearState(StateID.CARD_STATE_SLEEP, m_svrCard.state);
         return(true);
     }
     return(false);
 }
示例#4
0
 public bool clearTaunt()
 {
     if (this.m_cardTableItem.m_type == (int)CardType.CARDTYPE_ATTEND)
     {
         this.m_pk.taunt = 0;
         UtilMath.clearState(StateID.CARD_STATE_TAUNT, m_svrCard.state);
         return(true);
     }
     return(false);
 }
示例#5
0
 public bool isFreeze()
 {
     if (this.m_cardTableItem.m_type == (int)CardType.CARDTYPE_ATTEND || this.m_cardTableItem.m_type == (int)CardType.CARDTYPE_HERO)
     {
         if (UtilMath.checkState(StateID.CARD_STATE_FREEZE, m_svrCard.state))
         {
             return(true);
         }
     }
     return(false);
 }
示例#6
0
 public bool hasShield()
 {
     if (this.m_cardTableItem.m_type == (int)CardType.CARDTYPE_ATTEND)
     {
         if (UtilMath.checkState(StateID.CARD_STATE_SHIED, m_svrCard.state))
         {
             return(true);
         }
     }
     return(false);
 }
示例#7
0
 public bool isCharge()
 {
     if (this.m_cardTableItem.m_type == (int)CardType.CARDTYPE_ATTEND)
     {
         if (UtilMath.checkState(StateID.CARD_STATE_CHARGE, m_svrCard.state))
         {
             return(true);
         }
     }
     return(false);
 }
示例#8
0
        protected void expandUpdateElem()
        {
            // 计算正常位置
            int validCount = getValidElemCount(m_elemList);

            m_posList.Clear();
            UtilMath.newRectSplit(m_centerPos, m_elemNormalWidth, m_radius, m_yDelta, validCount, ref m_posList);

            // 更新元素信息
            float deltaX = 0;
            int   posIdx = 0;

            float origX        = 0;
            float origZ        = 0;
            float expandDeltaX = 0;
            float expandDeltaZ = 0;
            float nextOrigX    = 0;     // 后面一个的位置
            float nextExpandX  = 0;     // 后面一个的位置

            for (int elemIdx = 0; elemIdx < m_elemList.Count(); ++elemIdx)
            {
                if (m_elemList[elemIdx].bValid)
                {
                    m_posList[posIdx] += new Vector3(deltaX, 0, 0);

                    if (!m_elemList[elemIdx].isNormalState())
                    {
                        // 计算原始的位置
                        origX = m_posList[posIdx].x;
                        origZ = m_posList[posIdx].z;
                        // 计算由于放大需要的偏移量
                        expandDeltaX = (m_elemList[elemIdx].getExpandWidth() - m_elemList[elemIdx].getNormalWidth()) / 2;
                        expandDeltaZ = (m_elemList[elemIdx].getExpandHeight() - m_elemList[elemIdx].getNormalHeight()) / 2;
                        // 计算正确的中心位置
                        m_posList[posIdx] += new Vector3(expandDeltaX, 0, expandDeltaZ);
                        // 如果后面还有元素
                        if (posIdx < validCount - 1)
                        {
                            // 计算下一个元素在当前元素没有扩大的情况下,中心点位置
                            nextOrigX = m_posList[posIdx + 1].x + deltaX;
                            // 计算下一个元素在当前元素有扩大的情况下,中心点位置
                            nextExpandX = m_posList[posIdx].x + m_elemList[elemIdx].getExpandWidth() / 2 + m_elemList[elemIdx + 1].getNormalWidth() / 2;
                            // 计算后面的元素应该偏移量
                            deltaX += (nextExpandX - nextOrigX);
                        }
                    }

                    m_elemList[elemIdx].setExpandPos(m_posList[posIdx]);

                    ++posIdx;
                }
            }
        }
示例#9
0
        public bool bStateChange()
        {
            int idx = 0;

            for (idx = 0; idx < (int)StateID.CARD_STATE_MAX; ++idx)
            {
                if (UtilMath.checkState((StateID)idx, m_changedState))
                {
                    return(true);
                }
            }

            return(false);
        }
示例#10
0
        protected void normalUpdateElem()
        {
            // 计算位置信息
            m_posList.Clear();
            UtilMath.newRectSplit(m_centerPos, m_elemNormalWidth, m_radius, m_yDelta, getValidElemCount(m_elemList), ref m_posList);

            // 更新元素信息
            int posIdx = 0;

            for (int idx = 0; idx < m_elemList.Count(); ++idx)
            {
                if (m_elemList[idx].bValid)
                {
                    m_elemList[idx].setNormalPos(m_posList[posIdx]);
                    ++posIdx;
                }
            }
        }
示例#11
0
        public void updateStateChange(byte[] srcStateArr, byte[] destStateArr)
        {
            int  idx       = 0;
            bool srcState  = false;
            bool destState = false;

            for (idx = 0; idx < (int)StateID.CARD_STATE_MAX; ++idx)
            {
                srcState  = UtilMath.checkState((StateID)idx, srcStateArr);
                destState = UtilMath.checkState((StateID)idx, destStateArr);

                if (srcState != destState)
                {
                    UtilMath.setState((StateID)idx, m_changedState);     // 设置状态变化标志
                }
                if (destState)
                {
                    UtilMath.setState((StateID)idx, m_curState);
                }
            }
        }
示例#12
0
 public bool bInSleepState()
 {
     return(UtilMath.checkState(StateID.CARD_STATE_SLEEP, m_svrCard.state));
 }