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
// Adds XP to the current total.
skillMeter.GainExperience(150);
// Sets exact XP and optionally forces a specific level.
skillMeter.SetExperience(5000, SkillLevel.Master);
// Resets XP to 0 and clears milestones.
skillMeter.ResetSkill();
Events
// 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.
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.
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);
}