void OnMissionDeleteBtnClick(UIMissionGoalNode node)
 {
     if (onMissionDeleteClick != null)
     {
         onMissionDeleteClick(node);
     }
 }
Exemple #2
0
 void OnDestroyViewNode(UIMissionGoalNode node)
 {
     if (onDestroyViewNode != null)
     {
         onDestroyViewNode(node);
     }
 }
    void OnSetViewNodeChildContent(int index, GameObject child)
    {
        UIMissionGoalNode node = child.GetComponent <UIMissionGoalNode>();

        MissionGoal mg = _goals[index];

        string txt = "";

        if (mg is MissionGoal_Bool)
        {
            MissionGoal_Bool mb = mg as MissionGoal_Bool;
            txt         = mb.text;
            node.value2 = mg.id;
        }
        else if (mg is MissionGoal_Item)
        {
            MissionGoal_Item mi = mg as MissionGoal_Item;
            txt         = mi.text + " " + mi.current.ToString() + "/" + mi.target.ToString();
            node.value0 = mi.current;
            node.value1 = mi.target;
            node.value2 = mg.id;
        }
        else if (mg is MissionGoal_Kill)
        {
            MissionGoal_Kill mi = mg as MissionGoal_Kill;
            txt         = mi.text + " " + mi.current.ToString() + "/" + mi.target.ToString();
            node.value0 = mi.current;
            node.value1 = mi.target;
            node.value2 = mg.id;
        }

        node.SetContent(txt, false, false);
    }
    void OnMissionTrackBoxChecked(bool active, UIMissionGoalNode node)
    {
        int type = 0;

        if (m_MainStoryNodes.Count > node.index && m_MainStoryNodes[node.index] == node)
        {
            type = 0;
        }
        else if (m_SideQuestNodes.Count > node.index && m_SideQuestNodes[node.index] == node)
        {
            type = 1;
        }
        else
        {
            type = -1;
        }

        if (type != -1)
        {
            if (onTrackBoxSelected != null)
            {
                onTrackBoxSelected(active, type, node);
            }
        }
    }
    public void AddMainStoryNode()
    {
        UIMissionGoalNode node = UIUtility.CreateItem <UIMissionGoalNode>(missionNodePrefab, mainStoryTb.transform);

        m_MainStoryNodes.Add(node);
        OnSetMainStoryNodeContent(m_MainStoryNodes.Count - 1, node);
        mainStoryTb.repositionNow = true;
    }
    public void AddSideQuestNode()
    {
        UIMissionGoalNode node = UIUtility.CreateItem <UIMissionGoalNode>(missionNodePrefab, sideQuestTb.transform);

        m_SideQuestNodes.Add(node);
        OnSetSideQuestNodeContent(m_SideQuestNodes.Count - 1, node);
        sideQuestTb.repositionNow = true;
    }
Exemple #7
0
    void OnSetViewNodeContent(int index, UIMissionGoalNode node)
    {
        node.index = index;

        if (onSetViewNodeContent != null)
        {
            onSetViewNodeContent(node);
        }
    }
Exemple #8
0
    public void AddViewNode()
    {
        UIMissionGoalNode node = UIUtility.CreateItem <UIMissionGoalNode>(viewNodePrefab, viewTable.transform);

        m_ViewNodes.Add(node);
        OnSetViewNodeContent(m_ViewNodes.Count - 1, node);

        viewTable.repositionNow = true;
        return;
    }
    void OnSetSideQuestNodeContent(int index, UIMissionGoalNode node)
    {
        node.index             = index;
        node.onTitleClick     += OnMissionTitileClick;
        node.onDeleteBtnClick += OnMissionDeleteBtnClick;
        node.onTrackBoxActive += OnMissionTrackBoxChecked;

        if (onSetNodeContent != null)
        {
            onSetNodeContent(1, node);
        }
    }
Exemple #10
0
    public void RemoveViewNode(int index)
    {
        if (index < 0 && index >= m_ViewNodes.Count)
        {
            return;
        }

        UIMissionGoalNode node = m_ViewNodes[index];

        OnDestroyViewNode(node);
        Destroy(node.gameObject);
        node.transform.parent = null;
        m_ViewNodes.RemoveAt(index);

        return;
    }
    void OnUnsetMissionGoal(int goal_id, int mission_id)
    {
        int index = m_TrackedIds.FindIndex(item0 => item0 == mission_id);

        if (index != -1)
        {
            SortedList <int, MissionGoal> goals = PeCustomScene.Self.scenario.missionMgr.GetGoals(m_TrackedIds[index]);
            if (goals != null)
            {
                int goal_index = goals.IndexOfKey(goal_id);
                if (goal_index != -1)
                {
                    UIMissionGoalNode node = missionTrackWnd.GetNode(index);
                    node.RemoveChildeNode(goal_index);
                }
            }
        }
    }
    void OnGoalAchieve(int goal_id, int mission_id)
    {
        int index = m_TrackedIds.FindIndex(item0 => item0 == mission_id);

        if (index != -1)
        {
            SortedList <int, MissionGoal> goals = PeCustomScene.Self.scenario.missionMgr.GetGoals(m_TrackedIds[index]);
            if (goals != null)
            {
                int goal_index = goals.IndexOfKey(goal_id);
                UIMissionGoalNode child_node = missionTrackWnd.GetNode(index).childNode[goal_index].GetComponent <UIMissionGoalNode>();

                if (child_node != null)
                {
                    child_node.titleColor = new Color(0.65f, 0.65f, 0.65f);
                }
            }
        }
    }
    void OnTrackBoxSelected(bool active, int type, UIMissionGoalNode node)
    {
        int mission_id = -1;

        if (type == 0)
        {
            mission_id = m_MainStoryIds[node.index];
        }
        else if (type == 1)
        {
            mission_id = m_SideQuestIdes[node.index];
        }

        if (mission_id != -1)
        {
            PeCustomScene.Self.scenario.missionMgr.SetMissionIsTracked(mission_id, active);
            Debug.Log("Do mission [" + mission_id.ToString() + "] track");
        }
    }
    void OnMissionTrackChanged(int mission_id, bool is_tracked)
    {
        int index = m_MainStoryIds.FindIndex(item0 => item0 == mission_id);

        if (index != -1)
        {
            UIMissionGoalNode node = missionWnd.mainStoryNodes[index];
            node.isTracked = is_tracked;
        }
        else
        {
            index = m_SideQuestIdes.FindIndex(item0 => item0 == mission_id);

            if (index != -1)
            {
                UIMissionGoalNode node = missionWnd.sidQuestNodes[index];
                node.isTracked = is_tracked;
            }
        }
    }
    void OnViewNodeSetContent(UIMissionGoalNode node)
    {
        MissionProperty mp = PeCustomScene.Self.scenario.missionMgr.GetMissionProperty(m_TrackedIds[node.index]);

        node.SetContent("[C8C800]" + mp.name + "[-]", false, false);

        node.onSetChildNodeContent += OnSetViewNodeChildContent;

        SortedList <int, MissionGoal> goals = PeCustomScene.Self.scenario.missionMgr.GetGoals(m_TrackedIds[node.index]);

        if (goals != null)
        {
            _goals = goals.Values;

            node.UpdateChildNode(_goals.Count, missionTrackWnd.childNodePrefab);
            node.PlayTween(true);
        }
        else
        {
            node.UpdateChildNode(0, missionTrackWnd.childNodePrefab);
        }
    }
    void OnMissionTitileClick(UIMissionGoalNode node)
    {
        int       type  = -1;
        Transform trans = node.transform;

        if (trans.parent == mainStoryTb.transform)
        {
            type            = 0;
            node.IsSelected = true;
            selectedNode    = node;
            for (int i = 0; i < m_MainStoryNodes.Count; i++)
            {
                if (m_MainStoryNodes[i] != node)
                {
                    m_MainStoryNodes[i].IsSelected = false;
                }
            }
        }
        else if (trans.parent = sideQuestRoot.transform)
        {
            type            = 1;
            node.IsSelected = true;
            selectedNode    = node;
            for (int i = 0; i < m_SideQuestNodes.Count; i++)
            {
                if (m_SideQuestNodes[i] != node)
                {
                    m_SideQuestNodes[i].IsSelected = false;
                }
            }
        }


        if (onMissionNodeClick != null)
        {
            onMissionNodeClick(type, node);
        }
    }
    void OnSetMissionGoal(int goal_id, int mission_id)
    {
        int index = m_TrackedIds.FindIndex(item0 => item0 == mission_id);

        if (index != -1)
        {
            UIMissionGoalNode node = missionTrackWnd.GetNode(index);

            SortedList <int, MissionGoal> goals = PeCustomScene.Self.scenario.missionMgr.GetGoals(m_TrackedIds[node.index]);
            if (goals != null)
            {
                _goals = goals.Values;
                node.UpdateChildNode(goals.Count, missionTrackWnd.childNodePrefab);
                node.PlayTween(true);
            }
            else
            {
                node.UpdateChildNode(0, missionTrackWnd.childNodePrefab);
            }

            missionTrackWnd.repositionNow = true;
        }
    }
    void OnMissionDeleteClick(UIMissionGoalNode node)
    {
        //MessageBox_N.ShowYNBox("Sure to")

        _deleteMissionId = -1;
        // Main Stroy
        if (missionWnd.MissionType == 0)
        {
            _deleteMissionId = m_MainStoryIds[node.index];
        }
        else if (missionWnd.MissionType == 1)
        {
            _deleteMissionId = m_SideQuestIdes[node.index];
        }

        if (_deleteMissionId != -1)
        {
            MissionProperty mp = PeCustomScene.Self.scenario.missionMgr.GetMissionProperty(_deleteMissionId);
            if (mp != null)
            {
                if (mp.canAbort)
                {
                    MessageBox_N.ShowYNBox(PELocalization.GetString(8000066), DeleteMissionOk);
                }
                else
                {
                    //lz-2016.10.31 The mission can't be aborted.
                    new PeTipMsg(PELocalization.GetString(8000850), PeTipMsg.EMsgLevel.Warning);
                }
            }
            else
            {
                Debug.LogError("Get the Deleted Mission property is error");
            }
        }
    }
    void OnSetNodeContent(int type, UIMissionGoalNode node)
    {
        // Main Story
        MissionProperty mp        = null;
        bool            can_track = false;

        if (type == 0)
        {
            mp        = PeCustomScene.Self.scenario.missionMgr.GetMissionProperty(m_MainStoryIds[node.index]);
            can_track = PeCustomScene.Self.scenario.missionMgr.MissionIsTracked(m_MainStoryIds[node.index]);
        }
        else if (type == 1)
        {
            mp        = PeCustomScene.Self.scenario.missionMgr.GetMissionProperty(m_SideQuestIdes[node.index]);
            can_track = PeCustomScene.Self.scenario.missionMgr.MissionIsTracked(m_SideQuestIdes[node.index]);
        }

        if (mp != null)
        {
            node.SetContent(mp.name, mp.canAbort, true);
            node.IsSelected = false;
            node.isTracked  = can_track;
        }
    }
    void OnMissionNodeClick(int type, UIMissionGoalNode node)
    {
        RefreshNodeSelected();

        DetachGoalEvent();

        MissionProperty mp = null;

        if (type == 0)
        {
            mp            = PeCustomScene.Self.scenario.missionMgr.GetMissionProperty(m_MainStoryIds[node.index]);
            _currentGoals = PeCustomScene.Self.scenario.missionMgr.GetGoals(m_MainStoryIds[node.index]);
            if (_currentGoals != null)
            {
                _goals = _currentGoals.Values;
            }

            _currentMissionId = m_MainStoryIds[node.index];
        }
        else if (type == 1)
        {
            mp            = PeCustomScene.Self.scenario.missionMgr.GetMissionProperty(m_SideQuestIdes[node.index]);
            _currentGoals = PeCustomScene.Self.scenario.missionMgr.GetGoals(m_SideQuestIdes[node.index]);
            if (_currentGoals != null)
            {
                _goals = _currentGoals.Values;
            }

            _currentMissionId = m_SideQuestIdes[node.index];
        }
        else
        {
            _currentMissionId = -1;
            _currentGoals     = null;
            _goals            = null;

            _rewardItemIds   = null;
            _rewardItemCount = null;
        }

        if (mp != null)
        {
            // Begin Npc
            if (CustomGameData.Mgr.Instance != null &&
                CustomGameData.Mgr.Instance.curGameData.WorldIndex == mp.beginNpcWorldIndex)
            {
                SpawnPoint sp = PeCustomScene.Self.spawnData.GetSpawnPoint(mp.beginNpcId);
                if (sp as NPCSpawnPoint != null)
                {
                    NpcProtoDb.Item proto = NpcProtoDb.Get(sp.Prototype);
                    missionWnd.SetMissionAbout(sp.Name, proto.iconBig, mp.objective);
                }
                else if (sp as MonsterSpawnPoint != null)
                {
                    MonsterProtoDb.Item proto_mst = MonsterProtoDb.Get(sp.Prototype);
                    missionWnd.SetMissionAbout(sp.Name, proto_mst.icon, mp.objective);
                }
                else
                {
                    missionWnd.SetMissionAbout("None", "npc_big_Unknown", mp.objective);
                    //Debug.LogWarning("The Npc Id [" + mp.beginNpcId.ToString() + "] spawn point is not exist");
                }
            }
            else
            {
                missionWnd.SetMissionAbout("None", "npc_big_Unknown", mp.objective);
            }

            // End Npc
            if (CustomGameData.Mgr.Instance != null &&
                CustomGameData.Mgr.Instance.curGameData.WorldIndex == mp.endNpcWorldIndex)
            {
                SpawnPoint sp = PeCustomScene.Self.spawnData.GetSpawnPoint(mp.endNpcId);
                if (sp as NPCSpawnPoint != null)
                {
                    NpcProtoDb.Item proto = NpcProtoDb.Get(sp.Prototype);
                    missionWnd.SetRewardInfo(sp.Name, proto.iconBig);
                }
                else if (sp as MonsterSpawnPoint != null)
                {
                    MonsterProtoDb.Item proto_mst = MonsterProtoDb.Get(sp.Prototype);
                    missionWnd.SetRewardInfo(sp.Name, proto_mst.icon);
                }
                else
                {
                    missionWnd.SetRewardInfo("None", "npc_big_Unknown");
                    Debug.LogWarning("The Npc Id [" + mp.endNpcId.ToString() + "] spawn point is not exist");
                }
            }
            else
            {
                missionWnd.SetRewardInfo("None", "npc_big_Unknown");
            }

            // Reward
            if (mp.rewardDesc != null)
            {
                missionWnd.SetRewardDesc(mp.rewardDesc);
            }
            else
            {
                _rewardItemIds   = mp.rewardItemIds;
                _rewardItemCount = mp.rewardItemCount;
                missionWnd.UpdateRewardItem(mp.rewardItemIds.Count);
            }
        }

        // goal
        if (_currentGoals != null)
        {
            AttachGoalEvent();
            missionWnd.UpdateGoalItem(_currentGoals.Count);
        }
    }
 void OnDestroyMissionNode(UIMissionGoalNode node)
 {
     node.onTitleClick     -= OnMissionTitileClick;
     node.onDeleteBtnClick -= OnMissionDeleteBtnClick;
     node.onTrackBoxActive -= OnMissionTrackBoxChecked;
 }
 void OnDestroyViewNode(UIMissionGoalNode node)
 {
     node.onSetChildNodeContent -= OnSetViewNodeChildContent;
 }
    void Update()
    {
        if (!_initialized)
        {
            return;
        }

        if (missionTrackWnd.isShow)
        {
            for (int i = 0; i < missionTrackWnd.viewNodes.Count; i++)
            {
                UIMissionGoalNode vNode = missionTrackWnd.viewNodes[i];
                int mission_id          = m_TrackedIds[i];
                for (int j = 0; j < vNode.childNode.Count; j++)
                {
                    UIMissionGoalNode child_node = vNode.childNode[j].GetComponent <UIMissionGoalNode>();
                    MissionGoal       mg         = PeCustomScene.Self.scenario.missionMgr.GetGoal(child_node.value2, mission_id);
                    if (mg != null)
                    {
                        if (mg is MissionGoal_Item)
                        {
                            MissionGoal_Item mgi = mg as MissionGoal_Item;
                            int current          = mgi.current;
                            int target           = mgi.target;

                            if (current != child_node.value0 || target != child_node.value1)
                            {
                                if (mgi.achieved)
                                {
                                    child_node.titleColor = new Color(0.65f, 0.65f, 0.65f);
                                }
                                else
                                {
                                    child_node.titleColor = Color.white;
                                }
                                string text = mgi.text + " " + mgi.current.ToString() + "/" + mgi.target.ToString();

                                child_node.SetContent(text, false, false);

                                child_node.value0 = current;
                                child_node.value1 = target;
                            }
                        }
                        else if (mg is MissionGoal_Kill)
                        {
                            MissionGoal_Kill mgi = mg as MissionGoal_Kill;
                            int current          = mgi.current;
                            int target           = mgi.target;
                            if (current != child_node.value0 || target != child_node.value1)
                            {
                                if (mgi.achieved)
                                {
                                    child_node.titleColor = new Color(0.75f, 0.75f, 0.75f);
                                }
                                else
                                {
                                    child_node.titleColor = Color.white;
                                }
                                string text = mgi.text + " " + mgi.current.ToString() + "/" + mgi.target.ToString();

                                child_node.SetContent(text, false, false);

                                child_node.value0 = current;
                                child_node.value1 = target;
                            }
                        }
                    }
                }
            }
        }
    }