Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of MrPopo v1.0.4
Dragon Ball Z/Popo.dll
Decompiled 2 years agousing System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using DBZUtils; using EntityStates; using R2API; using R2API.Utils; using RoR2; using RoR2.Orbs; using RoR2.Projectile; using RoR2.Skills; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = "")] [assembly: AssemblyCompany("Dragonyck")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Popo")] [assembly: AssemblyTitle("Popo")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace Popo; internal class Assets { public static AssetBundle MainAssetBundle; public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Popo.popoassets")) { MainAssetBundle = AssetBundle.LoadFromStream(stream); } } } } internal class Hook { internal static void Hooks() { } } [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.DragonyckMrPopo", "MrPopo", "1.0.4")] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] public class MainPlugin : BaseUnityPlugin { public const string MODUID = "com.DragonyckMrPopo"; public const string MODNAME = "MrPopo"; public const string VERSION = "1.0.4"; public const string SURVIVORNAME = "Mr. Popo"; public const string SURVIVORNAMEKEY = "POPO"; public const string SURVIVOR2NAME = "Mr. Popo (2nd Form)"; public const string SURVIVOR2NAMEKEY = "POPO2"; public const string SWOLESURVIVORNAME = "Mr. Swolo"; public const string SWOLESURVIVORNAMEKEY = "SWOLO"; public const string SWOLESURVIVORNAME1 = "Mr. Swolo (SSJ)"; public const string SWOLESURVIVORNAMEKEY1 = "SWOLOSSJ"; public const string SWOLESURVIVORNAME2 = "Mr. Swolo (SSJ2)"; public const string SWOLESURVIVORNAMEKEY2 = "SWOLOSSJ2"; public const string SWOLESURVIVORNAME3 = "Mr. Swolo (SSJ3)"; public const string SWOLESURVIVORNAMEKEY3 = "SWOLOSSJ3"; public const string SWOLESURVIVORNAMEB = "Mr. Swolo (SSB)"; public const string SWOLESURVIVORNAMEKEYB = "SWOLOSSJB"; private static List<string> powerupBodyList = new List<string> { "Mr. PopoBody", "Mr. Popo (2nd Form)Body", "Mr. SwoloBody", "Mr. Swolo (SSJ)Body", "Mr. Swolo (SSJ2)Body", "Mr. Swolo (SSJ3)Body", "Mr. Swolo (SSB)Body" }; private void Awake() { Assets.PopulateAssets(); Prefabs.CreatePrefabs(); RegisterStates(); CreateBaseSurvivor(); CreatePowerupSurvivor("popo2nd", "Mr. Popo (2nd Form)", "POPO2", 1.1f); CreatePowerupSurvivor("swolo", "Mr. Swolo", "SWOLO", 1.2f); CreatePowerupSurvivor("swoloSSJ", "Mr. Swolo (SSJ)", "SWOLOSSJ", 1.4f); CreatePowerupSurvivor("swoloSSJ2", "Mr. Swolo (SSJ2)", "SWOLOSSJ2", 1.6f); CreatePowerupSurvivor("swoloSSJ3", "Mr. Swolo (SSJ3)", "SWOLOSSJ3", 1.8f); CreatePowerupSurvivor("swoloSSB", "Mr. Swolo (SSB)", "SWOLOSSJB", 2f); Hook.Hooks(); } private static void AddHitBoxes(Transform parent) { //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) GameObject val = Utils.CreateHitbox("Punch", parent, new Vector3(4.5f, 4.5f, 4.8f)); val.transform.localPosition = new Vector3(0f, 1.3f, 1f); } private void RegisterStates() { //IL_0003: 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_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) bool flag = default(bool); ContentAddition.AddEntityState<DashState1h>(ref flag); ContentAddition.AddEntityState<FireDashKamehameha>(ref flag); ContentAddition.AddEntityState<ChargeDashKamehameha>(ref flag); ContentAddition.AddEntityState<ChargeDashKamehameha>(ref flag); ContentAddition.AddEntityState<DashState2h>(ref flag); ContentAddition.AddEntityState<DashDealKamehamehaFireState>(ref flag); ContentAddition.AddEntityState<KiBlast>(ref flag); ContentAddition.AddEntityState<RayBlast>(ref flag); ContentAddition.AddEntityState<FinalDualKamehameha>(ref flag); ContentAddition.AddEntityState<BeastKamehameha>(ref flag); OrbAPI.AddOrb(typeof(PopoSuccOrb)); LanguageAPI.Add("POPO_PASSIVE_NAME", "Energy Absorption"); LanguageAPI.Add("POPO_PASSIVE_DESCRIPTION", "Absorb a nearby projectile every <style=cIsUtility>1s</style> <style=cStack>(*Level)</style> and gain <color=#41D2EF>+5 Ki</color>."); } internal static void CreateBaseSurvivor() { //IL_0050: 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_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_022c: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_025e: Expected O, but got Unknown //IL_025e: Expected O, but got Unknown //IL_0275: Unknown result type (might be due to invalid IL or missing references) //IL_028a: Unknown result type (might be due to invalid IL or missing references) //IL_0294: Expected O, but got Unknown //IL_0294: Expected O, but got Unknown //IL_02ab: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Expected O, but got Unknown //IL_02ca: Expected O, but got Unknown //IL_02e1: Unknown result type (might be due to invalid IL or missing references) //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Expected O, but got Unknown //IL_0300: Expected O, but got Unknown //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_032c: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Expected O, but got Unknown //IL_0336: Expected O, but got Unknown //IL_034d: Unknown result type (might be due to invalid IL or missing references) //IL_0362: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Expected O, but got Unknown //IL_036c: Expected O, but got Unknown //IL_0383: Unknown result type (might be due to invalid IL or missing references) //IL_0398: Unknown result type (might be due to invalid IL or missing references) //IL_03a2: Expected O, but got Unknown //IL_03a2: Expected O, but got Unknown //IL_03b9: Unknown result type (might be due to invalid IL or missing references) //IL_03ce: Unknown result type (might be due to invalid IL or missing references) //IL_03d8: Expected O, but got Unknown //IL_03d8: Expected O, but got Unknown //IL_03ef: Unknown result type (might be due to invalid IL or missing references) //IL_0404: Unknown result type (might be due to invalid IL or missing references) //IL_040e: Expected O, but got Unknown //IL_040e: Expected O, but got Unknown //IL_0425: Unknown result type (might be due to invalid IL or missing references) //IL_043a: Unknown result type (might be due to invalid IL or missing references) //IL_0444: Expected O, but got Unknown //IL_0444: Expected O, but got Unknown //IL_045b: Unknown result type (might be due to invalid IL or missing references) //IL_0470: Unknown result type (might be due to invalid IL or missing references) //IL_047a: Expected O, but got Unknown //IL_047a: Expected O, but got Unknown //IL_0491: Unknown result type (might be due to invalid IL or missing references) //IL_04a6: Unknown result type (might be due to invalid IL or missing references) //IL_04b0: Expected O, but got Unknown //IL_04b0: Expected O, but got Unknown //IL_04c7: Unknown result type (might be due to invalid IL or missing references) //IL_04dc: Unknown result type (might be due to invalid IL or missing references) //IL_04e6: Expected O, but got Unknown //IL_04e6: Expected O, but got Unknown //IL_04fd: Unknown result type (might be due to invalid IL or missing references) //IL_0512: Unknown result type (might be due to invalid IL or missing references) //IL_051c: Expected O, but got Unknown //IL_051c: Expected O, but got Unknown //IL_0533: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_054f: Expected O, but got Unknown //IL_054f: Expected O, but got Unknown //IL_0566: Unknown result type (might be due to invalid IL or missing references) //IL_057b: Unknown result type (might be due to invalid IL or missing references) //IL_0585: Expected O, but got Unknown //IL_0585: Expected O, but got Unknown //IL_058f: Unknown result type (might be due to invalid IL or missing references) //IL_0591: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05bd: Unknown result type (might be due to invalid IL or missing references) //IL_065e: Unknown result type (might be due to invalid IL or missing references) //IL_0663: Unknown result type (might be due to invalid IL or missing references) //IL_06b5: Unknown result type (might be due to invalid IL or missing references) //IL_0704: Unknown result type (might be due to invalid IL or missing references) GameObject val = Assets.MainAssetBundle.LoadAsset<GameObject>("popo"); SurvivorDef val2 = default(SurvivorDef); CharacterBody val3 = DBZSurvivors.SetupNewDBZSurvivor(val, "Mr. Popo", ref val2); ((Component)val3).gameObject.AddComponent<PopoSuccBehaviour>(); ((Object)val3).name = "Mr. PopoBody"; val3.baseNameToken = "POPO_NAME"; val3.subtitleNameToken = "POPO_SUBTITLE"; val3.bodyFlags = (BodyFlags)16; val3.rootMotionInMainState = false; val3.mainRootSpeed = 0f; val3.baseMaxHealth = 110f; val3.levelMaxHealth = 33f; val3.baseRegen = 1.5f; val3.levelRegen = 0.2f; val3.baseMaxShield = 0f; val3.levelMaxShield = 0f; val3.baseMoveSpeed = 7f; val3.levelMoveSpeed = 0f; val3.baseAcceleration = 110f; val3.baseJumpPower = 15f; val3.levelJumpPower = 0f; val3.baseDamage = 12f; val3.levelDamage = 2.4f; val3.baseAttackSpeed = 1f; val3.levelAttackSpeed = 0f; val3.baseCrit = 1f; val3.levelCrit = 0f; val3.baseArmor = 20f; val3.levelArmor = 0f; val3.baseJumpCount = 2; val3.sprintingSpeedMultiplier = 1.45f; val3.wasLucky = false; val3.hideCrosshair = false; val3.hullClassification = (HullClassification)0; val3.portraitIcon = (Texture)(object)Assets.MainAssetBundle.LoadAsset<Sprite>("popo").texture; val3.isChampion = false; val3.currentVehicle = null; val3.skinIndex = 0u; val3.bodyColor = new Color(0.1803922f, 0.1568628f, 0.1803922f); val3.aimOriginTransform.localPosition = new Vector3(0f, 1f, 0f); ((Component)val3).gameObject.GetComponent<ModelLocator>().modelBaseTransform.localPosition = new Vector3(0f, -0.97f, 0f); ConfigFile val4 = Utils.CreateConfig(val3); ((Component)val3).GetComponent<KiBehaviour>().hasPowerup = true; DBZSurvivorDef val5 = ScriptableObject.CreateInstance<DBZSurvivorDef>(); val5.vfxColor = (VFXColor)(-1); val5.config = val4; val5.powerupBodyList = powerupBodyList; val5.memory = new PowerupMemory { spentKiCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Ki Spent", "Coefficient"), 0.0025f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, baseKillCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Base Kill", "Coefficient"), 1f, new ConfigDescription("FinalValue = xKillCoeff * baseKillCoefficient * powerupCount", (AcceptableValueBase)null, Array.Empty<object>())).Value, regularKillCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Regular Enemy Kill", "Coefficient"), 0.01f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, eliteKillCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Elite Kill", "Coefficient"), 0.02f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, bossKillCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Boss Kill", "Coefficient"), 0.035f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, baseItemCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Base Item", "Coefficient"), 1f, new ConfigDescription("FinalValue = xItemCoeff * baseItemCoefficient * powerupCount", (AcceptableValueBase)null, Array.Empty<object>())).Value, whiteItemCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: White Item", "Coefficient"), 0.001f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, greenItemCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Green Item", "Coefficient"), 0.002f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, bossItemCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Boss Item", "Coefficient"), 0.003f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, redItemCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Red Item", "Coefficient"), 0.0035f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, lunarItemMaxCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Lunar Item Max Coefficient", "Coefficient"), 0.004f, new ConfigDescription("Random chance between 0 and this value.", (AcceptableValueBase)null, Array.Empty<object>())).Value, moddedTierItemCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Ki Spent", "Coefficient"), 0.0025f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, baseDamageDealtCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Damage Dealt", "Coefficient"), 5E-07f, new ConfigDescription("FinalValue = xDamageDealt * baseDamageCoefficient * powerupCount. Item procs count towards powerup gains.", (AcceptableValueBase)null, Array.Empty<object>())).Value, baseDamageTakenCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Damage Taken", "Coefficient"), 5E-06f, new ConfigDescription("FinalValue = xDamageTaken * baseDamageCoefficient * powerupCount", (AcceptableValueBase)null, Array.Empty<object>())).Value, requiredKillsForBonus = val4.Bind<int>(new ConfigDefinition("Powerup: Required Kills For Bonus Gain", "Kills"), 100, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, bonusBasedOnRequiredKills = val4.Bind<float>(new ConfigDefinition("Powerup: Bonus Based On Required Kills", "Bonus"), 0.0025f, new ConfigDescription("FinalValue = bonusBasedOnRequiredKills * powerupCount", (AcceptableValueBase)null, Array.Empty<object>())).Value }; DBZSurvivorCatalog.AddDBZSurvivorDef(val3.baseNameToken, val5); EntityStateMachine component = ((Component)val3).GetComponent<EntityStateMachine>(); component.mainStateType = new SerializableEntityStateType(typeof(DBZCharacterMain)); string text = "<style=cSub>\r\n\r\n< ! > " + Environment.NewLine + "<style=cSub>\r\n\r\n< ! > " + Environment.NewLine + "<style=cSub>\r\n\r\n< ! > " + Environment.NewLine + "<style=cSub>\r\n\r\n< ! > "; string text2 = "..and so he left."; string text3 = "..and so he vanished."; LanguageAPI.Add("POPO_NAME", "Mr. Popo"); LanguageAPI.Add("POPO_DESCRIPTION", text); LanguageAPI.Add("POPO_SUBTITLE", ""); LanguageAPI.Add("POPO_OUTRO", text2); LanguageAPI.Add("POPO_FAIL", text3); val2.primaryColor = val3.bodyColor; val2.desiredSortPosition = 12f; SkillLocator component2 = ((Component)val3).gameObject.GetComponent<SkillLocator>(); AddPassive(component2); AddPrimary(component2); AddSecondary("POPO", component2, "_M2_NAME", "Dash One-Handed Kamehameha", "_M2_DESCRIPTION", "<style=cIsUtility>Evade</style> backwards twice then charge up a powerful single-handed Kamehameha for <style=cIsDamage>90% damage</style>.", new SerializableEntityStateType(typeof(DashState1h))); AddKiBlastSwitch(component2); AddUtility(component2); AddSpecial("POPO", component2, "_SPEC_NAME", "Kamehameha", "_SPEC_DESCRIPTION", "Charge up a powerful single-handed Kamehameha for <style=cIsDamage>120% damage</style>.", new SerializableEntityStateType(typeof(BaseKamehamehaState))); DBZAimIndicator val6 = ((Component)val3).gameObject.AddComponent<DBZAimIndicator>(); AddHitBoxes(val.transform); } internal static void CreatePowerupSurvivor(string modelName, string survivorName, string survivorNameKey, float statMultValue) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Expected O, but got Unknown //IL_0050: Expected O, but got Unknown //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01da: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_0217: Unknown result type (might be due to invalid IL or missing references) //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0232: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_027e: Unknown result type (might be due to invalid IL or missing references) //IL_0288: Expected O, but got Unknown //IL_0288: Expected O, but got Unknown //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Expected O, but got Unknown //IL_02be: Expected O, but got Unknown //IL_02d5: Unknown result type (might be due to invalid IL or missing references) //IL_02ea: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Expected O, but got Unknown //IL_02f4: Expected O, but got Unknown //IL_030b: Unknown result type (might be due to invalid IL or missing references) //IL_0320: Unknown result type (might be due to invalid IL or missing references) //IL_032a: Expected O, but got Unknown //IL_032a: Expected O, but got Unknown //IL_0341: Unknown result type (might be due to invalid IL or missing references) //IL_0356: Unknown result type (might be due to invalid IL or missing references) //IL_0360: Expected O, but got Unknown //IL_0360: Expected O, but got Unknown //IL_0377: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_0396: Expected O, but got Unknown //IL_0396: Expected O, but got Unknown //IL_03ad: Unknown result type (might be due to invalid IL or missing references) //IL_03c2: Unknown result type (might be due to invalid IL or missing references) //IL_03cc: Expected O, but got Unknown //IL_03cc: Expected O, but got Unknown //IL_03e3: Unknown result type (might be due to invalid IL or missing references) //IL_03f8: Unknown result type (might be due to invalid IL or missing references) //IL_0402: Expected O, but got Unknown //IL_0402: Expected O, but got Unknown //IL_0419: Unknown result type (might be due to invalid IL or missing references) //IL_042e: Unknown result type (might be due to invalid IL or missing references) //IL_0438: Expected O, but got Unknown //IL_0438: Expected O, but got Unknown //IL_044f: Unknown result type (might be due to invalid IL or missing references) //IL_0464: Unknown result type (might be due to invalid IL or missing references) //IL_046e: Expected O, but got Unknown //IL_046e: Expected O, but got Unknown //IL_0485: Unknown result type (might be due to invalid IL or missing references) //IL_049a: Unknown result type (might be due to invalid IL or missing references) //IL_04a4: Expected O, but got Unknown //IL_04a4: Expected O, but got Unknown //IL_04bb: Unknown result type (might be due to invalid IL or missing references) //IL_04d0: Unknown result type (might be due to invalid IL or missing references) //IL_04da: Expected O, but got Unknown //IL_04da: Expected O, but got Unknown //IL_04f1: Unknown result type (might be due to invalid IL or missing references) //IL_0506: Unknown result type (might be due to invalid IL or missing references) //IL_0510: Expected O, but got Unknown //IL_0510: Expected O, but got Unknown //IL_0527: Unknown result type (might be due to invalid IL or missing references) //IL_053c: Unknown result type (might be due to invalid IL or missing references) //IL_0546: Expected O, but got Unknown //IL_0546: Expected O, but got Unknown //IL_055d: Unknown result type (might be due to invalid IL or missing references) //IL_056f: Unknown result type (might be due to invalid IL or missing references) //IL_0579: Expected O, but got Unknown //IL_0579: Expected O, but got Unknown //IL_0590: Unknown result type (might be due to invalid IL or missing references) //IL_05a5: Unknown result type (might be due to invalid IL or missing references) //IL_05af: Expected O, but got Unknown //IL_05af: Expected O, but got Unknown //IL_05b9: Unknown result type (might be due to invalid IL or missing references) //IL_05bb: Unknown result type (might be due to invalid IL or missing references) //IL_05d5: Unknown result type (might be due to invalid IL or missing references) //IL_067b: Unknown result type (might be due to invalid IL or missing references) //IL_0689: Unknown result type (might be due to invalid IL or missing references) //IL_06e8: Unknown result type (might be due to invalid IL or missing references) //IL_0737: Unknown result type (might be due to invalid IL or missing references) //IL_0cf5: Unknown result type (might be due to invalid IL or missing references) //IL_0cfa: Unknown result type (might be due to invalid IL or missing references) //IL_0d0b: Unknown result type (might be due to invalid IL or missing references) //IL_0d1c: Unknown result type (might be due to invalid IL or missing references) //IL_0d26: Expected O, but got Unknown //IL_0d26: Expected O, but got Unknown //IL_076b: Unknown result type (might be due to invalid IL or missing references) //IL_0779: Unknown result type (might be due to invalid IL or missing references) //IL_07d8: Unknown result type (might be due to invalid IL or missing references) //IL_0827: Unknown result type (might be due to invalid IL or missing references) //IL_085b: Unknown result type (might be due to invalid IL or missing references) //IL_0869: Unknown result type (might be due to invalid IL or missing references) //IL_08c8: Unknown result type (might be due to invalid IL or missing references) //IL_0917: Unknown result type (might be due to invalid IL or missing references) //IL_094b: Unknown result type (might be due to invalid IL or missing references) //IL_0959: Unknown result type (might be due to invalid IL or missing references) //IL_09b8: Unknown result type (might be due to invalid IL or missing references) //IL_0a07: Unknown result type (might be due to invalid IL or missing references) //IL_0a3b: Unknown result type (might be due to invalid IL or missing references) //IL_0a49: Unknown result type (might be due to invalid IL or missing references) //IL_0aa8: Unknown result type (might be due to invalid IL or missing references) //IL_0af7: Unknown result type (might be due to invalid IL or missing references) //IL_0b2b: Unknown result type (might be due to invalid IL or missing references) //IL_0b41: Unknown result type (might be due to invalid IL or missing references) //IL_0ba8: Unknown result type (might be due to invalid IL or missing references) //IL_0bdd: Unknown result type (might be due to invalid IL or missing references) //IL_0c1f: Unknown result type (might be due to invalid IL or missing references) GameObject val = Assets.MainAssetBundle.LoadAsset<GameObject>(modelName); SurvivorDef val2 = default(SurvivorDef); CharacterBody val3 = DBZSurvivors.SetupNewDBZSurvivor(val, survivorName, ref val2); ((Component)val3).gameObject.AddComponent<PopoSuccBehaviour>(); ConfigFile val4 = Utils.CreateConfig(val3); float value = val4.Bind<float>(new ConfigDefinition("Powerup: Stat Multiplier", "Multiplier"), statMultValue, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value; ((Object)val3).name = survivorName + "Body"; val3.baseNameToken = survivorNameKey + "_NAME"; val3.subtitleNameToken = survivorNameKey + "_SUBTITLE"; val3.bodyFlags = (BodyFlags)16; val3.rootMotionInMainState = false; val3.mainRootSpeed = 0f; val3.baseMaxHealth = 110f * value; val3.levelMaxHealth = 33f * value; val3.baseRegen = 1.5f * value; val3.levelRegen = 0.2f * value; val3.baseMaxShield = 0f; val3.levelMaxShield = 0f; val3.baseMoveSpeed = 7f; val3.levelMoveSpeed = 0f; val3.baseAcceleration = 110f; val3.baseJumpPower = 15f; val3.levelJumpPower = 0f; val3.baseDamage = 12f * value; val3.levelDamage = 2.4f * value; val3.baseAttackSpeed = 1f; val3.levelAttackSpeed = 0f; val3.baseCrit = 1f * value; val3.levelCrit = 0f; val3.baseArmor = 20f * value; val3.levelArmor = 0f; val3.baseJumpCount = 2; val3.sprintingSpeedMultiplier = 1.45f; val3.wasLucky = false; val3.hideCrosshair = false; val3.hullClassification = (HullClassification)0; val3.isChampion = false; val3.currentVehicle = null; val3.skinIndex = 0u; val3.bodyColor = new Color(0.1803922f, 0.1568628f, 0.1803922f); KiBehaviour component = ((Component)val3).GetComponent<KiBehaviour>(); component.hasPowerup = true; component.maxKiValue = 1f * value; EntityStateMachine component2 = ((Component)val3).GetComponent<EntityStateMachine>(); component2.initialStateType = new SerializableEntityStateType(typeof(BasePowerupSpawnState)); component2.mainStateType = new SerializableEntityStateType(typeof(DBZCharacterMain)); DBZSurvivorDef val5 = ScriptableObject.CreateInstance<DBZSurvivorDef>(); val5.config = val4; val5.powerupBodyList = powerupBodyList; val5.memory = new PowerupMemory { spentKiCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Ki Spent", "Coefficient"), 0.0025f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, baseKillCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Base Kill", "Coefficient"), 1f, new ConfigDescription("FinalValue = xKillCoeff * baseKillCoefficient * powerupCount", (AcceptableValueBase)null, Array.Empty<object>())).Value, regularKillCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Regular Enemy Kill", "Coefficient"), 0.01f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, eliteKillCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Elite Kill", "Coefficient"), 0.02f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, bossKillCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Boss Kill", "Coefficient"), 0.035f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, baseItemCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Base Item", "Coefficient"), 1f, new ConfigDescription("FinalValue = xItemCoeff * baseItemCoefficient * powerupCount", (AcceptableValueBase)null, Array.Empty<object>())).Value, whiteItemCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: White Item", "Coefficient"), 0.001f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, greenItemCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Green Item", "Coefficient"), 0.002f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, bossItemCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Boss Item", "Coefficient"), 0.003f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, redItemCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Red Item", "Coefficient"), 0.0035f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, lunarItemMaxCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Lunar Item Max Coefficient", "Coefficient"), 0.004f, new ConfigDescription("Random chance between 0 and this value.", (AcceptableValueBase)null, Array.Empty<object>())).Value, moddedTierItemCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Ki Spent", "Coefficient"), 0.0025f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, baseDamageDealtCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Damage Dealt", "Coefficient"), 5E-07f, new ConfigDescription("FinalValue = xDamageDealt * baseDamageCoefficient * powerupCount. Item procs count towards powerup gains.", (AcceptableValueBase)null, Array.Empty<object>())).Value, baseDamageTakenCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Damage Taken", "Coefficient"), 5E-06f, new ConfigDescription("FinalValue = xDamageTaken * baseDamageCoefficient * powerupCount", (AcceptableValueBase)null, Array.Empty<object>())).Value, requiredKillsForBonus = val4.Bind<int>(new ConfigDefinition("Powerup: Required Kills For Bonus Gain", "Kills"), 100, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value, bonusBasedOnRequiredKills = val4.Bind<float>(new ConfigDefinition("Powerup: Bonus Based On Required Kills", "Bonus"), 0.0025f, new ConfigDescription("FinalValue = bonusBasedOnRequiredKills * powerupCount", (AcceptableValueBase)null, Array.Empty<object>())).Value }; val3.aimOriginTransform.localPosition = new Vector3(0f, 1f, 0f); SkillLocator component3 = ((Component)val3).gameObject.GetComponent<SkillLocator>(); switch (survivorName) { case "Mr. Popo (2nd Form)": ((Component)val3).gameObject.GetComponent<ModelLocator>().modelBaseTransform.localPosition = new Vector3(0f, -1.05f, 0f); val5.vfxColor = (VFXColor)(-1); val3.portraitIcon = (Texture)(object)Assets.MainAssetBundle.LoadAsset<Sprite>("popo2").texture; val2.desiredSortPosition = 12.1f; AddPassive(component3); AddPrimary(component3); AddSecondary("Mr. Popo (2nd Form)", component3, "_M2_NAME", "Dash Dual Kamehameha", "_M2_DESCRIPTION", "<style=cIsUtility>Evade</style> backwards twice then charge up two powerful single-handed Kamehameha for <style=cIsDamage>60% damage</style> each.", new SerializableEntityStateType(typeof(DashState2h))); AddKiBlastSwitch(component3); AddUtility(component3); AddSpecial("Mr. Popo (2nd Form)", component3, "_SPEC_NAME", "Charge Kamehameha", "_SPEC_DESCRIPTION", "Charge a powerful Kamehameha for <style=cIsDamage>120%-360% damage</style>.", new SerializableEntityStateType(typeof(KamehamehaChargeState))); break; case "Mr. Swolo": ((Component)val3).gameObject.GetComponent<ModelLocator>().modelBaseTransform.localPosition = new Vector3(0f, -0.68f, 0f); val5.vfxColor = (VFXColor)1; val3.portraitIcon = (Texture)(object)Assets.MainAssetBundle.LoadAsset<Sprite>("swolo").texture; val2.desiredSortPosition = 12.2f; AddPassive(component3); AddPrimary(component3); AddSecondary("Mr. Swolo", component3, "_M2_NAME", "Final Dual Kamehameha", "_M2_DESCRIPTION", "Charge up two powerful single-handed Kamehameha for <style=cIsDamage>80% damage</style> each.", new SerializableEntityStateType(typeof(FinalDualKamehameha))); AddKiBlastSwitch(component3); AddUtility(component3); AddSpecial("Mr. Swolo", component3, "_SPEC_NAME", "3X Kamehameha", "_SPEC_DESCRIPTION", "Charge a powerful Kamehameha for <style=cIsDamage>150%-450% damage</style>.", new SerializableEntityStateType(typeof(Kamehameha3XChargeState))); break; case "Mr. Swolo (SSJ)": ((Component)val3).gameObject.GetComponent<ModelLocator>().modelBaseTransform.localPosition = new Vector3(0f, -0.68f, 0f); val5.vfxColor = (VFXColor)1; val3.portraitIcon = (Texture)(object)Assets.MainAssetBundle.LoadAsset<Sprite>("swoloSSJ").texture; val2.desiredSortPosition = 12.3f; AddPassive(component3); AddPrimary(component3); AddSecondary("Mr. Swolo (SSJ)", component3, "_M2_NAME", "Final Dual Kamehameha", "_M2_DESCRIPTION", "Charge up two powerful single-handed Kamehameha for <style=cIsDamage>80% damage</style> each.", new SerializableEntityStateType(typeof(FinalDualKamehameha))); AddKiBlastSwitch(component3); AddUtility(component3); AddSpecial("Mr. Swolo (SSJ)", component3, "_SPEC_NAME", "10X Kamehameha", "_SPEC_DESCRIPTION", "Charge a powerful Kamehameha for <style=cIsDamage>150%-1500% damage</style>.", new SerializableEntityStateType(typeof(Kamehameha10XChargeState))); break; case "Mr. Swolo (SSJ2)": ((Component)val3).gameObject.GetComponent<ModelLocator>().modelBaseTransform.localPosition = new Vector3(0f, -0.68f, 0f); val5.vfxColor = (VFXColor)1; val3.portraitIcon = (Texture)(object)Assets.MainAssetBundle.LoadAsset<Sprite>("swoloSSJ2").texture; val2.desiredSortPosition = 12.4f; AddPassive(component3); AddPrimary(component3); AddSecondary("Mr. Swolo (SSJ2)", component3, "_M2_NAME", "Final Dual Kamehameha", "_M2_DESCRIPTION", "Charge up two powerful single-handed Kamehameha for <style=cIsDamage>80% damage</style> each.", new SerializableEntityStateType(typeof(FinalDualKamehameha))); AddKiBlastSwitch(component3); AddUtility(component3); AddSpecial("Mr. Swolo (SSJ2)", component3, "_SPEC_NAME", "10X Kamehameha", "_SPEC_DESCRIPTION", "Charge a powerful Kamehameha for <style=cIsDamage>150%-1500% damage</style>.", new SerializableEntityStateType(typeof(Kamehameha10XChargeState))); break; case "Mr. Swolo (SSJ3)": ((Component)val3).gameObject.GetComponent<ModelLocator>().modelBaseTransform.localPosition = new Vector3(0f, -0.68f, 0f); val5.vfxColor = (VFXColor)1; val3.portraitIcon = (Texture)(object)Assets.MainAssetBundle.LoadAsset<Sprite>("swoloSSJ3").texture; val2.desiredSortPosition = 12.5f; AddPassive(component3); AddPrimary(component3); AddSecondary("Mr. Swolo (SSJ3)", component3, "_M2_NAME", "Final Dual Kamehameha", "_M2_DESCRIPTION", "Charge up two powerful single-handed Kamehameha for <style=cIsDamage>80% damage</style> each.", new SerializableEntityStateType(typeof(FinalDualKamehameha))); AddKiBlastSwitch(component3); AddUtility(component3); AddSpecial("Mr. Swolo (SSJ3)", component3, "_SPEC_NAME", "10X Kamehameha", "_SPEC_DESCRIPTION", "Charge a powerful Kamehameha for <style=cIsDamage>150%-1500% damage</style>.", new SerializableEntityStateType(typeof(Kamehameha10XChargeState))); break; case "Mr. Swolo (SSB)": ((Component)val3).gameObject.GetComponent<ModelLocator>().modelBaseTransform.localPosition = new Vector3(0f, -0.85f, 0f); component.hasPowerup = false; val5.vfxColor = (VFXColor)0; val5.powerupBodyList = null; val3.portraitIcon = (Texture)(object)Assets.MainAssetBundle.LoadAsset<Sprite>("swoloSSJB").texture; val2.desiredSortPosition = 12.6f; AddPassive(component3); AddPrimary(component3); AddSecondary("Mr. Swolo (SSB)", component3, "_M2_NAME", "100X Beast Kamehameha", "_M2_DESCRIPTION", "Quickly charge a powerful Kamehameha for <style=cIsDamage>300%-1500% damage</style>.", new SerializableEntityStateType(typeof(BeastKamehameha)), "special"); AddSwitch("Mr. Swolo (SSB)", component3, "ALT_M2_NAME", "Ray Blast", "ALT_M2_DESCRIPTION", "Instantly shock an enemy for <style=cIsDamage>150%</style> damage.", new SerializableEntityStateType(typeof(RayBlast)), "ray"); AddUtility(component3); AddSpecial("Mr. Swolo (SSB)", component3, "_SPEC_NAME", "Beast Genkidama", "_SPEC_DESCRIPTION", "Charge a extremely powerful sphere of pure life energy by consuming nearby life energy for <style=cIsDamage>250%</style> damage, then release it. It explodes on collision, dealing all the damage it gathered at once in a large radius.", new SerializableEntityStateType(typeof(BaseGenkidamaState)), "genkidama"); break; } DBZSurvivorCatalog.AddDBZSurvivorDef(val3.baseNameToken, val5); string text = "<style=cSub>\r\n\r\n< ! > " + Environment.NewLine + "<style=cSub>\r\n\r\n< ! > " + Environment.NewLine + "<style=cSub>\r\n\r\n< ! > " + Environment.NewLine + "<style=cSub>\r\n\r\n< ! > "; string text2 = "..and so he left, the beast unleashed."; string text3 = "..and so he vanished, to be revived by Shenlong once more."; LanguageAPI.Add(survivorNameKey + "_NAME", survivorName); LanguageAPI.Add(survivorNameKey + "_DESCRIPTION", text); LanguageAPI.Add(survivorNameKey + "_SUBTITLE", "The Beast Within"); LanguageAPI.Add(survivorNameKey + "_OUTRO", text2); LanguageAPI.Add(survivorNameKey + "_FAIL", text3); val2.primaryColor = val3.bodyColor; val2.hidden = val4.Bind<bool>(new ConfigDefinition("Hidden Survivor", "Hidden"), true, new ConfigDescription("Hide in Character Select", (AcceptableValueBase)null, Array.Empty<object>())).Value; DBZAimIndicator val6 = ((Component)val3).gameObject.AddComponent<DBZAimIndicator>(); AddHitBoxes(val.transform); } private static void AddPassive(SkillLocator component) { component.passiveSkill.enabled = true; component.passiveSkill.skillNameToken = "POPO_PASSIVE_NAME"; component.passiveSkill.skillDescriptionToken = "POPO_PASSIVE_DESCRIPTION"; component.passiveSkill.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("passive"); } private static void AddPrimary(SkillLocator skillLocator) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Expected O, but got Unknown //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) DBZSkillDef val = ScriptableObject.CreateInstance<DBZSkillDef>(); LanguageAPI.Add("POPO_M1", "Fierce Fist"); ((SkillDef)val).activationStateMachineName = "Weapon"; ((SkillDef)val).activationState = new SerializableEntityStateType(typeof(DBZMeleeSkillState)); ((SkillDef)val).baseMaxStock = 0; ((SkillDef)val).baseRechargeInterval = 0f; ((SkillDef)val).beginSkillCooldownOnSkillEnd = true; ((SkillDef)val).canceledFromSprinting = false; ((SkillDef)val).fullRestockOnAssign = true; ((SkillDef)val).interruptPriority = (InterruptPriority)0; ((SkillDef)val).isCombatSkill = true; ((SkillDef)val).mustKeyPress = false; ((SkillDef)val).cancelSprintingOnActivation = true; ((SkillDef)val).rechargeStock = 0; ((SkillDef)val).requiredStock = 0; ((SkillDef)val).stockToConsume = 0; ((SkillDef)val).icon = Assets.MainAssetBundle.LoadAsset<Sprite>("m1"); ((SkillDef)val).skillDescriptionToken = "DBZ_MELEE_SKILL_DESCRIPTION"; ((SkillDef)val).skillName = "POPO_M1"; ((SkillDef)val).skillNameToken = "POPO_M1"; ContentAddition.AddSkillDef((SkillDef)(object)val); skillLocator.primary = ((Component)skillLocator).gameObject.AddComponent<GenericSkill>(); SkillFamily val2 = ScriptableObject.CreateInstance<SkillFamily>(); val2.variants = (Variant[])(object)new Variant[1]; Reflection.SetFieldValue<SkillFamily>((object)skillLocator.primary, "_skillFamily", val2); SkillFamily skillFamily = skillLocator.primary.skillFamily; Variant[] variants = skillFamily.variants; Variant val3 = new Variant { skillDef = (SkillDef)(object)val }; ((Variant)(ref val3)).viewableNode = new Node(((SkillDef)val).skillNameToken, false, (Node)null); variants[0] = val3; ContentAddition.AddSkillFamily(skillFamily); } private static void AddSecondary(string survivorNameKey, SkillLocator skillLocator, string nameKey, string Name, string descriptionKey, string Description, SerializableEntityStateType state, string spriteName = "m2") { //IL_0031: 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_0061: 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_0151: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Expected O, but got Unknown //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) LanguageAPI.Add(survivorNameKey + nameKey, Name); LanguageAPI.Add(survivorNameKey + descriptionKey, Description); DBZSkillDef val = ScriptableObject.CreateInstance<DBZSkillDef>(); ((SkillDef)val).activationStateMachineName = "NoMovement"; ((SkillDef)val).activationState = state; ((SkillDef)val).baseMaxStock = 1; ((SkillDef)val).baseRechargeInterval = 6f; ((SkillDef)val).beginSkillCooldownOnSkillEnd = true; ((SkillDef)val).canceledFromSprinting = false; ((SkillDef)val).fullRestockOnAssign = true; ((SkillDef)val).interruptPriority = (InterruptPriority)0; ((SkillDef)val).isCombatSkill = true; ((SkillDef)val).mustKeyPress = false; ((SkillDef)val).cancelSprintingOnActivation = true; ((SkillDef)val).rechargeStock = 1; ((SkillDef)val).requiredStock = 1; ((SkillDef)val).stockToConsume = 1; ((SkillDef)val).icon = Assets.MainAssetBundle.LoadAsset<Sprite>(spriteName); ((SkillDef)val).skillDescriptionToken = survivorNameKey + descriptionKey; ((SkillDef)val).skillName = survivorNameKey + nameKey; ((SkillDef)val).skillNameToken = survivorNameKey + nameKey; val.kiCost = 0.2f; val.isSwitch = true; ((SkillDef)val).keywordTokens = val.newKeywordTokens; ContentAddition.AddSkillDef((SkillDef)(object)val); skillLocator.secondary = ((Component)skillLocator).gameObject.AddComponent<GenericSkill>(); SkillFamily val2 = ScriptableObject.CreateInstance<SkillFamily>(); val2.variants = (Variant[])(object)new Variant[1]; Reflection.SetFieldValue<SkillFamily>((object)skillLocator.secondary, "_skillFamily", val2); SkillFamily skillFamily = skillLocator.secondary.skillFamily; Variant[] variants = skillFamily.variants; Variant val3 = new Variant { skillDef = (SkillDef)(object)val }; ((Variant)(ref val3)).viewableNode = new Node(((SkillDef)val).skillNameToken, false, (Node)null); variants[0] = val3; ContentAddition.AddSkillFamily(skillFamily); } private static void AddKiBlastSwitch(SkillLocator skillLocator, string spriteName = "m2alt") { //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_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Expected O, but got Unknown //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) DBZSkillDef val = ScriptableObject.CreateInstance<DBZSkillDef>(); ((SkillDef)val).activationStateMachineName = "Slide"; ((SkillDef)val).activationState = new SerializableEntityStateType(typeof(KiBlast)); ((SkillDef)val).baseMaxStock = 1; ((SkillDef)val).baseRechargeInterval = 0.4f; ((SkillDef)val).beginSkillCooldownOnSkillEnd = true; ((SkillDef)val).canceledFromSprinting = false; ((SkillDef)val).fullRestockOnAssign = true; ((SkillDef)val).interruptPriority = (InterruptPriority)0; ((SkillDef)val).isCombatSkill = true; ((SkillDef)val).mustKeyPress = false; ((SkillDef)val).cancelSprintingOnActivation = false; ((SkillDef)val).rechargeStock = 1; ((SkillDef)val).requiredStock = 1; ((SkillDef)val).stockToConsume = 1; ((SkillDef)val).icon = Assets.MainAssetBundle.LoadAsset<Sprite>(spriteName); ((SkillDef)val).skillDescriptionToken = "DBZ_KIBLAST_SKILL_DESCRIPTION"; ((SkillDef)val).skillName = "DBZ_KIBLAST_SKILL_NAME"; ((SkillDef)val).skillNameToken = "DBZ_KIBLAST_SKILL_NAME"; val.kiCost = 0.05f; val.isSwitch = true; val.isAimBased = true; ((SkillDef)val).keywordTokens = val.newKeywordTokens; ContentAddition.AddSkillDef((SkillDef)(object)val); GenericSkill val2 = ((Component)skillLocator).gameObject.AddComponent<GenericSkill>(); SkillFamily val3 = ScriptableObject.CreateInstance<SkillFamily>(); val3.variants = (Variant[])(object)new Variant[1]; Reflection.SetFieldValue<SkillFamily>((object)val2, "_skillFamily", val3); SkillFamily skillFamily = val2.skillFamily; Variant[] variants = skillFamily.variants; Variant val4 = new Variant { skillDef = (SkillDef)(object)val }; ((Variant)(ref val4)).viewableNode = new Node(((SkillDef)val).skillNameToken, false, (Node)null); variants[0] = val4; ContentAddition.AddSkillFamily(skillFamily); SkillSwitchBehaviour val5 = ((Component)skillLocator).gameObject.AddComponent<SkillSwitchBehaviour>(); val5.secondarySkillDefList = new List<SkillDef> { skillLocator.secondary.skillFamily.variants[0].skillDef, (SkillDef)(object)val }; } private static void AddSwitch(string survivorNameKey, SkillLocator skillLocator, string nameKey, string Name, string descriptionKey, string Description, SerializableEntityStateType state, string spriteName = "m2alt") { //IL_0031: 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_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Expected O, but got Unknown //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) LanguageAPI.Add(survivorNameKey + nameKey, Name); LanguageAPI.Add(survivorNameKey + descriptionKey, Description); DBZSkillDef val = ScriptableObject.CreateInstance<DBZSkillDef>(); ((SkillDef)val).activationStateMachineName = "Slide"; ((SkillDef)val).activationState = state; ((SkillDef)val).baseMaxStock = 1; ((SkillDef)val).baseRechargeInterval = 0.4f; ((SkillDef)val).beginSkillCooldownOnSkillEnd = true; ((SkillDef)val).canceledFromSprinting = false; ((SkillDef)val).fullRestockOnAssign = true; ((SkillDef)val).interruptPriority = (InterruptPriority)0; ((SkillDef)val).isCombatSkill = true; ((SkillDef)val).mustKeyPress = false; ((SkillDef)val).cancelSprintingOnActivation = false; ((SkillDef)val).rechargeStock = 1; ((SkillDef)val).requiredStock = 1; ((SkillDef)val).stockToConsume = 1; ((SkillDef)val).icon = Assets.MainAssetBundle.LoadAsset<Sprite>(spriteName); ((SkillDef)val).skillDescriptionToken = survivorNameKey + descriptionKey; ((SkillDef)val).skillName = survivorNameKey + nameKey; ((SkillDef)val).skillNameToken = survivorNameKey + nameKey; val.kiCost = 0.05f; val.isSwitch = true; val.isAimBased = true; ((SkillDef)val).keywordTokens = val.newKeywordTokens; ContentAddition.AddSkillDef((SkillDef)(object)val); GenericSkill val2 = ((Component)skillLocator).gameObject.AddComponent<GenericSkill>(); SkillFamily val3 = ScriptableObject.CreateInstance<SkillFamily>(); val3.variants = (Variant[])(object)new Variant[1]; Reflection.SetFieldValue<SkillFamily>((object)val2, "_skillFamily", val3); SkillFamily skillFamily = val2.skillFamily; Variant[] variants = skillFamily.variants; Variant val4 = new Variant { skillDef = (SkillDef)(object)val }; ((Variant)(ref val4)).viewableNode = new Node(((SkillDef)val).skillNameToken, false, (Node)null); variants[0] = val4; ContentAddition.AddSkillFamily(skillFamily); SkillSwitchBehaviour val5 = ((Component)skillLocator).gameObject.AddComponent<SkillSwitchBehaviour>(); val5.secondarySkillDefList = new List<SkillDef> { skillLocator.secondary.skillFamily.variants[0].skillDef, (SkillDef)(object)val }; } private static void AddUtility(SkillLocator skillLocator, string spriteName = "utility") { //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_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Expected O, but got Unknown //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) DBZSkillDef val = ScriptableObject.CreateInstance<DBZSkillDef>(); ((SkillDef)val).activationStateMachineName = "NoMovement"; ((SkillDef)val).activationState = new SerializableEntityStateType(typeof(BaseKiState)); ((SkillDef)val).baseMaxStock = 0; ((SkillDef)val).baseRechargeInterval = 0f; ((SkillDef)val).beginSkillCooldownOnSkillEnd = true; ((SkillDef)val).canceledFromSprinting = false; ((SkillDef)val).fullRestockOnAssign = true; ((SkillDef)val).interruptPriority = (InterruptPriority)0; ((SkillDef)val).isCombatSkill = true; ((SkillDef)val).mustKeyPress = false; ((SkillDef)val).cancelSprintingOnActivation = true; ((SkillDef)val).rechargeStock = 0; ((SkillDef)val).requiredStock = 0; ((SkillDef)val).stockToConsume = 0; ((SkillDef)val).icon = Assets.MainAssetBundle.LoadAsset<Sprite>(spriteName); ((SkillDef)val).skillDescriptionToken = "DBZ_KICHARGE_DESCRIPTION"; ((SkillDef)val).skillName = "DBZ_KICHARGE_NAME"; ((SkillDef)val).skillNameToken = "DBZ_KICHARGE_NAME"; val.isKiCharge = true; ContentAddition.AddSkillDef((SkillDef)(object)val); skillLocator.utility = ((Component)skillLocator).gameObject.AddComponent<GenericSkill>(); SkillFamily val2 = ScriptableObject.CreateInstance<SkillFamily>(); val2.variants = (Variant[])(object)new Variant[1]; Reflection.SetFieldValue<SkillFamily>((object)skillLocator.utility, "_skillFamily", val2); SkillFamily skillFamily = skillLocator.utility.skillFamily; Variant[] variants = skillFamily.variants; Variant val3 = new Variant { skillDef = (SkillDef)(object)val }; ((Variant)(ref val3)).viewableNode = new Node(((SkillDef)val).skillNameToken, false, (Node)null); variants[0] = val3; ContentAddition.AddSkillFamily(skillFamily); } private static void AddSpecial(string survivorNameKey, SkillLocator skillLocator, string nameKey, string Name, string descriptionKey, string Description, SerializableEntityStateType state, string spriteName = "special") { //IL_0031: 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_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Expected O, but got Unknown //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) LanguageAPI.Add(survivorNameKey + nameKey, Name); LanguageAPI.Add(survivorNameKey + descriptionKey, Description); DBZSkillDef val = ScriptableObject.CreateInstance<DBZSkillDef>(); ((SkillDef)val).activationStateMachineName = "NoMovement"; ((SkillDef)val).activationState = state; ((SkillDef)val).baseMaxStock = 1; ((SkillDef)val).baseRechargeInterval = 12f; ((SkillDef)val).beginSkillCooldownOnSkillEnd = true; ((SkillDef)val).canceledFromSprinting = false; ((SkillDef)val).fullRestockOnAssign = true; ((SkillDef)val).interruptPriority = (InterruptPriority)0; ((SkillDef)val).isCombatSkill = true; ((SkillDef)val).mustKeyPress = false; ((SkillDef)val).cancelSprintingOnActivation = true; ((SkillDef)val).rechargeStock = 1; ((SkillDef)val).requiredStock = 1; ((SkillDef)val).stockToConsume = 1; ((SkillDef)val).icon = Assets.MainAssetBundle.LoadAsset<Sprite>(spriteName); ((SkillDef)val).skillDescriptionToken = survivorNameKey + descriptionKey; ((SkillDef)val).skillName = survivorNameKey + nameKey; ((SkillDef)val).skillNameToken = survivorNameKey + nameKey; val.kiCost = 0.55f; ((SkillDef)val).keywordTokens = val.newKeywordTokens; ContentAddition.AddSkillDef((SkillDef)(object)val); skillLocator.special = ((Component)skillLocator).gameObject.AddComponent<GenericSkill>(); SkillFamily val2 = ScriptableObject.CreateInstance<SkillFamily>(); val2.variants = (Variant[])(object)new Variant[1]; Reflection.SetFieldValue<SkillFamily>((object)skillLocator.special, "_skillFamily", val2); SkillFamily skillFamily = skillLocator.special.skillFamily; Variant[] variants = skillFamily.variants; Variant val3 = new Variant { skillDef = (SkillDef)(object)val }; ((Variant)(ref val3)).viewableNode = new Node(((SkillDef)val).skillNameToken, false, (Node)null); variants[0] = val3; ContentAddition.AddSkillFamily(skillFamily); } } internal class DashState2h : DashState1h { public override void FixedUpdate() { base.FixedUpdate(); if (Object.op_Implicit((Object)(object)((BaseDBZSkillState)this).eventBehaviour) && ((BaseDBZSkillState)this).eventBehaviour.nextState) { ((BaseDBZSkillState)this).eventBehaviour.nextState = false; if (((EntityState)this).isAuthority) { SetState(); } } } protected override void SetState() { ((EntityState)this).outer.SetNextState((EntityState)(object)new DashDealKamehamehaFireState()); } } internal class DashDealKamehamehaFireState : DualKamehamehaFireState { public override void OnEnter() { ((BeamFire)this).damageCoefficient = 0.9f; ((EntityState)this).GetComponent<DBZSkillBehaviour>().float1 = ((BeamFire)this).damageCoefficient; ((DualKamehamehaFireState)this).OnEnter(); } } internal class DashState1h : BaseDBZSkillState { private float duration = 1.8f; private Vector3 blinkVector = Vector3.zero; private float speedCoefficient = 400f; private bool canTP; protected virtual void PlayAnimation() { ((EntityState)this).PlayAnimation("FullBody, Override", "Beam1h", "M2", duration); } public override void OnEnter() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //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) ((BaseDBZSkillState)this).OnEnter(); base.skillBehaviour.aimRay = ((BaseState)this).GetAimRay(); ((BaseDBZSkillState)this).AdjustModelForwardAimVector(); if (Object.op_Implicit((Object)(object)base.animator)) { base.animator.SetBool("beamOver", false); } PlayAnimation(); if (Object.op_Implicit((Object)(object)base.eventBehaviour)) { base.eventBehaviour.dashCount = 0; base.eventBehaviour.stopDash = false; } if (Object.op_Implicit((Object)(object)base.skillBehaviour) && Object.op_Implicit((Object)(object)base.kiBehaviour)) { base.skillBehaviour.SetExecutableSkills(1); base.skillBehaviour.aimRay = ((BaseState)this).GetAimRay(); blinkVector = ((EntityState)this).characterDirection.moveVector; } } protected virtual void SetState() { ((EntityState)this).outer.SetNextState((EntityState)(object)new ChargeDashKamehameha()); } public override void FixedUpdate() { //IL_0059: 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_007a: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: 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_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0155: 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_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); if (!Object.op_Implicit((Object)(object)base.eventBehaviour)) { return; } if (base.eventBehaviour.dashCount > 0 && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { DBZSkillEventHandler eventBehaviour = base.eventBehaviour; eventBehaviour.dashCount--; RaycastHit val = default(RaycastHit); canTP = Physics.Raycast(((EntityState)this).characterBody.corePosition, -((EntityState)this).characterDirection.forward, ref val, 18f, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask)); AkSoundEngine.PostEvent(Sounds.Play_DBZ_Common_Shunpo, ((EntityState)this).gameObject); EffectManager.SimpleEffect(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Brother/BrotherDashEffect.prefab").WaitForCompletion(), ((EntityState)this).characterBody.footPosition, Quaternion.identity, false); if (!canTP && ((EntityState)this).isAuthority) { TeleportHelper.TeleportBody(((EntityState)this).characterBody, ((EntityState)this).characterBody.footPosition + -((EntityState)this).characterDirection.forward * 18f); } } if (!base.eventBehaviour.stopDash) { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterMotor.velocity = Vector3.zero; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.rootMotion += blinkVector * (speedCoefficient * Time.fixedDeltaTime); } } else { SetState(); } } } internal class ChargeDashKamehameha : BaseKamehamehaState { public override void OnEnter() { ((BeamBaseState)this).damageCoefficient = 0.9f; ((BaseKamehamehaState)this).OnEnter(); ((BaseDBZSkillState)this).animator.SetBool("chargeOver", false); } public override void OnExit() { ((BeamBaseState)this).OnExit(); ((BaseDBZSkillState)this).animator.SetBool("chargeOver", true); } protected override void SetState() { ((EntityState)this).outer.SetNextState((EntityState)(object)new FireDashKamehameha()); } protected override void PlayAnimation() { } } internal class FireDashKamehameha : KamehamehaFireState { public override void OnEnter() { ((BeamFire)this).beamMuzzle = "beamMuzzle1h"; ((BeamFire)this).beamRadius = 2f; ((KamehamehaFireState)this).OnEnter(); } } internal class KiBlast : BaseKiBlastState { public override void OnEnter() { DBZSkillBehaviour component = ((EntityState)this).GetComponent<DBZSkillBehaviour>(); component.bool1 = !component.bool1; if (component.bool1) { base.animName = "KiBlastR"; base.muzzleString = "muzzleHandR"; } else { base.animName = "KiBlastL"; base.muzzleString = "muzzleHandL"; } ((BaseKiBlastState)this).OnEnter(); } } internal class RayBlast : BaseKiBlastState { private int count = 16; public override void OnEnter() { base.chargeID = Sounds.Play_DBZ_Common_RayBlast_Impact; base.fireID = 0u; base.muzzleFlashPrefab = Prefabs.KiBlastMuzzleFlashRed; base.muzzleString = "muzzleHnadL"; base.baseDamageCoefficient = 1.5f; ((BaseKiBlastState)this).OnEnter(); } protected override void Fire() { //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_002e: 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_0046: Expected O, but got Unknown //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Expected O, but got Unknown //IL_00dc: 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_00ed: 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_0130: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0142: 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_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0155: 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_0163: Expected O, but got Unknown if (Object.op_Implicit((Object)(object)base.target)) { int num = 0; while (num < count) { num++; EffectData val = new EffectData { origin = ((BaseState)this).FindModelChild("muzzleHandL").position, genericFloat = 0.35f }; val.SetHurtBoxReference(base.target); EffectManager.SpawnEffect(Prefabs.rayBlastEffect, val, true); } EffectData val2 = new EffectData { origin = base.target.GetComponent<CharacterBody>().corePosition }; val2.SetHurtBoxReference(base.target); EffectManager.SpawnEffect(Prefabs.rayBlastImpactEffect, val2, false); HealthComponent component = base.target.GetComponent<HealthComponent>(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.body) && NetworkServer.active) { DamageInfo val3 = new DamageInfo { attacker = ((EntityState)this).gameObject, inflictor = ((EntityState)this).gameObject, damage = ((EntityState)this).characterBody.damage * base.baseDamageCoefficient * (float)Mathf.Clamp(((EntityState)this).characterBody.inventory.GetItemCount(Items.SecondarySkillMagazine), 1, 99), procCoefficient = 0f, damageType = (DamageType)0, damageColorIndex = (DamageColorIndex)0, position = component.body.corePosition, rejected = false }; component.TakeDamage(val3); } } } } internal class FinalDualKamehameha : DualKamehamehaBaseState { private bool canPlay; private float stopwatch; protected override void PlayChargeVFX() { } protected override void PlaySound() { } public override void OnEnter() { base.baseDamageCoefficient = 0.8f; ((DualKamehamehaBaseState)this).OnEnter(); } public override void FixedUpdate() { ((DualKamehamehaBaseState)this).FixedUpdate(); if (Object.op_Implicit((Object)(object)((BaseDBZSkillState)this).eventBehaviour) && ((BaseDBZSkillState)this).eventBehaviour.charge) { ((BaseDBZSkillState)this).eventBehaviour.charge = false; canPlay = true; EffectManager.SimpleMuzzleFlash(Prefabs.chargeFXCyan, ((EntityState)this).gameObject, "muzzleHandR", false); EffectManager.SimpleMuzzleFlash(Prefabs.chargeFXCyan, ((EntityState)this).gameObject, "muzzleHandL", false); AkSoundEngine.PostEvent(((BeamBaseState)this).chargeSFX, ((EntityState)this).gameObject); } if (canPlay) { stopwatch += Time.fixedDeltaTime; if (stopwatch >= 0.05f) { canPlay = false; AkSoundEngine.PostEvent(((BeamBaseState)this).chargeSFX, ((EntityState)this).gameObject); } } } } internal class BeastKamehameha : Kamehameha100XChargeState { protected override bool ButtonReleased() { return false; } } internal class PopoSuccOrb : Orb { public float speed; public override void Begin() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001c: 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_0034: Expected O, but got Unknown ((Orb)this).duration = ((Orb)this).distanceToTarget / speed; EffectData val = new EffectData { origin = base.origin, genericFloat = ((Orb)this).duration }; val.SetHurtBoxReference(base.target); EffectManager.SpawnEffect(Prefabs.popoSuccEffect, val, true); } public override void OnArrival() { if (Object.op_Implicit((Object)(object)base.target) && Object.op_Implicit((Object)(object)base.target.healthComponent)) { KiBehaviour component = ((Component)base.target.healthComponent).gameObject.GetComponent<KiBehaviour>(); if (Object.op_Implicit((Object)(object)component)) { component.AddKi(0.05f); AkSoundEngine.PostEvent(Sounds.Play_DBZ_Common_Consume, ((Component)base.target.healthComponent).gameObject); } } } } internal class PopoSuccBehaviour : MonoBehaviour { private CharacterBody body; private float stopwatch; private float maxDistance = 10f; private float delay => 1f / Mathf.Clamp(Mathf.Clamp(Object.op_Implicit((Object)(object)body) ? body.level : 1f, 1f, 30f) / 6f, 1f, 5f); private void OnEnable() { body = ((Component)this).GetComponent<CharacterBody>(); } private void FixedUpdate() { //IL_004c: 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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_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_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) stopwatch += Time.fixedDeltaTime; if (!(stopwatch >= delay)) { return; } Vector3 val = (Object.op_Implicit((Object)(object)body) ? body.corePosition : ((Component)this).transform.position); TeamIndex val2 = (TeamIndex)((!Object.op_Implicit((Object)(object)body)) ? 1 : ((int)body.teamComponent.teamIndex)); List<ProjectileController> instancesList = InstanceTracker.GetInstancesList<ProjectileController>(); List<ProjectileController> list = new List<ProjectileController>(); int i = 0; for (int count = instancesList.Count; i < count; i++) { ProjectileController val3 = instancesList[i]; if (!val3.cannotBeDeleted && val3.teamFilter.teamIndex != val2 && Vector3.Distance(((Component)val3).transform.position, val) <= maxDistance) { list.Add(val3); } } int j = 0; for (int count2 = list.Count; j < count2; j++) { ProjectileController val4 = list[j]; if (Object.op_Implicit((Object)(object)val4)) { stopwatch = 0f; Vector3 position = ((Component)val4).transform.position; if (NetworkServer.active) { PopoSuccOrb popoSuccOrb = new PopoSuccOrb { origin = position, target = (Object.op_Implicit((Object)(object)body) ? body.mainHurtBox : null), speed = 25f }; OrbManager.instance.AddOrb((Orb)(object)popoSuccOrb); } Object.Destroy((Object)(object)((Component)val4).gameObject); break; } } } } internal class Prefabs { internal static GameObject getBlackEffect; internal static void CreatePrefabs() { //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_00dc: Unknown result type (might be due to invalid IL or missing references) getBlackEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VoidMegaCrab/VoidMegaCrabDeathBombGhost.prefab").WaitForCompletion(), "GetBlack", false); Object.Destroy((Object)(object)getBlackEffect.GetComponent<ShakeEmitter>()); Object.Destroy((Object)(object)getBlackEffect.GetComponent<ProjectileGhostController>()); ParticleSystemRenderer[] componentsInChildren = getBlackEffect.GetComponentsInChildren<ParticleSystemRenderer>(true); foreach (ParticleSystemRenderer val in componentsInChildren) { string name = ((Object)val).name; switch (name) { default: if (!(name == "Vacuum Stars, Distortion")) { continue; } break; case "Vacuum Stars": case "Vacuum Stars, Trails": case "Vacuum Radial": break; } Object.Destroy((Object)(object)((Component)val).gameObject); } Light componentInChildren = getBlackEffect.GetComponentInChildren<Light>(); ((Component)componentInChildren).transform.position = new Vector3(0f, 1f, 0f); componentInChildren.range = 99999f; Utils.RegisterEffect(getBlackEffect, 3f, "", true, true); } } internal class Sounds { public static readonly uint Sound; } internal class GetBlack : BaseDBZSkillState { private float duration = 0.7f; private bool gotBlack; public override void OnEnter() { //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) ((BaseDBZSkillState)this).OnEnter(); base.animator.SetBool("beamOver", false); ((EntityState)this).PlayAnimation("FullBody, Override", "Loop 0"); Object.Destroy((Object)(object)((Component)((EntityState)this).GetModelTransform()).GetComponent<CharacterModel>()); SkinnedMeshRenderer[] componentsInChildren = ((Component)((EntityState)this).GetModelTransform()).GetComponentsInChildren<SkinnedMeshRenderer>(); for (int i = 0; i < componentsInChildren.Length; i++) { ((Renderer)componentsInChildren[i]).material.shader = Addressables.LoadAssetAsync<Shader>((object)"RoR2/Base/Shaders/HGStandard.shader").WaitForCompletion(); ((Renderer)componentsInChildren[i]).material.shaderKeywords = null; } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= duration && !gotBlack) { base.animator.SetBool("beamOver", true); EffectManager.SimpleMuzzleFlash(Prefabs.getBlackEffect, ((EntityState)this).gameObject, "muzzleHandL", false); gotBlack = true; } } }