コード例 #1
0
        public void SetTaskState(int taskState)
        {
            m_CurTime = 0;
            if (taskState == NpcState.OnGoing)
            {
                RewardNode.gameObject.SetActive(false);
                TaskNode.gameObject.SetActive(true);

                if (m_NpcBehavior.IsTargetNpc(GameConstVal.Npc_OldWoman))
                {
                    Received.gameObject.SetActive(false);
                    UnReceive.gameObject.SetActive(true);
                    UnReceive.rectTransform.localScale = new Vector3(1.2f, 1.2f, 1);
                }
                else
                {
                    UnReceive.gameObject.SetActive(false);
                    Received.gameObject.SetActive(true);
                }
                Complet.gameObject.SetActive(false);
                m_InDestroyState = false;
            }
            else if (taskState == NpcState.UnReceived)
            {
                RewardNode.gameObject.SetActive(true);
                /// load Sprite
                CampTasksItem campTasksItem = Global.gApp.gGameData.CampTasksConfig.Get(m_TaskId);
                if (campTasksItem != null)
                {
                    ItemItem rewardItem = Global.gApp.gGameData.ItemData.Get(int.Parse(campTasksItem.reward[0]));
                    if (rewardItem != null)
                    {
                        Reward.image.sprite = Resources.Load(rewardItem.image_grow, typeof(Sprite)) as Sprite;
                    }
                }
                TaskNode.gameObject.SetActive(false);
                m_InDestroyState = false;
            }
            else if (taskState == NpcState.Received)
            {
                RewardNode.gameObject.SetActive(false);
                TaskNode.gameObject.SetActive(true);
                Received.gameObject.SetActive(false);
                UnReceive.gameObject.SetActive(false);
                Complet.gameObject.SetActive(true);
                m_DelayDestroyTime = 3;
                m_InDestroyState   = true;
            }
            else if (taskState == NpcState.None)
            {
                RewardNode.gameObject.SetActive(false);
                TaskNode.gameObject.SetActive(false);
                Received.gameObject.SetActive(false);
                UnReceive.gameObject.SetActive(false);
                Complet.gameObject.SetActive(false);
                m_DelayDestroyTime = 0.5f;
                m_InDestroyState   = true;
            }
        }
コード例 #2
0
        public void InitNode(NpcQuestItemDTO dto, int index, CampTaskDetails parent)
        {
            m_DTO    = dto;
            m_Index  = index;
            m_Parent = parent;
            CampTasksItem taskCfg = Global.gApp.gGameData.CampTasksConfig.Get(m_DTO.npcQuestId);

            gameObject.SetActive(true);
            if (taskCfg.taskCondition[0] == FilterTypeConstVal.GET_ITEM)
            {
                ItemItem itemCfg = Global.gApp.gGameData.ItemData.Get(Convert.ToInt32(taskCfg.taskCondition[1]));
                IName.text.text            = Global.gApp.gGameData.GetTipsInCurLanguage(itemCfg.sourceLanguage);
                TargetIcon.image.sprite    = Resources.Load(itemCfg.image_grow, typeof(Sprite)) as Sprite;
                TaskTargetText.text.text   = string.Format(Global.gApp.gGameData.GetTipsInCurLanguage(taskCfg.describe), Global.gApp.gGameData.GetTipsInCurLanguage(itemCfg.sourceLanguage));
                TaskTargetAmount.text.text = taskCfg.taskCondition[taskCfg.taskCondition.Length - 1].ToString();
            }
            else if (taskCfg.taskCondition[0] == FilterTypeConstVal.KILL_ZOMBIE)
            {
                IName.text.text            = Global.gApp.gGameData.GetTipsInCurLanguage(4265);
                TargetIcon.image.sprite    = Resources.Load(CommonResourceConstVal.CAMP_KILL_ICON, typeof(Sprite)) as Sprite;
                TaskTargetText.text.text   = Global.gApp.gGameData.GetTipsInCurLanguage(taskCfg.describe);
                TaskTargetAmount.text.text = taskCfg.taskCondition[taskCfg.taskCondition.Length - 1].ToString();
            }
            else if (taskCfg.taskCondition[0] == FilterTypeConstVal.GET_ITEM_BY_TYPE)
            {
                IName.text.text            = Global.gApp.gGameData.GetTipsInCurLanguage(4268);
                TargetIcon.image.sprite    = Resources.Load(CommonResourceConstVal.CAMP_GET_TYPE_ITEM_ICON, typeof(Sprite)) as Sprite;
                TaskTargetText.text.text   = Global.gApp.gGameData.GetTipsInCurLanguage(taskCfg.describe);
                TaskTargetAmount.text.text = taskCfg.taskCondition[taskCfg.taskCondition.Length - 1].ToString();
            }
            else
            {
                Debug.LogError("该条件类型未告知如何显示 taskCfg.taskCondition[0] = " + taskCfg.taskCondition[0]);
            }
            string cur = m_DTO.cur > taskCfg.taskCondition[taskCfg.taskCondition.Length - 1] ? taskCfg.taskCondition[taskCfg.taskCondition.Length - 1].ToString() : m_DTO.cur.ToString();

            Amount.text.text          = cur + "/" + taskCfg.taskCondition[taskCfg.taskCondition.Length - 1].ToString();
            Progress.image.fillAmount = Convert.ToSingle(m_DTO.cur / taskCfg.taskCondition[taskCfg.taskCondition.Length - 1]);

            if (int.Parse(taskCfg.reward[0]) == SpecialItemIdConstVal.GOLD)
            {
                Gold_paramsItem gpiCfg = Global.gApp.gGameData.GoldParamsConfig.Get(Global.gApp.gSystemMgr.GetBaseAttrMgr().GetLevel());
                AwardAmount.text.text = UiTools.FormateMoneyUP(double.Parse(taskCfg.reward[1]) * gpiCfg.coinParams);
            }
            else
            {
                AwardAmount.text.text = UiTools.FormateMoneyUP(int.Parse(taskCfg.reward[1]));
            }

            ItemItem awardItem = Global.gApp.gGameData.ItemData.Get(int.Parse(taskCfg.reward[0]));

            AwardIcon.image.sprite = Resources.Load(awardItem.image_grow, typeof(Sprite)) as Sprite;
            ChangeStateAndIndex();
            Btn.button.onClick.AddListener(OnReceive);
        }
コード例 #3
0
        private void InitNode()
        {
            DayTaskItemUI.gameObject.SetActive(false);
            TotalTaskItem.gameObject.SetActive(false);
            List <NpcQuestItemDTO> nqidList = Global.gApp.gSystemMgr.GetNpcMgr().NpcQuestList;

            for (int i = 0; i < nqidList.Count; i++)
            {
                if (nqidList[i].npcQuestId == -1)
                {
                    continue;
                }
                CampNpcItem campNpcItem = Global.gApp.gGameData.CampNpcConfig.Get(nqidList[i].npcId);
                ItemItem    npcItem     = Global.gApp.gGameData.GetItemDataByName(nqidList[i].npcId);
                if (campNpcItem.notFresh == 1)
                {
                    CampTasksItem taskCfg = Global.gApp.gGameData.CampTasksConfig.Get(nqidList[i].npcQuestId);
                    if (taskCfg == null)
                    {
                        continue;
                    }
                    CampTaskDetails_TotalTaskItem itemUI = TotalTaskItem.GetInstance();
                    itemUI.InitNode(nqidList[i], i, this);
                    m_TotalItemList.Add(itemUI);
                }
                else
                {
                    CampTasksItem taskCfg = Global.gApp.gGameData.CampTasksConfig.Get(nqidList[i].npcQuestId);
                    if (taskCfg == null)
                    {
                        continue;
                    }
                    CampTaskDetails_DayTaskItemUI itemUI = DayTaskItemUI.GetInstance();
                    itemUI.InitNode(nqidList[i], i, this);
                    m_ItemList.Add(itemUI);
                }
            }
            m_none.gameObject.SetActive(m_TotalItemList.Count == 0);
            ChangeTotalShowIndex();
            ChangeShowIndex();

            CloseBtn.button.onClick.AddListener(TouchClose);
        }
コード例 #4
0
        private void GenerateRecycleMat()
        {
            CampRecycleItem[] campRecycleItems = Global.gApp.gGameData.CampRecycleConfig.items;

            string[] curConsume = Global.gApp.gGameData.GeneralConfigData.Get(GeneralConfigConstVal.CAMP_NPC_DAY_COST).contents;
            string   maxDayStr  = Global.gApp.gGameData.GeneralConfigData.Get(GeneralConfigConstVal.CAMP_NPC_MAX_STORE_DAY).content;
            double   maxDayD    = double.Parse(maxDayStr);
            Dictionary <int, double>     maxCousumeCountMap = new Dictionary <int, double>();
            Dictionary <string, ItemDTO> npcMap             = Global.gApp.gSystemMgr.GetNpcMgr().NpcMap;
            double totlaNpcNum = 0;

            foreach (KeyValuePair <string, ItemDTO> kvValue in npcMap)
            {
                totlaNpcNum += kvValue.Value.num;
            }
            int curId = 0;

            for (int i = 0; i < curConsume.Length; i++)
            {
                if (i % 2 == 1)
                {
                    maxCousumeCountMap[curId] = totlaNpcNum * double.Parse(curConsume[i]) * maxDayD;
                }
                else
                {
                    curId = int.Parse(curConsume[i]);
                    maxCousumeCountMap.Add(i, 0);
                }
            }
            // 把当前所有的 材料全部 加到表里去
            foreach (CampRecycleItem campRecycleItem in campRecycleItems)
            {
                double count = GameItemFactory.GetInstance().GetItem(campRecycleItem.id);
                if (count > 0)
                {
                    m_RecyclyMat.Add(campRecycleItem.id, count);
                }
            }
            foreach (KeyValuePair <int, double> keyValuePair in maxCousumeCountMap)
            {
                if (m_RecyclyMat.ContainsKey(keyValuePair.Key))
                {
                    double leftVal = m_RecyclyMat[keyValuePair.Key] - keyValuePair.Value;
                    if (leftVal > 0)
                    {
                        m_RecyclyMat[keyValuePair.Key] = leftVal;
                    }
                    else
                    {
                        m_RecyclyMat.Remove(keyValuePair.Key);
                    }
                }
            }
            List <NpcQuestItemDTO>   npcQuestList    = Global.gApp.gSystemMgr.GetNpcMgr().NpcQuestList;
            Dictionary <int, double> m_QuestMatCount = new Dictionary <int, double>();

            foreach (NpcQuestItemDTO npcQuestItemDTO in npcQuestList)
            {
                // FilterTypeConstVal
                if (npcQuestItemDTO.state != NpcState.None && npcQuestItemDTO.state != NpcState.Received && npcQuestItemDTO.npcQuestId > 0)
                {
                    CampTasksItem campTasksItem = Global.gApp.gGameData.CampTasksConfig.Get(npcQuestItemDTO.npcQuestId);
                    if (campTasksItem != null && campTasksItem.taskCondition[0] == FilterTypeConstVal.GET_ITEM)
                    {
                        int matId = (int)campTasksItem.taskCondition[1];
                        if (!m_QuestMatCount.ContainsKey(matId))
                        {
                            m_QuestMatCount.Add(matId, 0);
                        }
                        m_QuestMatCount[matId] += campTasksItem.taskCondition[2];
                    }
                }
            }

            foreach (KeyValuePair <int, double> keyValuePair in m_QuestMatCount)
            {
                if (m_RecyclyMat.ContainsKey(keyValuePair.Key))
                {
                    double leftVal = m_RecyclyMat[keyValuePair.Key] - keyValuePair.Value;
                    if (leftVal > 0)
                    {
                        m_RecyclyMat[keyValuePair.Key] = leftVal;
                    }
                    else
                    {
                        m_RecyclyMat.Remove(keyValuePair.Key);
                    }
                }
            }
        }
コード例 #5
0
        public void InitDetailsInfo(NpcQuestItemDTO taskItem, int taskIndex, Transform adaptNode, Action closeCallBack)
        {
            m_CloseCallBack = closeCallBack;
            m_TaskIndex     = taskIndex;
            m_FollowRectTsf.anchoredPosition = UiTools.WorldToRectPos(gameObject, adaptNode.position, m_ParentRectTsf);
            CampTasksItem campTasksItem = Global.gApp.gGameData.CampTasksConfig.Get(taskItem.npcQuestId);

            if (campTasksItem != null)
            {
                TitleText.text.text             = Global.gApp.gGameData.GetTipsInCurLanguage(campTasksItem.title);
                prNum.text.text                 = ((int)taskItem.cur).ToString() + "/" + campTasksItem.taskCondition[2].ToString();
                m_passProgress.image.fillAmount = (float)taskItem.cur / campTasksItem.taskCondition[2];


                ItemItem conditonItem = Global.gApp.gGameData.ItemData.Get((int)campTasksItem.taskCondition[1]);
                if (conditonItem != null)
                {
                    taskIcon.image.sprite = Resources.Load(conditonItem.image_grow, typeof(Sprite)) as Sprite;
                }
                else
                {
                    if (campTasksItem.taskCondition[0] == FilterTypeConstVal.KILL_ZOMBIE)
                    {
                        taskIcon.image.sprite = Resources.Load(CommonResourceConstVal.CAMP_KILL_ICON, typeof(Sprite)) as Sprite;
                    }
                    else if (campTasksItem.taskCondition[0] == FilterTypeConstVal.GET_ITEM_BY_TYPE)
                    {
                        taskIcon.image.sprite = Resources.Load(CommonResourceConstVal.CAMP_GET_TYPE_ITEM_ICON, typeof(Sprite)) as Sprite;
                    }
                    else
                    {
                        taskIcon.image.sprite = Resources.Load(CommonResourceConstVal.CAMP_KILL_ICON, typeof(Sprite)) as Sprite;
                    }
                }
                ItemItem rewardItem = Global.gApp.gGameData.ItemData.Get(int.Parse(campTasksItem.reward[0]));
                if (rewardItem != null)
                {
                    icon.image.sprite = Resources.Load(rewardItem.image_grow, typeof(Sprite)) as Sprite;
                }
                if (rewardItem.id == SpecialItemIdConstVal.GOLD)
                {
                    double          itemNum = double.Parse(campTasksItem.reward[1]);
                    Gold_paramsItem cfg     = Global.gApp.gGameData.GoldParamsConfig.Get(Global.gApp.gSystemMgr.GetBaseAttrMgr().GetLevel());
                    itemNum      *= cfg.coinParams;
                    Num.text.text = UiTools.FormateMoneyUP(itemNum);
                }
                else
                {
                    Num.text.text = UiTools.FormateMoneyUP(double.Parse(campTasksItem.reward[1]));
                }
            }
            if (taskItem.state == NpcState.UnReceived)
            {
                WaitRewardBtn.gameObject.SetActive(false);
                RewardBtn.gameObject.SetActive(true);
                RewardBtn.button.onClick.AddListener(ReceiveReward);
            }
            else
            {
                WaitRewardBtn.gameObject.SetActive(true);
                RewardBtn.gameObject.SetActive(false);
            }
        }