//---- public void Init(Action <MemoryStream> _sendDataCallBack, Action _overCallBack) { battle = new Battle(); overCallBack = _overCallBack; battle.ClientInit(_sendDataCallBack, Refresh, SendCommandOK, BattleOver); SuperRaycast.SetIsOpen(true, "1"); SuperRaycast.checkBlockByUi = true; SuperRaycast.SetCamera(battleCamera); Dictionary <int, UnitSDS> tmpDic = StaticData.GetDic <UnitSDS> (); Dictionary <int, UnitSDS> .ValueCollection.Enumerator enumerator = tmpDic.Values.GetEnumerator(); while (enumerator.MoveNext()) { UnitSDS sds = enumerator.Current; if (sds.isHero) { HeroCellData cellData = new HeroCellData(sds.ID, false, 0, true); heroList.Add(cellData); heroDic.Add(sds.ID, cellData); } else { UnitCellData cellData = new UnitCellData(sds.ID, 0); unitList.Add(cellData); unitDic.Add(sds.ID, cellData); } } unitSuperList.SetData(unitList); heroSuperList.SetData(heroList); unitSuperList.CellClickHandle = UnitCellClick; gameObject.SetActive(false); SuperFunction.Instance.AddEventListener <RaycastHit, int> (quad, SuperRaycast.GetMouseClick, QuadClick); }
public override void OnPointerClick(PointerEventData eventData) { if (selected) { superList.SetSelectedIndex(-1); } else { HeroCellData cellData = data as HeroCellData; if (cellData.selectable) { base.OnPointerClick(eventData); } } }
public override bool SetData(object _data) { HeroCellData cellData = _data as HeroCellData; UnitSDS sds = StaticData.GetData <UnitSDS> (cellData.id); idTf.text = sds.ID.ToString(); prizeTf.text = sds.prize.ToString(); if (cellData.added) { idTf.color = Color.red; } else { idTf.color = Color.black; } if (cellData.cd == 0) { cdImg.gameObject.SetActive(false); } else { cdImg.gameObject.SetActive(true); UnitSDS unitSDS = StaticData.GetData <UnitSDS>(cellData.id); SkillSDS skillSDS = StaticData.GetData <SkillSDS>(unitSDS.skill); cdImg.fillAmount = (float)cellData.cd / skillSDS.cd; } if (selected && !cellData.selectable) { superList.SetSelectedIndex(-1); } return(base.SetData(_data)); }
private void RefreshUi() { bool refresh = false; Dictionary <int, int> unitPool; Dictionary <int, Unit> heroPool; Dictionary <int, Dictionary <int, UnitCommandData> > unitCommandPool; Dictionary <int, HeroCommandData> heroCommandPool; Dictionary <int, SkillCommandData> skillCommandPool; if (battle.clientIsMine) { unitPool = battle.mUnitPool; heroPool = battle.mHeroPool; unitCommandPool = battle.mUnitCommandPool; heroCommandPool = battle.mHeroCommandPool; skillCommandPool = battle.mSkillCommandPool; } else { unitPool = battle.oUnitPool; heroPool = battle.oHeroPool; unitCommandPool = battle.oUnitCommandPool; heroCommandPool = battle.oHeroCommandPool; skillCommandPool = battle.oSkillCommandPool; } Dictionary <int, UnitCellData> .ValueCollection.Enumerator enumerator = unitDic.Values.GetEnumerator(); while (enumerator.MoveNext()) { UnitCellData cellData = enumerator.Current; int num; if (unitPool.ContainsKey(cellData.id)) { num = unitPool [cellData.id]; } else { num = 0; } Dictionary <int, Dictionary <int, UnitCommandData> > .ValueCollection.Enumerator enumerator3 = unitCommandPool.Values.GetEnumerator(); while (enumerator3.MoveNext()) { Dictionary <int, UnitCommandData> .ValueCollection.Enumerator enumerator4 = enumerator3.Current.Values.GetEnumerator(); while (enumerator4.MoveNext()) { if (enumerator4.Current.id == cellData.id) { num++; } } } if (cellData.num != num) { cellData.num = num; refresh = true; } } if (refresh) { unitSuperList.SetDataAndKeepLocation(unitList); refresh = false; } Dictionary <int, HeroCellData> .ValueCollection.Enumerator enumerator2 = heroDic.Values.GetEnumerator(); while (enumerator2.MoveNext()) { HeroCellData cellData = enumerator2.Current; bool added = heroPool.ContainsKey(cellData.id); int cd = 0; bool selectable = true; if (!added) { if (heroCommandPool.ContainsKey(cellData.id)) { added = true; selectable = false; } } else { Unit hero = heroPool[cellData.id]; if (hero.sds.GetSkill() != 0) { cd = hero.skillCd; } } if (selectable && added) { if (cd > 0) { selectable = false; } else { if (skillCommandPool.ContainsKey(cellData.id)) { selectable = false; } } } if (cellData.added != added) { cellData.added = added; refresh = true; } if (cellData.cd != cd) { cellData.cd = cd; refresh = true; } if (cellData.selectable != selectable) { cellData.selectable = selectable; refresh = true; } } if (refresh) { heroSuperList.SetDataAndKeepLocation(heroList); } moneyTf.text = battle.clientIsMine ? battle.mMoney.ToString() : battle.oMoney.ToString(); }