Ejemplo n.º 1
0
    private bool IsSkillApplyShield(SkillItemTable.SkillItemData tableData)
    {
        if (tableData == null)
        {
            return(false);
        }
        if (!tableData.supportType.IsNullOrEmpty() && Array.IndexOf(tableData.supportType, BuffParam.BUFFTYPE.SHIELD) >= 0)
        {
            return(true);
        }
        if (!tableData.buffTableIds.IsNullOrEmpty())
        {
            if (!Singleton <BuffTable> .IsValid())
            {
                return(false);
            }
            BuffTable.BuffData buffData = null;
            for (int i = 0; i < tableData.buffTableIds.Length; i++)
            {
                buffData = Singleton <BuffTable> .I.GetData((uint)tableData.buffTableIds[i]);

                if (buffData.type == BuffParam.BUFFTYPE.SHIELD)
                {
                    return(true);
                }
            }
        }
        return(false);
    }
    protected void AddBuffAction(Player _player)
    {
        if (m_buffIdList != null && m_buffIdList.Count >= 1 && base.bulletSkillInfoParam != null && !(_player == null) && !_player.isDead)
        {
            int i = 0;
            for (int count = m_buffIdList.Count; i < count; i++)
            {
                int num = m_buffIdList[i];
                if (Singleton <BuffTable> .IsValid() && num > 0)
                {
                    BuffTable.BuffData data = Singleton <BuffTable> .I.GetData((uint)num);

                    if (data != null)
                    {
                        BuffParam.BuffData buffData = new BuffParam.BuffData();
                        buffData.type      = data.type;
                        buffData.interval  = data.interval;
                        buffData.valueType = data.valueType;
                        buffData.time      = data.duration;
                        float num2 = (float)data.value;
                        GrowSkillItemTable.GrowSkillItemData growSkillItemData = Singleton <GrowSkillItemTable> .I.GetGrowSkillItemData(data.growID, base.bulletSkillInfoParam.baseInfo.level);

                        if (growSkillItemData != null)
                        {
                            buffData.time = data.duration * (float)(int)growSkillItemData.supprtTime[0].rate * 0.01f + (float)growSkillItemData.supprtTime[0].add;
                            num2          = (float)(data.value * (int)growSkillItemData.supprtValue[0].rate) * 0.01f + (float)(int)growSkillItemData.supprtValue[0].add;
                        }
                        if (buffData.valueType == BuffParam.VALUE_TYPE.RATE && BuffParam.IsTypeValueBasedOnHP(buffData.type))
                        {
                            num2 = (float)_player.hpMax * num2 * 0.01f;
                        }
                        buffData.value = Mathf.FloorToInt(num2);
                        _player.OnBuffStart(buffData);
                    }
                }
            }
        }
    }
    private void OnTriggerEnter(Collider collider)
    {
        //IL_0001: Unknown result type (might be due to invalid IL or missing references)
        //IL_002c: Unknown result type (might be due to invalid IL or missing references)
        //IL_0069: Unknown result type (might be due to invalid IL or missing references)
        int layer = collider.get_gameObject().get_layer();

        if (((1 << layer) & m_ignoreLayerMask) <= 0 && (layer != 8 || !(collider.get_gameObject().GetComponent <DangerRader>() != null)) && m_state != STATE.PICKED)
        {
            int heal_hp = 0;
            if (m_skillParam != null)
            {
                heal_hp = m_skillParam.healHp;
            }
            Self component = collider.get_gameObject().GetComponent <Self>();
            if (component != null)
            {
                OnPicked();
                component.OnHealReceive(heal_hp, HEAL_TYPE.NONE, HEAL_EFFECT_TYPE.BASIS, true);
                if (m_buffIds != null && m_buffIds.Count > 0)
                {
                    for (int i = 0; i < m_buffIds.Count; i++)
                    {
                        int num = m_buffIds[i];
                        if (Singleton <BuffTable> .IsValid() && num > 0)
                        {
                            BuffTable.BuffData data = Singleton <BuffTable> .I.GetData((uint)num);

                            if (data != null)
                            {
                                BuffParam.BuffData buffData = new BuffParam.BuffData();
                                buffData.type      = data.type;
                                buffData.interval  = data.interval;
                                buffData.valueType = data.valueType;
                                buffData.time      = data.duration;
                                float num2 = (float)data.value;
                                GrowSkillItemTable.GrowSkillItemData growSkillItemData = Singleton <GrowSkillItemTable> .I.GetGrowSkillItemData(data.growID, m_skillParam.baseInfo.level);

                                if (growSkillItemData != null)
                                {
                                    buffData.time = data.duration * (float)(int)growSkillItemData.supprtTime[0].rate * 0.01f + (float)growSkillItemData.supprtTime[0].add;
                                    num2          = (float)(data.value * (int)growSkillItemData.supprtValue[0].rate) * 0.01f + (float)(int)growSkillItemData.supprtValue[0].add;
                                }
                                if (buffData.valueType == BuffParam.VALUE_TYPE.RATE && BuffParam.IsTypeValueBasedOnHP(buffData.type))
                                {
                                    num2 = (float)component.hpMax * num2 * 0.01f;
                                }
                                buffData.value = Mathf.FloorToInt(num2);
                                component.OnBuffStart(buffData);
                            }
                        }
                    }
                }
                if (component.playerSender != null)
                {
                    component.playerSender.OnPickPresentBullet(m_presentBulletId);
                }
                if (MonoBehaviourSingleton <StageObjectManager> .IsValid())
                {
                    MonoBehaviourSingleton <StageObjectManager> .I.RemovePresentBulletObject(m_presentBulletId);
                }
            }
        }
    }