Пример #1
0
        public static void SetAbility(string ability, string onOff = "toggle")
        {
            AbilitiesManager manager = AbilitiesManager.GetInstance();

            if (ability.ToLower().Equals("stun"))
            {
                Engine.SendPacketToServer(new StunRequest());
                return;
            }

            if (ability.ToLower().Equals("disarm"))
            {
                Engine.SendPacketToServer(new DisarmRequest());
                return;
            }

            bool primary;

            switch (ability.ToLower())
            {
            case "primary":
                primary = true;
                break;

            default:
                primary = false;
                break;
            }

            string onOffNormalized = onOff.Trim().ToLower();

            if (onOffNormalized != "toggle")
            {
                switch (onOffNormalized)
                {
                case "on":
                {
                    if (primary && manager.IsPrimaryEnabled || !primary && manager.IsSecondaryEnabled)
                    {
                        if (!MacroManager.QuietMode)
                        {
                            UOC.SystemMessage(Strings.Ability_already_set___, (int)UOC.SystemMessageHues.Green);
                        }

                        return;
                    }

                    break;
                }

                case "off":
                {
                    if (primary && !manager.IsPrimaryEnabled || !primary && !manager.IsSecondaryEnabled)
                    {
                        if (!MacroManager.QuietMode)
                        {
                            UOC.SystemMessage(Strings.Ability_not_set___, (int)UOC.SystemMessageHues.Green);
                        }

                        return;
                    }

                    break;
                }
                }
            }

            if (onOffNormalized == "off" || onOffNormalized == "toggle" &&
                (manager.IsPrimaryEnabled || manager.IsSecondaryEnabled))
            {
                UOC.ClearWeaponAbility();
            }
            else
            {
                UOC.SystemMessage(string.Format(Strings.Setting_ability___0_____, ability),
                                  (int)UOC.SystemMessageHues.Green);
                manager.SetAbility(primary ? AbilityType.Primary : AbilityType.Secondary);
            }
        }
Пример #2
0
 public static void ClearAbility()
 {
     UOC.ClearWeaponAbility();
 }