Beispiel #1
0
    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;
            }
        }
    }
Beispiel #2
0
        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);
        }
Beispiel #3
0
    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);
            }
        }
    }
Beispiel #4
0
    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;
            }
        }
    }
Beispiel #5
0
    //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);
        }
    }
Beispiel #6
0
        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);
        //    }
        //}
    }