public void initJobCard() { m_jobCardBtn.pntGo = UtilApi.TransFindChildByPObjAndPath(m_jobSelectData.m_form.m_GUIWin.m_uiRoot, JobSelectPath.ScrollCont); TableItemBase tableItem = null; TableJobItemBody tableJobItemBody = null; string jobPath = ""; tableItem = Ctx.m_instance.m_tableSys.getItem(TableID.TABLE_JOB, (uint)m_career); if (tableItem != null) { tableJobItemBody = tableItem.m_itemBody as TableJobItemBody; jobPath = string.Format("{0}UIJobSelect/JobSelCard.prefab", Ctx.m_instance.m_cfg.m_pathLst[(int)ResPathType.ePathComUI]); m_jobCardBtn.setImageInfo(CVAtlasName.JobSelectDyn, tableJobItemBody.m_jobRes); m_jobCardBtn.prefabPath = jobPath; m_jobCardBtn.syncUpdateCom(); m_jobCardBtn.selfGo.name = string.Format("JobSelCard_{0}", career); m_cardSetCardNumText = new AuxLabel(m_jobCardBtn.selfGo, JobSelectPath.CardSetCardNumText); if (m_cardGroupItem != null) // 如果是对战中选择套牌才会有数量显示 { m_cardSetCardNumText.text = string.Format("{0}/30", m_cardGroupItem.m_cardGroup.cardNum); } m_imageGo = UtilApi.TransFindChildByPObjAndPath(m_jobCardBtn.selfGo, JobSelectPath.CardSetSelectedImage); } }
// 根据表更新卡牌数据,这个主要是用于初始卡牌更新,只用于随从牌、法术牌,并且 Render 数据是手牌的数据 public override void updateCardDataByTable() { base.updateCardDataByTable(); TableItemBase tableBase = Ctx.m_instance.m_tableSys.getItem(TableID.TABLE_CARD, m_sceneCardBaseData.m_startCardID); if (tableBase != null) { TableCardItemBody cardTableData = tableBase.m_itemBody as TableCardItemBody; UtilLogic.updateCardDataNoChangeByTable(cardTableData, m_render.gameObject()); } else { Ctx.m_instance.m_logSys.log(string.Format("卡表查找失败, ID = {0}", m_sceneCardBaseData.m_startCardID)); } }
// 读取一个表,仅仅读取表头 private void readTable(TableID tableID, ByteBuffer bytes) { TableBase table = m_dicTable[tableID]; table.m_byteBuffer = bytes; bytes.setEndian(Endian.LITTLE_ENDIAN); uint len = 0; bytes.readUnsignedInt32(ref len); uint i = 0; TableItemBase item = null; for (i = 0; i < len; i++) { //if (TableID.TABLE_OBJECT == tableID) //{ // item = new TableItemObject(); //} item = new TableItemBase(); item.parseHeaderByteBuffer(bytes); // 加载完整数据 //loadOneTableOneItemAll(tableID, table, item); //if (TableID.TABLE_OBJECT == tableID) //{ //item.parseAllByteBuffer<TableObjectItemBody>(bytes); //} table.m_List.Add(item); } }
// 加载一个表中一项的所有内容 public void loadOneTableOneItemAll(TableID tableID, TableBase table, TableItemBase itemBase) { if (TableID.TABLE_OBJECT == tableID) { itemBase.parseBodyByteBuffer<TableObjectItemBody>(table.m_byteBuffer, itemBase.m_itemHeader.m_offset); } else if (TableID.TABLE_CARD == tableID) { itemBase.parseBodyByteBuffer<TableCardItemBody>(table.m_byteBuffer, itemBase.m_itemHeader.m_offset); } else if (TableID.TABLE_SKILL == tableID) // 添加一个表的步骤四 { itemBase.parseBodyByteBuffer<TableSkillItemBody>(table.m_byteBuffer, itemBase.m_itemHeader.m_offset); } else if (TableID.TABLE_JOB == tableID) { itemBase.parseBodyByteBuffer<TableJobItemBody>(table.m_byteBuffer, itemBase.m_itemHeader.m_offset); } else if (TableID.TABLE_SPRITEANI == tableID) { itemBase.parseBodyByteBuffer<TableSpriteAniItemBody>(table.m_byteBuffer, itemBase.m_itemHeader.m_offset); } else if (TableID.TABLE_RACE == tableID) { itemBase.parseBodyByteBuffer<TableRaceItemBody>(table.m_byteBuffer, itemBase.m_itemHeader.m_offset); } else if (TableID.TABLE_STATE == tableID) { itemBase.parseBodyByteBuffer<TableStateItemBody>(table.m_byteBuffer, itemBase.m_itemHeader.m_offset); } }