Пример #1
0
 public void CacheBulletDataUseResource(BulletData bulletData, Player player = null)
 {
     if (!(bulletData == null))
     {
         BulletData.BulletBase data = bulletData.data;
         string effectName          = data.GetEffectName(player);
         if (!effectName.IsNullOrWhiteSpace())
         {
             CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, effectName);
         }
         CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, data.landHiteffectName);
         if (data.endBullet != null)
         {
             CacheBulletDataUseResource(data.endBullet, null);
         }
         BulletData.BulletFunnel dataFunnel = bulletData.dataFunnel;
         if (dataFunnel != null && dataFunnel.bitBullet != null)
         {
             CacheBulletDataUseResource(dataFunnel.bitBullet, null);
         }
         BulletData.BulletMine dataMine = bulletData.dataMine;
         if (dataMine != null && dataMine.explodeBullet != null)
         {
             CacheBulletDataUseResource(dataMine.explodeBullet, null);
         }
         BulletData.BulletTracking dataTracking = bulletData.dataTracking;
         if (dataTracking != null && dataTracking.emissionBullet != null)
         {
             CacheBulletDataUseResource(dataTracking.emissionBullet, null);
         }
         BulletData.BulletUndead dataUndead = bulletData.dataUndead;
         if (dataUndead != null && dataUndead.closeBullet != null)
         {
             CacheBulletDataUseResource(dataUndead.closeBullet, null);
         }
         BulletData.BulletDig dataDig = bulletData.dataDig;
         if (dataDig != null && dataDig.flyOutBullet != null)
         {
             CacheBulletDataUseResource(dataDig.flyOutBullet, null);
         }
         BulletData.BulletActionMine dataActionMine = bulletData.dataActionMine;
         if (dataActionMine != null && dataActionMine.explodeBullet != null && dataActionMine.actionBullet != null)
         {
             CacheBulletDataUseResource(dataActionMine.explodeBullet, null);
             CacheBulletDataUseResource(dataActionMine.actionBullet, null);
             CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, dataActionMine.appearEffectName);
             CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, dataActionMine.actionEffectName1);
             CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, dataActionMine.actionEffectName2);
         }
     }
 }
    }    //IL_0001: Unknown result type (might be due to invalid IL or missing references)

    //IL_0006: Unknown result type (might be due to invalid IL or missing references)


    public void Initialize(StageObject attacker, StageObject target, AttackInfo atkInfo)
    {
        //IL_0124: Unknown result type (might be due to invalid IL or missing references)
        //IL_0129: Unknown result type (might be due to invalid IL or missing references)
        //IL_01fe: Unknown result type (might be due to invalid IL or missing references)
        //IL_0203: Expected O, but got Unknown
        //IL_0236: Unknown result type (might be due to invalid IL or missing references)
        //IL_023b: Unknown result type (might be due to invalid IL or missing references)
        //IL_0254: Unknown result type (might be due to invalid IL or missing references)
        //IL_0259: Unknown result type (might be due to invalid IL or missing references)
        //IL_0261: Unknown result type (might be due to invalid IL or missing references)
        //IL_0266: Unknown result type (might be due to invalid IL or missing references)
        //IL_0276: Unknown result type (might be due to invalid IL or missing references)
        //IL_027b: Unknown result type (might be due to invalid IL or missing references)
        //IL_0288: Unknown result type (might be due to invalid IL or missing references)
        //IL_0293: Unknown result type (might be due to invalid IL or missing references)
        //IL_029d: Unknown result type (might be due to invalid IL or missing references)
        //IL_02a2: Unknown result type (might be due to invalid IL or missing references)
        //IL_02a7: Unknown result type (might be due to invalid IL or missing references)
        //IL_02bb: Unknown result type (might be due to invalid IL or missing references)
        //IL_02c8: Unknown result type (might be due to invalid IL or missing references)
        //IL_02de: Unknown result type (might be due to invalid IL or missing references)
        //IL_02e3: Expected O, but got Unknown
        //IL_02f2: Unknown result type (might be due to invalid IL or missing references)
        //IL_0304: Unknown result type (might be due to invalid IL or missing references)
        //IL_0309: Unknown result type (might be due to invalid IL or missing references)
        //IL_0315: Unknown result type (might be due to invalid IL or missing references)
        //IL_0322: Unknown result type (might be due to invalid IL or missing references)
        //IL_0327: Expected O, but got Unknown
        if (attacker == null)
        {
            RequestDestroy();
        }
        else
        {
            m_atkInfo  = atkInfo;
            m_attacker = attacker;
            m_target   = target;
            if (m_attacker is Player)
            {
                Player player = m_attacker as Player;
                if (player != null)
                {
                    m_attackerPlayer = player;
                    m_attackMode     = player.attackMode;
                }
            }
            if (m_attacker is Enemy)
            {
                Enemy enemy = m_attacker as Enemy;
                if (enemy != null)
                {
                    m_attackerEnemy = enemy;
                }
            }
            BulletData bulletData = null;
            if (atkInfo != null)
            {
                bulletData = atkInfo.bulletData;
            }
            else
            {
                Player player2 = attacker as Player;
                if (player2 != null)
                {
                    AtkAttribute atk = new AtkAttribute();
                    player2.GetAtk(null, ref atk);
                    PlayerAttackAttribute = atk;
                    SkillInfo.SkillParam actSkillParam = player2.skillInfo.actSkillParam;
                    if (actSkillParam != null)
                    {
                        bulletData          = actSkillParam.bullet;
                        m_atkInfoNames      = actSkillParam.tableData.attackInfoNames;
                        SkillParamForBullet = actSkillParam;
                    }
                    if (player2.targetingPoint != null)
                    {
                        m_targetingPoint = player2.targetingPoint.param.targetPos;
                    }
                }
            }
            if (bulletData == null)
            {
                RequestDestroy();
            }
            else
            {
                m_aliveTimer = bulletData.data.appearTime;
                BulletData.BulletTracking dataTracking = bulletData.dataTracking;
                if (dataTracking == null)
                {
                    RequestDestroy();
                }
                else
                {
                    m_trackingData        = dataTracking;
                    m_isDeleted           = false;
                    m_isEmitting          = false;
                    m_moveThreshold       = dataTracking.moveThreshold;
                    m_attackIntervalTimer = dataTracking.attackInterval;
                    m_emitInterval        = dataTracking.emitInterval;
                    m_emissionNum         = dataTracking.emissionNum;
                    if (m_emissionNum > 0)
                    {
                        m_exAtkList       = new AtkAttribute[m_emissionNum];
                        m_moveSpeed       = bulletData.data.speed;
                        m_cachedTransform = this.get_transform();
                        m_cachedTransform.set_parent((!MonoBehaviourSingleton <StageObjectManager> .IsValid()) ? MonoBehaviourSingleton <EffectManager> .I._transform : MonoBehaviourSingleton <StageObjectManager> .I._transform);
                        Vector3 position = Vector3.get_zero();
                        position   = ((m_target != null) ? m_target._position : ((!(m_targetingPoint != Vector3.get_zero())) ? (m_attacker._position + m_attacker._forward * 2f) : m_targetingPoint));
                        position.y = 0f;
                        m_cachedTransform.set_position(position);
                        m_cachedTransform.set_rotation(Quaternion.get_identity());
                        Transform effect = EffectManager.GetEffect(bulletData.data.effectName, this.get_transform());
                        effect.set_localPosition(bulletData.data.dispOffset);
                        effect.set_localRotation(Quaternion.Euler(bulletData.data.dispRotation));
                        effect.set_localScale(Vector3.get_one());
                        m_effectObj      = effect.get_gameObject();
                        m_effectAnimator = m_effectObj.GetComponent <Animator>();
                        RequestMain();
                    }
                    else
                    {
                        Log.Error("BulletTracking.emissionNum is zero!!");
                        RequestDestroy();
                    }
                }
            }
        }
    }