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 EntityStates.Commando;
using KinematicCharacterController;
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("Piccolo")]
[assembly: AssemblyTitle("Piccolo")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace Piccolo;
internal class Assets
{
public static AssetBundle MainAssetBundle;
public static void PopulateAssets()
{
if ((Object)(object)MainAssetBundle == (Object)null)
{
using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Piccolo.piccoloassets");
MainAssetBundle = AssetBundle.LoadFromStream(stream);
}
using Stream stream2 = Assembly.GetExecutingAssembly().GetManifestResourceStream("Piccolo.Piccolo.bnk");
byte[] array = new byte[stream2.Length];
stream2.Read(array, 0, array.Length);
SoundBanks.Add(array);
}
}
[RequireComponent(typeof(MissileController))]
[RequireComponent(typeof(ProjectileSteerTowardTarget))]
[RequireComponent(typeof(ProjectileTargetComponent))]
[RequireComponent(typeof(ProjectileController))]
internal class HellzoneGrenadeProjectileBehaviour : MonoBehaviour
{
[SerializeField]
private MissileController missile;
[SerializeField]
private ProjectileSteerTowardTarget steer;
[SerializeField]
private ProjectileTargetComponent target;
[SerializeField]
private ProjectileController controller;
[SerializeField]
private GameObject owner;
[SerializeField]
private CharacterBody body;
[SerializeField]
private ModelLocator modelLocator;
[SerializeField]
private DBZSkillEventHandler skillEvent;
private void OnEnable()
{
}
private void Update()
{
//IL_010e: Unknown result type (might be due to invalid IL or missing references)
//IL_011e: Unknown result type (might be due to invalid IL or missing references)
//IL_0153: Unknown result type (might be due to invalid IL or missing references)
if (!Object.op_Implicit((Object)(object)owner))
{
missile = ((Component)this).GetComponent<MissileController>();
target = ((Component)this).GetComponent<ProjectileTargetComponent>();
steer = ((Component)this).GetComponent<ProjectileSteerTowardTarget>();
controller = ((Component)this).GetComponent<ProjectileController>();
if (Object.op_Implicit((Object)(object)controller) && Object.op_Implicit((Object)(object)controller.Networkowner))
{
owner = controller.owner;
body = owner.GetComponent<CharacterBody>();
if (Object.op_Implicit((Object)(object)body))
{
modelLocator = body.modelLocator;
if (Object.op_Implicit((Object)(object)modelLocator) && Object.op_Implicit((Object)(object)modelLocator.modelTransform))
{
skillEvent = ((Component)modelLocator.modelTransform).GetComponent<DBZSkillEventHandler>();
}
}
}
}
if (Object.op_Implicit((Object)(object)target.target))
{
float num = Vector3.Distance(((Component)this).transform.position, target.target.position);
if (num <= 18f)
{
missile.maxVelocity = 0f;
((Component)this).GetComponent<Rigidbody>().velocity = Vector3.zero;
}
}
if (Object.op_Implicit((Object)(object)missile) && Object.op_Implicit((Object)(object)skillEvent) && skillEvent.detonateHellzone)
{
missile.maxVelocity = 70f;
steer.rotationSpeed = 300f;
}
}
}
internal class Hook
{
internal static void Hooks()
{
}
}
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInPlugin("com.DragonyckPiccolo", "Piccolo", "2.0.2")]
[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
public class MainPlugin : BaseUnityPlugin
{
public const string MODUID = "com.DragonyckPiccolo";
public const string MODNAME = "Piccolo";
public const string VERSION = "2.0.2";
public const string SURVIVORNAME = "Piccolo";
public const string SURVIVORNAMEKEY = "PICCOLO";
public const string SURVIVORNAME2 = "Piccolo (Power Awakening)";
public const string SURVIVORNAMEKEY2 = "PICCOLO2";
public const string SURVIVORNAME3 = "Piccolo (Orange)";
public const string SURVIVORNAMEKEY3 = "PICCOLO3";
private static List<string> powerupBodyList = new List<string> { "PiccoloBody", "Piccolo (Power Awakening)Body", "Piccolo (Orange)Body" };
private void Awake()
{
Assets.PopulateAssets();
Prefabs.CreatePrefabs();
CreateSurvivor();
CreatePowerupSurvivor("Newccolo", "Piccolo (Power Awakening)", "PICCOLO2", 1.5f);
CreatePowerupSurvivor("Swoleccolo", "Piccolo (Orange)", "PICCOLO3", 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_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_01a7: Unknown result type (might be due to invalid IL or missing references)
//IL_01ac: Unknown result type (might be due to invalid IL or missing references)
//IL_0237: Unknown result type (might be due to invalid IL or missing references)
//IL_0254: Unknown result type (might be due to invalid IL or missing references)
//IL_0267: Unknown result type (might be due to invalid IL or missing references)
//IL_027c: Unknown result type (might be due to invalid IL or missing references)
//IL_0286: Expected O, but got Unknown
//IL_0286: Expected O, but got Unknown
//IL_029d: Unknown result type (might be due to invalid IL or missing references)
//IL_02b2: Unknown result type (might be due to invalid IL or missing references)
//IL_02bc: Expected O, but got Unknown
//IL_02bc: Expected O, but got Unknown
//IL_02d3: Unknown result type (might be due to invalid IL or missing references)
//IL_02e8: Unknown result type (might be due to invalid IL or missing references)
//IL_02f2: Expected O, but got Unknown
//IL_02f2: Expected O, but got Unknown
//IL_0309: Unknown result type (might be due to invalid IL or missing references)
//IL_031e: Unknown result type (might be due to invalid IL or missing references)
//IL_0328: Expected O, but got Unknown
//IL_0328: Expected O, but got Unknown
//IL_033f: Unknown result type (might be due to invalid IL or missing references)
//IL_0354: Unknown result type (might be due to invalid IL or missing references)
//IL_035e: Expected O, but got Unknown
//IL_035e: Expected O, but got Unknown
//IL_0375: Unknown result type (might be due to invalid IL or missing references)
//IL_038a: Unknown result type (might be due to invalid IL or missing references)
//IL_0394: Expected O, but got Unknown
//IL_0394: Expected O, but got Unknown
//IL_03ab: Unknown result type (might be due to invalid IL or missing references)
//IL_03c0: Unknown result type (might be due to invalid IL or missing references)
//IL_03ca: Expected O, but got Unknown
//IL_03ca: Expected O, but got Unknown
//IL_03e1: Unknown result type (might be due to invalid IL or missing references)
//IL_03f6: Unknown result type (might be due to invalid IL or missing references)
//IL_0400: Expected O, but got Unknown
//IL_0400: Expected O, but got Unknown
//IL_0417: Unknown result type (might be due to invalid IL or missing references)
//IL_042c: Unknown result type (might be due to invalid IL or missing references)
//IL_0436: Expected O, but got Unknown
//IL_0436: Expected O, but got Unknown
//IL_044d: Unknown result type (might be due to invalid IL or missing references)
//IL_0462: Unknown result type (might be due to invalid IL or missing references)
//IL_046c: Expected O, but got Unknown
//IL_046c: Expected O, but got Unknown
//IL_0483: Unknown result type (might be due to invalid IL or missing references)
//IL_0498: Unknown result type (might be due to invalid IL or missing references)
//IL_04a2: Expected O, but got Unknown
//IL_04a2: Expected O, but got Unknown
//IL_04b9: Unknown result type (might be due to invalid IL or missing references)
//IL_04ce: Unknown result type (might be due to invalid IL or missing references)
//IL_04d8: Expected O, but got Unknown
//IL_04d8: Expected O, but got Unknown
//IL_04ef: Unknown result type (might be due to invalid IL or missing references)
//IL_0504: Unknown result type (might be due to invalid IL or missing references)
//IL_050e: Expected O, but got Unknown
//IL_050e: Expected O, but got Unknown
//IL_0525: Unknown result type (might be due to invalid IL or missing references)
//IL_053a: Unknown result type (might be due to invalid IL or missing references)
//IL_0544: Expected O, but got Unknown
//IL_0544: Expected O, but got Unknown
//IL_055b: Unknown result type (might be due to invalid IL or missing references)
//IL_056d: Unknown result type (might be due to invalid IL or missing references)
//IL_0577: Expected O, but got Unknown
//IL_0577: Expected O, but got Unknown
//IL_058e: Unknown result type (might be due to invalid IL or missing references)
//IL_05a3: Unknown result type (might be due to invalid IL or missing references)
//IL_05ad: Expected O, but got Unknown
//IL_05ad: Expected O, but got Unknown
//IL_05b7: Unknown result type (might be due to invalid IL or missing references)
//IL_05b9: Unknown result type (might be due to invalid IL or missing references)
//IL_05e0: Unknown result type (might be due to invalid IL or missing references)
//IL_05e5: Unknown result type (might be due to invalid IL or missing references)
//IL_0686: Unknown result type (might be due to invalid IL or missing references)
//IL_068b: Unknown result type (might be due to invalid IL or missing references)
//IL_06c8: Unknown result type (might be due to invalid IL or missing references)
//IL_06df: Unknown result type (might be due to invalid IL or missing references)
//IL_06e4: Unknown result type (might be due to invalid IL or missing references)
//IL_06e9: Unknown result type (might be due to invalid IL or missing references)
GameObject val = Assets.MainAssetBundle.LoadAsset<GameObject>("Piccolo");
SurvivorDef val2 = default(SurvivorDef);
CharacterBody val3 = DBZSurvivors.SetupNewDBZSurvivor(val, "Piccolo", ref val2);
((Object)val3).name = "PiccoloBody";
val3.baseNameToken = "PICCOLO_NAME";
val3.subtitleNameToken = "PICCOLO_SUBTITLE";
val3.bodyFlags = (BodyFlags)16;
val3.rootMotionInMainState = false;
val3.mainRootSpeed = 0f;
val3.baseMaxHealth = 110f;
val3.levelMaxHealth = 33f;
val3.baseRegen = 4f;
val3.levelRegen = 0.6f;
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>("portrait").texture;
val3.isChampion = false;
val3.currentVehicle = null;
val3.skinIndex = 0u;
val3.bodyColor = new Color(0.63922f, 0.72157f, 0.09804f);
((Component)val3).GetComponent<CameraTargetParams>().cameraParams = Addressables.LoadAssetAsync<CharacterCameraParams>((object)"RoR2/Base/Common/ccpStandardMelee.asset").WaitForCompletion();
ConfigFile val4 = Utils.CreateConfig(val3);
((Component)val3).GetComponent<KiBehaviour>().hasPowerup = true;
DBZSurvivorDef val5 = ScriptableObject.CreateInstance<DBZSurvivorDef>();
val5.attackVO = Sounds.Play_DBZ_Piccolo_Attack;
val5.bossEncounterVO = Sounds.Play_DBZ_Piccolo_FinalBossEncounter;
val5.bossKillVO = Sounds.Play_DBZ_Piccolo_BossKill;
val5.heavyHitVO = Sounds.Play_DBZ_Piccolo_HeavyDMG;
val5.killVO = Sounds.Play_DBZ_Piccolo_Kill;
val5.lightHitVO = Sounds.Play_DBZ_Piccolo_LightDMG;
val5.skillVO = Sounds.Play_DBZ_Piccolo_Skill;
val5.deathVO = Sounds.Play_DBZ_Piccolo_Death;
val5.vfxColor = (VFXColor)3;
val5.config = val4;
val5.powerupBodyList = powerupBodyList;
val5.memory = new PowerupMemory
{
spentKiCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Ki Spent", "Coefficient"), 0.00025f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value,
baseKillCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Base Kill", "Coefficient"), 0.25f, new ConfigDescription("FinalValue = xKillCoeff * baseKillCoefficient * powerupCount", (AcceptableValueBase)null, Array.Empty<object>())).Value,
regularKillCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Regular Enemy Kill", "Coefficient"), 0.001f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value,
eliteKillCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Elite Kill", "Coefficient"), 0.0025f, 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"), 0.012f, new ConfigDescription("FinalValue = xItemCoeff * baseItemCoefficient * powerupCount", (AcceptableValueBase)null, Array.Empty<object>())).Value,
whiteItemCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: White Item", "Coefficient"), 0.0001f, 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.002f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value,
redItemCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Red Item", "Coefficient"), 0.0045f, 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.0012f, new ConfigDescription("FinalValue = bonusBasedOnRequiredKills * powerupCount", (AcceptableValueBase)null, Array.Empty<object>())).Value
};
DBZSurvivorCatalog.AddDBZSurvivorDef(val3.baseNameToken, val5);
EntityStateMachine component = ((Component)val3).GetComponent<EntityStateMachine>();
component.mainStateType = new SerializableEntityStateType(typeof(DBZCharacterMain));
string text = "<style=cSub>\r\n\r\n< ! > " + Environment.NewLine + "<style=cSub>\r\n\r\n< ! > " + Environment.NewLine + "<style=cSub>\r\n\r\n< ! > " + Environment.NewLine + "<style=cSub>\r\n\r\n< ! > ";
string text2 = "..and so he left.";
string text3 = "..and so he vanished.";
LanguageAPI.Add("PICCOLO_NAME", "Piccolo");
LanguageAPI.Add("PICCOLO_DESCRIPTION", text);
LanguageAPI.Add("PICCOLO_SUBTITLE", "");
LanguageAPI.Add("PICCOLO_OUTRO", text2);
LanguageAPI.Add("PICCOLO_FAIL", text3);
val2.primaryColor = val3.bodyColor;
val2.desiredSortPosition = 17f;
DBZAimIndicator val6 = ((Component)val3).gameObject.AddComponent<DBZAimIndicator>();
SkillSetup(((Component)val3).gameObject);
AddHitBoxes(val.transform);
DBZSurvivors.survivorSceneProps.Add(val, new TransformMemory
{
position = new Vector3(-0.2f, 1.157f, 11f)
});
}
internal static void CreatePowerupSurvivor(string modelName, string survivorName, string survivorNameKey, float statMultValue)
{
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004d: Expected O, but got Unknown
//IL_004d: Expected O, but got Unknown
//IL_008b: Unknown result type (might be due to invalid IL or missing references)
//IL_01ad: Unknown result type (might be due to invalid IL or missing references)
//IL_01d7: Unknown result type (might be due to invalid IL or missing references)
//IL_01dc: Unknown result type (might be due to invalid IL or missing references)
//IL_01f6: Unknown result type (might be due to invalid IL or missing references)
//IL_024b: Unknown result type (might be due to invalid IL or missing references)
//IL_0250: Unknown result type (might be due to invalid IL or missing references)
//IL_0261: Unknown result type (might be due to invalid IL or missing references)
//IL_0266: Unknown result type (might be due to invalid IL or missing references)
//IL_027f: Unknown result type (might be due to invalid IL or missing references)
//IL_0284: Unknown result type (might be due to invalid IL or missing references)
//IL_0300: Unknown result type (might be due to invalid IL or missing references)
//IL_031e: Unknown result type (might be due to invalid IL or missing references)
//IL_0332: Unknown result type (might be due to invalid IL or missing references)
//IL_0347: Unknown result type (might be due to invalid IL or missing references)
//IL_0351: Expected O, but got Unknown
//IL_0351: Expected O, but got Unknown
//IL_0369: Unknown result type (might be due to invalid IL or missing references)
//IL_037e: Unknown result type (might be due to invalid IL or missing references)
//IL_0388: Expected O, but got Unknown
//IL_0388: Expected O, but got Unknown
//IL_03a0: Unknown result type (might be due to invalid IL or missing references)
//IL_03b5: Unknown result type (might be due to invalid IL or missing references)
//IL_03bf: Expected O, but got Unknown
//IL_03bf: Expected O, but got Unknown
//IL_03d7: Unknown result type (might be due to invalid IL or missing references)
//IL_03ec: Unknown result type (might be due to invalid IL or missing references)
//IL_03f6: Expected O, but got Unknown
//IL_03f6: Expected O, but got Unknown
//IL_040e: Unknown result type (might be due to invalid IL or missing references)
//IL_0423: Unknown result type (might be due to invalid IL or missing references)
//IL_042d: Expected O, but got Unknown
//IL_042d: Expected O, but got Unknown
//IL_0445: Unknown result type (might be due to invalid IL or missing references)
//IL_045a: Unknown result type (might be due to invalid IL or missing references)
//IL_0464: Expected O, but got Unknown
//IL_0464: Expected O, but got Unknown
//IL_047c: Unknown result type (might be due to invalid IL or missing references)
//IL_0491: Unknown result type (might be due to invalid IL or missing references)
//IL_049b: Expected O, but got Unknown
//IL_049b: Expected O, but got Unknown
//IL_04b3: Unknown result type (might be due to invalid IL or missing references)
//IL_04c8: Unknown result type (might be due to invalid IL or missing references)
//IL_04d2: Expected O, but got Unknown
//IL_04d2: Expected O, but got Unknown
//IL_04ea: Unknown result type (might be due to invalid IL or missing references)
//IL_04ff: Unknown result type (might be due to invalid IL or missing references)
//IL_0509: Expected O, but got Unknown
//IL_0509: Expected O, but got Unknown
//IL_0521: Unknown result type (might be due to invalid IL or missing references)
//IL_0536: Unknown result type (might be due to invalid IL or missing references)
//IL_0540: Expected O, but got Unknown
//IL_0540: Expected O, but got Unknown
//IL_0558: Unknown result type (might be due to invalid IL or missing references)
//IL_056d: Unknown result type (might be due to invalid IL or missing references)
//IL_0577: Expected O, but got Unknown
//IL_0577: Expected O, but got Unknown
//IL_058f: Unknown result type (might be due to invalid IL or missing references)
//IL_05a4: Unknown result type (might be due to invalid IL or missing references)
//IL_05ae: Expected O, but got Unknown
//IL_05ae: Expected O, but got Unknown
//IL_05c6: Unknown result type (might be due to invalid IL or missing references)
//IL_05db: Unknown result type (might be due to invalid IL or missing references)
//IL_05e5: Expected O, but got Unknown
//IL_05e5: Expected O, but got Unknown
//IL_05fd: Unknown result type (might be due to invalid IL or missing references)
//IL_0612: Unknown result type (might be due to invalid IL or missing references)
//IL_061c: Expected O, but got Unknown
//IL_061c: Expected O, but got Unknown
//IL_0634: Unknown result type (might be due to invalid IL or missing references)
//IL_0646: Unknown result type (might be due to invalid IL or missing references)
//IL_0650: Expected O, but got Unknown
//IL_0650: Expected O, but got Unknown
//IL_0668: Unknown result type (might be due to invalid IL or missing references)
//IL_067d: Unknown result type (might be due to invalid IL or missing references)
//IL_0687: Expected O, but got Unknown
//IL_0687: Expected O, but got Unknown
//IL_0691: Unknown result type (might be due to invalid IL or missing references)
//IL_0693: Unknown result type (might be due to invalid IL or missing references)
//IL_070a: Unknown result type (might be due to invalid IL or missing references)
//IL_08b9: Unknown result type (might be due to invalid IL or missing references)
//IL_08be: Unknown result type (might be due to invalid IL or missing references)
//IL_08d0: Unknown result type (might be due to invalid IL or missing references)
//IL_08e1: Unknown result type (might be due to invalid IL or missing references)
//IL_08eb: Expected O, but got Unknown
//IL_08eb: Expected O, but got Unknown
//IL_0778: Unknown result type (might be due to invalid IL or missing references)
//IL_07a1: Unknown result type (might be due to invalid IL or missing references)
//IL_07c2: Unknown result type (might be due to invalid IL or missing references)
GameObject val = Assets.MainAssetBundle.LoadAsset<GameObject>(modelName);
ChildLocator component = val.GetComponent<ChildLocator>();
SurvivorDef val2 = default(SurvivorDef);
CharacterBody val3 = DBZSurvivors.SetupNewDBZSurvivor(val, survivorName, ref val2);
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 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));
component3.mainStateType = new SerializableEntityStateType(typeof(DBZCharacterMain));
CharacterDeathBehavior component4 = ((Component)val3).GetComponent<CharacterDeathBehavior>();
component4.deathState = new SerializableEntityStateType(typeof(DeathState));
DBZAimIndicator val5 = ((Component)val3).gameObject.AddComponent<DBZAimIndicator>();
DBZSurvivorDef val6 = ScriptableObject.CreateInstance<DBZSurvivorDef>();
val6.attackVO = Sounds.Play_DBZ_Piccolo_Attack;
val6.bossEncounterVO = Sounds.Play_DBZ_Piccolo_FinalBossEncounter;
val6.bossKillVO = Sounds.Play_DBZ_Piccolo_BossKill;
val6.heavyHitVO = Sounds.Play_DBZ_Piccolo_HeavyDMG;
val6.killVO = Sounds.Play_DBZ_Piccolo_Kill;
val6.lightHitVO = Sounds.Play_DBZ_Piccolo_LightDMG;
val6.skillVO = Sounds.Play_DBZ_Piccolo_Skill;
val6.deathVO = Sounds.Play_DBZ_Piccolo_Death;
val6.vfxColor = (VFXColor)3;
val6.config = val4;
val6.powerupBodyList = powerupBodyList;
val6.memory = new PowerupMemory
{
spentKiCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Ki Spent", "Coefficient"), 0.00025f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value,
baseKillCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Base Kill", "Coefficient"), 0.25f, new ConfigDescription("FinalValue = xKillCoeff * baseKillCoefficient * powerupCount", (AcceptableValueBase)null, Array.Empty<object>())).Value,
regularKillCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Regular Enemy Kill", "Coefficient"), 0.001f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value,
eliteKillCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Elite Kill", "Coefficient"), 0.0025f, 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"), 0.012f, new ConfigDescription("FinalValue = xItemCoeff * baseItemCoefficient * powerupCount", (AcceptableValueBase)null, Array.Empty<object>())).Value,
whiteItemCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: White Item", "Coefficient"), 0.0001f, 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.002f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())).Value,
redItemCoefficient = val4.Bind<float>(new ConfigDefinition("Powerup: Red Item", "Coefficient"), 0.0045f, 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.0012f, new ConfigDescription("FinalValue = bonusBasedOnRequiredKills * powerupCount", (AcceptableValueBase)null, Array.Empty<object>())).Value
};
SkillLocator component5 = ((Component)val3).GetComponent<SkillLocator>();
AddPassive(component5);
if (!(survivorName == "Piccolo (Power Awakening)"))
{
if (survivorName == "Piccolo (Orange)")
{
component2.hasPowerup = false;
val6.powerupBodyList = null;
AddPrimary(component5);
AddGigaPunch(component5);
AddUtility(component5);
AddFullPowerEnergyWave(component5);
val2.desiredSortPosition = 17.2f;
val6.vfxColor = (VFXColor)7;
ModelLocator component6 = ((Component)val3).GetComponent<ModelLocator>();
component6.modelBaseTransform.GetChild(0).localPosition = new Vector3(0f, 1.5f, 0f);
component6.modelBaseTransform.localScale = new Vector3(-1f, 1f, 1f);
val3.portraitIcon = (Texture)(object)Assets.MainAssetBundle.LoadAsset<Sprite>("portrait3").texture;
AddSwoleHitBoxes(val.transform);
}
}
else
{
((Component)val3).gameObject.AddComponent<DBZAimIndicator>();
AddPrimary(component5);
AddEvilExplosion(component5);
AddUtility(component5);
AddLightGrenade(component5);
val2.desiredSortPosition = 17.1f;
val6.vfxColor = (VFXColor)4;
val3.portraitIcon = (Texture)(object)Assets.MainAssetBundle.LoadAsset<Sprite>("portrait2").texture;
AddHitBoxes(val.transform);
}
DBZSurvivorCatalog.AddDBZSurvivorDef(val3.baseNameToken, val6);
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(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.hidden = val4.Bind<bool>(new ConfigDefinition("Hidden Survivor", "Hidden"), true, new ConfigDescription("Hide in Character Select", (AcceptableValueBase)null, Array.Empty<object>())).Value;
}
private static void AddSwoleHitBoxes(Transform parent)
{
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
//IL_0034: Unknown result type (might be due to invalid IL or missing references)
//IL_0054: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0092: Unknown result type (might be due to invalid IL or missing references)
//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
Utils.CreateHitbox("GigaPunch", parent, new Vector3(-5.8f, 5.8f, 9.1f)).transform.localPosition = new Vector3(0f, 1.3f, 3.6f);
Utils.CreateHitbox("Punch", parent, new Vector3(-4.8f, 4.8f, 5.1f)).transform.localPosition = new Vector3(0f, 1.3f, 1.1f);
Utils.CreateHitbox("EvilExplosion", parent, new Vector3(-6.5f, 6f, 18f)).transform.localPosition = new Vector3(0f, 1f, 8f);
}
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)
//IL_0056: Unknown result type (might be due to invalid IL or missing references)
//IL_0076: Unknown result type (might be due to invalid IL or missing references)
GameObject val = Utils.CreateHitbox("Punch", parent, new Vector3(4.5f, 4.5f, 4.8f));
val.transform.localPosition = new Vector3(0f, 1.3f, 1f);
GameObject val2 = Utils.CreateHitbox("EvilExplosion", parent, new Vector3(6.5f, 6f, 18f));
val2.transform.localPosition = new Vector3(0f, 1f, 8f);
}
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)
bool flag = default(bool);
ContentAddition.AddEntityState<Secondary>(ref flag);
ContentAddition.AddEntityState<SecondaryEnd>(ref flag);
ContentAddition.AddEntityState<SecondaryAlt>(ref flag);
ContentAddition.AddEntityState<Special>(ref flag);
ContentAddition.AddEntityState<SpecialFire>(ref flag);
ContentAddition.AddEntityState<BaseSpecialAlt>(ref flag);
}
private static void SkillSetup(GameObject characterPrefab)
{
SkillLocator component = characterPrefab.GetComponent<SkillLocator>();
LanguageAPI.Add("PICCOLO_PASSIVE_NAME", "Namekian Physiology");
LanguageAPI.Add("PICCOLO_PASSIVE_DESCRIPTION", "Increased health <style=cIsHealing>regeneration</style>.");
SkillDef switchSkillDef = null;
SkillDef switchSkillDef2 = null;
SkillDef switchSkillDef3 = null;
SkillDef switchSkillDef4 = null;
AddPassive(component);
AddPrimary(component);
AddSecondary(component, out switchSkillDef);
AddAltSecondary(component, out switchSkillDef2);
AddUtility(component);
AddSpecial(component, out switchSkillDef3);
AddAltSpecial(component, out switchSkillDef4);
SkillSwitchBehaviour val = characterPrefab.AddComponent<SkillSwitchBehaviour>();
val.secondarySkillDefList = new List<SkillDef> { switchSkillDef, switchSkillDef2 };
val.specialSkillDefList = new List<SkillDef> { switchSkillDef3, switchSkillDef4 };
}
private static void AddFullPowerEnergyWave(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_0193: Unknown result type (might be due to invalid IL or missing references)
//IL_0198: Unknown result type (might be due to invalid IL or missing references)
//IL_01c6: 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_02a0: Unknown result type (might be due to invalid IL or missing references)
//IL_02aa: Expected O, but got Unknown
//IL_02ab: Unknown result type (might be due to invalid IL or missing references)
//IL_02ad: Unknown result type (might be due to invalid IL or missing references)
SkillDef val = null;
SkillDef val2 = null;
LanguageAPI.Add("PICCOLO_APOC", "Apocalyptic Burst");
LanguageAPI.Add("PICCOLO_APOC_DESCRIPTION", "Peform two forward kicks for <style=cIsDamage>360%</style> damage each, followed by a twist kick dealing <style=cIsDamage>480%</style> damage then finish with a quick-charged ki orb attack for <style=cIsDamage>1200%</style> damage.");
DBZSkillDef val3 = ScriptableObject.CreateInstance<DBZSkillDef>();
((SkillDef)val3).activationStateMachineName = "NoMovement";
((SkillDef)val3).activationState = new SerializableEntityStateType(typeof(ApocalypticBurst));
((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>("apocalypticBurst");
((SkillDef)val3).skillDescriptionToken = "PICCOLO_APOC_DESCRIPTION";
((SkillDef)val3).skillName = "PICCOLO_APOC";
((SkillDef)val3).skillNameToken = "PICCOLO_APOC";
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);
val3 = ScriptableObject.CreateInstance<DBZSkillDef>();
((SkillDef)val3).activationStateMachineName = "NoMovement";
((SkillDef)val3).activationState = new SerializableEntityStateType(typeof(FullPowerEnergyWave));
((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 = Prefabs.kamehamehaIconOrange;
((SkillDef)val3).skillDescriptionToken = "DBZ_FULLPOWERENERGYWAVE_SKILL_DESCRIPTION";
((SkillDef)val3).skillName = "DBZ_FULLPOWERENERGYWAVE_SKILL_NAME";
((SkillDef)val3).skillNameToken = "DBZ_FULLPOWERENERGYWAVE_SKILL_NAME";
val3.kiCost = 0.55f;
val3.isSwitch = true;
((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 component = ((Component)skillLocator).gameObject.GetComponent<SkillSwitchBehaviour>();
component.specialSkillDefList = new List<SkillDef> { val, val2 };
}
private static void AddGigaPunch(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_014c: Unknown result type (might be due to invalid IL or missing references)
//IL_0164: Unknown result type (might be due to invalid IL or missing references)
//IL_016e: Expected O, but got Unknown
//IL_016f: Unknown result type (might be due to invalid IL or missing references)
//IL_0171: Unknown result type (might be due to invalid IL or missing references)
//IL_019a: Unknown result type (might be due to invalid IL or missing references)
//IL_019f: Unknown result type (might be due to invalid IL or missing references)
//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
//IL_028f: Unknown result type (might be due to invalid IL or missing references)
//IL_02a7: Unknown result type (might be due to invalid IL or missing references)
//IL_02b1: Expected O, but got Unknown
//IL_02b2: Unknown result type (might be due to invalid IL or missing references)
//IL_02b4: Unknown result type (might be due to invalid IL or missing references)
SkillDef val = null;
SkillDef val2 = null;
DBZSkillDef val3 = ScriptableObject.CreateInstance<DBZSkillDef>();
LanguageAPI.Add("PICCOLO_M2SWOLE", "Fierce Fist");
LanguageAPI.Add("PICCOLO_M2SWOLE_DESCRIPTION", "Charge your fist to deal a powerful punch for <style=cIsDamage>350-1600%</style> damage.");
((SkillDef)val3).activationStateMachineName = "Slide";
((SkillDef)val3).activationState = new SerializableEntityStateType(typeof(ChargeMeleeAttack));
((SkillDef)val3).baseMaxStock = 1;
((SkillDef)val3).baseRechargeInterval = 6f;
((SkillDef)val3).beginSkillCooldownOnSkillEnd = true;
((SkillDef)val3).canceledFromSprinting = false;
((SkillDef)val3).fullRestockOnAssign = false;
((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>("fierceFist");
((SkillDef)val3).skillDescriptionToken = "PICCOLO_M2SWOLE_DESCRIPTION";
((SkillDef)val3).skillName = "PICCOLO_M2SWOLE";
((SkillDef)val3).skillNameToken = "PICCOLO_M2SWOLE";
val3.kiCost = 0.2f;
((SkillDef)val3).keywordTokens = val3.newKeywordTokens;
val3.isAimBased = true;
val = (SkillDef)(object)val3;
ContentAddition.AddSkillDef((SkillDef)(object)val3);
skillLocator.secondary = ((Component)skillLocator).gameObject.AddComponent<GenericSkill>();
SkillFamily val4 = ScriptableObject.CreateInstance<SkillFamily>();
val4.variants = (Variant[])(object)new Variant[1];
Reflection.SetFieldValue<SkillFamily>((object)skillLocator.secondary, "_skillFamily", val4);
SkillFamily skillFamily = skillLocator.secondary.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);
val3 = ScriptableObject.CreateInstance<DBZSkillDef>();
((SkillDef)val3).activationStateMachineName = "NoMovement";
((SkillDef)val3).activationState = new SerializableEntityStateType(typeof(AnimEventBeam));
((SkillDef)val3).baseMaxStock = 1;
((SkillDef)val3).baseRechargeInterval = 6f;
((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 = Prefabs.superExplosiveWaveIcon;
((SkillDef)val3).skillDescriptionToken = "DBZ_SUPEREXPLOSIVEWAVE_DESCRIPTION";
((SkillDef)val3).skillName = "DBZ_SUPEREXPLOSIVEWAVE_NAME";
((SkillDef)val3).skillNameToken = "DBZ_SUPEREXPLOSIVEWAVE_NAME";
val3.kiCost = 0.2f;
val3.isSwitch = true;
((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.secondarySkillDefList = new List<SkillDef> { val, val2 };
}
private static void AddEvilExplosion(SkillLocator skillLocator)
{
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
//IL_0026: Unknown result type (might be due to invalid IL or missing references)
//IL_0054: 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_013b: Unknown result type (might be due to invalid IL or missing references)
SkillDef val = null;
SkillDef switchSkillDef = null;
DBZSkillDef val2 = ScriptableObject.CreateInstance<DBZSkillDef>();
((SkillDef)val2).activationStateMachineName = "Slide";
((SkillDef)val2).activationState = new SerializableEntityStateType(typeof(BulletEvilExplosionState));
((SkillDef)val2).baseMaxStock = 1;
((SkillDef)val2).baseRechargeInterval = 5f;
((SkillDef)val2).beginSkillCooldownOnSkillEnd = true;
((SkillDef)val2).canceledFromSprinting = false;
((SkillDef)val2).fullRestockOnAssign = true;
((SkillDef)val2).interruptPriority = (InterruptPriority)0;
((SkillDef)val2).isCombatSkill = true;
((SkillDef)val2).mustKeyPress = false;
((SkillDef)val2).cancelSprintingOnActivation = true;
((SkillDef)val2).rechargeStock = 1;
((SkillDef)val2).requiredStock = 1;
((SkillDef)val2).stockToConsume = 1;
((SkillDef)val2).icon = Prefabs.evilExplosionIcon;
((SkillDef)val2).skillDescriptionToken = "DBZ_EVILEXPLOSION_DESCRIPTION";
((SkillDef)val2).skillName = "DBZ_EVILEXPLOSION_NAME";
((SkillDef)val2).skillNameToken = "DBZ_EVILEXPLOSION_NAME";
val2.kiCost = 0.2f;
val2.isAimBased = true;
val = (SkillDef)(object)val2;
ContentAddition.AddSkillDef((SkillDef)(object)val2);
skillLocator.secondary = ((Component)skillLocator).gameObject.AddComponent<GenericSkill>();
SkillFamily val3 = ScriptableObject.CreateInstance<SkillFamily>();
val3.variants = (Variant[])(object)new Variant[1];
Reflection.SetFieldValue<SkillFamily>((object)skillLocator.secondary, "_skillFamily", val3);
SkillFamily skillFamily = skillLocator.secondary.skillFamily;
Variant[] variants = skillFamily.variants;
Variant val4 = new Variant
{
skillDef = (SkillDef)(object)val2
};
((Variant)(ref val4)).viewableNode = new Node(((SkillDef)val2).skillNameToken, false, (Node)null);
variants[0] = val4;
ContentAddition.AddSkillFamily(skillFamily);
AddAltSecondary(skillLocator, out switchSkillDef);
SkillSwitchBehaviour val5 = ((Component)skillLocator).gameObject.AddComponent<SkillSwitchBehaviour>();
val5.secondarySkillDefList = new List<SkillDef> { val, switchSkillDef };
}
private static void AddLightGrenade(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(LightGrenadeState));
((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.lightGrenadeIcon;
((SkillDef)val).skillDescriptionToken = "DBZ_LIGHTGRENADE_DESCRIPTION";
((SkillDef)val).skillName = "DBZ_LIGHTGRENADE_NAME";
((SkillDef)val).skillNameToken = "DBZ_LIGHTGRENADE_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 AddPassive(SkillLocator component)
{
component.passiveSkill.enabled = true;
component.passiveSkill.skillNameToken = "PICCOLO_PASSIVE_NAME";
component.passiveSkill.skillDescriptionToken = "PICCOLO_PASSIVE_DESCRIPTION";
component.passiveSkill.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("passive");
}
private static void AddPrimary(SkillLocator skillLocator)
{
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
//IL_0060: Unknown result type (might be due to invalid IL or missing references)
//IL_0116: Unknown result type (might be due to invalid IL or missing references)
//IL_012e: Unknown result type (might be due to invalid IL or missing references)
//IL_0138: Expected O, but got Unknown
//IL_0139: Unknown result type (might be due to invalid IL or missing references)
//IL_013a: Unknown result type (might be due to invalid IL or missing references)
DBZSkillDef val = ScriptableObject.CreateInstance<DBZSkillDef>();
LanguageAPI.Add("PICCOLO_M1", "Demon's Onslaught");
((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 = "PICCOLO_M1";
((SkillDef)val).skillNameToken = "PICCOLO_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, out SkillDef switchSkillDef)
{
//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_0147: Unknown result type (might be due to invalid IL or missing references)
//IL_015f: Unknown result type (might be due to invalid IL or missing references)
//IL_0169: Expected O, but got Unknown
//IL_016a: Unknown result type (might be due to invalid IL or missing references)
//IL_016b: Unknown result type (might be due to invalid IL or missing references)
DBZSkillDef val = ScriptableObject.CreateInstance<DBZSkillDef>();
LanguageAPI.Add("PICCOLO_M2", "Namek Finger");
LanguageAPI.Add("PICCOLO_M2_DESCRIPTION", "Stretch your arm forward to grab an enemy dealing <style=cIsDamage>250%</style> damage, pulling them to you and <style=cIsDamage>weakens</style>. <style=cKeywordName>Switch</style><style=cSub>");
((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 = false;
((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 = "PICCOLO_M2_DESCRIPTION";
((SkillDef)val).skillName = "PICCOLO_M2";
((SkillDef)val).skillNameToken = "PICCOLO_M2";
val.kiCost = 0.2f;
val.isSwitch = true;
((SkillDef)val).keywordTokens = val.newKeywordTokens;
switchSkillDef = (SkillDef)(object)val;
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 AddAltSecondary(SkillLocator skillLocator, out SkillDef switchSkillDef)
{
//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_0138: Unknown result type (might be due to invalid IL or missing references)
//IL_0150: Unknown result type (might be due to invalid IL or missing references)
//IL_015a: Expected O, but got Unknown
//IL_015b: 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)
DBZSkillDef val = ScriptableObject.CreateInstance<DBZSkillDef>();
LanguageAPI.Add("PICCOLO_M2ALT", "Energy Wave Combo");
LanguageAPI.Add("PICCOLO_M2ALT_DESCRIPTION", "Fire 6 Ki Blasts on a targetted enemy for <style=cIsDamage>200%</style> damage each. <style=cKeywordName>Switch</style><style=cSub>");
((SkillDef)val).activationStateMachineName = "Slide";
((SkillDef)val).activationState = new SerializableEntityStateType(typeof(SecondaryAlt));
((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>("secondaryalt");
((SkillDef)val).skillDescriptionToken = "PICCOLO_M2ALT_DESCRIPTION";
((SkillDef)val).skillName = "PICCOLO_M2ALT";
((SkillDef)val).skillNameToken = "PICCOLO_M2ALT";
val.kiCost = 0.2f;
val.isSwitch = true;
((SkillDef)val).keywordTokens = val.newKeywordTokens;
switchSkillDef = (SkillDef)(object)val;
ContentAddition.AddSkillDef((SkillDef)(object)val);
GenericSkill val2 = ((Component)skillLocator).gameObject.AddComponent<GenericSkill>();
SkillFamily val3 = ScriptableObject.CreateInstance<SkillFamily>();
val3.variants = (Variant[])(object)new Variant[1];
Reflection.SetFieldValue<SkillFamily>((object)val2, "_skillFamily", val3);
SkillFamily skillFamily = val2.skillFamily;
Variant[] variants = skillFamily.variants;
Variant val4 = new Variant
{
skillDef = (SkillDef)(object)val
};
((Variant)(ref val4)).viewableNode = new Node(((SkillDef)val).skillNameToken, false, (Node)null);
variants[0] = val4;
ContentAddition.AddSkillFamily(skillFamily);
}
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, out SkillDef switchSkillDef)
{
//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_0147: Unknown result type (might be due to invalid IL or missing references)
//IL_015f: Unknown result type (might be due to invalid IL or missing references)
//IL_0169: Expected O, but got Unknown
//IL_016a: Unknown result type (might be due to invalid IL or missing references)
//IL_016b: Unknown result type (might be due to invalid IL or missing references)
DBZSkillDef val = ScriptableObject.CreateInstance<DBZSkillDef>();
LanguageAPI.Add("PICCOLO_SPEC", "Special Beam Cannon");
LanguageAPI.Add("PICCOLO_SPEC_DESCRIPTION", "Charge a powerful energy beam that deals <style=cIsDamage>80%</style> damage per hit for up to <style=cIsUtility>3s</style>. Charge time increases damage up to <style=cIsDamage>240%</style>.");
((SkillDef)val).activationStateMachineName = "NoMovement";
((SkillDef)val).activationState = new SerializableEntityStateType(typeof(Special));
((SkillDef)val).baseMaxStock = 1;
((SkillDef)val).baseRechargeInterval = 12f;
((SkillDef)val).beginSkillCooldownOnSkillEnd = true;
((SkillDef)val).canceledFromSprinting = false;
((SkillDef)val).fullRestockOnAssign = true;
((SkillDef)val).interruptPriority = (InterruptPriority)0;
((SkillDef)val).isCombatSkill = true;
((SkillDef)val).mustKeyPress = false;
((SkillDef)val).cancelSprintingOnActivation = true;
((SkillDef)val).rechargeStock = 1;
((SkillDef)val).requiredStock = 1;
((SkillDef)val).stockToConsume = 1;
((SkillDef)val).icon = Assets.MainAssetBundle.LoadAsset<Sprite>("special");
((SkillDef)val).skillDescriptionToken = "PICCOLO_SPEC_DESCRIPTION";
((SkillDef)val).skillName = "PICCOLO_SPEC";
((SkillDef)val).skillNameToken = "PICCOLO_SPEC";
val.kiCost = 0.55f;
val.isSwitch = true;
((SkillDef)val).keywordTokens = val.newKeywordTokens;
switchSkillDef = (SkillDef)(object)val;
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 AddAltSpecial(SkillLocator skillLocator, out SkillDef switchSkillDef)
{
//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_013f: Unknown result type (might be due to invalid IL or missing references)
//IL_0157: Unknown result type (might be due to invalid IL or missing references)
//IL_0161: Expected O, but got Unknown
//IL_0162: Unknown result type (might be due to invalid IL or missing references)
//IL_0164: Unknown result type (might be due to invalid IL or missing references)
DBZSkillDef val = ScriptableObject.CreateInstance<DBZSkillDef>();
LanguageAPI.Add("PICCOLO_ALTSPEC", "Hellzone Grenade");
LanguageAPI.Add("PICCOLO_ALTSPEC_DESCRIPTION", "Fire 8 Ki Blasts on a targetted enemy for <style=cIsDamage>650%</style> damage each, after a short charge time, unleash them all upon your enemy.");
((SkillDef)val).activationStateMachineName = "NoMovement";
((SkillDef)val).activationState = new SerializableEntityStateType(typeof(BaseSpecialAlt));
((SkillDef)val).baseMaxStock = 1;
((SkillDef)val).baseRechargeInterval = 12f;
((SkillDef)val).beginSkillCooldownOnSkillEnd = true;
((SkillDef)val).canceledFromSprinting = false;
((SkillDef)val).fullRestockOnAssign = true;
((SkillDef)val).interruptPriority = (InterruptPriority)0;
((SkillDef)val).isCombatSkill = true;
((SkillDef)val).mustKeyPress = false;
((SkillDef)val).cancelSprintingOnActivation = true;
((SkillDef)val).rechargeStock = 1;
((SkillDef)val).requiredStock = 1;
((SkillDef)val).stockToConsume = 1;
((SkillDef)val).icon = Assets.MainAssetBundle.LoadAsset<Sprite>("specialalt");
((SkillDef)val).skillDescriptionToken = "PICCOLO_ALTSPEC_DESCRIPTION";
((SkillDef)val).skillName = "PICCOLO_ALTSPEC";
((SkillDef)val).skillNameToken = "PICCOLO_ALTSPEC";
val.kiCost = 0.55f;
val.isAimBased = true;
val.isSwitch = true;
((SkillDef)val).keywordTokens = val.newKeywordTokens;
switchSkillDef = (SkillDef)(object)val;
ContentAddition.AddSkillDef((SkillDef)(object)val);
GenericSkill val2 = ((Component)skillLocator).gameObject.AddComponent<GenericSkill>();
SkillFamily val3 = ScriptableObject.CreateInstance<SkillFamily>();
val3.variants = (Variant[])(object)new Variant[1];
Reflection.SetFieldValue<SkillFamily>((object)val2, "_skillFamily", val3);
SkillFamily skillFamily = val2.skillFamily;
Variant[] variants = skillFamily.variants;
Variant val4 = new Variant
{
skillDef = (SkillDef)(object)val
};
((Variant)(ref val4)).viewableNode = new Node(((SkillDef)val).skillNameToken, false, (Node)null);
variants[0] = val4;
ContentAddition.AddSkillFamily(skillFamily);
}
}
internal class Prefabs
{
internal static GameObject hellzoneProjectile;
internal static GameObject hellzoneProjectileImpactEffect;
internal static void CreatePrefabs()
{
hellzoneProjectile = PrefabAPI.InstantiateClone(Prefabs.kiBlastProjectileYellowNoTarget, "HellzoneGrenadeProjectile", true);
hellzoneProjectile.AddComponent<HellzoneGrenadeProjectileBehaviour>();
ProjectileController component = hellzoneProjectile.GetComponent<ProjectileController>();
component.startSound = "Play_DBZ_Piccolo_Hellzone_Projectile";
ProjectileSingleTargetImpact component2 = hellzoneProjectile.GetComponent<ProjectileSingleTargetImpact>();
hellzoneProjectileImpactEffect = PrefabAPI.InstantiateClone(component2.impactEffect, "HellzoneProjectileImpactEffect", false);
hellzoneProjectileImpactEffect.GetComponent<EffectComponent>().soundName = "Play_DBZ_Piccolo_Hellzone_Impact";
ContentAddition.AddEffect(hellzoneProjectileImpactEffect);
component2.impactEffect = hellzoneProjectileImpactEffect;
ContentAddition.AddProjectile(hellzoneProjectile);
}
}
internal class Secondary : BaseDBZSkillState
{
private float duration = 2f;
private Transform searchPos;
private CharacterMotor motor;
private RigidbodyMotor rigidMotor;
private SphereSearch sphereSearch = new SphereSearch();
private float stopwatch;
private float searchInterval = 0.1f;
private float radius = 2f;
private float damageCoefficient = 2.5f;
private bool doOnce;
public override void OnEnter()
{
//IL_0052: Unknown result type (might be due to invalid IL or missing references)
//IL_0057: Unknown result type (might be due to invalid IL or missing references)
//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
//IL_00db: Unknown result type (might be due to invalid IL or missing references)
//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
//IL_0105: Unknown result type (might be due to invalid IL or missing references)
//IL_010a: Unknown result type (might be due to invalid IL or missing references)
//IL_010e: Unknown result type (might be due to invalid IL or missing references)
//IL_0113: Unknown result type (might be due to invalid IL or missing references)
//IL_011b: Unknown result type (might be due to invalid IL or missing references)
//IL_011d: Unknown result type (might be due to invalid IL or missing references)
((BaseDBZSkillState)this).OnEnter();
if (Object.op_Implicit((Object)(object)base.skillBehaviour) && Object.op_Implicit((Object)(object)base.kiBehaviour))
{
base.skillBehaviour.SetExecutableSkills(1);
}
sphereSearch.radius = radius;
sphereSearch.mask = ((LayerIndex)(ref LayerIndex.entityPrecise)).mask;
AkSoundEngine.PostEvent(Sounds.Play_DBZ_Common_Swing, ((EntityState)this).gameObject);
AkSoundEngine.PostEvent(Sounds.Play_DBZ_Piccolo_Skill, ((EntityState)this).gameObject);
((EntityState)this).PlayAnimation("FullBody, Override", "NamekFinger", "M2", duration);
searchPos = ((BaseState)this).FindModelChild("muzzleHandL");
if (Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection))
{
Vector2 val = Util.Vector3XZToVector2XY(((EntityState)this).inputBank.aimDirection);
if (val != Vector2.zero)
{
((Vector2)(ref val)).Normalize();
Vector3 val2 = new Vector3(val.x, 0f, val.y);
Vector3 normalized = ((Vector3)(ref val2)).normalized;
((EntityState)this).characterDirection.moveVector = normalized;
}
}
}
public override void Update()
{
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0370: Unknown result type (might be due to invalid IL or missing references)
//IL_0387: Unknown result type (might be due to invalid IL or missing references)
//IL_03b3: Unknown result type (might be due to invalid IL or missing references)
//IL_03cf: 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_014a: Unknown result type (might be due to invalid IL or missing references)
//IL_0156: Unknown result type (might be due to invalid IL or missing references)
//IL_0162: Unknown result type (might be due to invalid IL or missing references)
//IL_0175: Unknown result type (might be due to invalid IL or missing references)
//IL_0180: Unknown result type (might be due to invalid IL or missing references)
//IL_0182: Unknown result type (might be due to invalid IL or missing references)
//IL_0187: Unknown result type (might be due to invalid IL or missing references)
//IL_018a: Unknown result type (might be due to invalid IL or missing references)
//IL_018f: Unknown result type (might be due to invalid IL or missing references)
//IL_0198: 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_01ab: Expected O, but got Unknown
//IL_01c8: Unknown result type (might be due to invalid IL or missing references)
//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
//IL_0279: Unknown result type (might be due to invalid IL or missing references)
//IL_027e: Unknown result type (might be due to invalid IL or missing references)
//IL_028a: Unknown result type (might be due to invalid IL or missing references)
//IL_0296: Unknown result type (might be due to invalid IL or missing references)
//IL_02a9: Unknown result type (might be due to invalid IL or missing references)
//IL_02b4: Unknown result type (might be due to invalid IL or missing references)
//IL_02b6: Unknown result type (might be due to invalid IL or missing references)
//IL_02bb: Unknown result type (might be due to invalid IL or missing references)
//IL_02be: 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_02cc: Unknown result type (might be due to invalid IL or missing references)
//IL_02d1: 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: Expected O, but got Unknown
//IL_02fc: Unknown result type (might be due to invalid IL or missing references)
//IL_0301: Unknown result type (might be due to invalid IL or missing references)
((EntityState)this).Update();
if (Object.op_Implicit((Object)(object)searchPos))
{
sphereSearch.origin = searchPos.position;
if (!Object.op_Implicit((Object)(object)motor) && !Object.op_Implicit((Object)(object)rigidMotor))
{
HurtBox[] hurtBoxes = sphereSearch.RefreshCandidates().FilterCandidatesByHurtBoxTeam(TeamMask.GetEnemyTeams(((EntityState)this).teamComponent.teamIndex)).OrderCandidatesByDistance()
.FilterCandidatesByDistinctHurtBoxEntities()
.GetHurtBoxes();
if (hurtBoxes.Length != 0 && Object.op_Implicit((Object)(object)hurtBoxes[0]) && Object.op_Implicit((Object)(object)hurtBoxes[0].healthComponent) && Object.op_Implicit((Object)(object)hurtBoxes[0].healthComponent.body) && !hurtBoxes[0].healthComponent.body.isBoss)
{
if (Object.op_Implicit((Object)(object)hurtBoxes[0].healthComponent.body.characterMotor))
{
motor = hurtBoxes[0].healthComponent.body.characterMotor;
if (NetworkServer.active)
{
if (!doOnce)
{
doOnce = true;
DamageInfo val = new DamageInfo
{
attacker = ((EntityState)this).gameObject,
inflictor = ((EntityState)this).gameObject,
damage = ((BaseState)this).damageStat * damageCoefficient,
procCoefficient = 0f,
damageType = (DamageType)0,
damageColorIndex = (DamageColorIndex)11,
position = ((Component)hurtBoxes[0]).transform.position,
rejected = false
};
hurtBoxes[0].healthComponent.TakeDamage(val);
EffectManager.SimpleEffect(Prefabs.punchHitFX, ((Component)hurtBoxes[0]).transform.position, Quaternion.identity, true);
}
hurtBoxes[0].healthComponent.body.AddTimedBuff(Buffs.Weak, 8f);
SetStateOnHurt.SetStunOnObject(((Component)hurtBoxes[0].healthComponent.body).gameObject, 3f);
}
}
else if (!Object.op_Implicit((Object)(object)rigidMotor))
{
rigidMotor = ((Component)hurtBoxes[0].healthComponent.body).gameObject.GetComponent<RigidbodyMotor>();
if (NetworkServer.active)
{
if (!doOnce)
{
doOnce = true;
DamageInfo val2 = new DamageInfo
{
attacker = ((EntityState)this).gameObject,
inflictor = ((EntityState)this).gameObject,
damage = ((BaseState)this).damageStat * damageCoefficient,
procCoefficient = 0f,
damageType = (DamageType)0,
damageColorIndex = (DamageColorIndex)11,
position = ((Component)hurtBoxes[0]).transform.position,
rejected = false
};
hurtBoxes[0].healthComponent.TakeDamage(val2);
EffectManager.SimpleEffect(Prefabs.punchHitFX, ((Component)hurtBoxes[0]).transform.position, Quaternion.identity, true);
}
hurtBoxes[0].healthComponent.body.AddTimedBuff(Buffs.Weak, 8f);
SetStateOnHurt.SetStunOnObject(((Component)hurtBoxes[0].healthComponent.body).gameObject, 3f);
}
}
}
}
if (Object.op_Implicit((Object)(object)rigidMotor))
{
rigidMotor.rigid.MovePosition(searchPos.position);
CalcDistance(((Component)rigidMotor).transform.position);
}
else if (Object.op_Implicit((Object)(object)motor))
{
CalcDistance(((Component)motor).transform.position);
((BaseCharacterController)motor).Motor.SetPosition(searchPos.position, true);
}
}
if (((EntityState)this).age >= duration && ((EntityState)this).isAuthority)
{
((EntityState)this).outer.SetNextStateToMain();
}
}
private void CalcDistance(Vector3 targetPos)
{
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
//IL_001d: Unknown result type (might be due to invalid IL or missing references)
if (((EntityState)this).age >= 0.65f)
{
float num = Vector3.Distance(targetPos, ((EntityState)this).characterBody.corePosition);
if (num <= 6f && ((EntityState)this).isAuthority)
{
SecondaryEnd secondaryEnd = new SecondaryEnd();
secondaryEnd.duration = ((EntityState)this).age - duration;
((EntityState)this).outer.SetNextState((EntityState)(object)secondaryEnd);
}
}
}
public override void OnExit()
{
((EntityState)this).OnExit();
if (Object.op_Implicit((Object)(object)base.skillBehaviour))
{
base.skillBehaviour.SetExecutableSkills(-1);
}
}
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 SecondaryEnd : BaseSkillState
{
public float duration;
public override void FixedUpdate()
{
((EntityState)this).FixedUpdate();
if (((EntityState)this).fixedAge >= duration - 0.2f && ((EntityState)this).isAuthority)
{
((EntityState)this).outer.SetNextStateToMain();
}
}
public override void OnExit()
{
((EntityState)this).OnExit();
}
}
internal class SecondaryAlt : BaseDBZSkillState
{
private float duration = 2f;
private DBZSkillEventHandler eventComponent;
private AimRequest request;
public override void OnEnter()
{
((BaseDBZSkillState)this).OnEnter();
if (Object.op_Implicit((Object)(object)base.skillBehaviour) && Object.op_Implicit((Object)(object)base.kiBehaviour))
{
base.skillBehaviour.SetExecutableSkills(1);
}
if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams))
{
request = ((EntityState)this).cameraTargetParams.RequestAimType((AimType)2);
}
eventComponent = ((Component)((EntityState)this).GetModelTransform()).GetComponent<DBZSkillEventHandler>();
((EntityState)this).PlayAnimation("FullBody, Override", "EnergyWaveCombo", "M2", duration);
AkSoundEngine.PostEvent(Sounds.Play_DBZ_Piccolo_Skill, ((EntityState)this).gameObject);
if (NetworkServer.active)
{
((EntityState)this).characterBody.AddBuff(Prefabs.speedDebuff);
}
}
public override void FixedUpdate()
{
//IL_009c: Unknown result type (might be due to invalid IL or missing references)
//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
//IL_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)
((EntityState)this).FixedUpdate();
((BaseDBZSkillState)this).AdjustModelForwardAimVector();
if (Object.op_Implicit((Object)(object)eventComponent) && eventComponent.fireCount > 0)
{
DBZSkillEventHandler obj = eventComponent;
obj.fireCount--;
EffectManager.SimpleMuzzleFlash(Prefabs.KiBlastMuzzleFlashYellow, ((EntityState)this).gameObject, eventComponent.childName, false);
AkSoundEngine.PostEvent(Sounds.Play_DBZ_Piccolo_EnergyWave_Fire, ((EntityState)this).gameObject);
if (((EntityState)this).isAuthority)
{
ProjectileManager instance = ProjectileManager.instance;
GameObject kiBlastTrailYellow = Prefabs.kiBlastTrailYellow;
Vector3 position = ((BaseState)this).FindModelChild(eventComponent.childName).position;
Ray aimRay = ((BaseState)this).GetAimRay();
instance.FireProjectile(kiBlastTrailYellow, position, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).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);
}
}
if (((EntityState)this).fixedAge >= duration - 0.2f && ((EntityState)this).isAuthority)
{
((EntityState)this).outer.SetNextStateToMain();
}
}
public override void OnExit()
{
((EntityState)this).OnExit();
if (NetworkServer.active)
{
((EntityState)this).characterBody.RemoveBuff(Prefabs.speedDebuff);
}
if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams))
{
request.Dispose();
}
if (Object.op_Implicit((Object)(object)base.skillBehaviour))
{
base.skillBehaviour.SetExecutableSkills(-1);
}
}
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 Special : BeamBaseState
{
private float stopwatch;
private bool nextState;
public override void OnEnter()
{
base.duration = 99f;
base.skillIndex = 3;
AkSoundEngine.PostEvent(Sounds.Play_DBZ_Piccolo_BeamCannon_Charge, ((EntityState)this).gameObject);
if (Object.op_Implicit((Object)(object)((BaseDBZSkillState)this).skillBehaviour))
{
base.baseKiCost = ((BaseDBZSkillState)this).skillBehaviour.baseSpecialCost;
}
((EntityState)this).GetModelAnimator().SetBool("chargeOver", false);
((BeamBaseState)this).OnEnter();
}
protected override void PlayVO()
{
}
protected override void PlayAnimation()
{
((EntityState)this).PlayAnimation("FullBody, Override", "Beam", "Special", base.duration);
}
public override void FixedUpdate()
{
//IL_0058: Unknown result type (might be due to invalid IL or missing references)
//IL_005d: Unknown result type (might be due to invalid IL or missing references)
((BeamBaseState)this).FixedUpdate();
if (Object.op_Implicit((Object)(object)((EntityState)this).inputBank))
{
if (Object.op_Implicit((Object)(object)((BaseDBZSkillState)this).skillBehaviour))
{
((BaseDBZSkillState)this).skillBehaviour.float1 = 0.8f * Mathf.Clamp(((EntityState)this).fixedAge, 1f, 3f);
((BaseDBZSkillState)this).skillBehaviour.aimRay = base.aimRay;
}
if (((ButtonState)(ref ((EntityState)this).inputBank.skill4)).justReleased || (((EntityState)this).fixedAge >= 3f && !nextState))
{
nextState = true;
}
}
if (nextState)
{
stopwatch += Time.fixedDeltaTime;
if (stopwatch >= 0.35f && ((EntityState)this).isAuthority)
{
((EntityState)this).outer.SetNextState((EntityState)(object)new SpecialFire());
}
}
}
public override void OnExit()
{
((BeamBaseState)this).OnExit();
AkSoundEngine.PostEvent(Sounds.Play_DBZ_Piccolo_BeamCannonVO, ((EntityState)this).gameObject);
((EntityState)this).GetModelAnimator().SetBool("chargeOver", true);
}
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 SpecialFire : BeamFire
{
protected override void SetBeamVFX()
{
base.beamSFX = Sounds.Play_DBZ_Piccolo_BeamCannon_Fire;
base.beamVFX = Prefabs.beamCannonFX;
base.beamRadius = 2f;
base.damageCoefficient = ((BaseDBZSkillState)this).skillBehaviour.float1;
}
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 : BaseDBZSkillState
{
private float duration = 6f;
private AimRequest request;
private DBZSkillEventHandler eventComponent;
private DBZAimIndicator indicatorComponent;
private GameObject target;
private Vector3 aimDirection;
private bool detonated;
private GameObject muzzleFlashL;
private GameObject muzzleFlashR;
public override void OnEnter()
{
//IL_00e6: Unknown result type (might be due to invalid IL or missing references)
//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
//IL_00ef: Unknown result type (might be due to invalid IL or missing references)
//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
((BaseDBZSkillState)this).OnEnter();
if (NetworkServer.active)
{
((EntityState)this).characterBody.AddBuff(Prefabs.armorBoost);
}
if (Object.op_Implicit((Object)(object)base.skillBehaviour) && Object.op_Implicit((Object)(object)base.kiBehaviour))
{
base.skillBehaviour.SetExecutableSkills(3);
}
eventComponent = ((Component)((EntityState)this).GetModelTransform()).GetComponent<DBZSkillEventHandler>();
if (Object.op_Implicit((Object)(object)eventComponent))
{
eventComponent.detonateHellzone = false;
}
indicatorComponent = ((EntityState)this).GetComponent<DBZAimIndicator>();
target = ((Component)((HuntressTracker)indicatorComponent).GetTrackingTarget().healthComponent).gameObject;
if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams))
{
request = ((EntityState)this).cameraTargetParams.RequestAimType((AimType)2);
}
((EntityState)this).PlayAnimation("FullBody, Override", "HellzoneGrenade", "Special", duration);
Ray aimRay = ((BaseState)this).GetAimRay();
aimDirection = ((Ray)(ref aimRay)).direction;
AkSoundEngine.PostEvent(Sounds.Play_DBZ_Piccolo_Skill, ((EntityState)this).gameObject);
}
public override void FixedUpdate()
{
//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_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_0034: Unknown result type (might be due to invalid IL or missing references)
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_004c: Unknown result type (might be due to invalid IL or missing references)
//IL_0057: Unknown result type (might be due to invalid IL or missing references)
//IL_005d: Unknown result type (might be due to invalid IL or missing references)
//IL_0062: Unknown result type (might be due to invalid IL or missing references)
//IL_0066: Unknown result type (might be due to invalid IL or missing references)
//IL_006b: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0073: 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_0112: Unknown result type (might be due to invalid IL or missing references)
//IL_0117: Unknown result type (might be due to invalid IL or missing references)
//IL_011c: Unknown result type (might be due to invalid IL or missing references)
//IL_0121: Unknown result type (might be due to invalid IL or missing references)
//IL_0124: Unknown result type (might be due to invalid IL or missing references)
//IL_0129: 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_0130: 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)
//IL_018d: 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_0194: Unknown result type (might be due to invalid IL or missing references)
//IL_0275: Unknown result type (might be due to invalid IL or missing references)
//IL_02a6: Unknown result type (might be due to invalid IL or missing references)
((EntityState)this).FixedUpdate();
if (Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection))
{
Vector2 val = Util.Vector3XZToVector2XY(aimDirection);
if (val != Vector2.zero)
{
((Vector2)(ref val)).Normalize();
Vector3 val2 = new Vector3(val.x, 0f, val.y);
Vector3 normalized = ((Vector3)(ref val2)).normalized;
((EntityState)this).characterDirection.moveVector = normalized;
}
}
if (Object.op_Implicit((Object)(object)eventComponent) && Object.op_Implicit((Object)(object)target))
{
if (eventComponent.fireCount > 0)
{
DBZSkillEventHandler obj = eventComponent;
obj.fireCount--;
Vector3 val3 = default(Vector3);
((Vector3)(ref val3))..ctor((float)RoR2Application.rng.RangeInt(-15, 15), (float)RoR2Application.rng.RangeInt(0, 8), (float)RoR2Application.rng.RangeInt(5, 15));
Vector3 val4 = Quaternion.AngleAxis((float)RoR2Application.rng.RangeInt(0, 361), aimDirection) * Vector3.one;
Vector3 val5 = Util.QuaternionSafeLookRotation(aimDirection) * val3;
EffectManager.SimpleMuzzleFlash(Prefabs.KiBlastMuzzleFlashYellow, ((EntityState)this).gameObject, eventComponent.childName, false);
AkSoundEngine.PostEvent(Sounds.Play_DBZ_Piccolo_Hellzone_Fire, ((EntityState)this).gameObject);
if (((EntityState)this).isAuthority)
{
ProjectileManager.instance.FireProjectile(Prefabs.hellzoneProjectile, ((BaseState)this).FindModelChild(eventComponent.childName).position, Util.QuaternionSafeLookRotation(val5), ((EntityState)this).gameObject, ((EntityState)this).characterBody.damage * 6.5f, 200f, Util.CheckRoll(((EntityState)this).characterBody.crit, ((EntityState)this).characterBody.master), (DamageColorIndex)0, target, -1f);
}
}
if (eventComponent.detonateHellzone && !detonated)
{
detonated = true;
AkSoundEngine.PostEvent(Sounds.Play_DBZ_Piccolo_Hellzone_Activate, ((EntityState)this).gameObject);
}
if (eventComponent.hellzoneCharge)
{
eventComponent.hellzoneCharge = false;
AkSoundEngine.PostEvent(Sounds.Play_DBZ_Piccolo_Hellzone_Charge, ((EntityState)this).gameObject);
muzzleFlashL = Object.Instantiate<GameObject>(Prefabs.beamCannonMuzzleFlash, ((BaseState)this).FindModelChild("muzzleHandL"));
muzzleFlashL.transform.localPosition = Vector3.zero;
muzzleFlashR = Object.Instantiate<GameObject>(Prefabs.beamCannonMuzzleFlash, ((BaseState)this).FindModelChild("muzzleHandR"));
muzzleFlashR.transform.localPosition = Vector3.zero;
}
}
if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority)
{
((EntityState)this).outer.SetNextStateToMain();
}
}
public override void OnExit()
{
((EntityState)this).OnExit();
if (NetworkServer.active)
{
((EntityState)this).characterBody.RemoveBuff(Prefabs.armorBoost);
}
if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams))
{
request.Dispose();
}
EntityState.Destroy((Object)(object)muzzleFlashL);
EntityState.Destroy((Object)(object)muzzleFlashR);
if (Object.op_Implicit((Object)(object)base.skillBehaviour))
{
base.skillBehaviour.SetExecutableSkills(-1);
}
}
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 Sounds
{
public static readonly uint Play_DBZ_Piccolo_BeamCannonVO = 65436214u;
public static readonly uint Play_DBZ_Piccolo_Powerup = 176317935u;
public static readonly uint Play_DBZ_Piccolo_Intro = 202401577u;
public static readonly uint Play_DBZ_Piccolo_Hellzone_Activate = 539292730u;
public static readonly uint Play_DBZ_Piccolo_Hellzone_Fire = 650652933u;
public static readonly uint Play_DBZ_Piccolo_Kill = 994773653u;
public static readonly uint Play_DBZ_Piccolo_EnergyWave_Fire = 1278032169u;
public static readonly uint Play_DBZ_Piccolo_BeamCannon_Charge = 1507920746u;
public static readonly uint Play_DBZ_Piccolo_Hellzone_Projectile = 1613332272u;
public static readonly uint Play_DBZ_Piccolo_HeavyDMG = 1804405834u;
public static readonly uint Play_DBZ_Piccolo_Attack = 1833864941u;
public static readonly uint Play_DBZ_Piccolo_Hellzone_Charge = 1883616241u;
public static readonly uint Play_DBZ_Piccolo_LightDMG = 2631489273u;
public static readonly uint Play_DBZ_Piccolo_BeamCannon_Fire = 2775130486u;
public static readonly uint Play_DBZ_Piccolo_Hellzone_Impact = 2984433491u;
public static readonly uint Play_DBZ_Piccolo_Skill = 3238033180u;
public static readonly uint Play_DBZ_Piccolo_BossKill = 3432347502u;
public static readonly uint Play_DBZ_Piccolo_FinalBossEncounter = 3592626027u;
public static readonly uint Play_DBZ_Piccolo_Death = 4151146161u;
}