private void OnStageDataRefreshed() { if (mStageT != null) { //-----次数刷新-------- if (mStageT.m_limittime < 0) { SetRapidObjActive(false); } else { SetRapidObjActive(true); StageData sd = ObjectSelf.GetInstance().BattleStageData.GetStageDataByStageId(mStageT.GetID()); int remineTimes = Mathf.Max(0, mStageT.m_limittime - sd.m_FightSum); TEXT_COLOR tc = TEXT_COLOR.WHITE; if (remineTimes > 0) { tc = TEXT_COLOR.WHITE; m_ResetBtn.gameObject.SetActive(false); } else { m_ResetBtn.gameObject.SetActive(true); tc = TEXT_COLOR.RED; } m_RemindTimeTxt.text = GameUtils.getString("fight_fightprepare_content3") + GameUtils.StringWithColor(remineTimes.ToString(), tc) + "/" + mStageT.m_limittime; } } }
void OnTabKey(int player, SpecialKey key) { if (key != SpecialKey.TabPlayerList) { return; } tabOpen[m.GetPlayerName(player)] = true; Dialog d = new Dialog(); d.IsModal = true; List <Widget> widgets = new List <Widget>(); // table alignment float tableX = xcenter(m.GetScreenResolution(player)[0], tableWidth); float tableY = tableMarginTop; // text to draw string row1 = m.GetServerName(); row1 = cutText(row1, HeadingFont, tableWidth - 2 * tablePadding); string row2 = m.GetServerMotd(); row2 = cutText(row2, SmallFontBold, tableWidth - 2 * tablePadding); string row3_1 = "IP: " + m.GetServerIp() + ":" + m.GetServerPort(); string row3_2 = (int)(m.GetPlayerPing(player) * 1000) + "ms"; string row4_1 = "Players: " + m.AllPlayers().Length; string row4_2 = "Page: " + (page + 1) + "/" + (pageCount + 1); string row5_1 = "ID"; string row5_2 = "Player"; string row5_3 = "Ping"; // row heights float row1Height = textHeight(row1, HeadingFont) + 2 * tablePadding; float row2Height = textHeight(row2, SmallFontBold) + 2 * tablePadding; float row3Height = textHeight(row3_1, SmallFont) + 2 * tablePadding; float row4Height = textHeight(row4_1, SmallFont) + 2 * tablePadding; float row5Height = textHeight(row5_1, NormalFontBold) + 2 * tablePadding; float listEntryHeight = textHeight("Player", NormalFont) + 2 * listEntryPaddingTopBottom; float heightOffset = 0; // determine how many entries can be displayed tableHeight = m.GetScreenResolution(player)[1] - tableMarginTop - tableMarginBottom; float availableEntrySpace = tableHeight - row1Height - row2Height - row3Height - row4Height - (row5Height + tableLineWidth); int entriesPerPage = (int)(availableEntrySpace / listEntryHeight); pageCount = (int)Math.Ceiling((float)(m.AllPlayers().Length / entriesPerPage)); if (page > pageCount) { page = 0; } // 1 - heading: Servername widgets.Add(Widget.MakeSolid(tableX, tableY, tableWidth, row1Height, Color.DarkGreen.ToArgb())); widgets.Add(Widget.MakeText(row1, HeadingFont, tableX + xcenter(tableWidth, textWidth(row1, HeadingFont)), tableY + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row1Height; // 2 - MOTD widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableWidth, row2Height, Color.ForestGreen.ToArgb())); widgets.Add(Widget.MakeText(row2, SmallFontBold, tableX + xcenter(tableWidth, textWidth(row2, SmallFontBold)), tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row2Height; // 3 - server info: IP Motd Serverping widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableWidth, row3Height, Color.DarkSeaGreen.ToArgb())); // row3_1 - IP align left widgets.Add(Widget.MakeText(row3_1, SmallFont, tableX + tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); // row3_2 - Serverping align right widgets.Add(Widget.MakeText(row3_2, SmallFont, tableX + tableWidth - textWidth(row3_2, SmallFont) - tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row3Height; // 4 - infoline: Playercount, Page widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableWidth, row4Height, Color.DimGray.ToArgb())); // row4_1 PlayerCount widgets.Add(Widget.MakeText(row4_1, SmallFont, tableX + tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); // row4_2 PlayerCount widgets.Add(Widget.MakeText(row4_2, SmallFont, tableX + tableWidth - textWidth(row4_2, SmallFont) - tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row4Height; // 5 - playerlist heading: ID | Player | Ping widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableIdColumnWidth, row5Height, Color.DarkGray.ToArgb())); widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth, tableY + heightOffset, tablePlayerColumnWidth, row5Height, Color.DarkGray.ToArgb())); widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth + tablePlayerColumnWidth, tableY + heightOffset, tablePingColumnWidth, row5Height, Color.DarkGray.ToArgb())); // separation lines widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth, tableY + heightOffset, tableLineWidth, row5Height, Color.DimGray.ToArgb())); widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth + tablePlayerColumnWidth - tableLineWidth, tableY + heightOffset, tableLineWidth, row5Height, Color.DimGray.ToArgb())); // row4_1 ID - align center widgets.Add(Widget.MakeText(row5_1, NormalFontBold, tableX + xcenter(tableIdColumnWidth, textWidth(row5_1, NormalFontBold)), tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); // row4_2 Player - align center widgets.Add(Widget.MakeText(row5_2, NormalFontBold, tableX + tableIdColumnWidth + tablePlayerColumnWidth / 2 - textWidth(row5_2, NormalFontBold) / 2, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); // row4_3 Ping - align center widgets.Add(Widget.MakeText(row5_3, NormalFontBold, tableX + tableIdColumnWidth + tablePlayerColumnWidth + tablePingColumnWidth / 2 - textWidth(row5_3, NormalFontBold) / 2, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row5Height; // horizontal line widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableWidth, tableLineWidth, Color.DimGray.ToArgb())); heightOffset += tableLineWidth; // 6 - actual playerlist // entries: Color entryRowColor; int[] AllPlayers = m.AllPlayers(); for (int i = page * entriesPerPage; i < Math.Min(AllPlayers.Length, page * entriesPerPage + entriesPerPage); i++) { if (i % 2 == 0) { entryRowColor = Color.Gainsboro; } else { entryRowColor = Color.Honeydew; } widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableIdColumnWidth, listEntryHeight, entryRowColor.ToArgb())); widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth, tableY + heightOffset, tablePlayerColumnWidth, listEntryHeight, entryRowColor.ToArgb())); widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth + tablePlayerColumnWidth, tableY + heightOffset, tablePingColumnWidth, listEntryHeight, entryRowColor.ToArgb())); // separation lines widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth, tableY + heightOffset, tableLineWidth, listEntryHeight, Color.DimGray.ToArgb())); widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth + tablePlayerColumnWidth - tableLineWidth, tableY + heightOffset, tableLineWidth, listEntryHeight, Color.DimGray.ToArgb())); widgets.Add(Widget.MakeText(AllPlayers[i].ToString(), NormalFont, tableX + tableIdColumnWidth - textWidth(AllPlayers[i].ToString(), NormalFont) - tablePadding, tableY + heightOffset + listEntryPaddingTopBottom, TEXT_COLOR.ToArgb())); widgets.Add(Widget.MakeText(getPrefix(AllPlayers[i]) + m.GetPlayerName(AllPlayers[i]), NormalFont, tableX + tableIdColumnWidth + tablePadding, tableY + heightOffset + listEntryPaddingTopBottom, TEXT_COLOR.ToArgb())); string pingString; if (m.IsBot(AllPlayers[i])) { pingString = "BOT"; } else { pingString = ((int)(m.GetPlayerPing(AllPlayers[i]) * 1000)).ToString(); } widgets.Add(Widget.MakeText(pingString, NormalFont, tableX + tableIdColumnWidth + tablePlayerColumnWidth + tablePingColumnWidth - textWidth(pingString, NormalFont) - tablePadding, tableY + heightOffset + listEntryPaddingTopBottom, TEXT_COLOR.ToArgb())); heightOffset += listEntryHeight; } var wtab = Widget.MakeSolid(0, 0, 0, 0, 0); wtab.ClickKey = '\t'; wtab.Id = "Tab"; widgets.Add(wtab); var wesc = Widget.MakeSolid(0, 0, 0, 0, 0); wesc.ClickKey = (char)27; wesc.Id = "Esc"; widgets.Add(wesc); d.Width = m.GetScreenResolution(player)[0]; d.Height = m.GetScreenResolution(player)[1]; d.Widgets = widgets.ToArray(); m.SendDialog(player, "PlayerList", d); }
public void Show(StageTemplate stageT) { if (stageT == null) { Debug.LogError("关卡数据为null"); return; } mStageT = stageT; //-----------------星级----------------; StageData sd = ObjectSelf.GetInstance().BattleStageData.GetStageDataByStageId(stageT.m_stageid); int starNum = 0; if (sd != null) { starNum = sd.m_StageStar; } for (int i = 0; i < 3; i++) { StarImgs[i].gameObject.SetActive(i < starNum); } int stageNum = StageModule.GetStageNumInChapter(stageT); int chapterId = StageModule.GetChapterinfoIdByStageId(stageT.GetID()); m_ChapterNameTxt.text = string.Format(GameUtils.getString("chapter_title"), GameUtils.ConverIntToString(chapterId)); m_StageNameTxt.text = string.Format(GameUtils.getString("guanqia_mingzi"), stageNum, GameUtils.getString(stageT.m_stagename)); m_StageDescTxt.text = GameUtils.getString(stageT.m_stageinfo); m_ResourceCount1.text = stageT.m_playerexp.ToString(); m_ResourceCount2.text = stageT.m_goldreward.ToString(); if (stageT.m_expcrystal == -1) { ResouceObj3.SetActive(false); } else { ResouceObj3.SetActive(true); m_ResourceCount3.text = stageT.m_expcrystal.ToString(); } EM_STAGE_DIFFICULTTYPE difficultType = StageModule.GetStageDifficultType(stageT); string difficultStr = ""; switch (difficultType) { case EM_STAGE_DIFFICULTTYPE.NONE: break; case EM_STAGE_DIFFICULTTYPE.NORMAL: difficultStr = GameUtils.getString("chapter_difficult_type1"); break; case EM_STAGE_DIFFICULTTYPE.HARD: difficultStr = GameUtils.getString("chapter_difficult_type2"); break; case EM_STAGE_DIFFICULTTYPE.HARDEST: difficultStr = GameUtils.getString("chapter_difficult_type2"); break; default: break; } //-------------------关卡挑战次数-------------------- //无限制; if (stageT.m_limittime < 0) { SetRapidObjActive(false); } else { SetRapidObjActive(true); int remineTimes = Mathf.Max(0, stageT.m_limittime - sd.m_FightSum); TEXT_COLOR tc = TEXT_COLOR.WHITE; if (remineTimes > 0) { tc = TEXT_COLOR.WHITE; m_ResetBtn.gameObject.SetActive(false); } else { m_ResetBtn.gameObject.SetActive(true); tc = TEXT_COLOR.RED; } m_RemindTimeTxt.text = GameUtils.getString("fight_fightprepare_content3") + GameUtils.StringWithColor(remineTimes.ToString(), tc) + "/" + stageT.m_limittime; } m_DifficultTxt.text = difficultStr; //行动力不足颜色标红; if (isEnoughPow(mStageT)) { m_ConsumeCountTxt.text = stageT.m_cost.ToString(); } else { m_ConsumeCountTxt.text = GameUtils.StringWithColor(stageT.m_cost.ToString(), TEXT_COLOR.RED); } switch (stageT.m_winCondition) { case 1: m_SucessConditionTxt.text = "◆" + GameUtils.getString("System_setting_content28"); break; case 2: m_SucessConditionTxt.text = "◆" + string.Format(GameUtils.getString("System_setting_content29"), StageModule.GetBossName(stageT)); break; } //--------------------敌方英雄信息------------------; for (int i = 0; i < mEnermyList.Count; i++) { if (mEnermyList[i] != null) { mEnermyList[i].Destroy(); } } mEnermyList.Clear(); List <MonsterTemplate> _BossTemp = new List <MonsterTemplate>(); List <MonsterTemplate> _MonsterTemp = new List <MonsterTemplate>(); for (int i = 0, j = stageT.m_displayMonster.Length; i < j; i++) { MonsterTemplate _monster = (MonsterTemplate)DataTemplate.GetInstance().m_MonsterTable.getTableData(stageT.m_displayMonster[i]); if (_monster.getMonstertype() == 2) { _BossTemp.Add(_monster); } else { _MonsterTemp.Add(_monster); } } for (int i = 0; i < _BossTemp.Count; ++i) { UniversalItemCell cell = UniversalItemCell.GenerateItem(EnermyListTrans); cell.InitByID(_BossTemp[i].getId()); cell.SetSize(UniversalItemCell.UniversalItemSize.Type_114); cell.SetCount("BOSS"); cell.AddClickListener(OnClickUniversalHeroHandler); mEnermyList.Add(cell); } for (int i = 0; i < _MonsterTemp.Count; i++) { UniversalItemCell cell = UniversalItemCell.GenerateItem(EnermyListTrans); cell.InitByID(_MonsterTemp[i].getId()); cell.SetSize(UniversalItemCell.UniversalItemSize.Type_114); cell.AddClickListener(OnClickUniversalHeroHandler); //cell.SetCount("BOSS"); mEnermyList.Add(cell); } //--------------------关卡掉落展示------------------; for (int i = 0; i < mItemsList.Count; i++) { if (mItemsList[i] != null) { mItemsList[i].Destroy(); } } mItemsList.Clear(); string displaydrop = stageT.m_displaydrop; if (displaydrop == "-1" || string.IsNullOrEmpty(displaydrop)) { } else { string[] displaydropList = displaydrop.Split('#'); if (displaydropList.Length == 0) { return; } for (int i = 0; i < displaydropList.Length; i++) { UniversalItemCell cell = UniversalItemCell.GenerateItem(ItemListTrans); cell.SetSize(UniversalItemCell.UniversalItemSize.Type_114); cell.AddClickListener(OnClickUniversalItemHandler); string[] itemList = displaydropList[i].Split('-'); switch (int.Parse(itemList[0])) { case 1: int itemid = int.Parse(itemList[1]); if (int.Parse(itemList[2]) == 0) { //几率掉落; cell.InitByID(itemid); cell.SetText(null, GameUtils.getString("fight_stageselect_content3"), null); } else { //一定掉落; int count = System.Convert.ToInt32(itemList[3]); cell.InitByID(itemid, count); } break; case 2: if (int.Parse(itemList[2]) == 0) { cell.InitBySprite(UIResourceMgr.LoadSprite(common.defaultPath + itemList[1])); cell.SetText(null, GameUtils.getString("fight_stageselect_content3"), null); } else { int count = System.Convert.ToInt32(itemList[3]); cell.InitBySprite(UIResourceMgr.LoadSprite(common.defaultPath + itemList[1]), count); } break; default: break; } mItemsList.Add(cell); } } }
private void BuyResetHandler() { ObjectSelf obj = ObjectSelf.GetInstance(); int reminResetTimes = isEnoughResetCount(); //是否有购买重置次数; if (reminResetTimes > 0) { //UI_RechargeBox box = UI_HomeControler.Inst.AddUI(UI_RechargeBox.UI_ResPath).GetComponent<UI_RechargeBox>(); //int vipLevel = ObjectSelf.GetInstance().VipLevel; //StringBuilder sb = new StringBuilder(); //sb.Append(GameUtils.getString("fight_stagepurchase_form_content")); //sb.Append(string.Format("<size=40><color=#F7F709> {0}</color></size>", ObjectSelf.GetInstance().RapidClearBuyTimes)); //box.SetDescription_text(sb.ToString()); //box.SetLeftClick(OnBuyRapidClick); //int curGold = ObjectSelf.GetInstance().Gold; //box.SetMoneyInfo((int)EM_RESOURCE_TYPE.Gold, curGold); //box.SetMoneyInfoActive(true); //int buyTimes = VIPModule.GetBuyStageMopupTimes(vipLevel) - ObjectSelf.GetInstance().RapidClearBuyTimes; //int cost = StageModule.GetBuyRapidCost(buyTimes); //box.SetConNum(cost + ""); //UI_RechargeBox.Data = curGold >= cost; //box.SetConsume_Image(GameUtils.GetSpriteByResourceType(EM_RESOURCE_TYPE.Gold)); //box.SetLeftBtn_text(GameUtils.getString("common_button_purchase")); long resCount = -1; if (obj.TryGetResourceCountById(EM_RESOURCE_TYPE.Gold, ref resCount)) { int vipLevel = ObjectSelf.GetInstance().VipLevel; VipTemplate pRow = (VipTemplate)DataTemplate.GetInstance().m_VipTable.getTableData(vipLevel); StageData sd = ObjectSelf.GetInstance().BattleStageData.GetStageDataByStageId(mStageT.GetID()); int buyCostIdx = -1; buyCostIdx = Mathf.Max(0, sd.m_BuyBattleNum); buyCostIdx = Mathf.Min(pRow.getResetcost().Length - 1, buyCostIdx); int cost = pRow.getResetcost()[buyCostIdx]; bool isGoldEnough = resCount >= cost; TEXT_COLOR tc = isGoldEnough ? TEXT_COLOR.WHITE : TEXT_COLOR.RED; UICommonManager.Inst.ShowMsgBox( GameUtils.getString("maoxianguanka8"), string.Format(GameUtils.getString("maoxianguanka9"), reminResetTimes), string.Format(GameUtils.getString("maoxianguanka10"), GameUtils.StringWithColor(cost.ToString(), tc)), GameUtils.getString("huoli_tips5"), OnBuyResetBtnClick, null, isGoldEnough ); } else { Debug.LogError("不存在的资源类型" + EM_RESOURCE_TYPE.Gold); } return; } else { //VIP等级是否满级15级; if (obj.VipLevel >= 15) { InterfaceControler.GetInst().AddMsgBox(GameUtils.getString("maoxianguanka27"), selfTransform); return; } else { UICommonManager.Inst.ShowMsgBox( GameUtils.getString("maoxianguanka8"), string.Format(GameUtils.getString("huoli_tips4"), 0), GameUtils.getString("huoli_tips6"), GameUtils.getString("huoli_tips7"), OnShowVipBtnClick, null ); return; } } }
//void ResetAttriCount() //{ // mAttriCount = 0; //} void UpdateUI() { //ResetAttriCount(); ItemTemplate itemT = ItemEquipInfo.GetItemRowData(); //mRuneNameTxt.text = GameUtils.getString(itemT.getName()); //mSpeHeroTxt.text = GameUtils.getString(itemT.getSpecialHeroDes()); //mDefineRuneItem.SetIcon(common.defaultPath + itemT.getIcon()); //mDefineRuneItem.SetStarsNum(itemT.getRune_quality()); //mDefineRuneItem.SetLevel(ItemEquipInfo.GetStrenghLevel()); ////bool isSpecial = itemT.getRune_type() == 5 || itemT.getRune_type() == 6; //bool isSpecial = RuneModule.IsSpecialRune(itemT); //mDefineRuneItem.SetIsSpecial(isSpecial); //if (!isSpecial) //{ // mDefineRuneItem.SetRuneType(itemT.getRune_type()); //} mItemCommonData.IsShowMaxEffect = true; mItemCommonData.RuneLevel = ItemEquipInfo.GetStrenghLevel(); mItemCommonData.ItemT = itemT; mItemCommonData.EquipedHeroName = RuneModule.GetItemEuipHeroName(ItemEquipInfo); mItemCommon.SetRuneItemData(mItemCommonData, RuneItemCommon.RuneItemShowType.IconWithRightName); mDetailTxt.text = ""; GameUtils.DestroyChildsObj(mAttriList); int count = DataTemplate.GetInstance().GetRuneMaxRedefineTimes(itemT); ////--------基础属性; //RuneData runeData = ItemEquipInfo.GetRuneData(); //bool titleDone1 = false; //foreach (int id in runeData.BaseAttributeID) //{ // if (id == -1) // continue; // if (!titleDone1) // { // titleDone1 = true; // CreateTitle(mAttriList, GameUtils.getString("hero_rune_content8")); // } // BaseruneattributeTemplate bt = DataTemplate.GetInstance().GetBaseruneattributeTemplate(id); // if (bt.getNumshow() == 0) // { // //CreateTitle(mAttriList, GameUtils.getString(bt.getAttriDes())); // CreateDetailTxts(mAttriList, GameUtils.getString(bt.getAttriDes())); // } // else // { // //CreateBaseAttriObj(mAttriList, GameUtils.GetAttriName(bt.getAttriType()), "+" + bt.getAttriValue().ToString()); // CreateBaseAttriObj(mAttriList, GameUtils.getString(bt.getAttriDes()), "+" + bt.getAttriValue().ToString()); // } //} ////--------附加属性; //bool titleDone2 = false; //int i = 0; //bool isGray = false; //foreach (int id in runeData.AppendAttribute) //{ // i++; // isGray = i * 3 > ItemEquipInfo.GetStrenghLevel(); // if (id == -1) // { // if (i <= count) // { // if (!titleDone2) // { // titleDone2 = true; // CreateTitle(mAttriList, GameUtils.getString("hero_rune_content9")); // } // //未知属性,未鉴定; // CreateAddAttriObj(mAttriList, GameUtils.getString("rune_content2"), "", GameUtils.getString("rune_content3"), isGray); // } // continue; // } // if (!titleDone2) // { // titleDone2 = true; // CreateTitle(mAttriList, GameUtils.getString("hero_rune_content9")); // } // AddruneattributeTemplate bt = DataTemplate.GetInstance().GetAddruneattributeTemplate(id); // bool isPercent = bt.getIspercentage() > 0; // string val = isPercent ? ((float)bt.getAttriValue() / (float)10f + "%") : bt.getAttriValue().ToString(); // CreateAddAttriObj(mAttriList, GameUtils.getString(bt.getAttriDes1()), GameUtils.getString(bt.getAttriDes2()), bt.getSymbol() + val, isGray); //} //是否鉴定满级; bool isFullIdentify = ItemEquipInfo.GetDefineTimes() >= count; //按钮是否置灰 if (isFullIdentify) { mBtUnChange.SetActive(true); mBtChange.SetActive(false); } else { mBtUnChange.SetActive(false); mBtChange.SetActive(true); } //GameUtils.SetBtnSpriteGrayState(mDefineBtn, isFullIdentify); //是否显示道具消耗 mCostItemImg.gameObject.SetActive(!isFullIdentify); mCostItemNum.gameObject.SetActive(!isFullIdentify); //刷新消耗; //int itemId = -1; //消耗道具id //int itemCount = -1; //消耗道具数量; int curLv = ItemEquipInfo.GetDefineTimes(); switch (curLv) { case 0: itemId = itemT.getRune_exposeCostType1(); itemCount = itemT.getRune_exposeCostValue1(); break; case 1: itemId = itemT.getRune_exposeCostType2(); itemCount = itemT.getRune_exposeCostValue2(); break; case 2: itemId = itemT.getRune_exposeCostType3(); itemCount = itemT.getRune_exposeCostValue3(); break; case 3: itemId = itemT.getRune_exposeCostType4(); itemCount = itemT.getRune_exposeCostValue4(); break; default: break; } int itemTotal = UpdateCostTotalItemInfo(); if (!isFullIdentify) { if (itemId == -1 || itemCount == -1) { //LogManager.LogError("错误的道具id:" + itemId + "或者是错误的道具数量:" + itemCount); LogManager.LogError("符文当前:" + curLv + "级,还可以鉴定,但是鉴定道具id" + itemId + "或者道具数量:" + itemCount + "不对"); } ItemTemplate costItemT = DataTemplate.GetInstance().GetItemTemplateById(itemId); mCostItemImg.sprite = UIResourceMgr.LoadSprite(common.defaultPath + costItemT.getIcon()); mCostImg1.sprite = mCostItemImg.sprite; //int haveCount = 0; //ObjectSelf.GetInstance().TryGetItemCountById(EM_BAG_HASHTABLE_TYPE.EM_BAG_HASHTABLE_TYPE_COMMON, itemId, ref haveCount); TEXT_COLOR tc = itemCount > itemTotal ? TEXT_COLOR.RED : TEXT_COLOR.WHITE; mCostItemNum.text = GameUtils.StringWithColor(itemCount.ToString(), tc); } }
void OnTabKey(int player, SpecialKey key) { if (key != SpecialKey.TabPlayerList) { return; } tabOpen[m.GetPlayerName(player)] = true; Dialog d = new Dialog(); d.IsModal = true; List <Widget> widgets = new List <Widget>(); // table alignment float tableX = xcenter(m.GetScreenResolution(player)[0], tableWidth); float tableY = tableMarginTop; // text to draw string row1 = m.GetServerName(); row1 = cutText(row1, HeadingFont, tableWidth - 2 * tablePadding); string row2 = m.GetServerMotd(); row2 = cutText(row2, SmallFontBold, tableWidth - 2 * tablePadding); string row3_1 = "IP: " + m.GetServerIp() + ":" + m.GetServerPort(); string row3_2 = (int)(m.GetPlayerPing(player) * 1000) + "ms"; string row4_1 = "Players: " + m.AllPlayers().Length; string row4_2 = "Page: " + (page + 1) + "/" + (pageCount + 1); string row5_1 = "ID"; //string row5_2 = "Player"; //string row5_3 = "Ping"; // row heights float row1Height = textHeight(row1, HeadingFont) + 2 * tablePadding; float row2Height = textHeight(row2, SmallFontBold) + 2 * tablePadding; float row3Height = textHeight(row3_1, SmallFont) + 2 * tablePadding; float row4Height = textHeight(row4_1, SmallFont) + 2 * tablePadding; float row5Height = textHeight(row5_1, NormalFontBold) + 2 * tablePadding; float listEntryHeight = textHeight("Player", NormalFont) + 2 * listEntryPaddingTopBottom; float heightOffset = 0; // determine how many entries can be displayed tableHeight = m.GetScreenResolution(player)[1] - tableMarginTop - tableMarginBottom; float availableEntrySpace = tableHeight - row1Height - row2Height - row3Height - row4Height - (row5Height + tableLineWidth); int entriesPerPage = (int)(availableEntrySpace / listEntryHeight); pageCount = (int)Math.Ceiling((float)(m.AllPlayers().Length / entriesPerPage)); if (page > pageCount) { page = 0; } // 1 - heading: Servername widgets.Add(Widget.MakeSolid(tableX, tableY, tableWidth, row1Height, Color.DarkGreen.ToArgb())); widgets.Add(Widget.MakeText(row1, HeadingFont, tableX + xcenter(tableWidth, textWidth(row1, HeadingFont)), tableY + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row1Height; // 2 - MOTD widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableWidth, row2Height, Color.ForestGreen.ToArgb())); widgets.Add(Widget.MakeText(row2, SmallFontBold, tableX + xcenter(tableWidth, textWidth(row2, SmallFontBold)), tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row2Height; // 3 - server info: IP Motd Serverping widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableWidth, row3Height, Color.DarkSeaGreen.ToArgb())); // row3_1 - IP align left widgets.Add(Widget.MakeText(row3_1, SmallFont, tableX + tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); // row3_2 - Serverping align right widgets.Add(Widget.MakeText(row3_2, SmallFont, tableX + tableWidth - textWidth(row3_2, SmallFont) - tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row3Height; // 4 - infoline: Playercount, Page widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableWidth, row4Height, Color.DimGray.ToArgb())); // row4_1 PlayerCount widgets.Add(Widget.MakeText(row4_1, SmallFont, tableX + tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); // row4_2 PlayerCount widgets.Add(Widget.MakeText(row4_2, SmallFont, tableX + tableWidth - textWidth(row4_2, SmallFont) - tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row4Height; Dictionary <Team, List <int> > playersByTeam = new Dictionary <Team, List <int> >(); playersByTeam[Team.Blue] = new List <int>(); playersByTeam[Team.Spectator] = new List <int>(); playersByTeam[Team.Green] = new List <int>(); int[] AllPlayers = m.AllPlayers(); foreach (int p in AllPlayers) { playersByTeam[players[p].team].Add(p); } Team[] allteams = new Team[] { Team.Blue, Team.Spectator, Team.Green }; for (int t = 0; t < allteams.Length; t++) { List <int> players = playersByTeam[allteams[t]]; players.Sort((a, b) => (this.players[b].kills.CompareTo(this.players[a].kills))); for (int i = 0; i < players.Count; i++) { string s = string.Format("{0} {1}ms {2} kills", m.GetPlayerName(players[i]), (int)(m.GetPlayerPing(players[i]) * 1000), this.players[players[i]].kills); widgets.Add(Widget.MakeText(s, NormalFont, tableX + 200 * t, tableY + heightOffset + listEntryHeight * i, Color.White.ToArgb())); } } var wtab = Widget.MakeSolid(0, 0, 0, 0, 0); wtab.ClickKey = '\t'; wtab.Id = "Tab"; widgets.Add(wtab); var wesc = Widget.MakeSolid(0, 0, 0, 0, 0); wesc.ClickKey = (char)27; wesc.Id = "Esc"; widgets.Add(wesc); d.Width = m.GetScreenResolution(player)[0]; d.Height = m.GetScreenResolution(player)[1]; d.Widgets = widgets.ToArray(); m.SendDialog(player, "PlayerList", d); }
void UpdateUI() { mStrenthObj.SetActive(false); //刷新右上角消耗显示; long count1 = 0; ObjectSelf.GetInstance().TryGetResourceCountById(1400000002, ref count1); mCostTxt1.text = count1.ToString(); ItemTemplate itemT = ItemEquipInfo.GetItemRowData(); int strengthLv = ItemEquipInfo.GetStrenghLevel(); //是否是特殊符文; EM_RUNE_TYPE runeType = (EM_RUNE_TYPE)itemT.getRune_type(); bool isUnique = runeType == EM_RUNE_TYPE.EM_RUNE_TYPE_SPECIAL || runeType == EM_RUNE_TYPE.EM_RUNE_TYPE_SPECIAL_UNIQUE; mStrenthBtn[0].gameObject.SetActive(!isUnique); mStrenthBtn[1].gameObject.SetActive(isUnique); mCloseBtn[0].gameObject.SetActive(!isUnique); mCloseBtn[1].gameObject.SetActive(isUnique); //判断符文是否满级了; bool isFullLv = DataTemplate.GetInstance().IsRuneStrenthFullLevel(itemT, strengthLv); mRuneObj[0].SetActive(!isFullLv); mRuneObj[1].SetActive(!isFullLv); mRuneObj[2].SetActive(isFullLv); if (isFullLv) { //mStrenthRuneItem[i].SetIsSpecial(isUnique); RuneItemCommonData ricd = new RuneItemCommonData(); ricd.IsShowMaxEffect = true; ricd.ItemT = itemT; ricd.RuneLevel = strengthLv; ricd.EquipedHeroName = RuneModule.GetItemEuipHeroName(ItemEquipInfo); mItemCommons[2].SetRuneItemData(ricd, RuneItemCommon.RuneItemShowType.IconWithRightName); } else { RuneItemCommonData ricd = new RuneItemCommonData(); ricd.IsShowMaxEffect = true; ricd.ItemT = itemT; ricd.RuneLevel = strengthLv; ricd.EquipedHeroName = RuneModule.GetItemEuipHeroName(ItemEquipInfo); mItemCommons[0].SetRuneItemData(ricd, RuneItemCommon.RuneItemShowType.IconWithRightName); RuneItemCommonData ricd1 = new RuneItemCommonData(); ricd1.IsShowMaxEffect = true; ricd1.ItemT = itemT; ricd1.RuneLevel = strengthLv + 1; ricd1.EquipedHeroName = RuneModule.GetItemEuipHeroName(ItemEquipInfo); mItemCommons[1].SetRuneItemData(ricd1, RuneItemCommon.RuneItemShowType.IconWithRightName); } mCostObj[0].SetActive(!isFullLv); mCostObj[1].SetActive(!isFullLv); GameUtils.SetBtnSpriteGrayState(mStrenthBtn[0], isFullLv); GameUtils.SetBtnSpriteGrayState(mStrenthBtn[1], isFullLv); mStrenthFullObj1.SetActive(isFullLv); mStrenthFullObj2.SetActive(isFullLv); if (isFullLv) { } else // 没满级判断资源消耗; { if (isUnique) { mStrenthTitleTxt.text = GameUtils.getString("rune_title2"); //消耗资源处刷新; RunecostTemplate rt = DataTemplate.GetInstance().GetRuneCostTemplate(itemT.getRune_strengthenId(), strengthLv + 1); if (rt.getAttriType1() == 1400000002)//是金币; { long countTmp = 0; ObjectSelf.GetInstance().TryGetResourceCountById(rt.getAttriType1(), ref countTmp); mCost2Txt1.text = countTmp.ToString(); ObjectSelf.GetInstance().TryGetResourceCountById(rt.getAttriType2(), ref countTmp); mCost2Txt2.text = countTmp.ToString(); TEXT_COLOR tc = countTmp >= rt.getAttriValue2() ? TEXT_COLOR.WHITE : TEXT_COLOR.RED; mCostItemCountTxt.text = GameUtils.StringWithColor(rt.getAttriValue2().ToString(), tc); tc = ObjectSelf.GetInstance().Money >= rt.getAttriValue1() ? TEXT_COLOR.WHITE : TEXT_COLOR.RED; mCostGoldTxt[1].text = GameUtils.StringWithColor(rt.getAttriValue1().ToString(), tc); } else//不是金币; { long countTmp = 0; ObjectSelf.GetInstance().TryGetResourceCountById(rt.getAttriType2(), ref countTmp); mCost2Txt1.text = countTmp.ToString(); ObjectSelf.GetInstance().TryGetResourceCountById(rt.getAttriType1(), ref countTmp); mCost2Txt2.text = countTmp.ToString(); TEXT_COLOR tc = countTmp >= rt.getAttriValue1() ? TEXT_COLOR.WHITE : TEXT_COLOR.RED; mCostItemCountTxt.text = GameUtils.StringWithColor(rt.getAttriValue1().ToString(), tc); tc = ObjectSelf.GetInstance().Money >= rt.getAttriValue2() ? TEXT_COLOR.WHITE : TEXT_COLOR.RED; mCostGoldTxt[1].text = GameUtils.StringWithColor(rt.getAttriValue2().ToString(), tc); } mNorCostItemImg.sprite = GameUtils.GetSpriteByResourceType(rt.getAttriType1()); mSpecCostItemImg.sprite = GameUtils.GetSpriteByResourceType(rt.getAttriType2()); mCostGoldImg.sprite = GameUtils.GetSpriteByResourceType(rt.getAttriType1()); mCost2Img1.sprite = GameUtils.GetSpriteByResourceType(rt.getAttriType1()); mCost2Img2.sprite = GameUtils.GetSpriteByResourceType(rt.getAttriType2()); mCostObj1.SetActive(false); mCostObj2.SetActive(true); } else { mStrenthTitleTxt.text = GameUtils.getString("rune_title1"); RunecostTemplate rt = DataTemplate.GetInstance().GetRuneCostTemplate(itemT.getRune_strengthenId(), strengthLv + 1); if (rt.getAttriType1() == 1400000002)//是金币; { TEXT_COLOR tc = ObjectSelf.GetInstance().Money >= rt.getAttriValue1() ? TEXT_COLOR.WHITE : TEXT_COLOR.RED; mCostGoldTxt[0].text = GameUtils.StringWithColor(rt.getAttriValue1().ToString(), tc); } else//不是金币; { TEXT_COLOR tc = ObjectSelf.GetInstance().Money >= rt.getAttriValue2() ? TEXT_COLOR.WHITE : TEXT_COLOR.RED; mCostGoldTxt[0].text = GameUtils.StringWithColor(rt.getAttriValue2().ToString(), tc); } mCostObj1.SetActive(true); mCostObj2.SetActive(false); } } mStrenthBtn[0].GetComponent <Button>().enabled = true; mStrenthBtn[1].GetComponent <Button>().enabled = true; //RuneData runeData = ItemEquipInfo.GetRuneData(); ////基础属性; //bool titleDone1 = false; //foreach (int id in runeData.BaseAttributeID) //{ // if (id == -1) // continue; // if (!titleDone1) // { // titleDone1 = true; // if (isFullLv) // { // CreateTitle(mDetailTransPos[2], GameUtils.getString("hero_rune_content8")); // } // else // { // CreateTitle(mDetailTransPos[0], GameUtils.getString("hero_rune_content8")); // CreateTitle(mDetailTransPos[1], GameUtils.getString("hero_rune_content8")); // } // } // BaseruneattributeTemplate bt1 = DataTemplate.GetInstance().GetBaseruneattributeTemplate(id); // if (isFullLv) // { // if (bt1.getNumshow() == 0) // { // //CreateTitle(mAttriList[2], GameUtils.getString(bt1.getAttriDes())); // CreateDetailTxts(mDetailTransPos[2], GameUtils.getString(bt1.getAttriDes())); // } // else // { // CreateBaseAttriObj(mDetailTransPos[2], GameUtils.getString(bt1.getAttriDes()), "+" + bt1.getAttriValue().ToString()); // } // //CreateBaseAttriObj(mAttriList[2], GameUtils.GetAttriName(bt1.getAttriType()), "+" + bt1.getAttriValue().ToString()); // } // else // { // if (bt1.getNumshow() == 0) // { // //CreateTitle(mAttriList[0], GameUtils.getString(bt1.getAttriDes())); // CreateDetailTxts(mDetailTransPos[0], GameUtils.getString(bt1.getAttriDes())); // } // else // { // CreateBaseAttriObj(mDetailTransPos[0], GameUtils.getString(bt1.getAttriDes()), "+" + bt1.getAttriValue().ToString()); // } // //CreateBaseAttriObj(mAttriList[0], GameUtils.GetAttriName(bt1.getAttriType()), "+" + bt1.getAttriValue().ToString()); // BaseruneattributeTemplate bt2 = DataTemplate.GetInstance().GetBaseruneattributeTemplate(id + 1); // if (bt2.getNumshow() == 0) // { // //CreateTitle(mAttriList[1], GameUtils.getString(bt2.getAttriDes())); // CreateDetailTxts(mDetailTransPos[1], GameUtils.getString(bt2.getAttriDes())); // } // else // { // CreateBaseAttriObj(mDetailTransPos[1], GameUtils.getString(bt2.getAttriDes()), "+" + bt2.getAttriValue().ToString()); // } // //CreateBaseAttriObj(mAttriList[1], GameUtils.GetAttriName(bt2.getAttriType()), "+" + bt2.getAttriValue().ToString()); // } //} ////附加属性; //bool titleDone2 = false; //int count = DataTemplate.GetInstance().GetRuneMaxRedefineTimes(itemT); //int m = 0; //bool curIsGray = false, nextIsGray = false; //foreach (int id in runeData.AppendAttribute) //{ // m++; // curIsGray = m * 3 > strengthLv; // nextIsGray = m * 3 > strengthLv + 1; // if (id == -1) // { // if (m <= count) // { // if (!titleDone2) // { // titleDone2 = true; // if (isFullLv) // { // CreateTitle(mDetailTransPos[2], GameUtils.getString("hero_rune_content9")); // } // else // { // CreateTitle(mDetailTransPos[0], GameUtils.getString("hero_rune_content9")); // CreateTitle(mDetailTransPos[1], GameUtils.getString("hero_rune_content9")); // } // } // //位置属性,未鉴定; // if (isFullLv) // { // CreateAddAttriObj(mDetailTransPos[2], GameUtils.getString("rune_content2"), "", GameUtils.getString("rune_content3"), curIsGray); // } // else // { // CreateAddAttriObj(mDetailTransPos[0], GameUtils.getString("rune_content2"), "", GameUtils.getString("rune_content3"), curIsGray); // CreateAddAttriObj(mDetailTransPos[1], GameUtils.getString("rune_content2"), "", GameUtils.getString("rune_content3"), nextIsGray); // } // } // continue; // } // if (!titleDone2) // { // titleDone2 = true; // if (isFullLv) // { // CreateTitle(mDetailTransPos[2], GameUtils.getString("hero_rune_content9")); // } // else // { // CreateTitle(mDetailTransPos[0], GameUtils.getString("hero_rune_content9")); // CreateTitle(mDetailTransPos[1], GameUtils.getString("hero_rune_content9")); // } // } // AddruneattributeTemplate bt = DataTemplate.GetInstance().GetAddruneattributeTemplate(id); // bool isPercent = bt.getIspercentage() > 0; // string val = isPercent ? ((float)bt.getAttriValue() / (float)10f + "%") : bt.getAttriValue().ToString(); // if (isFullLv) // { // CreateAddAttriObj(mDetailTransPos[2], GameUtils.getString(bt.getAttriDes1()), GameUtils.getString(bt.getAttriDes2()), bt.getSymbol() + val, curIsGray); // } // else // { // CreateAddAttriObj(mDetailTransPos[0], GameUtils.getString(bt.getAttriDes1()), GameUtils.getString(bt.getAttriDes2()), bt.getSymbol() + val, curIsGray); // CreateAddAttriObj(mDetailTransPos[1], GameUtils.getString(bt.getAttriDes1()), GameUtils.getString(bt.getAttriDes2()), bt.getSymbol() + val, nextIsGray); // } //} }