Example #1
0
        public void onClickRuneCard(GameObject go)
        {
            if (m_SuccessTime > 0)
            {
                return;
            }
            uint           runeID          = Convert.ToUInt32(go.name);
            RuneConfigInfo sRuneConfigInfo = ConfigReader.GetRuneFromID(runeID);
            var            oneRuneInfo     = MarketRuneListModel.Instance.GetOneRuneInfo(runeID);

            if (null == m_RuneSlotInfo)
            {
                m_Slot_SpriteArray[GameDefine.GameConstDefine.RefreshRuneSlotIndex].gameObject.SetActive(true);
                m_Slot_SpriteArray[GameDefine.GameConstDefine.RefreshRuneSlotIndex].spriteName = sRuneConfigInfo.Icon;

                m_RuneSlotInfo = new SlotInfo();

                int num = oneRuneInfo.num - 1;
                if (num == 0)
                {
                    go.transform.parent = null;
                    m_BagGrid.RemoveChild(go.transform);
                    MonoBehaviour.DestroyImmediate(go);
                    nowAllRuneGO.Remove(runeID);
                }
                else
                {
                    UILabel levelLabel = go.transform.Find("NumLabel").GetComponent <UILabel>();

                    levelLabel.text = Convert.ToString(num);
                }

                m_WashBtn.isEnabled = true;
            }
            else
            {
                //如果替换不一致的符文,则把原来的换回去,新的减少1
                var runeOnSlotID = m_RuneSlotInfo.runeID;
                if (runeOnSlotID != runeID)
                {
                    RuneConfigInfo runeCfg = ConfigReader.GetRuneFromID(runeOnSlotID);
                    if (runeCfg.level == m_Curlevel || m_Curlevel == 0)
                    {
                        var slotRuneInfo = MarketRuneListModel.Instance.GetOneRuneInfo(runeOnSlotID);
                        LoadOneRune(runeOnSlotID, slotRuneInfo.num);
                        if (slotRuneInfo.num == 1)
                        {
                            m_BagGrid.Reposition();
                        }
                    }

                    int num = oneRuneInfo.num - 1;
                    if (num == 0)
                    {
                        go.transform.parent = null;
                        m_BagGrid.RemoveChild(go.transform);
                        MonoBehaviour.DestroyImmediate(go);
                        nowAllRuneGO.Remove(runeID);
                    }
                    else
                    {
                        UILabel levelLabel = go.transform.Find("NumLabel").GetComponent <UILabel>();

                        levelLabel.text = Convert.ToString(num);
                    }
                }
            }

            m_Slot_SpriteArray[GameDefine.GameConstDefine.RefreshRuneSlotIndex].spriteName = sRuneConfigInfo.Icon;
            m_RuneSlotInfo.runeInfo = go;
            m_RuneSlotInfo.sprite   = m_Slot_SpriteArray[GameDefine.GameConstDefine.RefreshRuneSlotIndex];
            m_RuneSlotInfo.runeID   = runeID;

            ClearFreshSlot();

            m_BagGrid.Reposition();

            m_BagScroll.ResetPosition();
        }
Example #2
0
    public RuneConfig(string xmlFilePath)
    {
        ResourceUnit xmlfileUnit = ResourcesManager.Instance.loadImmediate(xmlFilePath, ResourceType.ASSET);
        TextAsset    xmlfile     = xmlfileUnit.Asset as TextAsset;

        xmlDoc = new XmlDocument();
        xmlDoc.LoadXml(xmlfile.text);

        XmlNodeList infoNodeList = xmlDoc.SelectSingleNode("RuneCfg").ChildNodes;

        for (int i = 0; i < infoNodeList.Count; ++i)
        {
            if ((infoNodeList[i] as XmlElement).GetAttributeNode("un32ID") == null)
            {
                continue;
            }

            string typeName = (infoNodeList[i] as XmlElement).GetAttributeNode("un32ID").InnerText;

            RuneConfigInfo RuneSelectInfo = new RuneConfigInfo();
            RuneSelectInfo.runeid = Convert.ToUInt32(typeName);
            foreach (XmlElement xEle in infoNodeList[i].ChildNodes)
            {
                switch (xEle.Name)
                {
                case "RuneName":
                    RuneSelectInfo.RuneName = xEle.InnerText;
                    break;

                case "un8Level":
                    RuneSelectInfo.level = Convert.ToInt16(xEle.InnerText);
                    break;

                case "bIsCanRandomComposed":
                    RuneSelectInfo.bIsCanRandomComposed = Convert.ToInt32(xEle.InnerText);
                    break;

                case "Description":
                    RuneSelectInfo.oriDescription = xEle.InnerText;
                    RuneSelectInfo.Description    = xEle.InnerText;
                    break;

                case "Icon":
                    RuneSelectInfo.Icon = xEle.InnerText;
                    break;

                case "n32EffectVal":
                    RuneSelectInfo.effectVal = Convert.ToDouble(xEle.InnerText, CultureInfo.InvariantCulture.NumberFormat);
                    break;

                case "fEffectPer":
                    RuneSelectInfo.effectPer = Convert.ToDouble(xEle.InnerText, CultureInfo.InvariantCulture.NumberFormat);
                    break;

                case "un8EffectID":
                    RuneSelectInfo.effectID = Convert.ToUInt32(xEle.InnerText, CultureInfo.InvariantCulture.NumberFormat);
                    break;
                }
            }
            //进行描述 替换
            RuneSelectInfo.Description = (ModifyDes(RuneSelectInfo.effectVal, RuneSelectInfo.effectPer, RuneSelectInfo)).ToString();
            ConfigReader.runeXmlInfoDict[RuneSelectInfo.runeid] = RuneSelectInfo;
        }
    }
Example #3
0
        private void onClickRefreshCard(GameObject go)
        {
            if (m_SuccessTime > 0)
            {
                return;
            }

            if (m_RuneSlotInfo == null)
            {
                MsgInfoManager.Instance.ShowMsg(10037);
                return;
            }

            RuneConfigInfo sRuneConfigInfo = ConfigReader.GetRuneFromID(m_RuneSlotInfo.runeID);

            var nowLevel = sRuneConfigInfo.level;

            var refreshID = Convert.ToUInt32(go.name);
            var sInfo     = refreshCardListID2GoDict[refreshID];

            if (sInfo.cfg.effectvalue < nowLevel)
            {
                MsgInfoManager.Instance.ShowMsg(10038);
                return;
            }

            var nowInfo = GoodsModel.Instance.GetRuneBaptze((int)refreshID);
            int num     = nowInfo.mNum - 1;

            if (num == 0)
            {
                go.transform.parent = null;
                m_RefreshGrid.RemoveChild(go.transform);
                MonoBehaviour.DestroyImmediate(go);
                m_RefreshGrid.Reposition();
                m_RefreshScroll.ResetPosition();
                refreshCardListID2GoDict.Remove(refreshID);
            }
            else
            {
                var numLabel = go.transform.Find("NumLabel").GetComponent <UILabel>();
                numLabel.text = num.ToString();
            }

            if (m_RefreshCardSlotInfo == null)
            {
                m_RefreshCardSlotInfo = new SlotInfo();
            }
            else
            {
                //原来有洗练券,现在还原
                var oriInfo       = GoodsModel.Instance.GetRuneBaptze((int)m_RefreshCardSlotInfo.runeID);
                var freshCardInfo = refreshCardListID2GoDict[m_RefreshCardSlotInfo.runeID];
                if (refreshID != m_RefreshCardSlotInfo.runeID)
                {
                    if (oriInfo.mNum == 1)
                    {
                        //记载洗练券
                        LoadOneRefreshCard(m_RefreshCardSlotInfo.runeID, oriInfo.mNum);
                        m_RefreshGrid.Reposition();
                        m_RefreshScroll.ResetPosition();
                    }
                    else
                    {
                        var numLabel = freshCardInfo.go.transform.Find("NumLabel").GetComponent <UILabel>();
                        numLabel.text = oriInfo.mNum.ToString();
                    }
                }
            }

            m_Slot_SpriteArray[GameDefine.GameConstDefine.RefreshRuneCardIndex].gameObject.SetActive(true);
            m_Slot_SpriteArray[GameDefine.GameConstDefine.RefreshRuneCardIndex].spriteName = sInfo.cfg.icon;
            m_RefreshCardSlotInfo.runeInfo = go;
            m_RefreshCardSlotInfo.sprite   = m_Slot_SpriteArray[GameDefine.GameConstDefine.RefreshRuneCardIndex];
            m_RefreshCardSlotInfo.runeID   = refreshID;
        }
Example #4
0
        public void UpdateMail(MailData mdb)
        {
            if (GoldList.Count != 0)
            {
                foreach (var item in GoldList)
                {
                    UnityEngine.GameObject.DestroyImmediate(item);
                }
                curMailObj.mGrid.transform.parent.gameObject.SetActive(false);
                GoldList.Clear();
            }
            if ((curMailObj != null) && (mdb != null) && (curtMailId == mdb.MailId))
            {
                curMailObj.mMailSenderTxt.text     = mdb.mailSender;
                curMailObj.mMailTitleTxt.text      = mdb.mailTitle;
                curMailObj.mMailContentTxt.text    = mdb.mailContent;
                curMailObj.mMailCreateTimeTxt.text = mdb.mailCreateTime;
                mTemp.gameObject.SetActive(true);
                string[] giftArray = mdb.mailGift.Split('|');
                for (int i = 0; i < giftArray.Length; i++)
                {
                    if (giftArray[i].Length == 0)
                    {
                        continue;
                    }
                    curMailObj.mGrid.transform.parent.gameObject.SetActive(true);
                    ResourceItem objUnit = ResourcesManager.Instance.loadImmediate(GameConstDefine.LoadMailAttachGUI, ResourceType.PREFAB);
                    GameObject   obj     = GameObject.Instantiate(objUnit.Asset) as GameObject;
                    obj.transform.parent        = curMailObj.mGrid.transform;
                    obj.transform.localPosition = Vector3.zero;
                    obj.transform.localScale    = Vector3.one;
                    GoldList.Add(obj);
                    string[] giftStr = giftArray[i].Split(',');
                    if (giftStr.Length == 3)
                    {
                        Int32 goodsId = Convert.ToInt32(giftStr[1]);

                        MailGiftType giftType = (MailGiftType)Convert.ToInt32(giftStr[0]);
                        switch (giftType)
                        {
                        case MailGiftType.eMerchType_Gold:
                        {
                            obj.GetComponent <UISprite>().spriteName = "9";
                            obj.transform.Find("Label").GetComponent <UILabel>().text = giftStr[2];
                        } break;

                        case MailGiftType.eMerchType_Diamond:
                        {
                            obj.GetComponent <UISprite>().spriteName = "10";
                            obj.transform.Find("Label").GetComponent <UILabel>().text = giftStr[2];
                        } break;

                        //HeroBuyCfg:100001-109999
                        //  SkinCfg:110001-119999
                        //   RuneCfg:120001-129999
                        default:
                        {
                            if (goodsId >= 100001 && goodsId <= 109999)
                            {
                                HeroBuyConfigInfo buyInfo = ConfigReader.GetHeroBuyInfo(goodsId);
                                if (buyInfo != null)
                                {
                                    ResourceItem GetMoneyUnit = ResourcesManager.Instance.loadImmediate(GameConstDefine.LoadDailyHeroIcon, ResourceType.PREFAB);
                                    UIAtlas      uia_hero     = (GetMoneyUnit.Asset as GameObject).GetComponent <UIAtlas>();

                                    obj.GetComponent <UISprite>().atlas      = uia_hero;
                                    obj.GetComponent <UISprite>().spriteName = buyInfo.DefaultIcon.ToString();
                                    obj.transform.Find("Label").GetComponent <UILabel>().text = giftStr[2];
                                }
                            }
                            else if (goodsId >= 120001 && goodsId <= 129999)
                            {
                                RuneConfigInfo runeInfo = ConfigReader.GetRuneFromID((uint)goodsId);
                                if (runeInfo != null)
                                {
                                    obj.GetComponent <UISprite>().spriteName = runeInfo.Icon.ToString();
                                    obj.transform.Find("Label").GetComponent <UILabel>().text = giftStr[2];
                                }
                            }
                            else if (goodsId >= 110001 && goodsId <= 119999)
                            {
                                HeroSkinConfigInfo skinInfo = ConfigReader.GetHeroSkinInfo(goodsId);
                                if (skinInfo != null)
                                {
                                    obj.GetComponent <UISprite>().spriteName = skinInfo.Icon.ToString();
                                    obj.transform.Find("Label").GetComponent <UILabel>().text = giftStr[2];
                                }
                            }
                            else if (goodsId >= 130001 && goodsId <= 139999)
                            {
                                OtherItemConfigInfo otherInfo = ConfigReader.GetOtherItemInfo((uint)goodsId);
                                if (otherInfo != null)
                                {
                                    obj.GetComponent <UISprite>().spriteName = otherInfo.icon;
                                    obj.transform.Find("Label").GetComponent <UILabel>().text = giftStr[2];
                                }
                            }
                        } break;
                        }
                    }
                    else
                    {
                        Debug.LogError("the error mail gift str:" + giftArray[i]);
                    }
                }
            }
            UpdateLeftMailTitleList();
            curMailObj.mGrid.repositionNow = true;
            curMailObj.mGrid.Reposition();
        }
        void ShowVipPre()
        {
            int vipLevel = PresonInfoCtrl.Instance.mVipLevel;

            foreach (var item in ConfigReader.ViplevelXmlInfoDict.Values)
            {
                string            temp       = null;
                string[]          value      = null;
                MsgConfigInfo     info       = null;
                HeroBuyConfigInfo heroinfo   = null;
                RuneConfigInfo    runeinfo   = null;
                int          runeLevel       = 0;
                int          j               = 0;
                ResourceUnit objHomeBaseUnit = ResourcesManager.Instance.loadImmediate(GameConstDefine.LoadVIPInfoUI, ResourceType.PREFAB);
                GameObject   obj             = GameObject.Instantiate(objHomeBaseUnit.Asset) as GameObject;
                obj.transform.parent        = mGrid.transform;
                obj.transform.localPosition = Vector3.zero;
                obj.transform.localScale    = Vector3.one;
                obj.name = (j++).ToString();
                value    = item.VipHero.Split(':');

                UILabel uil      = obj.transform.FindChild("InfoLabel").GetComponent <UILabel>();
                UILabel viplevel = obj.transform.FindChild("NameLabel").GetComponent <UILabel>();
                viplevel.text = "VIP " + item.VipUserLevel.ToString();
                info          = ConfigReader.msgXmlInfoDic[20001];
                for (int i = 0; i < value.Length; i++)
                {
                    if (i % 2 == 0)
                    {
                        //英雄ID  20001
                        int index = Convert.ToInt32(value[i]);
                        if (index == 0)
                        {
                            break;
                        }
                        heroinfo = ConfigReader.GetHeroBuyInfo(Convert.ToInt32(value[i]));
                        if (heroinfo == null)
                        {
                            Debug.LogError("herocfg not find id");
                            return;
                        }
                    }
                    else
                    {
                        //英雄时限
                    }
                }//temp 暂时当Label用
                if (heroinfo != null)
                {
                    temp = string.Format(info.content, heroinfo.Name);
                }
                value = item.VipRune.Split(':');
                info  = ConfigReader.msgXmlInfoDic[20002];
                for (int i = 0; i < value.Length; i++)
                {
                    if (i % 2 == 0)
                    {
                        //符文ID
                        int index = Convert.ToInt32(value[i]);
                        if (index == 0)
                        {
                            break;
                        }
                        runeinfo = ConfigReader.GetRuneFromID((uint)index);
                        if (runeinfo == null)
                        {
                            Debug.LogError("runecfg not find id");
                            return;
                        }
                    }
                    else
                    {
                        //符文等级
                        runeLevel = Convert.ToInt32(value[i]);
                    }
                }
                if (runeLevel != 0)
                {
                    temp += (string.Format(info.content, runeinfo.RuneName, runeLevel));
                }

                temp = GetTemp(temp, item.VipPrivilege1, 21001);
                temp = GetTemp(temp, item.VipPrivilege2, 21002);
                temp = GetTemp(temp, item.VipPrivilege3, 21003);
                temp = GetFloatTemp(temp, item.VipPrivilege4, 21004);

                temp = GetTemp(temp, item.VipPrivilege5, 21005);
                temp = GetFloatTemp(temp, item.VipPrivilege6, 21006);
                temp = GetFloatTemp(temp, item.VipPrivilege7, 21007);
                temp = GetTemp(temp, item.VipPrivilege8, 21008);

                temp     = GetTemp(temp, item.VipPrivilege9, 21009);
                temp     = GetTemp(temp, item.VipPrivilege10, 21010);
                uil.text = temp;
            }
        }
Example #6
0
        //窗口控件初始化
        protected override void InitWidget()
        {
            mBtnClose = mRoot.Find("CloseBtn").GetComponent <UIButton>();

            RuneConfigInfo sRuneConfigInfo = ConfigReader.GetRuneFromID((UInt32)m_MarketGoodsInfo.mGoodsId);

            if (null == sRuneConfigInfo)
            {
                Debug.LogError("null cfg with runeid " + m_MarketGoodsInfo.mGoodsId);
                return;
            }

            UISprite icon = mRoot.Find("Icon").GetComponent <UISprite>();

            icon.spriteName = sRuneConfigInfo.Icon;

            //如果只有一个金钱需要居中
            bool ifNeedCentral = m_MarketGoodsInfo.RLGoldPrice < 0 || m_MarketGoodsInfo.RLDiamondPrice < 0;

            if (ifNeedCentral)
            {
                m_SingleBuyBtn = mRoot.Find("BuyBtn/Single").GetComponent <UIButton>();
                if (m_MarketGoodsInfo.RLGoldPrice >= 0)
                {
                    UILabel label = m_SingleBuyBtn.gameObject.transform.Find("Gold/label").GetComponent <UILabel>();
                    label.text = Convert.ToString(m_MarketGoodsInfo.RLGoldPrice);
                    UIEventListener.Get(m_SingleBuyBtn.gameObject).onClick += OnBuyByGold;
                }
                else
                {
                    UILabel label = m_SingleBuyBtn.gameObject.transform.Find("Crystal/label").GetComponent <UILabel>();
                    label.text = Convert.ToString(m_MarketGoodsInfo.RLGoldPrice);
                    UIEventListener.Get(m_SingleBuyBtn.gameObject).onClick += OnBuyByDiamond;
                }

                m_SingleBuyBtn.gameObject.name = Convert.ToString(m_MarketGoodsInfo.mGoodsId);
            }
            else
            {
                GameObject bothGo = mRoot.Find("BuyBtn/Both").gameObject;
                bothGo.SetActive(true);

                GameObject singleGo = mRoot.Find("BuyBtn/Single").gameObject;
                singleGo.SetActive(false);

                mBtnGold = mRoot.Find("BuyBtn/Both/Gold").GetComponent <UIButton>();
                mBtnGold.gameObject.SetActive(true);

                UILabel label = mBtnGold.gameObject.transform.Find("label").GetComponent <UILabel>();
                label.text = Convert.ToString(m_MarketGoodsInfo.RLGoldPrice);

                mBtnGold.gameObject.name = Convert.ToString(m_MarketGoodsInfo.mGoodsId);

                mBtnDiamond = mRoot.Find("BuyBtn/BuyBtn/Crystal").GetComponent <UIButton>();
                mBtnDiamond.gameObject.SetActive(true);
                UILabel diamondLabel = mBtnDiamond.gameObject.transform.Find("label").GetComponent <UILabel>();
                diamondLabel.text = Convert.ToString(m_MarketGoodsInfo.RLDiamondPrice);

                mBtnDiamond.gameObject.name = Convert.ToString(m_MarketGoodsInfo.mGoodsId);

                UIEventListener.Get(mBtnGold.gameObject).onClick    += OnBuyByGold;
                UIEventListener.Get(mBtnDiamond.gameObject).onClick += OnBuyByDiamond;
            }

            m_NameLabel      = mRoot.Find("Name").GetComponent <UILabel>();
            m_NameLabel.text = sRuneConfigInfo.RuneName;

            m_DesptionLabel      = mRoot.Find("RuneStatus").GetComponent <UILabel>();
            m_DesptionLabel.text = "属性:" + sRuneConfigInfo.Description;

            mRoot.gameObject.SetActive(true);

            InitWindowEvent();
        }
        public override void Update(float deltaTime)
        {
            switch (m_RuneComposeState)
            {
            case RuneComposeState.step0:
            {
                var curTime = Time.time;
                if (curTime - m_ComposeTime >= ComposeStateWaitTime[(int)m_RuneComposeState])
                {
                    m_RuneComposeState = RuneComposeState.step1;
                    foreach (var kv in slot2RuneGoDict)
                    {
                        kv.Value.sprite.spriteName = "";
                        AudioManager.Instance.PlatUnloadRuneAudio();
                    }

                    slot2RuneGoDict.Clear();
                    runeOnTempSlotDic.Clear();
                }
            }
            break;

            case RuneComposeState.step1:
            {
                var curTime = Time.time;

                if (curTime - m_ComposeTime >= ComposeStateWaitTime[(int)m_RuneComposeState])
                {
                    LoadUiResource.ClearOneChild(m_CombineSuccessFlash1GO.transform, effectName1);

                    m_RuneComposeState = RuneComposeState.step2;
                    var cfg = ConfigReader.GetRuneFromID(m_CombinedID);

                    m_Slot_SpriteArray[GameDefine.GameConstDefine.MaxCombineSlotNum - 1].gameObject.SetActive(true);
                    m_Slot_SpriteArray[GameDefine.GameConstDefine.MaxCombineSlotNum - 1].spriteName = cfg.Icon;

                    m_ComposeTime = curTime;

                    var go = LoadUiResource.AddChildObject(m_CombineSuccessFlash1GO.transform, GameConstDefine.RuneDisappearFlash);
                    go.name = effectName2;
                }
            }

            break;

            case RuneComposeState.step2:
            {
                var curTime = Time.time;
                if (curTime - m_ComposeTime >= ComposeStateWaitTime[(int)m_RuneComposeState])
                {
                    LoadUiResource.ClearOneChild(m_CombineSuccessFlash1GO.transform, effectName2);
                    m_RuneComposeState = RuneComposeState.step3;

                    m_Slot_SpriteArray[GameDefine.GameConstDefine.MaxCombineSlotNum - 1].spriteName = "";

                    m_ComposeTime = curTime;

                    RuneConfigInfo sRuneConfigInfo = ConfigReader.GetRuneFromID(m_CombinedID);

                    var cfg = ConfigReader.GetRuneFromID(m_CombinedID);

                    if (IfCanShow(sRuneConfigInfo.level))
                    {
                        var oneRuneInfo = MarketRuneListModel.Instance.GetOneRuneInfo(m_CombinedID);
                        LoadOneRune(m_CombinedID, oneRuneInfo.num);
                        mGrid.Reposition();
                        mScroll.ResetPosition();
                    }

                    EventCenter.Broadcast(EGameEvent.eGameEvent_PurchaseSuccessWindowEnter);
                    EventCenter.Broadcast <EPurchaseType, string, string, int>(EGameEvent.eGameEvent_PurchaseRuneSuccessWin, EPurchaseType.EPT_Rune, cfg.RuneName, cfg.Icon, 1);

                    m_RuneComposeState = RuneComposeState.stepNone;
                }
            }

            break;
            }
        }