예제 #1
0
    private void DrawLine(INpcMessage rInfo, Transform targetPos)
    {
        if (!targetPos || !_lineRenderer || !(_lineEffect?.gameObject.activeInHierarchy ?? false))
        {
            return;
        }

        var ps = GeneralConfigInfo.defaultConfig.lineParams;

        if (ps.Length < 1)
        {
            Logger.LogError("NpcGroup::DrawLine: GeneralConfigInfo.lineParams is null.");
            return;
        }

        var idx = rInfo.fetterStage < 0 ? 0 : rInfo.fetterStage >= ps.Length ? ps.Length - 1 : rInfo.fetterStage;
        var p   = ps[idx];

        _lineRenderer.startWidth    = p.startWidth;
        _lineRenderer.endWidth      = p.endWidth;
        _lineRenderer.startColor    = p.startColor;
        _lineRenderer.endColor      = p.endColor;
        _lineRenderer.useWorldSpace = true;
        _lineRenderer.SetPositions(new[] { targetPos.position, _lineEffect.transform.position });
    }
예제 #2
0
    private void Start()
    {
        if (effectNode == null)
        {
            effectNode = transform.GetComponent <Transform>("stars/thumb");
        }
        if (lineLight == null)
        {
            lineLight = transform.GetComponent <LineRenderer>("stars/line/Particle System");
        }

        actorRenderer = transform.GetComponent <ParticleSystemRenderer>("juese");
        animEffect    = transform.GetComponent <Transform>("juese/ani");

        if (actorRenderer)
        {
            originColor    = actorRenderer.sharedMaterial.GetColor(TintColor);
            highLightColor = new Color(originColor.r, originColor.g, originColor.b, 0.9f);
//            Logger.LogError($"{npcId}  {originColor.ToString()}   {highLightColor.ToString()}");
        }
        animEffect.SafeSetActive(false);

        cameraData.node = this;
        npcInfo         = Module_Npc.instance?.GetTargetNpc(npcId);
        starRoot?.SafeSetActive(false);
        previewSlider = new PreviewSlider(this, null);


        DrawGrayLine();
    }
예제 #3
0
    private void _Packet(ScNpcPerfusion msg)
    {
        moduleGlobal.UnLockUI();
        INpcMessage npcInfo = GetTargetNpc((NpcTypeID)msg.npcId);

        npcInfo.starLv  = msg.starLv;
        npcInfo.starExp = msg.startExp;
        DispatchEvent(NpcPerfusionChangeEvent);
        DispatchModuleEvent(Response_NpcPerfusionChange, msg);
    }
예제 #4
0
    public void SetNpcInfo(INpcMessage rInfo, Transform targetPos)
    {
        if (rInfo == null)
        {
            return;
        }
        AssertInit();
        AtlasHelper.SetShared(_icon, rInfo.icon);
        SetRelationShip(rInfo.fetterStage);

        DrawLine(rInfo, targetPos);
    }
예제 #5
0
    public override bool Initialize(params object[] p)
    {
        var watcher = TimeWatcher.Watch("star panel init");

        if (!base.Initialize(p))
        {
            return(false);
        }

        _npcId = (NpcTypeID)p[0];
        _npc   = moduleNpc.GetTargetNpc(_npcId);
        AtlasHelper.SetAvatar(_headIcon, _npc?.icon);

        watcher.See("111");
        excuteButton?.onClick.AddListener(OnExcute);
        RefreshUI();
        watcher.See("222");
        return(true);
    }
예제 #6
0
    private void RefreshAttribute()
    {
        //TODO 通过NpcId获得Npc信息
        INpcMessage npc = moduleNpc.GetTargetNpc(_npcId);

        if (null == npc)
        {
            return;
        }

        Util.ClearChildren(_attributeRoot);
        var info = ConfigManager.Get <NpcInfo>((int)_npcId);

        for (var i = 0; i < info.attributes.Length; i++)
        {
            var t = _attributeRoot.AddNewChild(_templete);
            t.SafeSetActive(true);
            using (var binder = new RelationShipAttribute()
            {
                name = t.GetComponent <Text>(),
                relationShip = t.GetComponent <Text>("relaiton"),
                value = t.GetComponent <Text>("left_txt")
            })
            {
                binder.Bind(i, !npc.isUnlockEngagement || npc.fetterStage < i, info.attributes[i]);
            }
        }

        using (var binder = new RelationShipAttribute()
        {
            value = _desc
        })
        {
            var index = info.attributes.Length;
            binder.Bind(index, npc.fetterStage < index, ConfigManager.Get <BuffInfo>(info.constellationBuff), npc.starLv);
        }
    }