public void SetBuffParam(BuffParam param) { this.buffParam = param; BuffConfig buffConfig = GameConfigs.instance.GetBuffConfig(this.buffParam.buffCid); this.buffNameTM.text = buffConfig.title; this.buffNameTM.Commit(); ArmyManager selfArmyManager = WarManager.instance.selfArmyManager; ArmyManager enemyArmyManager = WarManager.instance.enemyArmyManager; Vector3 positionOfArmyAt = selfArmyManager.GetPositionOfArmyAt(this.buffParam.fromIndex); this.SetYTo(this.fromObj, positionOfArmyAt); foreach (int num in this.buffParam.targetIndex) { GameObject obj2; if (buffConfig.isDown == 1) { obj2 = GameObjectUtil.InstantiateItemAsChildOf(this.downAnimationPrefab, this.targetParent); obj2.GetComponent<WarBuffItem>().SetBuff(buffConfig, false); this.SetYTo(obj2, enemyArmyManager.GetPositionOfArmyAt(num)); } else { obj2 = GameObjectUtil.InstantiateItemAsChildOf(this.upAnimationPrefab, this.targetParent); obj2.GetComponent<WarBuffItem>().SetBuff(buffConfig, false); this.SetYTo(obj2, selfArmyManager.GetPositionOfArmyAt(num)); } } }
public int RotatedUpdateStatusIcon(int checkFirstStatus, BuffParam buffParam, List <int> nonBuff) { //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) int result = checkFirstStatus; int num = statusIcons.Length; int num2 = 0; for (int i = 0; i < 69; i++) { if (num2 >= num) { break; } int num3 = i + checkFirstStatus; if (num3 >= 69) { num3 %= 69; } if (CheckStatus((STATUS_TYPE)num3, buffParam, nonBuff)) { IconInfo iconInfo = statusIcons[num2]; string iconSpriteNameByStatusType = GetIconSpriteNameByStatusType((STATUS_TYPE)num3); iconInfo.icon.spriteName = iconSpriteNameByStatusType; iconInfo.icon.get_gameObject().SetActive(true); num2++; result = num3; } } for (int j = num2; j < num; j++) { statusIcons[j].icon.get_gameObject().SetActive(false); } return(result); }
public override void OnActive(int ownerID, SkillParam skillParam) { if (skillParam.templateID <= 0) { return; } Skill_Tbl skillTbl = TemplatePool.Instance.GetDataByKey <Skill_Tbl>(skillParam.templateID); if (null == skillTbl) { LogManager.Log("SkillLogicBuff.OnActive : invalid skill id.", LogType.Error); return; } for (int i = 0; i < skillTbl.buff1.Length; ++i) { if (skillTbl.buff1[i] <= 0) { continue; } BuffParam buffParam = new BuffParam(); buffParam.templateID = skillTbl.buff1[i]; buffParam.senderID = ownerID; buffParam.targetID = skillParam.targetID; BuffManager.Instance.AddBuff(ownerID, buffParam); } }
public ExplorePlayerStatus(CharaInfo charaInfo, bool isSelf) { this.isSelf = isSelf; this.charaInfo = charaInfo; MonoBehaviourSingleton <StatusManager> .I.CalcUserStatusParam(charaInfo, out int _, out int _, out int _hp); hpMax = _hp; buff = new BuffParam(null); }
public void Init(int id, BuffParam param) { Reset(); this.m_id = id; m_template = TemplatePool.Instance.GetDataByKey <Buff_Tbl>(param.templateID); if (m_template != null) { } }
public void Reset() { m_id = 0; m_valid = false; m_param = null; m_template = null; m_birthTime = 0; m_lifeTime = 0; m_persistTime = 0; }
public void AddBuff(BuffParam buffParam) { bool addBuff = status.AddBuff(buffParam); if (addBuff) { SetBuffText(buffParam); StartCoroutine("BuffTimer"); } }
public void AddBuff(BuffParam buffParam) { if (status.CheckImmunity(buffParam.defenseType) == false) { bool addBuff = status.AddBuff(buffParam); if (addBuff) { SetBuffText(buffParam); StartCoroutine("BuffTimer"); } } }
public void SetBuffText(BuffParam param) { string buffEffectText = SkillTable.Instance.GetBuffString(param); UIDamageText buffText = null; if (PoolManager.Instance != null && PoolManager.Instance.GetEffectTextFromPool(out buffText)) { buffText.Init(transform, buffEffectText); } else { LoadAssetbundle.LoadPrefabCB loadBuffTextPrefabCB = new LoadAssetbundle.LoadPrefabCB(LoadBuffTextCompleteCB); PrefabManager.Instance.LoadPrefab("Effect/Text_Effect", System.Guid.NewGuid(), loadBuffTextPrefabCB, buffEffectText); } }
public void Init(int instId, BuffParam param) { Reset(); this.mId = instId; mParam = param; mTemplate = ConfigPool.Instance.GetDataByKey<Buff_Tbl>(param.templateID); if (mTemplate == null) { this.Valid = false; Log.LogError("Buff : wrong template id " + param.templateID); } else { mLogic = BuffLogicManager.GetBuffLogic(mTemplate.buffType); if (null == mLogic) { Log.LogError("Buff.Init : bufflogic is null, buff id is " + param.templateID); } } }
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); } } } } }
public bool HasActiveMultipleBuffIcon(BuffParam buffParam, List <int> nonBuff) { HashSet <string> hashSet = new HashSet <string>(); int num = 0; for (int i = 0; i < 69; i++) { if (CheckStatus((STATUS_TYPE)i, buffParam, nonBuff)) { string iconSpriteNameByStatusType = GetIconSpriteNameByStatusType((STATUS_TYPE)i); if (!string.IsNullOrEmpty(iconSpriteNameByStatusType) && !hashSet.Contains(iconSpriteNameByStatusType)) { hashSet.Add(iconSpriteNameByStatusType); num++; if (num > 1) { return(true); } } } } return(false); }
public bool AddBuff(BuffParam buffParam) { int buffListCount = buffList.Count; int index = buffList.FindIndex(delegate(BuffParam a) { return(a.buffType.Equals(buffParam.buffType) && (Mathf.Abs(a.buffValue) < Mathf.Abs(buffParam.buffValue))); }); if (index > -1) { buffList.RemoveAt(index); buffList.Add(buffParam); } else if (buffListCount.Equals(0)) { buffList.Add(buffParam); } else { return(false); } return(buffListCount.Equals(0)); }
private static bool CheckStatus(STATUS_TYPE type, BuffParam buffParam, bool isFieldBuff = false) { switch (type) { case STATUS_TYPE.POISON: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.POISON, isFieldBuff)); case STATUS_TYPE.BURNING: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.BURNING, isFieldBuff)); case STATUS_TYPE.DEADLY_POISON: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEADLY_POISON, isFieldBuff)); case STATUS_TYPE.INVINCIBLECOUNT: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.INVINCIBLECOUNT, isFieldBuff)); case STATUS_TYPE.ATTACK_SPEED_UP: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ATTACK_SPEED_UP, isFieldBuff)); case STATUS_TYPE.ATTACK_SPEED_DOWN: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ATTACK_SPEED_DOWN, isFieldBuff)); case STATUS_TYPE.MOVE_SPEED_UP: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.MOVE_SPEED_UP, isFieldBuff)); case STATUS_TYPE.MOVE_SPEED_DOWN: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.MOVE_SPEED_DOWN, isFieldBuff)); case STATUS_TYPE.ATTACK_NORMAL: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ATTACK_NORMAL, isFieldBuff) || buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ATKUP_RATE_NORMAL, isFieldBuff)); case STATUS_TYPE.ATTACK_FIRE: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ATTACK_FIRE, isFieldBuff) || buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ATKUP_RATE_FIRE, isFieldBuff)); case STATUS_TYPE.ATTACK_WATER: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ATTACK_WATER, isFieldBuff) || buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ATKUP_RATE_WATER, isFieldBuff)); case STATUS_TYPE.ATTACK_THUNDER: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ATTACK_THUNDER, isFieldBuff) || buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ATKUP_RATE_THUNDER, isFieldBuff)); case STATUS_TYPE.ATTACK_SOIL: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ATTACK_SOIL, isFieldBuff) || buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ATKUP_RATE_SOIL, isFieldBuff)); case STATUS_TYPE.ATTACK_LIGHT: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ATTACK_LIGHT, isFieldBuff) || buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ATKUP_RATE_LIGHT, isFieldBuff)); case STATUS_TYPE.ATTACK_DARK: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ATTACK_DARK, isFieldBuff) || buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ATKUP_RATE_DARK, isFieldBuff)); case STATUS_TYPE.ATTACK_ALLELEMENT: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ATTACK_ALLELEMENT, isFieldBuff) || buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ATKUP_RATE_ALLELEMENT, isFieldBuff)); case STATUS_TYPE.DEFENCE_NORMAL: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFENCE_NORMAL, isFieldBuff) || buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFUP_RATE_NORMAL, isFieldBuff)); case STATUS_TYPE.DEFENCE_FIRE: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFENCE_FIRE, isFieldBuff) || buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFUP_RATE_FIRE, isFieldBuff)); case STATUS_TYPE.DEFENCE_WATER: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFENCE_WATER, isFieldBuff) || buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFUP_RATE_WATER, isFieldBuff)); case STATUS_TYPE.DEFENCE_THUNDER: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFENCE_THUNDER, isFieldBuff) || buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFUP_RATE_THUNDER, isFieldBuff)); case STATUS_TYPE.DEFENCE_SOIL: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFENCE_SOIL, isFieldBuff) || buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFUP_RATE_SOIL, isFieldBuff)); case STATUS_TYPE.DEFENCE_LIGHT: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFENCE_LIGHT, isFieldBuff) || buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFUP_RATE_LIGHT, isFieldBuff)); case STATUS_TYPE.DEFENCE_DARK: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFENCE_DARK, isFieldBuff) || buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFUP_RATE_DARK, isFieldBuff)); case STATUS_TYPE.DEFENCE_ALLELEMENT: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFENCE_ALLELEMENT, isFieldBuff) || buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFUP_RATE_ALLELEMENT, isFieldBuff)); case STATUS_TYPE.REGENERATE: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.REGENERATE, isFieldBuff)); case STATUS_TYPE.ELECTRIC_SHOCK: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ELECTRIC_SHOCK, isFieldBuff)); case STATUS_TYPE.INK_SPLASH: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.INK_SPLASH, isFieldBuff)); case STATUS_TYPE.POISON_DAMAGE_DOWN: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.POISON_DAMAGE_DOWN, isFieldBuff)); case STATUS_TYPE.POISON_GUARD: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.POISON_GUARD, isFieldBuff)); case STATUS_TYPE.BURNING_DAMAGE_DOWN: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.BURN_DAMAGE_DOWN, isFieldBuff)); case STATUS_TYPE.BURNING_GUARD: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.BURN_GUARD, isFieldBuff)); case STATUS_TYPE.SUPER_ARMOR: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.SUPER_ARMOR, isFieldBuff) || buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.SHIELD_SUPER_ARMOR, isFieldBuff)); case STATUS_TYPE.DEFENCE_DOWN: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFDOWN_RATE_NORMAL, isFieldBuff)); case STATUS_TYPE.DEF_DOWN_FIRE: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFDOWN_RATE_FIRE, isFieldBuff)); case STATUS_TYPE.DEF_DOWN_WATER: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFDOWN_RATE_WATER, isFieldBuff)); case STATUS_TYPE.DEF_DOWN_THUNDER: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFDOWN_RATE_THUNDER, isFieldBuff)); case STATUS_TYPE.DEF_DOWN_SOIL: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFDOWN_RATE_SOIL, isFieldBuff)); case STATUS_TYPE.DEF_DOWN_LIGHT: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFDOWN_RATE_LIGHT, isFieldBuff)); case STATUS_TYPE.DEF_DOWN_DARK: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFDOWN_RATE_DARK, isFieldBuff)); case STATUS_TYPE.DEF_DOWN_ALLELEMENT: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DEFDOWN_RATE_ALLELEMENT, isFieldBuff)); case STATUS_TYPE.SHIELD: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.SHIELD, isFieldBuff)); case STATUS_TYPE.SLIDE: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.SLIDE, isFieldBuff)); case STATUS_TYPE.PARALYZE_GUARD: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.PARALYZE_GUARD, isFieldBuff)); case STATUS_TYPE.SILENCE: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.SILENCE, isFieldBuff)); case STATUS_TYPE.REGENERATE_PROPORTION: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.REGENERATE_PROPORTION, isFieldBuff)); case STATUS_TYPE.ABSORB_NORMAL: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ABSORB_NORMAL, isFieldBuff)); case STATUS_TYPE.ABSORB_FIRE: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ABSORB_FIRE, isFieldBuff)); case STATUS_TYPE.ABSORB_WATER: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ABSORB_WATER, isFieldBuff)); case STATUS_TYPE.ABSORB_THUNDER: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ABSORB_THUNDER, isFieldBuff)); case STATUS_TYPE.ABSORB_SOIL: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ABSORB_SOIL, isFieldBuff)); case STATUS_TYPE.ABSORB_LIGHT: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ABSORB_LIGHT, isFieldBuff)); case STATUS_TYPE.ABSORB_DARK: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ABSORB_DARK, isFieldBuff)); case STATUS_TYPE.ABSORB_ALL_ELEMENT: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.ABSORB_ALL_ELEMENT, isFieldBuff)); case STATUS_TYPE.AUTO_REVIVE: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.AUTO_REVIVE, isFieldBuff)); case STATUS_TYPE.WARP_BY_AVOID: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.WARP_BY_AVOID, isFieldBuff)); case STATUS_TYPE.INVINCIBLE_FIRE: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.INVINCIBLE_FIRE, isFieldBuff)); case STATUS_TYPE.INVINCIBLE_WATER: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.INVINCIBLE_WATER, isFieldBuff)); case STATUS_TYPE.INVINCIBLE_THUNDER: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.INVINCIBLE_THUNDER, isFieldBuff)); case STATUS_TYPE.INVINCIBLE_SOIL: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.INVINCIBLE_SOIL, isFieldBuff)); case STATUS_TYPE.DAMAGE_UP_NORMAL: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DAMAGE_UP_NORMAL, isFieldBuff)); case STATUS_TYPE.DAMAGE_UP_FROM_AVOID: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.DAMAGE_UP_FROM_AVOID, isFieldBuff)); case STATUS_TYPE.SKILL_HEAL_SPEEDUP: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.SKILL_HEAL_SPEEDUP, isFieldBuff)); case STATUS_TYPE.GAUGE_INCREASE_UP: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.HEAT_GAUGE_INCREASE_UP, isFieldBuff) || buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.SOUL_GAUGE_INCREASE_UP, isFieldBuff)); case STATUS_TYPE.SKILL_CHARGE_WHEN_DAMAGED: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.SKILL_CHARGE_WHEN_DAMAGED, isFieldBuff)); case STATUS_TYPE.INVINCIBLE_LIGHT: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.INVINCIBLE_LIGHT, isFieldBuff)); case STATUS_TYPE.INVINCIBLE_DARK: return(buffParam.IsValidBuffOrFieldBuff(BuffParam.BUFFTYPE.INVINCIBLE_DARK, isFieldBuff)); default: return(false); } }
public static bool CheckStatus(STATUS_TYPE type, BuffParam buffParam, List <int> nonBuffStatus) { return(CheckStatus(type, buffParam, false) || (nonBuffStatus != null && CheckStatus(type, nonBuffStatus))); }
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); } } } }