using System;
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.Logging;
using EntityStates;
using EntityStates.Gup;
using HG;
using HG.Reflection;
using Microsoft.CodeAnalysis;
using On.EntityStates;
using On.EntityStates.Gup;
using On.RoR2;
using R2API;
using R2API.Networking;
using R2API.Networking.Interfaces;
using RoR2;
using RoR2.CharacterAI;
using RoR2.ExpansionManagement;
using RoR2.Items;
using RoR2.Navigation;
using RoR2.Orbs;
using RoR2.Projectile;
using SeekingTheVoid;
using ShaderSwapper;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Events;
using UnityEngine.Networking;
[assembly: OptIn]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: AssemblyCompany("SeekingTheVoid")]
[assembly: AssemblyProduct("SeekingTheVoid")]
[assembly: AssemblyTitle("SeekingTheVoid")]
[assembly: AssemblyInformationalVersion("1.0.0+2bbe5ff61db64b2a87c60fbbc23aba9cddbe4c15")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
[Microsoft.CodeAnalysis.Embedded]
[CompilerGenerated]
internal sealed class RefSafetyRulesAttribute : Attribute
{
public readonly int Version;
public RefSafetyRulesAttribute(int P_0)
{
Version = P_0;
}
}
}
public class SpawnShitMessage : INetMessage, ISerializableObject
{
private Vector3 position;
private NetworkInstanceId owner;
public SpawnShitMessage()
{
}
public SpawnShitMessage(Vector3 position, NetworkInstanceId owner)
{
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_0010: 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)
this.position = position;
this.owner = owner;
}
public void Deserialize(NetworkReader reader)
{
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
position = reader.ReadVector3();
owner = reader.ReadNetworkId();
}
public void OnReceived()
{
//IL_0010: 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_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_0043: 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_0054: 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_008b: Expected O, but got Unknown
//IL_008d: Unknown result type (might be due to invalid IL or missing references)
if (NetworkServer.active)
{
position += new Vector3(0f, Random.Range(3.5f, 5f), 0f);
GameObject val = Object.Instantiate<GameObject>(CoastalCoral.CCPickupOrb, position, Quaternion.identity);
GameObject val2 = Util.FindNetworkObject(owner);
if (Object.op_Implicit((Object)(object)val2))
{
val.GetComponent<CoastalCoralPickup>().ownerBody = val2.GetComponent<CharacterBody>();
}
NetworkServer.Spawn(val);
EffectData val3 = new EffectData();
val3.origin = position;
val3.SetNetworkedObjectReference(val);
EffectManager.SpawnEffect(CoastalCoral.CCSpawnVFX, val3, true);
}
}
public void Serialize(NetworkWriter writer)
{
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
writer.Write(position);
writer.Write(owner);
}
}
public class ClientBuffMessage : INetMessage, ISerializableObject
{
private NetworkInstanceId netId;
private BuffIndex buffIdx;
private int number;
public ClientBuffMessage()
{
}
public ClientBuffMessage(NetworkInstanceId netId, BuffIndex buffIdx, int number)
{
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_0010: 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)
this.netId = netId;
this.buffIdx = buffIdx;
this.number = number;
}
public void Deserialize(NetworkReader reader)
{
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
netId = reader.ReadNetworkId();
buffIdx = NetworkExtensions.ReadBuffIndex(reader);
number = reader.ReadInt32();
}
public void OnReceived()
{
//IL_000c: 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)
if (NetworkServer.active)
{
GameObject val = Util.FindNetworkObject(netId);
if (Object.op_Implicit((Object)(object)val))
{
val.GetComponent<CharacterBody>().SetBuffCount(buffIdx, number);
}
}
}
public void Serialize(NetworkWriter writer)
{
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
writer.Write(netId);
NetworkExtensions.WriteBuffIndex(writer, buffIdx);
writer.Write(number);
}
}
public class CoastalCoralPickup : NetworkBehaviour
{
private ElusiveAntlersDestroyCondition destroyCondition;
public DestroyOnTimer destroyOnTimerComponent;
public float despawnMinAge;
public CharacterBody ownerBody;
public float maxDistanceFromOwner;
private void Start()
{
destroyOnTimerComponent = ((Component)this).GetComponent<DestroyOnTimer>();
AkSoundEngine.PostEvent("Play_AntlerShield_Spawn", ((Component)this).gameObject);
despawnMinAge = 30f;
maxDistanceFromOwner = 80f;
}
private void FixedUpdate()
{
//IL_004d: 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_0074: Unknown result type (might be due to invalid IL or missing references)
//IL_0079: Unknown result type (might be due to invalid IL or missing references)
//IL_007a: Unknown result type (might be due to invalid IL or missing references)
//IL_0093: Unknown result type (might be due to invalid IL or missing references)
if (!((Object)(object)ownerBody == (Object)null) && NetworkServer.active && (Object)(object)destroyOnTimerComponent != (Object)null && destroyOnTimerComponent.GetAge() >= despawnMinAge)
{
_ = ((Component)this).gameObject.transform.position;
Vector3 position = ((Component)ownerBody).gameObject.transform.position;
if (Vector3.Magnitude(((Component)this).gameObject.transform.position - position) > maxDistanceFromOwner)
{
destroyCondition = (ElusiveAntlersDestroyCondition)2;
Object.Destroy((Object)(object)((Component)this).gameObject);
}
}
}
private void OnTriggerStay(Collider other)
{
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000d: Invalid comparison between Unknown and I4
//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
//IL_00f4: Expected O, but got Unknown
//IL_010a: Unknown result type (might be due to invalid IL or missing references)
//IL_012d: Unknown result type (might be due to invalid IL or missing references)
if ((int)TeamComponent.GetObjectTeam(((Component)other).gameObject) != 1)
{
return;
}
CharacterBody component = ((Component)other).GetComponent<CharacterBody>();
if (!Object.op_Implicit((Object)(object)component))
{
return;
}
HealthComponent healthComponent = component.healthComponent;
if (Object.op_Implicit((Object)(object)healthComponent) && healthComponent.alive)
{
if (((NetworkBehaviour)component).localPlayerAuthority)
{
AkSoundEngine.PostEvent("Play_AntlerShield_Pickup", ((Component)this).gameObject);
}
if (NetworkServer.active)
{
int num = ((!Object.op_Implicit((Object)(object)component.inventory)) ? 1 : component.inventory.GetItemCount(CoastalCoral.CoastalCoralDef));
int buffCount = component.GetBuffCount(CoastalCoral.coralJump);
int num2 = Math.Max(CoastalCoral.baseJumps, CoastalCoral.baseJumps + CoastalCoral.stackJumps * (num - 1));
component.SetBuffCount(CoastalCoral.coralJump.buffIndex, Mathf.Min(buffCount + 1, num2));
EffectData val = new EffectData();
val.SetNetworkedObjectReference(((Component)component).gameObject);
val.origin = ((Component)this).transform.position;
component.OnPickup((PickupClass)1);
EffectManager.SpawnEffect(CoastalCoral.CCPickupVFX, val, true);
destroyCondition = (ElusiveAntlersDestroyCondition)1;
Object.Destroy((Object)(object)((Component)this).gameObject);
}
}
}
private void UNetVersion()
{
}
public override bool OnSerialize(NetworkWriter writer, bool forceAll)
{
bool result = default(bool);
return result;
}
public override void OnDeserialize(NetworkReader reader, bool initialState)
{
}
}
public class CoastalCoralDisplayUpdater : MonoBehaviour
{
public MeshRenderer meshRenderer;
private Material buffActiveDisplayMaterial;
private CharacterBody body;
private BuffIndex coastalCoralBuffIndex;
private void Start()
{
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_0046: Unknown result type (might be due to invalid IL or missing references)
CharacterModel componentInParent = ((Component)this).GetComponentInParent<CharacterModel>();
meshRenderer = ((Component)this).GetComponentInChildren<MeshRenderer>();
if (Object.op_Implicit((Object)(object)componentInParent))
{
body = componentInParent.body;
if (Object.op_Implicit((Object)(object)body))
{
coastalCoralBuffIndex = CoastalCoral.coralJump.buffIndex;
}
buffActiveDisplayMaterial = ((Renderer)meshRenderer).materials[1];
buffActiveDisplayMaterial.SetFloat("_AlphaBoost", 0f);
}
}
private void OnDestroy()
{
}
private void FixedUpdate()
{
if (Object.op_Implicit((Object)(object)buffActiveDisplayMaterial) && Object.op_Implicit((Object)(object)meshRenderer))
{
float num = 0f;
if ((float)body.GetBuffCount(CoastalCoral.coralJump) > 0f && (float)body.GetBuffCount(CoastalCoral.coralJump) < (float)CoastalCoral.costToJump)
{
num = 0.2f;
}
else if ((float)body.GetBuffCount(CoastalCoral.coralJump) >= (float)CoastalCoral.costToJump)
{
num = 0.6f;
}
buffActiveDisplayMaterial.GetFloat("_AlphaBoost");
buffActiveDisplayMaterial.SetFloat("_AlphaBoost", num);
}
}
}
namespace SeekingTheVoid
{
public static class CoastalCoral
{
public class CoastalCoralBehavior : BaseItemBodyBehavior
{
private float internalTimer = 12f;
[ItemDefAssociation(useOnServer = true, useOnClient = true)]
private static ItemDef GetItemDef()
{
return CoastalCoralDef;
}
private int GetStackCount()
{
return base.stack;
}
private void OnEnable()
{
if (!Util.HasEffectiveAuthority(((Component)this).gameObject))
{
((Behaviour)this).enabled = false;
}
}
private void OnDisable()
{
}
public void FixedUpdate()
{
if (NetworkClient.active && Object.op_Implicit((Object)(object)((BaseItemBodyBehavior)this).body) && base.stack > 0)
{
internalTimer -= Time.fixedDeltaTime;
if (internalTimer <= 0f)
{
OrbPositionFinder();
internalTimer = 12f * Mathf.Pow(0.9f, (float)GetStackCount());
}
}
}
public void OrbPositionFinder()
{
//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_0069: 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_009d: Unknown result type (might be due to invalid IL or missing references)
//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
//IL_00d8: 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_00e0: 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_00ed: Unknown result type (might be due to invalid IL or missing references)
//IL_00f2: 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_0104: Unknown result type (might be due to invalid IL or missing references)
//IL_0118: Unknown result type (might be due to invalid IL or missing references)
//IL_011d: 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_0151: Unknown result type (might be due to invalid IL or missing references)
//IL_0159: Unknown result type (might be due to invalid IL or missing references)
//IL_015e: Unknown result type (might be due to invalid IL or missing references)
//IL_0167: Unknown result type (might be due to invalid IL or missing references)
//IL_017b: Unknown result type (might be due to invalid IL or missing references)
//IL_0192: Unknown result type (might be due to invalid IL or missing references)
//IL_0194: Unknown result type (might be due to invalid IL or missing references)
//IL_01a1: Unknown result type (might be due to invalid IL or missing references)
//IL_01a6: 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_01c1: Unknown result type (might be due to invalid IL or missing references)
//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
//IL_01dc: Unknown result type (might be due to invalid IL or missing references)
//IL_01ec: Unknown result type (might be due to invalid IL or missing references)
//IL_0207: Unknown result type (might be due to invalid IL or missing references)
//IL_0214: Unknown result type (might be due to invalid IL or missing references)
if (!NetworkClient.active || !((NetworkBehaviour)((BaseItemBodyBehavior)this).body).hasAuthority || !Object.op_Implicit((Object)(object)((BaseItemBodyBehavior)this).body.characterMotor))
{
return;
}
Quaternion val = Quaternion.Euler(0f, Random.Range(-45f, 45f), 0f);
Vector3 val2 = default(Vector3);
((Vector3)(ref val2))..ctor(((BaseItemBodyBehavior)this).body.inputBank.aimDirection.x, 0f, ((BaseItemBodyBehavior)this).body.inputBank.aimDirection.z);
Vector3 velocity = ((BaseItemBodyBehavior)this).body.characterMotor.velocity;
bool flag = false;
float magnitude = ((Vector3)(ref velocity)).magnitude;
float num = Mathf.InverseLerp(0f, 50f, magnitude);
float num2 = Mathf.Lerp(1f, 2f, num);
Vector3 val3 = val * val2;
val3 = Vector3.RotateTowards(val3, velocity, MathF.PI / 12f, 0f);
Vector3 val4 = ((Component)this).gameObject.transform.position + val3 * (Random.Range(15f, 30f) * num2);
NodeGraph groundNodes = SceneInfo.instance.groundNodes;
if ((Object)(object)groundNodes == (Object)null)
{
Debug.LogError((object)"SeekingTheVoid:: nodeIndex returned null! Report this to acanthi pls :3");
return;
}
NodeIndex val5 = groundNodes.FindClosestNode(val4, (HullClassification)0, float.PositiveInfinity);
bool flag2 = false;
if (groundNodes.GetNodePosition(val5, ref val4))
{
float num3 = HullDef.Find((HullClassification)0).radius * 0.7f;
bool flag3 = false;
if (!HGPhysics.DoesOverlapSphere(val4 + Vector3.up * (num3 + 0.25f), num3, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask) | LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.defaultLayer)).mask) | LayerMask.op_Implicit(CommonMasks.fakeActorLayers) | LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.entityPrecise)).mask) | LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.debris)).mask), (QueryTriggerInteraction)0))
{
NetMessageExtensions.Send((INetMessage)(object)new SpawnShitMessage(val4, ((Component)((BaseItemBodyBehavior)this).body).GetComponent<NetworkIdentity>().netId), (NetworkDestination)2);
}
}
}
}
[CompilerGenerated]
private static class <>O
{
public static hook_ProcessJump_bool <0>__CoralJumpHook;
public static StatHookEventHandler <1>__RecalculateStatsAPI_GetStatCoefficients;
}
public static ItemDef CoastalCoralDef;
public static GameObject CCSpawnVFX;
public static GameObject CCPickupVFX;
public static GameObject CCPickupOrb;
public static int baseJumps;
public static int stackJumps;
public static int costToJump;
public static BuffDef coralJump;
public static void Init()
{
//IL_0079: 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_0095: Unknown result type (might be due to invalid IL or missing references)
//IL_009a: Unknown result type (might be due to invalid IL or missing references)
//IL_0105: 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_0179: Unknown result type (might be due to invalid IL or missing references)
//IL_0183: Expected O, but got Unknown
//IL_0189: Unknown result type (might be due to invalid IL or missing references)
//IL_018e: Unknown result type (might be due to invalid IL or missing references)
//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
//IL_01ce: Unknown result type (might be due to invalid IL or missing references)
//IL_01e8: 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_020b: Unknown result type (might be due to invalid IL or missing references)
//IL_0210: Unknown result type (might be due to invalid IL or missing references)
//IL_0216: Expected O, but got Unknown
//IL_022c: Unknown result type (might be due to invalid IL or missing references)
//IL_0231: Unknown result type (might be due to invalid IL or missing references)
//IL_0237: Expected O, but got Unknown
CreateLang();
CreateEffect();
CreateBuff();
CreatePickup();
CoastalCoralDef = ScriptableObject.CreateInstance<ItemDef>();
((Object)CoastalCoralDef).name = "SEEKINTHEVOID_COASTALCORAL_NAME";
CoastalCoralDef.nameToken = "SEEKINTHEVOID_COASTALCORAL_NAME";
CoastalCoralDef.pickupToken = "SEEKINTHEVOID_COASTALCORAL_PICKUP";
CoastalCoralDef.descriptionToken = "SEEKINTHEVOID_COASTALCORAL_DESC";
CoastalCoralDef.loreToken = "SEEKINTHEVOID_COASTALCORAL_LORE";
CoastalCoralDef._itemTierDef = Addressables.LoadAssetAsync<ItemTierDef>((object)"RoR2/DLC1/Common/VoidTier1Def.asset").WaitForCompletion();
CoastalCoralDef.requiredExpansion = Addressables.LoadAssetAsync<ExpansionDef>((object)"RoR2/DLC2/Common/DLC2.asset").WaitForCompletion();
CoastalCoralDef.pickupIconSprite = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<Sprite>("CoastalCoral.png");
CoastalCoralDef.pickupModelPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("CoastalCoral.prefab");
CoastalCoralDef.tags = (ItemTag[])(object)new ItemTag[1] { (ItemTag)31 };
ModelPanelParameters val = CoastalCoralDef.pickupModelPrefab.AddComponent<ModelPanelParameters>();
val.focusPointTransform = new GameObject("FocusPoint").transform;
val.focusPointTransform.SetParent(CoastalCoralDef.pickupModelPrefab.transform);
CoastalCoralDef.pickupModelPrefab.AddComponent<CoastalCoralDisplayUpdater>();
val.cameraPositionTransform = new GameObject("CameraPosition").transform;
val.cameraPositionTransform.SetParent(CoastalCoralDef.pickupModelPrefab.transform);
ItemAPI.Add(new CustomItem(CoastalCoralDef, ItemDisplayTransformations()));
ItemDef itemDef = Addressables.LoadAssetAsync<ItemDef>((object)"RoR2/DLC2/Items/SpeedBoostPickup/SpeedBoostPickup.asset").WaitForCompletion();
ItemRelationshipProvider val2 = ScriptableObject.CreateInstance<ItemRelationshipProvider>();
((Object)val2).name = "CoastalCoralContagiousItemProvider";
val2.relationshipType = Addressables.LoadAssetAsync<ItemRelationshipType>((object)"RoR2/DLC1/Common/ContagiousItem.asset").WaitForCompletion();
val2.relationships = (Pair[])(object)new Pair[1]
{
new Pair
{
itemDef1 = itemDef,
itemDef2 = CoastalCoralDef
}
};
ContentAddition.AddItemRelationshipProvider(val2);
object obj = <>O.<0>__CoralJumpHook;
if (obj == null)
{
hook_ProcessJump_bool val3 = CoralJumpHook;
<>O.<0>__CoralJumpHook = val3;
obj = (object)val3;
}
GenericCharacterMain.ProcessJump_bool += (hook_ProcessJump_bool)obj;
object obj2 = <>O.<1>__RecalculateStatsAPI_GetStatCoefficients;
if (obj2 == null)
{
StatHookEventHandler val4 = RecalculateStatsAPI_GetStatCoefficients;
<>O.<1>__RecalculateStatsAPI_GetStatCoefficients = val4;
obj2 = (object)val4;
}
RecalculateStatsAPI.GetStatCoefficients += (StatHookEventHandler)obj2;
}
public static void CreatePickup()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
//IL_0147: Unknown result type (might be due to invalid IL or missing references)
//IL_018c: Unknown result type (might be due to invalid IL or missing references)
GameObject val = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/Items/SpeedBoostPickup/ElusiveAntlersPickup.prefab").WaitForCompletion();
CCPickupOrb = PrefabAPI.InstantiateClone(val, "CoastalCoralOrb", false);
Object.Destroy((Object)(object)CCPickupOrb.GetComponent<ElusiveAntlersPickup>());
CCPickupOrb.AddComponent<CoastalCoralPickup>();
((Renderer)((Component)CCPickupOrb.transform.GetChild(0).GetChild(0)).gameObject.GetComponent<ParticleSystemRenderer>()).material.SetTexture("_RemapTex", SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<Texture>("texOutRamp.png"));
((Renderer)((Component)CCPickupOrb.transform.GetChild(0).GetChild(0).GetChild(0)).gameObject.GetComponent<ParticleSystemRenderer>()).material.SetTexture("_RemapTex", SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<Texture>("texInRamp.png"));
((Renderer)((Component)CCPickupOrb.transform.GetChild(0).GetChild(0).GetChild(1)).gameObject.GetComponent<ParticleSystemRenderer>()).material.SetTexture("_RemapTex", SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<Texture>("texInRamp.png"));
((Renderer)((Component)CCPickupOrb.transform.GetChild(0).GetChild(0)).gameObject.GetComponent<ParticleSystemRenderer>()).material.SetColor("_TintColor", new Color(1f, 1f, 1f, 1f));
((Component)CCPickupOrb.transform.GetChild(0).GetChild(0).GetChild(2)).gameObject.GetComponent<Light>().color = new Color(0.433f, 0.334f, 1f, 1f);
PrefabAPI.RegisterNetworkPrefab(CCPickupOrb);
}
private static void CoralJumpHook(orig_ProcessJump_bool orig, GenericCharacterMain self, bool ignoreRequirements)
{
//IL_008a: 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_0072: Unknown result type (might be due to invalid IL or missing references)
int buffCount = ((EntityState)self).characterBody.GetBuffCount(coralJump);
if (self.jumpInputReceived && buffCount >= costToJump && Object.op_Implicit((Object)(object)((EntityState)self).characterMotor) && ((EntityState)self).characterMotor.jumpCount >= ((EntityState)self).characterBody.maxJumpCount)
{
int num = buffCount - costToJump;
if (!NetworkServer.active)
{
((EntityState)self).characterBody.SetBuffCount(coralJump.buffIndex, num);
}
NetMessageExtensions.Send((INetMessage)(object)new ClientBuffMessage(((Component)((EntityState)self).characterBody).GetComponent<NetworkIdentity>().netId, coralJump.buffIndex, num), (NetworkDestination)2);
ignoreRequirements = true;
}
orig.Invoke(self, ignoreRequirements);
}
private static void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args)
{
int buffCount = sender.GetBuffCount(coralJump);
args.moveSpeedMultAdd += 0.07f * (float)buffCount;
}
public static void CreateBuff()
{
//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)
coralJump = ScriptableObject.CreateInstance<BuffDef>();
((Object)coralJump).name = "Co?astal Cor?al J?ump R?ea??dy";
coralJump.iconSprite = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<Sprite>("CoralBuff.png");
coralJump.canStack = true;
coralJump.isCooldown = false;
coralJump.buffColor = Color.white;
coralJump.isHidden = false;
coralJump.isDebuff = false;
ContentAddition.AddBuffDef(coralJump);
}
public static void CreateEffect()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
//IL_0044: Unknown result type (might be due to invalid IL or missing references)
//IL_005c: Unknown result type (might be due to invalid IL or missing references)
//IL_0061: 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_00c5: Unknown result type (might be due to invalid IL or missing references)
//IL_00ca: 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_00e7: Unknown result type (might be due to invalid IL or missing references)
GameObject val = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/Items/SpeedBoostPickup/ElusiveAntlersBuffGrantedVFX.prefab").WaitForCompletion();
CCPickupVFX = PrefabAPI.InstantiateClone(val, "CoastalCoralBuffGrantedVFX", false);
ParticleSystem[] componentsInChildren = CCPickupVFX.GetComponentsInChildren<ParticleSystem>();
foreach (ParticleSystem val2 in componentsInChildren)
{
MainModule main = val2.main;
((MainModule)(ref main)).startColor = MinMaxGradient.op_Implicit(new Color(0.8f, 0.2f, 0.8f, 0.2f));
}
ContentAddition.AddEffect(CCPickupVFX);
GameObject val3 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/Items/SpeedBoostPickup/ElusiveAntlersPickupSpawnVFX.prefab").WaitForCompletion();
CCSpawnVFX = PrefabAPI.InstantiateClone(val3, "CoastalCoralBuffGrantedVFX", false);
ParticleSystem[] componentsInChildren2 = CCSpawnVFX.GetComponentsInChildren<ParticleSystem>();
foreach (ParticleSystem val4 in componentsInChildren2)
{
MainModule main2 = val4.main;
((MainModule)(ref main2)).startColor = MinMaxGradient.op_Implicit(new Color(0.8f, 0.2f, 0.8f, 0.2f));
}
((Renderer)((Component)CCSpawnVFX.transform.GetChild(0)).gameObject.GetComponent<ParticleSystemRenderer>()).material.SetTexture("_RemapTex", SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<Texture>("texInRamp.png"));
ContentAddition.AddEffect(CCSpawnVFX);
}
public static void CreateLang()
{
LanguageAPI.Add("SEEKINTHEVOID_COASTALCORAL_NAME", "Coastal Coral");
LanguageAPI.Add("SEEKINTHEVOID_COASTALCORAL_LORE", "//--AUTO-TRANSCRIPTION FROM UES [REDACTED], FIELD SURVEY TEAM--//\r\n\r\nSpecimen ID: A-53-0001\r\n\r\nNotes:\r\n\r\nWhite and pink in color.\r\nExceedingly hard, crystalline structure. \r\nResembles terrestrial Coral formations.\r\nSeemingly possesses anti-gravitational properties. Weighed negative on the scale, yet behaves as if it had a normal mass.\r\nTastes like raspberry. Or grape. Maybe cotton candy? Impossible to bite through.\r\n\r\n---------------------------------\r\n\r\nHe BIT IT? Get this idiot off of the field survey team, NOW! \r\n\r\nWe will test these specimens in sensible ways, not by TRYING TO EAT THEM.\r\n\r\n//--TRANSCRIPTION COMPLETE--//");
LanguageAPI.Add("SEEKINTHEVOID_COASTALCORAL_PICKUP", "Spawns orbs that grant energy charges. Each charge held gives you extra movement speed. Spend " + costToJump + " charge" + ((costToJump > 1) ? "s" : "") + " to jump mid-air. <style=cIsVoid>Corrupts all Elusive Antlers</style>.");
LanguageAPI.Add("SEEKINTHEVOID_COASTALCORAL_DESC", "Spawns orbs of energy nearby every <style=cIsUtility>12s</style> <style=cStack>(-10% per stack)</style> that give you up to <style=cIsUtility>" + baseJumps + "</style> <style=cStack>(+" + stackJumps + " per stack)</style> energy charge" + ((stackJumps > 1) ? "s" : "") + ". Each charge held gives you <style=cIsUtility>+7%</style> movement speed, and <style=cIsUtility>" + costToJump + "</style> charge" + ((costToJump > 1) ? "s" : "") + " can be spent to jump mid-air. <style=cIsVoid>Corrupts all Elusive Antlers</style>.");
}
public static ItemDisplayRuleDict ItemDisplayTransformations()
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Expected O, but got Unknown
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: 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_0074: Unknown result type (might be due to invalid IL or missing references)
//IL_0079: 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_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_009a: Unknown result type (might be due to invalid IL or missing references)
//IL_00b5: 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_00f6: Unknown result type (might be due to invalid IL or missing references)
//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
//IL_0111: Unknown result type (might be due to invalid IL or missing references)
//IL_0116: Unknown result type (might be due to invalid IL or missing references)
//IL_012c: Unknown result type (might be due to invalid IL or missing references)
//IL_0131: 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)
//IL_0137: Unknown result type (might be due to invalid IL or missing references)
//IL_0152: Unknown result type (might be due to invalid IL or missing references)
//IL_015b: Unknown result type (might be due to invalid IL or missing references)
//IL_0193: Unknown result type (might be due to invalid IL or missing references)
//IL_0198: Unknown result type (might be due to invalid IL or missing references)
//IL_01ae: Unknown result type (might be due to invalid IL or missing references)
//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
//IL_01c9: Unknown result type (might be due to invalid IL or missing references)
//IL_01ce: Unknown result type (might be due to invalid IL or missing references)
//IL_01d3: Unknown result type (might be due to invalid IL or missing references)
//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
//IL_01ef: Unknown result type (might be due to invalid IL or missing references)
//IL_01f8: Unknown result type (might be due to invalid IL or missing references)
//IL_0230: Unknown result type (might be due to invalid IL or missing references)
//IL_0235: Unknown result type (might be due to invalid IL or missing references)
//IL_024b: Unknown result type (might be due to invalid IL or missing references)
//IL_0250: Unknown result type (might be due to invalid IL or missing references)
//IL_0266: Unknown result type (might be due to invalid IL or missing references)
//IL_026b: Unknown result type (might be due to invalid IL or missing references)
//IL_0270: Unknown result type (might be due to invalid IL or missing references)
//IL_0271: Unknown result type (might be due to invalid IL or missing references)
//IL_028c: Unknown result type (might be due to invalid IL or missing references)
//IL_0295: Unknown result type (might be due to invalid IL or missing references)
//IL_02cd: Unknown result type (might be due to invalid IL or missing references)
//IL_02d2: Unknown result type (might be due to invalid IL or missing references)
//IL_02e8: Unknown result type (might be due to invalid IL or missing references)
//IL_02ed: Unknown result type (might be due to invalid IL or missing references)
//IL_0303: Unknown result type (might be due to invalid IL or missing references)
//IL_0308: Unknown result type (might be due to invalid IL or missing references)
//IL_030d: Unknown result type (might be due to invalid IL or missing references)
//IL_030e: Unknown result type (might be due to invalid IL or missing references)
//IL_0329: Unknown result type (might be due to invalid IL or missing references)
//IL_0332: Unknown result type (might be due to invalid IL or missing references)
//IL_036a: Unknown result type (might be due to invalid IL or missing references)
//IL_036f: Unknown result type (might be due to invalid IL or missing references)
//IL_0385: Unknown result type (might be due to invalid IL or missing references)
//IL_038a: Unknown result type (might be due to invalid IL or missing references)
//IL_03a0: Unknown result type (might be due to invalid IL or missing references)
//IL_03a5: Unknown result type (might be due to invalid IL or missing references)
//IL_03aa: Unknown result type (might be due to invalid IL or missing references)
//IL_03ab: Unknown result type (might be due to invalid IL or missing references)
//IL_03c6: Unknown result type (might be due to invalid IL or missing references)
//IL_03cf: 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_040c: 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_0427: 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_0447: Unknown result type (might be due to invalid IL or missing references)
//IL_0448: Unknown result type (might be due to invalid IL or missing references)
//IL_0463: Unknown result type (might be due to invalid IL or missing references)
//IL_046c: Unknown result type (might be due to invalid IL or missing references)
//IL_04a4: Unknown result type (might be due to invalid IL or missing references)
//IL_04a9: Unknown result type (might be due to invalid IL or missing references)
//IL_04bf: Unknown result type (might be due to invalid IL or missing references)
//IL_04c4: Unknown result type (might be due to invalid IL or missing references)
//IL_04da: Unknown result type (might be due to invalid IL or missing references)
//IL_04df: Unknown result type (might be due to invalid IL or missing references)
//IL_04e4: Unknown result type (might be due to invalid IL or missing references)
//IL_04e5: Unknown result type (might be due to invalid IL or missing references)
//IL_0500: Unknown result type (might be due to invalid IL or missing references)
//IL_0509: Unknown result type (might be due to invalid IL or missing references)
//IL_0541: Unknown result type (might be due to invalid IL or missing references)
//IL_0546: Unknown result type (might be due to invalid IL or missing references)
//IL_055c: Unknown result type (might be due to invalid IL or missing references)
//IL_0561: Unknown result type (might be due to invalid IL or missing references)
//IL_0577: Unknown result type (might be due to invalid IL or missing references)
//IL_057c: Unknown result type (might be due to invalid IL or missing references)
//IL_0581: Unknown result type (might be due to invalid IL or missing references)
//IL_0582: Unknown result type (might be due to invalid IL or missing references)
//IL_059d: Unknown result type (might be due to invalid IL or missing references)
//IL_05a6: Unknown result type (might be due to invalid IL or missing references)
//IL_05de: Unknown result type (might be due to invalid IL or missing references)
//IL_05e3: Unknown result type (might be due to invalid IL or missing references)
//IL_05f9: Unknown result type (might be due to invalid IL or missing references)
//IL_05fe: Unknown result type (might be due to invalid IL or missing references)
//IL_0614: Unknown result type (might be due to invalid IL or missing references)
//IL_0619: Unknown result type (might be due to invalid IL or missing references)
//IL_061e: 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_063a: Unknown result type (might be due to invalid IL or missing references)
//IL_0643: Unknown result type (might be due to invalid IL or missing references)
//IL_067b: Unknown result type (might be due to invalid IL or missing references)
//IL_0680: Unknown result type (might be due to invalid IL or missing references)
//IL_0696: 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_06b1: Unknown result type (might be due to invalid IL or missing references)
//IL_06b6: Unknown result type (might be due to invalid IL or missing references)
//IL_06bb: Unknown result type (might be due to invalid IL or missing references)
//IL_06bc: Unknown result type (might be due to invalid IL or missing references)
//IL_06d7: Unknown result type (might be due to invalid IL or missing references)
//IL_06e0: Unknown result type (might be due to invalid IL or missing references)
//IL_0718: Unknown result type (might be due to invalid IL or missing references)
//IL_071d: Unknown result type (might be due to invalid IL or missing references)
//IL_0733: Unknown result type (might be due to invalid IL or missing references)
//IL_0738: Unknown result type (might be due to invalid IL or missing references)
//IL_074e: Unknown result type (might be due to invalid IL or missing references)
//IL_0753: Unknown result type (might be due to invalid IL or missing references)
//IL_0758: Unknown result type (might be due to invalid IL or missing references)
//IL_0759: Unknown result type (might be due to invalid IL or missing references)
//IL_0774: Unknown result type (might be due to invalid IL or missing references)
//IL_077d: Unknown result type (might be due to invalid IL or missing references)
//IL_07b5: Unknown result type (might be due to invalid IL or missing references)
//IL_07ba: Unknown result type (might be due to invalid IL or missing references)
//IL_07d0: Unknown result type (might be due to invalid IL or missing references)
//IL_07d5: Unknown result type (might be due to invalid IL or missing references)
//IL_07eb: Unknown result type (might be due to invalid IL or missing references)
//IL_07f0: Unknown result type (might be due to invalid IL or missing references)
//IL_07f5: Unknown result type (might be due to invalid IL or missing references)
//IL_07f6: Unknown result type (might be due to invalid IL or missing references)
//IL_0811: Unknown result type (might be due to invalid IL or missing references)
//IL_081a: 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_086d: Unknown result type (might be due to invalid IL or missing references)
//IL_0872: Unknown result type (might be due to invalid IL or missing references)
//IL_0888: Unknown result type (might be due to invalid IL or missing references)
//IL_088d: Unknown result type (might be due to invalid IL or missing references)
//IL_0892: Unknown result type (might be due to invalid IL or missing references)
//IL_0893: Unknown result type (might be due to invalid IL or missing references)
//IL_08ae: 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_08ef: Unknown result type (might be due to invalid IL or missing references)
//IL_08f4: Unknown result type (might be due to invalid IL or missing references)
//IL_090a: Unknown result type (might be due to invalid IL or missing references)
//IL_090f: Unknown result type (might be due to invalid IL or missing references)
//IL_0925: Unknown result type (might be due to invalid IL or missing references)
//IL_092a: Unknown result type (might be due to invalid IL or missing references)
//IL_092f: Unknown result type (might be due to invalid IL or missing references)
//IL_0930: Unknown result type (might be due to invalid IL or missing references)
//IL_094b: Unknown result type (might be due to invalid IL or missing references)
//IL_0954: Unknown result type (might be due to invalid IL or missing references)
//IL_098c: Unknown result type (might be due to invalid IL or missing references)
//IL_0991: Unknown result type (might be due to invalid IL or missing references)
//IL_09a7: 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_09c2: Unknown result type (might be due to invalid IL or missing references)
//IL_09c7: Unknown result type (might be due to invalid IL or missing references)
//IL_09cc: Unknown result type (might be due to invalid IL or missing references)
//IL_09cd: Unknown result type (might be due to invalid IL or missing references)
ItemDisplayRuleDict val = new ItemDisplayRuleDict((ItemDisplayRule[])null);
val.Add("mdlRailGunner", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("CoastalCoral.prefab"),
childName = "Head",
localPos = new Vector3(0.15f, 0.15f, -0.15f),
localAngles = new Vector3(0f, 0f, 0f),
localScale = new Vector3(0.8f, 0.8f, 0.8f)
}
});
val.Add("mdlCommandoDualies", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("CoastalCoral.prefab"),
childName = "Head",
localPos = new Vector3(0.15f, 0.15f, -0.15f),
localAngles = new Vector3(0f, 0f, 0f),
localScale = new Vector3(0.8f, 0.8f, 0.8f)
}
});
val.Add("mdlHuntress", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("CoastalCoral.prefab"),
childName = "Head",
localPos = new Vector3(0.15f, 0.15f, -0.15f),
localAngles = new Vector3(0f, 0f, 0f),
localScale = new Vector3(0.8f, 0.8f, 0.8f)
}
});
val.Add("mdlBandit2", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("CoastalCoral.prefab"),
childName = "Head",
localPos = new Vector3(0.15f, 0.15f, -0.15f),
localAngles = new Vector3(0f, 0f, 0f),
localScale = new Vector3(0.8f, 0.8f, 0.8f)
}
});
val.Add("mdlToolbot", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("CoastalCoral.prefab"),
childName = "Head",
localPos = new Vector3(0.15f, 0.15f, -0.15f),
localAngles = new Vector3(0f, 0f, 0f),
localScale = new Vector3(0.8f, 0.8f, 0.8f)
}
});
val.Add("mdlEngi", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("CoastalCoral.prefab"),
childName = "Head",
localPos = new Vector3(0.15f, 0.15f, -0.15f),
localAngles = new Vector3(0f, 0f, 0f),
localScale = new Vector3(0.8f, 0.8f, 0.8f)
}
});
val.Add("mdlEngiTurret", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("CoastalCoral.prefab"),
childName = "Head",
localPos = new Vector3(0.15f, 0.15f, -0.15f),
localAngles = new Vector3(0f, 0f, 0f),
localScale = new Vector3(0.8f, 0.8f, 0.8f)
}
});
val.Add("mdlMage", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("CoastalCoral.prefab"),
childName = "Head",
localPos = new Vector3(0.15f, 0.15f, -0.15f),
localAngles = new Vector3(0f, 0f, 0f),
localScale = new Vector3(0.8f, 0.8f, 0.8f)
}
});
val.Add("mdlMerc", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("CoastalCoral.prefab"),
childName = "Head",
localPos = new Vector3(0.15f, 0.15f, -0.15f),
localAngles = new Vector3(0f, 0f, 0f),
localScale = new Vector3(0.8f, 0.8f, 0.8f)
}
});
val.Add("mdlLoader", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("CoastalCoral.prefab"),
childName = "Head",
localPos = new Vector3(0.15f, 0.15f, -0.15f),
localAngles = new Vector3(0f, 0f, 0f),
localScale = new Vector3(0.8f, 0.8f, 0.8f)
}
});
val.Add("mdlCaptain", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("CoastalCoral.prefab"),
childName = "Head",
localPos = new Vector3(0.15f, 0.15f, -0.15f),
localAngles = new Vector3(0f, 0f, 0f),
localScale = new Vector3(0.8f, 0.8f, 0.8f)
}
});
val.Add("mdlVoidSurvivor", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("CoastalCoral.prefab"),
childName = "Head",
localPos = new Vector3(0.15f, 0.15f, -0.15f),
localAngles = new Vector3(0f, 0f, 0f),
localScale = new Vector3(0.8f, 0.8f, 0.8f)
}
});
val.Add("mdlSeeker", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("CoastalCoral.prefab"),
childName = "Head",
localPos = new Vector3(0.15f, 0.15f, -0.15f),
localAngles = new Vector3(0f, 0f, 0f),
localScale = new Vector3(0.8f, 0.8f, 0.8f)
}
});
val.Add("mdlChef", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("CoastalCoral.prefab"),
childName = "Head",
localPos = new Vector3(0.15f, 0.15f, -0.15f),
localAngles = new Vector3(0f, 0f, 0f),
localScale = new Vector3(0.8f, 0.8f, 0.8f)
}
});
val.Add("mdlDroneTech", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("CoastalCoral.prefab"),
childName = "Head",
localPos = new Vector3(-0.19685f, 0.02641f, 0.23207f),
localAngles = new Vector3(339.0487f, 180.3748f, 272.2161f),
localScale = new Vector3(-0.8f, 0.8f, 0.8f)
}
});
val.Add("mdlDrifter", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("CoastalCoral.prefab"),
childName = "Head",
localPos = new Vector3(-0.19685f, 0.02641f, 0.23207f),
localAngles = new Vector3(339.0487f, 180.3748f, 272.2161f),
localScale = new Vector3(-0.8f, 0.8f, 0.8f)
}
});
return val;
}
}
internal static class Log
{
private static ManualLogSource _logSource;
internal static void Init(ManualLogSource logSource)
{
_logSource = logSource;
}
internal static void Debug(object data)
{
_logSource.LogDebug(data);
}
internal static void Error(object data)
{
_logSource.LogError(data);
}
internal static void Fatal(object data)
{
_logSource.LogFatal(data);
}
internal static void Info(object data)
{
_logSource.LogInfo(data);
}
internal static void Message(object data)
{
_logSource.LogMessage(data);
}
internal static void Warning(object data)
{
_logSource.LogWarning(data);
}
}
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInPlugin("acanthi.SeekingTheVoid", "SeekingTheVoid", "1.0.0")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public class SeekingTheVoid : BaseUnityPlugin
{
public const string PluginGUID = "acanthi.SeekingTheVoid";
public const string PluginAuthor = "acanthi";
public const string PluginName = "SeekingTheVoid";
public const string PluginVersion = "1.0.0";
public static AssetBundle SeekingTheVoidAssets;
public static bool isCoralEnabled;
public static bool isPairyEnabled;
public static float gupSizeModifier;
public static bool isToxicEnabled;
public void Awake()
{
Log.Init(((BaseUnityPlugin)this).Logger);
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SeekingTheVoid.seekingthevoid_assets"))
{
SeekingTheVoidAssets = AssetBundle.LoadFromStream(stream);
}
((MonoBehaviour)this).StartCoroutine(ShaderSwapper.UpgradeStubbedShadersAsync(SeekingTheVoidAssets));
CreateConfig();
NetworkingAPI.RegisterMessageType<ClientBuffMessage>();
NetworkingAPI.RegisterMessageType<SpawnShitMessage>();
if (isCoralEnabled)
{
CoastalCoral.Init();
}
if (isPairyEnabled)
{
StrawPairy.Init();
}
if (isToxicEnabled)
{
ToxicodendronBrine.Init();
}
}
private void CreateConfig()
{
isCoralEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Coastal Coral", "Enabled", true, "Is this item enabled?").Value;
CoastalCoral.baseJumps = ((BaseUnityPlugin)this).Config.Bind<int>("Coastal Coral", "Base Jumps", 2, "Base jump charges granted.").Value;
CoastalCoral.stackJumps = ((BaseUnityPlugin)this).Config.Bind<int>("Coastal Coral", "Jumps Per Stack", 2, "Jump charges granted per stack.").Value;
CoastalCoral.costToJump = ((BaseUnityPlugin)this).Config.Bind<int>("Coastal Coral", "Charges Spent To Jump", 2, "How many charges you need to spend to jump.").Value;
isToxicEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Toxicodendron Brine", "Enabled", true, "Is this item enabled?").Value;
ToxicodendronBrine.itemMode = ((BaseUnityPlugin)this).Config.Bind<int>("Toxicodendron Brine", "Item Mode", 0, "0 = Main Version, 1 = Alternate version (Read Webpage!)").Value;
isPairyEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Straw-Pair-y", "Enabled", false, "Is this item enabled? (Disabled by default, and isnt a part of the theme of this mod. An extra item for those gup lovers out there.)").Value;
gupSizeModifier = ((BaseUnityPlugin)this).Config.Bind<float>("Straw-Pair-y", "Gup Size Modifier", 0.7f, "Multiplicative size value for the ally Gup.").Value;
}
}
public static class StrawPairy
{
public class GupChildDecayBehavior : BaseItemBodyBehavior
{
[ItemDefAssociation(useOnServer = true, useOnClient = false)]
private static ItemDef GetItemDef()
{
return GeepGipDecayDef;
}
private int GetStackCount()
{
return base.stack;
}
public void FixedUpdate()
{
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
//IL_0037: Unknown result type (might be due to invalid IL or missing references)
//IL_0044: Unknown result type (might be due to invalid IL or missing references)
//IL_0049: Unknown result type (might be due to invalid IL or missing references)
if (base.stack > 0 && Object.op_Implicit((Object)(object)((BaseItemBodyBehavior)this).body) && (((BaseItemBodyBehavior)this).body.bodyIndex == geepBodyIndex || ((BaseItemBodyBehavior)this).body.bodyIndex == gipBodyIndex))
{
Inventory component = ((Component)((BaseItemBodyBehavior)this).body.master).gameObject.GetComponent<Inventory>();
if (Object.op_Implicit((Object)(object)component))
{
component.GiveItem(Items.HealthDecay, base.stack);
component.RemoveItem(GeepGipDecayDef, base.stack);
}
}
}
}
public class StrawPairyBehavior : BaseItemBodyBehavior
{
private static float timeBetweenGupResummons = 30f;
private static float timeBetweenGupRetryResummons = 30f;
private float gupResummonCooldown = 0f;
[ItemDefAssociation(useOnServer = true, useOnClient = false)]
private static ItemDef GetItemDef()
{
return StrawPairyDef;
}
private int GetStackCount()
{
return base.stack;
}
private void SummonedMaster_onBodyStart(CharacterBody body)
{
SetTeamFilter(((Component)body).gameObject);
CharacterBody body2 = ((BaseItemBodyBehavior)this).body;
}
private void SetTeamFilter(GameObject bodyObject)
{
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
TeamFilter component = bodyObject.GetComponent<TeamFilter>();
if (Object.op_Implicit((Object)(object)component))
{
component.teamIndex = ((BaseItemBodyBehavior)this).body.teamComponent.teamIndex;
}
}
public void FixedUpdate()
{
//IL_003d: 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_00cd: Unknown result type (might be due to invalid IL or missing references)
//IL_00d2: 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_00d9: Unknown result type (might be due to invalid IL or missing references)
//IL_00e4: 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_0105: Expected O, but got Unknown
//IL_0100: Unknown result type (might be due to invalid IL or missing references)
//IL_0107: Expected O, but got Unknown
CharacterMaster bodyMaster = ((BaseItemBodyBehavior)this).body.master;
if (!Object.op_Implicit((Object)(object)bodyMaster) || bodyMaster.IsDeployableLimited(GupDeployable))
{
return;
}
int deployableCount = bodyMaster.GetDeployableCount(GupDeployable);
if (deployableCount >= 1)
{
return;
}
gupResummonCooldown -= Time.fixedDeltaTime;
if (gupResummonCooldown <= 0f)
{
SpawnCard val = ((!Object.op_Implicit((Object)(object)((Component)bodyMaster).GetComponent<PlayerCharacterMasterController>())) ? GuppyAllySpawnCard : GupAllySpawnCard);
DirectorSpawnRequest val2 = new DirectorSpawnRequest(val, new DirectorPlacementRule
{
placementMode = (PlacementMode)1,
minDistance = 10f,
maxDistance = 45f,
spawnOnTarget = ((Component)this).transform
}, RoR2Application.rng);
val2.summonerBodyObject = ((Component)this).gameObject;
val2.onSpawnedServer = OnGupMasterSpawned;
DirectorCore.instance.TrySpawnObject(val2);
if (deployableCount < 1)
{
gupResummonCooldown = timeBetweenGupRetryResummons;
}
else
{
gupResummonCooldown = timeBetweenGupResummons;
}
}
void OnGupMasterSpawned(SpawnResult spawnResult)
{
//IL_0001: 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_010d: Unknown result type (might be due to invalid IL or missing references)
//IL_0117: Expected O, but got Unknown
//IL_0118: Unknown result type (might be due to invalid IL or missing references)
GameObject spawnedInstance = spawnResult.spawnedInstance;
if (Object.op_Implicit((Object)(object)spawnedInstance))
{
CharacterMaster component = spawnedInstance.GetComponent<CharacterMaster>();
if (Object.op_Implicit((Object)(object)component))
{
GameObject bodyObject = component.GetBodyObject();
if (Object.op_Implicit((Object)(object)bodyObject))
{
SetTeamFilter(bodyObject);
}
else
{
component.onBodyStart += SummonedMaster_onBodyStart;
}
component.inventory.GiveItem(Items.BoostDamage, 10 * GetStackCount());
component.inventory.GiveItem(Items.BoostHp, 10);
component.inventory.GiveItem(GeepGipDecayDef, 45);
Deployable component2 = ((Component)component).gameObject.GetComponent<Deployable>();
bodyMaster.AddDeployable(component2, GupDeployable);
component2.onUndeploy.AddListener((UnityAction)delegate
{
Log.Message("Help Me...");
component.TrueKill();
});
AIOwnership component3 = spawnResult.spawnedInstance.GetComponent<AIOwnership>();
if (Object.op_Implicit((Object)(object)component3))
{
component3.ownerMaster = ((BaseItemBodyBehavior)this).body.master;
}
}
}
}
}
}
[CompilerGenerated]
private static class <>O
{
public static GetDeployableSameSlotLimit <0>__GetGupCount;
public static hook_OnEnter <1>__BaseSplitDeath_OnEnter;
}
public static ItemDef StrawPairyDef;
public static ItemDef GeepGipDecayDef;
public static BodyIndex geepBodyIndex;
public static BodyIndex gipBodyIndex;
public static DeployableSlot GupDeployable;
public static SpawnCard GupAllySpawnCard;
public static SpawnCard GuppyAllySpawnCard;
public static void Init()
{
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
//IL_0037: 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_00b2: 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_00ce: Unknown result type (might be due to invalid IL or missing references)
//IL_0123: Unknown result type (might be due to invalid IL or missing references)
//IL_0153: Unknown result type (might be due to invalid IL or missing references)
//IL_0187: Unknown result type (might be due to invalid IL or missing references)
//IL_0191: Expected O, but got Unknown
//IL_0210: Unknown result type (might be due to invalid IL or missing references)
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_0032: Expected O, but got Unknown
//IL_0264: Unknown result type (might be due to invalid IL or missing references)
//IL_026e: Expected O, but got Unknown
//IL_027f: Unknown result type (might be due to invalid IL or missing references)
//IL_0284: Unknown result type (might be due to invalid IL or missing references)
//IL_028a: Expected O, but got Unknown
CreateLang();
SetupSpawnCard();
StrawPairyDef = ScriptableObject.CreateInstance<ItemDef>();
object obj = <>O.<0>__GetGupCount;
if (obj == null)
{
GetDeployableSameSlotLimit val = GetGupCount;
<>O.<0>__GetGupCount = val;
obj = (object)val;
}
GupDeployable = DeployableAPI.RegisterDeployableSlot((GetDeployableSameSlotLimit)obj);
((Object)StrawPairyDef).name = "SEEKINTHEVOID_STRAWPAIRY_NAME";
StrawPairyDef.nameToken = "SEEKINTHEVOID_STRAWPAIRY_NAME";
StrawPairyDef.pickupToken = "SEEKINTHEVOID_STRAWPAIRY_PICKUP";
StrawPairyDef.descriptionToken = "SEEKINTHEVOID_STRAWPAIRY_DESC";
StrawPairyDef.loreToken = "SEEKINTHEVOID_STRAWPAIRY_LORE";
ItemDef strawPairyDef = StrawPairyDef;
ItemTag[] array = new ItemTag[3];
RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
strawPairyDef.tags = (ItemTag[])(object)array;
StrawPairyDef._itemTierDef = Addressables.LoadAssetAsync<ItemTierDef>((object)"RoR2/Base/Common/Tier2Def.asset").WaitForCompletion();
StrawPairyDef.requiredExpansion = Addressables.LoadAssetAsync<ExpansionDef>((object)"RoR2/DLC1/Common/DLC1.asset").WaitForCompletion();
StrawPairyDef.pickupIconSprite = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<Sprite>("StrawPairy.png");
StrawPairyDef.pickupModelPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("StrawPairy.prefab");
ModelPanelParameters val2 = StrawPairyDef.pickupModelPrefab.AddComponent<ModelPanelParameters>();
val2.focusPointTransform = new GameObject("FocusPoint").transform;
val2.focusPointTransform.SetParent(StrawPairyDef.pickupModelPrefab.transform);
val2.cameraPositionTransform = new GameObject("CameraPosition").transform;
val2.cameraPositionTransform.SetParent(StrawPairyDef.pickupModelPrefab.transform);
ItemAPI.Add(new CustomItem(StrawPairyDef, ItemDisplayTransformations()));
GeepGipDecayDef = ScriptableObject.CreateInstance<ItemDef>();
((Object)GeepGipDecayDef).name = "SEEKINTHEVOID_GUPCHILDDECAY_NAME";
GeepGipDecayDef.nameToken = "SEEKINTHEVOID_GUPCHILDDECAY_NAME";
GeepGipDecayDef.pickupToken = "SEEKINTHEVOID_GUPCHILDDECAY_PICKUP";
GeepGipDecayDef.descriptionToken = "SEEKINTHEVOID_GUPCHILDDECAY_DESC";
GeepGipDecayDef.loreToken = "SEEKINTHEVOID_GUPCHILDDECAY_LORE";
GeepGipDecayDef.hidden = true;
GeepGipDecayDef.canRemove = false;
GeepGipDecayDef.tier = (ItemTier)5;
GeepGipDecayDef.deprecatedTier = (ItemTier)5;
ItemDef geepGipDecayDef = GeepGipDecayDef;
ItemTag[] array2 = new ItemTag[3];
RuntimeHelpers.InitializeArray(array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
geepGipDecayDef.tags = (ItemTag[])(object)array2;
((ResourceAvailability)(ref BodyCatalog.availability)).CallWhenAvailable((Action)delegate
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000b: 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_001a: Unknown result type (might be due to invalid IL or missing references)
geepBodyIndex = BodyCatalog.FindBodyIndexCaseInsensitive("GeepBody");
gipBodyIndex = BodyCatalog.FindBodyIndexCaseInsensitive("GipBody");
});
ItemAPI.Add(new CustomItem(GeepGipDecayDef, ItemDisplayTransformations()));
object obj2 = <>O.<1>__BaseSplitDeath_OnEnter;
if (obj2 == null)
{
hook_OnEnter val3 = BaseSplitDeath_OnEnter;
<>O.<1>__BaseSplitDeath_OnEnter = val3;
obj2 = (object)val3;
}
BaseSplitDeath.OnEnter += (hook_OnEnter)obj2;
}
private static void BaseSplitDeath_OnEnter(orig_OnEnter orig, BaseSplitDeath self)
{
orig.Invoke(self);
if (((EntityState)self).characterBody.baseNameToken == "GUPPY_BODY_NAME")
{
self.spawnCount = 0;
self.characterSpawnCard = null;
}
}
private static void SetupSpawnCard()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000b: 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_003c: Unknown result type (might be due to invalid IL or missing references)
//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
//IL_00c0: 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_0139: Unknown result type (might be due to invalid IL or missing references)
//IL_0238: Unknown result type (might be due to invalid IL or missing references)
//IL_0288: Unknown result type (might be due to invalid IL or missing references)
//IL_02b4: Unknown result type (might be due to invalid IL or missing references)
//IL_02dc: Unknown result type (might be due to invalid IL or missing references)
//IL_033c: Unknown result type (might be due to invalid IL or missing references)
//IL_0341: Unknown result type (might be due to invalid IL or missing references)
GameObject val = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/Gup/GupBody.prefab").WaitForCompletion();
GameObject val2 = PrefabAPI.InstantiateClone(val, "modifiedGupBody", false);
ModelLocator component = val2.GetComponent<ModelLocator>();
Transform modelTransform = component.modelTransform;
modelTransform.localScale *= SeekingTheVoid.gupSizeModifier;
val2.GetComponent<CharacterBody>().portraitIcon = (Texture)(object)SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<Texture2D>("GupAlly.png");
val2.GetComponent<CharacterDeathBehavior>().deathStateMachine = val2.GetComponent<EntityStateMachine>();
val2.GetComponent<NetworkStateMachine>().stateMachines[0] = val2.GetComponent<EntityStateMachine>();
PrefabAPI.RegisterNetworkPrefab(val2);
ContentAddition.AddBody(val2);
GameObject val3 = PrefabAPI.InstantiateClone(val, "guppyBody", false);
ModelLocator component2 = val3.GetComponent<ModelLocator>();
Transform modelTransform2 = component2.modelTransform;
modelTransform2.localScale *= 0.25f;
val3.GetComponent<CharacterBody>().portraitIcon = (Texture)(object)SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<Texture2D>("GupAlly.png");
val3.GetComponent<CharacterDeathBehavior>().deathStateMachine = val3.GetComponent<EntityStateMachine>();
val3.GetComponent<NetworkStateMachine>().stateMachines[0] = val3.GetComponent<EntityStateMachine>();
val3.GetComponent<CharacterBody>().baseNameToken = "GUPPY_BODY_NAME";
PrefabAPI.RegisterNetworkPrefab(val3);
ContentAddition.AddBody(val3);
GameObject val4 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/Gup/GupMaster.prefab").WaitForCompletion();
GameObject val5 = PrefabAPI.InstantiateClone(val4, "modifiedGupMaster", false);
AISkillDriver[] components = val5.GetComponents<AISkillDriver>();
AISkillDriver[] array = components;
foreach (AISkillDriver val6 in array)
{
val6.selectionRequiresTargetNonFlier = true;
if (val6.minDistance > 0f)
{
val6.minDistance *= SeekingTheVoid.gupSizeModifier;
}
if (val6.maxDistance > 0f && val6.maxDistance < float.PositiveInfinity)
{
val6.maxDistance *= SeekingTheVoid.gupSizeModifier;
}
if (val6.maxDistance > 200f)
{
val6.maxDistance = 200f;
}
}
val5.AddComponent<Deployable>();
val5.AddComponent<AIOwnership>();
AISkillDriver val7 = val5.AddComponent<AISkillDriver>();
val7.customName = "ReturnToLeaderDefault";
val7.skillSlot = (SkillSlot)(-1);
val7.requireSkillReady = false;
val7.minDistance = 20f;
val7.maxDistance = float.PositiveInfinity;
val7.selectionRequiresAimTarget = false;
val7.selectionRequiresOnGround = false;
val7.selectionRequiresTargetLoS = false;
val7.selectionRequiresTargetNonFlier = false;
val7.maxTimesSelected = -1;
val7.moveTargetType = (TargetType)2;
val7.moveInputScale = 1f;
val7.aimVectorDampTimeOverride = -1f;
val7.aimVectorMaxSpeedOverride = -1f;
val7.aimType = (AimType)1;
val7.ignoreNodeGraph = false;
val7.shouldSprint = true;
val7.shouldFireEquipment = false;
val7.shouldTapButton = false;
val7.buttonPressType = (ButtonPressType)0;
val7.driverUpdateTimerOverride = -1f;
val7.resetCurrentEnemyOnNextDriverSelection = false;
val7.noRepeat = false;
val5.GetComponent<CharacterMaster>().bodyPrefab = val2;
PrefabAPI.RegisterNetworkPrefab(val5);
GameObject val8 = PrefabAPI.InstantiateClone(val5, "guppyMaster", false);
val8.GetComponent<CharacterMaster>().bodyPrefab = val3;
PrefabAPI.RegisterNetworkPrefab(val8);
SpawnCard val9 = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/BeetleGland/cscBeetleGuardAlly.asset").WaitForCompletion();
GupAllySpawnCard = Object.Instantiate<SpawnCard>(val9);
GupAllySpawnCard.prefab = val5;
GuppyAllySpawnCard = Object.Instantiate<SpawnCard>(val9);
GuppyAllySpawnCard.prefab = val8;
}
private static int GetGupCount(CharacterMaster master, int countMultiplier)
{
return 1;
}
public static ItemDisplayRuleDict ItemDisplayTransformationsEmpty()
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Expected O, but got Unknown
return new ItemDisplayRuleDict((ItemDisplayRule[])null);
}
public static ItemDisplayRuleDict ItemDisplayTransformations()
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Expected O, but got Unknown
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: 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_0074: Unknown result type (might be due to invalid IL or missing references)
//IL_0079: 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_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_009a: Unknown result type (might be due to invalid IL or missing references)
//IL_00b5: 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_00f6: Unknown result type (might be due to invalid IL or missing references)
//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
//IL_0111: Unknown result type (might be due to invalid IL or missing references)
//IL_0116: Unknown result type (might be due to invalid IL or missing references)
//IL_012c: Unknown result type (might be due to invalid IL or missing references)
//IL_0131: 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)
//IL_0137: Unknown result type (might be due to invalid IL or missing references)
//IL_0152: Unknown result type (might be due to invalid IL or missing references)
//IL_015b: Unknown result type (might be due to invalid IL or missing references)
//IL_0193: Unknown result type (might be due to invalid IL or missing references)
//IL_0198: Unknown result type (might be due to invalid IL or missing references)
//IL_01ae: Unknown result type (might be due to invalid IL or missing references)
//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
//IL_01c9: Unknown result type (might be due to invalid IL or missing references)
//IL_01ce: Unknown result type (might be due to invalid IL or missing references)
//IL_01d3: Unknown result type (might be due to invalid IL or missing references)
//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
//IL_01ef: Unknown result type (might be due to invalid IL or missing references)
//IL_01f8: Unknown result type (might be due to invalid IL or missing references)
//IL_0230: Unknown result type (might be due to invalid IL or missing references)
//IL_0235: Unknown result type (might be due to invalid IL or missing references)
//IL_024b: Unknown result type (might be due to invalid IL or missing references)
//IL_0250: Unknown result type (might be due to invalid IL or missing references)
//IL_0266: Unknown result type (might be due to invalid IL or missing references)
//IL_026b: Unknown result type (might be due to invalid IL or missing references)
//IL_0270: Unknown result type (might be due to invalid IL or missing references)
//IL_0271: Unknown result type (might be due to invalid IL or missing references)
//IL_028c: Unknown result type (might be due to invalid IL or missing references)
//IL_0295: Unknown result type (might be due to invalid IL or missing references)
//IL_02cd: Unknown result type (might be due to invalid IL or missing references)
//IL_02d2: Unknown result type (might be due to invalid IL or missing references)
//IL_02e8: Unknown result type (might be due to invalid IL or missing references)
//IL_02ed: Unknown result type (might be due to invalid IL or missing references)
//IL_0303: Unknown result type (might be due to invalid IL or missing references)
//IL_0308: Unknown result type (might be due to invalid IL or missing references)
//IL_030d: Unknown result type (might be due to invalid IL or missing references)
//IL_030e: Unknown result type (might be due to invalid IL or missing references)
//IL_0329: Unknown result type (might be due to invalid IL or missing references)
//IL_0332: Unknown result type (might be due to invalid IL or missing references)
//IL_036a: Unknown result type (might be due to invalid IL or missing references)
//IL_036f: Unknown result type (might be due to invalid IL or missing references)
//IL_0385: Unknown result type (might be due to invalid IL or missing references)
//IL_038a: Unknown result type (might be due to invalid IL or missing references)
//IL_03a0: Unknown result type (might be due to invalid IL or missing references)
//IL_03a5: Unknown result type (might be due to invalid IL or missing references)
//IL_03aa: Unknown result type (might be due to invalid IL or missing references)
//IL_03ab: Unknown result type (might be due to invalid IL or missing references)
//IL_03c6: Unknown result type (might be due to invalid IL or missing references)
//IL_03cf: 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_040c: 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_0427: 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_0447: Unknown result type (might be due to invalid IL or missing references)
//IL_0448: Unknown result type (might be due to invalid IL or missing references)
//IL_0463: Unknown result type (might be due to invalid IL or missing references)
//IL_046c: Unknown result type (might be due to invalid IL or missing references)
//IL_04a4: Unknown result type (might be due to invalid IL or missing references)
//IL_04a9: Unknown result type (might be due to invalid IL or missing references)
//IL_04bf: Unknown result type (might be due to invalid IL or missing references)
//IL_04c4: Unknown result type (might be due to invalid IL or missing references)
//IL_04da: Unknown result type (might be due to invalid IL or missing references)
//IL_04df: Unknown result type (might be due to invalid IL or missing references)
//IL_04e4: Unknown result type (might be due to invalid IL or missing references)
//IL_04e5: Unknown result type (might be due to invalid IL or missing references)
//IL_0500: Unknown result type (might be due to invalid IL or missing references)
//IL_0509: Unknown result type (might be due to invalid IL or missing references)
//IL_0541: Unknown result type (might be due to invalid IL or missing references)
//IL_0546: Unknown result type (might be due to invalid IL or missing references)
//IL_055c: Unknown result type (might be due to invalid IL or missing references)
//IL_0561: Unknown result type (might be due to invalid IL or missing references)
//IL_0577: Unknown result type (might be due to invalid IL or missing references)
//IL_057c: Unknown result type (might be due to invalid IL or missing references)
//IL_0581: Unknown result type (might be due to invalid IL or missing references)
//IL_0582: Unknown result type (might be due to invalid IL or missing references)
//IL_059d: Unknown result type (might be due to invalid IL or missing references)
//IL_05a6: Unknown result type (might be due to invalid IL or missing references)
//IL_05de: Unknown result type (might be due to invalid IL or missing references)
//IL_05e3: Unknown result type (might be due to invalid IL or missing references)
//IL_05f9: Unknown result type (might be due to invalid IL or missing references)
//IL_05fe: Unknown result type (might be due to invalid IL or missing references)
//IL_0614: Unknown result type (might be due to invalid IL or missing references)
//IL_0619: Unknown result type (might be due to invalid IL or missing references)
//IL_061e: 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_063a: Unknown result type (might be due to invalid IL or missing references)
//IL_0643: Unknown result type (might be due to invalid IL or missing references)
//IL_067b: Unknown result type (might be due to invalid IL or missing references)
//IL_0680: Unknown result type (might be due to invalid IL or missing references)
//IL_0696: 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_06b1: Unknown result type (might be due to invalid IL or missing references)
//IL_06b6: Unknown result type (might be due to invalid IL or missing references)
//IL_06bb: Unknown result type (might be due to invalid IL or missing references)
//IL_06bc: Unknown result type (might be due to invalid IL or missing references)
//IL_06d7: Unknown result type (might be due to invalid IL or missing references)
//IL_06e0: Unknown result type (might be due to invalid IL or missing references)
//IL_0718: Unknown result type (might be due to invalid IL or missing references)
//IL_071d: Unknown result type (might be due to invalid IL or missing references)
//IL_0733: Unknown result type (might be due to invalid IL or missing references)
//IL_0738: Unknown result type (might be due to invalid IL or missing references)
//IL_074e: Unknown result type (might be due to invalid IL or missing references)
//IL_0753: Unknown result type (might be due to invalid IL or missing references)
//IL_0758: Unknown result type (might be due to invalid IL or missing references)
//IL_0759: Unknown result type (might be due to invalid IL or missing references)
//IL_0774: Unknown result type (might be due to invalid IL or missing references)
//IL_077d: Unknown result type (might be due to invalid IL or missing references)
//IL_07b5: Unknown result type (might be due to invalid IL or missing references)
//IL_07ba: Unknown result type (might be due to invalid IL or missing references)
//IL_07d0: Unknown result type (might be due to invalid IL or missing references)
//IL_07d5: Unknown result type (might be due to invalid IL or missing references)
//IL_07eb: Unknown result type (might be due to invalid IL or missing references)
//IL_07f0: Unknown result type (might be due to invalid IL or missing references)
//IL_07f5: Unknown result type (might be due to invalid IL or missing references)
//IL_07f6: Unknown result type (might be due to invalid IL or missing references)
//IL_0811: Unknown result type (might be due to invalid IL or missing references)
//IL_081a: 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_086d: Unknown result type (might be due to invalid IL or missing references)
//IL_0872: Unknown result type (might be due to invalid IL or missing references)
//IL_0888: Unknown result type (might be due to invalid IL or missing references)
//IL_088d: Unknown result type (might be due to invalid IL or missing references)
//IL_0892: Unknown result type (might be due to invalid IL or missing references)
//IL_0893: Unknown result type (might be due to invalid IL or missing references)
//IL_08ae: 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_08ef: Unknown result type (might be due to invalid IL or missing references)
//IL_08f4: Unknown result type (might be due to invalid IL or missing references)
//IL_090a: Unknown result type (might be due to invalid IL or missing references)
//IL_090f: Unknown result type (might be due to invalid IL or missing references)
//IL_0925: Unknown result type (might be due to invalid IL or missing references)
//IL_092a: Unknown result type (might be due to invalid IL or missing references)
//IL_092f: Unknown result type (might be due to invalid IL or missing references)
//IL_0930: Unknown result type (might be due to invalid IL or missing references)
//IL_094b: Unknown result type (might be due to invalid IL or missing references)
//IL_0954: Unknown result type (might be due to invalid IL or missing references)
//IL_098c: Unknown result type (might be due to invalid IL or missing references)
//IL_0991: Unknown result type (might be due to invalid IL or missing references)
//IL_09a7: 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_09c2: Unknown result type (might be due to invalid IL or missing references)
//IL_09c7: Unknown result type (might be due to invalid IL or missing references)
//IL_09cc: Unknown result type (might be due to invalid IL or missing references)
//IL_09cd: Unknown result type (might be due to invalid IL or missing references)
ItemDisplayRuleDict val = new ItemDisplayRuleDict((ItemDisplayRule[])null);
val.Add("mdlRailGunner", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("StrawPairy.prefab"),
childName = "Pelvis",
localPos = new Vector3(0.2431f, 0.13818f, 0.04886f),
localAngles = new Vector3(16.89807f, 48.65277f, 199.8044f),
localScale = new Vector3(0.35f, 0.35f, 0.35f)
}
});
val.Add("mdlCommandoDualies", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("StrawPairy.prefab"),
childName = "Pelvis",
localPos = new Vector3(0.11195f, -0.02541f, -0.16878f),
localAngles = new Vector3(33.70332f, 260.7876f, 191.66f),
localScale = new Vector3(0.25f, 0.25f, 0.25f)
}
});
val.Add("mdlHuntress", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("StrawPairy.prefab"),
childName = "Chest",
localPos = new Vector3(0.13092f, 0.09336f, 0.18086f),
localAngles = new Vector3(357.252f, 42.7274f, 9.73612f),
localScale = new Vector3(0.35f, 0.35f, 0.35f)
}
});
val.Add("mdlBandit2", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("StrawPairy.prefab"),
childName = "Head",
localPos = new Vector3(0.12111f, 0.1301f, -0.07137f),
localAngles = new Vector3(319.1881f, 357.8232f, 24.08452f),
localScale = new Vector3(0.25f, 0.25f, 0.25f)
}
});
val.Add("mdlToolbot", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("StrawPairy.prefab"),
childName = "Chest",
localPos = new Vector3(2.28961f, 2.66646f, 2.4769f),
localAngles = new Vector3(320.192f, 35.66992f, 0.91258f),
localScale = new Vector3(2f, 2f, 2f)
}
});
val.Add("mdlEngi", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("StrawPairy.prefab"),
childName = "Pelvis",
localPos = new Vector3(0.11195f, -0.02541f, -0.16878f),
localAngles = new Vector3(33.70332f, 260.7876f, 191.66f),
localScale = new Vector3(0.25f, 0.25f, 0.25f)
}
});
val.Add("mdlMage", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("StrawPairy.prefab"),
childName = "Chest",
localPos = new Vector3(0.08819f, 0.14239f, 0.16317f),
localAngles = new Vector3(354.4081f, 268.3398f, 353.9101f),
localScale = new Vector3(0.25f, 0.25f, 0.25f)
}
});
val.Add("mdlMerc", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("StrawPairy.prefab"),
childName = "Head",
localPos = new Vector3(0.00634f, 0.00334f, 0.18894f),
localAngles = new Vector3(351.389f, 309.4684f, 11.42171f),
localScale = new Vector3(0.2f, 0.2f, 0.2f)
}
});
val.Add("mdlLoader", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("StrawPairy.prefab"),
childName = "Chest",
localPos = new Vector3(0.14503f, 0.21651f, 0.24265f),
localAngles = new Vector3(359.8532f, 34.27069f, 359.8857f),
localScale = new Vector3(0.25f, 0.25f, 0.25f)
}
});
val.Add("mdlCaptain", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("StrawPairy.prefab"),
childName = "Pelvis",
localPos = new Vector3(0.04155f, -0.03521f, -0.22135f),
localAngles = new Vector3(27.20395f, 296.7981f, 187.8858f),
localScale = new Vector3(0.25f, 0.25f, 0.25f)
}
});
val.Add("mdlVoidSurvivor", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("StrawPairy.prefab"),
childName = "Chest",
localPos = new Vector3(0.02515f, 0.23371f, -0.18064f),
localAngles = new Vector3(322.1277f, 243.4333f, 79.9745f),
localScale = new Vector3(0.35f, 0.35f, 0.35f)
}
});
val.Add("mdlSeeker", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("StrawPairy.prefab"),
childName = "Pack",
localPos = new Vector3(-0.168f, 0.15328f, -0.21157f),
localAngles = new Vector3(325.4123f, 44.25535f, 1.24796f),
localScale = new Vector3(0.25f, 0.25f, 0.25f)
}
});
val.Add("mdlChef", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("StrawPairy.prefab"),
childName = "Chest",
localPos = new Vector3(-0.29829f, 0.09506f, -0.30026f),
localAngles = new Vector3(281.5359f, 342.4525f, 130.0393f),
localScale = new Vector3(0.25f, 0.25f, 0.25f)
}
});
val.Add("mdlDroneTech", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("StrawPairy.prefab"),
childName = "Pelvis",
localPos = new Vector3(0.11195f, -0.02541f, -0.16878f),
localAngles = new Vector3(33.70332f, 260.7876f, 191.66f),
localScale = new Vector3(0.25f, 0.25f, 0.25f)
}
});
val.Add("mdlDrifter", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("StrawPairy.prefab"),
childName = "Pelvis",
localPos = new Vector3(0.11195f, -0.02541f, -0.16878f),
localAngles = new Vector3(33.70332f, 260.7876f, 191.66f),
localScale = new Vector3(0.25f, 0.25f, 0.25f)
}
});
val.Add("mdlGup", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
{
new ItemDisplayRule
{
ruleType = (ItemDisplayRuleType)0,
followerPrefab = SeekingTheVoid.SeekingTheVoidAssets.LoadAsset<GameObject>("StrawPairy.prefab"),
childName = "Head",
localPos = new Vector3(0f, 0.69f, 0f),
localAngles = new Vector3(0f, 0f, 32f),
localScale = new Vector3(0.5f, 0.5f, 0.5f)
}
});
return val;
}
public static void CreateLang()
{
LanguageAPI.Add("GUPPY_BODY_NAME", "Guppy");
LanguageAPI.Add("SEEKINTHEVOID_STRAWPAIRY_NAME", "Straw'Pair'y");
LanguageAPI.Add("SEEKINTHEVOID_STRAWPAIRY_LORE", "Order: Strawberries, 2 Qty.\r\nTracking Number: 25***********\r\nEstimated Delivery: 01/19/2055\r\nShipping Method: Standard\r\nShipping Address: Fridge Lunch Pale, 305 Odysseus St., Casper Plaza, Venus\r\nShipping Details:\r\n\r\nA gift for my love! Together forever <3");
LanguageAPI.Add("SEEKINTHEVOID_STRAWPAIRY_PICKUP", "Everybody's favorite friend!");
LanguageAPI.Add("SEEKINTHEVOID_STRAWPAIRY_DESC", "Every 30 seconds, <style=cIsUtility>summon a Gup</style> with bonus <style=cIsDamage>100%</style> <style=cStack>(+100% per stack)</style> damage and <style=cIsHealing>100%</style> health. Can have up to <style=cIsUtility>1</style> Gup at a time.");
}
}
public static class ToxicodendronBrine
{
public class ToxicodendronBrineBehavior : BaseItemBodyBehavior
{
private float fractureChance = 10f;
[ItemDefAssociation(useOnServer = true, useOnClient = false)]
private static ItemDef GetItemDef()
{
return ToxicodendronBrineDef;
}
private int GetStackCount()
{
return base.stack;
}
private void OnEnable()
{
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_001f: Expected O, but got Unknown
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
//IL_0031: Expected O, but got Unknown
if (itemMode == 0)
{
GlobalEventManager.OnHitEnemy += new hook_OnHitEnemy(OnDamageDealt);
CharacterBody.OnKilledOtherServer += new hook_OnKilledOtherServer(CharacterBody_OnKilledOtherServer);
}
else
{
GlobalEventManager.onServerDamageDealt += OnDamageDealtAlt;
}
}
private void CharacterBody_OnKilledOtherServer(orig_OnKilledOtherServer orig, CharacterBody self, DamageReport report)
{
//IL_004d: Unknown result type (might be due to invalid IL or missing references)
orig.Invoke(self, report);
if (Object.op_Implicit((Object)(object)self.inventory) && self.inventory.GetItemCountEffective(ToxicodendronBrineDef) > 0 && report.victimBody.activeBuffsList.Contains(Buffs.Poisoned.buffIndex))
{
TriggerPoisonSpread(self, report);
Debug.Log((object)"Enemy has Poison...");
float num = report.attackerBody.skillLocator.GetSkill((SkillSlot)0).rechargeStopwatch * 0.2f;
float num2 = report.attackerBody.skillLocator.GetSkill((SkillSlot)1).rechargeStopwatch * 0.2f;
float num3 = report.attackerBody.skillLocator.GetSkill((SkillSlot)2).rechargeStopwatch * 0.2f;
float num4 = report.attackerBody.skillLocator.GetSkill((SkillSlot)3).rechargeStopwatch * 0.2f;
GenericSkill skill = report.attackerBody.skillLocator.GetSkill((SkillSlot)0);
skill.rechargeStopwatch += num;
GenericSkill skill2 = report.attackerBody.skillLocator.GetSkill((SkillSlot)1);
skill2.rechargeStopwatch += num2;
GenericSkill skill3 = report.attackerBody.skillLocator.GetSkill((SkillSlot)2);
skill3.rechargeStopwatch += num3;
GenericSkill skill4 = report.attackerBody.skillLocator.GetSkill((SkillSlot)3);
skill4.rechargeStopwatch += num4;
}
}
private void TriggerPoisonSpread(CharacterBody self, DamageReport report)
{
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: 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_007f: 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_0083: 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_0091: Expected O, but got Unknown
//IL_009f: Unknown result type (might be due to invalid IL or missing references)
//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
//IL_00f2: Unknown result type (might be due to invalid IL or missing references)
//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
int itemCountEffective = self.inventory.GetItemCountEffective(Items.TriggerEnemyDebuffs);
List<SplitDebuffInformation> list = new List<SplitDebuffInformation>();
_ = report.damageInfo;
DotController val = DotController.FindDotController(((Component)report.victimBody).gameObject);
SplitDebuffInformation val2 = default(SplitDebuffInformation);
val2.attacker = ((Component)this).gameObject;
val2.attackerMaster = self.master;
val2.index = Buffs.Poisoned.buffIndex;
val2.isTimed = true;
val2.duration = 10f;
val2.count = 1;
SplitDebuffInformation item = val2;
list.Add(item);
SphereSearch val3 = new SphereSearch();
List<HurtBox> list2 = CollectionPool<HurtBox, List<HurtBox>>.RentCollection();
val3.mask = ((LayerIndex)(ref LayerIndex.entityPrecise)).mask;
val3.origin = ((Component)report.victimBody).gameObject.transform.position;
val3.radius = 20f + 5f * (float)itemCountEffective;
val3.queryTriggerInteraction = (QueryTriggerInteraction)0;
val3.RefreshCandidates();
val3.FilterCandidatesByHurtBoxTeam(TeamMask.GetEnemyTeams(self.teamComponent.teamIndex));
val3.OrderCandidatesByDistance();
val3.FilterCandidatesByDistinctHurtBoxEntities();
val3.GetHurtBoxes(list2);
val3.ClearCandidates();
int num = itemCountEffective;
for (int i = 0; i < list2.Count; i++)
{
HurtBox val4 = list2[i];
CharacterBody body = val4.healthComponent.body;
if (Object.op_Implicit((Object)(object)val4) && Object.op_Implicit((Object)(object)val4.healthComponent) && val4.healthComponent.alive && (Object)(object)body != (Object)(object)report.victimBody && (Object)(object)body != (Object)(object)this)
{
self.CreateVineOrbChain(((Component)report.victimBody).gameObject, val4, list);
num--;
if (num == 0)
{
return;
}
}
}
CollectionPool<HurtBox, List<HurtBox>>.ReturnCollection(list2);
}
private void OnDamageDealt(orig_OnHitEnemy orig, GlobalEventManager self, DamageInfo damageInfo, GameObject victim)
{
//IL_0073: Unknown result type (might be due to invalid IL or missing references)
orig.Invoke(self, damageInfo, victim);
if (!Object.op_Implicit((Object)(object)damageInfo.attacker))
{
return;
}
CharacterBody component = damageInfo.attacker.GetComponent<CharacterBody>();
if (Object.op_Implicit((Object)(object)component))
{
Inventory inventory = component.inventory;
if (Object.op_Implicit((Object)(object)inventory) && damageInfo.damage / component.damage >= 4f && inventory.GetItemCountEffective(ToxicodendronBrineDef.itemIndex) > 0)