public MailInfo GetMail(ModuleMailInfo moduleMailInfo, UserInfo user, bool onlyAttachment) { DateTime day = moduleMailInfo.m_SendTime; ArenaPrizeConfig prize = GetDayPrize(user.Guid, day); if (prize == null) { //LogSys.Log(LOG_TYPE.DEBUG, "not find player {0} date {1} prize!", user.Guid, day); return(null); } MailInfo mail = moduleMailInfo.NewDerivedMailInfo(); if (!onlyAttachment) { mail.m_Title = "$1111$"; mail.m_Text = "$1112$"; mail.m_Sender = "$1113$"; } mail.m_Gold = prize.Gold; mail.m_Money = prize.Money; foreach (PrizeItemConfig item_config in prize.Items) { MailItem mail_item = new MailItem(); mail_item.m_ItemId = item_config.ItemId; mail_item.m_ItemNum = item_config.ItemNum; mail.m_Items.Add(mail_item); } //LogSys.Log(LOG_TYPE.DEBUG, "player {0} got arena day {1} prize {2} isOnlyAttachment {3}", user.Guid, day, prize.Gold, onlyAttachment); return(mail); }
//获得当前等级的奖励 private ArenaPrizeConfig GetPrizeCfg(int ranking) { MyDictionary <int, object> prizeCfgDict = ArenaConfigProvider.Instance.PrizeConfig.GetData(); List <int> prizeIdList = new List <int>(); foreach (int prizeId in prizeCfgDict.Keys) { prizeIdList.Add(prizeId); } prizeIdList.Sort(); int cfgId = -1; for (int index = 0; index < prizeIdList.Count; ++index) { if (index == prizeIdList.Count - 1 && ranking >= prizeIdList[index]) { cfgId = prizeIdList[index]; break; } else { if (ranking >= prizeIdList[index] && ranking < prizeIdList[index + 1]) { cfgId = prizeIdList[index]; break; } } } ArenaPrizeConfig prizeCfg = ArenaConfigProvider.Instance.PrizeConfig.GetDataById(cfgId); return(prizeCfg); }
private void InitPrizeManager() { List <ArenaPrizeConfig> rules = new List <ArenaPrizeConfig>(); foreach (var pair in ArenaConfigProvider.Instance.PrizeConfig.GetData()) { ArenaPrizeConfig rule = (ArenaPrizeConfig)pair.Value; rules.Add(rule); } m_PrizeManager = new PrizeManager(m_ArenaRank, rules, m_BaseConfig.PrizePresentTime, m_MailSystem); }
private int SortConfigList(ArenaPrizeConfig a, ArenaPrizeConfig b) { if (a.FitBegin < b.FitBegin) { return(-1); } else if (a.FitBegin == b.FitBegin) { return(0); } else { return(1); } }
public bool HaveMail(ModuleMailInfo moduleMailInfo, UserInfo user) { DateTime day = moduleMailInfo.m_SendTime; ArenaInfo arena_info = m_Rank.GetRankEntityById(user.Guid); if (arena_info == null) { return(false); } int day_rank = arena_info.GetDaysRank(day); ArenaPrizeConfig prize = GetFitPrize(day_rank); if (prize == null) { return(false); } return(true); }
public ArkCrossEngine.ArenaPrizeConfig GetDayPrize(ulong guid, DateTime date) { ArenaPrizeConfig result = null; if (date > m_NextPrizeDate) { return(null); } ArenaInfo arena_info = m_Rank.GetRankEntityById(guid); if (arena_info == null) { return(null); } int day_rank = arena_info.GetDaysRank(date); result = GetFitPrize(day_rank); return(result); }
private ArenaPrizeConfig GetAwardConfig(int rank) { ArenaPrizeConfig config = null; MyDictionary <int, object> dic = ArenaConfigProvider.Instance.PrizeConfig.GetData(); m_configList.Clear(); foreach (object o in dic.Values) { ArenaPrizeConfig apc = (ArenaPrizeConfig)o; m_configList.Add(apc); } m_configList.Sort(SortConfigList); for (int i = 0; i < m_configList.Count; i++) { if (rank < m_configList[i].FitBegin) { break; } config = m_configList[i]; } return(config); }
public void ShowIntro() { RoleInfo role = LobbyClient.Instance.CurrentRole; if (role == null) { return; } if (hasStart == false) { Start(); } nameIndex = 900; int myRank = role.ArenaStateInfo.Rank; m_awardConfig = GetAwardConfig(myRank); UpdateLabel(myRank); UpdatePosition(myRank); UpdateCurrentAward(myRank); UpdateAwardRule(myRank); UIManager.Instance.ShowWindowByName("PPVPRuleIntro"); }
//设置玩家自己的基本信息 private void SetSelfBaseInfo() { RoleInfo role_info = LobbyClient.Instance.CurrentRole; if (role_info != null && role_info.ArenaStateInfo != null) { if (lblMyRanking != null) { string desc = role_info.ArenaStateInfo.Rank.ToString(); if (role_info.ArenaStateInfo.Rank == -1) { //-1表示未排名 desc = StrDictionaryProvider.Instance.GetDictString(1105); } lblMyRanking.text = desc; } ArenaPrizeConfig prizeCfg = GetPrizeCfg(role_info.ArenaStateInfo.Rank); if (prizeCfg != null) { if (lblRankingAwardDiamond != null) { lblRankingAwardDiamond.text = prizeCfg.Gold.ToString(); } if (lblRankingAwardMoney != null) { lblRankingAwardMoney.text = prizeCfg.Money.ToString(); } SetAwardItem(prizeCfg.Items); } else { if (lblRankingAwardDiamond != null) { lblRankingAwardDiamond.text = "0"; } if (lblRankingAwardMoney != null) { lblRankingAwardMoney.text = "0"; } if (goAwardItem != null) { NGUITools.SetActive(goAwardItem, false); } } } ArenaBaseConfig arenaBaseCfg = ArenaConfigProvider.Instance.GetBaseConfigById(1); if (arenaBaseCfg != null) { string chn_des = StrDictionaryProvider.Instance.GetDictString(1106); string desc = string.Format(chn_des, arenaBaseCfg.PrizePresentTime.Hour, arenaBaseCfg.PrizePresentTime.Minutes); if (lblAwardTime != null) { lblAwardTime.text = desc; } } if (uiPartnerPvpRightInfo != null) { uiPartnerPvpRightInfo.RefreshArenaBaseInfo(arenaBaseCfg); uiPartnerPvpRightInfo.RefreshPlayedPartner(); } }
private void UpdateAwardItem(UnityEngine.GameObject item, ArenaPrizeConfig config, bool showDot = false) { if (item == null) { return; } UnityEngine.Transform tf = null; //显示省略号 if (showDot == true) { tf = item.transform.Find("Diamond"); if (tf != null) { NGUITools.SetActive(tf.gameObject, !showDot); } tf = item.transform.Find("money"); if (tf != null) { NGUITools.SetActive(tf.gameObject, !showDot); } tf = item.transform.Find("Label"); if (tf != null) { UILabel lblDot = tf.GetComponent <UILabel>(); lblDot.text = "... ..."; } return; } //正常显示 tf = item.transform.Find("Label"); if (tf != null) { UILabel lblRank = tf.GetComponent <UILabel>(); if (lblRank != null) { if (config.FitEnd - config.FitBegin == 1) { lblRank.text = StrDictionaryProvider.Instance.Format(1103, config.FitBegin);//第{0}名 } else { lblRank.text = StrDictionaryProvider.Instance.Format(1104, config.FitBegin, config.FitEnd - 1);//第{0}至{1}名 } } } tf = item.transform.Find("Diamond/Label"); if (tf != null) { UILabel lblDiamond = tf.GetComponent <UILabel>(); if (lblDiamond != null) { lblDiamond.text = config.Gold.ToString(); } } tf = item.transform.Find("money/Label"); if (tf != null) { UILabel lblGold = tf.GetComponent <UILabel>(); if (lblGold != null) { lblGold.text = config.Money.ToString(); } } }