Beispiel #1
0
    private void RefreshAssistList()
    {
        if (ChaseTask == null)
        {
            return;
        }
        _current = null;

        var list = new List <AssistMemberInfo>();

        if (moduleAssist.AssistList != null && moduleAssist.AssistList.Length > 0)
        {
            for (var i = 0; i < moduleAssist.AssistList.Length; i++)
            {
                var info = moduleAssist.AssistList[i];
                if (info.playerInfo == null && info.npcId == 0)
                {
                    continue;
                }

                //未通关关卡隐藏助战Npc
                if (info.type == 1)
                {
                    if (ChaseTask?.stageInfo.npcAssist == 0 ||
                        (ChaseTask?.stageInfo.npcAssist == 1 && ChaseTask?.taskData?.state == 1))
                    {
                        continue;
                    }
                }

                if (info.type == 1)
                {
                    var npcInfo = moduleNpc.GetTargetNpc((NpcTypeID)info.npcId);
                    if (null == npcInfo)
                    {
                        Logger.LogError($"未查到Npc相关信息。异常NpcID = {info.npcId}");
                        continue;
                    }
                }
                list.Add(new AssistMemberInfo(info));
            }
        }

        if (dataSource == null)
        {
            dataSource = new DataSource <AssistMemberInfo>(list, _scrollView, OnSetData);
        }
        else
        {
            dataSource.SetItems(list);
        }
    }
Beispiel #2
0
    public override bool Initialize(params object[] p)
    {
        if (!base.Initialize(p))
        {
            return(false);
        }

        RefreshAssistList();
        _toggleGroup?.onAnyToggleOn.AddListener(t =>
        {
            var dataInter = t.GetComponentInParent <IScrollViewData <ISourceItem> >();
            _current      = dataInter?.GetItemData() as AssistMemberInfo;
        });

        _startButton?.onClick.AddListener(CheckStartChaseCondition);
        return(true);
    }
Beispiel #3
0
    private void OnSetData(RectTransform node, AssistMemberInfo data)
    {
        var t0 = node.transform.Find("player");
        var t1 = node.transform.Find("npc");

        if (data.Relation != CommonRelation.Npc)
        {
            t1.SafeSetActive(false);
            t0.SafeSetActive(true);
            var Presct = t0?.GetComponentDefault <FriendPrecast>();
            Presct?.DelayAddData(data, 1);
            Presct?.SetToggleGroup(_toggleGroup);
        }
        else
        {
            t0.SafeSetActive(false);
            t1.SafeSetActive(true);
            var Presct = t1?.GetComponentDefault <NpcPrecast>();
            Presct?.InitData(data);
            Presct?.SetToggleGroup(_toggleGroup);
        }
    }