using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Text;
using AddWatermark;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Logging;
using HarmonyLib;
using LBoL.Base;
using LBoL.Base.Extensions;
using LBoL.ConfigData;
using LBoL.Core;
using LBoL.Core.Battle;
using LBoL.Core.Battle.BattleActions;
using LBoL.Core.Battle.Interactions;
using LBoL.Core.Cards;
using LBoL.Core.StatusEffects;
using LBoL.Core.Units;
using LBoL.EntityLib.Exhibits;
using LBoL.Presentation.UI.Widgets;
using LBoL.Presentation.Units;
using LBoLEntitySideloader;
using LBoLEntitySideloader.Attributes;
using LBoLEntitySideloader.BattleModifiers.Actions;
using LBoLEntitySideloader.Entities;
using LBoLEntitySideloader.Resource;
using ShiningExhibitsPlus.StatusEffects;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: IgnoresAccessChecksTo("LBoL.Base")]
[assembly: IgnoresAccessChecksTo("LBoL.ConfigData")]
[assembly: IgnoresAccessChecksTo("LBoL.Core")]
[assembly: IgnoresAccessChecksTo("LBoL.EntityLib")]
[assembly: IgnoresAccessChecksTo("LBoL.Presentation")]
[assembly: IgnoresAccessChecksTo("Untitled.ConfigDataBuilder.Base")]
[assembly: AssemblyCompany("ShiningExhibitsPlus")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("ShiningExhibitsPlus")]
[assembly: AssemblyTitle("ShiningExhibitsPlus")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace ShiningExhibitsPlus
{
[BepInPlugin("cyaneko.lbol.mods.shiningexhibitsplus", "ShiningExhibitsPlus", "0.3.0")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInProcess("LBoL.exe")]
public class BepinexPlugin : BaseUnityPlugin
{
private static readonly Harmony harmony = PInfo.harmony;
internal static ManualLogSource log;
internal static TemplateSequenceTable sequenceTable = new TemplateSequenceTable(0);
internal static IResourceSource embeddedSource = (IResourceSource)new EmbeddedSource(Assembly.GetExecutingAssembly());
internal static DirectorySource directorySource = new DirectorySource("cyaneko.lbol.mods.shiningexhibitsplus", "");
internal static BatchLocalization exhibitLoc = new BatchLocalization((IResourceSource)(object)directorySource, typeof(ExhibitTemplate), "Exhibits_", (Locale)0, false);
internal static BatchLocalization statusLoc = new BatchLocalization((IResourceSource)(object)directorySource, typeof(StatusEffectTemplate), "StatusEffects_", (Locale)0, false);
private void Awake()
{
log = ((BaseUnityPlugin)this).Logger;
Object.DontDestroyOnLoad((Object)(object)((Component)this).gameObject);
((Object)((Component)this).gameObject).hideFlags = (HideFlags)61;
EntityManager.RegisterSelf();
harmony.PatchAll();
if (Chainloader.PluginInfos.ContainsKey("neo.lbol.tools.watermark"))
{
WatermarkWrapper.ActivateWatermark();
}
}
private void OnDestroy()
{
if (harmony != null)
{
harmony.UnpatchSelf();
}
}
}
public static class PInfo
{
public const string GUID = "cyaneko.lbol.mods.shiningexhibitsplus";
public const string Name = "ShiningExhibitsPlus";
public const string version = "0.3.0";
public static readonly Harmony harmony = new Harmony("cyaneko.lbol.mods.shiningexhibitsplus");
}
internal class WatermarkWrapper
{
[MethodImpl(MethodImplOptions.NoInlining)]
internal static void ActivateWatermark()
{
API.ActivateWatermark();
}
}
}
namespace ShiningExhibitsPlus.StatusEffects
{
public sealed class AliceShieldProtectionDef : StatusEffectTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("AliceShieldProtection");
}
public override StatusEffectConfig MakeConfig()
{
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_004d: Expected O, but got Unknown
return new StatusEffectConfig(0, "", 7, (StatusEffectType)0, false, true, (int?)null, true, (StackType?)(StackType)1, false, (StackType?)(StackType)1, (DurationDecreaseTiming)0, false, (StackType?)(StackType)3, (StackType?)(StackType)3, false, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (string)null, "BuffWhite", "DroneBlockLoop", "Buff");
}
public override Sprite LoadSprite()
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
return ResourceLoader.LoadSprite(IdContainer.op_Implicit(((EntityDefinition)this).GetId()) + ".png", (IResourceSource)(object)BepinexPlugin.directorySource, (Rect?)null, 1, (Vector2?)null);
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.statusLoc.AddEntity((EntityDefinition)(object)this);
}
}
[EntityLogic(typeof(AliceShieldProtectionDef))]
public sealed class AliceShieldProtection : StatusEffect
{
protected override void OnAdded(Unit unit)
{
((StatusEffect)this).HandleOwnerEvent<UnitEventArgs>(unit.TurnStarting, (GameEventHandler<UnitEventArgs>)OnTurnStarting);
((StatusEffect)this).HandleOwnerEvent<DamageEventArgs>(unit.DamageReceiving, (GameEventHandler<DamageEventArgs>)OnDamageReceiving);
}
private void OnTurnStarting(UnitEventArgs args)
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Expected O, but got Unknown
((GameEntity)this).React(Reactor.op_Implicit((BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f)));
}
private void OnDamageReceiving(DamageEventArgs args)
{
//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_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_000f: Invalid comparison between I4 and Unknown
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
DamageInfo damageInfo = args.DamageInfo;
if (2 == (int)((DamageInfo)(ref damageInfo)).DamageType)
{
args.DamageInfo = ((DamageInfo)(ref damageInfo)).ReduceBy(((StatusEffect)this).Level);
((GameEventArgs)args).AddModifier((GameEntity)(object)this);
}
}
}
public sealed class MomijiSwordFocusDef : StatusEffectTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("MomijiSwordFocus");
}
public override StatusEffectConfig MakeConfig()
{
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_004d: Expected O, but got Unknown
return new StatusEffectConfig(0, "", 7, (StatusEffectType)2, false, true, (int?)null, true, (StackType?)(StackType)0, false, (StackType?)(StackType)0, (DurationDecreaseTiming)0, false, (StackType?)(StackType)3, (StackType?)(StackType)3, false, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (string)null, "Lockon", "Default", "Debuff");
}
public override Sprite LoadSprite()
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
return ResourceLoader.LoadSprite(IdContainer.op_Implicit(((EntityDefinition)this).GetId()) + ".png", (IResourceSource)(object)BepinexPlugin.directorySource, (Rect?)null, 1, (Vector2?)null);
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.statusLoc.AddEntity((EntityDefinition)(object)this);
}
}
[EntityLogic(typeof(MomijiSwordFocusDef))]
public sealed class MomijiSwordFocus : StatusEffect
{
protected override void OnAdded(Unit unit)
{
((StatusEffect)this).HandleOwnerEvent<DamageEventArgs>(unit.DamageReceiving, (GameEventHandler<DamageEventArgs>)OnDamageReceiving);
}
private void OnDamageReceiving(DamageEventArgs args)
{
//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_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_000f: Invalid comparison between I4 and Unknown
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
DamageInfo damageInfo = args.DamageInfo;
if (2 == (int)((DamageInfo)(ref damageInfo)).DamageType)
{
args.DamageInfo = ((DamageInfo)(ref damageInfo)).IncreaseBy(((StatusEffect)this).Level);
((GameEventArgs)args).AddModifier((GameEntity)(object)this);
}
}
}
}
namespace ShiningExhibitsPlus.Exhibits
{
public sealed class AliceShieldDef : ExhibitTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("AliceShield");
}
public override ExhibitConfig MakeConfig()
{
//IL_006a: Unknown result type (might be due to invalid IL or missing references)
//IL_0070: Expected O, but got Unknown
return new ExhibitConfig(0, "", 10, false, false, false, true, (AppearanceType)0, "", (ExhibitLosableType)2, (Rarity)3, (int?)2, (int?)null, (int?)null, (ManaGroup?)null, (ManaColor?)null, (ManaColor?)(ManaColor)1, 1, false, (int?)null, (Keyword)1536, (IReadOnlyList<string>)new List<string> { "AliceShieldProtection" }, (IReadOnlyList<string>)new List<string>());
}
public override ExhibitSprites LoadSprite()
{
//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_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Expected O, but got Unknown
return new ExhibitSprites
{
main = ResourceLoader.LoadSprite(IdContainer.op_Implicit(((EntityDefinition)this).GetId()) + ".png", (IResourceSource)(object)BepinexPlugin.directorySource, (Rect?)null, 1, (Vector2?)null)
};
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.exhibitLoc.AddEntity((EntityDefinition)(object)this);
}
}
[EntityLogic(typeof(AliceShieldDef))]
public sealed class AliceShield : ShiningExhibit
{
[CompilerGenerated]
private sealed class <OnBlockShieldGained>d__8 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
{
private int <>1__state;
private BattleAction <>2__current;
private int <>l__initialThreadId;
public AliceShield <>4__this;
private BlockShieldEventArgs args;
public BlockShieldEventArgs <>3__args;
BattleAction IEnumerator<BattleAction>.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
[DebuggerHidden]
public <OnBlockShieldGained>d__8(int <>1__state)
{
this.<>1__state = <>1__state;
<>l__initialThreadId = Environment.CurrentManagedThreadId;
}
[DebuggerHidden]
void IDisposable.Dispose()
{
<>1__state = -2;
}
private bool MoveNext()
{
int num = <>1__state;
AliceShield aliceShield = <>4__this;
switch (num)
{
default:
return false;
case 0:
<>1__state = -1;
if (!((Exhibit)aliceShield).Active || !aliceShield.MyTurn)
{
return false;
}
if (!aliceShield.GainedBlock && 0f < args.Block)
{
aliceShield.GainedBlock = true;
}
if (!aliceShield.GainedShield && 0f < args.Shield)
{
aliceShield.GainedShield = true;
}
if (aliceShield.GainedBlock && aliceShield.GainedShield)
{
((Exhibit)aliceShield).NotifyActivating();
((Exhibit)aliceShield).Active = false;
<>2__current = (BattleAction)(object)new ApplyStatusEffectAction<AliceShieldProtection>((Unit)(object)((Exhibit)aliceShield).Owner, (int?)((Exhibit)aliceShield).Value1, (int?)null, (int?)null, (int?)null, 0.1f, true);
<>1__state = 1;
return true;
}
break;
case 1:
<>1__state = -1;
break;
}
return false;
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
[DebuggerHidden]
IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
{
<OnBlockShieldGained>d__8 <OnBlockShieldGained>d__;
if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
{
<>1__state = 0;
<OnBlockShieldGained>d__ = this;
}
else
{
<OnBlockShieldGained>d__ = new <OnBlockShieldGained>d__8(0)
{
<>4__this = <>4__this
};
}
<OnBlockShieldGained>d__.args = <>3__args;
return <OnBlockShieldGained>d__;
}
[DebuggerHidden]
IEnumerator IEnumerable.GetEnumerator()
{
return ((IEnumerable<BattleAction>)this).GetEnumerator();
}
}
private bool GainedBlock;
private bool GainedShield;
private bool MyTurn;
protected override string GetBaseDescription()
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append(((Exhibit)this).GetBaseDescription());
if (GainedBlock || GainedShield)
{
stringBuilder.AppendLine();
if (GainedBlock)
{
stringBuilder.Append(((GameEntity)this).LocalizeProperty("GainedBlock", true, true));
}
if (GainedShield)
{
stringBuilder.Append(((GameEntity)this).LocalizeProperty("GainedShield", true, true));
}
}
return stringBuilder.ToString();
}
protected override void OnEnterBattle()
{
((Exhibit)this).HandleBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Owner).TurnStarting, (GameEventHandler<UnitEventArgs>)OnTurnStarting);
((Exhibit)this).HandleBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Owner).TurnEnded, (GameEventHandler<UnitEventArgs>)OnTurnEnded);
((Exhibit)this).ReactBattleEvent<BlockShieldEventArgs>(((Unit)((Exhibit)this).Owner).BlockShieldGained, (EventSequencedReactor<BlockShieldEventArgs>)OnBlockShieldGained);
}
protected override void OnLeaveBattle()
{
GainedBlock = false;
GainedShield = false;
((Exhibit)this).Active = false;
}
private void OnTurnStarting(UnitEventArgs args)
{
GainedBlock = false;
GainedShield = false;
((Exhibit)this).Active = true;
MyTurn = true;
}
private void OnTurnEnded(UnitEventArgs args)
{
MyTurn = false;
}
[IteratorStateMachine(typeof(<OnBlockShieldGained>d__8))]
private IEnumerable<BattleAction> OnBlockShieldGained(BlockShieldEventArgs args)
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new <OnBlockShieldGained>d__8(-2)
{
<>4__this = this,
<>3__args = args
};
}
}
public sealed class BrickManualDef : ExhibitTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("BrickManual");
}
public override ExhibitConfig MakeConfig()
{
//IL_005b: Unknown result type (might be due to invalid IL or missing references)
//IL_0061: Expected O, but got Unknown
return new ExhibitConfig(0, "", 12, false, false, false, true, (AppearanceType)0, "", (ExhibitLosableType)2, (Rarity)3, (int?)1, (int?)null, (int?)null, (ManaGroup?)null, (ManaColor?)null, (ManaColor?)(ManaColor)2, 1, false, (int?)null, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>());
}
public override ExhibitSprites LoadSprite()
{
//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_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Expected O, but got Unknown
return new ExhibitSprites
{
main = ResourceLoader.LoadSprite(IdContainer.op_Implicit(((EntityDefinition)this).GetId()) + ".png", (IResourceSource)(object)BepinexPlugin.directorySource, (Rect?)null, 1, (Vector2?)null)
};
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.exhibitLoc.AddEntity((EntityDefinition)(object)this);
}
}
[EntityLogic(typeof(BrickManualDef))]
public sealed class BrickManual : ShiningExhibit
{
[CompilerGenerated]
private sealed class <OnTurnStarted>d__3 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
{
private int <>1__state;
private BattleAction <>2__current;
private int <>l__initialThreadId;
public BrickManual <>4__this;
private List<Card>.Enumerator <>7__wrap1;
private SelectHandInteraction <int>5__3;
private IEnumerator<Card> <>7__wrap3;
BattleAction IEnumerator<BattleAction>.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
[DebuggerHidden]
public <OnTurnStarted>d__3(int <>1__state)
{
this.<>1__state = <>1__state;
<>l__initialThreadId = Environment.CurrentManagedThreadId;
}
[DebuggerHidden]
void IDisposable.Dispose()
{
switch (<>1__state)
{
case -3:
case 1:
try
{
}
finally
{
<>m__Finally1();
}
break;
case -4:
case 3:
try
{
}
finally
{
<>m__Finally2();
}
break;
}
<>7__wrap1 = default(List<Card>.Enumerator);
<int>5__3 = null;
<>7__wrap3 = null;
<>1__state = -2;
}
private bool MoveNext()
{
//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
//IL_0109: Expected O, but got Unknown
//IL_0111: Unknown result type (might be due to invalid IL or missing references)
//IL_011b: Expected O, but got Unknown
//IL_009c: Unknown result type (might be due to invalid IL or missing references)
//IL_00a6: Expected O, but got Unknown
//IL_0161: Unknown result type (might be due to invalid IL or missing references)
//IL_016b: Expected O, but got Unknown
try
{
int num = <>1__state;
BrickManual brickManual = <>4__this;
switch (num)
{
default:
return false;
case 0:
<>1__state = -1;
if (((Exhibit)brickManual).Battle.BattleShouldEnd)
{
return false;
}
((Exhibit)brickManual).NotifyActivating();
if (((Exhibit)brickManual).Value1 >= ((Exhibit)brickManual).Battle.HandZone.Count)
{
List<Card> list = ((Exhibit)brickManual).Battle.HandZone.ToList();
<>7__wrap1 = list.GetEnumerator();
<>1__state = -3;
goto IL_00bc;
}
<int>5__3 = new SelectHandInteraction(((Exhibit)brickManual).Value1, ((Exhibit)brickManual).Value1, (IEnumerable<Card>)((Exhibit)brickManual).Battle.HandZone)
{
Source = (GameEntity)(object)brickManual
};
<>2__current = (BattleAction)new InteractionAction((Interaction)(object)<int>5__3, false);
<>1__state = 2;
return true;
case 1:
<>1__state = -3;
goto IL_00bc;
case 2:
<>1__state = -1;
<>7__wrap3 = <int>5__3.SelectedCards.GetEnumerator();
<>1__state = -4;
goto IL_017e;
case 3:
{
<>1__state = -4;
goto IL_017e;
}
IL_017e:
if (<>7__wrap3.MoveNext())
{
Card current = <>7__wrap3.Current;
<>2__current = (BattleAction)new MoveCardToDrawZoneAction(current, (DrawZoneTarget)2);
<>1__state = 3;
return true;
}
<>m__Finally2();
<>7__wrap3 = null;
<int>5__3 = null;
break;
IL_00bc:
if (<>7__wrap1.MoveNext())
{
Card current2 = <>7__wrap1.Current;
<>2__current = (BattleAction)new MoveCardToDrawZoneAction(current2, (DrawZoneTarget)2);
<>1__state = 1;
return true;
}
<>m__Finally1();
<>7__wrap1 = default(List<Card>.Enumerator);
break;
}
return false;
}
catch
{
//try-fault
((IDisposable)this).Dispose();
throw;
}
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
private void <>m__Finally1()
{
<>1__state = -1;
((IDisposable)<>7__wrap1).Dispose();
}
private void <>m__Finally2()
{
<>1__state = -1;
if (<>7__wrap3 != null)
{
<>7__wrap3.Dispose();
}
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
[DebuggerHidden]
IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
{
<OnTurnStarted>d__3 result;
if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
{
<>1__state = 0;
result = this;
}
else
{
result = new <OnTurnStarted>d__3(0)
{
<>4__this = <>4__this
};
}
return result;
}
[DebuggerHidden]
IEnumerator IEnumerable.GetEnumerator()
{
return ((IEnumerable<BattleAction>)this).GetEnumerator();
}
}
protected override void OnEnterBattle()
{
((Exhibit)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Owner).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnTurnStarted);
}
protected override void OnAdded(PlayerUnit player)
{
GameRunController gameRun = ((GameEntity)this).GameRun;
gameRun.DrawCardCount += ((Exhibit)this).Value1;
if (((Exhibit)this).Battle != null)
{
BattleController battle = ((Exhibit)this).Battle;
battle.DrawCardCount += ((Exhibit)this).Value1;
}
}
protected override void OnRemoved(PlayerUnit player)
{
GameRunController gameRun = ((GameEntity)this).GameRun;
gameRun.DrawCardCount -= ((Exhibit)this).Value1;
if (((Exhibit)this).Battle != null)
{
BattleController battle = ((Exhibit)this).Battle;
battle.DrawCardCount -= ((Exhibit)this).Value1;
}
}
[IteratorStateMachine(typeof(<OnTurnStarted>d__3))]
private IEnumerable<BattleAction> OnTurnStarted(UnitEventArgs args)
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new <OnTurnStarted>d__3(-2)
{
<>4__this = this
};
}
}
public sealed class KanakoOnbashiraDef : ExhibitTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("KanakoOnbashira");
}
public override ExhibitConfig MakeConfig()
{
//IL_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0077: Expected O, but got Unknown
return new ExhibitConfig(0, "", 10, false, false, false, true, (AppearanceType)0, "", (ExhibitLosableType)2, (Rarity)3, (int?)2, (int?)null, (int?)null, (ManaGroup?)null, (ManaColor?)null, (ManaColor?)(ManaColor)5, 1, false, (int?)null, (Keyword)4, (IReadOnlyList<string>)new List<string> { "Firepower", "Spirit" }, (IReadOnlyList<string>)new List<string>());
}
public override ExhibitSprites LoadSprite()
{
//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_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Expected O, but got Unknown
return new ExhibitSprites
{
main = ResourceLoader.LoadSprite(IdContainer.op_Implicit(((EntityDefinition)this).GetId()) + ".png", (IResourceSource)(object)BepinexPlugin.directorySource, (Rect?)null, 1, (Vector2?)null)
};
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.exhibitLoc.AddEntity((EntityDefinition)(object)this);
}
}
[EntityLogic(typeof(KanakoOnbashiraDef))]
public sealed class KanakoOnbashira : ShiningExhibit
{
[CompilerGenerated]
private sealed class <OnCardUsed>d__1 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
{
private int <>1__state;
private BattleAction <>2__current;
private int <>l__initialThreadId;
private CardUsingEventArgs args;
public CardUsingEventArgs <>3__args;
public KanakoOnbashira <>4__this;
private int <philoMult>5__2;
private List<StatusEffect> <debuffs>5__3;
private List<StatusEffect>.Enumerator <>7__wrap3;
BattleAction IEnumerator<BattleAction>.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
[DebuggerHidden]
public <OnCardUsed>d__1(int <>1__state)
{
this.<>1__state = <>1__state;
<>l__initialThreadId = Environment.CurrentManagedThreadId;
}
[DebuggerHidden]
void IDisposable.Dispose()
{
int num = <>1__state;
if (num == -3 || num == 4)
{
try
{
}
finally
{
<>m__Finally1();
}
}
<debuffs>5__3 = null;
<>7__wrap3 = default(List<StatusEffect>.Enumerator);
<>1__state = -2;
}
private bool MoveNext()
{
//IL_004e: Unknown result type (might be due to invalid IL or missing references)
//IL_0053: Invalid comparison between I4 and Unknown
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_0064: Unknown result type (might be due to invalid IL or missing references)
//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
//IL_0124: Unknown result type (might be due to invalid IL or missing references)
//IL_0129: Unknown result type (might be due to invalid IL or missing references)
//IL_02c2: Unknown result type (might be due to invalid IL or missing references)
//IL_02c7: Unknown result type (might be due to invalid IL or missing references)
//IL_032d: Unknown result type (might be due to invalid IL or missing references)
//IL_0332: Unknown result type (might be due to invalid IL or missing references)
//IL_0078: 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_00ff: Unknown result type (might be due to invalid IL or missing references)
//IL_0109: Expected O, but got Unknown
//IL_0255: 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_0209: Unknown result type (might be due to invalid IL or missing references)
//IL_0213: Expected O, but got Unknown
//IL_009d: Unknown result type (might be due to invalid IL or missing references)
//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
//IL_03bd: Unknown result type (might be due to invalid IL or missing references)
//IL_03c7: Expected O, but got Unknown
//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
//IL_00cd: Expected O, but got Unknown
try
{
int num = <>1__state;
KanakoOnbashira kanakoOnbashira = <>4__this;
ManaGroup consumingMana;
switch (num)
{
default:
return false;
case 0:
<>1__state = -1;
if (4 != (int)args.Card.CardType)
{
break;
}
consumingMana = args.ConsumingMana;
if (2 > ((ManaGroup)(ref consumingMana)).ColorCount)
{
break;
}
consumingMana = args.ConsumingMana;
<philoMult>5__2 = ((!((ManaGroup)(ref consumingMana)).HasColor((ManaColor)7)) ? 1 : 2);
((Exhibit)kanakoOnbashira).NotifyActivating();
consumingMana = args.ConsumingMana;
if (((ManaGroup)(ref consumingMana)).HasColor((ManaColor)1))
{
<>2__current = (BattleAction)new CastBlockShieldAction((Unit)(object)((Exhibit)kanakoOnbashira).Owner, new ShieldInfo(5 * <philoMult>5__2, (BlockShieldType)2), true);
<>1__state = 1;
return true;
}
goto IL_00e2;
case 1:
<>1__state = -1;
goto IL_00e2;
case 2:
<>1__state = -1;
goto IL_011e;
case 3:
<>1__state = -1;
<>7__wrap3 = <debuffs>5__3.GetEnumerator();
<>1__state = -3;
goto IL_0229;
case 4:
<>1__state = -3;
goto IL_0229;
case 5:
<>1__state = -1;
goto IL_02bc;
case 6:
<>1__state = -1;
goto IL_0327;
case 7:
{
<>1__state = -1;
break;
}
IL_0229:
if (<>7__wrap3.MoveNext())
{
StatusEffect current = <>7__wrap3.Current;
<>2__current = (BattleAction)new RemoveStatusEffectAction(current, true, 0.1f);
<>1__state = 4;
return true;
}
<>m__Finally1();
<>7__wrap3 = default(List<StatusEffect>.Enumerator);
goto IL_0248;
IL_00e2:
consumingMana = args.ConsumingMana;
if (((ManaGroup)(ref consumingMana)).HasColor((ManaColor)2))
{
<>2__current = (BattleAction)new DrawManyCardAction(<philoMult>5__2);
<>1__state = 2;
return true;
}
goto IL_011e;
IL_0248:
<debuffs>5__3 = null;
goto IL_024f;
IL_011e:
consumingMana = args.ConsumingMana;
if (((ManaGroup)(ref consumingMana)).HasColor((ManaColor)3))
{
<debuffs>5__3 = CollectionsExtensions.SampleManyOrAll<StatusEffect>(((Unit)((Exhibit)kanakoOnbashira).Owner).StatusEffects.Where((StatusEffect se) => (int)se.Type == 1), <philoMult>5__2, ((GameEntity)kanakoOnbashira).GameRun.BattleRng).ToList();
if (<debuffs>5__3.Count > 0)
{
<>2__current = (BattleAction)(object)PerformAction.Effect((Unit)(object)((Exhibit)kanakoOnbashira).Owner, "JingHua", 0f, "JingHua", 0f, (EffectBehavior)0, 0f);
<>1__state = 3;
return true;
}
goto IL_0248;
}
goto IL_024f;
IL_02bc:
consumingMana = args.ConsumingMana;
if (((ManaGroup)(ref consumingMana)).HasColor((ManaColor)5))
{
<>2__current = (BattleAction)(object)new ApplyStatusEffectAction<Graze>((Unit)(object)((Exhibit)kanakoOnbashira).Owner, (int?)<philoMult>5__2, (int?)null, (int?)null, (int?)null, 0f, true);
<>1__state = 6;
return true;
}
goto IL_0327;
IL_0327:
consumingMana = args.ConsumingMana;
if (((ManaGroup)(ref consumingMana)).HasColor((ManaColor)6))
{
List<Card> list = (from c in ((Exhibit)kanakoOnbashira).Battle.HandZone.Concat(((Exhibit)kanakoOnbashira).Battle.DrawZone).Concat(((Exhibit)kanakoOnbashira).Battle.DiscardZone)
where (int)c.CardType == 7 || (int)c.CardType == 8
select c).ToList();
if (list.Count > 0)
{
Card[] array = CollectionsExtensions.SampleManyOrAll<Card>((IEnumerable<Card>)list, <philoMult>5__2, ((GameEntity)kanakoOnbashira).GameRun.BattleRng);
<>2__current = (BattleAction)new ExileManyCardAction((IEnumerable<Card>)array);
<>1__state = 7;
return true;
}
}
break;
IL_024f:
consumingMana = args.ConsumingMana;
if (((ManaGroup)(ref consumingMana)).HasColor((ManaColor)4))
{
<>2__current = (BattleAction)(object)new ApplyStatusEffectAction<TempFirepower>((Unit)(object)((Exhibit)kanakoOnbashira).Owner, (int?)(3 * <philoMult>5__2), (int?)null, (int?)null, (int?)null, 0f, true);
<>1__state = 5;
return true;
}
goto IL_02bc;
}
return false;
}
catch
{
//try-fault
((IDisposable)this).Dispose();
throw;
}
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
private void <>m__Finally1()
{
<>1__state = -1;
((IDisposable)<>7__wrap3).Dispose();
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
[DebuggerHidden]
IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
{
<OnCardUsed>d__1 <OnCardUsed>d__;
if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
{
<>1__state = 0;
<OnCardUsed>d__ = this;
}
else
{
<OnCardUsed>d__ = new <OnCardUsed>d__1(0)
{
<>4__this = <>4__this
};
}
<OnCardUsed>d__.args = <>3__args;
return <OnCardUsed>d__;
}
[DebuggerHidden]
IEnumerator IEnumerable.GetEnumerator()
{
return ((IEnumerable<BattleAction>)this).GetEnumerator();
}
}
protected override void OnEnterBattle()
{
((Exhibit)this).ReactBattleEvent<CardUsingEventArgs>(((Exhibit)this).Battle.CardUsed, (EventSequencedReactor<CardUsingEventArgs>)OnCardUsed);
}
[IteratorStateMachine(typeof(<OnCardUsed>d__1))]
private IEnumerable<BattleAction> OnCardUsed(CardUsingEventArgs args)
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new <OnCardUsed>d__1(-2)
{
<>4__this = this,
<>3__args = args
};
}
}
public sealed class KeikiToolsDef : ExhibitTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("KeikiTools");
}
public override ExhibitConfig MakeConfig()
{
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0061: Unknown result type (might be due to invalid IL or missing references)
//IL_0067: Expected O, but got Unknown
return new ExhibitConfig(0, "", 10, false, false, false, true, (AppearanceType)0, "", (ExhibitLosableType)2, (Rarity)3, (int?)1, (int?)null, (int?)null, (ManaGroup?)ManaGroup.Single((ManaColor)7), (ManaColor?)null, (ManaColor?)(ManaColor)7, 1, false, (int?)null, (Keyword)2048, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>());
}
public override ExhibitSprites LoadSprite()
{
//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_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Expected O, but got Unknown
return new ExhibitSprites
{
main = ResourceLoader.LoadSprite(IdContainer.op_Implicit(((EntityDefinition)this).GetId()) + ".png", (IResourceSource)(object)BepinexPlugin.directorySource, (Rect?)null, 1, (Vector2?)null)
};
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.exhibitLoc.AddEntity((EntityDefinition)(object)this);
}
}
[EntityLogic(typeof(KeikiToolsDef))]
public sealed class KeikiTools : ShiningExhibit
{
[CompilerGenerated]
private sealed class <OnTurnStarted>d__1 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
{
private int <>1__state;
private BattleAction <>2__current;
private int <>l__initialThreadId;
public KeikiTools <>4__this;
private ManaGroup <conv>5__2;
BattleAction IEnumerator<BattleAction>.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
[DebuggerHidden]
public <OnTurnStarted>d__1(int <>1__state)
{
this.<>1__state = <>1__state;
<>l__initialThreadId = Environment.CurrentManagedThreadId;
}
[DebuggerHidden]
void IDisposable.Dispose()
{
<>1__state = -2;
}
private bool MoveNext()
{
//IL_002a: Unknown result type (might be due to invalid IL or missing references)
//IL_002f: Unknown result type (might be due to invalid IL or missing references)
//IL_003a: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
//IL_00f7: 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_010d: Unknown result type (might be due to invalid IL or missing references)
//IL_0117: Expected O, but got Unknown
//IL_0046: 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_004f: Unknown result type (might be due to invalid IL or missing references)
//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
//IL_00be: Unknown result type (might be due to invalid IL or missing references)
//IL_0066: Unknown result type (might be due to invalid IL or missing references)
//IL_0061: Unknown result type (might be due to invalid IL or missing references)
//IL_0077: Unknown result type (might be due to invalid IL or missing references)
//IL_0079: Unknown result type (might be due to invalid IL or missing references)
//IL_007d: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: 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_0095: 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_009d: Unknown result type (might be due to invalid IL or missing references)
int num = <>1__state;
KeikiTools keikiTools = <>4__this;
switch (num)
{
default:
return false;
case 0:
{
<>1__state = -1;
<conv>5__2 = ManaGroup.Empty;
ManaGroup battleMana = ((Exhibit)keikiTools).Battle.BattleMana;
for (int i = 0; i < ((Exhibit)keikiTools).Value1; i++)
{
ManaColor val = ((ManaGroup)(ref battleMana)).MaxTrivialColor;
if (((ManaGroup)(ref battleMana))[val] <= ((ManaGroup)(ref battleMana))[(ManaColor)6])
{
val = (ManaColor)6;
}
if (0 >= ((ManaGroup)(ref battleMana))[val])
{
break;
}
ref ManaGroup reference = ref <conv>5__2;
ManaColor val2 = val;
((ManaGroup)(ref reference))[val2] = ((ManaGroup)(ref reference))[val2] + 1;
reference = ref battleMana;
val2 = val;
((ManaGroup)(ref reference))[val2] = ((ManaGroup)(ref reference))[val2] - 1;
}
if (<conv>5__2 != ManaGroup.Empty)
{
((Exhibit)keikiTools).NotifyActivating();
<>2__current = (BattleAction)(object)PerformAction.Sfx("FairySupport", 0f);
<>1__state = 1;
return true;
}
break;
}
case 1:
<>1__state = -1;
<>2__current = (BattleAction)new ConvertManaAction(<conv>5__2, ManaGroup.Philosophies(((ManaGroup)(ref <conv>5__2)).Amount), true);
<>1__state = 2;
return true;
case 2:
<>1__state = -1;
break;
}
return false;
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
[DebuggerHidden]
IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
{
<OnTurnStarted>d__1 result;
if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
{
<>1__state = 0;
result = this;
}
else
{
result = new <OnTurnStarted>d__1(0)
{
<>4__this = <>4__this
};
}
return result;
}
[DebuggerHidden]
IEnumerator IEnumerable.GetEnumerator()
{
return ((IEnumerable<BattleAction>)this).GetEnumerator();
}
}
protected override void OnEnterBattle()
{
((Exhibit)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Owner).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnTurnStarted);
}
[IteratorStateMachine(typeof(<OnTurnStarted>d__1))]
private IEnumerable<BattleAction> OnTurnStarted(UnitEventArgs args)
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new <OnTurnStarted>d__1(-2)
{
<>4__this = this
};
}
}
public sealed class MomijiSwordDef : ExhibitTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("MomijiSword");
}
public override ExhibitConfig MakeConfig()
{
//IL_0066: Unknown result type (might be due to invalid IL or missing references)
//IL_006c: Expected O, but got Unknown
return new ExhibitConfig(0, "", 69, false, false, false, true, (AppearanceType)0, "", (ExhibitLosableType)2, (Rarity)3, (int?)1, (int?)null, (int?)null, (ManaGroup?)null, (ManaColor?)null, (ManaColor?)(ManaColor)4, 1, false, (int?)null, (Keyword)0, (IReadOnlyList<string>)new List<string> { "MomijiSwordFocus" }, (IReadOnlyList<string>)new List<string>());
}
public override ExhibitSprites LoadSprite()
{
//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_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Expected O, but got Unknown
return new ExhibitSprites
{
main = ResourceLoader.LoadSprite(IdContainer.op_Implicit(((EntityDefinition)this).GetId()) + ".png", (IResourceSource)(object)BepinexPlugin.directorySource, (Rect?)null, 1, (Vector2?)null)
};
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.exhibitLoc.AddEntity((EntityDefinition)(object)this);
}
}
[EntityLogic(typeof(MomijiSwordDef))]
public sealed class MomijiSword : ShiningExhibit
{
[CompilerGenerated]
private sealed class <>c__DisplayClass3_0
{
public Unit target;
internal bool <OnStatisticalDamageDealt>b__0(EnemyUnit tgt)
{
return tgt != target;
}
}
[CompilerGenerated]
private sealed class <CleanseSE>d__1 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
{
private int <>1__state;
private BattleAction <>2__current;
private int <>l__initialThreadId;
private IEnumerable<EnemyUnit> enemies;
public IEnumerable<EnemyUnit> <>3__enemies;
private IEnumerator<EnemyUnit> <>7__wrap1;
BattleAction IEnumerator<BattleAction>.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
[DebuggerHidden]
public <CleanseSE>d__1(int <>1__state)
{
this.<>1__state = <>1__state;
<>l__initialThreadId = Environment.CurrentManagedThreadId;
}
[DebuggerHidden]
void IDisposable.Dispose()
{
int num = <>1__state;
if (num == -3 || num == 1)
{
try
{
}
finally
{
<>m__Finally1();
}
}
<>7__wrap1 = null;
<>1__state = -2;
}
private bool MoveNext()
{
//IL_0053: Unknown result type (might be due to invalid IL or missing references)
//IL_005d: Expected O, but got Unknown
try
{
switch (<>1__state)
{
default:
return false;
case 0:
<>1__state = -1;
<>7__wrap1 = enemies.GetEnumerator();
<>1__state = -3;
break;
case 1:
<>1__state = -3;
break;
}
while (<>7__wrap1.MoveNext())
{
MomijiSwordFocus statusEffect = ((Unit)<>7__wrap1.Current).GetStatusEffect<MomijiSwordFocus>();
if (statusEffect != null)
{
<>2__current = (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)statusEffect, true, 0.06f);
<>1__state = 1;
return true;
}
}
<>m__Finally1();
<>7__wrap1 = null;
return false;
}
catch
{
//try-fault
((IDisposable)this).Dispose();
throw;
}
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
private void <>m__Finally1()
{
<>1__state = -1;
if (<>7__wrap1 != null)
{
<>7__wrap1.Dispose();
}
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
[DebuggerHidden]
IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
{
<CleanseSE>d__1 <CleanseSE>d__;
if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
{
<>1__state = 0;
<CleanseSE>d__ = this;
}
else
{
<CleanseSE>d__ = new <CleanseSE>d__1(0);
}
<CleanseSE>d__.enemies = <>3__enemies;
return <CleanseSE>d__;
}
[DebuggerHidden]
IEnumerator IEnumerable.GetEnumerator()
{
return ((IEnumerable<BattleAction>)this).GetEnumerator();
}
}
[CompilerGenerated]
private sealed class <OnStatisticalDamageDealt>d__3 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
{
private int <>1__state;
private BattleAction <>2__current;
private int <>l__initialThreadId;
public MomijiSword <>4__this;
private StatisticalDamageEventArgs args;
public StatisticalDamageEventArgs <>3__args;
private IEnumerable<EnemyUnit> <otherEnemies>5__2;
private IEnumerator<BattleAction> <>7__wrap2;
BattleAction IEnumerator<BattleAction>.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
[DebuggerHidden]
public <OnStatisticalDamageDealt>d__3(int <>1__state)
{
this.<>1__state = <>1__state;
<>l__initialThreadId = Environment.CurrentManagedThreadId;
}
[DebuggerHidden]
void IDisposable.Dispose()
{
int num = <>1__state;
if (num == -3 || num == 2)
{
try
{
}
finally
{
<>m__Finally1();
}
}
<otherEnemies>5__2 = null;
<>7__wrap2 = null;
<>1__state = -2;
}
private bool MoveNext()
{
try
{
int num = <>1__state;
MomijiSword momijiSword = <>4__this;
switch (num)
{
default:
return false;
case 0:
<>1__state = -1;
if (((Exhibit)momijiSword).Battle.BattleShouldEnd)
{
return false;
}
<otherEnemies>5__2 = ((Exhibit)momijiSword).Battle.AllAliveEnemies;
if (1 == args.ArgsTable.Count)
{
<>c__DisplayClass3_0 CS$<>8__locals0 = new <>c__DisplayClass3_0();
args.ArgsTable.First().Deconstruct(out var key, out var value);
CS$<>8__locals0.target = key;
IReadOnlyList<DamageEventArgs> source = value;
<otherEnemies>5__2 = <otherEnemies>5__2.Where((EnemyUnit tgt) => tgt != CS$<>8__locals0.target);
if (CS$<>8__locals0.target.IsAlive)
{
int num2 = source.Count(delegate(DamageEventArgs dmg)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_000f: Invalid comparison between I4 and Unknown
//IL_0017: 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)
DamageInfo damageInfo = dmg.DamageInfo;
if (2 == (int)((DamageInfo)(ref damageInfo)).DamageType)
{
damageInfo = dmg.DamageInfo;
return 0f < ((DamageInfo)(ref damageInfo)).Amount;
}
return false;
});
if (0 < num2)
{
((Exhibit)momijiSword).NotifyActivating();
<>2__current = (BattleAction)(object)new ApplyStatusEffectAction<MomijiSwordFocus>(CS$<>8__locals0.target, (int?)(num2 * ((Exhibit)momijiSword).Value1), (int?)null, (int?)null, (int?)null, 0f, true);
<>1__state = 1;
return true;
}
}
}
goto IL_014d;
case 1:
<>1__state = -1;
goto IL_014d;
case 2:
{
<>1__state = -3;
break;
}
IL_014d:
<>7__wrap2 = momijiSword.CleanseSE(<otherEnemies>5__2).GetEnumerator();
<>1__state = -3;
break;
}
if (<>7__wrap2.MoveNext())
{
BattleAction current = <>7__wrap2.Current;
<>2__current = current;
<>1__state = 2;
return true;
}
<>m__Finally1();
<>7__wrap2 = null;
return false;
}
catch
{
//try-fault
((IDisposable)this).Dispose();
throw;
}
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
private void <>m__Finally1()
{
<>1__state = -1;
if (<>7__wrap2 != null)
{
<>7__wrap2.Dispose();
}
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
[DebuggerHidden]
IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
{
<OnStatisticalDamageDealt>d__3 <OnStatisticalDamageDealt>d__;
if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
{
<>1__state = 0;
<OnStatisticalDamageDealt>d__ = this;
}
else
{
<OnStatisticalDamageDealt>d__ = new <OnStatisticalDamageDealt>d__3(0)
{
<>4__this = <>4__this
};
}
<OnStatisticalDamageDealt>d__.args = <>3__args;
return <OnStatisticalDamageDealt>d__;
}
[DebuggerHidden]
IEnumerator IEnumerable.GetEnumerator()
{
return ((IEnumerable<BattleAction>)this).GetEnumerator();
}
}
[CompilerGenerated]
private sealed class <OnTurnEnded>d__2 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
{
private int <>1__state;
private BattleAction <>2__current;
private int <>l__initialThreadId;
public MomijiSword <>4__this;
private IEnumerator<BattleAction> <>7__wrap1;
BattleAction IEnumerator<BattleAction>.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
[DebuggerHidden]
public <OnTurnEnded>d__2(int <>1__state)
{
this.<>1__state = <>1__state;
<>l__initialThreadId = Environment.CurrentManagedThreadId;
}
[DebuggerHidden]
void IDisposable.Dispose()
{
int num = <>1__state;
if (num == -3 || num == 1)
{
try
{
}
finally
{
<>m__Finally1();
}
}
<>7__wrap1 = null;
<>1__state = -2;
}
private bool MoveNext()
{
try
{
int num = <>1__state;
MomijiSword momijiSword = <>4__this;
switch (num)
{
default:
return false;
case 0:
<>1__state = -1;
if (((Exhibit)momijiSword).Battle.BattleShouldEnd)
{
return false;
}
<>7__wrap1 = momijiSword.CleanseSE(((Exhibit)momijiSword).Battle.AllAliveEnemies).GetEnumerator();
<>1__state = -3;
break;
case 1:
<>1__state = -3;
break;
}
if (<>7__wrap1.MoveNext())
{
BattleAction current = <>7__wrap1.Current;
<>2__current = current;
<>1__state = 1;
return true;
}
<>m__Finally1();
<>7__wrap1 = null;
return false;
}
catch
{
//try-fault
((IDisposable)this).Dispose();
throw;
}
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
private void <>m__Finally1()
{
<>1__state = -1;
if (<>7__wrap1 != null)
{
<>7__wrap1.Dispose();
}
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
[DebuggerHidden]
IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
{
<OnTurnEnded>d__2 result;
if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
{
<>1__state = 0;
result = this;
}
else
{
result = new <OnTurnEnded>d__2(0)
{
<>4__this = <>4__this
};
}
return result;
}
[DebuggerHidden]
IEnumerator IEnumerable.GetEnumerator()
{
return ((IEnumerable<BattleAction>)this).GetEnumerator();
}
}
protected override void OnEnterBattle()
{
((Exhibit)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Owner).TurnEnded, (EventSequencedReactor<UnitEventArgs>)OnTurnEnded);
((Exhibit)this).ReactBattleEvent<StatisticalDamageEventArgs>(((Unit)((Exhibit)this).Owner).StatisticalTotalDamageDealt, (EventSequencedReactor<StatisticalDamageEventArgs>)OnStatisticalDamageDealt);
}
[IteratorStateMachine(typeof(<CleanseSE>d__1))]
private IEnumerable<BattleAction> CleanseSE(IEnumerable<EnemyUnit> enemies)
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new <CleanseSE>d__1(-2)
{
<>3__enemies = enemies
};
}
[IteratorStateMachine(typeof(<OnTurnEnded>d__2))]
private IEnumerable<BattleAction> OnTurnEnded(UnitEventArgs args)
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new <OnTurnEnded>d__2(-2)
{
<>4__this = this
};
}
[IteratorStateMachine(typeof(<OnStatisticalDamageDealt>d__3))]
private IEnumerable<BattleAction> OnStatisticalDamageDealt(StatisticalDamageEventArgs args)
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new <OnStatisticalDamageDealt>d__3(-2)
{
<>4__this = this,
<>3__args = args
};
}
}
public sealed class SeigaHairpinDef : ExhibitTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("SeigaHairpin");
}
public override ExhibitConfig MakeConfig()
{
//IL_0070: Unknown result type (might be due to invalid IL or missing references)
//IL_0076: Expected O, but got Unknown
return new ExhibitConfig(0, "", 1, false, false, false, true, (AppearanceType)0, "", (ExhibitLosableType)2, (Rarity)3, (int?)1, (int?)null, (int?)null, (ManaGroup?)null, (ManaColor?)null, (ManaColor?)(ManaColor)3, 1, false, (int?)null, (Keyword)0, (IReadOnlyList<string>)new List<string> { "Weak", "Vulnerable" }, (IReadOnlyList<string>)new List<string>());
}
public override ExhibitSprites LoadSprite()
{
//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_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Expected O, but got Unknown
return new ExhibitSprites
{
main = ResourceLoader.LoadSprite(IdContainer.op_Implicit(((EntityDefinition)this).GetId()) + ".png", (IResourceSource)(object)BepinexPlugin.directorySource, (Rect?)null, 1, (Vector2?)null)
};
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.exhibitLoc.AddEntity((EntityDefinition)(object)this);
}
}
[EntityLogic(typeof(SeigaHairpinDef))]
public sealed class SeigaHairpin : ShiningExhibit
{
[CompilerGenerated]
private sealed class <OnEnemySpawned>d__2 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
{
private int <>1__state;
private BattleAction <>2__current;
private int <>l__initialThreadId;
public SeigaHairpin <>4__this;
private UnitEventArgs args;
public UnitEventArgs <>3__args;
BattleAction IEnumerator<BattleAction>.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
[DebuggerHidden]
public <OnEnemySpawned>d__2(int <>1__state)
{
this.<>1__state = <>1__state;
<>l__initialThreadId = Environment.CurrentManagedThreadId;
}
[DebuggerHidden]
void IDisposable.Dispose()
{
<>1__state = -2;
}
private bool MoveNext()
{
int num = <>1__state;
SeigaHairpin seigaHairpin = <>4__this;
switch (num)
{
default:
return false;
case 0:
<>1__state = -1;
if (((Unit)((Exhibit)seigaHairpin).Owner).HasStatusEffect<Weak>())
{
((Exhibit)seigaHairpin).NotifyActivating();
<>2__current = seigaHairpin.ApplyPhantomSE<Weak>(args.Unit);
<>1__state = 1;
return true;
}
goto IL_0063;
case 1:
<>1__state = -1;
goto IL_0063;
case 2:
{
<>1__state = -1;
break;
}
IL_0063:
if (((Unit)((Exhibit)seigaHairpin).Owner).HasStatusEffect<Vulnerable>())
{
((Exhibit)seigaHairpin).NotifyActivating();
<>2__current = seigaHairpin.ApplyPhantomSE<Vulnerable>(args.Unit);
<>1__state = 2;
return true;
}
break;
}
((Exhibit)seigaHairpin).HandleBattleEvent<StatusEffectEventArgs>(args.Unit.StatusEffectRemoving, (GameEventHandler<StatusEffectEventArgs>)seigaHairpin.OnEnemyStatusEffectRemoving);
return false;
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
[DebuggerHidden]
IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
{
<OnEnemySpawned>d__2 <OnEnemySpawned>d__;
if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
{
<>1__state = 0;
<OnEnemySpawned>d__ = this;
}
else
{
<OnEnemySpawned>d__ = new <OnEnemySpawned>d__2(0)
{
<>4__this = <>4__this
};
}
<OnEnemySpawned>d__.args = <>3__args;
return <OnEnemySpawned>d__;
}
[DebuggerHidden]
IEnumerator IEnumerable.GetEnumerator()
{
return ((IEnumerable<BattleAction>)this).GetEnumerator();
}
}
[CompilerGenerated]
private sealed class <OnStatusEffectAdding>d__3 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
{
private int <>1__state;
private BattleAction <>2__current;
private int <>l__initialThreadId;
private StatusEffectApplyEventArgs args;
public StatusEffectApplyEventArgs <>3__args;
public SeigaHairpin <>4__this;
private IEnumerator<EnemyUnit> <>7__wrap1;
BattleAction IEnumerator<BattleAction>.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
[DebuggerHidden]
public <OnStatusEffectAdding>d__3(int <>1__state)
{
this.<>1__state = <>1__state;
<>l__initialThreadId = Environment.CurrentManagedThreadId;
}
[DebuggerHidden]
void IDisposable.Dispose()
{
switch (<>1__state)
{
case -3:
case 1:
try
{
}
finally
{
<>m__Finally1();
}
break;
case -4:
case 2:
try
{
}
finally
{
<>m__Finally2();
}
break;
}
<>7__wrap1 = null;
<>1__state = -2;
}
private bool MoveNext()
{
try
{
int num = <>1__state;
SeigaHairpin seigaHairpin = <>4__this;
switch (num)
{
default:
return false;
case 0:
<>1__state = -1;
if (args.Effect is Weak)
{
if (!((Exhibit)seigaHairpin).Active)
{
((Exhibit)seigaHairpin).NotifyActivating();
((Exhibit)seigaHairpin).Active = true;
}
<>7__wrap1 = ((Exhibit)seigaHairpin).Battle.AllAliveEnemies.Where((EnemyUnit enemy) => !((Unit)enemy).HasStatusEffect<Weak>()).GetEnumerator();
<>1__state = -3;
goto IL_00cb;
}
goto IL_00e5;
case 1:
<>1__state = -3;
goto IL_00cb;
case 2:
{
<>1__state = -4;
goto IL_0181;
}
IL_0181:
if (<>7__wrap1.MoveNext())
{
EnemyUnit current = <>7__wrap1.Current;
<>2__current = seigaHairpin.ApplyPhantomSE<Vulnerable>((Unit)(object)current);
<>1__state = 2;
return true;
}
<>m__Finally2();
<>7__wrap1 = null;
break;
IL_00cb:
if (<>7__wrap1.MoveNext())
{
EnemyUnit current2 = <>7__wrap1.Current;
<>2__current = seigaHairpin.ApplyPhantomSE<Weak>((Unit)(object)current2);
<>1__state = 1;
return true;
}
<>m__Finally1();
<>7__wrap1 = null;
goto IL_00e5;
IL_00e5:
if (!(args.Effect is Vulnerable))
{
break;
}
if (!((Exhibit)seigaHairpin).Active)
{
((Exhibit)seigaHairpin).NotifyActivating();
((Exhibit)seigaHairpin).Active = true;
}
<>7__wrap1 = ((Exhibit)seigaHairpin).Battle.AllAliveEnemies.Where((EnemyUnit enemy) => !((Unit)enemy).HasStatusEffect<Vulnerable>()).GetEnumerator();
<>1__state = -4;
goto IL_0181;
}
return false;
}
catch
{
//try-fault
((IDisposable)this).Dispose();
throw;
}
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
private void <>m__Finally1()
{
<>1__state = -1;
if (<>7__wrap1 != null)
{
<>7__wrap1.Dispose();
}
}
private void <>m__Finally2()
{
<>1__state = -1;
if (<>7__wrap1 != null)
{
<>7__wrap1.Dispose();
}
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
[DebuggerHidden]
IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
{
<OnStatusEffectAdding>d__3 <OnStatusEffectAdding>d__;
if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
{
<>1__state = 0;
<OnStatusEffectAdding>d__ = this;
}
else
{
<OnStatusEffectAdding>d__ = new <OnStatusEffectAdding>d__3(0)
{
<>4__this = <>4__this
};
}
<OnStatusEffectAdding>d__.args = <>3__args;
return <OnStatusEffectAdding>d__;
}
[DebuggerHidden]
IEnumerator IEnumerable.GetEnumerator()
{
return ((IEnumerable<BattleAction>)this).GetEnumerator();
}
}
[CompilerGenerated]
private sealed class <OnStatusEffectRemoved>d__4 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
{
private int <>1__state;
private BattleAction <>2__current;
private int <>l__initialThreadId;
private StatusEffectEventArgs args;
public StatusEffectEventArgs <>3__args;
public SeigaHairpin <>4__this;
private IEnumerator<EnemyUnit> <>7__wrap1;
BattleAction IEnumerator<BattleAction>.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
[DebuggerHidden]
public <OnStatusEffectRemoved>d__4(int <>1__state)
{
this.<>1__state = <>1__state;
<>l__initialThreadId = Environment.CurrentManagedThreadId;
}
[DebuggerHidden]
void IDisposable.Dispose()
{
switch (<>1__state)
{
case -3:
case 1:
try
{
}
finally
{
<>m__Finally1();
}
break;
case -4:
case 2:
try
{
}
finally
{
<>m__Finally2();
}
break;
}
<>7__wrap1 = null;
<>1__state = -2;
}
private bool MoveNext()
{
//IL_0090: Unknown result type (might be due to invalid IL or missing references)
//IL_009a: Expected O, but got Unknown
//IL_0136: Unknown result type (might be due to invalid IL or missing references)
//IL_0140: Expected O, but got Unknown
try
{
int num = <>1__state;
SeigaHairpin seigaHairpin = <>4__this;
switch (num)
{
default:
return false;
case 0:
<>1__state = -1;
if (args.Effect is Weak)
{
<>7__wrap1 = ((Exhibit)seigaHairpin).Battle.AllAliveEnemies.GetEnumerator();
<>1__state = -3;
goto IL_00b0;
}
if (!(args.Effect is Vulnerable))
{
break;
}
<>7__wrap1 = ((Exhibit)seigaHairpin).Battle.AllAliveEnemies.GetEnumerator();
<>1__state = -4;
goto IL_0153;
case 1:
<>1__state = -3;
goto IL_00b0;
case 2:
{
<>1__state = -4;
goto IL_0153;
}
IL_0153:
while (<>7__wrap1.MoveNext())
{
Vulnerable statusEffect = ((Unit)<>7__wrap1.Current).GetStatusEffect<Vulnerable>();
if (statusEffect != null && (!((StatusEffect)statusEffect).IsAutoDecreasing || 0 >= ((StatusEffect)statusEffect).Duration))
{
<>2__current = (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)statusEffect, true, 0f);
<>1__state = 2;
return true;
}
}
<>m__Finally2();
<>7__wrap1 = null;
break;
IL_00b0:
while (<>7__wrap1.MoveNext())
{
Weak statusEffect2 = ((Unit)<>7__wrap1.Current).GetStatusEffect<Weak>();
if (statusEffect2 != null && (!((StatusEffect)statusEffect2).IsAutoDecreasing || 0 >= ((StatusEffect)statusEffect2).Duration))
{
<>2__current = (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)statusEffect2, true, 0f);
<>1__state = 1;
return true;
}
}
<>m__Finally1();
<>7__wrap1 = null;
break;
}
((Exhibit)seigaHairpin).Active = ((Unit)((Exhibit)seigaHairpin).Owner).HasStatusEffect<Weak>() || ((Unit)((Exhibit)seigaHairpin).Owner).HasStatusEffect<Vulnerable>();
return false;
}
catch
{
//try-fault
((IDisposable)this).Dispose();
throw;
}
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
private void <>m__Finally1()
{
<>1__state = -1;
if (<>7__wrap1 != null)
{
<>7__wrap1.Dispose();
}
}
private void <>m__Finally2()
{
<>1__state = -1;
if (<>7__wrap1 != null)
{
<>7__wrap1.Dispose();
}
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
[DebuggerHidden]
IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
{
<OnStatusEffectRemoved>d__4 <OnStatusEffectRemoved>d__;
if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
{
<>1__state = 0;
<OnStatusEffectRemoved>d__ = this;
}
else
{
<OnStatusEffectRemoved>d__ = new <OnStatusEffectRemoved>d__4(0)
{
<>4__this = <>4__this
};
}
<OnStatusEffectRemoved>d__.args = <>3__args;
return <OnStatusEffectRemoved>d__;
}
[DebuggerHidden]
IEnumerator IEnumerable.GetEnumerator()
{
return ((IEnumerable<BattleAction>)this).GetEnumerator();
}
}
protected override void OnEnterBattle()
{
((Exhibit)this).ReactBattleEvent<StatusEffectApplyEventArgs>(((Unit)((Exhibit)this).Owner).StatusEffectAdding, (EventSequencedReactor<StatusEffectApplyEventArgs>)OnStatusEffectAdding);
((Exhibit)this).ReactBattleEvent<StatusEffectEventArgs>(((Unit)((Exhibit)this).Owner).StatusEffectRemoved, (EventSequencedReactor<StatusEffectEventArgs>)OnStatusEffectRemoved);
((Exhibit)this).ReactBattleEvent<UnitEventArgs>(((Exhibit)this).Battle.EnemySpawned, (EventSequencedReactor<UnitEventArgs>)OnEnemySpawned);
foreach (EnemyUnit allAliveEnemy in ((Exhibit)this).Battle.AllAliveEnemies)
{
((Exhibit)this).HandleBattleEvent<StatusEffectEventArgs>(((Unit)allAliveEnemy).StatusEffectRemoving, (GameEventHandler<StatusEffectEventArgs>)OnEnemyStatusEffectRemoving);
}
}
private BattleAction ApplyPhantomSE<T>(Unit target) where T : StatusEffect
{
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_003a: Unknown result type (might be due to invalid IL or missing references)
//IL_0040: Expected O, but got Unknown
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_0051: Expected O, but got Unknown
//IL_005d: Expected O, but got Unknown
Type typeFromHandle = typeof(T);
int? num = 0;
ApplySEnoTriggers val = new ApplySEnoTriggers(typeFromHandle, target, (int?)null, num, (int?)null, (int?)null, 0f, true);
((EventBattleAction<StatusEffectApplyEventArgs>)val).Args.Effect.ForceNotShowDownText = true;
((EventBattleAction<StatusEffectApplyEventArgs>)val).Args.Effect.IsAutoDecreasing = false;
return (BattleAction)val;
}
[IteratorStateMachine(typeof(<OnEnemySpawned>d__2))]
private IEnumerable<BattleAction> OnEnemySpawned(UnitEventArgs args)
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new <OnEnemySpawned>d__2(-2)
{
<>4__this = this,
<>3__args = args
};
}
[IteratorStateMachine(typeof(<OnStatusEffectAdding>d__3))]
private IEnumerable<BattleAction> OnStatusEffectAdding(StatusEffectApplyEventArgs args)
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new <OnStatusEffectAdding>d__3(-2)
{
<>4__this = this,
<>3__args = args
};
}
[IteratorStateMachine(typeof(<OnStatusEffectRemoved>d__4))]
private IEnumerable<BattleAction> OnStatusEffectRemoved(StatusEffectEventArgs args)
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new <OnStatusEffectRemoved>d__4(-2)
{
<>4__this = this,
<>3__args = args
};
}
private void OnEnemyStatusEffectRemoving(StatusEffectEventArgs args)
{
if ((!(args.Effect is Weak) || !((Unit)((Exhibit)this).Owner).HasStatusEffect<Weak>()) && (!(args.Effect is Vulnerable) || !((Unit)((Exhibit)this).Owner).HasStatusEffect<Vulnerable>()))
{
return;
}
args.Effect.ForceNotShowDownText = true;
args.Effect.IsAutoDecreasing = false;
UnitView view = args.Unit.GetView<UnitView>();
if ((Object)null != (Object)(object)view)
{
StatusEffectWidget obj = view._statusWidget.FindStatusEffect(args.Effect);
if (obj != null)
{
obj.TextRefresh();
}
}
((GameEventArgs)args).CanCancel = true;
((GameEventArgs)args).CancelBy((GameEntity)(object)this);
}
}
[HarmonyPatch(typeof(StatusEffect))]
internal class StatusEffect_Stack_Patch
{
[HarmonyPatch("Stack", new Type[] { typeof(StatusEffect) })]
private static void Postfix(StatusEffect __instance, StatusEffect other)
{
if (__instance is Weak || __instance is Vulnerable)
{
__instance.ForceNotShowDownText &= other.ForceNotShowDownText;
__instance.IsAutoDecreasing |= other.IsAutoDecreasing;
}
}
}
}
namespace System.Runtime.CompilerServices
{
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
internal sealed class IgnoresAccessChecksToAttribute : Attribute
{
internal IgnoresAccessChecksToAttribute(string assemblyName)
{
}
}
}