Siticone Logo
Siticone UI
DOCS
v2025.12.15
Docs Circular Skill Meter

Siticone Circular Skill Meter

The SiticoneCircularSkillMeter is a gamified progress tracking control designed for displaying experience points (XP), skill levels, and achievements. It features automatic leveling logic (Novice to Legendary), visual star ratings, and engaging color animations.

Experience & Levels

Core properties for managing skill progression and data.

Property Type Description & Usage Example
Experience double skillMeter.Experience = 1250; Current XP value. Setting this triggers animation and level calculations.
MaxExperience double skillMeter.MaxExperience = 2000; XP required to complete the current level/meter.
SkillCategory SkillCategory skillMeter.SkillCategory = SkillCategory.Programming; Category label. Options: Design, Gaming, Leadership, etc.
CurrentLevel SkillLevel var level = skillMeter.CurrentLevel; Read-only. Current rank (e.g., Novice, Expert, Legendary).
LevelThresholds double[] skillMeter.LevelThresholds = new double[] {0, 100, 500...}; Array defining XP requirements for each skill tier.

Visual Style

Customize colors, shapes, and the overall theme of the meter.

Property Type Description & Usage Example
DesignStyle DesignStyle skillMeter.DesignStyle = SkillMeterDesignStyle.Rainbow; Solid: Single color.
RainBow: Gradient based on progress.
Animated: Cycling colors.
AnimatedColors Color[] skillMeter.AnimatedColors = new[] { Color.Red, Color.Blue }; Array of colors used when DesignStyle is Animated.
StartAngle float skillMeter.StartAngle = -90; Starting position of the arc (degrees).
Clockwise bool skillMeter.Clockwise = true; Direction of the progress fill.
ProgressThickness int skillMeter.ProgressThickness = 12; Width of the filled progress bar.

Text & Ratings

Configuration for labels, values, and the star rating system.

Property Type Description & Usage Example
ShowStarRating bool skillMeter.ShowStarRating = true; Displays a 1-5 star rating based on progress percentage.
MaxStars int skillMeter.MaxStars = 5; Total number of stars in the rating display.
ExperienceSuffix string skillMeter.ExperienceSuffix = " XP"; Text appended to the numeric value.
ShowSkillLabel bool skillMeter.ShowSkillLabel = true; Displays the skill category/level name.

Animation

Control the physics and speed of value updates.

Property Type Description & Usage Example
AnimationSpeed double skillMeter.AnimationSpeed = 0.1; Speed factor for the momentum animation.
Damping double skillMeter.Damping = 0.85; Physics damping to prevent overshoot/oscillation.
UltraFastPerformance bool skillMeter.UltraFastPerformance = true; Disables complex visuals for maximum FPS.

Public Methods

GainExperience(double)
// Adds XP to the current total.
skillMeter.GainExperience(150);
SetExperience(double, SkillLevel)
// Sets exact XP and optionally forces a specific level.
skillMeter.SetExperience(5000, SkillLevel.Master);
ResetSkill()
// Resets XP to 0 and clears milestones.
skillMeter.ResetSkill();

Events

Events Wiring
// 1. SkillLevelChanged Event
// Fires when the user crosses a level threshold.
skillMeter.SkillLevelChanged += (s, e) => 
{
                if (e.IsLevelUp)
                MessageBox.Show($"Level Up! {e.LevelUpMessage}");
};

// 2. SkillMilestone Event
// Fires at percentage milestones (10%, 25%, 50%, etc).
skillMeter.SkillMilestone += (s, e) => 
{
    lblStatus.Text = e.MilestoneMessage;
};

// 3. SkillMasteryAchieved Event
// Fires when reaching Master level.
skillMeter.SkillMasteryAchieved += (s, e) => 
{
                Console.WriteLine($"Mastery achieved in {e.TimeToMastery.TotalDays} days!");
};

Designer & Smart Tags

Visual Studio integration features.

Feature Description
Skill Presets Programming: Rainbow style, code-focused.
Design: Animated colors, star rating enabled.
Gaming: RGB gamer aesthetic.
Leadership: Solid, professional gold colors.
Level Simulation Gain 100 XP: Test progress animation.
Level Up: Jump to next threshold.
Achieve Mastery: Jump to max level.

Detailed Usage Examples

Example 1: User Profile Stats

Tracks a user's coding skill with a rainbow meter and star rating.

C# - Profile Stat
private void SetupCodingSkill()
{
    skillMeter.SkillCategory = SkillCategory.Programming;
    skillMeter.DesignStyle = SkillMeterDesignStyle.RainBow;
    skillMeter.ShowStarRating = true;
    
                // Custom Progression (Exponential)
    skillMeter.ProgressionType = ProgressionType.Exponential;
    
                // Hook up level up event
    skillMeter.SkillLevelChanged += (s, e) => 
    {
                if (e.NewLevel == SkillLevel.Expert)
                UnlockExpertBadge();
    };
}

Example 2: Game HUD Experience Bar

A high-performance, animated HUD element for a game.

C# - Game HUD
private void SetupHUD()
{
    skillMeter.SkillCategory = SkillCategory.Gaming;
    skillMeter.DesignStyle = SkillMeterDesignStyle.Animated;
    skillMeter.AnimatedColors = new[] { Color.Cyan, Color.Magenta, Color.Yellow };
    
                // Optimization for frequent updates
    skillMeter.UltraFastPerformance = false; // Keep animations for effect
    skillMeter.AnimationSpeed = 0.2; // Fast response
    
                // Formatting
    skillMeter.ExperienceSuffix = " / " + skillMeter.MaxExperience;
}

public void OnEnemyDefeated(int xp)
{
    skillMeter.GainExperience(xp);
}