private void UnitCellClick(object _data) { UnitCellData data = _data as UnitCellData; int money = battle.clientIsMine ? battle.mMoney : battle.oMoney; UnitSDS sds = StaticData.GetData <UnitSDS> (data.id); if (money >= sds.prize) { battle.ClientSendUnitCommand(data.id); } }
public override bool SetData(object _data) { UnitCellData cellData = _data as UnitCellData; UnitSDS sds = StaticData.GetData <UnitSDS> (cellData.id); idTf.text = sds.ID.ToString(); prizeTf.text = sds.prize.ToString(); numTf.text = cellData.num.ToString(); return(base.SetData(_data)); }
//---- 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); }
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(); }