public static bool TimedPatch_ChangeUnit3(BeginUnit __instance, WuxiaCell cell, PointerEventData.InputButton btn)
 {
     if (bTimed && cell.Unit != null && btn == PointerEventData.InputButton.Left)
     {
         return(false);
     }
     return(true);
 }
 public static bool TimedPatch_ChangeUnit1(BeginUnit __instance)
 {
     if (bTimed)
     {
         return(false);
     }
     return(true);
 }
        public static bool TimedPatch_BeginUnit2(BeginUnit __instance)
        {
            var t = Traverse.Create(__instance);
            // base.OnEnable();
            var inputInfo = typeof(InputState).GetField("InputInfos", BindingFlags.Static | BindingFlags.NonPublic);

            if (inputInfo.GetValue(null) == null)
            {
                var bii = new List <BattleInputInfo>();
                for (int i = 0; i < 36; i++)
                {
                    BattleInputInfo item = new BattleInputInfo();
                    bii.Add(item);
                }
                inputInfo.SetValue(null, bii);
            }
            Game.Input.Push(__instance);

            BM.Time = BattleEventToggleTime.BeginUnit;
            if (bTimed)
            {
                WuxiaUnit wuxiaUnit = Timed_Current();
                if (wuxiaUnit != null && !Timed_IsWaiting(wuxiaUnit))
                {
                    if (Timed_GetBeginTurn(wuxiaUnit))
                    {
                        wuxiaUnit.OnBufferEvent(BufferTiming.BeginTurn);
                        Timed_SetBeginTurn(wuxiaUnit, false);
                    }
                    BM.OnBattleEvent(BattleEventToggleTime.BeginUnit, Array.Empty <object>());
                    WaitClick = new Action(() =>
                    {
                        UnitWantWait = true;
                        UnitIsRest   = false;
                        __instance.SendEvent("FINISHED");
                    });
                }
            }
            else
            {
                BM.OnBattleEvent(BattleEventToggleTime.BeginUnit, Array.Empty <object>());
            }
            if (!BM.IsEvent)
            {
                t.Method("InitBeginUnit").GetValue();// this.InitBeginUnit();
                FSM.UI.SkillClick = new Action <SkillData>(__instance.OnSkillClick);
                FSM.UI.RestClick  = new Action(__instance.OnRestClick);
            }
            return(false);
        }