public void Init(PReward reward, Module_Global.TargetMatrial target)
    {
        InitComponent();
        var prop = ConfigManager.Get <PropItemInfo>(target.itemId);

        if (null == prop)
        {
            return;
        }
        var getCount = 0;

        Util.SetItemInfo(IconRoot, prop);
        if (prop.itemType == PropType.Currency && prop.subType == (int)CurrencySubType.Gold)
        {
            getCount = reward.coin;
        }
        else if (prop.itemType == PropType.Currency && prop.subType == (int)CurrencySubType.Diamond)
        {
            getCount = reward.diamond;
        }
        else
        {
            var p = Array.Find(reward.rewardList, item => item.itemTypeId == target.itemId);
            getCount = (int)(p?.num ?? 0);
        }

        Util.SetText(GetCount, getCount.ToString());
        Util.SetText(OwnCount, $"{target.OwnCount}/{target.targetCount}");
        target.isFinish = target.OwnCount >= target.targetCount;
        OwnCount.color  = ColorGroup.GetColor(ColorManagerType.IsMatrialEnough, target.isFinish);
    }
Пример #2
0
    public void RefreshReward(PReward settleReward)
    {
        if (settleReward == null)
        {
            return;
        }

        List <PItem2> rewards = new List <PItem2>();

        if (settleReward.coin > 0)
        {
            rewards.Add(GetMoneyPitem(settleReward.coin, CurrencySubType.Gold));
        }
        if (settleReward.diamond > 0)
        {
            rewards.Add(GetMoneyPitem(settleReward.diamond, CurrencySubType.Diamond));
        }
        if (settleReward.rewardList != null)
        {
            for (int i = 0; i < settleReward.rewardList.Length; i++)
            {
                rewards.Add(settleReward.rewardList[i]);
            }
        }
        RefreshReward(rewards);
    }
Пример #3
0
    public static int GetItemCount(this PReward reward, int targetItemId)
    {
        var count = 0;
        var prop  = ConfigManager.Get <PropItemInfo>(targetItemId);

        if (null == prop)
        {
            return(count);
        }
        if (prop.itemType == PropType.Currency)
        {
            if (prop.subType == (int)CurrencySubType.Gold)
            {
                count += reward.coin;
            }
            else if (prop.subType == (int)CurrencySubType.Diamond)
            {
                count += reward.diamond;
            }
        }

        if (reward.rewardList == null)
        {
            return(count);
        }

        for (var i = 0; i < reward.rewardList.Length; i++)
        {
            if (reward.rewardList[i].itemTypeId == targetItemId)
            {
                count += (int)reward.rewardList[i].num;
            }
        }
        return(count);
    }
Пример #4
0
    private void RefreshRewardList(PReward reward, bool isWin)
    {
        if (reward == null)
        {
            return;
        }
        if (moduleGlobal.targetMatrial.isProcess)
        {
            target.Init(reward, moduleGlobal.targetMatrial);
        }

        List <PItem2> rewards = new List <PItem2>();

        if (reward.diamond > 0)
        {
            PItem2 item = PacketObject.Create <PItem2>();
            item.itemTypeId = (ushort)CurrencySubType.Diamond;
            item.num        = (uint)reward.diamond;
            rewards.Add(item);
        }

        if (reward.rewardList != null && reward.rewardList.Length > 0)
        {
            rewards.AddRange(reward.rewardList);
        }

        if (isWin)
        {
            winReward.SetItems(rewards);
        }
        else
        {
            loseReward.SetItems(rewards);
        }
    }
Пример #5
0
    public void SetAward(PReward Info, List <GameObject> list, bool pos = true)
    {
        if (Info == null)
        {
            return;
        }

        SetDetailInfo(Info.expr, Info.activePoint, Info.fatigue, Info.coin, Info.diamond, list, pos, Info.rewardList);
    }
Пример #6
0
    protected override void OnGameDataReset()
    {
        m_reward         = null;
        m_settlementData = null;
        isMatchAgain     = false;
        isInvation       = false;
        opType           = OpenWhichPvP.None;

        ObjectManager.enableUpdate = true;
    }
Пример #7
0
 private void GetAwardShow(PReward Info, bool isachieve = false)//领取之后的提示
 {
     if (isachieve)
     {
         Window_ItemTip.Show(active_text[19], Info);
     }
     else
     {
         Window_ItemTip.Show(active_text[20], Info);
     }
 }
Пример #8
0
 void _Packet(ScRoomReward p)
 {
     if (p.reward == null)
     {
         m_reward = PacketObject.Create <PReward>();
     }
     else
     {
         p.reward.CopyTo(ref m_reward);
     }
     FightRecordManager.Set(p);
 }
Пример #9
0
    public static void Show(string rTitle, PReward reward, bool doubleReward = false)
    {
        List <PItem2> list    = new List <PItem2>();
        var           rReward = reward.Clone();

        if (rReward.diamond > 0)
        {
            var p = PacketObject.Create <PItem2>();
            p.itemTypeId = 2;
            p.star       = 1;
            p.level      = 0;
            p.num        = (uint)(rReward.diamond * (doubleReward ? 2 : 1));
            list.Add(p);
        }

        if (rReward.coin > 0)
        {
            var p = PacketObject.Create <PItem2>();
            p.itemTypeId = 1;
            p.star       = 1;
            p.level      = 0;
            p.num        = (uint)(rReward.coin * (doubleReward ? 2 : 1));
            list.Add(p);
        }

        if (rReward.fatigue > 0)
        {
            var p = PacketObject.Create <PItem2>();
            p.itemTypeId = 15;
            p.star       = 1;
            p.level      = 0;
            p.num        = (uint)(rReward.fatigue * (doubleReward ? 2 : 1));
            list.Add(p);
        }
        if (rReward.activePoint > 0)
        {
            var p = PacketObject.Create <PItem2>();
            p.itemTypeId = 14;
            p.star       = 1;
            p.level      = 0;
            p.num        = (uint)(rReward.activePoint * (doubleReward ? 2 : 1));
            list.Add(p);
        }

        list.AddRange(rReward.rewardList);
        if (doubleReward)
        {
            list.AddRange(rReward.rewardList);
        }

        Show(rTitle, list);
    }
Пример #10
0
 public void SetPVESettlement(PReward reward, TaskInfo chanllengeTask = null, int overStar = 0, int friendPoint = 0, int npcPoint = 0)
 {
     //set reward
     if (reward != null)
     {
         reward.CopyTo(ref settlementReward);
     }
     settlementTask = chanllengeTask;
     //set over star
     settlementStar = overStar;
     addFriendPoint = friendPoint;
     addNpcPoint    = npcPoint;
 }
Пример #11
0
    private void ShowSneakSettlement(PReward reward)
    {
        lose_Panel.gameObject.SetActive(!moduleLabyrinth.isSneakSuccess);
        win_Panel.gameObject.SetActive(moduleLabyrinth.isSneakSuccess);

        lose_pvp.gameObject.SetActive(!moduleLabyrinth.isSneakSuccess);
        lose_pve.gameObject.SetActive(false);

        RefreshForNoExp(moduleLabyrinth.isSneakSuccess);
        RefreshReward(reward, moduleLabyrinth.isSneakSuccess);
        //必须在最后执行该方法
        moduleLabyrinth.OnSneakSettleOver();
        OnInComplete();
        m_againBtn.SafeSetActive(false);
    }
Пример #12
0
    public List <PItem2> GetPItem2FromPreward(PReward reward)
    {
        List <PItem2> l = new List <PItem2>();

        //金币
        if (reward.coin > 0)
        {
            var item = PacketObject.Create <PItem2>();
            item.itemTypeId = 1;
            item.num        = (uint)reward.coin;
            l.Add(item);
        }

        //钻石
        if (reward.diamond > 0)
        {
            var item = PacketObject.Create <PItem2>();
            item.itemTypeId = 2;
            item.num        = (uint)reward.diamond;
            l.Add(item);
        }

        //积分
        if (reward.score > 0)
        {
            var item = PacketObject.Create <PItem2>();
            item.itemTypeId = 8;
            item.num        = (uint)reward.coin;
            l.Add(item);
        }

        //体力
        if (reward.fatigue > 0)
        {
            var item = PacketObject.Create <PItem2>();
            item.itemTypeId = 15;
            item.num        = (uint)reward.coin;
            l.Add(item);
        }

        if (reward.rewardList != null)
        {
            l.AddRange(reward.rewardList);
        }
        return(l);
    }
Пример #13
0
 private void ShowUnionBossSettlement(PReward reward)
 {
     lose_Panel.gameObject.SetActive(false);
     win_Panel.gameObject.SetActive(false);
     lose_pvp.gameObject.SetActive(false);
     lose_pve.gameObject.SetActive(false);
     bgBtn.interactable = true;
     bgBtn.onClick.RemoveAllListeners();
     bgBtn.onClick.AddListener(() =>
     {
         m_boss = false;
         OnOpenNextPanel();
     });
     m_bossWin.gameObject.SetActive(modulePVE.isSendWin);
     m_bossLose.gameObject.SetActive(!modulePVE.isSendWin);
     SetBossInfo();
     m_againBtn.SafeSetActive(false);
 }
Пример #14
0
    private void OpenExceptChasePanel(PReward reward)
    {
        lose_Panel.gameObject.SetActive(!modulePVE.isSendWin);
        lose_pve.gameObject.SetActive(!modulePVE.isSendWin && !moduleUnion.m_isUnionBossTask);
        lose_pvp.gameObject.SetActive(false);
        win_Panel.gameObject.SetActive(modulePVE.isSendWin && !moduleUnion.m_isUnionBossTask);

        if (modulePVE.isSendWin && !moduleUnion.m_isUnionBossTask)
        {
            RefreshReward(reward, true);
        }
        else
        {
            RefreshForNoExp(false);

            lose_runeBtnForPvE.interactable   = true;
            lose_weaponBtnForPvE.interactable = true;
        }
    }
Пример #15
0
 private void ClearPveCache()
 {
     moduleLabyrinth.isSneakSuccess = false;
     isSendWin         = false;
     lastSendState     = PVEOverState.None;
     isFirstEnterStage = false;
     enterForFirstTime = false;
     maxReviveTimes    = -1;
     rebornItemDic.Clear();
     labyrinthBuffPropIds.Clear();
     propToBuffDic.Clear();
     currentReviveTimes   = 0;
     settlementStar       = 0;
     addFriendPoint       = 0;
     addNpcPoint          = 0;
     settlementReward     = null;
     settlementTask       = null;
     duringTranspostScene = false;
     totalMonsterDeathDic.Clear();
 }
Пример #16
0
    public void ShowDetail(PReward reward)
    {
        List <ItemPair> list = new List <ItemPair>();

        if (reward.diamond > 0)
        {
            var p = new ItemPair
            {
                itemId = 2,
                count  = reward.diamond
            };
            list.Add(p);
        }

        if (reward.coin > 0)
        {
            var p = new ItemPair
            {
                itemId = 1,
                count  = reward.coin
            };
            list.Add(p);
        }

        if (reward.fatigue > 0)
        {
            var p = new ItemPair
            {
                itemId = 15,
                count  = reward.fatigue
            };
            list.Add(p);
        }
        foreach (var p in reward.rewardList)
        {
            list.Add(new ItemPair {
                itemId = p.itemTypeId, count = (int)p.num
            });
        }
        ShowDetail(list);
    }
Пример #17
0
    private void ShowNormalPVESettlement(PReward reward)
    {
        if (modulePVE.isSendWin && modulePVE.needShowStar)
        {
            bgBtn.interactable = true;

            if (modulePVE.settlementTask.taskStarDetails?.Length > 0)
            {
                chaseStarpanel.gameObject.SetActive(true);

                chaseStarpanel.RefreshPanel(modulePVE.settlementTask, modulePVE.settlementStar);

                bgBtn.onClick.RemoveAllListeners();
                bgBtn.onClick.AddListener(() =>
                {
                    OpenExceptChasePanel(reward);
                    chaseStarpanel.gameObject.SetActive(false);
                    bgBtn.interactable = false;
                    OnInComplete();
                });
            }
            else
            {
                OpenExceptChasePanel(reward);
                OnInComplete();
            }
        }
        else
        {
            OpenExceptChasePanel(reward);
            OnInComplete();
        }

        m_againBtn.SafeSetActive((modulePVE?.currrentStage?.again ?? false) && Module_Chase.CheckChaseCondition(moduleChase.lastStartChase));
        m_againBtn?.onClick.RemoveAllListeners();
        m_againBtn?.onClick.AddListener(() =>
        {
            moduleChase.SendStartChase(moduleChase.lastStartChase);
        });
    }
Пример #18
0
    private void RefreshSettlementPanel()
    {
        var task = ConfigManager.Get <TaskInfo>(moduleGlobal.targetMatrial.dropInfo?.chaseId ?? 0);

        target.SafeSetActive(moduleGlobal.targetMatrial.isProcess &&
                             task?.stageId == modulePVE.stageId);

        #region pve
        if (Level.current.isPvE)
        {
            PReward reward = modulePVE.settlementReward;
            if (moduleLabyrinth.lastSneakPlayer != null)
            {
                ShowSneakSettlement(reward);
            }
            else if (moduleUnion.m_isUnionBossTask)
            {
                ShowUnionBossSettlement(reward);
            }
            else
            {
                ShowNormalPVESettlement(reward);
            }
        }
        #endregion

        #region pvp
        if (Level.current.isPvP)
        {
            lose_Panel.gameObject.SetActive(!modulePVP.isWinner);
            lose_pve.gameObject.SetActive(false);
            lose_pvp.gameObject.SetActive(!modulePVP.isWinner);
            win_Panel.gameObject.SetActive(modulePVP.isWinner);

            if (!modulePVP.isInvation)
            {
                RefreshReward(modulePVP.reward, modulePVP.isWinner);

                if (modulePVP.isWinner && modulePVP.opType == OpenWhichPvP.FreePvP)
                {
                    modulePlayer.roleInfo.pvpWinTimes++;
                }
            }
            else
            {
                RefreshReward(null, modulePVP.isWinner);
                RefreshForNoExp(modulePVP.isWinner);
            }

            //总场次+1
            if (!modulePVP.isInvation && modulePVP.opType == OpenWhichPvP.FreePvP)
            {
                modulePlayer.pvpTimes++;
            }

            OnInComplete();

            m_againBtn.SafeSetActive(!modulePVP.isInvation && modulePlayer.pvpTimes > 1);
            m_againBtn?.onClick.RemoveAllListeners();
            m_againBtn?.onClick.AddListener(OnOnceAgain);
        }
        #endregion
    }
Пример #19
0
    private void RefreshReward(PReward reward, bool isWin)
    {
        RefreshForNoExp(isWin);
        if (isWin)
        {
            win_levelText.text    = modulePlayer.roleInfo.level.ToString();
            win_expbar.fillAmount = moduleLogin.lastExpProcess;

            RefreshExpTextState(win_expShowText);
            win_score.gameObject.SetActive(false);
            if (reward != null)
            {
                win_expAddText.text = reward.expr > 0 ? Util.Format("+{0}", reward.expr) : "+0";

                win_goldAddText.transform.parent.gameObject.SetActive(reward.coin > 0);
                win_goldAddText.text = Util.Format("+{0}", reward.coin);
            }
            if (reward?.score > 0)
            {
                if (moduleMatch.isUpDanlv)
                {
                    RefreshUpDanLvPanel();
                }
                win_score.gameObject.SetActive(true);
                //没加之前的积分
                win_last_score.text = Util.Format("{0}", moduleMatch.rankInfo.score - reward.score);
                //加多少积分
                win_add_score.text = Util.Format("+{0}", reward.score);
                //当前段位
                win_current_danLv.text = moduleMatch.rankInfo.danLv.ToString();
                //还差多少积分晋级
                var info      = ConfigManager.GetAll <PvpLolInfo>();
                int max_danLv = info == null ? 8 : info[info.Count - 1].ID;
                win_dis_nextScore.transform.parent.gameObject.SetActive(moduleMatch.rankInfo.danLv < max_danLv);
                if (moduleMatch.rankInfo.danLv < max_danLv && info != null)
                {
                    win_dis_nextScore.text = Util.Format("{0}",
                                                         info[moduleMatch.rankInfo.danLv].integral - moduleMatch.rankInfo.score);
                }
                //显示logo
                for (int i = 0; i < win_logos_parent.childCount; i++)
                {
                    win_logos_parent.GetChild(i).gameObject.SetActive(i + 1 == moduleMatch.rankInfo.danLv);
                }
            }
            RefreshRewardList(reward, true);
        }
        else
        {
            lose_levelText.text    = modulePlayer.roleInfo.level.ToString();
            lose_expbar.fillAmount = moduleLogin.lastExpProcess;

            RefreshExpTextState(lose_expShowText);
            lose_score.gameObject.SetActive(false);

            if (reward != null)
            {
                lose_expAddText.text = reward.expr > 0 ? Util.Format("+{0}", reward.expr) : "+0";

                lose_goldAddText.transform.parent.gameObject.SetActive(reward.coin > 0);
                lose_goldAddText.text = Util.Format("+{0}", reward.coin);

                if (reward.score < 0)
                {
                    lose_score.gameObject.SetActive(true);
                    //没加之前的积分
                    lose_last_score.text = Util.Format("{0}", moduleMatch.rankInfo.score - reward.score);
                    //加多少积分
                    lose_add_score.text = Util.Format("{0}", reward.score);
                    //当前段位
                    lose_current_danLv.text = moduleMatch.rankInfo.danLv.ToString();
                    //还差多少积分晋级
                    var info      = ConfigManager.GetAll <PvpLolInfo>();
                    int max_danLv = info == null ? 8 : info[info.Count - 1].ID;
                    lose_dis_nextScroe.transform.parent.gameObject.SetActive(moduleMatch.rankInfo.danLv < max_danLv);
                    if (moduleMatch.rankInfo.danLv < max_danLv && info != null)
                    {
                        lose_dis_nextScroe.text = Util.Format("{0}", info[moduleMatch.rankInfo.danLv].integral - moduleMatch.rankInfo.score);
                    }
                    //显示logo
                    for (int i = 0; i < lose_logos_parent.childCount; i++)
                    {
                        lose_logos_parent.GetChild(i).gameObject.SetActive(i + 1 == moduleMatch.rankInfo.danLv);
                    }
                }
            }
            RefreshRewardList(reward, false);
        }
    }
Пример #20
0
 public void ShowDetail(PReward reward)
 {
     ShowDetail(ItemList(reward));
 }