Ejemplo n.º 1
0
        public static StreamGeometry GetIcon(LocalMessageType messageType)
        {
            switch (messageType)
            {
            case LocalMessageType.Info:
                return(InfoIcon);

            case LocalMessageType.Warn:
                return(WarnIcon);

            case LocalMessageType.Error:
                return(ErrorIcon);

            default:
                return(null);
            }
        }
Ejemplo n.º 2
0
        public static SolidColorBrush GetIconFill(LocalMessageType messageType)
        {
            switch (messageType)
            {
            case LocalMessageType.Info:
                return(InfoColor);

            case LocalMessageType.Warn:
                return(WarnColor);

            case LocalMessageType.Error:
                return(WpfUtil.RedBrush);

            default:
                return(WpfUtil.BlackBrush);
            }
        }
Ejemplo n.º 3
0
        public static LocalMessageDto ToDto(this ILocalMessage localMessage)
        {
            LocalMessageChannel channel     = LocalMessageChannel.Unspecified;
            LocalMessageType    messageType = LocalMessageType.Info;

            if (localMessage.Channel.TryParse(out LocalMessageChannel localMessageChannel))
            {
                channel = localMessageChannel;
            }
            if (localMessage.MessageType.TryParse(out LocalMessageType localMessageType))
            {
                messageType = localMessageType;
            }
            return(new LocalMessageDto {
                Channel = channel,
                Content = localMessage.Content,
                MessageType = messageType,
                Provider = localMessage.Provider,
                Timestamp = Timestamp.GetTimestamp(localMessage.Timestamp)
            });
        }
Ejemplo n.º 4
0
        public static void LocalMessage(LocalMessageChannel channel, string provider, LocalMessageType messageType, string content, OutEnum outEnum, bool toConsole)
        {
            switch (outEnum)
            {
            case OutEnum.None:
                if (toConsole && _consoleAction.TryGetValue(messageType, out Action <string> action))
                {
                    action(content);
                }
                break;

            case OutEnum.Info:
                Out.ShowInfo(content, toConsole: toConsole);
                break;

            case OutEnum.Warn:
                Out.ShowWarn(content, autoHideSeconds: 4, toConsole: toConsole);
                break;

            case OutEnum.Error:
                Out.ShowError(content, autoHideSeconds: 4, toConsole: toConsole);
                break;

            case OutEnum.Success:
                Out.ShowSuccess(content, toConsole: toConsole);
                break;

            default:
                break;
            }
            Execute(new AddLocalMessageCommand(new LocalMessageData {
                Id          = Guid.NewGuid(),
                Channel     = channel.GetName(),
                Provider    = provider,
                MessageType = messageType.GetName(),
                Content     = content,
                Timestamp   = DateTime.Now
            }));
        }
Ejemplo n.º 5
0
 public static void LocalMessage(LocalMessageChannel channel, string provider, LocalMessageType messageType, string consoleLine, string content, OutEnum outEnum)
 {
     if (_consoleAction.TryGetValue(messageType, out Action <string> action))
     {
         action(consoleLine);
     }
     LocalMessage(channel, provider, messageType, content, outEnum, toConsole: false);
 }
Ejemplo n.º 6
0
        public static void LocalMessage(LocalMessageChannel channel, string provider, LocalMessageType messageType, string content, OutEnum outEnum, bool toConsole)
        {
            switch (outEnum)
            {
            case OutEnum.None:
                break;

            case OutEnum.Info:
                Out.ShowInfo(content);
                break;

            case OutEnum.Warn:
                Out.ShowWarn(content, delaySeconds: 4);
                break;

            case OutEnum.Error:
                Out.ShowError(content, delaySeconds: 4);
                break;

            case OutEnum.Success:
                Out.ShowSuccess(content);
                break;

            default:
                break;
            }
            if (toConsole)
            {
                switch (messageType)
                {
                case LocalMessageType.Info:
                    Write.UserInfo(content);
                    break;

                case LocalMessageType.Warn:
                    Write.UserWarn(content);
                    break;

                case LocalMessageType.Error:
                    Write.UserError(content);
                    break;

                default:
                    break;
                }
            }
            Execute(new AddLocalMessageCommand(new LocalMessageData {
                Id          = Guid.NewGuid(),
                Channel     = channel.GetName(),
                Provider    = provider,
                MessageType = messageType.GetName(),
                Content     = content,
                Timestamp   = DateTime.Now
            }));
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Wysyła lokalną wiadomość czatu
        /// </summary>
        /// <param name="charId"></param>
        /// <param name="message"></param>
        /// <param name="pronoun"></param>
        /// <param name="ignoredEntity"></param>
        /// <param name="action"></param>
        /// <param name="messageType"></param>
        public static void SendPlayerLocalMessage(int charId, string message, string pronoun,
                                                  Client ignoredEntity = null, bool action = true, LocalMessageType messageType = LocalMessageType.Talk)
        {
            Character charData = Account.GetPlayerData(charId);

            if (charData == null)
            {
                return;
            }
            SendPlayerLocalMessage(charData, message, pronoun, ignoredEntity, action, messageType);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Wysyła lokalną wiadomość czatu
        /// </summary>
        /// <param name="charData"></param>
        /// <param name="message"></param>
        /// <param name="pronoun"></param>
        /// <param name="ignoredEntity"></param>
        /// <param name="action"></param>
        /// <param name="messageType"></param>
        public static void SendPlayerLocalMessage(Character charData, string message, string pronoun,
                                                  Client ignoredEntity = null, bool action = true, LocalMessageType messageType = LocalMessageType.Talk)
        {
            string messageOutput = $"{Player.GetPlayerIcName(charData)} {pronoun}: {Command.UpperFirst(message)}";
            double radius        =
                messageType == LocalMessageType.Shout ? Constants.RadiusShout :
                messageType == LocalMessageType.Whisper ? Constants.RadiusQuiet :
                messageType == LocalMessageType.Megaphone ? Constants.RadiusMegapthone :
                Constants.RadiusTalk;

            IEnumerable <Character> playersInRadius = Global.GetPlayersInRange(charData.PlayerHandle.Position, radius,
                                                                               charData.PlayerHandle.Dimension);

            List <int> asterisks = new List <int>();

            if (action)
            {
                asterisks = GetAsterisksInText(messageOutput);
                if (asterisks.Count > 0 && asterisks.Count % 2 != 0)
                {
                    asterisks.RemoveAt(asterisks.Count - 1);
                }
            }

            foreach (Character entry in playersInRadius)
            {
                if (ignoredEntity != null && ignoredEntity == entry.PlayerHandle)
                {
                    continue;
                }

                string outputMessage = $"{messageOutput}";
                double progress      =
                    Global.GetDistanceBetweenPositions(charData.PlayerHandle.Position, entry.PlayerHandle.Position) /
                    radius;

                int cr = (int)Math.Floor(Global.Lerp(255, 60, (float)progress));
                int cg = (int)Math.Floor(Global.Lerp(255, 60, (float)progress));
                int cb = (int)Math.Floor(Global.Lerp(255, 60, (float)progress));

                if (messageType == LocalMessageType.Megaphone)
                {
                    cr = (int)Math.Floor(Global.Lerp(252, 173, (float)progress));
                    cg = (int)Math.Floor(Global.Lerp(249, 170, (float)progress));
                    cb = (int)Math.Floor(Global.Lerp(63, 10, (float)progress));
                }

                if (action)
                {
                    if (asterisks.Count > 0)
                    {
                        int r = (int)Math.Floor(Global.Lerp(194, 144, (float)progress)),
                            g = (int)Math.Floor(Global.Lerp(162, 112, (float)progress)),
                            b = (int)Math.Floor(Global.Lerp(218, 168, (float)progress));
                        for (int i = asterisks.Count - 1; i > -1; i--)
                        {
                            if (i % 2 == 0)
                            {
                                outputMessage = $"{outputMessage.Substring(0, asterisks[i])}!{{{r}, {g}, {b}}}" +
                                                $"{outputMessage.Substring(asterisks[i])}";
                            }
                            else
                            {
                                outputMessage = $"{outputMessage.Substring(0, asterisks[i] + 1)}!{{{cr}, {cg}, {cb}}}" +
                                                $"{outputMessage.Substring(asterisks[i] + 1)}";
                            }
                        }
                    }
                }

                entry.PlayerHandle.SendChatMessage($"!{{{cr}, {cg}, {cb}}}{outputMessage}");
                Log.LogPlayer(charData, messageOutput, LogType.ChatIc);
            }
        }
Ejemplo n.º 9
0
        private static void ThisLocalMessage(string provider, LocalMessageType messageType, string content, OutEnum outEnum, bool toConsole)
        {
            switch (outEnum)
            {
            case OutEnum.None:
                break;

            case OutEnum.Info:
                Out.ShowInfo(content);
                break;

            case OutEnum.Warn:
                Out.ShowWarn(content, delaySeconds: 4);
                break;

            case OutEnum.Error:
                Out.ShowError(content, delaySeconds: 4);
                break;

            case OutEnum.Success:
                Out.ShowSuccess(content);
                break;

            case OutEnum.Auto:
                switch (messageType)
                {
                case LocalMessageType.Info:
                    Out.ShowInfo(content);
                    break;

                case LocalMessageType.Warn:
                    Out.ShowWarn(content, delaySeconds: 4);
                    break;

                case LocalMessageType.Error:
                    Out.ShowError(content, delaySeconds: 4);
                    break;

                default:
                    break;
                }
                break;

            default:
                break;
            }
            if (toConsole)
            {
                switch (messageType)
                {
                case LocalMessageType.Info:
                    Write.UserInfo(content);
                    break;

                case LocalMessageType.Warn:
                    Write.UserWarn(content);
                    break;

                case LocalMessageType.Error:
                    Write.UserError(content);
                    break;

                default:
                    break;
                }
            }
            LocalMessages.Add(LocalMessageChannel.This.GetName(), provider, messageType.GetName(), content);
        }