// Token: 0x06000026 RID: 38 RVA: 0x00003C9C File Offset: 0x00001E9C public static void StaticActivate(Character character, object[] _infos, Effect instance) { float localRangeSquared = 100f; Dictionary <Character, float> dictionary = new Dictionary <Character, float>(); List <Character> list = new List <Character>(); CharacterManager.Instance.FindCharactersInRange(character.CenterPosition, CelestialSurge.range + 10f, ref list); list = (from c in list where c.Faction != character.Faction select c).ToList <Character>(); using (IEnumerator <Character> enumerator = (from c in list where c.StatusEffectMngr.HasStatusEffect("Radiating") select c).GetEnumerator()) { while (enumerator.MoveNext()) { Character chr = enumerator.Current; float num = CelestialSurge.AmpDamage(character, Radiating.sumTicks(chr.StatusEffectMngr.GetStatusEffectOfName("Radiating").RemainingLifespan) + 40f, DamageType.Types.Electric); IEnumerable <Character> source = list; foreach (Character character2 in source.Where(c => (c.transform.position - chr.transform.position).sqrMagnitude <= localRangeSquared)) { bool flag = !character2.Invincible; if (flag) { float num2; dictionary[character2] = (dictionary.TryGetValue(character2, out num2) ? num2 : 0f) + num; } } } } foreach (KeyValuePair <Character, float> keyValuePair in dictionary) { DamageList damageList = new DamageList(DamageType.Types.Electric, keyValuePair.Value); keyValuePair.Key.Stats.GetMitigatedDamage(null, ref damageList); keyValuePair.Key.Stats.ReceiveDamage(damageList.TotalDamage); bool flag2 = damageList.TotalDamage > 55f; if (flag2) { keyValuePair.Key.AutoKnock(true, Vector3.zero); } else { CasualStagger.Stagger(keyValuePair.Key); } } }
public static void Prefix(StatusEffectManager __instance, StatusEffect _statusEffect, out StatusData __state) { __state = null; bool flag = _statusEffect.IdentifierName == Templar.Instance.radiatingInstance.IdentifierName && __instance.HasStatusEffect(_statusEffect.IdentifierName); if (flag) { __state = _statusEffect.StatusData; _statusEffect.StatusData = new StatusData(__state); float remainingLifespan = __instance.GetStatusEffectOfName(_statusEffect.IdentifierName).RemainingLifespan; float num = (_statusEffect.RemainingLifespan != 0f) ? _statusEffect.RemainingLifespan : _statusEffect.StartLifespan; float num2 = Radiating.sumTicks(remainingLifespan); float num3 = Radiating.sumTicks(num); num = Radiating.sumToRemain(num2 + num3); _statusEffect.StatusData.LifeSpan = num; } }