示例#1
0
 public void reset()
 {
     m_node      = null;
     m_enemyView = null;
     m_updateTime = float.MaxValue;
     m_hitEffect = BeltItem.EffectTypeEnum.ETE_NORMAL;
 }
示例#2
0
    public void kill(BeltItem.EffectTypeEnum effectType, bool propagate = false)
    {
        m_hitEffect = effectType;

        m_effect = null;
        switch(effectType)
        {
            case BeltItem.EffectTypeEnum.ETE_FIRE:
                m_effect = EffectsManager.instance.getEffect(Vector2.zero, Quaternion.identity, EffectsManager.FXType.FXT_Fire01);
                break;
            case BeltItem.EffectTypeEnum.ETE_ICE:
                m_effect = EffectsManager.instance.getEffect(Vector2.zero, Quaternion.identity, EffectsManager.FXType.FXT_Ice01);
                break;
            case BeltItem.EffectTypeEnum.ETE_SHOCK:
                m_effect = EffectsManager.instance.getEffect(Vector2.zero, Quaternion.identity, EffectsManager.FXType.FXT_Shock01);
                break;

        }

        if (m_effect != null)
        {
            m_effect.GetComponent<SpriteRenderer>().sortingLayerID = m_enemyView.GetComponent<SpriteRenderer>().sortingLayerID;
            m_effect.GetComponent<SpriteRenderer>().sortingOrder = m_enemyView.GetComponent<SpriteRenderer>().sortingOrder + 1;

            m_effect.GetComponent<Transform>().SetParent(this.GetComponent<Transform>(), false);

            m_effect.triggerEffect();
        }
        if (propagate &&
            effectType != BeltItem.EffectTypeEnum.ETE_NORMAL &&
            effectType != BeltItem.EffectTypeEnum.ETE_HEAVY &&
            effectType == m_enemyView.m_type)
        {
            propagateDir(0, -1, effectType);
            propagateDir(0, 1, effectType);
            propagateDir(-1, 0, effectType);
            propagateDir(1, 0, effectType);
        }

        SceneManager.instance.getUIScript().getEnemyCounter().updateCounter(-1);

        m_states[m_curState].resetState();

        m_updateTime = 0.03f;
        m_curState = (int)StateEnum.SE_DEAD;
    }