Ejemplo n.º 1
0
 void OnSetGoalItemContent(int index, UIMissionGoalItem item)
 {
     m_MissionGoalItems[index].index = index;
     if (onSetGoalItemContent != null)
     {
         onSetGoalItemContent(m_MissionGoalItems[index]);
     }
 }
    void Update()
    {
        if (!_initialized)
        {
            return;
        }

        if (missionWnd.isShow)
        {
            if (_currentGoals != null)
            {
                for (int i = 0; i < _goals.Count; i++)
                {
                    MissionGoal mg = _goals[i];


                    if (mg as MissionGoal_Item != null)
                    {
                        MissionGoal_Item  mgi  = mg as MissionGoal_Item;
                        UIMissionGoalItem item = missionWnd.GetGoalItem(i);

                        int current = mgi.current;
                        int target  = mgi.target;
                        if (item != null && (current != item.value0 || target != item.value1))
                        {
                            string text = mgi.text + " " + mgi.current.ToString() + "/" + mgi.target.ToString();

                            item.itemText = text;

                            item.value0 = current;
                            item.value1 = target;
                        }
                    }
                    else if (mg as MissionGoal_Kill != null)
                    {
                        MissionGoal_Kill  mgi  = mg as MissionGoal_Kill;
                        UIMissionGoalItem item = missionWnd.GetGoalItem(i);

                        int current = mgi.current;
                        int target  = mgi.target;
                        if (item != null && (current != item.value0 || target != item.value1))
                        {
                            string text = mgi.text + " " + mgi.current.ToString() + "/" + mgi.target.ToString();

                            item.itemText = text;

                            item.value0 = current;
                            item.value1 = target;
                        }
                    }
                }
            }
        }
    }
    void OnMissionGoalAchieved(int goal_id, int mission_id)
    {
        int index = _currentGoals.IndexOfKey(goal_id);
        UIMissionGoalItem item = missionWnd.GetGoalItem(index);

        if (item != null)
        {
            MissionGoal mg = _currentGoals[goal_id];
            if (!mg.achieved)
            {
                item.textColor = Color.white;
            }
            else
            {
                item.textColor = Color.green;
            }
        }
    }
    void OnSetGoalItemContent(UIMissionGoalItem item)
    {
        MissionGoal mg = _goals[item.index];

        if (!mg.achieved)
        {
            item.textColor = Color.white;
        }
        else
        {
            item.textColor = Color.green;
        }

        if (mg as MissionGoal_Bool != null)
        {
            MissionGoal_Bool mgb = mg as MissionGoal_Bool;
            item.SetBoolContent(mgb.text, mgb.achieved);
        }
        else if (mg as MissionGoal_Item != null)
        {
            MissionGoal_Item mgi  = mg as MissionGoal_Item;
            string           text = mgi.text + " " + mgi.current.ToString() + "/" + mgi.target.ToString();

            item.value0 = mgi.current;
            item.value1 = mgi.target;

            if (mgi.item.isSpecificPrototype)
            {
                string[] sprites = ItemAsset.ItemProto.GetIconName(mgi.item.Id);
                if (sprites != null)
                {
                    item.SetItemContent(text, sprites[0]);
                }
                else
                {
                    item.SetItemContent(text);
                }
            }
            else
            {
                item.SetItemContent(text);
            }
        }
        else if (mg as MissionGoal_Kill != null)
        {
            MissionGoal_Kill mgk = mg as MissionGoal_Kill;

            string           text = mgk.text + " " + mgk.current.ToString() + "/" + mgk.target.ToString();
            MissionGoal_Kill mgi  = mg as MissionGoal_Kill;

            item.value0 = mgi.current;
            item.value1 = mgi.target;

            if (item != null)
            {
                if (mgi.monster.isSpecificEntity)
                {
                    SpawnPoint sp = PeCustomScene.Self.spawnData.GetSpawnPoint(mgi.id);
                    if (sp as MonsterSpawnPoint != null)
                    {
                        MonsterProtoDb.Item proto = MonsterProtoDb.Get(sp.ID);
                        item.SetItemContent(text, proto.icon);
                    }
                    else if (sp as NPCSpawnPoint != null)
                    {
                        NpcProtoDb.Item proto = NpcProtoDb.Get(sp.ID);
                        item.SetItemContent(text, proto.icon);
                    }
                    else
                    {
                        item.SetItemContent(text);
                    }
                }
                else if (mgi.monster.isSpecificPrototype)
                {
                    MonsterProtoDb.Item proto = MonsterProtoDb.Get(mgi.monster.Id);
                    if (proto != null)
                    {
                        item.SetItemContent(text, proto.icon);
                    }
                    else
                    {
                        item.SetItemContent(text);
                    }
                }
                else
                {
                    item.SetItemContent(text);
                }
            }
            else
            {
                item.SetItemContent(text);
            }
        }
    }