//领取奖励 private void OnDaliyGameObjsClick(GameObject obj) { Debug.Log("DaliyGameObjs" + obj.name + "clicked"); DailyBonusCtrl.Instance.AskGetAwards(); DailyBonusConfigInfo bonus = ConfigReader.GetDailyBonusInfo(DailyBonusCtrl.Instance.mHadDay + 1);// 设置奖励坑位(1.金币 2.钱 3.物品) if (bonus == null) { return; // 没有奖励不显示 } EventCenter.Broadcast(EGameEvent.eGameEvent_PurchaseSuccessWindowEnter); int pos = -1; foreach (string itemStr in bonus.n32ItemID) { ++pos; int count = Convert.ToInt32(bonus.n32ItemNum[pos]); UInt32 itemID = Convert.ToUInt32(itemStr);//根据id获取图片id,显示图片和数量和名称 if (itemID == 1) { EventCenter.Broadcast <EPurchaseType, string, string, int>(EGameEvent.eGameEvent_PurchaseRuneSuccessWin, EPurchaseType.EPT_Gold, "金币", "", count); } else if (itemID == 2) { EventCenter.Broadcast <EPurchaseType, string, string, int>(EGameEvent.eGameEvent_PurchaseRuneSuccessWin, EPurchaseType.EPT_Crystal, "钻石", "", count); } else if (itemID > 100000 && itemID < 110000) { EventCenter.Broadcast <EPurchaseType, string, string, int>(EGameEvent.eGameEvent_PurchaseRuneSuccessWin, EPurchaseType.EPT_Hero, ConfigReader.HeroBuyXmlInfoDict[(int)itemID].Name, ConfigReader.HeroBuyXmlInfoDict[(int)itemID].DefaultIcon, count); } else if (itemID > 110000 && itemID < 120000) { } else if (itemID > 120000 && itemID < 130000) { EventCenter.Broadcast <EPurchaseType, string, string, int>(EGameEvent.eGameEvent_PurchaseRuneSuccessWin, EPurchaseType.EPT_Rune, "符文AA", "", count); } else if (itemID > 130000 && itemID < 140000) { EventCenter.Broadcast <EPurchaseType, string, string, int>(EGameEvent.eGameEvent_PurchaseRuneSuccessWin, EPurchaseType.EPT_TrialCard, ConfigReader.OtherItemXmlInfoDic[itemID].sName, "", count); } } }
public ReadDailyBonusConfig(string xmlFilePath) { ResourceItem xmlfileUnit = ResourcesManager.Instance.loadImmediate(xmlFilePath, ResourceType.ASSET); TextAsset xmlfile = xmlfileUnit.Asset as TextAsset; if (!xmlfile) { Debug.LogError(" error infos: 没有找到指定的xml文件:" + xmlFilePath); } xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlfile.text); XmlNodeList infoNodeList = xmlDoc.SelectSingleNode("DailyBonus ").ChildNodes; for (int i = 0; i < infoNodeList.Count; i++) { XmlAttribute xmlAttr = (infoNodeList[i] as XmlElement).GetAttributeNode("n32Days"); if (xmlAttr == null) { continue; } DailyBonusConfigInfo dailBonusInfo = new DailyBonusConfigInfo(); foreach (XmlElement xEle in infoNodeList[i].ChildNodes) { switch (xEle.Name) { case "n32Type": dailBonusInfo.n32Type = xEle.InnerText.Split(new char[] { ',' }); break; case "n32ItemID": dailBonusInfo.n32ItemID = xEle.InnerText.Split(new char[] { ',' }); break; case "n32ItemNum": dailBonusInfo.n32ItemNum = xEle.InnerText.Split(new char[] { ',' }); break; } } ConfigReader.dailyBonusXmlInfoDic.Add(Convert.ToUInt32(xmlAttr.InnerText), dailBonusInfo); } }
private void OnEvent_DailyBonusUpdate() { ResourceUnit GetMoneyUnit = ResourcesManager.Instance.loadImmediate(GameConstDefine.LoadDailyHeroIcon, ResourceType.PREFAB); UIAtlas uia_hero = (GetMoneyUnit.Asset as GameObject).GetComponent <UIAtlas>(); mMonthInWindow = DailyBonusCtrl.Instance.mMonth; mHadDayInWindow = DailyBonusCtrl.Instance.mHadDay; mTodayCanInWindow = DailyBonusCtrl.Instance.mTodayCan; if (LinkGameObjs != null) { UIEventListener.Get(LinkGameObjs).onClick -= OnDaliyGameObjsClick; LinkGameObjs = null; } LoadUiResource.ClearAllChild(mGrid.transform); DaliyGameObjs.Clear(); for (uint i = 0; i < DailyBonusCtrl.Instance.mMaxDay; ++i) { DailyBonusConfigInfo bonus = ConfigReader.GetDailyBonusInfo(i + 1);// 设置奖励坑位(1.金币 2.钱 3.物品) if (bonus == null) { continue; // 没有奖励不显示 } GameObject addobj = LoadUiResource.AddChildObject(mGrid.transform, GameConstDefine.LoadDailyPrizeUI); addobj.transform.parent = mGrid.transform; addobj.transform.localScale = Vector3.one; addobj.name = (DaliyGameObjs.Count + 1).ToString(); addobj.transform.FindChild("BG/Label").GetComponent <UILabel>().text = "累计签到" + (i + 1).ToString() + "天"; DaliyGameObjs.Add(addobj); string hookname = "Interface/SignInterface/Calendar/Date" + (i + 1).ToString() + "/Hook"; ////////////////////////////////////////////////////////////////////////// if (i < DailyBonusCtrl.Instance.mHadDay) {//已领取 mRoot.FindChild(hookname).GetComponent <UISprite>().gameObject.SetActive(true); addobj.transform.FindChild("Done").GetComponent <UISprite>().gameObject.SetActive(true); addobj.transform.FindChild("NotDone").GetComponent <UISprite>().gameObject.SetActive(false); addobj.transform.FindChild("UnDone").GetComponent <UISprite>().gameObject.SetActive(false); } else if (i == DailyBonusCtrl.Instance.mHadDay) { if (DailyBonusCtrl.Instance.mTodayCan) {//可领取 mRoot.FindChild(hookname).GetComponent <UISprite>().gameObject.SetActive(false); addobj.transform.FindChild("Done").GetComponent <UISprite>().gameObject.SetActive(false); addobj.transform.FindChild("NotDone").GetComponent <UISprite>().gameObject.SetActive(true); addobj.transform.FindChild("UnDone").GetComponent <UISprite>().gameObject.SetActive(false); //LinkGameObjs = addobj.transform.FindChild("NotDone").gameObject; LinkGameObjs = addobj; UIEventListener.Get(LinkGameObjs).onClick += OnDaliyGameObjsClick; } else {//无法领取 mRoot.FindChild(hookname).GetComponent <UISprite>().gameObject.SetActive(false); addobj.transform.FindChild("Done").GetComponent <UISprite>().gameObject.SetActive(false); addobj.transform.FindChild("NotDone").GetComponent <UISprite>().gameObject.SetActive(false); addobj.transform.FindChild("UnDone").GetComponent <UISprite>().gameObject.SetActive(true); } } else {//无法领取 mRoot.FindChild(hookname).GetComponent <UISprite>().gameObject.SetActive(false); addobj.transform.FindChild("Done").GetComponent <UISprite>().gameObject.SetActive(false); addobj.transform.FindChild("NotDone").GetComponent <UISprite>().gameObject.SetActive(false); addobj.transform.FindChild("UnDone").GetComponent <UISprite>().gameObject.SetActive(true); } ////////////////////////////////////////////////////////////////////////// int pos = -1; foreach (string itemStr in bonus.n32ItemID) { ++pos; UIGrid tmpGrid = addobj.transform.FindChild("Grid").GetComponent <UIGrid>(); GameObject oneBouns = LoadUiResource.AddChildObject(tmpGrid.transform, GameConstDefine.LoadDailyOneBonusUI); oneBouns.transform.FindChild("Num").GetComponent <UILabel>().text = "x" + bonus.n32ItemNum[pos]; // 数量 bool isHadExtend = bonus.n32Type[pos] == "2"; //是否有额外奖励 if (isHadExtend) { string starname = "Interface/SignInterface/Calendar/Date" + (i + 1).ToString() + "/Star"; mRoot.FindChild(starname).gameObject.SetActive(true); oneBouns.transform.FindChild("Tip").gameObject.SetActive(true); } UInt32 itemID = Convert.ToUInt32(itemStr);//根据id获取图片id,显示图片和数量和名称 if (itemID == 1) { oneBouns.transform.GetComponent <UISprite>().spriteName = (9).ToString(); oneBouns.transform.FindChild("Name").GetComponent <UILabel>().text = "金币"; } else if (itemID == 2) { oneBouns.transform.GetComponent <UISprite>().spriteName = (10).ToString(); oneBouns.transform.FindChild("Name").GetComponent <UILabel>().text = "钻石"; } else if (itemID > 100000 && itemID < 110000) { oneBouns.transform.GetComponent <UISprite>().atlas = uia_hero; oneBouns.transform.FindChild("Name").GetComponent <UILabel>().text = ConfigReader.HeroBuyXmlInfoDict[(int)itemID].Name; oneBouns.transform.GetComponent <UISprite>().spriteName = ConfigReader.HeroBuyXmlInfoDict[(int)itemID].DefaultIcon; } else if (itemID > 110000 && itemID < 120000) { oneBouns.transform.FindChild("Name").GetComponent <UILabel>().text = "皮肤"; oneBouns.transform.GetComponent <UISprite>().spriteName = ConfigReader.HeroSkinXmlInfoDict[(int)itemID].Icon; } else if (itemID > 120000 && itemID < 130000) { oneBouns.transform.FindChild("Name").GetComponent <UILabel>().text = "符文"; oneBouns.transform.GetComponent <UISprite>().spriteName = ConfigReader.RuneXmlInfoDict[itemID].Icon; } else if (itemID > 130000 && itemID < 140000) { oneBouns.transform.FindChild("Name").GetComponent <UILabel>().text = ConfigReader.OtherItemXmlInfoDic[itemID].sName; oneBouns.transform.GetComponent <UISprite>().spriteName = ConfigReader.OtherItemXmlInfoDic[itemID].icon; } else { oneBouns.transform.FindChild("Name").GetComponent <UILabel>().text = "????"; oneBouns.transform.GetComponent <UISprite>().spriteName = (115).ToString(); Debug.LogError("unknow itemid in daliybouns " + itemStr); } } } for (uint i = DailyBonusCtrl.Instance.mMaxDay; i < 31; ++i) { string lightname = "Interface/SignInterface/Calendar/Date" + (i + 1).ToString() + "/Light"; mRoot.FindChild(lightname).gameObject.SetActive(false); } mGrid.Reposition(); }