public void Init(NpcQuestItemDTO questItem, Transform followNode, Action action) { m_FollowNode.SetFloowNode(followNode); gameObject.AddComponent <DelayCallBack>().SetAction(action, 2, true); int state = questItem.state; CampNpcItem npcItem = Global.gApp.gGameData.CampNpcConfig.Get(questItem.npcId); if (state == NpcState.None) { int plotLength = npcItem.NoTask.Length; int plotIndex = UnityEngine.Random.Range(0, plotLength); TaskText.text.text = Global.gApp.gGameData.GetTipsInCurLanguage(npcItem.NoTask[plotIndex]); } else if (state == NpcState.Received) { int plotLength = npcItem.TaskFinished.Length; int plotIndex = UnityEngine.Random.Range(0, plotLength); TaskText.text.text = Global.gApp.gGameData.GetTipsInCurLanguage(npcItem.NoTask[plotIndex]); } string lgg = Global.gApp.gSystemMgr.GetMiscMgr().Language; if (lgg == null || lgg.Equals(GameConstVal.EmepyStr)) { lgg = UiTools.GetLanguage(); } TaskText.text.font = Global.gApp.gGameData.GetFont(lgg); }
private void CreateNpc() { NpcQuestItemDTO questItem = m_CurTaskList[m_CreateIndex]; Transform bornNode; bool showOldWomanPlot = false; bool IsOldWoman = false; bool IsBoy = false; GameObject flolowNode = null; if (questItem.npcId == "Npc_boy") { bornNode = m_ControllerNode.transform.Find("FightNode/NPCBornNode/BoyBornNode"); IsBoy = true; } else if (questItem.npcId == "Npc_oldwoman") { if (!Global.gApp.gSystemMgr.GetMiscMgr().GetAndResetHasOpenCampState()) { showOldWomanPlot = true; } bornNode = m_ControllerNode.transform.Find("FightNode/NPCBornNode/OldWomanBornNode"); flolowNode = OldWamonIcon.gameObject; IsOldWoman = true; } else if (questItem.npcId == "Npc_drstrange") { bornNode = m_ControllerNode.transform.Find("FightNode/NPCBornNode/DrStrangeBornNode"); flolowNode = DrstrangeIcon.gameObject; } else if (questItem.npcId == "Npc_recycle") { bornNode = m_ControllerNode.transform.Find("FightNode/NPCBornNode/RecycleBornNode"); flolowNode = RecycleIcon.gameObject; } else { int index = Random.Range(0, m_NoTaskNpcBornNode.childCount); bornNode = m_NoTaskNpcBornNode.GetChild(index); } CreateNpcImp(bornNode, questItem, m_CreateIndex, flolowNode); if (showOldWomanPlot) { //m_NpcBehav[m_CreateIndex].ShowOldWomanTaskUi(100203); } if (IsOldWoman) { m_OldWomanBav = m_NpcBehav[m_CreateIndex]; m_OldWomanBav.transform.position = bornNode.transform.position; } else if (IsBoy) { m_NpcBehav[m_CreateIndex].gameObject.SetActive(m_NpcMgr.GetShowBoyNpcState()); m_BoyBav = m_NpcBehav[m_CreateIndex]; } m_CreateIndex++; }
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); }
public void PlayNPCheerAnimAndFreshHeart() { foreach (NpcBehavior npcBehavior in m_NpcBehav) { NpcQuestItemDTO npcQuestItemDTO = npcBehavior.GetQuestItem(); bool addHeart = m_NpcMgr.ForceAddHeart(npcQuestItemDTO); npcBehavior.PlayCheerAnim(addHeart); } m_NpcMgr.SaveData(); Global.gApp.gMsgDispatcher.Broadcast(MsgIds.CampRedTips); }
public void Init(NpcQuestItemDTO taskItem, int taskIndex) { m_TaskItem = taskItem; m_TaskIndex = taskIndex; if (taskItem.state != NpcState.None && m_TaskItem.state != NpcState.Received) { GameObject go = Global.gApp.gResMgr.InstantiateObj(Wndid.TaskStateNode); m_TaskStateNode = go.GetComponent <TaskStateNode>(); m_TaskStateNode.Init(this, GetTaskUINode(), taskId: taskItem.npcQuestId, taskState: taskItem.state); PlayIdle(); } FreshDropInfo(); }
private void CreateNpcImp(Transform bornNode, NpcQuestItemDTO taskItem, int taskIndex, GameObject followNode = null) { string npcId = taskItem.npcId; CampNpcItem campNpcItem = Global.gApp.gGameData.CampNpcConfig.Get(npcId); GameObject npcNode = Global.gApp.gResMgr.InstantiateObj(campNpcItem.NpcPath); npcNode.transform.SetParent(m_NpcNode, false); if (taskItem.state != NpcState.None) { Transform newBornNode = m_TaskNpcBronNode.transform.GetChild(m_TaskNpcBornNodeIndex); npcNode.transform.position = newBornNode.position; m_TaskNpcBornNodeIndex++; } else { Vector3 localScale = bornNode.localScale; float x = Random.Range(-0.5f, 0.5f); float y = Random.Range(-0.5f, 0.5f); Vector3 posOffset = new Vector3(localScale.x * x, localScale.y * y, 0); Vector3 position = bornNode.transform.position + posOffset; position.z = 0; npcNode.transform.position = position; } NpcBehavior npcBehavior = npcNode.GetComponent <NpcBehavior>(); npcBehavior.Init(taskItem, taskIndex); if (followNode != null) { FollowNode followComp = followNode.GetComponent <FollowNode>(); followComp.SetFloowNode(npcBehavior.GetTaskUINode()); npcBehavior.SetForceHasOutlineEffect(); } m_NpcBehav.Add(npcBehavior); }
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); } }