Пример #1
0
    void ProcEquipEffectAtt(CEquipment pEquip, bool bEquip)
    {
        if (pEquip != null)
        {
            tagEquipProto pProto = pEquip.m_pEquipProto;
            if (pProto == null)
            {
                return;
            }

            // weapon
            int nFactor = 1;
            if (!bEquip)
            {
                nFactor = -1;
            }

            if (pProto.eEquipPos == EEquipPos.EEP_Weapon)
            {
                if (bEquip)
                {
                    ModBaseAttValue(ERoleAttribute.ERA_WeaponDmgMin, pProto.nMinDmg);
                    ModBaseAttValue(ERoleAttribute.ERA_WeaponDmgMax, pProto.nMaxDmg);
                }
                else
                {
                    ModBaseAttValue(ERoleAttribute.ERA_WeaponDmgMin, -pProto.nMinDmg);
                    ModBaseAttValue(ERoleAttribute.ERA_WeaponDmgMax, -pProto.nMaxDmg);
                }
            }

            // cale weapon base att
            ChangeHeroAtt(pEquip.m_equipex.EquipBaseAtt, 3, nFactor);
        }
    }
Пример #2
0
    void RefushEquipItem( )
    {
        if (CItemMgr.Inst == null)
        {
            return;
        }

        CHeroEntity pHero = CFightTeamMgr.Instance.m_pBattleHero;

        if (pHero == null)
        {
            return;
        }

        for (int i = 0; i < m_nEquipments; i++)
        {
            CEquipment pItem = (CEquipment)pHero.m_pEquipment.GetPos(( Int16 )i);
            if (pItem != null)
            {
                FillEquipIcon(m_Equips[i], pItem);
            }
            else
            {
                FillFreeIcon(m_Equips[i]);
            }
        }
    }
Пример #3
0
    int Equip(CEquipment pEquip, EEquipPos ePos)
    {
        if (!ItemCreator.MIsEquipment(pEquip.GetItemTypeID()))
        {
            return(1);
        }

        if (pEquip.m_pEquipProto.byLevel > m_nLevel)
        {
            return(2);
        }

        CEquipment pSrc = (CEquipment)m_pEquipment.GetPos((Int16)ePos);

        if (pSrc != null)
        {
            // switch equip 's pos
            CItemMgr.Inst.m_pPocket.Remove(pEquip.GetItemID());
            m_pEquipment.Equip(pEquip, (Int16)ePos);
            ProcEquipEffect(pEquip, pSrc);
        }
        else
        {
            CItemMgr.Inst.m_pPocket.Remove(pEquip.GetItemID());
            m_pEquipment.Equip(pEquip, (Int16)ePos);
            ProcEquipEffect(pEquip, null);
        }

        //if( CNGUISys.Inst != null )
        //{
        //    CNGUISys.Inst.OnUpdateCharacterALL();
        //}
        return(0);
    }
Пример #4
0
    public IEnumerator OnOpenEquipShow(object _param)
    {
        CHeroEntity pHero = CFightTeamMgr.Instance.m_pBattleHero;

        if (pHero != null)
        {
            // para [0]  item ' pos
            int idxPos     = (int)(_param as object[])[0];
            int bagorequip = (int)(_param as object[])[1];
            mIsEquip = (bool)(_param as object[])[2];

            mEquip = null;
            if (bagorequip == 1)
            {
                mEquip = (CEquipment)CItemMgr.Inst.m_pPocket.GetPos((Int16)idxPos);
            }
            if (bagorequip == 2)
            {
                mEquip = (CEquipment)pHero.m_pEquipment.GetPos((Int16)idxPos);
            }

            if (mEquip != null)
            {
                RefushEquipItem(mIsEquip);
            }
        }
        yield return(new WaitForSeconds(0.1f));
    }
Пример #5
0
    void ProcEquipEffect(CEquipment pNewEquip, CEquipment pOldEquip)
    {
        if (pOldEquip != null)
        {
            ProcEquipEffectAtt(pOldEquip, false);
        }

        if (pNewEquip != null)
        {
            ProcEquipEffectAtt(pNewEquip, true);
        }

        RecalAtt();
    }
Пример #6
0
 void FillEquipIcon(UnityEngine.GameObject obj, CEquipment pEquip)
 {
     if (obj != null)
     {
         Transform pIcon = obj.transform.Find("Icon");
         if (pIcon != null)
         {
             UIAtlas tu = Resources.Load("GameIcon", typeof(UIAtlas)) as UIAtlas;
             UnityEngine.GameObject ctrl = pIcon.gameObject;
             ctrl.GetComponent <UISprite>().atlas      = tu;
             ctrl.GetComponent <UISprite>().spriteName = pEquip.m_pEquipProto.strIcon;
         }
     }
 }
Пример #7
0
 public void AddEquipment(E_EQUIPMENT_TYPE type)
 {
     if (m_shipStats.equipmentAttachement < m_shipStats.maxEquipment)
     {
         CEquipment equip = new CEquipment(this, type);
         m_shipStats.equipmentAttachement++;
         m_equipmentList.Add(equip);
         equip.ApplyEquipment(this);
     }
     else
     {
         Debug.Log("Add weapon impossible, ship can only have " +
                   m_shipStats.maxWeapons);
     }
 }
Пример #8
0
    public int HandleHeroUnequip(CEquipment pEquip)
    {
        if (pEquip == null)
        {
            return(-1);
        }

        int       nRet = 0;
        EEquipPos ePos = pEquip.GetEquipPos();

        if (ePos >= EEquipPos.EEP_Head && ePos < EEquipPos.EEP_Equip_End)
        {
            nRet = UnEquip(pEquip);
        }
        return(nRet);
    }
Пример #9
0
    public bool AddItem2Bag(uint dwTypeID, Int16 nNum, EItemQuality eQ, int nCmd)
    {
        if (m_pPocket.IsFull())
        {
            return(false);
        }

        CItem pNewItem  = null;
        Int16 nBagSpace = (Int16)CalSpaceUsed(dwTypeID, nNum);

        // check bag free grid is enongh
        int nFreeSpace = m_pPocket.GetFreeSpaceSize();

        if (nFreeSpace < nBagSpace - 1)
        {
            return(false);
        }

        for (int i = 0; i < nBagSpace; i++)
        {
            tagItem pNew = ItemCreator.Create(dwTypeID, nNum, EItemQuality.EIQ_White, 0);
            if (pNew != null)
            {
                if (ItemCreator.MIsEquipment(dwTypeID))
                {
                    pNewItem = new CEquipment((tagEquip)pNew);
                }
                else
                {
                    pNewItem = new CItem(pNew);
                }
            }


            if (pNewItem != null)
            {
                AddItem(m_pPocket, pNewItem, nNum);
            }
        }

        return(true);
    }
Пример #10
0
    int UnEquip(CEquipment pEquip)
    {
        int nRet = 0;

        Int16 n16Index = CItemMgr.Inst.m_pPocket.GetFreeGrid();

        if (n16Index < 0)
        {
            // pocket is full
            return(1);
        }

        m_pEquipment.UnEquip(pEquip.GetPos());

        ProcEquipEffect(null, pEquip);

        CItemMgr.Inst.m_pPocket.Add(pEquip);

        //if( CNGUISys.Inst != null )
        //{
        //    CNGUISys.Inst.OnUpdateCharacterALL();
        //}
        return(nRet);
    }
Пример #11
0
    void RefushEquipItem(bool bEquip)
    {
        CHeroEntity pHero = CFightTeamMgr.Instance.m_pBattleHero;

        if (pHero == null)
        {
            return;
        }

        FillEquipIcon(pShowEquip);
        pEquipName.GetComponent <UILabel> ().text   = "名称:  " + mEquip.m_pEquipProto.strName;
        pEquipZhanli.GetComponent <UILabel> ().text = "战力:  " + UnityEngine.Random.Range(10, 100).ToString();
        pLevel.GetComponent <UILabel> ().text       = "等级:  " + mEquip.m_pEquipProto.byLevel.ToString();

        // attr compare

        EEquipPos  ePos      = mEquip.m_pEquipProto.eEquipPos;
        CEquipment pCurEquip = (CEquipment)pHero.m_pEquipment.GetPos((Int16)ePos);

        string strName = mEquip.m_pEquipProto.strName;

        if (pCurEquip != null && bEquip)
        {
            strName += "VS" + pCurEquip.m_pEquipProto.strName;
        }
        pNameVS.GetComponent <UILabel>().text = strName;


        int    nValue  = 0;
        string strInfo = "";

        for (int i = 0; i < 3; i++)
        {
            tagRoleAttEffect pEffect = mEquip.m_equipex.EquipBaseAtt[i];
            if (pEffect == null)
            {
                return;
            }

            nValue   = pEffect.nValue;
            strInfo += GetAttName(pEffect.eRoleAtt) + nValue.ToString();

            int nCurValue = 0;
            if (pCurEquip != null && bEquip)
            {
                for (int j = 0; j < 3; j++)
                {
                    tagRoleAttEffect pCur = pCurEquip.m_equipex.EquipBaseAtt[i];
                    if (pCur != null && pEffect.eRoleAtt == pCur.eRoleAtt && pCur.nValue > 0)
                    {
                        nCurValue = pCur.nValue;
                        break;
                    }
                }

                strInfo += " ( " + (nValue - nCurValue).ToString() + " )";
            }

            strInfo += '\n';
        }

        pVSattr.GetComponent <UILabel> ().text = strInfo;
    }