Star-Spangled Rating

From ActiveWiki
Revision as of 09:11, 7 September 2021 by Chris (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Star-Spangled Rating
Build

1338 / 1737

Version

6.0 / 7.0

In honour and appreciation to long time citizens of ActiveWorlds.

Introduction

Star Spangled Rating shows the age of an account in-world. One to three stars are displayed next to the avatar's name in different colours.

  • Version 7.0 build 1737 added laurel icons for 16+ y/o accounts.
  • Universe Administrators will show one pink laurel.
  • The White Laurel of Honour was first give to Peacekeepers in August 2021.

Details

The years are counted as the time since immigration, and an online time of at least 7 days for every counted year.

Full Years Count Colour of Stars/Laurel
1 1 Green
2 2 Green
3 3 Green
4 1 Blue
5 2 Blue
6 3 Blue
7 1 Red
8 2 Red
9 3 Red
10 1 Dark Gold / Orange
11 2 Dark Gold / Orange
12 3 Dark Gold / Orange
13 1 Bright Gold / Yellow
14 2 Bright Gold / Yellow
15 3 Bright Gold / Yellow
16 1 Green Laurel
17 2 Green Laurel
18 3 Green Laurel
19 1 Blue Laurel
20 2 Blue Laurel
21 3 Blue Laurel
22 1 Red Laurel
23 2 Red Laurel
24 3 Red Laurel
25 1 Dark Gold / Orange Laurel
26 2 Dark Gold / Orange Laurel
27 3 Dark Gold / Orange Laurel
28 1 Bright Gold / Yellow Laurel
29 2 Bright Gold / Yellow Laurel
30 3 Bright Gold / Yellow Laurel
Honours 1 White Laurel of Honour

Changes to a higher rank are reflected in-world after a user logs-in the next time and comes close to your avatar.


Examples

For the current year 2014.

Illustrating that the account age is primary, secondary are the number of weeks spent online. Online time is considered if the value of account age is higher than the count of weeks spent online. This way an account's age is the determination, when weeks spent online reduce the count of displayed stars in case the minimum online time for the account's age has not been met.


An account created in 2008 with 30 days online time:

account age 6 years
online time 4 weeks
results in a value of 4, showing 1 blue star in world.

An account created in 2008 with 90 days online time:.

account age 6 years
online time 12 weeks
results in a value of 6, showing 3 blue stars in world.

An account created in 2000 with 25 days online time:.

account age 14 years
online time 3 weeks
results in a value of 3, showing 3 green stars in world.

An account created in 2000 with 200 days online time:

account age 14 years
online time 28 weeks
results in a value of 14, showing 1 yellow star in world.

An account created in 1998 with 50 days online time:

account age 16 years
online time 7 weeks
results in a value of 7, showing 1 red star in world.

An account created in 1998 with 300 days online time results:

account age 16 years
online time 42 weeks
results in a value of 16, showing 1 white star in world.


So, you see less stars as the account age would be capable of, if the number of online weeks is too low (1 online week per age-year minimum). You can spend more online time, to get all stars possible by the account's age.


Logic Used

  • Verbal description

When an account is older than 1 year, calculate the age of the account in full years. Calculate the count of weeks spent online. The result is the number of 'stars' (AW_CITIZEN_TITLE_STARS, sent to client browsers), as the lower value of account age in years and weeks online.

In other words, the number of 'stars' represents the years since immigration, or the weeks spent online, whatever is the smaller number.


  • Display in the client browser

The value of AW_CITIZEN_TITLE_STARS is broken into 5 colours, each colour 1 to 3 stars (5 * 3 = 15). See list of colours above. Values higher than 15 are displayed as white star in world.


  • Code example for nerds
#define ONE_YEAR  31536000  // 1 year in seconds
#define ONE_WEEK  604800    // 1 week in seconds

uint32 calc_title_stars ()
{
    // span: time since account creation
    // total_time: time spent in-world (accumulated online time since 2001/2002)
    // weeks: online time in weeks
  
    uint32 stars      = 0;
    uint32 weeks      = 0;
    time_t span       = time(NULL) - aw_citizen_immigration();
    time_t total_time = aw_citizen_total_time();
  
    if (span >= ONE_YEAR) {
        stars = span / ONE_YEAR;
        if (total_time)
           weeks = total_time / ONE_WEEK;
        if (stars > weeks)
           stars = weeks;
    }
    // the value of 'stars' is sent to client browsers
    return stars;
}