Decompiled source of ChensGradiusMod v3.6.0
ChensGradiusMod.dll
Decompiled 2 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using Aetherium.Items; using Aetherium.Items.Tier2; using Aetherium.Items.Tier3; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using Chen.GradiusMod.Compatibility; using Chen.GradiusMod.Drones; using Chen.GradiusMod.Drones.EmergencyDrone; using Chen.GradiusMod.Drones.EquipmentDrone; using Chen.GradiusMod.Drones.GunnerDrone; using Chen.GradiusMod.Drones.GunnerTurret; using Chen.GradiusMod.Drones.HealingDrone; using Chen.GradiusMod.Drones.IncineratorDrone; using Chen.GradiusMod.Drones.MissileDrone; using Chen.GradiusMod.Drones.TC280; using Chen.GradiusMod.Items.GradiusOption; using Chen.GradiusMod.Items.GradiusOption.Components; using Chen.GradiusMod.Items.OptionSeed.Components; using Chen.Helpers.CollectionHelpers; using Chen.Helpers.GeneralHelpers; using Chen.Helpers.LogHelpers; using Chen.Helpers.MathHelpers; using Chen.Helpers.UnityHelpers; using EntityStates; using EntityStates.Bandit2.Weapon; using EntityStates.BeetleGuardMonster; using EntityStates.Captain.Weapon; using EntityStates.Chef; using EntityStates.Commando.CommandoWeapon; using EntityStates.Croco; using EntityStates.Drone; using EntityStates.Drone.DroneWeapon; using EntityStates.Engi.EngiMissilePainter; using EntityStates.Engi.EngiWeapon; using EntityStates.EngiTurret.EngiTurretWeapon; using EntityStates.FalseSon; using EntityStates.GolemMonster; using EntityStates.Huntress; using EntityStates.Huntress.HuntressWeapon; using EntityStates.Loader; using EntityStates.Mage.Weapon; using EntityStates.Merc; using EntityStates.Railgunner.Weapon; using EntityStates.Seeker; using EntityStates.Squid.SquidWeapon; using EntityStates.TitanMonster; using EntityStates.Toolbot; using EntityStates.Treebot; using EntityStates.Treebot.Weapon; using EntityStates.VoidSurvivor.Weapon; using On.EntityStates; using On.EntityStates.Bandit2.Weapon; using On.EntityStates.BeetleGuardMonster; using On.EntityStates.Captain.Weapon; using On.EntityStates.Chef; using On.EntityStates.Commando.CommandoWeapon; using On.EntityStates.Croco; using On.EntityStates.Drone.DroneWeapon; using On.EntityStates.Engi.EngiMissilePainter; using On.EntityStates.Engi.EngiWeapon; using On.EntityStates.EngiTurret.EngiTurretWeapon; using On.EntityStates.FalseSon; using On.EntityStates.Huntress; using On.EntityStates.Huntress.HuntressWeapon; using On.EntityStates.Loader; using On.EntityStates.Mage.Weapon; using On.EntityStates.Merc; using On.EntityStates.Railgunner.Weapon; using On.EntityStates.Seeker; using On.EntityStates.Squid.SquidWeapon; using On.EntityStates.TitanMonster; using On.EntityStates.Toolbot; using On.EntityStates.Treebot; using On.EntityStates.Treebot.Weapon; using On.EntityStates.VoidSurvivor.Weapon; using On.RoR2; using R2API; using R2API.Networking; using R2API.Networking.Interfaces; using R2API.Utils; using RoR2; using RoR2.CharacterAI; using RoR2.Orbs; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using TILER2; using UnityEngine; using UnityEngine.Networking; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: InternalsVisibleTo("ChensGradiusMod.Tests")] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = "")] [assembly: AssemblyCompany("ChensGradiusMod")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("3.5.4.0")] [assembly: AssemblyInformationalVersion("3.5.4")] [assembly: AssemblyProduct("ChensGradiusMod")] [assembly: AssemblyTitle("ChensGradiusMod")] [assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/cheeeeeeeeeen/RoR2-ChensGradiusMod")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("3.5.4.0")] [module: UnverifiableCode] namespace Chen.GradiusMod { public static class Extensions { public static bool SafeCheck(this Dictionary<string, Object> dictionary, string key) { if (dictionary.ContainsKey(key)) { return Object.op_Implicit(dictionary[key]); } return false; } public static void MuzzleEffect(this GameObject catalyst, GameObject effectPrefab, bool transmit) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Expected O, but got Unknown EffectData val = new EffectData { origin = catalyst.transform.position, rotation = catalyst.transform.rotation, rootObject = catalyst }; EffectManager.SpawnEffect(effectPrefab, val, transmit); } public static void SetAllDriversToAimTowardsEnemies(this GameObject masterObject) { AISkillDriver[] components = masterObject.GetComponents<AISkillDriver>(); components.SetAllDriversToAimTowardsEnemies(); } public static void SetAllDriversToAimTowardsEnemies(this AISkillDriver[] skillDrivers) { //IL_000c: Unknown result type (might be due to invalid IL or missing references) foreach (AISkillDriver val in skillDrivers) { val.aimType = (AimType)2; } } public static void AssignDeathBehavior(this GameObject masterObject, Type newStateType) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) CharacterMaster component = masterObject.GetComponent<CharacterMaster>(); if (!Object.op_Implicit((Object)(object)component)) { GradiusModPlugin.Log.Warning((object)"Extensions.AssignDeathBehavior: CharacterMaster component not found!"); return; } GameObject bodyPrefab = component.bodyPrefab; CharacterDeathBehavior orAddComponent = Extensions.GetOrAddComponent<CharacterDeathBehavior>(bodyPrefab); orAddComponent.deathState = new SerializableEntityStateType(newStateType); } public static void FilterOutOwnerFromAttack(this BulletAttack bulletAttack) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown bulletAttack.filterCallback = (FilterCallback)delegate(BulletAttack attack, ref BulletHit hitInfo) { return !((Object)(object)bulletAttack.owner == (Object)(object)hitInfo.entityObject) && !((Object)(object)bulletAttack.weapon == (Object)(object)hitInfo.entityObject) && BulletAttack.defaultFilterCallback.Invoke(attack, ref hitInfo); }; bulletAttack.hitCallback = (HitCallback)delegate(BulletAttack attack, ref BulletHit hitInfo) { return !((Object)(object)bulletAttack.owner == (Object)(object)hitInfo.entityObject) && !((Object)(object)bulletAttack.weapon == (Object)(object)hitInfo.entityObject) && BulletAttack.defaultHitCallback.Invoke(attack, ref hitInfo); }; } public static void InitializeDroneModelComponents(this GameObject droneModel, CharacterBody droneBody, float colliderMultiplier) { //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) CapsuleCollider componentInChildren = droneModel.GetComponentInChildren<CapsuleCollider>(); if (!Object.op_Implicit((Object)(object)componentInChildren)) { GradiusModPlugin.Log.Warning((object)"Extensions.InitializeDroneModelComponents: CapsuleCollider not found! Cannot setup HurtBoxes without it."); return; } CharacterModel val = droneModel.AddComponent<CharacterModel>(); val.body = droneBody; Extensions.BuildRendererInfos(val, droneModel); val.autoPopulateLightInfos = true; val.invisibilityCount = 0; val.temporaryOverlays = new List<TemporaryOverlayInstance>(); HurtBoxGroup val2 = droneModel.AddComponent<HurtBoxGroup>(); HurtBox val3 = ((Component)componentInChildren).gameObject.AddComponent<HurtBox>(); ((Component)val3).gameObject.layer = LayerIndex.entityPrecise.intVal; val3.healthComponent = ((Component)droneBody).GetComponent<HealthComponent>(); val3.isBullseye = true; val3.damageModifier = (DamageModifier)0; val3.hurtBoxGroup = val2; val3.indexInGroup = 0; val2.hurtBoxes = (HurtBox[])(object)new HurtBox[1] { val3 }; val2.mainHurtBox = val3; val2.bullseyeCount = 1; CapsuleCollider component = ((Component)droneBody).GetComponent<CapsuleCollider>(); if (Object.op_Implicit((Object)(object)component)) { component.center = componentInChildren.center; component.radius = componentInChildren.radius * colliderMultiplier; component.height = componentInChildren.height * colliderMultiplier; component.direction = componentInChildren.direction; } } } [BepInPlugin("com.Chen.ChensGradiusMod", "ChensGradiusMod", "3.6.0")] [BepInDependency("com.bepis.r2api", "5.1.1")] [BepInDependency("com.ThinkInvisible.TILER2", "7.4.0")] [BepInDependency("com.Chen.ChensHelpers", "1.1.3")] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [R2APISubmoduleDependency(new string[] { "NetworkingAPI", "DirectorAPI", "ContentAddition" })] public class GradiusModPlugin : BaseUnityPlugin { internal class GlobalConfig : AutoConfigContainer { [AutoConfig(/*Could not decode attribute arguments.*/)] public bool emergencyDroneFix { get; private set; } = true; [AutoConfig(/*Could not decode attribute arguments.*/)] public bool gunnerDronesAreRepurchaseable { get; private set; } = true; [AutoConfig(/*Could not decode attribute arguments.*/)] public bool turretsAreRepurchaseable { get; private set; } = true; [AutoConfig(/*Could not decode attribute arguments.*/)] public bool healingDronesAreRepurchaseable { get; private set; } = true; [AutoConfig(/*Could not decode attribute arguments.*/)] public bool emergencyDronesAreRepurchaseable { get; private set; } = true; [AutoConfig(/*Could not decode attribute arguments.*/)] public bool flameDronesAreRepurchaseable { get; private set; } = true; [AutoConfig(/*Could not decode attribute arguments.*/)] public bool missileDronesAreRepurchaseable { get; private set; } = true; [AutoConfig(/*Could not decode attribute arguments.*/)] public bool megaDronesAreRepurchaseable { get; private set; } = true; [AutoConfig(/*Could not decode attribute arguments.*/)] public bool equipmentDronesAreRepurchaseable { get; private set; } = true; [AutoConfig(/*Could not decode attribute arguments.*/)] public float dropEquipFromDroneChance { get; private set; } [AutoConfig(/*Could not decode attribute arguments.*/)] public int flameDroneWeightScorchedAcres { get; private set; } = 1; [AutoConfig(/*Could not decode attribute arguments.*/)] public int flameDroneWeightAbyssalDepths { get; private set; } = 3; [AutoConfig(/*Could not decode attribute arguments.*/)] public bool turretsAsDroneCategory { get; private set; } = true; [AutoConfig(/*Could not decode attribute arguments.*/)] public bool equipmentDroneInspire { get; private set; } = true; } internal static readonly GlobalConfig generalCfg = new GlobalConfig(); public const string ModVer = "3.6.0"; public const string ModName = "ChensGradiusMod"; public const string ModGuid = "com.Chen.ChensGradiusMod"; internal static ConfigFile cfgFile; internal static FilingDictionary<CatalogBoilerplate> chensItemList = new FilingDictionary<CatalogBoilerplate>(); internal static List<DroneInfo> gradiusDronesList = new List<DroneInfo>(); internal static Log Log; internal static AssetBundle assetBundle; private static readonly Lazy<GameObject> _backupDroneMaster = new Lazy<GameObject>((Func<GameObject>)(() => Resources.Load<GameObject>("prefabs/charactermasters/DroneBackupMaster"))); private static readonly Lazy<GameObject> _drone1Master = new Lazy<GameObject>((Func<GameObject>)(() => Resources.Load<GameObject>("prefabs/charactermasters/Drone1Master"))); private static readonly Lazy<GameObject> _drone2Master = new Lazy<GameObject>((Func<GameObject>)(() => Resources.Load<GameObject>("prefabs/charactermasters/Drone2Master"))); private static readonly Lazy<GameObject> _emergencyDroneMaster = new Lazy<GameObject>((Func<GameObject>)(() => Resources.Load<GameObject>("prefabs/charactermasters/EmergencyDroneMaster"))); private static readonly Lazy<GameObject> _flameDroneMaster = new Lazy<GameObject>((Func<GameObject>)(() => Resources.Load<GameObject>("prefabs/charactermasters/FlameDroneMaster"))); private static readonly Lazy<GameObject> _missileDroneMaster = new Lazy<GameObject>((Func<GameObject>)(() => Resources.Load<GameObject>("prefabs/charactermasters/DroneMissileMaster"))); private static readonly Lazy<GameObject> _turret1Master = new Lazy<GameObject>((Func<GameObject>)(() => Resources.Load<GameObject>("prefabs/charactermasters/Turret1Master"))); private static readonly Lazy<GameObject> _tc280DroneMaster = new Lazy<GameObject>((Func<GameObject>)(() => Resources.Load<GameObject>("prefabs/charactermasters/MegaDroneMaster"))); private static readonly Lazy<GameObject> _equipmentDroneMaster = new Lazy<GameObject>((Func<GameObject>)(() => Resources.Load<GameObject>("prefabs/charactermasters/EquipmentDroneMaster"))); private static readonly Lazy<GameObject> _helperPrefab = new Lazy<GameObject>((Func<GameObject>)(() => Resources.Load<GameObject>("SpawnCards/HelperPrefab"))); private static readonly Lazy<InteractableSpawnCard> _drone1SpawnCard = new Lazy<InteractableSpawnCard>((Func<InteractableSpawnCard>)(() => Resources.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBrokenDrone1"))); private static readonly Lazy<SkillDef> _drone1Skill = new Lazy<SkillDef>((Func<SkillDef>)(() => Resources.Load<SkillDef>("skilldefs/drone1body/Drone1BodyGun"))); private static readonly Lazy<Material> _summonDroneMaterial = new Lazy<Material>((Func<Material>)(() => Resources.Load<Material>("Materials/matSummonDrone"))); internal static SoundPlayer soundPlayer = new SoundPlayer(Array.Empty<EventPosterKey>()); internal static GameObject backupDroneMaster => _backupDroneMaster.Value; internal static GameObject drone1Master => _drone1Master.Value; internal static GameObject drone2Master => _drone2Master.Value; internal static GameObject emergencyDroneMaster => _emergencyDroneMaster.Value; internal static GameObject flameDroneMaster => _flameDroneMaster.Value; internal static GameObject missileDroneMaster => _missileDroneMaster.Value; internal static GameObject turret1Master => _turret1Master.Value; internal static GameObject tc280DroneMaster => _tc280DroneMaster.Value; internal static GameObject equipmentDroneMaster => _equipmentDroneMaster.Value; internal static GameObject helperPrefab => _helperPrefab.Value; internal static InteractableSpawnCard drone1SpawnCard => _drone1SpawnCard.Value; internal static SkillDef drone1Skill => _drone1Skill.Value; internal static Material summonDroneMaterial => _summonDroneMaterial.Value; private void RegisterVanillaChanges() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown if (generalCfg.emergencyDroneFix) { Log.Debug((object)"Vanilla Fix: Applying Emergency Drone Fix."); HealBeamController.HealBeamAlreadyExists_GameObject_HealthComponent += new hook_HealBeamAlreadyExists_GameObject_HealthComponent(HealBeamController_HealBeamAlreadyExists_GO_HC); } if (generalCfg.flameDroneWeightScorchedAcres > 1 || generalCfg.flameDroneWeightAbyssalDepths > 1) { Log.Debug((object)"Vanilla Change: Modifying Flame Drone spawn weight on Abyssal Depths or Scorched Acres (or both)."); DirectorAPI.InteractableActions += FlameDrone_InteractableActions; } if (generalCfg.turretsAsDroneCategory) { Log.Debug((object)"Vanilla Change: Modifying category of Gunner Turrets to Drones category."); DirectorAPI.InteractableActions += Turret1_InteractableActions; } } private void Turret1_InteractableActions(DccsPool arg1, StageInfo arg2) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)arg1)) { return; } Helpers.ForEachPoolEntryInDccsPool(arg1, (Action<PoolEntry>)delegate(PoolEntry poolEntry) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Expected O, but got Unknown //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009d: 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: Expected O, but got Unknown DirectorCard turretDirectorCard = null; poolEntry.dccs.RemoveCardsThatFailFilter((Predicate<DirectorCard>)delegate(DirectorCard dCard) { if (((Object)dCard.spawnCard).name.Contains("Turret1")) { turretDirectorCard = dCard; return false; } return true; }); if (turretDirectorCard != null) { DirectorCard card = new DirectorCard { spawnCard = turretDirectorCard.spawnCard, selectionWeight = turretDirectorCard.selectionWeight, minimumStageCompletions = turretDirectorCard.minimumStageCompletions, spawnDistance = turretDirectorCard.spawnDistance, preventOverhead = turretDirectorCard.preventOverhead }; DirectorCardHolder val = new DirectorCardHolder { Card = card, MonsterCategory = (MonsterCategory)0, InteractableCategory = (InteractableCategory)5 }; DirectorAPI.AddCard(poolEntry.dccs, val); } else { Log.Warning((object)("GradiusModPlugin.Turret1_InteractableActions: Turret Director Card not found. (arg1: " + ((Object)arg1).name + ", arg2: " + ((StageInfo)(ref arg2)).ToInternalStageName() + ")")); } }); } private void FlameDrone_InteractableActions(DccsPool arg1, StageInfo arg2) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) if ((!Object.op_Implicit((Object)(object)arg1) || !((StageInfo)(ref arg2)).CheckStage((Stage)128, Array.Empty<string>())) && !((StageInfo)(ref arg2)).CheckStage((Stage)64, Array.Empty<string>())) { return; } float weightMultiplier = 1f; if (((StageInfo)(ref arg2)).CheckStage((Stage)128, Array.Empty<string>())) { weightMultiplier = generalCfg.flameDroneWeightAbyssalDepths; } else if (((StageInfo)(ref arg2)).CheckStage((Stage)64, Array.Empty<string>())) { weightMultiplier = generalCfg.flameDroneWeightScorchedAcres; } Helpers.ForEachPoolEntryInDccsPool(arg1, (Action<PoolEntry>)delegate(PoolEntry poolEntry) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Expected O, but got Unknown //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: 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_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Expected O, but got Unknown DirectorCard flameDroneDirectorCard = null; poolEntry.dccs.RemoveCardsThatFailFilter((Predicate<DirectorCard>)delegate(DirectorCard dCard) { if (((Object)dCard.spawnCard).name.Contains("FlameDrone")) { flameDroneDirectorCard = dCard; return false; } return true; }); if (flameDroneDirectorCard != null) { DirectorCard card = new DirectorCard { spawnCard = flameDroneDirectorCard.spawnCard, selectionWeight = Mathf.RoundToInt((float)flameDroneDirectorCard.selectionWeight * weightMultiplier), minimumStageCompletions = flameDroneDirectorCard.minimumStageCompletions, spawnDistance = flameDroneDirectorCard.spawnDistance, preventOverhead = flameDroneDirectorCard.preventOverhead }; DirectorCardHolder val = new DirectorCardHolder { Card = card, MonsterCategory = (MonsterCategory)0, InteractableCategory = (InteractableCategory)5 }; DirectorAPI.AddCard(poolEntry.dccs, val); } else { Log.Warning((object)("GradiusModPlugin.FlameDrone_InteractableActions: Flame Drone Director Card not found. (arg1: " + ((Object)arg1).name + ", arg2: " + ((StageInfo)(ref arg2)).ToInternalStageName() + ")")); } }); } private bool HealBeamController_HealBeamAlreadyExists_GO_HC(orig_HealBeamAlreadyExists_GameObject_HealthComponent orig, GameObject owner, HealthComponent targetHealthComponent) { List<HealBeamController> instancesList = InstanceTracker.GetInstancesList<HealBeamController>(); for (int i = 0; i < instancesList.Count; i++) { HealBeamController val = instancesList[i]; if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)val.target) && Object.op_Implicit((Object)(object)val.target.healthComponent) && Object.op_Implicit((Object)(object)targetHealthComponent) && Object.op_Implicit((Object)(object)val.ownership) && Object.op_Implicit((Object)(object)val.ownership.ownerObject) && (Object)(object)val.target.healthComponent == (Object)(object)targetHealthComponent && (Object)(object)val.ownership.ownerObject == (Object)(object)owner) { return true; } } return false; } private void Update() { DropletGenerator.Update(); bool keyDown = Input.GetKeyDown((KeyCode)290); if (keyDown) { CharacterMaster master = PlayerCharacterMasterController.instances[0].master; CharacterBody body = master.GetBody(); Transform transform = ((Component)body).gameObject.transform; if (keyDown) { OptionMasterTracker.SpawnOption(((Component)transform).gameObject, 1); return; } } soundPlayer.Update(); } private void Awake() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Expected O, but got Unknown //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Expected O, but got Unknown //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Expected O, but got Unknown //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) Log = new Log(((BaseUnityPlugin)this).Logger); Log.Debug((object)"Loading assets..."); BundleInfo val = default(BundleInfo); ((BundleInfo)(ref val))..ctor("Chen.GradiusMod.chensgradiusmod_assets", (BundleType)0); BundleInfo val2 = default(BundleInfo); ((BundleInfo)(ref val2))..ctor("Chen.GradiusMod.chensgradiusmod_soundbank.bnk", (BundleType)1); AssetsManager val3 = new AssetsManager(val); AssetsManager val4 = new AssetsManager(val2); assetBundle = val3.Register(); Extensions.ConvertShaders(assetBundle); val4.Register(); cfgFile = new ConfigFile(Path.Combine(Paths.ConfigPath, "com.Chen.ChensGradiusMod.cfg"), true); Log.Debug((object)"Loading global configs..."); ((AutoConfigContainer)generalCfg).BindAll(cfgFile, "ChensGradiusMod", "General"); Log.Debug((object)"Modifying vanilla drone behavior..."); ModifyVanillaDroneDeathBehaviors(); ModifyVanillaDronesSkillDrivers(); Log.Debug((object)"Instantiating item classes..."); ModInfo val5 = default(ModInfo); val5.displayName = "Chen's Gradius Mod"; val5.longIdentifier = "ChensGradiusMod"; val5.shortIdentifier = "CGM"; val5.mainConfigFile = cfgFile; chensItemList = T2Module.InitAll<CatalogBoilerplate>(val5, (Func<Type, bool>)null); T2Module.SetupAll_PluginAwake((IEnumerable<T2Module>)chensItemList); T2Module.SetupAll_PluginStart((IEnumerable<T2Module>)chensItemList, false); Log.Debug((object)"Instantiating custom drones..."); gradiusDronesList = DroneCatalog.Initialize("com.Chen.ChensGradiusMod", cfgFile); DroneCatalog.EfficientSetupAll(gradiusDronesList); Log.Debug((object)"Applying vanilla changes and fixes..."); RegisterVanillaChanges(); Log.Debug((object)"Applying compatibility changes..."); if (Aetherium.enabled) { Aetherium.Setup(); } } private void ModifyVanillaDroneDeathBehaviors() { emergencyDroneMaster.AssignDeathBehavior(typeof(Chen.GradiusMod.Drones.EmergencyDrone.DeathState)); equipmentDroneMaster.AssignDeathBehavior(typeof(Chen.GradiusMod.Drones.EquipmentDrone.DeathState)); drone1Master.AssignDeathBehavior(typeof(Chen.GradiusMod.Drones.GunnerDrone.DeathState)); turret1Master.AssignDeathBehavior(typeof(Chen.GradiusMod.Drones.GunnerTurret.DeathState)); drone2Master.AssignDeathBehavior(typeof(Chen.GradiusMod.Drones.HealingDrone.DeathState)); flameDroneMaster.AssignDeathBehavior(typeof(Chen.GradiusMod.Drones.IncineratorDrone.DeathState)); missileDroneMaster.AssignDeathBehavior(typeof(Chen.GradiusMod.Drones.MissileDrone.DeathState)); tc280DroneMaster.AssignDeathBehavior(typeof(Chen.GradiusMod.Drones.TC280.DeathState)); } private void ModifyVanillaDronesSkillDrivers() { drone1Master.SetAllDriversToAimTowardsEnemies(); tc280DroneMaster.SetAllDriversToAimTowardsEnemies(); missileDroneMaster.SetAllDriversToAimTowardsEnemies(); backupDroneMaster.SetAllDriversToAimTowardsEnemies(); flameDroneMaster.SetAllDriversToAimTowardsEnemies(); equipmentDroneMaster.SetAllDriversToAimTowardsEnemies(); } internal static bool DebugCheck() { return true; } } } namespace Chen.GradiusMod.Items.OptionSeed { public class OptionSeed : Item<OptionSeed> { private int punchUseCounter; internal const uint GetOptionEventId = 649757048u; internal const uint LoseOptionEventId = 2603869165u; internal const float DefaultVerticalOffsetMultiplier = 0.4f; internal const float DefaultHorizontalOffsetMultiplier = 0.8f; internal const float DefaultRotationRadius = 0.3f; private static readonly Dictionary<string, float> VerticalOffsetMultipliers = new Dictionary<string, float> { { "EngiTurretBody", 0.5f }, { "EngiWalkerTurretBody", 1.3f }, { "ToolbotBody", 0.5f }, { "MageBody", 0.8f }, { "LoaderBody", 0.7f } }; private static readonly Dictionary<string, float> HorizontalOffsetMultipliers = new Dictionary<string, float> { { "ToolbotBody", 1f }, { "CrocoBody", 1f } }; private static readonly Dictionary<string, float> RotationRadius = new Dictionary<string, float> { { "ToolbotBody", 0.5f }, { "CrocoBody", 0.5f } }; private static readonly Lazy<GameObject> _loaderZapCone = new Lazy<GameObject>((Func<GameObject>)(() => Resources.Load<GameObject>("Prefabs/Projectiles/LoaderZapCone"))); private static readonly Lazy<Material> _evisTargetMaterial = new Lazy<Material>((Func<Material>)(() => Resources.Load<Material>("Materials/matMercEvisTarget"))); public override string displayName => "Gradius' Option Seed"; public override ItemTier itemTier => (ItemTier)1; public override ReadOnlyCollection<ItemTag> itemTags => new ReadOnlyCollection<ItemTag>((IList<ItemTag>)(object)new ItemTag[1] { (ItemTag)3 }); [AutoConfigUpdateActions(/*Could not decode attribute arguments.*/)] [AutoConfig(/*Could not decode attribute arguments.*/)] public float damageMultiplier { get; private set; } = 0.2f; [AutoConfigUpdateActions(/*Could not decode attribute arguments.*/)] [AutoConfig(/*Could not decode attribute arguments.*/)] public float stackDamageMultiplier { get; private set; } = 0.05f; [AutoConfig(/*Could not decode attribute arguments.*/)] public bool mobileTurretsSeedSyncEffect { get; private set; } = true; [AutoConfig(/*Could not decode attribute arguments.*/)] public bool flamethrowerSeedSyncEffect { get; private set; } = true; [AutoConfig(/*Could not decode attribute arguments.*/)] public bool includeModelInsideOrb { get; private set; } = true; [AutoConfig(/*Could not decode attribute arguments.*/)] public bool staticPositions { get; private set; } [AutoConfig(/*Could not decode attribute arguments.*/)] public float rotationSpeed { get; private set; } = 10f; public override bool itemIsAIBlacklisted { get; protected set; } = true; internal static GameObject optionSeedPrefab { get; private set; } private static GameObject loaderZapCone => _loaderZapCone.Value; private static Material evisTargetMaterial => _evisTargetMaterial.Value; public void FireForSeeds(CharacterBody optionSeedOwner, Action<GameObject, SeedBehavior, SeedTracker, float> actionToRun) { if (!Object.op_Implicit((Object)(object)optionSeedOwner)) { return; } SeedTracker component = ((Component)optionSeedOwner).GetComponent<SeedTracker>(); if (Object.op_Implicit((Object)(object)component)) { InputBankTest inputBankTest = component.inputBankTest; if (Object.op_Implicit((Object)(object)inputBankTest)) { float arg = ComputeMultiplier(optionSeedOwner); actionToRun(component.leftSeed, component.leftBehavior, component, arg); actionToRun(component.rightSeed, component.rightBehavior, component, arg); } } } public void SetVerticalOffsetMultiplier(string bodyName, float newValue) { VerticalOffsetMultipliers[bodyName] = newValue; } public void SetHorizontalOffsetMultiplier(string bodyName, float newValue) { HorizontalOffsetMultipliers[bodyName] = newValue; } public void SetRotationalRadius(string bodyName, float newValue) { RotationRadius[bodyName] = newValue; } public override void Install() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Expected O, but got Unknown //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Expected O, but got Unknown //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005b: 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_0073: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Expected O, but got Unknown //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Expected O, but got Unknown //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Expected O, but got Unknown //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Expected O, but got Unknown //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Expected O, but got Unknown //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Expected O, but got Unknown //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Expected O, but got Unknown //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Expected O, but got Unknown //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Expected O, but got Unknown //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Expected O, but got Unknown //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Expected O, but got Unknown //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Expected O, but got Unknown //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Expected O, but got Unknown //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Expected O, but got Unknown //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Expected O, but got Unknown //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Expected O, but got Unknown //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Expected O, but got Unknown //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Expected O, but got Unknown //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Expected O, but got Unknown //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Expected O, but got Unknown //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Expected O, but got Unknown //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Expected O, but got Unknown //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Expected O, but got Unknown //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Expected O, but got Unknown //IL_020b: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Expected O, but got Unknown //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Expected O, but got Unknown //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Expected O, but got Unknown //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Expected O, but got Unknown //IL_024f: Unknown result type (might be due to invalid IL or missing references) //IL_0259: Expected O, but got Unknown //IL_0260: Unknown result type (might be due to invalid IL or missing references) //IL_026a: Expected O, but got Unknown //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_027b: Expected O, but got Unknown //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Expected O, but got Unknown //IL_0293: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Expected O, but got Unknown //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: Expected O, but got Unknown //IL_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Expected O, but got Unknown //IL_02c6: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Expected O, but got Unknown //IL_02d7: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Expected O, but got Unknown //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_02f2: Expected O, but got Unknown //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_0303: Expected O, but got Unknown //IL_030a: Unknown result type (might be due to invalid IL or missing references) //IL_0314: Expected O, but got Unknown //IL_031b: Unknown result type (might be due to invalid IL or missing references) //IL_0325: Expected O, but got Unknown //IL_032c: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Expected O, but got Unknown //IL_033d: Unknown result type (might be due to invalid IL or missing references) //IL_0347: Expected O, but got Unknown //IL_034e: Unknown result type (might be due to invalid IL or missing references) //IL_0358: Expected O, but got Unknown //IL_035f: Unknown result type (might be due to invalid IL or missing references) //IL_0369: Expected O, but got Unknown //IL_0370: Unknown result type (might be due to invalid IL or missing references) //IL_037a: Expected O, but got Unknown //IL_0381: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Expected O, but got Unknown //IL_0392: Unknown result type (might be due to invalid IL or missing references) //IL_039c: Expected O, but got Unknown //IL_03a3: Unknown result type (might be due to invalid IL or missing references) //IL_03ad: Expected O, but got Unknown //IL_03b4: Unknown result type (might be due to invalid IL or missing references) //IL_03be: Expected O, but got Unknown //IL_03c5: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Expected O, but got Unknown //IL_03d6: Unknown result type (might be due to invalid IL or missing references) //IL_03e0: Expected O, but got Unknown //IL_03e7: Unknown result type (might be due to invalid IL or missing references) //IL_03f1: Expected O, but got Unknown ((Item)this).Install(); CharacterBody.OnInventoryChanged += new hook_OnInventoryChanged(CharacterBody_OnInventoryChanged); CharacterBody.onBodyStartGlobal += CharacterBody_onBodyStartGlobal; FireGrenades.FireGrenade += new hook_FireGrenade(FireGrenades_FireGrenade); FirePistol2.FireBullet += new hook_FireBullet(FirePistol2_FireBullet); GenericBulletBaseState.FireBullet += new hook_FireBullet(GenericBulletBaseState_FireBullet); FireBarrage.FireBullet += new hook_FireBullet(FireBarrage_FireBullet); GenericProjectileBaseState.FireProjectile += new hook_FireProjectile(GenericProjectileBaseState_FireProjectile); Fire.FireMissile += new hook_FireMissile(Fire_FireMissile); FireGauss.OnEnter += new hook_OnEnter(FireGauss_OnEnter); FireBeam.FixedUpdate += new hook_FixedUpdate(FireBeam_FixedUpdate); FireBeam.OnEnter += new hook_OnEnter(FireBeam_OnEnter); FireBeam.OnExit += new hook_OnExit(FireBeam_OnExit); FireSeekingArrow.FireOrbArrow += new hook_FireOrbArrow(FireSeekingArrow_FireOrbArrow); ThrowGlaive.FireOrbGlaive += new hook_FireOrbGlaive(ThrowGlaive_FireOrbGlaive); BasicMeleeAttack.OnEnter += new hook_OnEnter(BasicMeleeAttack_OnEnter); BasicMeleeAttack.AuthorityFireAttack += new hook_AuthorityFireAttack(BasicMeleeAttack_AuthorityFireAttack); Evis.FixedUpdate += new hook_FixedUpdate(Evis_FixedUpdate); WhirlwindBase.OnEnter += new hook_OnEnter(WhirlwindBase_OnEnter); WhirlwindBase.FixedUpdate += new hook_FixedUpdate(WhirlwindBase_FixedUpdate); FocusedAssaultDash.OnMeleeHitAuthority += new hook_OnMeleeHitAuthority(FocusedAssaultDash_OnMeleeHitAuthority); Uppercut.OnEnter += new hook_OnEnter(Uppercut_OnEnter); Uppercut.FixedUpdate += new hook_FixedUpdate(Uppercut_FixedUpdate); FireShotgun2.FireBullet += new hook_FireBullet(FireShotgun2_FireBullet); BaseFireSidearmRevolverState.OnEnter += new hook_OnEnter(BaseFireSidearmRevolverState_OnEnter); Bandit2FireShiv.FireShiv += new hook_FireShiv(Bandit2FireShiv_FireShiv); BaseNailgunState.FireBullet += new hook_FireBullet(BaseNailgunState_FireBullet); AimThrowableBase.FireProjectile += new hook_FireProjectile(AimThrowableBase_FireProjectile); RecoverAimStunDrone.OnEnter += new hook_OnEnter(RecoverAimStunDrone_OnEnter); FireBuzzsaw.FixedUpdate += new hook_FixedUpdate(FireBuzzsaw_FixedUpdate); FireFireBolt.FireGauntlet += new hook_FireGauntlet(FireFireBolt_FireGauntlet); BaseThrowBombState.Fire += new hook_Fire(BaseThrowBombState_Fire); Flamethrower.OnEnter += new hook_OnEnter(Flamethrower_OnEnter); Flamethrower.FireGauntlet += new hook_FireGauntlet(Flamethrower_FireGauntlet); Flamethrower.FixedUpdate += new hook_FixedUpdate(Flamethrower_FixedUpdate); Flamethrower.OnExit += new hook_OnExit(Flamethrower_OnExit); FireSyringe.FixedUpdate += new hook_FixedUpdate(FireSyringe_FixedUpdate); TreebotFireFruitSeed.OnEnter += new hook_OnEnter(TreebotFireFruitSeed_OnEnter); FireFlower2.OnEnter += new hook_OnEnter(FireFlower2_OnEnter); ArrowRain.DoFireArrowRain += new hook_DoFireArrowRain(ArrowRain_DoFireArrowRain); ThrowPylon.OnEnter += new hook_OnEnter(ThrowPylon_OnEnter); SwingZapFist.OnMeleeHitAuthority += new hook_OnMeleeHitAuthority(SwingZapFist_OnMeleeHitAuthority); GroundSlam.DetonateAuthority += new hook_DetonateAuthority(GroundSlam_DetonateAuthority); BaseLeap.DetonateAuthority += new hook_DetonateAuthority(BaseLeap_DetonateAuthority); BaseLeap.DropAcidPoolAuthority += new hook_DropAcidPoolAuthority(BaseLeap_DropAcidPoolAuthority); FireSpit.OnEnter += new hook_OnEnter(FireSpit_OnEnter); FireTazer.Fire += new hook_Fire(FireTazer_Fire); FirePistol.OnEnter += new hook_OnEnter(FirePistol_OnEnter); BaseFireSnipe.OnEnter += new hook_OnEnter(BaseFireSnipe_OnEnter); FireBlasterBase.OnEnter += new hook_OnEnter(FireBlasterBase_OnEnter); FireCorruptDisks.OnEnter += new hook_OnEnter(FireCorruptDisks_OnEnter); FireCorruptHandBeam.OnEnter += new hook_OnEnter(FireCorruptHandBeam_OnEnter); FireHandBeam.OnEnter += new hook_OnEnter(FireHandBeam_OnEnter); FireMegaBlasterBase.OnEnter += new hook_OnEnter(FireMegaBlasterBase_OnEnter); FireTwinBlaster.OnEnter += new hook_OnEnter(FireTwinBlaster_OnEnter); SpiritPunch.OnEnter += new hook_OnEnter(SpiritPunch_OnEnter); Dice.OnEnter += new hook_OnEnter(Dice_OnEnter); Glaze.OnEnter += new hook_OnEnter(Glaze_OnEnter); LunarSpikes.OnEnter += new hook_OnEnter(LunarSpikes_OnEnter); LunarSpikesShotgun.OnEnter += new hook_OnEnter(LunarSpikesShotgun_OnEnter); } public override void Uninstall() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Expected O, but got Unknown //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Expected O, but got Unknown //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005b: 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_0073: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Expected O, but got Unknown //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Expected O, but got Unknown //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Expected O, but got Unknown //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Expected O, but got Unknown //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Expected O, but got Unknown //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Expected O, but got Unknown //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Expected O, but got Unknown //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Expected O, but got Unknown //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Expected O, but got Unknown //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Expected O, but got Unknown //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Expected O, but got Unknown //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Expected O, but got Unknown //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Expected O, but got Unknown //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Expected O, but got Unknown //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Expected O, but got Unknown //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Expected O, but got Unknown //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Expected O, but got Unknown //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Expected O, but got Unknown //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Expected O, but got Unknown //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Expected O, but got Unknown //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Expected O, but got Unknown //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Expected O, but got Unknown //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Expected O, but got Unknown //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Expected O, but got Unknown //IL_020b: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Expected O, but got Unknown //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Expected O, but got Unknown //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Expected O, but got Unknown //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Expected O, but got Unknown //IL_024f: Unknown result type (might be due to invalid IL or missing references) //IL_0259: Expected O, but got Unknown //IL_0260: Unknown result type (might be due to invalid IL or missing references) //IL_026a: Expected O, but got Unknown //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_027b: Expected O, but got Unknown //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Expected O, but got Unknown //IL_0293: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Expected O, but got Unknown //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: Expected O, but got Unknown //IL_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Expected O, but got Unknown //IL_02c6: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Expected O, but got Unknown //IL_02d7: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Expected O, but got Unknown //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_02f2: Expected O, but got Unknown //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_0303: Expected O, but got Unknown //IL_030a: Unknown result type (might be due to invalid IL or missing references) //IL_0314: Expected O, but got Unknown //IL_031b: Unknown result type (might be due to invalid IL or missing references) //IL_0325: Expected O, but got Unknown //IL_032c: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Expected O, but got Unknown //IL_033d: Unknown result type (might be due to invalid IL or missing references) //IL_0347: Expected O, but got Unknown //IL_034e: Unknown result type (might be due to invalid IL or missing references) //IL_0358: Expected O, but got Unknown //IL_035f: Unknown result type (might be due to invalid IL or missing references) //IL_0369: Expected O, but got Unknown //IL_0370: Unknown result type (might be due to invalid IL or missing references) //IL_037a: Expected O, but got Unknown //IL_0381: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Expected O, but got Unknown //IL_0392: Unknown result type (might be due to invalid IL or missing references) //IL_039c: Expected O, but got Unknown //IL_03a3: Unknown result type (might be due to invalid IL or missing references) //IL_03ad: Expected O, but got Unknown //IL_03b4: Unknown result type (might be due to invalid IL or missing references) //IL_03be: Expected O, but got Unknown //IL_03c5: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Expected O, but got Unknown //IL_03d6: Unknown result type (might be due to invalid IL or missing references) //IL_03e0: Expected O, but got Unknown //IL_03e7: Unknown result type (might be due to invalid IL or missing references) //IL_03f1: Expected O, but got Unknown ((Item)this).Uninstall(); CharacterBody.OnInventoryChanged -= new hook_OnInventoryChanged(CharacterBody_OnInventoryChanged); CharacterBody.onBodyStartGlobal -= CharacterBody_onBodyStartGlobal; FireGrenades.FireGrenade -= new hook_FireGrenade(FireGrenades_FireGrenade); FirePistol2.FireBullet -= new hook_FireBullet(FirePistol2_FireBullet); GenericBulletBaseState.FireBullet -= new hook_FireBullet(GenericBulletBaseState_FireBullet); FireBarrage.FireBullet -= new hook_FireBullet(FireBarrage_FireBullet); GenericProjectileBaseState.FireProjectile -= new hook_FireProjectile(GenericProjectileBaseState_FireProjectile); Fire.FireMissile -= new hook_FireMissile(Fire_FireMissile); FireGauss.OnEnter -= new hook_OnEnter(FireGauss_OnEnter); FireBeam.FixedUpdate -= new hook_FixedUpdate(FireBeam_FixedUpdate); FireBeam.OnEnter -= new hook_OnEnter(FireBeam_OnEnter); FireBeam.OnExit -= new hook_OnExit(FireBeam_OnExit); FireSeekingArrow.FireOrbArrow -= new hook_FireOrbArrow(FireSeekingArrow_FireOrbArrow); ThrowGlaive.FireOrbGlaive -= new hook_FireOrbGlaive(ThrowGlaive_FireOrbGlaive); BasicMeleeAttack.OnEnter -= new hook_OnEnter(BasicMeleeAttack_OnEnter); BasicMeleeAttack.AuthorityFireAttack -= new hook_AuthorityFireAttack(BasicMeleeAttack_AuthorityFireAttack); Evis.FixedUpdate -= new hook_FixedUpdate(Evis_FixedUpdate); WhirlwindBase.OnEnter -= new hook_OnEnter(WhirlwindBase_OnEnter); WhirlwindBase.FixedUpdate -= new hook_FixedUpdate(WhirlwindBase_FixedUpdate); FocusedAssaultDash.OnMeleeHitAuthority -= new hook_OnMeleeHitAuthority(FocusedAssaultDash_OnMeleeHitAuthority); Uppercut.OnEnter -= new hook_OnEnter(Uppercut_OnEnter); Uppercut.FixedUpdate -= new hook_FixedUpdate(Uppercut_FixedUpdate); FireShotgun2.FireBullet -= new hook_FireBullet(FireShotgun2_FireBullet); BaseFireSidearmRevolverState.OnEnter -= new hook_OnEnter(BaseFireSidearmRevolverState_OnEnter); Bandit2FireShiv.FireShiv -= new hook_FireShiv(Bandit2FireShiv_FireShiv); BaseNailgunState.FireBullet -= new hook_FireBullet(BaseNailgunState_FireBullet); AimThrowableBase.FireProjectile -= new hook_FireProjectile(AimThrowableBase_FireProjectile); RecoverAimStunDrone.OnEnter -= new hook_OnEnter(RecoverAimStunDrone_OnEnter); FireBuzzsaw.FixedUpdate -= new hook_FixedUpdate(FireBuzzsaw_FixedUpdate); FireFireBolt.FireGauntlet -= new hook_FireGauntlet(FireFireBolt_FireGauntlet); BaseThrowBombState.Fire -= new hook_Fire(BaseThrowBombState_Fire); Flamethrower.OnEnter -= new hook_OnEnter(Flamethrower_OnEnter); Flamethrower.FireGauntlet -= new hook_FireGauntlet(Flamethrower_FireGauntlet); Flamethrower.FixedUpdate -= new hook_FixedUpdate(Flamethrower_FixedUpdate); Flamethrower.OnExit -= new hook_OnExit(Flamethrower_OnExit); FireSyringe.FixedUpdate -= new hook_FixedUpdate(FireSyringe_FixedUpdate); TreebotFireFruitSeed.OnEnter -= new hook_OnEnter(TreebotFireFruitSeed_OnEnter); FireFlower2.OnEnter -= new hook_OnEnter(FireFlower2_OnEnter); ArrowRain.DoFireArrowRain -= new hook_DoFireArrowRain(ArrowRain_DoFireArrowRain); ThrowPylon.OnEnter -= new hook_OnEnter(ThrowPylon_OnEnter); SwingZapFist.OnMeleeHitAuthority -= new hook_OnMeleeHitAuthority(SwingZapFist_OnMeleeHitAuthority); GroundSlam.DetonateAuthority -= new hook_DetonateAuthority(GroundSlam_DetonateAuthority); BaseLeap.DetonateAuthority -= new hook_DetonateAuthority(BaseLeap_DetonateAuthority); BaseLeap.DropAcidPoolAuthority -= new hook_DropAcidPoolAuthority(BaseLeap_DropAcidPoolAuthority); FireSpit.OnEnter -= new hook_OnEnter(FireSpit_OnEnter); FireTazer.Fire -= new hook_Fire(FireTazer_Fire); FirePistol.OnEnter -= new hook_OnEnter(FirePistol_OnEnter); BaseFireSnipe.OnEnter -= new hook_OnEnter(BaseFireSnipe_OnEnter); FireBlasterBase.OnEnter -= new hook_OnEnter(FireBlasterBase_OnEnter); FireCorruptDisks.OnEnter -= new hook_OnEnter(FireCorruptDisks_OnEnter); FireCorruptHandBeam.OnEnter -= new hook_OnEnter(FireCorruptHandBeam_OnEnter); FireHandBeam.OnEnter -= new hook_OnEnter(FireHandBeam_OnEnter); FireMegaBlasterBase.OnEnter -= new hook_OnEnter(FireMegaBlasterBase_OnEnter); FireTwinBlaster.OnEnter -= new hook_OnEnter(FireTwinBlaster_OnEnter); SpiritPunch.OnEnter -= new hook_OnEnter(SpiritPunch_OnEnter); Dice.OnEnter -= new hook_OnEnter(Dice_OnEnter); Glaze.OnEnter -= new hook_OnEnter(Glaze_OnEnter); LunarSpikes.OnEnter -= new hook_OnEnter(LunarSpikes_OnEnter); LunarSpikesShotgun.OnEnter -= new hook_OnEnter(LunarSpikesShotgun_OnEnter); } private void CharacterBody_OnInventoryChanged(orig_OnInventoryChanged orig, CharacterBody self) { orig.Invoke(self); if (Object.op_Implicit((Object)(object)self.master)) { if (((Item)this).GetCount(self) > 0) { SeedTracker.SpawnSeeds(((Component)self).gameObject); } else { SeedTracker.DestroySeeds(((Component)self).gameObject); } } } private void CharacterBody_onBodyStartGlobal(CharacterBody obj) { if (Object.op_Implicit((Object)(object)obj.master) && ((Item)this).GetCount(obj) > 0) { SeedTracker.SpawnSeeds(((Component)obj).gameObject); } } private void FireTazer_Fire(orig_Fire orig, FireTazer self) { orig.Invoke(self); FireForSeeds(((EntityState)self).characterBody, delegate(GameObject seed, SeedBehavior _b, SeedTracker _t, float multiplier) { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)FireTazer.muzzleflashEffectPrefab)) { seed.MuzzleEffect(FireTazer.muzzleflashEffectPrefab, transmit: false); } if (((EntityState)self).isAuthority) { FireProjectileInfo val = default(FireProjectileInfo); val.projectilePrefab = FireTazer.projectilePrefab; val.position = seed.transform.position; Ray aimRay = ((BaseState)self).GetAimRay(); val.rotation = Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction); val.owner = ((EntityState)self).gameObject; val.damage = ((BaseState)self).damageStat * FireTazer.damageCoefficient * multiplier; val.force = FireTazer.force * multiplier; val.crit = Util.CheckRoll(((BaseState)self).critStat, ((EntityState)self).characterBody.master); FireProjectileInfo val2 = val; ProjectileManager.instance.FireProjectile(val2); } }); } private void FireSpit_OnEnter(orig_OnEnter orig, FireSpit self) { orig.Invoke(self); FireForSeeds(((EntityState)self).characterBody, delegate(GameObject seed, SeedBehavior _b, SeedTracker _t, float multiplier) { //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)self.effectPrefab)) { seed.MuzzleEffect(self.effectPrefab, transmit: false); } if (((EntityState)self).isAuthority) { DamageType val = (DamageType)(((Object)(object)self.crocoDamageTypeController != (Object)null) ? ((int)DamageTypeCombo.op_Implicit(self.crocoDamageTypeController.GetDamageType())) : 0); FireProjectileInfo val2 = default(FireProjectileInfo); val2.projectilePrefab = self.projectilePrefab; val2.position = seed.transform.position; Ray aimRay = ((BaseState)self).GetAimRay(); val2.rotation = Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction); val2.owner = ((EntityState)self).gameObject; val2.damage = ((BaseState)self).damageStat * self.damageCoefficient * multiplier; val2.damageTypeOverride = DamageTypeCombo.op_Implicit(val); val2.force = self.force * multiplier; val2.crit = Util.CheckRoll(((BaseState)self).critStat, ((EntityState)self).characterBody.master); FireProjectileInfo val3 = val2; ProjectileManager.instance.FireProjectile(val3); } }); } private void BaseLeap_DropAcidPoolAuthority(orig_DropAcidPoolAuthority orig, BaseLeap self) { orig.Invoke(self); FireForSeeds(((EntityState)self).characterBody, delegate(GameObject seed, SeedBehavior _b, SeedTracker _t, float multiplier) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) Vector3 position = seed.transform.position; FireProjectileInfo val = default(FireProjectileInfo); val.projectilePrefab = BaseLeap.projectilePrefab; val.crit = self.isCritAuthority; val.force = 0f; val.damage = ((BaseState)self).damageStat * multiplier; val.owner = ((EntityState)self).gameObject; val.rotation = Quaternion.identity; val.position = position; FireProjectileInfo val2 = val; ProjectileManager.instance.FireProjectile(val2); }); } private Result BaseLeap_DetonateAuthority(orig_DetonateAuthority orig, BaseLeap self) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) Result result = orig.Invoke(self); FireForSeeds(((EntityState)self).characterBody, delegate(GameObject seed, SeedBehavior _b, SeedTracker _t, float multiplier) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) new BlastAttack { attacker = ((EntityState)self).gameObject, baseDamage = ((BaseState)self).damageStat * self.blastDamageCoefficient * multiplier, baseForce = self.blastForce * multiplier, bonusForce = self.blastBonusForce, crit = ((BaseState)self).RollCrit(), damageType = self.GetBlastDamageType(), falloffModel = (FalloffModel)0, procCoefficient = BaseLeap.blastProcCoefficient, radius = BaseLeap.blastRadius, position = seed.transform.position, attackerFiltering = (AttackerFiltering)2, impactEffect = EffectCatalog.FindEffectIndexFromPrefab(self.blastImpactEffectPrefab), teamIndex = ((EntityState)self).teamComponent.teamIndex }.Fire(); }); return result; } private Result GroundSlam_DetonateAuthority(orig_DetonateAuthority orig, GroundSlam self) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) Result result = orig.Invoke(self); FireForSeeds(((EntityState)self).characterBody, delegate(GameObject seed, SeedBehavior _b, SeedTracker _t, float multiplier) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0084: 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_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) new BlastAttack { attacker = ((EntityState)self).gameObject, baseDamage = ((BaseState)self).damageStat * GroundSlam.blastDamageCoefficient * multiplier, baseForce = GroundSlam.blastForce * multiplier, bonusForce = GroundSlam.blastBonusForce, crit = ((BaseState)self).RollCrit(), damageType = DamageTypeCombo.op_Implicit((DamageType)32), falloffModel = (FalloffModel)0, procCoefficient = GroundSlam.blastProcCoefficient, radius = GroundSlam.blastRadius, position = seed.transform.position, attackerFiltering = (AttackerFiltering)2, impactEffect = EffectCatalog.FindEffectIndexFromPrefab(GroundSlam.blastImpactEffectPrefab), teamIndex = ((EntityState)self).teamComponent.teamIndex }.Fire(); }); return result; } private void SwingZapFist_OnMeleeHitAuthority(orig_OnMeleeHitAuthority orig, SwingZapFist self) { orig.Invoke(self); FireForSeeds(((EntityState)self).characterBody, delegate(GameObject seed, SeedBehavior _b, SeedTracker _t, float multiplier) { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: 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_009d: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)((BaseState)self).FindModelChild(((BasicMeleeAttack)self).swingEffectMuzzleString))) { FireProjectileInfo val = default(FireProjectileInfo); val.position = seed.transform.position; val.rotation = Quaternion.LookRotation(((BaseSwingChargedFist)self).punchVelocity); val.crit = ((BasicMeleeAttack)self).isCritAuthority; val.damage = ((BaseState)self).damageStat * multiplier; val.owner = ((EntityState)self).gameObject; val.projectilePrefab = loaderZapCone; FireProjectileInfo val2 = val; ProjectileManager.instance.FireProjectile(val2); } }); } private void ThrowPylon_OnEnter(orig_OnEnter orig, ThrowPylon self) { orig.Invoke(self); FireForSeeds(((EntityState)self).characterBody, delegate(GameObject seed, SeedBehavior _b, SeedTracker _t, float multiplier) { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)ThrowPylon.muzzleflashObject)) { seed.MuzzleEffect(ThrowPylon.muzzleflashObject, transmit: false); } if (((EntityState)self).isAuthority) { Ray aimRay = ((BaseState)self).GetAimRay(); FireProjectileInfo val = default(FireProjectileInfo); val.crit = ((BaseState)self).RollCrit(); val.damage = ((BaseState)self).damageStat * ThrowPylon.damageCoefficient * multiplier; val.damageColorIndex = (DamageColorIndex)0; val.force = 0f; val.owner = ((EntityState)self).gameObject; val.position = seed.transform.position; val.procChainMask = default(ProcChainMask); val.projectilePrefab = ThrowPylon.projectilePrefab; val.rotation = Quaternion.LookRotation(((Ray)(ref aimRay)).direction); val.target = null; FireProjectileInfo val2 = val; ProjectileManager.instance.FireProjectile(val2); } }); } private void ArrowRain_DoFireArrowRain(orig_DoFireArrowRain orig, ArrowRain self) { orig.Invoke(self); FireForSeeds(((EntityState)self).characterBody, delegate(GameObject seed, SeedBehavior _b, SeedTracker _t, float multiplier) { //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)ArrowRain.muzzleFlashEffect)) { seed.MuzzleEffect(ArrowRain.muzzleFlashEffect, transmit: false); } if (((EntityState)self).isAuthority && Object.op_Implicit((Object)(object)self.areaIndicatorInstance) && self.shouldFireArrowRain) { ProjectileManager.instance.FireProjectile(ArrowRain.projectilePrefab, self.areaIndicatorInstance.transform.position, self.areaIndicatorInstance.transform.rotation, ((EntityState)self).gameObject, ((BaseState)self).damageStat * ArrowRain.damageCoefficient * multiplier, 0f, Util.CheckRoll(((BaseState)self).critStat, ((EntityState)self).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f); } }); } private void FireFlower2_OnEnter(orig_OnEnter orig, FireFlower2 self) { orig.Invoke(self); FireForSeeds(((EntityState)self).characterBody, delegate(GameObject seed, SeedBehavior _b, SeedTracker _t, float multiplier) { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)FireFlower2.muzzleFlashPrefab)) { seed.MuzzleEffect(FireFlower2.muzzleFlashPrefab, transmit: false); } if (((EntityState)self).isAuthority) { Ray aimRay = ((BaseState)self).GetAimRay(); FireProjectileInfo val = default(FireProjectileInfo); val.crit = ((BaseState)self).RollCrit(); val.damage = FireFlower2.damageCoefficient * ((BaseState)self).damageStat * multiplier; val.damageColorIndex = (DamageColorIndex)0; val.force = 0f; val.owner = ((EntityState)self).gameObject; val.position = seed.transform.position; val.procChainMask = default(ProcChainMask); val.projectilePrefab = FireFlower2.projectilePrefab; val.rotation = Quaternion.LookRotation(((Ray)(ref aimRay)).direction); val.useSpeedOverride = false; FireProjectileInfo val2 = val; ProjectileManager.instance.FireProjectile(val2); } }); } private void TreebotFireFruitSeed_OnEnter(orig_OnEnter orig, TreebotFireFruitSeed self) { orig.Invoke(self); FireForSeeds(((EntityState)self).characterBody, delegate(GameObject seed, SeedBehavior _b, SeedTracker _t, float multiplier) { //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: 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_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: 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_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)self.muzzleFlashPrefab)) { seed.MuzzleEffect(self.muzzleFlashPrefab, transmit: false); } if (((EntityState)self).isAuthority) { Ray aimRay = ((BaseState)self).GetAimRay(); FireProjectileInfo val = default(FireProjectileInfo); val.crit = ((BaseState)self).RollCrit(); val.damage = self.damageCoefficient * ((BaseState)self).damageStat * multiplier; val.damageColorIndex = (DamageColorIndex)0; val.force = 0f; val.owner = ((EntityState)self).gameObject; val.position = seed.transform.position; val.procChainMask = default(ProcChainMask); val.projectilePrefab = self.projectilePrefab; val.rotation = Quaternion.LookRotation(((Ray)(ref aimRay)).direction); val.useSpeedOverride = false; FireProjectileInfo val2 = val; ProjectileManager.instance.FireProjectile(val2); } }); } private void FireSyringe_FixedUpdate(orig_FixedUpdate orig, FireSyringe self) { int projectilesFired = self.projectilesFired; orig.Invoke(self); int rate = Mathf.FloorToInt(((EntityState)self).fixedAge / self.fireDuration * (float)FireSyringe.projectileCount); FireForSeeds(((EntityState)self).characterBody, delegate(GameObject seed, SeedBehavior _b, SeedTracker _t, float multiplier) { //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) if (projectilesFired <= rate && projectilesFired < FireSyringe.projectileCount) { GameObject val = FireSyringe.projectilePrefab; string attackSound = FireSyringe.attackSound; if (projectilesFired == FireSyringe.projectileCount - 1) { val = FireSyringe.finalProjectilePrefab; attackSound = FireSyringe.finalAttackSound; } if (Object.op_Implicit((Object)(object)FireSyringe.muzzleflashEffectPrefab)) { seed.MuzzleEffect(FireSyringe.muzzleflashEffectPrefab, transmit: false); } if (((EntityState)self).isAuthority) { Ray aimRay = ((BaseState)self).GetAimRay(); float num = (float)self.projectilesFired - (float)(FireSyringe.projectileCount - 1) / 2f; num = (float)(Mathf.FloorToInt(num) / (FireSyringe.projectileCount - 1)) * FireSyringe.totalYawSpread; Vector3 val2 = Util.ApplySpread(((Ray)(ref aimRay)).direction, 0f, 0f, 1f, 1f, num, 0f); ProjectileManager.instance.FireProjectile(val, seed.transform.position, Util.QuaternionSafeLookRotation(val2), ((EntityState)self).gameObject, ((BaseState)self).damageStat * FireSyringe.damageCoefficient * multiplier, FireSyringe.force * multiplier, Util.CheckRoll(((BaseState)self).critStat, ((EntityState)self).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f); } } }); } private void Flamethrower_OnEnter(orig_OnEnter orig, Flamethrower self) { orig.Invoke(self); FireForSeeds(((EntityState)self).characterBody, delegate(GameObject _s, SeedBehavior behavior, SeedTracker _t, float _m) { behavior.O[((object)self).GetType().FullName + ".IsCrit"] = ((BaseState)self).RollCrit(); }); } private void Flamethrower_OnExit(orig_OnExit orig, Flamethrower self) { orig.Invoke(self); if (!flamethrowerSeedSyncEffect) { return; } FireForSeeds(((EntityState)self).characterBody, delegate(GameObject _s, SeedBehavior behavior, SeedTracker _t, float _m) { string key = ((object)self).GetType().FullName + ".flamethrower"; if (behavior.U.SafeCheck(key)) { EntityState.Destroy(behavior.U[key]); } }); } private void Flamethrower_FixedUpdate(orig_FixedUpdate orig, Flamethrower self) { bool oldBegunFlamethrower = self.hasBegunFlamethrower; orig.Invoke(self); if (!flamethrowerSeedSyncEffect) { return; } FireForSeeds(((EntityState)self).characterBody, delegate(GameObject seed, SeedBehavior behavior, SeedTracker _t, float _m) { //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) string key = ((object)self).GetType().FullName + ".flamethrower"; bool flag = oldBegunFlamethrower; if (self.stopwatch >= self.entryDuration && !flag) { flag = true; if (behavior.U.SafeCheck(key)) { EntityState.Destroy(behavior.U[key]); } behavior.U[key] = (Object)(object)Object.Instantiate<GameObject>(self.flamethrowerEffectPrefab, seed.transform); ((GameObject)behavior.U[key]).GetComponent<ScaleParticleSystemDuration>().newDuration = self.flamethrowerDuration; } if (flag && Object.op_Implicit(behavior.U[key])) { Transform transform = ((GameObject)behavior.U[key]).transform; Ray aimRay = ((BaseState)self).GetAimRay(); transform.forward = ((Ray)(ref aimRay)).direction; } }); } private void Flamethrower_FireGauntlet(orig_FireGauntlet orig, Flamethrower self, string muzzleString) { orig.Invoke(self, muzzleString); FireForSeeds(((EntityState)self).characterBody, delegate(GameObject seed, SeedBehavior behavior, SeedTracker _t, float multiplier) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0082: 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_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Expected O, but got Unknown if (((EntityState)self).isAuthority) { BulletAttack val = new BulletAttack { owner = ((EntityState)self).gameObject, weapon = seed, origin = seed.transform.position }; Ray aimRay = ((BaseState)self).GetAimRay(); val.aimVector = ((Ray)(ref aimRay)).direction; val.minSpread = 0f; val.damage = self.tickDamageCoefficient * ((BaseState)self).damageStat * multiplier; val.force = Flamethrower.force * multiplier; val.muzzleName = muzzleString; val.hitEffectPrefab = Flamethrower.impactEffectPrefab; val.isCrit = (bool)behavior.O[((object)self).GetType().FullName + ".IsCrit"]; val.falloffModel = (FalloffModel)0; val.stopperMask = ((LayerIndex)(ref LayerIndex.world)).mask; val.procCoefficient = Flamethrower.procCoefficientPerTick; val.maxDistance = self.maxDistance; val.damageType = DamageTypeCombo.op_Implicit((DamageType)(Util.CheckRoll(Flamethrower.ignitePercentChance, ((EntityState)self).characterBody.master) ? 128 : 0)); val.radius = Flamethrower.radius; val.smartCollision = true; BulletAttack val2 = val; if (!flamethrowerSeedSyncEffect) { val2.tracerEffectPrefab = FireGatling.tracerEffectPrefab; } val2.FilterOutOwnerFromAttack(); val2.Fire(); } }); } private void BaseThrowBombState_Fire(orig_Fire orig, BaseThrowBombState self) { orig.Invoke(self); FireForSeeds(((EntityState)self).characterBody, delegate(GameObject seed, SeedBehavior _b, SeedTracker _t, float multiplier) { //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: 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_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) if (((EntityState)self).isAuthority && Object.op_Implicit((Object)(object)self.projectilePrefab)) { float damage = Util.Remap(self.charge, 0f, 1f, self.minDamageCoefficient, self.maxDamageCoefficient) * ((BaseState)self).damageStat; float force = self.charge * self.force; FireProjectileInfo val = default(FireProjectileInfo); val.projectilePrefab = self.projectilePrefab; val.position = seed.transform.position; Ray aimRay = ((BaseState)self).GetAimRay(); val.rotation = Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction); val.owner = ((EntityState)self).gameObject; val.damage = damage; val.force = force; val.crit = ((BaseState)self).RollCrit(); FireProjectileInfo val2 = val; self.ModifyProjectile(ref val2); val2.damage *= multiplier; val2.force *= multiplier; ProjectileManager.instance.FireProjectile(val2); } }); } private void FireFireBolt_FireGauntlet(orig_FireGauntlet orig, FireFireBolt self) { bool hasFiredGauntlet = self.hasFiredGauntlet; orig.Invoke(self); if (hasFiredGauntlet) { return; } FireForSeeds(((EntityState)self).characterBody, delegate(GameObject seed, SeedBehavior _b, SeedTracker _t, float multiplier) { //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005a: 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) if (Object.op_Implicit((Object)(object)self.muzzleflashEffectPrefab)) { seed.MuzzleEffect(self.muzzleflashEffectPrefab, transmit: false); } if (((EntityState)self).isAuthority) { ProjectileManager instance = ProjectileManager.instance; GameObject projectilePrefab = self.projectilePrefab; Vector3 position = seed.transform.position; Ray aimRay = ((BaseState)self).GetAimRay(); instance.FireProjectile(projectilePrefab, position, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)self).gameObject, self.damageCoefficient * ((BaseState)self).damageStat * multiplier, 0f, ((BaseState)self).RollCrit(), (DamageColorIndex)0, (GameObject)null, -1f); } }); } private void FireBuzzsaw_FixedUpdate(orig_FixedUpdate orig, FireBuzzsaw self) { float fireAge = self.fireAge + Time.fixedDeltaTime; orig.Invoke(self); FireForSeeds(((EntityState)self).characterBody, delegate(GameObject _s, SeedBehavior _b, SeedTracker _t, float multiplier) { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_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_006e: Unknown result type (might be due to invalid IL or missing references) //IL_008e: 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_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Expected O, but got Unknown if (((EntityState)self).isAuthority && fireAge >= 1f / self.fireFrequency) { OverlapAttack val = new OverlapAttack { attacker = ((EntityState)self).gameObject, inflictor = ((EntityState)self).gameObject, teamIndex = TeamComponent.GetObjectTeam(self.attack.attacker), damage = FireBuzzsaw.damageCoefficientPerSecond * ((BaseState)self).damageStat / FireBuzzsaw.baseFireFrequency * multiplier, procCoefficient = FireBuzzsaw.procCoefficientPerSecond / FireBuzzsaw.baseFireFrequency, hitBoxGroup = self.attack.hitBoxGroup, isCrit = ((EntityState)self).characterBody.RollCrit() }; if (Object.op_Implicit((Object)(object)FireBuzzsaw.impactEffectPrefab)) { val.hitEffectPrefab = FireBuzzsaw.impactEffectPrefab; } val.ResetIgnoredHealthComponents(); val.Fire((List<HurtBox>)null); } }); } private void AimThrowableBase_FireProjectile(orig_FireProjectile orig, AimThrowableBase self) { orig.Invoke(self); FireForSeeds(((EntityState)self).characterBody, delegate(GameObject seed, SeedBehavior _b, SeedTracker _t, float multiplier) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) FireProjectileInfo val = default(FireProjectileInfo); val.crit = ((BaseState)self).RollCrit(); val.owner = ((EntityState)self).gameObject; val.position = seed.transform.position; val.projectilePrefab = self.projectilePrefab; val.rotation = Util.QuaternionSafeLookRotation(((Ray)(ref self.currentTrajectoryInfo.finalRay)).direction, Vector3.up); ((FireProjectileInfo)(ref val)).speedOverride = self.currentTrajectoryInfo.speedOverride; val.damage = self.damageCoefficient * ((BaseState)self).damageStat; FireProjectileInfo val2 = val; if (self.setFuse) { ((FireProjectileInfo)(ref val2)).fuseOverride = self.currentTrajectoryInfo.travelTime; } self.ModifyProjectile(ref val2); val2.force *= multiplier; val2.damage *= multiplier; ProjectileManager.instance.FireProjectile(val2); }); } private void RecoverAimStunDrone_OnEnter(orig_OnEnter orig, RecoverAimStunDrone self) { orig.Invoke(self); FireForSeeds(((EntityState)self).characterBody, delegate(GameObject seed, SeedBehavior _b, SeedTracker _t, float _m) { if (Object.op_Implicit((Object)(object)RecoverAimStunDrone.muzzleEffectPrefab)) { seed.MuzzleEffect(RecoverAimStunDrone.muzzleEffectPrefab, transmit: false); } }); } private void BaseNailgunState_FireBullet(orig_FireBullet orig, BaseNailgunState self, Ray aimRay, int bulletCount, float spreadPitchScale, float spreadYawScale) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, aimRay, bulletCount, spreadPitchScale, spreadYawScale); FireForSeeds(((EntityState)self).characterBody, delegate(GameObject seed, SeedBehavior _b, SeedTracker _t, float multiplier) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Expected O, but got Unknown if (Object.op_Implicit((Object)(object)BaseNailgunState.muzzleFlashPrefab)) { seed.MuzzleEffect(BaseNailgunState.muzzleFlashPrefab, transmit: false); } if (((EntityState)self).isAuthority) { BulletAttack val = new BulletAttack { aimVector = ((Ray)(ref aimRay)).direction, origin = seed.transform.position, owner = ((EntityState)self).gameObject, weapon = seed, bulletCount = (uint)bulletCount, damage = ((BaseState)self).damageStat * BaseNailgunState.damageCoefficient * multiplier, damageColorIndex = (DamageColorIndex)0, damageType = DamageTypeCombo.op_Implicit((DamageType)0), falloffModel = (FalloffModel)1, force = BaseNailgunState.force * multiplier, HitEffectNormal = false, procChainMask = default(ProcChainMask), procCoefficient = BaseNailgunState.procCoefficient, maxDistance = BaseNailgunState.maxDistance, isCrit = ((BaseState)self).RollCrit(), muzzleName = "Muzzle", minSpread = 0f, hitEffectPrefab = BaseNailgunState.hitEffectPrefab, maxSpread = ((EntityState)self).characterBody.spreadBloomAngle, smartCollision = false, sniper = false, spreadPitchS