using 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 On.RoR2;
using R2API;
using R2API.Utils;
using RoR2;
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("Broly")]
[assembly: AssemblyTitle("Broly")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace Broly;
internal class Assets
{
public static AssetBundle MainAssetBundle;
public static void PopulateAssets()
{
if ((Object)(object)MainAssetBundle == (Object)null)
{
using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Broly.brolyassets");
MainAssetBundle = AssetBundle.LoadFromStream(stream);
}
using Stream stream2 = Assembly.GetExecutingAssembly().GetManifestResourceStream("Broly.Broly.bnk");
byte[] array = new byte[stream2.Length];
stream2.Read(array, 0, array.Length);
SoundBanks.Add(array);
}
}
internal class BrolyRevive : MonoBehaviour
{
}
internal class Hook
{
internal static void Hooks()
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Expected O, but got Unknown
HealthComponent.TakeDamage += new hook_TakeDamage(HealthComponent_TakeDamage);
}
private static void HealthComponent_TakeDamage(orig_TakeDamage orig, HealthComponent self, DamageInfo damageInfo)
{
//IL_0088: 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)
if (damageInfo.damage >= self.combinedHealth && Object.op_Implicit((Object)(object)self.body) && Object.op_Implicit((Object)(object)((Component)self.body).GetComponent<BrolyRevive>()) && !self.body.HasBuff(Prefabs.deathRegen) && NetworkServer.active)
{
self.body.AddBuff(Prefabs.deathRegen);
self.body.AddTimedBuff(Buffs.Immune, 4f);
float num = self.fullHealth * 0.5f;
self.Heal(num, default(ProcChainMask), true);
EntityStateMachine val = EntityStateMachine.FindByCustomName(((Component)self.body).gameObject, "Body");
if (Object.op_Implicit((Object)(object)val) && !(val.state is Special))
{
Special special = new Special();
special.consumeKi = false;
val.SetInterruptState((EntityState)(object)special, (InterruptPriority)6);
}
}
orig.Invoke(self, damageInfo);
}
}
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInPlugin("com.Dragonyck.Broly", "Broly", "2.0.1")]
[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
public class MainPlugin : BaseUnityPlugin
{
public const string MODUID = "com.Dragonyck.Broly";
public const string MODNAME = "Broly";
public const string VERSION = "2.0.1";
public const string SURVIVORNAME = "Broly (LSSJ)";
public const string SURVIVORNAMEKEY = "BROLY";
public const string SURVIVORNAME0 = "Broly";
public const string SURVIVORNAMEKEY0 = "BROLY0";
public const string SURVIVORNAME1 = "Broly (Wrath)";
public const string SURVIVORNAMEKEY1 = "BROLY1";
public const string SURVIVORNAME2 = "Broly (SSJ)";
public const string SURVIVORNAMEKEY2 = "BROLY2";
private static List<string> powerupBodyList = new List<string> { "BrolyBody", "Broly (Wrath)Body", "Broly (SSJ)Body", "Broly (LSSJ)Body" };
private static float desiredSortPosition = 16f;
private void Awake()
{
Assets.PopulateAssets();
Prefabs.CreatePrefabs();
CreateSurvivor();
CreatePowerupSurvivor("brolyFury", "Broly (Wrath)", "BROLY1", 2f);
CreatePowerupSurvivor("brolySSJ", "Broly (SSJ)", "BROLY2", 3f);
CreatePowerupSurvivor("broly", "Broly (LSSJ)", "BROLY", 4f);
RegisterStates();
Hook.Hooks();
}
internal static void CreateSurvivor()
{
//IL_0044: Unknown result type (might be due to invalid IL or missing references)
//IL_014e: Unknown result type (might be due to invalid IL or missing references)
//IL_0192: Unknown result type (might be due to invalid IL or missing references)
//IL_0197: Unknown result type (might be due to invalid IL or missing references)
//IL_0225: Unknown result type (might be due to invalid IL or missing references)
//IL_0242: Unknown result type (might be due to invalid IL or missing references)
//IL_0255: Unknown result type (might be due to invalid IL or missing references)
//IL_026a: Unknown result type (might be due to invalid IL or missing references)
//IL_0274: Expected O, but got Unknown
//IL_0274: Expected O, but got Unknown
//IL_028b: Unknown result type (might be due to invalid IL or missing references)
//IL_02a0: Unknown result type (might be due to invalid IL or missing references)
//IL_02aa: Expected O, but got Unknown
//IL_02aa: Expected O, but got Unknown
//IL_02c1: Unknown result type (might be due to invalid IL or missing references)
//IL_02d6: Unknown result type (might be due to invalid IL or missing references)
//IL_02e0: Expected O, but got Unknown
//IL_02e0: Expected O, but got Unknown
//IL_02f7: Unknown result type (might be due to invalid IL or missing references)
//IL_030c: Unknown result type (might be due to invalid IL or missing references)
//IL_0316: Expected O, but got Unknown
//IL_0316: Expected O, but got Unknown
//IL_032d: Unknown result type (might be due to invalid IL or missing references)
//IL_0342: Unknown result type (might be due to invalid IL or missing references)
//IL_034c: Expected O, but got Unknown
//IL_034c: Expected O, but got Unknown
//IL_0363: Unknown result type (might be due to invalid IL or missing references)
//IL_0378: Unknown result type (might be due to invalid IL or missing references)
//IL_0382: Expected O, but got Unknown
//IL_0382: Expected O, but got Unknown
//IL_0399: Unknown result type (might be due to invalid IL or missing references)
//IL_03ae: Unknown result type (might be due to invalid IL or missing references)
//IL_03b8: Expected O, but got Unknown
//IL_03b8: Expected O, but got Unknown
//IL_03cf: Unknown result type (might be due to invalid IL or missing references)
//IL_03e4: Unknown result type (might be due to invalid IL or missing references)
//IL_03ee: Expected O, but got Unknown
//IL_03ee: Expected O, but got Unknown
//IL_0405: Unknown result type (might be due to invalid IL or missing references)
//IL_041a: Unknown result type (might be due to invalid IL or missing references)
//IL_0424: Expected O, but got Unknown
//IL_0424: Expected O, but got Unknown
//IL_043b: Unknown result type (might be due to invalid IL or missing references)
//IL_0450: Unknown result type (might be due to invalid IL or missing references)
//IL_045a: Expected O, but got Unknown
//IL_045a: Expected O, but got Unknown
//IL_0471: Unknown result type (might be due to invalid IL or missing references)
//IL_0486: Unknown result type (might be due to invalid IL or missing references)
//IL_0490: Expected O, but got Unknown
//IL_0490: Expected O, but got Unknown
//IL_04a7: Unknown result type (might be due to invalid IL or missing references)
//IL_04bc: Unknown result type (might be due to invalid IL or missing references)
//IL_04c6: Expected O, but got Unknown
//IL_04c6: Expected O, but got Unknown
//IL_04dd: Unknown result type (might be due to invalid IL or missing references)
//IL_04f2: Unknown result type (might be due to invalid IL or missing references)
//IL_04fc: Expected O, but got Unknown
//IL_04fc: Expected O, but got Unknown
//IL_0513: Unknown result type (might be due to invalid IL or missing references)
//IL_0528: Unknown result type (might be due to invalid IL or missing references)
//IL_0532: Expected O, but got Unknown
//IL_0532: Expected O, but got Unknown
//IL_0549: Unknown result type (might be due to invalid IL or missing references)
//IL_055b: Unknown result type (might be due to invalid IL or missing references)
//IL_0565: Expected O, but got Unknown
//IL_0565: Expected O, but got Unknown
//IL_057c: 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_059b: Expected O, but got Unknown
//IL_059b: Expected O, but got Unknown
//IL_05a5: Unknown result type (might be due to invalid IL or missing references)
//IL_05a7: Unknown result type (might be due to invalid IL or missing references)
//IL_05ce: Unknown result type (might be due to invalid IL or missing references)
//IL_05d3: Unknown result type (might be due to invalid IL or missing references)
//IL_0674: Unknown result type (might be due to invalid IL or missing references)
//IL_0679: Unknown result type (might be due to invalid IL or missing references)
//IL_06a3: Unknown result type (might be due to invalid IL or missing references)
//IL_06c5: Unknown result type (might be due to invalid IL or missing references)
GameObject val = Assets.MainAssetBundle.LoadAsset<GameObject>("brolyBase");
SurvivorDef val2 = default(SurvivorDef);
CharacterBody val3 = DBZSurvivors.SetupNewDBZSurvivor(val, "Broly", ref val2);
((Object)val3).name = "BrolyBody";
val3.baseNameToken = "BROLY0_NAME";
val3.subtitleNameToken = "BROLY0_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>("portraitBase").texture;
val3.isChampion = false;
val3.currentVehicle = null;
val3.skinIndex = 0u;
val3.bodyColor = new Color(0.63922f, 0.72157f, 0.09804f);
ConfigFile val4 = Utils.CreateConfig(val3);
KiBehaviour component = ((Component)val3).GetComponent<KiBehaviour>();
component.passiveRegen = true;
component.hasPowerup = true;
DBZSurvivorDef val5 = ScriptableObject.CreateInstance<DBZSurvivorDef>();
val5.attackVO = Sounds.Play_DBZ_Broly_ATKGrunt;
val5.bossEncounterVO = Sounds.Play_DBZ_Broly_FinalBossEncounter;
val5.bossKillVO = Sounds.Play_DBZ_Broly_BossKill;
val5.heavyHitVO = Sounds.Play_DBZ_Broly_HeavyDMGGrunt;
val5.killVO = Sounds.Play_DBZ_Broly_Kill;
val5.lightHitVO = Sounds.Play_DBZ_Broly_LightDMGGrunt;
val5.skillVO = Sounds.Play_DBZ_Broly_Skill;
val5.deathVO = Sounds.Play_DBZ_Broly_Death;
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 component2 = ((Component)val3).GetComponent<EntityStateMachine>();
component2.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("BROLY0_NAME", "Broly");
LanguageAPI.Add("BROLY0_DESCRIPTION", text);
LanguageAPI.Add("BROLY0_SUBTITLE", "Legendary Super Saiyan");
LanguageAPI.Add("BROLY0_OUTRO", text2);
LanguageAPI.Add("BROLY0_FAIL", text3);
val2.primaryColor = val3.bodyColor;
val2.desiredSortPosition = desiredSortPosition;
GameObject val6 = Utils.CreateHitbox("Punch", val.transform, new Vector3(5.1f, 5.1f, 5.4f));
val6.transform.localPosition = new Vector3(0f, 1.15f, 1f);
SkillLocator component3 = ((Component)val3).GetComponent<SkillLocator>();
AddPrimary(component3);
AddSecondary(component3, "DBZ_POWEREDSHELL_SKILL_NAME", "DBZ_POWEREDSHELL_SKILL_DESCRIPTION", Prefabs.poweredShellIcon, typeof(QuickEventProjectileState));
AddUtility(component3);
AddSpecial(component3, "DBZ_SUPEREXPLOSIVEWAVE_NAME", "DBZ_SUPEREXPLOSIVEWAVE_DESCRIPTION", Prefabs.superexplosivewaveGREEN, typeof(ExplosiveWave));
}
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_0096: Unknown result type (might be due to invalid IL or missing references)
//IL_01b8: Unknown result type (might be due to invalid IL or missing references)
//IL_01e2: 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_0201: 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_025b: Unknown result type (might be due to invalid IL or missing references)
//IL_02d2: Unknown result type (might be due to invalid IL or missing references)
//IL_02db: Unknown result type (might be due to invalid IL or missing references)
//IL_02ee: Unknown result type (might be due to invalid IL or missing references)
//IL_0303: Unknown result type (might be due to invalid IL or missing references)
//IL_030d: Expected O, but got Unknown
//IL_030d: Expected O, but got Unknown
//IL_0324: Unknown result type (might be due to invalid IL or missing references)
//IL_0339: Unknown result type (might be due to invalid IL or missing references)
//IL_0343: Expected O, but got Unknown
//IL_0343: Expected O, but got Unknown
//IL_035a: Unknown result type (might be due to invalid IL or missing references)
//IL_036f: Unknown result type (might be due to invalid IL or missing references)
//IL_0379: Expected O, but got Unknown
//IL_0379: Expected O, but got Unknown
//IL_0390: Unknown result type (might be due to invalid IL or missing references)
//IL_03a5: Unknown result type (might be due to invalid IL or missing references)
//IL_03af: Expected O, but got Unknown
//IL_03af: Expected O, but got Unknown
//IL_03c6: Unknown result type (might be due to invalid IL or missing references)
//IL_03db: Unknown result type (might be due to invalid IL or missing references)
//IL_03e5: Expected O, but got Unknown
//IL_03e5: Expected O, but got Unknown
//IL_03fc: Unknown result type (might be due to invalid IL or missing references)
//IL_0411: Unknown result type (might be due to invalid IL or missing references)
//IL_041b: Expected O, but got Unknown
//IL_041b: Expected O, but got Unknown
//IL_0432: Unknown result type (might be due to invalid IL or missing references)
//IL_0447: Unknown result type (might be due to invalid IL or missing references)
//IL_0451: Expected O, but got Unknown
//IL_0451: Expected O, but got Unknown
//IL_0468: Unknown result type (might be due to invalid IL or missing references)
//IL_047d: Unknown result type (might be due to invalid IL or missing references)
//IL_0487: Expected O, but got Unknown
//IL_0487: Expected O, but got Unknown
//IL_049e: Unknown result type (might be due to invalid IL or missing references)
//IL_04b3: Unknown result type (might be due to invalid IL or missing references)
//IL_04bd: Expected O, but got Unknown
//IL_04bd: Expected O, but got Unknown
//IL_04d4: Unknown result type (might be due to invalid IL or missing references)
//IL_04e9: Unknown result type (might be due to invalid IL or missing references)
//IL_04f3: Expected O, but got Unknown
//IL_04f3: Expected O, but got Unknown
//IL_050a: Unknown result type (might be due to invalid IL or missing references)
//IL_051f: Unknown result type (might be due to invalid IL or missing references)
//IL_0529: Expected O, but got Unknown
//IL_0529: Expected O, but got Unknown
//IL_0540: Unknown result type (might be due to invalid IL or missing references)
//IL_0555: Unknown result type (might be due to invalid IL or missing references)
//IL_055f: Expected O, but got Unknown
//IL_055f: Expected O, but got Unknown
//IL_0576: Unknown result type (might be due to invalid IL or missing references)
//IL_058b: Unknown result type (might be due to invalid IL or missing references)
//IL_0595: Expected O, but got Unknown
//IL_0595: Expected O, but got Unknown
//IL_05ac: Unknown result type (might be due to invalid IL or missing references)
//IL_05c1: Unknown result type (might be due to invalid IL or missing references)
//IL_05cb: Expected O, but got Unknown
//IL_05cb: Expected O, but got Unknown
//IL_05e2: Unknown result type (might be due to invalid IL or missing references)
//IL_05f4: Unknown result type (might be due to invalid IL or missing references)
//IL_05fe: Expected O, but got Unknown
//IL_05fe: Expected O, but got Unknown
//IL_0615: Unknown result type (might be due to invalid IL or missing references)
//IL_062a: Unknown result type (might be due to invalid IL or missing references)
//IL_0634: Expected O, but got Unknown
//IL_0634: Expected O, but got Unknown
//IL_063e: Unknown result type (might be due to invalid IL or missing references)
//IL_0640: Unknown result type (might be due to invalid IL or missing references)
//IL_06ad: Unknown result type (might be due to invalid IL or missing references)
//IL_0754: Unknown result type (might be due to invalid IL or missing references)
//IL_075e: Unknown result type (might be due to invalid IL or missing references)
//IL_077c: Unknown result type (might be due to invalid IL or missing references)
//IL_0a71: Unknown result type (might be due to invalid IL or missing references)
//IL_0a76: Unknown result type (might be due to invalid IL or missing references)
//IL_0a9e: Unknown result type (might be due to invalid IL or missing references)
//IL_0aaf: Unknown result type (might be due to invalid IL or missing references)
//IL_0ab9: Expected O, but got Unknown
//IL_0ab9: Expected O, but got Unknown
//IL_0add: Unknown result type (might be due to invalid IL or missing references)
//IL_0aff: Unknown result type (might be due to invalid IL or missing references)
//IL_07ac: Unknown result type (might be due to invalid IL or missing references)
//IL_088d: Unknown result type (might be due to invalid IL or missing references)
//IL_08a0: Unknown result type (might be due to invalid IL or missing references)
//IL_08b7: Unknown result type (might be due to invalid IL or missing references)
//IL_08bc: Unknown result type (might be due to invalid IL or missing references)
//IL_08c1: 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<DBZAimIndicator>();
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;
SkillLocator component = ((Component)val3).GetComponent<SkillLocator>();
((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 = 1;
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.63922f, 0.72157f, 0.09804f);
val3.aimOriginTransform.localPosition = new Vector3(0f, 1f, 0f);
KiBehaviour component2 = ((Component)val3).GetComponent<KiBehaviour>();
component2.hasPowerup = true;
component2.maxKiValue = 1f * value;
component2.passiveRegenValue = 0.02f * value;
component2.passiveRegen = true;
EntityStateMachine component3 = ((Component)val3).GetComponent<EntityStateMachine>();
component3.initialStateType = new SerializableEntityStateType(typeof(BasePowerupSpawnState));
DBZSurvivorDef val5 = ScriptableObject.CreateInstance<DBZSurvivorDef>();
val5.config = val4;
val5.attackVO = Sounds.Play_DBZ_Broly_ATKGrunt;
val5.bossEncounterVO = Sounds.Play_DBZ_Broly_FinalBossEncounter;
val5.bossKillVO = Sounds.Play_DBZ_Broly_BossKill;
val5.heavyHitVO = Sounds.Play_DBZ_Broly_HeavyDMGGrunt;
val5.killVO = Sounds.Play_DBZ_Broly_Kill;
val5.lightHitVO = Sounds.Play_DBZ_Broly_LightDMGGrunt;
val5.skillVO = Sounds.Play_DBZ_Broly_Skill;
val5.deathVO = Sounds.Play_DBZ_Broly_Death;
val5.vfxColor = (VFXColor)2;
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
};
val5.powerupBodyList = powerupBodyList;
switch (survivorName)
{
case "Broly (Wrath)":
((Component)val3).GetComponent<ModelLocator>().modelBaseTransform.GetChild(0).localPosition = new Vector3(0f, 2.4f, 0f);
val2.desiredSortPosition = desiredSortPosition + 0.1f;
val3.portraitIcon = (Texture)(object)Assets.MainAssetBundle.LoadAsset<Sprite>("portraitWrath").texture;
AddPrimary(component);
AddSecondary(component, "DBZ_SUPEREXPLOSIVEWAVE_NAME", "DBZ_SUPEREXPLOSIVEWAVE_DESCRIPTION", Prefabs.superexplosivewaveGREEN, typeof(ExplosiveWave));
AddUtility(component);
AddSpecial(component, "DBZ_GIGANTICRAGE_SKILL_NAME", "DBZ_GIGANTICRAGE_SKILL_DESCRIPTION", Assets.MainAssetBundle.LoadAsset<Sprite>("giganticRage"), typeof(GiganticRageState), "Idle1");
Utils.CreateHitbox("GiganticRage", val.transform, Vector3.one * 8f).transform.localPosition = new Vector3(0f, 1.5f, 2f);
break;
case "Broly (SSJ)":
((Component)val3).GetComponent<ModelLocator>().modelBaseTransform.GetChild(0).localPosition = new Vector3(0f, 2.4f, 0f);
LanguageAPI.Add("BROLY_KIBLASTS_NAME", "Spread Shot");
LanguageAPI.Add("BROLY_KIBLASTS_DESCRIPTION", "Quickly fire ki blasts for <style=cIsDamage>180% damage</style>.");
AddPrimary(component);
AddSecondary(component, "BROLY_KIBLASTS_NAME", "BROLY_KIBLASTS_DESCRIPTION", Prefabs.lightgrenadeGREEN, typeof(KiBlasts), "Idle1");
AddUtility(component);
AddSpecial(component, "BROLY_M2", "BROLY_M2_DESCRIPTION", Assets.MainAssetBundle.LoadAsset<Sprite>("secondary"), typeof(Secondary));
val2.desiredSortPosition = desiredSortPosition + 0.1f;
val3.portraitIcon = (Texture)(object)Assets.MainAssetBundle.LoadAsset<Sprite>("portraitSSJ").texture;
break;
case "Broly (LSSJ)":
((Component)val3).GetComponent<ModelLocator>().modelBaseTransform.GetChild(0).localPosition = new Vector3(0f, 2.4f, 0f);
DBZSurvivors.survivorSceneProps.Add(val, new TransformMemory
{
position = new Vector3(1.2f, 1.157f, 11f)
});
val3.portraitIcon = (Texture)(object)Assets.MainAssetBundle.LoadAsset<Sprite>("portrait").texture;
val2.desiredSortPosition = desiredSortPosition + 0.1f;
((Component)val3).gameObject.AddComponent<BrolyRevive>();
component2.hasPowerup = false;
val5.powerupBodyList = null;
LanguageAPI.Add("BROLY_PASSIVE_NAME", "Saiyan Power");
LanguageAPI.Add("BROLY_PASSIVE_DESCRIPTION", "Once a stage, revive yourself after taking lethal damage <style=cIsHealing>restoring</style> <style=cIsHealth>50% Health</style> and perform Blast Meteor for no cost.");
component.passiveSkill.enabled = true;
component.passiveSkill.skillNameToken = "BROLY_PASSIVE_NAME";
component.passiveSkill.skillDescriptionToken = "BROLY_PASSIVE_DESCRIPTION";
component.passiveSkill.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("passive");
AddPrimary(component);
AddSecondaryLSSJ(component);
AddUtility(component);
AddSpecialsLSSJ(component);
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< ! > " + Environment.NewLine + "<style=cSub>\r\n\r\n< ! > Fill up your transformation bar by beating enemies, using skills, and playing the game in general.";
string text2 = "..and so he left.";
string text3 = "..and so he vanished.";
LanguageAPI.Add(survivorNameKey + "_NAME", survivorName);
LanguageAPI.Add(survivorNameKey + "_DESCRIPTION", text);
LanguageAPI.Add(survivorNameKey + "_SUBTITLE", "Legendary Super Saiyan");
LanguageAPI.Add(survivorNameKey + "_OUTRO", text2);
LanguageAPI.Add(survivorNameKey + "_FAIL", text3);
val2.primaryColor = val3.bodyColor;
val2.displayPrefab = Utils.RemoveDither(val, survivorName + "Display");
val2.hidden = val4.Bind<bool>(new ConfigDefinition("Hidden Survivor", "Hidden"), true, new ConfigDescription("Hide in Character Select", (AcceptableValueBase)null, Array.Empty<object>())).Value;
GameObject val6 = Utils.CreateHitbox("Punch", val.transform, new Vector3(5.5f, 5.5f, 5.8f));
val6.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)
bool flag = default(bool);
ContentAddition.AddEntityState<Secondary>(ref flag);
ContentAddition.AddEntityState<SecondaryFire>(ref flag);
ContentAddition.AddEntityState<Special>(ref flag);
ContentAddition.AddEntityState<BaseSpecialAlt>(ref flag);
ContentAddition.AddEntityState<SpecialAltFire>(ref flag);
ContentAddition.AddEntityState<KiBlasts>(ref flag);
ContentAddition.AddEntityState<ExplosiveWave>(ref flag);
ContentAddition.AddEntityState<ExplosiveWaveFire>(ref flag);
}
private static void AddSecondary(SkillLocator skillLocator, string nameToken, string descToken, Sprite sprite, Type type, string stateMachine = "NoMovement")
{
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: 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_00ec: Unknown result type (might be due to invalid IL or missing references)
//IL_0104: Unknown result type (might be due to invalid IL or missing references)
//IL_010e: Expected O, but got Unknown
//IL_010f: 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)
DBZSkillDef val = ScriptableObject.CreateInstance<DBZSkillDef>();
((SkillDef)val).activationStateMachineName = stateMachine;
((SkillDef)val).activationState = new SerializableEntityStateType(type);
((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 = sprite;
((SkillDef)val).skillDescriptionToken = descToken;
((SkillDef)val).skillName = nameToken;
((SkillDef)val).skillNameToken = nameToken;
val.kiCost = 0.2f;
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 AddSpecial(SkillLocator skillLocator, string nameToken, string descToken, Sprite sprite, Type type, string stateMachine = "NoMovement")
{
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: 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_00ec: Unknown result type (might be due to invalid IL or missing references)
//IL_0104: Unknown result type (might be due to invalid IL or missing references)
//IL_010e: Expected O, but got Unknown
//IL_010f: 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)
DBZSkillDef val = ScriptableObject.CreateInstance<DBZSkillDef>();
((SkillDef)val).activationStateMachineName = stateMachine;
((SkillDef)val).activationState = new SerializableEntityStateType(type);
((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 = sprite;
((SkillDef)val).skillDescriptionToken = descToken;
((SkillDef)val).skillName = nameToken;
((SkillDef)val).skillNameToken = nameToken;
val.kiCost = 0.55f;
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);
}
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("BROLY_M1", "Gigantic Fury");
((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>("primary");
((SkillDef)val).skillDescriptionToken = "DBZ_MELEE_SKILL_DESCRIPTION";
((SkillDef)val).skillName = "BROLY_M1";
((SkillDef)val).skillNameToken = "BROLY_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 AddSecondaryLSSJ(SkillLocator skillLocator)
{
//IL_003d: Unknown result type (might be due to invalid IL or missing references)
//IL_0042: Unknown result type (might be due to invalid IL or missing references)
//IL_0070: 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_0155: Unknown result type (might be due to invalid IL or missing references)
//IL_015f: Expected O, but got Unknown
//IL_0160: Unknown result type (might be due to invalid IL or missing references)
//IL_0161: Unknown result type (might be due to invalid IL or missing references)
DBZSkillDef val = ScriptableObject.CreateInstance<DBZSkillDef>();
LanguageAPI.Add("BROLY_M2", "Gigantic Roar");
LanguageAPI.Add("BROLY_M2_DESCRIPTION", "Charge a energy sphere to fire a powerful energy beam for <style=cIsDamage>120%</style> damage per hit.");
((SkillDef)val).activationStateMachineName = "NoMovement";
((SkillDef)val).activationState = new SerializableEntityStateType(typeof(Secondary));
((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>("secondary");
((SkillDef)val).skillDescriptionToken = "BROLY_M2_DESCRIPTION";
((SkillDef)val).skillName = "BROLY_M2";
((SkillDef)val).skillNameToken = "BROLY_M2";
val.kiCost = 0.2f;
((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 AddUtility(SkillLocator skillLocator)
{
//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_010d: Unknown result type (might be due to invalid IL or missing references)
//IL_0125: Unknown result type (might be due to invalid IL or missing references)
//IL_012f: Expected O, but got Unknown
//IL_0130: 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)
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>("utility");
((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 AddSpecialsLSSJ(SkillLocator skillLocator)
{
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_0046: Unknown result type (might be due to invalid IL or missing references)
//IL_0074: Unknown result type (might be due to invalid IL or missing references)
//IL_0145: Unknown result type (might be due to invalid IL or missing references)
//IL_015d: Unknown result type (might be due to invalid IL or missing references)
//IL_0167: Expected O, but got Unknown
//IL_0168: Unknown result type (might be due to invalid IL or missing references)
//IL_016a: Unknown result type (might be due to invalid IL or missing references)
//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
//IL_01b8: Unknown result type (might be due to invalid IL or missing references)
//IL_01e6: Unknown result type (might be due to invalid IL or missing references)
//IL_02ab: Unknown result type (might be due to invalid IL or missing references)
//IL_02c3: Unknown result type (might be due to invalid IL or missing references)
//IL_02cd: Expected O, but got Unknown
//IL_02ce: Unknown result type (might be due to invalid IL or missing references)
//IL_02d0: Unknown result type (might be due to invalid IL or missing references)
SkillDef val = null;
SkillDef val2 = null;
LanguageAPI.Add("BROLY_SPEC", "Blast Meteor");
LanguageAPI.Add("BROLY_SPEC_DESCRIPTION", "Surround yourself in a powerful energy orb that blocks projectiles and shoots homing ki blasts in all directions for <style=cIsDamage>200%</style> damage each.");
DBZSkillDef val3 = ScriptableObject.CreateInstance<DBZSkillDef>();
((SkillDef)val3).activationStateMachineName = "NoMovement";
((SkillDef)val3).activationState = new SerializableEntityStateType(typeof(Special));
((SkillDef)val3).baseMaxStock = 1;
((SkillDef)val3).baseRechargeInterval = 12f;
((SkillDef)val3).beginSkillCooldownOnSkillEnd = true;
((SkillDef)val3).canceledFromSprinting = false;
((SkillDef)val3).fullRestockOnAssign = true;
((SkillDef)val3).interruptPriority = (InterruptPriority)0;
((SkillDef)val3).isCombatSkill = true;
((SkillDef)val3).mustKeyPress = false;
((SkillDef)val3).cancelSprintingOnActivation = true;
((SkillDef)val3).rechargeStock = 1;
((SkillDef)val3).requiredStock = 1;
((SkillDef)val3).stockToConsume = 1;
((SkillDef)val3).icon = Assets.MainAssetBundle.LoadAsset<Sprite>("special");
((SkillDef)val3).skillDescriptionToken = "BROLY_SPEC_DESCRIPTION";
((SkillDef)val3).skillName = "BROLY_SPEC";
((SkillDef)val3).skillNameToken = "BROLY_SPEC";
val3.kiCost = 0.55f;
((SkillDef)val3).keywordTokens = val3.newKeywordTokens;
val = (SkillDef)(object)val3;
ContentAddition.AddSkillDef((SkillDef)(object)val3);
skillLocator.special = ((Component)skillLocator).gameObject.AddComponent<GenericSkill>();
SkillFamily val4 = ScriptableObject.CreateInstance<SkillFamily>();
val4.variants = (Variant[])(object)new Variant[1];
Reflection.SetFieldValue<SkillFamily>((object)skillLocator.special, "_skillFamily", val4);
SkillFamily skillFamily = skillLocator.special.skillFamily;
Variant[] variants = skillFamily.variants;
Variant val5 = new Variant
{
skillDef = (SkillDef)(object)val3
};
((Variant)(ref val5)).viewableNode = new Node(((SkillDef)val3).skillNameToken, false, (Node)null);
variants[0] = val5;
ContentAddition.AddSkillFamily(skillFamily);
LanguageAPI.Add("BROLY_ALTSPEC", "Gigantic Catastrophe");
LanguageAPI.Add("BROLY_ALTSPEC_DESCRIPTION", "Fire a powerful energy beam for <style=cIsDamage>180%</style> damage per hit and homing ki blasts forward for <style=cIsDamage>200%</style> damage each.");
val3 = ScriptableObject.CreateInstance<DBZSkillDef>();
((SkillDef)val3).activationStateMachineName = "NoMovement";
((SkillDef)val3).activationState = new SerializableEntityStateType(typeof(BaseSpecialAlt));
((SkillDef)val3).baseMaxStock = 1;
((SkillDef)val3).baseRechargeInterval = 12f;
((SkillDef)val3).beginSkillCooldownOnSkillEnd = true;
((SkillDef)val3).canceledFromSprinting = false;
((SkillDef)val3).fullRestockOnAssign = true;
((SkillDef)val3).interruptPriority = (InterruptPriority)0;
((SkillDef)val3).isCombatSkill = true;
((SkillDef)val3).mustKeyPress = false;
((SkillDef)val3).cancelSprintingOnActivation = true;
((SkillDef)val3).rechargeStock = 1;
((SkillDef)val3).requiredStock = 1;
((SkillDef)val3).stockToConsume = 1;
((SkillDef)val3).icon = Assets.MainAssetBundle.LoadAsset<Sprite>("specialalt");
((SkillDef)val3).skillDescriptionToken = "BROLY_ALTSPEC_DESCRIPTION";
((SkillDef)val3).skillName = "BROLY_ALTSPEC";
((SkillDef)val3).skillNameToken = "BROLY_ALTSPEC";
val3.kiCost = 0.55f;
((SkillDef)val3).keywordTokens = val3.newKeywordTokens;
val2 = (SkillDef)(object)val3;
ContentAddition.AddSkillDef((SkillDef)(object)val3);
GenericSkill val6 = ((Component)skillLocator).gameObject.AddComponent<GenericSkill>();
val4 = ScriptableObject.CreateInstance<SkillFamily>();
val4.variants = (Variant[])(object)new Variant[1];
Reflection.SetFieldValue<SkillFamily>((object)val6, "_skillFamily", val4);
skillFamily = val6.skillFamily;
Variant[] variants2 = skillFamily.variants;
val5 = new Variant
{
skillDef = (SkillDef)(object)val3
};
((Variant)(ref val5)).viewableNode = new Node(((SkillDef)val3).skillNameToken, false, (Node)null);
variants2[0] = val5;
ContentAddition.AddSkillFamily(skillFamily);
SkillSwitchBehaviour val7 = ((Component)skillLocator).gameObject.AddComponent<SkillSwitchBehaviour>();
val7.specialSkillDefList = new List<SkillDef> { val, val2 };
}
}
internal class Prefabs
{
internal static GameObject meteorProjectile;
internal static GameObject meteorProjectileGhost;
internal static GameObject meteorProjectileImpactEffect;
internal static BuffDef deathRegen { get; set; }
internal static void CreatePrefabs()
{
//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_0075: 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_00b9: Unknown result type (might be due to invalid IL or missing references)
//IL_00be: Unknown result type (might be due to invalid IL or missing references)
//IL_00e0: 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_0100: Unknown result type (might be due to invalid IL or missing references)
deathRegen = ScriptableObject.CreateInstance<BuffDef>();
((Object)deathRegen).name = "e";
deathRegen.iconSprite = null;
deathRegen.buffColor = Color.white;
deathRegen.canStack = false;
deathRegen.isDebuff = false;
deathRegen.eliteDef = null;
deathRegen.isHidden = true;
ContentAddition.AddBuffDef(deathRegen);
meteorProjectileImpactEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/GreaterWisp/OmniExplosionVFXGreaterWisp.prefab").WaitForCompletion(), "BrolyBlasterMeteorProjectileImpactEffect", false);
meteorProjectileImpactEffect.AddComponent<ChanceSound>();
Utils.RegisterEffect(meteorProjectileImpactEffect, 2f, "", true, true);
meteorProjectileGhost = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/ElectricWorm/ElectricWormSeekerGhost.prefab").WaitForCompletion(), "BrolyBlasterMeteorProjectileGhost", false);
meteorProjectileGhost.GetComponentInChildren<TrailRenderer>().startColor = Color.green;
GameObject val = LegacyResourcesAPI.Load<GameObject>("prefabs/projectileghosts/lunarneedleghost");
meteorProjectile = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/ElectricWorm/ElectricWormSeekerProjectile.prefab").WaitForCompletion(), "BrolyBlasterMeteorProjectile", true);
meteorProjectile.GetComponent<ProjectileController>().ghostPrefab = meteorProjectileGhost;
((ProjectileExplosion)meteorProjectile.GetComponent<ProjectileImpactExplosion>()).explosionEffect = meteorProjectileImpactEffect;
meteorProjectile.GetComponent<ProjectileImpactExplosion>().impactEffect = meteorProjectileImpactEffect;
((AkTriggerHandler)meteorProjectile.GetComponent<AkEvent>()).triggerList[0] = (int)Sounds.Play_DBZ_Broly_BM_PROJ_FIRE;
ProjectileSteerTowardTarget component = meteorProjectile.GetComponent<ProjectileSteerTowardTarget>();
((Behaviour)component).enabled = true;
component.rotationSpeed = 90f;
ProjectileDirectionalTargetFinder component2 = meteorProjectile.GetComponent<ProjectileDirectionalTargetFinder>();
((Behaviour)component2).enabled = true;
component2.lookRange = 30f;
component2.lookCone = 60f;
component2.targetSearchInterval = 0.1f;
component2.searchTimer = 1f;
meteorProjectile.AddComponent<MoveTowardsTarget>();
ContentAddition.AddProjectile(meteorProjectile);
}
}
internal class ChanceSound : MonoBehaviour
{
private void Start()
{
int num = Random.Range(0, 101);
if (num <= 10)
{
AkSoundEngine.PostEvent(Sounds.Play_DBZ_Broly_BM_PROJ_HIT, ((Component)this).gameObject);
}
}
}
internal class ExplosiveWave : AnimEventBeam
{
public override void OnEnter()
{
((AnimEventBeam)this).OnEnter();
base.chargeEffectPrefab = Prefabs.superExplosiveWaveChargeEffectGREEN;
}
protected override void SetNextState()
{
((EntityState)this).outer.SetNextState((EntityState)(object)new ExplosiveWaveFire());
}
}
internal class ExplosiveWaveFire : AnimEventBeamFire
{
protected override void SetBeamVFX()
{
((BeamFire)this).beamVFX = Prefabs.superExplosiveBeamEffectGREEN;
}
}
internal class KiBlasts : BaseSequencedKiBlastState
{
public float speed = 0.4f;
public override void OnEnter()
{
base.baseKiCost = 1f;
base.baseDamageCoefficient = 1.8f;
base.projectilePrefab = Prefabs.kiBlastProjectileGreenNoTarget;
base.muzzleFlashPrefab = Prefabs.KiBlastMuzzleFlashGreen;
base.maxAttacks = 8;
((BaseSequencedKiBlastState)this).OnEnter();
if (base.attackCount == 1 && NetworkServer.active)
{
((EntityState)this).characterBody.AddBuff(Prefabs.speedX2Buff);
}
}
protected override void PlayVO()
{
((BaseSequencedKiBlastState)this).PlayVO();
((EntityState)this).PlayAnimation("FullBody, Override", "KiBlast");
}
protected override void PlayAnimation()
{
}
protected override BaseDBZSkillState State()
{
KiBlasts kiBlasts = new KiBlasts();
((BaseSequencedKiBlastState)kiBlasts).attackCount = base.attackCount + 1;
return (BaseDBZSkillState)(object)kiBlasts;
}
public override void FixedUpdate()
{
((BaseSequencedKiBlastState)this).FixedUpdate();
}
public override void OnExit()
{
if (base.attackCount == base.maxAttacks && NetworkServer.active)
{
((EntityState)this).characterBody.RemoveBuff(Prefabs.speedX2Buff);
}
if (base.attackCount == base.maxAttacks)
{
((BaseDBZSkillState)this).animator.SetTrigger("trigger");
}
((BaseSequencedKiBlastState)this).OnExit();
}
}
internal class Secondary : BeamBaseState
{
public override void OnEnter()
{
base.duration = 99f;
base.chargeSFX = Sounds.Play_DBZ_Broly_GR_START;
((BeamBaseState)this).OnEnter();
}
public override void FixedUpdate()
{
((BeamBaseState)this).FixedUpdate();
if (((EntityState)this).fixedAge >= 1.5f && ((EntityState)this).isAuthority)
{
((EntityState)this).outer.SetNextState((EntityState)(object)new SecondaryFire());
}
}
public override void OnExit()
{
((BeamBaseState)this).OnExit();
}
public override InterruptPriority GetMinimumInterruptPriority()
{
//IL_0002: 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)
return (InterruptPriority)1;
}
}
internal class SecondaryFire : BeamFire
{
public override void OnEnter()
{
base.beamSFX = Sounds.Play_DBZ_Broly_GR_FIRE;
((BeamFire)this).OnEnter();
}
}
internal class Special : BaseDBZSkillState
{
private float duration = 4f;
public GameObject shieldInstance;
private float stopwatch;
private int projectileCount = 3;
private AimRequest request;
public bool consumeKi = true;
public override void OnEnter()
{
//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
//IL_0111: Unknown result type (might be due to invalid IL or missing references)
//IL_0116: Unknown result type (might be due to invalid IL or missing references)
//IL_0135: Unknown result type (might be due to invalid IL or missing references)
((BaseDBZSkillState)this).OnEnter();
if (Object.op_Implicit((Object)(object)base.skillBehaviour) && Object.op_Implicit((Object)(object)base.kiBehaviour))
{
base.skillBehaviour.SetExecutableSkills(3);
}
if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams))
{
request = ((EntityState)this).cameraTargetParams.RequestAimType((AimType)2);
}
((EntityState)this).PlayAnimation("FullBody, Override", "Blaster_Meteor", "Special", duration);
AkSoundEngine.PostEvent(Sounds.Play_DBZ_Broly_Skill, ((EntityState)this).gameObject);
AkSoundEngine.PostEvent(Sounds.Play_DBZ_Broly_BM_START, ((EntityState)this).gameObject);
AkSoundEngine.PostEvent(Sounds.Play_DBZ_Broly_BM_Fire, ((EntityState)this).gameObject);
EffectManager.SimpleMuzzleFlash(Prefabs.orbFXGreen, ((EntityState)this).gameObject, "collider", false);
shieldInstance = GameObject.CreatePrimitive((PrimitiveType)0);
shieldInstance.layer = LayerIndex.projectile.intVal;
shieldInstance.transform.localScale = Vector3.one * 12f;
shieldInstance.GetComponent<Renderer>().material = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/GameModes/InfiniteTowerRun/InfiniteTowerAssets/matDistantPlanetShieldBackdrop.mat").WaitForCompletion();
shieldInstance.transform.position = ((EntityState)this).transform.position;
}
public override void FixedUpdate()
{
//IL_001e: Unknown result type (might be due to invalid IL or missing references)
//IL_0028: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
((EntityState)this).FixedUpdate();
if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor))
{
((EntityState)this).characterMotor.velocity = Vector3.zero * -20f;
}
stopwatch += Time.fixedDeltaTime;
if (stopwatch >= 0.05f)
{
stopwatch = 0f;
int num = Random.Range(0, 101);
if (num <= 10)
{
AkSoundEngine.PostEvent(Sounds.Play_DBZ_Broly_BM_PROJ_FIRE, ((EntityState)this).gameObject);
}
if (((EntityState)this).isAuthority)
{
Fire();
}
}
if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority)
{
((EntityState)this).outer.SetNextStateToMain();
}
}
private void Fire()
{
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Unknown result type (might be due to invalid IL or missing references)
//IL_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_0050: Unknown result type (might be due to invalid IL or missing references)
for (int i = 0; i < projectileCount; i++)
{
Vector3 val = Quaternion.AngleAxis((float)RoR2Application.rng.RangeInt(0, 360), Vector3.up) * Vector3.one;
if (((EntityState)this).isAuthority)
{
ProjectileManager.instance.FireProjectile(Prefabs.meteorProjectile, ((EntityState)this).characterBody.corePosition, Util.QuaternionSafeLookRotation(val), ((EntityState)this).gameObject, ((EntityState)this).characterBody.damage * 2f, 200f, Util.CheckRoll(((EntityState)this).characterBody.crit, ((EntityState)this).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f);
}
}
}
public override void OnExit()
{
((EntityState)this).OnExit();
if (Object.op_Implicit((Object)(object)base.skillBehaviour))
{
base.skillBehaviour.SetExecutableSkills(-1);
}
if (Object.op_Implicit((Object)(object)shieldInstance))
{
EntityState.Destroy((Object)(object)shieldInstance);
}
if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams))
{
request.Dispose();
}
}
public override InterruptPriority GetMinimumInterruptPriority()
{
//IL_0002: 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)
return (InterruptPriority)1;
}
}
internal class BaseSpecialAlt : Secondary
{
public override void OnEnter()
{
if (Object.op_Implicit((Object)(object)((BaseDBZSkillState)this).skillBehaviour))
{
((BeamBaseState)this).baseKiCost = ((BaseDBZSkillState)this).skillBehaviour.baseSpecialCost;
}
((BeamBaseState)this).chargeSFX = Sounds.Play_DBZ_Broly_GR_START;
((BeamBaseState)this).skillIndex = 3;
base.OnEnter();
}
public override void FixedUpdate()
{
base.FixedUpdate();
if (((EntityState)this).fixedAge >= 1.4f && ((EntityState)this).isAuthority)
{
((EntityState)this).outer.SetNextState((EntityState)(object)new SpecialAltFire());
}
}
}
internal class SpecialAltFire : BeamFire
{
private float stopwatch;
private float bulletDelay = 0.4f;
private int projectileCount = 1;
public override void OnEnter()
{
base.beamSFX = Sounds.Play_DBZ_Broly_GR_FIRE;
((BeamFire)this).OnEnter();
}
public override void FixedUpdate()
{
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_0028: Unknown result type (might be due to invalid IL or missing references)
//IL_003a: 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_007b: 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_00aa: Unknown result type (might be due to invalid IL or missing references)
//IL_00af: Unknown result type (might be due to invalid IL or missing references)
//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
//IL_00d0: 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_00d7: 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)
//IL_00de: Unknown result type (might be due to invalid IL or missing references)
//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
((BeamFire)this).FixedUpdate();
stopwatch += Time.fixedDeltaTime;
Ray val = (Object.op_Implicit((Object)(object)((BaseDBZSkillState)this).skillBehaviour) ? ((BaseDBZSkillState)this).skillBehaviour.aimRay : ((BaseState)this).GetAimRay());
if (!(stopwatch >= bulletDelay) || !((EntityState)this).isAuthority)
{
return;
}
for (int i = 0; i < projectileCount; i++)
{
if (((EntityState)this).isAuthority)
{
Vector3 direction = ((Ray)(ref val)).direction;
Vector3 val2 = Vector3.up * Random.Range(0f, 1.5f);
Vector3 val3 = Vector3.left * Random.Range(0f, 1f);
Vector3 val4 = Vector3.right * Random.Range(0f, 1f);
direction = direction + val2 + val3 + val4;
ProjectileManager.instance.FireProjectile(Prefabs.meteorProjectile, ((Ray)(ref val)).origin, Util.QuaternionSafeLookRotation(direction), ((EntityState)this).gameObject, ((EntityState)this).characterBody.damage * 2f, 200f, Util.CheckRoll(((EntityState)this).characterBody.crit, ((EntityState)this).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f);
}
}
int num = RoR2Application.rng.RangeInt(0, 101);
if (num <= 10)
{
AkSoundEngine.PostEvent(Sounds.Play_DBZ_Broly_BM_PROJ_FIRE, ((EntityState)this).gameObject);
}
}
}
internal class Sounds
{
public static readonly uint Play_DBZ_Broly_BM_PROJ_FIRE = 138774938u;
public static readonly uint Play_DBZ_Broly_Skill = 719813295u;
public static readonly uint Play_DBZ_Broly_Kill = 849892544u;
public static readonly uint Play_DBZ_Broly_HeavyDMGGrunt = 900023071u;
public static readonly uint Play_DBZ_Broly_GR_START = 994274522u;
public static readonly uint Play_DBZ_Broly_Death = 1131012950u;
public static readonly uint Play_DBZ_Broly_LightDMGGrunt = 1316871422u;
public static readonly uint Play_DBZ_Broly_BM_PROJ_HIT = 1628223241u;
public static readonly uint Play_DBZ_Broly_BM_Fire = 1649943162u;
public static readonly uint Play_DBZ_Broly_ATKGrunt = 1678111780u;
public static readonly uint Play_DBZ_Broly_Powerup = 2410957748u;
public static readonly uint Play_DBZ_Broly_GR_FIRE = 2582106326u;
public static readonly uint Play_DBZ_Broly_BossKill = 2993290007u;
public static readonly uint Play_DBZ_Broly_Intro = 3306289462u;
public static readonly uint Play_DBZ_Broly_Passive = 3399426583u;
public static readonly uint Play_DBZ_Broly_FinalBossEncounter = 3474272650u;
public static readonly uint Play_DBZ_Broly_BM_START = 3940999334u;
}