//删除某个类型的New的状态 private void removeBag(BagOfStatus status) { if (status != null) { ConfigDataType type = DataCore.getDataType(status.num); removeBag(type, status.pid); } }
//根据服务器ID获取一个状态 public short getStatus(int pid) { short status = BagOfStatus.STATUS_NEW; BagOfStatus bagStatus = null; if (mDicBagStatus.TryGetValue(pid, out bagStatus)) { status = bagStatus.status; } return(status); }
//设定一个状态 public void setStatus(BagOfStatus newStatus) { if (newStatus != null) { switch (newStatus.status) { case BagOfStatus.STATUS_DELETE: removeBag(newStatus); if (mDicBagStatus.ContainsKey(newStatus.pid)) { mDicBagStatus.Remove(newStatus.pid); } break; case BagOfStatus.STATUS_NORMAL: removeBag(newStatus); mDicBagStatus[newStatus.pid] = newStatus; break; case BagOfStatus.STATUS_NEW: break; } } }
//检测背包道具的new状态 void CheckBagItemNewState() { BagOfStatus status = new BagOfStatus(); status.status = BagOfStatus.STATUS_NORMAL; switch (_itemType) { case EMItemType.Charator: foreach (SQYNodeForBI bi in szSelectCharator) { Monster mon = bi._boxItem.curData as Monster; if (mon.isNew) { m_bNeedSave = true; mon.isNew = false; status.pid = mon.pid; status.num = mon.num; Core.Data.AccountMgr.setStatus(status); } } break; case EMItemType.Equipment: foreach (SQYNodeForBI bi in szSelectCharator) { Equipment equip = bi._boxItem.curData as Equipment; if (equip.isNew) { m_bNeedSave = true; equip.isNew = false; status.pid = equip.RtEquip.id; status.num = equip.RtEquip.num; Core.Data.AccountMgr.setStatus(status); } } break; case EMItemType.Gem: foreach (SQYNodeForBI bi in szSelectCharator) { Gems gem = bi._boxItem.curData as Gems; if (gem.isNew) { m_bNeedSave = true; gem.isNew = false; status.pid = gem.id; status.num = gem.configData.ID; Core.Data.AccountMgr.setStatus(status); } } break; case EMItemType.Props: foreach (SQYNodeForBI bi in szSelectCharator) { Item item = bi._boxItem.curData as Item; if (item.isNew) { m_bNeedSave = true; item.isNew = false; status.pid = item.RtData.id; status.num = item.configData.ID; Core.Data.AccountMgr.setStatus(status); } } break; // case EMItemType.Soul: // foreach (SQYNodeForBI bi in szSelectCharator) // { // Soul soul = bi._boxItem.curData as Soul; // if (soul.isNew) // { // m_bNeedSave = true; // soul.isNew = false; // status.pid = soul.m_RTData.id; // status.num = soul.m_config.ID; // Core.Data.AccountMgr.setStatus (status); // } // } // break; } UpdateBtnTips(); SQYMainController.mInstance.UpdateBagTip(); }