public void OnSkillLevelChanged(IProtoSkill skill, SkillLevelData data)
        {
            this.OnSkillsChanged();

            Api.SafeInvoke(() => SkillLevelChanged?.Invoke(skill, data));

            var level = data.Level;

            if (level == 0)
            {
                return;
            }

            ClientTimersSystem.AddAction(
                delaySeconds: 1,
                () =>
            {
                // show notification
                if (level == 1)
                {
                    Client.Audio.PlayOneShot(SoundResourceSkillDiscovered, volume: 0.5f);
                    NotificationSystem.ClientShowNotification(
                        string.Format(NotificationSkillDiscovered, skill.Name),
                        message: null,
                        color: NotificationColor.Good,
                        icon: skill.Icon,
                        onClick: OnNotificationClick,
                        playSound: false);
                }
                else
                {
                    Client.Audio.PlayOneShot(SoundResourceSkillLevelUp, volume: 0.5f);
                    NotificationSystem.ClientShowNotification(
                        string.Format(NotificationSkillReachedLevel, skill.Name, level),
                        color: NotificationColor.Good,
                        icon: skill.Icon,
                        onClick: OnNotificationClick,
                        playSound: false);
                }
            });

            void OnNotificationClick()
            {
                WindowSkills.OpenAndSelectSkill(skill);
            }
        }
Пример #2
0
        public void OnSkillLevelChanged(IProtoSkill skill, SkillLevelData data)
        {
            this.OnSkillsChanged();

            var level = data.Level;

            if (level == 0)
            {
                return;
            }

            // show notification
            if (level == 1)
            {
                Client.Audio.PlayOneShot(SoundResourceSkillDiscovered);
                NotificationSystem.ClientShowNotification(
                    string.Format(NotificationSkillDiscovered, skill.Name),
                    message: null,
                    color: NotificationColor.Good,
                    icon: skill.Icon,
                    onClick: OnNotificationClick,
                    playSound: false);
            }
            else
            {
                Client.Audio.PlayOneShot(SoundResourceSkillLevelUp);
                NotificationSystem.ClientShowNotification(
                    string.Format(NotificationSkillReachedLevel, skill.Name, level),
                    color: NotificationColor.Good,
                    icon: skill.Icon,
                    onClick: OnNotificationClick,
                    playSound: false);
            }

            void OnNotificationClick()
            {
                WindowSkills.OpenAndSelectSkill(skill);
            }
        }