Ejemplo n.º 1
0
 public void Update()
 {
     if (this.m_kEffectList.Count == 0)
     {
         return;
     }
     if (this.m_kLifeTimeEffectList.Count > 0)
     {
         uint[] array = new uint[this.m_kLifeTimeEffectList.Count];
         this.m_kLifeTimeEffectList.CopyTo(array);
         uint[] array2 = array;
         for (int i = 0; i < array2.Length; i++)
         {
             uint         num        = array2[i];
             NkEffectUnit effectUnit = this.GetEffectUnit(num);
             if (effectUnit == null)
             {
                 this.m_kLifeTimeEffectList.Remove(num);
             }
             else if (effectUnit.m_goEffect == null || effectUnit.IsFinishedLifeTime() || effectUnit.MakeScene != Scene.CurScene)
             {
                 if (effectUnit.EffectKind == "WARP")
                 {
                     NrTSingleton <NkClientLogic> .Instance.Warp(num);
                 }
                 this.DeleteEffect(num);
             }
         }
     }
 }
Ejemplo n.º 2
0
    public uint AddCenterPosEffect(string effectKind, NkBattleChar kBattleChar, Vector3 v3CenterPos)
    {
        if (this.m_bDontMakeEffect && NrTSingleton <NkEffectManager> .Instance.isEffectLimit(effectKind))
        {
            return(0u);
        }
        if (kBattleChar == null)
        {
            return(0u);
        }
        Nr3DCharBase nr3DCharBase = kBattleChar.Get3DChar();

        if (nr3DCharBase == null)
        {
            return(0u);
        }
        EFFECT_INFO effectInfo = NrTSingleton <NkEffectManager> .Instance.GetEffectInfo(effectKind);

        if (effectInfo == null)
        {
            return(0u);
        }
        Transform effectPos = nr3DCharBase.GetEffectPos(effectInfo.EFFECT_POS);

        if (null != effectPos)
        {
            v3CenterPos.y = effectPos.position.y;
        }
        NkEffectUnit kEffectUnit = new NkEffectUnit(effectInfo, nr3DCharBase.GetRootGameObject(), v3CenterPos);

        return(this._AddEffect(kEffectUnit));
    }
Ejemplo n.º 3
0
    private void _AddReverseEffect(NkEffectUnit kEffectUnit)
    {
        if (!this.m_kReserveEffect.ContainsKey(kEffectUnit.EffectKind))
        {
            this.RequestEffectBundle(kEffectUnit.EffectKind, false);
        }
        List <NkEffectUnit> list = this.m_kReserveEffect[kEffectUnit.EffectKind];

        list.Add(kEffectUnit);
    }
Ejemplo n.º 4
0
    public void DeleteEffect(uint nEffectRegistNum)
    {
        NkEffectUnit effectUnit = this.GetEffectUnit(nEffectRegistNum);

        if (effectUnit != null)
        {
            this._DeleteEffect(effectUnit);
            this.m_kEffectList.Remove(nEffectRegistNum);
        }
    }
Ejemplo n.º 5
0
    private void RegistAdaptor(GameObject goEffect, NkEffectUnit kEffectUnit)
    {
        TsAnimationEventConnector componentInChildren = goEffect.GetComponentInChildren <TsAnimationEventConnector>();

        if (null != componentInChildren)
        {
            NkBattleChar      casterChar        = kEffectUnit.CasterChar;
            NrCharInfoAdaptor nrCharInfoAdaptor = NkUtil.GuarranteeComponent <NrCharInfoAdaptor>(goEffect);
            nrCharInfoAdaptor.SetCharInfoInterface(new NrCharInfoLogic(casterChar));
        }
    }
Ejemplo n.º 6
0
    public uint AddEffect(string effectKind, NrCharBase kCharBase)
    {
        if (kCharBase == null)
        {
            return(0u);
        }
        Nr3DCharBase nr3DCharBase = kCharBase.Get3DChar();

        if (nr3DCharBase == null)
        {
            return(0u);
        }
        EFFECT_INFO effectInfo = NrTSingleton <NkEffectManager> .Instance.GetEffectInfo(effectKind);

        if (effectInfo == null)
        {
            return(0u);
        }
        GameObject gameObject = nr3DCharBase.GetRootGameObject();
        Vector3    v3Target   = Vector3.zero;
        Transform  effectPos  = nr3DCharBase.GetEffectPos(effectInfo.EFFECT_POS);

        if (null != effectPos)
        {
            v3Target = effectPos.position;
            if (effectInfo.EFFECT_POS == eEFFECT_POS.CENTERDM)
            {
                gameObject = effectPos.gameObject;
            }
        }
        if (effectInfo.EFFECT_POS == eEFFECT_POS.BONE)
        {
            gameObject = nr3DCharBase.GetBoneRootObject();
            if (gameObject == null)
            {
                gameObject = nr3DCharBase.GetRootGameObject();
            }
            v3Target   = Vector3.zero;
            v3Target.y = -1f;
        }
        NkEffectUnit kEffectUnit;

        if (effectInfo.EFFECT_POS == eEFFECT_POS.CENTERDM)
        {
            kEffectUnit = new NkEffectUnit(effectInfo, gameObject);
        }
        else
        {
            kEffectUnit = new NkEffectUnit(effectInfo, gameObject, v3Target);
        }
        return(this._AddEffect(kEffectUnit));
    }
Ejemplo n.º 7
0
 private void _DeleteEffect(NkEffectUnit kEffectUnit)
 {
     if (kEffectUnit.m_goEffect)
     {
         UnityEngine.Object.Destroy(kEffectUnit.m_goEffect);
         kEffectUnit.m_goEffect = null;
     }
     if (kEffectUnit.DelCallBack != null)
     {
         kEffectUnit.DelCallBack();
     }
     this.m_kLifeTimeEffectList.Remove(kEffectUnit.RegistNum);
 }
Ejemplo n.º 8
0
    private uint _AddEffect(NkEffectUnit kEffectUnit)
    {
        uint num = this._GetNextRegistNum();

        kEffectUnit.RegistNum = num;
        if (this._IsImmediateMake(kEffectUnit.EffectKind))
        {
            this._MakeEffect(kEffectUnit);
        }
        else
        {
            this._AddReverseEffect(kEffectUnit);
        }
        return(num);
    }
Ejemplo n.º 9
0
    public uint AddEffect(string effectKind, Vector3 v3Target)
    {
        if (Vector3.zero == v3Target)
        {
            return(0u);
        }
        EFFECT_INFO effectInfo = NrTSingleton <NkEffectManager> .Instance.GetEffectInfo(effectKind);

        if (effectInfo == null)
        {
            return(0u);
        }
        NkEffectUnit kEffectUnit = new NkEffectUnit(effectInfo, v3Target);

        return(this._AddEffect(kEffectUnit));
    }
Ejemplo n.º 10
0
    public uint AddCasterEffect(string effectKind, NkBattleChar kBattleChar)
    {
        if (this.m_bDontMakeEffect && NrTSingleton <NkEffectManager> .Instance.isEffectLimit(effectKind))
        {
            return(0u);
        }
        if (kBattleChar == null)
        {
            return(0u);
        }
        Nr3DCharBase nr3DCharBase = kBattleChar.Get3DChar();

        if (nr3DCharBase == null)
        {
            return(0u);
        }
        Transform effectTarget = nr3DCharBase.GetEffectTarget();

        if (effectTarget == null)
        {
            return(0u);
        }
        EFFECT_INFO effectInfo = NrTSingleton <NkEffectManager> .Instance.GetEffectInfo(effectKind);

        if (effectInfo == null)
        {
            return(0u);
        }
        GameObject goTarget  = nr3DCharBase.GetRootGameObject();
        Transform  effectPos = nr3DCharBase.GetEffectPos(effectInfo.EFFECT_POS);

        if (null != effectPos && effectInfo.EFFECT_POS == eEFFECT_POS.CENTERDM)
        {
            goTarget = effectPos.gameObject;
        }
        NkEffectUnit kEffectUnit;

        if (effectInfo.EFFECT_POS == eEFFECT_POS.CENTERDM)
        {
            kEffectUnit = new NkEffectUnit(effectInfo, goTarget);
        }
        else
        {
            kEffectUnit = new NkEffectUnit(effectInfo, kBattleChar);
        }
        return(this._AddEffect(kEffectUnit));
    }
Ejemplo n.º 11
0
    private void _MakeEffect(NkEffectUnit kEffectUnit, GameObject goOriginal)
    {
        GameObject gameObject = this._GetEffectGameObject(kEffectUnit.EffectKind, goOriginal);

        if (null == gameObject)
        {
            Debug.LogError(kEffectUnit.EffectKind + "Make Fail:");
            return;
        }
        kEffectUnit.m_goEffect = gameObject;
        kEffectUnit.MakeProcess();
        this.RegistAdaptor(gameObject, kEffectUnit);
        switch (kEffectUnit.EffectType)
        {
        case eEFFECT_TYPE.INSTANT:
        case eEFFECT_TYPE.CHAREFFECT:
            if (gameObject.animation != null)
            {
                if (!gameObject.animation.enabled)
                {
                    gameObject.animation.enabled = true;
                }
                gameObject.animation.Play();
            }
            break;

        case eEFFECT_TYPE.BULLET:
        {
            gameObject.SetActive(false);
            TrailRenderer componentInChildren = gameObject.GetComponentInChildren <TrailRenderer>();
            if (componentInChildren != null)
            {
                componentInChildren.enabled   = false;
                kEffectUnit.m_TrailerRenderer = componentInChildren;
            }
            NkUtil.SetAllChildActive(gameObject, false);
            break;
        }
        }
        this.m_kEffectList.Add(kEffectUnit.RegistNum, kEffectUnit);
        if (kEffectUnit.LifeTime > 0f)
        {
            this.m_kLifeTimeEffectList.Add(kEffectUnit.RegistNum);
        }
    }
Ejemplo n.º 12
0
    public void SetActiveEffect(uint nEffectRegistNum, bool bActive)
    {
        NkEffectUnit effectUnit = this.GetEffectUnit(nEffectRegistNum);

        if (effectUnit != null && effectUnit.m_goEffect != null)
        {
            effectUnit.m_goEffect.SetActive(bActive);
            Renderer[] componentsInChildren = effectUnit.m_goEffect.GetComponentsInChildren <Renderer>();
            if (componentsInChildren != null)
            {
                Renderer[] array = componentsInChildren;
                for (int i = 0; i < array.Length; i++)
                {
                    Renderer renderer = array[i];
                    renderer.enabled = bActive;
                }
            }
        }
    }
Ejemplo n.º 13
0
    private void PlayEffect()
    {
        List <GameObject> gameObjectInCurrentSceneType = this.GetGameObjectInCurrentSceneType(this._charKind);

        if (gameObjectInCurrentSceneType == null)
        {
            return;
        }
        foreach (GameObject current in gameObjectInCurrentSceneType)
        {
            uint nEffectRegistNum = NrTSingleton <NkEffectManager> .Instance.AddEffect(this._effectKind, current);

            NkEffectUnit effectUnit = NrTSingleton <NkEffectManager> .Instance.GetEffectUnit(nEffectRegistNum);

            if (effectUnit != null && !(effectUnit.m_goEffect == null))
            {
                effectUnit.m_goEffect.transform.localPosition = this._effectControllPos;
            }
        }
    }
Ejemplo n.º 14
0
    public uint AddEffect(string effectKind, NkBattleChar kBattleChar)
    {
        if (this.m_bDontMakeEffect && NrTSingleton <NkEffectManager> .Instance.isEffectLimit(effectKind))
        {
            return(0u);
        }
        if (kBattleChar == null)
        {
            return(0u);
        }
        EFFECT_INFO effectInfo = NrTSingleton <NkEffectManager> .Instance.GetEffectInfo(effectKind);

        if (effectInfo == null)
        {
            return(0u);
        }
        NkEffectUnit kEffectUnit = new NkEffectUnit(effectInfo, kBattleChar);

        return(this._AddEffect(kEffectUnit));
    }
Ejemplo n.º 15
0
    public uint AddEffect(string effectKind, GameObject goTarget)
    {
        if (this.m_bDontMakeEffect && NrTSingleton <NkEffectManager> .Instance.isEffectLimit(effectKind))
        {
            return(0u);
        }
        if (goTarget == null)
        {
            return(0u);
        }
        EFFECT_INFO effectInfo = NrTSingleton <NkEffectManager> .Instance.GetEffectInfo(effectKind);

        if (effectInfo == null)
        {
            return(0u);
        }
        NkEffectUnit kEffectUnit = new NkEffectUnit(effectInfo, goTarget);

        return(this._AddEffect(kEffectUnit));
    }
Ejemplo n.º 16
0
    public uint AddEffectByTarget(string effectKind, NrCharBase kCharBase, Vector3 diffPos)
    {
        if (kCharBase == null)
        {
            return(0u);
        }
        Nr3DCharBase nr3DCharBase = kCharBase.Get3DChar();

        if (nr3DCharBase == null)
        {
            return(0u);
        }
        EFFECT_INFO effectInfo = NrTSingleton <NkEffectManager> .Instance.GetEffectInfo(effectKind);

        if (effectInfo == null)
        {
            return(0u);
        }
        NkEffectUnit kEffectUnit = new NkEffectUnit(effectInfo, nr3DCharBase.GetRootGameObject(), diffPos);

        return(this._AddEffect(kEffectUnit));
    }
Ejemplo n.º 17
0
 public uint ExternAddEffect(NkEffectUnit kEffectUnit)
 {
     return(this._AddEffect(kEffectUnit));
 }