Decompiled source of Caulifla v1.0.0

Caulifla.dll

Decompiled 3 months ago
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 R2API;
using R2API.Utils;
using RoR2;
using RoR2.Skills;
using UnityEngine;

[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("Caulifla")]
[assembly: AssemblyTitle("Caulifla")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace Caulifla;

internal class Assets
{
	public static AssetBundle MainAssetBundle;

	public static void PopulateAssets()
	{
		if ((Object)(object)MainAssetBundle == (Object)null)
		{
			using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Caulifla.cauliflaassets");
			MainAssetBundle = AssetBundle.LoadFromStream(stream);
		}
		using Stream stream2 = Assembly.GetExecutingAssembly().GetManifestResourceStream("Caulifla.Caulifla.bnk");
		byte[] array = new byte[stream2.Length];
		stream2.Read(array, 0, array.Length);
		SoundBanks.Add(array);
	}
}
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
		RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients);
	}

	internal static void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args)
	{
	}
}
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInPlugin("com.DragonyckCaulifla", "Caulifla", "1.0.0")]
[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
public class MainPlugin : BaseUnityPlugin
{
	public const string MODUID = "com.DragonyckCaulifla";

	public const string MODNAME = "Caulifla";

	public const string VERSION = "1.0.0";

	public const string SURVIVORNAME = "Caulifla";

	public const string SURVIVORNAMEKEY = "CAULIFLA";

	public const string SURVIVORNAME2 = "Caulifla (SSJ2)";

	public const string SURVIVORNAMEKEY2 = "CAULIFLA2";

	private static List<string> powerupBodyList = new List<string> { "CauliflaBody", "Caulifla (SSJ2)Body" };

	private static float desiredSortPosition = 15f;

	private void Awake()
	{
		Assets.PopulateAssets();
		Prefabs.CreatePrefabs();
		CreateSurvivor();
		CreatePowerupSurvivor("cauliflaSSJ", "Caulifla (SSJ2)", "CAULIFLA2", 2f);
		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_019d: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_026b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0288: Unknown result type (might be due to invalid IL or missing references)
		//IL_029b: Unknown result type (might be due to invalid IL or missing references)
		//IL_02b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ba: Expected O, but got Unknown
		//IL_02ba: Expected O, but got Unknown
		//IL_02d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f0: Expected O, but got Unknown
		//IL_02f0: Expected O, but got Unknown
		//IL_0307: Unknown result type (might be due to invalid IL or missing references)
		//IL_031c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0326: Expected O, but got Unknown
		//IL_0326: Expected O, but got Unknown
		//IL_033d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0352: Unknown result type (might be due to invalid IL or missing references)
		//IL_035c: Expected O, but got Unknown
		//IL_035c: Expected O, but got Unknown
		//IL_0373: Unknown result type (might be due to invalid IL or missing references)
		//IL_0388: Unknown result type (might be due to invalid IL or missing references)
		//IL_0392: Expected O, but got Unknown
		//IL_0392: Expected O, but got Unknown
		//IL_03a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_03be: Unknown result type (might be due to invalid IL or missing references)
		//IL_03c8: Expected O, but got Unknown
		//IL_03c8: Expected O, but got Unknown
		//IL_03df: Unknown result type (might be due to invalid IL or missing references)
		//IL_03f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_03fe: Expected O, but got Unknown
		//IL_03fe: Expected O, but got Unknown
		//IL_0415: Unknown result type (might be due to invalid IL or missing references)
		//IL_042a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0434: Expected O, but got Unknown
		//IL_0434: Expected O, but got Unknown
		//IL_044b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0460: Unknown result type (might be due to invalid IL or missing references)
		//IL_046a: Expected O, but got Unknown
		//IL_046a: Expected O, but got Unknown
		//IL_0481: Unknown result type (might be due to invalid IL or missing references)
		//IL_0496: Unknown result type (might be due to invalid IL or missing references)
		//IL_04a0: Expected O, but got Unknown
		//IL_04a0: Expected O, but got Unknown
		//IL_04b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_04cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_04d6: Expected O, but got Unknown
		//IL_04d6: Expected O, but got Unknown
		//IL_04ed: Unknown result type (might be due to invalid IL or missing references)
		//IL_0502: Unknown result type (might be due to invalid IL or missing references)
		//IL_050c: Expected O, but got Unknown
		//IL_050c: Expected O, but got Unknown
		//IL_0523: Unknown result type (might be due to invalid IL or missing references)
		//IL_0538: Unknown result type (might be due to invalid IL or missing references)
		//IL_0542: Expected O, but got Unknown
		//IL_0542: Expected O, but got Unknown
		//IL_0559: Unknown result type (might be due to invalid IL or missing references)
		//IL_056e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0578: Expected O, but got Unknown
		//IL_0578: Expected O, but got Unknown
		//IL_058f: Unknown result type (might be due to invalid IL or missing references)
		//IL_05a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_05ab: Expected O, but got Unknown
		//IL_05ab: Expected O, but got Unknown
		//IL_05c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_05d7: Unknown result type (might be due to invalid IL or missing references)
		//IL_05e1: Expected O, but got Unknown
		//IL_05e1: Expected O, but got Unknown
		//IL_05eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_05ed: Unknown result type (might be due to invalid IL or missing references)
		//IL_069c: Unknown result type (might be due to invalid IL or missing references)
		//IL_06a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_06e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_06f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_06fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_0703: Unknown result type (might be due to invalid IL or missing references)
		GameObject val = Assets.MainAssetBundle.LoadAsset<GameObject>("caulifla");
		SurvivorDef val2 = default(SurvivorDef);
		CharacterBody val3 = DBZSurvivors.SetupNewDBZSurvivor(val, "Caulifla", ref val2);
		((Object)val3).name = "CauliflaBody";
		val3.baseNameToken = "CAULIFLA_NAME";
		val3.subtitleNameToken = "CAULIFLA_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 = 1;
		val3.sprintingSpeedMultiplier = 1.45f;
		val3.wasLucky = false;
		val3.hideCrosshair = false;
		val3.hullClassification = (HullClassification)0;
		val3.portraitIcon = (Texture)(object)Assets.MainAssetBundle.LoadAsset<Sprite>("portrait").texture;
		val3.isChampion = false;
		val3.currentVehicle = null;
		val3.skinIndex = 0u;
		val3.preferredPodPrefab = Prefabs.DBZPodPrefab;
		val3.bodyColor = new Color(0.63922f, 0.72157f, 0.09804f);
		ConfigFile val4 = Utils.CreateConfig(val3);
		KiBehaviour component = ((Component)val3).GetComponent<KiBehaviour>();
		component.hasPowerup = true;
		((Component)val3).GetComponent<KiBehaviour>().passiveRegen = true;
		((Component)val3).GetComponent<ModelLocator>().modelBaseTransform.GetChild(0).localPosition = new Vector3(0f, 0.4f, 0f);
		DBZSurvivorDef val5 = ScriptableObject.CreateInstance<DBZSurvivorDef>();
		val5.attackVO = Sounds.Play_Caulifla_Attack;
		val5.bossEncounterVO = Sounds.Play_Caulifla_Encounter;
		val5.bossKillVO = Sounds.Play_Caulifla_BossKill;
		val5.heavyHitVO = Sounds.Play_Caulifla_HeavyDamage;
		val5.killVO = Sounds.Play_Caulifla_Kill;
		val5.lightHitVO = Sounds.Play_Caulifla_Damage;
		val5.skillVO = Sounds.Play_Caulifla_Skill;
		val5.deathVO = Sounds.Play_Caulifla_Death;
		val5.powerupVO = Sounds.Play_Caulifla_Powerup;
		val5.vfxColor = (VFXColor)0;
		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);
		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 she left.";
		string text3 = "..and so she vanished.";
		LanguageAPI.Add("CAULIFLA_NAME", "Caulifla");
		LanguageAPI.Add("CAULIFLA_DESCRIPTION", text);
		LanguageAPI.Add("CAULIFLA_SUBTITLE", "");
		LanguageAPI.Add("CAULIFLA_OUTRO", text2);
		LanguageAPI.Add("CAULIFLA_FAIL", text3);
		val2.primaryColor = val3.bodyColor;
		val2.displayPrefab = Utils.RemoveDither(val, "CauliflaDisplay");
		val2.desiredSortPosition = desiredSortPosition;
		SkillSetup(((Component)val3).gameObject);
		AddHitBoxes(val.transform);
		DBZSurvivors.survivorSceneProps.Add(val, new TransformMemory
		{
			position = new Vector3(0.26f, 1.157f, 10.7f)
		});
	}

	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_01f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_024e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0253: 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_02df: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0307: Unknown result type (might be due to invalid IL or missing references)
		//IL_0311: Expected O, but got Unknown
		//IL_0311: Expected O, but got Unknown
		//IL_0328: Unknown result type (might be due to invalid IL or missing references)
		//IL_033d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0347: Expected O, but got Unknown
		//IL_0347: Expected O, but got Unknown
		//IL_035e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0373: Unknown result type (might be due to invalid IL or missing references)
		//IL_037d: Expected O, but got Unknown
		//IL_037d: Expected O, but got Unknown
		//IL_0394: Unknown result type (might be due to invalid IL or missing references)
		//IL_03a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_03b3: Expected O, but got Unknown
		//IL_03b3: Expected O, but got Unknown
		//IL_03ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_03df: Unknown result type (might be due to invalid IL or missing references)
		//IL_03e9: Expected O, but got Unknown
		//IL_03e9: Expected O, but got Unknown
		//IL_0400: Unknown result type (might be due to invalid IL or missing references)
		//IL_0415: Unknown result type (might be due to invalid IL or missing references)
		//IL_041f: Expected O, but got Unknown
		//IL_041f: Expected O, but got Unknown
		//IL_0436: Unknown result type (might be due to invalid IL or missing references)
		//IL_044b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0455: Expected O, but got Unknown
		//IL_0455: Expected O, but got Unknown
		//IL_046c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0481: Unknown result type (might be due to invalid IL or missing references)
		//IL_048b: Expected O, but got Unknown
		//IL_048b: Expected O, but got Unknown
		//IL_04a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_04b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_04c1: Expected O, but got Unknown
		//IL_04c1: Expected O, but got Unknown
		//IL_04d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_04ed: Unknown result type (might be due to invalid IL or missing references)
		//IL_04f7: Expected O, but got Unknown
		//IL_04f7: Expected O, but got Unknown
		//IL_050e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0523: Unknown result type (might be due to invalid IL or missing references)
		//IL_052d: Expected O, but got Unknown
		//IL_052d: Expected O, but got Unknown
		//IL_0544: Unknown result type (might be due to invalid IL or missing references)
		//IL_0559: Unknown result type (might be due to invalid IL or missing references)
		//IL_0563: Expected O, but got Unknown
		//IL_0563: Expected O, but got Unknown
		//IL_057a: Unknown result type (might be due to invalid IL or missing references)
		//IL_058f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0599: Expected O, but got Unknown
		//IL_0599: Expected O, but got Unknown
		//IL_05b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_05c5: Unknown result type (might be due to invalid IL or missing references)
		//IL_05cf: Expected O, but got Unknown
		//IL_05cf: Expected O, but got Unknown
		//IL_05e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_05f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0602: Expected O, but got Unknown
		//IL_0602: Expected O, but got Unknown
		//IL_0619: Unknown result type (might be due to invalid IL or missing references)
		//IL_062e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0638: Expected O, but got Unknown
		//IL_0638: Expected O, but got Unknown
		//IL_0642: Unknown result type (might be due to invalid IL or missing references)
		//IL_0644: Unknown result type (might be due to invalid IL or missing references)
		//IL_0669: Unknown result type (might be due to invalid IL or missing references)
		//IL_078d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0792: Unknown result type (might be due to invalid IL or missing references)
		//IL_07ba: Unknown result type (might be due to invalid IL or missing references)
		//IL_07cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_07d5: Expected O, but got Unknown
		//IL_07d5: Expected O, but got Unknown
		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;
		((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 component = ((Component)val3).GetComponent<KiBehaviour>();
		component.hasPowerup = false;
		component.maxKiValue = 1f * value;
		component.passiveRegenValue = 0.02f * value;
		component.passiveRegen = true;
		EntityStateMachine component2 = ((Component)val3).GetComponent<EntityStateMachine>();
		component2.initialStateType = new SerializableEntityStateType(typeof(BasePowerupSpawnState));
		DBZSurvivorDef val5 = ScriptableObject.CreateInstance<DBZSurvivorDef>();
		val5.config = val4;
		val5.attackVO = Sounds.Play_Caulifla_Attack;
		val5.bossEncounterVO = Sounds.Play_Caulifla_Encounter;
		val5.bossKillVO = Sounds.Play_Caulifla_BossKill;
		val5.heavyHitVO = Sounds.Play_Caulifla_HeavyDamage;
		val5.killVO = Sounds.Play_Caulifla_Kill;
		val5.lightHitVO = Sounds.Play_Caulifla_Damage;
		val5.skillVO = Sounds.Play_Caulifla_Skill;
		val5.deathVO = Sounds.Play_Caulifla_Death;
		val5.powerupVO = Sounds.Play_Caulifla_Powerup;
		val5.vfxColor = (VFXColor)4;
		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
		};
		((Component)val3).GetComponent<ModelLocator>().modelBaseTransform.GetChild(0).localPosition = new Vector3(0f, 0.4f, 0f);
		if (survivorName == "Caulifla (SSJ2)")
		{
			val2.desiredSortPosition = desiredSortPosition + 0.1f;
			val3.portraitIcon = (Texture)(object)Assets.MainAssetBundle.LoadAsset<Sprite>("portraitSSJ2").texture;
		}
		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 she left.";
		string text3 = "..and so she vanished.";
		LanguageAPI.Add(survivorNameKey + "_NAME", survivorName);
		LanguageAPI.Add(survivorNameKey + "_DESCRIPTION", text);
		LanguageAPI.Add(survivorNameKey + "_SUBTITLE", "");
		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;
		PowerupSkillSetup(((Component)val3).gameObject);
		AddHitBoxes(val.transform);
	}

	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(3f, 3f, 3.3f));
		val.transform.localPosition = new Vector3(0f, 0.7f, 1f);
	}

	private void RegisterStates()
	{
		LanguageAPI.Add("CAULIFLA_M1", "Primary");
	}

	private static void AddSpecialP(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_0107: Unknown result type (might be due to invalid IL or missing references)
		//IL_011f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0129: Expected O, but got Unknown
		//IL_012a: Unknown result type (might be due to invalid IL or missing references)
		//IL_012b: 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(CrushStream));
		((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 = Prefabs.oneHKamehamehaIconRED;
		((SkillDef)val).skillDescriptionToken = "DBZ_CRUSHSTREAM_SKILL_DESCRIPTION";
		((SkillDef)val).skillName = "DBZ_CRUSHSTREAM_SKILL_NAME";
		((SkillDef)val).skillNameToken = "DBZ_CRUSHSTREAM_SKILL_NAME";
		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 AddSecondaryP(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_0107: Unknown result type (might be due to invalid IL or missing references)
		//IL_011f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0129: Expected O, but got Unknown
		//IL_012a: Unknown result type (might be due to invalid IL or missing references)
		//IL_012b: Unknown result type (might be due to invalid IL or missing references)
		DBZSkillDef val = ScriptableObject.CreateInstance<DBZSkillDef>();
		((SkillDef)val).activationStateMachineName = "Weapon";
		((SkillDef)val).activationState = new SerializableEntityStateType(typeof(DoubleCrushCast));
		((SkillDef)val).baseMaxStock = 1;
		((SkillDef)val).baseRechargeInterval = 6f;
		((SkillDef)val).beginSkillCooldownOnSkillEnd = true;
		((SkillDef)val).canceledFromSprinting = false;
		((SkillDef)val).fullRestockOnAssign = true;
		((SkillDef)val).interruptPriority = (InterruptPriority)1;
		((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 = Prefabs.doubleCrushIcon;
		((SkillDef)val).skillDescriptionToken = "DBZ_DOUBLECRUSH_SKILL_DESCRIPTION";
		((SkillDef)val).skillName = "DBZ_DOUBLECRUSH_SKILL_NAME";
		((SkillDef)val).skillNameToken = "DBZ_DOUBLECRUSH_SKILL_NAME";
		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 PowerupSkillSetup(GameObject characterPrefab)
	{
		SkillLocator component = characterPrefab.GetComponent<SkillLocator>();
		AddPrimary(component);
		AddSecondaryP(component);
		AddUtility(component);
		AddSpecialP(component);
	}

	private static void SkillSetup(GameObject characterPrefab)
	{
		SkillLocator component = characterPrefab.GetComponent<SkillLocator>();
		AddPrimary(component);
		AddSecondary(component);
		AddUtility(component);
		AddSpecial(component);
	}

	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("CAULIFLA_M1", "Rampage");
		((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 = "CAULIFLA_M1";
		((SkillDef)val).skillNameToken = "CAULIFLA_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(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_0107: Unknown result type (might be due to invalid IL or missing references)
		//IL_011f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0129: Expected O, but got Unknown
		//IL_012a: Unknown result type (might be due to invalid IL or missing references)
		//IL_012b: 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(ChargeProjectileChargeStateRed));
		((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 = Prefabs.lightgrenadeRED;
		((SkillDef)val).skillDescriptionToken = "DBZ_CRUSHCANNON_SKILL_DESCRIPTION";
		((SkillDef)val).skillName = "DBZ_CRUSHCANNON_SKILL_NAME";
		((SkillDef)val).skillNameToken = "DBZ_CRUSHCANNON_SKILL_NAME";
		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 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 AddSpecial(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_00fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0114: Unknown result type (might be due to invalid IL or missing references)
		//IL_011e: Expected O, but got Unknown
		//IL_011f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0120: 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(RayBlastState));
		((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 = Prefabs.rayBlastIcon;
		((SkillDef)val).skillDescriptionToken = "DBZ_RAYBLAST_SKILL_DESCRIPTION";
		((SkillDef)val).skillName = "DBZ_RAYBLAST_SKILL_NAME";
		((SkillDef)val).skillNameToken = "DBZ_RAYBLAST_SKILL_NAME";
		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 Prefabs
{
	internal static void CreatePrefabs()
	{
	}
}
internal class Sounds
{
	public static readonly uint Play_Caulifla_Death = 86902062u;

	public static readonly uint Play_Caulifla_Attack = 440229500u;

	public static readonly uint Play_Caulifla_Powerup = 752218860u;

	public static readonly uint Play_Caulifla_BossKill = 818183807u;

	public static readonly uint Play_Caulifla_Kill = 1115939288u;

	public static readonly uint Play_Caulifla_HeavyDamage = 1486319714u;

	public static readonly uint Play_Caulifla_Encounter = 2823129807u;

	public static readonly uint Play_Caulifla_Damage = 3253773459u;

	public static readonly uint Play_Caulifla_Skill = 3818715767u;
}