Decompiled source of ShigarakiMod v3.0.3
ShiggyMod.dll
Decompiled a day ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Globalization; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using EmotesAPI; using EntityStates; using EntityStates.Bandit2; using EntityStates.BeetleGuardMonster; using EntityStates.BeetleMonster; using EntityStates.Bell.BellWeapon; using EntityStates.Bison; using EntityStates.Captain.Weapon; using EntityStates.Chef; using EntityStates.ChildMonster; using EntityStates.ClayBoss; using EntityStates.ClayBruiser.Weapon; using EntityStates.ClayGrenadier; using EntityStates.Commando; using EntityStates.Commando.CommandoWeapon; using EntityStates.Croco; using EntityStates.Engi.EngiWeapon; using EntityStates.Engi.SpiderMine; using EntityStates.GolemMonster; using EntityStates.GrandParent; using EntityStates.GravekeeperBoss; using EntityStates.HermitCrab; using EntityStates.Huntress; using EntityStates.Huntress.HuntressWeapon; using EntityStates.ImpMonster; using EntityStates.JellyfishMonster; using EntityStates.LemurianBruiserMonster; using EntityStates.LemurianMonster; using EntityStates.Loader; using EntityStates.LunarGolem; using EntityStates.LunarWisp; using EntityStates.Mage.Weapon; using EntityStates.Merc; using EntityStates.MiniMushroom; using EntityStates.NullifierMonster; using EntityStates.RoboBallBoss.Weapon; using EntityStates.ScavMonster; using EntityStates.Scorchling; using EntityStates.Toolbot; using EntityStates.Treebot.Weapon; using EntityStates.VagrantMonster; using EntityStates.VoidJailer; using EntityStates.VoidJailer.Weapon; using EntityStates.VoidMegaCrab.BackWeapon; using EntityStates.Vulture; using EntityStates.Vulture.Weapon; using EntityStates.Wisp1Monster; using ExtraSkillSlots; using HG; using HG.BlendableTypes; using KinematicCharacterController; using On.RoR2; using On.RoR2.Orbs; using R2API; using R2API.Networking; using R2API.Networking.Interfaces; using R2API.Utils; using RiskOfOptions; using RiskOfOptions.OptionConfigs; using RiskOfOptions.Options; using RoR2; using RoR2.Achievements; using RoR2.Audio; using RoR2.CharacterAI; using RoR2.ContentManagement; using RoR2.Navigation; using RoR2.Orbs; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using RoR2BepInExPack.GameAssetPaths.Version_1_35_0; using RoR2BepInExPack.GameAssetPaths.Version_1_39_0; using RoR2BepInExPack.GameAssetPathsBetter; using ShiggyMod.Modules; using ShiggyMod.Modules.Networking; using ShiggyMod.Modules.Quirks; using ShiggyMod.Modules.Survivors; using ShiggyMod.SkillStates; using ShiggyMod.SkillStates.BaseStates; using TMPro; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.EventSystems; using UnityEngine.Events; using UnityEngine.Networking; using UnityEngine.Rendering; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("ShiggyMod")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+e3f0931cd289762450791265903d9920cb8f6266")] [assembly: AssemblyProduct("ShiggyMod")] [assembly: AssemblyTitle("ShiggyMod")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: UnverifiableCode] internal class SkillDefInfo { public string skillName; public string skillNameToken; public string skillDescriptionToken; public Sprite skillIcon; public SerializableEntityStateType activationState; public string activationStateMachineName; public int baseMaxStock; public float baseRechargeInterval; public bool beginSkillCooldownOnSkillEnd; public bool canceledFromSprinting; public bool forceSprintDuringState; public bool fullRestockOnAssign; public InterruptPriority interruptPriority; public bool resetCooldownTimerOnUse; public bool isCombatSkill; public bool mustKeyPress; public bool cancelSprintingOnActivation; public int rechargeStock; public int requiredStock; public int stockToConsume; public string[] keywordTokens; } namespace ShiggyMod { internal static class Log { internal 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.*/)] [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.*/)] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.TeaL.ShigarakiMod", "ShigarakiMod", "3.0.3")] public class ShiggyPlugin : BaseUnityPlugin { public class OmniboostTracker : MonoBehaviour { public CharacterBody lastVictim; } public static bool scepterInstalled; public ShiggyController Shiggycon; public ShiggyMasterController Shiggymastercon; public const string MODUID = "com.TeaL.ShigarakiMod"; public const string MODNAME = "ShigarakiMod"; public const string MODVERSION = "3.0.3"; public const string developerPrefix = "TEAL"; internal List<SurvivorBase> Survivors = new List<SurvivorBase>(); public static ShiggyPlugin instance; public static CharacterBody ShiggyCharacterBody; private BlastAttack blastAttack; private void Awake() { instance = this; ShiggyCharacterBody = null; instance = this; ShiggyAsset.Initialize(); Config.ReadConfig(); Damage.SetupModdedDamage(); if (Chainloader.PluginInfos.ContainsKey("com.rune580.riskofoptions")) { Config.SetupRiskOfOptions(); } States.RegisterStates(); Buffs.RegisterBuffs(); Dots.RegisterDots(); Projectiles.RegisterProjectiles(); Tokens.AddTokens(); ItemDisplays.PopulateDisplays(); QuirkIconBank.RegisterFromRegistryData(); QuirkSeeding.Init(); new Shiggy().Initialize(); QuirkRegistry.BindQuirkRegistry(); StaticValues.LoadDictionary(); NetworkingAPI.RegisterMessageType<EquipmentDropNetworked>(); NetworkingAPI.RegisterMessageType<HealNetworkRequest>(); NetworkingAPI.RegisterMessageType<SpawnBodyNetworkRequest>(); NetworkingAPI.RegisterMessageType<PerformForceNetworkRequest>(); NetworkingAPI.RegisterMessageType<PeformDirectionalForceNetworkRequest>(); NetworkingAPI.RegisterMessageType<ItemDropNetworked>(); NetworkingAPI.RegisterMessageType<SpendHealthNetworkRequest>(); NetworkingAPI.RegisterMessageType<DisableSlideStateMachine>(); NetworkingAPI.RegisterMessageType<SetTheWorldFreezeOnBodyRequest>(); NetworkingAPI.RegisterMessageType<TakeMeleeDamageForceRequest>(); NetworkingAPI.RegisterMessageType<ForceReversalState>(); NetworkingAPI.RegisterMessageType<SetShunpoStateMachine>(); NetworkingAPI.RegisterMessageType<SetMugetsuStateMachine>(); NetworkingAPI.RegisterMessageType<SetGetsugaStateMachine>(); NetworkingAPI.RegisterMessageType<ForceGiveQuirkState>(); NetworkingAPI.RegisterMessageType<OrbDamageRequest>(); NetworkingAPI.RegisterMessageType<LightAndDarknessPullRequest>(); NetworkingAPI.RegisterMessageType<BlastingZoneDebuffDamageRequest>(); NetworkingAPI.RegisterMessageType<ExpungeNetworkRequest>(); NetworkingAPI.RegisterMessageType<SetEmoteState>(); NetworkingAPI.RegisterMessageType<ApexResetSlotRequest>(); NetworkingAPI.RegisterMessageType<ApexOverdriveNotifyMessage>(); NetworkingAPI.RegisterMessageType<ApexSyncAdaptationMessage>(); NetworkingAPI.RegisterMessageType<EquipLoadoutRequest>(); NetworkingAPI.RegisterMessageType<EquipLoadoutResult>(); NetworkingAPI.RegisterMessageType<GivePassiveRequest>(); NetworkingAPI.RegisterMessageType<ForceQuirkOverdriveState>(); NetworkingAPI.RegisterMessageType<SetAFOStealStateMachine>(); NetworkingAPI.RegisterMessageType<StealQuirkRequest>(); NetworkingAPI.RegisterMessageType<StealQuirkResult>(); NetworkingAPI.RegisterMessageType<AFOStealVfxRequest>(); NetworkingAPI.RegisterMessageType<GivePassiveQuirkRequest>(); NetworkingAPI.RegisterMessageType<GivePassiveQuirkResult>(); NetworkingAPI.RegisterMessageType<QuirkInventoryAddRequest>(); new ContentPacks().Initialize(); ContentManager.onContentPacksAssigned += LateSetup; Hook(); } private void LateSetup(ReadOnlyArray<ReadOnlyContentPack> obj) { try { QuirkIconBank.BuildAll(); Debug.Log((object)"[Shiggy] BindQuirkRegistry completed after content packs."); } catch (Exception arg) { Debug.LogError((object)$"[Shiggy] BindQuirkRegistry post-CPS failed: {arg}"); } } private void Start() { } private void Hook() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Expected O, but got Unknown //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Expected O, but got Unknown //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Expected O, but got Unknown //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Expected O, but got Unknown //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Expected O, but got Unknown //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Expected O, but got Unknown //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Expected O, but got Unknown //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Expected O, but got Unknown CharacterBody.OnDeathStart += new hook_OnDeathStart(CharacterBody_OnDeathStart); CharacterModel.Awake += new hook_Awake(CharacterModel_Awake); CharacterModel.Start += new hook_Start(CharacterModel_Start); CharacterMaster.Start += new hook_Start(CharacterMaster_Start); CharacterBody.RecalculateStats += new hook_RecalculateStats(CharacterBody_RecalculateStats); HealthComponent.TakeDamage += new hook_TakeDamage(HealthComponent_TakeDamage); GlobalEventManager.onServerDamageDealt += GlobalEventManager_OnDamageDealt; CharacterModel.UpdateOverlays += new hook_UpdateOverlays(CharacterModel_UpdateOverlays); GlobalEventManager.OnHitEnemy += new hook_OnHitEnemy(GlobalEventManager_OnHitEnemy); RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients); GlobalEventManager.OnCharacterDeath += new hook_OnCharacterDeath(GlobalEventManager_OnCharacterDeath); LightningOrb.OnArrival += new hook_OnArrival(LightningOrb_OnArrival); OverlapAttack.Fire += new hook_Fire(OverlapAttack_Fire); BulletAttack.Fire += new hook_Fire(BulletAttack_Fire); BlastAttack.Fire += new hook_Fire(BlastAttack_Fire); CharacterBody.onBodyStartGlobal += CharacterBody_onBodyStartGlobal; if (Chainloader.PluginInfos.ContainsKey("com.weliveinasociety.CustomEmotesAPI")) { SurvivorCatalog.Init += new hook_Init(SurvivorCatalog_Init); } } private void CharacterMaster_Start(orig_Start orig, CharacterMaster self) { if (Object.op_Implicit((Object)(object)self) && Object.op_Implicit((Object)(object)self.bodyPrefab) && !((Object)(object)self.bodyPrefab != (Object)(object)BodyCatalog.FindBodyPrefab("ShiggyBody")) && !Object.op_Implicit((Object)(object)((Component)self).GetComponent<ShiggyMasterController>())) { ((Component)self).gameObject.AddComponent<ShiggyMasterController>(); } } private void CharacterBody_onBodyStartGlobal(CharacterBody obj) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) if (NetworkServer.active && Object.op_Implicit((Object)(object)obj) && Object.op_Implicit((Object)(object)obj.master) && obj.bodyIndex == BodyCatalog.FindBodyIndex("ShiggyBody")) { QuirkPassiveSync.SyncFromEquippedSkillsServer(obj); } } private static bool IsVanillaAffix(BuffDef buff) { return (Object)(object)buff == (Object)(object)Buffs.AffixRed || (Object)(object)buff == (Object)(object)Buffs.AffixWhite || (Object)(object)buff == (Object)(object)Buffs.AffixPoison || (Object)(object)buff == (Object)(object)Buffs.AffixHaunted || (Object)(object)buff == (Object)(object)Buffs.AffixBlue || (Object)(object)buff == (Object)(object)Buffs.AffixLunar || (Object)(object)buff == (Object)(object)Buffs.EliteEarth || (Object)(object)buff == (Object)(object)Buffs.EliteVoid || (Object)(object)buff == (Object)(object)Buffs.EliteAurelionite || (Object)(object)buff == (Object)(object)Buffs.EliteBead; } private Result BlastAttack_Fire(orig_Fire orig, BlastAttack self) { //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)self.attacker)) { GameObject attacker = self.attacker; if ((Object)(object)attacker.GetComponent<CharacterBody>() != (Object)null) { if (attacker.gameObject.GetComponent<CharacterBody>().HasBuff(Buffs.acridBuff)) { ref DamageType damageType = ref self.damageType.damageType; damageType = (DamageType)((uint)damageType | 0x1000u); } if (attacker.gameObject.GetComponent<CharacterBody>().HasBuff(Buffs.impbossBuff)) { ref DamageType damageType2 = ref self.damageType.damageType; damageType2 = (DamageType)((uint)damageType2 | 0x400u); } if (attacker.gameObject.GetComponent<CharacterBody>().HasBuff(Buffs.elementalFusionFireBuff)) { ref DamageType damageType3 = ref self.damageType.damageType; damageType3 = (DamageType)((uint)damageType3 | 0x80u); } if (attacker.gameObject.GetComponent<CharacterBody>().HasBuff(Buffs.elementalFusionFreezeBuff)) { ref DamageType damageType4 = ref self.damageType.damageType; damageType4 = (DamageType)((uint)damageType4 | 0x100u); } if (attacker.gameObject.GetComponent<CharacterBody>().HasBuff(Buffs.elementalFusionShockBuff)) { ref DamageType damageType5 = ref self.damageType.damageType; damageType5 = (DamageType)((uint)damageType5 | 0x1000000u); } if (attacker.gameObject.GetComponent<CharacterBody>().HasBuff(Buffs.decayAwakenedBuff)) { DamageAPI.AddModdedDamageType(self, Damage.shiggyDecay); } } } return orig.Invoke(self); } private void BulletAttack_Fire(orig_Fire orig, BulletAttack self) { //IL_014c: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); if (Object.op_Implicit((Object)(object)self.owner) && (Object)(object)self.owner.GetComponent<CharacterBody>() != (Object)null) { GameObject owner = self.owner; if (owner.gameObject.GetComponent<CharacterBody>().HasBuff(Buffs.acridBuff)) { ref DamageType damageType = ref self.damageType.damageType; damageType = (DamageType)((uint)damageType | 0x1000u); } if (owner.gameObject.GetComponent<CharacterBody>().HasBuff(Buffs.impbossBuff)) { ref DamageType damageType2 = ref self.damageType.damageType; damageType2 = (DamageType)((uint)damageType2 | 0x400u); } if (owner.gameObject.GetComponent<CharacterBody>().HasBuff(Buffs.elementalFusionFireBuff)) { ref DamageType damageType3 = ref self.damageType.damageType; damageType3 = (DamageType)((uint)damageType3 | 0x80u); } if (owner.gameObject.GetComponent<CharacterBody>().HasBuff(Buffs.elementalFusionFreezeBuff)) { ref DamageType damageType4 = ref self.damageType.damageType; damageType4 = (DamageType)((uint)damageType4 | 0x100u); } if (owner.gameObject.GetComponent<CharacterBody>().HasBuff(Buffs.elementalFusionShockBuff)) { ref DamageType damageType5 = ref self.damageType.damageType; damageType5 = (DamageType)((uint)damageType5 | 0x1000000u); } if (owner.gameObject.GetComponent<CharacterBody>().HasBuff(Buffs.decayAwakenedBuff)) { DamageAPI.AddModdedDamageType(self, Damage.shiggyDecay); } } } private bool OverlapAttack_Fire(orig_Fire orig, OverlapAttack self, List<HurtBox> hitResults) { //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)self.attacker) && (Object)(object)self.attacker.GetComponent<CharacterBody>() != (Object)null) { GameObject attacker = self.attacker; if (attacker.gameObject.GetComponent<CharacterBody>().baseNameToken == "TEAL_SHIGGY_BODY_NAME") { DamageAPI.AddModdedDamageType(self, Damage.shiggyDecay); } if (attacker.gameObject.GetComponent<CharacterBody>().HasBuff(Buffs.acridBuff)) { ref DamageType damageType = ref self.damageType.damageType; damageType = (DamageType)((uint)damageType | 0x1000u); } if (attacker.gameObject.GetComponent<CharacterBody>().HasBuff(Buffs.impbossBuff)) { ref DamageType damageType2 = ref self.damageType.damageType; damageType2 = (DamageType)((uint)damageType2 | 0x400u); } if (attacker.gameObject.GetComponent<CharacterBody>().HasBuff(Buffs.elementalFusionFireBuff)) { ref DamageType damageType3 = ref self.damageType.damageType; damageType3 = (DamageType)((uint)damageType3 | 0x80u); } if (attacker.gameObject.GetComponent<CharacterBody>().HasBuff(Buffs.elementalFusionFreezeBuff)) { ref DamageType damageType4 = ref self.damageType.damageType; damageType4 = (DamageType)((uint)damageType4 | 0x100u); } if (attacker.gameObject.GetComponent<CharacterBody>().HasBuff(Buffs.elementalFusionShockBuff)) { ref DamageType damageType5 = ref self.damageType.damageType; damageType5 = (DamageType)((uint)damageType5 | 0x1000000u); } if (attacker.gameObject.GetComponent<CharacterBody>().HasBuff(Buffs.decayAwakenedBuff)) { DamageAPI.AddModdedDamageType(self, Damage.shiggyDecay); } } return orig.Invoke(self, hitResults); } private void LightningOrb_OnArrival(orig_OnArrival orig, LightningOrb self) { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Invalid comparison between Unknown and I4 //IL_0051: 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_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Expected O, but got Unknown orig.Invoke(self); if (self.attacker.gameObject.GetComponent<CharacterBody>().baseNameToken == "TEAL_SHIGGY_BODY_NAME" && (int)self.lightningType == 4) { NetMessageExtensions.Send((INetMessage)(object)new PerformForceNetworkRequest(self.attacker.gameObject.GetComponent<CharacterBody>().masterObjectId, ((Component)((Orb)self).target).transform.position, Vector3.up, 15f, 0f, self.damageValue, 360f, playEffect: false), (NetworkDestination)1); EffectManager.SpawnEffect(ShiggyAsset.voidMegaCrabExplosionEffect, new EffectData { origin = ((Component)((Orb)self).target).transform.position, scale = 15f }, true); } } private void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args) { if (Object.op_Implicit((Object)(object)((sender != null) ? sender.healthComponent : null)) && Object.op_Implicit((Object)(object)sender)) { if (sender.HasBuff(Buffs.roboballminiattackspeedBuff)) { args.baseAttackSpeedAdd += 0.02f * (float)sender.GetBuffCount(Buffs.roboballminiattackspeedBuff); } if (sender.HasBuff(Buffs.claydunestriderBuff)) { args.baseAttackSpeedAdd += 0.5f; } if (sender.HasBuff(Buffs.multBuff)) { args.armorAdd += 100f; args.attackSpeedMultAdd += 1f; args.moveSpeedReductionMultAdd += 0.6f; } if (sender.HasBuff(Buffs.stonetitanBuff)) { args.armorAdd += Config.StoneSkinArmorGain.Value; } if (sender.HasBuff(Buffs.voidbarnaclemortarattackspeedBuff)) { args.baseAttackSpeedAdd += 0.05f * (float)sender.GetBuffCount(Buffs.voidbarnaclemortarattackspeedBuff); } if (sender.HasBuff(Buffs.hermitcrabmortararmorBuff)) { args.armorAdd += 1f * (float)sender.GetBuffCount(Buffs.hermitcrabmortararmorBuff); } if (sender.HasBuff(Buffs.verminsprintBuff)) { args.moveSpeedMultAdd += 0.5f; sender.sprintingSpeedMultiplier = 2f; } if (sender.HasBuff(Buffs.airwalkBuff)) { sender.acceleration *= 2f; } if (sender.HasBuff(Buffs.beetleBuff)) { args.baseDamageAdd += Config.StrengthBoostBaseDamage.Value; } if (sender.HasBuff(Buffs.lesserwispBuff)) { args.baseAttackSpeedAdd += Config.HasteAttackSpeedAdditive.Value; } if (sender.HasBuff(Buffs.lunarexploderBuff)) { args.baseShieldAdd += sender.maxHealth * 0.25f; } if (sender.HasBuff(Buffs.omniboostBuff)) { args.damageMultAdd += 0.2f; args.attackSpeedMultAdd += 0.2f; } if (sender.HasBuff(Buffs.omniboostBuffStacks)) { int buffCount = sender.GetBuffCount(Buffs.omniboostBuffStacks); args.damageMultAdd += 0.04f * (float)buffCount; args.attackSpeedMultAdd += 0.04f * (float)buffCount; } if (sender.HasBuff(Buffs.ingrainBuff)) { args.baseRegenAdd += StaticValues.ingrainBuffHealthRegen * sender.healthComponent.fullCombinedHealth; } if (sender.HasBuff(Buffs.OFABuff)) { args.armorAdd += sender.armor * Config.OFAMultiplierAdditive.Value; args.attackSpeedMultAdd += Config.OFAMultiplierAdditive.Value; args.moveSpeedMultAdd += Config.OFAMultiplierAdditive.Value; } if (sender.HasBuff(Buffs.doubleTimeBuffStacks)) { int buffCount2 = sender.GetBuffCount(Buffs.doubleTimeBuffStacks); args.damageMultAdd += Config.DoubleTimeStatMultiplier.Value * (float)buffCount2; args.attackSpeedMultAdd += Config.DoubleTimeStatMultiplier.Value * (float)buffCount2; args.moveSpeedMultAdd += Config.DoubleTimeStatMultiplier.Value * (float)buffCount2; } if (sender.HasBuff(Buffs.doubleTimeDebuff)) { args.attackSpeedMultAdd -= Config.DoubleTimeSlowMultiplier.Value; args.moveSpeedMultAdd -= Config.DoubleTimeSlowMultiplier.Value; } if (sender.HasBuff(Buffs.falsesonStolenInheritanceBuff)) { args.baseDamageAdd += Config.StolenInheritanceHPCoefficient.Value * sender.healthComponent.fullHealth; } if (sender.HasBuff(Buffs.alloyhunterCritBoostBuff)) { args.critDamageTotalMult *= 2f; } } } private void GlobalEventManager_OnHitEnemy(orig_OnHitEnemy orig, GlobalEventManager self, DamageInfo damageInfo, GameObject victim) { //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: 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_0081: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: 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_0192: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_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_01b0: Invalid comparison between Unknown and I4 //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: 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_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: 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_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_04b6: Unknown result type (might be due to invalid IL or missing references) //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_0258: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_026d: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) //IL_0280: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Unknown result type (might be due to invalid IL or missing references) //IL_028e: 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_029a: Unknown result type (might be due to invalid IL or missing references) //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_02aa: Unknown result type (might be due to invalid IL or missing references) //IL_02b0: Unknown result type (might be due to invalid IL or missing references) //IL_02b8: Expected O, but got Unknown //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_04e7: Unknown result type (might be due to invalid IL or missing references) //IL_04ec: Unknown result type (might be due to invalid IL or missing references) //IL_0503: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_050f: Unknown result type (might be due to invalid IL or missing references) //IL_0510: Unknown result type (might be due to invalid IL or missing references) //IL_0515: Unknown result type (might be due to invalid IL or missing references) //IL_051a: Unknown result type (might be due to invalid IL or missing references) //IL_052a: Unknown result type (might be due to invalid IL or missing references) //IL_052c: Unknown result type (might be due to invalid IL or missing references) //IL_0531: Unknown result type (might be due to invalid IL or missing references) //IL_0538: Unknown result type (might be due to invalid IL or missing references) //IL_0544: Unknown result type (might be due to invalid IL or missing references) //IL_0550: Unknown result type (might be due to invalid IL or missing references) //IL_0552: Unknown result type (might be due to invalid IL or missing references) //IL_0559: Unknown result type (might be due to invalid IL or missing references) //IL_055e: Unknown result type (might be due to invalid IL or missing references) //IL_0563: Unknown result type (might be due to invalid IL or missing references) //IL_0569: Unknown result type (might be due to invalid IL or missing references) //IL_0571: Expected O, but got Unknown //IL_0306: Unknown result type (might be due to invalid IL or missing references) //IL_031a: Unknown result type (might be due to invalid IL or missing references) //IL_031f: Unknown result type (might be due to invalid IL or missing references) //IL_032b: 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_0337: 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_0343: Unknown result type (might be due to invalid IL or missing references) //IL_0345: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Unknown result type (might be due to invalid IL or missing references) //IL_0356: Unknown result type (might be due to invalid IL or missing references) //IL_035c: Unknown result type (might be due to invalid IL or missing references) //IL_0367: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Unknown result type (might be due to invalid IL or missing references) //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_0373: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Unknown result type (might be due to invalid IL or missing references) //IL_0383: 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_038f: Unknown result type (might be due to invalid IL or missing references) //IL_0396: Unknown result type (might be due to invalid IL or missing references) //IL_039b: 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_03ab: Unknown result type (might be due to invalid IL or missing references) //IL_03b6: Unknown result type (might be due to invalid IL or missing references) //IL_03b8: Unknown result type (might be due to invalid IL or missing references) //IL_03bd: Unknown result type (might be due to invalid IL or missing references) //IL_03c2: Unknown result type (might be due to invalid IL or missing references) //IL_03c4: Unknown result type (might be due to invalid IL or missing references) //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_03d6: Unknown result type (might be due to invalid IL or missing references) //IL_05c1: Unknown result type (might be due to invalid IL or missing references) //IL_0603: Unknown result type (might be due to invalid IL or missing references) //IL_060e: Unknown result type (might be due to invalid IL or missing references) //IL_0641: Unknown result type (might be due to invalid IL or missing references) //IL_0646: Unknown result type (might be due to invalid IL or missing references) //IL_0648: Unknown result type (might be due to invalid IL or missing references) //IL_064c: Unknown result type (might be due to invalid IL or missing references) //IL_0651: Unknown result type (might be due to invalid IL or missing references) //IL_0656: Unknown result type (might be due to invalid IL or missing references) //IL_0664: Unknown result type (might be due to invalid IL or missing references) //IL_0675: Unknown result type (might be due to invalid IL or missing references) //IL_067a: Unknown result type (might be due to invalid IL or missing references) //IL_067f: Unknown result type (might be due to invalid IL or missing references) //IL_0684: Unknown result type (might be due to invalid IL or missing references) //IL_0689: Unknown result type (might be due to invalid IL or missing references) //IL_068b: Unknown result type (might be due to invalid IL or missing references) //IL_06a0: Unknown result type (might be due to invalid IL or missing references) //IL_06a7: Unknown result type (might be due to invalid IL or missing references) //IL_06df: Unknown result type (might be due to invalid IL or missing references) //IL_06e1: Unknown result type (might be due to invalid IL or missing references) //IL_06e8: Unknown result type (might be due to invalid IL or missing references) //IL_06ea: Unknown result type (might be due to invalid IL or missing references) //IL_06f1: Unknown result type (might be due to invalid IL or missing references) //IL_06f6: Unknown result type (might be due to invalid IL or missing references) //IL_06fb: Unknown result type (might be due to invalid IL or missing references) //IL_0700: Unknown result type (might be due to invalid IL or missing references) //IL_0704: Unknown result type (might be due to invalid IL or missing references) //IL_0719: Unknown result type (might be due to invalid IL or missing references) //IL_071e: Unknown result type (might be due to invalid IL or missing references) //IL_0725: Unknown result type (might be due to invalid IL or missing references) //IL_0727: Unknown result type (might be due to invalid IL or missing references) //IL_072c: Unknown result type (might be due to invalid IL or missing references) //IL_077c: Unknown result type (might be due to invalid IL or missing references) //IL_0783: Unknown result type (might be due to invalid IL or missing references) //IL_0797: Unknown result type (might be due to invalid IL or missing references) //IL_045f: Unknown result type (might be due to invalid IL or missing references) //IL_0464: Unknown result type (might be due to invalid IL or missing references) //IL_046b: Unknown result type (might be due to invalid IL or missing references) //IL_0476: Unknown result type (might be due to invalid IL or missing references) //IL_0487: Expected O, but got Unknown //IL_0837: Unknown result type (might be due to invalid IL or missing references) //IL_083c: Unknown result type (might be due to invalid IL or missing references) //IL_0848: Unknown result type (might be due to invalid IL or missing references) //IL_084f: Unknown result type (might be due to invalid IL or missing references) //IL_0854: Unknown result type (might be due to invalid IL or missing references) //IL_0859: Unknown result type (might be due to invalid IL or missing references) //IL_0860: Unknown result type (might be due to invalid IL or missing references) //IL_0862: Unknown result type (might be due to invalid IL or missing references) //IL_0867: Unknown result type (might be due to invalid IL or missing references) //IL_0879: Unknown result type (might be due to invalid IL or missing references) //IL_087b: Unknown result type (might be due to invalid IL or missing references) //IL_0882: Unknown result type (might be due to invalid IL or missing references) //IL_0887: Unknown result type (might be due to invalid IL or missing references) //IL_088c: Unknown result type (might be due to invalid IL or missing references) //IL_088e: 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_089e: Unknown result type (might be due to invalid IL or missing references) //IL_08a0: Unknown result type (might be due to invalid IL or missing references) //IL_08a5: Unknown result type (might be due to invalid IL or missing references) //IL_08aa: Unknown result type (might be due to invalid IL or missing references) //IL_08b1: Unknown result type (might be due to invalid IL or missing references) //IL_08b6: Unknown result type (might be due to invalid IL or missing references) //IL_08bb: Unknown result type (might be due to invalid IL or missing references) //IL_08c6: Unknown result type (might be due to invalid IL or missing references) //IL_08d1: Unknown result type (might be due to invalid IL or missing references) //IL_08d3: Unknown result type (might be due to invalid IL or missing references) //IL_08d8: Unknown result type (might be due to invalid IL or missing references) //IL_07fc: Unknown result type (might be due to invalid IL or missing references) //IL_0801: Unknown result type (might be due to invalid IL or missing references) //IL_0808: Unknown result type (might be due to invalid IL or missing references) //IL_0813: Unknown result type (might be due to invalid IL or missing references) //IL_081e: Unknown result type (might be due to invalid IL or missing references) //IL_0820: Unknown result type (might be due to invalid IL or missing references) //IL_0825: Unknown result type (might be due to invalid IL or missing references) //IL_082a: Unknown result type (might be due to invalid IL or missing references) //IL_0835: Expected O, but got Unknown //IL_07b4: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Unknown result type (might be due to invalid IL or missing references) //IL_03ed: Unknown result type (might be due to invalid IL or missing references) //IL_03f0: Unknown result type (might be due to invalid IL or missing references) //IL_040d: Unknown result type (might be due to invalid IL or missing references) //IL_0423: Unknown result type (might be due to invalid IL or missing references) //IL_095c: Unknown result type (might be due to invalid IL or missing references) //IL_093b: Unknown result type (might be due to invalid IL or missing references) //IL_0985: Unknown result type (might be due to invalid IL or missing references) //IL_099c: Unknown result type (might be due to invalid IL or missing references) //IL_0da8: Unknown result type (might be due to invalid IL or missing references) //IL_0dad: Unknown result type (might be due to invalid IL or missing references) //IL_0daf: Unknown result type (might be due to invalid IL or missing references) //IL_0db4: Unknown result type (might be due to invalid IL or missing references) //IL_0db9: Unknown result type (might be due to invalid IL or missing references) //IL_0dcb: Unknown result type (might be due to invalid IL or missing references) //IL_0dd2: Unknown result type (might be due to invalid IL or missing references) //IL_0dd7: Unknown result type (might be due to invalid IL or missing references) //IL_0ddc: Unknown result type (might be due to invalid IL or missing references) //IL_0de8: Unknown result type (might be due to invalid IL or missing references) //IL_0dea: Unknown result type (might be due to invalid IL or missing references) //IL_0def: Unknown result type (might be due to invalid IL or missing references) //IL_0dfa: Unknown result type (might be due to invalid IL or missing references) //IL_0dfc: Unknown result type (might be due to invalid IL or missing references) //IL_0e01: Unknown result type (might be due to invalid IL or missing references) //IL_0e0e: Expected O, but got Unknown //IL_0c83: Unknown result type (might be due to invalid IL or missing references) //IL_0c62: Unknown result type (might be due to invalid IL or missing references) //IL_09f9: Unknown result type (might be due to invalid IL or missing references) //IL_0a10: 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_09c9: Unknown result type (might be due to invalid IL or missing references) //IL_09da: Expected O, but got Unknown //IL_0e72: Unknown result type (might be due to invalid IL or missing references) //IL_0ce1: Unknown result type (might be due to invalid IL or missing references) //IL_0ce6: Unknown result type (might be due to invalid IL or missing references) //IL_0cf2: Unknown result type (might be due to invalid IL or missing references) //IL_0cf9: Unknown result type (might be due to invalid IL or missing references) //IL_0cfe: Unknown result type (might be due to invalid IL or missing references) //IL_0d03: Unknown result type (might be due to invalid IL or missing references) //IL_0d0a: Unknown result type (might be due to invalid IL or missing references) //IL_0d0c: Unknown result type (might be due to invalid IL or missing references) //IL_0d11: Unknown result type (might be due to invalid IL or missing references) //IL_0d23: Unknown result type (might be due to invalid IL or missing references) //IL_0d26: Unknown result type (might be due to invalid IL or missing references) //IL_0d2d: Unknown result type (might be due to invalid IL or missing references) //IL_0d32: Unknown result type (might be due to invalid IL or missing references) //IL_0d37: Unknown result type (might be due to invalid IL or missing references) //IL_0d39: Unknown result type (might be due to invalid IL or missing references) //IL_0d3e: Unknown result type (might be due to invalid IL or missing references) //IL_0d49: Unknown result type (might be due to invalid IL or missing references) //IL_0d50: Unknown result type (might be due to invalid IL or missing references) //IL_0d55: Unknown result type (might be due to invalid IL or missing references) //IL_0d5a: Unknown result type (might be due to invalid IL or missing references) //IL_0d72: Unknown result type (might be due to invalid IL or missing references) //IL_0d7d: Unknown result type (might be due to invalid IL or missing references) //IL_0d7f: Unknown result type (might be due to invalid IL or missing references) //IL_0d84: Unknown result type (might be due to invalid IL or missing references) //IL_0caa: Unknown result type (might be due to invalid IL or missing references) //IL_0caf: Unknown result type (might be due to invalid IL or missing references) //IL_0cb6: Unknown result type (might be due to invalid IL or missing references) //IL_0cc1: Unknown result type (might be due to invalid IL or missing references) //IL_0cdf: Expected O, but got Unknown //IL_0a6a: Unknown result type (might be due to invalid IL or missing references) //IL_0a81: Unknown result type (might be due to invalid IL or missing references) //IL_0a36: Unknown result type (might be due to invalid IL or missing references) //IL_0a3b: Unknown result type (might be due to invalid IL or missing references) //IL_0a3d: Unknown result type (might be due to invalid IL or missing references) //IL_0a4e: Expected O, but got Unknown //IL_0ead: Unknown result type (might be due to invalid IL or missing references) //IL_0b39: Unknown result type (might be due to invalid IL or missing references) //IL_0b63: Unknown result type (might be due to invalid IL or missing references) //IL_0aa7: Unknown result type (might be due to invalid IL or missing references) //IL_0aac: Unknown result type (might be due to invalid IL or missing references) //IL_0aae: Unknown result type (might be due to invalid IL or missing references) //IL_0abf: Expected O, but got Unknown //IL_0ee3: Unknown result type (might be due to invalid IL or missing references) //IL_0eef: Unknown result type (might be due to invalid IL or missing references) //IL_0bbd: Unknown result type (might be due to invalid IL or missing references) //IL_0be1: Unknown result type (might be due to invalid IL or missing references) //IL_0bfa: Unknown result type (might be due to invalid IL or missing references) //IL_0bff: Unknown result type (might be due to invalid IL or missing references) //IL_0c06: Unknown result type (might be due to invalid IL or missing references) //IL_0c11: Unknown result type (might be due to invalid IL or missing references) //IL_0c22: Expected O, but got Unknown //IL_0b9f: Unknown result type (might be due to invalid IL or missing references) //IL_0f1e: Unknown result type (might be due to invalid IL or missing references) //IL_0f62: Unknown result type (might be due to invalid IL or missing references) //IL_0f68: Unknown result type (might be due to invalid IL or missing references) //IL_0f6d: Unknown result type (might be due to invalid IL or missing references) //IL_0fc1: Unknown result type (might be due to invalid IL or missing references) CharacterBody val = (Object.op_Implicit((Object)(object)damageInfo.attacker) ? damageInfo.attacker.GetComponent<CharacterBody>() : null); CharacterBody val2 = (Object.op_Implicit((Object)(object)victim) ? victim.GetComponent<CharacterBody>() : null); if ((Object)(object)val != (Object)null) { if (val.HasBuff(Buffs.acridBuff)) { damageInfo.damageType |= DamageTypeCombo.op_Implicit((DamageType)4096); } if (val.HasBuff(Buffs.impbossBuff)) { damageInfo.damageType |= DamageTypeCombo.op_Implicit((DamageType)1024); } if (val.HasBuff(Buffs.elementalFusionFireBuff)) { damageInfo.damageType |= DamageTypeCombo.op_Implicit((DamageType)128); } if (val.HasBuff(Buffs.elementalFusionFreezeBuff)) { damageInfo.damageType |= DamageTypeCombo.op_Implicit((DamageType)256); } if (val.HasBuff(Buffs.elementalFusionShockBuff)) { damageInfo.damageType |= DamageTypeCombo.op_Implicit((DamageType)16777216); } if (val.HasBuff(Buffs.decayAwakenedBuff)) { DamageAPI.AddModdedDamageType(damageInfo, Damage.shiggyDecay); } if (val.HasBuff(Buffs.claydunestriderBuff)) { damageInfo.damageType |= DamageTypeCombo.op_Implicit((DamageType)512); } } orig.Invoke(self, damageInfo, victim); if ((Object)(object)val == (Object)null || (Object)(object)val2 == (Object)null) { return; } bool flag = (int)DamageTypeCombo.op_Implicit(damageInfo.damageType & DamageTypeCombo.op_Implicit((DamageType)67108864)) != 67108864; bool flag2 = damageInfo.procCoefficient > 0f; bool flag3 = damageInfo.damage > 0f; if (flag3 && flag && flag2 && val.HasBuff(Buffs.solusamalgamatorEquipmentBoostBuff)) { val.inventory.DeductActiveEquipmentCooldown(0.5f); } if (flag3 && flag && flag2 && val2.HasBuff(Buffs.solusPrimedDebuff)) { int buffCount = val2.GetBuffCount(Buffs.solusPrimedDebuff); float damage = damageInfo.damage * 0.1f * (float)buffCount; DamageInfo val3 = new DamageInfo { damage = damage, position = val2.corePosition, force = Vector3.zero, crit = false, attacker = ((Component)val).gameObject, inflictor = ((Component)val).gameObject, damageType = new DamageTypeCombo(DamageTypeCombo.op_Implicit((DamageType)0), (DamageTypeExtended)0, (DamageSource)2), procCoefficient = 0f, procChainMask = default(ProcChainMask) }; val2.healthComponent.TakeDamage(val3); if (!val.HasBuff(Buffs.solusSuperPrimedBuff)) { NetworkingHelpers.ApplyBuff(val2, Buffs.solusPrimedDebuff.buffIndex, buffCount - 1, -1f); } else { NetworkingHelpers.ApplyBuff(val2, Buffs.solusPrimedDebuff.buffIndex, buffCount + 1, -1f); Result val4 = new BlastAttack { attacker = ((Component)val).gameObject, teamIndex = TeamComponent.GetObjectTeam(((Component)val).gameObject), crit = false, falloffModel = (FalloffModel)0, baseDamage = damageInfo.damage, damageType = new DamageTypeCombo(DamageTypeCombo.op_Implicit((DamageType)128), (DamageTypeExtended)128, (DamageSource)2), damageColorIndex = (DamageColorIndex)5, baseForce = 0f, procChainMask = damageInfo.procChainMask, position = val2.transform.position, radius = 8f, procCoefficient = 0f, attackerFiltering = (AttackerFiltering)2 }.Fire(); if (val4.hitCount > 0) { HitPoint[] hitPoints = val4.hitPoints; foreach (HitPoint val5 in hitPoints) { if (Object.op_Implicit((Object)(object)val5.hurtBox.healthComponent.body)) { NetworkingHelpers.ApplyBuff(val5.hurtBox.healthComponent.body, Buffs.solusPrimedDebuff.buffIndex, buffCount + 1, -1f); } } } GameObject solusFactorBlastEffectPrefab = ShiggyAsset.solusFactorBlastEffectPrefab; if (Object.op_Implicit((Object)(object)solusFactorBlastEffectPrefab)) { EffectManager.SpawnEffect(solusFactorBlastEffectPrefab, new EffectData { origin = val2.transform.position, scale = 8f }, true); } } } if (val.HasBuff(Buffs.finalReleaseBuff) && flag3 && flag) { int buffCount2 = val.GetBuffCount(Buffs.finalReleaseBuff); NetworkingHelpers.ApplyBuff(val, Buffs.finalReleaseBuff.buffIndex, buffCount2 + 1, -1f); } if (val.HasBuff(Buffs.commandoBuff) && flag3 && flag && flag2) { DamageInfo val6 = new DamageInfo { damage = damageInfo.damage * Config.DoubleTapDamage.Value, position = val2.corePosition, force = Vector3.zero, procCoefficient = Config.DoubleTapProc.Value, damageColorIndex = (DamageColorIndex)0, crit = false, attacker = ((Component)val).gameObject, inflictor = ((Component)val2).gameObject, damageType = new DamageTypeCombo(damageInfo.damageType, (DamageTypeExtended)0, (DamageSource)2), procChainMask = default(ProcChainMask) }; val2.healthComponent.TakeDamage(val6); } if (val.HasBuff(Buffs.chefOilBurstBuff) && flag3 && flag && flag2) { int buffCount3 = val.GetBuffCount(Buffs.chefOilBurstStacksBuff); if (buffCount3 >= 6) { NetworkingHelpers.ApplyBuff(val, Buffs.chefOilBurstStacksBuff.buffIndex, 0, -1f); EffectManager.SimpleMuzzleFlash(Glaze.effectPrefab, ((Component)val).gameObject, "RHand", false); EffectManager.SimpleMuzzleFlash(ShiggyAsset.chefGlazeEffectMuzzlePrefab, ((Component)val).gameObject, "LHand", false); Ray val7 = default(Ray); ((Ray)(ref val7))..ctor(val.aimOrigin, val.inputBank.aimDirection); float num = Random.Range(0f, val.spreadBloomAngle + Glaze.xDeviationSpread); float num2 = Random.Range(0f, 360f); Vector3 up = Vector3.up; Vector3 val8 = Vector3.Cross(up, ((Ray)(ref val7)).direction); Vector3 val9 = Quaternion.Euler(0f, 0f, num2) * (Quaternion.Euler(num, 0f, 0f) * Vector3.forward); float y = val9.y; val9.y = 0f; float num3 = Mathf.Atan2(val9.z, val9.x) * 57.29578f - 90f; float num4 = Mathf.Atan2(y, ((Vector3)(ref val9)).magnitude) * 57.29578f + Glaze.arcAngle; Vector3 val10 = Quaternion.AngleAxis(num3, up) * (Quaternion.AngleAxis(num4, val8) * ((Ray)(ref val7)).direction); FireProjectileInfo val11 = default(FireProjectileInfo); val11.projectilePrefab = ShiggyAsset.chefGlazeProjectilePrefab; val11.position = val.aimOrigin; val11.rotation = Util.QuaternionSafeLookRotation(val10); val11.owner = ((Component)val).gameObject; val11.damage = val.damage * 2.5f; val11.force = 0f; val11.crit = Util.CheckRoll(val.crit, val.master); val11.damageTypeOverride = new DamageTypeCombo(DamageTypeCombo.op_Implicit((DamageType)16384), (DamageTypeExtended)0, (DamageSource)8); ProjectileManager.instance.FireProjectile(val11); } else if (buffCount3 < 6) { NetworkingHelpers.ApplyBuff(val, Buffs.chefOilBurstStacksBuff.buffIndex, buffCount3 + 1, -1f); } } if (val.HasBuff(Buffs.greaterwispBuff) && flag3 && flag && flag2) { if (Object.op_Implicit((Object)(object)ShiggyAsset.chargegreaterwispBall)) { EffectManager.SpawnEffect(ShiggyAsset.chargegreaterwispBall, new EffectData { origin = val2.transform.position, scale = 6f, rotation = Util.QuaternionSafeLookRotation(damageInfo.force) }, true); } new BlastAttack { attacker = ((Component)val).gameObject, teamIndex = TeamComponent.GetObjectTeam(((Component)val).gameObject), crit = false, falloffModel = (FalloffModel)0, baseDamage = damageInfo.damage * 0.5f, damageType = new DamageTypeCombo(damageInfo.damageType, (DamageTypeExtended)0, (DamageSource)2), damageColorIndex = (DamageColorIndex)0, baseForce = 0f, procChainMask = damageInfo.procChainMask, position = val2.transform.position, radius = 6f, procCoefficient = 0f, attackerFiltering = (AttackerFiltering)2 }.Fire(); } if ((val.HasBuff(Buffs.elementalFusionFireBuff) || val.HasBuff(Buffs.elementalFusionFreezeBuff) || val.HasBuff(Buffs.elementalFusionShockBuff)) && flag3 && flag && flag2) { int buffCount4 = val.GetBuffCount(Buffs.elementalFusionBuffStacks); if (buffCount4 < StaticValues.elementalFusionThreshold) { NetworkingHelpers.ApplyBuff(val, Buffs.elementalFusionBuffStacks.buffIndex, buffCount4 + 1, -1f); } else { NetworkingHelpers.ApplyBuff(val, Buffs.elementalFusionBuffStacks.buffIndex, 0, -1f); if (val.HasBuff(Buffs.elementalFusionFireBuff)) { NetworkingHelpers.ApplyBuff(val, Buffs.elementalFusionFireBuff.buffIndex, 0, -1f); NetworkingHelpers.ApplyBuff(val, Buffs.elementalFusionFreezeBuff.buffIndex, 1, -1f); if (Object.op_Implicit((Object)(object)ShiggyAsset.artificerFireMuzzleEffect)) { EffectManager.SpawnEffect(ShiggyAsset.artificerFireMuzzleEffect, new EffectData { origin = val.corePosition }, false); } } else if (val.HasBuff(Buffs.elementalFusionFreezeBuff)) { NetworkingHelpers.ApplyBuff(val, Buffs.elementalFusionFreezeBuff.buffIndex, 0, -1f); NetworkingHelpers.ApplyBuff(val, Buffs.elementalFusionShockBuff.buffIndex, 1, -1f); if (Object.op_Implicit((Object)(object)ShiggyAsset.artificerIceMuzzleEffect)) { EffectManager.SpawnEffect(ShiggyAsset.artificerIceMuzzleEffect, new EffectData { origin = val.corePosition }, false); } } else if (val.HasBuff(Buffs.elementalFusionShockBuff)) { NetworkingHelpers.ApplyBuff(val, Buffs.elementalFusionShockBuff.buffIndex, 0, -1f); NetworkingHelpers.ApplyBuff(val, Buffs.elementalFusionFireBuff.buffIndex, 1, -1f); if (Object.op_Implicit((Object)(object)ShiggyAsset.artificerLightningMuzzleEffect)) { EffectManager.SpawnEffect(ShiggyAsset.artificerLightningMuzzleEffect, new EffectData { origin = val.corePosition }, false); } } } } if (val.HasBuff(Buffs.omniboostBuff) && flag3 && flag && flag2) { OmniboostTracker omniboostTracker = ((Component)val).GetComponent<OmniboostTracker>(); if (!Object.op_Implicit((Object)(object)omniboostTracker)) { omniboostTracker = ((Component)val).gameObject.AddComponent<OmniboostTracker>(); } if (Object.op_Implicit((Object)(object)omniboostTracker.lastVictim) && (Object)(object)omniboostTracker.lastVictim != (Object)(object)val2) { NetworkingHelpers.ApplyBuff(omniboostTracker.lastVictim, Buffs.omniboostDebuffStacks.buffIndex, 0, -1f); int buffCount5 = val.GetBuffCount(Buffs.omniboostBuffStacks); int num5 = buffCount5 / 2; NetworkingHelpers.ApplyBuff(val, Buffs.omniboostBuffStacks.buffIndex, num5, -1f); } omniboostTracker.lastVictim = val2; int buffCount6 = val2.GetBuffCount(Buffs.omniboostDebuffStacks); if (buffCount6 + 1 < 3) { NetworkingHelpers.ApplyBuff(val2, Buffs.omniboostDebuffStacks.buffIndex, buffCount6 + 1, -1f); } else { NetworkingHelpers.ApplyBuff(val2, Buffs.omniboostDebuffStacks.buffIndex, 0, -1f); int buffCount7 = val.GetBuffCount(Buffs.omniboostBuffStacks); NetworkingHelpers.ApplyBuff(val, Buffs.omniboostBuffStacks.buffIndex, buffCount7 + 1, -1f); EffectManager.SpawnEffect(FireEmbers.hitEffectPrefab, new EffectData { origin = val2.transform.position, scale = 1f }, false); } } if (val.HasBuff(Buffs.bigbangBuff) && flag3 && flag && flag2) { int buffCount8 = val2.GetBuffCount(Buffs.bigbangDebuff); if (buffCount8 + 1 < 5) { NetworkingHelpers.ApplyBuff(val2, Buffs.bigbangDebuff.buffIndex, buffCount8 + 1, -1f); } else { NetworkingHelpers.ApplyBuff(val2, Buffs.bigbangDebuff.buffIndex, 0, -1f); if (Object.op_Implicit((Object)(object)ExplosionAttack.novaEffectPrefab)) { EffectManager.SpawnEffect(ExplosionAttack.novaEffectPrefab, new EffectData { origin = val2.transform.position, scale = 20f * val.attackSpeed / 3f }, true); } new BlastAttack { attacker = ((Component)val).gameObject, teamIndex = TeamComponent.GetObjectTeam(((Component)val).gameObject), crit = false, falloffModel = (FalloffModel)0, baseDamage = damageInfo.damage * 10f, damageType = new DamageTypeCombo(DamageTypeCombo.op_Implicit((DamageType)32), (DamageTypeExtended)0, (DamageSource)2), damageColorIndex = (DamageColorIndex)0, baseForce = 0f, position = val2.transform.position, radius = 20f * val.attackSpeed / 3f, procCoefficient = 0f, attackerFiltering = (AttackerFiltering)2 }.Fire(); } } if (val.HasBuff(Buffs.wisperBuff) && flag3 && flag && flag2) { DevilOrb val12 = new DevilOrb { origin = val.corePosition, damageValue = val.damage * 2f, teamIndex = val.teamComponent.teamIndex, attacker = ((Component)val).gameObject, damageColorIndex = (DamageColorIndex)3, scale = 1f, effectType = (EffectType)1, procCoefficient = 0f }; HurtBox mainHurtBox = val2.mainHurtBox; if (Object.op_Implicit((Object)(object)mainHurtBox)) { ((Orb)val12).target = mainHurtBox; val12.isCrit = Util.CheckRoll(val.crit, val.master); OrbManager.instance.AddOrb((Orb)(object)val12); } } if (val.HasBuff(Buffs.lightFormBuff) && flag3 && flag && flag2) { NetworkingHelpers.ApplyBuff(val2, Buffs.lightFormDebuff.buffIndex, val2.GetBuffCount(Buffs.lightFormDebuff) + 1, -1f); } if (val.HasBuff(Buffs.darknessFormBuff) && flag3 && flag && flag2) { NetworkingHelpers.ApplyBuff(val2, Buffs.darknessFormDebuff.buffIndex, val2.GetBuffCount(Buffs.darknessFormDebuff) + 1, -1f); } if (val2.HasBuff(Buffs.lightFormDebuff) && flag3 && flag && flag2) { NetMessageExtensions.Send((INetMessage)(object)new OrbDamageRequest(val2.masterObjectId, damageInfo.damage, val.masterObjectId), (NetworkDestination)1); } if (val.HasBuff(Buffs.lightAndDarknessFormBuff) && flag3 && flag && flag2) { NetworkingHelpers.ApplyBuff(val2, Buffs.lightAndDarknessFormDebuff.buffIndex, val2.GetBuffCount(Buffs.lightAndDarknessFormDebuff) + 1, -1f); } if (val2.HasBuff(Buffs.lightAndDarknessFormDebuff) && flag3 && flag && flag2) { int buffCount9 = val2.GetBuffCount(Buffs.lightAndDarknessFormDebuff); NetMessageExtensions.Send((INetMessage)(object)new LightAndDarknessPullRequest(val.masterObjectId, val2.corePosition, Vector3.up, StaticValues.lightAndDarknessRange + StaticValues.lightAndDarknessRangeAddition * (float)buffCount9, 0f, damageInfo.damage * (StaticValues.lightAndDarknessBonusDamage * (float)buffCount9), 360f, playEffect: true), (NetworkDestination)1); } if (val.HasBuff(Buffs.limitBreakBuff) && flag3 && flag) { NetMessageExtensions.Send((INetMessage)(object)new SpendHealthNetworkRequest(val.masterObjectId, val.healthComponent.fullHealth * Config.LimitBreakHealthCostPercentage.Value), (NetworkDestination)1); } } private void CharacterBody_OnDeathStart(orig_OnDeathStart orig, CharacterBody self) { orig.Invoke(self); if (!Object.op_Implicit((Object)(object)self)) { return; } if (self.baseNameToken == "TEAL_SHIGGY_BODY_NAME") { ShiggyController component = ((Component)self).gameObject.GetComponent<ShiggyController>(); if (Config.allowVoice.Value) { AkSoundEngine.PostEvent("ShiggyDeath", ((Component)self).gameObject); } } BuffController component2 = ((Component)self).gameObject.GetComponent<BuffController>(); if (Object.op_Implicit((Object)(object)component2)) { if (Object.op_Implicit((Object)(object)component2.overloadingWard)) { EntityState.Destroy((Object)(object)component2.overloadingWard); } if (Object.op_Implicit((Object)(object)component2.mushroomWard)) { EntityState.Destroy((Object)(object)component2.mushroomWard); } if (Object.op_Implicit((Object)(object)component2.magmawormWard)) { EntityState.Destroy((Object)(object)component2.magmawormWard); } if (Object.op_Implicit((Object)(object)component2.mortarIndicatorInstance)) { component2.mortarIndicatorInstance.SetActive(false); EntityState.Destroy((Object)(object)component2.mortarIndicatorInstance.gameObject); } if (Object.op_Implicit((Object)(object)component2.voidmortarIndicatorInstance)) { component2.voidmortarIndicatorInstance.SetActive(false); EntityState.Destroy((Object)(object)component2.voidmortarIndicatorInstance.gameObject); } if (Object.op_Implicit((Object)(object)component2.barbedSpikesIndicatorInstance)) { component2.barbedSpikesIndicatorInstance.SetActive(false); EntityState.Destroy((Object)(object)component2.barbedSpikesIndicatorInstance.gameObject); } } } private void GlobalEventManager_OnCharacterDeath(orig_OnCharacterDeath orig, GlobalEventManager self, DamageReport damageReport) { //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, damageReport); if (Object.op_Implicit((Object)(object)damageReport.attackerBody) && Object.op_Implicit((Object)(object)damageReport.victimBody)) { if (damageReport.attackerBody?.baseNameToken == "TEAL_SHIGGY_BODY_NAME" && damageReport.damageInfo.damage > 0f && damageReport.attackerBody.hasEffectiveAuthority) { EnergySystem component = ((Component)damageReport.attackerBody).gameObject.GetComponent<EnergySystem>(); component.GainplusChaos(component.maxPlusChaos * StaticValues.killPlusChaosGain); } if (damageReport.attackerBody.HasBuff(Buffs.doubleTimeBuff) && damageReport.damageInfo.damage > 0f) { int buffCount = damageReport.attackerBody.GetBuffCount(Buffs.doubleTimeBuffStacks); NetworkingHelpers.ApplyBuff(damageReport.attackerBody, Buffs.doubleTimeBuffStacks.buffIndex, buffCount + 1, -1f); } if (damageReport.attackerBody.HasBuff(Buffs.omniboostBuffStacks) && damageReport.damageInfo.damage > 0f) { int buffCount2 = damageReport.attackerBody.GetBuffCount(Buffs.omniboostBuffStacks); NetworkingHelpers.ApplyBuff(damageReport.attackerBody, Buffs.omniboostBuffStacks.buffIndex, Mathf.RoundToInt((float)(buffCount2 / 2)), -1f); } } } private void SurvivorCatalog_Init(orig_Init orig) { orig.Invoke(); foreach (SurvivorDef allSurvivorDef in SurvivorCatalog.allSurvivorDefs) { if (((Object)allSurvivorDef.bodyPrefab).name == "ShiggyBody") { CustomEmotesAPI.ImportArmature(allSurvivorDef.bodyPrefab, ShiggyAsset.mainAssetBundle.LoadAsset<GameObject>("humanoidShigaraki"), 0, true); } } } private void GlobalEventManager_OnDamageDealt(DamageReport report) { //IL_0056: 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_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) bool flag = !Object.op_Implicit((Object)(object)report.attacker) || !Object.op_Implicit((Object)(object)report.attackerBody); if (!flag && report.attackerBody.HasBuff(Buffs.claydunestriderBuff)) { CharacterBody attackerBody = report.attackerBody; attackerBody.healthComponent.Heal(report.damageDealt * 0.1f, default(ProcChainMask), true); } if (!flag && report.attackerBody.HasBuff(Buffs.OFAFOBuff)) { CharacterBody attackerBody2 = report.attackerBody; attackerBody2.healthComponent.Heal(report.damageDealt * StaticValues.OFAFOLifestealCoefficient, default(ProcChainMask), true); EnergySystem component = ((Component)attackerBody2).gameObject.GetComponent<EnergySystem>(); if (Object.op_Implicit((Object)(object)component)) { component.GainplusChaos(StaticValues.OFAFOEnergyGainCoefficient * report.damageDealt); } } if (!flag && report.attackerBody.HasBuff(Buffs.loaderBuff)) { CharacterBody attackerBody3 = report.attackerBody; attackerBody3.healthComponent.AddBarrierAuthority(report.damageDealt * Config.ScrapBarrierBarrierGain.Value); } } private void HealthComponent_TakeDamage(orig_TakeDamage orig, HealthComponent self, DamageInfo damageInfo) { //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Invalid comparison between Unknown and I4 //IL_0c24: Unknown result type (might be due to invalid IL or missing references) //IL_0c2e: Unknown result type (might be due to invalid IL or missing references) //IL_0c33: Unknown result type (might be due to invalid IL or missing references) //IL_0c38: Unknown result type (might be due to invalid IL or missing references) //IL_0c42: Invalid comparison between Unknown and I4 //IL_0c68: Unknown result type (might be due to invalid IL or missing references) //IL_0c6e: Unknown result type (might be due to invalid IL or missing references) //IL_0c73: Unknown result type (might be due to invalid IL or missing references) //IL_0c78: Unknown result type (might be due to invalid IL or missing references) //IL_0c7e: Invalid comparison between Unknown and I4 //IL_0cd3: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Invalid comparison between Unknown and I4 //IL_0f21: Unknown result type (might be due to invalid IL or missing references) //IL_0cee: Unknown result type (might be due to invalid IL or missing references) //IL_0cb6: Unknown result type (might be due to invalid IL or missing references) //IL_0fb5: Unknown result type (might be due to invalid IL or missing references) //IL_0f34: Unknown result type (might be due to invalid IL or missing references) //IL_0f62: Unknown result type (might be due to invalid IL or missing references) //IL_0f67: Unknown result type (might be due to invalid IL or missing references) //IL_0f6c: Unknown result type (might be due to invalid IL or missing references) //IL_0f6e: Unknown result type (might be due to invalid IL or missing references) //IL_0d59: Unknown result type (might be due to invalid IL or missing references) //IL_0d71: Unknown result type (might be due to invalid IL or missing references) //IL_0d76: Unknown result type (might be due to invalid IL or missing references) //IL_0d8f: Unknown result type (might be due to invalid IL or missing references) //IL_0d94: Unknown result type (might be due to invalid IL or missing references) //IL_0d95: Unknown result type (might be due to invalid IL or missing references) //IL_0d9d: Unknown result type (might be due to invalid IL or missing references) //IL_0da8: Unknown result type (might be due to invalid IL or missing references) //IL_0daf: Unknown result type (might be due to invalid IL or missing references) //IL_0db4: Unknown result type (might be due to invalid IL or missing references) //IL_0db9: Unknown result type (might be due to invalid IL or missing references) //IL_0dc4: Expected O, but got Unknown //IL_0d39: Unknown result type (might be due to invalid IL or missing references) //IL_0113: 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_0127: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Invalid comparison between Unknown and I4 //IL_0e53: Unknown result type (might be due to invalid IL or missing references) //IL_0e58: Unknown result type (might be due to invalid IL or missing references) //IL_0e65: Unknown result type (might be due to invalid IL or missing references) //IL_0e78: Unknown result type (might be due to invalid IL or missing references) //IL_0e83: Unknown result type (might be due to invalid IL or missing references) //IL_0e85: Unknown result type (might be due to invalid IL or missing references) //IL_0e8a: Unknown result type (might be due to invalid IL or missing references) //IL_0e97: Unknown result type (might be due to invalid IL or missing references) //IL_0e99: Unknown result type (might be due to invalid IL or missing references) //IL_0e9e: Unknown result type (might be due to invalid IL or missing references) //IL_0ea0: Unknown result type (might be due to invalid IL or missing references) //IL_0ea7: Unknown result type (might be due to invalid IL or missing references) //IL_0eac: Unknown result type (might be due to invalid IL or missing references) //IL_0eb1: Unknown result type (might be due to invalid IL or missing references) //IL_0eb3: Unknown result type (might be due to invalid IL or missing references) //IL_0eb8: Unknown result type (might be due to invalid IL or missing references) //IL_0ec5: Unknown result type (might be due to invalid IL or missing references) //IL_0ec6: Unknown result type (might be due to invalid IL or missing references) //IL_0ec8: Unknown result type (might be due to invalid IL or missing references) //IL_0ecd: Unknown result type (might be due to invalid IL or missing references) //IL_0ed3: Unknown result type (might be due to invalid IL or missing references) //IL_0ed9: Unknown result type (might be due to invalid IL or missing references) //IL_0ee4: Unknown result type (might be due to invalid IL or missing references) //IL_0eef: Unknown result type (might be due to invalid IL or missing references) //IL_0ef1: Unknown result type (might be due to invalid IL or missing references) //IL_0ef6: Unknown result type (might be due to invalid IL or missing references) //IL_0efe: Unknown result type (might be due to invalid IL or missing references) //IL_0f03: Unknown result type (might be due to invalid IL or missing references) //IL_0f08: Unknown result type (might be due to invalid IL or missing references) //IL_0f0e: Unknown result type (might be due to invalid IL or missing references) //IL_0f13: Unknown result type (might be due to invalid IL or missing references) //IL_0f18: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01fd: Invalid comparison between Unknown and I4 //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_102d: Unknown result type (might be due to invalid IL or missing references) //IL_0fe8: Unknown result type (might be due to invalid IL or missing references) //IL_1013: Unknown result type (might be due to invalid IL or missing references) //IL_02cb: Unknown result type (might be due to invalid IL or missing references) //IL_02b3: Unknown result type (might be due to invalid IL or missing references) //IL_02b8: Unknown result type (might be due to invalid IL or missing references) //IL_105c: Unknown result type (might be due to invalid IL or missing references) //IL_1061: Unknown result type (might be due to invalid IL or missing references) //IL_106c: Unknown result type (might be due to invalid IL or missing references) //IL_1077: Unknown result type (might be due to invalid IL or missing references) //IL_107e: Unknown result type (might be due to invalid IL or missing references) //IL_1083: Unknown result type (might be due to invalid IL or missing references) //IL_1088: Unknown result type (might be due to invalid IL or missing references) //IL_1094: Unknown result type (might be due to invalid IL or missing references) //IL_10ad: Unknown result type (might be due to invalid IL or missing references) //IL_10c0: Unknown result type (might be due to invalid IL or missing references) //IL_10c2: Unknown result type (might be due to invalid IL or missing references) //IL_10c7: Unknown result type (might be due to invalid IL or missing references) //IL_10d2: Unknown result type (might be due to invalid IL or missing references) //IL_10da: Unknown result type (might be due to invalid IL or missing references) //IL_10df: Unknown result type (might be due to invalid IL or missing references) //IL_10e4: Unknown result type (might be due to invalid IL or missing references) //IL_10ea: Unknown result type (might be due to invalid IL or missing references) //IL_10f1: Unknown result type (might be due to invalid IL or missing references) //IL_10f6: Unknown result type (might be due to invalid IL or missing references) //IL_10fb: Unknown result type (might be due to invalid IL or missing references) //IL_10fd: Unknown result type (might be due to invalid IL or missing references) //IL_1104: Expected O, but got Unknown //IL_1106: Unknown result type (might be due to invalid IL or missing references) //IL_1113: Unknown result type (might be due to invalid IL or missing references) //IL_111e: Unknown result type (might be due to invalid IL or missing references) //IL_1123: Unknown result type (might be due to invalid IL or missing references) //IL_112a: Unknown result type (might be due to invalid IL or missing references) //IL_1135: Unknown result type (might be due to invalid IL or missing references) //IL_1140: Unknown result type (might be due to invalid IL or missing references) //IL_1147: Unknown result type (might be due to invalid IL or missing references) //IL_114c: Unknown result type (might be due to invalid IL or missing references) //IL_1151: Unknown result type (might be due to invalid IL or missing references) //IL_115c: Expected O, but got Unknown //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_02fe: Unknown result type (might be due to invalid IL or missing references) //IL_0311: Unknown result type (might be due to invalid IL or missing references) //IL_031b: Unknown result type (might be due to invalid IL or missing references) //IL_0320: Unknown result type (might be due to invalid IL or missing references) //IL_0325: Unknown result type (might be due to invalid IL or missing references) //IL_032f: Invalid comparison between Unknown and I4 //IL_04cf: Unknown result type (might be due to invalid IL or missing references) //IL_04d5: 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_04e5: Invalid comparison between Unknown and I4 //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_040a: Unknown result type (might be due to invalid IL or missing references) //IL_0412: Unknown result type (might be due to invalid IL or missing references) //IL_041e: Unknown result type (might be due to invalid IL or missing references) //IL_0423: Unknown result type (might be due to invalid IL or missing references) //IL_0428: Unknown result type (might be due to invalid IL or missing references) //IL_0429: Unknown result type (might be due to invalid IL or missing references) //IL_042e: Unknown result type (might be due to invalid IL or missing references) //IL_0433: Unknown result type (might be due to invalid IL or missing references) //IL_0435: Unknown result type (might be due to invalid IL or missing references) //IL_043a: Unknown result type (might be due to invalid IL or missing references) //IL_0441: Unknown result type (might be due to invalid IL or missing references) //IL_044d: Unknown result type (might be due to invalid IL or missing references) //IL_044f: Unknown result type (might be due to invalid IL or missing references) //IL_0456: Unknown result type (might be due to invalid IL or missing references) //IL_045b: Unknown result type (might be due to invalid IL or missing references) //IL_0460: Unknown result type (might be due to invalid IL or missing references) //IL_046b: Unknown result type (might be due to invalid IL or missing references) //IL_0471: Unknown result type (might be due to invalid IL or missing references) //IL_0479: Expected O, but got Unknown //IL_048c: Unknown result type (might be due to invalid IL or missing references) //IL_0491: Unknown result type (might be due to invalid IL or missing references) //IL_0493: Unknown result type (might be due to invalid IL or missing references) //IL_04a4: Expected O, but got Unknown //IL_04aa: Unknown result type (might be due to invalid IL or missing references) //IL_04af: Unknown result type (might be due to invalid IL or missing references) //IL_04bb: Unknown result type (might be due to invalid IL or missing references) //IL_04cc: Expected O, but got Unknown //IL_036f: Unknown result type (might be due to invalid IL or missing references) //IL_0375: Unknown result type (might be due to invalid IL or missing references) //IL_0529: Unknown result type (might be due to invalid IL or missing references) //IL_0534: 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_054b: Unknown result type (might be due to invalid IL or missing references) //IL_055d: Unknown result type (might be due to invalid IL or missing references) //IL_0682: Unknown result type (might be due to invalid IL or missing references) //IL_0571: Unknown result type (might be due to invalid IL or missing references) //IL_0576: 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_0589: Unknown result type (might be due to invalid IL or missing references) //IL_0594: Unknown result type (might be due to invalid IL or missing references) //IL_0596: Unknown result type (might be due to invalid IL or missing references) //IL_059b: Unknown result type (might be due to invalid IL or missing references) //IL_05ad: Unknown result type (might be due to invalid IL or missing references) //IL_05b9: Unknown result type (might be due to invalid IL or missing references) //IL_05bb: Unknown result type (might be due to invalid IL or missing references) //IL_05c0: Unknown result type (might be due to invalid IL or missing references) //IL_05c2: Unknown result type (might be due to invalid IL or missing references) //IL_05c7: Unknown result type (might be due to invalid IL or missing references) //IL_05cc: Unknown result type (might be due to invalid IL or missing references) //IL_05d2: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: 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_05e6: Unknown result type (might be due to invalid IL or missing references) //IL_05ed: Unknown result type (might be due to invalid IL or missing references) //IL_05f2: Unknown result type (might be due to invalid IL or missing references) //IL_05f7: Unknown result type (might be due to invalid IL or missing references) //IL_0602: Unknown result type (might be due to invalid IL or missing references) //IL_0609: Unknown result type (might be due to invalid IL or missing references) //IL_060e: Unknown result type (might be due to invalid IL or missing references) //IL_0613: Unknown result type (might be due to invalid IL or missing references) //IL_0621: Expected O, but got Unknown //IL_0633: Unknown result type (might be due to invalid IL or missing references) //IL_0638: 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_0645: Unknown result type (might be due to invalid IL or missing references) //IL_0647: Unknown result type (might be due to invalid IL or missing references) //IL_064c: Unknown result type (might be due to invalid IL or missing references) //IL_0660: Unknown result type (might be due to invalid IL or missing references) //IL_0658: Unknown result type (might be due to invalid IL or missing references) //IL_0665: Unknown result type (might be due to invalid IL or missing references) //IL_066a: Unknown result type (might be due to invalid IL or missing references) //IL_0675: Expected O, but got Unknown //IL_07fb: Unknown result type (might be due to invalid IL or missing references) //IL_06d4: Unknown result type (might be due to invalid IL or missing references) //IL_06d9: Unknown result type (might be due to invalid IL or missing references) //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_06ec: Unknown result type (might be due to invalid IL or missing references) //IL_06f7: Unknown result type (might be due to invalid IL or missing references) //IL_06f9: Unknown result type (might be due to invalid IL or missing references) //IL_06fe: Unknown result type (might be due to invalid IL or missing references) //IL_0710: Unknown result type (might be due to invalid IL or missing references) //IL_071c: Unknown result type (might be due to invalid IL or missing references) //IL_071e: Unknown result type (might be due to invalid IL or missing references) //IL_0723: Unknown result type (might be due to invalid IL or missing references) //IL_0725: Unknown result type (might be due to invalid IL or missing references) //IL_072a: Unknown result type (might be due to invalid IL or missing references) //IL_072f: Unknown result type (might be due to invalid IL or missing references) //IL_0735: Unknown result type (might be due to invalid IL or missing references) //IL_073b: Unknown result type (might be due to invalid IL or missing references) //IL_0746: Unknown result type (might be due to invalid IL or missing references) //IL_0749: Unknown result type (might be due to invalid IL or missing references) //IL_0750: Unknown result type (might be due to invalid IL or missing references) //IL_0755: Unknown result type (might be due to invalid IL or missing references) //IL_075a: Unknown result type (might be due to invalid IL or missing references) //IL_0765: Unknown result type (might be due to invalid IL or missing references) //IL_076c: Unknown result type (might be due to invalid IL or missing references) //IL_0771: Unknown result type (might be due to invalid IL or missing references) //IL_0776: Unknown result type (might be due to invalid IL or missing references) //IL_0784: Expected O, but got Unknown //IL_07ac: Unknown result type (might be due to invalid IL or missing references) //IL_07b1: Unknown result type (might be due to invalid IL or missing references) //IL_07b3: Unknown result type (might be due to invalid IL or missing references) //IL_07be: Unknown result type (might be due to invalid IL or missing references) //IL_07c0: Unknown result type (might be due to invalid IL or missing references) //IL_07c5: Unknown result type (might be due to invalid IL or missing references) //IL_07d9: Unknown result type (might be due to invalid IL or missing references) //IL_07d1: Unknown result type (might be due to invalid IL or missing references) //IL_0813: Unknown result type (might be due to invalid IL or missing references) //IL_0818: Unknown result type (might be due to invalid IL or missing references) //IL_07de: Unknown result type (might be due to invalid IL or missing references) //IL_07e3: Unknown result type (might be due to invalid IL or missing references) //IL_07ee: Expected O, but got Unknown //IL_096a: Unknown result type (might be due to invalid IL or missing references) //IL_083d: Unknown result type (might be due to invalid IL or missing references) //IL_091b: Unknown result type (might be due to invalid IL or missing references) //IL_0920: Unknown result type (might be due to invalid IL or missing references) //IL_0922: Unknown result type (might be due to invalid IL or missing references) //IL_092d: 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_0934: Unknown result type (might be due to invalid IL or missing references) //IL_0851: Unknown result type (might be due to invalid IL or missing references) //IL_0856: Unknown result type (might be due to invalid IL or missing references) //IL_0862: Unknown result type (might be due to invalid IL or missing references) //IL_0869: Unknown result type (might be due to invalid IL or missing references) //IL_0874: Unknown result type (might be due to invalid IL or missing references) //IL_0876: Unknown result type (might be due to invalid IL or missing references) //IL_087b: 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_0899: Unknown result type (might be due to invalid IL or missing references) //IL_089b: Unknown result type (might be due to invalid IL or missing references) //IL_08a0: Unknown result type (might be due to invalid IL or missing references) //IL_08a2: Unknown result type (might be due to invalid IL or missing references) //IL_08a7: Unknown result type (might be due to invalid IL or missing references) //IL_08ac: Unknown result type (might be due to invalid IL or missing references) //IL_08b2: Unknown result type (might be due to invalid IL or missing references) //IL_08b8: Unknown result type (might be due to invalid IL or missing references) //IL_08c3: Unknown result type (might be due to invalid IL or missing references) //IL_08c6: Unknown result type (might be due to invalid IL or missing references) //IL_08cd: Unknown result type (might be due to invalid IL or missing references) //IL_08d2: Unknown result type (might be due to invalid IL or missing references) //IL_08d7: Unknown result type (might be due to invalid IL or missing references) //IL_08e2: Unknown result type (might be due to invalid IL or missing references) //IL_08e9: Unknown result type (might be due to invalid IL or missing references) //IL_08ee: Unknown result type (might be due to invalid IL or missing references) //IL_08f3: Unknown result type (might be due to invalid IL or missing references) //IL_0901: Expected O, but got Unknown //IL_0986: Unknown result type (might be due to invalid IL or missing references) //IL_098b: Unknown result type (might be due to invalid IL or missing references) //IL_098d: Unknown result type (might be due to invalid IL or missing references) //IL_0998: Unknown result type (might be due to invalid IL or missing references) //IL_099a: Unknown result type (might be due to invalid IL or missing references) //IL_099f: Unknown result type (might be due to invalid IL or missing references) //IL_0948: Unknown result type (might be due to invalid IL or missing references) //IL_0940: Unknown result type (might be due to invalid IL or missing references) //IL_0a0a: Unknown result type (might be due to invalid IL or missing references) //IL_09b3: Unknown result type (might be due to invalid IL or missing references) //IL_09ab: Unknown result type (might be due to invalid IL or missing references) //IL_094d: Unknown result type (might be due to invalid IL or missing references) //IL_0952: Unknown result type (might be due to invalid IL or missing references) //IL_095d: Expected O, but got Unknown //IL_09b8: Unknown result type (might be due to invalid IL or missing references) //IL_09bd: Unknown result type (might be due to invalid IL or missing references) //IL_09c8: Expected O, but got Unknown //IL_09d6: Unknown result type (might be due to invalid IL or missing references) //IL_09ed: Unknown result type (might be due to invalid IL or missing references) //IL_0a47: Unknown result type (might be due to invalid IL or missing references) //IL_0a4c: Unknown result type (might be due to invalid IL or missing references) //IL_0a4e: Unknown result type (might be due to invalid IL or missing references) //IL_0a50: Unknown result type (might be due to invalid IL or missing references) //IL_0a73: Unknown result type (might be due to invalid IL or missing references) //IL_0b11: Unknown result type (might be due to invalid IL or missing references) //IL_0add: Unknown result type (might be due to invalid IL or missing references) //IL_0ae7: Unknown result type (might be due to invalid IL or missing references) //IL_0af1: Unknown result type (might be due to invalid IL or missing references) //IL_0af6: Unknown result type (might be due to invalid IL or missing references) //IL_0b04: Unknown result type (might be due to invalid IL or missing references) //IL_0b06: Unknown result type (might be due to invalid IL or missing references) //IL_0b08: Unknown result type (might be due to invalid IL or missing references) //IL_0b0d: Unknown result type (might be due to invalid IL or missing references) //IL_0b8b: Unknown result type (might be due to invalid IL or missing references) //IL_0ba2: Unknown result type (might be due to invalid IL or missing references) //IL_0b31: Unknown result type (might be due to invalid IL or missing references) //IL_0b36: Unknown result type (might be due to invalid IL or missing references) //IL_0b37: Unknown result type (might be due to invalid IL or missing references) //IL_0b3f: Unknown result type (might be due to invalid IL or missing references) //IL_0b50: Expected O, but got Unknown //IL_0b53: Unknown result type (might be due to invalid IL or missing references) //IL_0b58: Unknown result type (might be due to invalid IL or missing references) //IL_0b59: Unknown result type (might be due to invalid IL or missing references) //IL_0b61: Unknown result type (might be due to invalid IL or missing references) //IL_0b72: Expected O, but got Unknown //IL_0aae: Unknown result type (might be due to invalid IL or missing references) //IL_0ab3: Unknown result type (might be due to invalid IL or missing references) //IL_0ab7: Unknown result type (might be due to invalid IL or missing references) //IL_0ac7: Unknown result type (might be due to invalid IL or missing references) //IL_0ac9: Unknown result type (might be due to invalid IL or missing references) if (NetworkServer.active && Object.op_Implicit((Object)(object)self) && Object.op_Implicit((Object)(object)self.body) && damageInfo != null && !damageInfo.rejected) { CharacterBody body = self.body; CharacterBody val = (Object.op_Implicit((Object)(object)damageInfo.attacker) ? damageInfo.attacker.GetComponent<CharacterBody>() : null); if (body.HasBuff(Buffs.deathAuraDebuff) && (int)DamageTypeCombo.op_Implicit(damageInfo.damageType) == 67108864) { damageInfo.damage *= 1f + (float)body.GetBuffCount(Buffs.deathAuraDebuff) * StaticValues.deathAuraDebuffCoefficient; } if (Object.op_Implicit((Object)(object)val) && val.HasBuff(Buffs.deathAuraBuff) && (int)DamageTypeCombo.op_Implicit(damageInfo.damageType) == 67108864) { damageInfo.damage *= 1f + (float)val.GetBuffCount(Buffs.deathAuraBuff) * StaticValues.deathAuraBuffCoefficient; } if (Object.op_Implicit((Object)(object)val) && val.HasBuff(Buffs.multiplierBuff) && (int)DamageTypeCombo.op_Implicit(damageInfo.damageType & DamageTypeCombo.op_Implicit((DamageType)67108864)) != 67108864) { EnergySystem component = damageInfo.attacker.GetComponent<EnergySystem>(); if (Object.op_Implicit((Object)(object)component)) { float finalPlusChaosCost = component.GetFinalPlusChaosCost(10f); if (!component.CanAffordPlusChaos(10f)) { NetworkingHelpers.ApplyBuff(val, Buffs.multiplierBuff.buffIndex, 0, -1f); component.TriggerGlow(0.3f, 0.3f, Color.black); } else { damageInfo.damage *= 3f; component.SpendplusChaos(finalPlusChaosCost); } } } if (body.HasBuff(Buffs.darknessFormDebuff) && damageInfo.procCoefficient > 0f && (int)DamageTypeCombo.op_Implicit(damageInfo.damageType) != 67108864) { int buffCount = body.GetBuffCount(Buffs.darknessFormDebuff); damageInfo.damage += damageInfo.damage * (StaticValues.darkFormBonusDamage * (float)buffCount); } if (Object.op_Implicit((Object)(object)val) && body.HasBuff(Buffs.MercExpose) && val.baseNameToken == "TEAL_SHIGGY_BODY_NAME") { body.RemoveBuff(Buffs.MercExpose); damageInfo.damage += val.damage * StaticValues.exposeDamageCoefficient; SkillLocator skillLocator = val.skillLocator; if (Object.op_Implicit((Object)(object)skillLocator)) { skillLocator.DeductCooldownFromAllSkillsServer(1f); } EffectManager.SimpleImpactEffect(AssetReferences.mercExposeConsumeEffectPrefab, damageInfo.position, Vector3.up, true); } if (body.HasBuff(Buffs.stonetitanBuff.buffIndex) && damageInfo.damage > 0f && (Object)(object)val != (Object)(object)body) { damageInfo.force = Vector3.zero; if (self.combinedHealthFraction < 0.5f && (int)DamageTypeCombo.op_Implicit(damageInfo.damageType & DamageTypeCombo.op_Implicit((DamageType)67108864)) != 67108864) { damageInfo.damage -= body.armor; if (damageInfo.damage < 0f) { self.Heal(0f - damageInfo.damage, default(ProcChainMask), true); damageInfo.damage = 0f; } } else { damageInfo.damage = Mathf.Max(1f, damageInfo.damage - body.armor); } } if (Object.op_Implicit((Object)(object)val) && body.HasBuff(Buffs.gargoyleProtectionBuff) && damageInfo.damage > 0f && (Object)(object)val != (Object)(object)body) { float num = damageInfo.damage * Config.GargoyleProtectionDamageReductionPercent.Value; damageInfo.damage -= num; DamageInfo val2 = new DamageInfo { damage = num, position = damageInfo.attacker.transform.position, force = Vector3.zero, damageColorIndex = (DamageColorIndex)5, crit = false, attacker = ((Component)body).gameObject, damageType = new DamageTypeCombo(DamageTypeCombo.op_Implicit((DamageType)2), (DamageTypeExtended)0, (DamageSource)2), procCoefficient = 0f, procChainMask = default(ProcChainMask) }; val.healthComponent.TakeDamage(val2); EffectManager.SpawnEffect(ShiggyAsset.mushrumSporeImpactPrefab, new EffectData { origin = damageInfo.position }, true); EffectManager.SpawnEffect(ShiggyAsset.mushrumSporeImpactPrefab, new EffectData { origin = damageInfo.attacker.transform.position }, true); } bool flag = (int)DamageTypeCombo.op_Implicit(damageInfo.damageType & DamageTypeCombo.op_Implicit((DamageType)2)) <= 0 && damageInfo.damage > 0f && Object.op_Implicit((Object)(object)val) && (Object)(object)val != (Object)(object)body; if (flag && body.HasBuff(Buffs.reversalBuffStacks)) { NetMessageExtensions.Send((INetMessage)(object)new ForceReversalState(body.masterObjectId, val.transform.position), (NetworkDestination)2); damageInfo.force = Vector3.zero; damageInfo.rejected = true; if (body.HasBuff(Buffs.blindSensesBuff.buffIndex)) { LightningOrb val3 = new LightningOrb { attacker = ((Component)body).gameObject, bouncesRemaining = 0, damageCoefficientPerBounce = 1f, damageColorIndex = (DamageColorIndex)3, damageValue = damageInfo.damage * StaticValues.blindSensesDamageCoefficient, isCrit = body.RollCrit(), lightningType = (LightningType)6, origin = body.corePosition, procChainMask = default(ProcChainMask), procCoefficient = 1f, damageType = new DamageTypeCombo(DamageTypeCombo.op_Implicit((DamageType)32), (DamageTypeExtended)0, (DamageSource)2), range = 0f, teamIndex = body.teamComponent.teamIndex, target = val.mainHurtBox }; OrbManager.instance.AddOrb((Orb)(object)val3); EffectManager.SpawnEffect(AssetReferences.bearEffectPrefab, new EffectData { origin = damageInfo.position, rotation = Util.QuaternionSafeLookRotation((damageInfo.force != Vector3.zero) ? damageInfo.force : Random.onUnitSphere) }, true); } } if (flag && body.HasBuff(Buffs.blindSensesBuff.buffIndex)) { float num2 = Util.ConvertAmplificationPercentageIntoReductionPercentage(StaticValues.blindSensesBlockChance * (float)body.inventory.GetItemCountEffective(Items.Bear));