using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using I2.Loc;
using Microsoft.CodeAnalysis;
using NineSolsAPI;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.SceneManagement;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("EigongPrime")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyDescription("Mods Eigong to be harder, she chains moves a lot more now and the talisman follow ups now show up on phase 1")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+8540a3c0b7c87ee3a8a705ad9173a6ebff1917ba")]
[assembly: AssemblyProduct("EigongPrime")]
[assembly: AssemblyTitle("EigongPrime")]
[assembly: AssemblyVersion("1.0.0.0")]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
internal sealed class NullableAttribute : Attribute
{
public readonly byte[] NullableFlags;
public NullableAttribute(byte P_0)
{
NullableFlags = new byte[1] { P_0 };
}
public NullableAttribute(byte[] P_0)
{
NullableFlags = P_0;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
internal sealed class NullableContextAttribute : Attribute
{
public readonly byte Flag;
public NullableContextAttribute(byte P_0)
{
Flag = P_0;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
internal sealed class RefSafetyRulesAttribute : Attribute
{
public readonly int Version;
public RefSafetyRulesAttribute(int P_0)
{
Version = P_0;
}
}
}
namespace EigongPrime
{
internal class ColorChange
{
private GameObject eigongSpriteHolder;
private _2dxFX_ColorChange eigongCurrentHueValue;
private GameObject eigongCutsceneDummySpriteHolder;
private _2dxFX_ColorChange eigongCutsceneDummyCurrentHueValue;
private GameObject eigongSwordSpriteHolder;
private _2dxFX_ColorChange eigongSwordCurrentHueValue;
private GameObject eigongSwordCutsceneSpriteHolder;
private _2dxFX_ColorChange eigongSwordCutsceneCurrentHueValue;
private GameObject eigongFooSpriteHolder;
private _2dxFX_ColorChange eigongFooCurrentHueValue;
public int dontspamstuffwow2;
public void RecolorSprite()
{
if (dontspamstuffwow2 == 0)
{
eigongSpriteHolder = GameObject.Find("GameLevel/Room/Prefab/EventBinder/General Boss Fight FSM Object Variant/FSM Animator/LogicRoot/---Boss---/Boss_Yi Gung/MonsterCore/Animator(Proxy)/Animator/View/YiGung/Body");
eigongSpriteHolder.AddComponent<_2dxFX_ColorChange>();
eigongCurrentHueValue = eigongSpriteHolder.GetComponent<_2dxFX_ColorChange>();
eigongSwordSpriteHolder = GameObject.Find("GameLevel/Room/Prefab/EventBinder/General Boss Fight FSM Object Variant/FSM Animator/LogicRoot/---Boss---/Boss_Yi Gung/MonsterCore/Animator(Proxy)/Animator/View/YiGung/Weapon/Sword/Sword Sprite");
eigongSwordSpriteHolder.AddComponent<_2dxFX_ColorChange>();
eigongSwordCurrentHueValue = eigongSwordSpriteHolder.GetComponent<_2dxFX_ColorChange>();
eigongFooSpriteHolder = GameObject.Find("GameLevel/Room/Prefab/EventBinder/General Boss Fight FSM Object Variant/FSM Animator/LogicRoot/---Boss---/Boss_Yi Gung/MonsterCore/Animator(Proxy)/Animator/View/YiGung/Weapon/Foo/FooSprite");
eigongFooSpriteHolder.AddComponent<_2dxFX_ColorChange>();
eigongFooCurrentHueValue = eigongFooSpriteHolder.GetComponent<_2dxFX_ColorChange>();
eigongCutsceneDummySpriteHolder = GameObject.Find("GameLevel/Room/Prefab/EventBinder/General Boss Fight FSM Object Variant/FSM Animator/[CutScene] 二進/YiGung_Dummy/View/YiGung/Body");
eigongCutsceneDummySpriteHolder.AddComponent<_2dxFX_ColorChange>();
eigongCutsceneDummyCurrentHueValue = eigongCutsceneDummySpriteHolder.GetComponent<_2dxFX_ColorChange>();
eigongSwordCutsceneSpriteHolder = GameObject.Find("GameLevel/Room/Prefab/EventBinder/General Boss Fight FSM Object Variant/FSM Animator/[CutScene] 二進/YiGung_Dummy/View/YiGung/Weapon/Sword/Sword Sprite");
eigongSwordCutsceneSpriteHolder.AddComponent<_2dxFX_ColorChange>();
eigongSwordCutsceneCurrentHueValue = eigongSwordCutsceneSpriteHolder.GetComponent<_2dxFX_ColorChange>();
eigongCurrentHueValue._HueShift = 130f;
eigongCutsceneDummyCurrentHueValue._HueShift = 130f;
eigongSwordCurrentHueValue._HueShift = 250f;
eigongSwordCutsceneCurrentHueValue._HueShift = 250f;
eigongFooCurrentHueValue._HueShift = 250f;
dontspamstuffwow2++;
}
}
}
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInPlugin("EigongPrime", "EigongPrime", "1.0.0")]
public class EigongPrime : BaseUnityPlugin
{
private Harmony harmony;
private ColorChange colorChange;
private string eigongAttackStatesPath = "";
private LinkNextMoveStateWeight StunLinkStateWeight;
private LinkNextMoveStateWeight StunPhase2LinkStateWeight;
private LinkNextMoveStateWeight StunPhase3LinkStateWeight;
private LinkNextMoveStateWeight TeleportToTopLinkStateWeight;
private LinkNextMoveStateWeight TeleportToTopPhase2LinkStateWeight;
private LinkNextMoveStateWeight TeleportToTopPhase3LinkStateWeight;
private LinkNextMoveStateWeight TeleportForwardLinkStateWeight;
private LinkNextMoveStateWeight TeleportForwardPhase2LinkStateWeight;
private LinkNextMoveStateWeight TeleportForwardPhase3LinkStateWeight;
private LinkNextMoveStateWeight TeleportToBackLinkStateWeight;
private LinkNextMoveStateWeight TeleportToBackPhase2LinkStateWeight;
private LinkNextMoveStateWeight TeleportToBackPhase3LinkStateWeight;
private LinkNextMoveStateWeight SlowStartLinkStateWeight;
private LinkNextMoveStateWeight PokeLinkStateWeight;
private LinkNextMoveStateWeight CrossUpLinkStateWeight;
private LinkNextMoveStateWeight UnsheatheLinkStateWeight;
private LinkNextMoveStateWeight FooCharmLinkStateWeight;
private LinkNextMoveStateWeight CrimsonSlamLinkStateWeight;
private LinkNextMoveStateWeight DunkLinkStateWeight;
private LinkNextMoveStateWeight WindBladePhase1LinkStateWeight;
private LinkNextMoveStateWeight SlowStartPhase2LinkStateWeight;
private LinkNextMoveStateWeight PokePhase2LinkStateWeight;
private LinkNextMoveStateWeight CrossUpPhase2LinkStateWeight;
private LinkNextMoveStateWeight CrimsonSlamPhase2LinkStateWeight;
private LinkNextMoveStateWeight FooCharmPhase2LinkStateWeight;
private LinkNextMoveStateWeight FooFollowUp0LinkStateWeight;
private LinkNextMoveStateWeight FooFollowUp1LinkStateWeight;
private LinkNextMoveStateWeight UnsheathePhase2LinkStateWeight;
private LinkNextMoveStateWeight WindBladeLinkStateWeight;
private LinkNextMoveStateWeight FooCharmPhase3LinkStateWeight;
private LinkNextMoveStateWeight WindBladePhase3LinkStateWeight;
private LinkNextMoveStateWeight UnsheathePhase3LinkStateWeight;
private LinkNextMoveStateWeight JudgementCutLinkStateWeight;
private LinkNextMoveStateWeight RegularJudgementCutLinkStateWeight;
private BossGeneralState TeleportToTopBossGeneralState;
private BossGeneralState TeleportForwardBossGeneralState;
private BossGeneralState TeleportToBackBossGeneralState;
private BossGeneralState SlowStartBossGeneralState;
private BossGeneralState UnsheatheBossGeneralState;
private BossGeneralState CrossUpBossGeneralState;
private BossGeneralState triplePokeBossGeneralState;
private BossGeneralState FooCharmBossGeneralState;
private BossGeneralState QuickFooBossGeneralState;
private BossGeneralState DunkBossGeneralState;
private BossGeneralState CrimsonSlamBossGeneralState;
private BossGeneralState WindBladeBossGeneralState;
private BossGeneralState ActualWindBladeBossGeneralState;
private BossGeneralState FooFollowUp0BossGeneralState;
private BossGeneralState FooFollowUp1BossGeneralState;
private BossGeneralState JudgementCutBossGeneralState;
private BossGeneralState RegularJudgementCutBossGeneralState;
private GameObject fireTrail;
private int dontspamstuffwow;
private ConfigEntry<float> EigongHPScale;
private ConfigEntry<bool> IsRandom;
private ConfigEntry<int> IsRandomMinimumAttackAmount;
private ConfigEntry<int> IsRandomMaximumAttackAmount;
private ConfigEntry<bool> EnableBackGroundChange;
private ConfigEntry<bool> EnableBetaYiTheme;
private bool hasRandomLoopRan;
public static SpriteRenderer Black;
public static SpriteRenderer Black2;
public static SpriteRenderer Blue;
public static SpriteRenderer Red;
public static SpriteRenderer Green;
private AmbienceSource BGM;
public void Awake()
{
//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
//IL_00c0: Expected O, but got Unknown
//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
//IL_00f3: Expected O, but got Unknown
Log.Init(((BaseUnityPlugin)this).Logger);
RCGLifeCycle.DontDestroyForever(((Component)this).gameObject);
harmony = Harmony.CreateAndPatchAll(typeof(EigongPrime).Assembly, (string)null);
((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin EigongPrime is loaded!");
colorChange = new ColorChange();
EigongHPScale = ((BaseUnityPlugin)this).Config.Bind<float>("General", "EigongHPScale", 1f, "The scale for Eigong's HP, 1 is regular HP amount");
IsRandom = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "IsRandom", false, "If true, randomizes Eigong Prime's moveset every time you enter her arena");
IsRandomMinimumAttackAmount = ((BaseUnityPlugin)this).Config.Bind<int>("General", "IsRandomMinimumAttackAmount", 1, new ConfigDescription("The minimum amount of follow-ups that can be given to a move when randomized", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 12), Array.Empty<object>()));
IsRandomMaximumAttackAmount = ((BaseUnityPlugin)this).Config.Bind<int>("General", "IsRandomMaximumAttackAmount", 6, new ConfigDescription("The maximum amount of follow-ups that can be given to a move when randomized", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 12), Array.Empty<object>()));
EnableBackGroundChange = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "EnableBackgroundChange", true, "If enabled, Eigong's background will change according to the fight's progress");
EnableBetaYiTheme = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "EnableBetaYiTheme", true, "If enabled, Yi's theme will be swapped with the beta version");
}
public void Update()
{
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
//IL_0019: Unknown result type (might be due to invalid IL or missing references)
//IL_001e: Unknown result type (might be due to invalid IL or missing references)
//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
//IL_00c5: Expected O, but got Unknown
Scene activeScene = SceneManager.GetActiveScene();
if (!(((Scene)(ref activeScene)).name == "A11_S0_Boss_YiGung"))
{
activeScene = SceneManager.GetActiveScene();
if (!(((Scene)(ref activeScene)).name == "A11_S0_Boss_YiGung_回蓬萊"))
{
goto IL_00c5;
}
}
colorChange.RecolorSprite();
EigongHPChange();
HandleBGM();
HandleBackground();
GetAttackGameObjects();
AlterAttacks();
if ((Object)(object)SingletonBehaviour<MonsterManager>.Instance.ClosetMonster.currentMonsterState == (Object)(object)TeleportForwardBossGeneralState && SingletonBehaviour<MonsterManager>.Instance.ClosetMonster.PhaseIndex != 0)
{
fireTrail.SetActive(false);
}
else
{
fireTrail.SetActive(true);
}
Player.i.PlayerDeadState.OnReviveEvent.AddListener(new UnityAction(ResetFlags));
goto IL_00c5;
IL_00c5:
if (ApplicationCore.IsInBossMemoryMode && (Object)(object)SingletonBehaviour<MonsterManager>.Instance.ClosetMonster == (Object)null)
{
ResetFlags();
}
}
public void ResetFlags()
{
colorChange.dontspamstuffwow2 = 0;
hasRandomLoopRan = false;
}
private void HandleBGM()
{
if (!EnableBetaYiTheme.Value)
{
return;
}
BGM = GameObject.Find("GameLevel/Room/Prefab/EventBinder/General Boss Fight FSM Object Variant/FSM Animator/LogicRoot/Boss三階BGM/BGM_Boss_A11_P3").GetComponent<AmbienceSource>();
BGM.ambPair.sound = "BGM_Boss_A11_P2";
if ((Object)(object)SingletonBehaviour<MonsterManager>.Instance.ClosetMonster.currentMonsterState == (Object)(object)SingletonBehaviour<MonsterManager>.Instance.ClosetMonster.GetState((States)146) && SingletonBehaviour<MonsterManager>.Instance.ClosetMonster.PhaseIndex == 1)
{
((MonoBehaviour)this).StartCoroutine(PlaySongAfterTime(5f));
if (Player.i.health.CurrentHealthValue <= 0f)
{
((MonoBehaviour)this).StopAllCoroutines();
}
}
}
private IEnumerator PlaySongAfterTime(float time)
{
yield return (object)new WaitForSeconds(time);
BGM.Play();
}
private void HandleBackground()
{
//IL_0091: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Unknown result type (might be due to invalid IL or missing references)
//IL_0097: Unknown result type (might be due to invalid IL or missing references)
//IL_009d: Invalid comparison between Unknown and I4
//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
//IL_00a8: Invalid comparison between Unknown and I4
//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
//IL_00b3: Invalid comparison between Unknown and I4
if (!EnableBackGroundChange.Value || (Object)(object)SingletonBehaviour<MonsterManager>.Instance.ClosetMonster == (Object)null)
{
return;
}
Black = GameObject.Find("GameLevel/CameraCore/DockObj/全畫面遮色/Fade/Black").GetComponent<SpriteRenderer>();
Black2 = GameObject.Find("GameLevel/CameraCore/DockObj/全畫面遮色/Fade/Black/Black (1)").GetComponent<SpriteRenderer>();
Blue = GameObject.Find("GameLevel/CameraCore/DockObj/全畫面遮色/Fade/Blue").GetComponent<SpriteRenderer>();
Red = GameObject.Find("GameLevel/CameraCore/DockObj/全畫面遮色/Fade/Red").GetComponent<SpriteRenderer>();
Green = GameObject.Find("GameLevel/CameraCore/DockObj/全畫面遮色/Fade/Green").GetComponent<SpriteRenderer>();
States currentState = SingletonBehaviour<MonsterManager>.Instance.ClosetMonster.CurrentState;
if ((int)currentState != 131)
{
if ((int)currentState != 146)
{
if ((int)currentState == 152 && SingletonBehaviour<MonsterManager>.Instance.ClosetMonster.PhaseIndex == 0)
{
((MonoBehaviour)this).StartCoroutine(FadeSpriteOut(Black, 1f));
((MonoBehaviour)this).StartCoroutine(FadeSpriteOut(Black2, 1f));
((MonoBehaviour)this).StartCoroutine(FadeSpriteOut(Blue, 1f));
((MonoBehaviour)this).StartCoroutine(FadeSpriteOut(Red, 1f));
((MonoBehaviour)this).StartCoroutine(FadeSpriteOut(Green, 1f));
}
}
else
{
((MonoBehaviour)this).StartCoroutine(FadeSpriteIn(Red, 10f));
((MonoBehaviour)this).StartCoroutine(FadeSpriteOut(Blue, 6f));
((MonoBehaviour)this).StartCoroutine(FadeSpriteOut(Green, 8f));
}
}
else
{
((MonoBehaviour)this).StartCoroutine(FadeSpriteIn(Blue, 5f));
((MonoBehaviour)this).StartCoroutine(FadeSpriteIn(Green, 6f));
}
}
private void EigongHPChange()
{
AccessTools.FieldRefAccess<MonsterStat, float>("BaseHealthValue").Invoke(SingletonBehaviour<MonsterManager>.Instance.ClosetMonster.monsterStat) = 7000f * EigongHPScale.Value;
if (dontspamstuffwow == 0 && (Object)(object)SingletonBehaviour<MonsterManager>.Instance.ClosetMonster != (Object)null)
{
if (ApplicationCore.IsInBossMemoryMode)
{
SingletonBehaviour<MonsterManager>.Instance.ClosetMonster.postureSystem.CurrentHealthValue = 8000f * EigongHPScale.Value * SingletonBehaviour<MonsterManager>.Instance.ClosetMonster.monsterCore.monsterBase.monsterStat.BossMemoryHealthScale;
}
else
{
SingletonBehaviour<MonsterManager>.Instance.ClosetMonster.postureSystem.CurrentHealthValue = 8000f * EigongHPScale.Value;
}
if (EigongHPScale.Value != 1f)
{
ToastManager.Toast((object)$"Eigong's base HP changed to {7000f * EigongHPScale.Value}");
}
dontspamstuffwow++;
}
SingletonBehaviour<MonsterManager>.Instance.ClosetMonster.monsterStat.Phase2HealthRatio = 2f;
SingletonBehaviour<MonsterManager>.Instance.ClosetMonster.monsterStat.Phase3HealthRatio = 1.5f;
}
public void AlterAttacks()
{
//IL_0002: 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_003c: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: Unknown result type (might be due to invalid IL or missing references)
//IL_0076: Unknown result type (might be due to invalid IL or missing references)
//IL_0093: Unknown result type (might be due to invalid IL or missing references)
//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
//IL_00cd: Unknown result type (might be due to invalid IL or missing references)
//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
//IL_0107: Unknown result type (might be due to invalid IL or missing references)
//IL_0124: Unknown result type (might be due to invalid IL or missing references)
//IL_0141: Unknown result type (might be due to invalid IL or missing references)
//IL_015e: Unknown result type (might be due to invalid IL or missing references)
//IL_017b: Unknown result type (might be due to invalid IL or missing references)
//IL_0198: Unknown result type (might be due to invalid IL or missing references)
//IL_01b5: 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_01f6: Unknown result type (might be due to invalid IL or missing references)
//IL_01f7: Unknown result type (might be due to invalid IL or missing references)
//IL_01fe: Unknown result type (might be due to invalid IL or missing references)
//IL_01ff: Unknown result type (might be due to invalid IL or missing references)
//IL_0206: 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_020e: Unknown result type (might be due to invalid IL or missing references)
//IL_020f: Unknown result type (might be due to invalid IL or missing references)
//IL_0216: Unknown result type (might be due to invalid IL or missing references)
//IL_0218: 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_0221: Unknown result type (might be due to invalid IL or missing references)
//IL_0228: Unknown result type (might be due to invalid IL or missing references)
//IL_022a: Unknown result type (might be due to invalid IL or missing references)
//IL_0231: Unknown result type (might be due to invalid IL or missing references)
//IL_0233: Unknown result type (might be due to invalid IL or missing references)
//IL_023a: Unknown result type (might be due to invalid IL or missing references)
//IL_023c: Unknown result type (might be due to invalid IL or missing references)
//IL_0244: Unknown result type (might be due to invalid IL or missing references)
//IL_0246: Unknown result type (might be due to invalid IL or missing references)
//IL_024e: Unknown result type (might be due to invalid IL or missing references)
//IL_0250: 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_025a: Unknown result type (might be due to invalid IL or missing references)
//IL_044b: Unknown result type (might be due to invalid IL or missing references)
//IL_044c: Unknown result type (might be due to invalid IL or missing references)
//IL_0453: Unknown result type (might be due to invalid IL or missing references)
//IL_0454: Unknown result type (might be due to invalid IL or missing references)
//IL_045b: Unknown result type (might be due to invalid IL or missing references)
//IL_045d: Unknown result type (might be due to invalid IL or missing references)
//IL_0477: Unknown result type (might be due to invalid IL or missing references)
//IL_0479: 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_0481: Unknown result type (might be due to invalid IL or missing references)
//IL_0488: Unknown result type (might be due to invalid IL or missing references)
//IL_048a: Unknown result type (might be due to invalid IL or missing references)
//IL_0491: Unknown result type (might be due to invalid IL or missing references)
//IL_0493: Unknown result type (might be due to invalid IL or missing references)
//IL_049a: Unknown result type (might be due to invalid IL or missing references)
//IL_049b: Unknown result type (might be due to invalid IL or missing references)
//IL_04a2: Unknown result type (might be due to invalid IL or missing references)
//IL_04a3: Unknown result type (might be due to invalid IL or missing references)
//IL_04bd: Unknown result type (might be due to invalid IL or missing references)
//IL_04bf: Unknown result type (might be due to invalid IL or missing references)
//IL_04c6: Unknown result type (might be due to invalid IL or missing references)
//IL_04c8: Unknown result type (might be due to invalid IL or missing references)
//IL_04cf: Unknown result type (might be due to invalid IL or missing references)
//IL_04d0: Unknown result type (might be due to invalid IL or missing references)
//IL_04ea: Unknown result type (might be due to invalid IL or missing references)
//IL_04ec: Unknown result type (might be due to invalid IL or missing references)
//IL_04f3: Unknown result type (might be due to invalid IL or missing references)
//IL_04f5: Unknown result type (might be due to invalid IL or missing references)
//IL_04fc: Unknown result type (might be due to invalid IL or missing references)
//IL_04fd: Unknown result type (might be due to invalid IL or missing references)
//IL_0517: Unknown result type (might be due to invalid IL or missing references)
//IL_0519: Unknown result type (might be due to invalid IL or missing references)
//IL_0520: Unknown result type (might be due to invalid IL or missing references)
//IL_0522: Unknown result type (might be due to invalid IL or missing references)
//IL_0529: Unknown result type (might be due to invalid IL or missing references)
//IL_052b: Unknown result type (might be due to invalid IL or missing references)
//IL_0532: Unknown result type (might be due to invalid IL or missing references)
//IL_0534: Unknown result type (might be due to invalid IL or missing references)
//IL_054e: Unknown result type (might be due to invalid IL or missing references)
//IL_0550: Unknown result type (might be due to invalid IL or missing references)
//IL_0557: Unknown result type (might be due to invalid IL or missing references)
//IL_0559: Unknown result type (might be due to invalid IL or missing references)
//IL_0560: Unknown result type (might be due to invalid IL or missing references)
//IL_0561: Unknown result type (might be due to invalid IL or missing references)
//IL_057b: Unknown result type (might be due to invalid IL or missing references)
//IL_057d: Unknown result type (might be due to invalid IL or missing references)
//IL_0584: Unknown result type (might be due to invalid IL or missing references)
//IL_0586: Unknown result type (might be due to invalid IL or missing references)
//IL_058d: Unknown result type (might be due to invalid IL or missing references)
//IL_058f: Unknown result type (might be due to invalid IL or missing references)
//IL_0596: Unknown result type (might be due to invalid IL or missing references)
//IL_0597: Unknown result type (might be due to invalid IL or missing references)
//IL_059e: Unknown result type (might be due to invalid IL or missing references)
//IL_05a0: Unknown result type (might be due to invalid IL or missing references)
//IL_05a7: Unknown result type (might be due to invalid IL or missing references)
//IL_05a8: Unknown result type (might be due to invalid IL or missing references)
//IL_05af: Unknown result type (might be due to invalid IL or missing references)
//IL_05b0: Unknown result type (might be due to invalid IL or missing references)
//IL_05ca: Unknown result type (might be due to invalid IL or missing references)
//IL_05cc: Unknown result type (might be due to invalid IL or missing references)
//IL_05d3: Unknown result type (might be due to invalid IL or missing references)
//IL_05d4: 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_05dd: Unknown result type (might be due to invalid IL or missing references)
//IL_05e4: Unknown result type (might be due to invalid IL or missing references)
//IL_05e6: 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_05ef: Unknown result type (might be due to invalid IL or missing references)
//IL_0609: Unknown result type (might be due to invalid IL or missing references)
//IL_060a: Unknown result type (might be due to invalid IL or missing references)
//IL_0611: Unknown result type (might be due to invalid IL or missing references)
//IL_0613: Unknown result type (might be due to invalid IL or missing references)
//IL_062d: Unknown result type (might be due to invalid IL or missing references)
//IL_062f: Unknown result type (might be due to invalid IL or missing references)
//IL_0636: Unknown result type (might be due to invalid IL or missing references)
//IL_0637: Unknown result type (might be due to invalid IL or missing references)
//IL_063e: Unknown result type (might be due to invalid IL or missing references)
//IL_0640: Unknown result type (might be due to invalid IL or missing references)
//IL_0647: Unknown result type (might be due to invalid IL or missing references)
//IL_0649: Unknown result type (might be due to invalid IL or missing references)
//IL_0650: Unknown result type (might be due to invalid IL or missing references)
//IL_0651: Unknown result type (might be due to invalid IL or missing references)
//IL_066b: Unknown result type (might be due to invalid IL or missing references)
//IL_066d: Unknown result type (might be due to invalid IL or missing references)
//IL_0674: Unknown result type (might be due to invalid IL or missing references)
//IL_0676: Unknown result type (might be due to invalid IL or missing references)
//IL_067d: Unknown result type (might be due to invalid IL or missing references)
//IL_067f: Unknown result type (might be due to invalid IL or missing references)
//IL_0686: Unknown result type (might be due to invalid IL or missing references)
//IL_0688: Unknown result type (might be due to invalid IL or missing references)
//IL_068f: 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_0697: Unknown result type (might be due to invalid IL or missing references)
//IL_0698: Unknown result type (might be due to invalid IL or missing references)
//IL_06b2: Unknown result type (might be due to invalid IL or missing references)
//IL_06b4: Unknown result type (might be due to invalid IL or missing references)
//IL_06bb: Unknown result type (might be due to invalid IL or missing references)
//IL_06bc: Unknown result type (might be due to invalid IL or missing references)
//IL_06c3: Unknown result type (might be due to invalid IL or missing references)
//IL_06c5: Unknown result type (might be due to invalid IL or missing references)
//IL_06cc: Unknown result type (might be due to invalid IL or missing references)
//IL_06ce: Unknown result type (might be due to invalid IL or missing references)
//IL_06d5: Unknown result type (might be due to invalid IL or missing references)
//IL_06d6: Unknown result type (might be due to invalid IL or missing references)
//IL_06dd: Unknown result type (might be due to invalid IL or missing references)
//IL_06df: Unknown result type (might be due to invalid IL or missing references)
//IL_06e6: Unknown result type (might be due to invalid IL or missing references)
//IL_06e8: Unknown result type (might be due to invalid IL or missing references)
//IL_06ef: Unknown result type (might be due to invalid IL or missing references)
//IL_06f1: Unknown result type (might be due to invalid IL or missing references)
//IL_070b: Unknown result type (might be due to invalid IL or missing references)
//IL_070d: Unknown result type (might be due to invalid IL or missing references)
//IL_0714: Unknown result type (might be due to invalid IL or missing references)
//IL_0716: Unknown result type (might be due to invalid IL or missing references)
//IL_071d: Unknown result type (might be due to invalid IL or missing references)
//IL_071e: Unknown result type (might be due to invalid IL or missing references)
//IL_0725: Unknown result type (might be due to invalid IL or missing references)
//IL_0727: Unknown result type (might be due to invalid IL or missing references)
//IL_072e: Unknown result type (might be due to invalid IL or missing references)
//IL_0730: Unknown result type (might be due to invalid IL or missing references)
//IL_074a: Unknown result type (might be due to invalid IL or missing references)
//IL_074c: 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_0755: Unknown result type (might be due to invalid IL or missing references)
//IL_075c: Unknown result type (might be due to invalid IL or missing references)
//IL_075d: Unknown result type (might be due to invalid IL or missing references)
//IL_0764: Unknown result type (might be due to invalid IL or missing references)
//IL_0766: Unknown result type (might be due to invalid IL or missing references)
//IL_076d: Unknown result type (might be due to invalid IL or missing references)
//IL_076f: Unknown result type (might be due to invalid IL or missing references)
//IL_0789: Unknown result type (might be due to invalid IL or missing references)
//IL_078b: Unknown result type (might be due to invalid IL or missing references)
//IL_0792: Unknown result type (might be due to invalid IL or missing references)
//IL_0794: Unknown result type (might be due to invalid IL or missing references)
//IL_079b: Unknown result type (might be due to invalid IL or missing references)
//IL_079c: Unknown result type (might be due to invalid IL or missing references)
//IL_07a3: Unknown result type (might be due to invalid IL or missing references)
//IL_07a4: Unknown result type (might be due to invalid IL or missing references)
//IL_07ab: Unknown result type (might be due to invalid IL or missing references)
//IL_07ad: Unknown result type (might be due to invalid IL or missing references)
//IL_07c8: Unknown result type (might be due to invalid IL or missing references)
//IL_07ca: Unknown result type (might be due to invalid IL or missing references)
//IL_07d1: Unknown result type (might be due to invalid IL or missing references)
//IL_07d3: Unknown result type (might be due to invalid IL or missing references)
//IL_07da: Unknown result type (might be due to invalid IL or missing references)
//IL_07db: Unknown result type (might be due to invalid IL or missing references)
//IL_07e2: Unknown result type (might be due to invalid IL or missing references)
//IL_07e4: Unknown result type (might be due to invalid IL or missing references)
//IL_07eb: Unknown result type (might be due to invalid IL or missing references)
//IL_07ec: Unknown result type (might be due to invalid IL or missing references)
//IL_07f3: Unknown result type (might be due to invalid IL or missing references)
//IL_07f4: Unknown result type (might be due to invalid IL or missing references)
//IL_07fb: Unknown result type (might be due to invalid IL or missing references)
//IL_07fd: Unknown result type (might be due to invalid IL or missing references)
//IL_0804: Unknown result type (might be due to invalid IL or missing references)
//IL_0806: Unknown result type (might be due to invalid IL or missing references)
//IL_080d: Unknown result type (might be due to invalid IL or missing references)
//IL_080f: Unknown result type (might be due to invalid IL or missing references)
//IL_0829: Unknown result type (might be due to invalid IL or missing references)
//IL_082a: Unknown result type (might be due to invalid IL or missing references)
//IL_0831: Unknown result type (might be due to invalid IL or missing references)
//IL_0833: Unknown result type (might be due to invalid IL or missing references)
//IL_083a: Unknown result type (might be due to invalid IL or missing references)
//IL_083c: 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_0845: Unknown result type (might be due to invalid IL or missing references)
//IL_084c: Unknown result type (might be due to invalid IL or missing references)
//IL_084e: Unknown result type (might be due to invalid IL or missing references)
//IL_0868: Unknown result type (might be due to invalid IL or missing references)
//IL_086a: Unknown result type (might be due to invalid IL or missing references)
//IL_0871: Unknown result type (might be due to invalid IL or missing references)
//IL_0872: Unknown result type (might be due to invalid IL or missing references)
//IL_0879: Unknown result type (might be due to invalid IL or missing references)
//IL_087b: Unknown result type (might be due to invalid IL or missing references)
//IL_0882: Unknown result type (might be due to invalid IL or missing references)
//IL_0884: Unknown result type (might be due to invalid IL or missing references)
//IL_088b: Unknown result type (might be due to invalid IL or missing references)
//IL_088d: Unknown result type (might be due to invalid IL or missing references)
//IL_0894: Unknown result type (might be due to invalid IL or missing references)
//IL_0896: Unknown result type (might be due to invalid IL or missing references)
//IL_089d: Unknown result type (might be due to invalid IL or missing references)
//IL_089f: Unknown result type (might be due to invalid IL or missing references)
//IL_08b9: Unknown result type (might be due to invalid IL or missing references)
//IL_08bb: Unknown result type (might be due to invalid IL or missing references)
//IL_08c2: Unknown result type (might be due to invalid IL or missing references)
//IL_08c3: Unknown result type (might be due to invalid IL or missing references)
//IL_08dd: Unknown result type (might be due to invalid IL or missing references)
//IL_08df: Unknown result type (might be due to invalid IL or missing references)
//IL_08e6: Unknown result type (might be due to invalid IL or missing references)
//IL_08e7: Unknown result type (might be due to invalid IL or missing references)
//IL_08ee: Unknown result type (might be due to invalid IL or missing references)
//IL_08f0: Unknown result type (might be due to invalid IL or missing references)
//IL_08f7: Unknown result type (might be due to invalid IL or missing references)
//IL_08f9: Unknown result type (might be due to invalid IL or missing references)
//IL_0900: Unknown result type (might be due to invalid IL or missing references)
//IL_0902: Unknown result type (might be due to invalid IL or missing references)
//IL_0909: Unknown result type (might be due to invalid IL or missing references)
//IL_090a: Unknown result type (might be due to invalid IL or missing references)
//IL_0911: Unknown result type (might be due to invalid IL or missing references)
//IL_0912: 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_092e: Unknown result type (might be due to invalid IL or missing references)
//IL_0935: Unknown result type (might be due to invalid IL or missing references)
//IL_0936: Unknown result type (might be due to invalid IL or missing references)
//IL_093d: Unknown result type (might be due to invalid IL or missing references)
//IL_093f: Unknown result type (might be due to invalid IL or missing references)
//IL_0946: Unknown result type (might be due to invalid IL or missing references)
//IL_0948: Unknown result type (might be due to invalid IL or missing references)
//IL_094f: Unknown result type (might be due to invalid IL or missing references)
//IL_0950: Unknown result type (might be due to invalid IL or missing references)
//IL_096a: Unknown result type (might be due to invalid IL or missing references)
//IL_096c: Unknown result type (might be due to invalid IL or missing references)
//IL_0973: Unknown result type (might be due to invalid IL or missing references)
//IL_0975: Unknown result type (might be due to invalid IL or missing references)
//IL_097c: Unknown result type (might be due to invalid IL or missing references)
//IL_097d: Unknown result type (might be due to invalid IL or missing references)
//IL_0997: Unknown result type (might be due to invalid IL or missing references)
//IL_0999: Unknown result type (might be due to invalid IL or missing references)
//IL_09a0: Unknown result type (might be due to invalid IL or missing references)
//IL_09a1: Unknown result type (might be due to invalid IL or missing references)
//IL_09a8: 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_09c4: Unknown result type (might be due to invalid IL or missing references)
//IL_09c6: Unknown result type (might be due to invalid IL or missing references)
//IL_09cd: Unknown result type (might be due to invalid IL or missing references)
//IL_09ce: Unknown result type (might be due to invalid IL or missing references)
//IL_09d5: Unknown result type (might be due to invalid IL or missing references)
//IL_09d7: Unknown result type (might be due to invalid IL or missing references)
//IL_09de: Unknown result type (might be due to invalid IL or missing references)
//IL_09e0: Unknown result type (might be due to invalid IL or missing references)
//IL_09e7: Unknown result type (might be due to invalid IL or missing references)
//IL_09e9: Unknown result type (might be due to invalid IL or missing references)
//IL_09f0: Unknown result type (might be due to invalid IL or missing references)
//IL_09f1: Unknown result type (might be due to invalid IL or missing references)
//IL_0a0b: Unknown result type (might be due to invalid IL or missing references)
//IL_0a0d: Unknown result type (might be due to invalid IL or missing references)
//IL_0a14: Unknown result type (might be due to invalid IL or missing references)
//IL_0a15: Unknown result type (might be due to invalid IL or missing references)
//IL_0a1c: Unknown result type (might be due to invalid IL or missing references)
//IL_0a1e: Unknown result type (might be due to invalid IL or missing references)
//IL_0a25: Unknown result type (might be due to invalid IL or missing references)
//IL_0a27: Unknown result type (might be due to invalid IL or missing references)
//IL_0a2e: Unknown result type (might be due to invalid IL or missing references)
//IL_0a30: Unknown result type (might be due to invalid IL or missing references)
//IL_0a37: Unknown result type (might be due to invalid IL or missing references)
//IL_0a39: Unknown result type (might be due to invalid IL or missing references)
//IL_0a53: Unknown result type (might be due to invalid IL or missing references)
//IL_0a55: Unknown result type (might be due to invalid IL or missing references)
//IL_0a5c: Unknown result type (might be due to invalid IL or missing references)
//IL_0a5d: Unknown result type (might be due to invalid IL or missing references)
//IL_0a64: 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_0a6d: Unknown result type (might be due to invalid IL or missing references)
//IL_0a6f: Unknown result type (might be due to invalid IL or missing references)
//IL_0a76: Unknown result type (might be due to invalid IL or missing references)
//IL_0a78: Unknown result type (might be due to invalid IL or missing references)
//IL_0a7f: Unknown result type (might be due to invalid IL or missing references)
//IL_0a81: Unknown result type (might be due to invalid IL or missing references)
//IL_0aba: Unknown result type (might be due to invalid IL or missing references)
//IL_0abf: Unknown result type (might be due to invalid IL or missing references)
//IL_0ac8: Unknown result type (might be due to invalid IL or missing references)
//IL_03f4: Unknown result type (might be due to invalid IL or missing references)
//IL_03f9: Unknown result type (might be due to invalid IL or missing references)
//IL_0402: Unknown result type (might be due to invalid IL or missing references)
//IL_0ad8: 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)
AttackWeight val = default(AttackWeight);
val.state = (MonsterState)(object)TeleportToTopBossGeneralState;
val.weight = 1;
AttackWeight val2 = default(AttackWeight);
val2.state = (MonsterState)(object)TeleportToBackBossGeneralState;
val2.weight = 1;
AttackWeight val3 = default(AttackWeight);
val3.state = (MonsterState)(object)TeleportForwardBossGeneralState;
val3.weight = 1;
AttackWeight val4 = default(AttackWeight);
val4.state = (MonsterState)(object)SlowStartBossGeneralState;
val4.weight = 1;
AttackWeight val5 = default(AttackWeight);
val5.state = (MonsterState)(object)CrossUpBossGeneralState;
val5.weight = 1;
AttackWeight val6 = default(AttackWeight);
val6.state = (MonsterState)(object)triplePokeBossGeneralState;
val6.weight = 1;
AttackWeight val7 = default(AttackWeight);
val7.state = (MonsterState)(object)CrimsonSlamBossGeneralState;
val7.weight = 1;
AttackWeight val8 = default(AttackWeight);
val8.state = (MonsterState)(object)UnsheatheBossGeneralState;
val8.weight = 1;
AttackWeight val9 = default(AttackWeight);
val9.state = (MonsterState)(object)FooCharmBossGeneralState;
val9.weight = 1;
AttackWeight val10 = default(AttackWeight);
val10.state = (MonsterState)(object)QuickFooBossGeneralState;
val10.weight = 1;
AttackWeight val11 = default(AttackWeight);
val11.state = (MonsterState)(object)DunkBossGeneralState;
val11.weight = 1;
AttackWeight val12 = default(AttackWeight);
val12.state = (MonsterState)(object)WindBladeBossGeneralState;
val12.weight = 1;
AttackWeight val13 = default(AttackWeight);
val13.state = (MonsterState)(object)ActualWindBladeBossGeneralState;
val13.weight = 1;
AttackWeight val14 = default(AttackWeight);
val14.state = (MonsterState)(object)FooFollowUp0BossGeneralState;
val14.weight = 1;
AttackWeight val15 = default(AttackWeight);
val15.state = (MonsterState)(object)FooFollowUp1BossGeneralState;
val15.weight = 1;
AttackWeight val16 = default(AttackWeight);
val16.state = (MonsterState)(object)JudgementCutBossGeneralState;
val16.weight = 1;
AttackWeight val17 = default(AttackWeight);
val17.state = (MonsterState)(object)RegularJudgementCutBossGeneralState;
val17.weight = 1;
AttackWeight[] array = (AttackWeight[])(object)new AttackWeight[12]
{
val, val2, val3, val4, val5, val6, val8, val9, val11, val12,
val14, val15
};
LinkNextMoveStateWeight[] array2 = (LinkNextMoveStateWeight[])(object)new LinkNextMoveStateWeight[27]
{
StunLinkStateWeight, TeleportToBackLinkStateWeight, TeleportForwardLinkStateWeight, SlowStartLinkStateWeight, PokeLinkStateWeight, CrossUpLinkStateWeight, CrimsonSlamLinkStateWeight, UnsheatheLinkStateWeight, DunkLinkStateWeight, WindBladePhase1LinkStateWeight,
StunPhase2LinkStateWeight, PokePhase2LinkStateWeight, TeleportToBackPhase2LinkStateWeight, TeleportForwardPhase2LinkStateWeight, SlowStartPhase2LinkStateWeight, CrossUpPhase2LinkStateWeight, CrimsonSlamPhase2LinkStateWeight, FooFollowUp1LinkStateWeight, UnsheathePhase2LinkStateWeight, WindBladeLinkStateWeight,
StunPhase3LinkStateWeight, TeleportToBackPhase3LinkStateWeight, TeleportForwardPhase3LinkStateWeight, WindBladePhase3LinkStateWeight, UnsheathePhase3LinkStateWeight, JudgementCutLinkStateWeight, RegularJudgementCutLinkStateWeight
};
if (IsRandom.Value && !hasRandomLoopRan)
{
Random random = new Random();
int value = IsRandomMinimumAttackAmount.Value;
int value2 = IsRandomMaximumAttackAmount.Value;
hasRandomLoopRan = true;
LinkNextMoveStateWeight[] array3 = array2;
foreach (LinkNextMoveStateWeight val18 in array3)
{
val18.stateWeightList.Clear();
int num = random.Next(value, value2 + 1);
for (int j = 0; j < num; j++)
{
int num2 = random.Next(0, array.Length);
AttackWeight item = array[num2];
if (!val18.stateWeightList.Contains(item))
{
val18.stateWeightList.Add(item);
}
}
}
return;
}
Dictionary<LinkNextMoveStateWeight, AttackWeight[]> dictionary = new Dictionary<LinkNextMoveStateWeight, AttackWeight[]>();
dictionary.Add(StunLinkStateWeight, (AttackWeight[])(object)new AttackWeight[3] { val2, val, val8 });
dictionary.Add(TeleportToBackLinkStateWeight, (AttackWeight[])(object)new AttackWeight[6] { val8, val4, val5, val6, val, val2 });
dictionary.Add(TeleportForwardLinkStateWeight, (AttackWeight[])(object)new AttackWeight[3] { val5, val6, val2 });
dictionary.Add(SlowStartLinkStateWeight, (AttackWeight[])(object)new AttackWeight[3] { val9, val8, val });
dictionary.Add(PokeLinkStateWeight, (AttackWeight[])(object)new AttackWeight[4] { val9, val14, val15, val11 });
dictionary.Add(CrossUpLinkStateWeight, (AttackWeight[])(object)new AttackWeight[3] { val8, val9, val3 });
dictionary.Add(CrimsonSlamLinkStateWeight, (AttackWeight[])(object)new AttackWeight[7] { val5, val6, val9, val, val11, val2, val3 });
dictionary.Add(UnsheatheLinkStateWeight, (AttackWeight[])(object)new AttackWeight[5] { val8, val, val6, val5, val11 });
dictionary.Add(DunkLinkStateWeight, (AttackWeight[])(object)new AttackWeight[2] { val, val8 });
dictionary.Add(StunPhase2LinkStateWeight, (AttackWeight[])(object)new AttackWeight[5] { val10, val, val14, val15, val2 });
dictionary.Add(PokePhase2LinkStateWeight, (AttackWeight[])(object)new AttackWeight[6] { val6, val15, val14, val9, val4, val2 });
dictionary.Add(TeleportToBackPhase2LinkStateWeight, (AttackWeight[])(object)new AttackWeight[8] { val8, val4, val5, val6, val, val12, val14, val15 });
dictionary.Add(TeleportForwardPhase2LinkStateWeight, (AttackWeight[])(object)new AttackWeight[5] { val5, val6, val4, val14, val15 });
dictionary.Add(SlowStartPhase2LinkStateWeight, (AttackWeight[])(object)new AttackWeight[5] { val9, val8, val, val14, val15 });
dictionary.Add(CrossUpPhase2LinkStateWeight, (AttackWeight[])(object)new AttackWeight[5] { val8, val9, val2, val3, val15 });
dictionary.Add(CrimsonSlamPhase2LinkStateWeight, (AttackWeight[])(object)new AttackWeight[9] { val5, val6, val, val11, val2, val3, val14, val15, val12 });
dictionary.Add(FooFollowUp1LinkStateWeight, (AttackWeight[])(object)new AttackWeight[5] { val, val8, val10, val14, val15 });
dictionary.Add(UnsheathePhase2LinkStateWeight, (AttackWeight[])(object)new AttackWeight[7] { val8, val, val11, val6, val5, val14, val15 });
dictionary.Add(WindBladeLinkStateWeight, (AttackWeight[])(object)new AttackWeight[2] { val10, val2 });
dictionary.Add(StunPhase3LinkStateWeight, (AttackWeight[])(object)new AttackWeight[7] { val10, val, val14, val15, val12, val3, val2 });
dictionary.Add(TeleportToBackPhase3LinkStateWeight, (AttackWeight[])(object)new AttackWeight[5] { val8, val4, val5, val6, val });
dictionary.Add(TeleportForwardPhase3LinkStateWeight, (AttackWeight[])(object)new AttackWeight[3] { val5, val6, val4 });
dictionary.Add(WindBladePhase3LinkStateWeight, (AttackWeight[])(object)new AttackWeight[3] { val10, val2, val13 });
dictionary.Add(UnsheathePhase3LinkStateWeight, (AttackWeight[])(object)new AttackWeight[6] { val8, val, val11, val6, val5, val4 });
dictionary.Add(JudgementCutLinkStateWeight, (AttackWeight[])(object)new AttackWeight[6] { val16, val, val5, val11, val14, val15 });
dictionary.Add(RegularJudgementCutLinkStateWeight, (AttackWeight[])(object)new AttackWeight[6] { val16, val, val5, val11, val14, val15 });
foreach (KeyValuePair<LinkNextMoveStateWeight, AttackWeight[]> item3 in dictionary)
{
LinkNextMoveStateWeight key = item3.Key;
AttackWeight[] value3 = item3.Value;
foreach (AttackWeight item2 in value3)
{
if (!key.stateWeightList.Contains(item2))
{
key.stateWeightList.Add(item2);
}
}
}
}
public void GetAttackGameObjects()
{
eigongAttackStatesPath = "GameLevel/Room/Prefab/EventBinder/General Boss Fight FSM Object Variant/FSM Animator/LogicRoot/---Boss---/Boss_Yi Gung/States/Attacks/";
StunLinkStateWeight = GameObject.Find("GameLevel/Room/Prefab/EventBinder/General Boss Fight FSM Object Variant/FSM Animator/LogicRoot/---Boss---/Boss_Yi Gung/States/AttackParrying/weight").GetComponent<LinkNextMoveStateWeight>();
StunPhase2LinkStateWeight = GameObject.Find("GameLevel/Room/Prefab/EventBinder/General Boss Fight FSM Object Variant/FSM Animator/LogicRoot/---Boss---/Boss_Yi Gung/States/AttackParrying/weight (1)").GetComponent<LinkNextMoveStateWeight>();
StunPhase3LinkStateWeight = GameObject.Find("GameLevel/Room/Prefab/EventBinder/General Boss Fight FSM Object Variant/FSM Animator/LogicRoot/---Boss---/Boss_Yi Gung/States/AttackParrying/weight (2)").GetComponent<LinkNextMoveStateWeight>();
TeleportToTopLinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[2] Teleport To Top/phase (0)").GetComponent<LinkNextMoveStateWeight>();
TeleportToTopPhase2LinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[2] Teleport To Top/phase (1)").GetComponent<LinkNextMoveStateWeight>();
TeleportToTopPhase3LinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[2] Teleport To Top/phase (2)").GetComponent<LinkNextMoveStateWeight>();
TeleportForwardLinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[7] Teleport Dash Forward/weight").GetComponent<LinkNextMoveStateWeight>();
TeleportForwardPhase2LinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[7] Teleport Dash Forward/weight (1)").GetComponent<LinkNextMoveStateWeight>();
TeleportForwardPhase3LinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[7] Teleport Dash Forward/weight (2)").GetComponent<LinkNextMoveStateWeight>();
TeleportToBackLinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[5] Teleport to Back/weight").GetComponent<LinkNextMoveStateWeight>();
TeleportToBackPhase2LinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[5] Teleport to Back/weight (1)").GetComponent<LinkNextMoveStateWeight>();
TeleportToBackPhase3LinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[5] Teleport to Back/weight (2)").GetComponent<LinkNextMoveStateWeight>();
SlowStartLinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[1] Starter Slow Attack 慢刀前揮/phase (0)").GetComponent<LinkNextMoveStateWeight>();
PokeLinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[13] Tripple Poke 三連/weight").GetComponent<LinkNextMoveStateWeight>();
CrossUpLinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[6] Double Attack/LinkMoveGroupingNode2 StarterPose/phase (0)").GetComponent<LinkNextMoveStateWeight>();
UnsheatheLinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[3] Thrust Delay 一閃/phase (0)").GetComponent<LinkNextMoveStateWeight>();
FooCharmLinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[10] Danger Foo Grab/interrupt weight").GetComponent<LinkNextMoveStateWeight>();
CrimsonSlamLinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[17] DownAttack Danger 空中下危/weight").GetComponent<LinkNextMoveStateWeight>();
DunkLinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[14] FooExplode Smash 下砸紅球/phase0 (1)").GetComponent<LinkNextMoveStateWeight>();
WindBladePhase1LinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[11] GiantChargeWave 紅白白紅/weight (1)").GetComponent<LinkNextMoveStateWeight>();
SlowStartPhase2LinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[1] Starter Slow Attack 慢刀前揮/phase (1)").GetComponent<LinkNextMoveStateWeight>();
PokePhase2LinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[13] Tripple Poke 三連/weight (1)").GetComponent<LinkNextMoveStateWeight>();
CrossUpPhase2LinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[6] Double Attack/LinkMoveGroupingNode2 StarterPose/phase (1)").GetComponent<LinkNextMoveStateWeight>();
UnsheathePhase2LinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[3] Thrust Delay 一閃/phase (1)").GetComponent<LinkNextMoveStateWeight>();
FooCharmPhase2LinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[10] Danger Foo Grab/interrupt weight (1)").GetComponent<LinkNextMoveStateWeight>();
FooFollowUp0LinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[4] Slash Up 上撈下打 大反危/phase (1)").GetComponent<LinkNextMoveStateWeight>();
FooFollowUp1LinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[12] UpSlash Down Danger/weight (1)").GetComponent<LinkNextMoveStateWeight>();
CrimsonSlamPhase2LinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[17] DownAttack Danger 空中下危/weight (1)").GetComponent<LinkNextMoveStateWeight>();
WindBladeLinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[11] GiantChargeWave 紅白白紅/weight (2)").GetComponent<LinkNextMoveStateWeight>();
FooCharmPhase3LinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[10] Danger Foo Grab/interrupt weight (2)").GetComponent<LinkNextMoveStateWeight>();
WindBladePhase3LinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[11] GiantChargeWave 紅白白紅/weight (3)").GetComponent<LinkNextMoveStateWeight>();
UnsheathePhase3LinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[3] Thrust Delay 一閃/phase (2)").GetComponent<LinkNextMoveStateWeight>();
JudgementCutLinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[19] Thrust Full Screen Slash/LinkMoveGroupingNode Timing 2 Ground/weight (2)").GetComponent<LinkNextMoveStateWeight>();
RegularJudgementCutLinkStateWeight = GameObject.Find(eigongAttackStatesPath + "[20] TeleportOut/weight (2)").GetComponent<LinkNextMoveStateWeight>();
TeleportToTopBossGeneralState = GameObject.Find(eigongAttackStatesPath + "[2] Teleport To Top").GetComponent<BossGeneralState>();
TeleportForwardBossGeneralState = GameObject.Find(eigongAttackStatesPath + "[7] Teleport Dash Forward").GetComponent<BossGeneralState>();
TeleportToBackBossGeneralState = GameObject.Find(eigongAttackStatesPath + "[5] Teleport to Back").GetComponent<BossGeneralState>();
SlowStartBossGeneralState = GameObject.Find(eigongAttackStatesPath + "[1] Starter Slow Attack 慢刀前揮").GetComponent<BossGeneralState>();
UnsheatheBossGeneralState = GameObject.Find(eigongAttackStatesPath + "[3] Thrust Delay 一閃").GetComponent<BossGeneralState>();
CrossUpBossGeneralState = GameObject.Find(eigongAttackStatesPath + "[6] Double Attack").GetComponent<BossGeneralState>();
triplePokeBossGeneralState = GameObject.Find(eigongAttackStatesPath + "[13] Tripple Poke 三連").GetComponent<BossGeneralState>();
FooCharmBossGeneralState = GameObject.Find(eigongAttackStatesPath + "[10] Danger Foo Grab").GetComponent<BossGeneralState>();
QuickFooBossGeneralState = GameObject.Find(eigongAttackStatesPath + "[16] QuickFoo").GetComponent<BossGeneralState>();
DunkBossGeneralState = GameObject.Find(eigongAttackStatesPath + "[14] FooExplode Smash 下砸紅球").GetComponent<BossGeneralState>();
CrimsonSlamBossGeneralState = GameObject.Find(eigongAttackStatesPath + "[17] DownAttack Danger 空中下危").GetComponent<BossGeneralState>();
WindBladeBossGeneralState = GameObject.Find(eigongAttackStatesPath + "[8] Long Charge (2階才有").GetComponent<BossGeneralState>();
ActualWindBladeBossGeneralState = GameObject.Find(eigongAttackStatesPath + "[11] GiantChargeWave 紅白白紅").GetComponent<BossGeneralState>();
FooFollowUp0BossGeneralState = GameObject.Find(eigongAttackStatesPath + "[4] Slash Up 上撈下打 大反危").GetComponent<BossGeneralState>();
FooFollowUp1BossGeneralState = GameObject.Find(eigongAttackStatesPath + "[12] UpSlash Down Danger").GetComponent<BossGeneralState>();
JudgementCutBossGeneralState = GameObject.Find(eigongAttackStatesPath + "[19] Thrust Full Screen Slash").GetComponent<BossGeneralState>();
RegularJudgementCutBossGeneralState = GameObject.Find(eigongAttackStatesPath + "[20] TeleportOut").GetComponent<BossGeneralState>();
if ((Object)(object)((Component)DunkBossGeneralState).gameObject.GetComponent<LinkMoveExtendProvider>() == (Object)null)
{
((Component)DunkBossGeneralState).gameObject.AddComponent<LinkMoveExtendProvider>();
}
fireTrail = GameObject.Find("GameLevel/Room/Prefab/EventBinder/General Boss Fight FSM Object Variant/FSM Animator/LogicRoot/---Boss---/Boss_Yi Gung/MonsterCore/Animator(Proxy)/Animator/LogicRoot/Phase1 Activator/FireFX _ Fxplayer");
}
public static IEnumerator FadeSpriteOut(SpriteRenderer spriteRenderer, float duration)
{
if (!((Object)(object)spriteRenderer == (Object)null) && !(duration <= 0f))
{
Color originalColor = ((Renderer)spriteRenderer).material.color;
float startAlpha = originalColor.a;
float elapsed = 0f;
while (elapsed < duration)
{
elapsed += Time.deltaTime;
float num = Mathf.Lerp(startAlpha, 0f, elapsed / duration);
((Renderer)spriteRenderer).material.color = new Color(originalColor.r, originalColor.g, originalColor.b, num);
yield return null;
}
((Renderer)spriteRenderer).material.color = new Color(originalColor.r, originalColor.g, originalColor.b, 0f);
}
}
public static IEnumerator FadeSpriteIn(SpriteRenderer spriteRenderer, float duration)
{
if (!((Object)(object)spriteRenderer == (Object)null) && !(duration <= 0f))
{
Color originalColor = ((Renderer)spriteRenderer).material.color;
originalColor.a = 1f;
float elapsed = 0f;
while (elapsed < duration)
{
elapsed += Time.deltaTime;
float num = Mathf.Lerp(0f, originalColor.a, elapsed / duration);
((Renderer)spriteRenderer).material.color = new Color(originalColor.r, originalColor.g, originalColor.b, num);
yield return null;
}
((Renderer)spriteRenderer).material.color = new Color(originalColor.r, originalColor.g, originalColor.b, 1f);
}
}
public void OnDestroy()
{
harmony.UnpatchSelf();
}
}
internal static class Log
{
private static ManualLogSource? logSource;
internal static void Init(ManualLogSource logSource)
{
Log.logSource = logSource;
}
internal static void Debug(object data)
{
ManualLogSource? obj = logSource;
if (obj != null)
{
obj.LogDebug(data);
}
}
internal static void Error(object data)
{
ManualLogSource? obj = logSource;
if (obj != null)
{
obj.LogError(data);
}
}
internal static void Fatal(object data)
{
ManualLogSource? obj = logSource;
if (obj != null)
{
obj.LogFatal(data);
}
}
internal static void Info(object data)
{
ManualLogSource? obj = logSource;
if (obj != null)
{
obj.LogInfo(data);
}
}
internal static void Message(object data)
{
ManualLogSource? obj = logSource;
if (obj != null)
{
obj.LogMessage(data);
}
}
internal static void Warning(object data)
{
ManualLogSource? obj = logSource;
if (obj != null)
{
obj.LogWarning(data);
}
}
}
[HarmonyPatch]
public class Patches
{
[HarmonyPostfix]
[HarmonyPatch(typeof(LocalizationManager), "GetTranslation")]
private static void EigongPrimeNameChange(string Term, ref string __result)
{
if (!(Term != "Characters/NameTag_YiKong"))
{
__result += " Prime";
}
}
}
public static class MyPluginInfo
{
public const string PLUGIN_GUID = "EigongPrime";
public const string PLUGIN_NAME = "EigongPrime";
public const string PLUGIN_VERSION = "1.0.0";
}
}