using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using HG;
using Microsoft.CodeAnalysis;
using MiscFixes.Modules;
using On.RoR2;
using R2API;
using RiskOfOptions;
using RoR2;
using RoR2.Navigation;
using RoR2.Projectile;
using RoR2BepInExPack.GameAssetPaths.Version_1_39_0;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Networking;
using UnityEngine.Rendering;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("MoreElites")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+4d70ada83b60f48f9f52554fbba852b361fcc700")]
[assembly: AssemblyProduct("MoreElites")]
[assembly: AssemblyTitle("MoreElites")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
[module: UnverifiableCode]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
internal sealed class NullableAttribute : Attribute
{
public readonly byte[] NullableFlags;
public NullableAttribute(byte P_0)
{
NullableFlags = new byte[1] { P_0 };
}
public NullableAttribute(byte[] P_0)
{
NullableFlags = P_0;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
internal sealed class NullableContextAttribute : Attribute
{
public readonly byte Flag;
public NullableContextAttribute(byte P_0)
{
Flag = P_0;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
internal sealed class RefSafetyRulesAttribute : Attribute
{
public readonly int Version;
public RefSafetyRulesAttribute(int P_0)
{
Version = P_0;
}
}
}
namespace MoreElites
{
public static class EliteRampGenerator
{
private static Material malachiteOverlayMat = new Material(Addressables.LoadAssetAsync<Material>((object)RoR2_Base_ElitePoison.matElitePoisonOverlay_mat).WaitForCompletion());
public static Texture2D CreateGradientTexture(Color32[] colors, int width, int height)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Expected O, but got Unknown
//IL_004d: Unknown result type (might be due to invalid IL or missing references)
//IL_0057: Unknown result type (might be due to invalid IL or missing references)
//IL_005e: Unknown result type (might be due to invalid IL or missing references)
//IL_0063: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006a: Unknown result type (might be due to invalid IL or missing references)
Texture2D val = new Texture2D(width, height);
((Texture)val).wrapMode = (TextureWrapMode)1;
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
float num = (float)j / (float)(width - 1) * (float)(colors.Length - 1);
int num2 = Mathf.FloorToInt(num);
float t = num - (float)num2;
if (num2 >= colors.Length - 1)
{
num2 = colors.Length - 2;
t = 1f;
}
Color32 val2 = LerpColor32(colors[num2], colors[num2 + 1], t);
val.SetPixel(j, i, Color32.op_Implicit(val2));
}
}
val.Apply();
string fileName = "SavedTexture.png";
SaveTextureToFile(val, fileName);
malachiteOverlayMat.SetTexture("_RemapTex", (Texture)(object)val);
return val;
}
internal static void SaveTextureToFile(Texture2D texture, string fileName)
{
}
public static Color32 LerpColor32(Color32 colorA, Color32 colorB, float t)
{
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_001c: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_0048: Unknown result type (might be due to invalid IL or missing references)
//IL_005a: Unknown result type (might be due to invalid IL or missing references)
byte num = (byte)Mathf.Lerp((float)(int)colorA.r, (float)(int)colorB.r, t);
byte b = (byte)Mathf.Lerp((float)(int)colorA.g, (float)(int)colorB.g, t);
byte b2 = (byte)Mathf.Lerp((float)(int)colorA.b, (float)(int)colorB.b, t);
byte b3 = (byte)Mathf.Lerp((float)(int)colorA.a, (float)(int)colorB.a, t);
return new Color32(num, b, b2, b3);
}
}
public class Echo : EliteBase<Echo>
{
public class CustomAffixEchoBehavior : ItemBehavior
{
public DeployableMinionSpawner echoSpawner1;
public DeployableMinionSpawner echoSpawner2;
public CharacterSpawnCard spawnCard;
public List<CharacterMaster> spawnedEchoes = new List<CharacterMaster>();
public bool hasEverSpawned;
public void FixedUpdate()
{
if (!hasEverSpawned)
{
DeployableMinionSpawner obj = echoSpawner1;
obj.respawnStopwatch += 1f;
DeployableMinionSpawner obj2 = echoSpawner2;
obj2.respawnStopwatch += 1f;
}
}
public void Awake()
{
((Behaviour)this).enabled = false;
}
public void OnEnable()
{
//IL_0028: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: 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)
//IL_008f: Unknown result type (might be due to invalid IL or missing references)
//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
//IL_00af: Unknown result type (might be due to invalid IL or missing references)
//IL_00cb: Unknown result type (might be due to invalid IL or missing references)
//IL_00d1: Expected O, but got Unknown
Util.PlaySound("Play_voidRaid_fog_explode", ((Component)this).gameObject);
spawnCard = ScriptableObject.CreateInstance<CharacterSpawnCard>();
((SpawnCard)spawnCard).prefab = MasterCatalog.GetMasterPrefab(MasterCatalog.FindAiMasterIndexForBody(base.body.bodyIndex));
spawnCard.inventoryToCopy = base.body.inventory;
((SpawnCard)spawnCard).nodeGraphType = (GraphType)(base.body.isFlying ? 1 : 0);
spawnCard.equipmentToGrant = (EquipmentDef[])(object)new EquipmentDef[1];
spawnCard.itemsToGrant = (ItemCountPair[])(object)new ItemCountPair[1]
{
new ItemCountPair
{
itemDef = EliteBase<Echo>.Instance.summonedEchoItem,
count = 1
}
};
Xoroshiro128Plus rng = new Xoroshiro128Plus(Run.instance.seed ^ (ulong)((Object)this).GetInstanceID());
echoSpawner1 = CreateSpawner(rng);
echoSpawner2 = CreateSpawner(rng);
}
public void OnDisable()
{
if (Object.op_Implicit((Object)(object)spawnCard))
{
Object.Destroy((Object)(object)spawnCard);
}
spawnCard = null;
for (int num = spawnedEchoes.Count - 1; num >= 0; num--)
{
if (Object.op_Implicit((Object)(object)spawnedEchoes[num]))
{
spawnedEchoes[num].TrueKill();
}
}
spawnedEchoes.Clear();
DeployableMinionSpawner obj = echoSpawner1;
if (obj != null)
{
obj.Dispose();
}
echoSpawner1 = null;
DeployableMinionSpawner obj2 = echoSpawner2;
if (obj2 != null)
{
obj2.Dispose();
}
echoSpawner2 = null;
}
private DeployableMinionSpawner CreateSpawner(Xoroshiro128Plus rng)
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
//IL_001b: Unknown result type (might be due to invalid IL or missing references)
//IL_0026: Unknown result type (might be due to invalid IL or missing references)
//IL_0031: Unknown result type (might be due to invalid IL or missing references)
//IL_003c: Unknown result type (might be due to invalid IL or missing references)
//IL_0048: Unknown result type (might be due to invalid IL or missing references)
//IL_005b: Expected O, but got Unknown
DeployableMinionSpawner val = new DeployableMinionSpawner(base.body.master, EliteBase<Echo>.Instance.deployableSlot, rng)
{
maxSpawnDistance = 20f,
respawnInterval = 30f,
respawnStopwatch = 0f,
spawnCard = (SpawnCard)(object)spawnCard
};
val.onMinionSpawnedServer += delegate(SpawnResult spawnResult)
{
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
GameObject spawnedInstance = spawnResult.spawnedInstance;
if (Object.op_Implicit((Object)(object)spawnedInstance))
{
CharacterMaster spawnedMaster = spawnedInstance.GetComponent<CharacterMaster>();
if (Object.op_Implicit((Object)(object)spawnedMaster))
{
hasEverSpawned = true;
spawnedEchoes.Add(spawnedMaster);
OnDestroyCallback.AddCallback(((Component)spawnedMaster).gameObject, (Action<OnDestroyCallback>)delegate
{
spawnedEchoes.Remove(spawnedMaster);
});
}
}
};
return val;
}
}
public class CustomSummonedEchoBodyBehavior : MonoBehaviour
{
private static float fireInterval = 3f;
private static float normalBaseDamage = 24f;
private static float normalLevelDamage = 4.8f;
private static float championBaseDamage = 32f;
private static float championLevelDamage = 7.2f;
private float fireTimer;
private CharacterBody body;
private void OnEnable()
{
body = ((Component)this).GetComponent<CharacterBody>();
}
private void FixedUpdate()
{
//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
//IL_010b: Unknown result type (might be due to invalid IL or missing references)
//IL_0136: Unknown result type (might be due to invalid IL or missing references)
if (Object.op_Implicit((Object)(object)body) && Object.op_Implicit((Object)(object)body.healthComponent) && body.healthComponent.alive)
{
fireTimer += Time.fixedDeltaTime;
if (fireTimer >= fireInterval)
{
fireTimer = 0f;
float damage = (body.isChampion ? (championBaseDamage + championLevelDamage * body.level) : (normalBaseDamage + normalLevelDamage * body.level));
ProjectileManager.instance.FireProjectile(new FireProjectileInfo
{
crit = false,
damage = damage,
damageColorIndex = (DamageColorIndex)0,
damageTypeOverride = DamageTypeCombo.op_Implicit((DamageType)8),
owner = ((Component)this).gameObject,
position = body.aimOrigin,
rotation = Quaternion.LookRotation(Vector3.up),
procChainMask = default(ProcChainMask),
projectilePrefab = EliteBase<Echo>.Instance.echoProjectile,
force = 400f,
target = null
});
}
}
}
}
[Serializable]
[CompilerGenerated]
private sealed class <>c
{
public static readonly <>c <>9 = new <>c();
public static GetDeployableSameSlotLimit <>9__38_0;
internal int <Init>b__38_0(CharacterMaster _, int _)
{
return 2;
}
}
public ItemDef summonedEchoItem;
public Material echoMatBlack;
public DeployableSlot deployableSlot;
public GameObject echoProjectile;
public override string Name => "Echo";
public override string EquipmentName => "Echo Aspect";
public override string PickupText => "Aspect of Echo";
public override string DescriptionText => "Summon 2 copies of yourself";
public override string LoreText => "Shadow clone jutsu";
public override VanillaEliteTier EliteTierEnum => (VanillaEliteTier)PluginConfig.eliteTierEcho.Value;
public override Color EliteColor => Color.black;
public override Texture2D EliteRamp { get; set; } = EliteRampGenerator.CreateGradientTexture((Color32[])(object)new Color32[5]
{
new Color32((byte)23, (byte)22, (byte)20, byte.MaxValue),
new Color32((byte)117, (byte)64, (byte)67, byte.MaxValue),
new Color32((byte)154, (byte)136, (byte)115, byte.MaxValue),
new Color32((byte)55, (byte)66, (byte)61, byte.MaxValue),
new Color32((byte)58, (byte)38, (byte)24, byte.MaxValue)
}, 256, 8);
public override Sprite EliteIcon { get; set; } = Addressables.LoadAssetAsync<Sprite>((object)RoR2_Base_EliteIce.texBuffAffixWhite_tif).WaitForCompletion();
public override Sprite AspectIcon { get; set; } = Addressables.LoadAssetAsync<Sprite>((object)RoR2_DLC1_EliteEarth.texAffixEarthIcon_png).WaitForCompletion();
public override Material EliteMaterial { get; set; } = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC1_voidoutro.matVoidRaidCrabEyeOverlay1BLUE_mat).WaitForCompletion();
public override GameObject PickupModelPrefab { get; set; } = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_EliteFire.PickupEliteFire_prefab).WaitForCompletion(), "PickupAffixEcho", false);
public override void Init()
{
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
//IL_0011: Unknown result type (might be due to invalid IL or missing references)
//IL_004f: Unknown result type (might be due to invalid IL or missing references)
//IL_0054: Unknown result type (might be due to invalid IL or missing references)
//IL_0067: Unknown result type (might be due to invalid IL or missing references)
//IL_006c: Unknown result type (might be due to invalid IL or missing references)
//IL_008a: Unknown result type (might be due to invalid IL or missing references)
//IL_008f: Unknown result type (might be due to invalid IL or missing references)
//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
//IL_00fb: Expected O, but got Unknown
//IL_0113: Unknown result type (might be due to invalid IL or missing references)
//IL_011d: Expected O, but got Unknown
//IL_00d5: Unknown result type (might be due to invalid IL or missing references)
//IL_00da: Unknown result type (might be due to invalid IL or missing references)
//IL_00e0: Expected O, but got Unknown
base.Init();
echoProjectile = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_InDev.EchoHunterProjectile_prefab).WaitForCompletion(), "EchoHunterProjectile");
echoProjectile.GetComponent<ProjectileDirectionalTargetFinder>().lookRange = 120f;
ContentAddition.AddProjectile(echoProjectile);
summonedEchoItem = Addressables.LoadAssetAsync<ItemDef>((object)RoR2_InDev.SummonedEcho_asset).WaitForCompletion();
echoMatBlack = Addressables.LoadAssetAsync<Material>((object)RoR2_InDev.matEcho_mat).WaitForCompletion();
ContentAddition.AddItemDef(summonedEchoItem);
GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_EliteHaunted.DisplayEliteStealthCrown_prefab).WaitForCompletion(), "EchoCrown");
val.AddComponent<NetworkIdentity>();
CustomEquipmentDef.ItemDisplayRules = ItemDisplays.CreateItemDisplayRules(val, EliteMaterial);
object obj = <>c.<>9__38_0;
if (obj == null)
{
GetDeployableSameSlotLimit val2 = (CharacterMaster _, int _) => 2;
<>c.<>9__38_0 = val2;
obj = (object)val2;
}
deployableSlot = DeployableAPI.RegisterDeployableSlot((GetDeployableSameSlotLimit)obj);
RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(ReduceSummonHP);
CharacterBody.onBodyStartGlobal += CharacterBody_onBodyStartGlobal;
CharacterModel.UpdateOverlays += new hook_UpdateOverlays(CharacterModel_UpdateOverlays);
}
public override void OnBuffGained(CharacterBody self)
{
if (NetworkServer.active && Object.op_Implicit((Object)(object)self.inventory) && self.inventory.GetItemCountPermanent(summonedEchoItem) == 0)
{
self.AddItemBehavior<CustomAffixEchoBehavior>(1);
}
}
public override void OnBuffLost(CharacterBody self)
{
if (NetworkServer.active)
{
self.AddItemBehavior<CustomAffixEchoBehavior>(0);
}
}
private void ReduceSummonHP(CharacterBody sender, StatHookEventArgs args)
{
if (Object.op_Implicit((Object)(object)sender.inventory) && sender.inventory.GetItemCountPermanent(summonedEchoItem) > 0)
{
args.baseCurseAdd += 6.6666665f;
}
}
private void CharacterBody_onBodyStartGlobal(CharacterBody body)
{
if (NetworkServer.active && Object.op_Implicit((Object)(object)body.inventory) && body.inventory.GetItemCountPermanent(summonedEchoItem) > 0 && !Object.op_Implicit((Object)(object)((Component)body).GetComponent<CustomSummonedEchoBodyBehavior>()))
{
UnityObjectExtensions.EnsureComponent<CustomSummonedEchoBodyBehavior>((Component)(object)body);
}
}
private void CharacterModel_UpdateOverlays(orig_UpdateOverlays orig, CharacterModel self)
{
orig.Invoke(self);
if (Object.op_Implicit((Object)(object)self.body) && Object.op_Implicit((Object)(object)self.body.inventory))
{
AddOverlay(EliteMaterial, self.body.HasBuff(EliteBuffDef));
AddOverlay(echoMatBlack, self.body.inventory.GetItemCountPermanent(summonedEchoItem) > 0);
}
void AddOverlay(Material overlayMaterial, bool condition)
{
if (self.activeOverlayCount < CharacterModel.maxOverlays && condition)
{
Material[] currentOverlays = self.currentOverlays;
CharacterModel obj = self;
int activeOverlayCount = obj.activeOverlayCount;
obj.activeOverlayCount = activeOverlayCount + 1;
currentOverlays[activeOverlayCount] = overlayMaterial;
}
}
}
}
public abstract class EliteBase<T> : EliteBase where T : EliteBase<T>
{
public static T Instance { get; private set; }
public EliteBase()
{
if (Instance != null)
{
throw new InvalidOperationException("Singleton class \"" + typeof(T).Name + "\" inheriting ItemBase was instantiated twice");
}
Instance = this as T;
EliteBase.EliteInstances.Add(Instance);
}
}
public abstract class EliteBase
{
public enum EliteTier
{
None,
T1,
T1Honor,
T1GuildedHonor,
T1Guilded,
T2,
Lunar
}
[CompilerGenerated]
private static class <>O
{
public static hook_OnBuffFirstStackGained <0>__CharacterBody_OnBuffFirstStackGained;
public static hook_OnBuffFinalStackLost <1>__CharacterBody_OnBuffFinalStackLost;
}
public static float affixDropChance = 0.00025f;
public static List<EliteBase> EliteInstances = new List<EliteBase>();
public abstract string Name { get; }
public virtual string NameToken => Name.ToUpper() + "_SCORE";
public abstract string EquipmentName { get; }
public abstract string DescriptionText { get; }
public abstract string PickupText { get; }
public abstract string LoreText { get; }
public abstract VanillaEliteTier EliteTierEnum { get; }
public abstract Color EliteColor { get; }
public abstract Texture2D EliteRamp { get; set; }
public abstract Sprite EliteIcon { get; set; }
public abstract Sprite AspectIcon { get; set; }
public abstract Material EliteMaterial { get; set; }
public abstract GameObject PickupModelPrefab { get; set; }
public virtual BuffDef EliteBuffDef { get; set; }
public virtual CustomEquipment CustomEquipmentDef { get; set; }
public virtual CustomElite CustomEliteDef { get; set; }
public virtual CustomElite CustomEliteDefHonor { get; set; }
public float HealthBoostCoefficient
{
get
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0007: Invalid comparison between Unknown and I4
if ((int)EliteTierEnum >= 5)
{
return PluginConfig.t2HealthMult.Value;
}
return PluginConfig.t1HealthMult.Value;
}
}
public float DamageBoostCoefficient
{
get
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0007: Invalid comparison between Unknown and I4
if ((int)EliteTierEnum >= 5)
{
return PluginConfig.t2DamageMult.Value;
}
return PluginConfig.t1DamageMult.Value;
}
}
public abstract void OnBuffGained(CharacterBody body);
public abstract void OnBuffLost(CharacterBody body);
public static void CreateElites()
{
//IL_004e: Unknown result type (might be due to invalid IL or missing references)
//IL_0053: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: Expected O, but got Unknown
//IL_006e: Unknown result type (might be due to invalid IL or missing references)
//IL_0073: Unknown result type (might be due to invalid IL or missing references)
//IL_0079: Expected O, but got Unknown
if (!EliteInstances.Any())
{
return;
}
foreach (EliteBase eliteInstance in EliteInstances)
{
eliteInstance.Init();
}
object obj = <>O.<0>__CharacterBody_OnBuffFirstStackGained;
if (obj == null)
{
hook_OnBuffFirstStackGained val = CharacterBody_OnBuffFirstStackGained;
<>O.<0>__CharacterBody_OnBuffFirstStackGained = val;
obj = (object)val;
}
CharacterBody.OnBuffFirstStackGained += (hook_OnBuffFirstStackGained)obj;
object obj2 = <>O.<1>__CharacterBody_OnBuffFinalStackLost;
if (obj2 == null)
{
hook_OnBuffFinalStackLost val2 = CharacterBody_OnBuffFinalStackLost;
<>O.<1>__CharacterBody_OnBuffFinalStackLost = val2;
obj2 = (object)val2;
}
CharacterBody.OnBuffFinalStackLost += (hook_OnBuffFinalStackLost)obj2;
}
private static void CharacterBody_OnBuffFirstStackGained(orig_OnBuffFirstStackGained orig, CharacterBody self, BuffDef buffDef)
{
orig.Invoke(self, buffDef);
if (!Object.op_Implicit((Object)(object)buffDef) || !Object.op_Implicit((Object)(object)self))
{
return;
}
foreach (EliteBase eliteInstance in EliteInstances)
{
if ((Object)(object)eliteInstance?.EliteBuffDef == (Object)(object)buffDef)
{
eliteInstance.OnBuffGained(self);
break;
}
}
}
private static void CharacterBody_OnBuffFinalStackLost(orig_OnBuffFinalStackLost orig, CharacterBody self, BuffDef buffDef)
{
orig.Invoke(self, buffDef);
if (!Object.op_Implicit((Object)(object)buffDef) || !Object.op_Implicit((Object)(object)self))
{
return;
}
foreach (EliteBase eliteInstance in EliteInstances)
{
if ((Object)(object)eliteInstance?.EliteBuffDef == (Object)(object)buffDef)
{
eliteInstance.OnBuffLost(self);
break;
}
}
}
public virtual void Init()
{
Log.Info("Initializing elite " + Name);
AddLanguageTokens();
SetupAssets();
SetupBuff();
SetupEquipment();
SetupElite();
}
public virtual void AddLanguageTokens()
{
LanguageAPI.Add("ELITE_MODIFIER_" + NameToken, Name + " {0}");
LanguageAPI.Add("EQUIPMENT_AFFIX_" + NameToken + "_NAME", EquipmentName ?? (Name + " Aspect"));
LanguageAPI.Add("EQUIPMENT_AFFIX_" + NameToken + "_DESC", DescriptionText ?? "");
LanguageAPI.Add("EQUIPMENT_AFFIX_" + NameToken + "_LORE", LoreText ?? "");
LanguageAPI.Add("EQUIPMENT_AFFIX_" + NameToken + "_PICKUP_DESC", PickupText ?? ("Aspect of " + Name));
}
public virtual void SetupAssets()
{
}
public virtual void SetupBuff()
{
//IL_0056: Unknown result type (might be due to invalid IL or missing references)
//IL_005b: Unknown result type (might be due to invalid IL or missing references)
EliteBuffDef = ScriptableObject.CreateInstance<BuffDef>();
((Object)EliteBuffDef).name = "Affix" + Name + "Buff";
EliteBuffDef.canStack = false;
EliteBuffDef.isCooldown = false;
EliteBuffDef.isDebuff = false;
EliteBuffDef.buffColor = EliteColor;
EliteBuffDef.iconSprite = EliteIcon;
ContentAddition.AddBuffDef(EliteBuffDef);
}
public virtual void SetupEquipment()
{
//IL_0085: Unknown result type (might be due to invalid IL or missing references)
//IL_008f: Expected O, but got Unknown
CustomEquipmentDef = new CustomEquipment("Affix" + Name, "EQUIPMENT_AFFIX_" + NameToken + "_NAME", "EQUIPMENT_AFFIX_" + NameToken + "_DESC", "EQUIPMENT_AFFIX_" + NameToken + "_LORE", "EQUIPMENT_AFFIX_" + NameToken + "_PICKUP_DESC", AspectIcon, PickupModelPrefab, 0f, false, false, false, false, EliteBuffDef, (UnlockableDef)null, (ColorIndex)5, true, true, (ItemDisplayRuleDict)null);
Renderer[] componentsInChildren = CustomEquipmentDef.EquipmentDef.pickupModelPrefab.GetComponentsInChildren<Renderer>();
for (int i = 0; i < componentsInChildren.Length; i++)
{
componentsInChildren[i].material = EliteMaterial;
}
CustomEquipmentDef.EquipmentDef.dropOnDeathChance = affixDropChance;
ItemAPI.Add(CustomEquipmentDef);
}
public virtual void SetupElite()
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0056: Unknown result type (might be due to invalid IL or missing references)
//IL_005b: Unknown result type (might be due to invalid IL or missing references)
//IL_0077: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: Expected O, but got Unknown
//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
//IL_012f: Unknown result type (might be due to invalid IL or missing references)
//IL_0134: Unknown result type (might be due to invalid IL or missing references)
//IL_0150: Unknown result type (might be due to invalid IL or missing references)
//IL_015a: Expected O, but got Unknown
IEnumerable<EliteTierDef> eliteTierEnumerable = EliteAPI.GetEliteTierEnumerable(EliteTierEnum);
if (eliteTierEnumerable?.Any() ?? false)
{
CustomEliteDef = new CustomElite("Elite" + Name, CustomEquipmentDef.EquipmentDef, Color32.op_Implicit(EliteColor), "ELITE_MODIFIER_" + NameToken, eliteTierEnumerable, EliteRamp);
CustomEliteDef.EliteDef.healthBoostCoefficient = HealthBoostCoefficient;
CustomEliteDef.EliteDef.damageBoostCoefficient = DamageBoostCoefficient;
EliteBuffDef.eliteDef = CustomEliteDef.EliteDef;
EliteAPI.Add(CustomEliteDef);
IEnumerable<EliteTierDef> honorEliteTierEnumerable = EliteAPI.GetHonorEliteTierEnumerable(EliteTierEnum);
if (honorEliteTierEnumerable?.Any() ?? false)
{
CustomEliteDefHonor = new CustomElite("Elite" + Name + "Honor", CustomEquipmentDef.EquipmentDef, Color32.op_Implicit(EliteColor), "ELITE_MODIFIER_" + NameToken, honorEliteTierEnumerable, EliteRamp);
CustomEliteDefHonor.EliteDef.healthBoostCoefficient = PluginConfig.t1HonorHealthMult.Value;
CustomEliteDefHonor.EliteDef.damageBoostCoefficient = PluginConfig.t1HonorDamageMult.Value;
EliteAPI.Add(CustomEliteDefHonor);
}
}
}
}
public class Empowering : EliteBase<Empowering>
{
public class AffixEmpoweringBehavior : ItemBehavior
{
public GameObject affixEmpoweringWardInstance;
public void FixedUpdate()
{
//IL_0051: Unknown result type (might be due to invalid IL or missing references)
if (!NetworkServer.active)
{
return;
}
bool flag = base.stack > 0;
if (Object.op_Implicit((Object)(object)affixEmpoweringWardInstance) != flag)
{
if (flag)
{
affixEmpoweringWardInstance = Object.Instantiate<GameObject>(EliteBase<Empowering>.Instance.EmpoweringWard);
affixEmpoweringWardInstance.GetComponent<TeamFilter>().teamIndex = base.body.teamComponent.teamIndex;
affixEmpoweringWardInstance.GetComponent<BuffWard>().Networkradius = 25f + base.body.radius;
affixEmpoweringWardInstance.GetComponent<NetworkedBodyAttachment>().AttachToGameObjectAndSpawn(((Component)base.body).gameObject, (string)null);
}
else
{
Object.Destroy((Object)(object)affixEmpoweringWardInstance);
affixEmpoweringWardInstance = null;
}
}
}
public void OnDisable()
{
if (Object.op_Implicit((Object)(object)affixEmpoweringWardInstance))
{
Object.Destroy((Object)(object)affixEmpoweringWardInstance);
}
}
}
private GameObject EmpoweringWard = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_EliteHaunted.AffixHauntedWard_prefab).WaitForCompletion(), "EmpoweringWard");
public override string Name => "Empowering";
public override string EquipmentName => "Empowering Aspect";
public override string DescriptionText => "Aspect of Empowering";
public override string PickupText => "Buffs the move and attack speed of all allies.";
public override string LoreText => "Do the impossible, see the invisible\r\nRow! Row! Fight the power!\r\nTouch the untouchable, break the unbreakable\r\nRow! Row! Fight the power!";
public override VanillaEliteTier EliteTierEnum => (VanillaEliteTier)PluginConfig.eliteTierEmpowering.Value;
public override Color EliteColor => new Color(1f, 0.5f, 0f);
public override Texture2D EliteRamp { get; set; } = Addressables.LoadAssetAsync<Texture2D>((object)RoR2_Base_Common_ColorRamps.texRampMagmaWorm_png).WaitForCompletion();
public override Sprite EliteIcon { get; set; } = Addressables.LoadAssetAsync<Sprite>((object)RoR2_Base_EliteIce.texBuffAffixWhite_tif).WaitForCompletion();
public override Sprite AspectIcon { get; set; } = Addressables.LoadAssetAsync<Sprite>((object)RoR2_DLC1_EliteEarth.texAffixEarthIcon_png).WaitForCompletion();
public override Material EliteMaterial { get; set; } = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_WardOnLevel.matWarbannerBuffRing_mat).WaitForCompletion();
public override GameObject PickupModelPrefab { get; set; } = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_EliteFire.PickupEliteFire_prefab).WaitForCompletion(), "PickupAffixEmpowering", false);
public override void Init()
{
//IL_003d: Unknown result type (might be due to invalid IL or missing references)
//IL_0042: Unknown result type (might be due to invalid IL or missing references)
base.Init();
((Renderer)((Component)EmpoweringWard.transform.GetChild(0).GetChild(0)).GetComponent<MeshRenderer>()).material = EliteMaterial;
EmpoweringWard.GetComponent<BuffWard>().buffDef = Addressables.LoadAssetAsync<BuffDef>((object)RoR2_Base_WardOnLevel.bdWarbanner_asset).WaitForCompletion();
Object.Destroy((Object)(object)EmpoweringWard.GetComponent<AkEvent>());
Object.Destroy((Object)(object)EmpoweringWard.GetComponent<AkEvent>());
Object.Destroy((Object)(object)EmpoweringWard.GetComponent<AkGameObj>());
}
public override void OnBuffGained(CharacterBody self)
{
self.AddItemBehavior<AffixEmpoweringBehavior>(1);
}
public override void OnBuffLost(CharacterBody self)
{
self.AddItemBehavior<AffixEmpoweringBehavior>(0);
}
}
public class Frenzied : EliteBase<Frenzied>
{
public class FrenziedTeleportController : ItemBehavior
{
[CompilerGenerated]
private sealed class <Teleport>d__8 : IEnumerator<object>, IEnumerator, IDisposable
{
private int <>1__state;
private object <>2__current;
public FrenziedTeleportController <>4__this;
object IEnumerator<object>.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
[DebuggerHidden]
public <Teleport>d__8(int <>1__state)
{
this.<>1__state = <>1__state;
}
[DebuggerHidden]
void IDisposable.Dispose()
{
<>1__state = -2;
}
private bool MoveNext()
{
//IL_0025: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
//IL_004f: Unknown result type (might be due to invalid IL or missing references)
//IL_0060: Unknown result type (might be due to invalid IL or missing references)
//IL_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_007b: Expected O, but got Unknown
//IL_0092: Unknown result type (might be due to invalid IL or missing references)
int num = <>1__state;
FrenziedTeleportController frenziedTeleportController = <>4__this;
switch (num)
{
default:
return false;
case 0:
<>1__state = -1;
frenziedTeleportController.CalculateBlinkDestination();
if (frenziedTeleportController.blinkStart != frenziedTeleportController.blinkDestination)
{
Util.PlaySound("Play_parent_teleport", ((Component)frenziedTeleportController).gameObject);
frenziedTeleportController.CreateBlinkEffect(Util.GetCorePosition(((Component)frenziedTeleportController).gameObject));
TeleportHelper.TeleportBody(((ItemBehavior)frenziedTeleportController).body, frenziedTeleportController.blinkDestination, false);
<>2__current = (object)new WaitForSeconds(0.33f);
<>1__state = 1;
return true;
}
break;
case 1:
<>1__state = -1;
frenziedTeleportController.CreateBlinkEffect(Util.GetCorePosition(((Component)frenziedTeleportController).gameObject));
break;
}
return false;
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
}
private static float fireInterval = 10f;
private static GameObject blinkPrefab = Addressables.LoadAssetAsync<GameObject>((object)RoR2_Junk_Treebot.SonicBoomEffect_prefab).WaitForCompletion();
private static float shortBlinkDistance = 25f;
private static float blinkDistance = 50f;
private float fireTimer;
private Vector3 blinkDestination = Vector3.zero;
private Vector3 blinkStart = Vector3.zero;
private void FixedUpdate()
{
if (!base.body.isPlayerControlled && Object.op_Implicit((Object)(object)base.body.healthComponent) && base.body.healthComponent.alive)
{
fireTimer += Time.fixedDeltaTime;
if (fireTimer >= fireInterval)
{
fireTimer = 0f;
((MonoBehaviour)this).StartCoroutine(Teleport());
}
}
}
[IteratorStateMachine(typeof(<Teleport>d__8))]
public IEnumerator Teleport()
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new <Teleport>d__8(0)
{
<>4__this = this
};
}
private void CreateBlinkEffect(Vector3 origin)
{
//IL_0011: Unknown result type (might be due to invalid IL or missing references)
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
//IL_001e: Unknown result type (might be due to invalid IL or missing references)
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_0028: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_0039: Unknown result type (might be due to invalid IL or missing references)
//IL_0050: Expected O, but got Unknown
if (Object.op_Implicit((Object)(object)blinkPrefab))
{
EffectManager.SpawnEffect(blinkPrefab, new EffectData
{
rotation = Util.QuaternionSafeLookRotation(blinkDestination - blinkStart),
origin = origin,
scale = base.body.radius
}, false);
}
}
private void CalculateBlinkDestination()
{
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
//IL_0040: Unknown result type (might be due to invalid IL or missing references)
//IL_001e: Unknown result type (might be due to invalid IL or missing references)
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Unknown result type (might be due to invalid IL or missing references)
//IL_0045: Unknown result type (might be due to invalid IL or missing references)
//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
//IL_0100: Unknown result type (might be due to invalid IL or missing references)
//IL_0056: Unknown result type (might be due to invalid IL or missing references)
//IL_005b: Unknown result type (might be due to invalid IL or missing references)
//IL_005e: Unknown result type (might be due to invalid IL or missing references)
//IL_0063: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006b: Unknown result type (might be due to invalid IL or missing references)
//IL_0070: Unknown result type (might be due to invalid IL or missing references)
//IL_0075: Unknown result type (might be due to invalid IL or missing references)
//IL_0080: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: Unknown result type (might be due to invalid IL or missing references)
//IL_0086: Unknown result type (might be due to invalid IL or missing references)
//IL_008b: Unknown result type (might be due to invalid IL or missing references)
//IL_0092: Unknown result type (might be due to invalid IL or missing references)
//IL_0094: Unknown result type (might be due to invalid IL or missing references)
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
//IL_00af: Unknown result type (might be due to invalid IL or missing references)
//IL_0140: Unknown result type (might be due to invalid IL or missing references)
//IL_0145: Unknown result type (might be due to invalid IL or missing references)
//IL_014c: Unknown result type (might be due to invalid IL or missing references)
//IL_0151: Unknown result type (might be due to invalid IL or missing references)
//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
//IL_00de: Unknown result type (might be due to invalid IL or missing references)
//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
//IL_00ef: Unknown result type (might be due to invalid IL or missing references)
//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
//IL_00fe: 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_0133: Unknown result type (might be due to invalid IL or missing references)
//IL_0138: Unknown result type (might be due to invalid IL or missing references)
//IL_0197: Unknown result type (might be due to invalid IL or missing references)
//IL_019c: Unknown result type (might be due to invalid IL or missing references)
//IL_019d: Unknown result type (might be due to invalid IL or missing references)
//IL_01a8: Unknown result type (might be due to invalid IL or missing references)
//IL_01b2: Unknown result type (might be due to invalid IL or missing references)
//IL_01c5: Unknown result type (might be due to invalid IL or missing references)
//IL_01d0: Unknown result type (might be due to invalid IL or missing references)
//IL_01db: Unknown result type (might be due to invalid IL or missing references)
//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
//IL_01ea: Unknown result type (might be due to invalid IL or missing references)
//IL_020c: Unknown result type (might be due to invalid IL or missing references)
Vector3 val = Vector3.zero;
Ray val2 = (Ray)(Object.op_Implicit((Object)(object)base.body.inputBank) ? base.body.inputBank.GetAimRay() : new Ray(((Component)this).transform.position, ((Component)this).transform.forward));
if (!base.body.isPlayerControlled)
{
BullseyeSearch val3 = new BullseyeSearch
{
searchOrigin = ((Ray)(ref val2)).origin,
searchDirection = ((Ray)(ref val2)).direction,
maxDistanceFilter = blinkDistance,
teamMaskFilter = TeamMask.allButNeutral,
filterByLoS = false,
sortMode = (SortMode)2
};
((TeamMask)(ref val3.teamMaskFilter)).RemoveTeam(TeamComponent.GetObjectTeam(((Component)this).gameObject));
val3.RefreshCandidates();
HurtBox val4 = val3.GetResults().FirstOrDefault();
if (Object.op_Implicit((Object)(object)val4))
{
Vector3 val5 = ((Component)val4).transform.position - ((Component)this).transform.position;
float num = 15f;
val = val5 + Vector2.op_Implicit(num * Random.insideUnitCircle);
}
}
if (val == Vector3.zero && Object.op_Implicit((Object)(object)base.body.inputBank))
{
val = base.body.inputBank.moveVector * shortBlinkDistance;
}
blinkDestination = ((Component)this).transform.position;
blinkStart = blinkDestination;
NodeGraph obj = ((!base.body.isFlying || ((Object)base.body).name == "MinorConstructBody(Clone)") ? SceneInfo.instance.groundNodes : SceneInfo.instance.airNodes);
obj.GetNodePosition(obj.FindClosestNode(((Component)this).transform.position + val, base.body.hullClassification, float.PositiveInfinity), ref blinkDestination);
blinkDestination += ((Component)this).transform.position - base.body.footPosition;
if (Object.op_Implicit((Object)(object)base.body.characterDirection))
{
base.body.characterDirection.forward = val;
}
}
}
public override string Name => "Frenzied";
public override string EquipmentName => "Frenzied Aspect";
public override string PickupText => "Aspect of the Frenzied Flame";
public override string DescriptionText => "Increased move and attack speed";
public override string LoreText => "LET CHAOS BURN THE WORLD";
public override VanillaEliteTier EliteTierEnum => (VanillaEliteTier)PluginConfig.eliteTierFrenzied.Value;
public override Color EliteColor => Color.yellow;
public override Texture2D EliteRamp { get; set; } = Addressables.LoadAssetAsync<Texture2D>((object)RoR2_Base_Common_ColorRamps.texRampWarbanner2_png).WaitForCompletion();
public override Sprite EliteIcon { get; set; } = Addressables.LoadAssetAsync<Sprite>((object)RoR2_Base_EliteIce.texBuffAffixWhite_tif).WaitForCompletion();
public override Sprite AspectIcon { get; set; } = Addressables.LoadAssetAsync<Sprite>((object)RoR2_DLC1_EliteEarth.texAffixEarthIcon_png).WaitForCompletion();
public override Material EliteMaterial { get; set; } = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_WardOnLevel.matWarbannerSphereIndicator_mat).WaitForCompletion();
public override GameObject PickupModelPrefab { get; set; } = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_EliteFire.PickupEliteFire_prefab).WaitForCompletion(), "PickupAffixFrenzied", false);
public override void Init()
{
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: Expected O, but got Unknown
//IL_001e: Unknown result type (might be due to invalid IL or missing references)
//IL_0028: Expected O, but got Unknown
base.Init();
RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(Frenzy);
EquipmentSlot.PerformEquipmentAction += new hook_PerformEquipmentAction(EquipmentSlot_PerformEquipmentAction);
}
public override void SetupEquipment()
{
base.SetupEquipment();
CustomEquipmentDef.EquipmentDef.cooldown = 10f;
EquipmentDef equipmentDef = CustomEquipmentDef.EquipmentDef;
((Object)equipmentDef).name = ((Object)equipmentDef).name + "Nuxlar";
}
public override void OnBuffGained(CharacterBody self)
{
self.AddItemBehavior<FrenziedTeleportController>(1);
}
public override void OnBuffLost(CharacterBody self)
{
self.AddItemBehavior<FrenziedTeleportController>(0);
}
private bool EquipmentSlot_PerformEquipmentAction(orig_PerformEquipmentAction orig, EquipmentSlot self, EquipmentDef equipmentDef)
{
bool flag = orig.Invoke(self, equipmentDef);
if (!flag && (Object)(object)equipmentDef == (Object)(object)CustomEquipmentDef?.EquipmentDef)
{
FrenziedTeleportController frenziedTeleportController = default(FrenziedTeleportController);
if (Object.op_Implicit((Object)(object)self.characterBody) && self.characterBody.isPlayerControlled && ((Component)self.characterBody).TryGetComponent<FrenziedTeleportController>(ref frenziedTeleportController))
{
((MonoBehaviour)frenziedTeleportController).StartCoroutine(frenziedTeleportController.Teleport());
}
return true;
}
return flag;
}
private void Frenzy(CharacterBody sender, StatHookEventArgs args)
{
if (sender.HasBuff(EliteBuffDef))
{
args.baseMoveSpeedAdd += 2f;
args.attackSpeedMultAdd += 0.5f;
}
}
}
public class Volatile : EliteBase<Volatile>
{
public class VolatileMissileController : ItemBehavior
{
private static float normalBaseDamage = 12f;
private static float normalLevelDamage = 2.4f;
private static float championBaseDamage = 18f;
private static float championLevelDamage = 3.6f;
private float fireTimer;
private float fireInterval = 3f;
private void FixedUpdate()
{
//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
if (Object.op_Implicit((Object)(object)base.body) && Object.op_Implicit((Object)(object)base.body.healthComponent) && base.body.healthComponent.alive)
{
fireTimer += Time.fixedDeltaTime;
if (fireTimer >= fireInterval)
{
fireTimer = 0f;
fireInterval = Random.Range(1, 6);
float num = (base.body.isChampion ? (championBaseDamage + championLevelDamage * base.body.level) : (normalBaseDamage + normalLevelDamage * base.body.level));
MissileUtils.FireMissile(base.body.corePosition, base.body, default(ProcChainMask), (GameObject)null, num, Util.CheckRoll(base.body.crit, base.body.master), EliteBase<Volatile>.Instance.VolatileProjectile, (DamageColorIndex)3, false);
}
}
}
}
private GameObject VolatileProjectile = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_Common.MissileProjectile_prefab).WaitForCompletion(), "AffixVolatileNuxProjectile");
private GameObject VolatileProjectileGhost = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_Common.MissileGhost_prefab).WaitForCompletion(), "AffixVolatileNuxProjectileGhost");
private GameObject behemoExplosion = Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_Common_VFX.OmniExplosionVFXQuick_prefab).WaitForCompletion();
public override string Name => "Volatile";
public override string EquipmentName => "Volatile Aspect";
public override string PickupText => "Aspect of Volatile";
public override string DescriptionText => "All attacks explode and periodically fire missiles.";
public override string LoreText => "Hope you like dodging";
public override VanillaEliteTier EliteTierEnum => (VanillaEliteTier)PluginConfig.eliteTierVolatile.Value;
public override Color EliteColor => Color.red;
public override Texture2D EliteRamp { get; set; } = Addressables.LoadAssetAsync<Texture2D>((object)RoR2_DLC1_Common_ColorRamps.texRampStrongerBurn_png).WaitForCompletion();
public override Sprite EliteIcon { get; set; } = Addressables.LoadAssetAsync<Sprite>((object)RoR2_Base_EliteIce.texBuffAffixWhite_tif).WaitForCompletion();
public override Sprite AspectIcon { get; set; } = Object.Instantiate<Sprite>(Addressables.LoadAssetAsync<Sprite>((object)RoR2_DLC1_EliteEarth.texAffixEarthIcon_png).WaitForCompletion());
public override Material EliteMaterial { get; set; } = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_MagmaWorm.matMagmaWormFireball_mat).WaitForCompletion();
public override GameObject PickupModelPrefab { get; set; } = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_EliteFire.PickupEliteFire_prefab).WaitForCompletion(), "PickupAffixVolatile", false);
public override void Init()
{
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
//IL_0026: Unknown result type (might be due to invalid IL or missing references)
//IL_004e: Unknown result type (might be due to invalid IL or missing references)
//IL_0053: Unknown result type (might be due to invalid IL or missing references)
//IL_0098: Unknown result type (might be due to invalid IL or missing references)
//IL_010c: Unknown result type (might be due to invalid IL or missing references)
//IL_0116: Expected O, but got Unknown
base.Init();
((Renderer)((Component)VolatileProjectileGhost.transform.GetChild(0)).GetComponent<TrailRenderer>()).sharedMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_MagmaWorm.matMagmaWormFireballTrail_mat).WaitForCompletion();
((Renderer)((Component)VolatileProjectileGhost.transform.GetChild(1)).GetComponent<ParticleSystemRenderer>()).sharedMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Junk_Bandit.matThermiteFlare_mat).WaitForCompletion();
((Renderer)((Component)VolatileProjectileGhost.transform.GetChild(2)).GetComponent<MeshRenderer>()).sharedMaterial = EliteMaterial;
((Component)VolatileProjectileGhost.transform.GetChild(3)).GetComponent<Light>().color = EliteColor;
VolatileProjectile.GetComponent<ProjectileController>().ghostPrefab = VolatileProjectileGhost;
MissileController component = VolatileProjectile.GetComponent<MissileController>();
component.acceleration = 2f;
component.deathTimer = 6f;
component.giveupTimer = 4f;
component.maxVelocity = 20f;
component.turbulence = 6f;
ContentAddition.AddProjectile(VolatileProjectile);
GlobalEventManager.OnHitAll += new hook_OnHitAll(AddBehemoExplosion);
}
public override void OnBuffGained(CharacterBody self)
{
self.AddItemBehavior<VolatileMissileController>(1);
}
public override void OnBuffLost(CharacterBody self)
{
self.AddItemBehavior<VolatileMissileController>(0);
}
private void AddBehemoExplosion(orig_OnHitAll orig, GlobalEventManager self, DamageInfo damageInfo, GameObject hitObject)
{
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0074: Unknown result type (might be due to invalid IL or missing references)
//IL_007e: Unknown result type (might be due to invalid IL or missing references)
//IL_0085: Unknown result type (might be due to invalid IL or missing references)
//IL_0087: Unknown result type (might be due to invalid IL or missing references)
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_0091: Unknown result type (might be due to invalid IL or missing references)
//IL_009c: Expected O, but got Unknown
//IL_009c: Unknown result type (might be due to invalid IL or missing references)
//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
//IL_00db: Unknown result type (might be due to invalid IL or missing references)
//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
//IL_010b: Unknown result type (might be due to invalid IL or missing references)
//IL_010d: Unknown result type (might be due to invalid IL or missing references)
//IL_0112: Unknown result type (might be due to invalid IL or missing references)
//IL_0117: Unknown result type (might be due to invalid IL or missing references)
//IL_0122: Unknown result type (might be due to invalid IL or missing references)
//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_012b: Unknown result type (might be due to invalid IL or missing references)
//IL_0130: Unknown result type (might be due to invalid IL or missing references)
//IL_0132: Unknown result type (might be due to invalid IL or missing references)
//IL_0137: Unknown result type (might be due to invalid IL or missing references)
//IL_013c: Unknown result type (might be due to invalid IL or missing references)
orig.Invoke(self, damageInfo, hitObject);
CharacterBody val = default(CharacterBody);
if (damageInfo.procCoefficient > 0f && !damageInfo.rejected && Object.op_Implicit((Object)(object)damageInfo.attacker) && damageInfo.attacker.TryGetComponent<CharacterBody>(ref val))
{
BuffDef eliteBuffDef = EliteBuffDef;
if (val.HasBuff(eliteBuffDef))
{
float num = 2f * damageInfo.procCoefficient;
EffectManager.SpawnEffect(behemoExplosion, new EffectData
{
origin = damageInfo.position,
scale = num,
rotation = Util.QuaternionSafeLookRotation(damageInfo.force)
}, true);
new BlastAttack
{
position = damageInfo.position,
baseDamage = Util.OnHitProcDamage(damageInfo.damage, val.damage, 0.15f),
baseForce = 0f,
radius = num,
attacker = damageInfo.attacker,
inflictor = null,
teamIndex = TeamComponent.GetObjectTeam(damageInfo.attacker),
crit = damageInfo.crit,
procChainMask = damageInfo.procChainMask,
procCoefficient = 0f,
damageColorIndex = (DamageColorIndex)3,
falloffModel = (FalloffModel)2,
damageType = damageInfo.damageType
}.Fire();
}
}
}
}
public static class ItemDisplays
{
private static void ItemDisplaySetup(GameObject prefab)
{
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
//IL_0089: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Unknown result type (might be due to invalid IL or missing references)
//IL_0098: Unknown result type (might be due to invalid IL or missing references)
MeshRenderer[] componentsInChildren = prefab.GetComponentsInChildren<MeshRenderer>();
SkinnedMeshRenderer[] componentsInChildren2 = prefab.GetComponentsInChildren<SkinnedMeshRenderer>();
List<Renderer> list = new List<Renderer>(componentsInChildren.Length + componentsInChildren2.Length);
list.AddRange((IEnumerable<Renderer>)(object)componentsInChildren);
list.AddRange((IEnumerable<Renderer>)(object)componentsInChildren2);
List<Renderer> list2 = list;
RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[list2.Count];
for (int i = 0; i < list2.Count; i++)
{
array[i] = new RendererInfo
{
defaultMaterial = ((list2[i] is SkinnedMeshRenderer) ? list2[i].sharedMaterial : list2[i].material),
renderer = list2[i],
defaultShadowCastingMode = (ShadowCastingMode)1,
ignoreOverlays = false
};
}
(prefab.GetComponent<ItemDisplay>() ?? prefab.AddComponent<ItemDisplay>()).rendererInfos = array;
}
public static ItemDisplayRuleDict CreateItemDisplayRules(GameObject prefab, Material material)
{
//IL_001c: Unknown result type (might be due to invalid IL or missing references)
//IL_0022: Expected O, but got Unknown
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Expected O, but got Unknown
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004c: Unknown result type (might be due to invalid IL or missing references)
//IL_007e: Unknown result type (might be due to invalid IL or missing references)
//IL_0083: Unknown result type (might be due to invalid IL or missing references)
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_009e: Unknown result type (might be due to invalid IL or missing references)
//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
//IL_00be: Unknown result type (might be due to invalid IL or missing references)
//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
//IL_0114: Unknown result type (might be due to invalid IL or missing references)
//IL_0119: Unknown result type (might be due to invalid IL or missing references)
//IL_012f: Unknown result type (might be due to invalid IL or missing references)
//IL_0134: Unknown result type (might be due to invalid IL or missing references)
//IL_014a: Unknown result type (might be due to invalid IL or missing references)
//IL_014f: Unknown result type (might be due to invalid IL or missing references)
//IL_0154: Unknown result type (might be due to invalid IL or missing references)
//IL_0155: Unknown result type (might be due to invalid IL or missing references)
//IL_016f: Unknown result type (might be due to invalid IL or missing references)
//IL_0178: Unknown result type (might be due to invalid IL or missing references)
//IL_01aa: Unknown result type (might be due to invalid IL or missing references)
//IL_01af: Unknown result type (might be due to invalid IL or missing references)
//IL_01c5: Unknown result type (might be due to invalid IL or missing references)
//IL_01ca: Unknown result type (might be due to invalid IL or missing references)
//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
//IL_01ea: Unknown result type (might be due to invalid IL or missing references)
//IL_01eb: Unknown result type (might be due to invalid IL or missing references)
//IL_0205: Unknown result type (might be due to invalid IL or missing references)
//IL_020e: Unknown result type (might be due to invalid IL or missing references)
//IL_0240: Unknown result type (might be due to invalid IL or missing references)
//IL_0245: Unknown result type (might be due to invalid IL or missing references)
//IL_025b: Unknown result type (might be due to invalid IL or missing references)
//IL_0260: 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_0280: Unknown result type (might be due to invalid IL or missing references)
//IL_0281: Unknown result type (might be due to invalid IL or missing references)
//IL_029b: Unknown result type (might be due to invalid IL or missing references)
//IL_02a4: Unknown result type (might be due to invalid IL or missing references)
//IL_02d6: Unknown result type (might be due to invalid IL or missing references)
//IL_02db: Unknown result type (might be due to invalid IL or missing references)
//IL_02f1: Unknown result type (might be due to invalid IL or missing references)
//IL_02f6: Unknown result type (might be due to invalid IL or missing references)
//IL_030c: Unknown result type (might be due to invalid IL or missing references)
//IL_0311: Unknown result type (might be due to invalid IL or missing references)
//IL_0316: Unknown result type (might be due to invalid IL or missing references)
//IL_0317: Unknown result type (might be due to invalid IL or missing references)
//IL_0331: Unknown result type (might be due to invalid IL or missing references)
//IL_033a: Unknown result type (might be due to invalid IL or missing references)
//IL_036c: Unknown result type (might be due to invalid IL or missing references)
//IL_0371: Unknown result type (might be due to invalid IL or missing references)
//IL_0387: Unknown result type (might be due to invalid IL or missing references)
//IL_038c: Unknown result type (might be due to invalid IL or missing references)
//IL_03a2: Unknown result type (might be due to invalid IL or missing references)
//IL_03a7: Unknown result type (might be due to invalid IL or missing references)
//IL_03ac: Unknown result type (might be due to invalid IL or missing references)
//IL_03ad: Unknown result type (might be due to invalid IL or missing references)
//IL_03c7: Unknown result type (might be due to invalid IL or missing references)
//IL_03d0: Unknown result type (might be due to invalid IL or missing references)
//IL_0402: Unknown result type (might be due to invalid IL or missing references)
//IL_0407: Unknown result type (might be due to invalid IL or missing references)
//IL_041d: Unknown result type (might be due to invalid IL or missing references)
//IL_0422: Unknown result type (might be due to invalid IL or missing references)
//IL_0438: Unknown result type (might be due to invalid IL or missing references)
//IL_043d: Unknown result type (might be due to invalid IL or missing references)
//IL_0442: Unknown result type (might be due to invalid IL or missing references)
//IL_0443: Unknown result type (might be due to invalid IL or missing references)
//IL_045d: Unknown result type (might be due to invalid IL or missing references)
//IL_0466: Unknown result type (might be due to invalid IL or missing references)
//IL_0498: Unknown result type (might be due to invalid IL or missing references)
//IL_049d: Unknown result type (might be due to invalid IL or missing references)
//IL_04b3: Unknown result type (might be due to invalid IL or missing references)
//IL_04b8: Unknown result type (might be due to invalid IL or missing references)
//IL_04ce: Unknown result type (might be due to invalid IL or missing references)
//IL_04d3: Unknown result type (might be due to invalid IL or missing references)
//IL_04d8: Unknown result type (might be due to invalid IL or missing references)
//IL_04d9: Unknown result type (might be due to invalid IL or missing references)
//IL_04f3: Unknown result type (might be due to invalid IL or missing references)
//IL_04fc: Unknown result type (might be due to invalid IL or missing references)
//IL_052e: Unknown result type (might be due to invalid IL or missing references)
//IL_0533: Unknown result type (might be due to invalid IL or missing references)
//IL_0549: Unknown result type (might be due to invalid IL or missing references)
//IL_054e: Unknown result type (might be due to invalid IL or missing references)
//IL_0564: Unknown result type (might be due to invalid IL or missing references)
//IL_0569: Unknown result type (might be due to invalid IL or missing references)
//IL_056e: Unknown result type (might be due to invalid IL or missing references)
//IL_056f: Unknown result type (might be due to invalid IL or missing references)
//IL_0589: Unknown result type (might be due to invalid IL or missing references)
//IL_0592: Unknown result type (might be due to invalid IL or missing references)
//IL_05c4: Unknown result type (might be due to invalid IL or missing references)
//IL_05c9: Unknown result type (might be due to invalid IL or missing references)
//IL_05df: Unknown result type (might be due to invalid IL or missing references)
//IL_05e4: Unknown result type (might be due to invalid IL or missing references)
//IL_05fa: Unknown result type (might be due to invalid IL or missing references)
//IL_05ff: Unknown result type (might be due to invalid IL or missing references)
//IL_0604: Unknown result type (might be due to invalid IL or missing references)
//IL_0605: Unknown result type (might be due to invalid IL or missing references)
//IL_061f: Unknown result type (might be due to invalid IL or missing references)
//IL_0628: Unknown result type (might be due to invalid IL or missing references)
//IL_065a: Unknown result type (might be due to invalid IL or missing references)
//IL_065f: Unknown result type (might be due to invalid IL or missing references)
//IL_0675: Unknown result type (might be due to invalid IL or missing references)
//IL_067a: Unknown result type (might be due to invalid IL or missing references)
//IL_0690: Unknown result type (might be due to invalid IL or missing references)
//IL_0695: Unknown result type (might be due to invalid IL or missing references)
//IL_069a: Unknown result type (might be due to invalid IL or missing references)
//IL_069b: Unknown result type (might be due to invalid IL or missing references)
//IL_06b5: Unknown result type (might be due to invalid IL or missing references)
//IL_06be: Unknown result type (might be due to invalid IL or missing references)
//IL_06f0: Unknown result type (might be due to invalid IL or missing references)
//IL_06f5: Unknown result type (might be due to invalid IL or missing references)
//IL_070b: Unknown result type (might be due to invalid IL or missing references)
//IL_0710: Unknown result type (might be due to invalid IL or missing references)
//IL_0726: Unknown result type (might be due to invalid IL or missing references)
//IL_072b: Unknown result type (might be due to invalid IL or missing references)
//IL_0730: Unknown result type (might be due to invalid IL or missing references)
//IL_0731: Unknown result type (might be due to invalid IL or missing references)
//IL_074b: Unknown result type (might be due to invalid IL or missing references)
//IL_0754: Unknown result type (might be due to invalid IL or missing references)
//IL_0786: Unknown result type (might be due to invalid IL or missing references)
//IL_078b: Unknown result type (might be due to invalid IL or missing references)
//IL_07a1: Unknown result type (might be due to invalid IL or missing references)
//IL_07a6: Unknown result type (might be due to invalid IL or missing references)
//IL_07bc: Unknown result type (might be due to invalid IL or missing references)
//IL_07c1: Unknown result type (might be due to invalid IL or missing references)
//IL_07c6: Unknown result type (might be due to invalid IL or missing references)
//IL_07c7: Unknown result type (might be due to invalid IL or missing references)
//IL_07e1: Unknown result type (might be due to invalid IL or missing references)
//IL_07ea: Unknown result type (might be due to invalid IL or missing references)
//IL_081c: Unknown result type (might be due to invalid IL or missing references)
//IL_0821: Unknown result type (might be due to invalid IL or missing references)
//IL_0837: Unknown result type (might be due to invalid IL or missing references)
//IL_083c: Unknown result type (might be due to invalid IL or missing references)
//IL_0852: Unknown result type (might be due to invalid IL or missing references)
//IL_0857: Unknown result type (might be due to invalid IL or missing references)
//IL_085c: Unknown result type (might be due to invalid IL or missing references)
//IL_085d: Unknown result type (might be due to invalid IL or missing references)
//IL_0877: Unknown result type (might be due to invalid IL or missing references)
//IL_0880: Unknown result type (might be due to invalid IL or missing references)
//IL_08b2: Unknown result type (might be due to invalid IL or missing references)
//IL_08b7: Unknown result type (might be due to invalid IL or missing references)
//IL_08cd: Unknown result type (might be due to invalid IL or missing references)
//IL_08d2: Unknown result type (might be due to invalid IL or missing references)
//IL_08e8: Unknown result type (might be due to invalid IL or missing references)
//IL_08ed: Unknown result type (might be due to invalid IL or missing references)
//IL_08f2: Unknown result type (might be due to invalid IL or missing references)
//IL_08f3: Unknown result type (might be due to invalid IL or missing references)
//IL_090d: Unknown result type (might be due to invalid IL or missing references)
//IL_0916: Unknown result type (might be due to invalid IL or missing references)
//IL_0948: Unknown result type (might be due to invalid IL or missing references)
//IL_094d: Unknown result type (might be due to invalid IL or missing references)
//IL_0963: Unknown result type (might be due to invalid IL or missing references)
//IL_0968: Unknown result type (might be due to invalid IL or missing references)
//IL_097e: Unknown result type (might be due to invalid IL or missing references)
//IL_0983: Unknown result type (might be due to invalid IL or missing references)
//IL_0988: Unknown result type (might be due to invalid IL or missing references)
//IL_0989: Unknown result type (might be due to invalid IL or missing references)
//IL_09a3: Unknown result type (might be due to invalid IL or missing references)
//IL_09ac: Unknown result type (might be due to invalid IL or missing references)
//IL_09de: Unknown result type (might be due to invalid IL or missing references)
//IL_09e3: Unknown result type (might be due to invalid IL or missing references)
//IL_09f9: Unknown result type (might be due to invalid IL or missing references)
//IL_09fe: Unknown result type (might be due to invalid IL or missing references)
//IL_0a14: Unknown result type (might be due to invalid IL or missing references)
//IL_0a19: Unknown result type (might be due to invalid IL or missing references)
//IL_0a1e: Unknown result type (might be due to invalid IL or missing references)
//IL_0a1f: Unknown result type (might be due to invalid IL or missing references)
//IL_0a39: Unknown result type (might be due to invalid IL or missing references)
//IL_0a42: Unknown result type (might be due to invalid IL or missing references)
//IL_0a74: Unknown result type (might be due to invalid IL or missing references)
//IL_0a79: Unknown result type (might be due to invalid IL or missing references)
//IL_0a8f: Unknown result type (might be due to invalid IL or missing references)
//IL_0a94: Unknown result type (might be due to invalid IL or missing references)
//IL_0aaa: Unknown result type (might be due to invalid IL or missing references)
//IL_0aaf: Unknown result type (might be due to invalid IL or missing references)
//IL_0ab4: Unknown result type (might be due to invalid IL or missing references)
//IL_0ab5: Unknown result type (might be due to invalid IL or missing references)
//IL_0acf: Unknown result type (might be due to invalid IL or missing references)
//IL_0ad8: Unknown result type (might be due to invalid IL or missing references)
//IL_0b0a: Unknown result type (might be due to invalid IL or missing references)
//IL_0b0f: Unknown result type (might be due to invalid IL or missing references)
//IL_0b25: Unknown result type (might be due to invalid IL or missing references)
//IL_0b2a: Unknown result type (might be due to invalid IL or missing references)
//IL_0b40: Unknown result type (might be due to invalid IL or missing references)
//IL_0b45: Unknown result type (might be due to invalid IL or missing references)
//IL_0b4a: Unknown result type (might be due to invalid IL or missing references)
//IL_0b4b: Unknown result type (might be due to invalid IL or missing references)
//IL_0b65: Unknown result type (might be due to invalid IL or missing references)
//IL_0b6e: Unknown result type (might be due to invalid IL or missing references)
//IL_0ba0: Unknown result type (might be due to invalid IL or missing references)
//IL_0ba5: Unknown result type (might be due to invalid IL or missing references)
//IL_0bbb: Unknown result type (might be due to invalid IL or missing references)
//IL_0bc0: Unknown result type (might be due to invalid IL or missing references)
//IL_0bd6: Unknown result type (might be due to invalid IL or missing references)
//IL_0bdb: Unknown result type (might be due to invalid IL or missing references)
//IL_0be0: Unknown result type (might be due to invalid IL or missing references)
//IL_0be1: Unknown result type (might be due to invalid IL or missing references)
//IL_0bfb: Unknown result type (might be due to invalid IL or missing references)
//IL_0c04: Unknown result type (might be due to invalid IL or missing references)
//IL_0c36: Unknown result type (might be due to invalid IL or missing references)
//IL_0c3b: Unknown result type (might be due to invalid IL or missing references)
//IL_0c51: Unknown result type (might be due to invalid IL or missing references)
//IL_0c56: Unknown result type (might be due to invalid IL or missing references)
//IL_0c6c: Unknown result type (might be due to invalid IL or missing references)
//IL_0c71: Unknown result type (might be due to invalid IL or missing references)
//IL_0c76: Unknown result type (might be due to invalid IL or missing references)
//IL_0c77: Unknown result type (might be due to invalid IL or missing references)
//IL_0c91: Unknown result type (might be due to invalid IL or missing references)
//IL_0c9a: Unknown result type (might be due to invalid IL or missing references)
//IL_0ccc: Unknown result type (might be due to invalid IL or missing references)
//IL_0cd1: Unknown result type (might be due to invalid IL or missing references)
//IL_0ce7: Unknown result type (might be due to invalid IL or missing references)
//IL_0cec: Unknown result type (might be due to invalid IL or missing references)
//IL_0d02: Unknown result type (might be due to invalid IL or missing references)
//IL_0d07: Unknown result type (might be due to invalid IL or missing references)
//IL_0d0c: Unknown result type (might be due to invalid IL or missing references)
//IL_0d0d: Unknown result type (might be due to invalid IL or missing references)
//IL_0d27: Unknown result type (might be due to invalid IL or missing references)
//IL_0d30: Unknown result type (might be due to invalid IL or missing references)
//IL_0d62: Unknown result type (might be due to invalid IL or missing references)
//IL_0d67: Unknown result type (might be due to invalid IL or missing references)
//IL_0d7d: Unknown result type (might be due to invalid IL or missing references)
//IL_0d82: Unknown result type (might be due to invalid IL or missing references)
//IL_0d98: Unknown result type (might be due to invalid IL or missing references)
//IL_0d9d: Unknown result type (might be due to invalid IL or missing references)
//IL_0da2: Unknown result type (might be due to invalid IL or missing references)
//IL_0da3: Unknown result type (might be due to invalid IL or missing references)
//IL_0dbd: Unknown result type (might be due to invalid IL or missing references)
//IL_0dc6: Unknown result type (might be due to invalid IL or missing references)
//IL_0df8: Unknown result type (might be due to invalid IL or missing references)
//IL_0dfd: Unknown result type (might be due to invalid IL or missing references)
//IL_0e13: Unknown result type (might be due to invalid IL or missing references)
//IL_0e18: Unknown result type (might be due to invalid IL or missing references)
//IL_0e2e: Unknown result type (might be due to invalid IL or missing references)
//IL_0e33: Unknown result type (might be due to invalid IL or missing references)
//IL_0e38: Unknown result type (might be due to invalid IL or missing references)
//IL_0e39: Unknown result type (might be due to invalid IL or missing references)
//IL_0e53: Unknown result type (might be due to invalid IL or missing references)
//IL_0e5c: Unknown result type (might be due to invalid IL or missing references)
//IL_0e8e: Unknown result type (might be due to invalid IL or missing references)
//IL_0e93: Unknown result type (might be due to invalid IL or missing references)
//IL_0ea9: Unknown result type (might be due to invalid IL or missing references)
//IL_0eae: Unknown result type (might be due to invalid IL or missing references)
//IL_0ec4: Unknown result type (might be due to invalid IL or missing references)
//IL_0ec9: Unknown result type (might be due to invalid IL or missing references)
//IL_0ece: Unknown result type (might be due to invalid IL or missing references)
//IL_0ecf: Unknown result type (might be due to invalid IL or missing references)
//IL_0ee9: Unknown result type (might be due to invalid IL or missing references)
//IL_0ef2: Unknown result type (might be due to invalid IL or missing references)
//IL_0f24: Unknown result type (might be due to invalid IL or missing references)
//IL_0f29: Unknown result type (might be due to invalid IL or missing references)
//IL_0f3f: Unknown result type (might be due to invalid IL or missing references)
//IL_0f44: Unknown result type (might be due to invalid IL or missing references)
//IL_0f5a: Unknown result type (might be due to invalid IL or missing references)
//IL_0f5f: Unknown result type (might be due to invalid IL or missing references)
//IL_0f64: Unknown result type (might be due to invalid IL or missing references)
//IL_0f65: Unknown result type (might be due to invalid IL or missing references)
//IL_0f7f: Unknown result type (might be due to invalid IL or missing references)
//IL_0f88: Unknown result type (might be due to invalid IL or missing references)
//IL_0fba: Unknown result type (might be due to invalid IL or missing references)
//IL_0fbf: Unknown result type (might be due to invalid IL or missing references)
//IL_0fd5: Unknown result type (might be due to invalid IL or missing references)
//IL_0fda: Unknown result type (might be due to invalid IL or missing references)
//IL_0ff0: Unknown result type (might be due to invalid IL or missing references)
//IL_0ff5: Unknown result type (might be due to invalid IL or missing references)
//IL_0ffa: Unknown result type (might be due to invalid IL or missing references)
//IL_0ffb: Unknown result type (might be due to invalid IL or missing references)
//IL_1015: Unknown result type (might be due to invalid IL or missing references)
//IL_101e: Unknown result type (might be due to invalid IL or missing references)
//IL_1050: Unknown result type (might be due to invalid IL or missing references)
//IL_1055: Unknown result type (might be due to invalid IL or missing references)
//IL_106b: Unknown result type (might be due to invalid IL or missing references)
//IL_1070: Unknown result type (might be due to invalid IL or missing references)
//IL_1086: Unknown result type (might be due to invalid IL or missing references)
//IL_108b: Unknown result type (might be due to invalid IL or missing references)
//IL_1090: Unknown result type (might be due to invalid IL or missing references)
//IL_1091: Unknown result type (might be due to invalid IL or missing references)
//IL_10ab: Unknown result type (might be due to invalid IL or missing references)
//IL_10b4: Unknown result type (might be due to invalid IL or missing references)
//IL_10e6: Unknown result type (might be due to invalid IL or missing references)
//IL_10eb: Unknown result type (might be due to invalid IL or missing references)
//IL_1101: Unknown result type (might be due to invalid IL or missing references)
//IL_1106: Unknown result type (might be due to invalid IL or missing references)
//IL_111c: Unknown result type (might be due to invalid IL or missing references)
//IL_1121: Unknown result type (might be due to invalid IL or missing references)
//IL_1126: Unknown result type (might be due to invalid IL or missing references)
//IL_1127: Unknown result type (might be due to invalid IL or missing references)
//IL_1141: Unknown result type (might be due to invalid IL or missing references)
//IL_114a: Unknown result type (might be due to invalid IL or missing references)
//IL_117c: Unknown result type (might be due to invalid IL or missing references)
//IL_1181: Unknown result type (might be due to invalid IL or missing references)
//IL_1197: Unknown result type (might be due to invalid IL or missing references)
//IL_119c: Unknown result type (might be due to invalid IL or missing references)
//IL_11b2: Unknown result type (might be due to invalid IL or missing references)
//IL_11b7: Unknown result type (might be due to invalid IL or missing references)
//IL_11bc: Unknown result type (might be due to invalid IL or missing references)
//IL_11bd: Unknown result type (might be due to invalid IL or missing references)
//IL_11d7: Unknown result type (might be due to invalid IL or missing references)
//IL_11e0: Unknown result type (might be due to invalid IL or missing references)
//IL_1212: Unknown result type (might be due to invalid IL or missing references)
//IL_1217: Unknown result type (might be due to invalid IL or missing references)
//IL_122d: Unknown result type (might be due to invalid IL or missing references)
//IL_1232: Unknown result type (might be due to invalid IL or missing references)
//IL_1248: Unknown result type (might be due to invalid IL or missing references)
//IL_124d: Unknown result type (might be due to invalid IL or missing references)
//IL_1252: Unknown result type (might be due to invalid IL or missing references)
//IL_1253: Unknown result type (might be due to invalid IL or missing references)
//IL_126d: Unknown result type (might be due to invalid IL or missing references)
//IL_1276: Unknown result type (might be due to invalid IL or missing references)
//IL_12a8: Unknown result type (might be due to invalid IL or missing references)
//IL_12ad: Unknown result type (might be due to invalid IL or missing references)
//IL_12c3: Unknown result type (might be due to invalid IL or missing references)
//IL_12c8: Unknown result type (might be due to invalid IL or missing references)
//IL_12de: Unknown result type (might be due to invalid IL or missing references)
//IL_12e3: Unknown result type (might be due to invalid IL or missing references)
//IL_12e8: Unknown result type (might be due to invalid IL or missing references)
//IL_12e9: Unknown result type (might be due to invalid IL or missing references)
//IL_1303: Unknown result type (might be due to invalid IL or missing references)
//IL_130c: Unknown result type (might be due to invalid IL or missing references)
//IL_133e: Unknown result type (might be due to invalid IL or missing references)
//IL_1343: Unknown result type (might be due to invalid IL or missing references)
//IL_1359: Unknown result type (might be due to invalid IL or missing references)
//IL_135e: Unknown result type (might be due to invalid IL or missing references)
//IL_1374: Unknown result type (might be due to invalid IL or missing references)
//IL_1379: Unknown result type (might be due to invalid IL or missing references)
//IL_137e: Unknown result type (might be due to invalid IL or missing references)
//IL_137f: Unknown result type (might be due to invalid IL or missing references)
//IL_1399: Unknown result type (might be due to invalid IL or missing references)
//IL_13a2: Unknown result type (might be due to invalid IL or missing references)
//IL_13d4: Unknown result type (might be due to invalid IL or missing references)
//IL_13d9: Unknown result type (might be due to invalid IL or missing references)
//IL_13ef: Unknown result type (might be due to invalid IL or missing references)
//IL_13f4: Unknown result type (might be due to invalid IL or missing references)
//IL_140a: Unknown result type (might be due to invalid IL or missing references)
//IL_140f: Unknown result type (might be due to invalid IL or missing references)
//IL_1414: Unknown result type (might be due to invalid IL or missing references)
//IL_1415: Unknown result type (might be due to invalid IL or missing references)
//IL_142f: Unknown result type (might be due to invalid IL or missing references)
//IL_1438: Unknown result type (might be due to invalid IL or missing references)
//IL_146a: Unknown result type (might be due to invalid IL or missing references)
//IL_146f: Unknown result type (might be due to invalid IL or missing references)
//IL_1485: Unknown result type (might be due to invalid IL or missing references)
//IL_148a: Unknown result type (might be due to invalid IL or missing references)
//IL_14a0: Unknown result type (might be due to invalid IL or missing references)
//IL_14a5: Unknown result type (might be due to invalid IL or missing references)
//IL_14aa: Unknown result type (might be due to invalid IL or missing references)
//IL_14ab: Unknown result type (might be due to invalid IL or missing references)
//IL_14c5: Unknown result type (might be due to invalid IL or missing references)
//IL_14ce: Unknown result type (might be due to invalid IL or missing references)
//IL_1500: Unknown result type (might be due to invalid IL or missing references)
//IL_1505: Unknown result type (might be due to invalid IL or missing references)
//IL_151b: Unknown result type (might be due to invalid IL or missing references)
//IL_1520: Unknown result type (might be due to invalid IL or missing references)
//IL_1536: Unknown result type (might be due to invalid IL or missing references)
//IL_153b: Unknown result type (might be due to invalid IL or missing references)
//IL_1540: Unknown result type (might be due to invalid IL or missing references)
//IL_1541: Unknown result type (might be due to invalid IL or missing references)
//IL_155b: Unknown result type (might be due to invalid IL or missing references)
//IL_1564: Unknown result type (might be due to invalid IL or missing references)
//IL_1596: Unknown result type (might be due to invalid IL or missing references)
//IL_159b: Unknown result type (might be due to invalid IL or missing references)
//IL_15b1: Unknown result type (might be due to invalid IL or missing references)
//IL_15b6: Unknown result type (might be due to invalid IL or missing references)
//IL_15cc: Unknown result type (might be due to invalid IL or missing references)
//IL_15d1: Unknown result type (might be due to invalid IL or missing references)
//IL_15d6: Unknown result type (might be due to invalid IL or missing references)
//IL_15d7: Unknown result type (might be due to invalid IL or missing references)
//IL_15f1: Unknown result type (might be due to invalid IL or missing references)
//IL_15fa: Unknown result type (might be due to invalid IL or missing references)
//IL_162c: Unknown result type (might be due to invalid IL or missing references)
//IL_1631: Unknown result type (might be due to invalid IL or missing references)
//IL_1647: Unknown result type (might be due to invalid IL or missing references)
//IL_164c: Unknown result type (might be due to invalid IL or missing references)
//IL_1662: Unknown result type (might be due to invalid IL or missing references)
//IL_1667: Unknown result type (might be due to invalid IL or missing references)
//IL_166c: Unknown result type (might be due to invalid IL or missing references)
//IL_166d: Unknown result type (might be due to invalid IL or missing references)
//IL_1687: Unknown result type (might be due to invalid IL or missing references)
//IL_1690: Unknown result type (might be due to invalid IL or missing references)
//IL_16c2: Unknown result type (might be due to invalid IL or missing references)
//IL_16c7: Unknown result type (might be due to invalid IL or missing references)
//IL_16dd: Unknown result type (might be due to invalid IL or missing references)
//IL_16e2: Unknown result type (might be due to invalid IL or missing references)
//IL_16f8: Unknown result type (might be due to invalid IL or missing references)
//IL_16fd: Unknown result type (might be due to invalid IL or missing references)
//IL_1702: Unknown result type (might be due to invalid IL or missing references)
//IL_1703: Unknown result type (might be due to invalid IL or missing references)
//IL_171d: Unknown result type (might be due to invalid IL or missing references)
//IL_1726: Unknown result type (might be due to invalid IL or missing references)
//IL_1758: Unknown result type (might be due to invalid IL or missing references)
//IL_175d: Unknown result type (might be due to invalid IL or missing references)
//IL_1773: Unknown result type (might be due to invalid IL or missing references)
//IL_1778: Unknown result type (might be due to invalid IL or missing references)
//IL_178e: Unknown result type (might be due to invalid IL or missing references)
//IL_1793: Unknown result type (might be due to invalid IL or missing references)
//IL_1798: Unknown result type (might be due to invalid IL or missing references)
//IL_1799: Unknown result type (might be due to invalid IL or missing references)
//IL_17b3: Unknown result type (might be due to invalid IL or missing references)
//IL_17bc: Unknown result type (might be due to invalid IL or missing references)
//IL_17ee: Unknown result type (might be due to invalid IL or missing references)
//IL_17f3: Unknown result type (might be due to invalid IL or missing references)
//IL_1809: Unknown result type (might be due to invalid IL or missing references)
//IL_180e: Unknown result type (might be due to invalid IL or missing references)
//IL_1824: Unknown result type (might be due to invalid IL or missing references)
//IL_1829: Unknown result type (might be due to invalid IL or missing references)
//IL_182e: Unknown result type (might be due to invalid IL or missing references)
//IL_182f: Unknown result type (might be due to invalid IL or missing references)
//IL_1849: Unknown result type (might be due to invalid IL or missing references)
//IL_1852: Unknown result type (might be due to invalid IL or missing references)
//IL_1884: Unknown result type (might be due to invalid IL or missing references)
//IL_1889: Unknown result type (might be due to invalid IL or missing references)
//IL_189f: Unknown result type (might be due to invalid IL or missing references)
//IL_18a4: Unknown result type (might be due to invalid IL or missing references)
//IL_18ba: Unknown result type (might be due to invalid IL or missing references)
//IL_18bf: Unknown result type (might be due to invalid IL or missing references)
//IL_18c4: Unknown result type (might be due to invalid IL or missing references)
//IL_18c5: Unknown result type (might be due to invalid IL or missing references)
//IL_18df: Unknown result type (might be due to invalid IL or missing references)
//IL_18e8: Unknown result type (might be due to invalid IL or missing references)
//IL_191a: Unknown result type (might be due to invalid IL or missing references)
//IL_191f: Unknown result type (might be due to invalid IL or missing references)
//IL_1935: Unknown result type (might be due to invalid IL or missing references)
//IL_193a: Unknown result type (might be due to invalid IL or missing references)
//IL_1950: Unknown result type (might be due to invalid IL or missing references)
//IL_1955: Unknown result type (might be due to invalid IL or missing references)
//IL_195a: Unknown result type (might be due to invalid IL or missing references)
//IL_195b: Unknown result type (might be due to invalid IL or missing references)
//IL_1975: Unknown result type (might be due to invalid IL or missing references)
//IL_197e: Unknown result type (might be due to invalid IL or missing references)
//IL_19b0: Unknown result type (might be due to invalid IL or missing references)
//IL_19b5: Unknown result type (might be due to invalid IL or missing references)
//IL_19cb: Unknown result type (might be due to invalid IL or missing references)
//IL_19d0: Unknown result type (might be due to invalid IL or missing references)
//IL_19e6: Unknown result type (might be due to invalid IL or missing references)
//IL_19eb: Unknown result type (might be due to invalid IL or missing references)
//IL_19f0: Unknown result type (might be due to invalid IL or missing references)
//IL_19f1: Unknown result type (might be due to invalid IL or missing references)
//IL_1a0b: Unknown result type (might be due to invalid IL or missing references)
//IL_1a14: Unknown result type (might be due to invalid IL or missing references)
//IL_1a46: Unknown result type (might be due to invalid IL or missing references)
//IL_1a4b: Unknown result type (might be due to invalid IL or missing references)
//IL_1a61: Unknown result type (might be due to invalid IL or missing references)
//IL_1a66: Unknown result type (might be due to invalid IL or missing references)
//IL_1a7c: Unknown result type (might be due to invalid IL or missing references)
//IL_1a81: Unknown result type (might be due to invalid IL or missing references)
//IL_1a86: Unknown result type (might be due to invalid IL or missing references)
//IL_1a87: Unknown result type (might be due to invalid IL or missing references)
//IL_1aa1: Unknown result type (might be due to invalid IL or missing references)
//IL_1aaa: Unknown result type (might be due to invalid IL or missing references)
//IL_1adc: Unknown result type (might be due to invalid IL or missing references)
//IL_1ae1: Unknown result type (might be due to invalid IL or missing references)
//IL_1af7: Unknown result type (might be due to invalid IL or missing references)
//IL_1afc: Unknown result type (might be due to invalid IL or missing references)
//IL_1b12: Unknown result type (might be due to invalid IL or missing references)
//IL_1b17: Unknown result type (might be due to invalid IL or missing references)
//IL_1b1c: Unknown result type (might be due to invalid IL or missing references)
//IL_1b1d: Unknown result type (might be due to invalid IL or missing references)
//IL_1b37: Unknown result type (might be due to invalid IL or missing references)
//IL_1b40: Unknown result type (might be due to invalid IL or missing references)
//IL_1b72: Unknown result type (might be due to invalid IL or missing references)
//IL_1b77: Unknown result type (might be due to invalid IL or missing references)
//IL_1b8d: Unknown result type (might be due to invalid IL or missing references)
//IL_1b92: Unknown result type (might be due to invalid IL or missing references)
//IL_1ba8: Unknown result type (might be due to invalid IL or missing references)
//IL_1bad: Unknown result type (might be due to invalid IL or missing references)
//IL_1bb2: Unknown result type (might be due to invalid IL or missing references)
//IL_1bb3: Unknown result type (might be due to invalid IL or missing references)
//IL_1bcd: Unknown result type (might be due to invalid IL or missing references)
//IL_1bd6: Unknown result type (might be due to invalid IL or missing references)
//IL_1c08: Unknown result type (might be due to invalid IL or missing references)
//IL_1c0d: Unknown result type (might be due to invalid IL or missing references)
//IL_1c23: Unknown result type (might be due to invalid IL or missing references)
//IL_1c28: Unknown result type (might be due to invalid IL or missing references)
//IL_1c3e: Unknown result type (might be due to invalid IL or missing references)
//IL_1c43: Unknown result type (might be due to invalid IL or missing references)
//IL_1c48: Unknown result type (might be due to invalid IL or missing references)
//IL_1c49: Unknown result type (might be due to invalid IL or missing references)
//IL_1c63: Unknown result type (might be due to invalid IL or missing references)
//IL_1c6c: Unknown result type (might be due to invalid IL or missing references)
//IL_1c9e: Unknown result type (might be due to invalid IL or missing references)
//IL_1ca3: Unknown result type (might be due to invalid IL or missing references)
//IL_1cb9: Unknown result type (might be due to invalid IL or missing references)
//IL_1cbe: Unknown result type (might be due to invalid IL or missing references)
//IL_1cd4: Unknown result type (might be due to invalid IL or missing references)
//IL_1cd9: Unknown result type (might be due to invalid IL or missing references)
//IL_1cde: Unknown result type (might be due to invalid IL or missing references)
//IL_1cdf: Unknown result type (might be due to invalid IL or missing references)
//IL_1cf9: Unknown result type (might be due to invalid IL or missing references)
//IL_1d02: Unknown result type (might be due to invalid IL or missing references)
//IL_1d34: Unknown result type (might be due to invalid IL or missing references)
//IL_1d39: Unknown result type (might be due to invalid IL or missing references)
//IL_1d4f: Unknown result type (might be due to invalid IL or missing references)
//IL_1d54: Unknown result type (might be due to invalid IL or missing references)
//IL_1d6a: Unknown result type (might be due to invalid IL or missing references)
//IL_1d6f: Unknown result type (might be due to invalid IL or missing references)
//IL_1d74: Unknown result type (might be due to invalid IL or missing references)
//IL_1d75: Unknown result type (might be due to invalid IL or missing references)
//IL_1d8f: Unknown result type (might be due to invalid IL or missing references)
//IL_1d98: Unknown result type (might be due to invalid IL or missing references)
//IL_1dca: Unknown result type (might be due to invalid IL or missing references)
//IL_1dcf: Unknown result type (might be due to invalid IL or missing references)
//IL_1de5: Unknown result type (might be due to invalid IL or missing references)
//IL_1dea: Unknown result type (might be due to invalid IL or missing references)
//IL_1e00: Unknown result type (might be due to invalid IL or missing references)
//IL_1e05: Unknown result type (might be due to invalid IL or missing references)
//IL_1e0a: Unknown result type (might be due to invalid IL or missing references)