using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using EntityStates;
using EntityStates.Merc;
using ExtraSkillSlots;
using HG.BlendableTypes;
using JetBrains.Annotations;
using KinematicCharacterController;
using On.RoR2;
using R2API;
using R2API.Utils;
using RoR2;
using RoR2.Orbs;
using RoR2.Projectile;
using RoR2.Skills;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Networking;
using UnityEngine.Rendering;
[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.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("Katarina")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+a41d6ac7b436e54b01c6c9c8ae94ee9fdc6a7cd8")]
[assembly: AssemblyProduct("Katarina")]
[assembly: AssemblyTitle("Katarina")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace Katarina;
internal class BladeController : MonoBehaviour
{
public enum BladeIndex
{
blade1 = 1,
blade2,
blade3,
blade4,
blade5,
blade6
}
private GameObject areaIndicator;
private GameObject boxlider;
private CharacterBody selfBody;
private ChildLocator childLocator;
private List<string> childNameList = new List<string> { "blade1", "blade2", "blade3", "blade4", "blade5", "blade6" };
private BladeIndex blade = (BladeIndex)0;
public Vector3 areaIndicatorPosition => Object.op_Implicit((Object)(object)areaIndicator) ? areaIndicator.transform.position : selfBody.corePosition;
public BladeIndex bladeIndex => blade;
public void InstantiateAreaIndicator()
{
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
//IL_0029: 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)
areaIndicator = Object.Instantiate<GameObject>(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Huntress/HuntressArrowRainIndicator.prefab").WaitForCompletion());
areaIndicator.transform.localScale = Vector3.one * 3f;
}
public void UpdateAreIndicatorPosition(Ray aimRay)
{
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
//IL_007d: Unknown result type (might be due to invalid IL or missing references)
//IL_0095: Unknown result type (might be due to invalid IL or missing references)
if (!Object.op_Implicit((Object)(object)areaIndicator))
{
return;
}
RaycastHit val = default(RaycastHit);
if (Physics.Raycast(aimRay, ref val, GlobalValues.maxBlinkDistance, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask) | LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.entityPrecise)).mask)))
{
string name = ((Object)((Component)((RaycastHit)(ref val)).transform).gameObject).name;
if (!(((Object)boxlider).name == name))
{
areaIndicator.transform.position = ((RaycastHit)(ref val)).point;
areaIndicator.transform.up = ((RaycastHit)(ref val)).normal;
}
}
else
{
areaIndicator.transform.position = ((Ray)(ref aimRay)).GetPoint(GlobalValues.maxBlinkDistance);
}
}
public void DestroyAreaIndicator()
{
if (Object.op_Implicit((Object)(object)areaIndicator))
{
Object.Destroy((Object)(object)areaIndicator);
}
}
public void SetBlade(BladeIndex index)
{
blade = index;
UpdateModel();
}
private void Awake()
{
blade = BladeIndex.blade1;
selfBody = ((Component)this).GetComponent<CharacterBody>();
ModelLocator component = ((Component)this).GetComponent<ModelLocator>();
if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.modelTransform))
{
childLocator = ((Component)component.modelTransform).GetComponent<ChildLocator>();
}
if (Object.op_Implicit((Object)(object)childLocator))
{
boxlider = ((Component)((Component)childLocator).gameObject.transform.GetChild(10)).gameObject;
}
}
private void UpdateModel()
{
if (!Object.op_Implicit((Object)(object)childLocator))
{
return;
}
string text = blade.ToString();
foreach (string childName in childNameList)
{
if (childName == text)
{
((Component)childLocator.FindChild(text)).gameObject.SetActive(true);
}
else
{
((Component)childLocator.FindChild(childName)).gameObject.SetActive(false);
}
}
}
}
internal class BladePickupBehaviour : MonoBehaviour, IProjectileImpactBehavior
{
private bool inAir = true;
private SphereSearch sphereSearch = new SphereSearch();
private float stopwatch;
private float searchInterval = 0.5f;
private ProjectileController controller;
private GameObject owner;
public void OnProjectileImpact(ProjectileImpactInfo impactInfo)
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
if (Object.op_Implicit((Object)(object)impactInfo.collider) && !Object.op_Implicit((Object)(object)((Component)impactInfo.collider).GetComponent<HurtBox>()))
{
inAir = false;
}
}
private void OnEnable()
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Expected O, but got Unknown
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
//IL_001d: Unknown result type (might be due to invalid IL or missing references)
//IL_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)
sphereSearch = new SphereSearch();
sphereSearch.origin = ((Component)this).transform.position;
sphereSearch.radius = GlobalValues.daggerPickupRadius;
sphereSearch.mask = ((LayerIndex)(ref LayerIndex.entityPrecise)).mask;
}
private void FixedUpdate()
{
//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
//IL_00da: Unknown result type (might be due to invalid IL or missing references)
stopwatch += Time.fixedDeltaTime;
if (!Object.op_Implicit((Object)(object)controller) || !Object.op_Implicit((Object)(object)owner))
{
controller = ((Component)this).GetComponent<ProjectileController>();
if (Object.op_Implicit((Object)(object)controller) && Object.op_Implicit((Object)(object)controller.owner))
{
owner = controller.owner;
}
}
if (!Object.op_Implicit((Object)(object)owner))
{
return;
}
EntityStateMachine val = Array.Find(owner.GetComponents<EntityStateMachine>(), (EntityStateMachine element) => element.customName == "Speen");
float num = Vector3.Distance(((Component)this).transform.position, owner.transform.position);
if (!(num <= GlobalValues.daggerPickupRadius))
{
return;
}
if (Object.op_Implicit((Object)(object)val))
{
CharacterMotor component = owner.GetComponent<CharacterMotor>();
if (inAir)
{
val.SetInterruptState((EntityState)(object)new DaggerPickupAir(), (InterruptPriority)5);
}
else
{
val.SetInterruptState((EntityState)(object)new BaseDaggerPickupState(), (InterruptPriority)5);
}
}
Object.Destroy((Object)(object)((Component)this).gameObject);
}
}
internal class DestroyProjectileOnImpact : MonoBehaviour, IProjectileImpactBehavior
{
public bool destroyOnEntity = true;
public bool destroyOnTerrain = false;
public void OnProjectileImpact(ProjectileImpactInfo impactInfo)
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
if (Object.op_Implicit((Object)(object)((Component)impactInfo.collider).GetComponent<HurtBox>()) && destroyOnEntity)
{
Object.Destroy((Object)(object)((Component)this).gameObject);
}
}
}
internal class KatarinaSkillSwitchBehaviour : MonoBehaviour
{
}
internal class KatarinaTracker : HuntressTracker
{
public bool enable = true;
private float stopwatch;
public bool canExecute => Object.op_Implicit((Object)(object)base.trackingTarget) ? true : false;
private void Awake()
{
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: Expected O, but got Unknown
base.indicator = new Indicator(((Component)this).gameObject, Prefabs.aimIndicator);
}
private void Start()
{
base.maxTrackingDistance = 370f;
base.search.viewer = null;
((HuntressTracker)this).Start();
}
private void FixedUpdate()
{
//IL_005b: 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_0071: Unknown result type (might be due to invalid IL or missing references)
base.trackerUpdateStopwatch = 10f;
stopwatch += Time.fixedDeltaTime;
if (stopwatch >= 1f / base.trackerUpdateFrequency)
{
stopwatch -= 1f / base.trackerUpdateFrequency;
Ray aimRay = default(Ray);
((Ray)(ref aimRay))..ctor(base.inputBank.aimOrigin, base.inputBank.aimDirection);
SearchForTargetNoLos(aimRay);
base.indicator.targetTransform = (Object.op_Implicit((Object)(object)base.trackingTarget) ? ((Component)base.trackingTarget).transform : null);
}
}
private void SearchForTargetNoLos(Ray aimRay)
{
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: Unknown result type (might be due to invalid IL or missing references)
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_0042: Unknown result type (might be due to invalid IL or missing references)
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_0053: Unknown result type (might be due to invalid IL or missing references)
base.search.teamMaskFilter = TeamMask.GetUnprotectedTeams(base.teamComponent.teamIndex);
base.search.filterByLoS = false;
base.search.searchOrigin = ((Ray)(ref aimRay)).origin;
base.search.searchDirection = ((Ray)(ref aimRay)).direction;
base.search.sortMode = (SortMode)1;
base.search.maxDistanceFilter = base.maxTrackingDistance;
base.search.maxAngleFilter = 15f;
base.search.RefreshCandidates();
base.search.FilterOutGameObject(((Component)this).gameObject);
base.trackingTarget = base.search.GetResults().FirstOrDefault();
}
}
internal class LotusBladeOrb : Orb
{
public float speed;
public float damage;
internal GameObject owner;
public GameObject orbEffect;
public float procCoefficient;
public override void Begin()
{
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_001c: Unknown result type (might be due to invalid IL or missing references)
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
//IL_0034: Expected O, but got Unknown
((Orb)this).duration = ((Orb)this).distanceToTarget / speed;
EffectData val = new EffectData
{
origin = base.origin,
genericFloat = ((Orb)this).duration
};
val.SetHurtBoxReference(base.target);
EffectManager.SpawnEffect(orbEffect, val, true);
}
public override void OnArrival()
{
//IL_0026: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
//IL_0037: 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_004f: Unknown result type (might be due to invalid IL or missing references)
//IL_005b: Unknown result type (might be due to invalid IL or missing references)
//IL_005d: Unknown result type (might be due to invalid IL or missing references)
//IL_0062: Unknown result type (might be due to invalid IL or missing references)
//IL_0067: Unknown result type (might be due to invalid IL or missing references)
//IL_0069: Unknown result type (might be due to invalid IL or missing references)
//IL_006e: Unknown result type (might be due to invalid IL or missing references)
//IL_007a: Unknown result type (might be due to invalid IL or missing references)
//IL_007f: Unknown result type (might be due to invalid IL or missing references)
//IL_0084: Unknown result type (might be due to invalid IL or missing references)
//IL_008c: Expected O, but got Unknown
if (Object.op_Implicit((Object)(object)base.target) && Object.op_Implicit((Object)(object)base.target.healthComponent))
{
DamageInfo val = new DamageInfo
{
attacker = owner,
inflictor = owner,
damage = damage,
procCoefficient = procCoefficient,
damageType = DamageTypeCombo.op_Implicit((DamageTypeExtended)0),
damageColorIndex = (DamageColorIndex)0,
position = ((Component)base.target).transform.position,
rejected = false
};
base.target.healthComponent.TakeDamage(val);
}
}
}
internal class GlobalValues
{
internal static float secondaryHealCoefficient = 0.1f;
internal static float daggerPickupRadius = MainPlugin.daggerpickupzone.Value;
internal static float daggerPickupExplosionRadius = MainPlugin.daggerpickupslash.Value;
internal static float maxBlinkDistance = 175f;
internal static float specialProjectileSpeed = 51f;
internal static float specialCDReductionOnKill = 4f;
}
internal class Hook
{
internal static void Hooks()
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Expected O, but got Unknown
HealthComponent.TakeDamage += new hook_TakeDamage(HealthComponent_TakeDamage);
GlobalEventManager.onCharacterDeathGlobal += GlobalEventManager_onCharacterDeathGlobal;
GlobalEventManager.onClientDamageNotified += GlobalEventManager_onClientDamageNotified;
}
private static void GlobalEventManager_onClientDamageNotified(DamageDealtMessage damageDealtMessage)
{
}
private static void GlobalEventManager_onCharacterDeathGlobal(DamageReport damageReport)
{
//IL_0046: Unknown result type (might be due to invalid IL or missing references)
//IL_0053: Unknown result type (might be due to invalid IL or missing references)
//IL_0060: Unknown result type (might be due to invalid IL or missing references)
//IL_022d: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0422: Unknown result type (might be due to invalid IL or missing references)
//IL_007a: Unknown result type (might be due to invalid IL or missing references)
//IL_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_0449: Unknown result type (might be due to invalid IL or missing references)
//IL_044e: Unknown result type (might be due to invalid IL or missing references)
//IL_0087: Unknown result type (might be due to invalid IL or missing references)
//IL_05ed: Unknown result type (might be due to invalid IL or missing references)
//IL_05f2: Unknown result type (might be due to invalid IL or missing references)
//IL_05fc: Invalid comparison between Unknown and I4
//IL_01a1: 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_068b: Unknown result type (might be due to invalid IL or missing references)
//IL_0690: Unknown result type (might be due to invalid IL or missing references)
//IL_0202: Unknown result type (might be due to invalid IL or missing references)
//IL_0207: Unknown result type (might be due to invalid IL or missing references)
//IL_0210: Unknown result type (might be due to invalid IL or missing references)
//IL_0215: Unknown result type (might be due to invalid IL or missing references)
//IL_0217: Unknown result type (might be due to invalid IL or missing references)
//IL_0228: Expected O, but got Unknown
//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
//IL_01e7: Unknown result type (might be due to invalid IL or missing references)
//IL_01f8: Expected O, but got Unknown
//IL_031b: Unknown result type (might be due to invalid IL or missing references)
//IL_0320: Unknown result type (might be due to invalid IL or missing references)
//IL_032f: Unknown result type (might be due to invalid IL or missing references)
//IL_0334: Unknown result type (might be due to invalid IL or missing references)
//IL_036f: Unknown result type (might be due to invalid IL or missing references)
//IL_0374: Unknown result type (might be due to invalid IL or missing references)
//IL_0376: Unknown result type (might be due to invalid IL or missing references)
//IL_0387: Expected O, but got Unknown
//IL_0392: Unknown result type (might be due to invalid IL or missing references)
//IL_0397: Unknown result type (might be due to invalid IL or missing references)
//IL_03a0: Unknown result type (might be due to invalid IL or missing references)
//IL_03a5: Unknown result type (might be due to invalid IL or missing references)
//IL_03a7: Unknown result type (might be due to invalid IL or missing references)
//IL_03b8: Expected O, but got Unknown
//IL_0404: Unknown result type (might be due to invalid IL or missing references)
//IL_0409: Unknown result type (might be due to invalid IL or missing references)
//IL_040b: Unknown result type (might be due to invalid IL or missing references)
//IL_041c: Expected O, but got Unknown
//IL_03cf: Unknown result type (might be due to invalid IL or missing references)
//IL_03d4: Unknown result type (might be due to invalid IL or missing references)
//IL_03dd: Unknown result type (might be due to invalid IL or missing references)
//IL_03e2: Unknown result type (might be due to invalid IL or missing references)
//IL_03e4: Unknown result type (might be due to invalid IL or missing references)
//IL_03f5: Expected O, but got Unknown
//IL_05b0: Unknown result type (might be due to invalid IL or missing references)
//IL_05b5: Unknown result type (might be due to invalid IL or missing references)
//IL_05be: Unknown result type (might be due to invalid IL or missing references)
//IL_05c3: Unknown result type (might be due to invalid IL or missing references)
//IL_05c5: Unknown result type (might be due to invalid IL or missing references)
//IL_05d6: Expected O, but got Unknown
//IL_058e: Unknown result type (might be due to invalid IL or missing references)
//IL_0593: Unknown result type (might be due to invalid IL or missing references)
//IL_0595: Unknown result type (might be due to invalid IL or missing references)
//IL_05a6: Expected O, but got Unknown
DamageInfo damageInfo = damageReport.damageInfo;
if (!Object.op_Implicit((Object)(object)damageReport.victim) || !Object.op_Implicit((Object)(object)damageReport.victimBody) || !Object.op_Implicit((Object)(object)damageReport.attacker) || !Object.op_Implicit((Object)(object)damageReport.attackerBody))
{
return;
}
if (DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blade1) || DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blade2) || DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blade3) || DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blade4) || DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blade5) || DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blade6))
{
if (damageReport.attackerBody.skillLocator.secondary.baseRechargeInterval == 9f)
{
damageReport.attackerBody.skillLocator.secondary.AddOneStock();
}
else if (damageReport.attackerBody.skillLocator.secondary.baseRechargeInterval == 5.5f)
{
bool flag = damageReport.attackerBody.skillLocator.secondary.stock == 1;
bool flag2 = damageReport.attackerBody.skillLocator.secondary.stock == 0;
if (flag || flag2)
{
damageReport.attackerBody.skillLocator.secondary.Reset();
}
else
{
damageReport.attackerBody.skillLocator.secondary.AddOneStock();
}
}
if (NetworkServer.active)
{
damageReport.attackerBody.healthComponent.Heal(damageReport.victimBody.healthComponent.fullHealth * GlobalValues.secondaryHealCoefficient, default(ProcChainMask), true);
}
if (MainPlugin.killexplosionfx.Value)
{
if (!MainPlugin.collapseEveryone.Value)
{
EffectManager.SpawnEffect(LegacyResourcesAPI.Load<GameObject>("Prefabs/Effects/ImpactEffects/Bandit2ResetEffect"), new EffectData
{
origin = damageInfo.position
}, true);
}
else
{
EffectManager.SpawnEffect(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/BleedOnHitVoid/FractureImpactEffect.prefab").WaitForCompletion(), new EffectData
{
origin = damageInfo.position
}, true);
}
}
}
if (DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blink))
{
ExtraSkillLocator component = ((Component)damageReport.attackerBody).GetComponent<ExtraSkillLocator>();
if (component.extraThird.stock == 0)
{
component.extraThird.AddOneStock();
}
if (Object.op_Implicit((Object)(object)damageReport.attackerBody.skillLocator) && damageReport.attackerBody.skillLocator.utility.stock == 0)
{
damageReport.attackerBody.skillLocator.utility.AddOneStock();
}
if (Object.op_Implicit((Object)(object)damageReport.attackerBody.skillLocator) && damageReport.attackerBody.skillLocator.secondary.stock == 0)
{
damageReport.attackerBody.skillLocator.secondary.AddOneStock();
}
bool isFlying = damageReport.victimBody.isFlying;
bool flag3 = damageReport.victimBody.bodyIndex == MainPlugin.vultureIndex;
bool flag4 = damageReport.victimBody.bodyIndex == MainPlugin.pestIndex;
switch (MainPlugin.shunpoSetting.Value)
{
case 0:
EffectManager.SpawnEffect(LegacyResourcesAPI.Load<GameObject>("Prefabs/Effects/ImpactEffects/Bandit2ResetEffect"), new EffectData
{
origin = damageInfo.position
}, true);
break;
case 1:
EffectManager.SpawnEffect(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/BleedOnHitVoid/FractureImpactEffect.prefab").WaitForCompletion(), new EffectData
{
origin = damageInfo.position
}, true);
break;
case 2:
if (isFlying || flag4 || flag3)
{
EffectManager.SpawnEffect(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/BleedOnHitVoid/FractureImpactEffect.prefab").WaitForCompletion(), new EffectData
{
origin = damageInfo.position
}, true);
}
else
{
EffectManager.SpawnEffect(LegacyResourcesAPI.Load<GameObject>("Prefabs/Effects/ImpactEffects/Bandit2ResetEffect"), new EffectData
{
origin = damageInfo.position
}, true);
}
break;
}
}
if (DamageAPI.HasModdedDamageType(damageInfo, Prefabs.daggerPickup))
{
ExtraSkillLocator component2 = ((Component)damageReport.attackerBody).GetComponent<ExtraSkillLocator>();
if (damageReport.attackerBody.bodyIndex == MainPlugin.katIndex && Object.op_Implicit((Object)(object)damageReport.attackerBody))
{
damageReport.attackerBody.AddTimedBuff(Buffs.KillMoveSpeed, 2f);
}
if (component2.extraThird.stock == 0)
{
component2.extraThird.AddOneStock();
}
if (component2.extraSecond.stock == 0)
{
component2.extraSecond.AddOneStock();
}
if (Object.op_Implicit((Object)(object)damageReport.attackerBody.skillLocator) && damageReport.attackerBody.skillLocator.secondary.stock == 0)
{
damageReport.attackerBody.skillLocator.secondary.AddOneStock();
}
if (Object.op_Implicit((Object)(object)damageReport.attackerBody.skillLocator) && damageReport.attackerBody.skillLocator.utility.stock == 0)
{
damageReport.attackerBody.skillLocator.utility.AddOneStock();
}
if (MainPlugin.killexplosionfx.Value)
{
if (!MainPlugin.collapseEveryone.Value)
{
EffectManager.SpawnEffect(LegacyResourcesAPI.Load<GameObject>("Prefabs/Effects/ImpactEffects/Bandit2ResetEffect"), new EffectData
{
origin = damageInfo.position
}, true);
}
else
{
EffectManager.SpawnEffect(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/BleedOnHitVoid/FractureImpactEffect.prefab").WaitForCompletion(), new EffectData
{
origin = damageInfo.position
}, true);
}
}
}
if (damageReport.attackerBody.bodyIndex == MainPlugin.katIndex && (int)DamageTypeCombo.op_Implicit(damageInfo.damageType) == 524288)
{
ExtraSkillLocator component3 = ((Component)damageReport.attackerBody).GetComponent<ExtraSkillLocator>();
if (Object.op_Implicit((Object)(object)damageReport.attackerBody.skillLocator) && damageReport.attackerBody.skillLocator.utility.stock == 0)
{
damageReport.attackerBody.skillLocator.utility.AddOneStock();
}
if (component3.extraThird.stock == 0)
{
component3.extraThird.AddOneStock();
}
}
if (damageReport.attackerBody.bodyIndex == MainPlugin.katIndex && Object.op_Implicit((Object)(object)damageReport.attackerBody.skillLocator) && Object.op_Implicit((Object)(object)damageReport.attackerBody.skillLocator.special) && NetworkServer.active)
{
damageReport.attackerBody.skillLocator.special.RunRecharge(GlobalValues.specialCDReductionOnKill);
}
}
private static void HealthComponent_TakeDamage(orig_TakeDamage orig, HealthComponent self, DamageInfo damageInfo)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
//IL_00be: Unknown result type (might be due to invalid IL or missing references)
//IL_00cb: Unknown result type (might be due to invalid IL or missing references)
//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_009e: Unknown result type (might be due to invalid IL or missing references)
//IL_00a4: Invalid comparison between Unknown and I4
//IL_00e5: 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_0134: 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)
//IL_00f2: 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_021f: Unknown result type (might be due to invalid IL or missing references)
//IL_0225: Unknown result type (might be due to invalid IL or missing references)
//IL_0190: Unknown result type (might be due to invalid IL or missing references)
//IL_0196: Unknown result type (might be due to invalid IL or missing references)
//IL_0258: Unknown result type (might be due to invalid IL or missing references)
//IL_0262: 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_0271: Unknown result type (might be due to invalid IL or missing references)
//IL_0276: Unknown result type (might be due to invalid IL or missing references)
//IL_027b: 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_02e2: Unknown result type (might be due to invalid IL or missing references)
//IL_0346: 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)
//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)
//IL_03aa: Unknown result type (might be due to invalid IL or missing references)
//IL_030a: Unknown result type (might be due to invalid IL or missing references)
//IL_030f: Unknown result type (might be due to invalid IL or missing references)
//IL_0311: Unknown result type (might be due to invalid IL or missing references)
//IL_040e: Unknown result type (might be due to invalid IL or missing references)
//IL_036e: Unknown result type (might be due to invalid IL or missing references)
//IL_0373: Unknown result type (might be due to invalid IL or missing references)
//IL_0375: Unknown result type (might be due to invalid IL or missing references)
//IL_046f: Unknown result type (might be due to invalid IL or missing references)
//IL_03d2: Unknown result type (might be due to invalid IL or missing references)
//IL_03d7: Unknown result type (might be due to invalid IL or missing references)
//IL_03d9: Unknown result type (might be due to invalid IL or missing references)
//IL_0436: Unknown result type (might be due to invalid IL or missing references)
//IL_043b: Unknown result type (might be due to invalid IL or missing references)
//IL_043d: Unknown result type (might be due to invalid IL or missing references)
//IL_0497: Unknown result type (might be due to invalid IL or missing references)
//IL_049c: Unknown result type (might be due to invalid IL or missing references)
//IL_049e: Unknown result type (might be due to invalid IL or missing references)
if (DamageAPI.HasModdedDamageType(damageInfo, Prefabs.bladeBleed) && NetworkServer.active)
{
DotController.InflictDot(((Component)self).gameObject, damageInfo.attacker, (DotIndex)6, 15f * damageInfo.procCoefficient, 1f, (uint?)null);
}
if (Object.op_Implicit((Object)(object)damageInfo.attacker) && ((Object)damageInfo.attacker).name.Contains("NinesKatarinaBody"))
{
CharacterBody component = damageInfo.attacker.GetComponent<CharacterBody>();
if (Object.op_Implicit((Object)(object)component) && NetworkServer.active && (int)DamageTypeCombo.op_Implicit(damageInfo.damageType) != 2)
{
}
}
if ((DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blade1) || DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blade2) || DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blade3) || DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blade4) || DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blade5) || DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blade6)) && NetworkServer.active)
{
CharacterBody component2 = damageInfo.attacker.GetComponent<CharacterBody>();
component2.healthComponent.Heal(damageInfo.damage * 0.08f, default(ProcChainMask), true);
}
if (DamageAPI.HasModdedDamageType(damageInfo, Prefabs.daggerPickup))
{
CharacterBody component3 = damageInfo.attacker.GetComponent<CharacterBody>();
if (Object.op_Implicit((Object)(object)component3) && NetworkServer.active)
{
component3.healthComponent.Heal(damageInfo.damage * 0.03f, default(ProcChainMask), true);
}
}
if (DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blink))
{
CharacterBody component4 = damageInfo.attacker.GetComponent<CharacterBody>();
float num = self.health * 0.1f;
float num2 = damageInfo.damage + num;
float damage = ((!self.body.isBoss) ? num2 : (num2 * 0.7f));
damageInfo.damage = damage;
float num3 = damageInfo.damage * 0.07f;
component4.healthComponent.Heal(num3, default(ProcChainMask), true);
}
orig.Invoke(self, damageInfo);
if (!Object.op_Implicit((Object)(object)damageInfo.attacker) || !self.alive)
{
return;
}
Vector3 val = Vector3.up * 40f + Vector3.forward * 15f;
if (DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blade1))
{
if (NetworkServer.active)
{
ProjectileManager.instance.FireProjectile(Prefabs.dagger1ProjectilePickup, damageInfo.position, Util.QuaternionSafeLookRotation(val), damageInfo.attacker, 0f, 0f, false, (DamageColorIndex)0, (GameObject)null, -1f, (DamageTypeCombo?)null);
}
}
else if (DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blade2))
{
if (NetworkServer.active)
{
ProjectileManager.instance.FireProjectile(Prefabs.dagger2ProjectilePickup, damageInfo.position, Util.QuaternionSafeLookRotation(val), damageInfo.attacker, 0f, 0f, false, (DamageColorIndex)0, (GameObject)null, -1f, (DamageTypeCombo?)null);
}
}
else if (DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blade3))
{
if (NetworkServer.active)
{
ProjectileManager.instance.FireProjectile(Prefabs.dagger3ProjectilePickup, damageInfo.position, Util.QuaternionSafeLookRotation(val), damageInfo.attacker, 0f, 0f, false, (DamageColorIndex)0, (GameObject)null, -1f, (DamageTypeCombo?)null);
}
}
else if (DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blade4))
{
if (NetworkServer.active)
{
ProjectileManager.instance.FireProjectile(Prefabs.dagger4ProjectilePickup, damageInfo.position, Util.QuaternionSafeLookRotation(val), damageInfo.attacker, 0f, 0f, false, (DamageColorIndex)0, (GameObject)null, -1f, (DamageTypeCombo?)null);
}
}
else if (DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blade5))
{
if (NetworkServer.active)
{
ProjectileManager.instance.FireProjectile(Prefabs.dagger5ProjectilePickup, damageInfo.position, Util.QuaternionSafeLookRotation(val), damageInfo.attacker, 0f, 0f, false, (DamageColorIndex)0, (GameObject)null, -1f, (DamageTypeCombo?)null);
}
}
else if (DamageAPI.HasModdedDamageType(damageInfo, Prefabs.blade6) && NetworkServer.active)
{
ProjectileManager.instance.FireProjectile(Prefabs.dagger6ProjectilePickup, damageInfo.position, Util.QuaternionSafeLookRotation(val), damageInfo.attacker, 0f, 0f, false, (DamageColorIndex)0, (GameObject)null, -1f, (DamageTypeCombo?)null);
}
}
}
internal class KatarinaSkillDef : SkillDef
{
private class InstanceData : BaseSkillInstanceData
{
public KatarinaTracker katarinaTracker;
}
public override BaseSkillInstanceData OnAssigned([NotNull] GenericSkill skillSlot)
{
return (BaseSkillInstanceData)(object)new InstanceData
{
katarinaTracker = ((Component)skillSlot).GetComponent<KatarinaTracker>()
};
}
internal static bool IsExecutable([NotNull] GenericSkill skillSlot)
{
KatarinaTracker katarinaTracker = ((InstanceData)(object)skillSlot.skillInstanceData).katarinaTracker;
return katarinaTracker.canExecute;
}
public override bool CanExecute([NotNull] GenericSkill skillSlot)
{
return IsExecutable(skillSlot) && ((SkillDef)this).CanExecute(skillSlot);
}
public override bool IsReady([NotNull] GenericSkill skillSlot)
{
return ((SkillDef)this).IsReady(skillSlot) && IsExecutable(skillSlot);
}
}
internal class KatAssets
{
public static AssetBundle MainAssetBundle;
public static void PopulateAssets()
{
if ((Object)(object)MainAssetBundle == (Object)null)
{
using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Katarina.katarinaassets");
MainAssetBundle = AssetBundle.LoadFromStream(stream);
}
using Stream stream2 = Assembly.GetExecutingAssembly().GetManifestResourceStream("Katarina.BattleQueenSounds.bnk");
byte[] array = new byte[stream2.Length];
stream2.Read(array, 0, array.Length);
SoundBanks.Add(array);
}
}
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInPlugin("com.Nines.Katarina", "Katarina", "2.2.0")]
[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
public class MainPlugin : BaseUnityPlugin
{
public const string MODUID = "com.Nines.Katarina";
public const string MODNAME = "Katarina";
public const string VERSION = "2.2.0";
public const string SURVIVORNAME = "NinesKatarina";
public const string SURVIVORNAMEKEY = "NINESKATARINA";
public static GameObject characterPrefab;
private static readonly Color characterColor = new Color(0.9254902f, 37f / 85f, 0.9137255f);
internal static ConfigEntry<bool> shunpofx;
internal static ConfigEntry<bool> killexplosionfx;
internal static ConfigEntry<bool> enablelotusvoice;
internal static ConfigEntry<bool> enablemeleevoice;
internal static ConfigEntry<bool> enabledaggervoice;
internal static ConfigEntry<bool> loudshunpo;
internal static ConfigEntry<bool> silentslash;
internal static ConfigEntry<bool> randomdaggers;
internal static ConfigEntry<bool> altlotusfx;
internal static ConfigEntry<bool> shunpodamagefx;
internal static ConfigEntry<bool> collapseEveryone;
internal static ConfigEntry<float> throwvelocity;
internal static ConfigEntry<float> daggerpickupzone;
internal static ConfigEntry<float> daggerpickupslash;
internal static ConfigEntry<float> radialhealpercent;
internal static ConfigEntry<float> blinkdmg;
internal static ConfigEntry<float> ihateflyingenemies;
internal static ConfigEntry<float> daggerspherebox;
internal static ConfigEntry<int> shunpoSetting;
internal static ConfigEntry<float> mainRootSpeed;
internal static ConfigEntry<float> baseMaxHealth;
internal static ConfigEntry<float> levelMaxHealth;
internal static ConfigEntry<float> baseRegen;
internal static ConfigEntry<float> levelRegen;
internal static ConfigEntry<float> baseMoveSpeed;
internal static ConfigEntry<float> levelMoveSpeed;
internal static ConfigEntry<float> baseAcceleration;
internal static ConfigEntry<float> baseJumpPower;
internal static ConfigEntry<float> levelJumpPower;
internal static ConfigEntry<float> levelDamage;
internal static ConfigEntry<float> baseAttackSpeed;
internal static ConfigEntry<float> levelAttackSpeed;
internal static ConfigEntry<float> baseArmor;
internal static ConfigEntry<float> levelArmor;
internal static ConfigEntry<float> sprintingSpeedMultiplier;
internal static Shader hopooshaders = Resources.Load<Shader>("Shaders/Deferred/HGStandard");
public static BodyIndex vultureIndex;
public static BodyIndex pestIndex;
public static BodyIndex katIndex;
private void Awake()
{
//IL_0011: 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_002c: Expected O, but got Unknown
//IL_002c: Expected O, but got Unknown
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_0052: Unknown result type (might be due to invalid IL or missing references)
//IL_005c: Expected O, but got Unknown
//IL_005c: Expected O, but got Unknown
//IL_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0082: Unknown result type (might be due to invalid IL or missing references)
//IL_008c: Expected O, but got Unknown
//IL_008c: Expected O, but got Unknown
//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
//IL_00bc: Expected O, but got Unknown
//IL_00bc: Expected O, but got Unknown
//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
//IL_00ec: Expected O, but got Unknown
//IL_00ec: Expected O, but got Unknown
//IL_0101: 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_011c: Expected O, but got Unknown
//IL_011c: Expected O, but got Unknown
//IL_0131: Unknown result type (might be due to invalid IL or missing references)
//IL_0142: Unknown result type (might be due to invalid IL or missing references)
//IL_014c: Expected O, but got Unknown
//IL_014c: Expected O, but got Unknown
//IL_0161: Unknown result type (might be due to invalid IL or missing references)
//IL_0172: Unknown result type (might be due to invalid IL or missing references)
//IL_017c: Expected O, but got Unknown
//IL_017c: Expected O, but got Unknown
//IL_0191: 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_01ac: Expected O, but got Unknown
//IL_01ac: Expected O, but got Unknown
//IL_01c1: Unknown result type (might be due to invalid IL or missing references)
//IL_01d2: Unknown result type (might be due to invalid IL or missing references)
//IL_01dc: Expected O, but got Unknown
//IL_01dc: Expected O, but got Unknown
//IL_01f1: Unknown result type (might be due to invalid IL or missing references)
//IL_0202: Unknown result type (might be due to invalid IL or missing references)
//IL_020c: Expected O, but got Unknown
//IL_020c: Expected O, but got Unknown
//IL_0221: Unknown result type (might be due to invalid IL or missing references)
//IL_0232: Unknown result type (might be due to invalid IL or missing references)
//IL_023c: Expected O, but got Unknown
//IL_023c: Expected O, but got Unknown
//IL_0251: 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_0270: Expected O, but got Unknown
//IL_0270: Expected O, but got Unknown
//IL_0285: Unknown result type (might be due to invalid IL or missing references)
//IL_029a: Unknown result type (might be due to invalid IL or missing references)
//IL_02a4: Expected O, but got Unknown
//IL_02a4: Expected O, but got Unknown
//IL_02b9: Unknown result type (might be due to invalid IL or missing references)
//IL_02ce: Unknown result type (might be due to invalid IL or missing references)
//IL_02d8: Expected O, but got Unknown
//IL_02d8: Expected O, but got Unknown
//IL_02ed: Unknown result type (might be due to invalid IL or missing references)
//IL_0302: Unknown result type (might be due to invalid IL or missing references)
//IL_030c: Expected O, but got Unknown
//IL_030c: Expected O, but got Unknown
//IL_0321: Unknown result type (might be due to invalid IL or missing references)
//IL_0336: Unknown result type (might be due to invalid IL or missing references)
//IL_0340: Expected O, but got Unknown
//IL_0340: Expected O, but got Unknown
//IL_0355: Unknown result type (might be due to invalid IL or missing references)
//IL_036a: Unknown result type (might be due to invalid IL or missing references)
//IL_0374: Expected O, but got Unknown
//IL_0374: Expected O, but got Unknown
//IL_0389: Unknown result type (might be due to invalid IL or missing references)
//IL_039e: Unknown result type (might be due to invalid IL or missing references)
//IL_03a8: Expected O, but got Unknown
//IL_03a8: Expected O, but got Unknown
shunpofx = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("VFX", "Shunpo VFX"), true, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>()));
killexplosionfx = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("VFX", "Special Effects On Reset"), true, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>()));
collapseEveryone = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("VFX", "Special Effect Choice"), false, new ConfigDescription("false for Lights Out, true for Collapse", (AcceptableValueBase)null, Array.Empty<object>()));
shunpoSetting = ((BaseUnityPlugin)this).Config.Bind<int>(new ConfigDefinition("VFX", "Shunpo Kill Effect"), 2, new ConfigDescription("0: Lights Out 1: Collapse 2: Lights Out for ground enemies and Collapse for flying enemies", (AcceptableValueBase)null, Array.Empty<object>()));
altlotusfx = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("VFX", "Alternate Death Lotus Projectiles"), false, new ConfigDescription("False for red daggers, True for Scheman magic bursts", (AcceptableValueBase)null, Array.Empty<object>()));
enablelotusvoice = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Voice", "Death Lotus Voice"), true, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>()));
enablemeleevoice = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Voice", "Sinister Steel Voice"), true, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>()));
enabledaggervoice = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Voice", "Voracious Blade Voice"), true, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>()));
randomdaggers = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Daggers", "True Random Daggers"), false, new ConfigDescription("true to randomize her weapons and dagger pickups, false to sync them together", (AcceptableValueBase)null, Array.Empty<object>()));
loudshunpo = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Shunpo", "Shunpo Explosion Sound"), true, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>()));
silentslash = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Sinister Steel", "Quieter Impact"), true, new ConfigDescription("Mercenary slash impact sfx, turned off by default", (AcceptableValueBase)null, Array.Empty<object>()));
shunpodamagefx = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Shunpo", "Enemy Damage FX"), true, new ConfigDescription("Collapse effect on enemy", (AcceptableValueBase)null, Array.Empty<object>()));
blinkdmg = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("Shunpo", "Damage Coefficient"), 2.6f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>()));
ihateflyingenemies = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("Shunpo", "Flying Enemy Damage Coefficient"), 4.6f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>()));
daggerpickupzone = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("Daggers", "Pickup Zone Radius"), 5f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>()));
daggerpickupslash = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("Daggers", "Pickup Slash Radius"), 15f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>()));
radialhealpercent = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("Daggers", "Omnivamp"), 0.3f, new ConfigDescription("Percent of damage dealt on a per enemy basis. 0.3 is 3% of damage done to one enemy, times the number of enemies hit.", (AcceptableValueBase)null, Array.Empty<object>()));
daggerspherebox = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("Daggers", "Hitbox"), 1.1f, new ConfigDescription("Feel free to mess with this, it's measured as a radius. Serrated Shiv is 0.3", (AcceptableValueBase)null, Array.Empty<object>()));
throwvelocity = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("Daggers", "Velocity"), 200f, new ConfigDescription("Default is 185, changed to 200 for v2.2, Serrated Shiv is 160", (AcceptableValueBase)null, Array.Empty<object>()));
KatAssets.PopulateAssets();
Prefabs.CreatePrefabs();
CreateSurvPrefab();
RegisterStates();
RegisterCharacter();
Hook.Hooks();
RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, (Action)delegate
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
vultureIndex = BodyCatalog.FindBodyIndex("VultureBody");
pestIndex = BodyCatalog.FindBodyIndex("FlyingVerminBody");
katIndex = BodyCatalog.FindBodyIndex("NinesKatarinaBody");
});
}
internal static void CreateSurvPrefab()
{
//IL_00d5: Unknown result type (might be due to invalid IL or missing references)
//IL_00db: Expected O, but got Unknown
//IL_0106: 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_0137: 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_014d: Expected O, but got Unknown
//IL_0174: Unknown result type (might be due to invalid IL or missing references)
//IL_0185: Unknown result type (might be due to invalid IL or missing references)
//IL_0196: Unknown result type (might be due to invalid IL or missing references)
//IL_01b9: Unknown result type (might be due to invalid IL or missing references)
//IL_01d5: Unknown result type (might be due to invalid IL or missing references)
//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
//IL_01fb: Unknown result type (might be due to invalid IL or missing references)
//IL_0200: Unknown result type (might be due to invalid IL or missing references)
//IL_0278: Unknown result type (might be due to invalid IL or missing references)
//IL_0281: Unknown result type (might be due to invalid IL or missing references)
//IL_03a1: Unknown result type (might be due to invalid IL or missing references)
//IL_03a6: Unknown result type (might be due to invalid IL or missing references)
//IL_03cc: Unknown result type (might be due to invalid IL or missing references)
//IL_0412: Unknown result type (might be due to invalid IL or missing references)
//IL_0417: Unknown result type (might be due to invalid IL or missing references)
//IL_047b: Unknown result type (might be due to invalid IL or missing references)
//IL_0480: 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_049d: Unknown result type (might be due to invalid IL or missing references)
//IL_04ae: Unknown result type (might be due to invalid IL or missing references)
//IL_04b3: Unknown result type (might be due to invalid IL or missing references)
//IL_04c4: Unknown result type (might be due to invalid IL or missing references)
//IL_04c9: Unknown result type (might be due to invalid IL or missing references)
//IL_04da: Unknown result type (might be due to invalid IL or missing references)
//IL_04df: Unknown result type (might be due to invalid IL or missing references)
//IL_04fa: 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_0504: Unknown result type (might be due to invalid IL or missing references)
//IL_050e: Unknown result type (might be due to invalid IL or missing references)
//IL_0515: Expected O, but got Unknown
//IL_0542: Unknown result type (might be due to invalid IL or missing references)
//IL_0554: Unknown result type (might be due to invalid IL or missing references)
//IL_0591: Unknown result type (might be due to invalid IL or missing references)
//IL_0596: Unknown result type (might be due to invalid IL or missing references)
//IL_061d: Unknown result type (might be due to invalid IL or missing references)
//IL_063b: Unknown result type (might be due to invalid IL or missing references)
//IL_0654: Unknown result type (might be due to invalid IL or missing references)
//IL_0672: Unknown result type (might be due to invalid IL or missing references)
//IL_067f: Unknown result type (might be due to invalid IL or missing references)
//IL_0681: Unknown result type (might be due to invalid IL or missing references)
//IL_0685: Unknown result type (might be due to invalid IL or missing references)
//IL_0709: Unknown result type (might be due to invalid IL or missing references)
//IL_0753: Unknown result type (might be due to invalid IL or missing references)
//IL_0767: Unknown result type (might be due to invalid IL or missing references)
//IL_077b: Unknown result type (might be due to invalid IL or missing references)
//IL_078f: Unknown result type (might be due to invalid IL or missing references)
//IL_07e1: Unknown result type (might be due to invalid IL or missing references)
//IL_09aa: Unknown result type (might be due to invalid IL or missing references)
//IL_0a66: Unknown result type (might be due to invalid IL or missing references)
//IL_0a6b: Unknown result type (might be due to invalid IL or missing references)
//IL_0a99: Unknown result type (might be due to invalid IL or missing references)
//IL_0a9e: Unknown result type (might be due to invalid IL or missing references)
//IL_0ac7: Unknown result type (might be due to invalid IL or missing references)
//IL_0acc: Unknown result type (might be due to invalid IL or missing references)
//IL_0add: Unknown result type (might be due to invalid IL or missing references)
//IL_0ae2: Unknown result type (might be due to invalid IL or missing references)
//IL_0b0b: Unknown result type (might be due to invalid IL or missing references)
//IL_0b10: Unknown result type (might be due to invalid IL or missing references)
//IL_0b21: Unknown result type (might be due to invalid IL or missing references)
//IL_0b26: Unknown result type (might be due to invalid IL or missing references)
//IL_0b4f: Unknown result type (might be due to invalid IL or missing references)
//IL_0b54: Unknown result type (might be due to invalid IL or missing references)
//IL_0b65: Unknown result type (might be due to invalid IL or missing references)
//IL_0b6a: Unknown result type (might be due to invalid IL or missing references)
//IL_0b93: Unknown result type (might be due to invalid IL or missing references)
//IL_0b98: Unknown result type (might be due to invalid IL or missing references)
//IL_0ba9: Unknown result type (might be due to invalid IL or missing references)
//IL_0bae: Unknown result type (might be due to invalid IL or missing references)
//IL_0c1a: Unknown result type (might be due to invalid IL or missing references)
//IL_0c3c: Unknown result type (might be due to invalid IL or missing references)
//IL_0c61: Unknown result type (might be due to invalid IL or missing references)
characterPrefab = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/CommandoBody"), "NinesKatarinaBody", true);
characterPrefab.AddComponent<BladeController>();
characterPrefab.AddComponent<ExtraSkillLocator>();
characterPrefab.GetComponent<NetworkIdentity>().localPlayerAuthority = true;
Object.Destroy((Object)(object)((Component)characterPrefab.transform.Find("ModelBase")).gameObject);
Object.Destroy((Object)(object)((Component)characterPrefab.transform.Find("CameraPivot")).gameObject);
Object.Destroy((Object)(object)((Component)characterPrefab.transform.Find("AimOrigin")).gameObject);
GameObject val = KatAssets.MainAssetBundle.LoadAsset<GameObject>("katarina");
KatarinaTracker katarinaTracker = characterPrefab.AddComponent<KatarinaTracker>();
((HuntressTracker)katarinaTracker).maxTrackingAngle = 93f;
((HuntressTracker)katarinaTracker).maxTrackingDistance = 21f;
GameObject val2 = new GameObject("ModelBase");
val2.transform.parent = characterPrefab.transform;
val2.transform.localPosition = new Vector3(0f, -0.94f, 0f);
val2.transform.localRotation = Quaternion.identity;
val2.transform.localScale = new Vector3(1.42f, 1.42f, 1.42f);
GameObject val3 = new GameObject("AimOrigin");
val3.transform.parent = val2.transform;
val3.transform.localPosition = new Vector3(0f, 1.7f, 0f);
val3.transform.localRotation = Quaternion.identity;
val3.transform.localScale = Vector3.one;
Transform transform = val.transform;
transform.parent = val2.transform;
transform.localPosition = Vector3.zero;
transform.localScale = new Vector3(1f, 1f, 1f);
transform.localRotation = Quaternion.identity;
CharacterDirection component = characterPrefab.GetComponent<CharacterDirection>();
component.moveVector = Vector3.zero;
component.targetTransform = val2.transform;
component.overrideAnimatorForwardTransform = null;
component.rootMotionAccumulator = null;
component.modelAnimator = val.GetComponentInChildren<Animator>();
component.driveFromRootRotation = false;
component.turnSpeed = 720f;
CharacterBody component2 = characterPrefab.GetComponent<CharacterBody>();
((Object)component2).name = "NinesKatarinaBody";
component2.baseNameToken = "NINESKATARINA_NAME";
component2.subtitleNameToken = "NINESKATARINA_SUBTITLE";
component2.bodyFlags = (BodyFlags)16;
component2.bodyFlags = (BodyFlags)32;
component2.rootMotionInMainState = false;
component2.mainRootSpeed = 0f;
component2.baseMaxHealth = 120f;
component2.levelMaxHealth = 35f;
component2.baseRegen = 1f;
component2.levelRegen = 0.33f;
component2.baseMaxShield = 0f;
component2.levelMaxShield = 0f;
component2.baseMoveSpeed = 7f;
component2.levelMoveSpeed = 0f;
component2.baseAcceleration = 110f;
component2.baseJumpPower = 15f;
component2.levelJumpPower = 0f;
component2.baseDamage = 13f;
component2.levelDamage = 2.8f;
component2.baseAttackSpeed = 1.3f;
component2.levelAttackSpeed = 0.02f;
component2.baseCrit = 1f;
component2.levelCrit = 0f;
component2.baseArmor = 20f;
component2.levelArmor = 0f;
component2.baseJumpCount = 1;
component2.sprintingSpeedMultiplier = 1.45f;
component2.wasLucky = false;
component2._defaultCrosshairPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Bandit2/Bandit2CrosshairPrepRevolver.prefab").WaitForCompletion();
component2.hideCrosshair = false;
component2.aimOriginTransform = val3.transform;
component2.hullClassification = (HullClassification)0;
component2.portraitIcon = KatAssets.MainAssetBundle.LoadAsset<Texture>("KatIcon");
component2.isChampion = false;
component2.currentVehicle = null;
component2.skinIndex = 0u;
component2.preferredPodPrefab = LegacyResourcesAPI.Load<GameObject>("prefabs/networkedobjects/robocratepod");
component2.bodyColor = characterColor;
CharacterMotor component3 = characterPrefab.GetComponent<CharacterMotor>();
component3.walkSpeedPenaltyCoefficient = 1f;
component3.characterDirection = component;
component3.muteWalkMotion = false;
component3.mass = 110f;
component3.airControl = 0.25f;
component3.disableAirControlUntilCollision = false;
component3.generateParametersOnAwake = true;
InputBankTest component4 = characterPrefab.GetComponent<InputBankTest>();
component4.moveVector = Vector3.zero;
CharacterCameraParams val4 = ScriptableObject.CreateInstance<CharacterCameraParams>();
val4.data.minPitch = BlendableFloat.op_Implicit(-70f);
val4.data.maxPitch = BlendableFloat.op_Implicit(70f);
val4.data.wallCushion = BlendableFloat.op_Implicit(0.1f);
val4.data.pivotVerticalOffset = BlendableFloat.op_Implicit(0.6f);
val4.data.idealLocalCameraPos = BlendableVector3.op_Implicit(new Vector3(0f, 0f, -10f));
GameObject val5 = new GameObject("CameraPivot");
val5.transform.parent = characterPrefab.transform;
val5.transform.localPosition = new Vector3(0f, 0.5f, 0f);
val5.transform.localRotation = Quaternion.identity;
CameraTargetParams component5 = characterPrefab.GetComponent<CameraTargetParams>();
component5.cameraParams = val4;
component5.cameraPivotTransform = characterPrefab.transform.Find("CameraPivot");
component5.recoil = Vector2.zero;
component5.dontRaycastToPivot = false;
ModelLocator component6 = characterPrefab.GetComponent<ModelLocator>();
component6.modelTransform = transform;
component6.modelBaseTransform = val2.transform;
component6.dontReleaseModelOnDeath = false;
component6.autoUpdateModelTransform = true;
component6.dontDetatchFromParent = false;
component6.noCorpse = false;
component6.normalizeToFloor = false;
component6.preserveModel = false;
ChildLocator component7 = val.GetComponent<ChildLocator>();
CharacterModel val6 = val.AddComponent<CharacterModel>();
SkinnedMeshRenderer[] componentsInChildren = val.GetComponentsInChildren<SkinnedMeshRenderer>();
List<RendererInfo> list = new List<RendererInfo>();
for (int i = 0; i < componentsInChildren.Length; i++)
{
RendererInfo val7 = default(RendererInfo);
val7.renderer = (Renderer)(object)componentsInChildren[i];
val7.defaultMaterial = Utils.InstantiateMaterial(((Renderer)componentsInChildren[i]).material.color, ((Renderer)componentsInChildren[i]).material.GetTexture("_MainTex"), Color.white, 0f, null, 1f, null);
val7.defaultShadowCastingMode = (ShadowCastingMode)1;
val7.ignoreOverlays = false;
RendererInfo item = val7;
list.Add(item);
}
val6.baseRendererInfos = list.ToArray();
val6.autoPopulateLightInfos = true;
val6.invisibilityCount = 0;
val6.temporaryOverlays = new List<TemporaryOverlayInstance>();
Reflection.SetFieldValue<SkinnedMeshRenderer>((object)val6, "mainSkinnedMeshRenderer", componentsInChildren[0]);
SkinnedMeshRenderer fieldValue = Reflection.GetFieldValue<SkinnedMeshRenderer>((object)val6, "mainSkinnedMeshRenderer");
ModelSkinController val8 = val.AddComponent<ModelSkinController>();
LanguageAPI.Add("NINESKATARINABODY_DEFAULT_SKIN_NAME", "Default");
SkinDefInfo val9 = default(SkinDefInfo);
val9.BaseSkins = Array.Empty<SkinDef>();
val9.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
val9.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
val9.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
val9.Icon = LoadoutAPI.CreateSkinIcon(new Color(0.9098039f, 23f / 51f, 0.8901961f), new Color(0.9372549f, 44f / 51f, 56f / 85f), new Color(38f / 85f, 0.38039216f, 0.5254902f), new Color(50f / 51f, 16f / 51f, 49f / 85f));
val9.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
val9.Name = "Default";
val9.NameToken = "Battle Queen";
val9.RendererInfos = val6.baseRendererInfos;
val9.RootObject = val;
val9.UnlockableDef = null;
SkinDef val10 = LoadoutAPI.CreateNewSkinDef(val9);
val8.skins = (SkinDef[])(object)new SkinDef[1] { val10 };
HealthComponent component8 = characterPrefab.GetComponent<HealthComponent>();
component8.health = 110f;
component8.shield = 0f;
component8.barrier = 0f;
component8.magnetiCharge = 0f;
component8.body = null;
component8.dontShowHealthbar = false;
component8.globalDeathEventChanceCoefficient = 1f;
characterPrefab.GetComponent<Interactor>().maxInteractionDistance = 3f;
characterPrefab.GetComponent<InteractionDriver>().highlightInteractor = true;
SfxLocator component9 = characterPrefab.GetComponent<SfxLocator>();
component9.deathSound = "Play_DeathQuote";
component9.barkSound = "";
component9.openSound = "";
component9.landingSound = "Play_char_land";
component9.fallDamageSound = "Play_char_land_fall_damage";
component9.aliveLoopStart = "";
component9.aliveLoopStop = "";
Rigidbody component10 = characterPrefab.GetComponent<Rigidbody>();
component10.mass = 100f;
component10.drag = 0f;
component10.angularDrag = 0f;
component10.useGravity = false;
component10.isKinematic = true;
component10.interpolation = (RigidbodyInterpolation)0;
component10.collisionDetectionMode = (CollisionDetectionMode)0;
component10.constraints = (RigidbodyConstraints)0;
CapsuleCollider component11 = ((Component)component7.FindChild("collider")).GetComponent<CapsuleCollider>();
((Collider)component11).isTrigger = false;
((Collider)component11).material = null;
KinematicCharacterMotor component12 = characterPrefab.GetComponent<KinematicCharacterMotor>();
HurtBoxGroup val11 = val.AddComponent<HurtBoxGroup>();
HurtBox val12 = ((Component)component11).gameObject.AddComponent<HurtBox>();
((Component)val12).gameObject.layer = LayerIndex.entityPrecise.intVal;
val12.healthComponent = component8;
val12.isBullseye = true;
val12.damageModifier = (DamageModifier)0;
val12.hurtBoxGroup = val11;
val12.indexInGroup = 0;
val11.hurtBoxes = (HurtBox[])(object)new HurtBox[1] { val12 };
val11.mainHurtBox = val12;
val11.bullseyeCount = 1;
AimAnimator val13 = val.AddComponent<AimAnimator>();
val13.inputBank = component4;
val13.directionComponent = component;
val13.pitchRangeMax = 55f;
val13.pitchRangeMin = -50f;
val13.yawRangeMin = -44f;
val13.yawRangeMax = 44f;
val13.pitchGiveupRange = 30f;
val13.yawGiveupRange = 10f;
val13.giveupDuration = 8f;
EntityStateMachine component13 = ((Component)component2).GetComponent<EntityStateMachine>();
component13.mainStateType = new SerializableEntityStateType(typeof(CharacterMain));
CharacterDeathBehavior component14 = characterPrefab.GetComponent<CharacterDeathBehavior>();
component14.deathStateMachine = characterPrefab.GetComponent<EntityStateMachine>();
component14.deathState = new SerializableEntityStateType(typeof(GenericCharacterDeath));
EntityStateMachine val14 = characterPrefab.AddComponent<EntityStateMachine>();
val14.customName = "Blade";
val14.initialStateType = new SerializableEntityStateType(typeof(Idle));
val14.mainStateType = new SerializableEntityStateType(typeof(Idle));
EntityStateMachine val15 = characterPrefab.AddComponent<EntityStateMachine>();
val15.customName = "Blink";
val15.initialStateType = new SerializableEntityStateType(typeof(Idle));
val15.mainStateType = new SerializableEntityStateType(typeof(Idle));
EntityStateMachine val16 = characterPrefab.AddComponent<EntityStateMachine>();
val16.customName = "Speen";
val16.initialStateType = new SerializableEntityStateType(typeof(Idle));
val16.mainStateType = new SerializableEntityStateType(typeof(Idle));
EntityStateMachine val17 = characterPrefab.AddComponent<EntityStateMachine>();
val17.customName = "Swipe";
val17.initialStateType = new SerializableEntityStateType(typeof(Idle));
val17.mainStateType = new SerializableEntityStateType(typeof(Idle));
NetworkStateMachine component15 = ((Component)component2).GetComponent<NetworkStateMachine>();
List<EntityStateMachine> list2 = component15.stateMachines.ToList();
list2.Add(val14);
list2.Add(val15);
list2.Add(val16);
list2.Add(val17);
component15.stateMachines = list2.ToArray();
GameObject val18 = Utils.CreateHitbox("Primary", val.transform, new Vector3(3.5f, 4.5f, 3.8f));
val18.transform.localPosition = new Vector3(0f, 1f, 1f);
Utils.CreateHitbox("Utility", val.transform, new Vector3(8f, 8f, 8f));
ContentAddition.AddBody(characterPrefab);
}
private void RegisterCharacter()
{
//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
GameObject val = PrefabAPI.InstantiateClone(((Component)characterPrefab.GetComponent<ModelLocator>().modelBaseTransform).gameObject, "NinesKatarinaDisplay", true);
val.AddComponent<NetworkIdentity>();
string text = "Katarina is a blazing-speed melee assassin who can infinitely reset her abilities so long as there is something to kill.<style=cSub>\r\n\r\n< ! > Using your abilities in the correct order will allow you to reset them more than once against even a single enemy. Experiment with different combos to maximize your damage output and zip around the battlefield.<style=cSub>\r\n\r\n< ! > The fan of daggers from Voracious Blade will not spawn pickups, but are good for dealing with tanky enemies at range.<style=cSub>\r\n\r\n< ! > Shunpo does additional bonus damage based on the target's current % HP and heals you for a portion of that amount. Naturally you'll yield the highest damage/healing output by casting it on full-health targets.<style=cSub>\r\n\r\n< ! > Death lotus targets more enemies the greater attack speed you have and its cooldown is decreased by 4 seconds with each kill.";
string text2 = "..and so she left, her instincts, and her blades honed evermore.";
string text3 = "..and so she stayed, her hubris proving lethal.";
LanguageAPI.Add("NINESKATARINA_NAME", "Katarina");
LanguageAPI.Add("NINESKATARINA_DESCRIPTION", text);
LanguageAPI.Add("NINESKATARINA_SUBTITLE", "The Sinister Blade");
LanguageAPI.Add("NINESKATARINA_OUTRO", text2);
LanguageAPI.Add("NINESKATARINA_FAIL", text3);
SurvivorDef val2 = ScriptableObject.CreateInstance<SurvivorDef>();
val2.cachedName = "NINESKATARINA_NAME";
val2.unlockableDef = null;
val2.descriptionToken = "NINESKATARINA_DESCRIPTION";
val2.primaryColor = characterColor;
val2.bodyPrefab = characterPrefab;
val2.displayPrefab = val;
val2.outroFlavorToken = "NINESKATARINA_OUTRO";
val2.desiredSortPosition = 30f;
val2.mainEndingEscapeFailureFlavorToken = "NINESKATARINA_FAIL";
ContentAddition.AddSurvivorDef(val2);
SkillSetup();
GameObject val3 = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterMasters/CommandoMonsterMaster"), "NinesKatarinaMaster", true);
ContentAddition.AddMaster(val3);
CharacterMaster component = val3.GetComponent<CharacterMaster>();
component.bodyPrefab = characterPrefab;
}
private void RegisterStates()
{
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
//IL_0013: Unknown result type (might be due to invalid IL or missing references)
//IL_001b: Unknown result type (might be due to invalid IL or missing references)
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_003b: Unknown result type (might be due to invalid IL or missing references)
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_0053: Unknown result type (might be due to invalid IL or missing references)
//IL_005b: Unknown result type (might be due to invalid IL or missing references)
bool flag = default(bool);
ContentAddition.AddEntityState<Primary>(ref flag);
ContentAddition.AddEntityState<Secondary>(ref flag);
ContentAddition.AddEntityState<ThrowSingleDagger>(ref flag);
ContentAddition.AddEntityState<ThrowGenjiDaggers>(ref flag);
ContentAddition.AddEntityState<Utility>(ref flag);
ContentAddition.AddEntityState<AltUtility>(ref flag);
ContentAddition.AddEntityState<Blink>(ref flag);
ContentAddition.AddEntityState<BlinkTarget>(ref flag);
ContentAddition.AddEntityState<Special>(ref flag);
ContentAddition.AddEntityState<CharacterMain>(ref flag);
ContentAddition.AddEntityState<BaseDaggerPickupState>(ref flag);
ContentAddition.AddEntityState<DaggerPickupAir>(ref flag);
}
private void SkillSetup()
{
GenericSkill[] componentsInChildren = characterPrefab.GetComponentsInChildren<GenericSkill>();
foreach (GenericSkill val in componentsInChildren)
{
Object.DestroyImmediate((Object)(object)val);
}
PassiveSetup();
PrimarySetup();
SecondarySetup();
ExtraSecondary();
AltUtilitySetup();
ExtraUtility();
SpecialSetup();
}
private void PassiveSetup()
{
SkillLocator component = characterPrefab.GetComponent<SkillLocator>();
LanguageAPI.Add("NINESKATARINA_PASSIVE_NAME", "Voracity");
LanguageAPI.Add("NINESKATARINA_PASSIVE_DESCRIPTION", "Always looking for her next target, Katarina <color=#E92630>resets</color> her ability cooldowns <style=cIsDamage>on-kill</style>. Hitting an enemy with a Voracious Blade will spawn a <color=#E92630>dagger</color> that can be picked up for <style=cIsDamage>500% damage</style>.");
component.passiveSkill.enabled = true;
component.passiveSkill.skillNameToken = "NINESKATARINA_PASSIVE_NAME";
component.passiveSkill.skillDescriptionToken = "NINESKATARINA_PASSIVE_DESCRIPTION";
component.passiveSkill.icon = KatAssets.MainAssetBundle.LoadAsset<Sprite>("Passive1");
}
private void PrimarySetup()
{
//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_007b: Unknown result type (might be due to invalid IL or missing references)
//IL_0144: Unknown result type (might be due to invalid IL or missing references)
//IL_015c: Unknown result type (might be due to invalid IL or missing references)
//IL_0166: Expected O, but got Unknown
//IL_0167: Unknown result type (might be due to invalid IL or missing references)
//IL_0169: Unknown result type (might be due to invalid IL or missing references)
SkillLocator component = characterPrefab.GetComponent<SkillLocator>();
LanguageAPI.Add("NINESKATARINA_M1", "Sinister Steel");
LanguageAPI.Add("NINESKATARINA_M1_DESCRIPTION", "<style=cIsDamage>Slayer.</style> Swipe your blades in front of you for <style=cIsDamage>210% damage.</style>");
SkillDef val = ScriptableObject.CreateInstance<SkillDef>();
val.activationState = new SerializableEntityStateType(typeof(Primary));
val.activationStateMachineName = "Weapon";
val.baseMaxStock = 0;
val.baseRechargeInterval = 0f;
val.beginSkillCooldownOnSkillEnd = true;
val.canceledFromSprinting = false;
val.fullRestockOnAssign = true;
val.interruptPriority = (InterruptPriority)0;
val.isCombatSkill = true;
val.mustKeyPress = false;
val.cancelSprintingOnActivation = true;
val.rechargeStock = 0;
val.requiredStock = 0;
val.stockToConsume = 0;
val.icon = KatAssets.MainAssetBundle.LoadAsset<Sprite>("primary");
val.skillDescriptionToken = "NINESKATARINA_M1_DESCRIPTION";
val.skillName = "NINESKATARINA_M1";
val.skillNameToken = "NINESKATARINA_M1";
val.keywordTokens = new string[1] { "KEYWORD_SLAYER" };
ContentAddition.AddSkillDef(val);
component.primary = characterPrefab.AddComponent<GenericSkill>();
SkillFamily val2 = ScriptableObject.CreateInstance<SkillFamily>();
val2.variants = (Variant[])(object)new Variant[1];
Reflection.SetFieldValue<SkillFamily>((object)component.primary, "_skillFamily", val2);
SkillFamily skillFamily = component.primary.skillFamily;
Variant[] variants = skillFamily.variants;
Variant val3 = new Variant
{
skillDef = val
};
((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null);
variants[0] = val3;
ContentAddition.AddSkillFamily(skillFamily);
}
private void SecondarySetup()
{
//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_007b: Unknown result type (might be due to invalid IL or missing references)
//IL_0137: Unknown result type (might be due to invalid IL or missing references)
//IL_014f: Unknown result type (might be due to invalid IL or missing references)
//IL_0159: Expected O, but got Unknown
//IL_015a: Unknown result type (might be due to invalid IL or missing references)
//IL_015c: Unknown result type (might be due to invalid IL or missing references)
SkillLocator component = characterPrefab.GetComponent<SkillLocator>();
LanguageAPI.Add("NINESKATARINA_M2", "Voracious Blade");
LanguageAPI.Add("NINESKATARINA_M2_DESCRIPTION", "Throw a dagger for <style=cIsDamage>360% damage</style>, or hold to throw a fan of daggers for <style=cIsDamage>5x135% damage</style> that <style=cIsHealth>hemorrhage.</style>");
SkillDef val = ScriptableObject.CreateInstance<SkillDef>();
val.activationState = new SerializableEntityStateType(typeof(Secondary));
val.activationStateMachineName = "Blade";
val.baseMaxStock = 1;
val.baseRechargeInterval = 5.5f;
val.beginSkillCooldownOnSkillEnd = true;
val.canceledFromSprinting = false;
val.fullRestockOnAssign = false;
val.interruptPriority = (InterruptPriority)0;
val.isCombatSkill = true;
val.mustKeyPress = true;
val.cancelSprintingOnActivation = false;
val.rechargeStock = 1;
val.dontAllowPastMaxStocks = true;
val.requiredStock = 1;
val.stockToConsume = 1;
val.icon = KatAssets.MainAssetBundle.LoadAsset<Sprite>("secondary");
val.skillDescriptionToken = "NINESKATARINA_M2_DESCRIPTION";
val.skillName = "NINESKATARINA_M2";
val.skillNameToken = "NINESKATARINA_M2";
ContentAddition.AddSkillDef(val);
component.secondary = characterPrefab.AddComponent<GenericSkill>();
SkillFamily val2 = ScriptableObject.CreateInstance<SkillFamily>();
val2.variants = (Variant[])(object)new Variant[1];
Reflection.SetFieldValue<SkillFamily>((object)component.secondary, "_skillFamily", val2);
SkillFamily skillFamily = component.secondary.skillFamily;
Variant[] variants = skillFamily.variants;
Variant val3 = new Variant
{
skillDef = val
};
((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null);
variants[0] = val3;
ContentAddition.AddSkillFamily(skillFamily);
}
private void ExtraSecondary()
{
//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_007b: 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_0148: Unknown result type (might be due to invalid IL or missing references)
//IL_0152: Expected O, but got Unknown
//IL_0153: Unknown result type (might be due to invalid IL or missing references)
//IL_0155: Unknown result type (might be due to invalid IL or missing references)
ExtraSkillLocator component = characterPrefab.GetComponent<ExtraSkillLocator>();
LanguageAPI.Add("NINESKATARINA_ALT2_SECONDARY", "Preparation");
LanguageAPI.Add("NINESKATARINA_ALT2_SECONDARY_DESCRIPTION", "Swipe your blades around you for <style=cIsDamage>500% damage</style>. Decreases the cooldown of both <color=#E92630>Shunpo</color> techniques by <style=cIsUtility>7 seconds</style>.");
SkillDef val = ScriptableObject.CreateInstance<SkillDef>();
val.activationState = new SerializableEntityStateType(typeof(BaseDaggerPickupState));
val.activationStateMachineName = "Swipe";
val.baseMaxStock = 1;
val.baseRechargeInterval = 6f;
val.beginSkillCooldownOnSkillEnd = false;
val.canceledFromSprinting = false;
val.fullRestockOnAssign = false;
val.interruptPriority = (InterruptPriority)0;
val.isCombatSkill = true;
val.mustKeyPress = true;
val.cancelSprintingOnActivation = false;
val.rechargeStock = 1;
val.requiredStock = 1;
val.stockToConsume = 1;
val.icon = KatAssets.MainAssetBundle.LoadAsset<Sprite>("Preparation");
val.skillDescriptionToken = "NINESKATARINA_ALT2_SECONDARY_DESCRIPTION";
val.skillName = "NINESKATARINA_ALT2_SECONDARY";
val.skillNameToken = "NINESKATARINA_ALT2_SECONDARY";
ContentAddition.AddSkillDef(val);
component.extraSecond = characterPrefab.AddComponent<GenericSkill>();
SkillFamily val2 = ScriptableObject.CreateInstance<SkillFamily>();
val2.variants = (Variant[])(object)new Variant[1];
Reflection.SetFieldValue<SkillFamily>((object)component.extraSecond, "_skillFamily", val2);
SkillFamily skillFamily = component.extraSecond.skillFamily;
Variant[] variants = skillFamily.variants;
Variant val3 = new Variant
{
skillDef = val
};
((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null);
variants[0] = val3;
ContentAddition.AddSkillFamily(skillFamily);
}
private void UtilitySetup()
{
//IL_0028: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0066: 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)
//IL_0135: Unknown result type (might be due to invalid IL or missing references)
//IL_013f: Expected O, but got Unknown
//IL_0140: Unknown result type (might be due to invalid IL or missing references)
//IL_0142: Unknown result type (might be due to invalid IL or missing references)
KatarinaSkillSwitchBehaviour component = characterPrefab.GetComponent<KatarinaSkillSwitchBehaviour>();
SkillLocator component2 = characterPrefab.GetComponent<SkillLocator>();
SkillDef val = ScriptableObject.CreateInstance<SkillDef>();
val.activationState = new SerializableEntityStateType(typeof(Utility));
val.activationStateMachineName = "Blink";
val.baseMaxStock = 1;
val.baseRechargeInterval = 10f;
val.beginSkillCooldownOnSkillEnd = true;
val.canceledFromSprinting = false;
val.fullRestockOnAssign = false;
val.interruptPriority = (InterruptPriority)0;
val.isCombatSkill = false;
val.mustKeyPress = true;
val.cancelSprintingOnActivation = true;
val.rechargeStock = 1;
val.requiredStock = 1;
val.stockToConsume = 1;
val.icon = KatAssets.MainAssetBundle.LoadAsset<Sprite>("utility");
val.skillDescriptionToken = "NINESKATARINA_UTIL_DESCRIPTION";
val.skillName = "NINESKATARINA_UTIL";
val.skillNameToken = "NINESKATARINA_UTIL";
ContentAddition.AddSkillDef(val);
component2.utility = characterPrefab.AddComponent<GenericSkill>();
SkillFamily val2 = ScriptableObject.CreateInstance<SkillFamily>();
val2.variants = (Variant[])(object)new Variant[1];
Reflection.SetFieldValue<SkillFamily>((object)component2.utility, "_skillFamily", val2);
SkillFamily skillFamily = component2.utility.skillFamily;
Variant[] variants = skillFamily.variants;
Variant val3 = new Variant
{
skillDef = val
};
((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null);
variants[0] = val3;
ContentAddition.AddSkillFamily(skillFamily);
}
private void AltUtilitySetup()
{
//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_007b: Unknown result type (might be due to invalid IL or missing references)
//IL_0137: Unknown result type (might be due to invalid IL or missing references)
//IL_014f: Unknown result type (might be due to invalid IL or missing references)
//IL_0159: Expected O, but got Unknown
//IL_015a: Unknown result type (might be due to invalid IL or missing references)
//IL_015c: Unknown result type (might be due to invalid IL or missing references)
SkillLocator component = characterPrefab.GetComponent<SkillLocator>();
LanguageAPI.Add("NINESKATARINAALT_UTIL", "Scheman Shunpo");
LanguageAPI.Add("NINESKATARINAALT_UTIL_DESCRIPTION", "Dash in the <color=#E92630>blink of an eye</color> to target enemy for <style=cIsDamage>260% damage</style>.");
KatarinaSkillDef katarinaSkillDef = ScriptableObject.CreateInstance<KatarinaSkillDef>();
((SkillDef)katarinaSkillDef).activationState = new SerializableEntityStateType(typeof(AltUtility));
((SkillDef)katarinaSkillDef).activationStateMachineName = "Blink";
((SkillDef)katarinaSkillDef).baseMaxStock = 1;
((SkillDef)katarinaSkillDef).baseRechargeInterval = 6.5f;
((SkillDef)katarinaSkillDef).beginSkillCooldownOnSkillEnd = true;
((SkillDef)katarinaSkillDef).canceledFromSprinting = false;
((SkillDef)katarinaSkillDef).fullRestockOnAssign = false;
((SkillDef)katarinaSkillDef).interruptPriority = (InterruptPriority)0;
((SkillDef)katarinaSkillDef).isCombatSkill = false;
((SkillDef)katarinaSkillDef).mustKeyPress = true;
((SkillDef)katarinaSkillDef).cancelSprintingOnActivation = false;
((SkillDef)katarinaSkillDef).rechargeStock = 1;
((SkillDef)katarinaSkillDef).requiredStock = 1;
((SkillDef)katarinaSkillDef).stockToConsume = 1;
((SkillDef)katarinaSkillDef).forceSprintDuringState = true;
((SkillDef)katarinaSkillDef).icon = KatAssets.MainAssetBundle.LoadAsset<Sprite>("utility2");
((SkillDef)katarinaSkillDef).skillDescriptionToken = "NINESKATARINAALT_UTIL_DESCRIPTION";
((SkillDef)katarinaSkillDef).skillName = "NINESKATARINAALT_UTIL";
((SkillDef)katarinaSkillDef).skillNameToken = "NINESKATARINAALT_UTIL";
ContentAddition.AddSkillDef((SkillDef)(object)katarinaSkillDef);
component.utility = characterPrefab.AddComponent<GenericSkill>();
SkillFamily val = ScriptableObject.CreateInstance<SkillFamily>();
val.variants = (Variant[])(object)new Variant[1];
Reflection.SetFieldValue<SkillFamily>((object)component.utility, "_skillFamily", val);
SkillFamily skillFamily = component.utility.skillFamily;
Variant[] variants = skillFamily.variants;
Variant val2 = new Variant
{
skillDef = (SkillDef)(object)katarinaSkillDef
};
((Variant)(ref val2)).viewableNode = new Node(((SkillDef)katarinaSkillDef).skillNameToken, false, (Node)null);
variants[0] = val2;
ContentAddition.AddSkillFamily(skillFamily);
}
private void ExtraUtility()
{
//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_007b: 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_0148: Unknown result type (might be due to invalid IL or missing references)
//IL_0152: Expected O, but got Unknown
//IL_0153: Unknown result type (might be due to invalid IL or missing references)
//IL_0155: Unknown result type (might be due to invalid IL or missing references)
ExtraSkillLocator component = characterPrefab.GetComponent<ExtraSkillLocator>();
LanguageAPI.Add("NINESKATARINA_UTIL", "Noxian Shunpo");
LanguageAPI.Add("NINESKATARINA_UTIL_DESCRIPTION", "Dash in the <color=#E92630>blink of an eye</color> to target location for <style=cIsDamage>260% damage</style>.");
SkillDef val = ScriptableObject.CreateInstance<SkillDef>();
val.activationState = new SerializableEntityStateType(typeof(Utility));
val.activationStateMachineName = "Blink";
val.baseMaxStock = 1;
val.baseRechargeInterval = 9f;
val.beginSkillCooldownOnSkillEnd = true;
val.canceledFromSprinting = false;
val.fullRestockOnAssign = false;
val.interruptPriority = (InterruptPriority)0;
val.isCombatSkill = false;
val.mustKeyPress = true;
val.cancelSprintingOnActivation = true;
val.rechargeStock = 1;
val.requiredStock = 1;
val.stockToConsume = 1;
val.icon = KatAssets.MainAssetBundle.LoadAsset<Sprite>("utility");
val.skillDescriptionToken = "NINESKATARINA_UTIL_DESCRIPTION";
val.skillName = "NINESKATARINA_UTIL";
val.skillNameToken = "NINESKATARINA_UTIL";
ContentAddition.AddSkillDef(val);
component.extraThird = characterPrefab.AddComponent<GenericSkill>();
SkillFamily val2 = ScriptableObject.CreateInstance<SkillFamily>();
val2.variants = (Variant[])(object)new Variant[1];
Reflection.SetFieldValue<SkillFamily>((object)component.extraThird, "_skillFamily", val2);
SkillFamily skillFamily = component.extraThird.skillFamily;
Variant[] variants = skillFamily.variants;
Variant val3 = new Variant
{
skillDef = val
};
((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null);
variants[0] = val3;
ContentAddition.AddSkillFamily(skillFamily);
}
private void SpecialSetup()
{
//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_007b: 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_0148: Unknown result type (might be due to invalid IL or missing references)
//IL_0152: Expected O, but got Unknown
//IL_0153: Unknown result type (might be due to invalid IL or missing references)
//IL_0155: Unknown result type (might be due to invalid IL or missing references)
SkillLocator component = characterPrefab.GetComponent<SkillLocator>();
LanguageAPI.Add("NINESKATARINA_SPEC", "Death Lotus");
LanguageAPI.Add("NINESKATARINA_SPEC_DESCRIPTION", "<style=cIsUtility>Channel for 3 seconds,</style> rapidly throwing daggers at the nearest <style=cIsDamage>5 enemies</style> for <style=cIsDamage>195% damage</style> per dagger.");
SkillDef val = ScriptableObject.CreateInstance<SkillDef>();
val.activationState = new SerializableEntityStateType(typeof(Special));
val.activationStateMachineName = "Body";
val.baseMaxStock = 1;
val.baseRechargeInterval = 45f;
val.beginSkillCooldownOnSkillEnd = true;
val.canceledFromSprinting = true;
val.fullRestockOnAssign = false;
val.interruptPriority = (InterruptPriority)2;
val.isCombatSkill = true;
val.mustKeyPress = true;
val.cancelSprintingOnActivation = false;
val.rechargeStock = 1;
val.requiredStock = 1;
val.stockToConsume = 1;
val.icon = KatAssets.MainAssetBundle.LoadAsset<Sprite>("special");
val.skillDescriptionToken = "NINESKATARINA_SPEC_DESCRIPTION";
val.skillName = "NINESKATARINA_SPEC";
val.skillNameToken = "NINESKATARINA_SPEC";
ContentAddition.AddSkillDef(val);
component.special = characterPrefab.AddComponent<GenericSkill>();
SkillFamily val2 = ScriptableObject.CreateInstance<SkillFamily>();
val2.variants = (Variant[])(object)new Variant[1];
Reflection.SetFieldValue<SkillFamily>((object)component.special, "_skillFamily", val2);
SkillFamily skillFamily = component.special.skillFamily;
Variant[] variants = skillFamily.variants;
Variant val3 = new Variant
{
skillDef = val
};
((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null);
variants[0] = val3;
ContentAddition.AddSkillFamily(skillFamily);
}
}
internal class Prefabs
{
internal static GameObject dagger1ProjectileThrow;
internal static GameObject dagger2ProjectileThrow;
internal static GameObject dagger3ProjectileThrow;
internal static GameObject dagger4ProjectileThrow;
internal static GameObject dagger5ProjectileThrow;
internal static GameObject dagger6ProjectileThrow;
internal static GameObject dagger1ProjectilePickup;
internal static GameObject dagger2ProjectilePickup;
internal static GameObject dagger3ProjectilePickup;
internal static GameObject dagger4ProjectilePickup;
internal static GameObject dagger5ProjectilePickup;
internal static GameObject dagger6ProjectilePickup;
internal static GameObject dagger1ProjectileThrowBleed;
internal static GameObject dagger2ProjectileThrowBleed;
internal static GameObject dagger3ProjectileThrowBleed;
internal static GameObject dagger4ProjectileThrowBleed;
internal static GameObject dagger5ProjectileThrowBleed;
internal static GameObject dagger6ProjectileThrowBleed;
internal static GameObject pickupfx;
internal static GameObject lotusfx;
internal static GameObject altlotusfx;
internal static GameObject shunpofx;
internal static GameObject silentshunpofx;
internal static GameObject silentslashfx;
internal static GameObject silentcollapseEffect;
internal static GameObject aimIndicator;
internal static ModdedDamageType blade1;
internal static ModdedDamageType blade2;
internal static ModdedDamageType blade3;
internal static ModdedDamageType blade4;
internal static ModdedDamageType blade5;
internal static ModdedDamageType blade6;
internal static ModdedDamageType bladeBleed;
internal static ModdedDamageType blink;
internal static ModdedDamageType daggerPickup;
private static float daggerMaxPickupTime = 5.5f;
internal static void CreatePrefabs()
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//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_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_004c: Unknown result type (might be due to invalid IL or missing references)
//IL_0051: Unknown result type (might be due to invalid IL or missing references)
//IL_0056: Unknown result type (might be due to invalid IL or missing references)
//IL_0070: Unknown result type (might be due to invalid IL or missing references)
//IL_0075: Unknown result type (might be due to invalid IL or missing references)
//IL_0084: Unknown result type (might be due to invalid IL or missing references)
//IL_0089: Unknown result type (might be due to invalid IL or missing references)
//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
//IL_00cc: 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_0104: 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_012e: Unknown result type (might be due to invalid IL or missing references)
//IL_0133: Unknown result type (might be due to invalid IL or missing references)
//IL_0139: 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_0199: 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_0222: Unknown result type (might be due to invalid IL or missing references)
//IL_0268: Unknown result type (might be due to invalid IL or missing references)
//IL_02ae: Unknown result type (might be due to invalid IL or missing references)
//IL_02f4: Unknown result type (might be due to invalid IL or missing references)
//IL_0445: Unknown result type (might be due to invalid IL or missing references)
//IL_0510: 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_06a6: Unknown result type (might be due to invalid IL or missing references)
//IL_0771: Unknown result type (might be due to invalid IL or missing references)
//IL_07ba: Unknown result type (might be due to invalid IL or missing references)
//IL_07bf: Unknown result type (might be due to invalid IL or missing references)
//IL_07fc: Unknown result type (might be due to invalid IL or missing references)
//IL_0801: Unknown result type (might be due to invalid IL or missing references)
//IL_083e: Unknown result type (might be due to invalid IL or missing references)
//IL_0843: Unknown result type (might be due to invalid IL or missing references)
//IL_0880: Unknown result type (might be due to invalid IL or missing references)
//IL_0885: Unknown result type (might be due to invalid IL or missing references)
//IL_08a3: Unknown result type (might be due to invalid IL or missing references)
//IL_08a8: Unknown result type (might be due to invalid IL or missing references)
//IL_08e5: Unknown result type (might be due to invalid IL or missing references)
//IL_08ea: Unknown result type (might be due to invalid IL or missing references)
//IL_0927: Unknown result type (might be due to invalid IL or missing references)
//IL_092c: Unknown result type (might be due to invalid IL or missing references)
//IL_0a41: Unknown result type (might be due to invalid IL or missing references)
//IL_0a46: Unknown result type (might be due to invalid IL or missing references)
//IL_0a74: Unknown result type (might be due to invalid IL or missing references)
//IL_0b20: Unknown result type (might be due to invalid IL or missing references)
//IL_0b61: Unknown result type (might be due to invalid IL or missing references)
//IL_0ba2: Unknown result type (might be due to invalid IL or missing references)
//IL_0be3: Unknown result type (might be due to invalid IL or missing references)
//IL_0c24: Unknown result type (might be due to invalid IL or missing references)
//IL_0d3e: Unknown result type (might be due to invalid IL or missing references)
blade1 = DamageAPI.ReserveDamageType();
blade2 = DamageAPI.ReserveDamageType();
blade3 = DamageAPI.ReserveDamageType();
blade4 = DamageAPI.ReserveDamageType();
blade5 = DamageAPI.ReserveDamageType();
blade6 = DamageAPI.ReserveDamageType();
bladeBleed = DamageAPI.ReserveDamageType();
blink = DamageAPI.ReserveDamageType();
daggerPickup = DamageAPI.ReserveDamageType();
OrbAPI.AddOrb(typeof(LotusBladeOrb));
GameObject obj = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Huntress/HuntressArrowRainIndicator.prefab").WaitForCompletion();
GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Bandit2/Bandit2ShivProjectile.prefab").WaitForCompletion(), "BaseProjectile", false);
val.GetComponent<ProjectileDamage>().damageType = DamageTypeCombo.op_Implicit((DamageType)0);
val.GetComponent<ProjectileSingleTargetImpact>().hitSoundString = null;
val.GetComponent<ProjectileSingleTargetImpact>().enemyHitSoundString = null;
aimIndicator = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Huntress/HuntressTrackingIndicator.prefab").WaitForCompletion(), "KatAimIndicator", false);
SpriteRenderer[] componentsInChildren = aimIndicator.GetComponentsInChildren<SpriteRenderer>();
float num = default(float);
float num2 = default(float);
float num3 = default(float);
float num4 = default(float);
float num5 = default(float);
float num6 = default(float);
foreach (SpriteRenderer val2 in componentsInChildren)
{
Color.RGBToHSV(Color.magenta, ref num, ref num2, ref num3);
Color.RGBToHSV(val2.color, ref num4, ref num5, ref num6);
Color color = Color.HSVToRGB(num, num5, num6);
color.a = val2.color.a;
val2.color = color;
}
GameObject val3 = PrefabAPI.InstantiateClone(KatAssets.MainAssetBundle.LoadAsset<GameObject>("dagger1fab"), "KatarinaBlade1ProjectileGhost", false);
val3.AddComponent<ProjectileGhostController>();
Utils.CreateNewColoredIndicator(obj, val3.transform, new Color(1f, 0f, 0.7921569f));
GameObject val4 = PrefabAPI.InstantiateClone(KatAssets.MainAssetBundle.LoadAsset<GameObject>("dagger2fab"), "KatarinaBlade2ProjectileGhost", false);
val4.AddComponent<ProjectileGhostController>();
Utils.CreateNewColoredIndicator(obj, val4.transform, new Color(0.5921569f, 0f, 82f / 85f));
GameObject val5 = PrefabAPI.InstantiateClone(KatAssets.MainAssetBundle.LoadAsset<GameObject>("dagger3fab"), "KatarinaBlade3ProjectileGhost", false);
val5.AddComponent<ProjectileGhostController>();
Utils.CreateNewColoredIndicator(obj, val5.transform, new Color(0f, 82f / 85f, 7f / 85f));
GameObject val6 = PrefabAPI.InstantiateClone(KatAssets.MainAssetBundle.LoadAsset<GameObject>("dagger4fab"), "KatarinaBlade4ProjectileGhost", false);
val6.AddComponent<ProjectileGhostController>();
Utils.CreateNewColoredIndicator(obj, val6.transform, new Color(1f, 0f, 0f));
GameObject val7 = PrefabAPI.InstantiateClone(KatAssets.MainAssetBundle.LoadAsset<GameObject>("dagger5fab"), "KatarinaBlade5ProjectileGhost", false);
val7.AddComponent<ProjectileGhostController>();
Utils.CreateNewColoredIndicator(obj, val7.transform, new Color(2f / 85f, 52f / 85f, 1f));
GameObject val8 = PrefabAPI.InstantiateClone(KatAssets.MainAssetBundle.LoadAsset<GameObject>("dagger6fab"), "KatarinaBlade6ProjectileGhost", false);
val8.AddComponent<ProjectileGhostController>();
Utils.CreateNewColoredIndicator(obj, val8.transform, new Color(0.20784314f, 0.031372547f, 0.5372549f));
dagger1ProjectilePickup = PrefabAPI.InstantiateClone(val, "KatarinaBlade1ProjectilePickup", true);
dagger1ProjectilePickup.GetComponent<ProjectileController>().ghostPrefab = val3;
dagger1ProjectilePickup.GetComponent<ProjectileStickOnImpact>().ignoreCharacters = true;
dagger1ProjectilePickup.GetComponent<ProjectileStickOnImpact>().stickSoundS