Exemple #1
0
        private static async Task <bool> Flamethrower()
        {
            if (ActionResourceManager.Machinist.Heat >= 100 || MovementManager.IsMoving || Spells.BarrelStabilizer.Cooldown == TimeSpan.Zero || !BarretSettingsModel.Instance.UseFlamethrower)
            {
                return(false);
            }

            if (Spells.BarrelStabilizer.Cooldown.TotalMilliseconds < 23000 && UseWildfire && Spells.Wildfire.Cooldown.TotalMilliseconds < 3000)
            {
                if (WFMessage == false)
                {
                    ToastManager.AddToast("ST Flamethrower coming in ~3 seconds!", TimeSpan.FromMilliseconds(1500), MainSettingsModel.Instance.ToastColor(false), Colors.White, new FontFamily("High Tower Text Italic"), new FontWeight(), 52);
                    WFMessage = true;
                }

                if (await Spells.Flamethrower.Use(Me, Spells.BarrelStabilizer.Cooldown.TotalMilliseconds < 20000))
                {
                    await Coroutine.Wait(3000, () => Core.Player.HasAura(Auras.Flamethrower) && (ActionResourceManager.Machinist.Heat == 100 || ActionResourceManager.Machinist.Timer.TotalMilliseconds > 0));

                    WFMessage = true;
                    return(true);
                }
                return(false);
            }
            return(false);
        }
Exemple #2
0
        private static async Task <bool> Ninjutsu()
        {
            if (ActionManager.CanCast(Spells.Ninjutsu, Target))
            {
                return(await Spells.Ninjutsu.Use(Target, true));
            }

            if (ShadowSettingsModel.Instance.UseTenChiJin &&
                ShadowSettingsModel.Instance.TcjSelection != TCJMode.None &&
                Me.InCombat &&
                ActionResourceManager.Ninja.NinkiGauge >= 74 &&
                Spells.TrickAttack.Cooldown.TotalMilliseconds < 3000 &&
                Spells.TenChiJin.Cooldown.TotalMilliseconds < 3000 &&
                TCJMessage == false &&
                Target.HealthCheck(false) &&
                Target.TimeToDeathCheck() &&
                Me.ClassLevel == 70)
            {
                ToastManager.AddToast("Ten-Chi-Jin coming in ~3 seconds!", TimeSpan.FromMilliseconds(1500), MainSettingsModel.Instance.ToastColor(false), Colors.White, new FontFamily("High Tower Text Italic"), new FontWeight(), 52);
                TCJMessage = true;
            }

            if (await Spells.TenChiJin.CastBuff(Me, Me.InCombat &&
                                                ShadowSettingsModel.Instance.UseTenChiJin &&
                                                ShadowSettingsModel.Instance.TcjSelection != TCJMode.None &&
                                                ActionResourceManager.Ninja.NinkiGauge >= 80 &&
                                                Spells.TrickAttack.Cooldown.TotalMilliseconds == 0 &&
                                                Target.CanAttack &&
                                                TCJTimerGood() &&
                                                Target.HealthCheck(false) &&
                                                Target.TimeToDeathCheck(), Auras.TenChiJin))
            {
                TCJMessage = false;
                return(await TenChiJin());
            }

            if (!ActionManager.CanCast(Spells.Ten, Me) && !ActionManager.CanCast(Spells.Kassatsu, Me))
            {
                return(false);
            }

            if (ShadowSettingsModel.Instance.UseNinjutsu &&
                Me.ClassLevel >= 45 &&
                ActionManager.LastSpell != Spells.ArmorCrush &&
                CombatHelper.LastSpell != Spells.ArmorCrush &&
                (!WorldManager.InSanctuary || Me.InCombat) &&
                (ActionResourceManager.Ninja.HutonTimer.TotalSeconds == 0 || ActionResourceManager.Ninja.HutonTimer.TotalSeconds < 7) &&
                ShadowSettingsModel.Instance.ArmorCrushRfsh >= 10000)
            {
                return(await Huton());
            }

            if (await Kassatsu())
            {
                return(true);
            }

            if (Target == null || !Target.CanAttack ||
                !ShadowSettingsModel.Instance.UseNinjutsu ||
                CombatHelper.GcdTimeRemaining < 1800 ||
                CombatHelper.LastSpell == Spells.Mug ||
                CombatHelper.LastSpell == Spells.Assassinate ||
                CombatHelper.LastSpell == Spells.Jugulate ||
                CombatHelper.LastSpell == Spells.Goad)
            {
                return(false);
            }

            if (ActionResourceManager.Ninja.HutonTimer.TotalSeconds == 0 && Me.ClassLevel >= 45)
            {
                return(false);
            }

            if (await Katon_Doton())
            {
                return(true);
            }
            if (await Katon())
            {
                return(true);
            }
            if (await Doton())
            {
                return(true);
            }
            if (await Suiton())
            {
                return(true);
            }
            if (await AutoMode())
            {
                return(true);
            }
            if (await Raiton())
            {
                return(true);
            }
            return(await FumaShuriken());
        }
        public void RegisterAll()
        {
            HotkeyManager.Register("ATB_Pause", PauseKey, PauseModifier, hk =>
            {
                MainSettingsModel.Instance.UsePause = !MainSettingsModel.Instance.UsePause;
                ToastManager.AddToast(MainSettingsModel.Instance.UsePause ? "ATB Paused!" : "ATB Resumed!", TimeSpan.FromMilliseconds(750), Color.FromRgb(110, 225, 214), Colors.White, new FontFamily("High Tower Text Italic"), new FontWeight(), 52);

                if (MainSettingsModel.Instance.UseOverlay)
                {
                    if (MainSettingsModel.Instance.HideOverlayWhenRunning && !MainSettingsModel.Instance.UsePause)
                    {
                        OverlayLogic.Stop();
                    }
                    else
                    {
                        OverlayLogic.Start();
                    }
                }

                if (MainSettingsModel.Instance.UseOutputToEcho)
                {
                    ChatManager.SendChat(MainSettingsModel.Instance.UsePause ? "/echo ATB Paused!" : "/echo ATB Resumed!");
                }

                Logger.ATBLog(MainSettingsModel.Instance.UsePause ? "ATB Paused!" : "ATB Resumed!");
            });

            HotkeyManager.Register("ATB_ChangeAutoTarget", ChangeAutoTargetKey, ChangeAutoTargetModifier, hk =>
            {
                MainSettingsModel.Instance.ChangeAutoTargetSelectionCommand.Execute(null);
                ToastManager.AddToast(MainSettingsModel.Instance.AutoTargetSelection.ToString(), TimeSpan.FromMilliseconds(750), Color.FromRgb(110, 225, 214), Colors.White, new FontFamily("High Tower Text Italic"), new FontWeight(), 52);

                if (MainSettingsModel.Instance.UseOutputToEcho)
                {
                    ChatManager.SendChat("/echo " + MainSettingsModel.Instance.AutoTargetSelection + " selected!");
                }

                Logger.ATBLog(MainSettingsModel.Instance.AutoTargetSelection + " selected!");
            });

            HotkeyManager.Register("ATB_SmartPull", SmartPullKey, SmartPullModifier, hk =>
            {
                MainSettingsModel.Instance.UseSmartPull = !MainSettingsModel.Instance.UseSmartPull;
                ToastManager.AddToast(MainSettingsModel.Instance.UseSmartPull ? "Smart Pull Enabled!" : "Smart Pull Disabled!", TimeSpan.FromMilliseconds(750), Color.FromRgb(110, 225, 214), Colors.White, new FontFamily("High Tower Text Italic"), new FontWeight(), 52);

                if (MainSettingsModel.Instance.UseOutputToEcho)
                {
                    ChatManager.SendChat(MainSettingsModel.Instance.UseSmartPull ? "/echo Smart Pull Enabled!" : "/echo Smart Pull Disabled!");
                }

                Logger.ATBLog(MainSettingsModel.Instance.UseSmartPull ? "Smart Pull Enabled!" : "Smart Pull Disabled!");
            });

            HotkeyManager.Register("ATB_MechanicWarnings", MechanicWarningKey, MechanicWarningModifier, hk =>
            {
                MainSettingsModel.Instance.UseExtremeCaution = !MainSettingsModel.Instance.UseExtremeCaution;
                ToastManager.AddToast(MainSettingsModel.Instance.UseExtremeCaution ? "Mechanic Warnings Enabled!" : "Mechanic Warnings Disabled!", TimeSpan.FromMilliseconds(750), Color.FromRgb(110, 225, 214), Colors.White, new FontFamily("High Tower Text Italic"), new FontWeight(), 52);

                if (MainSettingsModel.Instance.UseOutputToEcho)
                {
                    ChatManager.SendChat(MainSettingsModel.Instance.UseExtremeCaution ? "/echo Mechanic Warnings Enabled!" : "/echo Mechanic Warnings Disabled!");
                }

                Logger.ATBLog(MainSettingsModel.Instance.UseExtremeCaution ? "Mechanic Warnings Enabled!" : "Mechanic Warnings Disabled!");
            });

            HotkeyManager.Register("ATB_AutoTargeting", AutoTargetingKey, AutoTargetingModifier, hk =>
            {
                MainSettingsModel.Instance.UseAutoTargeting = !MainSettingsModel.Instance.UseAutoTargeting;
                ToastManager.AddToast(MainSettingsModel.Instance.UseAutoTargeting ? "Auto-Targeting Enabled!" : "Auto-Targeting Disabled!", TimeSpan.FromMilliseconds(750), Color.FromRgb(110, 225, 214), Colors.White, new FontFamily("High Tower Text Italic"), new FontWeight(), 52);

                if (MainSettingsModel.Instance.UseOutputToEcho)
                {
                    ChatManager.SendChat(MainSettingsModel.Instance.UseAutoTargeting ? "/echo Auto-Targeting Enabled!" : "/echo Auto-Targeting Disabled!");
                }

                Logger.ATBLog(MainSettingsModel.Instance.UseAutoTargeting ? "Auto-Targeting Enabled!" : "Auto-Targeting Disabled!");
            });

            HotkeyManager.Register("ATB_AutoFace", AutoFaceKey, AutoFaceModifier, hk =>
            {
                MainSettingsModel.Instance.UseAutoFace = !MainSettingsModel.Instance.UseAutoFace;
                ToastManager.AddToast(MainSettingsModel.Instance.UseAutoFace ? "Auto-Face Enabled!" : "Auto-Face Disabled!", TimeSpan.FromMilliseconds(750), Color.FromRgb(110, 225, 214), Colors.White, new FontFamily("High Tower Text Italic"), new FontWeight(), 52);

                if (MainSettingsModel.Instance.UseOutputToEcho)
                {
                    ChatManager.SendChat(MainSettingsModel.Instance.UseAutoFace ? "/echo Auto-Face Enabled!" : "/echo Auto-Face Disabled!");
                }

                Logger.ATBLog(MainSettingsModel.Instance.UseAutoFace ? "Auto-Face Enabled!" : "Auto-Face Disabled!");
            });
        }