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);
        }
Example #2
0
    //获得当前等级的奖励
    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);
    }
Example #3
0
        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);
        }
Example #4
0
 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);
        }
Example #7
0
    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);
    }
Example #8
0
    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");
    }
Example #9
0
    //设置玩家自己的基本信息
    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();
        }
    }
Example #10
0
 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();
         }
     }
 }